-2.0 - January ?? 2013
+2.1.1
+- Fixed VEVO videos playback
+- Fixed Ubuntu skin not being used
+
+2.1
+- Channel subscriptions
+- Move window by dragging from inside the video area
+- Faster startup
+- Optimizations and tweaks to the playlist
+- Float on top icon was missing on Mac & Windows
+- Compact mode window fixed aspect ratio on Mac
+- Ubuntu notifications
+- Fixed skipping to the next video
+- Fixed compact mode video cropped with very small window
+- Fixed long words or URLs in the video description causing a window resize
+- Fixed crash when resizing the playlist to a very small width
+
+2.0 - February 1 2013
- YouTube categories and "standard feeds": "Most Popular", "Featured", etc
- Country selection for YouTube categories and feeds
- Autoupdate on Mac and Windows
-- Related videos are now appended to the video when pasting a YouTube link
+- Related videos
+- Related videos are now appended when pasting a YouTube link
+- Bigger and nicer 16:9 thumbnails
- "Show 10 More" with a single click
- Play video in the playlist with a single click on its thumbnail
-- OS X Mountain Lion notifications on video start
+- Disk cache for video thumbnails
+- OS X Notification Center notifications on video start
+- Ubuntu Ambiance theme integration
- Fixed some YouTube links not working when pasted in the searchbox
- Fixed playlist drag'n'drop
- Fixed system language settings detection
- Fixed clicking on channel names not working in some cases
- Fixed incorrect number of downloads in status bar
+- Fixed looping video with Phonon VLC backend on Linux
+- New and updated translations
1.9 - September 27, 2012
- Adapted to YouTube changes
+++ /dev/null
- GNU LESSER GENERAL PUBLIC LICENSE
- Version 2.1, February 1999
-
- Copyright (C) 1991, 1999 Free Software Foundation, Inc.
- 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- Everyone is permitted to copy and distribute verbatim copies
- of this license document, but changing it is not allowed.
-
-[This is the first released version of the Lesser GPL. It also counts
- as the successor of the GNU Library Public License, version 2, hence
- the version number 2.1.]
-
- Preamble
-
- The licenses for most software are designed to take away your
-freedom to share and change it. By contrast, the GNU General Public
-Licenses are intended to guarantee your freedom to share and change
-free software--to make sure the software is free for all its users.
-
- This license, the Lesser General Public License, applies to some
-specially designated software packages--typically libraries--of the
-Free Software Foundation and other authors who decide to use it. You
-can use it too, but we suggest you first think carefully about whether
-this license or the ordinary General Public License is the better
-strategy to use in any particular case, based on the explanations below.
-
- When we speak of free software, we are referring to freedom of use,
-not price. Our General Public Licenses are designed to make sure that
-you have the freedom to distribute copies of free software (and charge
-for this service if you wish); that you receive source code or can get
-it if you want it; that you can change the software and use pieces of
-it in new free programs; and that you are informed that you can do
-these things.
-
- To protect your rights, we need to make restrictions that forbid
-distributors to deny you these rights or to ask you to surrender these
-rights. These restrictions translate to certain responsibilities for
-you if you distribute copies of the library or if you modify it.
-
- For example, if you distribute copies of the library, whether gratis
-or for a fee, you must give the recipients all the rights that we gave
-you. You must make sure that they, too, receive or can get the source
-code. If you link other code with the library, you must provide
-complete object files to the recipients, so that they can relink them
-with the library after making changes to the library and recompiling
-it. And you must show them these terms so they know their rights.
-
- We protect your rights with a two-step method: (1) we copyright the
-library, and (2) we offer you this license, which gives you legal
-permission to copy, distribute and/or modify the library.
-
- To protect each distributor, we want to make it very clear that
-there is no warranty for the free library. Also, if the library is
-modified by someone else and passed on, the recipients should know
-that what they have is not the original version, so that the original
-author's reputation will not be affected by problems that might be
-introduced by others.
-\f
- Finally, software patents pose a constant threat to the existence of
-any free program. We wish to make sure that a company cannot
-effectively restrict the users of a free program by obtaining a
-restrictive license from a patent holder. Therefore, we insist that
-any patent license obtained for a version of the library must be
-consistent with the full freedom of use specified in this license.
-
- Most GNU software, including some libraries, is covered by the
-ordinary GNU General Public License. This license, the GNU Lesser
-General Public License, applies to certain designated libraries, and
-is quite different from the ordinary General Public License. We use
-this license for certain libraries in order to permit linking those
-libraries into non-free programs.
-
- When a program is linked with a library, whether statically or using
-a shared library, the combination of the two is legally speaking a
-combined work, a derivative of the original library. The ordinary
-General Public License therefore permits such linking only if the
-entire combination fits its criteria of freedom. The Lesser General
-Public License permits more lax criteria for linking other code with
-the library.
-
- We call this license the "Lesser" General Public License because it
-does Less to protect the user's freedom than the ordinary General
-Public License. It also provides other free software developers Less
-of an advantage over competing non-free programs. These disadvantages
-are the reason we use the ordinary General Public License for many
-libraries. However, the Lesser license provides advantages in certain
-special circumstances.
-
- For example, on rare occasions, there may be a special need to
-encourage the widest possible use of a certain library, so that it becomes
-a de-facto standard. To achieve this, non-free programs must be
-allowed to use the library. A more frequent case is that a free
-library does the same job as widely used non-free libraries. In this
-case, there is little to gain by limiting the free library to free
-software only, so we use the Lesser General Public License.
-
- In other cases, permission to use a particular library in non-free
-programs enables a greater number of people to use a large body of
-free software. For example, permission to use the GNU C Library in
-non-free programs enables many more people to use the whole GNU
-operating system, as well as its variant, the GNU/Linux operating
-system.
-
- Although the Lesser General Public License is Less protective of the
-users' freedom, it does ensure that the user of a program that is
-linked with the Library has the freedom and the wherewithal to run
-that program using a modified version of the Library.
-
- The precise terms and conditions for copying, distribution and
-modification follow. Pay close attention to the difference between a
-"work based on the library" and a "work that uses the library". The
-former contains code derived from the library, whereas the latter must
-be combined with the library in order to run.
-\f
- GNU LESSER GENERAL PUBLIC LICENSE
- TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
-
- 0. This License Agreement applies to any software library or other
-program which contains a notice placed by the copyright holder or
-other authorized party saying it may be distributed under the terms of
-this Lesser General Public License (also called "this License").
-Each licensee is addressed as "you".
-
- A "library" means a collection of software functions and/or data
-prepared so as to be conveniently linked with application programs
-(which use some of those functions and data) to form executables.
-
- The "Library", below, refers to any such software library or work
-which has been distributed under these terms. A "work based on the
-Library" means either the Library or any derivative work under
-copyright law: that is to say, a work containing the Library or a
-portion of it, either verbatim or with modifications and/or translated
-straightforwardly into another language. (Hereinafter, translation is
-included without limitation in the term "modification".)
-
- "Source code" for a work means the preferred form of the work for
-making modifications to it. For a library, complete source code means
-all the source code for all modules it contains, plus any associated
-interface definition files, plus the scripts used to control compilation
-and installation of the library.
-
- Activities other than copying, distribution and modification are not
-covered by this License; they are outside its scope. The act of
-running a program using the Library is not restricted, and output from
-such a program is covered only if its contents constitute a work based
-on the Library (independent of the use of the Library in a tool for
-writing it). Whether that is true depends on what the Library does
-and what the program that uses the Library does.
-
- 1. You may copy and distribute verbatim copies of the Library's
-complete source code as you receive it, in any medium, provided that
-you conspicuously and appropriately publish on each copy an
-appropriate copyright notice and disclaimer of warranty; keep intact
-all the notices that refer to this License and to the absence of any
-warranty; and distribute a copy of this License along with the
-Library.
-
- You may charge a fee for the physical act of transferring a copy,
-and you may at your option offer warranty protection in exchange for a
-fee.
-\f
- 2. You may modify your copy or copies of the Library or any portion
-of it, thus forming a work based on the Library, and copy and
-distribute such modifications or work under the terms of Section 1
-above, provided that you also meet all of these conditions:
-
- a) The modified work must itself be a software library.
-
- b) You must cause the files modified to carry prominent notices
- stating that you changed the files and the date of any change.
-
- c) You must cause the whole of the work to be licensed at no
- charge to all third parties under the terms of this License.
-
- d) If a facility in the modified Library refers to a function or a
- table of data to be supplied by an application program that uses
- the facility, other than as an argument passed when the facility
- is invoked, then you must make a good faith effort to ensure that,
- in the event an application does not supply such function or
- table, the facility still operates, and performs whatever part of
- its purpose remains meaningful.
-
- (For example, a function in a library to compute square roots has
- a purpose that is entirely well-defined independent of the
- application. Therefore, Subsection 2d requires that any
- application-supplied function or table used by this function must
- be optional: if the application does not supply it, the square
- root function must still compute square roots.)
-
-These requirements apply to the modified work as a whole. If
-identifiable sections of that work are not derived from the Library,
-and can be reasonably considered independent and separate works in
-themselves, then this License, and its terms, do not apply to those
-sections when you distribute them as separate works. But when you
-distribute the same sections as part of a whole which is a work based
-on the Library, the distribution of the whole must be on the terms of
-this License, whose permissions for other licensees extend to the
-entire whole, and thus to each and every part regardless of who wrote
-it.
-
-Thus, it is not the intent of this section to claim rights or contest
-your rights to work written entirely by you; rather, the intent is to
-exercise the right to control the distribution of derivative or
-collective works based on the Library.
-
-In addition, mere aggregation of another work not based on the Library
-with the Library (or with a work based on the Library) on a volume of
-a storage or distribution medium does not bring the other work under
-the scope of this License.
-
- 3. You may opt to apply the terms of the ordinary GNU General Public
-License instead of this License to a given copy of the Library. To do
-this, you must alter all the notices that refer to this License, so
-that they refer to the ordinary GNU General Public License, version 2,
-instead of to this License. (If a newer version than version 2 of the
-ordinary GNU General Public License has appeared, then you can specify
-that version instead if you wish.) Do not make any other change in
-these notices.
-\f
- Once this change is made in a given copy, it is irreversible for
-that copy, so the ordinary GNU General Public License applies to all
-subsequent copies and derivative works made from that copy.
-
- This option is useful when you wish to copy part of the code of
-the Library into a program that is not a library.
-
- 4. You may copy and distribute the Library (or a portion or
-derivative of it, under Section 2) in object code or executable form
-under the terms of Sections 1 and 2 above provided that you accompany
-it with the complete corresponding machine-readable source code, which
-must be distributed under the terms of Sections 1 and 2 above on a
-medium customarily used for software interchange.
-
- If distribution of object code is made by offering access to copy
-from a designated place, then offering equivalent access to copy the
-source code from the same place satisfies the requirement to
-distribute the source code, even though third parties are not
-compelled to copy the source along with the object code.
-
- 5. A program that contains no derivative of any portion of the
-Library, but is designed to work with the Library by being compiled or
-linked with it, is called a "work that uses the Library". Such a
-work, in isolation, is not a derivative work of the Library, and
-therefore falls outside the scope of this License.
-
- However, linking a "work that uses the Library" with the Library
-creates an executable that is a derivative of the Library (because it
-contains portions of the Library), rather than a "work that uses the
-library". The executable is therefore covered by this License.
-Section 6 states terms for distribution of such executables.
-
- When a "work that uses the Library" uses material from a header file
-that is part of the Library, the object code for the work may be a
-derivative work of the Library even though the source code is not.
-Whether this is true is especially significant if the work can be
-linked without the Library, or if the work is itself a library. The
-threshold for this to be true is not precisely defined by law.
-
- If such an object file uses only numerical parameters, data
-structure layouts and accessors, and small macros and small inline
-functions (ten lines or less in length), then the use of the object
-file is unrestricted, regardless of whether it is legally a derivative
-work. (Executables containing this object code plus portions of the
-Library will still fall under Section 6.)
-
- Otherwise, if the work is a derivative of the Library, you may
-distribute the object code for the work under the terms of Section 6.
-Any executables containing that work also fall under Section 6,
-whether or not they are linked directly with the Library itself.
-\f
- 6. As an exception to the Sections above, you may also combine or
-link a "work that uses the Library" with the Library to produce a
-work containing portions of the Library, and distribute that work
-under terms of your choice, provided that the terms permit
-modification of the work for the customer's own use and reverse
-engineering for debugging such modifications.
-
- You must give prominent notice with each copy of the work that the
-Library is used in it and that the Library and its use are covered by
-this License. You must supply a copy of this License. If the work
-during execution displays copyright notices, you must include the
-copyright notice for the Library among them, as well as a reference
-directing the user to the copy of this License. Also, you must do one
-of these things:
-
- a) Accompany the work with the complete corresponding
- machine-readable source code for the Library including whatever
- changes were used in the work (which must be distributed under
- Sections 1 and 2 above); and, if the work is an executable linked
- with the Library, with the complete machine-readable "work that
- uses the Library", as object code and/or source code, so that the
- user can modify the Library and then relink to produce a modified
- executable containing the modified Library. (It is understood
- that the user who changes the contents of definitions files in the
- Library will not necessarily be able to recompile the application
- to use the modified definitions.)
-
- b) Use a suitable shared library mechanism for linking with the
- Library. A suitable mechanism is one that (1) uses at run time a
- copy of the library already present on the user's computer system,
- rather than copying library functions into the executable, and (2)
- will operate properly with a modified version of the library, if
- the user installs one, as long as the modified version is
- interface-compatible with the version that the work was made with.
-
- c) Accompany the work with a written offer, valid for at
- least three years, to give the same user the materials
- specified in Subsection 6a, above, for a charge no more
- than the cost of performing this distribution.
-
- d) If distribution of the work is made by offering access to copy
- from a designated place, offer equivalent access to copy the above
- specified materials from the same place.
-
- e) Verify that the user has already received a copy of these
- materials or that you have already sent this user a copy.
-
- For an executable, the required form of the "work that uses the
-Library" must include any data and utility programs needed for
-reproducing the executable from it. However, as a special exception,
-the materials to be distributed need not include anything that is
-normally distributed (in either source or binary form) with the major
-components (compiler, kernel, and so on) of the operating system on
-which the executable runs, unless that component itself accompanies
-the executable.
-
- It may happen that this requirement contradicts the license
-restrictions of other proprietary libraries that do not normally
-accompany the operating system. Such a contradiction means you cannot
-use both them and the Library together in an executable that you
-distribute.
-\f
- 7. You may place library facilities that are a work based on the
-Library side-by-side in a single library together with other library
-facilities not covered by this License, and distribute such a combined
-library, provided that the separate distribution of the work based on
-the Library and of the other library facilities is otherwise
-permitted, and provided that you do these two things:
-
- a) Accompany the combined library with a copy of the same work
- based on the Library, uncombined with any other library
- facilities. This must be distributed under the terms of the
- Sections above.
-
- b) Give prominent notice with the combined library of the fact
- that part of it is a work based on the Library, and explaining
- where to find the accompanying uncombined form of the same work.
-
- 8. You may not copy, modify, sublicense, link with, or distribute
-the Library except as expressly provided under this License. Any
-attempt otherwise to copy, modify, sublicense, link with, or
-distribute the Library is void, and will automatically terminate your
-rights under this License. However, parties who have received copies,
-or rights, from you under this License will not have their licenses
-terminated so long as such parties remain in full compliance.
-
- 9. You are not required to accept this License, since you have not
-signed it. However, nothing else grants you permission to modify or
-distribute the Library or its derivative works. These actions are
-prohibited by law if you do not accept this License. Therefore, by
-modifying or distributing the Library (or any work based on the
-Library), you indicate your acceptance of this License to do so, and
-all its terms and conditions for copying, distributing or modifying
-the Library or works based on it.
-
- 10. Each time you redistribute the Library (or any work based on the
-Library), the recipient automatically receives a license from the
-original licensor to copy, distribute, link with or modify the Library
-subject to these terms and conditions. You may not impose any further
-restrictions on the recipients' exercise of the rights granted herein.
-You are not responsible for enforcing compliance by third parties with
-this License.
-\f
- 11. If, as a consequence of a court judgment or allegation of patent
-infringement or for any other reason (not limited to patent issues),
-conditions are imposed on you (whether by court order, agreement or
-otherwise) that contradict the conditions of this License, they do not
-excuse you from the conditions of this License. If you cannot
-distribute so as to satisfy simultaneously your obligations under this
-License and any other pertinent obligations, then as a consequence you
-may not distribute the Library at all. For example, if a patent
-license would not permit royalty-free redistribution of the Library by
-all those who receive copies directly or indirectly through you, then
-the only way you could satisfy both it and this License would be to
-refrain entirely from distribution of the Library.
-
-If any portion of this section is held invalid or unenforceable under any
-particular circumstance, the balance of the section is intended to apply,
-and the section as a whole is intended to apply in other circumstances.
-
-It is not the purpose of this section to induce you to infringe any
-patents or other property right claims or to contest validity of any
-such claims; this section has the sole purpose of protecting the
-integrity of the free software distribution system which is
-implemented by public license practices. Many people have made
-generous contributions to the wide range of software distributed
-through that system in reliance on consistent application of that
-system; it is up to the author/donor to decide if he or she is willing
-to distribute software through any other system and a licensee cannot
-impose that choice.
-
-This section is intended to make thoroughly clear what is believed to
-be a consequence of the rest of this License.
-
- 12. If the distribution and/or use of the Library is restricted in
-certain countries either by patents or by copyrighted interfaces, the
-original copyright holder who places the Library under this License may add
-an explicit geographical distribution limitation excluding those countries,
-so that distribution is permitted only in or among countries not thus
-excluded. In such case, this License incorporates the limitation as if
-written in the body of this License.
-
- 13. The Free Software Foundation may publish revised and/or new
-versions of the Lesser 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 Library
-specifies a version number of this License which applies to it and
-"any later version", you have the option of following the terms and
-conditions either of that version or of any later version published by
-the Free Software Foundation. If the Library does not specify a
-license version number, you may choose any version ever published by
-the Free Software Foundation.
-\f
- 14. If you wish to incorporate parts of the Library into other free
-programs whose distribution conditions are incompatible with these,
-write to the author to ask for permission. For software which is
-copyrighted by the Free Software Foundation, write to the Free
-Software Foundation; we sometimes make exceptions for this. Our
-decision will be guided by the two goals of preserving the free status
-of all derivatives of our free software and of promoting the sharing
-and reuse of software generally.
-
- NO WARRANTY
-
- 15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO
-WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW.
-EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR
-OTHER PARTIES PROVIDE THE LIBRARY "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
-LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME
-THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
-
- 16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN
-WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY
-AND/OR REDISTRIBUTE THE LIBRARY 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
-LIBRARY (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 LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF
-SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
-DAMAGES.
-
- END OF TERMS AND CONDITIONS
-\f
- How to Apply These Terms to Your New Libraries
-
- If you develop a new library, and you want it to be of the greatest
-possible use to the public, we recommend making it free software that
-everyone can redistribute and change. You can do so by permitting
-redistribution under these terms (or, alternatively, under the terms of the
-ordinary General Public License).
-
- To apply these terms, attach the following notices to the library. It is
-safest to attach them to the start of each source file to most effectively
-convey the exclusion of warranty; and each file should have at least the
-"copyright" line and a pointer to where the full notice is found.
-
- <one line to give the library's name and a brief idea of what it does.>
- Copyright (C) <year> <name of author>
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- This library 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
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with this library; if not, write to the Free Software
- Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
-
-Also add information on how to contact you by electronic and paper mail.
-
-You should also get your employer (if you work as a programmer) or your
-school, if any, to sign a "copyright disclaimer" for the library, if
-necessary. Here is a sample; alter the names:
-
- Yoyodyne, Inc., hereby disclaims all copyright interest in the
- library `Frob' (a library for tweaking knobs) written by James Random Hacker.
-
- <signature of Ty Coon>, 1 April 1990
- Ty Coon, President of Vice
-
-That's all there is to it!
-
-
<translation type="unfinished"></translation>
</message>
</context>
+<context>
+ <name>ChannelAggregator</name>
+ <message>
+ <location filename="src/channelaggregator.cpp" line="110"/>
+ <source>By %1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message numerus="yes">
+ <location filename="src/channelaggregator.cpp" line="112"/>
+ <source>You have %n new video(s)</source>
+ <translation type="unfinished">
+ <numerusform></numerusform>
+ </translation>
+ </message>
+</context>
+<context>
+ <name>ChannelItemDelegate</name>
+ <message>
+ <location filename="src/channelitemdelegate.cpp" line="46"/>
+ <source>All Videos</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/channelitemdelegate.cpp" line="63"/>
+ <source>Unwatched Videos</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>ChannelView</name>
+ <message>
+ <location filename="src/channelview.cpp" line="75"/>
+ <source>Mark all as watched</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/channelview.cpp" line="83"/>
+ <source>Show Updated</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/channelview.cpp" line="95"/>
+ <source>Name</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/channelview.cpp" line="102"/>
+ <source>Last Updated</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/channelview.cpp" line="109"/>
+ <source>Last Added</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/channelview.cpp" line="116"/>
+ <source>Last Watched</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/channelview.cpp" line="123"/>
+ <source>Most Watched</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/channelview.cpp" line="131"/>
+ <source>Sort by</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/channelview.cpp" line="190"/>
+ <source>All Videos</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/channelview.cpp" line="194"/>
+ <source>Unwatched Videos</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/channelview.cpp" line="206"/>
+ <source>There are no updated subscriptions at this time.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/channelview.cpp" line="208"/>
+ <source>You have no subscriptions. Use the star symbol to subscribe to channels.</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
<context>
<name>ClearButton</name>
<message>
<context>
<name>HomeView</name>
<message>
- <location filename="src/homeview.cpp" line="33"/>
+ <location filename="src/homeview.cpp" line="38"/>
<source>Search</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="src/homeview.cpp" line="35"/>
+ <location filename="src/homeview.cpp" line="40"/>
<source>Find videos and channels by keyword</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="src/homeview.cpp" line="40"/>
+ <location filename="src/homeview.cpp" line="45"/>
<source>Browse</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="src/homeview.cpp" line="42"/>
+ <location filename="src/homeview.cpp" line="47"/>
<source>Browse videos by category</source>
<translation type="unfinished"></translation>
</message>
+ <message>
+ <location filename="src/homeview.cpp" line="51"/>
+ <source>Subscriptions</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/homeview.cpp" line="53"/>
+ <source>Channel subscriptions</source>
+ <translation type="unfinished"></translation>
+ </message>
<message>
<location filename="src/homeview.h" line="22"/>
<source>Make yourself comfortable</source>
<context>
<name>LoadingWidget</name>
<message>
- <location filename="src/loadingwidget.cpp" line="90"/>
+ <location filename="src/loadingwidget.cpp" line="88"/>
<source>Error</source>
<translation type="unfinished"></translation>
</message>
<context>
<name>MainWindow</name>
<message>
- <location filename="src/mainwindow.cpp" line="213"/>
+ <location filename="src/mainwindow.cpp" line="237"/>
<source>&Stop</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="214"/>
+ <location filename="src/mainwindow.cpp" line="238"/>
<source>Stop playback and go back to the search view</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="232"/>
+ <location filename="src/mainwindow.cpp" line="253"/>
<source>S&kip</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="233"/>
+ <location filename="src/mainwindow.cpp" line="254"/>
<source>Skip to the next video</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="239"/>
- <location filename="src/mainwindow.cpp" line="989"/>
+ <location filename="src/mainwindow.cpp" line="260"/>
+ <location filename="src/mainwindow.cpp" line="1012"/>
<source>&Pause</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="240"/>
- <location filename="src/mainwindow.cpp" line="990"/>
+ <location filename="src/mainwindow.cpp" line="261"/>
+ <location filename="src/mainwindow.cpp" line="1013"/>
<source>Pause playback</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="246"/>
+ <location filename="src/mainwindow.cpp" line="267"/>
<source>&Full Screen</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="247"/>
+ <location filename="src/mainwindow.cpp" line="268"/>
<source>Go full screen</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="263"/>
+ <location filename="src/mainwindow.cpp" line="282"/>
<source>Hide the playlist and the toolbar</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="276"/>
+ <location filename="src/mainwindow.cpp" line="295"/>
<source>Go to the YouTube video page and pause playback</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="283"/>
+ <location filename="src/mainwindow.cpp" line="302"/>
<source>Copy the current video YouTube link to the clipboard</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="290"/>
+ <location filename="src/mainwindow.cpp" line="309"/>
<source>Copy the current video stream URL to the clipboard</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="297"/>
+ <location filename="src/mainwindow.cpp" line="316"/>
<source>Find other video parts hopefully in the right order</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="303"/>
+ <location filename="src/mainwindow.cpp" line="322"/>
<source>&Remove</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="304"/>
+ <location filename="src/mainwindow.cpp" line="323"/>
<source>Remove the selected videos from the playlist</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="310"/>
+ <location filename="src/mainwindow.cpp" line="329"/>
<source>Move &Up</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="311"/>
+ <location filename="src/mainwindow.cpp" line="330"/>
<source>Move up the selected videos in the playlist</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="317"/>
+ <location filename="src/mainwindow.cpp" line="336"/>
<source>Move &Down</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="318"/>
+ <location filename="src/mainwindow.cpp" line="337"/>
<source>Move down the selected videos in the playlist</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="329"/>
+ <location filename="src/mainwindow.cpp" line="348"/>
<source>Clear the search history. Cannot be undone.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="334"/>
+ <location filename="src/mainwindow.cpp" line="353"/>
<source>&Quit</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="337"/>
+ <location filename="src/mainwindow.cpp" line="356"/>
<source>Bye</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="341"/>
+ <location filename="src/mainwindow.cpp" line="360"/>
<source>&Website</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="343"/>
+ <location filename="src/mainwindow.cpp" line="362"/>
<source>%1 on the Web</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="349"/>
+ <location filename="src/mainwindow.cpp" line="368"/>
<source>Please support the continued development of %1</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="354"/>
+ <location filename="src/mainwindow.cpp" line="373"/>
<source>&About</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="356"/>
+ <location filename="src/mainwindow.cpp" line="375"/>
<source>Info about %1</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="364"/>
+ <location filename="src/mainwindow.cpp" line="383"/>
<source>Search</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="383"/>
+ <location filename="src/mainwindow.cpp" line="402"/>
<source>Mute volume</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="412"/>
- <location filename="src/mainwindow.cpp" line="1365"/>
+ <location filename="src/mainwindow.cpp" line="431"/>
+ <location filename="src/mainwindow.cpp" line="1406"/>
<source>&Downloads</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="413"/>
+ <location filename="src/mainwindow.cpp" line="432"/>
<source>Show details about video downloads</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="421"/>
+ <location filename="src/mainwindow.cpp" line="440"/>
<source>&Download</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="422"/>
+ <location filename="src/mainwindow.cpp" line="441"/>
<source>Download the current video</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="441"/>
+ <location filename="src/mainwindow.cpp" line="458"/>
+ <source>&Subscribe to Channel</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/mainwindow.cpp" line="465"/>
<source>Share the current video using %1</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="458"/>
+ <location filename="src/mainwindow.cpp" line="482"/>
<source>&Email</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="459"/>
+ <location filename="src/mainwindow.cpp" line="483"/>
<source>Email</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="463"/>
+ <location filename="src/mainwindow.cpp" line="487"/>
<source>&Close</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="473"/>
+ <location filename="src/mainwindow.cpp" line="497"/>
<source>&Float on Top</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="478"/>
+ <location filename="src/mainwindow.cpp" line="502"/>
<source>&Stop After This Video</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="485"/>
+ <location filename="src/mainwindow.cpp" line="509"/>
<source>&Report an Issue...</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="489"/>
+ <location filename="src/mainwindow.cpp" line="513"/>
<source>&Refine Search...</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="501"/>
+ <location filename="src/mainwindow.cpp" line="525"/>
<source>More...</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="504"/>
+ <location filename="src/mainwindow.cpp" line="528"/>
<source>&Related Videos</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="506"/>
+ <location filename="src/mainwindow.cpp" line="530"/>
<source>Watch videos related to the current one</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="544"/>
+ <location filename="src/mainwindow.cpp" line="553"/>
<source>&Application</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="515"/>
+ <location filename="src/mainwindow.cpp" line="537"/>
<source>Buy %1...</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="558"/>
+ <location filename="src/mainwindow.cpp" line="567"/>
<source>&Playback</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="572"/>
+ <location filename="src/mainwindow.cpp" line="581"/>
<source>&Playlist</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="581"/>
+ <location filename="src/mainwindow.cpp" line="590"/>
<source>&Video</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="594"/>
+ <location filename="src/mainwindow.cpp" line="605"/>
<source>&View</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="601"/>
+ <location filename="src/mainwindow.cpp" line="612"/>
<source>&Share</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="615"/>
+ <location filename="src/mainwindow.cpp" line="626"/>
<source>&Help</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="690"/>
+ <location filename="src/mainwindow.cpp" line="701"/>
<source>Press %1 to raise the volume, %2 to lower it</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="889"/>
- <location filename="src/mainwindow.cpp" line="895"/>
+ <location filename="src/mainwindow.cpp" line="910"/>
+ <location filename="src/mainwindow.cpp" line="916"/>
<source>Opening %1</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="936"/>
+ <location filename="src/mainwindow.cpp" line="959"/>
<source>Do you want to exit %1 with a download in progress?</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="937"/>
+ <location filename="src/mainwindow.cpp" line="960"/>
<source>If you close %1 now, this download will be cancelled.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="942"/>
+ <location filename="src/mainwindow.cpp" line="965"/>
<source>Close and cancel download</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="943"/>
+ <location filename="src/mainwindow.cpp" line="966"/>
<source>Wait for download to finish</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="1102"/>
+ <location filename="src/mainwindow.cpp" line="1125"/>
<source>Leave &Full Screen</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="1475"/>
+ <location filename="src/mainwindow.cpp" line="1515"/>
<source>%1 version %2 is now available.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="1479"/>
+ <location filename="src/mainwindow.cpp" line="1519"/>
<source>Remind me later</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="1480"/>
+ <location filename="src/mainwindow.cpp" line="1520"/>
<source>Update</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="982"/>
+ <location filename="src/mainwindow.cpp" line="1005"/>
<source>Error: %1</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="222"/>
+ <location filename="src/mainwindow.cpp" line="246"/>
<source>P&revious</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="223"/>
+ <location filename="src/mainwindow.cpp" line="247"/>
<source>Go back to the previous track</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="262"/>
+ <location filename="src/mainwindow.cpp" line="281"/>
<source>&Compact Mode</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="275"/>
+ <location filename="src/mainwindow.cpp" line="294"/>
<source>Open the &YouTube Page</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="282"/>
+ <location filename="src/mainwindow.cpp" line="301"/>
<source>Copy the YouTube &Link</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="289"/>
+ <location filename="src/mainwindow.cpp" line="308"/>
<source>Copy the Video Stream &URL</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="296"/>
+ <location filename="src/mainwindow.cpp" line="315"/>
<source>Find Video &Parts</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="324"/>
+ <location filename="src/mainwindow.cpp" line="343"/>
<source>&Clear Recent Searches</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="348"/>
+ <location filename="src/mainwindow.cpp" line="367"/>
<source>Make a &Donation</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="405"/>
+ <location filename="src/mainwindow.cpp" line="424"/>
<source>&Manually Start Playing</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="406"/>
+ <location filename="src/mainwindow.cpp" line="425"/>
<source>Manually start playing videos</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="728"/>
+ <location filename="src/mainwindow.cpp" line="739"/>
<source>Choose your content location</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="1002"/>
+ <location filename="src/mainwindow.cpp" line="1025"/>
<source>&Play</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="1003"/>
+ <location filename="src/mainwindow.cpp" line="1026"/>
<source>Resume playback</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="1236"/>
+ <location filename="src/mainwindow.cpp" line="1277"/>
<source>Remaining time: %1</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="1294"/>
+ <location filename="src/mainwindow.cpp" line="1335"/>
<source>Volume at %1%</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="1300"/>
+ <location filename="src/mainwindow.cpp" line="1341"/>
<source>Volume is muted</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="1303"/>
+ <location filename="src/mainwindow.cpp" line="1344"/>
<source>Volume is unmuted</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="1310"/>
+ <location filename="src/mainwindow.cpp" line="1351"/>
<source>Maximum video definition set to %1</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="1351"/>
+ <location filename="src/mainwindow.cpp" line="1392"/>
<source>Your privacy is now safe</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="1366"/>
+ <location filename="src/mainwindow.cpp" line="1407"/>
<source>Downloads complete</source>
<translation type="unfinished"></translation>
</message>
<context>
<name>MediaView</name>
<message>
- <location filename="src/mediaview.cpp" line="553"/>
+ <location filename="src/mediaview.cpp" line="563"/>
<source>You can now paste the YouTube link into another application</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="src/mediaview.cpp" line="561"/>
+ <location filename="src/mediaview.cpp" line="571"/>
<source>You can now paste the video stream URL into another application</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="src/mediaview.cpp" line="562"/>
+ <location filename="src/mediaview.cpp" line="572"/>
<source>The link will be valid only for a limited time.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="src/mediaview.cpp" line="636"/>
+ <location filename="src/mediaview.cpp" line="650"/>
<source>This is just the demo version of %1.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="src/mediaview.cpp" line="637"/>
+ <location filename="src/mediaview.cpp" line="651"/>
<source>It allows you to test the application and see if it works for you.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="src/mediaview.cpp" line="667"/>
+ <location filename="src/mediaview.cpp" line="681"/>
<source>Continue</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="src/mediaview.cpp" line="756"/>
+ <location filename="src/mediaview.cpp" line="772"/>
<source>of</source>
<comment>Used in video parts, as in '2 of 3'</comment>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="src/mediaview.cpp" line="768"/>
+ <location filename="src/mediaview.cpp" line="785"/>
<source>part</source>
<comment>This is for video parts, as in 'Cool video - part 1'</comment>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="src/mediaview.cpp" line="770"/>
+ <location filename="src/mediaview.cpp" line="787"/>
<source>episode</source>
<comment>This is for video parts, as in 'Cool series - episode 1'</comment>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="src/mediaview.cpp" line="847"/>
+ <location filename="src/mediaview.cpp" line="868"/>
<source>Sent from %1</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="src/mediaview.cpp" line="644"/>
+ <location filename="src/mediaview.cpp" line="899"/>
+ <source>Unsubscribe from %1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/mediaview.cpp" line="903"/>
+ <source>Subscribe to %1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/mediaview.cpp" line="658"/>
<source>Get the full version</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="src/mediaview.cpp" line="681"/>
+ <location filename="src/mediaview.cpp" line="695"/>
<source>Downloading %1</source>
<translation type="unfinished"></translation>
</message>
<context>
<name>PlaylistItemDelegate</name>
<message>
- <location filename="src/playlistitemdelegate.cpp" line="159"/>
+ <location filename="src/playlistitemdelegate.cpp" line="177"/>
<source>%1 views</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="src/playlistitemdelegate.cpp" line="285"/>
+ <location filename="src/playlistitemdelegate.cpp" line="292"/>
<source>%1 of %2 (%3) — %4</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="src/playlistitemdelegate.cpp" line="292"/>
+ <location filename="src/playlistitemdelegate.cpp" line="299"/>
<source>Preparing</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="src/playlistitemdelegate.cpp" line="294"/>
+ <location filename="src/playlistitemdelegate.cpp" line="301"/>
<source>Failed</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="src/playlistitemdelegate.cpp" line="296"/>
+ <location filename="src/playlistitemdelegate.cpp" line="303"/>
<source>Completed</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="src/playlistitemdelegate.cpp" line="298"/>
+ <location filename="src/playlistitemdelegate.cpp" line="305"/>
<source>Stopped</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="src/playlistitemdelegate.cpp" line="334"/>
+ <location filename="src/playlistitemdelegate.cpp" line="341"/>
<source>Stop downloading</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="src/playlistitemdelegate.cpp" line="344"/>
+ <location filename="src/playlistitemdelegate.cpp" line="351"/>
<source>Show in %1</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="src/playlistitemdelegate.cpp" line="346"/>
+ <location filename="src/playlistitemdelegate.cpp" line="353"/>
<source>Open parent folder</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="src/playlistitemdelegate.cpp" line="355"/>
+ <location filename="src/playlistitemdelegate.cpp" line="362"/>
<source>Restart downloading</source>
<translation type="unfinished"></translation>
</message>
<context>
<name>SearchView</name>
<message>
- <location filename="src/searchview.cpp" line="71"/>
+ <location filename="src/searchview.cpp" line="66"/>
<source>Welcome to <a href='%1'>%2</a>,</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="src/searchview.cpp" line="50"/>
+ <location filename="src/searchview.cpp" line="161"/>
<source>Get the full version</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="src/searchview.cpp" line="85"/>
+ <location filename="src/searchview.cpp" line="80"/>
<source>Enter</source>
<extracomment>"Enter", as in "type". The whole phrase says: "Enter a keyword to start watching videos"</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="src/searchview.cpp" line="90"/>
+ <location filename="src/searchview.cpp" line="85"/>
<source>a keyword</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="src/searchview.cpp" line="91"/>
+ <location filename="src/searchview.cpp" line="86"/>
<source>a channel</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="src/searchview.cpp" line="96"/>
+ <location filename="src/searchview.cpp" line="91"/>
<source>to start watching videos.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="src/searchview.cpp" line="120"/>
+ <location filename="src/searchview.cpp" line="115"/>
<source>Watch</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="src/searchview.cpp" line="138"/>
+ <location filename="src/searchview.cpp" line="133"/>
<source>Recent keywords</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="src/searchview.cpp" line="151"/>
+ <location filename="src/searchview.cpp" line="146"/>
<source>Recent channels</source>
<translation type="unfinished"></translation>
</message>
<context>
<name>SidebarHeader</name>
<message>
- <location filename="src/sidebarheader.cpp" line="16"/>
- <location filename="src/sidebarheader.cpp" line="23"/>
+ <location filename="src/sidebarheader.cpp" line="19"/>
+ <location filename="src/sidebarheader.cpp" line="26"/>
<source>&Back</source>
<translation type="unfinished"></translation>
</message>
<source>Most Popular</source>
<translation type="unfinished"></translation>
</message>
- <message>
- <location filename="src/standardfeedsview.cpp" line="86"/>
- <source>Featured</source>
- <translation type="unfinished"></translation>
- </message>
<message>
<location filename="src/standardfeedsview.cpp" line="87"/>
<source>Most Shared</source>
<source>Top Rated</source>
<translation type="unfinished"></translation>
</message>
+ <message>
+ <location filename="src/standardfeedsview.cpp" line="90"/>
+ <source>All Time Popular</source>
+ <translation type="unfinished"></translation>
+ </message>
</context>
<context>
<name>Video</name>
<message>
- <location filename="src/video.cpp" line="213"/>
+ <location filename="src/video.cpp" line="215"/>
<source>Cannot get video stream for %1</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="src/video.cpp" line="231"/>
+ <location filename="src/video.cpp" line="233"/>
<source>Network error: %1 for %2</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="src/aboutview.cpp" line="38"/>
<source>Licensed to: %1</source>
- <translation type="unfinished"/>
+ <translation>مرخّص لـ: %1</translation>
</message>
<message>
<location filename="src/aboutview.cpp" line="42"/>
<message>
<location filename="local/src/activationdialog.cpp" line="35"/>
<source>&Code:</source>
- <translation type="unfinished"/>
+ <translation>الرقم ال&خاصّ:</translation>
</message>
</context>
<context>
<translation>قم بشراء رخصة</translation>
</message>
</context>
+<context>
+ <name>ChannelAggregator</name>
+ <message>
+ <location filename="src/channelaggregator.cpp" line="110"/>
+ <source>By %1</source>
+ <translation type="unfinished"/>
+ </message>
+ <message numerus="yes">
+ <location filename="src/channelaggregator.cpp" line="112"/>
+ <source>You have %n new video(s)</source>
+ <translation type="unfinished"><numerusform></numerusform><numerusform></numerusform><numerusform></numerusform><numerusform></numerusform><numerusform></numerusform><numerusform></numerusform></translation>
+ </message>
+</context>
+<context>
+ <name>ChannelItemDelegate</name>
+ <message>
+ <location filename="src/channelitemdelegate.cpp" line="46"/>
+ <source>All Videos</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="src/channelitemdelegate.cpp" line="63"/>
+ <source>Unwatched Videos</source>
+ <translation type="unfinished"/>
+ </message>
+</context>
+<context>
+ <name>ChannelView</name>
+ <message>
+ <location filename="src/channelview.cpp" line="75"/>
+ <source>Mark all as watched</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="src/channelview.cpp" line="83"/>
+ <source>Show Updated</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="src/channelview.cpp" line="95"/>
+ <source>Name</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="src/channelview.cpp" line="102"/>
+ <source>Last Updated</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="src/channelview.cpp" line="109"/>
+ <source>Last Added</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="src/channelview.cpp" line="116"/>
+ <source>Last Watched</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="src/channelview.cpp" line="123"/>
+ <source>Most Watched</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="src/channelview.cpp" line="131"/>
+ <source>Sort by</source>
+ <translation>ترتيب بـ</translation>
+ </message>
+ <message>
+ <location filename="src/channelview.cpp" line="190"/>
+ <source>All Videos</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="src/channelview.cpp" line="194"/>
+ <source>Unwatched Videos</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="src/channelview.cpp" line="206"/>
+ <source>There are no updated subscriptions at this time.</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="src/channelview.cpp" line="208"/>
+ <source>You have no subscriptions. Use the star symbol to subscribe to channels.</source>
+ <translation type="unfinished"/>
+ </message>
+</context>
<context>
<name>ClearButton</name>
<message>
<context>
<name>HomeView</name>
<message>
- <location filename="src/homeview.cpp" line="33"/>
+ <location filename="src/homeview.cpp" line="38"/>
<source>Search</source>
<translation>بحث</translation>
</message>
<message>
- <location filename="src/homeview.cpp" line="35"/>
+ <location filename="src/homeview.cpp" line="40"/>
<source>Find videos and channels by keyword</source>
- <translation type="unfinished"/>
+ <translation>جِد مقاطع فيديو وقنواتٍ بحسب الكلمة الرئيسة</translation>
</message>
<message>
- <location filename="src/homeview.cpp" line="40"/>
+ <location filename="src/homeview.cpp" line="45"/>
<source>Browse</source>
<translation>أستعراض</translation>
</message>
<message>
- <location filename="src/homeview.cpp" line="42"/>
+ <location filename="src/homeview.cpp" line="47"/>
<source>Browse videos by category</source>
<translation>تصفح الفيديوهات حسب الفئة</translation>
</message>
+ <message>
+ <location filename="src/homeview.cpp" line="51"/>
+ <source>Subscriptions</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="src/homeview.cpp" line="53"/>
+ <source>Channel subscriptions</source>
+ <translation type="unfinished"/>
+ </message>
<message>
<location filename="src/homeview.h" line="22"/>
<source>Make yourself comfortable</source>
<context>
<name>LoadingWidget</name>
<message>
- <location filename="src/loadingwidget.cpp" line="90"/>
+ <location filename="src/loadingwidget.cpp" line="88"/>
<source>Error</source>
<translation>خطأ</translation>
</message>
<context>
<name>MainWindow</name>
<message>
- <location filename="src/mainwindow.cpp" line="213"/>
+ <location filename="src/mainwindow.cpp" line="237"/>
<source>&Stop</source>
<translation>&قف</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="214"/>
+ <location filename="src/mainwindow.cpp" line="238"/>
<source>Stop playback and go back to the search view</source>
<translation>وقف التشغيل و العودة لوضع البحث</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="232"/>
+ <location filename="src/mainwindow.cpp" line="253"/>
<source>S&kip</source>
<translation>&القفز</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="233"/>
+ <location filename="src/mainwindow.cpp" line="254"/>
<source>Skip to the next video</source>
<translation>القفز للفيديو التالي</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="239"/>
- <location filename="src/mainwindow.cpp" line="989"/>
+ <location filename="src/mainwindow.cpp" line="260"/>
+ <location filename="src/mainwindow.cpp" line="1012"/>
<source>&Pause</source>
<translation>&ايقاف مؤقت</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="240"/>
- <location filename="src/mainwindow.cpp" line="990"/>
+ <location filename="src/mainwindow.cpp" line="261"/>
+ <location filename="src/mainwindow.cpp" line="1013"/>
<source>Pause playback</source>
<translation>ايقاف التشغيل</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="246"/>
+ <location filename="src/mainwindow.cpp" line="267"/>
<source>&Full Screen</source>
<translation>&شاشة كاملة</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="247"/>
+ <location filename="src/mainwindow.cpp" line="268"/>
<source>Go full screen</source>
<translation>تشغيل شاشة كاملة</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="263"/>
+ <location filename="src/mainwindow.cpp" line="282"/>
<source>Hide the playlist and the toolbar</source>
<translation>اخفاء القائمة و شريط المهام</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="276"/>
+ <location filename="src/mainwindow.cpp" line="295"/>
<source>Go to the YouTube video page and pause playback</source>
<translation>اذهب الى صفحة فيديو YouTube و وقف التشغيل</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="283"/>
+ <location filename="src/mainwindow.cpp" line="302"/>
<source>Copy the current video YouTube link to the clipboard</source>
<translation>نسخ رابط YouTube الى clipboard</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="290"/>
+ <location filename="src/mainwindow.cpp" line="309"/>
<source>Copy the current video stream URL to the clipboard</source>
<translation>نسخ رابط الفيديو الى clipboard</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="297"/>
+ <location filename="src/mainwindow.cpp" line="316"/>
<source>Find other video parts hopefully in the right order</source>
<translation>اوجد أجزاء الفيديو الأخرى املا أن تكون في الترتيب الصحيح</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="303"/>
+ <location filename="src/mainwindow.cpp" line="322"/>
<source>&Remove</source>
<translation>&إزالة</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="304"/>
+ <location filename="src/mainwindow.cpp" line="323"/>
<source>Remove the selected videos from the playlist</source>
<translation>إزالة الفيديو من القائمة</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="310"/>
+ <location filename="src/mainwindow.cpp" line="329"/>
<source>Move &Up</source>
<translation>الرفع الى &اعلى</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="311"/>
+ <location filename="src/mainwindow.cpp" line="330"/>
<source>Move up the selected videos in the playlist</source>
<translation>رفع المقاطع المختارة الى فوق في القائمة</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="317"/>
+ <location filename="src/mainwindow.cpp" line="336"/>
<source>Move &Down</source>
<translation>الانزال الى &تحت</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="318"/>
+ <location filename="src/mainwindow.cpp" line="337"/>
<source>Move down the selected videos in the playlist</source>
<translation>انزال المقاطع المختارة الى تحت في القائمة</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="329"/>
+ <location filename="src/mainwindow.cpp" line="348"/>
<source>Clear the search history. Cannot be undone.</source>
<translation>مسح تاريخ البحث. لا يمكن استعادته.</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="334"/>
+ <location filename="src/mainwindow.cpp" line="353"/>
<source>&Quit</source>
<translation>&الانتهاء</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="337"/>
+ <location filename="src/mainwindow.cpp" line="356"/>
<source>Bye</source>
<translation>مع السلامة</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="341"/>
+ <location filename="src/mainwindow.cpp" line="360"/>
<source>&Website</source>
<translation>&الموقع</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="343"/>
+ <location filename="src/mainwindow.cpp" line="362"/>
<source>%1 on the Web</source>
<translation>%1 على الشبكة</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="349"/>
+ <location filename="src/mainwindow.cpp" line="368"/>
<source>Please support the continued development of %1</source>
<translation>الرجاء التبرع لمتابعة تطوير %1</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="354"/>
+ <location filename="src/mainwindow.cpp" line="373"/>
<source>&About</source>
<translation>&عن البرنامج</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="356"/>
+ <location filename="src/mainwindow.cpp" line="375"/>
<source>Info about %1</source>
<translation>معلومات عن %1</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="364"/>
+ <location filename="src/mainwindow.cpp" line="383"/>
<source>Search</source>
<translation>البحث</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="383"/>
+ <location filename="src/mainwindow.cpp" line="402"/>
<source>Mute volume</source>
<translation>كتم الصوت</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="412"/>
- <location filename="src/mainwindow.cpp" line="1365"/>
+ <location filename="src/mainwindow.cpp" line="431"/>
+ <location filename="src/mainwindow.cpp" line="1406"/>
<source>&Downloads</source>
<translation>&التحميلات</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="413"/>
+ <location filename="src/mainwindow.cpp" line="432"/>
<source>Show details about video downloads</source>
<translation>عرض تفاصيل عن تحميلات الفيديو</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="421"/>
+ <location filename="src/mainwindow.cpp" line="440"/>
<source>&Download</source>
<translation>&التحميلات</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="422"/>
+ <location filename="src/mainwindow.cpp" line="441"/>
<source>Download the current video</source>
<translation>تحميل الفيديو الحالي</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="441"/>
+ <location filename="src/mainwindow.cpp" line="458"/>
+ <source>&Subscribe to Channel</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="src/mainwindow.cpp" line="465"/>
<source>Share the current video using %1</source>
<translation>شارك الفيديو الحالي باستخدام %1</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="458"/>
+ <location filename="src/mainwindow.cpp" line="482"/>
<source>&Email</source>
<translation>&البريد الإلكتروني</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="459"/>
+ <location filename="src/mainwindow.cpp" line="483"/>
<source>Email</source>
<translation>البريد الإلكتروني</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="463"/>
+ <location filename="src/mainwindow.cpp" line="487"/>
<source>&Close</source>
<translation>&اقفل</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="473"/>
+ <location filename="src/mainwindow.cpp" line="497"/>
<source>&Float on Top</source>
<translation>&اطفو علي القمة</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="478"/>
+ <location filename="src/mainwindow.cpp" line="502"/>
<source>&Stop After This Video</source>
<translation>&أوقف العرض التلقائي بعد الفيديو الحالي </translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="485"/>
+ <location filename="src/mainwindow.cpp" line="509"/>
<source>&Report an Issue...</source>
<translation>&أبلغ عن مشكلة</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="489"/>
+ <location filename="src/mainwindow.cpp" line="513"/>
<source>&Refine Search...</source>
<translation>&خيارات البحث...</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="501"/>
+ <location filename="src/mainwindow.cpp" line="525"/>
<source>More...</source>
<translation>المزيد...</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="504"/>
+ <location filename="src/mainwindow.cpp" line="528"/>
<source>&Related Videos</source>
- <translation type="unfinished"/>
+ <translation>مقاطع ذات &صلة</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="506"/>
+ <location filename="src/mainwindow.cpp" line="530"/>
<source>Watch videos related to the current one</source>
- <translation type="unfinished"/>
+ <translation>شاهد مقاطع فيديو ذات صلة بهذا</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="544"/>
+ <location filename="src/mainwindow.cpp" line="553"/>
<source>&Application</source>
<translation>&البرنامج</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="515"/>
+ <location filename="src/mainwindow.cpp" line="537"/>
<source>Buy %1...</source>
<translation>اشتري %1...</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="558"/>
+ <location filename="src/mainwindow.cpp" line="567"/>
<source>&Playback</source>
<translation>&قراءة</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="572"/>
+ <location filename="src/mainwindow.cpp" line="581"/>
<source>&Playlist</source>
<translation>&القائمة</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="581"/>
+ <location filename="src/mainwindow.cpp" line="590"/>
<source>&Video</source>
<translation>&الفيديو</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="594"/>
+ <location filename="src/mainwindow.cpp" line="605"/>
<source>&View</source>
<translation>&مشاهدة</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="601"/>
+ <location filename="src/mainwindow.cpp" line="612"/>
<source>&Share</source>
<translation>&شارك</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="615"/>
+ <location filename="src/mainwindow.cpp" line="626"/>
<source>&Help</source>
<translation>&المساعدة</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="690"/>
+ <location filename="src/mainwindow.cpp" line="701"/>
<source>Press %1 to raise the volume, %2 to lower it</source>
<translation>اضغط %1 لرفع الصوت و %2 لخفضه</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="889"/>
- <location filename="src/mainwindow.cpp" line="895"/>
+ <location filename="src/mainwindow.cpp" line="910"/>
+ <location filename="src/mainwindow.cpp" line="916"/>
<source>Opening %1</source>
<translation>جاري فتح %1</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="936"/>
+ <location filename="src/mainwindow.cpp" line="959"/>
<source>Do you want to exit %1 with a download in progress?</source>
<translation>هل تريد الخروج %1 رغم وجود تحميل?</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="937"/>
+ <location filename="src/mainwindow.cpp" line="960"/>
<source>If you close %1 now, this download will be cancelled.</source>
<translation>عند اغلاق %1 التحميل سيلغى.</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="942"/>
+ <location filename="src/mainwindow.cpp" line="965"/>
<source>Close and cancel download</source>
<translation>الاغلاق و الغاء التحميل</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="943"/>
+ <location filename="src/mainwindow.cpp" line="966"/>
<source>Wait for download to finish</source>
<translation>انتظار انتهاء التحميل</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="1102"/>
+ <location filename="src/mainwindow.cpp" line="1125"/>
<source>Leave &Full Screen</source>
<translation>غادر &الشاشة الكاملة</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="1475"/>
+ <location filename="src/mainwindow.cpp" line="1515"/>
<source>%1 version %2 is now available.</source>
<translation>%1 الإصدار %2 متوفر الآن.</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="1479"/>
+ <location filename="src/mainwindow.cpp" line="1519"/>
<source>Remind me later</source>
<translation>ذكرني لاحقا</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="1480"/>
+ <location filename="src/mainwindow.cpp" line="1520"/>
<source>Update</source>
<translation>تحديث</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="982"/>
+ <location filename="src/mainwindow.cpp" line="1005"/>
<source>Error: %1</source>
<translation>خطأ: %1</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="222"/>
+ <location filename="src/mainwindow.cpp" line="246"/>
<source>P&revious</source>
<translation>ال&سابق</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="223"/>
+ <location filename="src/mainwindow.cpp" line="247"/>
<source>Go back to the previous track</source>
<translation>العودة إلى المجاز السابق</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="262"/>
+ <location filename="src/mainwindow.cpp" line="281"/>
<source>&Compact Mode</source>
<translation>&الواجهة الخفيفة</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="275"/>
+ <location filename="src/mainwindow.cpp" line="294"/>
<source>Open the &YouTube Page</source>
<translation>أفتح صفحة الفيديو على &YouTube</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="282"/>
+ <location filename="src/mainwindow.cpp" line="301"/>
<source>Copy the YouTube &Link</source>
<translation>انسخ رابط الفيديو &Link</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="289"/>
+ <location filename="src/mainwindow.cpp" line="308"/>
<source>Copy the Video Stream &URL</source>
<translation>انسخ الفيديو وعنوانه</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="296"/>
+ <location filename="src/mainwindow.cpp" line="315"/>
<source>Find Video &Parts</source>
<translation>أبحث عن &أجزاء الفيديو الأُخرى</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="324"/>
+ <location filename="src/mainwindow.cpp" line="343"/>
<source>&Clear Recent Searches</source>
<translation>&مسح تاريخ البحث </translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="348"/>
+ <location filename="src/mainwindow.cpp" line="367"/>
<source>Make a &Donation</source>
<translation>القيام بتبرع</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="405"/>
+ <location filename="src/mainwindow.cpp" line="424"/>
<source>&Manually Start Playing</source>
<translation>&تشغيل الفيديوهات يدويا</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="406"/>
+ <location filename="src/mainwindow.cpp" line="425"/>
<source>Manually start playing videos</source>
<translation>بدء تشغيل الفيديو يدويا</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="728"/>
+ <location filename="src/mainwindow.cpp" line="739"/>
<source>Choose your content location</source>
- <translation type="unfinished"/>
+ <translation>اختر موقع محتوياتك</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="1002"/>
+ <location filename="src/mainwindow.cpp" line="1025"/>
<source>&Play</source>
<translation>&التشغيل</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="1003"/>
+ <location filename="src/mainwindow.cpp" line="1026"/>
<source>Resume playback</source>
<translation>اكمال التشغيل</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="1236"/>
+ <location filename="src/mainwindow.cpp" line="1277"/>
<source>Remaining time: %1</source>
<translation>الوقت المتبقي: %1</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="1294"/>
+ <location filename="src/mainwindow.cpp" line="1335"/>
<source>Volume at %1%</source>
<translation>%1%الصوت عند </translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="1300"/>
+ <location filename="src/mainwindow.cpp" line="1341"/>
<source>Volume is muted</source>
<translation>الصوت مكتوم</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="1303"/>
+ <location filename="src/mainwindow.cpp" line="1344"/>
<source>Volume is unmuted</source>
<translation>الصوت غير مكتوم</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="1310"/>
+ <location filename="src/mainwindow.cpp" line="1351"/>
<source>Maximum video definition set to %1</source>
<translation>الوضوح الاقصى %1</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="1351"/>
+ <location filename="src/mainwindow.cpp" line="1392"/>
<source>Your privacy is now safe</source>
<translation>خصوصيتك امنة</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="1366"/>
+ <location filename="src/mainwindow.cpp" line="1407"/>
<source>Downloads complete</source>
<translation>التحميل انتهى</translation>
</message>
<context>
<name>MediaView</name>
<message>
- <location filename="src/mediaview.cpp" line="553"/>
+ <location filename="src/mediaview.cpp" line="563"/>
<source>You can now paste the YouTube link into another application</source>
<translation>يمكنك لصق رابط YouTube في برنامج اخر</translation>
</message>
<message>
- <location filename="src/mediaview.cpp" line="561"/>
+ <location filename="src/mediaview.cpp" line="571"/>
<source>You can now paste the video stream URL into another application</source>
<translation>يمكنك لصق رابط الفيديو في برنامج اخر</translation>
</message>
<message>
- <location filename="src/mediaview.cpp" line="562"/>
+ <location filename="src/mediaview.cpp" line="572"/>
<source>The link will be valid only for a limited time.</source>
<translation>الرابط سيكون صالحا لمدة محدودة.</translation>
</message>
<message>
- <location filename="src/mediaview.cpp" line="636"/>
+ <location filename="src/mediaview.cpp" line="650"/>
<source>This is just the demo version of %1.</source>
<translation>هذه ليست سوى النسخة التجريبية من %1.</translation>
</message>
<message>
- <location filename="src/mediaview.cpp" line="637"/>
+ <location filename="src/mediaview.cpp" line="651"/>
<source>It allows you to test the application and see if it works for you.</source>
<translation>انها تتيح لك تجربة البرنامج.</translation>
</message>
<message>
- <location filename="src/mediaview.cpp" line="667"/>
+ <location filename="src/mediaview.cpp" line="681"/>
<source>Continue</source>
<translation>متابعة</translation>
</message>
<message>
- <location filename="src/mediaview.cpp" line="756"/>
+ <location filename="src/mediaview.cpp" line="772"/>
<source>of</source>
<comment>Used in video parts, as in '2 of 3'</comment>
<translation>من</translation>
</message>
<message>
- <location filename="src/mediaview.cpp" line="768"/>
+ <location filename="src/mediaview.cpp" line="785"/>
<source>part</source>
<comment>This is for video parts, as in 'Cool video - part 1'</comment>
<translation>جزء</translation>
</message>
<message>
- <location filename="src/mediaview.cpp" line="770"/>
+ <location filename="src/mediaview.cpp" line="787"/>
<source>episode</source>
<comment>This is for video parts, as in 'Cool series - episode 1'</comment>
<translation>حلقة</translation>
</message>
<message>
- <location filename="src/mediaview.cpp" line="847"/>
+ <location filename="src/mediaview.cpp" line="868"/>
<source>Sent from %1</source>
<translation>أرسلت من %1</translation>
</message>
<message>
- <location filename="src/mediaview.cpp" line="644"/>
+ <location filename="src/mediaview.cpp" line="899"/>
+ <source>Unsubscribe from %1</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="src/mediaview.cpp" line="903"/>
+ <source>Subscribe to %1</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="src/mediaview.cpp" line="658"/>
<source>Get the full version</source>
<translation>احصل على النسخة الكاملة</translation>
</message>
<message>
- <location filename="src/mediaview.cpp" line="681"/>
+ <location filename="src/mediaview.cpp" line="695"/>
<source>Downloading %1</source>
<translation>جاري تحميل %1</translation>
</message>
<message>
<location filename="local/src/updatedialog.cpp" line="21"/>
<source>A new version of %1 is available!</source>
- <translation type="unfinished"/>
+ <translation>يتوقّر إصدار جديد من %1!</translation>
</message>
<message>
<location filename="local/src/updatedialog.cpp" line="28"/>
<source>%1 %2 is now available. You have %3.</source>
- <translation type="unfinished"/>
+ <translation>1% %2 متوفر الآن. لديك 3%.</translation>
</message>
<message>
<location filename="local/src/updatedialog.cpp" line="33"/>
<source>Would you like to download it now?</source>
- <translation type="unfinished"/>
+ <translation>أتريد تنزيله الآن؟</translation>
</message>
<message>
<location filename="local/src/updatedialog.cpp" line="39"/>
<source>Skip This Version</source>
- <translation type="unfinished"/>
+ <translation>تجاوز هذا الإصدار</translation>
</message>
<message>
<location filename="local/src/updatedialog.cpp" line="43"/>
<context>
<name>PlaylistItemDelegate</name>
<message>
- <location filename="src/playlistitemdelegate.cpp" line="159"/>
+ <location filename="src/playlistitemdelegate.cpp" line="177"/>
<source>%1 views</source>
<translation>%1 مشاهدة</translation>
</message>
<message>
- <location filename="src/playlistitemdelegate.cpp" line="285"/>
+ <location filename="src/playlistitemdelegate.cpp" line="292"/>
<source>%1 of %2 (%3) — %4</source>
- <translation type="unfinished"/>
+ <translation>1% من 2% (3%) — 4%</translation>
</message>
<message>
- <location filename="src/playlistitemdelegate.cpp" line="292"/>
+ <location filename="src/playlistitemdelegate.cpp" line="299"/>
<source>Preparing</source>
<translation>تهيئة</translation>
</message>
<message>
- <location filename="src/playlistitemdelegate.cpp" line="294"/>
+ <location filename="src/playlistitemdelegate.cpp" line="301"/>
<source>Failed</source>
<translation>فشل</translation>
</message>
<message>
- <location filename="src/playlistitemdelegate.cpp" line="296"/>
+ <location filename="src/playlistitemdelegate.cpp" line="303"/>
<source>Completed</source>
<translation>تم</translation>
</message>
<message>
- <location filename="src/playlistitemdelegate.cpp" line="298"/>
+ <location filename="src/playlistitemdelegate.cpp" line="305"/>
<source>Stopped</source>
<translation>متوقف</translation>
</message>
<message>
- <location filename="src/playlistitemdelegate.cpp" line="334"/>
+ <location filename="src/playlistitemdelegate.cpp" line="341"/>
<source>Stop downloading</source>
<translation>ايقاف التحميل</translation>
</message>
<message>
- <location filename="src/playlistitemdelegate.cpp" line="344"/>
+ <location filename="src/playlistitemdelegate.cpp" line="351"/>
<source>Show in %1</source>
<translation>اظهار في %1</translation>
</message>
<message>
- <location filename="src/playlistitemdelegate.cpp" line="346"/>
+ <location filename="src/playlistitemdelegate.cpp" line="353"/>
<source>Open parent folder</source>
<translation>فتح المجلد الرئيسي</translation>
</message>
<message>
- <location filename="src/playlistitemdelegate.cpp" line="355"/>
+ <location filename="src/playlistitemdelegate.cpp" line="362"/>
<source>Restart downloading</source>
<translation>اعادة التحميل</translation>
</message>
<message>
<location filename="src/regionsview.cpp" line="19"/>
<source>Done</source>
- <translation type="unfinished"/>
+ <translation>تمّ</translation>
</message>
</context>
<context>
<context>
<name>SearchView</name>
<message>
- <location filename="src/searchview.cpp" line="71"/>
+ <location filename="src/searchview.cpp" line="66"/>
<source>Welcome to <a href='%1'>%2</a>,</source>
<translation>مرحبا بك في <a href='%1'>%2</a>,</translation>
</message>
<message>
- <location filename="src/searchview.cpp" line="50"/>
+ <location filename="src/searchview.cpp" line="161"/>
<source>Get the full version</source>
<translation>الحصول على النسخة الكاملة</translation>
</message>
<message>
- <location filename="src/searchview.cpp" line="85"/>
+ <location filename="src/searchview.cpp" line="80"/>
<source>Enter</source>
<extracomment>"Enter", as in "type". The whole phrase says: "Enter a keyword to start watching videos"</extracomment>
<translation>أدخل</translation>
</message>
<message>
- <location filename="src/searchview.cpp" line="90"/>
+ <location filename="src/searchview.cpp" line="85"/>
<source>a keyword</source>
<translation> كلمة مفتاح</translation>
</message>
<message>
- <location filename="src/searchview.cpp" line="91"/>
+ <location filename="src/searchview.cpp" line="86"/>
<source>a channel</source>
<translation>قناة</translation>
</message>
<message>
- <location filename="src/searchview.cpp" line="96"/>
+ <location filename="src/searchview.cpp" line="91"/>
<source>to start watching videos.</source>
<translation>لبدء مشاهدة أشرطة الفيديو</translation>
</message>
<message>
- <location filename="src/searchview.cpp" line="120"/>
+ <location filename="src/searchview.cpp" line="115"/>
<source>Watch</source>
<translation>شاهد</translation>
</message>
<message>
- <location filename="src/searchview.cpp" line="138"/>
+ <location filename="src/searchview.cpp" line="133"/>
<source>Recent keywords</source>
<translation>كلمات بحث سابقة</translation>
</message>
<message>
- <location filename="src/searchview.cpp" line="151"/>
+ <location filename="src/searchview.cpp" line="146"/>
<source>Recent channels</source>
<translation>القنوات الأخيرة</translation>
</message>
<context>
<name>SidebarHeader</name>
<message>
- <location filename="src/sidebarheader.cpp" line="16"/>
- <location filename="src/sidebarheader.cpp" line="23"/>
+ <location filename="src/sidebarheader.cpp" line="19"/>
+ <location filename="src/sidebarheader.cpp" line="26"/>
<source>&Back</source>
<translation>&عودة</translation>
</message>
<message>
<location filename="src/sidebarheader.cpp" line="57"/>
<source>Forward to %1</source>
- <translation type="unfinished"/>
+ <translation>تقدّم إلى %1</translation>
</message>
<message>
<location filename="src/sidebarheader.cpp" line="70"/>
<source>Back to %1</source>
- <translation type="unfinished"/>
+ <translation>عُد إلى %1</translation>
</message>
</context>
<context>
<source>Most Popular</source>
<translation>الأكثر شهرة</translation>
</message>
- <message>
- <location filename="src/standardfeedsview.cpp" line="86"/>
- <source>Featured</source>
- <translation type="unfinished"/>
- </message>
<message>
<location filename="src/standardfeedsview.cpp" line="87"/>
<source>Most Shared</source>
<message>
<location filename="src/standardfeedsview.cpp" line="88"/>
<source>Most Discussed</source>
- <translation type="unfinished"/>
+ <translation>الأكثر نقاشًا</translation>
</message>
<message>
<location filename="src/standardfeedsview.cpp" line="89"/>
<source>Top Rated</source>
<translation>الأعلى تقييما</translation>
</message>
+ <message>
+ <location filename="src/standardfeedsview.cpp" line="90"/>
+ <source>All Time Popular</source>
+ <translation type="unfinished"/>
+ </message>
</context>
<context>
<name>Video</name>
<message>
- <location filename="src/video.cpp" line="213"/>
+ <location filename="src/video.cpp" line="215"/>
<source>Cannot get video stream for %1</source>
<translation>لا يمكن الحصول على دفق الفيديو %1</translation>
</message>
<message>
- <location filename="src/video.cpp" line="231"/>
+ <location filename="src/video.cpp" line="233"/>
<source>Network error: %1 for %2</source>
<translation>خطأ شبكة:%1 الى %2</translation>
</message>
<message>
<location filename="src/aboutview.cpp" line="38"/>
<source>Licensed to: %1</source>
- <translation type="unfinished"/>
+ <translation>Llicenciat a: %1</translation>
</message>
<message>
<location filename="src/aboutview.cpp" line="42"/>
<message>
<location filename="local/src/activationdialog.cpp" line="17"/>
<source>Enter your License Details</source>
- <translation type="unfinished"/>
+ <translation>Entra els detalls de la teva llicència</translation>
</message>
<message>
<location filename="local/src/activationdialog.cpp" line="29"/>
<source>&Email:</source>
- <translation type="unfinished"/>
+ <translation>&Email:</translation>
</message>
<message>
<location filename="local/src/activationdialog.cpp" line="35"/>
<source>&Code:</source>
- <translation type="unfinished"/>
+ <translation>&Codi:</translation>
</message>
</context>
<context>
<message>
<location filename="local/src/activationview.cpp" line="55"/>
<source>Without a license, the application will expire in %1 days.</source>
- <translation type="unfinished"/>
+ <translation>Sense llicència, l'aplicació caducarà en %1 dies</translation>
</message>
<message>
<location filename="local/src/activationview.cpp" line="57"/>
<message>
<location filename="local/src/activationview.cpp" line="77"/>
<source>Enter License</source>
- <translation type="unfinished"/>
+ <translation>Entra la lliçència </translation>
</message>
<message>
<location filename="local/src/activationview.cpp" line="85"/>
<source>Buy License</source>
+ <translation>Comprar llicència</translation>
+ </message>
+</context>
+<context>
+ <name>ChannelAggregator</name>
+ <message>
+ <location filename="src/channelaggregator.cpp" line="110"/>
+ <source>By %1</source>
+ <translation type="unfinished"/>
+ </message>
+ <message numerus="yes">
+ <location filename="src/channelaggregator.cpp" line="112"/>
+ <source>You have %n new video(s)</source>
+ <translation type="unfinished"><numerusform></numerusform><numerusform></numerusform></translation>
+ </message>
+</context>
+<context>
+ <name>ChannelItemDelegate</name>
+ <message>
+ <location filename="src/channelitemdelegate.cpp" line="46"/>
+ <source>All Videos</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="src/channelitemdelegate.cpp" line="63"/>
+ <source>Unwatched Videos</source>
+ <translation type="unfinished"/>
+ </message>
+</context>
+<context>
+ <name>ChannelView</name>
+ <message>
+ <location filename="src/channelview.cpp" line="75"/>
+ <source>Mark all as watched</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="src/channelview.cpp" line="83"/>
+ <source>Show Updated</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="src/channelview.cpp" line="95"/>
+ <source>Name</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="src/channelview.cpp" line="102"/>
+ <source>Last Updated</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="src/channelview.cpp" line="109"/>
+ <source>Last Added</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="src/channelview.cpp" line="116"/>
+ <source>Last Watched</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="src/channelview.cpp" line="123"/>
+ <source>Most Watched</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="src/channelview.cpp" line="131"/>
+ <source>Sort by</source>
+ <translation>Ordena per</translation>
+ </message>
+ <message>
+ <location filename="src/channelview.cpp" line="190"/>
+ <source>All Videos</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="src/channelview.cpp" line="194"/>
+ <source>Unwatched Videos</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="src/channelview.cpp" line="206"/>
+ <source>There are no updated subscriptions at this time.</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="src/channelview.cpp" line="208"/>
+ <source>You have no subscriptions. Use the star symbol to subscribe to channels.</source>
<translation type="unfinished"/>
</message>
</context>
<message>
<location filename="local/src/updatedialog.cpp" line="60"/>
<source>Downloading update...</source>
- <translation type="unfinished"/>
+ <translation>Descarregant actualitzacions...</translation>
</message>
</context>
<context>
<context>
<name>HomeView</name>
<message>
- <location filename="src/homeview.cpp" line="33"/>
+ <location filename="src/homeview.cpp" line="38"/>
<source>Search</source>
<translation>Cerca</translation>
</message>
<message>
- <location filename="src/homeview.cpp" line="35"/>
+ <location filename="src/homeview.cpp" line="40"/>
<source>Find videos and channels by keyword</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="src/homeview.cpp" line="40"/>
+ <location filename="src/homeview.cpp" line="45"/>
<source>Browse</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="src/homeview.cpp" line="42"/>
+ <location filename="src/homeview.cpp" line="47"/>
<source>Browse videos by category</source>
<translation type="unfinished"/>
</message>
+ <message>
+ <location filename="src/homeview.cpp" line="51"/>
+ <source>Subscriptions</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="src/homeview.cpp" line="53"/>
+ <source>Channel subscriptions</source>
+ <translation type="unfinished"/>
+ </message>
<message>
<location filename="src/homeview.h" line="22"/>
<source>Make yourself comfortable</source>
<context>
<name>LoadingWidget</name>
<message>
- <location filename="src/loadingwidget.cpp" line="90"/>
+ <location filename="src/loadingwidget.cpp" line="88"/>
<source>Error</source>
<translation>Error</translation>
</message>
<context>
<name>MainWindow</name>
<message>
- <location filename="src/mainwindow.cpp" line="213"/>
+ <location filename="src/mainwindow.cpp" line="237"/>
<source>&Stop</source>
<translation>&Atura</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="214"/>
+ <location filename="src/mainwindow.cpp" line="238"/>
<source>Stop playback and go back to the search view</source>
<translation>Atura la reproducció i torna a la vista de búsqueda</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="232"/>
+ <location filename="src/mainwindow.cpp" line="253"/>
<source>S&kip</source>
<translation>&Salta</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="233"/>
+ <location filename="src/mainwindow.cpp" line="254"/>
<source>Skip to the next video</source>
<translation>Salta al vídeo següent</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="239"/>
- <location filename="src/mainwindow.cpp" line="989"/>
+ <location filename="src/mainwindow.cpp" line="260"/>
+ <location filename="src/mainwindow.cpp" line="1012"/>
<source>&Pause</source>
<translation>&Pausa</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="240"/>
- <location filename="src/mainwindow.cpp" line="990"/>
+ <location filename="src/mainwindow.cpp" line="261"/>
+ <location filename="src/mainwindow.cpp" line="1013"/>
<source>Pause playback</source>
<translation>Pausa la reproducció</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="246"/>
+ <location filename="src/mainwindow.cpp" line="267"/>
<source>&Full Screen</source>
<translation>Pantalla &completa</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="247"/>
+ <location filename="src/mainwindow.cpp" line="268"/>
<source>Go full screen</source>
<translation>Passa a pantalla completa</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="263"/>
+ <location filename="src/mainwindow.cpp" line="282"/>
<source>Hide the playlist and the toolbar</source>
<translation>Amaga la llista de reproducció i la barra d'eines</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="276"/>
+ <location filename="src/mainwindow.cpp" line="295"/>
<source>Go to the YouTube video page and pause playback</source>
<translation>Ves a la pàgina del vídeo del YouTube i pausa la reproducció</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="283"/>
+ <location filename="src/mainwindow.cpp" line="302"/>
<source>Copy the current video YouTube link to the clipboard</source>
<translation>Copia l'enllaç del vídeo actual del YouTube al porta-retalls</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="290"/>
+ <location filename="src/mainwindow.cpp" line="309"/>
<source>Copy the current video stream URL to the clipboard</source>
<translation>Copia el URL del flux de vídeo actual al porta-retalls</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="297"/>
+ <location filename="src/mainwindow.cpp" line="316"/>
<source>Find other video parts hopefully in the right order</source>
<translation>Troba altres parts del vídeo, amb sort en l'ordre correcte</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="303"/>
+ <location filename="src/mainwindow.cpp" line="322"/>
<source>&Remove</source>
<translation>&Elimina</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="304"/>
+ <location filename="src/mainwindow.cpp" line="323"/>
<source>Remove the selected videos from the playlist</source>
<translation>Elimina els vídeos seleccionats de la llista de reproducció</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="310"/>
+ <location filename="src/mainwindow.cpp" line="329"/>
<source>Move &Up</source>
<translation>Mou &amunt</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="311"/>
+ <location filename="src/mainwindow.cpp" line="330"/>
<source>Move up the selected videos in the playlist</source>
<translation>Mou amunt els vídeos seleccionats en la llista de reproducció</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="317"/>
+ <location filename="src/mainwindow.cpp" line="336"/>
<source>Move &Down</source>
<translation>Mou a&vall</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="318"/>
+ <location filename="src/mainwindow.cpp" line="337"/>
<source>Move down the selected videos in the playlist</source>
<translation>Mou avall els vídeos seleccionats en la llista de reproducció</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="329"/>
+ <location filename="src/mainwindow.cpp" line="348"/>
<source>Clear the search history. Cannot be undone.</source>
<translation>Neteja l'historial de búsquedes. No es pot desfer.</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="334"/>
+ <location filename="src/mainwindow.cpp" line="353"/>
<source>&Quit</source>
<translation>&Surt</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="337"/>
+ <location filename="src/mainwindow.cpp" line="356"/>
<source>Bye</source>
<translation>Adéu</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="341"/>
+ <location filename="src/mainwindow.cpp" line="360"/>
<source>&Website</source>
<translation>Pàgina &web</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="343"/>
+ <location filename="src/mainwindow.cpp" line="362"/>
<source>%1 on the Web</source>
<translation>%1 a la xarxa</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="349"/>
+ <location filename="src/mainwindow.cpp" line="368"/>
<source>Please support the continued development of %1</source>
<translation>Siusplau ajuda al desenvolupament continuat del %1</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="354"/>
+ <location filename="src/mainwindow.cpp" line="373"/>
<source>&About</source>
<translation>&Quant a</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="356"/>
+ <location filename="src/mainwindow.cpp" line="375"/>
<source>Info about %1</source>
<translation>Info sobre %1</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="364"/>
+ <location filename="src/mainwindow.cpp" line="383"/>
<source>Search</source>
<translation>Cerca</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="383"/>
+ <location filename="src/mainwindow.cpp" line="402"/>
<source>Mute volume</source>
<translation>Silencia el volum</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="412"/>
- <location filename="src/mainwindow.cpp" line="1365"/>
+ <location filename="src/mainwindow.cpp" line="431"/>
+ <location filename="src/mainwindow.cpp" line="1406"/>
<source>&Downloads</source>
<translation>&Baixades</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="413"/>
+ <location filename="src/mainwindow.cpp" line="432"/>
<source>Show details about video downloads</source>
<translation>Mostra detalls de les descàrregues de vídeo</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="421"/>
+ <location filename="src/mainwindow.cpp" line="440"/>
<source>&Download</source>
<translation>&Baixa</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="422"/>
+ <location filename="src/mainwindow.cpp" line="441"/>
<source>Download the current video</source>
<translation>Baixa el vídeo actual</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="441"/>
+ <location filename="src/mainwindow.cpp" line="458"/>
+ <source>&Subscribe to Channel</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="src/mainwindow.cpp" line="465"/>
<source>Share the current video using %1</source>
<translation>Comparteix el vídeo actual fent servir %1</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="458"/>
+ <location filename="src/mainwindow.cpp" line="482"/>
<source>&Email</source>
<translation>&Email</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="459"/>
+ <location filename="src/mainwindow.cpp" line="483"/>
<source>Email</source>
<translation>Correu electrònic</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="463"/>
+ <location filename="src/mainwindow.cpp" line="487"/>
<source>&Close</source>
<translation>&Tanca</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="473"/>
+ <location filename="src/mainwindow.cpp" line="497"/>
<source>&Float on Top</source>
<translation>Manté a &sobre</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="478"/>
+ <location filename="src/mainwindow.cpp" line="502"/>
<source>&Stop After This Video</source>
<translation>&Atura després d'aquest vídeo</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="485"/>
+ <location filename="src/mainwindow.cpp" line="509"/>
<source>&Report an Issue...</source>
<translation>&Informa d'un problema...</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="489"/>
+ <location filename="src/mainwindow.cpp" line="513"/>
<source>&Refine Search...</source>
<translation>&Afina la Cerca...</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="501"/>
+ <location filename="src/mainwindow.cpp" line="525"/>
<source>More...</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="504"/>
+ <location filename="src/mainwindow.cpp" line="528"/>
<source>&Related Videos</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="506"/>
+ <location filename="src/mainwindow.cpp" line="530"/>
<source>Watch videos related to the current one</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="544"/>
+ <location filename="src/mainwindow.cpp" line="553"/>
<source>&Application</source>
<translation>&Aplicació</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="515"/>
+ <location filename="src/mainwindow.cpp" line="537"/>
<source>Buy %1...</source>
<translation>Compra %1...</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="558"/>
+ <location filename="src/mainwindow.cpp" line="567"/>
<source>&Playback</source>
<translation>&Reproducció</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="572"/>
+ <location filename="src/mainwindow.cpp" line="581"/>
<source>&Playlist</source>
<translation>&Llista de reproducció</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="581"/>
+ <location filename="src/mainwindow.cpp" line="590"/>
<source>&Video</source>
<translation>&Vídeo</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="594"/>
+ <location filename="src/mainwindow.cpp" line="605"/>
<source>&View</source>
<translation>&Vista</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="601"/>
+ <location filename="src/mainwindow.cpp" line="612"/>
<source>&Share</source>
<translation>&Compartir</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="615"/>
+ <location filename="src/mainwindow.cpp" line="626"/>
<source>&Help</source>
<translation>A&juda</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="690"/>
+ <location filename="src/mainwindow.cpp" line="701"/>
<source>Press %1 to raise the volume, %2 to lower it</source>
<translation>Premeu %1 per pujar el volum, %2 per baixar-lo</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="889"/>
- <location filename="src/mainwindow.cpp" line="895"/>
+ <location filename="src/mainwindow.cpp" line="910"/>
+ <location filename="src/mainwindow.cpp" line="916"/>
<source>Opening %1</source>
<translation>Obrint %1</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="936"/>
+ <location filename="src/mainwindow.cpp" line="959"/>
<source>Do you want to exit %1 with a download in progress?</source>
<translation>Vol abandonar el %1 amb una baixada en curs?</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="937"/>
+ <location filename="src/mainwindow.cpp" line="960"/>
<source>If you close %1 now, this download will be cancelled.</source>
<translation>Si tanca el %1 ara, aquesta baixada es cancel·larà.</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="942"/>
+ <location filename="src/mainwindow.cpp" line="965"/>
<source>Close and cancel download</source>
<translation>Tanca i cancel·la la baixada</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="943"/>
+ <location filename="src/mainwindow.cpp" line="966"/>
<source>Wait for download to finish</source>
<translation>Espera a acabar la baixada</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="1102"/>
+ <location filename="src/mainwindow.cpp" line="1125"/>
<source>Leave &Full Screen</source>
<translation>Abandona la Pantalla &Completa</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="1475"/>
+ <location filename="src/mainwindow.cpp" line="1515"/>
<source>%1 version %2 is now available.</source>
<translation>%1 versió %2 ja està disponible.</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="1479"/>
+ <location filename="src/mainwindow.cpp" line="1519"/>
<source>Remind me later</source>
<translation>Recorda-m'ho més tard</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="1480"/>
+ <location filename="src/mainwindow.cpp" line="1520"/>
<source>Update</source>
<translation>Actualitza</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="982"/>
+ <location filename="src/mainwindow.cpp" line="1005"/>
<source>Error: %1</source>
<translation>Error: %1</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="222"/>
+ <location filename="src/mainwindow.cpp" line="246"/>
<source>P&revious</source>
<translation>P&revi</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="223"/>
+ <location filename="src/mainwindow.cpp" line="247"/>
<source>Go back to the previous track</source>
<translation>Torna a la pista anterior</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="262"/>
+ <location filename="src/mainwindow.cpp" line="281"/>
<source>&Compact Mode</source>
<translation>&Mode compacte</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="275"/>
+ <location filename="src/mainwindow.cpp" line="294"/>
<source>Open the &YouTube Page</source>
<translation>Obre la pàgina de &YouTube</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="282"/>
+ <location filename="src/mainwindow.cpp" line="301"/>
<source>Copy the YouTube &Link</source>
<translation>Copia l'&enllaç de YouTube</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="289"/>
+ <location filename="src/mainwindow.cpp" line="308"/>
<source>Copy the Video Stream &URL</source>
<translation>Copia el &URL del flux de vídeo</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="296"/>
+ <location filename="src/mainwindow.cpp" line="315"/>
<source>Find Video &Parts</source>
<translation>Troba &parts de vídeo</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="324"/>
+ <location filename="src/mainwindow.cpp" line="343"/>
<source>&Clear Recent Searches</source>
<translation>&Neteja les búsquedes recents</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="348"/>
+ <location filename="src/mainwindow.cpp" line="367"/>
<source>Make a &Donation</source>
<translation>Fer una &donació</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="405"/>
+ <location filename="src/mainwindow.cpp" line="424"/>
<source>&Manually Start Playing</source>
<translation>Reprodueix vídeos &manualment</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="406"/>
+ <location filename="src/mainwindow.cpp" line="425"/>
<source>Manually start playing videos</source>
<translation>Comença a reproduir vídeos manualment</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="728"/>
+ <location filename="src/mainwindow.cpp" line="739"/>
<source>Choose your content location</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="1002"/>
+ <location filename="src/mainwindow.cpp" line="1025"/>
<source>&Play</source>
<translation>&Reprodueix</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="1003"/>
+ <location filename="src/mainwindow.cpp" line="1026"/>
<source>Resume playback</source>
<translation>Continua la reproducció</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="1236"/>
+ <location filename="src/mainwindow.cpp" line="1277"/>
<source>Remaining time: %1</source>
<translation>Temps restant: %1</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="1294"/>
+ <location filename="src/mainwindow.cpp" line="1335"/>
<source>Volume at %1%</source>
<translation>Volum al %1%</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="1300"/>
+ <location filename="src/mainwindow.cpp" line="1341"/>
<source>Volume is muted</source>
<translation>El volum està silenciat</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="1303"/>
+ <location filename="src/mainwindow.cpp" line="1344"/>
<source>Volume is unmuted</source>
<translation>El volum no està silenciat</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="1310"/>
+ <location filename="src/mainwindow.cpp" line="1351"/>
<source>Maximum video definition set to %1</source>
<translation>Resolució màxima de vídeo fixada a %1</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="1351"/>
+ <location filename="src/mainwindow.cpp" line="1392"/>
<source>Your privacy is now safe</source>
<translation>La vostra privacitat ara és segura</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="1366"/>
+ <location filename="src/mainwindow.cpp" line="1407"/>
<source>Downloads complete</source>
<translation>Baixades completes</translation>
</message>
<context>
<name>MediaView</name>
<message>
- <location filename="src/mediaview.cpp" line="553"/>
+ <location filename="src/mediaview.cpp" line="563"/>
<source>You can now paste the YouTube link into another application</source>
<translation>Ja podeu enganxar l'enllaç de YouTube en una altra aplicació</translation>
</message>
<message>
- <location filename="src/mediaview.cpp" line="561"/>
+ <location filename="src/mediaview.cpp" line="571"/>
<source>You can now paste the video stream URL into another application</source>
<translation>Ja pot enganxar el URL del flux de vídeo en una altra aplicació</translation>
</message>
<message>
- <location filename="src/mediaview.cpp" line="562"/>
+ <location filename="src/mediaview.cpp" line="572"/>
<source>The link will be valid only for a limited time.</source>
<translation>L'enllaç només serà vàlid durant un temps limitat.</translation>
</message>
<message>
- <location filename="src/mediaview.cpp" line="636"/>
+ <location filename="src/mediaview.cpp" line="650"/>
<source>This is just the demo version of %1.</source>
<translation>Aquesta només és la versió de demostració del %1.</translation>
</message>
<message>
- <location filename="src/mediaview.cpp" line="637"/>
+ <location filename="src/mediaview.cpp" line="651"/>
<source>It allows you to test the application and see if it works for you.</source>
<translation>Us permet probar l'aplicació i veure si us va bé.</translation>
</message>
<message>
- <location filename="src/mediaview.cpp" line="667"/>
+ <location filename="src/mediaview.cpp" line="681"/>
<source>Continue</source>
<translation>Continua</translation>
</message>
<message>
- <location filename="src/mediaview.cpp" line="756"/>
+ <location filename="src/mediaview.cpp" line="772"/>
<source>of</source>
<comment>Used in video parts, as in '2 of 3'</comment>
<translation>de</translation>
</message>
<message>
- <location filename="src/mediaview.cpp" line="768"/>
+ <location filename="src/mediaview.cpp" line="785"/>
<source>part</source>
<comment>This is for video parts, as in 'Cool video - part 1'</comment>
<translation>part</translation>
</message>
<message>
- <location filename="src/mediaview.cpp" line="770"/>
+ <location filename="src/mediaview.cpp" line="787"/>
<source>episode</source>
<comment>This is for video parts, as in 'Cool series - episode 1'</comment>
<translation>episodi</translation>
</message>
<message>
- <location filename="src/mediaview.cpp" line="847"/>
+ <location filename="src/mediaview.cpp" line="868"/>
<source>Sent from %1</source>
<translation>Enviat des de %1</translation>
</message>
<message>
- <location filename="src/mediaview.cpp" line="644"/>
+ <location filename="src/mediaview.cpp" line="899"/>
+ <source>Unsubscribe from %1</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="src/mediaview.cpp" line="903"/>
+ <source>Subscribe to %1</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="src/mediaview.cpp" line="658"/>
<source>Get the full version</source>
<translation>Aconseguiu la versió completa</translation>
</message>
<message>
- <location filename="src/mediaview.cpp" line="681"/>
+ <location filename="src/mediaview.cpp" line="695"/>
<source>Downloading %1</source>
<translation>Baixant %1</translation>
</message>
<message>
<location filename="local/src/updatedialog.cpp" line="21"/>
<source>A new version of %1 is available!</source>
- <translation type="unfinished"/>
+ <translation>Una nova versió de %1 està disponible</translation>
</message>
<message>
<location filename="local/src/updatedialog.cpp" line="28"/>
<source>%1 %2 is now available. You have %3.</source>
- <translation type="unfinished"/>
+ <translation>%1 %2 estan disponibles. Tu tens %3.</translation>
</message>
<message>
<location filename="local/src/updatedialog.cpp" line="33"/>
<source>Would you like to download it now?</source>
- <translation type="unfinished"/>
+ <translation>T'agradaria descarregar-ho ara?</translation>
</message>
<message>
<location filename="local/src/updatedialog.cpp" line="39"/>
<source>Skip This Version</source>
- <translation type="unfinished"/>
+ <translation>Omet aquesta versió</translation>
</message>
<message>
<location filename="local/src/updatedialog.cpp" line="43"/>
<source>Remind Me Later</source>
- <translation type="unfinished"/>
+ <translation>Recorda-m'ho després</translation>
</message>
<message>
<location filename="local/src/updatedialog.cpp" line="47"/>
<source>Install Update</source>
- <translation type="unfinished"/>
+ <translation>Instal·la Actualització</translation>
</message>
</context>
<context>
<message>
<location filename="local/src/pastelineedit.cpp" line="6"/>
<source>Paste</source>
- <translation type="unfinished"/>
+ <translation>Enganxar</translation>
</message>
</context>
<context>
<name>PlaylistItemDelegate</name>
<message>
- <location filename="src/playlistitemdelegate.cpp" line="159"/>
+ <location filename="src/playlistitemdelegate.cpp" line="177"/>
<source>%1 views</source>
<translation>%1 visualitzacions</translation>
</message>
<message>
- <location filename="src/playlistitemdelegate.cpp" line="285"/>
+ <location filename="src/playlistitemdelegate.cpp" line="292"/>
<source>%1 of %2 (%3) — %4</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="src/playlistitemdelegate.cpp" line="292"/>
+ <location filename="src/playlistitemdelegate.cpp" line="299"/>
<source>Preparing</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="src/playlistitemdelegate.cpp" line="294"/>
+ <location filename="src/playlistitemdelegate.cpp" line="301"/>
<source>Failed</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="src/playlistitemdelegate.cpp" line="296"/>
+ <location filename="src/playlistitemdelegate.cpp" line="303"/>
<source>Completed</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="src/playlistitemdelegate.cpp" line="298"/>
+ <location filename="src/playlistitemdelegate.cpp" line="305"/>
<source>Stopped</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="src/playlistitemdelegate.cpp" line="334"/>
+ <location filename="src/playlistitemdelegate.cpp" line="341"/>
<source>Stop downloading</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="src/playlistitemdelegate.cpp" line="344"/>
+ <location filename="src/playlistitemdelegate.cpp" line="351"/>
<source>Show in %1</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="src/playlistitemdelegate.cpp" line="346"/>
+ <location filename="src/playlistitemdelegate.cpp" line="353"/>
<source>Open parent folder</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="src/playlistitemdelegate.cpp" line="355"/>
+ <location filename="src/playlistitemdelegate.cpp" line="362"/>
<source>Restart downloading</source>
<translation type="unfinished"/>
</message>
<context>
<name>SearchView</name>
<message>
- <location filename="src/searchview.cpp" line="71"/>
+ <location filename="src/searchview.cpp" line="66"/>
<source>Welcome to <a href='%1'>%2</a>,</source>
<translation>Benvinguts al <a href='%1'>%2</a>,</translation>
</message>
<message>
- <location filename="src/searchview.cpp" line="50"/>
+ <location filename="src/searchview.cpp" line="161"/>
<source>Get the full version</source>
<translation>Aconsegueix la versió completa</translation>
</message>
<message>
- <location filename="src/searchview.cpp" line="85"/>
+ <location filename="src/searchview.cpp" line="80"/>
<source>Enter</source>
<extracomment>"Enter", as in "type". The whole phrase says: "Enter a keyword to start watching videos"</extracomment>
<translation>Introdueix</translation>
</message>
<message>
- <location filename="src/searchview.cpp" line="90"/>
+ <location filename="src/searchview.cpp" line="85"/>
<source>a keyword</source>
<translation>una paraula</translation>
</message>
<message>
- <location filename="src/searchview.cpp" line="91"/>
+ <location filename="src/searchview.cpp" line="86"/>
<source>a channel</source>
<translation>un canal</translation>
</message>
<message>
- <location filename="src/searchview.cpp" line="96"/>
+ <location filename="src/searchview.cpp" line="91"/>
<source>to start watching videos.</source>
<translation>per comencar a veure vídeos.</translation>
</message>
<message>
- <location filename="src/searchview.cpp" line="120"/>
+ <location filename="src/searchview.cpp" line="115"/>
<source>Watch</source>
<translation>Veure</translation>
</message>
<message>
- <location filename="src/searchview.cpp" line="138"/>
+ <location filename="src/searchview.cpp" line="133"/>
<source>Recent keywords</source>
<translation>Búsquedes recents</translation>
</message>
<message>
- <location filename="src/searchview.cpp" line="151"/>
+ <location filename="src/searchview.cpp" line="146"/>
<source>Recent channels</source>
<translation>Canals recents</translation>
</message>
<context>
<name>SidebarHeader</name>
<message>
- <location filename="src/sidebarheader.cpp" line="16"/>
- <location filename="src/sidebarheader.cpp" line="23"/>
+ <location filename="src/sidebarheader.cpp" line="19"/>
+ <location filename="src/sidebarheader.cpp" line="26"/>
<source>&Back</source>
<translation>&Enrere</translation>
</message>
<source>Most Popular</source>
<translation type="unfinished"/>
</message>
- <message>
- <location filename="src/standardfeedsview.cpp" line="86"/>
- <source>Featured</source>
- <translation type="unfinished"/>
- </message>
<message>
<location filename="src/standardfeedsview.cpp" line="87"/>
<source>Most Shared</source>
<source>Top Rated</source>
<translation type="unfinished"/>
</message>
+ <message>
+ <location filename="src/standardfeedsview.cpp" line="90"/>
+ <source>All Time Popular</source>
+ <translation type="unfinished"/>
+ </message>
</context>
<context>
<name>Video</name>
<message>
- <location filename="src/video.cpp" line="213"/>
+ <location filename="src/video.cpp" line="215"/>
<source>Cannot get video stream for %1</source>
<translation>No es pot obtenir flux de vídeo per %1</translation>
</message>
<message>
- <location filename="src/video.cpp" line="231"/>
+ <location filename="src/video.cpp" line="233"/>
<source>Network error: %1 for %2</source>
<translation>Error de xarxa: %1 per %2</translation>
</message>
+++ /dev/null
-<?xml version="1.0" ?><!DOCTYPE TS><TS language="ca_ES" version="2.0">
-<defaultcodec>UTF-8</defaultcodec>
-<context>
- <name>AboutView</name>
- <message>
- <location filename="src/aboutview.cpp" line="32"/>
- <source>There's life outside the browser!</source>
- <translation>Hi ha vida fora del navegador!</translation>
- </message>
- <message>
- <location filename="src/aboutview.cpp" line="33"/>
- <source>Version %1</source>
- <translation>Versió %1</translation>
- </message>
- <message>
- <location filename="src/aboutview.cpp" line="38"/>
- <source>Licensed to: %1</source>
- <translation type="unfinished"/>
- </message>
- <message>
- <location filename="src/aboutview.cpp" line="42"/>
- <source>%1 is Free Software but its development takes precious time.</source>
- <translation>%1 és Software Lliure però el seu desenvolupament pren un temps molt valuós.</translation>
- </message>
- <message>
- <location filename="src/aboutview.cpp" line="43"/>
- <source>Please <a href='%1'>donate</a> to support the continued development of %2.</source>
- <translation>Si us plau <a href='%1'>doneu</a> per ajudar al desenvolupament continuat del %2.</translation>
- </message>
- <message>
- <location filename="src/aboutview.cpp" line="47"/>
- <source>You may want to try my other apps as well:</source>
- <translation>Potser també voldreu provar les meves altres aplicacions:</translation>
- </message>
- <message>
- <location filename="src/aboutview.cpp" line="50"/>
- <source>%1, a YouTube music player</source>
- <translation>%1, un reproductor de música del YouTube</translation>
- </message>
- <message>
- <location filename="src/aboutview.cpp" line="54"/>
- <source>%1, a music player</source>
- <translation>%1, un reproductor de música</translation>
- </message>
- <message>
- <location filename="src/aboutview.cpp" line="60"/>
- <source>Translate %1 to your native language using %2</source>
- <translation>Traduïu el %1 al vostre idioma natal a través de %2</translation>
- </message>
- <message>
- <location filename="src/aboutview.cpp" line="65"/>
- <source>Icon designed by %1.</source>
- <translation>Icona dissenyada per %1.</translation>
- </message>
- <message>
- <location filename="src/aboutview.cpp" line="69"/>
- <source>Released under the <a href='%1'>GNU General Public License</a></source>
- <translation>Llançat sota la <a href='%1'>Llicència Pública General de GNU</a></translation>
- </message>
- <message>
- <location filename="src/aboutview.cpp" line="84"/>
- <source>&Close</source>
- <translation>&Tanca</translation>
- </message>
- <message>
- <location filename="src/aboutview.h" line="17"/>
- <source>About</source>
- <translation>Quant a</translation>
- </message>
- <message>
- <location filename="src/aboutview.h" line="19"/>
- <source>What you always wanted to know about %1 and never dared to ask</source>
- <translation>El que sempre havíeu volgut saber sobre el %1 i mai us havíeu atrevit a preguntar</translation>
- </message>
-</context>
-<context>
- <name>ActivationDialog</name>
- <message>
- <location filename="local/src/activationdialog.cpp" line="17"/>
- <source>Enter your License Details</source>
- <translation type="unfinished"/>
- </message>
- <message>
- <location filename="local/src/activationdialog.cpp" line="29"/>
- <source>&Email:</source>
- <translation type="unfinished"/>
- </message>
- <message>
- <location filename="local/src/activationdialog.cpp" line="35"/>
- <source>&Code:</source>
- <translation type="unfinished"/>
- </message>
-</context>
-<context>
- <name>ActivationView</name>
- <message>
- <location filename="local/src/activationview.cpp" line="47"/>
- <source>Please license %1</source>
- <translation>Si us plau, llicencia el %1</translation>
- </message>
- <message>
- <location filename="local/src/activationview.cpp" line="51"/>
- <source>This demo has expired.</source>
- <translation>Aquesta demo ha expirat.</translation>
- </message>
- <message>
- <location filename="local/src/activationview.cpp" line="53"/>
- <source>The full version allows you to download videos longer than %1 minutes and to watch videos without interruptions.</source>
- <translation type="unfinished"/>
- </message>
- <message>
- <location filename="local/src/activationview.cpp" line="55"/>
- <source>Without a license, the application will expire in %1 days.</source>
- <translation type="unfinished"/>
- </message>
- <message>
- <location filename="local/src/activationview.cpp" line="57"/>
- <source>By purchasing the full version, you will also support the hard work I put into creating %1.</source>
- <translation>Comprant la versió completa, també donareu suport al dur treball que he posat en la creació del %1.</translation>
- </message>
- <message>
- <location filename="local/src/activationview.cpp" line="70"/>
- <source>Use Demo</source>
- <translation>Utilitza la demo</translation>
- </message>
- <message>
- <location filename="local/src/activationview.cpp" line="77"/>
- <source>Enter License</source>
- <translation type="unfinished"/>
- </message>
- <message>
- <location filename="local/src/activationview.cpp" line="85"/>
- <source>Buy License</source>
- <translation type="unfinished"/>
- </message>
-</context>
-<context>
- <name>ClearButton</name>
- <message>
- <location filename="src/searchlineedit.cpp" line="56"/>
- <source>Clear</source>
- <translation>Neteja</translation>
- </message>
-</context>
-<context>
- <name>DownloadItem</name>
- <message>
- <location filename="src/downloaditem.cpp" line="322"/>
- <source>bytes</source>
- <translation>bytes</translation>
- </message>
- <message>
- <location filename="src/downloaditem.cpp" line="325"/>
- <source>KB</source>
- <translation>KB</translation>
- </message>
- <message>
- <location filename="src/downloaditem.cpp" line="328"/>
- <source>MB</source>
- <translation>MB</translation>
- </message>
- <message>
- <location filename="src/downloaditem.cpp" line="337"/>
- <source>bytes/sec</source>
- <translation>bytes/seg</translation>
- </message>
- <message>
- <location filename="src/downloaditem.cpp" line="340"/>
- <source>KB/sec</source>
- <translation>KB/seg</translation>
- </message>
- <message>
- <location filename="src/downloaditem.cpp" line="343"/>
- <source>MB/sec</source>
- <translation>MB/seg</translation>
- </message>
- <message>
- <location filename="src/downloaditem.cpp" line="349"/>
- <source>seconds</source>
- <translation>segons</translation>
- </message>
- <message>
- <location filename="src/downloaditem.cpp" line="352"/>
- <source>minutes</source>
- <translation>minuts</translation>
- </message>
- <message>
- <location filename="src/downloaditem.cpp" line="355"/>
- <source>%4 %5 remaining</source>
- <translation>%4 %5 restant</translation>
- </message>
-</context>
-<context>
- <name>DownloadManager</name>
- <message>
- <location filename="src/downloadmanager.cpp" line="55"/>
- <source>This is just the demo version of %1.</source>
- <translation>Aquesta només és la versió de demostració del %1.</translation>
- </message>
- <message>
- <location filename="src/downloadmanager.cpp" line="57"/>
- <source>It can only download videos shorter than %1 minutes so you can test the download functionality.</source>
- <translation>Només pot baixar vídeos de menys de %1 minuts per tal que en pugui provar aquesta funció.</translation>
- </message>
- <message>
- <location filename="src/downloadmanager.cpp" line="63"/>
- <source>Continue</source>
- <translation>Continua</translation>
- </message>
- <message>
- <location filename="src/downloadmanager.cpp" line="64"/>
- <source>Get the full version</source>
- <translation>Aconseguiu la versió completa</translation>
- </message>
- <message>
- <location filename="src/downloadmanager.cpp" line="150"/>
- <source>%1 downloaded in %2</source>
- <translation>%1 descarregat en %2</translation>
- </message>
- <message>
- <location filename="src/downloadmanager.cpp" line="153"/>
- <source>Download finished</source>
- <translation>Descàrrega finalitzada</translation>
- </message>
- <message numerus="yes">
- <location filename="src/downloadmanager.cpp" line="159"/>
- <source>%n Download(s)</source>
- <translation><numerusform>%n Baixada</numerusform><numerusform>%n Baixades</numerusform></translation>
- </message>
-</context>
-<context>
- <name>DownloadSettings</name>
- <message>
- <location filename="src/downloadsettings.cpp" line="15"/>
- <source>Change location...</source>
- <translation>Canvieu la ubicació...</translation>
- </message>
- <message>
- <location filename="src/downloadsettings.cpp" line="47"/>
- <source>Choose the download location</source>
- <translation>Esculliu la ubicació de les baixades</translation>
- </message>
- <message>
- <location filename="src/downloadsettings.cpp" line="59"/>
- <source>Download location changed.</source>
- <translation>Ubicació de baixades canviada.</translation>
- </message>
- <message>
- <location filename="src/downloadsettings.cpp" line="61"/>
- <source>Current downloads will still go in the previous location.</source>
- <translation>Les baixades actuals encara aniran a la ubicació prèvia.</translation>
- </message>
- <message>
- <location filename="src/downloadsettings.cpp" line="72"/>
- <source>Downloading to: %1</source>
- <translation>S'està baixant a: %1</translation>
- </message>
-</context>
-<context>
- <name>DownloadView</name>
- <message>
- <location filename="src/downloadview.cpp" line="18"/>
- <location filename="src/downloadview.h" line="22"/>
- <source>Downloads</source>
- <translation>Baixades</translation>
- </message>
-</context>
-<context>
- <name>DownloadWidget</name>
- <message>
- <location filename="local/src/updatedialog.cpp" line="60"/>
- <source>Downloading update...</source>
- <translation type="unfinished"/>
- </message>
-</context>
-<context>
- <name>GlobalShortcuts</name>
- <message>
- <location filename="src/globalshortcuts.cpp" line="16"/>
- <source>Play</source>
- <translation>Reprodueix</translation>
- </message>
- <message>
- <location filename="src/globalshortcuts.cpp" line="17"/>
- <source>Pause</source>
- <translation>Pausa</translation>
- </message>
- <message>
- <location filename="src/globalshortcuts.cpp" line="18"/>
- <source>Play/Pause</source>
- <translation>Reprodueix/Pausa</translation>
- </message>
- <message>
- <location filename="src/globalshortcuts.cpp" line="19"/>
- <source>Stop</source>
- <translation>Atura</translation>
- </message>
- <message>
- <location filename="src/globalshortcuts.cpp" line="20"/>
- <source>Stop playing after current track</source>
- <translation>Atura en acabar la peça actual</translation>
- </message>
- <message>
- <location filename="src/globalshortcuts.cpp" line="21"/>
- <source>Next track</source>
- <translation>Peça següent</translation>
- </message>
- <message>
- <location filename="src/globalshortcuts.cpp" line="22"/>
- <source>Previous track</source>
- <translation>Peça prèvia</translation>
- </message>
- <message>
- <location filename="src/globalshortcuts.cpp" line="23"/>
- <source>Increase volume</source>
- <translation>Augmenta el volum</translation>
- </message>
- <message>
- <location filename="src/globalshortcuts.cpp" line="24"/>
- <source>Decrease volume</source>
- <translation>Disminuex el volum</translation>
- </message>
- <message>
- <location filename="src/globalshortcuts.cpp" line="25"/>
- <source>Mute</source>
- <translation>Silenci</translation>
- </message>
- <message>
- <location filename="src/globalshortcuts.cpp" line="26"/>
- <source>Seek forward</source>
- <translation>Cerca endavant</translation>
- </message>
- <message>
- <location filename="src/globalshortcuts.cpp" line="27"/>
- <source>Seek backward</source>
- <translation>Cerca enrere</translation>
- </message>
-</context>
-<context>
- <name>HomeView</name>
- <message>
- <location filename="src/homeview.cpp" line="33"/>
- <source>Search</source>
- <translation>Busca</translation>
- </message>
- <message>
- <location filename="src/homeview.cpp" line="35"/>
- <source>Find videos and channels by keyword</source>
- <translation type="unfinished"/>
- </message>
- <message>
- <location filename="src/homeview.cpp" line="40"/>
- <source>Browse</source>
- <translation type="unfinished"/>
- </message>
- <message>
- <location filename="src/homeview.cpp" line="42"/>
- <source>Browse videos by category</source>
- <translation type="unfinished"/>
- </message>
- <message>
- <location filename="src/homeview.h" line="22"/>
- <source>Make yourself comfortable</source>
- <translation type="unfinished"/>
- </message>
-</context>
-<context>
- <name>LoadingWidget</name>
- <message>
- <location filename="src/loadingwidget.cpp" line="90"/>
- <source>Error</source>
- <translation>Error</translation>
- </message>
-</context>
-<context>
- <name>MainWindow</name>
- <message>
- <location filename="src/mainwindow.cpp" line="213"/>
- <source>&Stop</source>
- <translation>&Atura</translation>
- </message>
- <message>
- <location filename="src/mainwindow.cpp" line="214"/>
- <source>Stop playback and go back to the search view</source>
- <translation>Atura la reproducció i torna a la vista de búsqueda</translation>
- </message>
- <message>
- <location filename="src/mainwindow.cpp" line="232"/>
- <source>S&kip</source>
- <translation>&Salta</translation>
- </message>
- <message>
- <location filename="src/mainwindow.cpp" line="233"/>
- <source>Skip to the next video</source>
- <translation>Salta al vídeo següent</translation>
- </message>
- <message>
- <location filename="src/mainwindow.cpp" line="239"/>
- <location filename="src/mainwindow.cpp" line="989"/>
- <source>&Pause</source>
- <translation>&Pausa</translation>
- </message>
- <message>
- <location filename="src/mainwindow.cpp" line="240"/>
- <location filename="src/mainwindow.cpp" line="990"/>
- <source>Pause playback</source>
- <translation>Pausa la reproducció</translation>
- </message>
- <message>
- <location filename="src/mainwindow.cpp" line="246"/>
- <source>&Full Screen</source>
- <translation>Pantalla &completa</translation>
- </message>
- <message>
- <location filename="src/mainwindow.cpp" line="247"/>
- <source>Go full screen</source>
- <translation>Passa a pantalla completa</translation>
- </message>
- <message>
- <location filename="src/mainwindow.cpp" line="263"/>
- <source>Hide the playlist and the toolbar</source>
- <translation>Amaga la llista de reproducció i la barra d'eines</translation>
- </message>
- <message>
- <location filename="src/mainwindow.cpp" line="276"/>
- <source>Go to the YouTube video page and pause playback</source>
- <translation>Ves a la pàgina del vídeo del YouTube i pausa la reproducció</translation>
- </message>
- <message>
- <location filename="src/mainwindow.cpp" line="283"/>
- <source>Copy the current video YouTube link to the clipboard</source>
- <translation>Copia l'enllaç del vídeo actual del YouTube al porta-retalls</translation>
- </message>
- <message>
- <location filename="src/mainwindow.cpp" line="290"/>
- <source>Copy the current video stream URL to the clipboard</source>
- <translation>Copia el URL del flux de vídeo actual al porta-retalls</translation>
- </message>
- <message>
- <location filename="src/mainwindow.cpp" line="297"/>
- <source>Find other video parts hopefully in the right order</source>
- <translation>Troba altres parts del vídeo, amb sort en l'ordre correcte</translation>
- </message>
- <message>
- <location filename="src/mainwindow.cpp" line="303"/>
- <source>&Remove</source>
- <translation>&Elimina</translation>
- </message>
- <message>
- <location filename="src/mainwindow.cpp" line="304"/>
- <source>Remove the selected videos from the playlist</source>
- <translation>Elimina els vídeos seleccionats de la llista de reproducció</translation>
- </message>
- <message>
- <location filename="src/mainwindow.cpp" line="310"/>
- <source>Move &Up</source>
- <translation>Mou &amunt</translation>
- </message>
- <message>
- <location filename="src/mainwindow.cpp" line="311"/>
- <source>Move up the selected videos in the playlist</source>
- <translation>Mou amunt en la llista de reproducció els vídeos seleccionats</translation>
- </message>
- <message>
- <location filename="src/mainwindow.cpp" line="317"/>
- <source>Move &Down</source>
- <translation>Mou a&vall</translation>
- </message>
- <message>
- <location filename="src/mainwindow.cpp" line="318"/>
- <source>Move down the selected videos in the playlist</source>
- <translation>Mou avall en la llista de reproducció els vídeos seleccionats</translation>
- </message>
- <message>
- <location filename="src/mainwindow.cpp" line="329"/>
- <source>Clear the search history. Cannot be undone.</source>
- <translation>Neteja l'historial de cerques. No es pot desfer.</translation>
- </message>
- <message>
- <location filename="src/mainwindow.cpp" line="334"/>
- <source>&Quit</source>
- <translation>&Surt</translation>
- </message>
- <message>
- <location filename="src/mainwindow.cpp" line="337"/>
- <source>Bye</source>
- <translation>Adéu</translation>
- </message>
- <message>
- <location filename="src/mainwindow.cpp" line="341"/>
- <source>&Website</source>
- <translation>Pàgina &web</translation>
- </message>
- <message>
- <location filename="src/mainwindow.cpp" line="343"/>
- <source>%1 on the Web</source>
- <translation>%1 en la web</translation>
- </message>
- <message>
- <location filename="src/mainwindow.cpp" line="349"/>
- <source>Please support the continued development of %1</source>
- <translation>Si us plau recolzeu el desenvolupament continuat del %1</translation>
- </message>
- <message>
- <location filename="src/mainwindow.cpp" line="354"/>
- <source>&About</source>
- <translation>&Quant a</translation>
- </message>
- <message>
- <location filename="src/mainwindow.cpp" line="356"/>
- <source>Info about %1</source>
- <translation>Informació sobre el %1</translation>
- </message>
- <message>
- <location filename="src/mainwindow.cpp" line="364"/>
- <source>Search</source>
- <translation>Cerca</translation>
- </message>
- <message>
- <location filename="src/mainwindow.cpp" line="383"/>
- <source>Mute volume</source>
- <translation>Silencia el volum</translation>
- </message>
- <message>
- <location filename="src/mainwindow.cpp" line="412"/>
- <location filename="src/mainwindow.cpp" line="1365"/>
- <source>&Downloads</source>
- <translation>&Baixades</translation>
- </message>
- <message>
- <location filename="src/mainwindow.cpp" line="413"/>
- <source>Show details about video downloads</source>
- <translation>Mostra detalls de les descàrregues de vídeo</translation>
- </message>
- <message>
- <location filename="src/mainwindow.cpp" line="421"/>
- <source>&Download</source>
- <translation>&Baixa</translation>
- </message>
- <message>
- <location filename="src/mainwindow.cpp" line="422"/>
- <source>Download the current video</source>
- <translation>Baixa el vídeo actual</translation>
- </message>
- <message>
- <location filename="src/mainwindow.cpp" line="441"/>
- <source>Share the current video using %1</source>
- <translation>Comparteix el vídeo actual fent servir %1</translation>
- </message>
- <message>
- <location filename="src/mainwindow.cpp" line="458"/>
- <source>&Email</source>
- <translation>&Email</translation>
- </message>
- <message>
- <location filename="src/mainwindow.cpp" line="459"/>
- <source>Email</source>
- <translation>Correu electrònic</translation>
- </message>
- <message>
- <location filename="src/mainwindow.cpp" line="463"/>
- <source>&Close</source>
- <translation>&Tanca</translation>
- </message>
- <message>
- <location filename="src/mainwindow.cpp" line="473"/>
- <source>&Float on Top</source>
- <translation>Manté a &sobre</translation>
- </message>
- <message>
- <location filename="src/mainwindow.cpp" line="478"/>
- <source>&Stop After This Video</source>
- <translation>&Atura després d'aquest vídeo</translation>
- </message>
- <message>
- <location filename="src/mainwindow.cpp" line="485"/>
- <source>&Report an Issue...</source>
- <translation>&Informa d'un problema</translation>
- </message>
- <message>
- <location filename="src/mainwindow.cpp" line="489"/>
- <source>&Refine Search...</source>
- <translation>&Afina la Cerca...</translation>
- </message>
- <message>
- <location filename="src/mainwindow.cpp" line="501"/>
- <source>More...</source>
- <translation type="unfinished"/>
- </message>
- <message>
- <location filename="src/mainwindow.cpp" line="504"/>
- <source>&Related Videos</source>
- <translation type="unfinished"/>
- </message>
- <message>
- <location filename="src/mainwindow.cpp" line="506"/>
- <source>Watch videos related to the current one</source>
- <translation type="unfinished"/>
- </message>
- <message>
- <location filename="src/mainwindow.cpp" line="544"/>
- <source>&Application</source>
- <translation>&Aplicació</translation>
- </message>
- <message>
- <location filename="src/mainwindow.cpp" line="515"/>
- <source>Buy %1...</source>
- <translation>Compra %1...</translation>
- </message>
- <message>
- <location filename="src/mainwindow.cpp" line="558"/>
- <source>&Playback</source>
- <translation>&Reproducció</translation>
- </message>
- <message>
- <location filename="src/mainwindow.cpp" line="572"/>
- <source>&Playlist</source>
- <translation>&Llista de reproducció</translation>
- </message>
- <message>
- <location filename="src/mainwindow.cpp" line="581"/>
- <source>&Video</source>
- <translation>&Vídeo</translation>
- </message>
- <message>
- <location filename="src/mainwindow.cpp" line="594"/>
- <source>&View</source>
- <translation>&Vista</translation>
- </message>
- <message>
- <location filename="src/mainwindow.cpp" line="601"/>
- <source>&Share</source>
- <translation>&Compartir</translation>
- </message>
- <message>
- <location filename="src/mainwindow.cpp" line="615"/>
- <source>&Help</source>
- <translation>A&juda</translation>
- </message>
- <message>
- <location filename="src/mainwindow.cpp" line="690"/>
- <source>Press %1 to raise the volume, %2 to lower it</source>
- <translation>Premeu %1 per pujar el volum, %2 per baixar-lo</translation>
- </message>
- <message>
- <location filename="src/mainwindow.cpp" line="889"/>
- <location filename="src/mainwindow.cpp" line="895"/>
- <source>Opening %1</source>
- <translation>S'està obrint %1</translation>
- </message>
- <message>
- <location filename="src/mainwindow.cpp" line="936"/>
- <source>Do you want to exit %1 with a download in progress?</source>
- <translation>Voleu abandonar el %1 amb una baixada en curs?</translation>
- </message>
- <message>
- <location filename="src/mainwindow.cpp" line="937"/>
- <source>If you close %1 now, this download will be cancelled.</source>
- <translation>Si tanqueu el %1 ara, aquesta baixada es cancel·larà.</translation>
- </message>
- <message>
- <location filename="src/mainwindow.cpp" line="942"/>
- <source>Close and cancel download</source>
- <translation>Tanca i cancel·la la baixada</translation>
- </message>
- <message>
- <location filename="src/mainwindow.cpp" line="943"/>
- <source>Wait for download to finish</source>
- <translation>Espera a acabar la baixada</translation>
- </message>
- <message>
- <location filename="src/mainwindow.cpp" line="1102"/>
- <source>Leave &Full Screen</source>
- <translation>Abandona la Pantalla &Completa</translation>
- </message>
- <message>
- <location filename="src/mainwindow.cpp" line="1475"/>
- <source>%1 version %2 is now available.</source>
- <translation>%1 versió %2 ja està disponible.</translation>
- </message>
- <message>
- <location filename="src/mainwindow.cpp" line="1479"/>
- <source>Remind me later</source>
- <translation>Recorda-m'ho més tard</translation>
- </message>
- <message>
- <location filename="src/mainwindow.cpp" line="1480"/>
- <source>Update</source>
- <translation>Actualitza</translation>
- </message>
- <message>
- <location filename="src/mainwindow.cpp" line="982"/>
- <source>Error: %1</source>
- <translation>Error: %1</translation>
- </message>
- <message>
- <location filename="src/mainwindow.cpp" line="222"/>
- <source>P&revious</source>
- <translation>P&revi</translation>
- </message>
- <message>
- <location filename="src/mainwindow.cpp" line="223"/>
- <source>Go back to the previous track</source>
- <translation>Torna a la pista anterior</translation>
- </message>
- <message>
- <location filename="src/mainwindow.cpp" line="262"/>
- <source>&Compact Mode</source>
- <translation>&Mode compacte</translation>
- </message>
- <message>
- <location filename="src/mainwindow.cpp" line="275"/>
- <source>Open the &YouTube Page</source>
- <translation>Obre la pàgina de &YouTube</translation>
- </message>
- <message>
- <location filename="src/mainwindow.cpp" line="282"/>
- <source>Copy the YouTube &Link</source>
- <translation>Copia l'&enllaç de YouTube</translation>
- </message>
- <message>
- <location filename="src/mainwindow.cpp" line="289"/>
- <source>Copy the Video Stream &URL</source>
- <translation>Copia el &URL del flux de vídeo</translation>
- </message>
- <message>
- <location filename="src/mainwindow.cpp" line="296"/>
- <source>Find Video &Parts</source>
- <translation>Troba &parts de vídeo</translation>
- </message>
- <message>
- <location filename="src/mainwindow.cpp" line="324"/>
- <source>&Clear Recent Searches</source>
- <translation>&Neteja les búsquedes recents</translation>
- </message>
- <message>
- <location filename="src/mainwindow.cpp" line="348"/>
- <source>Make a &Donation</source>
- <translation>Fer una &donació</translation>
- </message>
- <message>
- <location filename="src/mainwindow.cpp" line="405"/>
- <source>&Manually Start Playing</source>
- <translation>Reprodueix vídeos &manualment</translation>
- </message>
- <message>
- <location filename="src/mainwindow.cpp" line="406"/>
- <source>Manually start playing videos</source>
- <translation>Comença a reproduir vídeos manualment</translation>
- </message>
- <message>
- <location filename="src/mainwindow.cpp" line="728"/>
- <source>Choose your content location</source>
- <translation type="unfinished"/>
- </message>
- <message>
- <location filename="src/mainwindow.cpp" line="1002"/>
- <source>&Play</source>
- <translation>&Reprodueix</translation>
- </message>
- <message>
- <location filename="src/mainwindow.cpp" line="1003"/>
- <source>Resume playback</source>
- <translation>Continua la reproducció</translation>
- </message>
- <message>
- <location filename="src/mainwindow.cpp" line="1236"/>
- <source>Remaining time: %1</source>
- <translation>Temps restant: %1</translation>
- </message>
- <message>
- <location filename="src/mainwindow.cpp" line="1294"/>
- <source>Volume at %1%</source>
- <translation>Volum al %1%</translation>
- </message>
- <message>
- <location filename="src/mainwindow.cpp" line="1300"/>
- <source>Volume is muted</source>
- <translation>Volum desactivat</translation>
- </message>
- <message>
- <location filename="src/mainwindow.cpp" line="1303"/>
- <source>Volume is unmuted</source>
- <translation>Volum activat</translation>
- </message>
- <message>
- <location filename="src/mainwindow.cpp" line="1310"/>
- <source>Maximum video definition set to %1</source>
- <translation>Resolució màxima de vídeo fixada a %1</translation>
- </message>
- <message>
- <location filename="src/mainwindow.cpp" line="1351"/>
- <source>Your privacy is now safe</source>
- <translation>La vostra privacitat està protegida</translation>
- </message>
- <message>
- <location filename="src/mainwindow.cpp" line="1366"/>
- <source>Downloads complete</source>
- <translation>Baixades completes</translation>
- </message>
-</context>
-<context>
- <name>MediaView</name>
- <message>
- <location filename="src/mediaview.cpp" line="553"/>
- <source>You can now paste the YouTube link into another application</source>
- <translation>Ja podeu enganxar l'enllaç del YouTube en una altra aplicació</translation>
- </message>
- <message>
- <location filename="src/mediaview.cpp" line="561"/>
- <source>You can now paste the video stream URL into another application</source>
- <translation>Ja podeu enganxar el URL del flux de vídeo en una altra aplicació</translation>
- </message>
- <message>
- <location filename="src/mediaview.cpp" line="562"/>
- <source>The link will be valid only for a limited time.</source>
- <translation>L'enllaç només serà vàlid durant un temps limitat.</translation>
- </message>
- <message>
- <location filename="src/mediaview.cpp" line="636"/>
- <source>This is just the demo version of %1.</source>
- <translation>Aquesta només és la versió de demostració del %1.</translation>
- </message>
- <message>
- <location filename="src/mediaview.cpp" line="637"/>
- <source>It allows you to test the application and see if it works for you.</source>
- <translation>Li permet probar l'aplicació i veure si li va bé.</translation>
- </message>
- <message>
- <location filename="src/mediaview.cpp" line="667"/>
- <source>Continue</source>
- <translation>Continua</translation>
- </message>
- <message>
- <location filename="src/mediaview.cpp" line="756"/>
- <source>of</source>
- <comment>Used in video parts, as in '2 of 3'</comment>
- <translation>de</translation>
- </message>
- <message>
- <location filename="src/mediaview.cpp" line="768"/>
- <source>part</source>
- <comment>This is for video parts, as in 'Cool video - part 1'</comment>
- <translation>part</translation>
- </message>
- <message>
- <location filename="src/mediaview.cpp" line="770"/>
- <source>episode</source>
- <comment>This is for video parts, as in 'Cool series - episode 1'</comment>
- <translation>episodi</translation>
- </message>
- <message>
- <location filename="src/mediaview.cpp" line="847"/>
- <source>Sent from %1</source>
- <translation>Enviat des de %1</translation>
- </message>
- <message>
- <location filename="src/mediaview.cpp" line="644"/>
- <source>Get the full version</source>
- <translation>Aconseguiu la versió completa</translation>
- </message>
- <message>
- <location filename="src/mediaview.cpp" line="681"/>
- <source>Downloading %1</source>
- <translation>S'està baixant %1</translation>
- </message>
-</context>
-<context>
- <name>MessageWidget</name>
- <message>
- <location filename="local/src/updatedialog.cpp" line="21"/>
- <source>A new version of %1 is available!</source>
- <translation type="unfinished"/>
- </message>
- <message>
- <location filename="local/src/updatedialog.cpp" line="28"/>
- <source>%1 %2 is now available. You have %3.</source>
- <translation type="unfinished"/>
- </message>
- <message>
- <location filename="local/src/updatedialog.cpp" line="33"/>
- <source>Would you like to download it now?</source>
- <translation type="unfinished"/>
- </message>
- <message>
- <location filename="local/src/updatedialog.cpp" line="39"/>
- <source>Skip This Version</source>
- <translation type="unfinished"/>
- </message>
- <message>
- <location filename="local/src/updatedialog.cpp" line="43"/>
- <source>Remind Me Later</source>
- <translation type="unfinished"/>
- </message>
- <message>
- <location filename="local/src/updatedialog.cpp" line="47"/>
- <source>Install Update</source>
- <translation type="unfinished"/>
- </message>
-</context>
-<context>
- <name>PasteLineEdit</name>
- <message>
- <location filename="local/src/pastelineedit.cpp" line="6"/>
- <source>Paste</source>
- <translation type="unfinished"/>
- </message>
-</context>
-<context>
- <name>PlaylistItemDelegate</name>
- <message>
- <location filename="src/playlistitemdelegate.cpp" line="159"/>
- <source>%1 views</source>
- <translation>%1 visualitzacions</translation>
- </message>
- <message>
- <location filename="src/playlistitemdelegate.cpp" line="285"/>
- <source>%1 of %2 (%3) — %4</source>
- <translation type="unfinished"/>
- </message>
- <message>
- <location filename="src/playlistitemdelegate.cpp" line="292"/>
- <source>Preparing</source>
- <translation type="unfinished"/>
- </message>
- <message>
- <location filename="src/playlistitemdelegate.cpp" line="294"/>
- <source>Failed</source>
- <translation type="unfinished"/>
- </message>
- <message>
- <location filename="src/playlistitemdelegate.cpp" line="296"/>
- <source>Completed</source>
- <translation type="unfinished"/>
- </message>
- <message>
- <location filename="src/playlistitemdelegate.cpp" line="298"/>
- <source>Stopped</source>
- <translation type="unfinished"/>
- </message>
- <message>
- <location filename="src/playlistitemdelegate.cpp" line="334"/>
- <source>Stop downloading</source>
- <translation type="unfinished"/>
- </message>
- <message>
- <location filename="src/playlistitemdelegate.cpp" line="344"/>
- <source>Show in %1</source>
- <translation type="unfinished"/>
- </message>
- <message>
- <location filename="src/playlistitemdelegate.cpp" line="346"/>
- <source>Open parent folder</source>
- <translation type="unfinished"/>
- </message>
- <message>
- <location filename="src/playlistitemdelegate.cpp" line="355"/>
- <source>Restart downloading</source>
- <translation type="unfinished"/>
- </message>
-</context>
-<context>
- <name>PlaylistModel</name>
- <message>
- <location filename="src/playlistmodel.cpp" line="52"/>
- <source>Searching...</source>
- <translation>Buscant...</translation>
- </message>
- <message>
- <location filename="src/playlistmodel.cpp" line="53"/>
- <source>Show %1 More</source>
- <translation type="unfinished"/>
- </message>
- <message>
- <location filename="src/playlistmodel.cpp" line="54"/>
- <source>No videos</source>
- <translation>Cap vídeo</translation>
- </message>
- <message>
- <location filename="src/playlistmodel.cpp" line="55"/>
- <source>No more videos</source>
- <translation type="unfinished"/>
- </message>
-</context>
-<context>
- <name>RefineSearchWidget</name>
- <message>
- <location filename="src/refinesearchwidget.cpp" line="31"/>
- <source>Sort by</source>
- <translation>Ordena per</translation>
- </message>
- <message>
- <location filename="src/refinesearchwidget.cpp" line="35"/>
- <source>Relevance</source>
- <translation>Rellevància</translation>
- </message>
- <message>
- <location filename="src/refinesearchwidget.cpp" line="36"/>
- <location filename="src/refinesearchwidget.cpp" line="52"/>
- <source>Date</source>
- <translation>Data</translation>
- </message>
- <message>
- <location filename="src/refinesearchwidget.cpp" line="37"/>
- <source>View Count</source>
- <translation>Nombre de vistes</translation>
- </message>
- <message>
- <location filename="src/refinesearchwidget.cpp" line="38"/>
- <source>Rating</source>
- <translation>Qualificació</translation>
- </message>
- <message>
- <location filename="src/refinesearchwidget.cpp" line="56"/>
- <source>Anytime</source>
- <translation>Qualsevol data</translation>
- </message>
- <message>
- <location filename="src/refinesearchwidget.cpp" line="57"/>
- <source>Today</source>
- <translation>Avui</translation>
- </message>
- <message>
- <location filename="src/refinesearchwidget.cpp" line="58"/>
- <source>7 Days</source>
- <translation>7 dies</translation>
- </message>
- <message>
- <location filename="src/refinesearchwidget.cpp" line="59"/>
- <source>30 Days</source>
- <translation>30 dies</translation>
- </message>
- <message>
- <location filename="src/refinesearchwidget.cpp" line="73"/>
- <source>Duration</source>
- <translation>Durada</translation>
- </message>
- <message>
- <location filename="src/refinesearchwidget.cpp" line="77"/>
- <location filename="src/refinesearchwidget.cpp" line="104"/>
- <source>All</source>
- <translation>Tot</translation>
- </message>
- <message>
- <location filename="src/refinesearchwidget.cpp" line="78"/>
- <source>Short</source>
- <translation>Curt</translation>
- </message>
- <message>
- <location filename="src/refinesearchwidget.cpp" line="79"/>
- <source>Medium</source>
- <translation>Mig</translation>
- </message>
- <message>
- <location filename="src/refinesearchwidget.cpp" line="80"/>
- <source>Long</source>
- <translation>Llarg</translation>
- </message>
- <message>
- <location filename="src/refinesearchwidget.cpp" line="83"/>
- <source>Less than 4 minutes</source>
- <translation>menys de 4 minuts</translation>
- </message>
- <message>
- <location filename="src/refinesearchwidget.cpp" line="84"/>
- <source>Between 4 and 20 minutes</source>
- <translation>entre 4 i 20 minuts</translation>
- </message>
- <message>
- <location filename="src/refinesearchwidget.cpp" line="85"/>
- <source>Longer than 20 minutes</source>
- <translation>més de 20 minuts</translation>
- </message>
- <message>
- <location filename="src/refinesearchwidget.cpp" line="100"/>
- <source>Quality</source>
- <translation>Qualitat</translation>
- </message>
- <message>
- <location filename="src/refinesearchwidget.cpp" line="105"/>
- <source>High Definition</source>
- <translation>Alta definició</translation>
- </message>
- <message>
- <location filename="src/refinesearchwidget.cpp" line="108"/>
- <source>720p or higher</source>
- <translation>720p o major</translation>
- </message>
- <message>
- <location filename="src/refinesearchwidget.cpp" line="122"/>
- <source>Done</source>
- <translation>Fet</translation>
- </message>
-</context>
-<context>
- <name>RegionsView</name>
- <message>
- <location filename="src/regionsview.cpp" line="19"/>
- <source>Done</source>
- <translation type="unfinished"/>
- </message>
-</context>
-<context>
- <name>SearchLineEdit</name>
- <message>
- <location filename="src/searchlineedit.cpp" line="177"/>
- <source>Search</source>
- <translation>Cerca</translation>
- </message>
-</context>
-<context>
- <name>SearchView</name>
- <message>
- <location filename="src/searchview.cpp" line="71"/>
- <source>Welcome to <a href='%1'>%2</a>,</source>
- <translation>Benvingut al <a href='%1'>%2</a>,</translation>
- </message>
- <message>
- <location filename="src/searchview.cpp" line="50"/>
- <source>Get the full version</source>
- <translation>Aconseguiu la versió completa</translation>
- </message>
- <message>
- <location filename="src/searchview.cpp" line="85"/>
- <source>Enter</source>
- <extracomment>"Enter", as in "type". The whole phrase says: "Enter a keyword to start watching videos"</extracomment>
- <translation>Introduïu</translation>
- </message>
- <message>
- <location filename="src/searchview.cpp" line="90"/>
- <source>a keyword</source>
- <translation>una paraula</translation>
- </message>
- <message>
- <location filename="src/searchview.cpp" line="91"/>
- <source>a channel</source>
- <translation>un canal</translation>
- </message>
- <message>
- <location filename="src/searchview.cpp" line="96"/>
- <source>to start watching videos.</source>
- <translation>per comencar a veure vídeos.</translation>
- </message>
- <message>
- <location filename="src/searchview.cpp" line="120"/>
- <source>Watch</source>
- <translation>Veure</translation>
- </message>
- <message>
- <location filename="src/searchview.cpp" line="138"/>
- <source>Recent keywords</source>
- <translation>Cerques recents</translation>
- </message>
- <message>
- <location filename="src/searchview.cpp" line="151"/>
- <source>Recent channels</source>
- <translation>Canals recents</translation>
- </message>
-</context>
-<context>
- <name>SidebarHeader</name>
- <message>
- <location filename="src/sidebarheader.cpp" line="16"/>
- <location filename="src/sidebarheader.cpp" line="23"/>
- <source>&Back</source>
- <translation>&Enrere</translation>
- </message>
- <message>
- <location filename="src/sidebarheader.cpp" line="57"/>
- <source>Forward to %1</source>
- <translation type="unfinished"/>
- </message>
- <message>
- <location filename="src/sidebarheader.cpp" line="70"/>
- <source>Back to %1</source>
- <translation type="unfinished"/>
- </message>
-</context>
-<context>
- <name>SidebarWidget</name>
- <message>
- <location filename="src/sidebarwidget.cpp" line="52"/>
- <source>Refine Search</source>
- <translation>Afina la Cerca</translation>
- </message>
- <message>
- <location filename="src/sidebarwidget.cpp" line="148"/>
- <source>Did you mean: %1</source>
- <translation>Volieu dir: %1</translation>
- </message>
-</context>
-<context>
- <name>StandardFeedsView</name>
- <message>
- <location filename="src/standardfeedsview.cpp" line="85"/>
- <source>Most Popular</source>
- <translation type="unfinished"/>
- </message>
- <message>
- <location filename="src/standardfeedsview.cpp" line="86"/>
- <source>Featured</source>
- <translation type="unfinished"/>
- </message>
- <message>
- <location filename="src/standardfeedsview.cpp" line="87"/>
- <source>Most Shared</source>
- <translation type="unfinished"/>
- </message>
- <message>
- <location filename="src/standardfeedsview.cpp" line="88"/>
- <source>Most Discussed</source>
- <translation type="unfinished"/>
- </message>
- <message>
- <location filename="src/standardfeedsview.cpp" line="89"/>
- <source>Top Rated</source>
- <translation type="unfinished"/>
- </message>
-</context>
-<context>
- <name>Video</name>
- <message>
- <location filename="src/video.cpp" line="213"/>
- <source>Cannot get video stream for %1</source>
- <translation>No es pot obtenir flux de vídeo per %1</translation>
- </message>
- <message>
- <location filename="src/video.cpp" line="231"/>
- <source>Network error: %1 for %2</source>
- <translation>Error de xarxa: %1 per %2</translation>
- </message>
-</context>
-<context>
- <name>YTRegions</name>
- <message>
- <location filename="src/ytregions.cpp" line="8"/>
- <source>Algeria</source>
- <translation type="unfinished"/>
- </message>
- <message>
- <location filename="src/ytregions.cpp" line="9"/>
- <source>Argentina</source>
- <translation type="unfinished"/>
- </message>
- <message>
- <location filename="src/ytregions.cpp" line="10"/>
- <source>Australia</source>
- <translation type="unfinished"/>
- </message>
- <message>
- <location filename="src/ytregions.cpp" line="11"/>
- <source>Belgium</source>
- <translation type="unfinished"/>
- </message>
- <message>
- <location filename="src/ytregions.cpp" line="12"/>
- <source>Brazil</source>
- <translation type="unfinished"/>
- </message>
- <message>
- <location filename="src/ytregions.cpp" line="13"/>
- <source>Canada</source>
- <translation type="unfinished"/>
- </message>
- <message>
- <location filename="src/ytregions.cpp" line="14"/>
- <source>Chile</source>
- <translation type="unfinished"/>
- </message>
- <message>
- <location filename="src/ytregions.cpp" line="15"/>
- <source>Colombia</source>
- <translation type="unfinished"/>
- </message>
- <message>
- <location filename="src/ytregions.cpp" line="16"/>
- <source>Czech Republic</source>
- <translation type="unfinished"/>
- </message>
- <message>
- <location filename="src/ytregions.cpp" line="17"/>
- <source>Egypt</source>
- <translation type="unfinished"/>
- </message>
- <message>
- <location filename="src/ytregions.cpp" line="18"/>
- <source>France</source>
- <translation type="unfinished"/>
- </message>
- <message>
- <location filename="src/ytregions.cpp" line="19"/>
- <source>Germany</source>
- <translation type="unfinished"/>
- </message>
- <message>
- <location filename="src/ytregions.cpp" line="20"/>
- <source>Ghana</source>
- <translation type="unfinished"/>
- </message>
- <message>
- <location filename="src/ytregions.cpp" line="21"/>
- <source>Greece</source>
- <translation type="unfinished"/>
- </message>
- <message>
- <location filename="src/ytregions.cpp" line="22"/>
- <source>Hong Kong</source>
- <translation type="unfinished"/>
- </message>
- <message>
- <location filename="src/ytregions.cpp" line="23"/>
- <source>Hungary</source>
- <translation type="unfinished"/>
- </message>
- <message>
- <location filename="src/ytregions.cpp" line="24"/>
- <source>India</source>
- <translation type="unfinished"/>
- </message>
- <message>
- <location filename="src/ytregions.cpp" line="25"/>
- <source>Indonesia</source>
- <translation type="unfinished"/>
- </message>
- <message>
- <location filename="src/ytregions.cpp" line="26"/>
- <source>Ireland</source>
- <translation type="unfinished"/>
- </message>
- <message>
- <location filename="src/ytregions.cpp" line="27"/>
- <source>Israel</source>
- <translation type="unfinished"/>
- </message>
- <message>
- <location filename="src/ytregions.cpp" line="28"/>
- <source>Italy</source>
- <translation type="unfinished"/>
- </message>
- <message>
- <location filename="src/ytregions.cpp" line="29"/>
- <source>Japan</source>
- <translation type="unfinished"/>
- </message>
- <message>
- <location filename="src/ytregions.cpp" line="30"/>
- <source>Jordan</source>
- <translation type="unfinished"/>
- </message>
- <message>
- <location filename="src/ytregions.cpp" line="31"/>
- <source>Kenya</source>
- <translation type="unfinished"/>
- </message>
- <message>
- <location filename="src/ytregions.cpp" line="32"/>
- <source>Malaysia</source>
- <translation type="unfinished"/>
- </message>
- <message>
- <location filename="src/ytregions.cpp" line="33"/>
- <source>Mexico</source>
- <translation type="unfinished"/>
- </message>
- <message>
- <location filename="src/ytregions.cpp" line="34"/>
- <source>Morocco</source>
- <translation type="unfinished"/>
- </message>
- <message>
- <location filename="src/ytregions.cpp" line="35"/>
- <source>Netherlands</source>
- <translation type="unfinished"/>
- </message>
- <message>
- <location filename="src/ytregions.cpp" line="36"/>
- <source>New Zealand</source>
- <translation type="unfinished"/>
- </message>
- <message>
- <location filename="src/ytregions.cpp" line="37"/>
- <source>Nigeria</source>
- <translation type="unfinished"/>
- </message>
- <message>
- <location filename="src/ytregions.cpp" line="38"/>
- <source>Peru</source>
- <translation type="unfinished"/>
- </message>
- <message>
- <location filename="src/ytregions.cpp" line="39"/>
- <source>Philippines</source>
- <translation type="unfinished"/>
- </message>
- <message>
- <location filename="src/ytregions.cpp" line="40"/>
- <source>Poland</source>
- <translation type="unfinished"/>
- </message>
- <message>
- <location filename="src/ytregions.cpp" line="41"/>
- <source>Russia</source>
- <translation type="unfinished"/>
- </message>
- <message>
- <location filename="src/ytregions.cpp" line="42"/>
- <source>Saudi Arabia</source>
- <translation type="unfinished"/>
- </message>
- <message>
- <location filename="src/ytregions.cpp" line="43"/>
- <source>Singapore</source>
- <translation type="unfinished"/>
- </message>
- <message>
- <location filename="src/ytregions.cpp" line="44"/>
- <source>South Africa</source>
- <translation type="unfinished"/>
- </message>
- <message>
- <location filename="src/ytregions.cpp" line="45"/>
- <source>South Korea</source>
- <translation type="unfinished"/>
- </message>
- <message>
- <location filename="src/ytregions.cpp" line="46"/>
- <source>Spain</source>
- <translation type="unfinished"/>
- </message>
- <message>
- <location filename="src/ytregions.cpp" line="47"/>
- <source>Sweden</source>
- <translation type="unfinished"/>
- </message>
- <message>
- <location filename="src/ytregions.cpp" line="48"/>
- <source>Taiwan</source>
- <translation type="unfinished"/>
- </message>
- <message>
- <location filename="src/ytregions.cpp" line="49"/>
- <source>Tunisia</source>
- <translation type="unfinished"/>
- </message>
- <message>
- <location filename="src/ytregions.cpp" line="50"/>
- <source>Turkey</source>
- <translation type="unfinished"/>
- </message>
- <message>
- <location filename="src/ytregions.cpp" line="51"/>
- <source>Uganda</source>
- <translation type="unfinished"/>
- </message>
- <message>
- <location filename="src/ytregions.cpp" line="52"/>
- <source>United Arab Emirates</source>
- <translation type="unfinished"/>
- </message>
- <message>
- <location filename="src/ytregions.cpp" line="53"/>
- <source>United Kingdom</source>
- <translation type="unfinished"/>
- </message>
- <message>
- <location filename="src/ytregions.cpp" line="54"/>
- <source>Yemen</source>
- <translation type="unfinished"/>
- </message>
- <message>
- <location filename="src/ytregions.cpp" line="128"/>
- <source>Worldwide</source>
- <translation type="unfinished"/>
- </message>
-</context>
-</TS>
\ No newline at end of file
<translation>Koupit licenci</translation>
</message>
</context>
+<context>
+ <name>ChannelAggregator</name>
+ <message>
+ <location filename="src/channelaggregator.cpp" line="110"/>
+ <source>By %1</source>
+ <translation>Od %1</translation>
+ </message>
+ <message numerus="yes">
+ <location filename="src/channelaggregator.cpp" line="112"/>
+ <source>You have %n new video(s)</source>
+ <translation type="unfinished"><numerusform></numerusform><numerusform></numerusform><numerusform></numerusform></translation>
+ </message>
+</context>
+<context>
+ <name>ChannelItemDelegate</name>
+ <message>
+ <location filename="src/channelitemdelegate.cpp" line="46"/>
+ <source>All Videos</source>
+ <translation>Všechna videa</translation>
+ </message>
+ <message>
+ <location filename="src/channelitemdelegate.cpp" line="63"/>
+ <source>Unwatched Videos</source>
+ <translation>Nesledovaná videa</translation>
+ </message>
+</context>
+<context>
+ <name>ChannelView</name>
+ <message>
+ <location filename="src/channelview.cpp" line="75"/>
+ <source>Mark all as watched</source>
+ <translation>Označit jako shlédnuté</translation>
+ </message>
+ <message>
+ <location filename="src/channelview.cpp" line="83"/>
+ <source>Show Updated</source>
+ <translation>Zobrazit aktualizace</translation>
+ </message>
+ <message>
+ <location filename="src/channelview.cpp" line="95"/>
+ <source>Name</source>
+ <translation>Jméno</translation>
+ </message>
+ <message>
+ <location filename="src/channelview.cpp" line="102"/>
+ <source>Last Updated</source>
+ <translation>Poslední aktualizace</translation>
+ </message>
+ <message>
+ <location filename="src/channelview.cpp" line="109"/>
+ <source>Last Added</source>
+ <translation>Naposledy přidáno</translation>
+ </message>
+ <message>
+ <location filename="src/channelview.cpp" line="116"/>
+ <source>Last Watched</source>
+ <translation>Naposledy shlédnuto</translation>
+ </message>
+ <message>
+ <location filename="src/channelview.cpp" line="123"/>
+ <source>Most Watched</source>
+ <translation>Nejsledovanější</translation>
+ </message>
+ <message>
+ <location filename="src/channelview.cpp" line="131"/>
+ <source>Sort by</source>
+ <translation>Třídit podle</translation>
+ </message>
+ <message>
+ <location filename="src/channelview.cpp" line="190"/>
+ <source>All Videos</source>
+ <translation>Všechna videa</translation>
+ </message>
+ <message>
+ <location filename="src/channelview.cpp" line="194"/>
+ <source>Unwatched Videos</source>
+ <translation>Nesledovaná videa</translation>
+ </message>
+ <message>
+ <location filename="src/channelview.cpp" line="206"/>
+ <source>There are no updated subscriptions at this time.</source>
+ <translation>Nyní nejsou k dispozici žádné aktualizace odběrů.</translation>
+ </message>
+ <message>
+ <location filename="src/channelview.cpp" line="208"/>
+ <source>You have no subscriptions. Use the star symbol to subscribe to channels.</source>
+ <translation>Nemáte žádné odběry. Použijte hvězdičku k přihlásení odběru kanálů.</translation>
+ </message>
+</context>
<context>
<name>ClearButton</name>
<message>
<context>
<name>HomeView</name>
<message>
- <location filename="src/homeview.cpp" line="33"/>
+ <location filename="src/homeview.cpp" line="38"/>
<source>Search</source>
<translation>Hledat</translation>
</message>
<message>
- <location filename="src/homeview.cpp" line="35"/>
+ <location filename="src/homeview.cpp" line="40"/>
<source>Find videos and channels by keyword</source>
<translation>Najít videa a kanály podle klíčového slova</translation>
</message>
<message>
- <location filename="src/homeview.cpp" line="40"/>
+ <location filename="src/homeview.cpp" line="45"/>
<source>Browse</source>
<translation>Prohlížet</translation>
</message>
<message>
- <location filename="src/homeview.cpp" line="42"/>
+ <location filename="src/homeview.cpp" line="47"/>
<source>Browse videos by category</source>
<translation>Prohlížet videa podle kategorie</translation>
</message>
+ <message>
+ <location filename="src/homeview.cpp" line="51"/>
+ <source>Subscriptions</source>
+ <translation>Odběry</translation>
+ </message>
+ <message>
+ <location filename="src/homeview.cpp" line="53"/>
+ <source>Channel subscriptions</source>
+ <translation>Kanál odběrů</translation>
+ </message>
<message>
<location filename="src/homeview.h" line="22"/>
<source>Make yourself comfortable</source>
<context>
<name>LoadingWidget</name>
<message>
- <location filename="src/loadingwidget.cpp" line="90"/>
+ <location filename="src/loadingwidget.cpp" line="88"/>
<source>Error</source>
<translation>Chyba</translation>
</message>
<context>
<name>MainWindow</name>
<message>
- <location filename="src/mainwindow.cpp" line="213"/>
+ <location filename="src/mainwindow.cpp" line="237"/>
<source>&Stop</source>
<translation>&Stop</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="214"/>
+ <location filename="src/mainwindow.cpp" line="238"/>
<source>Stop playback and go back to the search view</source>
<translation>Zastaví přehrávání a vrátí se zpět na vyhledávání</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="232"/>
+ <location filename="src/mainwindow.cpp" line="253"/>
<source>S&kip</source>
<translation>Př&eskočit</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="233"/>
+ <location filename="src/mainwindow.cpp" line="254"/>
<source>Skip to the next video</source>
<translation>Přeskočí na další video</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="239"/>
- <location filename="src/mainwindow.cpp" line="989"/>
+ <location filename="src/mainwindow.cpp" line="260"/>
+ <location filename="src/mainwindow.cpp" line="1012"/>
<source>&Pause</source>
<translation>&Pauza</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="240"/>
- <location filename="src/mainwindow.cpp" line="990"/>
+ <location filename="src/mainwindow.cpp" line="261"/>
+ <location filename="src/mainwindow.cpp" line="1013"/>
<source>Pause playback</source>
<translation>Pozastaví přehrávání</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="246"/>
+ <location filename="src/mainwindow.cpp" line="267"/>
<source>&Full Screen</source>
<translation>&Celá obrazovka</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="247"/>
+ <location filename="src/mainwindow.cpp" line="268"/>
<source>Go full screen</source>
<translation>Přepne na celou obrazovku</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="263"/>
+ <location filename="src/mainwindow.cpp" line="282"/>
<source>Hide the playlist and the toolbar</source>
<translation>Skryje playlist a toolbar</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="276"/>
+ <location filename="src/mainwindow.cpp" line="295"/>
<source>Go to the YouTube video page and pause playback</source>
<translation>Otevře video na webu YouTube a pozastaví přehrávání</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="283"/>
+ <location filename="src/mainwindow.cpp" line="302"/>
<source>Copy the current video YouTube link to the clipboard</source>
<translation>Zkopíruje adresu videa na YouTube do schránky</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="290"/>
+ <location filename="src/mainwindow.cpp" line="309"/>
<source>Copy the current video stream URL to the clipboard</source>
<translation>Zkopíruje do schránky adresu video streamu</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="297"/>
+ <location filename="src/mainwindow.cpp" line="316"/>
<source>Find other video parts hopefully in the right order</source>
<translation>Najít další části videa, doufejme, že ve správném pořadí</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="303"/>
+ <location filename="src/mainwindow.cpp" line="322"/>
<source>&Remove</source>
<translation>&Odstranit</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="304"/>
+ <location filename="src/mainwindow.cpp" line="323"/>
<source>Remove the selected videos from the playlist</source>
<translation>Odstraní vybraná videa z playlistu</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="310"/>
+ <location filename="src/mainwindow.cpp" line="329"/>
<source>Move &Up</source>
<translation>&Nahoru</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="311"/>
+ <location filename="src/mainwindow.cpp" line="330"/>
<source>Move up the selected videos in the playlist</source>
<translation>Posune vybraná videa výš v playlistu</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="317"/>
+ <location filename="src/mainwindow.cpp" line="336"/>
<source>Move &Down</source>
<translation>&Dolů</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="318"/>
+ <location filename="src/mainwindow.cpp" line="337"/>
<source>Move down the selected videos in the playlist</source>
<translation>Posune vybraná videa níž v playlistu</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="329"/>
+ <location filename="src/mainwindow.cpp" line="348"/>
<source>Clear the search history. Cannot be undone.</source>
<translation>Vyprázdní historii vyhledávání. Akci nelze vrátit.</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="334"/>
+ <location filename="src/mainwindow.cpp" line="353"/>
<source>&Quit</source>
<translation>&Zavřít</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="337"/>
+ <location filename="src/mainwindow.cpp" line="356"/>
<source>Bye</source>
<translation>Sbohem</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="341"/>
+ <location filename="src/mainwindow.cpp" line="360"/>
<source>&Website</source>
<translation>&Homepage</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="343"/>
+ <location filename="src/mainwindow.cpp" line="362"/>
<source>%1 on the Web</source>
<translation>%1 na Webu</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="349"/>
+ <location filename="src/mainwindow.cpp" line="368"/>
<source>Please support the continued development of %1</source>
<translation>Prosím přispějte na další vývoj aplikace %1</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="354"/>
+ <location filename="src/mainwindow.cpp" line="373"/>
<source>&About</source>
<translation>&O aplikaci</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="356"/>
+ <location filename="src/mainwindow.cpp" line="375"/>
<source>Info about %1</source>
<translation>Info o aplikaci %1</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="364"/>
+ <location filename="src/mainwindow.cpp" line="383"/>
<source>Search</source>
<translation>Hledat</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="383"/>
+ <location filename="src/mainwindow.cpp" line="402"/>
<source>Mute volume</source>
<translation>Ztlumit</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="412"/>
- <location filename="src/mainwindow.cpp" line="1365"/>
+ <location filename="src/mainwindow.cpp" line="431"/>
+ <location filename="src/mainwindow.cpp" line="1406"/>
<source>&Downloads</source>
<translation>&Stahování</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="413"/>
+ <location filename="src/mainwindow.cpp" line="432"/>
<source>Show details about video downloads</source>
<translation>Zobrazit podrobnosti o stahování videí</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="421"/>
+ <location filename="src/mainwindow.cpp" line="440"/>
<source>&Download</source>
<translation>&Stáhnout</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="422"/>
+ <location filename="src/mainwindow.cpp" line="441"/>
<source>Download the current video</source>
<translation>Stáhnout přávě zobrazené video</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="441"/>
+ <location filename="src/mainwindow.cpp" line="458"/>
+ <source>&Subscribe to Channel</source>
+ <translation>&Přihlásit se ke kanálu</translation>
+ </message>
+ <message>
+ <location filename="src/mainwindow.cpp" line="465"/>
<source>Share the current video using %1</source>
<translation>Sdílet aktuální video pomocí %1</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="458"/>
+ <location filename="src/mainwindow.cpp" line="482"/>
<source>&Email</source>
<translation>&Email</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="459"/>
+ <location filename="src/mainwindow.cpp" line="483"/>
<source>Email</source>
<translation>Email</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="463"/>
+ <location filename="src/mainwindow.cpp" line="487"/>
<source>&Close</source>
<translation>&Zavřít</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="473"/>
+ <location filename="src/mainwindow.cpp" line="497"/>
<source>&Float on Top</source>
<translation>&Plovoucí navrchu</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="478"/>
+ <location filename="src/mainwindow.cpp" line="502"/>
<source>&Stop After This Video</source>
<translation>&Zastavit po tomto videu</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="485"/>
+ <location filename="src/mainwindow.cpp" line="509"/>
<source>&Report an Issue...</source>
<translation>&Nahlásit chybu...</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="489"/>
+ <location filename="src/mainwindow.cpp" line="513"/>
<source>&Refine Search...</source>
<translation>&Upřesnit vyhledávání...</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="501"/>
+ <location filename="src/mainwindow.cpp" line="525"/>
<source>More...</source>
<translation>Více...</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="504"/>
+ <location filename="src/mainwindow.cpp" line="528"/>
<source>&Related Videos</source>
<translation>&Související videa</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="506"/>
+ <location filename="src/mainwindow.cpp" line="530"/>
<source>Watch videos related to the current one</source>
<translation>Sledovat videa související s tímto</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="544"/>
+ <location filename="src/mainwindow.cpp" line="553"/>
<source>&Application</source>
<translation>&Aplikace</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="515"/>
+ <location filename="src/mainwindow.cpp" line="537"/>
<source>Buy %1...</source>
<translation>Koupit %1...</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="558"/>
+ <location filename="src/mainwindow.cpp" line="567"/>
<source>&Playback</source>
<translation>&Přehrávání</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="572"/>
+ <location filename="src/mainwindow.cpp" line="581"/>
<source>&Playlist</source>
<translation>&Playlist</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="581"/>
+ <location filename="src/mainwindow.cpp" line="590"/>
<source>&Video</source>
<translation>&Video</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="594"/>
+ <location filename="src/mainwindow.cpp" line="605"/>
<source>&View</source>
<translation>&Pohled</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="601"/>
+ <location filename="src/mainwindow.cpp" line="612"/>
<source>&Share</source>
<translation>&Sdílet</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="615"/>
+ <location filename="src/mainwindow.cpp" line="626"/>
<source>&Help</source>
<translation>&Nápověda</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="690"/>
+ <location filename="src/mainwindow.cpp" line="701"/>
<source>Press %1 to raise the volume, %2 to lower it</source>
<translation>Stiskněte %1 pro zvýšení hlasitosti; %2 pro snížení</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="889"/>
- <location filename="src/mainwindow.cpp" line="895"/>
+ <location filename="src/mainwindow.cpp" line="910"/>
+ <location filename="src/mainwindow.cpp" line="916"/>
<source>Opening %1</source>
<translation>Otevírám %1</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="936"/>
+ <location filename="src/mainwindow.cpp" line="959"/>
<source>Do you want to exit %1 with a download in progress?</source>
<translation>Chcete ukončit %1, přestože ještě probíhá stahování?</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="937"/>
+ <location filename="src/mainwindow.cpp" line="960"/>
<source>If you close %1 now, this download will be cancelled.</source>
<translation>Jestli nyní ukončíte %1, bude nedokončené stahování přerušeno</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="942"/>
+ <location filename="src/mainwindow.cpp" line="965"/>
<source>Close and cancel download</source>
<translation>Přerušit stahování a ukončit aplikaci</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="943"/>
+ <location filename="src/mainwindow.cpp" line="966"/>
<source>Wait for download to finish</source>
<translation>Počkat na dokončení stahování</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="1102"/>
+ <location filename="src/mainwindow.cpp" line="1125"/>
<source>Leave &Full Screen</source>
<translation>Opustit zobrazení na &celou obrazovku</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="1475"/>
+ <location filename="src/mainwindow.cpp" line="1515"/>
<source>%1 version %2 is now available.</source>
<translation>%1 verze %2 je nyní dostupná.</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="1479"/>
+ <location filename="src/mainwindow.cpp" line="1519"/>
<source>Remind me later</source>
<translation>Připomenout později</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="1480"/>
+ <location filename="src/mainwindow.cpp" line="1520"/>
<source>Update</source>
<translation>Aktualizovat</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="982"/>
+ <location filename="src/mainwindow.cpp" line="1005"/>
<source>Error: %1</source>
<translation>Chyba: %1</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="222"/>
+ <location filename="src/mainwindow.cpp" line="246"/>
<source>P&revious</source>
<translation>P&ředešlý</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="223"/>
+ <location filename="src/mainwindow.cpp" line="247"/>
<source>Go back to the previous track</source>
<translation>Jít zpět na předchozí skladbu</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="262"/>
+ <location filename="src/mainwindow.cpp" line="281"/>
<source>&Compact Mode</source>
<translation>&Kompaktní mód</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="275"/>
+ <location filename="src/mainwindow.cpp" line="294"/>
<source>Open the &YouTube Page</source>
<translation>Otevřít stránku &YouTube </translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="282"/>
+ <location filename="src/mainwindow.cpp" line="301"/>
<source>Copy the YouTube &Link</source>
<translation>Kopírovat YouTube &odkaz</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="289"/>
+ <location filename="src/mainwindow.cpp" line="308"/>
<source>Copy the Video Stream &URL</source>
<translation>Zkopírovat adresu &video streamu</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="296"/>
+ <location filename="src/mainwindow.cpp" line="315"/>
<source>Find Video &Parts</source>
- <translation>Nalézt video &části</translation>
+ <translation>Nalézt &části videa</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="324"/>
+ <location filename="src/mainwindow.cpp" line="343"/>
<source>&Clear Recent Searches</source>
<translation>&Vymazat poslední hledání</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="348"/>
+ <location filename="src/mainwindow.cpp" line="367"/>
<source>Make a &Donation</source>
<translation>&Podpořit</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="405"/>
+ <location filename="src/mainwindow.cpp" line="424"/>
<source>&Manually Start Playing</source>
- <translation>&Ručně zahájit přehrávání</translation>
+ <translation>Zahájit přehrávání &ručně </translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="406"/>
+ <location filename="src/mainwindow.cpp" line="425"/>
<source>Manually start playing videos</source>
- <translation>Ručně zahájit přehrávání videí</translation>
+ <translation>Zahájit přehrávání videí ručně</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="728"/>
+ <location filename="src/mainwindow.cpp" line="739"/>
<source>Choose your content location</source>
<translation>Vyberte si umístění obsahu</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="1002"/>
+ <location filename="src/mainwindow.cpp" line="1025"/>
<source>&Play</source>
<translation>&Play</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="1003"/>
+ <location filename="src/mainwindow.cpp" line="1026"/>
<source>Resume playback</source>
<translation>Pokračovat v přehrávání</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="1236"/>
+ <location filename="src/mainwindow.cpp" line="1277"/>
<source>Remaining time: %1</source>
<translation>Zbývající čas: %1</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="1294"/>
+ <location filename="src/mainwindow.cpp" line="1335"/>
<source>Volume at %1%</source>
<translation>Hlasitost na %1%</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="1300"/>
+ <location filename="src/mainwindow.cpp" line="1341"/>
<source>Volume is muted</source>
<translation>Zvuk je ztlumen</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="1303"/>
+ <location filename="src/mainwindow.cpp" line="1344"/>
<source>Volume is unmuted</source>
<translation>Zvuk je zapnut</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="1310"/>
+ <location filename="src/mainwindow.cpp" line="1351"/>
<source>Maximum video definition set to %1</source>
<translation>Maximální rozlišení videa je %1</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="1351"/>
+ <location filename="src/mainwindow.cpp" line="1392"/>
<source>Your privacy is now safe</source>
<translation>Vaše soukromí je nyní v bezpečí</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="1366"/>
+ <location filename="src/mainwindow.cpp" line="1407"/>
<source>Downloads complete</source>
<translation>Všechna stahování byla dokončena</translation>
</message>
<context>
<name>MediaView</name>
<message>
- <location filename="src/mediaview.cpp" line="553"/>
+ <location filename="src/mediaview.cpp" line="563"/>
<source>You can now paste the YouTube link into another application</source>
<translation>Nyní můžete vložit odkaz na video na YouTube do jiného programu</translation>
</message>
<message>
- <location filename="src/mediaview.cpp" line="561"/>
+ <location filename="src/mediaview.cpp" line="571"/>
<source>You can now paste the video stream URL into another application</source>
<translation>Nyní můžete vložit odkaz na video stream do jiné aplikace</translation>
</message>
<message>
- <location filename="src/mediaview.cpp" line="562"/>
+ <location filename="src/mediaview.cpp" line="572"/>
<source>The link will be valid only for a limited time.</source>
<translation>Tento odkaz platí jen po omezenou dobu.</translation>
</message>
<message>
- <location filename="src/mediaview.cpp" line="636"/>
+ <location filename="src/mediaview.cpp" line="650"/>
<source>This is just the demo version of %1.</source>
<translation>Toto je %1 -- demoverze.</translation>
</message>
<message>
- <location filename="src/mediaview.cpp" line="637"/>
+ <location filename="src/mediaview.cpp" line="651"/>
<source>It allows you to test the application and see if it works for you.</source>
<translation>Umožňuje vyzkoušet aplikaci, abyste ověřili, jestli pro vás funguje.</translation>
</message>
<message>
- <location filename="src/mediaview.cpp" line="667"/>
+ <location filename="src/mediaview.cpp" line="681"/>
<source>Continue</source>
<translation>Pokračovat</translation>
</message>
<message>
- <location filename="src/mediaview.cpp" line="756"/>
+ <location filename="src/mediaview.cpp" line="772"/>
<source>of</source>
<comment>Used in video parts, as in '2 of 3'</comment>
<translation>z</translation>
</message>
<message>
- <location filename="src/mediaview.cpp" line="768"/>
+ <location filename="src/mediaview.cpp" line="785"/>
<source>part</source>
<comment>This is for video parts, as in 'Cool video - part 1'</comment>
<translation>část</translation>
</message>
<message>
- <location filename="src/mediaview.cpp" line="770"/>
+ <location filename="src/mediaview.cpp" line="787"/>
<source>episode</source>
<comment>This is for video parts, as in 'Cool series - episode 1'</comment>
<translation>epizoda</translation>
</message>
<message>
- <location filename="src/mediaview.cpp" line="847"/>
+ <location filename="src/mediaview.cpp" line="868"/>
<source>Sent from %1</source>
<translation>Zaslat z %1</translation>
</message>
<message>
- <location filename="src/mediaview.cpp" line="644"/>
+ <location filename="src/mediaview.cpp" line="899"/>
+ <source>Unsubscribe from %1</source>
+ <translation>Odhlásit z </translation>
+ </message>
+ <message>
+ <location filename="src/mediaview.cpp" line="903"/>
+ <source>Subscribe to %1</source>
+ <translation>Přihlásit k %1</translation>
+ </message>
+ <message>
+ <location filename="src/mediaview.cpp" line="658"/>
<source>Get the full version</source>
<translation>Stáhnout plnou verzi</translation>
</message>
<message>
- <location filename="src/mediaview.cpp" line="681"/>
+ <location filename="src/mediaview.cpp" line="695"/>
<source>Downloading %1</source>
<translation>Je stahováno %1</translation>
</message>
<context>
<name>PlaylistItemDelegate</name>
<message>
- <location filename="src/playlistitemdelegate.cpp" line="159"/>
+ <location filename="src/playlistitemdelegate.cpp" line="177"/>
<source>%1 views</source>
<translation>%1 zobrazení</translation>
</message>
<message>
- <location filename="src/playlistitemdelegate.cpp" line="285"/>
+ <location filename="src/playlistitemdelegate.cpp" line="292"/>
<source>%1 of %2 (%3) — %4</source>
<translation>%1 z %2 (%3) — %4</translation>
</message>
<message>
- <location filename="src/playlistitemdelegate.cpp" line="292"/>
+ <location filename="src/playlistitemdelegate.cpp" line="299"/>
<source>Preparing</source>
<translation>Připravuje se</translation>
</message>
<message>
- <location filename="src/playlistitemdelegate.cpp" line="294"/>
+ <location filename="src/playlistitemdelegate.cpp" line="301"/>
<source>Failed</source>
<translation>Selhalo</translation>
</message>
<message>
- <location filename="src/playlistitemdelegate.cpp" line="296"/>
+ <location filename="src/playlistitemdelegate.cpp" line="303"/>
<source>Completed</source>
<translation>Dokončeno</translation>
</message>
<message>
- <location filename="src/playlistitemdelegate.cpp" line="298"/>
+ <location filename="src/playlistitemdelegate.cpp" line="305"/>
<source>Stopped</source>
<translation>Zastaveno</translation>
</message>
<message>
- <location filename="src/playlistitemdelegate.cpp" line="334"/>
+ <location filename="src/playlistitemdelegate.cpp" line="341"/>
<source>Stop downloading</source>
<translation>Zastavit stahování</translation>
</message>
<message>
- <location filename="src/playlistitemdelegate.cpp" line="344"/>
+ <location filename="src/playlistitemdelegate.cpp" line="351"/>
<source>Show in %1</source>
<translation>Ukázat v %1</translation>
</message>
<message>
- <location filename="src/playlistitemdelegate.cpp" line="346"/>
+ <location filename="src/playlistitemdelegate.cpp" line="353"/>
<source>Open parent folder</source>
<translation>Otevřít příslušný adresář</translation>
</message>
<message>
- <location filename="src/playlistitemdelegate.cpp" line="355"/>
+ <location filename="src/playlistitemdelegate.cpp" line="362"/>
<source>Restart downloading</source>
- <translation>Začít stahovat znova</translation>
+ <translation>Začít stahovat znovu</translation>
</message>
</context>
<context>
<context>
<name>SearchView</name>
<message>
- <location filename="src/searchview.cpp" line="71"/>
+ <location filename="src/searchview.cpp" line="66"/>
<source>Welcome to <a href='%1'>%2</a>,</source>
<translation>Vítejte v <a href='%1'>%2</a></translation>
</message>
<message>
- <location filename="src/searchview.cpp" line="50"/>
+ <location filename="src/searchview.cpp" line="161"/>
<source>Get the full version</source>
<translation>Získat plnou verzi</translation>
</message>
<message>
- <location filename="src/searchview.cpp" line="85"/>
+ <location filename="src/searchview.cpp" line="80"/>
<source>Enter</source>
<extracomment>"Enter", as in "type". The whole phrase says: "Enter a keyword to start watching videos"</extracomment>
- <translation>Enter</translation>
+ <translation>Vložit</translation>
</message>
<message>
- <location filename="src/searchview.cpp" line="90"/>
+ <location filename="src/searchview.cpp" line="85"/>
<source>a keyword</source>
<translation>klíčové slovo</translation>
</message>
<message>
- <location filename="src/searchview.cpp" line="91"/>
+ <location filename="src/searchview.cpp" line="86"/>
<source>a channel</source>
<translation>kanál</translation>
</message>
<message>
- <location filename="src/searchview.cpp" line="96"/>
+ <location filename="src/searchview.cpp" line="91"/>
<source>to start watching videos.</source>
- <translation>začít sledovat videa.</translation>
+ <translation> pro sledování videí.</translation>
</message>
<message>
- <location filename="src/searchview.cpp" line="120"/>
+ <location filename="src/searchview.cpp" line="115"/>
<source>Watch</source>
<translation>Sledovat</translation>
</message>
<message>
- <location filename="src/searchview.cpp" line="138"/>
+ <location filename="src/searchview.cpp" line="133"/>
<source>Recent keywords</source>
<translation>Poslední klíčová slova</translation>
</message>
<message>
- <location filename="src/searchview.cpp" line="151"/>
+ <location filename="src/searchview.cpp" line="146"/>
<source>Recent channels</source>
<translation>Poslední kanály</translation>
</message>
<context>
<name>SidebarHeader</name>
<message>
- <location filename="src/sidebarheader.cpp" line="16"/>
- <location filename="src/sidebarheader.cpp" line="23"/>
+ <location filename="src/sidebarheader.cpp" line="19"/>
+ <location filename="src/sidebarheader.cpp" line="26"/>
<source>&Back</source>
<translation>&Zpět</translation>
</message>
<source>Most Popular</source>
<translation>Nejoblíbenější</translation>
</message>
- <message>
- <location filename="src/standardfeedsview.cpp" line="86"/>
- <source>Featured</source>
- <translation>Nejlepší</translation>
- </message>
<message>
<location filename="src/standardfeedsview.cpp" line="87"/>
<source>Most Shared</source>
<source>Top Rated</source>
<translation>Nejlépe hodnocené</translation>
</message>
+ <message>
+ <location filename="src/standardfeedsview.cpp" line="90"/>
+ <source>All Time Popular</source>
+ <translation>Celou dobu populární</translation>
+ </message>
</context>
<context>
<name>Video</name>
<message>
- <location filename="src/video.cpp" line="213"/>
+ <location filename="src/video.cpp" line="215"/>
<source>Cannot get video stream for %1</source>
<translation>Nelze získat video stream pro %1</translation>
</message>
<message>
- <location filename="src/video.cpp" line="231"/>
+ <location filename="src/video.cpp" line="233"/>
<source>Network error: %1 for %2</source>
<translation>Chyba přípojení: %1 pro %2</translation>
</message>
<translation>Køb licens</translation>
</message>
</context>
+<context>
+ <name>ChannelAggregator</name>
+ <message>
+ <location filename="src/channelaggregator.cpp" line="110"/>
+ <source>By %1</source>
+ <translation>Af %1</translation>
+ </message>
+ <message numerus="yes">
+ <location filename="src/channelaggregator.cpp" line="112"/>
+ <source>You have %n new video(s)</source>
+ <translation type="unfinished"><numerusform></numerusform><numerusform></numerusform></translation>
+ </message>
+</context>
+<context>
+ <name>ChannelItemDelegate</name>
+ <message>
+ <location filename="src/channelitemdelegate.cpp" line="46"/>
+ <source>All Videos</source>
+ <translation>Alle videoer</translation>
+ </message>
+ <message>
+ <location filename="src/channelitemdelegate.cpp" line="63"/>
+ <source>Unwatched Videos</source>
+ <translation>Videoer, der ikke er set</translation>
+ </message>
+</context>
+<context>
+ <name>ChannelView</name>
+ <message>
+ <location filename="src/channelview.cpp" line="75"/>
+ <source>Mark all as watched</source>
+ <translation>Marker alle som set</translation>
+ </message>
+ <message>
+ <location filename="src/channelview.cpp" line="83"/>
+ <source>Show Updated</source>
+ <translation>Show opdateret</translation>
+ </message>
+ <message>
+ <location filename="src/channelview.cpp" line="95"/>
+ <source>Name</source>
+ <translation>Navn</translation>
+ </message>
+ <message>
+ <location filename="src/channelview.cpp" line="102"/>
+ <source>Last Updated</source>
+ <translation>Senest opdateret</translation>
+ </message>
+ <message>
+ <location filename="src/channelview.cpp" line="109"/>
+ <source>Last Added</source>
+ <translation>Senest tilføjet</translation>
+ </message>
+ <message>
+ <location filename="src/channelview.cpp" line="116"/>
+ <source>Last Watched</source>
+ <translation>Sidst set</translation>
+ </message>
+ <message>
+ <location filename="src/channelview.cpp" line="123"/>
+ <source>Most Watched</source>
+ <translation>Mest set</translation>
+ </message>
+ <message>
+ <location filename="src/channelview.cpp" line="131"/>
+ <source>Sort by</source>
+ <translation>Sorter efter</translation>
+ </message>
+ <message>
+ <location filename="src/channelview.cpp" line="190"/>
+ <source>All Videos</source>
+ <translation>Alle videoer</translation>
+ </message>
+ <message>
+ <location filename="src/channelview.cpp" line="194"/>
+ <source>Unwatched Videos</source>
+ <translation>Videoer, der ikke er set</translation>
+ </message>
+ <message>
+ <location filename="src/channelview.cpp" line="206"/>
+ <source>There are no updated subscriptions at this time.</source>
+ <translation>Der er ingen opdateringer i de abonnerede.</translation>
+ </message>
+ <message>
+ <location filename="src/channelview.cpp" line="208"/>
+ <source>You have no subscriptions. Use the star symbol to subscribe to channels.</source>
+ <translation>Du har ingen abonnementer. Brug stjernetegnet til at abonnere på kanaler.</translation>
+ </message>
+</context>
<context>
<name>ClearButton</name>
<message>
<context>
<name>HomeView</name>
<message>
- <location filename="src/homeview.cpp" line="33"/>
+ <location filename="src/homeview.cpp" line="38"/>
<source>Search</source>
<translation>Søg</translation>
</message>
<message>
- <location filename="src/homeview.cpp" line="35"/>
+ <location filename="src/homeview.cpp" line="40"/>
<source>Find videos and channels by keyword</source>
<translation>Find videoer og kanaler via søgeord</translation>
</message>
<message>
- <location filename="src/homeview.cpp" line="40"/>
+ <location filename="src/homeview.cpp" line="45"/>
<source>Browse</source>
<translation>Gennemse</translation>
</message>
<message>
- <location filename="src/homeview.cpp" line="42"/>
+ <location filename="src/homeview.cpp" line="47"/>
<source>Browse videos by category</source>
<translation>Gennemse videoer efter kategori</translation>
</message>
+ <message>
+ <location filename="src/homeview.cpp" line="51"/>
+ <source>Subscriptions</source>
+ <translation>Abonnementer</translation>
+ </message>
+ <message>
+ <location filename="src/homeview.cpp" line="53"/>
+ <source>Channel subscriptions</source>
+ <translation>Abonnementer på kanaler</translation>
+ </message>
<message>
<location filename="src/homeview.h" line="22"/>
<source>Make yourself comfortable</source>
<context>
<name>LoadingWidget</name>
<message>
- <location filename="src/loadingwidget.cpp" line="90"/>
+ <location filename="src/loadingwidget.cpp" line="88"/>
<source>Error</source>
<translation>Fejl</translation>
</message>
<context>
<name>MainWindow</name>
<message>
- <location filename="src/mainwindow.cpp" line="213"/>
+ <location filename="src/mainwindow.cpp" line="237"/>
<source>&Stop</source>
<translation>&Stop</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="214"/>
+ <location filename="src/mainwindow.cpp" line="238"/>
<source>Stop playback and go back to the search view</source>
<translation>Stop afspilning og gå tilbage til søgeoversigt</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="232"/>
+ <location filename="src/mainwindow.cpp" line="253"/>
<source>S&kip</source>
<translation>S&pring over</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="233"/>
+ <location filename="src/mainwindow.cpp" line="254"/>
<source>Skip to the next video</source>
<translation>Spring til næste video</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="239"/>
- <location filename="src/mainwindow.cpp" line="989"/>
+ <location filename="src/mainwindow.cpp" line="260"/>
+ <location filename="src/mainwindow.cpp" line="1012"/>
<source>&Pause</source>
<translation>&Pause</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="240"/>
- <location filename="src/mainwindow.cpp" line="990"/>
+ <location filename="src/mainwindow.cpp" line="261"/>
+ <location filename="src/mainwindow.cpp" line="1013"/>
<source>Pause playback</source>
<translation>Pause afspilning</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="246"/>
+ <location filename="src/mainwindow.cpp" line="267"/>
<source>&Full Screen</source>
<translation>&Fuldskærm</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="247"/>
+ <location filename="src/mainwindow.cpp" line="268"/>
<source>Go full screen</source>
<translation>Vis i fuldskærm</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="263"/>
+ <location filename="src/mainwindow.cpp" line="282"/>
<source>Hide the playlist and the toolbar</source>
<translation>Skjul afspilningslisten og værktøjslinjen</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="276"/>
+ <location filename="src/mainwindow.cpp" line="295"/>
<source>Go to the YouTube video page and pause playback</source>
<translation>Gå til YouTube-videosiden og pause afspilningen</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="283"/>
+ <location filename="src/mainwindow.cpp" line="302"/>
<source>Copy the current video YouTube link to the clipboard</source>
<translation>Kopier det aktuelle YouTube-videolink til udklipsholderen</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="290"/>
+ <location filename="src/mainwindow.cpp" line="309"/>
<source>Copy the current video stream URL to the clipboard</source>
<translation>Kopier adressen for den aktuelle videostrøm til udklipsholderen</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="297"/>
+ <location filename="src/mainwindow.cpp" line="316"/>
<source>Find other video parts hopefully in the right order</source>
<translation>Find andre videodele forhåbentlig i den rigtige rækkefølge</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="303"/>
+ <location filename="src/mainwindow.cpp" line="322"/>
<source>&Remove</source>
<translation>&Fjern</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="304"/>
+ <location filename="src/mainwindow.cpp" line="323"/>
<source>Remove the selected videos from the playlist</source>
<translation>Fjern de valgte videoer fra afspilningslisten</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="310"/>
+ <location filename="src/mainwindow.cpp" line="329"/>
<source>Move &Up</source>
<translation>Flyt &Op</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="311"/>
+ <location filename="src/mainwindow.cpp" line="330"/>
<source>Move up the selected videos in the playlist</source>
<translation>Flyt de valgte videoer i afspilningslisten op</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="317"/>
+ <location filename="src/mainwindow.cpp" line="336"/>
<source>Move &Down</source>
<translation>Flyt &Ned</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="318"/>
+ <location filename="src/mainwindow.cpp" line="337"/>
<source>Move down the selected videos in the playlist</source>
<translation>Flyt de valgte videoer i afspilningslisten ned</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="329"/>
+ <location filename="src/mainwindow.cpp" line="348"/>
<source>Clear the search history. Cannot be undone.</source>
<translation>Ryd søgeoversigt. Kan ikke fortrydes.</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="334"/>
+ <location filename="src/mainwindow.cpp" line="353"/>
<source>&Quit</source>
<translation>&Afslut</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="337"/>
+ <location filename="src/mainwindow.cpp" line="356"/>
<source>Bye</source>
<translation>Farvel</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="341"/>
+ <location filename="src/mainwindow.cpp" line="360"/>
<source>&Website</source>
<translation>&Hjemmeside</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="343"/>
+ <location filename="src/mainwindow.cpp" line="362"/>
<source>%1 on the Web</source>
<translation>%1 på nettet</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="349"/>
+ <location filename="src/mainwindow.cpp" line="368"/>
<source>Please support the continued development of %1</source>
<translation>Støt den forsatte udvikling af %1</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="354"/>
+ <location filename="src/mainwindow.cpp" line="373"/>
<source>&About</source>
<translation>&Om</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="356"/>
+ <location filename="src/mainwindow.cpp" line="375"/>
<source>Info about %1</source>
<translation>Info om %1</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="364"/>
+ <location filename="src/mainwindow.cpp" line="383"/>
<source>Search</source>
<translation>Søg</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="383"/>
+ <location filename="src/mainwindow.cpp" line="402"/>
<source>Mute volume</source>
<translation>Slå lyden fra</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="412"/>
- <location filename="src/mainwindow.cpp" line="1365"/>
+ <location filename="src/mainwindow.cpp" line="431"/>
+ <location filename="src/mainwindow.cpp" line="1406"/>
<source>&Downloads</source>
<translation>&Downloads</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="413"/>
+ <location filename="src/mainwindow.cpp" line="432"/>
<source>Show details about video downloads</source>
<translation>Vis deltaljer om video downloads</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="421"/>
+ <location filename="src/mainwindow.cpp" line="440"/>
<source>&Download</source>
<translation>&Download</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="422"/>
+ <location filename="src/mainwindow.cpp" line="441"/>
<source>Download the current video</source>
<translation>Download den aktuelle video</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="441"/>
+ <location filename="src/mainwindow.cpp" line="458"/>
+ <source>&Subscribe to Channel</source>
+ <translation>&Abonner på kanal</translation>
+ </message>
+ <message>
+ <location filename="src/mainwindow.cpp" line="465"/>
<source>Share the current video using %1</source>
<translation>Del den aktuelle video ved hjælp af %1</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="458"/>
+ <location filename="src/mainwindow.cpp" line="482"/>
<source>&Email</source>
<translation>&amp; E-mail</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="459"/>
+ <location filename="src/mainwindow.cpp" line="483"/>
<source>Email</source>
<translation>E-mail</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="463"/>
+ <location filename="src/mainwindow.cpp" line="487"/>
<source>&Close</source>
<translation>&Luk</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="473"/>
+ <location filename="src/mainwindow.cpp" line="497"/>
<source>&Float on Top</source>
<translation>&Behold øverst</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="478"/>
+ <location filename="src/mainwindow.cpp" line="502"/>
<source>&Stop After This Video</source>
<translation>&Stop efter denne video</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="485"/>
+ <location filename="src/mainwindow.cpp" line="509"/>
<source>&Report an Issue...</source>
<translation>&Rapporter et problem...</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="489"/>
+ <location filename="src/mainwindow.cpp" line="513"/>
<source>&Refine Search...</source>
<translation>&Indskrænk søgning...</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="501"/>
+ <location filename="src/mainwindow.cpp" line="525"/>
<source>More...</source>
<translation>Mere...</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="504"/>
+ <location filename="src/mainwindow.cpp" line="528"/>
<source>&Related Videos</source>
<translation>&Relaterede videoer</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="506"/>
+ <location filename="src/mainwindow.cpp" line="530"/>
<source>Watch videos related to the current one</source>
<translation>Se videoer relateret til den nuværende</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="544"/>
+ <location filename="src/mainwindow.cpp" line="553"/>
<source>&Application</source>
<translation>&Program</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="515"/>
+ <location filename="src/mainwindow.cpp" line="537"/>
<source>Buy %1...</source>
<translation>Køb %1...</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="558"/>
+ <location filename="src/mainwindow.cpp" line="567"/>
<source>&Playback</source>
<translation>&Afspil</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="572"/>
+ <location filename="src/mainwindow.cpp" line="581"/>
<source>&Playlist</source>
<translation>&Afspilningsliste</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="581"/>
+ <location filename="src/mainwindow.cpp" line="590"/>
<source>&Video</source>
<translation>&Video</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="594"/>
+ <location filename="src/mainwindow.cpp" line="605"/>
<source>&View</source>
<translation>&Vis</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="601"/>
+ <location filename="src/mainwindow.cpp" line="612"/>
<source>&Share</source>
<translation>&Del</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="615"/>
+ <location filename="src/mainwindow.cpp" line="626"/>
<source>&Help</source>
<translation>&Hjælp</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="690"/>
+ <location filename="src/mainwindow.cpp" line="701"/>
<source>Press %1 to raise the volume, %2 to lower it</source>
<translation>Tryk %1 for at skrue op for lyden og %2 for at skrue ned</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="889"/>
- <location filename="src/mainwindow.cpp" line="895"/>
+ <location filename="src/mainwindow.cpp" line="910"/>
+ <location filename="src/mainwindow.cpp" line="916"/>
<source>Opening %1</source>
<translation>Åbner %1</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="936"/>
+ <location filename="src/mainwindow.cpp" line="959"/>
<source>Do you want to exit %1 with a download in progress?</source>
<translation>Vil du afslutte %1 selvom et download er i gang?</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="937"/>
+ <location filename="src/mainwindow.cpp" line="960"/>
<source>If you close %1 now, this download will be cancelled.</source>
<translation>Hvis du lukker %1 nu vil dette download blive annulleret. </translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="942"/>
+ <location filename="src/mainwindow.cpp" line="965"/>
<source>Close and cancel download</source>
<translation>Luk og annuller download </translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="943"/>
+ <location filename="src/mainwindow.cpp" line="966"/>
<source>Wait for download to finish</source>
<translation>Vent til download er færdig</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="1102"/>
+ <location filename="src/mainwindow.cpp" line="1125"/>
<source>Leave &Full Screen</source>
<translation>Forlad &Fuld skærm</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="1475"/>
+ <location filename="src/mainwindow.cpp" line="1515"/>
<source>%1 version %2 is now available.</source>
<translation>%1 version %2 er nu tilgængelig.</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="1479"/>
+ <location filename="src/mainwindow.cpp" line="1519"/>
<source>Remind me later</source>
<translation>Påmind mig senere</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="1480"/>
+ <location filename="src/mainwindow.cpp" line="1520"/>
<source>Update</source>
<translation>Opdatér</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="982"/>
+ <location filename="src/mainwindow.cpp" line="1005"/>
<source>Error: %1</source>
<translation>Fejl: %1</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="222"/>
+ <location filename="src/mainwindow.cpp" line="246"/>
<source>P&revious</source>
<translation>F&orrige</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="223"/>
+ <location filename="src/mainwindow.cpp" line="247"/>
<source>Go back to the previous track</source>
<translation>Gå tilbage til forrige nummer</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="262"/>
+ <location filename="src/mainwindow.cpp" line="281"/>
<source>&Compact Mode</source>
<translation>%</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="275"/>
+ <location filename="src/mainwindow.cpp" line="294"/>
<source>Open the &YouTube Page</source>
<translation>Åbn &Youtube-siden</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="282"/>
+ <location filename="src/mainwindow.cpp" line="301"/>
<source>Copy the YouTube &Link</source>
<translation>Kopier &link til Youtube</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="289"/>
+ <location filename="src/mainwindow.cpp" line="308"/>
<source>Copy the Video Stream &URL</source>
<translation>
Kopiér &URL'en til videostrømmen</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="296"/>
+ <location filename="src/mainwindow.cpp" line="315"/>
<source>Find Video &Parts</source>
<translation>Find dele af videoen</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="324"/>
+ <location filename="src/mainwindow.cpp" line="343"/>
<source>&Clear Recent Searches</source>
<translation>&Ryd seneste søgninger</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="348"/>
+ <location filename="src/mainwindow.cpp" line="367"/>
<source>Make a &Donation</source>
<translation>Giv en &Donation</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="405"/>
+ <location filename="src/mainwindow.cpp" line="424"/>
<source>&Manually Start Playing</source>
<translation>Start afspilning &manuelt</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="406"/>
+ <location filename="src/mainwindow.cpp" line="425"/>
<source>Manually start playing videos</source>
<translation>Start afspilning af videoer manuelt</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="728"/>
+ <location filename="src/mainwindow.cpp" line="739"/>
<source>Choose your content location</source>
<translation>Vælg placering for dit indhold</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="1002"/>
+ <location filename="src/mainwindow.cpp" line="1025"/>
<source>&Play</source>
<translation>&Afspil</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="1003"/>
+ <location filename="src/mainwindow.cpp" line="1026"/>
<source>Resume playback</source>
<translation>Genoptag afspilning</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="1236"/>
+ <location filename="src/mainwindow.cpp" line="1277"/>
<source>Remaining time: %1</source>
<translation>Tilbageværende tid: %1</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="1294"/>
+ <location filename="src/mainwindow.cpp" line="1335"/>
<source>Volume at %1%</source>
<translation>Lydniveau på %1%</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="1300"/>
+ <location filename="src/mainwindow.cpp" line="1341"/>
<source>Volume is muted</source>
<translation>Lyden er slået fra</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="1303"/>
+ <location filename="src/mainwindow.cpp" line="1344"/>
<source>Volume is unmuted</source>
<translation>Lyden er slået til</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="1310"/>
+ <location filename="src/mainwindow.cpp" line="1351"/>
<source>Maximum video definition set to %1</source>
<translation>Maksimal videoopløsning sat til %1</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="1351"/>
+ <location filename="src/mainwindow.cpp" line="1392"/>
<source>Your privacy is now safe</source>
<translation>Dit privatliv er nu sikret</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="1366"/>
+ <location filename="src/mainwindow.cpp" line="1407"/>
<source>Downloads complete</source>
<translation>Downloads færdig</translation>
</message>
<context>
<name>MediaView</name>
<message>
- <location filename="src/mediaview.cpp" line="553"/>
+ <location filename="src/mediaview.cpp" line="563"/>
<source>You can now paste the YouTube link into another application</source>
<translation>Du kan nu indsætte YouTube-linket i et andet program</translation>
</message>
<message>
- <location filename="src/mediaview.cpp" line="561"/>
+ <location filename="src/mediaview.cpp" line="571"/>
<source>You can now paste the video stream URL into another application</source>
<translation>Du kan nu indsætte adressen til videostrømmen i et andet program</translation>
</message>
<message>
- <location filename="src/mediaview.cpp" line="562"/>
+ <location filename="src/mediaview.cpp" line="572"/>
<source>The link will be valid only for a limited time.</source>
<translation>Linket vil kun være gyldigt i en begrænset periode.</translation>
</message>
<message>
- <location filename="src/mediaview.cpp" line="636"/>
+ <location filename="src/mediaview.cpp" line="650"/>
<source>This is just the demo version of %1.</source>
<translation>Dette er kun demoversionen af %1.</translation>
</message>
<message>
- <location filename="src/mediaview.cpp" line="637"/>
+ <location filename="src/mediaview.cpp" line="651"/>
<source>It allows you to test the application and see if it works for you.</source>
<translation>Det giver dig mulighed for at teste programmet og se om det virker for dig.</translation>
</message>
<message>
- <location filename="src/mediaview.cpp" line="667"/>
+ <location filename="src/mediaview.cpp" line="681"/>
<source>Continue</source>
<translation>Forsæt</translation>
</message>
<message>
- <location filename="src/mediaview.cpp" line="756"/>
+ <location filename="src/mediaview.cpp" line="772"/>
<source>of</source>
<comment>Used in video parts, as in '2 of 3'</comment>
<translation>af</translation>
</message>
<message>
- <location filename="src/mediaview.cpp" line="768"/>
+ <location filename="src/mediaview.cpp" line="785"/>
<source>part</source>
<comment>This is for video parts, as in 'Cool video - part 1'</comment>
<translation>del</translation>
</message>
<message>
- <location filename="src/mediaview.cpp" line="770"/>
+ <location filename="src/mediaview.cpp" line="787"/>
<source>episode</source>
<comment>This is for video parts, as in 'Cool series - episode 1'</comment>
<translation>episode</translation>
</message>
<message>
- <location filename="src/mediaview.cpp" line="847"/>
+ <location filename="src/mediaview.cpp" line="868"/>
<source>Sent from %1</source>
<translation>Sendt fra %1</translation>
</message>
<message>
- <location filename="src/mediaview.cpp" line="644"/>
+ <location filename="src/mediaview.cpp" line="899"/>
+ <source>Unsubscribe from %1</source>
+ <translation>Fjern abonnement fra %1</translation>
+ </message>
+ <message>
+ <location filename="src/mediaview.cpp" line="903"/>
+ <source>Subscribe to %1</source>
+ <translation>Abonner på %1</translation>
+ </message>
+ <message>
+ <location filename="src/mediaview.cpp" line="658"/>
<source>Get the full version</source>
<translation>Hent den fulde version</translation>
</message>
<message>
- <location filename="src/mediaview.cpp" line="681"/>
+ <location filename="src/mediaview.cpp" line="695"/>
<source>Downloading %1</source>
<translation>Downloader %1</translation>
</message>
<context>
<name>PlaylistItemDelegate</name>
<message>
- <location filename="src/playlistitemdelegate.cpp" line="159"/>
+ <location filename="src/playlistitemdelegate.cpp" line="177"/>
<source>%1 views</source>
<translation>%1 visninger</translation>
</message>
<message>
- <location filename="src/playlistitemdelegate.cpp" line="285"/>
+ <location filename="src/playlistitemdelegate.cpp" line="292"/>
<source>%1 of %2 (%3) — %4</source>
<translation>%1 af %2 (%3) — %4</translation>
</message>
<message>
- <location filename="src/playlistitemdelegate.cpp" line="292"/>
+ <location filename="src/playlistitemdelegate.cpp" line="299"/>
<source>Preparing</source>
<translation>Forbereder</translation>
</message>
<message>
- <location filename="src/playlistitemdelegate.cpp" line="294"/>
+ <location filename="src/playlistitemdelegate.cpp" line="301"/>
<source>Failed</source>
<translation>Fejl</translation>
</message>
<message>
- <location filename="src/playlistitemdelegate.cpp" line="296"/>
+ <location filename="src/playlistitemdelegate.cpp" line="303"/>
<source>Completed</source>
<translation>Fuldendt</translation>
</message>
<message>
- <location filename="src/playlistitemdelegate.cpp" line="298"/>
+ <location filename="src/playlistitemdelegate.cpp" line="305"/>
<source>Stopped</source>
<translation>Stoppet</translation>
</message>
<message>
- <location filename="src/playlistitemdelegate.cpp" line="334"/>
+ <location filename="src/playlistitemdelegate.cpp" line="341"/>
<source>Stop downloading</source>
<translation>Stop download</translation>
</message>
<message>
- <location filename="src/playlistitemdelegate.cpp" line="344"/>
+ <location filename="src/playlistitemdelegate.cpp" line="351"/>
<source>Show in %1</source>
<translation>VIs i %1</translation>
</message>
<message>
- <location filename="src/playlistitemdelegate.cpp" line="346"/>
+ <location filename="src/playlistitemdelegate.cpp" line="353"/>
<source>Open parent folder</source>
<translation>Åben ovenstående mappe</translation>
</message>
<message>
- <location filename="src/playlistitemdelegate.cpp" line="355"/>
+ <location filename="src/playlistitemdelegate.cpp" line="362"/>
<source>Restart downloading</source>
<translation>Genstart download</translation>
</message>
<context>
<name>SearchView</name>
<message>
- <location filename="src/searchview.cpp" line="71"/>
+ <location filename="src/searchview.cpp" line="66"/>
<source>Welcome to <a href='%1'>%2</a>,</source>
<translation>Velkommen til <a href='%1'>%2</a>,</translation>
</message>
<message>
- <location filename="src/searchview.cpp" line="50"/>
+ <location filename="src/searchview.cpp" line="161"/>
<source>Get the full version</source>
<translation>Hent den fulde version</translation>
</message>
<message>
- <location filename="src/searchview.cpp" line="85"/>
+ <location filename="src/searchview.cpp" line="80"/>
<source>Enter</source>
<extracomment>"Enter", as in "type". The whole phrase says: "Enter a keyword to start watching videos"</extracomment>
<translation>Indtast</translation>
</message>
<message>
- <location filename="src/searchview.cpp" line="90"/>
+ <location filename="src/searchview.cpp" line="85"/>
<source>a keyword</source>
<translation>et nøgleord</translation>
</message>
<message>
- <location filename="src/searchview.cpp" line="91"/>
+ <location filename="src/searchview.cpp" line="86"/>
<source>a channel</source>
<translation>en kanal</translation>
</message>
<message>
- <location filename="src/searchview.cpp" line="96"/>
+ <location filename="src/searchview.cpp" line="91"/>
<source>to start watching videos.</source>
<translation>for at begynde at se video.</translation>
</message>
<message>
- <location filename="src/searchview.cpp" line="120"/>
+ <location filename="src/searchview.cpp" line="115"/>
<source>Watch</source>
<translation>Afspil</translation>
</message>
<message>
- <location filename="src/searchview.cpp" line="138"/>
+ <location filename="src/searchview.cpp" line="133"/>
<source>Recent keywords</source>
<translation>Seneste nøgleord</translation>
</message>
<message>
- <location filename="src/searchview.cpp" line="151"/>
+ <location filename="src/searchview.cpp" line="146"/>
<source>Recent channels</source>
<translation>Nyeste kanaler</translation>
</message>
<context>
<name>SidebarHeader</name>
<message>
- <location filename="src/sidebarheader.cpp" line="16"/>
- <location filename="src/sidebarheader.cpp" line="23"/>
+ <location filename="src/sidebarheader.cpp" line="19"/>
+ <location filename="src/sidebarheader.cpp" line="26"/>
<source>&Back</source>
<translation>&Tilbage</translation>
</message>
<source>Most Popular</source>
<translation>Mest populære</translation>
</message>
- <message>
- <location filename="src/standardfeedsview.cpp" line="86"/>
- <source>Featured</source>
- <translation>Udvalgte</translation>
- </message>
<message>
<location filename="src/standardfeedsview.cpp" line="87"/>
<source>Most Shared</source>
<source>Top Rated</source>
<translation>Bedst bedømte</translation>
</message>
+ <message>
+ <location filename="src/standardfeedsview.cpp" line="90"/>
+ <source>All Time Popular</source>
+ <translation>Mest populære</translation>
+ </message>
</context>
<context>
<name>Video</name>
<message>
- <location filename="src/video.cpp" line="213"/>
+ <location filename="src/video.cpp" line="215"/>
<source>Cannot get video stream for %1</source>
<translation>Kan ikke hente videostrøm for %1</translation>
</message>
<message>
- <location filename="src/video.cpp" line="231"/>
+ <location filename="src/video.cpp" line="233"/>
<source>Network error: %1 for %2</source>
<translation>Netværksfejl: %1 for %2</translation>
</message>
<message>
<location filename="src/aboutview.cpp" line="38"/>
<source>Licensed to: %1</source>
- <translation type="unfinished"/>
+ <translation>Lizenziert für: %1</translation>
</message>
<message>
<location filename="src/aboutview.cpp" line="42"/>
<message>
<location filename="src/aboutview.cpp" line="43"/>
<source>Please <a href='%1'>donate</a> to support the continued development of %2.</source>
- <translation>Bitte <a href='%1'>spende</a>, um die ständige Entwicklung von %2 zu unterstützen.</translation>
+ <translation>Bitte <a href='%1'>spenden</a> Sie, um die Weiterentwicklung von %2 zu unterstützen.</translation>
</message>
<message>
<location filename="src/aboutview.cpp" line="47"/>
<message>
<location filename="src/aboutview.cpp" line="65"/>
<source>Icon designed by %1.</source>
- <translation>Symbol-Entwurf durch %1.</translation>
+ <translation>Icons wurden gestaltet von %1.</translation>
</message>
<message>
<location filename="src/aboutview.cpp" line="69"/>
<message>
<location filename="local/src/activationdialog.cpp" line="17"/>
<source>Enter your License Details</source>
- <translation type="unfinished"/>
+ <translation>Geben Sie Ihre Lizenzierungsinformationen ein</translation>
</message>
<message>
<location filename="local/src/activationdialog.cpp" line="29"/>
<source>&Email:</source>
- <translation type="unfinished"/>
+ <translation>&E-mail:</translation>
</message>
<message>
<location filename="local/src/activationdialog.cpp" line="35"/>
<source>&Code:</source>
- <translation type="unfinished"/>
+ <translation>&Schlüssel:</translation>
</message>
</context>
<context>
<message>
<location filename="local/src/activationview.cpp" line="53"/>
<source>The full version allows you to download videos longer than %1 minutes and to watch videos without interruptions.</source>
- <translation type="unfinished"/>
+ <translation>In der Vollversion können Sie Videos ohne Unterbrechungen und mit einer Laufzeit von mehr als %1 Minuten ansehen.</translation>
</message>
<message>
<location filename="local/src/activationview.cpp" line="55"/>
<source>Without a license, the application will expire in %1 days.</source>
- <translation type="unfinished"/>
+ <translation>Ohne Lizenz läuft das Programm nur noch %1 Tage.</translation>
</message>
<message>
<location filename="local/src/activationview.cpp" line="57"/>
<message>
<location filename="local/src/activationview.cpp" line="77"/>
<source>Enter License</source>
- <translation type="unfinished"/>
+ <translation>Lizenzdaten eingeben</translation>
</message>
<message>
<location filename="local/src/activationview.cpp" line="85"/>
<source>Buy License</source>
- <translation type="unfinished"/>
+ <translation>Lizenz kaufen</translation>
+ </message>
+</context>
+<context>
+ <name>ChannelAggregator</name>
+ <message>
+ <location filename="src/channelaggregator.cpp" line="110"/>
+ <source>By %1</source>
+ <translation>Von %1</translation>
+ </message>
+ <message numerus="yes">
+ <location filename="src/channelaggregator.cpp" line="112"/>
+ <source>You have %n new video(s)</source>
+ <translation type="unfinished"><numerusform></numerusform><numerusform></numerusform></translation>
+ </message>
+</context>
+<context>
+ <name>ChannelItemDelegate</name>
+ <message>
+ <location filename="src/channelitemdelegate.cpp" line="46"/>
+ <source>All Videos</source>
+ <translation>Alle Videos</translation>
+ </message>
+ <message>
+ <location filename="src/channelitemdelegate.cpp" line="63"/>
+ <source>Unwatched Videos</source>
+ <translation>Ungesehene Videos</translation>
+ </message>
+</context>
+<context>
+ <name>ChannelView</name>
+ <message>
+ <location filename="src/channelview.cpp" line="75"/>
+ <source>Mark all as watched</source>
+ <translation>Alle als gesehen markieren</translation>
+ </message>
+ <message>
+ <location filename="src/channelview.cpp" line="83"/>
+ <source>Show Updated</source>
+ <translation>Zeige aktualisierte</translation>
+ </message>
+ <message>
+ <location filename="src/channelview.cpp" line="95"/>
+ <source>Name</source>
+ <translation>Name</translation>
+ </message>
+ <message>
+ <location filename="src/channelview.cpp" line="102"/>
+ <source>Last Updated</source>
+ <translation>Zuletzt aktualisiert</translation>
+ </message>
+ <message>
+ <location filename="src/channelview.cpp" line="109"/>
+ <source>Last Added</source>
+ <translation>Zuletzt hinzugefügt</translation>
+ </message>
+ <message>
+ <location filename="src/channelview.cpp" line="116"/>
+ <source>Last Watched</source>
+ <translation>Zuletzt angesehen</translation>
+ </message>
+ <message>
+ <location filename="src/channelview.cpp" line="123"/>
+ <source>Most Watched</source>
+ <translation>Am meisten angesehen</translation>
+ </message>
+ <message>
+ <location filename="src/channelview.cpp" line="131"/>
+ <source>Sort by</source>
+ <translation>Sortieren nach</translation>
+ </message>
+ <message>
+ <location filename="src/channelview.cpp" line="190"/>
+ <source>All Videos</source>
+ <translation>Alle Videos</translation>
+ </message>
+ <message>
+ <location filename="src/channelview.cpp" line="194"/>
+ <source>Unwatched Videos</source>
+ <translation>Ungesehene Videos</translation>
+ </message>
+ <message>
+ <location filename="src/channelview.cpp" line="206"/>
+ <source>There are no updated subscriptions at this time.</source>
+ <translation>Zurzeit gibt es nichts Neues bei den Abonnements.</translation>
+ </message>
+ <message>
+ <location filename="src/channelview.cpp" line="208"/>
+ <source>You have no subscriptions. Use the star symbol to subscribe to channels.</source>
+ <translation>Du hast keine Abonnements. Benutze das Stern-Symbol, um einen Kanal zu abonnieren.</translation>
</message>
</context>
<context>
<message>
<location filename="src/downloadmanager.cpp" line="57"/>
<source>It can only download videos shorter than %1 minutes so you can test the download functionality.</source>
- <translation>Sie kann nur Videos, die kürzer als %1 Minuten sind, herunterladen, damit die Download-Funktionalität getestet werden kann.</translation>
+ <translation>Sie kann nur Videos herunterladen, die kürzer als %1 Minuten sind, um die Funktion zum Herunterladen zu testen.</translation>
</message>
<message>
<location filename="src/downloadmanager.cpp" line="63"/>
<message>
<location filename="src/downloadmanager.cpp" line="64"/>
<source>Get the full version</source>
- <translation>Die Vollversion holen</translation>
+ <translation>Die Vollversion kaufen</translation>
</message>
<message>
<location filename="src/downloadmanager.cpp" line="150"/>
<message>
<location filename="src/downloadsettings.cpp" line="59"/>
<source>Download location changed.</source>
- <translation>Speicherort wurde verändert.</translation>
+ <translation>Speicherort wurde geändert.</translation>
</message>
<message>
<location filename="src/downloadsettings.cpp" line="61"/>
<source>Current downloads will still go in the previous location.</source>
- <translation>Aktuelle Downloads werden immernoch im alten Speicherort gespeichert.</translation>
+ <translation>Aktuelle Downloads werden immer noch im alten Speicherort gespeichert.</translation>
</message>
<message>
<location filename="src/downloadsettings.cpp" line="72"/>
<message>
<location filename="local/src/updatedialog.cpp" line="60"/>
<source>Downloading update...</source>
- <translation type="unfinished"/>
+ <translation>Lade Aktualisierung herunter...</translation>
</message>
</context>
<context>
<message>
<location filename="src/globalshortcuts.cpp" line="20"/>
<source>Stop playing after current track</source>
- <translation>Nachdem aktueller Titel abgespielt wurde halten</translation>
+ <translation>Nach aktuellem Titel Wiedergabe anhalten</translation>
</message>
<message>
<location filename="src/globalshortcuts.cpp" line="21"/>
<context>
<name>HomeView</name>
<message>
- <location filename="src/homeview.cpp" line="33"/>
+ <location filename="src/homeview.cpp" line="38"/>
<source>Search</source>
<translation>Suche</translation>
</message>
<message>
- <location filename="src/homeview.cpp" line="35"/>
+ <location filename="src/homeview.cpp" line="40"/>
<source>Find videos and channels by keyword</source>
- <translation type="unfinished"/>
+ <translation>Videos und Kanäle nach Suchbegriff finden</translation>
</message>
<message>
- <location filename="src/homeview.cpp" line="40"/>
+ <location filename="src/homeview.cpp" line="45"/>
<source>Browse</source>
- <translation type="unfinished"/>
+ <translation>Stöbern</translation>
</message>
<message>
- <location filename="src/homeview.cpp" line="42"/>
+ <location filename="src/homeview.cpp" line="47"/>
<source>Browse videos by category</source>
- <translation type="unfinished"/>
+ <translation>Videos nach Kategorien durchstöbern</translation>
+ </message>
+ <message>
+ <location filename="src/homeview.cpp" line="51"/>
+ <source>Subscriptions</source>
+ <translation>Abonnements</translation>
+ </message>
+ <message>
+ <location filename="src/homeview.cpp" line="53"/>
+ <source>Channel subscriptions</source>
+ <translation>Abonnierte Kanäle</translation>
</message>
<message>
<location filename="src/homeview.h" line="22"/>
<source>Make yourself comfortable</source>
- <translation type="unfinished"/>
+ <translation>Machen Sie es sich gemütlich</translation>
</message>
</context>
<context>
<name>LoadingWidget</name>
<message>
- <location filename="src/loadingwidget.cpp" line="90"/>
+ <location filename="src/loadingwidget.cpp" line="88"/>
<source>Error</source>
<translation>Fehler</translation>
</message>
<context>
<name>MainWindow</name>
<message>
- <location filename="src/mainwindow.cpp" line="213"/>
+ <location filename="src/mainwindow.cpp" line="237"/>
<source>&Stop</source>
<translation>&Halt</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="214"/>
+ <location filename="src/mainwindow.cpp" line="238"/>
<source>Stop playback and go back to the search view</source>
<translation>Wiedergabe anhalten und zur Suchansicht zurückkehren</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="232"/>
+ <location filename="src/mainwindow.cpp" line="253"/>
<source>S&kip</source>
<translation>Ü&berspringen</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="233"/>
+ <location filename="src/mainwindow.cpp" line="254"/>
<source>Skip to the next video</source>
<translation>Zum nächsten Video springen</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="239"/>
- <location filename="src/mainwindow.cpp" line="989"/>
+ <location filename="src/mainwindow.cpp" line="260"/>
+ <location filename="src/mainwindow.cpp" line="1012"/>
<source>&Pause</source>
<translation>&Pause</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="240"/>
- <location filename="src/mainwindow.cpp" line="990"/>
+ <location filename="src/mainwindow.cpp" line="261"/>
+ <location filename="src/mainwindow.cpp" line="1013"/>
<source>Pause playback</source>
<translation>Wiedergabe pausieren</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="246"/>
+ <location filename="src/mainwindow.cpp" line="267"/>
<source>&Full Screen</source>
<translation>&Vollbildmodus</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="247"/>
+ <location filename="src/mainwindow.cpp" line="268"/>
<source>Go full screen</source>
<translation>Vollbildmodus aktivieren</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="263"/>
+ <location filename="src/mainwindow.cpp" line="282"/>
<source>Hide the playlist and the toolbar</source>
- <translation>Verstecke Abspielliste und Werkzeugleiste</translation>
+ <translation>Abspielliste und Werkzeugleiste ausblenden</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="276"/>
+ <location filename="src/mainwindow.cpp" line="295"/>
<source>Go to the YouTube video page and pause playback</source>
<translation>Gehe zur YouTube-Video-Seite und pausiere die Wiedergabe</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="283"/>
+ <location filename="src/mainwindow.cpp" line="302"/>
<source>Copy the current video YouTube link to the clipboard</source>
<translation>YouTube-Link in die Zwischenablage kopieren</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="290"/>
+ <location filename="src/mainwindow.cpp" line="309"/>
<source>Copy the current video stream URL to the clipboard</source>
- <translation>Video-URL in die Zwischenablage kopieren</translation>
+ <translation>Video-Link in die Zwischenablage kopieren</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="297"/>
+ <location filename="src/mainwindow.cpp" line="316"/>
<source>Find other video parts hopefully in the right order</source>
<translation>Findet andere Teile des Videos, hoffentlich in der richtigen Reihenfolge</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="303"/>
+ <location filename="src/mainwindow.cpp" line="322"/>
<source>&Remove</source>
<translation>Entfe&rnen</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="304"/>
+ <location filename="src/mainwindow.cpp" line="323"/>
<source>Remove the selected videos from the playlist</source>
<translation>Entferne das ausgewählte Video aus der Abspielliste</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="310"/>
+ <location filename="src/mainwindow.cpp" line="329"/>
<source>Move &Up</source>
<translation>Bewege &hinauf</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="311"/>
+ <location filename="src/mainwindow.cpp" line="330"/>
<source>Move up the selected videos in the playlist</source>
<translation>Bewege das ausgewählte Video in der Abspielliste hinauf</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="317"/>
+ <location filename="src/mainwindow.cpp" line="336"/>
<source>Move &Down</source>
<translation>Bewege hin&ab</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="318"/>
+ <location filename="src/mainwindow.cpp" line="337"/>
<source>Move down the selected videos in the playlist</source>
<translation>Bewege das ausgewählte Video in der Abspielliste hinunter</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="329"/>
+ <location filename="src/mainwindow.cpp" line="348"/>
<source>Clear the search history. Cannot be undone.</source>
- <translation>Such-Verlauf leeren. Kann nicht rückgängig gemacht werden.</translation>
+ <translation>Den Suchverlauf löschen. Kann nicht rückgängig gemacht werden.</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="334"/>
+ <location filename="src/mainwindow.cpp" line="353"/>
<source>&Quit</source>
<translation>&Verlassen</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="337"/>
+ <location filename="src/mainwindow.cpp" line="356"/>
<source>Bye</source>
<translation>Tschüss</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="341"/>
+ <location filename="src/mainwindow.cpp" line="360"/>
<source>&Website</source>
<translation>&Webseite</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="343"/>
+ <location filename="src/mainwindow.cpp" line="362"/>
<source>%1 on the Web</source>
<translation>%1 im Web</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="349"/>
+ <location filename="src/mainwindow.cpp" line="368"/>
<source>Please support the continued development of %1</source>
<translation>Bitte unterstützen Sie die weitere Entwicklung von %1</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="354"/>
+ <location filename="src/mainwindow.cpp" line="373"/>
<source>&About</source>
<translation>&Über</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="356"/>
+ <location filename="src/mainwindow.cpp" line="375"/>
<source>Info about %1</source>
<translation>Informationen über %1</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="364"/>
+ <location filename="src/mainwindow.cpp" line="383"/>
<source>Search</source>
<translation>Suche</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="383"/>
+ <location filename="src/mainwindow.cpp" line="402"/>
<source>Mute volume</source>
<translation>Stummschalten</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="412"/>
- <location filename="src/mainwindow.cpp" line="1365"/>
+ <location filename="src/mainwindow.cpp" line="431"/>
+ <location filename="src/mainwindow.cpp" line="1406"/>
<source>&Downloads</source>
<translation>&Downloads</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="413"/>
+ <location filename="src/mainwindow.cpp" line="432"/>
<source>Show details about video downloads</source>
<translation>Details über Video-Downloads anzeigen</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="421"/>
+ <location filename="src/mainwindow.cpp" line="440"/>
<source>&Download</source>
<translation>H&erunterladen</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="422"/>
+ <location filename="src/mainwindow.cpp" line="441"/>
<source>Download the current video</source>
<translation>Das aktuelle Video herunterladen</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="441"/>
+ <location filename="src/mainwindow.cpp" line="458"/>
+ <source>&Subscribe to Channel</source>
+ <translation>&Abonnieren des Kanals</translation>
+ </message>
+ <message>
+ <location filename="src/mainwindow.cpp" line="465"/>
<source>Share the current video using %1</source>
<translation>Teilen Sie das aktuellen Video mit %1</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="458"/>
+ <location filename="src/mainwindow.cpp" line="482"/>
<source>&Email</source>
<translation>&E-Mail</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="459"/>
+ <location filename="src/mainwindow.cpp" line="483"/>
<source>Email</source>
<translation>E-Mail</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="463"/>
+ <location filename="src/mainwindow.cpp" line="487"/>
<source>&Close</source>
<translation>&Schließen</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="473"/>
+ <location filename="src/mainwindow.cpp" line="497"/>
<source>&Float on Top</source>
<translation>Im Vordergrund &bleiben</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="478"/>
+ <location filename="src/mainwindow.cpp" line="502"/>
<source>&Stop After This Video</source>
<translation>Nach diesem Video &anhalten</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="485"/>
+ <location filename="src/mainwindow.cpp" line="509"/>
<source>&Report an Issue...</source>
<translation>&Ein Problem melden ...</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="489"/>
+ <location filename="src/mainwindow.cpp" line="513"/>
<source>&Refine Search...</source>
<translation>&Suche verfeinern ...</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="501"/>
+ <location filename="src/mainwindow.cpp" line="525"/>
<source>More...</source>
- <translation type="unfinished"/>
+ <translation>Mehr...</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="504"/>
+ <location filename="src/mainwindow.cpp" line="528"/>
<source>&Related Videos</source>
- <translation type="unfinished"/>
+ <translation>Ve&rwandte Videos</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="506"/>
+ <location filename="src/mainwindow.cpp" line="530"/>
<source>Watch videos related to the current one</source>
- <translation type="unfinished"/>
+ <translation>Verwandte Videos zum Aktuellen ansehen</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="544"/>
+ <location filename="src/mainwindow.cpp" line="553"/>
<source>&Application</source>
<translation>&Anwendung</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="515"/>
+ <location filename="src/mainwindow.cpp" line="537"/>
<source>Buy %1...</source>
<translation>%1 kaufen...</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="558"/>
+ <location filename="src/mainwindow.cpp" line="567"/>
<source>&Playback</source>
<translation>&Wiedergabe</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="572"/>
+ <location filename="src/mainwindow.cpp" line="581"/>
<source>&Playlist</source>
<translation>A&bspielliste</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="581"/>
+ <location filename="src/mainwindow.cpp" line="590"/>
<source>&Video</source>
<translation>&Video</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="594"/>
+ <location filename="src/mainwindow.cpp" line="605"/>
<source>&View</source>
<translation>&Ansehen</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="601"/>
+ <location filename="src/mainwindow.cpp" line="612"/>
<source>&Share</source>
<translation>&Teilen</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="615"/>
+ <location filename="src/mainwindow.cpp" line="626"/>
<source>&Help</source>
<translation>&Hilfe</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="690"/>
+ <location filename="src/mainwindow.cpp" line="701"/>
<source>Press %1 to raise the volume, %2 to lower it</source>
<translation>%1 drücken, um die Lautstärke zu erhöhen, %2 um sie zu verringern</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="889"/>
- <location filename="src/mainwindow.cpp" line="895"/>
+ <location filename="src/mainwindow.cpp" line="910"/>
+ <location filename="src/mainwindow.cpp" line="916"/>
<source>Opening %1</source>
- <translation>%1 öffnen</translation>
+ <translation>Öffne %1</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="936"/>
+ <location filename="src/mainwindow.cpp" line="959"/>
<source>Do you want to exit %1 with a download in progress?</source>
<translation>Möchten Sie %1 mit einem aktiven Download beenden?</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="937"/>
+ <location filename="src/mainwindow.cpp" line="960"/>
<source>If you close %1 now, this download will be cancelled.</source>
<translation>Wenn Sie %1 jetzt beenden, wird der Download abgebrochen.</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="942"/>
+ <location filename="src/mainwindow.cpp" line="965"/>
<source>Close and cancel download</source>
<translation>Beenden und Download abbrechen</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="943"/>
+ <location filename="src/mainwindow.cpp" line="966"/>
<source>Wait for download to finish</source>
- <translation>Auf Abschluß des Downloads warten</translation>
+ <translation>Auf Abschluss des Downloads warten</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="1102"/>
+ <location filename="src/mainwindow.cpp" line="1125"/>
<source>Leave &Full Screen</source>
<translation>&Vollbild verlassen</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="1475"/>
+ <location filename="src/mainwindow.cpp" line="1515"/>
<source>%1 version %2 is now available.</source>
<translation>%1 Version %2 ist jetzt verfügbar.</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="1479"/>
+ <location filename="src/mainwindow.cpp" line="1519"/>
<source>Remind me later</source>
<translation>Erinnere mich später</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="1480"/>
+ <location filename="src/mainwindow.cpp" line="1520"/>
<source>Update</source>
<translation>Aktualisierung</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="982"/>
+ <location filename="src/mainwindow.cpp" line="1005"/>
<source>Error: %1</source>
<translation>Fehler: %1</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="222"/>
+ <location filename="src/mainwindow.cpp" line="246"/>
<source>P&revious</source>
<translation>V&origes</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="223"/>
+ <location filename="src/mainwindow.cpp" line="247"/>
<source>Go back to the previous track</source>
<translation>Zum vorherigen Titel zurückgehen</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="262"/>
+ <location filename="src/mainwindow.cpp" line="281"/>
<source>&Compact Mode</source>
<translation>&Kompakt-Modus</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="275"/>
+ <location filename="src/mainwindow.cpp" line="294"/>
<source>Open the &YouTube Page</source>
<translation>&YouTube-Seite öffnen</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="282"/>
+ <location filename="src/mainwindow.cpp" line="301"/>
<source>Copy the YouTube &Link</source>
- <translation>YouTube &Link kopieren</translation>
+ <translation>YouTube-&Link kopieren</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="289"/>
+ <location filename="src/mainwindow.cpp" line="308"/>
<source>Copy the Video Stream &URL</source>
- <translation>Video-Stream &URL kopieren</translation>
+ <translation>Video-Stream-&URL kopieren</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="296"/>
+ <location filename="src/mainwindow.cpp" line="315"/>
<source>Find Video &Parts</source>
- <translation>Suche Video &Teile</translation>
+ <translation>Suche weitere Video&teile</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="324"/>
+ <location filename="src/mainwindow.cpp" line="343"/>
<source>&Clear Recent Searches</source>
<translation>Vorherige Suchbegriffe löschen</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="348"/>
+ <location filename="src/mainwindow.cpp" line="367"/>
<source>Make a &Donation</source>
<translation>&Spenden</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="405"/>
+ <location filename="src/mainwindow.cpp" line="424"/>
<source>&Manually Start Playing</source>
<translation>&Manuelles Starten der Wiedergabe</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="406"/>
+ <location filename="src/mainwindow.cpp" line="425"/>
<source>Manually start playing videos</source>
- <translation>Manuelles Starten der Video-Wiedergabe</translation>
+ <translation>Manuelles Starten der Videowiedergabe</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="728"/>
+ <location filename="src/mainwindow.cpp" line="739"/>
<source>Choose your content location</source>
- <translation type="unfinished"/>
+ <translation>Wähle ein Land für Inhalte</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="1002"/>
+ <location filename="src/mainwindow.cpp" line="1025"/>
<source>&Play</source>
<translation>&Abspielen</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="1003"/>
+ <location filename="src/mainwindow.cpp" line="1026"/>
<source>Resume playback</source>
<translation>Wiedergabe fortsetzen</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="1236"/>
+ <location filename="src/mainwindow.cpp" line="1277"/>
<source>Remaining time: %1</source>
<translation>Verbleibende Zeit: %1</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="1294"/>
+ <location filename="src/mainwindow.cpp" line="1335"/>
<source>Volume at %1%</source>
<translation>Lautstärke %1%</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="1300"/>
+ <location filename="src/mainwindow.cpp" line="1341"/>
<source>Volume is muted</source>
<translation>Ton ist stummgeschaltet</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="1303"/>
+ <location filename="src/mainwindow.cpp" line="1344"/>
<source>Volume is unmuted</source>
- <translation>Ton ist angeschaltet</translation>
+ <translation>Ton ist eingeschaltet</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="1310"/>
+ <location filename="src/mainwindow.cpp" line="1351"/>
<source>Maximum video definition set to %1</source>
- <translation>Maximale Video-Auflösung wurde auf %1 gesetzt</translation>
+ <translation>Maximale Videoauflösung wurde auf %1 gesetzt</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="1351"/>
+ <location filename="src/mainwindow.cpp" line="1392"/>
<source>Your privacy is now safe</source>
<translation>Ihre Privatsphäre ist nun geschützt</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="1366"/>
+ <location filename="src/mainwindow.cpp" line="1407"/>
<source>Downloads complete</source>
- <translation>Downloads heruntergeladen</translation>
+ <translation>Herunterladen vollständig</translation>
</message>
</context>
<context>
<name>MediaView</name>
<message>
- <location filename="src/mediaview.cpp" line="553"/>
+ <location filename="src/mediaview.cpp" line="563"/>
<source>You can now paste the YouTube link into another application</source>
- <translation>Du kannst den YouTube-Link nun in einer anderen Anwendung einfügen</translation>
+ <translation>Sie können den YouTube-Link nun in einer anderen Anwendung einfügen</translation>
</message>
<message>
- <location filename="src/mediaview.cpp" line="561"/>
+ <location filename="src/mediaview.cpp" line="571"/>
<source>You can now paste the video stream URL into another application</source>
- <translation>Du kannst die Video-URL nun in einer anderen Anwendung einfügen</translation>
+ <translation>Sie können den Video-Link nun in einer anderen Anwendung einfügen</translation>
</message>
<message>
- <location filename="src/mediaview.cpp" line="562"/>
+ <location filename="src/mediaview.cpp" line="572"/>
<source>The link will be valid only for a limited time.</source>
<translation>Der Link wird nur eine beschränkte Zeit gültig sein.</translation>
</message>
<message>
- <location filename="src/mediaview.cpp" line="636"/>
+ <location filename="src/mediaview.cpp" line="650"/>
<source>This is just the demo version of %1.</source>
- <translation>Dies ist nur eine Demoversion von %1.</translation>
+ <translation>Dies ist nur die Demoversion von %1.</translation>
</message>
<message>
- <location filename="src/mediaview.cpp" line="637"/>
+ <location filename="src/mediaview.cpp" line="651"/>
<source>It allows you to test the application and see if it works for you.</source>
- <translation>Sie erlaubt Ihnen die Anwendung zu testen und zu schauen ob sie bei Ihnen läuft.</translation>
+ <translation>Sie erlaubt es Ihnen die Anwendung zu testen und zu schauen, ob sie bei Ihnen läuft.</translation>
</message>
<message>
- <location filename="src/mediaview.cpp" line="667"/>
+ <location filename="src/mediaview.cpp" line="681"/>
<source>Continue</source>
<translation>Fortfahren</translation>
</message>
<message>
- <location filename="src/mediaview.cpp" line="756"/>
+ <location filename="src/mediaview.cpp" line="772"/>
<source>of</source>
<comment>Used in video parts, as in '2 of 3'</comment>
<translation>von </translation>
</message>
<message>
- <location filename="src/mediaview.cpp" line="768"/>
+ <location filename="src/mediaview.cpp" line="785"/>
<source>part</source>
<comment>This is for video parts, as in 'Cool video - part 1'</comment>
<translation>Teil</translation>
</message>
<message>
- <location filename="src/mediaview.cpp" line="770"/>
+ <location filename="src/mediaview.cpp" line="787"/>
<source>episode</source>
<comment>This is for video parts, as in 'Cool series - episode 1'</comment>
<translation>Episode</translation>
</message>
<message>
- <location filename="src/mediaview.cpp" line="847"/>
+ <location filename="src/mediaview.cpp" line="868"/>
<source>Sent from %1</source>
<translation>Gesendet von %1</translation>
</message>
<message>
- <location filename="src/mediaview.cpp" line="644"/>
+ <location filename="src/mediaview.cpp" line="899"/>
+ <source>Unsubscribe from %1</source>
+ <translation>Beende Abonnement von %1</translation>
+ </message>
+ <message>
+ <location filename="src/mediaview.cpp" line="903"/>
+ <source>Subscribe to %1</source>
+ <translation>Abonnieren von %1</translation>
+ </message>
+ <message>
+ <location filename="src/mediaview.cpp" line="658"/>
<source>Get the full version</source>
- <translation>Die Vollversion holen</translation>
+ <translation>Die Vollversion kaufen</translation>
</message>
<message>
- <location filename="src/mediaview.cpp" line="681"/>
+ <location filename="src/mediaview.cpp" line="695"/>
<source>Downloading %1</source>
<translation>%1 herunterladen</translation>
</message>
<message>
<location filename="local/src/updatedialog.cpp" line="21"/>
<source>A new version of %1 is available!</source>
- <translation type="unfinished"/>
+ <translation>Eine neue Version von %1 ist verfügbar!</translation>
</message>
<message>
<location filename="local/src/updatedialog.cpp" line="28"/>
<source>%1 %2 is now available. You have %3.</source>
- <translation type="unfinished"/>
+ <translation>%1 %2 ist jetzt verfügbar. Sie haben %3.</translation>
</message>
<message>
<location filename="local/src/updatedialog.cpp" line="33"/>
<source>Would you like to download it now?</source>
- <translation type="unfinished"/>
+ <translation>Möchten Sie sie jetzt herunterladen?</translation>
</message>
<message>
<location filename="local/src/updatedialog.cpp" line="39"/>
<source>Skip This Version</source>
- <translation type="unfinished"/>
+ <translation>Diese Version überspringen</translation>
</message>
<message>
<location filename="local/src/updatedialog.cpp" line="43"/>
<source>Remind Me Later</source>
- <translation type="unfinished"/>
+ <translation>Später erinnern</translation>
</message>
<message>
<location filename="local/src/updatedialog.cpp" line="47"/>
<source>Install Update</source>
- <translation type="unfinished"/>
+ <translation>Aktualisierung installieren</translation>
</message>
</context>
<context>
<message>
<location filename="local/src/pastelineedit.cpp" line="6"/>
<source>Paste</source>
- <translation type="unfinished"/>
+ <translation>Einfügen</translation>
</message>
</context>
<context>
<name>PlaylistItemDelegate</name>
<message>
- <location filename="src/playlistitemdelegate.cpp" line="159"/>
+ <location filename="src/playlistitemdelegate.cpp" line="177"/>
<source>%1 views</source>
<translation>%1 mal betrachtet</translation>
</message>
<message>
- <location filename="src/playlistitemdelegate.cpp" line="285"/>
+ <location filename="src/playlistitemdelegate.cpp" line="292"/>
<source>%1 of %2 (%3) — %4</source>
<translation>%1 von %2 (%3) – %4</translation>
</message>
<message>
- <location filename="src/playlistitemdelegate.cpp" line="292"/>
+ <location filename="src/playlistitemdelegate.cpp" line="299"/>
<source>Preparing</source>
<translation>Bereite vor</translation>
</message>
<message>
- <location filename="src/playlistitemdelegate.cpp" line="294"/>
+ <location filename="src/playlistitemdelegate.cpp" line="301"/>
<source>Failed</source>
<translation>Fehlgeschlagen</translation>
</message>
<message>
- <location filename="src/playlistitemdelegate.cpp" line="296"/>
+ <location filename="src/playlistitemdelegate.cpp" line="303"/>
<source>Completed</source>
<translation>Fertiggestellt</translation>
</message>
<message>
- <location filename="src/playlistitemdelegate.cpp" line="298"/>
+ <location filename="src/playlistitemdelegate.cpp" line="305"/>
<source>Stopped</source>
- <translation>Gestoppt</translation>
+ <translation>Angehalten</translation>
</message>
<message>
- <location filename="src/playlistitemdelegate.cpp" line="334"/>
+ <location filename="src/playlistitemdelegate.cpp" line="341"/>
<source>Stop downloading</source>
- <translation type="unfinished"/>
+ <translation>Herunterladen abbrechen</translation>
</message>
<message>
- <location filename="src/playlistitemdelegate.cpp" line="344"/>
+ <location filename="src/playlistitemdelegate.cpp" line="351"/>
<source>Show in %1</source>
- <translation type="unfinished"/>
+ <translation>In %1 anzeigen</translation>
</message>
<message>
- <location filename="src/playlistitemdelegate.cpp" line="346"/>
+ <location filename="src/playlistitemdelegate.cpp" line="353"/>
<source>Open parent folder</source>
- <translation>Eltern-Ordner öffnen</translation>
+ <translation>übergeordneten Ordner öffnen</translation>
</message>
<message>
- <location filename="src/playlistitemdelegate.cpp" line="355"/>
+ <location filename="src/playlistitemdelegate.cpp" line="362"/>
<source>Restart downloading</source>
- <translation>Herunterladen neustarten</translation>
+ <translation>Herunterladen neu starten</translation>
</message>
</context>
<context>
<message>
<location filename="src/playlistmodel.cpp" line="53"/>
<source>Show %1 More</source>
- <translation type="unfinished"/>
+ <translation>Weitere %1 zeigen</translation>
</message>
<message>
<location filename="src/playlistmodel.cpp" line="54"/>
<message>
<location filename="src/refinesearchwidget.cpp" line="37"/>
<source>View Count</source>
- <translation>Anzahl anzeigen</translation>
+ <translation>Aufrufe</translation>
</message>
<message>
<location filename="src/refinesearchwidget.cpp" line="38"/>
<message>
<location filename="src/refinesearchwidget.cpp" line="56"/>
<source>Anytime</source>
- <translation>Alle Längen</translation>
+ <translation>Irgendwann</translation>
</message>
<message>
<location filename="src/refinesearchwidget.cpp" line="57"/>
<message>
<location filename="src/refinesearchwidget.cpp" line="105"/>
<source>High Definition</source>
- <translation>High Definition</translation>
+ <translation>Hochauflösend</translation>
</message>
<message>
<location filename="src/refinesearchwidget.cpp" line="108"/>
<message>
<location filename="src/regionsview.cpp" line="19"/>
<source>Done</source>
- <translation type="unfinished"/>
+ <translation>Fertig</translation>
</message>
</context>
<context>
<context>
<name>SearchView</name>
<message>
- <location filename="src/searchview.cpp" line="71"/>
+ <location filename="src/searchview.cpp" line="66"/>
<source>Welcome to <a href='%1'>%2</a>,</source>
<translation>Willkommen bei <a href='%1'>%2</a>,</translation>
</message>
<message>
- <location filename="src/searchview.cpp" line="50"/>
+ <location filename="src/searchview.cpp" line="161"/>
<source>Get the full version</source>
- <translation>Die Vollversion holen</translation>
+ <translation>Die Vollversion kaufen</translation>
</message>
<message>
- <location filename="src/searchview.cpp" line="85"/>
+ <location filename="src/searchview.cpp" line="80"/>
<source>Enter</source>
<extracomment>"Enter", as in "type". The whole phrase says: "Enter a keyword to start watching videos"</extracomment>
<translation>Eingeben</translation>
</message>
<message>
- <location filename="src/searchview.cpp" line="90"/>
+ <location filename="src/searchview.cpp" line="85"/>
<source>a keyword</source>
- <translation>ein Schlüsselwort</translation>
+ <translation>ein Suchbegriff</translation>
</message>
<message>
- <location filename="src/searchview.cpp" line="91"/>
+ <location filename="src/searchview.cpp" line="86"/>
<source>a channel</source>
<translation>ein Kanal</translation>
</message>
<message>
- <location filename="src/searchview.cpp" line="96"/>
+ <location filename="src/searchview.cpp" line="91"/>
<source>to start watching videos.</source>
<translation>um die Wiedergabe zu starten.</translation>
</message>
<message>
- <location filename="src/searchview.cpp" line="120"/>
+ <location filename="src/searchview.cpp" line="115"/>
<source>Watch</source>
<translation>Anschauen</translation>
</message>
<message>
- <location filename="src/searchview.cpp" line="138"/>
+ <location filename="src/searchview.cpp" line="133"/>
<source>Recent keywords</source>
- <translation>Aktuelle Schlüsselwörter</translation>
+ <translation>Letzte Suchbegriffe</translation>
</message>
<message>
- <location filename="src/searchview.cpp" line="151"/>
+ <location filename="src/searchview.cpp" line="146"/>
<source>Recent channels</source>
- <translation>Aktuelle Kanäle</translation>
+ <translation>Letzte Kanäle</translation>
</message>
</context>
<context>
<name>SidebarHeader</name>
<message>
- <location filename="src/sidebarheader.cpp" line="16"/>
- <location filename="src/sidebarheader.cpp" line="23"/>
+ <location filename="src/sidebarheader.cpp" line="19"/>
+ <location filename="src/sidebarheader.cpp" line="26"/>
<source>&Back</source>
- <translation type="unfinished"/>
+ <translation>&Zurück</translation>
</message>
<message>
<location filename="src/sidebarheader.cpp" line="57"/>
<source>Forward to %1</source>
- <translation type="unfinished"/>
+ <translation>Weiter zu %1</translation>
</message>
<message>
<location filename="src/sidebarheader.cpp" line="70"/>
<source>Back to %1</source>
- <translation type="unfinished"/>
+ <translation>Zurück zu %1</translation>
</message>
</context>
<context>
<message>
<location filename="src/standardfeedsview.cpp" line="85"/>
<source>Most Popular</source>
- <translation type="unfinished"/>
- </message>
- <message>
- <location filename="src/standardfeedsview.cpp" line="86"/>
- <source>Featured</source>
- <translation type="unfinished"/>
+ <translation>Beliebteste</translation>
</message>
<message>
<location filename="src/standardfeedsview.cpp" line="87"/>
<source>Most Shared</source>
- <translation type="unfinished"/>
+ <translation>Am meisten geteilt</translation>
</message>
<message>
<location filename="src/standardfeedsview.cpp" line="88"/>
<source>Most Discussed</source>
- <translation type="unfinished"/>
+ <translation>Am meisten diskutiert</translation>
</message>
<message>
<location filename="src/standardfeedsview.cpp" line="89"/>
<source>Top Rated</source>
- <translation type="unfinished"/>
+ <translation>Am besten bewertet</translation>
+ </message>
+ <message>
+ <location filename="src/standardfeedsview.cpp" line="90"/>
+ <source>All Time Popular</source>
+ <translation>Beliebteste</translation>
</message>
</context>
<context>
<name>Video</name>
<message>
- <location filename="src/video.cpp" line="213"/>
+ <location filename="src/video.cpp" line="215"/>
<source>Cannot get video stream for %1</source>
- <translation>Videostream für %1 konnte nicht öffnen werden</translation>
+ <translation>Videostream für %1 konnte nicht geöffnet werden</translation>
</message>
<message>
- <location filename="src/video.cpp" line="231"/>
+ <location filename="src/video.cpp" line="233"/>
<source>Network error: %1 for %2</source>
<translation>Netzwerk-Fehler: %1 für %2</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="8"/>
<source>Algeria</source>
- <translation type="unfinished"/>
+ <translation>Algerien</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="9"/>
<source>Argentina</source>
- <translation type="unfinished"/>
+ <translation>Argentinien</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="10"/>
<source>Australia</source>
- <translation type="unfinished"/>
+ <translation>Australien</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="11"/>
<source>Belgium</source>
- <translation type="unfinished"/>
+ <translation>Belgien</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="12"/>
<source>Brazil</source>
- <translation type="unfinished"/>
+ <translation>Brasilien</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="13"/>
<source>Canada</source>
- <translation type="unfinished"/>
+ <translation>Kanada</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="14"/>
<source>Chile</source>
- <translation type="unfinished"/>
+ <translation>Chile</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="15"/>
<source>Colombia</source>
- <translation type="unfinished"/>
+ <translation>Kolumbien</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="16"/>
<source>Czech Republic</source>
- <translation type="unfinished"/>
+ <translation>Tschechische Republik</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="17"/>
<source>Egypt</source>
- <translation type="unfinished"/>
+ <translation>Ägypten</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="18"/>
<source>France</source>
- <translation type="unfinished"/>
+ <translation>Frankreich</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="19"/>
<source>Germany</source>
- <translation type="unfinished"/>
+ <translation>Deutschland</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="20"/>
<source>Ghana</source>
- <translation type="unfinished"/>
+ <translation>Ghana</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="21"/>
<source>Greece</source>
- <translation type="unfinished"/>
+ <translation>Griechenland</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="22"/>
<source>Hong Kong</source>
- <translation type="unfinished"/>
+ <translation>Hong Kong</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="23"/>
<source>Hungary</source>
- <translation type="unfinished"/>
+ <translation>Ungarn</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="24"/>
<source>India</source>
- <translation type="unfinished"/>
+ <translation>Indien</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="25"/>
<source>Indonesia</source>
- <translation type="unfinished"/>
+ <translation>Indonesien</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="26"/>
<source>Ireland</source>
- <translation type="unfinished"/>
+ <translation>Irland</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="27"/>
<source>Israel</source>
- <translation type="unfinished"/>
+ <translation>Israel</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="28"/>
<source>Italy</source>
- <translation type="unfinished"/>
+ <translation>Italien</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="29"/>
<source>Japan</source>
- <translation type="unfinished"/>
+ <translation>Japan</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="30"/>
<source>Jordan</source>
- <translation type="unfinished"/>
+ <translation>Jordanien</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="31"/>
<source>Kenya</source>
- <translation type="unfinished"/>
+ <translation>Kenia</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="32"/>
<source>Malaysia</source>
- <translation type="unfinished"/>
+ <translation>Malaysia</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="33"/>
<source>Mexico</source>
- <translation type="unfinished"/>
+ <translation>Mexiko</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="34"/>
<source>Morocco</source>
- <translation type="unfinished"/>
+ <translation>Marokko</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="35"/>
<source>Netherlands</source>
- <translation type="unfinished"/>
+ <translation>Niederlande</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="36"/>
<source>New Zealand</source>
- <translation type="unfinished"/>
+ <translation>Neuseeland</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="37"/>
<source>Nigeria</source>
- <translation type="unfinished"/>
+ <translation>Nigeria</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="38"/>
<source>Peru</source>
- <translation type="unfinished"/>
+ <translation>Peru</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="39"/>
<source>Philippines</source>
- <translation type="unfinished"/>
+ <translation>Philippinen</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="40"/>
<source>Poland</source>
- <translation type="unfinished"/>
+ <translation>Polen</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="41"/>
<source>Russia</source>
- <translation type="unfinished"/>
+ <translation>Russland</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="42"/>
<source>Saudi Arabia</source>
- <translation type="unfinished"/>
+ <translation>Saudi-Arabien</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="43"/>
<source>Singapore</source>
- <translation type="unfinished"/>
+ <translation>Singapur</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="44"/>
<source>South Africa</source>
- <translation type="unfinished"/>
+ <translation>Südafrika</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="45"/>
<source>South Korea</source>
- <translation type="unfinished"/>
+ <translation>Südkorea</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="46"/>
<source>Spain</source>
- <translation type="unfinished"/>
+ <translation>Spanien</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="47"/>
<source>Sweden</source>
- <translation type="unfinished"/>
+ <translation>Schweden</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="48"/>
<source>Taiwan</source>
- <translation type="unfinished"/>
+ <translation>Taiwan</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="49"/>
<source>Tunisia</source>
- <translation type="unfinished"/>
+ <translation>Tunesien</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="50"/>
<source>Turkey</source>
- <translation type="unfinished"/>
+ <translation>Türkei</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="51"/>
<source>Uganda</source>
- <translation type="unfinished"/>
+ <translation>Uganda</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="52"/>
<source>United Arab Emirates</source>
- <translation type="unfinished"/>
+ <translation>Vereinigte Arabische Emirate</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="53"/>
<source>United Kingdom</source>
- <translation type="unfinished"/>
+ <translation>Vereinigtes Königreich</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="54"/>
<source>Yemen</source>
- <translation type="unfinished"/>
+ <translation>Jemen</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="128"/>
<source>Worldwide</source>
- <translation type="unfinished"/>
+ <translation>Weltweit</translation>
</message>
</context>
</TS>
\ No newline at end of file
<message>
<location filename="local/src/activationview.cpp" line="53"/>
<source>The full version allows you to download videos longer than %1 minutes and to watch videos without interruptions.</source>
- <translation type="unfinished"/>
+ <translation>Η πλήρης έκδοση σας επιτρέπει την λήψη βίντεο με διάρκεια μεγαλύτερη από %1 λεπτά και την αναπαραγωγή των βίντεο χωρίς διακοπές.</translation>
</message>
<message>
<location filename="local/src/activationview.cpp" line="55"/>
<translation>Αγορά άδειας χρήσης</translation>
</message>
</context>
+<context>
+ <name>ChannelAggregator</name>
+ <message>
+ <location filename="src/channelaggregator.cpp" line="110"/>
+ <source>By %1</source>
+ <translation>Από %1</translation>
+ </message>
+ <message numerus="yes">
+ <location filename="src/channelaggregator.cpp" line="112"/>
+ <source>You have %n new video(s)</source>
+ <translation type="unfinished"><numerusform></numerusform><numerusform></numerusform></translation>
+ </message>
+</context>
+<context>
+ <name>ChannelItemDelegate</name>
+ <message>
+ <location filename="src/channelitemdelegate.cpp" line="46"/>
+ <source>All Videos</source>
+ <translation>Όλα τα βίντεο</translation>
+ </message>
+ <message>
+ <location filename="src/channelitemdelegate.cpp" line="63"/>
+ <source>Unwatched Videos</source>
+ <translation>Σχετικά βίντεο</translation>
+ </message>
+</context>
+<context>
+ <name>ChannelView</name>
+ <message>
+ <location filename="src/channelview.cpp" line="75"/>
+ <source>Mark all as watched</source>
+ <translation>Σημείωση όλων ως παρακολούθεντα</translation>
+ </message>
+ <message>
+ <location filename="src/channelview.cpp" line="83"/>
+ <source>Show Updated</source>
+ <translation>Εμφάνιση ενημέρωσεων</translation>
+ </message>
+ <message>
+ <location filename="src/channelview.cpp" line="95"/>
+ <source>Name</source>
+ <translation>όνομα</translation>
+ </message>
+ <message>
+ <location filename="src/channelview.cpp" line="102"/>
+ <source>Last Updated</source>
+ <translation>Τελευταία Ενημέρωση</translation>
+ </message>
+ <message>
+ <location filename="src/channelview.cpp" line="109"/>
+ <source>Last Added</source>
+ <translation>Τελευταία προστέθηκε</translation>
+ </message>
+ <message>
+ <location filename="src/channelview.cpp" line="116"/>
+ <source>Last Watched</source>
+ <translation>τελευταίο Προβληθέντα</translation>
+ </message>
+ <message>
+ <location filename="src/channelview.cpp" line="123"/>
+ <source>Most Watched</source>
+ <translation>Πιο δημοφιλή</translation>
+ </message>
+ <message>
+ <location filename="src/channelview.cpp" line="131"/>
+ <source>Sort by</source>
+ <translation>Ταξινόμηση κατά ...</translation>
+ </message>
+ <message>
+ <location filename="src/channelview.cpp" line="190"/>
+ <source>All Videos</source>
+ <translation>Όλα τα βίντεο</translation>
+ </message>
+ <message>
+ <location filename="src/channelview.cpp" line="194"/>
+ <source>Unwatched Videos</source>
+ <translation>Σχετικά βίντεο</translation>
+ </message>
+ <message>
+ <location filename="src/channelview.cpp" line="206"/>
+ <source>There are no updated subscriptions at this time.</source>
+ <translation>Δεν υπάρχουν συνδρομές ενημέρωσης αυτή τη στιγμή.</translation>
+ </message>
+ <message>
+ <location filename="src/channelview.cpp" line="208"/>
+ <source>You have no subscriptions. Use the star symbol to subscribe to channels.</source>
+ <translation>Δεν έχετε εγγραφές. Χρησιμοποιήστε το αστέρι για να εγγραφείτε συνδρομητής σε κανάλια.</translation>
+ </message>
+</context>
<context>
<name>ClearButton</name>
<message>
<context>
<name>HomeView</name>
<message>
- <location filename="src/homeview.cpp" line="33"/>
+ <location filename="src/homeview.cpp" line="38"/>
<source>Search</source>
<translation>Αναζήτηση</translation>
</message>
<message>
- <location filename="src/homeview.cpp" line="35"/>
+ <location filename="src/homeview.cpp" line="40"/>
<source>Find videos and channels by keyword</source>
- <translation type="unfinished"/>
+ <translation>Ευρεση βίντεο και κανάλιων μεσω λέξεις-κλειδία </translation>
</message>
<message>
- <location filename="src/homeview.cpp" line="40"/>
+ <location filename="src/homeview.cpp" line="45"/>
<source>Browse</source>
- <translation type="unfinished"/>
+ <translation>Περιηγηση</translation>
</message>
<message>
- <location filename="src/homeview.cpp" line="42"/>
+ <location filename="src/homeview.cpp" line="47"/>
<source>Browse videos by category</source>
- <translation type="unfinished"/>
+ <translation>Περιηγηση βιντεο ανα κατηγορια</translation>
+ </message>
+ <message>
+ <location filename="src/homeview.cpp" line="51"/>
+ <source>Subscriptions</source>
+ <translation>Συνδρομές</translation>
+ </message>
+ <message>
+ <location filename="src/homeview.cpp" line="53"/>
+ <source>Channel subscriptions</source>
+ <translation>Συνδρομές καναλιού</translation>
</message>
<message>
<location filename="src/homeview.h" line="22"/>
<context>
<name>LoadingWidget</name>
<message>
- <location filename="src/loadingwidget.cpp" line="90"/>
+ <location filename="src/loadingwidget.cpp" line="88"/>
<source>Error</source>
<translation>Σφάλμα</translation>
</message>
<context>
<name>MainWindow</name>
<message>
- <location filename="src/mainwindow.cpp" line="213"/>
+ <location filename="src/mainwindow.cpp" line="237"/>
<source>&Stop</source>
<translation>&Διακοπή</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="214"/>
+ <location filename="src/mainwindow.cpp" line="238"/>
<source>Stop playback and go back to the search view</source>
<translation>Διακοπή αναπαραγωγής και επιστροφή στην προβολή αναζήτησης</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="232"/>
+ <location filename="src/mainwindow.cpp" line="253"/>
<source>S&kip</source>
<translation>&Παράλειψη</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="233"/>
+ <location filename="src/mainwindow.cpp" line="254"/>
<source>Skip to the next video</source>
<translation>Μετάβαση στο επόμενο βίντεο</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="239"/>
- <location filename="src/mainwindow.cpp" line="989"/>
+ <location filename="src/mainwindow.cpp" line="260"/>
+ <location filename="src/mainwindow.cpp" line="1012"/>
<source>&Pause</source>
<translation>&Παύση</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="240"/>
- <location filename="src/mainwindow.cpp" line="990"/>
+ <location filename="src/mainwindow.cpp" line="261"/>
+ <location filename="src/mainwindow.cpp" line="1013"/>
<source>Pause playback</source>
<translation>Παύση αναπαραγωγής</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="246"/>
+ <location filename="src/mainwindow.cpp" line="267"/>
<source>&Full Screen</source>
<translation>&Πλήρης οθόνη</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="247"/>
+ <location filename="src/mainwindow.cpp" line="268"/>
<source>Go full screen</source>
<translation>Προβολή σε πλήρη οθόνη</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="263"/>
+ <location filename="src/mainwindow.cpp" line="282"/>
<source>Hide the playlist and the toolbar</source>
<translation>Απόκρυψη της λίστας αναπαραγωγής και της εργαλειοθήκης</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="276"/>
+ <location filename="src/mainwindow.cpp" line="295"/>
<source>Go to the YouTube video page and pause playback</source>
<translation>Μετάβαση στη σελίδα βίντεο του YouTube και παύση αναπαραγωγής</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="283"/>
+ <location filename="src/mainwindow.cpp" line="302"/>
<source>Copy the current video YouTube link to the clipboard</source>
<translation>Αντιγραφή του δεσμού του τρέχοντος YouTube βίντεο στη μνήμη</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="290"/>
+ <location filename="src/mainwindow.cpp" line="309"/>
<source>Copy the current video stream URL to the clipboard</source>
<translation>Αντιγραφή του URL της τρέχουσας ροής βίντεο στη μνήμη</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="297"/>
+ <location filename="src/mainwindow.cpp" line="316"/>
<source>Find other video parts hopefully in the right order</source>
<translation>Εύρεση των υπόλοιπων επισοδείων του βίντεο, ελπίζουμε στη σωστή σειρά</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="303"/>
+ <location filename="src/mainwindow.cpp" line="322"/>
<source>&Remove</source>
<translation>&Αφαίρεση</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="304"/>
+ <location filename="src/mainwindow.cpp" line="323"/>
<source>Remove the selected videos from the playlist</source>
<translation>Αφαίρεση επιλεγμένων βίντεο απο την λίστα αναπαραγωγής</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="310"/>
+ <location filename="src/mainwindow.cpp" line="329"/>
<source>Move &Up</source>
<translation>Μετακίνηση προς τα &πάνω</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="311"/>
+ <location filename="src/mainwindow.cpp" line="330"/>
<source>Move up the selected videos in the playlist</source>
<translation>Μετακίνηση επιλεγμένων βίντεο προς τα πάνω</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="317"/>
+ <location filename="src/mainwindow.cpp" line="336"/>
<source>Move &Down</source>
<translation>Μετακίνηση προς τα &κάτω</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="318"/>
+ <location filename="src/mainwindow.cpp" line="337"/>
<source>Move down the selected videos in the playlist</source>
<translation>Μετακίνηση επιλεγμένων βίντεο προς τα κάτω</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="329"/>
+ <location filename="src/mainwindow.cpp" line="348"/>
<source>Clear the search history. Cannot be undone.</source>
<translation>Καθαρισμός του ιστορικού αναζήτησης. Δεν μπορεί να γίνει επαναφορά.</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="334"/>
+ <location filename="src/mainwindow.cpp" line="353"/>
<source>&Quit</source>
<translation>Έ&ξοδος</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="337"/>
+ <location filename="src/mainwindow.cpp" line="356"/>
<source>Bye</source>
<translation>Γεια</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="341"/>
+ <location filename="src/mainwindow.cpp" line="360"/>
<source>&Website</source>
<translation>&Ιστοχώρος</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="343"/>
+ <location filename="src/mainwindow.cpp" line="362"/>
<source>%1 on the Web</source>
<translation>Το %1 στο διαδίκτυο</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="349"/>
+ <location filename="src/mainwindow.cpp" line="368"/>
<source>Please support the continued development of %1</source>
<translation>Παρακαλούμε υποστηρίξτε την συνεχόμενη ανάπτυξη του %1</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="354"/>
+ <location filename="src/mainwindow.cpp" line="373"/>
<source>&About</source>
<translation>&Σχετικά</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="356"/>
+ <location filename="src/mainwindow.cpp" line="375"/>
<source>Info about %1</source>
<translation>Πληροφορίες για %1</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="364"/>
+ <location filename="src/mainwindow.cpp" line="383"/>
<source>Search</source>
<translation>Αναζήτηση</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="383"/>
+ <location filename="src/mainwindow.cpp" line="402"/>
<source>Mute volume</source>
<translation>Σίγαση</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="412"/>
- <location filename="src/mainwindow.cpp" line="1365"/>
+ <location filename="src/mainwindow.cpp" line="431"/>
+ <location filename="src/mainwindow.cpp" line="1406"/>
<source>&Downloads</source>
<translation>&Λήψεις</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="413"/>
+ <location filename="src/mainwindow.cpp" line="432"/>
<source>Show details about video downloads</source>
<translation>Εμφάνιση λεπτομερειών για τις λήψεις βίντεο</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="421"/>
+ <location filename="src/mainwindow.cpp" line="440"/>
<source>&Download</source>
<translation>&Λήψη</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="422"/>
+ <location filename="src/mainwindow.cpp" line="441"/>
<source>Download the current video</source>
<translation>Λήψη του τρέχοντος βίντεο</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="441"/>
+ <location filename="src/mainwindow.cpp" line="458"/>
+ <source>&Subscribe to Channel</source>
+ <translation>Εγγραφή στο κανάλι</translation>
+ </message>
+ <message>
+ <location filename="src/mainwindow.cpp" line="465"/>
<source>Share the current video using %1</source>
<translation>Κοινή χρήση του τρέχοντος βίντεο με το %1</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="458"/>
+ <location filename="src/mainwindow.cpp" line="482"/>
<source>&Email</source>
<translation>&Ηλ. αλληλογραφία</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="459"/>
+ <location filename="src/mainwindow.cpp" line="483"/>
<source>Email</source>
<translation>Ηλ. αλληλογραφία</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="463"/>
+ <location filename="src/mainwindow.cpp" line="487"/>
<source>&Close</source>
<translation>&Κλείσιμο</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="473"/>
+ <location filename="src/mainwindow.cpp" line="497"/>
<source>&Float on Top</source>
<translation>&Διατήρηση στην κορυφή</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="478"/>
+ <location filename="src/mainwindow.cpp" line="502"/>
<source>&Stop After This Video</source>
<translation>&Διακοπή μετά από αυτό το βίντεο</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="485"/>
+ <location filename="src/mainwindow.cpp" line="509"/>
<source>&Report an Issue...</source>
<translation>&Αναφέρετε κάποιο σφάλμα...</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="489"/>
+ <location filename="src/mainwindow.cpp" line="513"/>
<source>&Refine Search...</source>
<translation>&Σύνθετη αναζήτηση...</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="501"/>
+ <location filename="src/mainwindow.cpp" line="525"/>
<source>More...</source>
- <translation type="unfinished"/>
+ <translation>Περισσοτερα...</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="504"/>
+ <location filename="src/mainwindow.cpp" line="528"/>
<source>&Related Videos</source>
- <translation type="unfinished"/>
+ <translation>Σχετικα βιντεο</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="506"/>
+ <location filename="src/mainwindow.cpp" line="530"/>
<source>Watch videos related to the current one</source>
- <translation type="unfinished"/>
+ <translation>Παρακολουθήστε βίντεο που σχετίζονται με το τρέχον</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="544"/>
+ <location filename="src/mainwindow.cpp" line="553"/>
<source>&Application</source>
<translation>&Εφαρμογή</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="515"/>
+ <location filename="src/mainwindow.cpp" line="537"/>
<source>Buy %1...</source>
<translation>Αγοράστε το %1...</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="558"/>
+ <location filename="src/mainwindow.cpp" line="567"/>
<source>&Playback</source>
<translation>&Αναπαραγωγή</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="572"/>
+ <location filename="src/mainwindow.cpp" line="581"/>
<source>&Playlist</source>
<translation>Λ&ίστα αναπαραγωγής</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="581"/>
+ <location filename="src/mainwindow.cpp" line="590"/>
<source>&Video</source>
<translation>Βίν&τεο</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="594"/>
+ <location filename="src/mainwindow.cpp" line="605"/>
<source>&View</source>
<translation>&Προβολή</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="601"/>
+ <location filename="src/mainwindow.cpp" line="612"/>
<source>&Share</source>
<translation>&Κοινή χρήση</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="615"/>
+ <location filename="src/mainwindow.cpp" line="626"/>
<source>&Help</source>
<translation>&Βοήθεια</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="690"/>
+ <location filename="src/mainwindow.cpp" line="701"/>
<source>Press %1 to raise the volume, %2 to lower it</source>
<translation>Πατήστε %1 για να αυξήσετε την ένταση, %2 για να την χαμηλώσετε</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="889"/>
- <location filename="src/mainwindow.cpp" line="895"/>
+ <location filename="src/mainwindow.cpp" line="910"/>
+ <location filename="src/mainwindow.cpp" line="916"/>
<source>Opening %1</source>
<translation>Άνοιγμα %1</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="936"/>
+ <location filename="src/mainwindow.cpp" line="959"/>
<source>Do you want to exit %1 with a download in progress?</source>
<translation>Θέλετε να κλείσετε το %1 ενώ βρίσκεται μια λήψη σε εξέλιξη;</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="937"/>
+ <location filename="src/mainwindow.cpp" line="960"/>
<source>If you close %1 now, this download will be cancelled.</source>
<translation>Αν κλείσετε το %1 τώρα, η λήψη θα ακυρωθεί.</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="942"/>
+ <location filename="src/mainwindow.cpp" line="965"/>
<source>Close and cancel download</source>
<translation>Κλείσιμο και ακύρωση λήψης</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="943"/>
+ <location filename="src/mainwindow.cpp" line="966"/>
<source>Wait for download to finish</source>
<translation>Αναμονή ολοκλήρωσης λήψης</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="1102"/>
+ <location filename="src/mainwindow.cpp" line="1125"/>
<source>Leave &Full Screen</source>
<translation>Έξοδος από &πλήρη οθόνη</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="1475"/>
+ <location filename="src/mainwindow.cpp" line="1515"/>
<source>%1 version %2 is now available.</source>
<translation>Η έκδοση %2 του %1 είναι διαθέσιμη.</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="1479"/>
+ <location filename="src/mainwindow.cpp" line="1519"/>
<source>Remind me later</source>
<translation>Υπενθύμιση αργότερα</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="1480"/>
+ <location filename="src/mainwindow.cpp" line="1520"/>
<source>Update</source>
<translation>Ενημέρωση</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="982"/>
+ <location filename="src/mainwindow.cpp" line="1005"/>
<source>Error: %1</source>
<translation>Σφάλμα: %1</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="222"/>
+ <location filename="src/mainwindow.cpp" line="246"/>
<source>P&revious</source>
<translation>Π&ροηγούμενο</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="223"/>
+ <location filename="src/mainwindow.cpp" line="247"/>
<source>Go back to the previous track</source>
<translation>Επιστροφή στο προηγούμενο κομμάτι</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="262"/>
+ <location filename="src/mainwindow.cpp" line="281"/>
<source>&Compact Mode</source>
<translation>&Συμπαγής εμφάνιση</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="275"/>
+ <location filename="src/mainwindow.cpp" line="294"/>
<source>Open the &YouTube Page</source>
<translation>Άνοιγμα στην ιστοσελίδα του &YouTube</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="282"/>
+ <location filename="src/mainwindow.cpp" line="301"/>
<source>Copy the YouTube &Link</source>
<translation>Αντιγραφή του &δεσμού YouTube</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="289"/>
+ <location filename="src/mainwindow.cpp" line="308"/>
<source>Copy the Video Stream &URL</source>
<translation>Αντιγραφή του &URL της ροής βίντεο</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="296"/>
+ <location filename="src/mainwindow.cpp" line="315"/>
<source>Find Video &Parts</source>
<translation>Αναζήτηση των &επισοδείων του βίντεο</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="324"/>
+ <location filename="src/mainwindow.cpp" line="343"/>
<source>&Clear Recent Searches</source>
<translation>&Καθαρισμός πρόσφατων αναζητήσεων</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="348"/>
+ <location filename="src/mainwindow.cpp" line="367"/>
<source>Make a &Donation</source>
<translation>Κάντε μια &δωρεά</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="405"/>
+ <location filename="src/mainwindow.cpp" line="424"/>
<source>&Manually Start Playing</source>
<translation>Εκκίνηση της αναπαραγωγής &χειροκίνητα</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="406"/>
+ <location filename="src/mainwindow.cpp" line="425"/>
<source>Manually start playing videos</source>
<translation>Εκκίνηση αναπαραγωγής των βίντεο χειροκίνητα</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="728"/>
+ <location filename="src/mainwindow.cpp" line="739"/>
<source>Choose your content location</source>
- <translation type="unfinished"/>
+ <translation>Επιλογή της τοποθεσίας του περιεχομένου σας </translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="1002"/>
+ <location filename="src/mainwindow.cpp" line="1025"/>
<source>&Play</source>
<translation>Α&ναπαραγωγή</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="1003"/>
+ <location filename="src/mainwindow.cpp" line="1026"/>
<source>Resume playback</source>
<translation>Συνέχεια αναπαραγωγής</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="1236"/>
+ <location filename="src/mainwindow.cpp" line="1277"/>
<source>Remaining time: %1</source>
<translation>Υπολειπόμενος χρόνος: %1</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="1294"/>
+ <location filename="src/mainwindow.cpp" line="1335"/>
<source>Volume at %1%</source>
<translation>Ένταση στο %1%</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="1300"/>
+ <location filename="src/mainwindow.cpp" line="1341"/>
<source>Volume is muted</source>
<translation>Σίγαση</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="1303"/>
+ <location filename="src/mainwindow.cpp" line="1344"/>
<source>Volume is unmuted</source>
<translation>Η ένταση αποκαταστάθηκε</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="1310"/>
+ <location filename="src/mainwindow.cpp" line="1351"/>
<source>Maximum video definition set to %1</source>
<translation>H μέγιστη ανάλυση βίντεο τέθηκε σε %1</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="1351"/>
+ <location filename="src/mainwindow.cpp" line="1392"/>
<source>Your privacy is now safe</source>
<translation>Η ιδιωτικότητα σας είναι τώρα ασφαλής</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="1366"/>
+ <location filename="src/mainwindow.cpp" line="1407"/>
<source>Downloads complete</source>
<translation>Οι λήψεις ολοκληρώθηκαν</translation>
</message>
<context>
<name>MediaView</name>
<message>
- <location filename="src/mediaview.cpp" line="553"/>
+ <location filename="src/mediaview.cpp" line="563"/>
<source>You can now paste the YouTube link into another application</source>
<translation>Τώρα μπορείτε να επικολλήσετε το δεσμό του YouTube σε κάποια άλλη εφαρμογή</translation>
</message>
<message>
- <location filename="src/mediaview.cpp" line="561"/>
+ <location filename="src/mediaview.cpp" line="571"/>
<source>You can now paste the video stream URL into another application</source>
<translation>Τώρα μπορείτε να επικολλήσετε το URL της ροής βίντεο σε κάποια άλλη εφαρμογή</translation>
</message>
<message>
- <location filename="src/mediaview.cpp" line="562"/>
+ <location filename="src/mediaview.cpp" line="572"/>
<source>The link will be valid only for a limited time.</source>
<translation>Ο σύνδεμος θα είναι έγκυρος μόνο για περιορισμένο χρονικό διάστημα.</translation>
</message>
<message>
- <location filename="src/mediaview.cpp" line="636"/>
+ <location filename="src/mediaview.cpp" line="650"/>
<source>This is just the demo version of %1.</source>
<translation>Αυτή είναι απλά μια δοκιμαστική έκδοση του %1.</translation>
</message>
<message>
- <location filename="src/mediaview.cpp" line="637"/>
+ <location filename="src/mediaview.cpp" line="651"/>
<source>It allows you to test the application and see if it works for you.</source>
<translation>Σαε επιτρέπει να δοκιμάσετε την εφαρμογή και να δείτε αν σας κάνει.</translation>
</message>
<message>
- <location filename="src/mediaview.cpp" line="667"/>
+ <location filename="src/mediaview.cpp" line="681"/>
<source>Continue</source>
<translation>Συνέχεια</translation>
</message>
<message>
- <location filename="src/mediaview.cpp" line="756"/>
+ <location filename="src/mediaview.cpp" line="772"/>
<source>of</source>
<comment>Used in video parts, as in '2 of 3'</comment>
<translation>από</translation>
</message>
<message>
- <location filename="src/mediaview.cpp" line="768"/>
+ <location filename="src/mediaview.cpp" line="785"/>
<source>part</source>
<comment>This is for video parts, as in 'Cool video - part 1'</comment>
<translation>μέρος</translation>
</message>
<message>
- <location filename="src/mediaview.cpp" line="770"/>
+ <location filename="src/mediaview.cpp" line="787"/>
<source>episode</source>
<comment>This is for video parts, as in 'Cool series - episode 1'</comment>
<translation>επισόδειο</translation>
</message>
<message>
- <location filename="src/mediaview.cpp" line="847"/>
+ <location filename="src/mediaview.cpp" line="868"/>
<source>Sent from %1</source>
<translation>Αποστολή από %1</translation>
</message>
<message>
- <location filename="src/mediaview.cpp" line="644"/>
+ <location filename="src/mediaview.cpp" line="899"/>
+ <source>Unsubscribe from %1</source>
+ <translation>Διαγραφή από το %1</translation>
+ </message>
+ <message>
+ <location filename="src/mediaview.cpp" line="903"/>
+ <source>Subscribe to %1</source>
+ <translation>Εγγραφή στο %1</translation>
+ </message>
+ <message>
+ <location filename="src/mediaview.cpp" line="658"/>
<source>Get the full version</source>
<translation>Αποκτήστε την πλήρη έκδοση</translation>
</message>
<message>
- <location filename="src/mediaview.cpp" line="681"/>
+ <location filename="src/mediaview.cpp" line="695"/>
<source>Downloading %1</source>
<translation>Λήψη %1</translation>
</message>
<context>
<name>PlaylistItemDelegate</name>
<message>
- <location filename="src/playlistitemdelegate.cpp" line="159"/>
+ <location filename="src/playlistitemdelegate.cpp" line="177"/>
<source>%1 views</source>
<translation>Προβολές %1</translation>
</message>
<message>
- <location filename="src/playlistitemdelegate.cpp" line="285"/>
+ <location filename="src/playlistitemdelegate.cpp" line="292"/>
<source>%1 of %2 (%3) — %4</source>
<translation>%1 από %2 (%3) — %4</translation>
</message>
<message>
- <location filename="src/playlistitemdelegate.cpp" line="292"/>
+ <location filename="src/playlistitemdelegate.cpp" line="299"/>
<source>Preparing</source>
<translation>Προετοιμάζεται</translation>
</message>
<message>
- <location filename="src/playlistitemdelegate.cpp" line="294"/>
+ <location filename="src/playlistitemdelegate.cpp" line="301"/>
<source>Failed</source>
<translation>Απέτυχε</translation>
</message>
<message>
- <location filename="src/playlistitemdelegate.cpp" line="296"/>
+ <location filename="src/playlistitemdelegate.cpp" line="303"/>
<source>Completed</source>
<translation>Ολοκληρώθηκε</translation>
</message>
<message>
- <location filename="src/playlistitemdelegate.cpp" line="298"/>
+ <location filename="src/playlistitemdelegate.cpp" line="305"/>
<source>Stopped</source>
<translation>Διακόπηκε</translation>
</message>
<message>
- <location filename="src/playlistitemdelegate.cpp" line="334"/>
+ <location filename="src/playlistitemdelegate.cpp" line="341"/>
<source>Stop downloading</source>
<translation>Διακοπή λήψης</translation>
</message>
<message>
- <location filename="src/playlistitemdelegate.cpp" line="344"/>
+ <location filename="src/playlistitemdelegate.cpp" line="351"/>
<source>Show in %1</source>
<translation>Εμφάνιση σε %1</translation>
</message>
<message>
- <location filename="src/playlistitemdelegate.cpp" line="346"/>
+ <location filename="src/playlistitemdelegate.cpp" line="353"/>
<source>Open parent folder</source>
<translation>Άνοιγμα γονικού φακέλου</translation>
</message>
<message>
- <location filename="src/playlistitemdelegate.cpp" line="355"/>
+ <location filename="src/playlistitemdelegate.cpp" line="362"/>
<source>Restart downloading</source>
<translation>Επανεκκίνηση λήψης</translation>
</message>
<message>
<location filename="src/regionsview.cpp" line="19"/>
<source>Done</source>
- <translation type="unfinished"/>
+ <translation>Έγινε</translation>
</message>
</context>
<context>
<context>
<name>SearchView</name>
<message>
- <location filename="src/searchview.cpp" line="71"/>
+ <location filename="src/searchview.cpp" line="66"/>
<source>Welcome to <a href='%1'>%2</a>,</source>
<translation>Καλωσορίσατε στο <a href='%1'>%2</a>,</translation>
</message>
<message>
- <location filename="src/searchview.cpp" line="50"/>
+ <location filename="src/searchview.cpp" line="161"/>
<source>Get the full version</source>
<translation>Αποκτήστε την πλήρη έκδοση</translation>
</message>
<message>
- <location filename="src/searchview.cpp" line="85"/>
+ <location filename="src/searchview.cpp" line="80"/>
<source>Enter</source>
<extracomment>"Enter", as in "type". The whole phrase says: "Enter a keyword to start watching videos"</extracomment>
<translation>Πληκτρολογήστε</translation>
</message>
<message>
- <location filename="src/searchview.cpp" line="90"/>
+ <location filename="src/searchview.cpp" line="85"/>
<source>a keyword</source>
<translation>μια λέξη-κλειδί</translation>
</message>
<message>
- <location filename="src/searchview.cpp" line="91"/>
+ <location filename="src/searchview.cpp" line="86"/>
<source>a channel</source>
<translation>ένα κανάλι</translation>
</message>
<message>
- <location filename="src/searchview.cpp" line="96"/>
+ <location filename="src/searchview.cpp" line="91"/>
<source>to start watching videos.</source>
<translation>για να αρχίσετε να βλέπετε βίντεο.</translation>
</message>
<message>
- <location filename="src/searchview.cpp" line="120"/>
+ <location filename="src/searchview.cpp" line="115"/>
<source>Watch</source>
<translation>Δείτε</translation>
</message>
<message>
- <location filename="src/searchview.cpp" line="138"/>
+ <location filename="src/searchview.cpp" line="133"/>
<source>Recent keywords</source>
<translation>Πρόσφατες λέξεις-κλειδιά</translation>
</message>
<message>
- <location filename="src/searchview.cpp" line="151"/>
+ <location filename="src/searchview.cpp" line="146"/>
<source>Recent channels</source>
<translation>Πρόσφατα κανάλια</translation>
</message>
<context>
<name>SidebarHeader</name>
<message>
- <location filename="src/sidebarheader.cpp" line="16"/>
- <location filename="src/sidebarheader.cpp" line="23"/>
+ <location filename="src/sidebarheader.cpp" line="19"/>
+ <location filename="src/sidebarheader.cpp" line="26"/>
<source>&Back</source>
<translation>&Πίσω</translation>
</message>
<message>
<location filename="src/sidebarheader.cpp" line="57"/>
<source>Forward to %1</source>
- <translation type="unfinished"/>
+ <translation>Προώθηση σε %1</translation>
</message>
<message>
<location filename="src/sidebarheader.cpp" line="70"/>
<source>Back to %1</source>
- <translation type="unfinished"/>
+ <translation>Πισω στο %1</translation>
</message>
</context>
<context>
<message>
<location filename="src/standardfeedsview.cpp" line="85"/>
<source>Most Popular</source>
- <translation type="unfinished"/>
- </message>
- <message>
- <location filename="src/standardfeedsview.cpp" line="86"/>
- <source>Featured</source>
- <translation type="unfinished"/>
+ <translation>Τα πιο δημοφιλή</translation>
</message>
<message>
<location filename="src/standardfeedsview.cpp" line="87"/>
<source>Most Shared</source>
- <translation type="unfinished"/>
+ <translation>Πιο πρόσφατα</translation>
</message>
<message>
<location filename="src/standardfeedsview.cpp" line="88"/>
<source>Most Discussed</source>
- <translation type="unfinished"/>
+ <translation>Πιο συζυτημενα</translation>
</message>
<message>
<location filename="src/standardfeedsview.cpp" line="89"/>
<source>Top Rated</source>
- <translation type="unfinished"/>
+ <translation>Καλυτερα βαθμολογημενα</translation>
+ </message>
+ <message>
+ <location filename="src/standardfeedsview.cpp" line="90"/>
+ <source>All Time Popular</source>
+ <translation>Σε όλα τα χρονικά δημοφιλή</translation>
</message>
</context>
<context>
<name>Video</name>
<message>
- <location filename="src/video.cpp" line="213"/>
+ <location filename="src/video.cpp" line="215"/>
<source>Cannot get video stream for %1</source>
<translation>Αδυναμία λήψης της ροής βίντεο για %1</translation>
</message>
<message>
- <location filename="src/video.cpp" line="231"/>
+ <location filename="src/video.cpp" line="233"/>
<source>Network error: %1 for %2</source>
<translation>Σφάλμα δικτύου: %1 για %2</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="8"/>
<source>Algeria</source>
- <translation type="unfinished"/>
+ <translation>Αλγερια</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="9"/>
<source>Argentina</source>
- <translation type="unfinished"/>
+ <translation>Αργεντινη</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="10"/>
<source>Australia</source>
- <translation type="unfinished"/>
+ <translation>Αυστραλια</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="11"/>
<source>Belgium</source>
- <translation type="unfinished"/>
+ <translation>Βελγιο</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="12"/>
<source>Brazil</source>
- <translation type="unfinished"/>
+ <translation>Βραζιλια</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="13"/>
<source>Canada</source>
- <translation type="unfinished"/>
+ <translation>Καναδας</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="14"/>
<source>Chile</source>
- <translation type="unfinished"/>
+ <translation>Χιλη</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="15"/>
<source>Colombia</source>
- <translation type="unfinished"/>
+ <translation>Κολομβια</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="16"/>
<source>Czech Republic</source>
- <translation type="unfinished"/>
+ <translation>Τσεχια</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="17"/>
<source>Egypt</source>
- <translation type="unfinished"/>
+ <translation>Αιγυπτος</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="18"/>
<source>France</source>
- <translation type="unfinished"/>
+ <translation>Γαλλια</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="19"/>
<source>Germany</source>
- <translation type="unfinished"/>
+ <translation>Γερμανια</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="20"/>
<source>Ghana</source>
- <translation type="unfinished"/>
+ <translation>Γκανα</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="21"/>
<source>Greece</source>
- <translation type="unfinished"/>
+ <translation>Ελλαδα</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="22"/>
<source>Hong Kong</source>
- <translation type="unfinished"/>
+ <translation>Χονγκ Κονγκ</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="23"/>
<source>Hungary</source>
- <translation type="unfinished"/>
+ <translation>Ουγγαρια</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="24"/>
<source>India</source>
- <translation type="unfinished"/>
+ <translation>Ινδια</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="25"/>
<source>Indonesia</source>
- <translation type="unfinished"/>
+ <translation>Ινδονησια</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="26"/>
<source>Ireland</source>
- <translation type="unfinished"/>
+ <translation>Ιρλανδια</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="27"/>
<source>Israel</source>
- <translation type="unfinished"/>
+ <translation>Ισραηλ</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="28"/>
<source>Italy</source>
- <translation type="unfinished"/>
+ <translation>Ιταλια</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="29"/>
<source>Japan</source>
- <translation type="unfinished"/>
+ <translation>Ιαπωνια</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="30"/>
<source>Jordan</source>
- <translation type="unfinished"/>
+ <translation>Ιορδανια</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="31"/>
<source>Kenya</source>
- <translation type="unfinished"/>
+ <translation>Κενια</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="32"/>
<source>Malaysia</source>
- <translation type="unfinished"/>
+ <translation>Μαλαισια</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="33"/>
<source>Mexico</source>
- <translation type="unfinished"/>
+ <translation>Μεξικο</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="34"/>
<source>Morocco</source>
- <translation type="unfinished"/>
+ <translation>Μαροκκο</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="35"/>
<source>Netherlands</source>
- <translation type="unfinished"/>
+ <translation>Ολλανδια</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="36"/>
<source>New Zealand</source>
- <translation type="unfinished"/>
+ <translation>Νεα Ζηλανδια</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="37"/>
<source>Nigeria</source>
- <translation type="unfinished"/>
+ <translation>Νιγηρια</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="38"/>
<source>Peru</source>
- <translation type="unfinished"/>
+ <translation>Περου</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="39"/>
<source>Philippines</source>
- <translation type="unfinished"/>
+ <translation>Φιλλιπινες</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="40"/>
<source>Poland</source>
- <translation type="unfinished"/>
+ <translation>Πολωνια</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="41"/>
<source>Russia</source>
- <translation type="unfinished"/>
+ <translation>Ρωσια</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="42"/>
<source>Saudi Arabia</source>
- <translation type="unfinished"/>
+ <translation>Σαουδικη Αραβια</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="43"/>
<source>Singapore</source>
- <translation type="unfinished"/>
+ <translation>Σινγκαπουρη</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="44"/>
<source>South Africa</source>
- <translation type="unfinished"/>
+ <translation>Νοτια Αφρικη</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="45"/>
<source>South Korea</source>
- <translation type="unfinished"/>
+ <translation>Νοτια Κορεα</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="46"/>
<source>Spain</source>
- <translation type="unfinished"/>
+ <translation>Ισπανια</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="47"/>
<source>Sweden</source>
- <translation type="unfinished"/>
+ <translation>Σουηδια</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="48"/>
<source>Taiwan</source>
- <translation type="unfinished"/>
+ <translation>Ταιβαν</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="49"/>
<source>Tunisia</source>
- <translation type="unfinished"/>
+ <translation>Τυνισια</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="50"/>
<source>Turkey</source>
- <translation type="unfinished"/>
+ <translation>Τουρκια</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="51"/>
<source>Uganda</source>
- <translation type="unfinished"/>
+ <translation>Ουγκαντα</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="52"/>
<source>United Arab Emirates</source>
- <translation type="unfinished"/>
+ <translation>Ηνωμενα Αραβικα Εμιρατα</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="53"/>
<source>United Kingdom</source>
- <translation type="unfinished"/>
+ <translation>Ηνωμενο Βασιλειο</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="54"/>
<source>Yemen</source>
- <translation type="unfinished"/>
+ <translation>Ιεμενη</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="128"/>
<source>Worldwide</source>
- <translation type="unfinished"/>
+ <translation>Παγκοσμιως</translation>
</message>
</context>
</TS>
\ No newline at end of file
<message>
<location filename="src/aboutview.cpp" line="38"/>
<source>Licensed to: %1</source>
- <translation>Licencia para: %1</translation>
+ <translation>Con licencia para: %1</translation>
</message>
<message>
<location filename="src/aboutview.cpp" line="42"/>
<translation>Comprar licencia</translation>
</message>
</context>
+<context>
+ <name>ChannelAggregator</name>
+ <message>
+ <location filename="src/channelaggregator.cpp" line="110"/>
+ <source>By %1</source>
+ <translation>Por %1</translation>
+ </message>
+ <message numerus="yes">
+ <location filename="src/channelaggregator.cpp" line="112"/>
+ <source>You have %n new video(s)</source>
+ <translation type="unfinished"><numerusform></numerusform><numerusform></numerusform></translation>
+ </message>
+</context>
+<context>
+ <name>ChannelItemDelegate</name>
+ <message>
+ <location filename="src/channelitemdelegate.cpp" line="46"/>
+ <source>All Videos</source>
+ <translation>Todos los vídeos</translation>
+ </message>
+ <message>
+ <location filename="src/channelitemdelegate.cpp" line="63"/>
+ <source>Unwatched Videos</source>
+ <translation>Vídeos sin ver</translation>
+ </message>
+</context>
+<context>
+ <name>ChannelView</name>
+ <message>
+ <location filename="src/channelview.cpp" line="75"/>
+ <source>Mark all as watched</source>
+ <translation>Marcar todos como vistos</translation>
+ </message>
+ <message>
+ <location filename="src/channelview.cpp" line="83"/>
+ <source>Show Updated</source>
+ <translation>Mostrar actualizados</translation>
+ </message>
+ <message>
+ <location filename="src/channelview.cpp" line="95"/>
+ <source>Name</source>
+ <translation>Nombre</translation>
+ </message>
+ <message>
+ <location filename="src/channelview.cpp" line="102"/>
+ <source>Last Updated</source>
+ <translation>Actualizado por última vez</translation>
+ </message>
+ <message>
+ <location filename="src/channelview.cpp" line="109"/>
+ <source>Last Added</source>
+ <translation>Añadido por última vez</translation>
+ </message>
+ <message>
+ <location filename="src/channelview.cpp" line="116"/>
+ <source>Last Watched</source>
+ <translation>Visto por última vez</translation>
+ </message>
+ <message>
+ <location filename="src/channelview.cpp" line="123"/>
+ <source>Most Watched</source>
+ <translation>Más vistos</translation>
+ </message>
+ <message>
+ <location filename="src/channelview.cpp" line="131"/>
+ <source>Sort by</source>
+ <translation>Ordenar por</translation>
+ </message>
+ <message>
+ <location filename="src/channelview.cpp" line="190"/>
+ <source>All Videos</source>
+ <translation>Todos los vídeos</translation>
+ </message>
+ <message>
+ <location filename="src/channelview.cpp" line="194"/>
+ <source>Unwatched Videos</source>
+ <translation>Vídeos sin ver</translation>
+ </message>
+ <message>
+ <location filename="src/channelview.cpp" line="206"/>
+ <source>There are no updated subscriptions at this time.</source>
+ <translation>No hay suscripciones actualizadas en este momento.</translation>
+ </message>
+ <message>
+ <location filename="src/channelview.cpp" line="208"/>
+ <source>You have no subscriptions. Use the star symbol to subscribe to channels.</source>
+ <translation>No se ha suscrito a ningún canal. Use el símbolo de la estrella a los canales.</translation>
+ </message>
+</context>
<context>
<name>ClearButton</name>
<message>
<context>
<name>HomeView</name>
<message>
- <location filename="src/homeview.cpp" line="33"/>
+ <location filename="src/homeview.cpp" line="38"/>
<source>Search</source>
<translation>Buscar</translation>
</message>
<message>
- <location filename="src/homeview.cpp" line="35"/>
+ <location filename="src/homeview.cpp" line="40"/>
<source>Find videos and channels by keyword</source>
<translation>Encontrar vídeos y canales por palabras clave</translation>
</message>
<message>
- <location filename="src/homeview.cpp" line="40"/>
+ <location filename="src/homeview.cpp" line="45"/>
<source>Browse</source>
<translation>Examinar</translation>
</message>
<message>
- <location filename="src/homeview.cpp" line="42"/>
+ <location filename="src/homeview.cpp" line="47"/>
<source>Browse videos by category</source>
<translation>Buscar videos por categoría</translation>
</message>
+ <message>
+ <location filename="src/homeview.cpp" line="51"/>
+ <source>Subscriptions</source>
+ <translation>Suscripciones</translation>
+ </message>
+ <message>
+ <location filename="src/homeview.cpp" line="53"/>
+ <source>Channel subscriptions</source>
+ <translation>Suscripciones a canales</translation>
+ </message>
<message>
<location filename="src/homeview.h" line="22"/>
<source>Make yourself comfortable</source>
<context>
<name>LoadingWidget</name>
<message>
- <location filename="src/loadingwidget.cpp" line="90"/>
+ <location filename="src/loadingwidget.cpp" line="88"/>
<source>Error</source>
<translation>Error</translation>
</message>
<context>
<name>MainWindow</name>
<message>
- <location filename="src/mainwindow.cpp" line="213"/>
+ <location filename="src/mainwindow.cpp" line="237"/>
<source>&Stop</source>
<translation>&Detener</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="214"/>
+ <location filename="src/mainwindow.cpp" line="238"/>
<source>Stop playback and go back to the search view</source>
<translation>Detener la reproducción y volver a la búsqueda</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="232"/>
+ <location filename="src/mainwindow.cpp" line="253"/>
<source>S&kip</source>
<translation>&Omitir</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="233"/>
+ <location filename="src/mainwindow.cpp" line="254"/>
<source>Skip to the next video</source>
<translation>Omitir vídeo y saltar al siguiente</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="239"/>
- <location filename="src/mainwindow.cpp" line="989"/>
+ <location filename="src/mainwindow.cpp" line="260"/>
+ <location filename="src/mainwindow.cpp" line="1012"/>
<source>&Pause</source>
<translation>&Pausar</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="240"/>
- <location filename="src/mainwindow.cpp" line="990"/>
+ <location filename="src/mainwindow.cpp" line="261"/>
+ <location filename="src/mainwindow.cpp" line="1013"/>
<source>Pause playback</source>
<translation>Pausar la reproducción</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="246"/>
+ <location filename="src/mainwindow.cpp" line="267"/>
<source>&Full Screen</source>
<translation>Pantalla &completa</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="247"/>
+ <location filename="src/mainwindow.cpp" line="268"/>
<source>Go full screen</source>
<translation>Ir a pantalla completa</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="263"/>
+ <location filename="src/mainwindow.cpp" line="282"/>
<source>Hide the playlist and the toolbar</source>
<translation>Ocultar la lista de reproducción y la barra de herramientas</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="276"/>
+ <location filename="src/mainwindow.cpp" line="295"/>
<source>Go to the YouTube video page and pause playback</source>
<translation>Ir a la página del vídeo en YouTube y pausar la reproducción</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="283"/>
+ <location filename="src/mainwindow.cpp" line="302"/>
<source>Copy the current video YouTube link to the clipboard</source>
<translation>Copiar el enlace a YouTube del vídeo actual en el portapapeles</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="290"/>
+ <location filename="src/mainwindow.cpp" line="309"/>
<source>Copy the current video stream URL to the clipboard</source>
<translation>Copiar la URL actual del flujo del vídeo al portapapeles</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="297"/>
+ <location filename="src/mainwindow.cpp" line="316"/>
<source>Find other video parts hopefully in the right order</source>
<translation>Encontrar otras partes de vídeos, con suerte en el orden correcto</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="303"/>
+ <location filename="src/mainwindow.cpp" line="322"/>
<source>&Remove</source>
<translation>&Eliminar</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="304"/>
+ <location filename="src/mainwindow.cpp" line="323"/>
<source>Remove the selected videos from the playlist</source>
<translation>Quitar los vídeos seleccionados de la lista de reproducción</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="310"/>
+ <location filename="src/mainwindow.cpp" line="329"/>
<source>Move &Up</source>
<translation>&Subir</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="311"/>
+ <location filename="src/mainwindow.cpp" line="330"/>
<source>Move up the selected videos in the playlist</source>
<translation>Mover hacia arriba en la lista de reproducción los vídeos seleccionados</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="317"/>
+ <location filename="src/mainwindow.cpp" line="336"/>
<source>Move &Down</source>
<translation>&Bajar</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="318"/>
+ <location filename="src/mainwindow.cpp" line="337"/>
<source>Move down the selected videos in the playlist</source>
<translation>Mover hacia abajo en la lista de reproducción los vídeos seleccionados</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="329"/>
+ <location filename="src/mainwindow.cpp" line="348"/>
<source>Clear the search history. Cannot be undone.</source>
<translation>Limpiar el historial de búsquedas. No se puede deshacer.</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="334"/>
+ <location filename="src/mainwindow.cpp" line="353"/>
<source>&Quit</source>
<translation>&Salir</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="337"/>
+ <location filename="src/mainwindow.cpp" line="356"/>
<source>Bye</source>
<translation>Hasta luego</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="341"/>
+ <location filename="src/mainwindow.cpp" line="360"/>
<source>&Website</source>
<translation>Sitio &web</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="343"/>
+ <location filename="src/mainwindow.cpp" line="362"/>
<source>%1 on the Web</source>
<translation>%1 en la web</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="349"/>
+ <location filename="src/mainwindow.cpp" line="368"/>
<source>Please support the continued development of %1</source>
<translation>Apoye el desarrollo continuo de %1</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="354"/>
+ <location filename="src/mainwindow.cpp" line="373"/>
<source>&About</source>
<translation>&Acerca de</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="356"/>
+ <location filename="src/mainwindow.cpp" line="375"/>
<source>Info about %1</source>
<translation>Información acerca de %1</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="364"/>
+ <location filename="src/mainwindow.cpp" line="383"/>
<source>Search</source>
<translation>Buscar</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="383"/>
+ <location filename="src/mainwindow.cpp" line="402"/>
<source>Mute volume</source>
<translation>Silenciar</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="412"/>
- <location filename="src/mainwindow.cpp" line="1365"/>
+ <location filename="src/mainwindow.cpp" line="431"/>
+ <location filename="src/mainwindow.cpp" line="1406"/>
<source>&Downloads</source>
<translation>&Descargas</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="413"/>
+ <location filename="src/mainwindow.cpp" line="432"/>
<source>Show details about video downloads</source>
<translation>Mostrar detalles sobre las descargas de vídeos</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="421"/>
+ <location filename="src/mainwindow.cpp" line="440"/>
<source>&Download</source>
<translation>&Descargar</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="422"/>
+ <location filename="src/mainwindow.cpp" line="441"/>
<source>Download the current video</source>
<translation>Descargar el vídeo actual</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="441"/>
+ <location filename="src/mainwindow.cpp" line="458"/>
+ <source>&Subscribe to Channel</source>
+ <translation>&Suscribirse al canal</translation>
+ </message>
+ <message>
+ <location filename="src/mainwindow.cpp" line="465"/>
<source>Share the current video using %1</source>
<translation>Compartir el vídeo actual usando %1</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="458"/>
+ <location filename="src/mainwindow.cpp" line="482"/>
<source>&Email</source>
<translation>&Correo-e</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="459"/>
+ <location filename="src/mainwindow.cpp" line="483"/>
<source>Email</source>
<translation>Correo-e</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="463"/>
+ <location filename="src/mainwindow.cpp" line="487"/>
<source>&Close</source>
<translation>&Cerrar</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="473"/>
+ <location filename="src/mainwindow.cpp" line="497"/>
<source>&Float on Top</source>
<translation>&Flotar en la parte superior</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="478"/>
+ <location filename="src/mainwindow.cpp" line="502"/>
<source>&Stop After This Video</source>
<translation>&Detener tras este vídeo</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="485"/>
+ <location filename="src/mainwindow.cpp" line="509"/>
<source>&Report an Issue...</source>
<translation>&Informar de un problema...</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="489"/>
+ <location filename="src/mainwindow.cpp" line="513"/>
<source>&Refine Search...</source>
<translation>&Refinar la búsqueda...</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="501"/>
+ <location filename="src/mainwindow.cpp" line="525"/>
<source>More...</source>
<translation>Más…</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="504"/>
+ <location filename="src/mainwindow.cpp" line="528"/>
<source>&Related Videos</source>
<translation>Vídeos &relacionados</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="506"/>
+ <location filename="src/mainwindow.cpp" line="530"/>
<source>Watch videos related to the current one</source>
<translation>Ver videos relacionados con el actual</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="544"/>
+ <location filename="src/mainwindow.cpp" line="553"/>
<source>&Application</source>
<translation>&Aplicación</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="515"/>
+ <location filename="src/mainwindow.cpp" line="537"/>
<source>Buy %1...</source>
<translation>Comprar %1…</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="558"/>
+ <location filename="src/mainwindow.cpp" line="567"/>
<source>&Playback</source>
<translation>&Reproducción</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="572"/>
+ <location filename="src/mainwindow.cpp" line="581"/>
<source>&Playlist</source>
<translation>&Lista de reprod.</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="581"/>
+ <location filename="src/mainwindow.cpp" line="590"/>
<source>&Video</source>
<translation>&Vídeo</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="594"/>
+ <location filename="src/mainwindow.cpp" line="605"/>
<source>&View</source>
<translation>&Ver</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="601"/>
+ <location filename="src/mainwindow.cpp" line="612"/>
<source>&Share</source>
<translation>&Compartir</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="615"/>
+ <location filename="src/mainwindow.cpp" line="626"/>
<source>&Help</source>
<translation>Ay&uda</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="690"/>
+ <location filename="src/mainwindow.cpp" line="701"/>
<source>Press %1 to raise the volume, %2 to lower it</source>
<translation>Pulse %1 para aumentar el volumen o %2 para reducirlo</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="889"/>
- <location filename="src/mainwindow.cpp" line="895"/>
+ <location filename="src/mainwindow.cpp" line="910"/>
+ <location filename="src/mainwindow.cpp" line="916"/>
<source>Opening %1</source>
<translation>Abriendo %1</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="936"/>
+ <location filename="src/mainwindow.cpp" line="959"/>
<source>Do you want to exit %1 with a download in progress?</source>
<translation>¿Quiere salir de %1 con una descarga en curso?</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="937"/>
+ <location filename="src/mainwindow.cpp" line="960"/>
<source>If you close %1 now, this download will be cancelled.</source>
<translation>Si cierra %1 ahora, esta descarga será cancelada.</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="942"/>
+ <location filename="src/mainwindow.cpp" line="965"/>
<source>Close and cancel download</source>
<translation>Cerrar y cancelar descarga</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="943"/>
+ <location filename="src/mainwindow.cpp" line="966"/>
<source>Wait for download to finish</source>
<translation>Esperando a que finalice la descarga</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="1102"/>
+ <location filename="src/mainwindow.cpp" line="1125"/>
<source>Leave &Full Screen</source>
<translation>&Salir de pantalla completa</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="1475"/>
+ <location filename="src/mainwindow.cpp" line="1515"/>
<source>%1 version %2 is now available.</source>
<translation>%1 versión %2 ya está disponible.</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="1479"/>
+ <location filename="src/mainwindow.cpp" line="1519"/>
<source>Remind me later</source>
<translation>Recordarme después</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="1480"/>
+ <location filename="src/mainwindow.cpp" line="1520"/>
<source>Update</source>
<translation>Actualizar</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="982"/>
+ <location filename="src/mainwindow.cpp" line="1005"/>
<source>Error: %1</source>
<translation>Error: %1</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="222"/>
+ <location filename="src/mainwindow.cpp" line="246"/>
<source>P&revious</source>
<translation>Ante&rior</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="223"/>
+ <location filename="src/mainwindow.cpp" line="247"/>
<source>Go back to the previous track</source>
<translation>Regresar a la pista anterior</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="262"/>
+ <location filename="src/mainwindow.cpp" line="281"/>
<source>&Compact Mode</source>
<translation>Modo &compacto</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="275"/>
+ <location filename="src/mainwindow.cpp" line="294"/>
<source>Open the &YouTube Page</source>
<translation>Abrir la página de &YouTube</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="282"/>
+ <location filename="src/mainwindow.cpp" line="301"/>
<source>Copy the YouTube &Link</source>
<translation>Copiar el en&lace de YouTube</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="289"/>
+ <location filename="src/mainwindow.cpp" line="308"/>
<source>Copy the Video Stream &URL</source>
- <translation>Copiar la &URL de flujo del vídeo</translation>
+ <translation>Copiar el &URL de flujo del vídeo</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="296"/>
+ <location filename="src/mainwindow.cpp" line="315"/>
<source>Find Video &Parts</source>
<translation>Encontrar &partes de vídeos</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="324"/>
+ <location filename="src/mainwindow.cpp" line="343"/>
<source>&Clear Recent Searches</source>
<translation>&Limpiar búsquedas recientes</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="348"/>
+ <location filename="src/mainwindow.cpp" line="367"/>
<source>Make a &Donation</source>
<translation>Hacer una &donación</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="405"/>
+ <location filename="src/mainwindow.cpp" line="424"/>
<source>&Manually Start Playing</source>
<translation>Comenzar la reproducción &manualmente</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="406"/>
+ <location filename="src/mainwindow.cpp" line="425"/>
<source>Manually start playing videos</source>
<translation>Comenzar la reproducción de vídeos manualmente</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="728"/>
+ <location filename="src/mainwindow.cpp" line="739"/>
<source>Choose your content location</source>
<translation>Elija su ubicación para el contenido</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="1002"/>
+ <location filename="src/mainwindow.cpp" line="1025"/>
<source>&Play</source>
<translation>&Reproducir</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="1003"/>
+ <location filename="src/mainwindow.cpp" line="1026"/>
<source>Resume playback</source>
<translation>Continuar la reproducción</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="1236"/>
+ <location filename="src/mainwindow.cpp" line="1277"/>
<source>Remaining time: %1</source>
<translation>Tiempo restante: %1</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="1294"/>
+ <location filename="src/mainwindow.cpp" line="1335"/>
<source>Volume at %1%</source>
<translation>Volumen al %1%</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="1300"/>
+ <location filename="src/mainwindow.cpp" line="1341"/>
<source>Volume is muted</source>
<translation>El volumen está silenciado</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="1303"/>
+ <location filename="src/mainwindow.cpp" line="1344"/>
<source>Volume is unmuted</source>
<translation>El volumen no está silenciado</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="1310"/>
+ <location filename="src/mainwindow.cpp" line="1351"/>
<source>Maximum video definition set to %1</source>
<translation>Resolución máxima de video establecida en %1</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="1351"/>
+ <location filename="src/mainwindow.cpp" line="1392"/>
<source>Your privacy is now safe</source>
<translation>Su privacidad ahora está asegurada
</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="1366"/>
+ <location filename="src/mainwindow.cpp" line="1407"/>
<source>Downloads complete</source>
<translation>Descargas completas</translation>
</message>
<context>
<name>MediaView</name>
<message>
- <location filename="src/mediaview.cpp" line="553"/>
+ <location filename="src/mediaview.cpp" line="563"/>
<source>You can now paste the YouTube link into another application</source>
<translation>Ahora puede pegar el enlace de YouTube en otra aplicación</translation>
</message>
<message>
- <location filename="src/mediaview.cpp" line="561"/>
+ <location filename="src/mediaview.cpp" line="571"/>
<source>You can now paste the video stream URL into another application</source>
<translation>Ahora puede pegar la URL del flujo de vídeo en otra aplicación</translation>
</message>
<message>
- <location filename="src/mediaview.cpp" line="562"/>
+ <location filename="src/mediaview.cpp" line="572"/>
<source>The link will be valid only for a limited time.</source>
<translation>El enlace es válido solo por un tiempo limitado.</translation>
</message>
<message>
- <location filename="src/mediaview.cpp" line="636"/>
+ <location filename="src/mediaview.cpp" line="650"/>
<source>This is just the demo version of %1.</source>
<translation>Esto es solo la versión de prueba de %1.</translation>
</message>
<message>
- <location filename="src/mediaview.cpp" line="637"/>
+ <location filename="src/mediaview.cpp" line="651"/>
<source>It allows you to test the application and see if it works for you.</source>
<translation>Le permite probar la aplicación y ver si le funciona.</translation>
</message>
<message>
- <location filename="src/mediaview.cpp" line="667"/>
+ <location filename="src/mediaview.cpp" line="681"/>
<source>Continue</source>
<translation>Continuar</translation>
</message>
<message>
- <location filename="src/mediaview.cpp" line="756"/>
+ <location filename="src/mediaview.cpp" line="772"/>
<source>of</source>
<comment>Used in video parts, as in '2 of 3'</comment>
<translation>de</translation>
</message>
<message>
- <location filename="src/mediaview.cpp" line="768"/>
+ <location filename="src/mediaview.cpp" line="785"/>
<source>part</source>
<comment>This is for video parts, as in 'Cool video - part 1'</comment>
<translation>parte</translation>
</message>
<message>
- <location filename="src/mediaview.cpp" line="770"/>
+ <location filename="src/mediaview.cpp" line="787"/>
<source>episode</source>
<comment>This is for video parts, as in 'Cool series - episode 1'</comment>
<translation>episodio</translation>
</message>
<message>
- <location filename="src/mediaview.cpp" line="847"/>
+ <location filename="src/mediaview.cpp" line="868"/>
<source>Sent from %1</source>
<translation>Enviado desde %1</translation>
</message>
<message>
- <location filename="src/mediaview.cpp" line="644"/>
+ <location filename="src/mediaview.cpp" line="899"/>
+ <source>Unsubscribe from %1</source>
+ <translation>Cancelar suscripción a %1</translation>
+ </message>
+ <message>
+ <location filename="src/mediaview.cpp" line="903"/>
+ <source>Subscribe to %1</source>
+ <translation>Suscribirse a %1</translation>
+ </message>
+ <message>
+ <location filename="src/mediaview.cpp" line="658"/>
<source>Get the full version</source>
<translation>Obtener la versión completa</translation>
</message>
<message>
- <location filename="src/mediaview.cpp" line="681"/>
+ <location filename="src/mediaview.cpp" line="695"/>
<source>Downloading %1</source>
<translation>Descargando %1</translation>
</message>
<context>
<name>PlaylistItemDelegate</name>
<message>
- <location filename="src/playlistitemdelegate.cpp" line="159"/>
+ <location filename="src/playlistitemdelegate.cpp" line="177"/>
<source>%1 views</source>
<translation>%1 reproducciones</translation>
</message>
<message>
- <location filename="src/playlistitemdelegate.cpp" line="285"/>
+ <location filename="src/playlistitemdelegate.cpp" line="292"/>
<source>%1 of %2 (%3) — %4</source>
<translation>%1 de %2 (%3) — %4</translation>
</message>
<message>
- <location filename="src/playlistitemdelegate.cpp" line="292"/>
+ <location filename="src/playlistitemdelegate.cpp" line="299"/>
<source>Preparing</source>
<translation>Preparando</translation>
</message>
<message>
- <location filename="src/playlistitemdelegate.cpp" line="294"/>
+ <location filename="src/playlistitemdelegate.cpp" line="301"/>
<source>Failed</source>
<translation>Falló</translation>
</message>
<message>
- <location filename="src/playlistitemdelegate.cpp" line="296"/>
+ <location filename="src/playlistitemdelegate.cpp" line="303"/>
<source>Completed</source>
<translation>Completado</translation>
</message>
<message>
- <location filename="src/playlistitemdelegate.cpp" line="298"/>
+ <location filename="src/playlistitemdelegate.cpp" line="305"/>
<source>Stopped</source>
<translation>Detenido</translation>
</message>
<message>
- <location filename="src/playlistitemdelegate.cpp" line="334"/>
+ <location filename="src/playlistitemdelegate.cpp" line="341"/>
<source>Stop downloading</source>
<translation>Detener la descarga</translation>
</message>
<message>
- <location filename="src/playlistitemdelegate.cpp" line="344"/>
+ <location filename="src/playlistitemdelegate.cpp" line="351"/>
<source>Show in %1</source>
<translation>Mostrar en %1</translation>
</message>
<message>
- <location filename="src/playlistitemdelegate.cpp" line="346"/>
+ <location filename="src/playlistitemdelegate.cpp" line="353"/>
<source>Open parent folder</source>
<translation>Abrir carpeta contenedora</translation>
</message>
<message>
- <location filename="src/playlistitemdelegate.cpp" line="355"/>
+ <location filename="src/playlistitemdelegate.cpp" line="362"/>
<source>Restart downloading</source>
<translation>Reiniciar la descarga</translation>
</message>
<context>
<name>SearchView</name>
<message>
- <location filename="src/searchview.cpp" line="71"/>
+ <location filename="src/searchview.cpp" line="66"/>
<source>Welcome to <a href='%1'>%2</a>,</source>
<translation>Bienvenido a <a href='%1'>%2</a>,</translation>
</message>
<message>
- <location filename="src/searchview.cpp" line="50"/>
+ <location filename="src/searchview.cpp" line="161"/>
<source>Get the full version</source>
<translation>Obtener la versión completa</translation>
</message>
<message>
- <location filename="src/searchview.cpp" line="85"/>
+ <location filename="src/searchview.cpp" line="80"/>
<source>Enter</source>
<extracomment>"Enter", as in "type". The whole phrase says: "Enter a keyword to start watching videos"</extracomment>
<translation>Escriba</translation>
</message>
<message>
- <location filename="src/searchview.cpp" line="90"/>
+ <location filename="src/searchview.cpp" line="85"/>
<source>a keyword</source>
<translation>una palabra clave</translation>
</message>
<message>
- <location filename="src/searchview.cpp" line="91"/>
+ <location filename="src/searchview.cpp" line="86"/>
<source>a channel</source>
<translation>un canal</translation>
</message>
<message>
- <location filename="src/searchview.cpp" line="96"/>
+ <location filename="src/searchview.cpp" line="91"/>
<source>to start watching videos.</source>
<translation>para empezar a ver vídeos.</translation>
</message>
<message>
- <location filename="src/searchview.cpp" line="120"/>
+ <location filename="src/searchview.cpp" line="115"/>
<source>Watch</source>
<translation>Ver</translation>
</message>
<message>
- <location filename="src/searchview.cpp" line="138"/>
+ <location filename="src/searchview.cpp" line="133"/>
<source>Recent keywords</source>
<translation>Palabras clave recientes</translation>
</message>
<message>
- <location filename="src/searchview.cpp" line="151"/>
+ <location filename="src/searchview.cpp" line="146"/>
<source>Recent channels</source>
<translation>Canales recientes</translation>
</message>
<context>
<name>SidebarHeader</name>
<message>
- <location filename="src/sidebarheader.cpp" line="16"/>
- <location filename="src/sidebarheader.cpp" line="23"/>
+ <location filename="src/sidebarheader.cpp" line="19"/>
+ <location filename="src/sidebarheader.cpp" line="26"/>
<source>&Back</source>
<translation>&Atrás</translation>
</message>
<source>Most Popular</source>
<translation>Más populares</translation>
</message>
- <message>
- <location filename="src/standardfeedsview.cpp" line="86"/>
- <source>Featured</source>
- <translation>Destacados</translation>
- </message>
<message>
<location filename="src/standardfeedsview.cpp" line="87"/>
<source>Most Shared</source>
<source>Top Rated</source>
<translation>Mejor valorados</translation>
</message>
+ <message>
+ <location filename="src/standardfeedsview.cpp" line="90"/>
+ <source>All Time Popular</source>
+ <translation>Populares siempre</translation>
+ </message>
</context>
<context>
<name>Video</name>
<message>
- <location filename="src/video.cpp" line="213"/>
+ <location filename="src/video.cpp" line="215"/>
<source>Cannot get video stream for %1</source>
<translation>No se puede obtener el flujo de vídeo para %1</translation>
</message>
<message>
- <location filename="src/video.cpp" line="231"/>
+ <location filename="src/video.cpp" line="233"/>
<source>Network error: %1 for %2</source>
<translation>Error de red: %1 por %2</translation>
</message>
<message>
<location filename="src/aboutview.cpp" line="38"/>
<source>Licensed to: %1</source>
- <translation type="unfinished"/>
+ <translation>Licencia para: %1</translation>
</message>
<message>
<location filename="src/aboutview.cpp" line="42"/>
<source>%1 is Free Software but its development takes precious time.</source>
- <translation>%1 es Software Libre pero su desarrollo lleva tiempo.</translation>
+ <translation>%1 es Software Libre pero su desarrollo lleva precioso tiempo.</translation>
</message>
<message>
<location filename="src/aboutview.cpp" line="43"/>
<source>Please <a href='%1'>donate</a> to support the continued development of %2.</source>
- <translation>Por favor, <a href='%1'>hacé una donación</a> para apoyar el desarrollo de %2.</translation>
+ <translation>Por favor, <a href='%1'>dóna</a> para apoyar el desarrollo continuo de %2.</translation>
</message>
<message>
<location filename="src/aboutview.cpp" line="47"/>
<source>You may want to try my other apps as well:</source>
- <translation>Talvez querás probar mis otras aplicaciones como:</translation>
+ <translation>Tal vez querrás probar mis otras aplicaciones como:</translation>
</message>
<message>
<location filename="src/aboutview.cpp" line="50"/>
<message>
<location filename="src/aboutview.cpp" line="60"/>
<source>Translate %1 to your native language using %2</source>
- <translation>Traducí %1 a tu idioma natal usando %2</translation>
+ <translation>Traduce %1 a tu idioma natal usando %2</translation>
</message>
<message>
<location filename="src/aboutview.cpp" line="65"/>
<message>
<location filename="local/src/activationdialog.cpp" line="17"/>
<source>Enter your License Details</source>
- <translation type="unfinished"/>
+ <translation>Introduzca los detalles de la licencia</translation>
</message>
<message>
<location filename="local/src/activationdialog.cpp" line="29"/>
<source>&Email:</source>
- <translation type="unfinished"/>
+ <translation>Correo &electrónico:</translation>
</message>
<message>
<location filename="local/src/activationdialog.cpp" line="35"/>
<source>&Code:</source>
- <translation type="unfinished"/>
+ <translation>&Código:</translation>
</message>
</context>
<context>
<message>
<location filename="local/src/activationview.cpp" line="53"/>
<source>The full version allows you to download videos longer than %1 minutes and to watch videos without interruptions.</source>
- <translation type="unfinished"/>
+ <translation>La versión completa te permite descargar vídeos más largos que %1 minutos y mirar vídeos sin interrupciones.</translation>
</message>
<message>
<location filename="local/src/activationview.cpp" line="55"/>
<source>Without a license, the application will expire in %1 days.</source>
- <translation type="unfinished"/>
+ <translation>Sin una licencia, la aplicación caducará en %1 días.</translation>
</message>
<message>
<location filename="local/src/activationview.cpp" line="57"/>
<message>
<location filename="local/src/activationview.cpp" line="77"/>
<source>Enter License</source>
- <translation type="unfinished"/>
+ <translation>Introducir licencia</translation>
</message>
<message>
<location filename="local/src/activationview.cpp" line="85"/>
<source>Buy License</source>
+ <translation>Comprar licencia</translation>
+ </message>
+</context>
+<context>
+ <name>ChannelAggregator</name>
+ <message>
+ <location filename="src/channelaggregator.cpp" line="110"/>
+ <source>By %1</source>
+ <translation type="unfinished"/>
+ </message>
+ <message numerus="yes">
+ <location filename="src/channelaggregator.cpp" line="112"/>
+ <source>You have %n new video(s)</source>
+ <translation type="unfinished"><numerusform></numerusform><numerusform></numerusform></translation>
+ </message>
+</context>
+<context>
+ <name>ChannelItemDelegate</name>
+ <message>
+ <location filename="src/channelitemdelegate.cpp" line="46"/>
+ <source>All Videos</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="src/channelitemdelegate.cpp" line="63"/>
+ <source>Unwatched Videos</source>
+ <translation type="unfinished"/>
+ </message>
+</context>
+<context>
+ <name>ChannelView</name>
+ <message>
+ <location filename="src/channelview.cpp" line="75"/>
+ <source>Mark all as watched</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="src/channelview.cpp" line="83"/>
+ <source>Show Updated</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="src/channelview.cpp" line="95"/>
+ <source>Name</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="src/channelview.cpp" line="102"/>
+ <source>Last Updated</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="src/channelview.cpp" line="109"/>
+ <source>Last Added</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="src/channelview.cpp" line="116"/>
+ <source>Last Watched</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="src/channelview.cpp" line="123"/>
+ <source>Most Watched</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="src/channelview.cpp" line="131"/>
+ <source>Sort by</source>
+ <translation>Sortear por</translation>
+ </message>
+ <message>
+ <location filename="src/channelview.cpp" line="190"/>
+ <source>All Videos</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="src/channelview.cpp" line="194"/>
+ <source>Unwatched Videos</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="src/channelview.cpp" line="206"/>
+ <source>There are no updated subscriptions at this time.</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="src/channelview.cpp" line="208"/>
+ <source>You have no subscriptions. Use the star symbol to subscribe to channels.</source>
<translation type="unfinished"/>
</message>
</context>
<message>
<location filename="src/downloadmanager.cpp" line="64"/>
<source>Get the full version</source>
- <translation>Conseguí la versión completa</translation>
+ <translation>Consigue la versión completa</translation>
</message>
<message>
<location filename="src/downloadmanager.cpp" line="150"/>
<message>
<location filename="src/downloadsettings.cpp" line="72"/>
<source>Downloading to: %1</source>
- <translation>Bajando a: %1</translation>
+ <translation>Bajando al: %1</translation>
</message>
</context>
<context>
<message>
<location filename="local/src/updatedialog.cpp" line="60"/>
<source>Downloading update...</source>
- <translation type="unfinished"/>
+ <translation>Descargando actualización…</translation>
</message>
</context>
<context>
<context>
<name>HomeView</name>
<message>
- <location filename="src/homeview.cpp" line="33"/>
+ <location filename="src/homeview.cpp" line="38"/>
<source>Search</source>
<translation>Buscar</translation>
</message>
<message>
- <location filename="src/homeview.cpp" line="35"/>
+ <location filename="src/homeview.cpp" line="40"/>
<source>Find videos and channels by keyword</source>
- <translation type="unfinished"/>
+ <translation>Encuentra vídeos por canales o por palabras clave</translation>
</message>
<message>
- <location filename="src/homeview.cpp" line="40"/>
+ <location filename="src/homeview.cpp" line="45"/>
<source>Browse</source>
- <translation type="unfinished"/>
+ <translation>Navegar</translation>
</message>
<message>
- <location filename="src/homeview.cpp" line="42"/>
+ <location filename="src/homeview.cpp" line="47"/>
<source>Browse videos by category</source>
+ <translation>Navega en los vídeos por categoría</translation>
+ </message>
+ <message>
+ <location filename="src/homeview.cpp" line="51"/>
+ <source>Subscriptions</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="src/homeview.cpp" line="53"/>
+ <source>Channel subscriptions</source>
<translation type="unfinished"/>
</message>
<message>
<context>
<name>LoadingWidget</name>
<message>
- <location filename="src/loadingwidget.cpp" line="90"/>
+ <location filename="src/loadingwidget.cpp" line="88"/>
<source>Error</source>
<translation>Error</translation>
</message>
<context>
<name>MainWindow</name>
<message>
- <location filename="src/mainwindow.cpp" line="213"/>
+ <location filename="src/mainwindow.cpp" line="237"/>
<source>&Stop</source>
<translation>&Detener</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="214"/>
+ <location filename="src/mainwindow.cpp" line="238"/>
<source>Stop playback and go back to the search view</source>
- <translation>Detener y volver a la búsqueda</translation>
+ <translation>Detener la reproducción y volver a la vista de búsqueda</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="232"/>
+ <location filename="src/mainwindow.cpp" line="253"/>
<source>S&kip</source>
<translation>&Saltar</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="233"/>
+ <location filename="src/mainwindow.cpp" line="254"/>
<source>Skip to the next video</source>
- <translation>Siguiente video</translation>
+ <translation>Saltar al siguiente video</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="239"/>
- <location filename="src/mainwindow.cpp" line="989"/>
+ <location filename="src/mainwindow.cpp" line="260"/>
+ <location filename="src/mainwindow.cpp" line="1012"/>
<source>&Pause</source>
<translation>&Pausar</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="240"/>
- <location filename="src/mainwindow.cpp" line="990"/>
+ <location filename="src/mainwindow.cpp" line="261"/>
+ <location filename="src/mainwindow.cpp" line="1013"/>
<source>Pause playback</source>
<translation>Pausar</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="246"/>
+ <location filename="src/mainwindow.cpp" line="267"/>
<source>&Full Screen</source>
<translation>&Pantalla completa</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="247"/>
+ <location filename="src/mainwindow.cpp" line="268"/>
<source>Go full screen</source>
<translation>Ir a pantalla completa</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="263"/>
+ <location filename="src/mainwindow.cpp" line="282"/>
<source>Hide the playlist and the toolbar</source>
<translation>Esconder la lista de reproducción y la barra de herramientas</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="276"/>
+ <location filename="src/mainwindow.cpp" line="295"/>
<source>Go to the YouTube video page and pause playback</source>
<translation>Ir al video en YouTube y pausar la reproducción</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="283"/>
+ <location filename="src/mainwindow.cpp" line="302"/>
<source>Copy the current video YouTube link to the clipboard</source>
- <translation>Copiar el enlace de YouTube del video al portapapeles</translation>
+ <translation>Copiar el enlace de YouTube del video actual al portapapeles</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="290"/>
+ <location filename="src/mainwindow.cpp" line="309"/>
<source>Copy the current video stream URL to the clipboard</source>
- <translation>Copiar la &URL del stream del video al portapapeles</translation>
+ <translation>Copiar la URL del stream del video al portapapeles</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="297"/>
+ <location filename="src/mainwindow.cpp" line="316"/>
<source>Find other video parts hopefully in the right order</source>
- <translation>Encontrá las otras partes del video con suerte en el orden correcto</translation>
+ <translation>Encuentra las otras partes del video con suerte en el orden correcto</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="303"/>
+ <location filename="src/mainwindow.cpp" line="322"/>
<source>&Remove</source>
<translation>&Borrar</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="304"/>
+ <location filename="src/mainwindow.cpp" line="323"/>
<source>Remove the selected videos from the playlist</source>
<translation>Borrar los videos seleccionados de la lista</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="310"/>
+ <location filename="src/mainwindow.cpp" line="329"/>
<source>Move &Up</source>
<translation>Mover hacia &arriba</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="311"/>
+ <location filename="src/mainwindow.cpp" line="330"/>
<source>Move up the selected videos in the playlist</source>
<translation>Mover hacia arriba los videos seleccionados</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="317"/>
+ <location filename="src/mainwindow.cpp" line="336"/>
<source>Move &Down</source>
<translation>Mover hacia &abajo</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="318"/>
+ <location filename="src/mainwindow.cpp" line="337"/>
<source>Move down the selected videos in the playlist</source>
<translation>Mover hacia abajo los videos seleccionados</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="329"/>
+ <location filename="src/mainwindow.cpp" line="348"/>
<source>Clear the search history. Cannot be undone.</source>
<translation>Eliminar el historial de búsqueda. No se puede deshacer.</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="334"/>
+ <location filename="src/mainwindow.cpp" line="353"/>
<source>&Quit</source>
<translation>&Salir</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="337"/>
+ <location filename="src/mainwindow.cpp" line="356"/>
<source>Bye</source>
- <translation>Chau</translation>
+ <translation>Adiós</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="341"/>
+ <location filename="src/mainwindow.cpp" line="360"/>
<source>&Website</source>
<translation>&Sitio web</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="343"/>
+ <location filename="src/mainwindow.cpp" line="362"/>
<source>%1 on the Web</source>
<translation>%1 en la Web</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="349"/>
+ <location filename="src/mainwindow.cpp" line="368"/>
<source>Please support the continued development of %1</source>
- <translation>Apoyar el desarrollo de %1</translation>
+ <translation>Por favor apoya el desarrollo continuo de %1</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="354"/>
+ <location filename="src/mainwindow.cpp" line="373"/>
<source>&About</source>
<translation>&Acerca de</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="356"/>
+ <location filename="src/mainwindow.cpp" line="375"/>
<source>Info about %1</source>
<translation>Información sobre %1</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="364"/>
+ <location filename="src/mainwindow.cpp" line="383"/>
<source>Search</source>
<translation>Buscar</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="383"/>
+ <location filename="src/mainwindow.cpp" line="402"/>
<source>Mute volume</source>
<translation>Silenciar volumen</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="412"/>
- <location filename="src/mainwindow.cpp" line="1365"/>
+ <location filename="src/mainwindow.cpp" line="431"/>
+ <location filename="src/mainwindow.cpp" line="1406"/>
<source>&Downloads</source>
<translation>&Descargas</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="413"/>
+ <location filename="src/mainwindow.cpp" line="432"/>
<source>Show details about video downloads</source>
<translation>Mostrar detalles sobre la descarga de videos</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="421"/>
+ <location filename="src/mainwindow.cpp" line="440"/>
<source>&Download</source>
<translation>&Bajar video</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="422"/>
+ <location filename="src/mainwindow.cpp" line="441"/>
<source>Download the current video</source>
<translation>Bajar el video actual</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="441"/>
+ <location filename="src/mainwindow.cpp" line="458"/>
+ <source>&Subscribe to Channel</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="src/mainwindow.cpp" line="465"/>
<source>Share the current video using %1</source>
- <translation>Compartí el video actual usando %1</translation>
+ <translation>Compartí el vídeo actual usando %1</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="458"/>
+ <location filename="src/mainwindow.cpp" line="482"/>
<source>&Email</source>
<translation>&Correo</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="459"/>
+ <location filename="src/mainwindow.cpp" line="483"/>
<source>Email</source>
<translation>Correo</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="463"/>
+ <location filename="src/mainwindow.cpp" line="487"/>
<source>&Close</source>
<translation>&Cerrar</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="473"/>
+ <location filename="src/mainwindow.cpp" line="497"/>
<source>&Float on Top</source>
<translation>&Siempre Visible</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="478"/>
+ <location filename="src/mainwindow.cpp" line="502"/>
<source>&Stop After This Video</source>
<translation>&Finalizar Después de este Video</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="485"/>
+ <location filename="src/mainwindow.cpp" line="509"/>
<source>&Report an Issue...</source>
<translation>&Reportar un inconveniente</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="489"/>
+ <location filename="src/mainwindow.cpp" line="513"/>
<source>&Refine Search...</source>
<translation>&Refinar Búsqueda</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="501"/>
+ <location filename="src/mainwindow.cpp" line="525"/>
<source>More...</source>
- <translation type="unfinished"/>
+ <translation>Más...</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="504"/>
+ <location filename="src/mainwindow.cpp" line="528"/>
<source>&Related Videos</source>
- <translation type="unfinished"/>
+ <translation>&Vídeos relacionados</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="506"/>
+ <location filename="src/mainwindow.cpp" line="530"/>
<source>Watch videos related to the current one</source>
- <translation type="unfinished"/>
+ <translation>Mirar vídeos relacionados al vídeo actual</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="544"/>
+ <location filename="src/mainwindow.cpp" line="553"/>
<source>&Application</source>
<translation>&Programa</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="515"/>
+ <location filename="src/mainwindow.cpp" line="537"/>
<source>Buy %1...</source>
<translation>Comprar %1...</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="558"/>
+ <location filename="src/mainwindow.cpp" line="567"/>
<source>&Playback</source>
<translation>&Reproducción</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="572"/>
+ <location filename="src/mainwindow.cpp" line="581"/>
<source>&Playlist</source>
<translation>&Lista de reproducción</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="581"/>
+ <location filename="src/mainwindow.cpp" line="590"/>
<source>&Video</source>
<translation>&Video</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="594"/>
+ <location filename="src/mainwindow.cpp" line="605"/>
<source>&View</source>
<translation>&Ver</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="601"/>
+ <location filename="src/mainwindow.cpp" line="612"/>
<source>&Share</source>
<translation>&Compartir</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="615"/>
+ <location filename="src/mainwindow.cpp" line="626"/>
<source>&Help</source>
<translation>&Ayuda</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="690"/>
+ <location filename="src/mainwindow.cpp" line="701"/>
<source>Press %1 to raise the volume, %2 to lower it</source>
- <translation>Con %1 subís el volumen, con %2 lo bajás</translation>
+ <translation>Con %1 para subir el volumen, con %2 para bajarlo</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="889"/>
- <location filename="src/mainwindow.cpp" line="895"/>
+ <location filename="src/mainwindow.cpp" line="910"/>
+ <location filename="src/mainwindow.cpp" line="916"/>
<source>Opening %1</source>
<translation>Abriendo %1</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="936"/>
+ <location filename="src/mainwindow.cpp" line="959"/>
<source>Do you want to exit %1 with a download in progress?</source>
- <translation>Seguro que querés salir de %1 con una descarga en progreso?</translation>
+ <translation>Seguro que quieres salir de %1 con una descarga en progreso?</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="937"/>
+ <location filename="src/mainwindow.cpp" line="960"/>
<source>If you close %1 now, this download will be cancelled.</source>
- <translation>Si cerrás %1 ahora, la descarga se va a cancelar.</translation>
+ <translation>Si cierras %1 ahora, la descarga se va a cancelar.</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="942"/>
+ <location filename="src/mainwindow.cpp" line="965"/>
<source>Close and cancel download</source>
<translation>Cerrar y cancelar descarga</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="943"/>
+ <location filename="src/mainwindow.cpp" line="966"/>
<source>Wait for download to finish</source>
<translation>Esperar a que termine la descarga</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="1102"/>
+ <location filename="src/mainwindow.cpp" line="1125"/>
<source>Leave &Full Screen</source>
<translation>Salir de &Pantalla Completa</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="1475"/>
+ <location filename="src/mainwindow.cpp" line="1515"/>
<source>%1 version %2 is now available.</source>
<translation>%1 versión %2 está ahora disponible</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="1479"/>
+ <location filename="src/mainwindow.cpp" line="1519"/>
<source>Remind me later</source>
<translation>Recordármelo después</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="1480"/>
+ <location filename="src/mainwindow.cpp" line="1520"/>
<source>Update</source>
<translation>Actualizar</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="982"/>
+ <location filename="src/mainwindow.cpp" line="1005"/>
<source>Error: %1</source>
<translation>Error: %1</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="222"/>
+ <location filename="src/mainwindow.cpp" line="246"/>
<source>P&revious</source>
- <translation>A6nterior</translation>
+ <translation>Anterior</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="223"/>
+ <location filename="src/mainwindow.cpp" line="247"/>
<source>Go back to the previous track</source>
<translation>Volver a la pista previa</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="262"/>
+ <location filename="src/mainwindow.cpp" line="281"/>
<source>&Compact Mode</source>
<translation>&Modo Compacto</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="275"/>
+ <location filename="src/mainwindow.cpp" line="294"/>
<source>Open the &YouTube Page</source>
<translation>Abrir la página de &YouTube </translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="282"/>
+ <location filename="src/mainwindow.cpp" line="301"/>
<source>Copy the YouTube &Link</source>
<translation>Copiar el enlace de &YouTube</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="289"/>
+ <location filename="src/mainwindow.cpp" line="308"/>
<source>Copy the Video Stream &URL</source>
<translation>Copiar Video &URL</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="296"/>
+ <location filename="src/mainwindow.cpp" line="315"/>
<source>Find Video &Parts</source>
<translation>Encontrar Video &Partes</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="324"/>
+ <location filename="src/mainwindow.cpp" line="343"/>
<source>&Clear Recent Searches</source>
<translation>&Borrar las búsquedas recientes</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="348"/>
+ <location filename="src/mainwindow.cpp" line="367"/>
<source>Make a &Donation</source>
<translation>Hacer una &donación</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="405"/>
+ <location filename="src/mainwindow.cpp" line="424"/>
<source>&Manually Start Playing</source>
<translation>&Iniciar Reproducción Manualmente</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="406"/>
+ <location filename="src/mainwindow.cpp" line="425"/>
<source>Manually start playing videos</source>
<translation>Empezar a reproducir videos manualmente</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="728"/>
+ <location filename="src/mainwindow.cpp" line="739"/>
<source>Choose your content location</source>
- <translation type="unfinished"/>
+ <translation>Selecciona la localidad de tu contenido</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="1002"/>
+ <location filename="src/mainwindow.cpp" line="1025"/>
<source>&Play</source>
<translation>&Reproducir</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="1003"/>
+ <location filename="src/mainwindow.cpp" line="1026"/>
<source>Resume playback</source>
<translation>Continuar reproducción</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="1236"/>
+ <location filename="src/mainwindow.cpp" line="1277"/>
<source>Remaining time: %1</source>
<translation>Tiempo restante: %1</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="1294"/>
+ <location filename="src/mainwindow.cpp" line="1335"/>
<source>Volume at %1%</source>
<translation>Volumen al %1%</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="1300"/>
+ <location filename="src/mainwindow.cpp" line="1341"/>
<source>Volume is muted</source>
<translation>Volumen silenciado</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="1303"/>
+ <location filename="src/mainwindow.cpp" line="1344"/>
<source>Volume is unmuted</source>
<translation>Volumen activo</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="1310"/>
+ <location filename="src/mainwindow.cpp" line="1351"/>
<source>Maximum video definition set to %1</source>
- <translation>Definición máxima de video seteada en %1</translation>
+ <translation>Definición máxima de video ajustada en %1</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="1351"/>
+ <location filename="src/mainwindow.cpp" line="1392"/>
<source>Your privacy is now safe</source>
<translation>Tu privacidad ahora está segura</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="1366"/>
+ <location filename="src/mainwindow.cpp" line="1407"/>
<source>Downloads complete</source>
<translation>Descarga completa</translation>
</message>
<context>
<name>MediaView</name>
<message>
- <location filename="src/mediaview.cpp" line="553"/>
+ <location filename="src/mediaview.cpp" line="563"/>
<source>You can now paste the YouTube link into another application</source>
- <translation>Ahora podés pegar el enlace de YouTube en otra aplicación</translation>
+ <translation>Ahora puedes pegar el enlace de YouTube en otra aplicación</translation>
</message>
<message>
- <location filename="src/mediaview.cpp" line="561"/>
+ <location filename="src/mediaview.cpp" line="571"/>
<source>You can now paste the video stream URL into another application</source>
<translation>Ahora podés pegar la URL del stream en otra aplicación</translation>
</message>
<message>
- <location filename="src/mediaview.cpp" line="562"/>
+ <location filename="src/mediaview.cpp" line="572"/>
<source>The link will be valid only for a limited time.</source>
- <translation>El enalce va a ser válido sólo por un tiempo limitado.</translation>
+ <translation>El enlace va a ser válido sólo por un tiempo limitado.</translation>
</message>
<message>
- <location filename="src/mediaview.cpp" line="636"/>
+ <location filename="src/mediaview.cpp" line="650"/>
<source>This is just the demo version of %1.</source>
<translation>Esta es sólo la versión de demostración de %1.</translation>
</message>
<message>
- <location filename="src/mediaview.cpp" line="637"/>
+ <location filename="src/mediaview.cpp" line="651"/>
<source>It allows you to test the application and see if it works for you.</source>
<translation>Te permite probar la aplicación y ver si te funciona.</translation>
</message>
<message>
- <location filename="src/mediaview.cpp" line="667"/>
+ <location filename="src/mediaview.cpp" line="681"/>
<source>Continue</source>
<translation>Continuar</translation>
</message>
<message>
- <location filename="src/mediaview.cpp" line="756"/>
+ <location filename="src/mediaview.cpp" line="772"/>
<source>of</source>
<comment>Used in video parts, as in '2 of 3'</comment>
<translation>de</translation>
</message>
<message>
- <location filename="src/mediaview.cpp" line="768"/>
+ <location filename="src/mediaview.cpp" line="785"/>
<source>part</source>
<comment>This is for video parts, as in 'Cool video - part 1'</comment>
<translation>parte</translation>
</message>
<message>
- <location filename="src/mediaview.cpp" line="770"/>
+ <location filename="src/mediaview.cpp" line="787"/>
<source>episode</source>
<comment>This is for video parts, as in 'Cool series - episode 1'</comment>
<translation>episodio</translation>
</message>
<message>
- <location filename="src/mediaview.cpp" line="847"/>
+ <location filename="src/mediaview.cpp" line="868"/>
<source>Sent from %1</source>
<translation>Enviado desde %1</translation>
</message>
<message>
- <location filename="src/mediaview.cpp" line="644"/>
+ <location filename="src/mediaview.cpp" line="899"/>
+ <source>Unsubscribe from %1</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="src/mediaview.cpp" line="903"/>
+ <source>Subscribe to %1</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="src/mediaview.cpp" line="658"/>
<source>Get the full version</source>
<translation>Conseguir la versión completa</translation>
</message>
<message>
- <location filename="src/mediaview.cpp" line="681"/>
+ <location filename="src/mediaview.cpp" line="695"/>
<source>Downloading %1</source>
<translation>Descargando %1</translation>
</message>
<message>
<location filename="local/src/updatedialog.cpp" line="21"/>
<source>A new version of %1 is available!</source>
- <translation type="unfinished"/>
+ <translation>Está disponible una nueva versión de %1.</translation>
</message>
<message>
<location filename="local/src/updatedialog.cpp" line="28"/>
<source>%1 %2 is now available. You have %3.</source>
- <translation type="unfinished"/>
+ <translation>%1 %2 está disponible ahora. Ud. tiene %3.</translation>
</message>
<message>
<location filename="local/src/updatedialog.cpp" line="33"/>
<source>Would you like to download it now?</source>
- <translation type="unfinished"/>
+ <translation>¿Quiere descargarla ahora?</translation>
</message>
<message>
<location filename="local/src/updatedialog.cpp" line="39"/>
<source>Skip This Version</source>
- <translation type="unfinished"/>
+ <translation>Omitir esta versión</translation>
</message>
<message>
<location filename="local/src/updatedialog.cpp" line="43"/>
<source>Remind Me Later</source>
- <translation type="unfinished"/>
+ <translation>Recordarme después</translation>
</message>
<message>
<location filename="local/src/updatedialog.cpp" line="47"/>
<source>Install Update</source>
- <translation type="unfinished"/>
+ <translation>Instalar actualización</translation>
</message>
</context>
<context>
<message>
<location filename="local/src/pastelineedit.cpp" line="6"/>
<source>Paste</source>
- <translation type="unfinished"/>
+ <translation>Pegar</translation>
</message>
</context>
<context>
<name>PlaylistItemDelegate</name>
<message>
- <location filename="src/playlistitemdelegate.cpp" line="159"/>
+ <location filename="src/playlistitemdelegate.cpp" line="177"/>
<source>%1 views</source>
<translation>%1 visitas</translation>
</message>
<message>
- <location filename="src/playlistitemdelegate.cpp" line="285"/>
+ <location filename="src/playlistitemdelegate.cpp" line="292"/>
<source>%1 of %2 (%3) — %4</source>
- <translation type="unfinished"/>
+ <translation>%1 of %2 (%3) — %4</translation>
</message>
<message>
- <location filename="src/playlistitemdelegate.cpp" line="292"/>
+ <location filename="src/playlistitemdelegate.cpp" line="299"/>
<source>Preparing</source>
- <translation type="unfinished"/>
+ <translation>Preparando</translation>
</message>
<message>
- <location filename="src/playlistitemdelegate.cpp" line="294"/>
+ <location filename="src/playlistitemdelegate.cpp" line="301"/>
<source>Failed</source>
- <translation type="unfinished"/>
+ <translation>Falló</translation>
</message>
<message>
- <location filename="src/playlistitemdelegate.cpp" line="296"/>
+ <location filename="src/playlistitemdelegate.cpp" line="303"/>
<source>Completed</source>
- <translation type="unfinished"/>
+ <translation>Completado</translation>
</message>
<message>
- <location filename="src/playlistitemdelegate.cpp" line="298"/>
+ <location filename="src/playlistitemdelegate.cpp" line="305"/>
<source>Stopped</source>
- <translation type="unfinished"/>
+ <translation>Detenido</translation>
</message>
<message>
- <location filename="src/playlistitemdelegate.cpp" line="334"/>
+ <location filename="src/playlistitemdelegate.cpp" line="341"/>
<source>Stop downloading</source>
- <translation type="unfinished"/>
+ <translation>Detener descarga</translation>
</message>
<message>
- <location filename="src/playlistitemdelegate.cpp" line="344"/>
+ <location filename="src/playlistitemdelegate.cpp" line="351"/>
<source>Show in %1</source>
- <translation type="unfinished"/>
+ <translation>Mostrar en %1</translation>
</message>
<message>
- <location filename="src/playlistitemdelegate.cpp" line="346"/>
+ <location filename="src/playlistitemdelegate.cpp" line="353"/>
<source>Open parent folder</source>
- <translation type="unfinished"/>
+ <translation>Abrir carpeta relacionada</translation>
</message>
<message>
- <location filename="src/playlistitemdelegate.cpp" line="355"/>
+ <location filename="src/playlistitemdelegate.cpp" line="362"/>
<source>Restart downloading</source>
- <translation type="unfinished"/>
+ <translation>Reiniciar descarga</translation>
</message>
</context>
<context>
<message>
<location filename="src/playlistmodel.cpp" line="55"/>
<source>No more videos</source>
- <translation type="unfinished"/>
+ <translation>No hay más vídeos</translation>
</message>
</context>
<context>
<message>
<location filename="src/regionsview.cpp" line="19"/>
<source>Done</source>
- <translation type="unfinished"/>
+ <translation>Hecho</translation>
</message>
</context>
<context>
<context>
<name>SearchView</name>
<message>
- <location filename="src/searchview.cpp" line="71"/>
+ <location filename="src/searchview.cpp" line="66"/>
<source>Welcome to <a href='%1'>%2</a>,</source>
<translation>Bienvenido a <a href='%1'>%2</a>,</translation>
</message>
<message>
- <location filename="src/searchview.cpp" line="50"/>
+ <location filename="src/searchview.cpp" line="161"/>
<source>Get the full version</source>
<translation>Conseguir la versión completa</translation>
</message>
<message>
- <location filename="src/searchview.cpp" line="85"/>
+ <location filename="src/searchview.cpp" line="80"/>
<source>Enter</source>
<extracomment>"Enter", as in "type". The whole phrase says: "Enter a keyword to start watching videos"</extracomment>
<translation>Escribir</translation>
</message>
<message>
- <location filename="src/searchview.cpp" line="90"/>
+ <location filename="src/searchview.cpp" line="85"/>
<source>a keyword</source>
<translation>una palabra clave</translation>
</message>
<message>
- <location filename="src/searchview.cpp" line="91"/>
+ <location filename="src/searchview.cpp" line="86"/>
<source>a channel</source>
<translation>un canal</translation>
</message>
<message>
- <location filename="src/searchview.cpp" line="96"/>
+ <location filename="src/searchview.cpp" line="91"/>
<source>to start watching videos.</source>
<translation>para empezar a ver videos.</translation>
</message>
<message>
- <location filename="src/searchview.cpp" line="120"/>
+ <location filename="src/searchview.cpp" line="115"/>
<source>Watch</source>
<translation>Ver</translation>
</message>
<message>
- <location filename="src/searchview.cpp" line="138"/>
+ <location filename="src/searchview.cpp" line="133"/>
<source>Recent keywords</source>
<translation>Búsquedas recientes</translation>
</message>
<message>
- <location filename="src/searchview.cpp" line="151"/>
+ <location filename="src/searchview.cpp" line="146"/>
<source>Recent channels</source>
<translation>Canales recientes</translation>
</message>
<context>
<name>SidebarHeader</name>
<message>
- <location filename="src/sidebarheader.cpp" line="16"/>
- <location filename="src/sidebarheader.cpp" line="23"/>
+ <location filename="src/sidebarheader.cpp" line="19"/>
+ <location filename="src/sidebarheader.cpp" line="26"/>
<source>&Back</source>
<translation>&Atrás</translation>
</message>
<message>
<location filename="src/sidebarheader.cpp" line="57"/>
<source>Forward to %1</source>
- <translation type="unfinished"/>
+ <translation>Avanzar a %1</translation>
</message>
<message>
<location filename="src/sidebarheader.cpp" line="70"/>
<source>Back to %1</source>
- <translation type="unfinished"/>
+ <translation>Retroceder a %1</translation>
</message>
</context>
<context>
<message>
<location filename="src/standardfeedsview.cpp" line="85"/>
<source>Most Popular</source>
- <translation type="unfinished"/>
- </message>
- <message>
- <location filename="src/standardfeedsview.cpp" line="86"/>
- <source>Featured</source>
- <translation type="unfinished"/>
+ <translation>Más populares</translation>
</message>
<message>
<location filename="src/standardfeedsview.cpp" line="87"/>
<source>Most Shared</source>
- <translation type="unfinished"/>
+ <translation>Más compartidos</translation>
</message>
<message>
<location filename="src/standardfeedsview.cpp" line="88"/>
<source>Most Discussed</source>
- <translation type="unfinished"/>
+ <translation>Más discutidos</translation>
</message>
<message>
<location filename="src/standardfeedsview.cpp" line="89"/>
<source>Top Rated</source>
+ <translation>Mejor calificados</translation>
+ </message>
+ <message>
+ <location filename="src/standardfeedsview.cpp" line="90"/>
+ <source>All Time Popular</source>
<translation type="unfinished"/>
</message>
</context>
<context>
<name>Video</name>
<message>
- <location filename="src/video.cpp" line="213"/>
+ <location filename="src/video.cpp" line="215"/>
<source>Cannot get video stream for %1</source>
<translation>No puedo obtener el stream de video de %1</translation>
</message>
<message>
- <location filename="src/video.cpp" line="231"/>
+ <location filename="src/video.cpp" line="233"/>
<source>Network error: %1 for %2</source>
<translation>Error de conexión: %1 para %2</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="8"/>
<source>Algeria</source>
- <translation type="unfinished"/>
+ <translation>Algeria</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="9"/>
<source>Argentina</source>
- <translation type="unfinished"/>
+ <translation>Argentina</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="10"/>
<source>Australia</source>
- <translation type="unfinished"/>
+ <translation>Australia</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="11"/>
<source>Belgium</source>
- <translation type="unfinished"/>
+ <translation>Bélgica</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="12"/>
<source>Brazil</source>
- <translation type="unfinished"/>
+ <translation>Brasil</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="13"/>
<source>Canada</source>
- <translation type="unfinished"/>
+ <translation>Canada</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="14"/>
<source>Chile</source>
- <translation type="unfinished"/>
+ <translation>Chile</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="15"/>
<source>Colombia</source>
- <translation type="unfinished"/>
+ <translation>Colombia</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="16"/>
<source>Czech Republic</source>
- <translation type="unfinished"/>
+ <translation>República Checa</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="17"/>
<source>Egypt</source>
- <translation type="unfinished"/>
+ <translation>Egipto</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="18"/>
<source>France</source>
- <translation type="unfinished"/>
+ <translation>Francia</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="19"/>
<source>Germany</source>
- <translation type="unfinished"/>
+ <translation>Alemania</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="20"/>
<source>Ghana</source>
- <translation type="unfinished"/>
+ <translation>Ghana</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="21"/>
<source>Greece</source>
- <translation type="unfinished"/>
+ <translation>Grecia</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="22"/>
<source>Hong Kong</source>
- <translation type="unfinished"/>
+ <translation>Hong Kong</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="23"/>
<source>Hungary</source>
- <translation type="unfinished"/>
+ <translation>Hungría</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="24"/>
<source>India</source>
- <translation type="unfinished"/>
+ <translation>India</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="25"/>
<source>Indonesia</source>
- <translation type="unfinished"/>
+ <translation>Indonesia</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="26"/>
<source>Ireland</source>
- <translation type="unfinished"/>
+ <translation>Irlanda</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="27"/>
<source>Israel</source>
- <translation type="unfinished"/>
+ <translation>Israel</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="28"/>
<source>Italy</source>
- <translation type="unfinished"/>
+ <translation>Italia</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="29"/>
<source>Japan</source>
- <translation type="unfinished"/>
+ <translation>Japón</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="30"/>
<source>Jordan</source>
- <translation type="unfinished"/>
+ <translation>Jordan</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="31"/>
<source>Kenya</source>
- <translation type="unfinished"/>
+ <translation>Kenya</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="32"/>
<source>Malaysia</source>
- <translation type="unfinished"/>
+ <translation>Malasia</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="33"/>
<source>Mexico</source>
- <translation type="unfinished"/>
+ <translation>México</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="34"/>
<source>Morocco</source>
- <translation type="unfinished"/>
+ <translation>Marruecos</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="35"/>
<source>Netherlands</source>
- <translation type="unfinished"/>
+ <translation>Países Bajos</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="36"/>
<source>New Zealand</source>
- <translation type="unfinished"/>
+ <translation>Nueva Zelanda</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="37"/>
<source>Nigeria</source>
- <translation type="unfinished"/>
+ <translation>Nigeria</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="38"/>
<source>Peru</source>
- <translation type="unfinished"/>
+ <translation>Perú</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="39"/>
<source>Philippines</source>
- <translation type="unfinished"/>
+ <translation>Filipinas</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="40"/>
<source>Poland</source>
- <translation type="unfinished"/>
+ <translation>Polonia</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="41"/>
<source>Russia</source>
- <translation type="unfinished"/>
+ <translation>Rusia</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="42"/>
<source>Saudi Arabia</source>
- <translation type="unfinished"/>
+ <translation>Arabia Saudita</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="43"/>
<source>Singapore</source>
- <translation type="unfinished"/>
+ <translation>Singapur</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="44"/>
<source>South Africa</source>
- <translation type="unfinished"/>
+ <translation>Sud Africa</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="45"/>
<source>South Korea</source>
- <translation type="unfinished"/>
+ <translation>Sud Corea</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="46"/>
<source>Spain</source>
- <translation type="unfinished"/>
+ <translation>España</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="47"/>
<source>Sweden</source>
- <translation type="unfinished"/>
+ <translation>Suecia</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="48"/>
<source>Taiwan</source>
- <translation type="unfinished"/>
+ <translation>Taiwan</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="49"/>
<source>Tunisia</source>
- <translation type="unfinished"/>
+ <translation>Túnez</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="50"/>
<source>Turkey</source>
- <translation type="unfinished"/>
+ <translation>Turquía</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="51"/>
<source>Uganda</source>
- <translation type="unfinished"/>
+ <translation>Uganda</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="52"/>
<source>United Arab Emirates</source>
- <translation type="unfinished"/>
+ <translation>Emiratos Arabes Unidos</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="53"/>
<source>United Kingdom</source>
- <translation type="unfinished"/>
+ <translation>Reino Unido</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="54"/>
<source>Yemen</source>
- <translation type="unfinished"/>
+ <translation>Yemen</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="128"/>
<source>Worldwide</source>
- <translation type="unfinished"/>
+ <translation>Todo el mundo</translation>
</message>
</context>
</TS>
\ No newline at end of file
<message>
<location filename="src/aboutview.cpp" line="38"/>
<source>Licensed to: %1</source>
- <translation type="unfinished"/>
+ <translation>Con licencia para %1</translation>
</message>
<message>
<location filename="src/aboutview.cpp" line="42"/>
<source>%1 is Free Software but its development takes precious time.</source>
- <translation>%1 es Software Libre pero su desarrollo lleva mucho tiempo.</translation>
+ <translation>%1 es un programa de software libre, pero su desarrollo lleva mucho tiempo.</translation>
</message>
<message>
<location filename="src/aboutview.cpp" line="43"/>
<message>
<location filename="src/aboutview.cpp" line="50"/>
<source>%1, a YouTube music player</source>
- <translation>%1, reproductor de música de YouTube</translation>
+ <translation>%1, un reproductor de música de YouTube</translation>
</message>
<message>
<location filename="src/aboutview.cpp" line="54"/>
<message>
<location filename="src/aboutview.cpp" line="60"/>
<source>Translate %1 to your native language using %2</source>
- <translation>Traduce %1 a tu idioma utilizando %2</translation>
+ <translation>Traducir %1 a tu idioma utilizando %2</translation>
</message>
<message>
<location filename="src/aboutview.cpp" line="65"/>
<message>
<location filename="src/aboutview.h" line="19"/>
<source>What you always wanted to know about %1 and never dared to ask</source>
- <translation>Lo que siempre quiso saber sobre el %1 y nunca se atrevió a preguntar</translation>
+ <translation>Lo que siempre quiso saber sobre %1 y nunca se atrevió a preguntar</translation>
</message>
</context>
<context>
<message>
<location filename="local/src/activationdialog.cpp" line="17"/>
<source>Enter your License Details</source>
- <translation type="unfinished"/>
+ <translation>Introducir detalles de la licencia</translation>
</message>
<message>
<location filename="local/src/activationdialog.cpp" line="29"/>
<source>&Email:</source>
- <translation type="unfinished"/>
+ <translation>Corr&eo electrónico:</translation>
</message>
<message>
<location filename="local/src/activationdialog.cpp" line="35"/>
<source>&Code:</source>
- <translation type="unfinished"/>
+ <translation>&Código:</translation>
</message>
</context>
<context>
<message>
<location filename="local/src/activationview.cpp" line="51"/>
<source>This demo has expired.</source>
- <translation>Esta versión de prueba ha caducado.</translation>
+ <translation>La versión de prueba ha caducado.</translation>
</message>
<message>
<location filename="local/src/activationview.cpp" line="53"/>
<source>The full version allows you to download videos longer than %1 minutes and to watch videos without interruptions.</source>
- <translation type="unfinished"/>
+ <translation>La versión completa le permite descargar vídeos superiores a %1 minutos y ver vídeos sin interrupciones.</translation>
</message>
<message>
<location filename="local/src/activationview.cpp" line="55"/>
<source>Without a license, the application will expire in %1 days.</source>
- <translation type="unfinished"/>
+ <translation>La aplicación caducará en %1 días si no tiene una licencia.</translation>
</message>
<message>
<location filename="local/src/activationview.cpp" line="57"/>
<source>By purchasing the full version, you will also support the hard work I put into creating %1.</source>
- <translation>Al comprar la versión completa, también apoya el trabajo empleado en la creación de %1.</translation>
+ <translation>Al comprar la versión completa, estará apoyando el gran trabajo empleado en la creación de %1.</translation>
</message>
<message>
<location filename="local/src/activationview.cpp" line="70"/>
<message>
<location filename="local/src/activationview.cpp" line="77"/>
<source>Enter License</source>
- <translation type="unfinished"/>
+ <translation>Introducir licencia</translation>
</message>
<message>
<location filename="local/src/activationview.cpp" line="85"/>
<source>Buy License</source>
+ <translation>Comprar licencia</translation>
+ </message>
+</context>
+<context>
+ <name>ChannelAggregator</name>
+ <message>
+ <location filename="src/channelaggregator.cpp" line="110"/>
+ <source>By %1</source>
+ <translation type="unfinished"/>
+ </message>
+ <message numerus="yes">
+ <location filename="src/channelaggregator.cpp" line="112"/>
+ <source>You have %n new video(s)</source>
+ <translation type="unfinished"><numerusform></numerusform><numerusform></numerusform></translation>
+ </message>
+</context>
+<context>
+ <name>ChannelItemDelegate</name>
+ <message>
+ <location filename="src/channelitemdelegate.cpp" line="46"/>
+ <source>All Videos</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="src/channelitemdelegate.cpp" line="63"/>
+ <source>Unwatched Videos</source>
+ <translation type="unfinished"/>
+ </message>
+</context>
+<context>
+ <name>ChannelView</name>
+ <message>
+ <location filename="src/channelview.cpp" line="75"/>
+ <source>Mark all as watched</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="src/channelview.cpp" line="83"/>
+ <source>Show Updated</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="src/channelview.cpp" line="95"/>
+ <source>Name</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="src/channelview.cpp" line="102"/>
+ <source>Last Updated</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="src/channelview.cpp" line="109"/>
+ <source>Last Added</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="src/channelview.cpp" line="116"/>
+ <source>Last Watched</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="src/channelview.cpp" line="123"/>
+ <source>Most Watched</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="src/channelview.cpp" line="131"/>
+ <source>Sort by</source>
+ <translation>Sortear por</translation>
+ </message>
+ <message>
+ <location filename="src/channelview.cpp" line="190"/>
+ <source>All Videos</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="src/channelview.cpp" line="194"/>
+ <source>Unwatched Videos</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="src/channelview.cpp" line="206"/>
+ <source>There are no updated subscriptions at this time.</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="src/channelview.cpp" line="208"/>
+ <source>You have no subscriptions. Use the star symbol to subscribe to channels.</source>
<translation type="unfinished"/>
</message>
</context>
<message>
<location filename="src/downloaditem.cpp" line="340"/>
<source>KB/sec</source>
- <translation>KB/sec</translation>
+ <translation>KB/seg</translation>
</message>
<message>
<location filename="src/downloaditem.cpp" line="343"/>
<message>
<location filename="src/downloadmanager.cpp" line="55"/>
<source>This is just the demo version of %1.</source>
- <translation>Esta es sólo la versión demo de %1.</translation>
+ <translation>Esta es la versión de prueba de %1.</translation>
</message>
<message>
<location filename="src/downloadmanager.cpp" line="57"/>
<source>It can only download videos shorter than %1 minutes so you can test the download functionality.</source>
- <translation>Sólo se pueden descargar vídeos más cortos de %1 minutos, así puede probar la funcionalidad de descarga.</translation>
+ <translation>Sólo se pueden descargar vídeos inferiores a %1 minutos. Así podrá probar la funcionalidad de descarga.</translation>
</message>
<message>
<location filename="src/downloadmanager.cpp" line="63"/>
<message>
<location filename="src/downloadsettings.cpp" line="61"/>
<source>Current downloads will still go in the previous location.</source>
- <translation>Las descargan actuales irán a parar a la anterior ubicación.</translation>
+ <translation>Las descargan actuales se guardarán en la ubicación anterior.</translation>
</message>
<message>
<location filename="src/downloadsettings.cpp" line="72"/>
<message>
<location filename="local/src/updatedialog.cpp" line="60"/>
<source>Downloading update...</source>
- <translation type="unfinished"/>
+ <translation>Descargando actualización...</translation>
</message>
</context>
<context>
<message>
<location filename="src/globalshortcuts.cpp" line="19"/>
<source>Stop</source>
- <translation>Parar</translation>
+ <translation>Detener</translation>
</message>
<message>
<location filename="src/globalshortcuts.cpp" line="20"/>
<source>Stop playing after current track</source>
- <translation>Parar reproducción después esta pista</translation>
+ <translation>Detener reproducción después esta pista</translation>
</message>
<message>
<location filename="src/globalshortcuts.cpp" line="21"/>
<message>
<location filename="src/globalshortcuts.cpp" line="26"/>
<source>Seek forward</source>
- <translation>Buscar adelante</translation>
+ <translation>Buscar hacia adelante</translation>
</message>
<message>
<location filename="src/globalshortcuts.cpp" line="27"/>
<source>Seek backward</source>
- <translation>Buscar atrás</translation>
+ <translation>Buscar hacia atrás</translation>
</message>
</context>
<context>
<name>HomeView</name>
<message>
- <location filename="src/homeview.cpp" line="33"/>
+ <location filename="src/homeview.cpp" line="38"/>
<source>Search</source>
<translation>Buscar</translation>
</message>
<message>
- <location filename="src/homeview.cpp" line="35"/>
+ <location filename="src/homeview.cpp" line="40"/>
<source>Find videos and channels by keyword</source>
- <translation type="unfinished"/>
+ <translation>Buscar vídeos y canales mediante palabra clave</translation>
</message>
<message>
- <location filename="src/homeview.cpp" line="40"/>
+ <location filename="src/homeview.cpp" line="45"/>
<source>Browse</source>
- <translation type="unfinished"/>
+ <translation>Examinar</translation>
</message>
<message>
- <location filename="src/homeview.cpp" line="42"/>
+ <location filename="src/homeview.cpp" line="47"/>
<source>Browse videos by category</source>
+ <translation>Examinar vídeos por categoría</translation>
+ </message>
+ <message>
+ <location filename="src/homeview.cpp" line="51"/>
+ <source>Subscriptions</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="src/homeview.cpp" line="53"/>
+ <source>Channel subscriptions</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="src/homeview.h" line="22"/>
<source>Make yourself comfortable</source>
- <translation type="unfinished"/>
+ <translation>Siéntete como en casa</translation>
</message>
</context>
<context>
<name>LoadingWidget</name>
<message>
- <location filename="src/loadingwidget.cpp" line="90"/>
+ <location filename="src/loadingwidget.cpp" line="88"/>
<source>Error</source>
<translation>Error</translation>
</message>
<context>
<name>MainWindow</name>
<message>
- <location filename="src/mainwindow.cpp" line="213"/>
+ <location filename="src/mainwindow.cpp" line="237"/>
<source>&Stop</source>
- <translation>&Parar</translation>
+ <translation>&Detener</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="214"/>
+ <location filename="src/mainwindow.cpp" line="238"/>
<source>Stop playback and go back to the search view</source>
- <translation>Parar reproducción y volver a la vista de búsqueda</translation>
+ <translation>Detener reproducción y volver a la vista de búsqueda</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="232"/>
+ <location filename="src/mainwindow.cpp" line="253"/>
<source>S&kip</source>
<translation>Sa&ltar</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="233"/>
+ <location filename="src/mainwindow.cpp" line="254"/>
<source>Skip to the next video</source>
<translation>Saltar al siguiente vídeo</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="239"/>
- <location filename="src/mainwindow.cpp" line="989"/>
+ <location filename="src/mainwindow.cpp" line="260"/>
+ <location filename="src/mainwindow.cpp" line="1012"/>
<source>&Pause</source>
<translation>&Pausar</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="240"/>
- <location filename="src/mainwindow.cpp" line="990"/>
+ <location filename="src/mainwindow.cpp" line="261"/>
+ <location filename="src/mainwindow.cpp" line="1013"/>
<source>Pause playback</source>
<translation>Pausar reproducción</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="246"/>
+ <location filename="src/mainwindow.cpp" line="267"/>
<source>&Full Screen</source>
<translation>&Pantalla completa</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="247"/>
+ <location filename="src/mainwindow.cpp" line="268"/>
<source>Go full screen</source>
<translation>Ir a pantalla completa</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="263"/>
+ <location filename="src/mainwindow.cpp" line="282"/>
<source>Hide the playlist and the toolbar</source>
<translation>Ocultar la lista de reproducción y la barra de herramientas</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="276"/>
+ <location filename="src/mainwindow.cpp" line="295"/>
<source>Go to the YouTube video page and pause playback</source>
<translation>Ir a la página del vídeo en YouTube y pausar la reproducción</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="283"/>
+ <location filename="src/mainwindow.cpp" line="302"/>
<source>Copy the current video YouTube link to the clipboard</source>
<translation>Copiar al portapapeles el enlace del vídeo de YouTube actual </translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="290"/>
+ <location filename="src/mainwindow.cpp" line="309"/>
<source>Copy the current video stream URL to the clipboard</source>
- <translation>Copiar al portapapeles la &URL del stream de vídeo actual</translation>
+ <translation>Copiar al portapapeles la &URL del flujo de vídeo actual</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="297"/>
+ <location filename="src/mainwindow.cpp" line="316"/>
<source>Find other video parts hopefully in the right order</source>
- <translation>Encontrar otras partes de video, con suerte, en el orden correcto</translation>
+ <translation>Buscar otras partes del vídeo, con suerte, en el orden correcto</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="303"/>
+ <location filename="src/mainwindow.cpp" line="322"/>
<source>&Remove</source>
<translation>Elimina&r</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="304"/>
+ <location filename="src/mainwindow.cpp" line="323"/>
<source>Remove the selected videos from the playlist</source>
<translation>Eliminar los vídeos seleccionados de la lista de reproducción </translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="310"/>
+ <location filename="src/mainwindow.cpp" line="329"/>
<source>Move &Up</source>
<translation>S&ubir</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="311"/>
+ <location filename="src/mainwindow.cpp" line="330"/>
<source>Move up the selected videos in the playlist</source>
<translation>Subir en la lista de reproducción los vídeos seleccionados</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="317"/>
+ <location filename="src/mainwindow.cpp" line="336"/>
<source>Move &Down</source>
<translation>&Bajar</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="318"/>
+ <location filename="src/mainwindow.cpp" line="337"/>
<source>Move down the selected videos in the playlist</source>
<translation>Bajar en la lista de reproducción los vídeos seleccionados</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="329"/>
+ <location filename="src/mainwindow.cpp" line="348"/>
<source>Clear the search history. Cannot be undone.</source>
<translation>Limpiar el historial de búsquedas. Esta acción no puede deshacerse.</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="334"/>
+ <location filename="src/mainwindow.cpp" line="353"/>
<source>&Quit</source>
<translation>&Salir</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="337"/>
+ <location filename="src/mainwindow.cpp" line="356"/>
<source>Bye</source>
<translation>Adiós</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="341"/>
+ <location filename="src/mainwindow.cpp" line="360"/>
<source>&Website</source>
<translation>Sitio &Web</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="343"/>
+ <location filename="src/mainwindow.cpp" line="362"/>
<source>%1 on the Web</source>
<translation>%1 en la Web</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="349"/>
+ <location filename="src/mainwindow.cpp" line="368"/>
<source>Please support the continued development of %1</source>
- <translation>Por favor, apoye el continuo desarrollo de %1</translation>
+ <translation>Apoye el desarrollo continuo de %1</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="354"/>
+ <location filename="src/mainwindow.cpp" line="373"/>
<source>&About</source>
- <translation>&Acerca de</translation>
+ <translation>&Acerca de...</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="356"/>
+ <location filename="src/mainwindow.cpp" line="375"/>
<source>Info about %1</source>
- <translation>Información sobre %1</translation>
+ <translation>Información acerca de %1</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="364"/>
+ <location filename="src/mainwindow.cpp" line="383"/>
<source>Search</source>
- <translation>Búsqueda</translation>
+ <translation>Buscar</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="383"/>
+ <location filename="src/mainwindow.cpp" line="402"/>
<source>Mute volume</source>
<translation>Silenciar volumen</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="412"/>
- <location filename="src/mainwindow.cpp" line="1365"/>
+ <location filename="src/mainwindow.cpp" line="431"/>
+ <location filename="src/mainwindow.cpp" line="1406"/>
<source>&Downloads</source>
<translation>&Descargas</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="413"/>
+ <location filename="src/mainwindow.cpp" line="432"/>
<source>Show details about video downloads</source>
- <translation>Muestra detalles sobre las descargas de vídeos</translation>
+ <translation>Mostrar detalles sobre las descargas de vídeos</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="421"/>
+ <location filename="src/mainwindow.cpp" line="440"/>
<source>&Download</source>
<translation>&Descargar</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="422"/>
+ <location filename="src/mainwindow.cpp" line="441"/>
<source>Download the current video</source>
- <translation>Descarga el vídeo actual</translation>
+ <translation>Descargar el vídeo actual</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="441"/>
+ <location filename="src/mainwindow.cpp" line="458"/>
+ <source>&Subscribe to Channel</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="src/mainwindow.cpp" line="465"/>
<source>Share the current video using %1</source>
<translation>Compartir el vídeo actual usando %1</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="458"/>
+ <location filename="src/mainwindow.cpp" line="482"/>
<source>&Email</source>
<translation>&Correo electrónico</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="459"/>
+ <location filename="src/mainwindow.cpp" line="483"/>
<source>Email</source>
<translation>Correo electrónico</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="463"/>
+ <location filename="src/mainwindow.cpp" line="487"/>
<source>&Close</source>
<translation>&Cerrar</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="473"/>
+ <location filename="src/mainwindow.cpp" line="497"/>
<source>&Float on Top</source>
<translation>&Siempre Visible</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="478"/>
+ <location filename="src/mainwindow.cpp" line="502"/>
<source>&Stop After This Video</source>
- <translation>&Pausar Después De Este Video</translation>
+ <translation>&Detener después de este vídeo</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="485"/>
+ <location filename="src/mainwindow.cpp" line="509"/>
<source>&Report an Issue...</source>
- <translation>&Reporte un inconveniente...</translation>
+ <translation>&Informar de un problema...</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="489"/>
+ <location filename="src/mainwindow.cpp" line="513"/>
<source>&Refine Search...</source>
- <translation>&Refinar Búsqueda...</translation>
+ <translation>&Refinar búsqueda...</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="501"/>
+ <location filename="src/mainwindow.cpp" line="525"/>
<source>More...</source>
- <translation type="unfinished"/>
+ <translation>Más...</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="504"/>
+ <location filename="src/mainwindow.cpp" line="528"/>
<source>&Related Videos</source>
- <translation type="unfinished"/>
+ <translation>Vídeos &relacionados</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="506"/>
+ <location filename="src/mainwindow.cpp" line="530"/>
<source>Watch videos related to the current one</source>
- <translation type="unfinished"/>
+ <translation>Ver vídeos relacionados con el actual</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="544"/>
+ <location filename="src/mainwindow.cpp" line="553"/>
<source>&Application</source>
<translation>&Aplicación</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="515"/>
+ <location filename="src/mainwindow.cpp" line="537"/>
<source>Buy %1...</source>
<translation>Comprar %1...</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="558"/>
+ <location filename="src/mainwindow.cpp" line="567"/>
<source>&Playback</source>
<translation>&Reproducción</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="572"/>
+ <location filename="src/mainwindow.cpp" line="581"/>
<source>&Playlist</source>
<translation>Lista de Re&producción</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="581"/>
+ <location filename="src/mainwindow.cpp" line="590"/>
<source>&Video</source>
<translation>&Vídeo</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="594"/>
+ <location filename="src/mainwindow.cpp" line="605"/>
<source>&View</source>
<translation>&Ver</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="601"/>
+ <location filename="src/mainwindow.cpp" line="612"/>
<source>&Share</source>
<translation>Com&partir</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="615"/>
+ <location filename="src/mainwindow.cpp" line="626"/>
<source>&Help</source>
<translation>&Ayuda</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="690"/>
+ <location filename="src/mainwindow.cpp" line="701"/>
<source>Press %1 to raise the volume, %2 to lower it</source>
- <translation>Presiona %1 para subir el volumen, %2 para bajarlo</translation>
+ <translation>Pulse %1 para subir el volumen y %2 para bajarlo</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="889"/>
- <location filename="src/mainwindow.cpp" line="895"/>
+ <location filename="src/mainwindow.cpp" line="910"/>
+ <location filename="src/mainwindow.cpp" line="916"/>
<source>Opening %1</source>
<translation>Abriendo %1</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="936"/>
+ <location filename="src/mainwindow.cpp" line="959"/>
<source>Do you want to exit %1 with a download in progress?</source>
<translation>¿Deseas salir de %1 con una descarga activa?</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="937"/>
+ <location filename="src/mainwindow.cpp" line="960"/>
<source>If you close %1 now, this download will be cancelled.</source>
<translation>Si cierras %1, esta descarga se cancelará.</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="942"/>
+ <location filename="src/mainwindow.cpp" line="965"/>
<source>Close and cancel download</source>
<translation>Cerrar y cancelar la descarga</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="943"/>
+ <location filename="src/mainwindow.cpp" line="966"/>
<source>Wait for download to finish</source>
<translation>Esperar la finalización de la descarga</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="1102"/>
+ <location filename="src/mainwindow.cpp" line="1125"/>
<source>Leave &Full Screen</source>
<translation>Salir de pan&talla completa</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="1475"/>
+ <location filename="src/mainwindow.cpp" line="1515"/>
<source>%1 version %2 is now available.</source>
- <translation>%1 versión %2 ya está disponible.</translation>
+ <translation>La versión %2 de %1 ya está disponible.</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="1479"/>
+ <location filename="src/mainwindow.cpp" line="1519"/>
<source>Remind me later</source>
<translation>Recordarme después</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="1480"/>
+ <location filename="src/mainwindow.cpp" line="1520"/>
<source>Update</source>
<translation>Actualizar</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="982"/>
+ <location filename="src/mainwindow.cpp" line="1005"/>
<source>Error: %1</source>
<translation>Error: %1</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="222"/>
+ <location filename="src/mainwindow.cpp" line="246"/>
<source>P&revious</source>
- <translation>P&revio</translation>
+ <translation>Ante&rior</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="223"/>
+ <location filename="src/mainwindow.cpp" line="247"/>
<source>Go back to the previous track</source>
<translation>Vuelve a la vista anterior</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="262"/>
+ <location filename="src/mainwindow.cpp" line="281"/>
<source>&Compact Mode</source>
- <translation>&Modo Compacto</translation>
+ <translation>Modo &compacto</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="275"/>
+ <location filename="src/mainwindow.cpp" line="294"/>
<source>Open the &YouTube Page</source>
<translation>Abrir la página de &YouTube</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="282"/>
+ <location filename="src/mainwindow.cpp" line="301"/>
<source>Copy the YouTube &Link</source>
<translation>Copiar el &enlace de YouTube</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="289"/>
+ <location filename="src/mainwindow.cpp" line="308"/>
<source>Copy the Video Stream &URL</source>
- <translation>Copiar Video En Línea &URL</translation>
+ <translation>Copiar &URL del flujo de vídeo</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="296"/>
+ <location filename="src/mainwindow.cpp" line="315"/>
<source>Find Video &Parts</source>
- <translation>Encontrar Videos &Partes</translation>
+ <translation>Buscar &partes del vídeo</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="324"/>
+ <location filename="src/mainwindow.cpp" line="343"/>
<source>&Clear Recent Searches</source>
<translation>&Limpiar búsquedas recientes</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="348"/>
+ <location filename="src/mainwindow.cpp" line="367"/>
<source>Make a &Donation</source>
<translation>Hacer una &donación</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="405"/>
+ <location filename="src/mainwindow.cpp" line="424"/>
<source>&Manually Start Playing</source>
- <translation>&Iniciar Reproducción Manual</translation>
+ <translation>&Iniciar reproducción manual</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="406"/>
+ <location filename="src/mainwindow.cpp" line="425"/>
<source>Manually start playing videos</source>
- <translation>Empezar a reproducir videos manualmente</translation>
+ <translation>Empezar a reproducir vídeos manualmente</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="728"/>
+ <location filename="src/mainwindow.cpp" line="739"/>
<source>Choose your content location</source>
- <translation type="unfinished"/>
+ <translation>Elegir la ubicación del contenido</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="1002"/>
+ <location filename="src/mainwindow.cpp" line="1025"/>
<source>&Play</source>
<translation>Re&producir</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="1003"/>
+ <location filename="src/mainwindow.cpp" line="1026"/>
<source>Resume playback</source>
- <translation>Reiniciar la reproducción</translation>
+ <translation>Reanudar la reproducción</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="1236"/>
+ <location filename="src/mainwindow.cpp" line="1277"/>
<source>Remaining time: %1</source>
<translation>Tiempo restante: %1</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="1294"/>
+ <location filename="src/mainwindow.cpp" line="1335"/>
<source>Volume at %1%</source>
<translation>Volumen al %1%</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="1300"/>
+ <location filename="src/mainwindow.cpp" line="1341"/>
<source>Volume is muted</source>
- <translation>El volumen está desactivado</translation>
+ <translation>El volumen está silenciado</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="1303"/>
+ <location filename="src/mainwindow.cpp" line="1344"/>
<source>Volume is unmuted</source>
- <translation>El volumen está activado</translation>
+ <translation>El volumen no está silenciado</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="1310"/>
+ <location filename="src/mainwindow.cpp" line="1351"/>
<source>Maximum video definition set to %1</source>
- <translation>Definición Máxima de Video es %1</translation>
+ <translation>La definición máxima de vídeo es %1</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="1351"/>
+ <location filename="src/mainwindow.cpp" line="1392"/>
<source>Your privacy is now safe</source>
<translation>Su privacidad ahora es segura</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="1366"/>
+ <location filename="src/mainwindow.cpp" line="1407"/>
<source>Downloads complete</source>
<translation>Descargas completadas</translation>
</message>
<context>
<name>MediaView</name>
<message>
- <location filename="src/mediaview.cpp" line="553"/>
+ <location filename="src/mediaview.cpp" line="563"/>
<source>You can now paste the YouTube link into another application</source>
<translation>Ahora puedes pegar el enlace de Youtube en otra aplicación</translation>
</message>
<message>
- <location filename="src/mediaview.cpp" line="561"/>
+ <location filename="src/mediaview.cpp" line="571"/>
<source>You can now paste the video stream URL into another application</source>
- <translation>Ahora puedes pegar la URL del stream de vídeo en otra aplicación</translation>
+ <translation>Ahora puedes pegar la URL del flujo de vídeo en otra aplicación</translation>
</message>
<message>
- <location filename="src/mediaview.cpp" line="562"/>
+ <location filename="src/mediaview.cpp" line="572"/>
<source>The link will be valid only for a limited time.</source>
- <translation>EL enlace será válido sólo por un plazo de tiempo limitado.</translation>
+ <translation>El enlace será válido sólo por un plazo de tiempo limitado.</translation>
</message>
<message>
- <location filename="src/mediaview.cpp" line="636"/>
+ <location filename="src/mediaview.cpp" line="650"/>
<source>This is just the demo version of %1.</source>
- <translation>Esta es sólo la versión de demo de %1.</translation>
+ <translation>Esta es la versión de prueba de %1.</translation>
</message>
<message>
- <location filename="src/mediaview.cpp" line="637"/>
+ <location filename="src/mediaview.cpp" line="651"/>
<source>It allows you to test the application and see if it works for you.</source>
- <translation>Le premite probar la aplicación y ver si le funciona.</translation>
+ <translation>Esta versión le permite probar la aplicación y ver si le sirve.</translation>
</message>
<message>
- <location filename="src/mediaview.cpp" line="667"/>
+ <location filename="src/mediaview.cpp" line="681"/>
<source>Continue</source>
<translation>Continuar</translation>
</message>
<message>
- <location filename="src/mediaview.cpp" line="756"/>
+ <location filename="src/mediaview.cpp" line="772"/>
<source>of</source>
<comment>Used in video parts, as in '2 of 3'</comment>
<translation>de</translation>
</message>
<message>
- <location filename="src/mediaview.cpp" line="768"/>
+ <location filename="src/mediaview.cpp" line="785"/>
<source>part</source>
<comment>This is for video parts, as in 'Cool video - part 1'</comment>
<translation>parte</translation>
</message>
<message>
- <location filename="src/mediaview.cpp" line="770"/>
+ <location filename="src/mediaview.cpp" line="787"/>
<source>episode</source>
<comment>This is for video parts, as in 'Cool series - episode 1'</comment>
- <translation>episodio</translation>
+ <translation>capítulo</translation>
</message>
<message>
- <location filename="src/mediaview.cpp" line="847"/>
+ <location filename="src/mediaview.cpp" line="868"/>
<source>Sent from %1</source>
<translation>Enviado desde %1</translation>
</message>
<message>
- <location filename="src/mediaview.cpp" line="644"/>
+ <location filename="src/mediaview.cpp" line="899"/>
+ <source>Unsubscribe from %1</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="src/mediaview.cpp" line="903"/>
+ <source>Subscribe to %1</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="src/mediaview.cpp" line="658"/>
<source>Get the full version</source>
<translation>Obtener la versión completa</translation>
</message>
<message>
- <location filename="src/mediaview.cpp" line="681"/>
+ <location filename="src/mediaview.cpp" line="695"/>
<source>Downloading %1</source>
- <translation>Descargand %1</translation>
+ <translation>Descargando %1</translation>
</message>
</context>
<context>
<message>
<location filename="local/src/updatedialog.cpp" line="21"/>
<source>A new version of %1 is available!</source>
- <translation type="unfinished"/>
+ <translation>¡Una nueva versión de %1 ya está disponible!</translation>
</message>
<message>
<location filename="local/src/updatedialog.cpp" line="28"/>
<source>%1 %2 is now available. You have %3.</source>
- <translation type="unfinished"/>
+ <translation>%1 %2 ya está disponible. Tienes la %3.</translation>
</message>
<message>
<location filename="local/src/updatedialog.cpp" line="33"/>
<source>Would you like to download it now?</source>
- <translation type="unfinished"/>
+ <translation>¿Deseas descargarla ahora?</translation>
</message>
<message>
<location filename="local/src/updatedialog.cpp" line="39"/>
<source>Skip This Version</source>
- <translation type="unfinished"/>
+ <translation>Saltar esta versión</translation>
</message>
<message>
<location filename="local/src/updatedialog.cpp" line="43"/>
<source>Remind Me Later</source>
- <translation type="unfinished"/>
+ <translation>Recordarme después</translation>
</message>
<message>
<location filename="local/src/updatedialog.cpp" line="47"/>
<source>Install Update</source>
- <translation type="unfinished"/>
+ <translation>Instalar actualización</translation>
</message>
</context>
<context>
<message>
<location filename="local/src/pastelineedit.cpp" line="6"/>
<source>Paste</source>
- <translation type="unfinished"/>
+ <translation>Pegar</translation>
</message>
</context>
<context>
<name>PlaylistItemDelegate</name>
<message>
- <location filename="src/playlistitemdelegate.cpp" line="159"/>
+ <location filename="src/playlistitemdelegate.cpp" line="177"/>
<source>%1 views</source>
<translation>%1 vistas</translation>
</message>
<message>
- <location filename="src/playlistitemdelegate.cpp" line="285"/>
+ <location filename="src/playlistitemdelegate.cpp" line="292"/>
<source>%1 of %2 (%3) — %4</source>
- <translation type="unfinished"/>
+ <translation>%1 de %2 (%3) — %4</translation>
</message>
<message>
- <location filename="src/playlistitemdelegate.cpp" line="292"/>
+ <location filename="src/playlistitemdelegate.cpp" line="299"/>
<source>Preparing</source>
- <translation type="unfinished"/>
+ <translation>Preparando</translation>
</message>
<message>
- <location filename="src/playlistitemdelegate.cpp" line="294"/>
+ <location filename="src/playlistitemdelegate.cpp" line="301"/>
<source>Failed</source>
- <translation type="unfinished"/>
+ <translation>Falló</translation>
</message>
<message>
- <location filename="src/playlistitemdelegate.cpp" line="296"/>
+ <location filename="src/playlistitemdelegate.cpp" line="303"/>
<source>Completed</source>
- <translation type="unfinished"/>
+ <translation>Completo</translation>
</message>
<message>
- <location filename="src/playlistitemdelegate.cpp" line="298"/>
+ <location filename="src/playlistitemdelegate.cpp" line="305"/>
<source>Stopped</source>
- <translation type="unfinished"/>
+ <translation>Detenido</translation>
</message>
<message>
- <location filename="src/playlistitemdelegate.cpp" line="334"/>
+ <location filename="src/playlistitemdelegate.cpp" line="341"/>
<source>Stop downloading</source>
- <translation type="unfinished"/>
+ <translation>Detener descarga</translation>
</message>
<message>
- <location filename="src/playlistitemdelegate.cpp" line="344"/>
+ <location filename="src/playlistitemdelegate.cpp" line="351"/>
<source>Show in %1</source>
- <translation type="unfinished"/>
+ <translation>Mostrar en %1</translation>
</message>
<message>
- <location filename="src/playlistitemdelegate.cpp" line="346"/>
+ <location filename="src/playlistitemdelegate.cpp" line="353"/>
<source>Open parent folder</source>
- <translation type="unfinished"/>
+ <translation>Abrir carpeta raíz</translation>
</message>
<message>
- <location filename="src/playlistitemdelegate.cpp" line="355"/>
+ <location filename="src/playlistitemdelegate.cpp" line="362"/>
<source>Restart downloading</source>
- <translation type="unfinished"/>
+ <translation>Reiniciar descarga</translation>
</message>
</context>
<context>
<message>
<location filename="src/playlistmodel.cpp" line="53"/>
<source>Show %1 More</source>
- <translation type="unfinished"/>
+ <translation>Mostrar %1 más</translation>
</message>
<message>
<location filename="src/playlistmodel.cpp" line="54"/>
<message>
<location filename="src/playlistmodel.cpp" line="55"/>
<source>No more videos</source>
- <translation type="unfinished"/>
+ <translation>No hay más vídeos</translation>
</message>
</context>
<context>
<message>
<location filename="src/refinesearchwidget.cpp" line="31"/>
<source>Sort by</source>
- <translation>Sortear por</translation>
+ <translation>Ordenar por</translation>
</message>
<message>
<location filename="src/refinesearchwidget.cpp" line="35"/>
<message>
<location filename="src/refinesearchwidget.cpp" line="38"/>
<source>Rating</source>
- <translation>Calificación</translation>
+ <translation>Valoraciones</translation>
</message>
<message>
<location filename="src/refinesearchwidget.cpp" line="56"/>
<message>
<location filename="src/refinesearchwidget.cpp" line="58"/>
<source>7 Days</source>
- <translation>7 Días</translation>
+ <translation>7 días</translation>
</message>
<message>
<location filename="src/refinesearchwidget.cpp" line="59"/>
<source>30 Days</source>
- <translation>30 Días</translation>
+ <translation>30 días</translation>
</message>
<message>
<location filename="src/refinesearchwidget.cpp" line="73"/>
<message>
<location filename="src/refinesearchwidget.cpp" line="83"/>
<source>Less than 4 minutes</source>
- <translation>Menor que 4 minutos</translation>
+ <translation>Inferior a 4 minutos</translation>
</message>
<message>
<location filename="src/refinesearchwidget.cpp" line="84"/>
<message>
<location filename="src/refinesearchwidget.cpp" line="85"/>
<source>Longer than 20 minutes</source>
- <translation>Mayor que 20 minutos</translation>
+ <translation>Superior a 20 minutos</translation>
</message>
<message>
<location filename="src/refinesearchwidget.cpp" line="100"/>
<message>
<location filename="src/refinesearchwidget.cpp" line="105"/>
<source>High Definition</source>
- <translation>Alta Definición</translation>
+ <translation>Alta definición</translation>
</message>
<message>
<location filename="src/refinesearchwidget.cpp" line="108"/>
<message>
<location filename="src/regionsview.cpp" line="19"/>
<source>Done</source>
- <translation type="unfinished"/>
+ <translation>Finalizado</translation>
</message>
</context>
<context>
<context>
<name>SearchView</name>
<message>
- <location filename="src/searchview.cpp" line="71"/>
+ <location filename="src/searchview.cpp" line="66"/>
<source>Welcome to <a href='%1'>%2</a>,</source>
- <translation>Bienvenido/a a <a href='%1'>%2</a>,</translation>
+ <translation>Bienvenidos a <a href='%1'>%2</a>,</translation>
</message>
<message>
- <location filename="src/searchview.cpp" line="50"/>
+ <location filename="src/searchview.cpp" line="161"/>
<source>Get the full version</source>
<translation>Obtener la versión completa</translation>
</message>
<message>
- <location filename="src/searchview.cpp" line="85"/>
+ <location filename="src/searchview.cpp" line="80"/>
<source>Enter</source>
<extracomment>"Enter", as in "type". The whole phrase says: "Enter a keyword to start watching videos"</extracomment>
<translation>Introducir</translation>
</message>
<message>
- <location filename="src/searchview.cpp" line="90"/>
+ <location filename="src/searchview.cpp" line="85"/>
<source>a keyword</source>
<translation>una palabra clave</translation>
</message>
<message>
- <location filename="src/searchview.cpp" line="91"/>
+ <location filename="src/searchview.cpp" line="86"/>
<source>a channel</source>
<translation>un canal</translation>
</message>
<message>
- <location filename="src/searchview.cpp" line="96"/>
+ <location filename="src/searchview.cpp" line="91"/>
<source>to start watching videos.</source>
- <translation>empezar a ver vídeos</translation>
+ <translation>para empezar a ver vídeos</translation>
</message>
<message>
- <location filename="src/searchview.cpp" line="120"/>
+ <location filename="src/searchview.cpp" line="115"/>
<source>Watch</source>
<translation>Ver</translation>
</message>
<message>
- <location filename="src/searchview.cpp" line="138"/>
+ <location filename="src/searchview.cpp" line="133"/>
<source>Recent keywords</source>
<translation>Palabras clave recientes</translation>
</message>
<message>
- <location filename="src/searchview.cpp" line="151"/>
+ <location filename="src/searchview.cpp" line="146"/>
<source>Recent channels</source>
<translation>Canales recientes</translation>
</message>
<context>
<name>SidebarHeader</name>
<message>
- <location filename="src/sidebarheader.cpp" line="16"/>
- <location filename="src/sidebarheader.cpp" line="23"/>
+ <location filename="src/sidebarheader.cpp" line="19"/>
+ <location filename="src/sidebarheader.cpp" line="26"/>
<source>&Back</source>
<translation>&Volver</translation>
</message>
<message>
<location filename="src/sidebarheader.cpp" line="57"/>
<source>Forward to %1</source>
- <translation type="unfinished"/>
+ <translation>Hacia adelante %1</translation>
</message>
<message>
<location filename="src/sidebarheader.cpp" line="70"/>
<source>Back to %1</source>
- <translation type="unfinished"/>
+ <translation>Hacia atrás %1</translation>
</message>
</context>
<context>
<message>
<location filename="src/sidebarwidget.cpp" line="52"/>
<source>Refine Search</source>
- <translation>Refinar Búsqueda</translation>
+ <translation>Refinar búsqueda</translation>
</message>
<message>
<location filename="src/sidebarwidget.cpp" line="148"/>
<message>
<location filename="src/standardfeedsview.cpp" line="85"/>
<source>Most Popular</source>
- <translation type="unfinished"/>
- </message>
- <message>
- <location filename="src/standardfeedsview.cpp" line="86"/>
- <source>Featured</source>
- <translation type="unfinished"/>
+ <translation>Más popular</translation>
</message>
<message>
<location filename="src/standardfeedsview.cpp" line="87"/>
<source>Most Shared</source>
- <translation type="unfinished"/>
+ <translation>Más compartidos</translation>
</message>
<message>
<location filename="src/standardfeedsview.cpp" line="88"/>
<source>Most Discussed</source>
- <translation type="unfinished"/>
+ <translation>Más comentados</translation>
</message>
<message>
<location filename="src/standardfeedsview.cpp" line="89"/>
<source>Top Rated</source>
+ <translation>Mejor valorados</translation>
+ </message>
+ <message>
+ <location filename="src/standardfeedsview.cpp" line="90"/>
+ <source>All Time Popular</source>
<translation type="unfinished"/>
</message>
</context>
<context>
<name>Video</name>
<message>
- <location filename="src/video.cpp" line="213"/>
+ <location filename="src/video.cpp" line="215"/>
<source>Cannot get video stream for %1</source>
<translation>No se puede obtener el flujo de vídeo para %1</translation>
</message>
<message>
- <location filename="src/video.cpp" line="231"/>
+ <location filename="src/video.cpp" line="233"/>
<source>Network error: %1 for %2</source>
<translation>Error de red: %1 por %2 </translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="8"/>
<source>Algeria</source>
- <translation type="unfinished"/>
+ <translation>Algeria</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="9"/>
<source>Argentina</source>
- <translation type="unfinished"/>
+ <translation>Argentina</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="10"/>
<source>Australia</source>
- <translation type="unfinished"/>
+ <translation>Australia</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="11"/>
<source>Belgium</source>
- <translation type="unfinished"/>
+ <translation>Bélgica</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="12"/>
<source>Brazil</source>
- <translation type="unfinished"/>
+ <translation>Brasil</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="13"/>
<source>Canada</source>
- <translation type="unfinished"/>
+ <translation>Canadá</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="14"/>
<source>Chile</source>
- <translation type="unfinished"/>
+ <translation>Chile</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="15"/>
<source>Colombia</source>
- <translation type="unfinished"/>
+ <translation>Colombia</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="16"/>
<source>Czech Republic</source>
- <translation type="unfinished"/>
+ <translation>República Checa</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="17"/>
<source>Egypt</source>
- <translation type="unfinished"/>
+ <translation>Egipto</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="18"/>
<source>France</source>
- <translation type="unfinished"/>
+ <translation>Francia</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="19"/>
<source>Germany</source>
- <translation type="unfinished"/>
+ <translation>Alemania</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="20"/>
<source>Ghana</source>
- <translation type="unfinished"/>
+ <translation>Ghana</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="21"/>
<source>Greece</source>
- <translation type="unfinished"/>
+ <translation>Grecia</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="22"/>
<source>Hong Kong</source>
- <translation type="unfinished"/>
+ <translation>Hong Kong</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="23"/>
<source>Hungary</source>
- <translation type="unfinished"/>
+ <translation>Hungría</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="24"/>
<source>India</source>
- <translation type="unfinished"/>
+ <translation>India</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="25"/>
<source>Indonesia</source>
- <translation type="unfinished"/>
+ <translation>Indonesia</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="26"/>
<source>Ireland</source>
- <translation type="unfinished"/>
+ <translation>Irlanda</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="27"/>
<source>Israel</source>
- <translation type="unfinished"/>
+ <translation>Israel</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="28"/>
<source>Italy</source>
- <translation type="unfinished"/>
+ <translation>Italia</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="29"/>
<source>Japan</source>
- <translation type="unfinished"/>
+ <translation>Japón</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="30"/>
<source>Jordan</source>
- <translation type="unfinished"/>
+ <translation>Jordania</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="31"/>
<source>Kenya</source>
- <translation type="unfinished"/>
+ <translation>Kenia</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="32"/>
<source>Malaysia</source>
- <translation type="unfinished"/>
+ <translation>Malasia</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="33"/>
<source>Mexico</source>
- <translation type="unfinished"/>
+ <translation>México</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="34"/>
<source>Morocco</source>
- <translation type="unfinished"/>
+ <translation>Marruecos</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="35"/>
<source>Netherlands</source>
- <translation type="unfinished"/>
+ <translation>Países Bajos</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="36"/>
<source>New Zealand</source>
- <translation type="unfinished"/>
+ <translation>Nueva Zelanda</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="37"/>
<source>Nigeria</source>
- <translation type="unfinished"/>
+ <translation>Nigeria</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="38"/>
<source>Peru</source>
- <translation type="unfinished"/>
+ <translation>Perú</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="39"/>
<source>Philippines</source>
- <translation type="unfinished"/>
+ <translation>Filipinas</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="40"/>
<source>Poland</source>
- <translation type="unfinished"/>
+ <translation>Polonia</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="41"/>
<source>Russia</source>
- <translation type="unfinished"/>
+ <translation>Rusia</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="42"/>
<source>Saudi Arabia</source>
- <translation type="unfinished"/>
+ <translation>Arabia Saudí</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="43"/>
<source>Singapore</source>
- <translation type="unfinished"/>
+ <translation>Singapur</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="44"/>
<source>South Africa</source>
- <translation type="unfinished"/>
+ <translation>Sudáfrica</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="45"/>
<source>South Korea</source>
- <translation type="unfinished"/>
+ <translation>Corea del Sur</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="46"/>
<source>Spain</source>
- <translation type="unfinished"/>
+ <translation>España</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="47"/>
<source>Sweden</source>
- <translation type="unfinished"/>
+ <translation>Suecia</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="48"/>
<source>Taiwan</source>
- <translation type="unfinished"/>
+ <translation>Taiwán</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="49"/>
<source>Tunisia</source>
- <translation type="unfinished"/>
+ <translation>Túnez</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="50"/>
<source>Turkey</source>
- <translation type="unfinished"/>
+ <translation>Turquía</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="51"/>
<source>Uganda</source>
- <translation type="unfinished"/>
+ <translation>Uganda</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="52"/>
<source>United Arab Emirates</source>
- <translation type="unfinished"/>
+ <translation>Emiratos Árabes Unidos</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="53"/>
<source>United Kingdom</source>
- <translation type="unfinished"/>
+ <translation>Reino Unido</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="54"/>
<source>Yemen</source>
- <translation type="unfinished"/>
+ <translation>Yemen</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="128"/>
<source>Worldwide</source>
- <translation type="unfinished"/>
+ <translation>Mundial</translation>
</message>
</context>
</TS>
\ No newline at end of file
<message>
<location filename="src/aboutview.cpp" line="38"/>
<source>Licensed to: %1</source>
- <translation type="unfinished"/>
+ <translation>Lisensoitu henkilölle: %1</translation>
</message>
<message>
<location filename="src/aboutview.cpp" line="42"/>
<message>
<location filename="local/src/activationdialog.cpp" line="17"/>
<source>Enter your License Details</source>
- <translation type="unfinished"/>
+ <translation>Syötä tähän lisenssitietosi</translation>
</message>
<message>
<location filename="local/src/activationdialog.cpp" line="29"/>
<message>
<location filename="local/src/activationview.cpp" line="47"/>
<source>Please license %1</source>
- <translation>Lisensoi %1</translation>
+ <translation>Lisensioi %1.</translation>
</message>
<message>
<location filename="local/src/activationview.cpp" line="51"/>
<source>This demo has expired.</source>
- <translation>Tämä koekäyttöversio on vanhentunut.</translation>
+ <translation>Tämä demon kokeiluaika on päättynyt.</translation>
</message>
<message>
<location filename="local/src/activationview.cpp" line="53"/>
<message>
<location filename="local/src/activationview.cpp" line="55"/>
<source>Without a license, the application will expire in %1 days.</source>
- <translation type="unfinished"/>
+ <translation>Ilman lisenssiä tämä sovellus vanhenee %1 päivässä.</translation>
</message>
<message>
<location filename="local/src/activationview.cpp" line="57"/>
<translation>Osta lisenssi</translation>
</message>
</context>
+<context>
+ <name>ChannelAggregator</name>
+ <message>
+ <location filename="src/channelaggregator.cpp" line="110"/>
+ <source>By %1</source>
+ <translation>Tekijältä %1</translation>
+ </message>
+ <message numerus="yes">
+ <location filename="src/channelaggregator.cpp" line="112"/>
+ <source>You have %n new video(s)</source>
+ <translation type="unfinished"><numerusform></numerusform><numerusform></numerusform></translation>
+ </message>
+</context>
+<context>
+ <name>ChannelItemDelegate</name>
+ <message>
+ <location filename="src/channelitemdelegate.cpp" line="46"/>
+ <source>All Videos</source>
+ <translation>Kaikki videot</translation>
+ </message>
+ <message>
+ <location filename="src/channelitemdelegate.cpp" line="63"/>
+ <source>Unwatched Videos</source>
+ <translation>Katsomattomat videot</translation>
+ </message>
+</context>
+<context>
+ <name>ChannelView</name>
+ <message>
+ <location filename="src/channelview.cpp" line="75"/>
+ <source>Mark all as watched</source>
+ <translation>Merkitse kaikki katsotuiksi</translation>
+ </message>
+ <message>
+ <location filename="src/channelview.cpp" line="83"/>
+ <source>Show Updated</source>
+ <translation>Näytä päivitetyt</translation>
+ </message>
+ <message>
+ <location filename="src/channelview.cpp" line="95"/>
+ <source>Name</source>
+ <translation>Nimi</translation>
+ </message>
+ <message>
+ <location filename="src/channelview.cpp" line="102"/>
+ <source>Last Updated</source>
+ <translation>Viimeksi päivitetyt</translation>
+ </message>
+ <message>
+ <location filename="src/channelview.cpp" line="109"/>
+ <source>Last Added</source>
+ <translation>Viimeksi lisätyt</translation>
+ </message>
+ <message>
+ <location filename="src/channelview.cpp" line="116"/>
+ <source>Last Watched</source>
+ <translation>Viimeksi katsotut</translation>
+ </message>
+ <message>
+ <location filename="src/channelview.cpp" line="123"/>
+ <source>Most Watched</source>
+ <translation>Katsotuimmat</translation>
+ </message>
+ <message>
+ <location filename="src/channelview.cpp" line="131"/>
+ <source>Sort by</source>
+ <translation>Järjestysperuste</translation>
+ </message>
+ <message>
+ <location filename="src/channelview.cpp" line="190"/>
+ <source>All Videos</source>
+ <translation>Kaikki videot</translation>
+ </message>
+ <message>
+ <location filename="src/channelview.cpp" line="194"/>
+ <source>Unwatched Videos</source>
+ <translation>Katsomattomat videot</translation>
+ </message>
+ <message>
+ <location filename="src/channelview.cpp" line="206"/>
+ <source>There are no updated subscriptions at this time.</source>
+ <translation>Päivitettyjä tilauksia ei ole tällä hetkellä.</translation>
+ </message>
+ <message>
+ <location filename="src/channelview.cpp" line="208"/>
+ <source>You have no subscriptions. Use the star symbol to subscribe to channels.</source>
+ <translation>Sinulla ei ole tilauksia. Käytä tähtisymbolia tilataksesi kanavia.</translation>
+ </message>
+</context>
<context>
<name>ClearButton</name>
<message>
<context>
<name>HomeView</name>
<message>
- <location filename="src/homeview.cpp" line="33"/>
+ <location filename="src/homeview.cpp" line="38"/>
<source>Search</source>
<translation>Etsi</translation>
</message>
<message>
- <location filename="src/homeview.cpp" line="35"/>
+ <location filename="src/homeview.cpp" line="40"/>
<source>Find videos and channels by keyword</source>
- <translation type="unfinished"/>
+ <translation>Etsi videoita ja kanavia avainsanalla</translation>
</message>
<message>
- <location filename="src/homeview.cpp" line="40"/>
+ <location filename="src/homeview.cpp" line="45"/>
<source>Browse</source>
- <translation type="unfinished"/>
+ <translation>Selaa</translation>
</message>
<message>
- <location filename="src/homeview.cpp" line="42"/>
+ <location filename="src/homeview.cpp" line="47"/>
<source>Browse videos by category</source>
- <translation type="unfinished"/>
+ <translation>Selaa videoita ryhmien mukaan</translation>
+ </message>
+ <message>
+ <location filename="src/homeview.cpp" line="51"/>
+ <source>Subscriptions</source>
+ <translation>Tilaukset</translation>
+ </message>
+ <message>
+ <location filename="src/homeview.cpp" line="53"/>
+ <source>Channel subscriptions</source>
+ <translation>Kanavatilaukset</translation>
</message>
<message>
<location filename="src/homeview.h" line="22"/>
<context>
<name>LoadingWidget</name>
<message>
- <location filename="src/loadingwidget.cpp" line="90"/>
+ <location filename="src/loadingwidget.cpp" line="88"/>
<source>Error</source>
<translation>Virhe</translation>
</message>
<context>
<name>MainWindow</name>
<message>
- <location filename="src/mainwindow.cpp" line="213"/>
+ <location filename="src/mainwindow.cpp" line="237"/>
<source>&Stop</source>
<translation>&Pysäytä</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="214"/>
+ <location filename="src/mainwindow.cpp" line="238"/>
<source>Stop playback and go back to the search view</source>
<translation>Pysäytä toisto ja palaa hakuruutuun</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="232"/>
+ <location filename="src/mainwindow.cpp" line="253"/>
<source>S&kip</source>
<translation>&Hyppää yli</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="233"/>
+ <location filename="src/mainwindow.cpp" line="254"/>
<source>Skip to the next video</source>
<translation>Siirry seuraavaan videoon</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="239"/>
- <location filename="src/mainwindow.cpp" line="989"/>
+ <location filename="src/mainwindow.cpp" line="260"/>
+ <location filename="src/mainwindow.cpp" line="1012"/>
<source>&Pause</source>
<translation>&Keskeytä</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="240"/>
- <location filename="src/mainwindow.cpp" line="990"/>
+ <location filename="src/mainwindow.cpp" line="261"/>
+ <location filename="src/mainwindow.cpp" line="1013"/>
<source>Pause playback</source>
<translation>Keskeytä toisto</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="246"/>
+ <location filename="src/mainwindow.cpp" line="267"/>
<source>&Full Screen</source>
<translation>&Koko näytön tila</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="247"/>
+ <location filename="src/mainwindow.cpp" line="268"/>
<source>Go full screen</source>
<translation>Siirry koko näytön tilaan</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="263"/>
+ <location filename="src/mainwindow.cpp" line="282"/>
<source>Hide the playlist and the toolbar</source>
<translation>Piilota soittolista sekä työkalupalkki</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="276"/>
+ <location filename="src/mainwindow.cpp" line="295"/>
<source>Go to the YouTube video page and pause playback</source>
<translation>Keskeytä toisto ja mene videon YouTube-sivulle</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="283"/>
+ <location filename="src/mainwindow.cpp" line="302"/>
<source>Copy the current video YouTube link to the clipboard</source>
<translation>Kopioi nykyisen videon YouTube-linkki leikepöydälle</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="290"/>
+ <location filename="src/mainwindow.cpp" line="309"/>
<source>Copy the current video stream URL to the clipboard</source>
<translation>Kopioi nykyisen videovirran osoite leikepöydälle</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="297"/>
+ <location filename="src/mainwindow.cpp" line="316"/>
<source>Find other video parts hopefully in the right order</source>
<translation>Löydä videon muut osat toivottavasti oikeassa järjestyksessä</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="303"/>
+ <location filename="src/mainwindow.cpp" line="322"/>
<source>&Remove</source>
<translation>&Poista</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="304"/>
+ <location filename="src/mainwindow.cpp" line="323"/>
<source>Remove the selected videos from the playlist</source>
<translation>Poista valitut videot toistolistalta</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="310"/>
+ <location filename="src/mainwindow.cpp" line="329"/>
<source>Move &Up</source>
<translation>Siirrä &ylös</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="311"/>
+ <location filename="src/mainwindow.cpp" line="330"/>
<source>Move up the selected videos in the playlist</source>
<translation>Siirrä valitut videot ylemmäksi soittolistalla</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="317"/>
+ <location filename="src/mainwindow.cpp" line="336"/>
<source>Move &Down</source>
<translation>Sirrä &alas</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="318"/>
+ <location filename="src/mainwindow.cpp" line="337"/>
<source>Move down the selected videos in the playlist</source>
<translation>Siirrä valitut videot alemmaksi soittolistalla</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="329"/>
+ <location filename="src/mainwindow.cpp" line="348"/>
<source>Clear the search history. Cannot be undone.</source>
<translation>Tyhjennä hakuhistoria. Tätä toimintoa ei voi kumota.</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="334"/>
+ <location filename="src/mainwindow.cpp" line="353"/>
<source>&Quit</source>
<translation>&Lopeta</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="337"/>
+ <location filename="src/mainwindow.cpp" line="356"/>
<source>Bye</source>
<translation>Näkemiin</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="341"/>
+ <location filename="src/mainwindow.cpp" line="360"/>
<source>&Website</source>
<translation>&Nettisivusto</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="343"/>
+ <location filename="src/mainwindow.cpp" line="362"/>
<source>%1 on the Web</source>
<translation>%1 netissä</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="349"/>
+ <location filename="src/mainwindow.cpp" line="368"/>
<source>Please support the continued development of %1</source>
<translation>Tue %1n jatkokehitystä</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="354"/>
+ <location filename="src/mainwindow.cpp" line="373"/>
<source>&About</source>
<translation>&Tietoja</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="356"/>
+ <location filename="src/mainwindow.cpp" line="375"/>
<source>Info about %1</source>
<translation>Tietoja %1sta</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="364"/>
+ <location filename="src/mainwindow.cpp" line="383"/>
<source>Search</source>
<translation>Etsi</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="383"/>
+ <location filename="src/mainwindow.cpp" line="402"/>
<source>Mute volume</source>
<translation>Vaimenna ääni</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="412"/>
- <location filename="src/mainwindow.cpp" line="1365"/>
+ <location filename="src/mainwindow.cpp" line="431"/>
+ <location filename="src/mainwindow.cpp" line="1406"/>
<source>&Downloads</source>
<translation>&Lataukset</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="413"/>
+ <location filename="src/mainwindow.cpp" line="432"/>
<source>Show details about video downloads</source>
<translation>Näytä tietoja latauksista</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="421"/>
+ <location filename="src/mainwindow.cpp" line="440"/>
<source>&Download</source>
<translation>&Lataa</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="422"/>
+ <location filename="src/mainwindow.cpp" line="441"/>
<source>Download the current video</source>
<translation>Lataa nykyinen video</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="441"/>
+ <location filename="src/mainwindow.cpp" line="458"/>
+ <source>&Subscribe to Channel</source>
+ <translation>%Tilaa kanava</translation>
+ </message>
+ <message>
+ <location filename="src/mainwindow.cpp" line="465"/>
<source>Share the current video using %1</source>
<translation>Jaa nykyinen video palvelulla %1</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="458"/>
+ <location filename="src/mainwindow.cpp" line="482"/>
<source>&Email</source>
<translation>&Sähköposti</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="459"/>
+ <location filename="src/mainwindow.cpp" line="483"/>
<source>Email</source>
<translation>Sähköposti</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="463"/>
+ <location filename="src/mainwindow.cpp" line="487"/>
<source>&Close</source>
<translation>&Sulje</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="473"/>
+ <location filename="src/mainwindow.cpp" line="497"/>
<source>&Float on Top</source>
<translation>&Pysy päällimmäisenä</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="478"/>
+ <location filename="src/mainwindow.cpp" line="502"/>
<source>&Stop After This Video</source>
<translation>Py&säytä toisto tämän videon jälkeen</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="485"/>
+ <location filename="src/mainwindow.cpp" line="509"/>
<source>&Report an Issue...</source>
<translation>&Ilmoita ongelmasta...</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="489"/>
+ <location filename="src/mainwindow.cpp" line="513"/>
<source>&Refine Search...</source>
<translation>&Määritä haku uudelleen...</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="501"/>
+ <location filename="src/mainwindow.cpp" line="525"/>
<source>More...</source>
- <translation type="unfinished"/>
+ <translation>Lisää...</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="504"/>
+ <location filename="src/mainwindow.cpp" line="528"/>
<source>&Related Videos</source>
- <translation type="unfinished"/>
+ <translation>&Aiheeseen liittyvät videot</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="506"/>
+ <location filename="src/mainwindow.cpp" line="530"/>
<source>Watch videos related to the current one</source>
- <translation type="unfinished"/>
+ <translation>Katso nykyiseen videoon liittyvät videot</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="544"/>
+ <location filename="src/mainwindow.cpp" line="553"/>
<source>&Application</source>
<translation>&Sovellus</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="515"/>
+ <location filename="src/mainwindow.cpp" line="537"/>
<source>Buy %1...</source>
<translation>Osta %1...</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="558"/>
+ <location filename="src/mainwindow.cpp" line="567"/>
<source>&Playback</source>
<translation>&Toisto</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="572"/>
+ <location filename="src/mainwindow.cpp" line="581"/>
<source>&Playlist</source>
<translation>S&oittolista</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="581"/>
+ <location filename="src/mainwindow.cpp" line="590"/>
<source>&Video</source>
<translation>&Video</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="594"/>
+ <location filename="src/mainwindow.cpp" line="605"/>
<source>&View</source>
<translation>&Näytä</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="601"/>
+ <location filename="src/mainwindow.cpp" line="612"/>
<source>&Share</source>
<translation>&Jaa</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="615"/>
+ <location filename="src/mainwindow.cpp" line="626"/>
<source>&Help</source>
<translation>&Ohje</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="690"/>
+ <location filename="src/mainwindow.cpp" line="701"/>
<source>Press %1 to raise the volume, %2 to lower it</source>
<translation>Paina näppäinyhdistelmää %1 nostaaksesi tai %2 laskeaksesi äänenvoimakkuutta</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="889"/>
- <location filename="src/mainwindow.cpp" line="895"/>
+ <location filename="src/mainwindow.cpp" line="910"/>
+ <location filename="src/mainwindow.cpp" line="916"/>
<source>Opening %1</source>
<translation>Avataan kohdetta %1</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="936"/>
+ <location filename="src/mainwindow.cpp" line="959"/>
<source>Do you want to exit %1 with a download in progress?</source>
<translation>Haluatko, että %1 sulkeutuu vaikka lataus on kesken?</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="937"/>
+ <location filename="src/mainwindow.cpp" line="960"/>
<source>If you close %1 now, this download will be cancelled.</source>
<translation>Jos suljet %1n nyt niin tämä lataus keskeytetään.</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="942"/>
+ <location filename="src/mainwindow.cpp" line="965"/>
<source>Close and cancel download</source>
<translation>Sulje ja peru lataus</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="943"/>
+ <location filename="src/mainwindow.cpp" line="966"/>
<source>Wait for download to finish</source>
<translation>Odota latauksen valmistumista</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="1102"/>
+ <location filename="src/mainwindow.cpp" line="1125"/>
<source>Leave &Full Screen</source>
<translation> Poistu &koko näytön tilasta</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="1475"/>
+ <location filename="src/mainwindow.cpp" line="1515"/>
<source>%1 version %2 is now available.</source>
<translation>%1 versio %2 on nyt saatavilla.</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="1479"/>
+ <location filename="src/mainwindow.cpp" line="1519"/>
<source>Remind me later</source>
<translation>Muistuta myöhemmin</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="1480"/>
+ <location filename="src/mainwindow.cpp" line="1520"/>
<source>Update</source>
<translation>Päivitä</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="982"/>
+ <location filename="src/mainwindow.cpp" line="1005"/>
<source>Error: %1</source>
<translation>Virhe: %1</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="222"/>
+ <location filename="src/mainwindow.cpp" line="246"/>
<source>P&revious</source>
<translation>E&dellinen</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="223"/>
+ <location filename="src/mainwindow.cpp" line="247"/>
<source>Go back to the previous track</source>
<translation>Siirry takaisin edelliseen kappaleeseen</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="262"/>
+ <location filename="src/mainwindow.cpp" line="281"/>
<source>&Compact Mode</source>
<translation>Kompakti &tila</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="275"/>
+ <location filename="src/mainwindow.cpp" line="294"/>
<source>Open the &YouTube Page</source>
<translation>Avaa &YouTube-sivu</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="282"/>
+ <location filename="src/mainwindow.cpp" line="301"/>
<source>Copy the YouTube &Link</source>
<translation>Kopioi YouTube-&linkki</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="289"/>
+ <location filename="src/mainwindow.cpp" line="308"/>
<source>Copy the Video Stream &URL</source>
<translation>Kopioi videovirran &URL</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="296"/>
+ <location filename="src/mainwindow.cpp" line="315"/>
<source>Find Video &Parts</source>
<translation>Etsi videon &osat</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="324"/>
+ <location filename="src/mainwindow.cpp" line="343"/>
<source>&Clear Recent Searches</source>
<translation>Ty&hjennä viimeisimmät haut</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="348"/>
+ <location filename="src/mainwindow.cpp" line="367"/>
<source>Make a &Donation</source>
<translation>Tee &lahjoitus</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="405"/>
+ <location filename="src/mainwindow.cpp" line="424"/>
<source>&Manually Start Playing</source>
<translation>Aloita toisto &manuaalisesti</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="406"/>
+ <location filename="src/mainwindow.cpp" line="425"/>
<source>Manually start playing videos</source>
<translation>Aloittaa videoiden toiston manuaalisesti</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="728"/>
+ <location filename="src/mainwindow.cpp" line="739"/>
<source>Choose your content location</source>
- <translation type="unfinished"/>
+ <translation>Valitse sisältösi sijainti</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="1002"/>
+ <location filename="src/mainwindow.cpp" line="1025"/>
<source>&Play</source>
<translation>&Toista</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="1003"/>
+ <location filename="src/mainwindow.cpp" line="1026"/>
<source>Resume playback</source>
<translation>Jatka toistoa</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="1236"/>
+ <location filename="src/mainwindow.cpp" line="1277"/>
<source>Remaining time: %1</source>
<translation>Aikaa jäljellä: %1</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="1294"/>
+ <location filename="src/mainwindow.cpp" line="1335"/>
<source>Volume at %1%</source>
<translation>Äänentaso: %1%</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="1300"/>
+ <location filename="src/mainwindow.cpp" line="1341"/>
<source>Volume is muted</source>
<translation>Ääni on vaimennettu</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="1303"/>
+ <location filename="src/mainwindow.cpp" line="1344"/>
<source>Volume is unmuted</source>
<translation>Ääni ei ole vaimennettu</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="1310"/>
+ <location filename="src/mainwindow.cpp" line="1351"/>
<source>Maximum video definition set to %1</source>
<translation>Korkein videonlaatu on rajoitettu tarkkuuteen %1</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="1351"/>
+ <location filename="src/mainwindow.cpp" line="1392"/>
<source>Your privacy is now safe</source>
<translation>Yksityisyytesi on nyt turvattu</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="1366"/>
+ <location filename="src/mainwindow.cpp" line="1407"/>
<source>Downloads complete</source>
<translation>Lataukset ovat valmistuneet</translation>
</message>
<context>
<name>MediaView</name>
<message>
- <location filename="src/mediaview.cpp" line="553"/>
+ <location filename="src/mediaview.cpp" line="563"/>
<source>You can now paste the YouTube link into another application</source>
<translation>Voit nyt liittää YouTube-linkin johonkin toiseen sovellukseen</translation>
</message>
<message>
- <location filename="src/mediaview.cpp" line="561"/>
+ <location filename="src/mediaview.cpp" line="571"/>
<source>You can now paste the video stream URL into another application</source>
<translation>Voit nyt liittää videovirran osoitteen (URL) johonkin toiseen sovellukseen</translation>
</message>
<message>
- <location filename="src/mediaview.cpp" line="562"/>
+ <location filename="src/mediaview.cpp" line="572"/>
<source>The link will be valid only for a limited time.</source>
<translation>Osoite on käytössä vain rajoitetun ajan.</translation>
</message>
<message>
- <location filename="src/mediaview.cpp" line="636"/>
+ <location filename="src/mediaview.cpp" line="650"/>
<source>This is just the demo version of %1.</source>
<translation>Tämä on vain %1n kokeiluversio.</translation>
</message>
<message>
- <location filename="src/mediaview.cpp" line="637"/>
+ <location filename="src/mediaview.cpp" line="651"/>
<source>It allows you to test the application and see if it works for you.</source>
<translation>Voit kokeilla ohjelmaa nähdäksesi, toimiiko se.</translation>
</message>
<message>
- <location filename="src/mediaview.cpp" line="667"/>
+ <location filename="src/mediaview.cpp" line="681"/>
<source>Continue</source>
<translation>Jatka</translation>
</message>
<message>
- <location filename="src/mediaview.cpp" line="756"/>
+ <location filename="src/mediaview.cpp" line="772"/>
<source>of</source>
<comment>Used in video parts, as in '2 of 3'</comment>
<translation>/</translation>
</message>
<message>
- <location filename="src/mediaview.cpp" line="768"/>
+ <location filename="src/mediaview.cpp" line="785"/>
<source>part</source>
<comment>This is for video parts, as in 'Cool video - part 1'</comment>
<translation>osa</translation>
</message>
<message>
- <location filename="src/mediaview.cpp" line="770"/>
+ <location filename="src/mediaview.cpp" line="787"/>
<source>episode</source>
<comment>This is for video parts, as in 'Cool series - episode 1'</comment>
<translation>jakso</translation>
</message>
<message>
- <location filename="src/mediaview.cpp" line="847"/>
+ <location filename="src/mediaview.cpp" line="868"/>
<source>Sent from %1</source>
<translation>Lähetetty palvelusta %1</translation>
</message>
<message>
- <location filename="src/mediaview.cpp" line="644"/>
+ <location filename="src/mediaview.cpp" line="899"/>
+ <source>Unsubscribe from %1</source>
+ <translation>Peru kanavan %1 tilaus</translation>
+ </message>
+ <message>
+ <location filename="src/mediaview.cpp" line="903"/>
+ <source>Subscribe to %1</source>
+ <translation>Tilaa kanava %1</translation>
+ </message>
+ <message>
+ <location filename="src/mediaview.cpp" line="658"/>
<source>Get the full version</source>
<translation>Hanki täysi versio</translation>
</message>
<message>
- <location filename="src/mediaview.cpp" line="681"/>
+ <location filename="src/mediaview.cpp" line="695"/>
<source>Downloading %1</source>
<translation>Ladataan %1ta/tä</translation>
</message>
<message>
<location filename="local/src/updatedialog.cpp" line="21"/>
<source>A new version of %1 is available!</source>
- <translation type="unfinished"/>
+ <translation>Uusi versio sovelluksesta %1 on saatavilla!</translation>
</message>
<message>
<location filename="local/src/updatedialog.cpp" line="28"/>
<source>%1 %2 is now available. You have %3.</source>
- <translation type="unfinished"/>
+ <translation>%1 %2 on nyt saatavilla. Sinulla on %3.</translation>
</message>
<message>
<location filename="local/src/updatedialog.cpp" line="33"/>
<message>
<location filename="local/src/updatedialog.cpp" line="43"/>
<source>Remind Me Later</source>
- <translation>Muistuta myöhemmin</translation>
+ <translation>Muistuta minua myöhemmin</translation>
</message>
<message>
<location filename="local/src/updatedialog.cpp" line="47"/>
<message>
<location filename="local/src/pastelineedit.cpp" line="6"/>
<source>Paste</source>
- <translation type="unfinished"/>
+ <translation>Liitä</translation>
</message>
</context>
<context>
<name>PlaylistItemDelegate</name>
<message>
- <location filename="src/playlistitemdelegate.cpp" line="159"/>
+ <location filename="src/playlistitemdelegate.cpp" line="177"/>
<source>%1 views</source>
<translation>Katsottu %1 kertaa</translation>
</message>
<message>
- <location filename="src/playlistitemdelegate.cpp" line="285"/>
+ <location filename="src/playlistitemdelegate.cpp" line="292"/>
<source>%1 of %2 (%3) — %4</source>
<translation>%1 / %2 (%3) — %4</translation>
</message>
<message>
- <location filename="src/playlistitemdelegate.cpp" line="292"/>
+ <location filename="src/playlistitemdelegate.cpp" line="299"/>
<source>Preparing</source>
<translation>Valmistellaan</translation>
</message>
<message>
- <location filename="src/playlistitemdelegate.cpp" line="294"/>
+ <location filename="src/playlistitemdelegate.cpp" line="301"/>
<source>Failed</source>
<translation>Epäonnistui</translation>
</message>
<message>
- <location filename="src/playlistitemdelegate.cpp" line="296"/>
+ <location filename="src/playlistitemdelegate.cpp" line="303"/>
<source>Completed</source>
<translation>Valmis</translation>
</message>
<message>
- <location filename="src/playlistitemdelegate.cpp" line="298"/>
+ <location filename="src/playlistitemdelegate.cpp" line="305"/>
<source>Stopped</source>
<translation>Pysäytetty</translation>
</message>
<message>
- <location filename="src/playlistitemdelegate.cpp" line="334"/>
+ <location filename="src/playlistitemdelegate.cpp" line="341"/>
<source>Stop downloading</source>
<translation>Pysäytä lataus</translation>
</message>
<message>
- <location filename="src/playlistitemdelegate.cpp" line="344"/>
+ <location filename="src/playlistitemdelegate.cpp" line="351"/>
<source>Show in %1</source>
<translation>Avaa %1ssa/ssä</translation>
</message>
<message>
- <location filename="src/playlistitemdelegate.cpp" line="346"/>
+ <location filename="src/playlistitemdelegate.cpp" line="353"/>
<source>Open parent folder</source>
<translation>Avaa yläkansio</translation>
</message>
<message>
- <location filename="src/playlistitemdelegate.cpp" line="355"/>
+ <location filename="src/playlistitemdelegate.cpp" line="362"/>
<source>Restart downloading</source>
<translation>Käynnistä lataus uudelleen</translation>
</message>
<message>
<location filename="src/regionsview.cpp" line="19"/>
<source>Done</source>
- <translation type="unfinished"/>
+ <translation>Valmis</translation>
</message>
</context>
<context>
<context>
<name>SearchView</name>
<message>
- <location filename="src/searchview.cpp" line="71"/>
+ <location filename="src/searchview.cpp" line="66"/>
<source>Welcome to <a href='%1'>%2</a>,</source>
<translation>Tervetuloa <a href='%1'>%2en</a></translation>
</message>
<message>
- <location filename="src/searchview.cpp" line="50"/>
+ <location filename="src/searchview.cpp" line="161"/>
<source>Get the full version</source>
<translation>Hanki täysversio</translation>
</message>
<message>
- <location filename="src/searchview.cpp" line="85"/>
+ <location filename="src/searchview.cpp" line="80"/>
<source>Enter</source>
<extracomment>"Enter", as in "type". The whole phrase says: "Enter a keyword to start watching videos"</extracomment>
<translation>Syötä</translation>
</message>
<message>
- <location filename="src/searchview.cpp" line="90"/>
+ <location filename="src/searchview.cpp" line="85"/>
<source>a keyword</source>
<translation>hakusana</translation>
</message>
<message>
- <location filename="src/searchview.cpp" line="91"/>
+ <location filename="src/searchview.cpp" line="86"/>
<source>a channel</source>
<translation>kanava</translation>
</message>
<message>
- <location filename="src/searchview.cpp" line="96"/>
+ <location filename="src/searchview.cpp" line="91"/>
<source>to start watching videos.</source>
<translation>aloittaaksesi videoiden katselu.</translation>
</message>
<message>
- <location filename="src/searchview.cpp" line="120"/>
+ <location filename="src/searchview.cpp" line="115"/>
<source>Watch</source>
<translation>Katso</translation>
</message>
<message>
- <location filename="src/searchview.cpp" line="138"/>
+ <location filename="src/searchview.cpp" line="133"/>
<source>Recent keywords</source>
<translation>Viimeisimmät hakusanat</translation>
</message>
<message>
- <location filename="src/searchview.cpp" line="151"/>
+ <location filename="src/searchview.cpp" line="146"/>
<source>Recent channels</source>
<translation>Viimeisimmät kanavat</translation>
</message>
<context>
<name>SidebarHeader</name>
<message>
- <location filename="src/sidebarheader.cpp" line="16"/>
- <location filename="src/sidebarheader.cpp" line="23"/>
+ <location filename="src/sidebarheader.cpp" line="19"/>
+ <location filename="src/sidebarheader.cpp" line="26"/>
<source>&Back</source>
<translation>&Takaisin</translation>
</message>
<message>
<location filename="src/sidebarheader.cpp" line="57"/>
<source>Forward to %1</source>
- <translation type="unfinished"/>
+ <translation>Eteenpäin kohteeseen %1</translation>
</message>
<message>
<location filename="src/sidebarheader.cpp" line="70"/>
<source>Back to %1</source>
- <translation type="unfinished"/>
+ <translation>Takaisin kohteeseen %1</translation>
</message>
</context>
<context>
<message>
<location filename="src/standardfeedsview.cpp" line="85"/>
<source>Most Popular</source>
- <translation type="unfinished"/>
- </message>
- <message>
- <location filename="src/standardfeedsview.cpp" line="86"/>
- <source>Featured</source>
- <translation type="unfinished"/>
+ <translation>Suosituimmat</translation>
</message>
<message>
<location filename="src/standardfeedsview.cpp" line="87"/>
<source>Most Shared</source>
- <translation type="unfinished"/>
+ <translation>Jaetuimmat</translation>
</message>
<message>
<location filename="src/standardfeedsview.cpp" line="88"/>
<source>Most Discussed</source>
- <translation type="unfinished"/>
+ <translation>Keskustelluimmat</translation>
</message>
<message>
<location filename="src/standardfeedsview.cpp" line="89"/>
<source>Top Rated</source>
- <translation type="unfinished"/>
+ <translation>Arvostetuimmat</translation>
+ </message>
+ <message>
+ <location filename="src/standardfeedsview.cpp" line="90"/>
+ <source>All Time Popular</source>
+ <translation>Kaikkien aikojen suosituimmat</translation>
</message>
</context>
<context>
<name>Video</name>
<message>
- <location filename="src/video.cpp" line="213"/>
+ <location filename="src/video.cpp" line="215"/>
<source>Cannot get video stream for %1</source>
<translation>Videostriimiä ei saada kohteelle %1</translation>
</message>
<message>
- <location filename="src/video.cpp" line="231"/>
+ <location filename="src/video.cpp" line="233"/>
<source>Network error: %1 for %2</source>
<translation>Verkkovirhe: "%1" "%2"lle</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="8"/>
<source>Algeria</source>
- <translation type="unfinished"/>
+ <translation>Algeria</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="9"/>
<source>Argentina</source>
- <translation type="unfinished"/>
+ <translation>Argentiina</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="10"/>
<source>Australia</source>
- <translation type="unfinished"/>
+ <translation>Australia</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="11"/>
<source>Belgium</source>
- <translation type="unfinished"/>
+ <translation>Belgia</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="12"/>
<source>Brazil</source>
- <translation type="unfinished"/>
+ <translation>Brasilia</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="13"/>
<source>Canada</source>
- <translation type="unfinished"/>
+ <translation>Kanada</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="14"/>
<source>Chile</source>
- <translation type="unfinished"/>
+ <translation>Chile</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="15"/>
<source>Colombia</source>
- <translation type="unfinished"/>
+ <translation>Kolumbia</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="16"/>
<source>Czech Republic</source>
- <translation type="unfinished"/>
+ <translation>Tšekin tasavalta</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="17"/>
<source>Egypt</source>
- <translation type="unfinished"/>
+ <translation>Egypti</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="18"/>
<source>France</source>
- <translation type="unfinished"/>
+ <translation>Ranska</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="19"/>
<source>Germany</source>
- <translation type="unfinished"/>
+ <translation>Saksa</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="20"/>
<source>Ghana</source>
- <translation type="unfinished"/>
+ <translation>Ghana</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="21"/>
<source>Greece</source>
- <translation type="unfinished"/>
+ <translation>Kreikka</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="22"/>
<source>Hong Kong</source>
- <translation type="unfinished"/>
+ <translation>Hongkong</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="23"/>
<source>Hungary</source>
- <translation type="unfinished"/>
+ <translation>Unkari</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="24"/>
<source>India</source>
- <translation type="unfinished"/>
+ <translation>Intia</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="25"/>
<source>Indonesia</source>
- <translation type="unfinished"/>
+ <translation>Indonesia</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="26"/>
<source>Ireland</source>
- <translation type="unfinished"/>
+ <translation>Irlanti</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="27"/>
<source>Israel</source>
- <translation type="unfinished"/>
+ <translation>Israel</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="28"/>
<source>Italy</source>
- <translation type="unfinished"/>
+ <translation>Italia</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="29"/>
<source>Japan</source>
- <translation type="unfinished"/>
+ <translation>Japani</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="30"/>
<source>Jordan</source>
- <translation type="unfinished"/>
+ <translation>Jordania</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="31"/>
<source>Kenya</source>
- <translation type="unfinished"/>
+ <translation>Kenia</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="32"/>
<source>Malaysia</source>
- <translation type="unfinished"/>
+ <translation>Malesia</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="33"/>
<source>Mexico</source>
- <translation type="unfinished"/>
+ <translation>Meksiko</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="34"/>
<source>Morocco</source>
- <translation type="unfinished"/>
+ <translation>Marokko</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="35"/>
<source>Netherlands</source>
- <translation type="unfinished"/>
+ <translation>Alankomaat</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="36"/>
<source>New Zealand</source>
- <translation type="unfinished"/>
+ <translation>Uusi-Seelanti</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="37"/>
<source>Nigeria</source>
- <translation type="unfinished"/>
+ <translation>Nigeria</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="38"/>
<source>Peru</source>
- <translation type="unfinished"/>
+ <translation>Peru</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="39"/>
<source>Philippines</source>
- <translation type="unfinished"/>
+ <translation>Filippiinit</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="40"/>
<source>Poland</source>
- <translation type="unfinished"/>
+ <translation>Puola</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="41"/>
<source>Russia</source>
- <translation type="unfinished"/>
+ <translation>Venäjä</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="42"/>
<source>Saudi Arabia</source>
- <translation type="unfinished"/>
+ <translation>Saudi-Arabia</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="43"/>
<source>Singapore</source>
- <translation type="unfinished"/>
+ <translation>Singapore</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="44"/>
<source>South Africa</source>
- <translation type="unfinished"/>
+ <translation>Etelä-Afrikka</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="45"/>
<source>South Korea</source>
- <translation type="unfinished"/>
+ <translation>Etelä-Korea</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="46"/>
<source>Spain</source>
- <translation type="unfinished"/>
+ <translation>Espanja</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="47"/>
<source>Sweden</source>
- <translation type="unfinished"/>
+ <translation>Ruotsi</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="48"/>
<source>Taiwan</source>
- <translation type="unfinished"/>
+ <translation>Taiwan</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="49"/>
<source>Tunisia</source>
- <translation type="unfinished"/>
+ <translation>Tunisia</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="50"/>
<source>Turkey</source>
- <translation type="unfinished"/>
+ <translation>Turkki</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="51"/>
<source>Uganda</source>
- <translation type="unfinished"/>
+ <translation>Uganda</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="52"/>
<source>United Arab Emirates</source>
- <translation type="unfinished"/>
+ <translation>Yhdistyneet arabiemiirikunnat</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="53"/>
<source>United Kingdom</source>
- <translation type="unfinished"/>
+ <translation>Yhdistynyt kuningaskunta</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="54"/>
<source>Yemen</source>
- <translation type="unfinished"/>
+ <translation>Jemen</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="128"/>
<source>Worldwide</source>
- <translation type="unfinished"/>
+ <translation>Maailmanlaajuinen</translation>
</message>
</context>
</TS>
\ No newline at end of file
<message>
<location filename="local/src/activationview.cpp" line="53"/>
<source>The full version allows you to download videos longer than %1 minutes and to watch videos without interruptions.</source>
- <translation type="unfinished"/>
+ <translation>Täysversio sallii sinun ladata yli %1 minuutin pituisia videoita ja katsoa videoita ilman keskeytyksiä.</translation>
</message>
<message>
<location filename="local/src/activationview.cpp" line="55"/>
<translation>Osta lisenssi</translation>
</message>
</context>
+<context>
+ <name>ChannelAggregator</name>
+ <message>
+ <location filename="src/channelaggregator.cpp" line="110"/>
+ <source>By %1</source>
+ <translation>Tekijältä %1</translation>
+ </message>
+ <message numerus="yes">
+ <location filename="src/channelaggregator.cpp" line="112"/>
+ <source>You have %n new video(s)</source>
+ <translation type="unfinished"><numerusform></numerusform><numerusform></numerusform></translation>
+ </message>
+</context>
+<context>
+ <name>ChannelItemDelegate</name>
+ <message>
+ <location filename="src/channelitemdelegate.cpp" line="46"/>
+ <source>All Videos</source>
+ <translation>Kaikki videot</translation>
+ </message>
+ <message>
+ <location filename="src/channelitemdelegate.cpp" line="63"/>
+ <source>Unwatched Videos</source>
+ <translation>Katsomattomat videot</translation>
+ </message>
+</context>
+<context>
+ <name>ChannelView</name>
+ <message>
+ <location filename="src/channelview.cpp" line="75"/>
+ <source>Mark all as watched</source>
+ <translation>Merkitse kaikki katsotuiksi</translation>
+ </message>
+ <message>
+ <location filename="src/channelview.cpp" line="83"/>
+ <source>Show Updated</source>
+ <translation>Näytä päivitetyt</translation>
+ </message>
+ <message>
+ <location filename="src/channelview.cpp" line="95"/>
+ <source>Name</source>
+ <translation>Nimi</translation>
+ </message>
+ <message>
+ <location filename="src/channelview.cpp" line="102"/>
+ <source>Last Updated</source>
+ <translation>Viimeksi päivitetyt</translation>
+ </message>
+ <message>
+ <location filename="src/channelview.cpp" line="109"/>
+ <source>Last Added</source>
+ <translation>Viimeksi lisätyt</translation>
+ </message>
+ <message>
+ <location filename="src/channelview.cpp" line="116"/>
+ <source>Last Watched</source>
+ <translation>Viimeksi katsotut</translation>
+ </message>
+ <message>
+ <location filename="src/channelview.cpp" line="123"/>
+ <source>Most Watched</source>
+ <translation>Katsotuimmat</translation>
+ </message>
+ <message>
+ <location filename="src/channelview.cpp" line="131"/>
+ <source>Sort by</source>
+ <translation>Järjestysperuste</translation>
+ </message>
+ <message>
+ <location filename="src/channelview.cpp" line="190"/>
+ <source>All Videos</source>
+ <translation>Kaikki videot</translation>
+ </message>
+ <message>
+ <location filename="src/channelview.cpp" line="194"/>
+ <source>Unwatched Videos</source>
+ <translation>Katsomattomat videot</translation>
+ </message>
+ <message>
+ <location filename="src/channelview.cpp" line="206"/>
+ <source>There are no updated subscriptions at this time.</source>
+ <translation>Päivitettyjä tilauksia ei ole tällä hetkellä.</translation>
+ </message>
+ <message>
+ <location filename="src/channelview.cpp" line="208"/>
+ <source>You have no subscriptions. Use the star symbol to subscribe to channels.</source>
+ <translation>Sinulla ei ole tilauksia. Käytä tähtisymbolia tilataksesi kanavia.</translation>
+ </message>
+</context>
<context>
<name>ClearButton</name>
<message>
<context>
<name>HomeView</name>
<message>
- <location filename="src/homeview.cpp" line="33"/>
+ <location filename="src/homeview.cpp" line="38"/>
<source>Search</source>
<translation>Etsi</translation>
</message>
<message>
- <location filename="src/homeview.cpp" line="35"/>
+ <location filename="src/homeview.cpp" line="40"/>
<source>Find videos and channels by keyword</source>
- <translation type="unfinished"/>
+ <translation>Etsi videoita ja kanavia avainsanalla</translation>
</message>
<message>
- <location filename="src/homeview.cpp" line="40"/>
+ <location filename="src/homeview.cpp" line="45"/>
<source>Browse</source>
- <translation type="unfinished"/>
+ <translation>Selaa</translation>
</message>
<message>
- <location filename="src/homeview.cpp" line="42"/>
+ <location filename="src/homeview.cpp" line="47"/>
<source>Browse videos by category</source>
- <translation type="unfinished"/>
+ <translation>Selaa videoita ryhmien mukaan</translation>
+ </message>
+ <message>
+ <location filename="src/homeview.cpp" line="51"/>
+ <source>Subscriptions</source>
+ <translation>Tilaukset</translation>
+ </message>
+ <message>
+ <location filename="src/homeview.cpp" line="53"/>
+ <source>Channel subscriptions</source>
+ <translation>Kanavatilaukset</translation>
</message>
<message>
<location filename="src/homeview.h" line="22"/>
<context>
<name>LoadingWidget</name>
<message>
- <location filename="src/loadingwidget.cpp" line="90"/>
+ <location filename="src/loadingwidget.cpp" line="88"/>
<source>Error</source>
<translation>Virhe</translation>
</message>
<context>
<name>MainWindow</name>
<message>
- <location filename="src/mainwindow.cpp" line="213"/>
+ <location filename="src/mainwindow.cpp" line="237"/>
<source>&Stop</source>
<translation>&Pysäytä</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="214"/>
+ <location filename="src/mainwindow.cpp" line="238"/>
<source>Stop playback and go back to the search view</source>
<translation>Pysäytä toisto ja palaa hakuruutuun</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="232"/>
+ <location filename="src/mainwindow.cpp" line="253"/>
<source>S&kip</source>
<translation>&Hyppää yli</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="233"/>
+ <location filename="src/mainwindow.cpp" line="254"/>
<source>Skip to the next video</source>
<translation>Siirry seuraavaan videoon</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="239"/>
- <location filename="src/mainwindow.cpp" line="989"/>
+ <location filename="src/mainwindow.cpp" line="260"/>
+ <location filename="src/mainwindow.cpp" line="1012"/>
<source>&Pause</source>
<translation>&Keskeytä</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="240"/>
- <location filename="src/mainwindow.cpp" line="990"/>
+ <location filename="src/mainwindow.cpp" line="261"/>
+ <location filename="src/mainwindow.cpp" line="1013"/>
<source>Pause playback</source>
<translation>Keskeytä toisto</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="246"/>
+ <location filename="src/mainwindow.cpp" line="267"/>
<source>&Full Screen</source>
<translation>&Koko näytön tila</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="247"/>
+ <location filename="src/mainwindow.cpp" line="268"/>
<source>Go full screen</source>
<translation>Siirry koko näytön tilaan</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="263"/>
+ <location filename="src/mainwindow.cpp" line="282"/>
<source>Hide the playlist and the toolbar</source>
<translation>Piilota soittolista sekä työkalupalkki</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="276"/>
+ <location filename="src/mainwindow.cpp" line="295"/>
<source>Go to the YouTube video page and pause playback</source>
<translation>Keskeytä toisto ja mene videon YouTube-sivulle</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="283"/>
+ <location filename="src/mainwindow.cpp" line="302"/>
<source>Copy the current video YouTube link to the clipboard</source>
<translation>Kopioi nykyisen videon YouTube-linkki leikepöydälle</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="290"/>
+ <location filename="src/mainwindow.cpp" line="309"/>
<source>Copy the current video stream URL to the clipboard</source>
<translation>Kopioi nykyisen videovirran osoite leikepöydälle</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="297"/>
+ <location filename="src/mainwindow.cpp" line="316"/>
<source>Find other video parts hopefully in the right order</source>
<translation>Löydä videon muut osat toivottavasti oikeassa järjestyksessä</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="303"/>
+ <location filename="src/mainwindow.cpp" line="322"/>
<source>&Remove</source>
<translation>&Poista</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="304"/>
+ <location filename="src/mainwindow.cpp" line="323"/>
<source>Remove the selected videos from the playlist</source>
<translation>Poista valitut videot toistolistalta</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="310"/>
+ <location filename="src/mainwindow.cpp" line="329"/>
<source>Move &Up</source>
<translation>Siirrä &ylös</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="311"/>
+ <location filename="src/mainwindow.cpp" line="330"/>
<source>Move up the selected videos in the playlist</source>
<translation>Siirrä valitut videot ylemmäksi soittolistalla</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="317"/>
+ <location filename="src/mainwindow.cpp" line="336"/>
<source>Move &Down</source>
<translation>Sirrä &alas</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="318"/>
+ <location filename="src/mainwindow.cpp" line="337"/>
<source>Move down the selected videos in the playlist</source>
<translation>Siirrä valitut videot alemmaksi soittolistalla</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="329"/>
+ <location filename="src/mainwindow.cpp" line="348"/>
<source>Clear the search history. Cannot be undone.</source>
<translation>Tyhjennä hakuhistoria. Tätä toimintoa ei voi kumota.</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="334"/>
+ <location filename="src/mainwindow.cpp" line="353"/>
<source>&Quit</source>
<translation>&Lopeta</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="337"/>
+ <location filename="src/mainwindow.cpp" line="356"/>
<source>Bye</source>
<translation>Näkemiin</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="341"/>
+ <location filename="src/mainwindow.cpp" line="360"/>
<source>&Website</source>
<translation>&Nettisivusto</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="343"/>
+ <location filename="src/mainwindow.cpp" line="362"/>
<source>%1 on the Web</source>
<translation>%1 netissä</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="349"/>
+ <location filename="src/mainwindow.cpp" line="368"/>
<source>Please support the continued development of %1</source>
<translation>Tue %1n jatkokehitystä</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="354"/>
+ <location filename="src/mainwindow.cpp" line="373"/>
<source>&About</source>
<translation>&Tietoja</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="356"/>
+ <location filename="src/mainwindow.cpp" line="375"/>
<source>Info about %1</source>
<translation>Tietoja %1sta</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="364"/>
+ <location filename="src/mainwindow.cpp" line="383"/>
<source>Search</source>
<translation>Etsi</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="383"/>
+ <location filename="src/mainwindow.cpp" line="402"/>
<source>Mute volume</source>
<translation>Vaimenna ääni</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="412"/>
- <location filename="src/mainwindow.cpp" line="1365"/>
+ <location filename="src/mainwindow.cpp" line="431"/>
+ <location filename="src/mainwindow.cpp" line="1406"/>
<source>&Downloads</source>
<translation>&Lataukset</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="413"/>
+ <location filename="src/mainwindow.cpp" line="432"/>
<source>Show details about video downloads</source>
<translation>Näytä tietoja latauksista</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="421"/>
+ <location filename="src/mainwindow.cpp" line="440"/>
<source>&Download</source>
<translation>&Lataa</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="422"/>
+ <location filename="src/mainwindow.cpp" line="441"/>
<source>Download the current video</source>
<translation>Lataa nykyinen video</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="441"/>
+ <location filename="src/mainwindow.cpp" line="458"/>
+ <source>&Subscribe to Channel</source>
+ <translation>%Tilaa kanava</translation>
+ </message>
+ <message>
+ <location filename="src/mainwindow.cpp" line="465"/>
<source>Share the current video using %1</source>
<translation>Jaa nykyinen video palvelulla %1</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="458"/>
+ <location filename="src/mainwindow.cpp" line="482"/>
<source>&Email</source>
<translation>&Sähköposti</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="459"/>
+ <location filename="src/mainwindow.cpp" line="483"/>
<source>Email</source>
<translation>Sähköposti</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="463"/>
+ <location filename="src/mainwindow.cpp" line="487"/>
<source>&Close</source>
<translation>&Sulje</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="473"/>
+ <location filename="src/mainwindow.cpp" line="497"/>
<source>&Float on Top</source>
<translation>&Pysy päällimmäisenä</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="478"/>
+ <location filename="src/mainwindow.cpp" line="502"/>
<source>&Stop After This Video</source>
<translation>Py&säytä toisto tämän videon jälkeen</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="485"/>
+ <location filename="src/mainwindow.cpp" line="509"/>
<source>&Report an Issue...</source>
<translation>&Ilmoita ongelmasta...</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="489"/>
+ <location filename="src/mainwindow.cpp" line="513"/>
<source>&Refine Search...</source>
<translation>&Määritä haku uudelleen...</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="501"/>
+ <location filename="src/mainwindow.cpp" line="525"/>
<source>More...</source>
- <translation type="unfinished"/>
+ <translation>Lisää...</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="504"/>
+ <location filename="src/mainwindow.cpp" line="528"/>
<source>&Related Videos</source>
- <translation type="unfinished"/>
+ <translation>&Aiheeseen liittyvät videot</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="506"/>
+ <location filename="src/mainwindow.cpp" line="530"/>
<source>Watch videos related to the current one</source>
- <translation type="unfinished"/>
+ <translation>Katso nykyiseen videoon liittyvät videot</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="544"/>
+ <location filename="src/mainwindow.cpp" line="553"/>
<source>&Application</source>
<translation>&Sovellus</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="515"/>
+ <location filename="src/mainwindow.cpp" line="537"/>
<source>Buy %1...</source>
<translation>Osta %1...</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="558"/>
+ <location filename="src/mainwindow.cpp" line="567"/>
<source>&Playback</source>
<translation>&Toisto</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="572"/>
+ <location filename="src/mainwindow.cpp" line="581"/>
<source>&Playlist</source>
<translation>S&oittolista</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="581"/>
+ <location filename="src/mainwindow.cpp" line="590"/>
<source>&Video</source>
<translation>&Video</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="594"/>
+ <location filename="src/mainwindow.cpp" line="605"/>
<source>&View</source>
<translation>&Näytä</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="601"/>
+ <location filename="src/mainwindow.cpp" line="612"/>
<source>&Share</source>
<translation>&Jaa</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="615"/>
+ <location filename="src/mainwindow.cpp" line="626"/>
<source>&Help</source>
<translation>&Ohje</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="690"/>
+ <location filename="src/mainwindow.cpp" line="701"/>
<source>Press %1 to raise the volume, %2 to lower it</source>
<translation>Paina näppäinyhdistelmää %1 nostaaksesi tai %2 laskeaksesi äänenvoimakkuutta</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="889"/>
- <location filename="src/mainwindow.cpp" line="895"/>
+ <location filename="src/mainwindow.cpp" line="910"/>
+ <location filename="src/mainwindow.cpp" line="916"/>
<source>Opening %1</source>
<translation>Avataan kohdetta %1</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="936"/>
+ <location filename="src/mainwindow.cpp" line="959"/>
<source>Do you want to exit %1 with a download in progress?</source>
<translation>Haluatko, että %1 sulkeutuu vaikka lataus on kesken?</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="937"/>
+ <location filename="src/mainwindow.cpp" line="960"/>
<source>If you close %1 now, this download will be cancelled.</source>
<translation>Jos suljet %1n nyt niin tämä lataus keskeytetään.</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="942"/>
+ <location filename="src/mainwindow.cpp" line="965"/>
<source>Close and cancel download</source>
<translation>Sulje ja peru lataus</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="943"/>
+ <location filename="src/mainwindow.cpp" line="966"/>
<source>Wait for download to finish</source>
<translation>Odota latauksen valmistumista</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="1102"/>
+ <location filename="src/mainwindow.cpp" line="1125"/>
<source>Leave &Full Screen</source>
<translation> Poistu &koko näytön tilasta</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="1475"/>
+ <location filename="src/mainwindow.cpp" line="1515"/>
<source>%1 version %2 is now available.</source>
<translation>%1 versio %2 on nyt saatavilla.</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="1479"/>
+ <location filename="src/mainwindow.cpp" line="1519"/>
<source>Remind me later</source>
<translation>Muistuta myöhemmin</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="1480"/>
+ <location filename="src/mainwindow.cpp" line="1520"/>
<source>Update</source>
<translation>Päivitä</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="982"/>
+ <location filename="src/mainwindow.cpp" line="1005"/>
<source>Error: %1</source>
<translation>Virhe: %1</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="222"/>
+ <location filename="src/mainwindow.cpp" line="246"/>
<source>P&revious</source>
<translation>E&dellinen</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="223"/>
+ <location filename="src/mainwindow.cpp" line="247"/>
<source>Go back to the previous track</source>
<translation>Siirry takaisin edelliseen kappaleeseen</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="262"/>
+ <location filename="src/mainwindow.cpp" line="281"/>
<source>&Compact Mode</source>
<translation>Kompakti &tila</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="275"/>
+ <location filename="src/mainwindow.cpp" line="294"/>
<source>Open the &YouTube Page</source>
<translation>Avaa &YouTube-sivu</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="282"/>
+ <location filename="src/mainwindow.cpp" line="301"/>
<source>Copy the YouTube &Link</source>
<translation>Kopioi YouTube-&linkki</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="289"/>
+ <location filename="src/mainwindow.cpp" line="308"/>
<source>Copy the Video Stream &URL</source>
<translation>Kopioi videovirran &URL</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="296"/>
+ <location filename="src/mainwindow.cpp" line="315"/>
<source>Find Video &Parts</source>
<translation>Etsi videon &osat</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="324"/>
+ <location filename="src/mainwindow.cpp" line="343"/>
<source>&Clear Recent Searches</source>
<translation>Ty&hjennä viimeisimmät haut</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="348"/>
+ <location filename="src/mainwindow.cpp" line="367"/>
<source>Make a &Donation</source>
<translation>Tee &lahjoitus</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="405"/>
+ <location filename="src/mainwindow.cpp" line="424"/>
<source>&Manually Start Playing</source>
<translation>Aloita toisto &manuaalisesti</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="406"/>
+ <location filename="src/mainwindow.cpp" line="425"/>
<source>Manually start playing videos</source>
<translation>Aloittaa videoiden toiston manuaalisesti</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="728"/>
+ <location filename="src/mainwindow.cpp" line="739"/>
<source>Choose your content location</source>
- <translation type="unfinished"/>
+ <translation>Valitse sisältösi sijainti</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="1002"/>
+ <location filename="src/mainwindow.cpp" line="1025"/>
<source>&Play</source>
<translation>&Toista</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="1003"/>
+ <location filename="src/mainwindow.cpp" line="1026"/>
<source>Resume playback</source>
<translation>Jatka toistoa</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="1236"/>
+ <location filename="src/mainwindow.cpp" line="1277"/>
<source>Remaining time: %1</source>
<translation>Aikaa jäljellä: %1</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="1294"/>
+ <location filename="src/mainwindow.cpp" line="1335"/>
<source>Volume at %1%</source>
<translation>Äänentaso: %1%</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="1300"/>
+ <location filename="src/mainwindow.cpp" line="1341"/>
<source>Volume is muted</source>
<translation>Ääni on vaimennettu</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="1303"/>
+ <location filename="src/mainwindow.cpp" line="1344"/>
<source>Volume is unmuted</source>
<translation>Ääni ei ole vaimennettu</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="1310"/>
+ <location filename="src/mainwindow.cpp" line="1351"/>
<source>Maximum video definition set to %1</source>
<translation>Korkein videonlaatu on rajoitettu tarkkuuteen %1</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="1351"/>
+ <location filename="src/mainwindow.cpp" line="1392"/>
<source>Your privacy is now safe</source>
<translation>Yksityisyytesi on nyt turvattu</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="1366"/>
+ <location filename="src/mainwindow.cpp" line="1407"/>
<source>Downloads complete</source>
<translation>Lataukset ovat valmistuneet</translation>
</message>
<context>
<name>MediaView</name>
<message>
- <location filename="src/mediaview.cpp" line="553"/>
+ <location filename="src/mediaview.cpp" line="563"/>
<source>You can now paste the YouTube link into another application</source>
<translation>Voit nyt liittää YouTube-linkin johonkin toiseen sovellukseen</translation>
</message>
<message>
- <location filename="src/mediaview.cpp" line="561"/>
+ <location filename="src/mediaview.cpp" line="571"/>
<source>You can now paste the video stream URL into another application</source>
<translation>Voit nyt liittää videovirran osoitteen (URL) johonkin toiseen sovellukseen</translation>
</message>
<message>
- <location filename="src/mediaview.cpp" line="562"/>
+ <location filename="src/mediaview.cpp" line="572"/>
<source>The link will be valid only for a limited time.</source>
<translation>Osoite on käytössä vain rajoitetun ajan.</translation>
</message>
<message>
- <location filename="src/mediaview.cpp" line="636"/>
+ <location filename="src/mediaview.cpp" line="650"/>
<source>This is just the demo version of %1.</source>
<translation>Tämä on vain %1n kokeiluversio.</translation>
</message>
<message>
- <location filename="src/mediaview.cpp" line="637"/>
+ <location filename="src/mediaview.cpp" line="651"/>
<source>It allows you to test the application and see if it works for you.</source>
<translation>Voit kokeilla ohjelmaa nähdäksesi, toimiiko se.</translation>
</message>
<message>
- <location filename="src/mediaview.cpp" line="667"/>
+ <location filename="src/mediaview.cpp" line="681"/>
<source>Continue</source>
<translation>Jatka</translation>
</message>
<message>
- <location filename="src/mediaview.cpp" line="756"/>
+ <location filename="src/mediaview.cpp" line="772"/>
<source>of</source>
<comment>Used in video parts, as in '2 of 3'</comment>
<translation>/</translation>
</message>
<message>
- <location filename="src/mediaview.cpp" line="768"/>
+ <location filename="src/mediaview.cpp" line="785"/>
<source>part</source>
<comment>This is for video parts, as in 'Cool video - part 1'</comment>
<translation>osa</translation>
</message>
<message>
- <location filename="src/mediaview.cpp" line="770"/>
+ <location filename="src/mediaview.cpp" line="787"/>
<source>episode</source>
<comment>This is for video parts, as in 'Cool series - episode 1'</comment>
<translation>jakso</translation>
</message>
<message>
- <location filename="src/mediaview.cpp" line="847"/>
+ <location filename="src/mediaview.cpp" line="868"/>
<source>Sent from %1</source>
<translation>Lähetetty palvelusta %1</translation>
</message>
<message>
- <location filename="src/mediaview.cpp" line="644"/>
+ <location filename="src/mediaview.cpp" line="899"/>
+ <source>Unsubscribe from %1</source>
+ <translation>Peru kanavan %1 tilaus</translation>
+ </message>
+ <message>
+ <location filename="src/mediaview.cpp" line="903"/>
+ <source>Subscribe to %1</source>
+ <translation>Tilaa kanava %1</translation>
+ </message>
+ <message>
+ <location filename="src/mediaview.cpp" line="658"/>
<source>Get the full version</source>
<translation>Hanki täysi versio</translation>
</message>
<message>
- <location filename="src/mediaview.cpp" line="681"/>
+ <location filename="src/mediaview.cpp" line="695"/>
<source>Downloading %1</source>
<translation>Ladataan %1ta/tä</translation>
</message>
<context>
<name>PlaylistItemDelegate</name>
<message>
- <location filename="src/playlistitemdelegate.cpp" line="159"/>
+ <location filename="src/playlistitemdelegate.cpp" line="177"/>
<source>%1 views</source>
<translation>Katsottu %1 kertaa</translation>
</message>
<message>
- <location filename="src/playlistitemdelegate.cpp" line="285"/>
+ <location filename="src/playlistitemdelegate.cpp" line="292"/>
<source>%1 of %2 (%3) — %4</source>
- <translation type="unfinished"/>
+ <translation>%1 / %2 (%3) — %4</translation>
</message>
<message>
- <location filename="src/playlistitemdelegate.cpp" line="292"/>
+ <location filename="src/playlistitemdelegate.cpp" line="299"/>
<source>Preparing</source>
<translation>Valmistellaan</translation>
</message>
<message>
- <location filename="src/playlistitemdelegate.cpp" line="294"/>
+ <location filename="src/playlistitemdelegate.cpp" line="301"/>
<source>Failed</source>
<translation>Epäonnistui</translation>
</message>
<message>
- <location filename="src/playlistitemdelegate.cpp" line="296"/>
+ <location filename="src/playlistitemdelegate.cpp" line="303"/>
<source>Completed</source>
<translation>Valmis</translation>
</message>
<message>
- <location filename="src/playlistitemdelegate.cpp" line="298"/>
+ <location filename="src/playlistitemdelegate.cpp" line="305"/>
<source>Stopped</source>
<translation>Pysäytetty</translation>
</message>
<message>
- <location filename="src/playlistitemdelegate.cpp" line="334"/>
+ <location filename="src/playlistitemdelegate.cpp" line="341"/>
<source>Stop downloading</source>
<translation>Pysäytä lataus</translation>
</message>
<message>
- <location filename="src/playlistitemdelegate.cpp" line="344"/>
+ <location filename="src/playlistitemdelegate.cpp" line="351"/>
<source>Show in %1</source>
<translation>Avaa %1ssa/ssä</translation>
</message>
<message>
- <location filename="src/playlistitemdelegate.cpp" line="346"/>
+ <location filename="src/playlistitemdelegate.cpp" line="353"/>
<source>Open parent folder</source>
<translation>Avaa yläkansio</translation>
</message>
<message>
- <location filename="src/playlistitemdelegate.cpp" line="355"/>
+ <location filename="src/playlistitemdelegate.cpp" line="362"/>
<source>Restart downloading</source>
<translation>Käynnistä lataus uudelleen</translation>
</message>
<message>
<location filename="src/regionsview.cpp" line="19"/>
<source>Done</source>
- <translation type="unfinished"/>
+ <translation>Valmis</translation>
</message>
</context>
<context>
<context>
<name>SearchView</name>
<message>
- <location filename="src/searchview.cpp" line="71"/>
+ <location filename="src/searchview.cpp" line="66"/>
<source>Welcome to <a href='%1'>%2</a>,</source>
<translation>Tervetuloa <a href='%1'>%2en</a></translation>
</message>
<message>
- <location filename="src/searchview.cpp" line="50"/>
+ <location filename="src/searchview.cpp" line="161"/>
<source>Get the full version</source>
<translation>Hanki täysversio</translation>
</message>
<message>
- <location filename="src/searchview.cpp" line="85"/>
+ <location filename="src/searchview.cpp" line="80"/>
<source>Enter</source>
<extracomment>"Enter", as in "type". The whole phrase says: "Enter a keyword to start watching videos"</extracomment>
<translation>Syötä</translation>
</message>
<message>
- <location filename="src/searchview.cpp" line="90"/>
+ <location filename="src/searchview.cpp" line="85"/>
<source>a keyword</source>
<translation>hakusana</translation>
</message>
<message>
- <location filename="src/searchview.cpp" line="91"/>
+ <location filename="src/searchview.cpp" line="86"/>
<source>a channel</source>
<translation>kanava</translation>
</message>
<message>
- <location filename="src/searchview.cpp" line="96"/>
+ <location filename="src/searchview.cpp" line="91"/>
<source>to start watching videos.</source>
<translation>aloittaaksesi videoiden katselu.</translation>
</message>
<message>
- <location filename="src/searchview.cpp" line="120"/>
+ <location filename="src/searchview.cpp" line="115"/>
<source>Watch</source>
<translation>Katso</translation>
</message>
<message>
- <location filename="src/searchview.cpp" line="138"/>
+ <location filename="src/searchview.cpp" line="133"/>
<source>Recent keywords</source>
<translation>Viimeisimmät hakusanat</translation>
</message>
<message>
- <location filename="src/searchview.cpp" line="151"/>
+ <location filename="src/searchview.cpp" line="146"/>
<source>Recent channels</source>
<translation>Viimeisimmät kanavat</translation>
</message>
<context>
<name>SidebarHeader</name>
<message>
- <location filename="src/sidebarheader.cpp" line="16"/>
- <location filename="src/sidebarheader.cpp" line="23"/>
+ <location filename="src/sidebarheader.cpp" line="19"/>
+ <location filename="src/sidebarheader.cpp" line="26"/>
<source>&Back</source>
<translation>&Takaisin</translation>
</message>
<message>
<location filename="src/sidebarheader.cpp" line="57"/>
<source>Forward to %1</source>
- <translation type="unfinished"/>
+ <translation>Eteenpäin kohteeseen %1</translation>
</message>
<message>
<location filename="src/sidebarheader.cpp" line="70"/>
<source>Back to %1</source>
- <translation type="unfinished"/>
+ <translation>Takaisin kohteeseen %1</translation>
</message>
</context>
<context>
<message>
<location filename="src/standardfeedsview.cpp" line="85"/>
<source>Most Popular</source>
- <translation type="unfinished"/>
- </message>
- <message>
- <location filename="src/standardfeedsview.cpp" line="86"/>
- <source>Featured</source>
- <translation type="unfinished"/>
+ <translation>Suosituimmat</translation>
</message>
<message>
<location filename="src/standardfeedsview.cpp" line="87"/>
<source>Most Shared</source>
- <translation type="unfinished"/>
+ <translation>Jaetuimmat</translation>
</message>
<message>
<location filename="src/standardfeedsview.cpp" line="88"/>
<source>Most Discussed</source>
- <translation type="unfinished"/>
+ <translation>Keskustelluimmat</translation>
</message>
<message>
<location filename="src/standardfeedsview.cpp" line="89"/>
<source>Top Rated</source>
- <translation type="unfinished"/>
+ <translation>Arvostetuimmat</translation>
+ </message>
+ <message>
+ <location filename="src/standardfeedsview.cpp" line="90"/>
+ <source>All Time Popular</source>
+ <translation>Kaikkien aikojen suosituimmat</translation>
</message>
</context>
<context>
<name>Video</name>
<message>
- <location filename="src/video.cpp" line="213"/>
+ <location filename="src/video.cpp" line="215"/>
<source>Cannot get video stream for %1</source>
<translation>Videostriimiä ei saada kohteelle %1</translation>
</message>
<message>
- <location filename="src/video.cpp" line="231"/>
+ <location filename="src/video.cpp" line="233"/>
<source>Network error: %1 for %2</source>
<translation>Verkkovirhe: "%1" "%2"lle</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="8"/>
<source>Algeria</source>
- <translation type="unfinished"/>
+ <translation>Algeria</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="9"/>
<source>Argentina</source>
- <translation type="unfinished"/>
+ <translation>Argentiina</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="10"/>
<source>Australia</source>
- <translation type="unfinished"/>
+ <translation>Australia</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="11"/>
<source>Belgium</source>
- <translation type="unfinished"/>
+ <translation>Belgia</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="12"/>
<source>Brazil</source>
- <translation type="unfinished"/>
+ <translation>Brasilia</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="13"/>
<source>Canada</source>
- <translation type="unfinished"/>
+ <translation>Kanada</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="14"/>
<source>Chile</source>
- <translation type="unfinished"/>
+ <translation>Chile</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="15"/>
<source>Colombia</source>
- <translation type="unfinished"/>
+ <translation>Kolumbia</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="16"/>
<source>Czech Republic</source>
- <translation type="unfinished"/>
+ <translation>Tšekin tasavalta</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="17"/>
<source>Egypt</source>
- <translation type="unfinished"/>
+ <translation>Egypti</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="18"/>
<source>France</source>
- <translation type="unfinished"/>
+ <translation>Ranska</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="19"/>
<source>Germany</source>
- <translation type="unfinished"/>
+ <translation>Saksa</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="20"/>
<source>Ghana</source>
- <translation type="unfinished"/>
+ <translation>Ghana</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="21"/>
<source>Greece</source>
- <translation type="unfinished"/>
+ <translation>Kreikka</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="22"/>
<source>Hong Kong</source>
- <translation type="unfinished"/>
+ <translation>Hongkong</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="23"/>
<source>Hungary</source>
- <translation type="unfinished"/>
+ <translation>Unkari</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="24"/>
<source>India</source>
- <translation type="unfinished"/>
+ <translation>Intia</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="25"/>
<source>Indonesia</source>
- <translation type="unfinished"/>
+ <translation>Indonesia</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="26"/>
<source>Ireland</source>
- <translation type="unfinished"/>
+ <translation>Irlanti</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="27"/>
<source>Israel</source>
- <translation type="unfinished"/>
+ <translation>Israel</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="28"/>
<source>Italy</source>
- <translation type="unfinished"/>
+ <translation>Italia</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="29"/>
<source>Japan</source>
- <translation type="unfinished"/>
+ <translation>Japani</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="30"/>
<source>Jordan</source>
- <translation type="unfinished"/>
+ <translation>Jordania</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="31"/>
<source>Kenya</source>
- <translation type="unfinished"/>
+ <translation>Kenia</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="32"/>
<source>Malaysia</source>
- <translation type="unfinished"/>
+ <translation>Malesia</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="33"/>
<source>Mexico</source>
- <translation type="unfinished"/>
+ <translation>Meksiko</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="34"/>
<source>Morocco</source>
- <translation type="unfinished"/>
+ <translation>Marokko</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="35"/>
<source>Netherlands</source>
- <translation type="unfinished"/>
+ <translation>Alankomaat</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="36"/>
<source>New Zealand</source>
- <translation type="unfinished"/>
+ <translation>Uusi-Seelanti</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="37"/>
<source>Nigeria</source>
- <translation type="unfinished"/>
+ <translation>Nigeria</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="38"/>
<source>Peru</source>
- <translation type="unfinished"/>
+ <translation>Peru</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="39"/>
<source>Philippines</source>
- <translation type="unfinished"/>
+ <translation>Filippiinit</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="40"/>
<source>Poland</source>
- <translation type="unfinished"/>
+ <translation>Puola</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="41"/>
<source>Russia</source>
- <translation type="unfinished"/>
+ <translation>Venäjä</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="42"/>
<source>Saudi Arabia</source>
- <translation type="unfinished"/>
+ <translation>Saudi-Arabia</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="43"/>
<source>Singapore</source>
- <translation type="unfinished"/>
+ <translation>Singapore</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="44"/>
<source>South Africa</source>
- <translation type="unfinished"/>
+ <translation>Etelä-Afrikka</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="45"/>
<source>South Korea</source>
- <translation type="unfinished"/>
+ <translation>Etelä-Korea</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="46"/>
<source>Spain</source>
- <translation type="unfinished"/>
+ <translation>Espanja</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="47"/>
<source>Sweden</source>
- <translation type="unfinished"/>
+ <translation>Ruotsi</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="48"/>
<source>Taiwan</source>
- <translation type="unfinished"/>
+ <translation>Taiwan</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="49"/>
<source>Tunisia</source>
- <translation type="unfinished"/>
+ <translation>Tunisia</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="50"/>
<source>Turkey</source>
- <translation type="unfinished"/>
+ <translation>Turkki</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="51"/>
<source>Uganda</source>
- <translation type="unfinished"/>
+ <translation>Uganda</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="52"/>
<source>United Arab Emirates</source>
- <translation type="unfinished"/>
+ <translation>Yhdistyneet arabiemiirikunnat</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="53"/>
<source>United Kingdom</source>
- <translation type="unfinished"/>
+ <translation>Yhdistynyt kuningaskunta</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="54"/>
<source>Yemen</source>
- <translation type="unfinished"/>
+ <translation>Jemen</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="128"/>
<source>Worldwide</source>
- <translation type="unfinished"/>
+ <translation>Maailmanlaajuinen</translation>
</message>
</context>
</TS>
\ No newline at end of file
<message>
<location filename="local/src/activationview.cpp" line="53"/>
<source>The full version allows you to download videos longer than %1 minutes and to watch videos without interruptions.</source>
- <translation type="unfinished"/>
+ <translation>La version complète vous permet de télécharger des vidéos de plus de %1 minutes et de regarder des vidéos sans interruptions.</translation>
</message>
<message>
<location filename="local/src/activationview.cpp" line="55"/>
<translation>Acheter une licence</translation>
</message>
</context>
+<context>
+ <name>ChannelAggregator</name>
+ <message>
+ <location filename="src/channelaggregator.cpp" line="110"/>
+ <source>By %1</source>
+ <translation>Par %1</translation>
+ </message>
+ <message numerus="yes">
+ <location filename="src/channelaggregator.cpp" line="112"/>
+ <source>You have %n new video(s)</source>
+ <translation type="unfinished"><numerusform></numerusform><numerusform></numerusform></translation>
+ </message>
+</context>
+<context>
+ <name>ChannelItemDelegate</name>
+ <message>
+ <location filename="src/channelitemdelegate.cpp" line="46"/>
+ <source>All Videos</source>
+ <translation>Toutes les vidéos</translation>
+ </message>
+ <message>
+ <location filename="src/channelitemdelegate.cpp" line="63"/>
+ <source>Unwatched Videos</source>
+ <translation>Vidéos non vues</translation>
+ </message>
+</context>
+<context>
+ <name>ChannelView</name>
+ <message>
+ <location filename="src/channelview.cpp" line="75"/>
+ <source>Mark all as watched</source>
+ <translation>Tout marquer comme vu</translation>
+ </message>
+ <message>
+ <location filename="src/channelview.cpp" line="83"/>
+ <source>Show Updated</source>
+ <translation>Afficher les mises à jour</translation>
+ </message>
+ <message>
+ <location filename="src/channelview.cpp" line="95"/>
+ <source>Name</source>
+ <translation>Nom</translation>
+ </message>
+ <message>
+ <location filename="src/channelview.cpp" line="102"/>
+ <source>Last Updated</source>
+ <translation>Dernièrement mis à jour</translation>
+ </message>
+ <message>
+ <location filename="src/channelview.cpp" line="109"/>
+ <source>Last Added</source>
+ <translation>Dernièrement ajoutées</translation>
+ </message>
+ <message>
+ <location filename="src/channelview.cpp" line="116"/>
+ <source>Last Watched</source>
+ <translation>Dernièrement vues</translation>
+ </message>
+ <message>
+ <location filename="src/channelview.cpp" line="123"/>
+ <source>Most Watched</source>
+ <translation>Les plus vues</translation>
+ </message>
+ <message>
+ <location filename="src/channelview.cpp" line="131"/>
+ <source>Sort by</source>
+ <translation>Trier par</translation>
+ </message>
+ <message>
+ <location filename="src/channelview.cpp" line="190"/>
+ <source>All Videos</source>
+ <translation>Toutes les vidéos</translation>
+ </message>
+ <message>
+ <location filename="src/channelview.cpp" line="194"/>
+ <source>Unwatched Videos</source>
+ <translation>Vidéos non vues</translation>
+ </message>
+ <message>
+ <location filename="src/channelview.cpp" line="206"/>
+ <source>There are no updated subscriptions at this time.</source>
+ <translation>Il n'y a pas d'abonnements mis à jour en ce moment.</translation>
+ </message>
+ <message>
+ <location filename="src/channelview.cpp" line="208"/>
+ <source>You have no subscriptions. Use the star symbol to subscribe to channels.</source>
+ <translation>Vous n'avez pas d'abonnements. Utilisez le symbole de l'étoile pour vous abonner à des chaines,</translation>
+ </message>
+</context>
<context>
<name>ClearButton</name>
<message>
<context>
<name>HomeView</name>
<message>
- <location filename="src/homeview.cpp" line="33"/>
+ <location filename="src/homeview.cpp" line="38"/>
<source>Search</source>
<translation>Chercher</translation>
</message>
<message>
- <location filename="src/homeview.cpp" line="35"/>
+ <location filename="src/homeview.cpp" line="40"/>
<source>Find videos and channels by keyword</source>
- <translation type="unfinished"/>
+ <translation>Trouver des vidéos et des chaînes par mot-clé</translation>
</message>
<message>
- <location filename="src/homeview.cpp" line="40"/>
+ <location filename="src/homeview.cpp" line="45"/>
<source>Browse</source>
- <translation type="unfinished"/>
+ <translation>Parcourir</translation>
</message>
<message>
- <location filename="src/homeview.cpp" line="42"/>
+ <location filename="src/homeview.cpp" line="47"/>
<source>Browse videos by category</source>
- <translation type="unfinished"/>
+ <translation>Parcourir les vidéos par catégories</translation>
+ </message>
+ <message>
+ <location filename="src/homeview.cpp" line="51"/>
+ <source>Subscriptions</source>
+ <translation>Abonnements</translation>
+ </message>
+ <message>
+ <location filename="src/homeview.cpp" line="53"/>
+ <source>Channel subscriptions</source>
+ <translation>Abonnements aux chaines</translation>
</message>
<message>
<location filename="src/homeview.h" line="22"/>
<source>Make yourself comfortable</source>
- <translation type="unfinished"/>
+ <translation>Installez-vous confortablement</translation>
</message>
</context>
<context>
<name>LoadingWidget</name>
<message>
- <location filename="src/loadingwidget.cpp" line="90"/>
+ <location filename="src/loadingwidget.cpp" line="88"/>
<source>Error</source>
<translation>Erreur</translation>
</message>
<context>
<name>MainWindow</name>
<message>
- <location filename="src/mainwindow.cpp" line="213"/>
+ <location filename="src/mainwindow.cpp" line="237"/>
<source>&Stop</source>
<translation>&Arrêter</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="214"/>
+ <location filename="src/mainwindow.cpp" line="238"/>
<source>Stop playback and go back to the search view</source>
<translation>Arrêter et aller à la page de recherche</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="232"/>
+ <location filename="src/mainwindow.cpp" line="253"/>
<source>S&kip</source>
<translation>&Passer</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="233"/>
+ <location filename="src/mainwindow.cpp" line="254"/>
<source>Skip to the next video</source>
<translation>Passer à la vidéo suivante</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="239"/>
- <location filename="src/mainwindow.cpp" line="989"/>
+ <location filename="src/mainwindow.cpp" line="260"/>
+ <location filename="src/mainwindow.cpp" line="1012"/>
<source>&Pause</source>
<translation>&Pause</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="240"/>
- <location filename="src/mainwindow.cpp" line="990"/>
+ <location filename="src/mainwindow.cpp" line="261"/>
+ <location filename="src/mainwindow.cpp" line="1013"/>
<source>Pause playback</source>
<translation>Mettre en pause</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="246"/>
+ <location filename="src/mainwindow.cpp" line="267"/>
<source>&Full Screen</source>
<translation>&Plein écran</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="247"/>
+ <location filename="src/mainwindow.cpp" line="268"/>
<source>Go full screen</source>
<translation>Mettre en plein écran</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="263"/>
+ <location filename="src/mainwindow.cpp" line="282"/>
<source>Hide the playlist and the toolbar</source>
<translation>Cacher la liste de lecture et la barre d'outils</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="276"/>
+ <location filename="src/mainwindow.cpp" line="295"/>
<source>Go to the YouTube video page and pause playback</source>
<translation>Aller à la page de la vidéo Youtube et mettre en pause</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="283"/>
+ <location filename="src/mainwindow.cpp" line="302"/>
<source>Copy the current video YouTube link to the clipboard</source>
<translation>Copier l'adresse de la vidéo YouTube courante dans le presse-papier</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="290"/>
+ <location filename="src/mainwindow.cpp" line="309"/>
<source>Copy the current video stream URL to the clipboard</source>
<translation>Copier l'adresse du flux vidéo courant dans le presse-papier</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="297"/>
+ <location filename="src/mainwindow.cpp" line="316"/>
<source>Find other video parts hopefully in the right order</source>
<translation>Trouver les autres parties de la vidéo en espérant qu'elles soient dans le bon ordre</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="303"/>
+ <location filename="src/mainwindow.cpp" line="322"/>
<source>&Remove</source>
<translation>&Supprimer</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="304"/>
+ <location filename="src/mainwindow.cpp" line="323"/>
<source>Remove the selected videos from the playlist</source>
<translation>Supprimer la vidéo sélectionnée de la liste de lecture</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="310"/>
+ <location filename="src/mainwindow.cpp" line="329"/>
<source>Move &Up</source>
<translation>Déplacer vers les &haut</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="311"/>
+ <location filename="src/mainwindow.cpp" line="330"/>
<source>Move up the selected videos in the playlist</source>
<translation>Déplacer la vidéo sélectionnée vers le haut dans la liste de lecture</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="317"/>
+ <location filename="src/mainwindow.cpp" line="336"/>
<source>Move &Down</source>
<translation>Déplacer vers les &bas</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="318"/>
+ <location filename="src/mainwindow.cpp" line="337"/>
<source>Move down the selected videos in the playlist</source>
<translation>Déplacer la vidéo sélectionnée vers le bas dans la liste de lecture</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="329"/>
+ <location filename="src/mainwindow.cpp" line="348"/>
<source>Clear the search history. Cannot be undone.</source>
<translation>Effacer l'historique de recherche. Opération irréversible.</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="334"/>
+ <location filename="src/mainwindow.cpp" line="353"/>
<source>&Quit</source>
<translation>&Quitter</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="337"/>
+ <location filename="src/mainwindow.cpp" line="356"/>
<source>Bye</source>
<translation>Au revoir</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="341"/>
+ <location filename="src/mainwindow.cpp" line="360"/>
<source>&Website</source>
<translation>Site &Web</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="343"/>
+ <location filename="src/mainwindow.cpp" line="362"/>
<source>%1 on the Web</source>
<translation>%1 sur le Web</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="349"/>
+ <location filename="src/mainwindow.cpp" line="368"/>
<source>Please support the continued development of %1</source>
<translation>Merci d'aider à poursuivre le développement de %1</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="354"/>
+ <location filename="src/mainwindow.cpp" line="373"/>
<source>&About</source>
<translation>&À propos</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="356"/>
+ <location filename="src/mainwindow.cpp" line="375"/>
<source>Info about %1</source>
<translation>À propos de %1</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="364"/>
+ <location filename="src/mainwindow.cpp" line="383"/>
<source>Search</source>
<translation>Chercher</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="383"/>
+ <location filename="src/mainwindow.cpp" line="402"/>
<source>Mute volume</source>
<translation>Couper le son</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="412"/>
- <location filename="src/mainwindow.cpp" line="1365"/>
+ <location filename="src/mainwindow.cpp" line="431"/>
+ <location filename="src/mainwindow.cpp" line="1406"/>
<source>&Downloads</source>
<translation>&Téléchargements</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="413"/>
+ <location filename="src/mainwindow.cpp" line="432"/>
<source>Show details about video downloads</source>
<translation>Voir les détails à propos des téléchargements de la vidéo</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="421"/>
+ <location filename="src/mainwindow.cpp" line="440"/>
<source>&Download</source>
<translation>&Téléchargement</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="422"/>
+ <location filename="src/mainwindow.cpp" line="441"/>
<source>Download the current video</source>
<translation>Télécharger la vidéo en cours</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="441"/>
+ <location filename="src/mainwindow.cpp" line="458"/>
+ <source>&Subscribe to Channel</source>
+ <translation>&S'abonner à la chaine</translation>
+ </message>
+ <message>
+ <location filename="src/mainwindow.cpp" line="465"/>
<source>Share the current video using %1</source>
<translation>Partager cette vidéo avec %1</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="458"/>
+ <location filename="src/mainwindow.cpp" line="482"/>
<source>&Email</source>
<translation>&Email</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="459"/>
+ <location filename="src/mainwindow.cpp" line="483"/>
<source>Email</source>
<translation>Email</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="463"/>
+ <location filename="src/mainwindow.cpp" line="487"/>
<source>&Close</source>
<translation>&Fermer</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="473"/>
+ <location filename="src/mainwindow.cpp" line="497"/>
<source>&Float on Top</source>
<translation>&Laisser au dessus</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="478"/>
+ <location filename="src/mainwindow.cpp" line="502"/>
<source>&Stop After This Video</source>
<translation>&Arrêter après cette vidéo</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="485"/>
+ <location filename="src/mainwindow.cpp" line="509"/>
<source>&Report an Issue...</source>
<translation>&Signaler un problème...</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="489"/>
+ <location filename="src/mainwindow.cpp" line="513"/>
<source>&Refine Search...</source>
<translation>&Affiner la recherche...</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="501"/>
+ <location filename="src/mainwindow.cpp" line="525"/>
<source>More...</source>
- <translation type="unfinished"/>
+ <translation>Plus…</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="504"/>
+ <location filename="src/mainwindow.cpp" line="528"/>
<source>&Related Videos</source>
- <translation type="unfinished"/>
+ <translation>Vidéos &Relatives</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="506"/>
+ <location filename="src/mainwindow.cpp" line="530"/>
<source>Watch videos related to the current one</source>
- <translation type="unfinished"/>
+ <translation>Regarder des vidéos relatives à la vidéo courante</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="544"/>
+ <location filename="src/mainwindow.cpp" line="553"/>
<source>&Application</source>
<translation>&Application</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="515"/>
+ <location filename="src/mainwindow.cpp" line="537"/>
<source>Buy %1...</source>
<translation>Acheter %1 …</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="558"/>
+ <location filename="src/mainwindow.cpp" line="567"/>
<source>&Playback</source>
<translation>&Lecture</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="572"/>
+ <location filename="src/mainwindow.cpp" line="581"/>
<source>&Playlist</source>
<translation>&Liste de lecture</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="581"/>
+ <location filename="src/mainwindow.cpp" line="590"/>
<source>&Video</source>
<translation>&Vidéo</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="594"/>
+ <location filename="src/mainwindow.cpp" line="605"/>
<source>&View</source>
<translation>&Vue</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="601"/>
+ <location filename="src/mainwindow.cpp" line="612"/>
<source>&Share</source>
<translation>&Partager</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="615"/>
+ <location filename="src/mainwindow.cpp" line="626"/>
<source>&Help</source>
<translation>&Aide</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="690"/>
+ <location filename="src/mainwindow.cpp" line="701"/>
<source>Press %1 to raise the volume, %2 to lower it</source>
<translation>Appuyer sur %1 pour augmenter le volume, sur %2 pour le baisser</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="889"/>
- <location filename="src/mainwindow.cpp" line="895"/>
+ <location filename="src/mainwindow.cpp" line="910"/>
+ <location filename="src/mainwindow.cpp" line="916"/>
<source>Opening %1</source>
<translation>Ouverture de %1</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="936"/>
+ <location filename="src/mainwindow.cpp" line="959"/>
<source>Do you want to exit %1 with a download in progress?</source>
<translation>Voulez-vous vraiment quitter %1 avec un téléchargement en cours ?</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="937"/>
+ <location filename="src/mainwindow.cpp" line="960"/>
<source>If you close %1 now, this download will be cancelled.</source>
<translation>Si vous fermez %1 maintenant, ce téléchargement sera annulé.</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="942"/>
+ <location filename="src/mainwindow.cpp" line="965"/>
<source>Close and cancel download</source>
<translation>Fermer et annuler le téléchargement</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="943"/>
+ <location filename="src/mainwindow.cpp" line="966"/>
<source>Wait for download to finish</source>
<translation>Attendez la fin du téléchargement</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="1102"/>
+ <location filename="src/mainwindow.cpp" line="1125"/>
<source>Leave &Full Screen</source>
<translation>Quitter le &mode plein écran</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="1475"/>
+ <location filename="src/mainwindow.cpp" line="1515"/>
<source>%1 version %2 is now available.</source>
<translation>%1 version %2 est maintenant disponible</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="1479"/>
+ <location filename="src/mainwindow.cpp" line="1519"/>
<source>Remind me later</source>
<translation>Me rappeler plus tard</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="1480"/>
+ <location filename="src/mainwindow.cpp" line="1520"/>
<source>Update</source>
<translation>Mettre à jour</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="982"/>
+ <location filename="src/mainwindow.cpp" line="1005"/>
<source>Error: %1</source>
<translation>Erreur : %1</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="222"/>
+ <location filename="src/mainwindow.cpp" line="246"/>
<source>P&revious</source>
<translation>P&récédent</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="223"/>
+ <location filename="src/mainwindow.cpp" line="247"/>
<source>Go back to the previous track</source>
<translation>Aller à la piste précédente</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="262"/>
+ <location filename="src/mainwindow.cpp" line="281"/>
<source>&Compact Mode</source>
<translation>&Mode compact</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="275"/>
+ <location filename="src/mainwindow.cpp" line="294"/>
<source>Open the &YouTube Page</source>
<translation>Ouvrir la page &Youtube</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="282"/>
+ <location filename="src/mainwindow.cpp" line="301"/>
<source>Copy the YouTube &Link</source>
<translation>Copier le &lien Youtube</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="289"/>
+ <location filename="src/mainwindow.cpp" line="308"/>
<source>Copy the Video Stream &URL</source>
<translation>Copier l'&URL du flux vidéo </translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="296"/>
+ <location filename="src/mainwindow.cpp" line="315"/>
<source>Find Video &Parts</source>
<translation>Trouver les &parties de la vidéo</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="324"/>
+ <location filename="src/mainwindow.cpp" line="343"/>
<source>&Clear Recent Searches</source>
<translation>&Effacer les recherches récentes </translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="348"/>
+ <location filename="src/mainwindow.cpp" line="367"/>
<source>Make a &Donation</source>
<translation>Faire un &Don</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="405"/>
+ <location filename="src/mainwindow.cpp" line="424"/>
<source>&Manually Start Playing</source>
<translation>&</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="406"/>
+ <location filename="src/mainwindow.cpp" line="425"/>
<source>Manually start playing videos</source>
<translation>Démarrer manuellement la lecture de vidéos</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="728"/>
+ <location filename="src/mainwindow.cpp" line="739"/>
<source>Choose your content location</source>
- <translation type="unfinished"/>
+ <translation>Choisissez l'emplacement de votre contenu</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="1002"/>
+ <location filename="src/mainwindow.cpp" line="1025"/>
<source>&Play</source>
<translation>&Jouer</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="1003"/>
+ <location filename="src/mainwindow.cpp" line="1026"/>
<source>Resume playback</source>
<translation>Relancer la lecture</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="1236"/>
+ <location filename="src/mainwindow.cpp" line="1277"/>
<source>Remaining time: %1</source>
<translation>Temps restant : %1</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="1294"/>
+ <location filename="src/mainwindow.cpp" line="1335"/>
<source>Volume at %1%</source>
<translation>Volume à %1</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="1300"/>
+ <location filename="src/mainwindow.cpp" line="1341"/>
<source>Volume is muted</source>
<translation>Volume OFF</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="1303"/>
+ <location filename="src/mainwindow.cpp" line="1344"/>
<source>Volume is unmuted</source>
<translation>Volume ON</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="1310"/>
+ <location filename="src/mainwindow.cpp" line="1351"/>
<source>Maximum video definition set to %1</source>
<translation>Résolution vidéo maximale fixée à %1</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="1351"/>
+ <location filename="src/mainwindow.cpp" line="1392"/>
<source>Your privacy is now safe</source>
<translation>Votre confidentialité est maintenant respectée</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="1366"/>
+ <location filename="src/mainwindow.cpp" line="1407"/>
<source>Downloads complete</source>
<translation>Téléchargements terminés</translation>
</message>
<context>
<name>MediaView</name>
<message>
- <location filename="src/mediaview.cpp" line="553"/>
+ <location filename="src/mediaview.cpp" line="563"/>
<source>You can now paste the YouTube link into another application</source>
<translation>Vous pouvez maintenant copier l'adresse Youtube dans une autre application</translation>
</message>
<message>
- <location filename="src/mediaview.cpp" line="561"/>
+ <location filename="src/mediaview.cpp" line="571"/>
<source>You can now paste the video stream URL into another application</source>
<translation>Vous pouvez maintenant coller l'adresse du flux vidéo dans une autre application</translation>
</message>
<message>
- <location filename="src/mediaview.cpp" line="562"/>
+ <location filename="src/mediaview.cpp" line="572"/>
<source>The link will be valid only for a limited time.</source>
<translation>Le lien ne sera valide que pour un temps limité.</translation>
</message>
<message>
- <location filename="src/mediaview.cpp" line="636"/>
+ <location filename="src/mediaview.cpp" line="650"/>
<source>This is just the demo version of %1.</source>
<translation>C'est juste la version démo de %1.</translation>
</message>
<message>
- <location filename="src/mediaview.cpp" line="637"/>
+ <location filename="src/mediaview.cpp" line="651"/>
<source>It allows you to test the application and see if it works for you.</source>
<translation>Cela vous permet de tester l'application et voir si cela fonctionne pour vous.</translation>
</message>
<message>
- <location filename="src/mediaview.cpp" line="667"/>
+ <location filename="src/mediaview.cpp" line="681"/>
<source>Continue</source>
<translation>Continuer</translation>
</message>
<message>
- <location filename="src/mediaview.cpp" line="756"/>
+ <location filename="src/mediaview.cpp" line="772"/>
<source>of</source>
<comment>Used in video parts, as in '2 of 3'</comment>
<translation>de</translation>
</message>
<message>
- <location filename="src/mediaview.cpp" line="768"/>
+ <location filename="src/mediaview.cpp" line="785"/>
<source>part</source>
<comment>This is for video parts, as in 'Cool video - part 1'</comment>
<translation>partie</translation>
</message>
<message>
- <location filename="src/mediaview.cpp" line="770"/>
+ <location filename="src/mediaview.cpp" line="787"/>
<source>episode</source>
<comment>This is for video parts, as in 'Cool series - episode 1'</comment>
<translation>épisode</translation>
</message>
<message>
- <location filename="src/mediaview.cpp" line="847"/>
+ <location filename="src/mediaview.cpp" line="868"/>
<source>Sent from %1</source>
<translation>Envoyé par %1</translation>
</message>
<message>
- <location filename="src/mediaview.cpp" line="644"/>
+ <location filename="src/mediaview.cpp" line="899"/>
+ <source>Unsubscribe from %1</source>
+ <translation>Se désabonner de %1</translation>
+ </message>
+ <message>
+ <location filename="src/mediaview.cpp" line="903"/>
+ <source>Subscribe to %1</source>
+ <translation>S'abonner à %1</translation>
+ </message>
+ <message>
+ <location filename="src/mediaview.cpp" line="658"/>
<source>Get the full version</source>
<translation>Obtenir la version complète</translation>
</message>
<message>
- <location filename="src/mediaview.cpp" line="681"/>
+ <location filename="src/mediaview.cpp" line="695"/>
<source>Downloading %1</source>
<translation>%1 Téléchargement</translation>
</message>
<context>
<name>PlaylistItemDelegate</name>
<message>
- <location filename="src/playlistitemdelegate.cpp" line="159"/>
+ <location filename="src/playlistitemdelegate.cpp" line="177"/>
<source>%1 views</source>
<translation>%1 vues</translation>
</message>
<message>
- <location filename="src/playlistitemdelegate.cpp" line="285"/>
+ <location filename="src/playlistitemdelegate.cpp" line="292"/>
<source>%1 of %2 (%3) — %4</source>
- <translation type="unfinished"/>
+ <translation>%1 de %2 (%3) — %4</translation>
</message>
<message>
- <location filename="src/playlistitemdelegate.cpp" line="292"/>
+ <location filename="src/playlistitemdelegate.cpp" line="299"/>
<source>Preparing</source>
- <translation type="unfinished"/>
+ <translation>Préparation</translation>
</message>
<message>
- <location filename="src/playlistitemdelegate.cpp" line="294"/>
+ <location filename="src/playlistitemdelegate.cpp" line="301"/>
<source>Failed</source>
- <translation type="unfinished"/>
+ <translation>Échec</translation>
</message>
<message>
- <location filename="src/playlistitemdelegate.cpp" line="296"/>
+ <location filename="src/playlistitemdelegate.cpp" line="303"/>
<source>Completed</source>
- <translation type="unfinished"/>
+ <translation>Terminé</translation>
</message>
<message>
- <location filename="src/playlistitemdelegate.cpp" line="298"/>
+ <location filename="src/playlistitemdelegate.cpp" line="305"/>
<source>Stopped</source>
- <translation type="unfinished"/>
+ <translation>Arrêté</translation>
</message>
<message>
- <location filename="src/playlistitemdelegate.cpp" line="334"/>
+ <location filename="src/playlistitemdelegate.cpp" line="341"/>
<source>Stop downloading</source>
- <translation type="unfinished"/>
+ <translation>Arrêter le téléchargement</translation>
</message>
<message>
- <location filename="src/playlistitemdelegate.cpp" line="344"/>
+ <location filename="src/playlistitemdelegate.cpp" line="351"/>
<source>Show in %1</source>
- <translation type="unfinished"/>
+ <translation>Montrer dans %1</translation>
</message>
<message>
- <location filename="src/playlistitemdelegate.cpp" line="346"/>
+ <location filename="src/playlistitemdelegate.cpp" line="353"/>
<source>Open parent folder</source>
- <translation type="unfinished"/>
+ <translation>Ouvrir le dossier parent</translation>
</message>
<message>
- <location filename="src/playlistitemdelegate.cpp" line="355"/>
+ <location filename="src/playlistitemdelegate.cpp" line="362"/>
<source>Restart downloading</source>
- <translation type="unfinished"/>
+ <translation>Redémarrer le téléchargement</translation>
</message>
</context>
<context>
<message>
<location filename="src/playlistmodel.cpp" line="53"/>
<source>Show %1 More</source>
- <translation type="unfinished"/>
+ <translation>Afficher %1 de plus</translation>
</message>
<message>
<location filename="src/playlistmodel.cpp" line="54"/>
<message>
<location filename="src/playlistmodel.cpp" line="55"/>
<source>No more videos</source>
- <translation type="unfinished"/>
+ <translation>Il n'y a plus de vidéos</translation>
</message>
</context>
<context>
<message>
<location filename="src/regionsview.cpp" line="19"/>
<source>Done</source>
- <translation type="unfinished"/>
+ <translation>Terminé</translation>
</message>
</context>
<context>
<context>
<name>SearchView</name>
<message>
- <location filename="src/searchview.cpp" line="71"/>
+ <location filename="src/searchview.cpp" line="66"/>
<source>Welcome to <a href='%1'>%2</a>,</source>
<translation>Bienvenue sur <a href='%1'>%2</a>,</translation>
</message>
<message>
- <location filename="src/searchview.cpp" line="50"/>
+ <location filename="src/searchview.cpp" line="161"/>
<source>Get the full version</source>
<translation>Obtenir la version complète</translation>
</message>
<message>
- <location filename="src/searchview.cpp" line="85"/>
+ <location filename="src/searchview.cpp" line="80"/>
<source>Enter</source>
<extracomment>"Enter", as in "type". The whole phrase says: "Enter a keyword to start watching videos"</extracomment>
<translation>Entrer</translation>
</message>
<message>
- <location filename="src/searchview.cpp" line="90"/>
+ <location filename="src/searchview.cpp" line="85"/>
<source>a keyword</source>
<translation>un mot-clé</translation>
</message>
<message>
- <location filename="src/searchview.cpp" line="91"/>
+ <location filename="src/searchview.cpp" line="86"/>
<source>a channel</source>
<translation>une chaîne</translation>
</message>
<message>
- <location filename="src/searchview.cpp" line="96"/>
+ <location filename="src/searchview.cpp" line="91"/>
<source>to start watching videos.</source>
<translation>pour commencer à regarder des vidéos.</translation>
</message>
<message>
- <location filename="src/searchview.cpp" line="120"/>
+ <location filename="src/searchview.cpp" line="115"/>
<source>Watch</source>
<translation>Regarder</translation>
</message>
<message>
- <location filename="src/searchview.cpp" line="138"/>
+ <location filename="src/searchview.cpp" line="133"/>
<source>Recent keywords</source>
<translation>Derniers mots-clés</translation>
</message>
<message>
- <location filename="src/searchview.cpp" line="151"/>
+ <location filename="src/searchview.cpp" line="146"/>
<source>Recent channels</source>
<translation>Chaînes récentes</translation>
</message>
<context>
<name>SidebarHeader</name>
<message>
- <location filename="src/sidebarheader.cpp" line="16"/>
- <location filename="src/sidebarheader.cpp" line="23"/>
+ <location filename="src/sidebarheader.cpp" line="19"/>
+ <location filename="src/sidebarheader.cpp" line="26"/>
<source>&Back</source>
<translation>&Retour</translation>
</message>
<message>
<location filename="src/sidebarheader.cpp" line="57"/>
<source>Forward to %1</source>
- <translation type="unfinished"/>
+ <translation>Continuer à %1</translation>
</message>
<message>
<location filename="src/sidebarheader.cpp" line="70"/>
<source>Back to %1</source>
- <translation type="unfinished"/>
+ <translation>Revenir à %1</translation>
</message>
</context>
<context>
<message>
<location filename="src/standardfeedsview.cpp" line="85"/>
<source>Most Popular</source>
- <translation type="unfinished"/>
- </message>
- <message>
- <location filename="src/standardfeedsview.cpp" line="86"/>
- <source>Featured</source>
- <translation type="unfinished"/>
+ <translation>Les plus populaires</translation>
</message>
<message>
<location filename="src/standardfeedsview.cpp" line="87"/>
<source>Most Shared</source>
- <translation type="unfinished"/>
+ <translation>Les plus partagées</translation>
</message>
<message>
<location filename="src/standardfeedsview.cpp" line="88"/>
<source>Most Discussed</source>
- <translation type="unfinished"/>
+ <translation>Les plus commentées</translation>
</message>
<message>
<location filename="src/standardfeedsview.cpp" line="89"/>
<source>Top Rated</source>
- <translation type="unfinished"/>
+ <translation>Les mieux notées</translation>
+ </message>
+ <message>
+ <location filename="src/standardfeedsview.cpp" line="90"/>
+ <source>All Time Popular</source>
+ <translation>Les plus populaires de tous les temps</translation>
</message>
</context>
<context>
<name>Video</name>
<message>
- <location filename="src/video.cpp" line="213"/>
+ <location filename="src/video.cpp" line="215"/>
<source>Cannot get video stream for %1</source>
<translation>Impossible d'obtenir le flux vidéo de %1</translation>
</message>
<message>
- <location filename="src/video.cpp" line="231"/>
+ <location filename="src/video.cpp" line="233"/>
<source>Network error: %1 for %2</source>
<translation>Erreur réseau : %1 pour %2</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="8"/>
<source>Algeria</source>
- <translation type="unfinished"/>
+ <translation>Algérie</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="9"/>
<source>Argentina</source>
- <translation type="unfinished"/>
+ <translation>Argentine</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="10"/>
<source>Australia</source>
- <translation type="unfinished"/>
+ <translation>Australie</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="11"/>
<source>Belgium</source>
- <translation type="unfinished"/>
+ <translation>Belgique</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="12"/>
<source>Brazil</source>
- <translation type="unfinished"/>
+ <translation>Brésil</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="13"/>
<source>Canada</source>
- <translation type="unfinished"/>
+ <translation>Canada</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="14"/>
<source>Chile</source>
- <translation type="unfinished"/>
+ <translation>Chili</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="15"/>
<source>Colombia</source>
- <translation type="unfinished"/>
+ <translation>Colombie</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="16"/>
<source>Czech Republic</source>
- <translation type="unfinished"/>
+ <translation>République Tchèque</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="17"/>
<source>Egypt</source>
- <translation type="unfinished"/>
+ <translation>Égypte</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="18"/>
<source>France</source>
- <translation type="unfinished"/>
+ <translation>France</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="19"/>
<source>Germany</source>
- <translation type="unfinished"/>
+ <translation>Allemagne</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="20"/>
<source>Ghana</source>
- <translation type="unfinished"/>
+ <translation>Ghana</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="21"/>
<source>Greece</source>
- <translation type="unfinished"/>
+ <translation>Grèce</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="22"/>
<source>Hong Kong</source>
- <translation type="unfinished"/>
+ <translation>Hong Kong</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="23"/>
<source>Hungary</source>
- <translation type="unfinished"/>
+ <translation>Hongrie</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="24"/>
<source>India</source>
- <translation type="unfinished"/>
+ <translation>Inde</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="25"/>
<source>Indonesia</source>
- <translation type="unfinished"/>
+ <translation>Indonésie</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="26"/>
<source>Ireland</source>
- <translation type="unfinished"/>
+ <translation>Irelande</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="27"/>
<source>Israel</source>
- <translation type="unfinished"/>
+ <translation>Israël</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="28"/>
<source>Italy</source>
- <translation type="unfinished"/>
+ <translation>Italie</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="29"/>
<source>Japan</source>
- <translation type="unfinished"/>
+ <translation>Japon</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="30"/>
<source>Jordan</source>
- <translation type="unfinished"/>
+ <translation>Jordanie</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="31"/>
<source>Kenya</source>
- <translation type="unfinished"/>
+ <translation>Kenya</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="32"/>
<source>Malaysia</source>
- <translation type="unfinished"/>
+ <translation>Malaisie</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="33"/>
<source>Mexico</source>
- <translation type="unfinished"/>
+ <translation>Mexique</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="34"/>
<source>Morocco</source>
- <translation type="unfinished"/>
+ <translation>Maroc</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="35"/>
<source>Netherlands</source>
- <translation type="unfinished"/>
+ <translation>Pays-Bas</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="36"/>
<source>New Zealand</source>
- <translation type="unfinished"/>
+ <translation>Nouvelle Zélande</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="37"/>
<source>Nigeria</source>
- <translation type="unfinished"/>
+ <translation>Nigeria</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="38"/>
<source>Peru</source>
- <translation type="unfinished"/>
+ <translation>Pérou</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="39"/>
<source>Philippines</source>
- <translation type="unfinished"/>
+ <translation>Philippines</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="40"/>
<source>Poland</source>
- <translation type="unfinished"/>
+ <translation>Pologne</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="41"/>
<source>Russia</source>
- <translation type="unfinished"/>
+ <translation>Russie</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="42"/>
<source>Saudi Arabia</source>
- <translation type="unfinished"/>
+ <translation>Arabie Saoudite</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="43"/>
<source>Singapore</source>
- <translation type="unfinished"/>
+ <translation>Singapour</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="44"/>
<source>South Africa</source>
- <translation type="unfinished"/>
+ <translation>Afrique du Sud</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="45"/>
<source>South Korea</source>
- <translation type="unfinished"/>
+ <translation>Corée du Sud</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="46"/>
<source>Spain</source>
- <translation type="unfinished"/>
+ <translation>Espagne</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="47"/>
<source>Sweden</source>
- <translation type="unfinished"/>
+ <translation>Suède</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="48"/>
<source>Taiwan</source>
- <translation type="unfinished"/>
+ <translation>Taïwan</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="49"/>
<source>Tunisia</source>
- <translation type="unfinished"/>
+ <translation>Tunisie</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="50"/>
<source>Turkey</source>
- <translation type="unfinished"/>
+ <translation>Turquie</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="51"/>
<source>Uganda</source>
- <translation type="unfinished"/>
+ <translation>Ouganda</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="52"/>
<source>United Arab Emirates</source>
- <translation type="unfinished"/>
+ <translation>Émirats Arabes unis</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="53"/>
<source>United Kingdom</source>
- <translation type="unfinished"/>
+ <translation>Royaume Uni</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="54"/>
<source>Yemen</source>
- <translation type="unfinished"/>
+ <translation>Yémen</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="128"/>
<source>Worldwide</source>
- <translation type="unfinished"/>
+ <translation>Monde entier</translation>
</message>
</context>
</TS>
\ No newline at end of file
<message>
<location filename="src/aboutview.cpp" line="38"/>
<source>Licensed to: %1</source>
- <translation type="unfinished"/>
+ <translation>הרישוי לטובת: %1</translation>
</message>
<message>
<location filename="src/aboutview.cpp" line="42"/>
<message>
<location filename="local/src/activationdialog.cpp" line="17"/>
<source>Enter your License Details</source>
- <translation type="unfinished"/>
+ <translation>נא להזין את פרטי הרישוי שלך</translation>
</message>
<message>
<location filename="local/src/activationdialog.cpp" line="29"/>
<source>&Email:</source>
- <translation type="unfinished"/>
+ <translation>&דוא״ל:</translation>
</message>
<message>
<location filename="local/src/activationdialog.cpp" line="35"/>
<source>&Code:</source>
- <translation type="unfinished"/>
+ <translation>&קוד:</translation>
</message>
</context>
<context>
<message>
<location filename="local/src/activationview.cpp" line="55"/>
<source>Without a license, the application will expire in %1 days.</source>
- <translation type="unfinished"/>
+ <translation>ללא רישיון היישום יפוג בעוד %1 ימים.</translation>
</message>
<message>
<location filename="local/src/activationview.cpp" line="57"/>
<message>
<location filename="local/src/activationview.cpp" line="77"/>
<source>Enter License</source>
- <translation type="unfinished"/>
+ <translation>הזנת רישיון</translation>
</message>
<message>
<location filename="local/src/activationview.cpp" line="85"/>
<source>Buy License</source>
+ <translation>רכישת רישיון</translation>
+ </message>
+</context>
+<context>
+ <name>ChannelAggregator</name>
+ <message>
+ <location filename="src/channelaggregator.cpp" line="110"/>
+ <source>By %1</source>
+ <translation type="unfinished"/>
+ </message>
+ <message numerus="yes">
+ <location filename="src/channelaggregator.cpp" line="112"/>
+ <source>You have %n new video(s)</source>
+ <translation type="unfinished"><numerusform></numerusform><numerusform></numerusform></translation>
+ </message>
+</context>
+<context>
+ <name>ChannelItemDelegate</name>
+ <message>
+ <location filename="src/channelitemdelegate.cpp" line="46"/>
+ <source>All Videos</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="src/channelitemdelegate.cpp" line="63"/>
+ <source>Unwatched Videos</source>
+ <translation type="unfinished"/>
+ </message>
+</context>
+<context>
+ <name>ChannelView</name>
+ <message>
+ <location filename="src/channelview.cpp" line="75"/>
+ <source>Mark all as watched</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="src/channelview.cpp" line="83"/>
+ <source>Show Updated</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="src/channelview.cpp" line="95"/>
+ <source>Name</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="src/channelview.cpp" line="102"/>
+ <source>Last Updated</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="src/channelview.cpp" line="109"/>
+ <source>Last Added</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="src/channelview.cpp" line="116"/>
+ <source>Last Watched</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="src/channelview.cpp" line="123"/>
+ <source>Most Watched</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="src/channelview.cpp" line="131"/>
+ <source>Sort by</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="src/channelview.cpp" line="190"/>
+ <source>All Videos</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="src/channelview.cpp" line="194"/>
+ <source>Unwatched Videos</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="src/channelview.cpp" line="206"/>
+ <source>There are no updated subscriptions at this time.</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="src/channelview.cpp" line="208"/>
+ <source>You have no subscriptions. Use the star symbol to subscribe to channels.</source>
<translation type="unfinished"/>
</message>
</context>
<message>
<location filename="local/src/updatedialog.cpp" line="60"/>
<source>Downloading update...</source>
- <translation type="unfinished"/>
+ <translation>העדכון מתקבל...</translation>
</message>
</context>
<context>
<context>
<name>HomeView</name>
<message>
- <location filename="src/homeview.cpp" line="33"/>
+ <location filename="src/homeview.cpp" line="38"/>
<source>Search</source>
<translation>חיפוש</translation>
</message>
<message>
- <location filename="src/homeview.cpp" line="35"/>
+ <location filename="src/homeview.cpp" line="40"/>
<source>Find videos and channels by keyword</source>
- <translation type="unfinished"/>
+ <translation>חיפוש סרטוני וידאו וערוצים לפי מילת מפתח</translation>
</message>
<message>
- <location filename="src/homeview.cpp" line="40"/>
+ <location filename="src/homeview.cpp" line="45"/>
<source>Browse</source>
- <translation type="unfinished"/>
+ <translation>עיון</translation>
</message>
<message>
- <location filename="src/homeview.cpp" line="42"/>
+ <location filename="src/homeview.cpp" line="47"/>
<source>Browse videos by category</source>
+ <translation>עיון בקטעי וידאו לפי קטגוריה</translation>
+ </message>
+ <message>
+ <location filename="src/homeview.cpp" line="51"/>
+ <source>Subscriptions</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="src/homeview.cpp" line="53"/>
+ <source>Channel subscriptions</source>
<translation type="unfinished"/>
</message>
<message>
<context>
<name>LoadingWidget</name>
<message>
- <location filename="src/loadingwidget.cpp" line="90"/>
+ <location filename="src/loadingwidget.cpp" line="88"/>
<source>Error</source>
<translation>שגיאה</translation>
</message>
<context>
<name>MainWindow</name>
<message>
- <location filename="src/mainwindow.cpp" line="213"/>
+ <location filename="src/mainwindow.cpp" line="237"/>
<source>&Stop</source>
<translation>&עצירה</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="214"/>
+ <location filename="src/mainwindow.cpp" line="238"/>
<source>Stop playback and go back to the search view</source>
<translation>עצירת הנגינה וחזרה אל תצוגת החיפוש</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="232"/>
+ <location filename="src/mainwindow.cpp" line="253"/>
<source>S&kip</source>
<translation>&דילוג</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="233"/>
+ <location filename="src/mainwindow.cpp" line="254"/>
<source>Skip to the next video</source>
<translation>דילוג אל הסרטון הבא</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="239"/>
- <location filename="src/mainwindow.cpp" line="989"/>
+ <location filename="src/mainwindow.cpp" line="260"/>
+ <location filename="src/mainwindow.cpp" line="1012"/>
<source>&Pause</source>
<translation>ה&שהיה</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="240"/>
- <location filename="src/mainwindow.cpp" line="990"/>
+ <location filename="src/mainwindow.cpp" line="261"/>
+ <location filename="src/mainwindow.cpp" line="1013"/>
<source>Pause playback</source>
<translation>השהיית הנגינה</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="246"/>
+ <location filename="src/mainwindow.cpp" line="267"/>
<source>&Full Screen</source>
<translation>&מסך מלא</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="247"/>
+ <location filename="src/mainwindow.cpp" line="268"/>
<source>Go full screen</source>
<translation>מעבר למסך מלא</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="263"/>
+ <location filename="src/mainwindow.cpp" line="282"/>
<source>Hide the playlist and the toolbar</source>
<translation>הסתרת רשימת ההשמעה וסרגל הכלים</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="276"/>
+ <location filename="src/mainwindow.cpp" line="295"/>
<source>Go to the YouTube video page and pause playback</source>
<translation>מעבר לעמוד הווידאו ב־YouTube והשהיית הנגינה.</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="283"/>
+ <location filename="src/mainwindow.cpp" line="302"/>
<source>Copy the current video YouTube link to the clipboard</source>
<translation>העתקת הקישור אל הווידאו הנוכחי אל לוח הגזירים</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="290"/>
+ <location filename="src/mainwindow.cpp" line="309"/>
<source>Copy the current video stream URL to the clipboard</source>
<translation>העתקת כתובת תזרים הווידאו אל לוח הגזירים</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="297"/>
+ <location filename="src/mainwindow.cpp" line="316"/>
<source>Find other video parts hopefully in the right order</source>
<translation>חיפוש חלקים אחרים בתקווה שהם בסדר הנכון</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="303"/>
+ <location filename="src/mainwindow.cpp" line="322"/>
<source>&Remove</source>
<translation>ה&סרה</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="304"/>
+ <location filename="src/mainwindow.cpp" line="323"/>
<source>Remove the selected videos from the playlist</source>
<translation>הסרת הסרטונים הנבחרים מרשימת ההשמעה</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="310"/>
+ <location filename="src/mainwindow.cpp" line="329"/>
<source>Move &Up</source>
<translation>הזזה מ&מעלה</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="311"/>
+ <location filename="src/mainwindow.cpp" line="330"/>
<source>Move up the selected videos in the playlist</source>
<translation>הזזת הסרטונים הנבחרים במעלה רשימת ההשמעה</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="317"/>
+ <location filename="src/mainwindow.cpp" line="336"/>
<source>Move &Down</source>
<translation>הזזה מ&טה</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="318"/>
+ <location filename="src/mainwindow.cpp" line="337"/>
<source>Move down the selected videos in the playlist</source>
<translation>הזזת הסרטונים הנבחרים במורד רשימת ההשמעה</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="329"/>
+ <location filename="src/mainwindow.cpp" line="348"/>
<source>Clear the search history. Cannot be undone.</source>
<translation>מחיקת היסטוריית החיפוש. לא ניתן לבטל</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="334"/>
+ <location filename="src/mainwindow.cpp" line="353"/>
<source>&Quit</source>
<translation>י&ציאה</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="337"/>
+ <location filename="src/mainwindow.cpp" line="356"/>
<source>Bye</source>
<translation>להתראות</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="341"/>
+ <location filename="src/mainwindow.cpp" line="360"/>
<source>&Website</source>
<translation>&אתר האינטרנט</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="343"/>
+ <location filename="src/mainwindow.cpp" line="362"/>
<source>%1 on the Web</source>
<translation>%1 באינטרנט</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="349"/>
+ <location filename="src/mainwindow.cpp" line="368"/>
<source>Please support the continued development of %1</source>
<translation>אנא תמכו בהמשך הפיתוח של %1</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="354"/>
+ <location filename="src/mainwindow.cpp" line="373"/>
<source>&About</source>
<translation>&על אודות</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="356"/>
+ <location filename="src/mainwindow.cpp" line="375"/>
<source>Info about %1</source>
<translation>מידע אודות %1</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="364"/>
+ <location filename="src/mainwindow.cpp" line="383"/>
<source>Search</source>
<translation>חיפוש</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="383"/>
+ <location filename="src/mainwindow.cpp" line="402"/>
<source>Mute volume</source>
<translation>השתקת השמע</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="412"/>
- <location filename="src/mainwindow.cpp" line="1365"/>
+ <location filename="src/mainwindow.cpp" line="431"/>
+ <location filename="src/mainwindow.cpp" line="1406"/>
<source>&Downloads</source>
<translation>הו&רדות</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="413"/>
+ <location filename="src/mainwindow.cpp" line="432"/>
<source>Show details about video downloads</source>
<translation>הצגת פרטים על אודות הורדות וידאו</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="421"/>
+ <location filename="src/mainwindow.cpp" line="440"/>
<source>&Download</source>
<translation>הו&רדה</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="422"/>
+ <location filename="src/mainwindow.cpp" line="441"/>
<source>Download the current video</source>
<translation>הורדת סרטון הווידאו הנוכחי</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="441"/>
+ <location filename="src/mainwindow.cpp" line="458"/>
+ <source>&Subscribe to Channel</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="src/mainwindow.cpp" line="465"/>
<source>Share the current video using %1</source>
<translation>שיתוף הווידאו הנוכחי דרך %1</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="458"/>
+ <location filename="src/mainwindow.cpp" line="482"/>
<source>&Email</source>
<translation>&דוא״ל</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="459"/>
+ <location filename="src/mainwindow.cpp" line="483"/>
<source>Email</source>
<translation>דוא״ל</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="463"/>
+ <location filename="src/mainwindow.cpp" line="487"/>
<source>&Close</source>
<translation>&סגירה</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="473"/>
+ <location filename="src/mainwindow.cpp" line="497"/>
<source>&Float on Top</source>
<translation>&ציפה מלמעלה</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="478"/>
+ <location filename="src/mainwindow.cpp" line="502"/>
<source>&Stop After This Video</source>
<translation>ל&עצור לאחר וידאו זה</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="485"/>
+ <location filename="src/mainwindow.cpp" line="509"/>
<source>&Report an Issue...</source>
<translation>&דיווח על תקלה...</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="489"/>
+ <location filename="src/mainwindow.cpp" line="513"/>
<source>&Refine Search...</source>
<translation>&שיפור החיפוש...</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="501"/>
+ <location filename="src/mainwindow.cpp" line="525"/>
<source>More...</source>
- <translation type="unfinished"/>
+ <translation>עוד...</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="504"/>
+ <location filename="src/mainwindow.cpp" line="528"/>
<source>&Related Videos</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="506"/>
+ <location filename="src/mainwindow.cpp" line="530"/>
<source>Watch videos related to the current one</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="544"/>
+ <location filename="src/mainwindow.cpp" line="553"/>
<source>&Application</source>
<translation>&יישום</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="515"/>
+ <location filename="src/mainwindow.cpp" line="537"/>
<source>Buy %1...</source>
<translation>רכישת %1...</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="558"/>
+ <location filename="src/mainwindow.cpp" line="567"/>
<source>&Playback</source>
<translation>נ&גינה</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="572"/>
+ <location filename="src/mainwindow.cpp" line="581"/>
<source>&Playlist</source>
<translation>&רשימת השמעה</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="581"/>
+ <location filename="src/mainwindow.cpp" line="590"/>
<source>&Video</source>
<translation>&וידאו</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="594"/>
+ <location filename="src/mainwindow.cpp" line="605"/>
<source>&View</source>
<translation>&צפייה</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="601"/>
+ <location filename="src/mainwindow.cpp" line="612"/>
<source>&Share</source>
<translation>&שיתוף</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="615"/>
+ <location filename="src/mainwindow.cpp" line="626"/>
<source>&Help</source>
<translation>&עזרה</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="690"/>
+ <location filename="src/mainwindow.cpp" line="701"/>
<source>Press %1 to raise the volume, %2 to lower it</source>
<translation>ניתן ללחוץ על %1 כדי להגביר את עצמת השמע, %2 כדי להנמיך אותה</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="889"/>
- <location filename="src/mainwindow.cpp" line="895"/>
+ <location filename="src/mainwindow.cpp" line="910"/>
+ <location filename="src/mainwindow.cpp" line="916"/>
<source>Opening %1</source>
<translation>%1 נפתח</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="936"/>
+ <location filename="src/mainwindow.cpp" line="959"/>
<source>Do you want to exit %1 with a download in progress?</source>
<translation>האם ברצונך לצאת מ־%1 כאשר ישנה הורדה פעילה?</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="937"/>
+ <location filename="src/mainwindow.cpp" line="960"/>
<source>If you close %1 now, this download will be cancelled.</source>
<translation>אם %1 ייסגר כעת, הורדה זו תבוטל.</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="942"/>
+ <location filename="src/mainwindow.cpp" line="965"/>
<source>Close and cancel download</source>
<translation>סגירה וביטול ההורדה</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="943"/>
+ <location filename="src/mainwindow.cpp" line="966"/>
<source>Wait for download to finish</source>
<translation>יש להמתין לסיום ההורדה</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="1102"/>
+ <location filename="src/mainwindow.cpp" line="1125"/>
<source>Leave &Full Screen</source>
<translation>יציאה ממ&סך מלא</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="1475"/>
+ <location filename="src/mainwindow.cpp" line="1515"/>
<source>%1 version %2 is now available.</source>
<translation>%1 בגרסה %2 זמין כעת.</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="1479"/>
+ <location filename="src/mainwindow.cpp" line="1519"/>
<source>Remind me later</source>
<translation>להזכיר לי מאוחר יותר</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="1480"/>
+ <location filename="src/mainwindow.cpp" line="1520"/>
<source>Update</source>
<translation>עדכון</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="982"/>
+ <location filename="src/mainwindow.cpp" line="1005"/>
<source>Error: %1</source>
<translation>שגיאה: %1</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="222"/>
+ <location filename="src/mainwindow.cpp" line="246"/>
<source>P&revious</source>
<translation>ה&קודם</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="223"/>
+ <location filename="src/mainwindow.cpp" line="247"/>
<source>Go back to the previous track</source>
<translation>חזרה לרצועה הקודמת</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="262"/>
+ <location filename="src/mainwindow.cpp" line="281"/>
<source>&Compact Mode</source>
<translation>מ&צב חסכוני</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="275"/>
+ <location filename="src/mainwindow.cpp" line="294"/>
<source>Open the &YouTube Page</source>
<translation>פתיחת העמוד ב&יוטיוב</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="282"/>
+ <location filename="src/mainwindow.cpp" line="301"/>
<source>Copy the YouTube &Link</source>
<translation>העתקת ה&קישור ליוטיוב</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="289"/>
+ <location filename="src/mainwindow.cpp" line="308"/>
<source>Copy the Video Stream &URL</source>
<translation>העתקת כתובת ת&זרים הווידאו</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="296"/>
+ <location filename="src/mainwindow.cpp" line="315"/>
<source>Find Video &Parts</source>
<translation>חיפוש ק&טעי וידאו</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="324"/>
+ <location filename="src/mainwindow.cpp" line="343"/>
<source>&Clear Recent Searches</source>
<translation>&ניקוי החיפושים האחרונים</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="348"/>
+ <location filename="src/mainwindow.cpp" line="367"/>
<source>Make a &Donation</source>
<translation>ה&גשת תרומה</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="405"/>
+ <location filename="src/mainwindow.cpp" line="424"/>
<source>&Manually Start Playing</source>
<translation>התחלת נגינה י&דנית</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="406"/>
+ <location filename="src/mainwindow.cpp" line="425"/>
<source>Manually start playing videos</source>
<translation>התחלה ידנית בנגינת קטעי הווידאו</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="728"/>
+ <location filename="src/mainwindow.cpp" line="739"/>
<source>Choose your content location</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="1002"/>
+ <location filename="src/mainwindow.cpp" line="1025"/>
<source>&Play</source>
<translation>&נגינה</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="1003"/>
+ <location filename="src/mainwindow.cpp" line="1026"/>
<source>Resume playback</source>
<translation>המשך הנגינה</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="1236"/>
+ <location filename="src/mainwindow.cpp" line="1277"/>
<source>Remaining time: %1</source>
<translation>הזמן הנותר: %1</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="1294"/>
+ <location filename="src/mainwindow.cpp" line="1335"/>
<source>Volume at %1%</source>
<translation>עצמת השמע היא %1%</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="1300"/>
+ <location filename="src/mainwindow.cpp" line="1341"/>
<source>Volume is muted</source>
<translation>השמע מושתק</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="1303"/>
+ <location filename="src/mainwindow.cpp" line="1344"/>
<source>Volume is unmuted</source>
<translation>השמע אינו מושתק</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="1310"/>
+ <location filename="src/mainwindow.cpp" line="1351"/>
<source>Maximum video definition set to %1</source>
<translation>איכות הנגינה המירבית מוגדרת ל־%1</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="1351"/>
+ <location filename="src/mainwindow.cpp" line="1392"/>
<source>Your privacy is now safe</source>
<translation>פרטיותך מוגנת כעת.</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="1366"/>
+ <location filename="src/mainwindow.cpp" line="1407"/>
<source>Downloads complete</source>
<translation>ההורדות הושלמו</translation>
</message>
<context>
<name>MediaView</name>
<message>
- <location filename="src/mediaview.cpp" line="553"/>
+ <location filename="src/mediaview.cpp" line="563"/>
<source>You can now paste the YouTube link into another application</source>
<translation>כעת ניתן להדביק את קישור ה־YouTube שלכם ליישום אחר</translation>
</message>
<message>
- <location filename="src/mediaview.cpp" line="561"/>
+ <location filename="src/mediaview.cpp" line="571"/>
<source>You can now paste the video stream URL into another application</source>
<translation>כעת ניתן להדביק את כתובת תזרים הווידאו ליישום אחר</translation>
</message>
<message>
- <location filename="src/mediaview.cpp" line="562"/>
+ <location filename="src/mediaview.cpp" line="572"/>
<source>The link will be valid only for a limited time.</source>
<translation>הקישור יהיה תקף לזמן מוגבל בלבד.</translation>
</message>
<message>
- <location filename="src/mediaview.cpp" line="636"/>
+ <location filename="src/mediaview.cpp" line="650"/>
<source>This is just the demo version of %1.</source>
<translation>זוהי רק גרסת ההדגמה של %1.</translation>
</message>
<message>
- <location filename="src/mediaview.cpp" line="637"/>
+ <location filename="src/mediaview.cpp" line="651"/>
<source>It allows you to test the application and see if it works for you.</source>
<translation>גרסה זו מאפשרת לך לבחון את היישום ולראות האם הוא מתאים לצרכיך.</translation>
</message>
<message>
- <location filename="src/mediaview.cpp" line="667"/>
+ <location filename="src/mediaview.cpp" line="681"/>
<source>Continue</source>
<translation>המשך</translation>
</message>
<message>
- <location filename="src/mediaview.cpp" line="756"/>
+ <location filename="src/mediaview.cpp" line="772"/>
<source>of</source>
<comment>Used in video parts, as in '2 of 3'</comment>
<translation>מתוך</translation>
</message>
<message>
- <location filename="src/mediaview.cpp" line="768"/>
+ <location filename="src/mediaview.cpp" line="785"/>
<source>part</source>
<comment>This is for video parts, as in 'Cool video - part 1'</comment>
<translation>חלק</translation>
</message>
<message>
- <location filename="src/mediaview.cpp" line="770"/>
+ <location filename="src/mediaview.cpp" line="787"/>
<source>episode</source>
<comment>This is for video parts, as in 'Cool series - episode 1'</comment>
<translation>פרק</translation>
</message>
<message>
- <location filename="src/mediaview.cpp" line="847"/>
+ <location filename="src/mediaview.cpp" line="868"/>
<source>Sent from %1</source>
<translation>נשלח דרך %1</translation>
</message>
<message>
- <location filename="src/mediaview.cpp" line="644"/>
+ <location filename="src/mediaview.cpp" line="899"/>
+ <source>Unsubscribe from %1</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="src/mediaview.cpp" line="903"/>
+ <source>Subscribe to %1</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="src/mediaview.cpp" line="658"/>
<source>Get the full version</source>
<translation>קבלת הגרסה המלאה</translation>
</message>
<message>
- <location filename="src/mediaview.cpp" line="681"/>
+ <location filename="src/mediaview.cpp" line="695"/>
<source>Downloading %1</source>
<translation>%1 מתקבל</translation>
</message>
<message>
<location filename="local/src/updatedialog.cpp" line="33"/>
<source>Would you like to download it now?</source>
- <translation type="unfinished"/>
+ <translation>האם ברצונך להוריד זאת כעת?</translation>
</message>
<message>
<location filename="local/src/updatedialog.cpp" line="39"/>
<source>Skip This Version</source>
- <translation type="unfinished"/>
+ <translation>התעלמות מגרסה זו</translation>
</message>
<message>
<location filename="local/src/updatedialog.cpp" line="43"/>
<source>Remind Me Later</source>
- <translation type="unfinished"/>
+ <translation>להזכיר לי מאוחר יותר</translation>
</message>
<message>
<location filename="local/src/updatedialog.cpp" line="47"/>
<source>Install Update</source>
- <translation type="unfinished"/>
+ <translation>התקנת עדכון</translation>
</message>
</context>
<context>
<message>
<location filename="local/src/pastelineedit.cpp" line="6"/>
<source>Paste</source>
- <translation type="unfinished"/>
+ <translation>הדבקה</translation>
</message>
</context>
<context>
<name>PlaylistItemDelegate</name>
<message>
- <location filename="src/playlistitemdelegate.cpp" line="159"/>
+ <location filename="src/playlistitemdelegate.cpp" line="177"/>
<source>%1 views</source>
<translation>%1 צפיות</translation>
</message>
<message>
- <location filename="src/playlistitemdelegate.cpp" line="285"/>
+ <location filename="src/playlistitemdelegate.cpp" line="292"/>
<source>%1 of %2 (%3) — %4</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="src/playlistitemdelegate.cpp" line="292"/>
+ <location filename="src/playlistitemdelegate.cpp" line="299"/>
<source>Preparing</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="src/playlistitemdelegate.cpp" line="294"/>
+ <location filename="src/playlistitemdelegate.cpp" line="301"/>
<source>Failed</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="src/playlistitemdelegate.cpp" line="296"/>
+ <location filename="src/playlistitemdelegate.cpp" line="303"/>
<source>Completed</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="src/playlistitemdelegate.cpp" line="298"/>
+ <location filename="src/playlistitemdelegate.cpp" line="305"/>
<source>Stopped</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="src/playlistitemdelegate.cpp" line="334"/>
+ <location filename="src/playlistitemdelegate.cpp" line="341"/>
<source>Stop downloading</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="src/playlistitemdelegate.cpp" line="344"/>
+ <location filename="src/playlistitemdelegate.cpp" line="351"/>
<source>Show in %1</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="src/playlistitemdelegate.cpp" line="346"/>
+ <location filename="src/playlistitemdelegate.cpp" line="353"/>
<source>Open parent folder</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="src/playlistitemdelegate.cpp" line="355"/>
+ <location filename="src/playlistitemdelegate.cpp" line="362"/>
<source>Restart downloading</source>
<translation type="unfinished"/>
</message>
<context>
<name>SearchView</name>
<message>
- <location filename="src/searchview.cpp" line="71"/>
+ <location filename="src/searchview.cpp" line="66"/>
<source>Welcome to <a href='%1'>%2</a>,</source>
<translation>ברוך בואך אל <a href='%1'>%2</a>,</translation>
</message>
<message>
- <location filename="src/searchview.cpp" line="50"/>
+ <location filename="src/searchview.cpp" line="161"/>
<source>Get the full version</source>
<translation>קבלת הגרסה המלאה</translation>
</message>
<message>
- <location filename="src/searchview.cpp" line="85"/>
+ <location filename="src/searchview.cpp" line="80"/>
<source>Enter</source>
<extracomment>"Enter", as in "type". The whole phrase says: "Enter a keyword to start watching videos"</extracomment>
<translation>הזנה</translation>
</message>
<message>
- <location filename="src/searchview.cpp" line="90"/>
+ <location filename="src/searchview.cpp" line="85"/>
<source>a keyword</source>
<translation>מילת מפתח</translation>
</message>
<message>
- <location filename="src/searchview.cpp" line="91"/>
+ <location filename="src/searchview.cpp" line="86"/>
<source>a channel</source>
<translation>ערוץ</translation>
</message>
<message>
- <location filename="src/searchview.cpp" line="96"/>
+ <location filename="src/searchview.cpp" line="91"/>
<source>to start watching videos.</source>
<translation>כדי להתחיל לצפות בסרטונים.</translation>
</message>
<message>
- <location filename="src/searchview.cpp" line="120"/>
+ <location filename="src/searchview.cpp" line="115"/>
<source>Watch</source>
<translation>צפייה</translation>
</message>
<message>
- <location filename="src/searchview.cpp" line="138"/>
+ <location filename="src/searchview.cpp" line="133"/>
<source>Recent keywords</source>
<translation>מילות מפתח אחרונות</translation>
</message>
<message>
- <location filename="src/searchview.cpp" line="151"/>
+ <location filename="src/searchview.cpp" line="146"/>
<source>Recent channels</source>
<translation>ערוצים אחרונים</translation>
</message>
<context>
<name>SidebarHeader</name>
<message>
- <location filename="src/sidebarheader.cpp" line="16"/>
- <location filename="src/sidebarheader.cpp" line="23"/>
+ <location filename="src/sidebarheader.cpp" line="19"/>
+ <location filename="src/sidebarheader.cpp" line="26"/>
<source>&Back</source>
<translation type="unfinished"/>
</message>
<source>Most Popular</source>
<translation type="unfinished"/>
</message>
- <message>
- <location filename="src/standardfeedsview.cpp" line="86"/>
- <source>Featured</source>
- <translation type="unfinished"/>
- </message>
<message>
<location filename="src/standardfeedsview.cpp" line="87"/>
<source>Most Shared</source>
<source>Top Rated</source>
<translation type="unfinished"/>
</message>
+ <message>
+ <location filename="src/standardfeedsview.cpp" line="90"/>
+ <source>All Time Popular</source>
+ <translation type="unfinished"/>
+ </message>
</context>
<context>
<name>Video</name>
<message>
- <location filename="src/video.cpp" line="213"/>
+ <location filename="src/video.cpp" line="215"/>
<source>Cannot get video stream for %1</source>
<translation>לא ניתן לקבל את תזרים הווידאו עבור %1</translation>
</message>
<message>
- <location filename="src/video.cpp" line="231"/>
+ <location filename="src/video.cpp" line="233"/>
<source>Network error: %1 for %2</source>
<translation>שגיאת רשת: %1 עבור %2</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="8"/>
<source>Algeria</source>
- <translation type="unfinished"/>
+ <translation>אלג׳יר</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="9"/>
<source>Argentina</source>
- <translation type="unfinished"/>
+ <translation>ארגנטינה</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="10"/>
<source>Australia</source>
- <translation type="unfinished"/>
+ <translation>אוסטרליה</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="11"/>
<source>Belgium</source>
- <translation type="unfinished"/>
+ <translation>בלגיה</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="12"/>
<source>Brazil</source>
- <translation type="unfinished"/>
+ <translation>ברזיל</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="13"/>
<source>Canada</source>
- <translation type="unfinished"/>
+ <translation>קנדה</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="14"/>
<source>Chile</source>
- <translation type="unfinished"/>
+ <translation>צ׳ילה</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="15"/>
<source>Colombia</source>
- <translation type="unfinished"/>
+ <translation>קולומביה</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="16"/>
<source>Czech Republic</source>
- <translation type="unfinished"/>
+ <translation>הרפובליקה הצ׳כית</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="17"/>
<source>Egypt</source>
- <translation type="unfinished"/>
+ <translation>מצריים</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="18"/>
<source>France</source>
- <translation type="unfinished"/>
+ <translation>צרפת</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="19"/>
<source>Germany</source>
- <translation type="unfinished"/>
+ <translation>גרמניה</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="20"/>
<source>Ghana</source>
- <translation type="unfinished"/>
+ <translation>גאנה</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="21"/>
<source>Greece</source>
- <translation type="unfinished"/>
+ <translation>יוון</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="22"/>
<source>Hong Kong</source>
- <translation type="unfinished"/>
+ <translation>הונג קונג</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="23"/>
<source>Hungary</source>
- <translation type="unfinished"/>
+ <translation>הונגריה</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="24"/>
<source>India</source>
- <translation type="unfinished"/>
+ <translation>הודו</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="25"/>
<source>Indonesia</source>
- <translation type="unfinished"/>
+ <translation>אינדונזיה</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="26"/>
<source>Ireland</source>
- <translation type="unfinished"/>
+ <translation>אירלנד</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="27"/>
<source>Israel</source>
- <translation type="unfinished"/>
+ <translation>ישראל</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="28"/>
<source>Italy</source>
- <translation type="unfinished"/>
+ <translation>איטליה</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="29"/>
<source>Japan</source>
- <translation type="unfinished"/>
+ <translation>יפן</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="30"/>
<source>Jordan</source>
- <translation type="unfinished"/>
+ <translation>ירדן</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="31"/>
<source>Kenya</source>
- <translation type="unfinished"/>
+ <translation>קניה</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="32"/>
<source>Malaysia</source>
- <translation type="unfinished"/>
+ <translation>מלזיה</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="33"/>
<source>Mexico</source>
- <translation type="unfinished"/>
+ <translation>מקסיקו</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="34"/>
<source>Morocco</source>
- <translation type="unfinished"/>
+ <translation>מרוקו</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="35"/>
<source>Netherlands</source>
- <translation type="unfinished"/>
+ <translation>הולנד</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="36"/>
<source>New Zealand</source>
- <translation type="unfinished"/>
+ <translation>ניו זילנד</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="37"/>
<source>Nigeria</source>
- <translation type="unfinished"/>
+ <translation>ניגריה</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="38"/>
<source>Peru</source>
- <translation type="unfinished"/>
+ <translation>פרו</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="39"/>
<source>Philippines</source>
- <translation type="unfinished"/>
+ <translation>הפיליפינים</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="40"/>
<source>Poland</source>
- <translation type="unfinished"/>
+ <translation>פולין</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="41"/>
<source>Russia</source>
- <translation type="unfinished"/>
+ <translation>רוסיה</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="42"/>
<source>Saudi Arabia</source>
- <translation type="unfinished"/>
+ <translation>ערב הסעודית</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="43"/>
<source>Singapore</source>
- <translation type="unfinished"/>
+ <translation>סינגפור</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="44"/>
<source>South Africa</source>
- <translation type="unfinished"/>
+ <translation>דרום אפריקה</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="45"/>
<source>South Korea</source>
- <translation type="unfinished"/>
+ <translation>דרום קוריאה</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="46"/>
<source>Spain</source>
- <translation type="unfinished"/>
+ <translation>ספרד</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="47"/>
<source>Sweden</source>
- <translation type="unfinished"/>
+ <translation>שבדיה</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="48"/>
<source>Taiwan</source>
- <translation type="unfinished"/>
+ <translation>טאיואן</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="49"/>
<source>Tunisia</source>
- <translation type="unfinished"/>
+ <translation>תוניס</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="50"/>
<source>Turkey</source>
- <translation type="unfinished"/>
+ <translation>טורקיה</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="51"/>
<source>Uganda</source>
- <translation type="unfinished"/>
+ <translation>אוגנדה</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="52"/>
<source>United Arab Emirates</source>
- <translation type="unfinished"/>
+ <translation>איחוד נסיכויות ערב</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="53"/>
<source>United Kingdom</source>
- <translation type="unfinished"/>
+ <translation>הממלכה המאוחדת/אנגליה</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="54"/>
<source>Yemen</source>
- <translation type="unfinished"/>
+ <translation>תימן</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="128"/>
<source>Worldwide</source>
- <translation type="unfinished"/>
+ <translation>כל העולם</translation>
</message>
</context>
</TS>
\ No newline at end of file
+++ /dev/null
-<?xml version="1.0" ?><!DOCTYPE TS><TS language="hr" version="2.0">
-<defaultcodec>UTF-8</defaultcodec>
-<context>
- <name>AboutView</name>
- <message>
- <location filename="src/aboutview.cpp" line="32"/>
- <source>There's life outside the browser!</source>
- <translation>Život postoji i van browsera!</translation>
- </message>
- <message>
- <location filename="src/aboutview.cpp" line="33"/>
- <source>Version %1</source>
- <translation>Verzija %1</translation>
- </message>
- <message>
- <location filename="src/aboutview.cpp" line="38"/>
- <source>Licensed to: %1</source>
- <translation type="unfinished"/>
- </message>
- <message>
- <location filename="src/aboutview.cpp" line="42"/>
- <source>%1 is Free Software but its development takes precious time.</source>
- <translation>%1 je besplatan program ali njegov razvoj zahtjeva dragocjeno vrijeme.</translation>
- </message>
- <message>
- <location filename="src/aboutview.cpp" line="43"/>
- <source>Please <a href='%1'>donate</a> to support the continued development of %2.</source>
- <translation>Vaša <a href='%1'>donacija</a> će pomoći daljnjem razvoju %2.</translation>
- </message>
- <message>
- <location filename="src/aboutview.cpp" line="47"/>
- <source>You may want to try my other apps as well:</source>
- <translation>Možete isprobati i moje ostale aplikacije:</translation>
- </message>
- <message>
- <location filename="src/aboutview.cpp" line="50"/>
- <source>%1, a YouTube music player</source>
- <translation>%1, player glazbe sa YouTube</translation>
- </message>
- <message>
- <location filename="src/aboutview.cpp" line="54"/>
- <source>%1, a music player</source>
- <translation>%1, za reprodukciju glazbe</translation>
- </message>
- <message>
- <location filename="src/aboutview.cpp" line="60"/>
- <source>Translate %1 to your native language using %2</source>
- <translation>Prevedite %1 na svoj jezik koristeći %2</translation>
- </message>
- <message>
- <location filename="src/aboutview.cpp" line="65"/>
- <source>Icon designed by %1.</source>
- <translation>Dizajn ikone %1.</translation>
- </message>
- <message>
- <location filename="src/aboutview.cpp" line="69"/>
- <source>Released under the <a href='%1'>GNU General Public License</a></source>
- <translation>Izdano pod <a href='%1'>GNU General Public License</a></translation>
- </message>
- <message>
- <location filename="src/aboutview.cpp" line="84"/>
- <source>&Close</source>
- <translation>&Zatvori</translation>
- </message>
- <message>
- <location filename="src/aboutview.h" line="17"/>
- <source>About</source>
- <translation>O programu</translation>
- </message>
- <message>
- <location filename="src/aboutview.h" line="19"/>
- <source>What you always wanted to know about %1 and never dared to ask</source>
- <translation>Sve što ste željeli znati o %1 a niste se usudili pitati</translation>
- </message>
-</context>
-<context>
- <name>ActivationDialog</name>
- <message>
- <location filename="local/src/activationdialog.cpp" line="17"/>
- <source>Enter your License Details</source>
- <translation type="unfinished"/>
- </message>
- <message>
- <location filename="local/src/activationdialog.cpp" line="29"/>
- <source>&Email:</source>
- <translation type="unfinished"/>
- </message>
- <message>
- <location filename="local/src/activationdialog.cpp" line="35"/>
- <source>&Code:</source>
- <translation type="unfinished"/>
- </message>
-</context>
-<context>
- <name>ActivationView</name>
- <message>
- <location filename="local/src/activationview.cpp" line="47"/>
- <source>Please license %1</source>
- <translation>Molimo registrirajte %1</translation>
- </message>
- <message>
- <location filename="local/src/activationview.cpp" line="51"/>
- <source>This demo has expired.</source>
- <translation>Vaša demo verzija je istekla.</translation>
- </message>
- <message>
- <location filename="local/src/activationview.cpp" line="53"/>
- <source>The full version allows you to download videos longer than %1 minutes and to watch videos without interruptions.</source>
- <translation type="unfinished"/>
- </message>
- <message>
- <location filename="local/src/activationview.cpp" line="55"/>
- <source>Without a license, the application will expire in %1 days.</source>
- <translation type="unfinished"/>
- </message>
- <message>
- <location filename="local/src/activationview.cpp" line="57"/>
- <source>By purchasing the full version, you will also support the hard work I put into creating %1.</source>
- <translation>Kupnjom pune verzije podržati ćete i težak rad uložen u izradu %1.</translation>
- </message>
- <message>
- <location filename="local/src/activationview.cpp" line="70"/>
- <source>Use Demo</source>
- <translation>Koristi demo verziju.</translation>
- </message>
- <message>
- <location filename="local/src/activationview.cpp" line="77"/>
- <source>Enter License</source>
- <translation type="unfinished"/>
- </message>
- <message>
- <location filename="local/src/activationview.cpp" line="85"/>
- <source>Buy License</source>
- <translation type="unfinished"/>
- </message>
-</context>
-<context>
- <name>ClearButton</name>
- <message>
- <location filename="src/searchlineedit.cpp" line="56"/>
- <source>Clear</source>
- <translation>Obriši</translation>
- </message>
-</context>
-<context>
- <name>DownloadItem</name>
- <message>
- <location filename="src/downloaditem.cpp" line="322"/>
- <source>bytes</source>
- <translation>bajtova</translation>
- </message>
- <message>
- <location filename="src/downloaditem.cpp" line="325"/>
- <source>KB</source>
- <translation>KB</translation>
- </message>
- <message>
- <location filename="src/downloaditem.cpp" line="328"/>
- <source>MB</source>
- <translation>MB</translation>
- </message>
- <message>
- <location filename="src/downloaditem.cpp" line="337"/>
- <source>bytes/sec</source>
- <translation>bajtova/sec</translation>
- </message>
- <message>
- <location filename="src/downloaditem.cpp" line="340"/>
- <source>KB/sec</source>
- <translation>KB/sec</translation>
- </message>
- <message>
- <location filename="src/downloaditem.cpp" line="343"/>
- <source>MB/sec</source>
- <translation>MB/sec</translation>
- </message>
- <message>
- <location filename="src/downloaditem.cpp" line="349"/>
- <source>seconds</source>
- <translation>sekundi</translation>
- </message>
- <message>
- <location filename="src/downloaditem.cpp" line="352"/>
- <source>minutes</source>
- <translation>minuta</translation>
- </message>
- <message>
- <location filename="src/downloaditem.cpp" line="355"/>
- <source>%4 %5 remaining</source>
- <translation>%4 %5 preostalo</translation>
- </message>
-</context>
-<context>
- <name>DownloadManager</name>
- <message>
- <location filename="src/downloadmanager.cpp" line="55"/>
- <source>This is just the demo version of %1.</source>
- <translation>Ovo je samo demo verzija %1.</translation>
- </message>
- <message>
- <location filename="src/downloadmanager.cpp" line="57"/>
- <source>It can only download videos shorter than %1 minutes so you can test the download functionality.</source>
- <translation>Može preuzeti samo video kraći od %1 minuta tako da možete testirati mogućnost preuzimanja.</translation>
- </message>
- <message>
- <location filename="src/downloadmanager.cpp" line="63"/>
- <source>Continue</source>
- <translation>Nastavi</translation>
- </message>
- <message>
- <location filename="src/downloadmanager.cpp" line="64"/>
- <source>Get the full version</source>
- <translation>Preuzmi punu verziju</translation>
- </message>
- <message>
- <location filename="src/downloadmanager.cpp" line="150"/>
- <source>%1 downloaded in %2</source>
- <translation>%1 preuzet u %2</translation>
- </message>
- <message>
- <location filename="src/downloadmanager.cpp" line="153"/>
- <source>Download finished</source>
- <translation>Preuzimanje završeno</translation>
- </message>
- <message numerus="yes">
- <location filename="src/downloadmanager.cpp" line="159"/>
- <source>%n Download(s)</source>
- <translation><numerusform>%n preuzimanje</numerusform><numerusform>%n preuzimanja</numerusform><numerusform>%n preuzimanja</numerusform></translation>
- </message>
-</context>
-<context>
- <name>DownloadSettings</name>
- <message>
- <location filename="src/downloadsettings.cpp" line="15"/>
- <source>Change location...</source>
- <translation>Promijeni odredište preuzimanja...</translation>
- </message>
- <message>
- <location filename="src/downloadsettings.cpp" line="47"/>
- <source>Choose the download location</source>
- <translation>Odaberi odredište preuzimanja</translation>
- </message>
- <message>
- <location filename="src/downloadsettings.cpp" line="59"/>
- <source>Download location changed.</source>
- <translation>Odredište preuzimanja promijenjeno.</translation>
- </message>
- <message>
- <location filename="src/downloadsettings.cpp" line="61"/>
- <source>Current downloads will still go in the previous location.</source>
- <translation>Trenutna preuzimanja će i dalje ići u prethodno odredište.</translation>
- </message>
- <message>
- <location filename="src/downloadsettings.cpp" line="72"/>
- <source>Downloading to: %1</source>
- <translation>Preuzimam u: %1</translation>
- </message>
-</context>
-<context>
- <name>DownloadView</name>
- <message>
- <location filename="src/downloadview.cpp" line="18"/>
- <location filename="src/downloadview.h" line="22"/>
- <source>Downloads</source>
- <translation>Preuzimanja</translation>
- </message>
-</context>
-<context>
- <name>DownloadWidget</name>
- <message>
- <location filename="local/src/updatedialog.cpp" line="60"/>
- <source>Downloading update...</source>
- <translation type="unfinished"/>
- </message>
-</context>
-<context>
- <name>GlobalShortcuts</name>
- <message>
- <location filename="src/globalshortcuts.cpp" line="16"/>
- <source>Play</source>
- <translation>Pokreni</translation>
- </message>
- <message>
- <location filename="src/globalshortcuts.cpp" line="17"/>
- <source>Pause</source>
- <translation>Pauza</translation>
- </message>
- <message>
- <location filename="src/globalshortcuts.cpp" line="18"/>
- <source>Play/Pause</source>
- <translation>Pokreni/Pauza</translation>
- </message>
- <message>
- <location filename="src/globalshortcuts.cpp" line="19"/>
- <source>Stop</source>
- <translation>Stani</translation>
- </message>
- <message>
- <location filename="src/globalshortcuts.cpp" line="20"/>
- <source>Stop playing after current track</source>
- <translation>Stani nakon trenutne stvari.</translation>
- </message>
- <message>
- <location filename="src/globalshortcuts.cpp" line="21"/>
- <source>Next track</source>
- <translation>Slijedeća</translation>
- </message>
- <message>
- <location filename="src/globalshortcuts.cpp" line="22"/>
- <source>Previous track</source>
- <translation>Prethodna</translation>
- </message>
- <message>
- <location filename="src/globalshortcuts.cpp" line="23"/>
- <source>Increase volume</source>
- <translation>Pojačaj zvuk</translation>
- </message>
- <message>
- <location filename="src/globalshortcuts.cpp" line="24"/>
- <source>Decrease volume</source>
- <translation>Stišaj zvuk</translation>
- </message>
- <message>
- <location filename="src/globalshortcuts.cpp" line="25"/>
- <source>Mute</source>
- <translation>Nijemo</translation>
- </message>
- <message>
- <location filename="src/globalshortcuts.cpp" line="26"/>
- <source>Seek forward</source>
- <translation>Premotaj naprijed</translation>
- </message>
- <message>
- <location filename="src/globalshortcuts.cpp" line="27"/>
- <source>Seek backward</source>
- <translation>Premotaj nazad</translation>
- </message>
-</context>
-<context>
- <name>HomeView</name>
- <message>
- <location filename="src/homeview.cpp" line="33"/>
- <source>Search</source>
- <translation>Traži</translation>
- </message>
- <message>
- <location filename="src/homeview.cpp" line="35"/>
- <source>Find videos and channels by keyword</source>
- <translation type="unfinished"/>
- </message>
- <message>
- <location filename="src/homeview.cpp" line="40"/>
- <source>Browse</source>
- <translation type="unfinished"/>
- </message>
- <message>
- <location filename="src/homeview.cpp" line="42"/>
- <source>Browse videos by category</source>
- <translation type="unfinished"/>
- </message>
- <message>
- <location filename="src/homeview.h" line="22"/>
- <source>Make yourself comfortable</source>
- <translation type="unfinished"/>
- </message>
-</context>
-<context>
- <name>LoadingWidget</name>
- <message>
- <location filename="src/loadingwidget.cpp" line="90"/>
- <source>Error</source>
- <translation>Greška</translation>
- </message>
-</context>
-<context>
- <name>MainWindow</name>
- <message>
- <location filename="src/mainwindow.cpp" line="213"/>
- <source>&Stop</source>
- <translation>&Stop</translation>
- </message>
- <message>
- <location filename="src/mainwindow.cpp" line="214"/>
- <source>Stop playback and go back to the search view</source>
- <translation>Stani i vrati se na pretraživanje</translation>
- </message>
- <message>
- <location filename="src/mainwindow.cpp" line="232"/>
- <source>S&kip</source>
- <translation>&Preskoči</translation>
- </message>
- <message>
- <location filename="src/mainwindow.cpp" line="233"/>
- <source>Skip to the next video</source>
- <translation>Preskoči na slijedeći video</translation>
- </message>
- <message>
- <location filename="src/mainwindow.cpp" line="239"/>
- <location filename="src/mainwindow.cpp" line="989"/>
- <source>&Pause</source>
- <translation>&Pauza</translation>
- </message>
- <message>
- <location filename="src/mainwindow.cpp" line="240"/>
- <location filename="src/mainwindow.cpp" line="990"/>
- <source>Pause playback</source>
- <translation>Pauziraj</translation>
- </message>
- <message>
- <location filename="src/mainwindow.cpp" line="246"/>
- <source>&Full Screen</source>
- <translation>&Cijeli ekran</translation>
- </message>
- <message>
- <location filename="src/mainwindow.cpp" line="247"/>
- <source>Go full screen</source>
- <translation>Prikaži preko cijelog ekrana</translation>
- </message>
- <message>
- <location filename="src/mainwindow.cpp" line="263"/>
- <source>Hide the playlist and the toolbar</source>
- <translation>Sakrij play listu i alatnu traku</translation>
- </message>
- <message>
- <location filename="src/mainwindow.cpp" line="276"/>
- <source>Go to the YouTube video page and pause playback</source>
- <translation>Idi na Youtube stranicu sa videom i pauziraj</translation>
- </message>
- <message>
- <location filename="src/mainwindow.cpp" line="283"/>
- <source>Copy the current video YouTube link to the clipboard</source>
- <translation>Kopiraj YouTube link trenutnog videa u clipboard</translation>
- </message>
- <message>
- <location filename="src/mainwindow.cpp" line="290"/>
- <source>Copy the current video stream URL to the clipboard</source>
- <translation>Kopiraj &URL trenutnog video streama u clipboard</translation>
- </message>
- <message>
- <location filename="src/mainwindow.cpp" line="297"/>
- <source>Find other video parts hopefully in the right order</source>
- <translation>Nađi ostale dijelove videa, vjerojatno u pravom rasporedu</translation>
- </message>
- <message>
- <location filename="src/mainwindow.cpp" line="303"/>
- <source>&Remove</source>
- <translation>&Ukloni</translation>
- </message>
- <message>
- <location filename="src/mainwindow.cpp" line="304"/>
- <source>Remove the selected videos from the playlist</source>
- <translation>Ukloni odabrane video clipove iz play liste</translation>
- </message>
- <message>
- <location filename="src/mainwindow.cpp" line="310"/>
- <source>Move &Up</source>
- <translation>Pomakni &gore</translation>
- </message>
- <message>
- <location filename="src/mainwindow.cpp" line="311"/>
- <source>Move up the selected videos in the playlist</source>
- <translation>Pomakni gore slektirane video clipove u play listi</translation>
- </message>
- <message>
- <location filename="src/mainwindow.cpp" line="317"/>
- <source>Move &Down</source>
- <translation>Pomakni &dolje</translation>
- </message>
- <message>
- <location filename="src/mainwindow.cpp" line="318"/>
- <source>Move down the selected videos in the playlist</source>
- <translation>Pomakni dolje slektirane video clipove u play listi</translation>
- </message>
- <message>
- <location filename="src/mainwindow.cpp" line="329"/>
- <source>Clear the search history. Cannot be undone.</source>
- <translation>Očisti povijest pretraga. Ne može se vratiti.</translation>
- </message>
- <message>
- <location filename="src/mainwindow.cpp" line="334"/>
- <source>&Quit</source>
- <translation>&Kraj</translation>
- </message>
- <message>
- <location filename="src/mainwindow.cpp" line="337"/>
- <source>Bye</source>
- <translation>Doviđenja</translation>
- </message>
- <message>
- <location filename="src/mainwindow.cpp" line="341"/>
- <source>&Website</source>
- <translation>&Web stranice</translation>
- </message>
- <message>
- <location filename="src/mainwindow.cpp" line="343"/>
- <source>%1 on the Web</source>
- <translation>%1 na webu</translation>
- </message>
- <message>
- <location filename="src/mainwindow.cpp" line="349"/>
- <source>Please support the continued development of %1</source>
- <translation>Molim Vas da podržite daljnji razvoj %1</translation>
- </message>
- <message>
- <location filename="src/mainwindow.cpp" line="354"/>
- <source>&About</source>
- <translation>&O programu</translation>
- </message>
- <message>
- <location filename="src/mainwindow.cpp" line="356"/>
- <source>Info about %1</source>
- <translation>Informacije o %1</translation>
- </message>
- <message>
- <location filename="src/mainwindow.cpp" line="364"/>
- <source>Search</source>
- <translation>Traži</translation>
- </message>
- <message>
- <location filename="src/mainwindow.cpp" line="383"/>
- <source>Mute volume</source>
- <translation>Utišaj zvuk</translation>
- </message>
- <message>
- <location filename="src/mainwindow.cpp" line="412"/>
- <location filename="src/mainwindow.cpp" line="1365"/>
- <source>&Downloads</source>
- <translation>&Preuzimanja</translation>
- </message>
- <message>
- <location filename="src/mainwindow.cpp" line="413"/>
- <source>Show details about video downloads</source>
- <translation>Pokaži informacije o preuzimanjima videa</translation>
- </message>
- <message>
- <location filename="src/mainwindow.cpp" line="421"/>
- <source>&Download</source>
- <translation>&Preuzimanje</translation>
- </message>
- <message>
- <location filename="src/mainwindow.cpp" line="422"/>
- <source>Download the current video</source>
- <translation>Preuzmi trenutni video</translation>
- </message>
- <message>
- <location filename="src/mainwindow.cpp" line="441"/>
- <source>Share the current video using %1</source>
- <translation>Podijeli trenutni video koristeći %1</translation>
- </message>
- <message>
- <location filename="src/mainwindow.cpp" line="458"/>
- <source>&Email</source>
- <translation>&Email</translation>
- </message>
- <message>
- <location filename="src/mainwindow.cpp" line="459"/>
- <source>Email</source>
- <translation>Email</translation>
- </message>
- <message>
- <location filename="src/mainwindow.cpp" line="463"/>
- <source>&Close</source>
- <translation>&Zatvori</translation>
- </message>
- <message>
- <location filename="src/mainwindow.cpp" line="473"/>
- <source>&Float on Top</source>
- <translation>&Budi na vrhu</translation>
- </message>
- <message>
- <location filename="src/mainwindow.cpp" line="478"/>
- <source>&Stop After This Video</source>
- <translation>&Stani nakon ovog videa</translation>
- </message>
- <message>
- <location filename="src/mainwindow.cpp" line="485"/>
- <source>&Report an Issue...</source>
- <translation>&Prijavi problem</translation>
- </message>
- <message>
- <location filename="src/mainwindow.cpp" line="489"/>
- <source>&Refine Search...</source>
- <translation>&Suzi pretragu</translation>
- </message>
- <message>
- <location filename="src/mainwindow.cpp" line="501"/>
- <source>More...</source>
- <translation type="unfinished"/>
- </message>
- <message>
- <location filename="src/mainwindow.cpp" line="504"/>
- <source>&Related Videos</source>
- <translation type="unfinished"/>
- </message>
- <message>
- <location filename="src/mainwindow.cpp" line="506"/>
- <source>Watch videos related to the current one</source>
- <translation type="unfinished"/>
- </message>
- <message>
- <location filename="src/mainwindow.cpp" line="544"/>
- <source>&Application</source>
- <translation>&Program</translation>
- </message>
- <message>
- <location filename="src/mainwindow.cpp" line="515"/>
- <source>Buy %1...</source>
- <translation>Kupi %1</translation>
- </message>
- <message>
- <location filename="src/mainwindow.cpp" line="558"/>
- <source>&Playback</source>
- <translation>&Sviraj</translation>
- </message>
- <message>
- <location filename="src/mainwindow.cpp" line="572"/>
- <source>&Playlist</source>
- <translation>&Play lista</translation>
- </message>
- <message>
- <location filename="src/mainwindow.cpp" line="581"/>
- <source>&Video</source>
- <translation>&Video</translation>
- </message>
- <message>
- <location filename="src/mainwindow.cpp" line="594"/>
- <source>&View</source>
- <translation>&Pogled</translation>
- </message>
- <message>
- <location filename="src/mainwindow.cpp" line="601"/>
- <source>&Share</source>
- <translation>&Podijeli</translation>
- </message>
- <message>
- <location filename="src/mainwindow.cpp" line="615"/>
- <source>&Help</source>
- <translation>&Pomoć</translation>
- </message>
- <message>
- <location filename="src/mainwindow.cpp" line="690"/>
- <source>Press %1 to raise the volume, %2 to lower it</source>
- <translation>Pritisnite %1 za glasnije, %2 za tiše</translation>
- </message>
- <message>
- <location filename="src/mainwindow.cpp" line="889"/>
- <location filename="src/mainwindow.cpp" line="895"/>
- <source>Opening %1</source>
- <translation>Otvaram %1</translation>
- </message>
- <message>
- <location filename="src/mainwindow.cpp" line="936"/>
- <source>Do you want to exit %1 with a download in progress?</source>
- <translation>Da li stvarno želite napustiti %1 dok traje preuzimanje?</translation>
- </message>
- <message>
- <location filename="src/mainwindow.cpp" line="937"/>
- <source>If you close %1 now, this download will be cancelled.</source>
- <translation>Ako sada zatvorite %1, preuzimanje će biti poništeno.</translation>
- </message>
- <message>
- <location filename="src/mainwindow.cpp" line="942"/>
- <source>Close and cancel download</source>
- <translation>Zatvori i poništi preuzimanje</translation>
- </message>
- <message>
- <location filename="src/mainwindow.cpp" line="943"/>
- <source>Wait for download to finish</source>
- <translation>Pričekaj da završi preuzimanje</translation>
- </message>
- <message>
- <location filename="src/mainwindow.cpp" line="1102"/>
- <source>Leave &Full Screen</source>
- <translation>Izađi iz &Cijelog ekrana</translation>
- </message>
- <message>
- <location filename="src/mainwindow.cpp" line="1475"/>
- <source>%1 version %2 is now available.</source>
- <translation>%1 verzija %2 je dostupna.</translation>
- </message>
- <message>
- <location filename="src/mainwindow.cpp" line="1479"/>
- <source>Remind me later</source>
- <translation>Podsjeti me kasnije</translation>
- </message>
- <message>
- <location filename="src/mainwindow.cpp" line="1480"/>
- <source>Update</source>
- <translation>Unaprijedi</translation>
- </message>
- <message>
- <location filename="src/mainwindow.cpp" line="982"/>
- <source>Error: %1</source>
- <translation>Greška: %1</translation>
- </message>
- <message>
- <location filename="src/mainwindow.cpp" line="222"/>
- <source>P&revious</source>
- <translation>P&rethodni</translation>
- </message>
- <message>
- <location filename="src/mainwindow.cpp" line="223"/>
- <source>Go back to the previous track</source>
- <translation>Idi nazad na prethodnu pjesmu</translation>
- </message>
- <message>
- <location filename="src/mainwindow.cpp" line="262"/>
- <source>&Compact Mode</source>
- <translation>&Kompaktni mod</translation>
- </message>
- <message>
- <location filename="src/mainwindow.cpp" line="275"/>
- <source>Open the &YouTube Page</source>
- <translation>Otvori &YouTube stranicu</translation>
- </message>
- <message>
- <location filename="src/mainwindow.cpp" line="282"/>
- <source>Copy the YouTube &Link</source>
- <translation>Kopiraj YouTube &link</translation>
- </message>
- <message>
- <location filename="src/mainwindow.cpp" line="289"/>
- <source>Copy the Video Stream &URL</source>
- <translation>Kopiraj &URL video streama</translation>
- </message>
- <message>
- <location filename="src/mainwindow.cpp" line="296"/>
- <source>Find Video &Parts</source>
- <translation>Nađi &dijelove videa</translation>
- </message>
- <message>
- <location filename="src/mainwindow.cpp" line="324"/>
- <source>&Clear Recent Searches</source>
- <translation>&Izbriši nedavne pretrage</translation>
- </message>
- <message>
- <location filename="src/mainwindow.cpp" line="348"/>
- <source>Make a &Donation</source>
- <translation>Izvrši &donaciju</translation>
- </message>
- <message>
- <location filename="src/mainwindow.cpp" line="405"/>
- <source>&Manually Start Playing</source>
- <translation>&Ručno pokreni reprodukciju</translation>
- </message>
- <message>
- <location filename="src/mainwindow.cpp" line="406"/>
- <source>Manually start playing videos</source>
- <translation>Ručno pokreni reprodukciju videa</translation>
- </message>
- <message>
- <location filename="src/mainwindow.cpp" line="728"/>
- <source>Choose your content location</source>
- <translation type="unfinished"/>
- </message>
- <message>
- <location filename="src/mainwindow.cpp" line="1002"/>
- <source>&Play</source>
- <translation>&Sviraj</translation>
- </message>
- <message>
- <location filename="src/mainwindow.cpp" line="1003"/>
- <source>Resume playback</source>
- <translation>&Nastavi sviranje</translation>
- </message>
- <message>
- <location filename="src/mainwindow.cpp" line="1236"/>
- <source>Remaining time: %1</source>
- <translation>Preostalo vrijeme: %1</translation>
- </message>
- <message>
- <location filename="src/mainwindow.cpp" line="1294"/>
- <source>Volume at %1%</source>
- <translation>Glasnoća na %1%</translation>
- </message>
- <message>
- <location filename="src/mainwindow.cpp" line="1300"/>
- <source>Volume is muted</source>
- <translation>Zvuk je ugašen</translation>
- </message>
- <message>
- <location filename="src/mainwindow.cpp" line="1303"/>
- <source>Volume is unmuted</source>
- <translation>Zvuk je upaljen</translation>
- </message>
- <message>
- <location filename="src/mainwindow.cpp" line="1310"/>
- <source>Maximum video definition set to %1</source>
- <translation>Maksimalna video rezolucija postavljena na %1</translation>
- </message>
- <message>
- <location filename="src/mainwindow.cpp" line="1351"/>
- <source>Your privacy is now safe</source>
- <translation>Vaša privatnost je sada sigurna</translation>
- </message>
- <message>
- <location filename="src/mainwindow.cpp" line="1366"/>
- <source>Downloads complete</source>
- <translation>Preuzimanja završena</translation>
- </message>
-</context>
-<context>
- <name>MediaView</name>
- <message>
- <location filename="src/mediaview.cpp" line="553"/>
- <source>You can now paste the YouTube link into another application</source>
- <translation>Sada možete zalijepiti Youtube link u neki drugi program</translation>
- </message>
- <message>
- <location filename="src/mediaview.cpp" line="561"/>
- <source>You can now paste the video stream URL into another application</source>
- <translation>Sada možete zalijepiti link video streama u neki drugi program</translation>
- </message>
- <message>
- <location filename="src/mediaview.cpp" line="562"/>
- <source>The link will be valid only for a limited time.</source>
- <translation>Link će biti valjan samo ograničeno vrijeme.</translation>
- </message>
- <message>
- <location filename="src/mediaview.cpp" line="636"/>
- <source>This is just the demo version of %1.</source>
- <translation>Ovo je samo demo verzija %1.</translation>
- </message>
- <message>
- <location filename="src/mediaview.cpp" line="637"/>
- <source>It allows you to test the application and see if it works for you.</source>
- <translation>Omogućava Vam da testirate program i vidite da li Vam odgovara.</translation>
- </message>
- <message>
- <location filename="src/mediaview.cpp" line="667"/>
- <source>Continue</source>
- <translation>Nastavi</translation>
- </message>
- <message>
- <location filename="src/mediaview.cpp" line="756"/>
- <source>of</source>
- <comment>Used in video parts, as in '2 of 3'</comment>
- <translation>od</translation>
- </message>
- <message>
- <location filename="src/mediaview.cpp" line="768"/>
- <source>part</source>
- <comment>This is for video parts, as in 'Cool video - part 1'</comment>
- <translation>dio</translation>
- </message>
- <message>
- <location filename="src/mediaview.cpp" line="770"/>
- <source>episode</source>
- <comment>This is for video parts, as in 'Cool series - episode 1'</comment>
- <translation>epizoda</translation>
- </message>
- <message>
- <location filename="src/mediaview.cpp" line="847"/>
- <source>Sent from %1</source>
- <translation>Poslano sa %1</translation>
- </message>
- <message>
- <location filename="src/mediaview.cpp" line="644"/>
- <source>Get the full version</source>
- <translation>Preuzmi punu verziju</translation>
- </message>
- <message>
- <location filename="src/mediaview.cpp" line="681"/>
- <source>Downloading %1</source>
- <translation>Preuzimam %1</translation>
- </message>
-</context>
-<context>
- <name>MessageWidget</name>
- <message>
- <location filename="local/src/updatedialog.cpp" line="21"/>
- <source>A new version of %1 is available!</source>
- <translation type="unfinished"/>
- </message>
- <message>
- <location filename="local/src/updatedialog.cpp" line="28"/>
- <source>%1 %2 is now available. You have %3.</source>
- <translation type="unfinished"/>
- </message>
- <message>
- <location filename="local/src/updatedialog.cpp" line="33"/>
- <source>Would you like to download it now?</source>
- <translation type="unfinished"/>
- </message>
- <message>
- <location filename="local/src/updatedialog.cpp" line="39"/>
- <source>Skip This Version</source>
- <translation type="unfinished"/>
- </message>
- <message>
- <location filename="local/src/updatedialog.cpp" line="43"/>
- <source>Remind Me Later</source>
- <translation type="unfinished"/>
- </message>
- <message>
- <location filename="local/src/updatedialog.cpp" line="47"/>
- <source>Install Update</source>
- <translation type="unfinished"/>
- </message>
-</context>
-<context>
- <name>PasteLineEdit</name>
- <message>
- <location filename="local/src/pastelineedit.cpp" line="6"/>
- <source>Paste</source>
- <translation type="unfinished"/>
- </message>
-</context>
-<context>
- <name>PlaylistItemDelegate</name>
- <message>
- <location filename="src/playlistitemdelegate.cpp" line="159"/>
- <source>%1 views</source>
- <translation>%1 pregleda</translation>
- </message>
- <message>
- <location filename="src/playlistitemdelegate.cpp" line="285"/>
- <source>%1 of %2 (%3) — %4</source>
- <translation type="unfinished"/>
- </message>
- <message>
- <location filename="src/playlistitemdelegate.cpp" line="292"/>
- <source>Preparing</source>
- <translation type="unfinished"/>
- </message>
- <message>
- <location filename="src/playlistitemdelegate.cpp" line="294"/>
- <source>Failed</source>
- <translation type="unfinished"/>
- </message>
- <message>
- <location filename="src/playlistitemdelegate.cpp" line="296"/>
- <source>Completed</source>
- <translation type="unfinished"/>
- </message>
- <message>
- <location filename="src/playlistitemdelegate.cpp" line="298"/>
- <source>Stopped</source>
- <translation type="unfinished"/>
- </message>
- <message>
- <location filename="src/playlistitemdelegate.cpp" line="334"/>
- <source>Stop downloading</source>
- <translation type="unfinished"/>
- </message>
- <message>
- <location filename="src/playlistitemdelegate.cpp" line="344"/>
- <source>Show in %1</source>
- <translation type="unfinished"/>
- </message>
- <message>
- <location filename="src/playlistitemdelegate.cpp" line="346"/>
- <source>Open parent folder</source>
- <translation type="unfinished"/>
- </message>
- <message>
- <location filename="src/playlistitemdelegate.cpp" line="355"/>
- <source>Restart downloading</source>
- <translation type="unfinished"/>
- </message>
-</context>
-<context>
- <name>PlaylistModel</name>
- <message>
- <location filename="src/playlistmodel.cpp" line="52"/>
- <source>Searching...</source>
- <translation>Pretražujem...</translation>
- </message>
- <message>
- <location filename="src/playlistmodel.cpp" line="53"/>
- <source>Show %1 More</source>
- <translation type="unfinished"/>
- </message>
- <message>
- <location filename="src/playlistmodel.cpp" line="54"/>
- <source>No videos</source>
- <translation>Nema videa</translation>
- </message>
- <message>
- <location filename="src/playlistmodel.cpp" line="55"/>
- <source>No more videos</source>
- <translation>Nema više videa</translation>
- </message>
-</context>
-<context>
- <name>RefineSearchWidget</name>
- <message>
- <location filename="src/refinesearchwidget.cpp" line="31"/>
- <source>Sort by</source>
- <translation>Sortiraj po</translation>
- </message>
- <message>
- <location filename="src/refinesearchwidget.cpp" line="35"/>
- <source>Relevance</source>
- <translation>Važnost</translation>
- </message>
- <message>
- <location filename="src/refinesearchwidget.cpp" line="36"/>
- <location filename="src/refinesearchwidget.cpp" line="52"/>
- <source>Date</source>
- <translation>Datum</translation>
- </message>
- <message>
- <location filename="src/refinesearchwidget.cpp" line="37"/>
- <source>View Count</source>
- <translation>Broj pregleda</translation>
- </message>
- <message>
- <location filename="src/refinesearchwidget.cpp" line="38"/>
- <source>Rating</source>
- <translation>Ocjena</translation>
- </message>
- <message>
- <location filename="src/refinesearchwidget.cpp" line="56"/>
- <source>Anytime</source>
- <translation>Bilo kada</translation>
- </message>
- <message>
- <location filename="src/refinesearchwidget.cpp" line="57"/>
- <source>Today</source>
- <translation>Danas</translation>
- </message>
- <message>
- <location filename="src/refinesearchwidget.cpp" line="58"/>
- <source>7 Days</source>
- <translation>7 dana</translation>
- </message>
- <message>
- <location filename="src/refinesearchwidget.cpp" line="59"/>
- <source>30 Days</source>
- <translation>30 dana</translation>
- </message>
- <message>
- <location filename="src/refinesearchwidget.cpp" line="73"/>
- <source>Duration</source>
- <translation>Trajanje</translation>
- </message>
- <message>
- <location filename="src/refinesearchwidget.cpp" line="77"/>
- <location filename="src/refinesearchwidget.cpp" line="104"/>
- <source>All</source>
- <translation>Sve</translation>
- </message>
- <message>
- <location filename="src/refinesearchwidget.cpp" line="78"/>
- <source>Short</source>
- <translation>Kratko</translation>
- </message>
- <message>
- <location filename="src/refinesearchwidget.cpp" line="79"/>
- <source>Medium</source>
- <translation>Srednje</translation>
- </message>
- <message>
- <location filename="src/refinesearchwidget.cpp" line="80"/>
- <source>Long</source>
- <translation>Dugo</translation>
- </message>
- <message>
- <location filename="src/refinesearchwidget.cpp" line="83"/>
- <source>Less than 4 minutes</source>
- <translation>Kraće od 4 minute</translation>
- </message>
- <message>
- <location filename="src/refinesearchwidget.cpp" line="84"/>
- <source>Between 4 and 20 minutes</source>
- <translation>Između 4 i 20 minuta</translation>
- </message>
- <message>
- <location filename="src/refinesearchwidget.cpp" line="85"/>
- <source>Longer than 20 minutes</source>
- <translation>Duže od 20 minuta</translation>
- </message>
- <message>
- <location filename="src/refinesearchwidget.cpp" line="100"/>
- <source>Quality</source>
- <translation>Kvaliteta</translation>
- </message>
- <message>
- <location filename="src/refinesearchwidget.cpp" line="105"/>
- <source>High Definition</source>
- <translation>Visoka razlučivost</translation>
- </message>
- <message>
- <location filename="src/refinesearchwidget.cpp" line="108"/>
- <source>720p or higher</source>
- <translation>720p ili više</translation>
- </message>
- <message>
- <location filename="src/refinesearchwidget.cpp" line="122"/>
- <source>Done</source>
- <translation>Gotovo</translation>
- </message>
-</context>
-<context>
- <name>RegionsView</name>
- <message>
- <location filename="src/regionsview.cpp" line="19"/>
- <source>Done</source>
- <translation type="unfinished"/>
- </message>
-</context>
-<context>
- <name>SearchLineEdit</name>
- <message>
- <location filename="src/searchlineedit.cpp" line="177"/>
- <source>Search</source>
- <translation>Traži</translation>
- </message>
-</context>
-<context>
- <name>SearchView</name>
- <message>
- <location filename="src/searchview.cpp" line="71"/>
- <source>Welcome to <a href='%1'>%2</a>,</source>
- <translation>Dobrodošli u <a href='%1'>%2</a>,</translation>
- </message>
- <message>
- <location filename="src/searchview.cpp" line="50"/>
- <source>Get the full version</source>
- <translation>Preuzmi punu verziju</translation>
- </message>
- <message>
- <location filename="src/searchview.cpp" line="85"/>
- <source>Enter</source>
- <extracomment>"Enter", as in "type". The whole phrase says: "Enter a keyword to start watching videos"</extracomment>
- <translation>Unesi</translation>
- </message>
- <message>
- <location filename="src/searchview.cpp" line="90"/>
- <source>a keyword</source>
- <translation>ključna riječ</translation>
- </message>
- <message>
- <location filename="src/searchview.cpp" line="91"/>
- <source>a channel</source>
- <translation>kanal</translation>
- </message>
- <message>
- <location filename="src/searchview.cpp" line="96"/>
- <source>to start watching videos.</source>
- <translation>da počnete gledati video.</translation>
- </message>
- <message>
- <location filename="src/searchview.cpp" line="120"/>
- <source>Watch</source>
- <translation>Gledaj</translation>
- </message>
- <message>
- <location filename="src/searchview.cpp" line="138"/>
- <source>Recent keywords</source>
- <translation>Nedavne ključne riječi</translation>
- </message>
- <message>
- <location filename="src/searchview.cpp" line="151"/>
- <source>Recent channels</source>
- <translation>Nedavni kanali</translation>
- </message>
-</context>
-<context>
- <name>SidebarHeader</name>
- <message>
- <location filename="src/sidebarheader.cpp" line="16"/>
- <location filename="src/sidebarheader.cpp" line="23"/>
- <source>&Back</source>
- <translation>&Nazad</translation>
- </message>
- <message>
- <location filename="src/sidebarheader.cpp" line="57"/>
- <source>Forward to %1</source>
- <translation type="unfinished"/>
- </message>
- <message>
- <location filename="src/sidebarheader.cpp" line="70"/>
- <source>Back to %1</source>
- <translation type="unfinished"/>
- </message>
-</context>
-<context>
- <name>SidebarWidget</name>
- <message>
- <location filename="src/sidebarwidget.cpp" line="52"/>
- <source>Refine Search</source>
- <translation>Suzi pretragu</translation>
- </message>
- <message>
- <location filename="src/sidebarwidget.cpp" line="148"/>
- <source>Did you mean: %1</source>
- <translation>Dali ste mislili: %1</translation>
- </message>
-</context>
-<context>
- <name>StandardFeedsView</name>
- <message>
- <location filename="src/standardfeedsview.cpp" line="85"/>
- <source>Most Popular</source>
- <translation type="unfinished"/>
- </message>
- <message>
- <location filename="src/standardfeedsview.cpp" line="86"/>
- <source>Featured</source>
- <translation type="unfinished"/>
- </message>
- <message>
- <location filename="src/standardfeedsview.cpp" line="87"/>
- <source>Most Shared</source>
- <translation type="unfinished"/>
- </message>
- <message>
- <location filename="src/standardfeedsview.cpp" line="88"/>
- <source>Most Discussed</source>
- <translation type="unfinished"/>
- </message>
- <message>
- <location filename="src/standardfeedsview.cpp" line="89"/>
- <source>Top Rated</source>
- <translation type="unfinished"/>
- </message>
-</context>
-<context>
- <name>Video</name>
- <message>
- <location filename="src/video.cpp" line="213"/>
- <source>Cannot get video stream for %1</source>
- <translation>Ne mogu naći video stream za %1</translation>
- </message>
- <message>
- <location filename="src/video.cpp" line="231"/>
- <source>Network error: %1 for %2</source>
- <translation>Greška mreže: %1 za %2</translation>
- </message>
-</context>
-<context>
- <name>YTRegions</name>
- <message>
- <location filename="src/ytregions.cpp" line="8"/>
- <source>Algeria</source>
- <translation type="unfinished"/>
- </message>
- <message>
- <location filename="src/ytregions.cpp" line="9"/>
- <source>Argentina</source>
- <translation type="unfinished"/>
- </message>
- <message>
- <location filename="src/ytregions.cpp" line="10"/>
- <source>Australia</source>
- <translation type="unfinished"/>
- </message>
- <message>
- <location filename="src/ytregions.cpp" line="11"/>
- <source>Belgium</source>
- <translation type="unfinished"/>
- </message>
- <message>
- <location filename="src/ytregions.cpp" line="12"/>
- <source>Brazil</source>
- <translation type="unfinished"/>
- </message>
- <message>
- <location filename="src/ytregions.cpp" line="13"/>
- <source>Canada</source>
- <translation type="unfinished"/>
- </message>
- <message>
- <location filename="src/ytregions.cpp" line="14"/>
- <source>Chile</source>
- <translation type="unfinished"/>
- </message>
- <message>
- <location filename="src/ytregions.cpp" line="15"/>
- <source>Colombia</source>
- <translation type="unfinished"/>
- </message>
- <message>
- <location filename="src/ytregions.cpp" line="16"/>
- <source>Czech Republic</source>
- <translation type="unfinished"/>
- </message>
- <message>
- <location filename="src/ytregions.cpp" line="17"/>
- <source>Egypt</source>
- <translation type="unfinished"/>
- </message>
- <message>
- <location filename="src/ytregions.cpp" line="18"/>
- <source>France</source>
- <translation type="unfinished"/>
- </message>
- <message>
- <location filename="src/ytregions.cpp" line="19"/>
- <source>Germany</source>
- <translation type="unfinished"/>
- </message>
- <message>
- <location filename="src/ytregions.cpp" line="20"/>
- <source>Ghana</source>
- <translation type="unfinished"/>
- </message>
- <message>
- <location filename="src/ytregions.cpp" line="21"/>
- <source>Greece</source>
- <translation type="unfinished"/>
- </message>
- <message>
- <location filename="src/ytregions.cpp" line="22"/>
- <source>Hong Kong</source>
- <translation type="unfinished"/>
- </message>
- <message>
- <location filename="src/ytregions.cpp" line="23"/>
- <source>Hungary</source>
- <translation type="unfinished"/>
- </message>
- <message>
- <location filename="src/ytregions.cpp" line="24"/>
- <source>India</source>
- <translation type="unfinished"/>
- </message>
- <message>
- <location filename="src/ytregions.cpp" line="25"/>
- <source>Indonesia</source>
- <translation type="unfinished"/>
- </message>
- <message>
- <location filename="src/ytregions.cpp" line="26"/>
- <source>Ireland</source>
- <translation type="unfinished"/>
- </message>
- <message>
- <location filename="src/ytregions.cpp" line="27"/>
- <source>Israel</source>
- <translation type="unfinished"/>
- </message>
- <message>
- <location filename="src/ytregions.cpp" line="28"/>
- <source>Italy</source>
- <translation type="unfinished"/>
- </message>
- <message>
- <location filename="src/ytregions.cpp" line="29"/>
- <source>Japan</source>
- <translation type="unfinished"/>
- </message>
- <message>
- <location filename="src/ytregions.cpp" line="30"/>
- <source>Jordan</source>
- <translation type="unfinished"/>
- </message>
- <message>
- <location filename="src/ytregions.cpp" line="31"/>
- <source>Kenya</source>
- <translation type="unfinished"/>
- </message>
- <message>
- <location filename="src/ytregions.cpp" line="32"/>
- <source>Malaysia</source>
- <translation type="unfinished"/>
- </message>
- <message>
- <location filename="src/ytregions.cpp" line="33"/>
- <source>Mexico</source>
- <translation type="unfinished"/>
- </message>
- <message>
- <location filename="src/ytregions.cpp" line="34"/>
- <source>Morocco</source>
- <translation type="unfinished"/>
- </message>
- <message>
- <location filename="src/ytregions.cpp" line="35"/>
- <source>Netherlands</source>
- <translation type="unfinished"/>
- </message>
- <message>
- <location filename="src/ytregions.cpp" line="36"/>
- <source>New Zealand</source>
- <translation type="unfinished"/>
- </message>
- <message>
- <location filename="src/ytregions.cpp" line="37"/>
- <source>Nigeria</source>
- <translation type="unfinished"/>
- </message>
- <message>
- <location filename="src/ytregions.cpp" line="38"/>
- <source>Peru</source>
- <translation type="unfinished"/>
- </message>
- <message>
- <location filename="src/ytregions.cpp" line="39"/>
- <source>Philippines</source>
- <translation type="unfinished"/>
- </message>
- <message>
- <location filename="src/ytregions.cpp" line="40"/>
- <source>Poland</source>
- <translation type="unfinished"/>
- </message>
- <message>
- <location filename="src/ytregions.cpp" line="41"/>
- <source>Russia</source>
- <translation type="unfinished"/>
- </message>
- <message>
- <location filename="src/ytregions.cpp" line="42"/>
- <source>Saudi Arabia</source>
- <translation type="unfinished"/>
- </message>
- <message>
- <location filename="src/ytregions.cpp" line="43"/>
- <source>Singapore</source>
- <translation type="unfinished"/>
- </message>
- <message>
- <location filename="src/ytregions.cpp" line="44"/>
- <source>South Africa</source>
- <translation type="unfinished"/>
- </message>
- <message>
- <location filename="src/ytregions.cpp" line="45"/>
- <source>South Korea</source>
- <translation type="unfinished"/>
- </message>
- <message>
- <location filename="src/ytregions.cpp" line="46"/>
- <source>Spain</source>
- <translation type="unfinished"/>
- </message>
- <message>
- <location filename="src/ytregions.cpp" line="47"/>
- <source>Sweden</source>
- <translation type="unfinished"/>
- </message>
- <message>
- <location filename="src/ytregions.cpp" line="48"/>
- <source>Taiwan</source>
- <translation type="unfinished"/>
- </message>
- <message>
- <location filename="src/ytregions.cpp" line="49"/>
- <source>Tunisia</source>
- <translation type="unfinished"/>
- </message>
- <message>
- <location filename="src/ytregions.cpp" line="50"/>
- <source>Turkey</source>
- <translation type="unfinished"/>
- </message>
- <message>
- <location filename="src/ytregions.cpp" line="51"/>
- <source>Uganda</source>
- <translation type="unfinished"/>
- </message>
- <message>
- <location filename="src/ytregions.cpp" line="52"/>
- <source>United Arab Emirates</source>
- <translation type="unfinished"/>
- </message>
- <message>
- <location filename="src/ytregions.cpp" line="53"/>
- <source>United Kingdom</source>
- <translation type="unfinished"/>
- </message>
- <message>
- <location filename="src/ytregions.cpp" line="54"/>
- <source>Yemen</source>
- <translation type="unfinished"/>
- </message>
- <message>
- <location filename="src/ytregions.cpp" line="128"/>
- <source>Worldwide</source>
- <translation type="unfinished"/>
- </message>
-</context>
-</TS>
\ No newline at end of file
<translation type="unfinished"/>
</message>
</context>
+<context>
+ <name>ChannelAggregator</name>
+ <message>
+ <location filename="src/channelaggregator.cpp" line="110"/>
+ <source>By %1</source>
+ <translation type="unfinished"/>
+ </message>
+ <message numerus="yes">
+ <location filename="src/channelaggregator.cpp" line="112"/>
+ <source>You have %n new video(s)</source>
+ <translation type="unfinished"><numerusform></numerusform><numerusform></numerusform></translation>
+ </message>
+</context>
+<context>
+ <name>ChannelItemDelegate</name>
+ <message>
+ <location filename="src/channelitemdelegate.cpp" line="46"/>
+ <source>All Videos</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="src/channelitemdelegate.cpp" line="63"/>
+ <source>Unwatched Videos</source>
+ <translation type="unfinished"/>
+ </message>
+</context>
+<context>
+ <name>ChannelView</name>
+ <message>
+ <location filename="src/channelview.cpp" line="75"/>
+ <source>Mark all as watched</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="src/channelview.cpp" line="83"/>
+ <source>Show Updated</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="src/channelview.cpp" line="95"/>
+ <source>Name</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="src/channelview.cpp" line="102"/>
+ <source>Last Updated</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="src/channelview.cpp" line="109"/>
+ <source>Last Added</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="src/channelview.cpp" line="116"/>
+ <source>Last Watched</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="src/channelview.cpp" line="123"/>
+ <source>Most Watched</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="src/channelview.cpp" line="131"/>
+ <source>Sort by</source>
+ <translation>Rendezés</translation>
+ </message>
+ <message>
+ <location filename="src/channelview.cpp" line="190"/>
+ <source>All Videos</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="src/channelview.cpp" line="194"/>
+ <source>Unwatched Videos</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="src/channelview.cpp" line="206"/>
+ <source>There are no updated subscriptions at this time.</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="src/channelview.cpp" line="208"/>
+ <source>You have no subscriptions. Use the star symbol to subscribe to channels.</source>
+ <translation type="unfinished"/>
+ </message>
+</context>
<context>
<name>ClearButton</name>
<message>
<context>
<name>HomeView</name>
<message>
- <location filename="src/homeview.cpp" line="33"/>
+ <location filename="src/homeview.cpp" line="38"/>
<source>Search</source>
<translation>Keresés</translation>
</message>
<message>
- <location filename="src/homeview.cpp" line="35"/>
+ <location filename="src/homeview.cpp" line="40"/>
<source>Find videos and channels by keyword</source>
- <translation type="unfinished"/>
+ <translation>Videók és csatornák keresése kulcsszó alapján</translation>
</message>
<message>
- <location filename="src/homeview.cpp" line="40"/>
+ <location filename="src/homeview.cpp" line="45"/>
<source>Browse</source>
<translation>Keresés</translation>
</message>
<message>
- <location filename="src/homeview.cpp" line="42"/>
+ <location filename="src/homeview.cpp" line="47"/>
<source>Browse videos by category</source>
<translation>Videók keresése kategória szerint</translation>
</message>
+ <message>
+ <location filename="src/homeview.cpp" line="51"/>
+ <source>Subscriptions</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="src/homeview.cpp" line="53"/>
+ <source>Channel subscriptions</source>
+ <translation type="unfinished"/>
+ </message>
<message>
<location filename="src/homeview.h" line="22"/>
<source>Make yourself comfortable</source>
<context>
<name>LoadingWidget</name>
<message>
- <location filename="src/loadingwidget.cpp" line="90"/>
+ <location filename="src/loadingwidget.cpp" line="88"/>
<source>Error</source>
<translation>Hiba</translation>
</message>
<context>
<name>MainWindow</name>
<message>
- <location filename="src/mainwindow.cpp" line="213"/>
+ <location filename="src/mainwindow.cpp" line="237"/>
<source>&Stop</source>
<translation>&Leállítás</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="214"/>
+ <location filename="src/mainwindow.cpp" line="238"/>
<source>Stop playback and go back to the search view</source>
<translation>Lejátszás befejezése és visszatérés a keresés nézetre</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="232"/>
+ <location filename="src/mainwindow.cpp" line="253"/>
<source>S&kip</source>
<translation>U&grás</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="233"/>
+ <location filename="src/mainwindow.cpp" line="254"/>
<source>Skip to the next video</source>
<translation>Ugrás a következő videóra</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="239"/>
- <location filename="src/mainwindow.cpp" line="989"/>
+ <location filename="src/mainwindow.cpp" line="260"/>
+ <location filename="src/mainwindow.cpp" line="1012"/>
<source>&Pause</source>
<translation>&Megállítás</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="240"/>
- <location filename="src/mainwindow.cpp" line="990"/>
+ <location filename="src/mainwindow.cpp" line="261"/>
+ <location filename="src/mainwindow.cpp" line="1013"/>
<source>Pause playback</source>
<translation>Lejátszás megállítása</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="246"/>
+ <location filename="src/mainwindow.cpp" line="267"/>
<source>&Full Screen</source>
<translation>&Teljes képernyő</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="247"/>
+ <location filename="src/mainwindow.cpp" line="268"/>
<source>Go full screen</source>
<translation>Teljes képernyőre váltás</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="263"/>
+ <location filename="src/mainwindow.cpp" line="282"/>
<source>Hide the playlist and the toolbar</source>
<translation>Lejátszási lista és eszközsor elrejtése</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="276"/>
+ <location filename="src/mainwindow.cpp" line="295"/>
<source>Go to the YouTube video page and pause playback</source>
<translation>Ugrás a YouTube videó oldalára és a lejátszás megállítása</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="283"/>
+ <location filename="src/mainwindow.cpp" line="302"/>
<source>Copy the current video YouTube link to the clipboard</source>
<translation>Az aktuális videó Youtube &hivatkozásának másolása a vágólapra</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="290"/>
+ <location filename="src/mainwindow.cpp" line="309"/>
<source>Copy the current video stream URL to the clipboard</source>
<translation>Az aktuális videó adatfolyam URL címének másolása a vágólapra</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="297"/>
+ <location filename="src/mainwindow.cpp" line="316"/>
<source>Find other video parts hopefully in the right order</source>
<translation>További videórészletek keresése remélhetőleg helyes sorrendben</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="303"/>
+ <location filename="src/mainwindow.cpp" line="322"/>
<source>&Remove</source>
<translation>&Eltávolítás</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="304"/>
+ <location filename="src/mainwindow.cpp" line="323"/>
<source>Remove the selected videos from the playlist</source>
<translation>Kijelölt videók eltávolítása a lejátszási listáról</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="310"/>
+ <location filename="src/mainwindow.cpp" line="329"/>
<source>Move &Up</source>
<translation>Mozgatás &felfelé</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="311"/>
+ <location filename="src/mainwindow.cpp" line="330"/>
<source>Move up the selected videos in the playlist</source>
<translation>Kijelölt videók mozgatása felfelé a lejátszási listában</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="317"/>
+ <location filename="src/mainwindow.cpp" line="336"/>
<source>Move &Down</source>
<translation>Mozgatás &lefelé</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="318"/>
+ <location filename="src/mainwindow.cpp" line="337"/>
<source>Move down the selected videos in the playlist</source>
<translation>Kijelölt videók mozgatása lefelé a lejátszási listában</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="329"/>
+ <location filename="src/mainwindow.cpp" line="348"/>
<source>Clear the search history. Cannot be undone.</source>
<translation>Keresési előzmények törlése. Nem vonható vissza.</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="334"/>
+ <location filename="src/mainwindow.cpp" line="353"/>
<source>&Quit</source>
<translation>&Kilépés</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="337"/>
+ <location filename="src/mainwindow.cpp" line="356"/>
<source>Bye</source>
<translation>Viszlát</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="341"/>
+ <location filename="src/mainwindow.cpp" line="360"/>
<source>&Website</source>
<translation>&Webhely</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="343"/>
+ <location filename="src/mainwindow.cpp" line="362"/>
<source>%1 on the Web</source>
<translation>%1 a weben</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="349"/>
+ <location filename="src/mainwindow.cpp" line="368"/>
<source>Please support the continued development of %1</source>
<translation>Támogassa a %1 program folyamatos fejlesztését</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="354"/>
+ <location filename="src/mainwindow.cpp" line="373"/>
<source>&About</source>
<translation>&Névjegy</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="356"/>
+ <location filename="src/mainwindow.cpp" line="375"/>
<source>Info about %1</source>
<translation>Információ a %1 programról</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="364"/>
+ <location filename="src/mainwindow.cpp" line="383"/>
<source>Search</source>
<translation>Keresés</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="383"/>
+ <location filename="src/mainwindow.cpp" line="402"/>
<source>Mute volume</source>
<translation>Hangerő némítása</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="412"/>
- <location filename="src/mainwindow.cpp" line="1365"/>
+ <location filename="src/mainwindow.cpp" line="431"/>
+ <location filename="src/mainwindow.cpp" line="1406"/>
<source>&Downloads</source>
<translation>&Letöltések</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="413"/>
+ <location filename="src/mainwindow.cpp" line="432"/>
<source>Show details about video downloads</source>
<translation>A videóletöltések részleteinek megjelenítése</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="421"/>
+ <location filename="src/mainwindow.cpp" line="440"/>
<source>&Download</source>
<translation>&Letöltés</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="422"/>
+ <location filename="src/mainwindow.cpp" line="441"/>
<source>Download the current video</source>
<translation>Aktuális videó letöltése</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="441"/>
+ <location filename="src/mainwindow.cpp" line="458"/>
+ <source>&Subscribe to Channel</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="src/mainwindow.cpp" line="465"/>
<source>Share the current video using %1</source>
<translation>Aktuális videó megosztása a következővel: %1</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="458"/>
+ <location filename="src/mainwindow.cpp" line="482"/>
<source>&Email</source>
<translation>&Email</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="459"/>
+ <location filename="src/mainwindow.cpp" line="483"/>
<source>Email</source>
<translation>Email</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="463"/>
+ <location filename="src/mainwindow.cpp" line="487"/>
<source>&Close</source>
<translation>&Bezárás</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="473"/>
+ <location filename="src/mainwindow.cpp" line="497"/>
<source>&Float on Top</source>
<translation>&Többi ablak fölött</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="478"/>
+ <location filename="src/mainwindow.cpp" line="502"/>
<source>&Stop After This Video</source>
<translation>&Videó után leállítás</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="485"/>
+ <location filename="src/mainwindow.cpp" line="509"/>
<source>&Report an Issue...</source>
<translation>&Hiba bejelentése</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="489"/>
+ <location filename="src/mainwindow.cpp" line="513"/>
<source>&Refine Search...</source>
<translation>&Keresés pontosítása</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="501"/>
+ <location filename="src/mainwindow.cpp" line="525"/>
<source>More...</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="504"/>
+ <location filename="src/mainwindow.cpp" line="528"/>
<source>&Related Videos</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="506"/>
+ <location filename="src/mainwindow.cpp" line="530"/>
<source>Watch videos related to the current one</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="544"/>
+ <location filename="src/mainwindow.cpp" line="553"/>
<source>&Application</source>
<translation>&Alkalmazás</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="515"/>
+ <location filename="src/mainwindow.cpp" line="537"/>
<source>Buy %1...</source>
<translation>%1 megvásárlása...</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="558"/>
+ <location filename="src/mainwindow.cpp" line="567"/>
<source>&Playback</source>
<translation>&Lejátszás</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="572"/>
+ <location filename="src/mainwindow.cpp" line="581"/>
<source>&Playlist</source>
<translation>&Lejátszási lista</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="581"/>
+ <location filename="src/mainwindow.cpp" line="590"/>
<source>&Video</source>
<translation>&Videó</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="594"/>
+ <location filename="src/mainwindow.cpp" line="605"/>
<source>&View</source>
<translation>&Megtekintés</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="601"/>
+ <location filename="src/mainwindow.cpp" line="612"/>
<source>&Share</source>
<translation>&Megosztás</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="615"/>
+ <location filename="src/mainwindow.cpp" line="626"/>
<source>&Help</source>
<translation>&Súgó</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="690"/>
+ <location filename="src/mainwindow.cpp" line="701"/>
<source>Press %1 to raise the volume, %2 to lower it</source>
<translation>Hangerő növelése: %1, hangerő csökkentése: %2</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="889"/>
- <location filename="src/mainwindow.cpp" line="895"/>
+ <location filename="src/mainwindow.cpp" line="910"/>
+ <location filename="src/mainwindow.cpp" line="916"/>
<source>Opening %1</source>
<translation>%1 megnyitása</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="936"/>
+ <location filename="src/mainwindow.cpp" line="959"/>
<source>Do you want to exit %1 with a download in progress?</source>
<translation>Szeretne kilépni a %1 programból letöltés közben?</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="937"/>
+ <location filename="src/mainwindow.cpp" line="960"/>
<source>If you close %1 now, this download will be cancelled.</source>
<translation>Ha bezárja a %1 programot, a letöltés megszakad.</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="942"/>
+ <location filename="src/mainwindow.cpp" line="965"/>
<source>Close and cancel download</source>
<translation>Bezárás és letöltés megszakítása</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="943"/>
+ <location filename="src/mainwindow.cpp" line="966"/>
<source>Wait for download to finish</source>
<translation>A letöltés befejeződésének megvárása</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="1102"/>
+ <location filename="src/mainwindow.cpp" line="1125"/>
<source>Leave &Full Screen</source>
<translation>Kilépés a &teljes képernyős módból</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="1475"/>
+ <location filename="src/mainwindow.cpp" line="1515"/>
<source>%1 version %2 is now available.</source>
<translation>A %1 program %2 verziója elérhető.</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="1479"/>
+ <location filename="src/mainwindow.cpp" line="1519"/>
<source>Remind me later</source>
<translation>Figyelmeztetés később</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="1480"/>
+ <location filename="src/mainwindow.cpp" line="1520"/>
<source>Update</source>
<translation>Frissítés</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="982"/>
+ <location filename="src/mainwindow.cpp" line="1005"/>
<source>Error: %1</source>
<translation>Hiba: %1</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="222"/>
+ <location filename="src/mainwindow.cpp" line="246"/>
<source>P&revious</source>
<translation>&Előző</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="223"/>
+ <location filename="src/mainwindow.cpp" line="247"/>
<source>Go back to the previous track</source>
<translation>Ugrás az előző számra</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="262"/>
+ <location filename="src/mainwindow.cpp" line="281"/>
<source>&Compact Mode</source>
<translation>&Kompaktmód</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="275"/>
+ <location filename="src/mainwindow.cpp" line="294"/>
<source>Open the &YouTube Page</source>
<translation>&YouTube oldal megnyitása</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="282"/>
+ <location filename="src/mainwindow.cpp" line="301"/>
<source>Copy the YouTube &Link</source>
<translation>YouTube &hivatkozás másolása</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="289"/>
+ <location filename="src/mainwindow.cpp" line="308"/>
<source>Copy the Video Stream &URL</source>
<translation>&Videó-URL másolása</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="296"/>
+ <location filename="src/mainwindow.cpp" line="315"/>
<source>Find Video &Parts</source>
<translation>További videó&részletek keresése</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="324"/>
+ <location filename="src/mainwindow.cpp" line="343"/>
<source>&Clear Recent Searches</source>
<translation>&Legutóbbi keresések törlése</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="348"/>
+ <location filename="src/mainwindow.cpp" line="367"/>
<source>Make a &Donation</source>
<translation>&Támogasd</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="405"/>
+ <location filename="src/mainwindow.cpp" line="424"/>
<source>&Manually Start Playing</source>
<translation>&Manuális lejátszás</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="406"/>
+ <location filename="src/mainwindow.cpp" line="425"/>
<source>Manually start playing videos</source>
<translation>Videók lejátszása manuális indítással</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="728"/>
+ <location filename="src/mainwindow.cpp" line="739"/>
<source>Choose your content location</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="1002"/>
+ <location filename="src/mainwindow.cpp" line="1025"/>
<source>&Play</source>
<translation>&Lejátszás</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="1003"/>
+ <location filename="src/mainwindow.cpp" line="1026"/>
<source>Resume playback</source>
<translation>Lejátszás folytatása</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="1236"/>
+ <location filename="src/mainwindow.cpp" line="1277"/>
<source>Remaining time: %1</source>
<translation>Hátralévő idő: %1</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="1294"/>
+ <location filename="src/mainwindow.cpp" line="1335"/>
<source>Volume at %1%</source>
<translation>Hangerő: %1%</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="1300"/>
+ <location filename="src/mainwindow.cpp" line="1341"/>
<source>Volume is muted</source>
<translation>Hangerő némítva</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="1303"/>
+ <location filename="src/mainwindow.cpp" line="1344"/>
<source>Volume is unmuted</source>
<translation>Hangerő némítása feloldva</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="1310"/>
+ <location filename="src/mainwindow.cpp" line="1351"/>
<source>Maximum video definition set to %1</source>
<translation>Videók maximális felbontásának beállítása: %1</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="1351"/>
+ <location filename="src/mainwindow.cpp" line="1392"/>
<source>Your privacy is now safe</source>
<translation>A személyes adatok most már biztonságban vannak</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="1366"/>
+ <location filename="src/mainwindow.cpp" line="1407"/>
<source>Downloads complete</source>
<translation>A letöltések befejeződtek</translation>
</message>
<context>
<name>MediaView</name>
<message>
- <location filename="src/mediaview.cpp" line="553"/>
+ <location filename="src/mediaview.cpp" line="563"/>
<source>You can now paste the YouTube link into another application</source>
<translation>A YouTube hivatkozás most már beilleszthető egy másik alkalmazásba</translation>
</message>
<message>
- <location filename="src/mediaview.cpp" line="561"/>
+ <location filename="src/mediaview.cpp" line="571"/>
<source>You can now paste the video stream URL into another application</source>
<translation>Most már beillesztheti a videó adatfolyam URL címét egy másik alkalmazásba</translation>
</message>
<message>
- <location filename="src/mediaview.cpp" line="562"/>
+ <location filename="src/mediaview.cpp" line="572"/>
<source>The link will be valid only for a limited time.</source>
<translation>A hivatkozás csak korlátozott ideig lesz érvényben.</translation>
</message>
<message>
- <location filename="src/mediaview.cpp" line="636"/>
+ <location filename="src/mediaview.cpp" line="650"/>
<source>This is just the demo version of %1.</source>
<translation>Ez csak a demó verziója a %1 programnak.</translation>
</message>
<message>
- <location filename="src/mediaview.cpp" line="637"/>
+ <location filename="src/mediaview.cpp" line="651"/>
<source>It allows you to test the application and see if it works for you.</source>
<translation>Kipróbálhatja az alkalmazást, hogy megfelel-e az igényeinek.</translation>
</message>
<message>
- <location filename="src/mediaview.cpp" line="667"/>
+ <location filename="src/mediaview.cpp" line="681"/>
<source>Continue</source>
<translation>Folytatás</translation>
</message>
<message>
- <location filename="src/mediaview.cpp" line="756"/>
+ <location filename="src/mediaview.cpp" line="772"/>
<source>of</source>
<comment>Used in video parts, as in '2 of 3'</comment>
<translation> - </translation>
</message>
<message>
- <location filename="src/mediaview.cpp" line="768"/>
+ <location filename="src/mediaview.cpp" line="785"/>
<source>part</source>
<comment>This is for video parts, as in 'Cool video - part 1'</comment>
<translation>rész</translation>
</message>
<message>
- <location filename="src/mediaview.cpp" line="770"/>
+ <location filename="src/mediaview.cpp" line="787"/>
<source>episode</source>
<comment>This is for video parts, as in 'Cool series - episode 1'</comment>
<translation>epizód</translation>
</message>
<message>
- <location filename="src/mediaview.cpp" line="847"/>
+ <location filename="src/mediaview.cpp" line="868"/>
<source>Sent from %1</source>
<translation>A %1 programból küldve</translation>
</message>
<message>
- <location filename="src/mediaview.cpp" line="644"/>
+ <location filename="src/mediaview.cpp" line="899"/>
+ <source>Unsubscribe from %1</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="src/mediaview.cpp" line="903"/>
+ <source>Subscribe to %1</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="src/mediaview.cpp" line="658"/>
<source>Get the full version</source>
<translation>Teljes verzió beszerzése</translation>
</message>
<message>
- <location filename="src/mediaview.cpp" line="681"/>
+ <location filename="src/mediaview.cpp" line="695"/>
<source>Downloading %1</source>
<translation>Letöltés: %1</translation>
</message>
<context>
<name>PlaylistItemDelegate</name>
<message>
- <location filename="src/playlistitemdelegate.cpp" line="159"/>
+ <location filename="src/playlistitemdelegate.cpp" line="177"/>
<source>%1 views</source>
<translation>%1 néző</translation>
</message>
<message>
- <location filename="src/playlistitemdelegate.cpp" line="285"/>
+ <location filename="src/playlistitemdelegate.cpp" line="292"/>
<source>%1 of %2 (%3) — %4</source>
<translation>%1 %2 közül (%3) — %4</translation>
</message>
<message>
- <location filename="src/playlistitemdelegate.cpp" line="292"/>
+ <location filename="src/playlistitemdelegate.cpp" line="299"/>
<source>Preparing</source>
<translation>Előkészítés</translation>
</message>
<message>
- <location filename="src/playlistitemdelegate.cpp" line="294"/>
+ <location filename="src/playlistitemdelegate.cpp" line="301"/>
<source>Failed</source>
<translation>Hiba</translation>
</message>
<message>
- <location filename="src/playlistitemdelegate.cpp" line="296"/>
+ <location filename="src/playlistitemdelegate.cpp" line="303"/>
<source>Completed</source>
<translation>Sikeres befejezés</translation>
</message>
<message>
- <location filename="src/playlistitemdelegate.cpp" line="298"/>
+ <location filename="src/playlistitemdelegate.cpp" line="305"/>
<source>Stopped</source>
<translation>Leállítva</translation>
</message>
<message>
- <location filename="src/playlistitemdelegate.cpp" line="334"/>
+ <location filename="src/playlistitemdelegate.cpp" line="341"/>
<source>Stop downloading</source>
<translation>Letöltés leállítása </translation>
</message>
<message>
- <location filename="src/playlistitemdelegate.cpp" line="344"/>
+ <location filename="src/playlistitemdelegate.cpp" line="351"/>
<source>Show in %1</source>
<translation>Megjelenítés a következőben: %1</translation>
</message>
<message>
- <location filename="src/playlistitemdelegate.cpp" line="346"/>
+ <location filename="src/playlistitemdelegate.cpp" line="353"/>
<source>Open parent folder</source>
- <translation type="unfinished"/>
+ <translation>Szülőmappa megnyitása</translation>
</message>
<message>
- <location filename="src/playlistitemdelegate.cpp" line="355"/>
+ <location filename="src/playlistitemdelegate.cpp" line="362"/>
<source>Restart downloading</source>
<translation>Letöltés újraindítása </translation>
</message>
<context>
<name>SearchView</name>
<message>
- <location filename="src/searchview.cpp" line="71"/>
+ <location filename="src/searchview.cpp" line="66"/>
<source>Welcome to <a href='%1'>%2</a>,</source>
<translation>Üdvözli a <a href='%1'>%2</a> program,</translation>
</message>
<message>
- <location filename="src/searchview.cpp" line="50"/>
+ <location filename="src/searchview.cpp" line="161"/>
<source>Get the full version</source>
<translation>Teljes verzió beszerzése</translation>
</message>
<message>
- <location filename="src/searchview.cpp" line="85"/>
+ <location filename="src/searchview.cpp" line="80"/>
<source>Enter</source>
<extracomment>"Enter", as in "type". The whole phrase says: "Enter a keyword to start watching videos"</extracomment>
<translation>Írjon be</translation>
</message>
<message>
- <location filename="src/searchview.cpp" line="90"/>
+ <location filename="src/searchview.cpp" line="85"/>
<source>a keyword</source>
<translation>egy kulcsszót</translation>
</message>
<message>
- <location filename="src/searchview.cpp" line="91"/>
+ <location filename="src/searchview.cpp" line="86"/>
<source>a channel</source>
<translation>egy csatornát</translation>
</message>
<message>
- <location filename="src/searchview.cpp" line="96"/>
+ <location filename="src/searchview.cpp" line="91"/>
<source>to start watching videos.</source>
<translation>a videók megtekintéséhez.</translation>
</message>
<message>
- <location filename="src/searchview.cpp" line="120"/>
+ <location filename="src/searchview.cpp" line="115"/>
<source>Watch</source>
<translation>Megtekintés</translation>
</message>
<message>
- <location filename="src/searchview.cpp" line="138"/>
+ <location filename="src/searchview.cpp" line="133"/>
<source>Recent keywords</source>
<translation>Legutóbbi kulcsszavak</translation>
</message>
<message>
- <location filename="src/searchview.cpp" line="151"/>
+ <location filename="src/searchview.cpp" line="146"/>
<source>Recent channels</source>
<translation>Legutóbbi csatornák</translation>
</message>
<context>
<name>SidebarHeader</name>
<message>
- <location filename="src/sidebarheader.cpp" line="16"/>
- <location filename="src/sidebarheader.cpp" line="23"/>
+ <location filename="src/sidebarheader.cpp" line="19"/>
+ <location filename="src/sidebarheader.cpp" line="26"/>
<source>&Back</source>
<translation>&Vissza</translation>
</message>
<source>Most Popular</source>
<translation>Legnépszerübb</translation>
</message>
- <message>
- <location filename="src/standardfeedsview.cpp" line="86"/>
- <source>Featured</source>
- <translation>Kiemelt</translation>
- </message>
<message>
<location filename="src/standardfeedsview.cpp" line="87"/>
<source>Most Shared</source>
<source>Top Rated</source>
<translation type="unfinished"/>
</message>
+ <message>
+ <location filename="src/standardfeedsview.cpp" line="90"/>
+ <source>All Time Popular</source>
+ <translation type="unfinished"/>
+ </message>
</context>
<context>
<name>Video</name>
<message>
- <location filename="src/video.cpp" line="213"/>
+ <location filename="src/video.cpp" line="215"/>
<source>Cannot get video stream for %1</source>
<translation>Nem található videó adatfolyam a következőhöz: %1</translation>
</message>
<message>
- <location filename="src/video.cpp" line="231"/>
+ <location filename="src/video.cpp" line="233"/>
<source>Network error: %1 for %2</source>
<translation>Hálózati hiba: %1 a következőhöz: %2</translation>
</message>
<translation type="unfinished"/>
</message>
</context>
+<context>
+ <name>ChannelAggregator</name>
+ <message>
+ <location filename="src/channelaggregator.cpp" line="110"/>
+ <source>By %1</source>
+ <translation type="unfinished"/>
+ </message>
+ <message numerus="yes">
+ <location filename="src/channelaggregator.cpp" line="112"/>
+ <source>You have %n new video(s)</source>
+ <translation type="unfinished"><numerusform></numerusform><numerusform></numerusform></translation>
+ </message>
+</context>
+<context>
+ <name>ChannelItemDelegate</name>
+ <message>
+ <location filename="src/channelitemdelegate.cpp" line="46"/>
+ <source>All Videos</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="src/channelitemdelegate.cpp" line="63"/>
+ <source>Unwatched Videos</source>
+ <translation type="unfinished"/>
+ </message>
+</context>
+<context>
+ <name>ChannelView</name>
+ <message>
+ <location filename="src/channelview.cpp" line="75"/>
+ <source>Mark all as watched</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="src/channelview.cpp" line="83"/>
+ <source>Show Updated</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="src/channelview.cpp" line="95"/>
+ <source>Name</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="src/channelview.cpp" line="102"/>
+ <source>Last Updated</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="src/channelview.cpp" line="109"/>
+ <source>Last Added</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="src/channelview.cpp" line="116"/>
+ <source>Last Watched</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="src/channelview.cpp" line="123"/>
+ <source>Most Watched</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="src/channelview.cpp" line="131"/>
+ <source>Sort by</source>
+ <translation>Ordinar per</translation>
+ </message>
+ <message>
+ <location filename="src/channelview.cpp" line="190"/>
+ <source>All Videos</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="src/channelview.cpp" line="194"/>
+ <source>Unwatched Videos</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="src/channelview.cpp" line="206"/>
+ <source>There are no updated subscriptions at this time.</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="src/channelview.cpp" line="208"/>
+ <source>You have no subscriptions. Use the star symbol to subscribe to channels.</source>
+ <translation type="unfinished"/>
+ </message>
+</context>
<context>
<name>ClearButton</name>
<message>
<context>
<name>HomeView</name>
<message>
- <location filename="src/homeview.cpp" line="33"/>
+ <location filename="src/homeview.cpp" line="38"/>
<source>Search</source>
<translation>Cercar</translation>
</message>
<message>
- <location filename="src/homeview.cpp" line="35"/>
+ <location filename="src/homeview.cpp" line="40"/>
<source>Find videos and channels by keyword</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="src/homeview.cpp" line="40"/>
+ <location filename="src/homeview.cpp" line="45"/>
<source>Browse</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="src/homeview.cpp" line="42"/>
+ <location filename="src/homeview.cpp" line="47"/>
<source>Browse videos by category</source>
<translation type="unfinished"/>
</message>
+ <message>
+ <location filename="src/homeview.cpp" line="51"/>
+ <source>Subscriptions</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="src/homeview.cpp" line="53"/>
+ <source>Channel subscriptions</source>
+ <translation type="unfinished"/>
+ </message>
<message>
<location filename="src/homeview.h" line="22"/>
<source>Make yourself comfortable</source>
<context>
<name>LoadingWidget</name>
<message>
- <location filename="src/loadingwidget.cpp" line="90"/>
+ <location filename="src/loadingwidget.cpp" line="88"/>
<source>Error</source>
<translation>Error</translation>
</message>
<context>
<name>MainWindow</name>
<message>
- <location filename="src/mainwindow.cpp" line="213"/>
+ <location filename="src/mainwindow.cpp" line="237"/>
<source>&Stop</source>
<translation>&Stop</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="214"/>
+ <location filename="src/mainwindow.cpp" line="238"/>
<source>Stop playback and go back to the search view</source>
<translation>Stoppar le reproduction e vader retro al vista de cercas</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="232"/>
+ <location filename="src/mainwindow.cpp" line="253"/>
<source>S&kip</source>
<translation>S&altar</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="233"/>
+ <location filename="src/mainwindow.cpp" line="254"/>
<source>Skip to the next video</source>
<translation>Saltar al proxime video</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="239"/>
- <location filename="src/mainwindow.cpp" line="989"/>
+ <location filename="src/mainwindow.cpp" line="260"/>
+ <location filename="src/mainwindow.cpp" line="1012"/>
<source>&Pause</source>
<translation>&Pausa</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="240"/>
- <location filename="src/mainwindow.cpp" line="990"/>
+ <location filename="src/mainwindow.cpp" line="261"/>
+ <location filename="src/mainwindow.cpp" line="1013"/>
<source>Pause playback</source>
<translation>Pausar le reproduction</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="246"/>
+ <location filename="src/mainwindow.cpp" line="267"/>
<source>&Full Screen</source>
<translation>&Schermo plen</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="247"/>
+ <location filename="src/mainwindow.cpp" line="268"/>
<source>Go full screen</source>
<translation>Vader a schermo plen</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="263"/>
+ <location filename="src/mainwindow.cpp" line="282"/>
<source>Hide the playlist and the toolbar</source>
<translation>Celar le lista de reproduction e le barra de utensiles</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="276"/>
+ <location filename="src/mainwindow.cpp" line="295"/>
<source>Go to the YouTube video page and pause playback</source>
<translation>Vader al pagina de videos de YouTube e pausa le reproduction</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="283"/>
+ <location filename="src/mainwindow.cpp" line="302"/>
<source>Copy the current video YouTube link to the clipboard</source>
<translation>Copiar le actual &ligamine de video YouTube al area de transferentia</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="290"/>
+ <location filename="src/mainwindow.cpp" line="309"/>
<source>Copy the current video stream URL to the clipboard</source>
<translation>Copiar le currente URL de fluxo de video al area de transferentia</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="297"/>
+ <location filename="src/mainwindow.cpp" line="316"/>
<source>Find other video parts hopefully in the right order</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="303"/>
+ <location filename="src/mainwindow.cpp" line="322"/>
<source>&Remove</source>
<translation>&Remover</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="304"/>
+ <location filename="src/mainwindow.cpp" line="323"/>
<source>Remove the selected videos from the playlist</source>
<translation>Remover le videos seligite del lista de reproduction</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="310"/>
+ <location filename="src/mainwindow.cpp" line="329"/>
<source>Move &Up</source>
<translation>Mover in &alto</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="311"/>
+ <location filename="src/mainwindow.cpp" line="330"/>
<source>Move up the selected videos in the playlist</source>
<translation>Mover le videos seligite del lista de reproduction in alto</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="317"/>
+ <location filename="src/mainwindow.cpp" line="336"/>
<source>Move &Down</source>
<translation>Mover a &basso</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="318"/>
+ <location filename="src/mainwindow.cpp" line="337"/>
<source>Move down the selected videos in the playlist</source>
<translation>Mover le videos seligite del lista de reproduction a basso</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="329"/>
+ <location filename="src/mainwindow.cpp" line="348"/>
<source>Clear the search history. Cannot be undone.</source>
<translation>Mundar le historia de recerca. Isto non pote ser disfacite.</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="334"/>
+ <location filename="src/mainwindow.cpp" line="353"/>
<source>&Quit</source>
<translation>&Quitar</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="337"/>
+ <location filename="src/mainwindow.cpp" line="356"/>
<source>Bye</source>
<translation>Adeo</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="341"/>
+ <location filename="src/mainwindow.cpp" line="360"/>
<source>&Website</source>
<translation>Sito &web</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="343"/>
+ <location filename="src/mainwindow.cpp" line="362"/>
<source>%1 on the Web</source>
<translation>%1 in le web</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="349"/>
+ <location filename="src/mainwindow.cpp" line="368"/>
<source>Please support the continued development of %1</source>
<translation>Supporta le developpamento continue de %1, per favor</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="354"/>
+ <location filename="src/mainwindow.cpp" line="373"/>
<source>&About</source>
<translation>&Super</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="356"/>
+ <location filename="src/mainwindow.cpp" line="375"/>
<source>Info about %1</source>
<translation>Info super %1</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="364"/>
+ <location filename="src/mainwindow.cpp" line="383"/>
<source>Search</source>
<translation>Cercar</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="383"/>
+ <location filename="src/mainwindow.cpp" line="402"/>
<source>Mute volume</source>
<translation>Sin sono</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="412"/>
- <location filename="src/mainwindow.cpp" line="1365"/>
+ <location filename="src/mainwindow.cpp" line="431"/>
+ <location filename="src/mainwindow.cpp" line="1406"/>
<source>&Downloads</source>
<translation>&Discargas</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="413"/>
+ <location filename="src/mainwindow.cpp" line="432"/>
<source>Show details about video downloads</source>
<translation>Monstrar detalios super le discargas de videos</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="421"/>
+ <location filename="src/mainwindow.cpp" line="440"/>
<source>&Download</source>
<translation>&Discarga</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="422"/>
+ <location filename="src/mainwindow.cpp" line="441"/>
<source>Download the current video</source>
<translation>Discarga le video actual</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="441"/>
+ <location filename="src/mainwindow.cpp" line="458"/>
+ <source>&Subscribe to Channel</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="src/mainwindow.cpp" line="465"/>
<source>Share the current video using %1</source>
<translation>Compartir le video currente usante %1</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="458"/>
+ <location filename="src/mainwindow.cpp" line="482"/>
<source>&Email</source>
<translation>&E-posta</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="459"/>
+ <location filename="src/mainwindow.cpp" line="483"/>
<source>Email</source>
<translation>E-posta</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="463"/>
+ <location filename="src/mainwindow.cpp" line="487"/>
<source>&Close</source>
<translation>&Clauder</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="473"/>
+ <location filename="src/mainwindow.cpp" line="497"/>
<source>&Float on Top</source>
<translation>&Flottar in alto</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="478"/>
+ <location filename="src/mainwindow.cpp" line="502"/>
<source>&Stop After This Video</source>
<translation>&Stoppar depost de iste video</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="485"/>
+ <location filename="src/mainwindow.cpp" line="509"/>
<source>&Report an Issue...</source>
<translation>&Reportar un problema...</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="489"/>
+ <location filename="src/mainwindow.cpp" line="513"/>
<source>&Refine Search...</source>
<translation>&Affinar le cerca...</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="501"/>
+ <location filename="src/mainwindow.cpp" line="525"/>
<source>More...</source>
<translation>Plus...</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="504"/>
+ <location filename="src/mainwindow.cpp" line="528"/>
<source>&Related Videos</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="506"/>
+ <location filename="src/mainwindow.cpp" line="530"/>
<source>Watch videos related to the current one</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="544"/>
+ <location filename="src/mainwindow.cpp" line="553"/>
<source>&Application</source>
<translation>&Application</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="515"/>
+ <location filename="src/mainwindow.cpp" line="537"/>
<source>Buy %1...</source>
<translation>Comprar %1...</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="558"/>
+ <location filename="src/mainwindow.cpp" line="567"/>
<source>&Playback</source>
<translation>&Reproduction</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="572"/>
+ <location filename="src/mainwindow.cpp" line="581"/>
<source>&Playlist</source>
<translation>Lista de re&production</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="581"/>
+ <location filename="src/mainwindow.cpp" line="590"/>
<source>&Video</source>
<translation>&Video</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="594"/>
+ <location filename="src/mainwindow.cpp" line="605"/>
<source>&View</source>
<translation>&Vider</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="601"/>
+ <location filename="src/mainwindow.cpp" line="612"/>
<source>&Share</source>
<translation>&Compartir</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="615"/>
+ <location filename="src/mainwindow.cpp" line="626"/>
<source>&Help</source>
<translation>&Adjuta</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="690"/>
+ <location filename="src/mainwindow.cpp" line="701"/>
<source>Press %1 to raise the volume, %2 to lower it</source>
<translation>Preme %1 pro augmentar le sono, %2 pro bassar lo</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="889"/>
- <location filename="src/mainwindow.cpp" line="895"/>
+ <location filename="src/mainwindow.cpp" line="910"/>
+ <location filename="src/mainwindow.cpp" line="916"/>
<source>Opening %1</source>
<translation>A aperir %1</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="936"/>
+ <location filename="src/mainwindow.cpp" line="959"/>
<source>Do you want to exit %1 with a download in progress?</source>
<translation>Esque tu vole sortir de %1 con un discarga in progresso?</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="937"/>
+ <location filename="src/mainwindow.cpp" line="960"/>
<source>If you close %1 now, this download will be cancelled.</source>
<translation>Si tu claude %1 ora, le discarga essera cancellate.</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="942"/>
+ <location filename="src/mainwindow.cpp" line="965"/>
<source>Close and cancel download</source>
<translation>Claude e cancella le discarga</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="943"/>
+ <location filename="src/mainwindow.cpp" line="966"/>
<source>Wait for download to finish</source>
<translation>Attende que le discarga fini</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="1102"/>
+ <location filename="src/mainwindow.cpp" line="1125"/>
<source>Leave &Full Screen</source>
<translation>Quita le &schermo plen</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="1475"/>
+ <location filename="src/mainwindow.cpp" line="1515"/>
<source>%1 version %2 is now available.</source>
<translation>%1 version %2 es ora disponibile.</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="1479"/>
+ <location filename="src/mainwindow.cpp" line="1519"/>
<source>Remind me later</source>
<translation>Rememora me plus tarde</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="1480"/>
+ <location filename="src/mainwindow.cpp" line="1520"/>
<source>Update</source>
<translation>Actualisar</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="982"/>
+ <location filename="src/mainwindow.cpp" line="1005"/>
<source>Error: %1</source>
<translation>Error: %1</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="222"/>
+ <location filename="src/mainwindow.cpp" line="246"/>
<source>P&revious</source>
<translation>P&revie</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="223"/>
+ <location filename="src/mainwindow.cpp" line="247"/>
<source>Go back to the previous track</source>
<translation>Retroceder al tracia previe</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="262"/>
+ <location filename="src/mainwindow.cpp" line="281"/>
<source>&Compact Mode</source>
<translation>&Modo compacte</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="275"/>
+ <location filename="src/mainwindow.cpp" line="294"/>
<source>Open the &YouTube Page</source>
<translation>Aperir le pagina de &YouTube</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="282"/>
+ <location filename="src/mainwindow.cpp" line="301"/>
<source>Copy the YouTube &Link</source>
<translation>Copiar le &ligamine de YouTube</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="289"/>
+ <location filename="src/mainwindow.cpp" line="308"/>
<source>Copy the Video Stream &URL</source>
<translation>Copiar le &URL de fluxo de video</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="296"/>
+ <location filename="src/mainwindow.cpp" line="315"/>
<source>Find Video &Parts</source>
<translation>Cercar &partes de video</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="324"/>
+ <location filename="src/mainwindow.cpp" line="343"/>
<source>&Clear Recent Searches</source>
<translation>&Mundar le recercas recente</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="348"/>
+ <location filename="src/mainwindow.cpp" line="367"/>
<source>Make a &Donation</source>
<translation>Face un &donation</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="405"/>
+ <location filename="src/mainwindow.cpp" line="424"/>
<source>&Manually Start Playing</source>
<translation>Initiar le reproduction &manualmente</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="406"/>
+ <location filename="src/mainwindow.cpp" line="425"/>
<source>Manually start playing videos</source>
<translation>Initiar manualmente le reproduction de videos</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="728"/>
+ <location filename="src/mainwindow.cpp" line="739"/>
<source>Choose your content location</source>
<translation>Selige le loco de contento</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="1002"/>
+ <location filename="src/mainwindow.cpp" line="1025"/>
<source>&Play</source>
<translation>Re&producer</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="1003"/>
+ <location filename="src/mainwindow.cpp" line="1026"/>
<source>Resume playback</source>
<translation>Resumer reproduction</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="1236"/>
+ <location filename="src/mainwindow.cpp" line="1277"/>
<source>Remaining time: %1</source>
<translation>Tempore restante: %1</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="1294"/>
+ <location filename="src/mainwindow.cpp" line="1335"/>
<source>Volume at %1%</source>
<translation>Volumine a %1%</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="1300"/>
+ <location filename="src/mainwindow.cpp" line="1341"/>
<source>Volume is muted</source>
<translation>Sin sono</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="1303"/>
+ <location filename="src/mainwindow.cpp" line="1344"/>
<source>Volume is unmuted</source>
<translation>Con sono</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="1310"/>
+ <location filename="src/mainwindow.cpp" line="1351"/>
<source>Maximum video definition set to %1</source>
<translation>Definition maxime de video: %1</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="1351"/>
+ <location filename="src/mainwindow.cpp" line="1392"/>
<source>Your privacy is now safe</source>
<translation>Ora tu intimitate es secur </translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="1366"/>
+ <location filename="src/mainwindow.cpp" line="1407"/>
<source>Downloads complete</source>
<translation>Discargas complete</translation>
</message>
<context>
<name>MediaView</name>
<message>
- <location filename="src/mediaview.cpp" line="553"/>
+ <location filename="src/mediaview.cpp" line="563"/>
<source>You can now paste the YouTube link into another application</source>
<translation>Ora tu pote collar le ligamine de YouTube in un in altere application</translation>
</message>
<message>
- <location filename="src/mediaview.cpp" line="561"/>
+ <location filename="src/mediaview.cpp" line="571"/>
<source>You can now paste the video stream URL into another application</source>
<translation>Ora tu pote collar le URL de fluxo de video in un altere application</translation>
</message>
<message>
- <location filename="src/mediaview.cpp" line="562"/>
+ <location filename="src/mediaview.cpp" line="572"/>
<source>The link will be valid only for a limited time.</source>
<translation>Le ligamine essera valide solmente durante un tempore limitate.</translation>
</message>
<message>
- <location filename="src/mediaview.cpp" line="636"/>
+ <location filename="src/mediaview.cpp" line="650"/>
<source>This is just the demo version of %1.</source>
<translation>Isto es solmente le version demo de %1.</translation>
</message>
<message>
- <location filename="src/mediaview.cpp" line="637"/>
+ <location filename="src/mediaview.cpp" line="651"/>
<source>It allows you to test the application and see if it works for you.</source>
<translation>Isto permitte testar le application e vider si illo functiona.</translation>
</message>
<message>
- <location filename="src/mediaview.cpp" line="667"/>
+ <location filename="src/mediaview.cpp" line="681"/>
<source>Continue</source>
<translation>Continuar</translation>
</message>
<message>
- <location filename="src/mediaview.cpp" line="756"/>
+ <location filename="src/mediaview.cpp" line="772"/>
<source>of</source>
<comment>Used in video parts, as in '2 of 3'</comment>
<translation>de</translation>
</message>
<message>
- <location filename="src/mediaview.cpp" line="768"/>
+ <location filename="src/mediaview.cpp" line="785"/>
<source>part</source>
<comment>This is for video parts, as in 'Cool video - part 1'</comment>
<translation>parte</translation>
</message>
<message>
- <location filename="src/mediaview.cpp" line="770"/>
+ <location filename="src/mediaview.cpp" line="787"/>
<source>episode</source>
<comment>This is for video parts, as in 'Cool series - episode 1'</comment>
<translation>episodio</translation>
</message>
<message>
- <location filename="src/mediaview.cpp" line="847"/>
+ <location filename="src/mediaview.cpp" line="868"/>
<source>Sent from %1</source>
<translation>Inviate ab %1</translation>
</message>
<message>
- <location filename="src/mediaview.cpp" line="644"/>
+ <location filename="src/mediaview.cpp" line="899"/>
+ <source>Unsubscribe from %1</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="src/mediaview.cpp" line="903"/>
+ <source>Subscribe to %1</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="src/mediaview.cpp" line="658"/>
<source>Get the full version</source>
<translation>Procura le version complete</translation>
</message>
<message>
- <location filename="src/mediaview.cpp" line="681"/>
+ <location filename="src/mediaview.cpp" line="695"/>
<source>Downloading %1</source>
<translation>A discargar %1</translation>
</message>
<context>
<name>PlaylistItemDelegate</name>
<message>
- <location filename="src/playlistitemdelegate.cpp" line="159"/>
+ <location filename="src/playlistitemdelegate.cpp" line="177"/>
<source>%1 views</source>
<translation>%1 visualisationes</translation>
</message>
<message>
- <location filename="src/playlistitemdelegate.cpp" line="285"/>
+ <location filename="src/playlistitemdelegate.cpp" line="292"/>
<source>%1 of %2 (%3) — %4</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="src/playlistitemdelegate.cpp" line="292"/>
+ <location filename="src/playlistitemdelegate.cpp" line="299"/>
<source>Preparing</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="src/playlistitemdelegate.cpp" line="294"/>
+ <location filename="src/playlistitemdelegate.cpp" line="301"/>
<source>Failed</source>
<translation>Fallite</translation>
</message>
<message>
- <location filename="src/playlistitemdelegate.cpp" line="296"/>
+ <location filename="src/playlistitemdelegate.cpp" line="303"/>
<source>Completed</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="src/playlistitemdelegate.cpp" line="298"/>
+ <location filename="src/playlistitemdelegate.cpp" line="305"/>
<source>Stopped</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="src/playlistitemdelegate.cpp" line="334"/>
+ <location filename="src/playlistitemdelegate.cpp" line="341"/>
<source>Stop downloading</source>
<translation>Stoppar le discarga</translation>
</message>
<message>
- <location filename="src/playlistitemdelegate.cpp" line="344"/>
+ <location filename="src/playlistitemdelegate.cpp" line="351"/>
<source>Show in %1</source>
<translation>Monstrar in %1</translation>
</message>
<message>
- <location filename="src/playlistitemdelegate.cpp" line="346"/>
+ <location filename="src/playlistitemdelegate.cpp" line="353"/>
<source>Open parent folder</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="src/playlistitemdelegate.cpp" line="355"/>
+ <location filename="src/playlistitemdelegate.cpp" line="362"/>
<source>Restart downloading</source>
<translation>Recomenciar le discarga</translation>
</message>
<context>
<name>SearchView</name>
<message>
- <location filename="src/searchview.cpp" line="71"/>
+ <location filename="src/searchview.cpp" line="66"/>
<source>Welcome to <a href='%1'>%2</a>,</source>
<translation>Benvenite a <a href='%1'>%2</a>,</translation>
</message>
<message>
- <location filename="src/searchview.cpp" line="50"/>
+ <location filename="src/searchview.cpp" line="161"/>
<source>Get the full version</source>
<translation>Procura le version complete</translation>
</message>
<message>
- <location filename="src/searchview.cpp" line="85"/>
+ <location filename="src/searchview.cpp" line="80"/>
<source>Enter</source>
<extracomment>"Enter", as in "type". The whole phrase says: "Enter a keyword to start watching videos"</extracomment>
<translation>Scriber</translation>
</message>
<message>
- <location filename="src/searchview.cpp" line="90"/>
+ <location filename="src/searchview.cpp" line="85"/>
<source>a keyword</source>
<translation>una parola clave</translation>
</message>
<message>
- <location filename="src/searchview.cpp" line="91"/>
+ <location filename="src/searchview.cpp" line="86"/>
<source>a channel</source>
<translation>un canal</translation>
</message>
<message>
- <location filename="src/searchview.cpp" line="96"/>
+ <location filename="src/searchview.cpp" line="91"/>
<source>to start watching videos.</source>
<translation>pro comenciar a reguardar le videos.</translation>
</message>
<message>
- <location filename="src/searchview.cpp" line="120"/>
+ <location filename="src/searchview.cpp" line="115"/>
<source>Watch</source>
<translation>Reguardar</translation>
</message>
<message>
- <location filename="src/searchview.cpp" line="138"/>
+ <location filename="src/searchview.cpp" line="133"/>
<source>Recent keywords</source>
<translation>Parolas-clave recente</translation>
</message>
<message>
- <location filename="src/searchview.cpp" line="151"/>
+ <location filename="src/searchview.cpp" line="146"/>
<source>Recent channels</source>
<translation>Canales recente</translation>
</message>
<context>
<name>SidebarHeader</name>
<message>
- <location filename="src/sidebarheader.cpp" line="16"/>
- <location filename="src/sidebarheader.cpp" line="23"/>
+ <location filename="src/sidebarheader.cpp" line="19"/>
+ <location filename="src/sidebarheader.cpp" line="26"/>
<source>&Back</source>
<translation>&Retro</translation>
</message>
<source>Most Popular</source>
<translation type="unfinished"/>
</message>
- <message>
- <location filename="src/standardfeedsview.cpp" line="86"/>
- <source>Featured</source>
- <translation type="unfinished"/>
- </message>
<message>
<location filename="src/standardfeedsview.cpp" line="87"/>
<source>Most Shared</source>
<source>Top Rated</source>
<translation type="unfinished"/>
</message>
+ <message>
+ <location filename="src/standardfeedsview.cpp" line="90"/>
+ <source>All Time Popular</source>
+ <translation type="unfinished"/>
+ </message>
</context>
<context>
<name>Video</name>
<message>
- <location filename="src/video.cpp" line="213"/>
+ <location filename="src/video.cpp" line="215"/>
<source>Cannot get video stream for %1</source>
<translation>Le fluxo de video pro %1 non pote ser obtenite</translation>
</message>
<message>
- <location filename="src/video.cpp" line="231"/>
+ <location filename="src/video.cpp" line="233"/>
<source>Network error: %1 for %2</source>
<translation>Error de rete: %1 pro %2</translation>
</message>
<translation>Compra una licenza</translation>
</message>
</context>
+<context>
+ <name>ChannelAggregator</name>
+ <message>
+ <location filename="src/channelaggregator.cpp" line="110"/>
+ <source>By %1</source>
+ <translation>Di %1</translation>
+ </message>
+ <message numerus="yes">
+ <location filename="src/channelaggregator.cpp" line="112"/>
+ <source>You have %n new video(s)</source>
+ <translation type="unfinished"><numerusform></numerusform><numerusform></numerusform></translation>
+ </message>
+</context>
+<context>
+ <name>ChannelItemDelegate</name>
+ <message>
+ <location filename="src/channelitemdelegate.cpp" line="46"/>
+ <source>All Videos</source>
+ <translation>Tutti i video</translation>
+ </message>
+ <message>
+ <location filename="src/channelitemdelegate.cpp" line="63"/>
+ <source>Unwatched Videos</source>
+ <translation>Video non visti</translation>
+ </message>
+</context>
+<context>
+ <name>ChannelView</name>
+ <message>
+ <location filename="src/channelview.cpp" line="75"/>
+ <source>Mark all as watched</source>
+ <translation>Segna tutti come già visti</translation>
+ </message>
+ <message>
+ <location filename="src/channelview.cpp" line="83"/>
+ <source>Show Updated</source>
+ <translation>Mostra aggiornati</translation>
+ </message>
+ <message>
+ <location filename="src/channelview.cpp" line="95"/>
+ <source>Name</source>
+ <translation>Nome</translation>
+ </message>
+ <message>
+ <location filename="src/channelview.cpp" line="102"/>
+ <source>Last Updated</source>
+ <translation>Aggiornamento</translation>
+ </message>
+ <message>
+ <location filename="src/channelview.cpp" line="109"/>
+ <source>Last Added</source>
+ <translation>Iscrizione</translation>
+ </message>
+ <message>
+ <location filename="src/channelview.cpp" line="116"/>
+ <source>Last Watched</source>
+ <translation>Visione</translation>
+ </message>
+ <message>
+ <location filename="src/channelview.cpp" line="123"/>
+ <source>Most Watched</source>
+ <translation>Più visti</translation>
+ </message>
+ <message>
+ <location filename="src/channelview.cpp" line="131"/>
+ <source>Sort by</source>
+ <translation>Ordina per</translation>
+ </message>
+ <message>
+ <location filename="src/channelview.cpp" line="190"/>
+ <source>All Videos</source>
+ <translation>Tutti i video</translation>
+ </message>
+ <message>
+ <location filename="src/channelview.cpp" line="194"/>
+ <source>Unwatched Videos</source>
+ <translation>Video non visti</translation>
+ </message>
+ <message>
+ <location filename="src/channelview.cpp" line="206"/>
+ <source>There are no updated subscriptions at this time.</source>
+ <translation>Non ci sono iscrizioni aggiornate in questo momento.</translation>
+ </message>
+ <message>
+ <location filename="src/channelview.cpp" line="208"/>
+ <source>You have no subscriptions. Use the star symbol to subscribe to channels.</source>
+ <translation>Non hai iscrizioni. Usa il simbolo della stella per sottoscrivere i canali.</translation>
+ </message>
+</context>
<context>
<name>ClearButton</name>
<message>
<context>
<name>HomeView</name>
<message>
- <location filename="src/homeview.cpp" line="33"/>
+ <location filename="src/homeview.cpp" line="38"/>
<source>Search</source>
<translation>Ricerca</translation>
</message>
<message>
- <location filename="src/homeview.cpp" line="35"/>
+ <location filename="src/homeview.cpp" line="40"/>
<source>Find videos and channels by keyword</source>
<translation>Trova video e canali per parola chiave</translation>
</message>
<message>
- <location filename="src/homeview.cpp" line="40"/>
+ <location filename="src/homeview.cpp" line="45"/>
<source>Browse</source>
<translation>Sfoglia</translation>
</message>
<message>
- <location filename="src/homeview.cpp" line="42"/>
+ <location filename="src/homeview.cpp" line="47"/>
<source>Browse videos by category</source>
<translation>Sfoglia i video per categoria</translation>
</message>
+ <message>
+ <location filename="src/homeview.cpp" line="51"/>
+ <source>Subscriptions</source>
+ <translation>Iscrizioni</translation>
+ </message>
+ <message>
+ <location filename="src/homeview.cpp" line="53"/>
+ <source>Channel subscriptions</source>
+ <translation>Iscrizioni ai canali</translation>
+ </message>
<message>
<location filename="src/homeview.h" line="22"/>
<source>Make yourself comfortable</source>
<context>
<name>LoadingWidget</name>
<message>
- <location filename="src/loadingwidget.cpp" line="90"/>
+ <location filename="src/loadingwidget.cpp" line="88"/>
<source>Error</source>
<translation>Errore</translation>
</message>
<context>
<name>MainWindow</name>
<message>
- <location filename="src/mainwindow.cpp" line="213"/>
+ <location filename="src/mainwindow.cpp" line="237"/>
<source>&Stop</source>
<translation>&Ferma</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="214"/>
+ <location filename="src/mainwindow.cpp" line="238"/>
<source>Stop playback and go back to the search view</source>
<translation>Ferma il video e torna alla ricerca</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="232"/>
+ <location filename="src/mainwindow.cpp" line="253"/>
<source>S&kip</source>
<translation>&Salta</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="233"/>
+ <location filename="src/mainwindow.cpp" line="254"/>
<source>Skip to the next video</source>
<translation>Salta al prossimo video</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="239"/>
- <location filename="src/mainwindow.cpp" line="989"/>
+ <location filename="src/mainwindow.cpp" line="260"/>
+ <location filename="src/mainwindow.cpp" line="1012"/>
<source>&Pause</source>
<translation>&Pausa</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="240"/>
- <location filename="src/mainwindow.cpp" line="990"/>
+ <location filename="src/mainwindow.cpp" line="261"/>
+ <location filename="src/mainwindow.cpp" line="1013"/>
<source>Pause playback</source>
<translation>Metti in pausa</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="246"/>
+ <location filename="src/mainwindow.cpp" line="267"/>
<source>&Full Screen</source>
<translation>&Schermo intero</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="247"/>
+ <location filename="src/mainwindow.cpp" line="268"/>
<source>Go full screen</source>
<translation>Vai in modalità schermo intero</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="263"/>
+ <location filename="src/mainwindow.cpp" line="282"/>
<source>Hide the playlist and the toolbar</source>
<translation>Nascondi la playlist e la barra degli strumenti</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="276"/>
+ <location filename="src/mainwindow.cpp" line="295"/>
<source>Go to the YouTube video page and pause playback</source>
<translation>Vai su YouTube e metti in pausa</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="283"/>
+ <location filename="src/mainwindow.cpp" line="302"/>
<source>Copy the current video YouTube link to the clipboard</source>
<translation>Copia negli appunti il link a YouTube per il video corrente</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="290"/>
+ <location filename="src/mainwindow.cpp" line="309"/>
<source>Copy the current video stream URL to the clipboard</source>
<translation>Copia negli appunti la URL dello stream per il video corrente</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="297"/>
+ <location filename="src/mainwindow.cpp" line="316"/>
<source>Find other video parts hopefully in the right order</source>
<translation>Trova le parti mancanti di questo video</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="303"/>
+ <location filename="src/mainwindow.cpp" line="322"/>
<source>&Remove</source>
<translation>&Elimina</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="304"/>
+ <location filename="src/mainwindow.cpp" line="323"/>
<source>Remove the selected videos from the playlist</source>
<translation>Elimina i video selezionati dalla playlist</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="310"/>
+ <location filename="src/mainwindow.cpp" line="329"/>
<source>Move &Up</source>
<translation>Sposta &sopra</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="311"/>
+ <location filename="src/mainwindow.cpp" line="330"/>
<source>Move up the selected videos in the playlist</source>
<translation>Sposta video selezionati verso l'alto</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="317"/>
+ <location filename="src/mainwindow.cpp" line="336"/>
<source>Move &Down</source>
<translation>Sposta so&tto</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="318"/>
+ <location filename="src/mainwindow.cpp" line="337"/>
<source>Move down the selected videos in the playlist</source>
<translation>Sposta i video selezionati verso il basso</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="329"/>
+ <location filename="src/mainwindow.cpp" line="348"/>
<source>Clear the search history. Cannot be undone.</source>
<translation>Cancella le ultime ricerche. L'azione non potrà essere annullata.</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="334"/>
+ <location filename="src/mainwindow.cpp" line="353"/>
<source>&Quit</source>
<translation>&Esci</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="337"/>
+ <location filename="src/mainwindow.cpp" line="356"/>
<source>Bye</source>
<translation>Ciao</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="341"/>
+ <location filename="src/mainwindow.cpp" line="360"/>
<source>&Website</source>
<translation>Sito &web</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="343"/>
+ <location filename="src/mainwindow.cpp" line="362"/>
<source>%1 on the Web</source>
<translation>%1 sul Web</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="349"/>
+ <location filename="src/mainwindow.cpp" line="368"/>
<source>Please support the continued development of %1</source>
<translation>Supporta lo sviluppo di %1</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="354"/>
+ <location filename="src/mainwindow.cpp" line="373"/>
<source>&About</source>
<translation>&Informazioni</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="356"/>
+ <location filename="src/mainwindow.cpp" line="375"/>
<source>Info about %1</source>
<translation>Informazioni su %1</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="364"/>
+ <location filename="src/mainwindow.cpp" line="383"/>
<source>Search</source>
<translation>Cerca</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="383"/>
+ <location filename="src/mainwindow.cpp" line="402"/>
<source>Mute volume</source>
<translation>Disattiva l'audio</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="412"/>
- <location filename="src/mainwindow.cpp" line="1365"/>
+ <location filename="src/mainwindow.cpp" line="431"/>
+ <location filename="src/mainwindow.cpp" line="1406"/>
<source>&Downloads</source>
<translation>&Download</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="413"/>
+ <location filename="src/mainwindow.cpp" line="432"/>
<source>Show details about video downloads</source>
<translation>Mostra informazioni sui download</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="421"/>
+ <location filename="src/mainwindow.cpp" line="440"/>
<source>&Download</source>
<translation>&Download</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="422"/>
+ <location filename="src/mainwindow.cpp" line="441"/>
<source>Download the current video</source>
<translation>Scarica il video corrente</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="441"/>
+ <location filename="src/mainwindow.cpp" line="458"/>
+ <source>&Subscribe to Channel</source>
+ <translation>&Iscriviti al canale</translation>
+ </message>
+ <message>
+ <location filename="src/mainwindow.cpp" line="465"/>
<source>Share the current video using %1</source>
<translation>Condividi il video corrente usando %1</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="458"/>
+ <location filename="src/mainwindow.cpp" line="482"/>
<source>&Email</source>
<translation>&Email</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="459"/>
+ <location filename="src/mainwindow.cpp" line="483"/>
<source>Email</source>
<translation>Email</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="463"/>
+ <location filename="src/mainwindow.cpp" line="487"/>
<source>&Close</source>
<translation>&Chiudi</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="473"/>
+ <location filename="src/mainwindow.cpp" line="497"/>
<source>&Float on Top</source>
<translation>&Fluttua in alto</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="478"/>
+ <location filename="src/mainwindow.cpp" line="502"/>
<source>&Stop After This Video</source>
<translation>&Ferma dopo questo video</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="485"/>
+ <location filename="src/mainwindow.cpp" line="509"/>
<source>&Report an Issue...</source>
<translation>&Segnala un problema...</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="489"/>
+ <location filename="src/mainwindow.cpp" line="513"/>
<source>&Refine Search...</source>
<translation>&Raffina la ricerca...</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="501"/>
+ <location filename="src/mainwindow.cpp" line="525"/>
<source>More...</source>
<translation>Altro...</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="504"/>
+ <location filename="src/mainwindow.cpp" line="528"/>
<source>&Related Videos</source>
<translation>Video &correlati</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="506"/>
+ <location filename="src/mainwindow.cpp" line="530"/>
<source>Watch videos related to the current one</source>
<translation>Guarda i video correlati a quello corrente</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="544"/>
+ <location filename="src/mainwindow.cpp" line="553"/>
<source>&Application</source>
<translation>&Applicazione</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="515"/>
+ <location filename="src/mainwindow.cpp" line="537"/>
<source>Buy %1...</source>
<translation>Compra %1...</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="558"/>
+ <location filename="src/mainwindow.cpp" line="567"/>
<source>&Playback</source>
<translation>&Riproduzione</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="572"/>
+ <location filename="src/mainwindow.cpp" line="581"/>
<source>&Playlist</source>
<translation>&Playlist</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="581"/>
+ <location filename="src/mainwindow.cpp" line="590"/>
<source>&Video</source>
<translation>&Video</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="594"/>
+ <location filename="src/mainwindow.cpp" line="605"/>
<source>&View</source>
<translation>&Visualizza</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="601"/>
+ <location filename="src/mainwindow.cpp" line="612"/>
<source>&Share</source>
<translation>&Condividi</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="615"/>
+ <location filename="src/mainwindow.cpp" line="626"/>
<source>&Help</source>
<translation>&Aiuto</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="690"/>
+ <location filename="src/mainwindow.cpp" line="701"/>
<source>Press %1 to raise the volume, %2 to lower it</source>
<translation>Premi %1 per alzare il volume, %2 per abbassarlo</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="889"/>
- <location filename="src/mainwindow.cpp" line="895"/>
+ <location filename="src/mainwindow.cpp" line="910"/>
+ <location filename="src/mainwindow.cpp" line="916"/>
<source>Opening %1</source>
<translation>Apertura di %1</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="936"/>
+ <location filename="src/mainwindow.cpp" line="959"/>
<source>Do you want to exit %1 with a download in progress?</source>
<translation>Vuoi uscire da %1 con un download in corso?</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="937"/>
+ <location filename="src/mainwindow.cpp" line="960"/>
<source>If you close %1 now, this download will be cancelled.</source>
<translation>Se chiudi %1 adesso, i download verranno annullati.</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="942"/>
+ <location filename="src/mainwindow.cpp" line="965"/>
<source>Close and cancel download</source>
<translation>Chiudi e annulla i download</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="943"/>
+ <location filename="src/mainwindow.cpp" line="966"/>
<source>Wait for download to finish</source>
<translation>Aspetta che i download siano completi</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="1102"/>
+ <location filename="src/mainwindow.cpp" line="1125"/>
<source>Leave &Full Screen</source>
<translation>Lascia lo &schermo intero</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="1475"/>
+ <location filename="src/mainwindow.cpp" line="1515"/>
<source>%1 version %2 is now available.</source>
<translation>E' disponibile %1 versione %2</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="1479"/>
+ <location filename="src/mainwindow.cpp" line="1519"/>
<source>Remind me later</source>
<translation>Ricordamelo più tardi</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="1480"/>
+ <location filename="src/mainwindow.cpp" line="1520"/>
<source>Update</source>
<translation>Aggiorna</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="982"/>
+ <location filename="src/mainwindow.cpp" line="1005"/>
<source>Error: %1</source>
<translation>Errore: %1</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="222"/>
+ <location filename="src/mainwindow.cpp" line="246"/>
<source>P&revious</source>
<translation>P&recedente</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="223"/>
+ <location filename="src/mainwindow.cpp" line="247"/>
<source>Go back to the previous track</source>
<translation>Torna alla traccia precedente</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="262"/>
+ <location filename="src/mainwindow.cpp" line="281"/>
<source>&Compact Mode</source>
<translation>Modalità &compatta</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="275"/>
+ <location filename="src/mainwindow.cpp" line="294"/>
<source>Open the &YouTube Page</source>
<translation>Apri la pagina di &YouTube</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="282"/>
+ <location filename="src/mainwindow.cpp" line="301"/>
<source>Copy the YouTube &Link</source>
<translation>Copia il &link a YouTube</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="289"/>
+ <location filename="src/mainwindow.cpp" line="308"/>
<source>Copy the Video Stream &URL</source>
<translation>Copia la &URL dello stream video</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="296"/>
+ <location filename="src/mainwindow.cpp" line="315"/>
<source>Find Video &Parts</source>
<translation>Trova le &parti del video</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="324"/>
+ <location filename="src/mainwindow.cpp" line="343"/>
<source>&Clear Recent Searches</source>
<translation>&Cancella le ultime ricerche</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="348"/>
+ <location filename="src/mainwindow.cpp" line="367"/>
<source>Make a &Donation</source>
<translation>Fai una &donazione</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="405"/>
+ <location filename="src/mainwindow.cpp" line="424"/>
<source>&Manually Start Playing</source>
<translation>Riproduzione &manuale</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="406"/>
+ <location filename="src/mainwindow.cpp" line="425"/>
<source>Manually start playing videos</source>
<translation>Inizia a riprodurre i video manualmente</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="728"/>
+ <location filename="src/mainwindow.cpp" line="739"/>
<source>Choose your content location</source>
<translation>Scegli la località dei contenuti</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="1002"/>
+ <location filename="src/mainwindow.cpp" line="1025"/>
<source>&Play</source>
<translation>&Play</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="1003"/>
+ <location filename="src/mainwindow.cpp" line="1026"/>
<source>Resume playback</source>
<translation>Continua</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="1236"/>
+ <location filename="src/mainwindow.cpp" line="1277"/>
<source>Remaining time: %1</source>
<translation>Tempo rimanente: %1</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="1294"/>
+ <location filename="src/mainwindow.cpp" line="1335"/>
<source>Volume at %1%</source>
<translation>Volume al %1%</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="1300"/>
+ <location filename="src/mainwindow.cpp" line="1341"/>
<source>Volume is muted</source>
<translation>Audio disattivato</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="1303"/>
+ <location filename="src/mainwindow.cpp" line="1344"/>
<source>Volume is unmuted</source>
<translation>Audio attivato</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="1310"/>
+ <location filename="src/mainwindow.cpp" line="1351"/>
<source>Maximum video definition set to %1</source>
<translation>La definizione video massima è impostata a %1</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="1351"/>
+ <location filename="src/mainwindow.cpp" line="1392"/>
<source>Your privacy is now safe</source>
<translation>La tua privacy è al sicuro</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="1366"/>
+ <location filename="src/mainwindow.cpp" line="1407"/>
<source>Downloads complete</source>
<translation>I download sono completi</translation>
</message>
<context>
<name>MediaView</name>
<message>
- <location filename="src/mediaview.cpp" line="553"/>
+ <location filename="src/mediaview.cpp" line="563"/>
<source>You can now paste the YouTube link into another application</source>
<translation>Ora puoi incollare il link a YouTube in un'altra applicazione</translation>
</message>
<message>
- <location filename="src/mediaview.cpp" line="561"/>
+ <location filename="src/mediaview.cpp" line="571"/>
<source>You can now paste the video stream URL into another application</source>
<translation>Ora puoi incollare la URL dello stream in un'altra applicazione</translation>
</message>
<message>
- <location filename="src/mediaview.cpp" line="562"/>
+ <location filename="src/mediaview.cpp" line="572"/>
<source>The link will be valid only for a limited time.</source>
<translation>Il link rimarrà valido per un periodo di tempo limitato.</translation>
</message>
<message>
- <location filename="src/mediaview.cpp" line="636"/>
+ <location filename="src/mediaview.cpp" line="650"/>
<source>This is just the demo version of %1.</source>
<translation>Questa è solo la versione demo di %1.</translation>
</message>
<message>
- <location filename="src/mediaview.cpp" line="637"/>
+ <location filename="src/mediaview.cpp" line="651"/>
<source>It allows you to test the application and see if it works for you.</source>
<translation>Ti permette di testare l'applicazione e verificare che funzioni sul tuo computer.</translation>
</message>
<message>
- <location filename="src/mediaview.cpp" line="667"/>
+ <location filename="src/mediaview.cpp" line="681"/>
<source>Continue</source>
<translation>Continua</translation>
</message>
<message>
- <location filename="src/mediaview.cpp" line="756"/>
+ <location filename="src/mediaview.cpp" line="772"/>
<source>of</source>
<comment>Used in video parts, as in '2 of 3'</comment>
<translation>di</translation>
</message>
<message>
- <location filename="src/mediaview.cpp" line="768"/>
+ <location filename="src/mediaview.cpp" line="785"/>
<source>part</source>
<comment>This is for video parts, as in 'Cool video - part 1'</comment>
<translation>parte</translation>
</message>
<message>
- <location filename="src/mediaview.cpp" line="770"/>
+ <location filename="src/mediaview.cpp" line="787"/>
<source>episode</source>
<comment>This is for video parts, as in 'Cool series - episode 1'</comment>
<translation>episodio</translation>
</message>
<message>
- <location filename="src/mediaview.cpp" line="847"/>
+ <location filename="src/mediaview.cpp" line="868"/>
<source>Sent from %1</source>
<translation>Inviato da %1</translation>
</message>
<message>
- <location filename="src/mediaview.cpp" line="644"/>
+ <location filename="src/mediaview.cpp" line="899"/>
+ <source>Unsubscribe from %1</source>
+ <translation>Annulla iscrizione a %1</translation>
+ </message>
+ <message>
+ <location filename="src/mediaview.cpp" line="903"/>
+ <source>Subscribe to %1</source>
+ <translation>Iscriviti a %1</translation>
+ </message>
+ <message>
+ <location filename="src/mediaview.cpp" line="658"/>
<source>Get the full version</source>
<translation>Compra la versione completa</translation>
</message>
<message>
- <location filename="src/mediaview.cpp" line="681"/>
+ <location filename="src/mediaview.cpp" line="695"/>
<source>Downloading %1</source>
<translation>Scarica in: %1</translation>
</message>
<context>
<name>PlaylistItemDelegate</name>
<message>
- <location filename="src/playlistitemdelegate.cpp" line="159"/>
+ <location filename="src/playlistitemdelegate.cpp" line="177"/>
<source>%1 views</source>
<translation>%1 visualizzazioni</translation>
</message>
<message>
- <location filename="src/playlistitemdelegate.cpp" line="285"/>
+ <location filename="src/playlistitemdelegate.cpp" line="292"/>
<source>%1 of %2 (%3) — %4</source>
<translation>%1 di %2 (%3) — %4</translation>
</message>
<message>
- <location filename="src/playlistitemdelegate.cpp" line="292"/>
+ <location filename="src/playlistitemdelegate.cpp" line="299"/>
<source>Preparing</source>
<translation>In preparazione</translation>
</message>
<message>
- <location filename="src/playlistitemdelegate.cpp" line="294"/>
+ <location filename="src/playlistitemdelegate.cpp" line="301"/>
<source>Failed</source>
<translation>Fallito</translation>
</message>
<message>
- <location filename="src/playlistitemdelegate.cpp" line="296"/>
+ <location filename="src/playlistitemdelegate.cpp" line="303"/>
<source>Completed</source>
<translation>Completato</translation>
</message>
<message>
- <location filename="src/playlistitemdelegate.cpp" line="298"/>
+ <location filename="src/playlistitemdelegate.cpp" line="305"/>
<source>Stopped</source>
<translation>Fermo</translation>
</message>
<message>
- <location filename="src/playlistitemdelegate.cpp" line="334"/>
+ <location filename="src/playlistitemdelegate.cpp" line="341"/>
<source>Stop downloading</source>
<translation>Interrompi il download</translation>
</message>
<message>
- <location filename="src/playlistitemdelegate.cpp" line="344"/>
+ <location filename="src/playlistitemdelegate.cpp" line="351"/>
<source>Show in %1</source>
<translation>Mostra nel %1</translation>
</message>
<message>
- <location filename="src/playlistitemdelegate.cpp" line="346"/>
+ <location filename="src/playlistitemdelegate.cpp" line="353"/>
<source>Open parent folder</source>
<translation>Mostra nella cartella</translation>
</message>
<message>
- <location filename="src/playlistitemdelegate.cpp" line="355"/>
+ <location filename="src/playlistitemdelegate.cpp" line="362"/>
<source>Restart downloading</source>
<translation>Prova a scaricare di nuovo</translation>
</message>
<context>
<name>SearchView</name>
<message>
- <location filename="src/searchview.cpp" line="71"/>
+ <location filename="src/searchview.cpp" line="66"/>
<source>Welcome to <a href='%1'>%2</a>,</source>
<translation>Benvenuto su <a href="%1">%2</a>,</translation>
</message>
<message>
- <location filename="src/searchview.cpp" line="50"/>
+ <location filename="src/searchview.cpp" line="161"/>
<source>Get the full version</source>
<translation>Compra la versione completa</translation>
</message>
<message>
- <location filename="src/searchview.cpp" line="85"/>
+ <location filename="src/searchview.cpp" line="80"/>
<source>Enter</source>
<extracomment>"Enter", as in "type". The whole phrase says: "Enter a keyword to start watching videos"</extracomment>
<translation>Scrivi</translation>
</message>
<message>
- <location filename="src/searchview.cpp" line="90"/>
+ <location filename="src/searchview.cpp" line="85"/>
<source>a keyword</source>
<translation>una parola chiave</translation>
</message>
<message>
- <location filename="src/searchview.cpp" line="91"/>
+ <location filename="src/searchview.cpp" line="86"/>
<source>a channel</source>
<translation>un canale</translation>
</message>
<message>
- <location filename="src/searchview.cpp" line="96"/>
+ <location filename="src/searchview.cpp" line="91"/>
<source>to start watching videos.</source>
<translation>per iniziare a guardare i video.</translation>
</message>
<message>
- <location filename="src/searchview.cpp" line="120"/>
+ <location filename="src/searchview.cpp" line="115"/>
<source>Watch</source>
<translation>Guarda</translation>
</message>
<message>
- <location filename="src/searchview.cpp" line="138"/>
+ <location filename="src/searchview.cpp" line="133"/>
<source>Recent keywords</source>
<translation>Ultime ricerche</translation>
</message>
<message>
- <location filename="src/searchview.cpp" line="151"/>
+ <location filename="src/searchview.cpp" line="146"/>
<source>Recent channels</source>
<translation>Ultimi canali</translation>
</message>
<context>
<name>SidebarHeader</name>
<message>
- <location filename="src/sidebarheader.cpp" line="16"/>
- <location filename="src/sidebarheader.cpp" line="23"/>
+ <location filename="src/sidebarheader.cpp" line="19"/>
+ <location filename="src/sidebarheader.cpp" line="26"/>
<source>&Back</source>
<translation>&Indietro</translation>
</message>
<source>Most Popular</source>
<translation>Più popolari</translation>
</message>
- <message>
- <location filename="src/standardfeedsview.cpp" line="86"/>
- <source>Featured</source>
- <translation>In primo piano</translation>
- </message>
<message>
<location filename="src/standardfeedsview.cpp" line="87"/>
<source>Most Shared</source>
<source>Top Rated</source>
<translation>Più votati</translation>
</message>
+ <message>
+ <location filename="src/standardfeedsview.cpp" line="90"/>
+ <source>All Time Popular</source>
+ <translation>Più popolari di sempre</translation>
+ </message>
</context>
<context>
<name>Video</name>
<message>
- <location filename="src/video.cpp" line="213"/>
+ <location filename="src/video.cpp" line="215"/>
<source>Cannot get video stream for %1</source>
<translation>Impossibile ottenere il flusso video per %1</translation>
</message>
<message>
- <location filename="src/video.cpp" line="231"/>
+ <location filename="src/video.cpp" line="233"/>
<source>Network error: %1 for %2</source>
<translation>Errore di rete: %1 per %2</translation>
</message>
<translation>ライセンスを購入</translation>
</message>
</context>
+<context>
+ <name>ChannelAggregator</name>
+ <message>
+ <location filename="src/channelaggregator.cpp" line="110"/>
+ <source>By %1</source>
+ <translation type="unfinished"/>
+ </message>
+ <message numerus="yes">
+ <location filename="src/channelaggregator.cpp" line="112"/>
+ <source>You have %n new video(s)</source>
+ <translation type="unfinished"><numerusform></numerusform></translation>
+ </message>
+</context>
+<context>
+ <name>ChannelItemDelegate</name>
+ <message>
+ <location filename="src/channelitemdelegate.cpp" line="46"/>
+ <source>All Videos</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="src/channelitemdelegate.cpp" line="63"/>
+ <source>Unwatched Videos</source>
+ <translation type="unfinished"/>
+ </message>
+</context>
+<context>
+ <name>ChannelView</name>
+ <message>
+ <location filename="src/channelview.cpp" line="75"/>
+ <source>Mark all as watched</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="src/channelview.cpp" line="83"/>
+ <source>Show Updated</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="src/channelview.cpp" line="95"/>
+ <source>Name</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="src/channelview.cpp" line="102"/>
+ <source>Last Updated</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="src/channelview.cpp" line="109"/>
+ <source>Last Added</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="src/channelview.cpp" line="116"/>
+ <source>Last Watched</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="src/channelview.cpp" line="123"/>
+ <source>Most Watched</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="src/channelview.cpp" line="131"/>
+ <source>Sort by</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="src/channelview.cpp" line="190"/>
+ <source>All Videos</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="src/channelview.cpp" line="194"/>
+ <source>Unwatched Videos</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="src/channelview.cpp" line="206"/>
+ <source>There are no updated subscriptions at this time.</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="src/channelview.cpp" line="208"/>
+ <source>You have no subscriptions. Use the star symbol to subscribe to channels.</source>
+ <translation type="unfinished"/>
+ </message>
+</context>
<context>
<name>ClearButton</name>
<message>
<context>
<name>HomeView</name>
<message>
- <location filename="src/homeview.cpp" line="33"/>
+ <location filename="src/homeview.cpp" line="38"/>
<source>Search</source>
<translation>検索</translation>
</message>
<message>
- <location filename="src/homeview.cpp" line="35"/>
+ <location filename="src/homeview.cpp" line="40"/>
<source>Find videos and channels by keyword</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="src/homeview.cpp" line="40"/>
+ <location filename="src/homeview.cpp" line="45"/>
<source>Browse</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="src/homeview.cpp" line="42"/>
+ <location filename="src/homeview.cpp" line="47"/>
<source>Browse videos by category</source>
<translation type="unfinished"/>
</message>
+ <message>
+ <location filename="src/homeview.cpp" line="51"/>
+ <source>Subscriptions</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="src/homeview.cpp" line="53"/>
+ <source>Channel subscriptions</source>
+ <translation type="unfinished"/>
+ </message>
<message>
<location filename="src/homeview.h" line="22"/>
<source>Make yourself comfortable</source>
<context>
<name>LoadingWidget</name>
<message>
- <location filename="src/loadingwidget.cpp" line="90"/>
+ <location filename="src/loadingwidget.cpp" line="88"/>
<source>Error</source>
<translation>エラー</translation>
</message>
<context>
<name>MainWindow</name>
<message>
- <location filename="src/mainwindow.cpp" line="213"/>
+ <location filename="src/mainwindow.cpp" line="237"/>
<source>&Stop</source>
<translation>ストップ(&S)</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="214"/>
+ <location filename="src/mainwindow.cpp" line="238"/>
<source>Stop playback and go back to the search view</source>
<translation>再生を停止させて、検索ビューに戻ります</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="232"/>
+ <location filename="src/mainwindow.cpp" line="253"/>
<source>S&kip</source>
<translation>スキップ(&k)</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="233"/>
+ <location filename="src/mainwindow.cpp" line="254"/>
<source>Skip to the next video</source>
<translation>次の動画へ</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="239"/>
- <location filename="src/mainwindow.cpp" line="989"/>
+ <location filename="src/mainwindow.cpp" line="260"/>
+ <location filename="src/mainwindow.cpp" line="1012"/>
<source>&Pause</source>
<translation>一時停止(&P)</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="240"/>
- <location filename="src/mainwindow.cpp" line="990"/>
+ <location filename="src/mainwindow.cpp" line="261"/>
+ <location filename="src/mainwindow.cpp" line="1013"/>
<source>Pause playback</source>
<translation>再生を一時停止します</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="246"/>
+ <location filename="src/mainwindow.cpp" line="267"/>
<source>&Full Screen</source>
<translation>フルスクリーン(&F)</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="247"/>
+ <location filename="src/mainwindow.cpp" line="268"/>
<source>Go full screen</source>
<translation>フルスクリーン</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="263"/>
+ <location filename="src/mainwindow.cpp" line="282"/>
<source>Hide the playlist and the toolbar</source>
<translation>プレイリストとツールバーを隠す</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="276"/>
+ <location filename="src/mainwindow.cpp" line="295"/>
<source>Go to the YouTube video page and pause playback</source>
<translation>一時停止してYouTubeのページを開きます</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="283"/>
+ <location filename="src/mainwindow.cpp" line="302"/>
<source>Copy the current video YouTube link to the clipboard</source>
<translation>このビデオのYouTubeページへのリンクをクリップボードにコピーします</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="290"/>
+ <location filename="src/mainwindow.cpp" line="309"/>
<source>Copy the current video stream URL to the clipboard</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="297"/>
+ <location filename="src/mainwindow.cpp" line="316"/>
<source>Find other video parts hopefully in the right order</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="303"/>
+ <location filename="src/mainwindow.cpp" line="322"/>
<source>&Remove</source>
<translation>削除(&R)</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="304"/>
+ <location filename="src/mainwindow.cpp" line="323"/>
<source>Remove the selected videos from the playlist</source>
<translation>プレイリストから選択した動画を削除</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="310"/>
+ <location filename="src/mainwindow.cpp" line="329"/>
<source>Move &Up</source>
<translation>上へ(&U)</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="311"/>
+ <location filename="src/mainwindow.cpp" line="330"/>
<source>Move up the selected videos in the playlist</source>
<translation>選択した動画をプレイリスト内で上へ移動させます</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="317"/>
+ <location filename="src/mainwindow.cpp" line="336"/>
<source>Move &Down</source>
<translation>下へ(&D)</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="318"/>
+ <location filename="src/mainwindow.cpp" line="337"/>
<source>Move down the selected videos in the playlist</source>
<translation>選択した動画をプレイリスト内で下へ移動させます</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="329"/>
+ <location filename="src/mainwindow.cpp" line="348"/>
<source>Clear the search history. Cannot be undone.</source>
<translation>検索履歴を削除します。取り消しは出来ません。</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="334"/>
+ <location filename="src/mainwindow.cpp" line="353"/>
<source>&Quit</source>
<translation>終了(&Q)</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="337"/>
+ <location filename="src/mainwindow.cpp" line="356"/>
<source>Bye</source>
<translation>プログラムを終了</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="341"/>
+ <location filename="src/mainwindow.cpp" line="360"/>
<source>&Website</source>
<translation>&Webページへ</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="343"/>
+ <location filename="src/mainwindow.cpp" line="362"/>
<source>%1 on the Web</source>
<translation>%1のWebページを開きます</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="349"/>
+ <location filename="src/mainwindow.cpp" line="368"/>
<source>Please support the continued development of %1</source>
<translation>%1の開発をサポートしてください!</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="354"/>
+ <location filename="src/mainwindow.cpp" line="373"/>
<source>&About</source>
<translation>プログラムについて(&A)</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="356"/>
+ <location filename="src/mainwindow.cpp" line="375"/>
<source>Info about %1</source>
<translation>%1について</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="364"/>
+ <location filename="src/mainwindow.cpp" line="383"/>
<source>Search</source>
<translation>検索</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="383"/>
+ <location filename="src/mainwindow.cpp" line="402"/>
<source>Mute volume</source>
<translation>ミュートにする</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="412"/>
- <location filename="src/mainwindow.cpp" line="1365"/>
+ <location filename="src/mainwindow.cpp" line="431"/>
+ <location filename="src/mainwindow.cpp" line="1406"/>
<source>&Downloads</source>
<translation>ダウンロード(&D)</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="413"/>
+ <location filename="src/mainwindow.cpp" line="432"/>
<source>Show details about video downloads</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="421"/>
+ <location filename="src/mainwindow.cpp" line="440"/>
<source>&Download</source>
<translation>ダウンロード(&D)</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="422"/>
+ <location filename="src/mainwindow.cpp" line="441"/>
<source>Download the current video</source>
+ <translation>現在の動画をダウンロード</translation>
+ </message>
+ <message>
+ <location filename="src/mainwindow.cpp" line="458"/>
+ <source>&Subscribe to Channel</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="441"/>
+ <location filename="src/mainwindow.cpp" line="465"/>
<source>Share the current video using %1</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="458"/>
+ <location filename="src/mainwindow.cpp" line="482"/>
<source>&Email</source>
<translation>メール(&E)</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="459"/>
+ <location filename="src/mainwindow.cpp" line="483"/>
<source>Email</source>
<translation>メール</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="463"/>
+ <location filename="src/mainwindow.cpp" line="487"/>
<source>&Close</source>
<translation>閉じる(&C)</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="473"/>
+ <location filename="src/mainwindow.cpp" line="497"/>
<source>&Float on Top</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="478"/>
+ <location filename="src/mainwindow.cpp" line="502"/>
<source>&Stop After This Video</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="485"/>
+ <location filename="src/mainwindow.cpp" line="509"/>
<source>&Report an Issue...</source>
<translation>問題点を報告(&R)...</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="489"/>
+ <location filename="src/mainwindow.cpp" line="513"/>
<source>&Refine Search...</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="501"/>
+ <location filename="src/mainwindow.cpp" line="525"/>
<source>More...</source>
- <translation type="unfinished"/>
+ <translation>その他...</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="504"/>
+ <location filename="src/mainwindow.cpp" line="528"/>
<source>&Related Videos</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="506"/>
+ <location filename="src/mainwindow.cpp" line="530"/>
<source>Watch videos related to the current one</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="544"/>
+ <location filename="src/mainwindow.cpp" line="553"/>
<source>&Application</source>
<translation>アプリケーション(&A)</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="515"/>
+ <location filename="src/mainwindow.cpp" line="537"/>
<source>Buy %1...</source>
<translation>%1 を購入...</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="558"/>
+ <location filename="src/mainwindow.cpp" line="567"/>
<source>&Playback</source>
- <translation type="unfinished"/>
+ <translation>再生(&P)</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="572"/>
+ <location filename="src/mainwindow.cpp" line="581"/>
<source>&Playlist</source>
<translation>プレイリスト(&P)</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="581"/>
+ <location filename="src/mainwindow.cpp" line="590"/>
<source>&Video</source>
<translation>動画(&V)</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="594"/>
+ <location filename="src/mainwindow.cpp" line="605"/>
<source>&View</source>
<translation>表示(&V)</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="601"/>
+ <location filename="src/mainwindow.cpp" line="612"/>
<source>&Share</source>
<translation>共有(&S)</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="615"/>
+ <location filename="src/mainwindow.cpp" line="626"/>
<source>&Help</source>
<translation>ヘルプ(&H)</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="690"/>
+ <location filename="src/mainwindow.cpp" line="701"/>
<source>Press %1 to raise the volume, %2 to lower it</source>
<translation>音量を上げるには%1を、下げるには%2を押してください</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="889"/>
- <location filename="src/mainwindow.cpp" line="895"/>
+ <location filename="src/mainwindow.cpp" line="910"/>
+ <location filename="src/mainwindow.cpp" line="916"/>
<source>Opening %1</source>
<translation>%1を開いています</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="936"/>
+ <location filename="src/mainwindow.cpp" line="959"/>
<source>Do you want to exit %1 with a download in progress?</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="937"/>
+ <location filename="src/mainwindow.cpp" line="960"/>
<source>If you close %1 now, this download will be cancelled.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="942"/>
+ <location filename="src/mainwindow.cpp" line="965"/>
<source>Close and cancel download</source>
- <translation type="unfinished"/>
+ <translation>閉じてダウンロードをキャンセル</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="943"/>
+ <location filename="src/mainwindow.cpp" line="966"/>
<source>Wait for download to finish</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="1102"/>
+ <location filename="src/mainwindow.cpp" line="1125"/>
<source>Leave &Full Screen</source>
<translation>フルスクリーンモードを終了する(&F)</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="1475"/>
+ <location filename="src/mainwindow.cpp" line="1515"/>
<source>%1 version %2 is now available.</source>
<translation>%1 バージョン %2 が利用可能です</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="1479"/>
+ <location filename="src/mainwindow.cpp" line="1519"/>
<source>Remind me later</source>
<translation>あとで通知する</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="1480"/>
+ <location filename="src/mainwindow.cpp" line="1520"/>
<source>Update</source>
<translation>更新</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="982"/>
+ <location filename="src/mainwindow.cpp" line="1005"/>
<source>Error: %1</source>
<translation>エラー: %1</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="222"/>
+ <location filename="src/mainwindow.cpp" line="246"/>
<source>P&revious</source>
<translation>前へ(&R)</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="223"/>
+ <location filename="src/mainwindow.cpp" line="247"/>
<source>Go back to the previous track</source>
<translation>前の曲へ飛びます</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="262"/>
+ <location filename="src/mainwindow.cpp" line="281"/>
<source>&Compact Mode</source>
<translation>コンパクト モード(&C)</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="275"/>
+ <location filename="src/mainwindow.cpp" line="294"/>
<source>Open the &YouTube Page</source>
<translation>YouTube のページを開く(&Y)</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="282"/>
+ <location filename="src/mainwindow.cpp" line="301"/>
<source>Copy the YouTube &Link</source>
<translation>YouTube のリンクをコピー(&L)</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="289"/>
+ <location filename="src/mainwindow.cpp" line="308"/>
<source>Copy the Video Stream &URL</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="296"/>
+ <location filename="src/mainwindow.cpp" line="315"/>
<source>Find Video &Parts</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="324"/>
+ <location filename="src/mainwindow.cpp" line="343"/>
<source>&Clear Recent Searches</source>
<translation>最近の検索を消去(&C)</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="348"/>
+ <location filename="src/mainwindow.cpp" line="367"/>
<source>Make a &Donation</source>
<translation>寄付する(&D)</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="405"/>
+ <location filename="src/mainwindow.cpp" line="424"/>
<source>&Manually Start Playing</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="406"/>
+ <location filename="src/mainwindow.cpp" line="425"/>
<source>Manually start playing videos</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="728"/>
+ <location filename="src/mainwindow.cpp" line="739"/>
<source>Choose your content location</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="1002"/>
+ <location filename="src/mainwindow.cpp" line="1025"/>
<source>&Play</source>
<translation>再生(&P)</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="1003"/>
+ <location filename="src/mainwindow.cpp" line="1026"/>
<source>Resume playback</source>
<translation>再生再開します</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="1236"/>
+ <location filename="src/mainwindow.cpp" line="1277"/>
<source>Remaining time: %1</source>
<translation>残り時間: %1</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="1294"/>
+ <location filename="src/mainwindow.cpp" line="1335"/>
<source>Volume at %1%</source>
<translation>ボリューム%1%</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="1300"/>
+ <location filename="src/mainwindow.cpp" line="1341"/>
<source>Volume is muted</source>
<translation>音量OFFにしました</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="1303"/>
+ <location filename="src/mainwindow.cpp" line="1344"/>
<source>Volume is unmuted</source>
<translation>音量ONにしました</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="1310"/>
+ <location filename="src/mainwindow.cpp" line="1351"/>
<source>Maximum video definition set to %1</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="1351"/>
+ <location filename="src/mainwindow.cpp" line="1392"/>
<source>Your privacy is now safe</source>
<translation>プライバシーは保護されています</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="1366"/>
+ <location filename="src/mainwindow.cpp" line="1407"/>
<source>Downloads complete</source>
<translation>ダウンロード完了</translation>
</message>
<context>
<name>MediaView</name>
<message>
- <location filename="src/mediaview.cpp" line="553"/>
+ <location filename="src/mediaview.cpp" line="563"/>
<source>You can now paste the YouTube link into another application</source>
<translation>YouTube のリンクを別のアプリケーションに貼り付けることができます</translation>
</message>
<message>
- <location filename="src/mediaview.cpp" line="561"/>
+ <location filename="src/mediaview.cpp" line="571"/>
<source>You can now paste the video stream URL into another application</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="src/mediaview.cpp" line="562"/>
+ <location filename="src/mediaview.cpp" line="572"/>
<source>The link will be valid only for a limited time.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="src/mediaview.cpp" line="636"/>
+ <location filename="src/mediaview.cpp" line="650"/>
<source>This is just the demo version of %1.</source>
<translation>これは %1 の試用版です。</translation>
</message>
<message>
- <location filename="src/mediaview.cpp" line="637"/>
+ <location filename="src/mediaview.cpp" line="651"/>
<source>It allows you to test the application and see if it works for you.</source>
<translation>アプリケーションのテストや動作確認にご利用いただけます。</translation>
</message>
<message>
- <location filename="src/mediaview.cpp" line="667"/>
+ <location filename="src/mediaview.cpp" line="681"/>
<source>Continue</source>
<translation>続ける</translation>
</message>
<message>
- <location filename="src/mediaview.cpp" line="756"/>
+ <location filename="src/mediaview.cpp" line="772"/>
<source>of</source>
<comment>Used in video parts, as in '2 of 3'</comment>
<translation type="unfinished"/>
</message>
<message>
- <location filename="src/mediaview.cpp" line="768"/>
+ <location filename="src/mediaview.cpp" line="785"/>
<source>part</source>
<comment>This is for video parts, as in 'Cool video - part 1'</comment>
<translation type="unfinished"/>
</message>
<message>
- <location filename="src/mediaview.cpp" line="770"/>
+ <location filename="src/mediaview.cpp" line="787"/>
<source>episode</source>
<comment>This is for video parts, as in 'Cool series - episode 1'</comment>
<translation type="unfinished"/>
</message>
<message>
- <location filename="src/mediaview.cpp" line="847"/>
+ <location filename="src/mediaview.cpp" line="868"/>
<source>Sent from %1</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="src/mediaview.cpp" line="644"/>
+ <location filename="src/mediaview.cpp" line="899"/>
+ <source>Unsubscribe from %1</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="src/mediaview.cpp" line="903"/>
+ <source>Subscribe to %1</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="src/mediaview.cpp" line="658"/>
<source>Get the full version</source>
<translation>製品版を入手する。</translation>
</message>
<message>
- <location filename="src/mediaview.cpp" line="681"/>
+ <location filename="src/mediaview.cpp" line="695"/>
<source>Downloading %1</source>
<translation type="unfinished"/>
</message>
<context>
<name>PlaylistItemDelegate</name>
<message>
- <location filename="src/playlistitemdelegate.cpp" line="159"/>
+ <location filename="src/playlistitemdelegate.cpp" line="177"/>
<source>%1 views</source>
<translation>%1回 閲覧</translation>
</message>
<message>
- <location filename="src/playlistitemdelegate.cpp" line="285"/>
+ <location filename="src/playlistitemdelegate.cpp" line="292"/>
<source>%1 of %2 (%3) — %4</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="src/playlistitemdelegate.cpp" line="292"/>
+ <location filename="src/playlistitemdelegate.cpp" line="299"/>
<source>Preparing</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="src/playlistitemdelegate.cpp" line="294"/>
+ <location filename="src/playlistitemdelegate.cpp" line="301"/>
<source>Failed</source>
<translation>失敗</translation>
</message>
<message>
- <location filename="src/playlistitemdelegate.cpp" line="296"/>
+ <location filename="src/playlistitemdelegate.cpp" line="303"/>
<source>Completed</source>
<translation>完了</translation>
</message>
<message>
- <location filename="src/playlistitemdelegate.cpp" line="298"/>
+ <location filename="src/playlistitemdelegate.cpp" line="305"/>
<source>Stopped</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="src/playlistitemdelegate.cpp" line="334"/>
+ <location filename="src/playlistitemdelegate.cpp" line="341"/>
<source>Stop downloading</source>
<translation>ダウンロードを停止</translation>
</message>
<message>
- <location filename="src/playlistitemdelegate.cpp" line="344"/>
+ <location filename="src/playlistitemdelegate.cpp" line="351"/>
<source>Show in %1</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="src/playlistitemdelegate.cpp" line="346"/>
+ <location filename="src/playlistitemdelegate.cpp" line="353"/>
<source>Open parent folder</source>
<translation>親フォルダーを開く</translation>
</message>
<message>
- <location filename="src/playlistitemdelegate.cpp" line="355"/>
+ <location filename="src/playlistitemdelegate.cpp" line="362"/>
<source>Restart downloading</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="src/refinesearchwidget.cpp" line="58"/>
<source>7 Days</source>
- <translation type="unfinished"/>
+ <translation>7日間</translation>
</message>
<message>
<location filename="src/refinesearchwidget.cpp" line="59"/>
<source>30 Days</source>
- <translation type="unfinished"/>
+ <translation>30日間</translation>
</message>
<message>
<location filename="src/refinesearchwidget.cpp" line="73"/>
<message>
<location filename="src/refinesearchwidget.cpp" line="83"/>
<source>Less than 4 minutes</source>
- <translation type="unfinished"/>
+ <translation>4分以下</translation>
</message>
<message>
<location filename="src/refinesearchwidget.cpp" line="84"/>
<source>Between 4 and 20 minutes</source>
- <translation type="unfinished"/>
+ <translation>4~20分</translation>
</message>
<message>
<location filename="src/refinesearchwidget.cpp" line="85"/>
<source>Longer than 20 minutes</source>
- <translation type="unfinished"/>
+ <translation>20分超</translation>
</message>
<message>
<location filename="src/refinesearchwidget.cpp" line="100"/>
<message>
<location filename="src/refinesearchwidget.cpp" line="122"/>
<source>Done</source>
- <translation type="unfinished"/>
+ <translation>完了</translation>
</message>
</context>
<context>
<context>
<name>SearchView</name>
<message>
- <location filename="src/searchview.cpp" line="71"/>
+ <location filename="src/searchview.cpp" line="66"/>
<source>Welcome to <a href='%1'>%2</a>,</source>
<translation>ようこそ<a href='%1'>%2</a>へ!</translation>
</message>
<message>
- <location filename="src/searchview.cpp" line="50"/>
+ <location filename="src/searchview.cpp" line="161"/>
<source>Get the full version</source>
<translation>製品版を入手する。</translation>
</message>
<message>
- <location filename="src/searchview.cpp" line="85"/>
+ <location filename="src/searchview.cpp" line="80"/>
<source>Enter</source>
<extracomment>"Enter", as in "type". The whole phrase says: "Enter a keyword to start watching videos"</extracomment>
<translation type="unfinished"/>
</message>
<message>
- <location filename="src/searchview.cpp" line="90"/>
+ <location filename="src/searchview.cpp" line="85"/>
<source>a keyword</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="src/searchview.cpp" line="91"/>
+ <location filename="src/searchview.cpp" line="86"/>
<source>a channel</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="src/searchview.cpp" line="96"/>
+ <location filename="src/searchview.cpp" line="91"/>
<source>to start watching videos.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="src/searchview.cpp" line="120"/>
+ <location filename="src/searchview.cpp" line="115"/>
<source>Watch</source>
<translation>検索</translation>
</message>
<message>
- <location filename="src/searchview.cpp" line="138"/>
+ <location filename="src/searchview.cpp" line="133"/>
<source>Recent keywords</source>
<translation>最近検索したキーワード</translation>
</message>
<message>
- <location filename="src/searchview.cpp" line="151"/>
+ <location filename="src/searchview.cpp" line="146"/>
<source>Recent channels</source>
<translation>最近のチャンネル</translation>
</message>
<context>
<name>SidebarHeader</name>
<message>
- <location filename="src/sidebarheader.cpp" line="16"/>
- <location filename="src/sidebarheader.cpp" line="23"/>
+ <location filename="src/sidebarheader.cpp" line="19"/>
+ <location filename="src/sidebarheader.cpp" line="26"/>
<source>&Back</source>
<translation>戻る(&B)</translation>
</message>
<source>Most Popular</source>
<translation type="unfinished"/>
</message>
- <message>
- <location filename="src/standardfeedsview.cpp" line="86"/>
- <source>Featured</source>
- <translation type="unfinished"/>
- </message>
<message>
<location filename="src/standardfeedsview.cpp" line="87"/>
<source>Most Shared</source>
<source>Top Rated</source>
<translation type="unfinished"/>
</message>
+ <message>
+ <location filename="src/standardfeedsview.cpp" line="90"/>
+ <source>All Time Popular</source>
+ <translation type="unfinished"/>
+ </message>
</context>
<context>
<name>Video</name>
<message>
- <location filename="src/video.cpp" line="213"/>
+ <location filename="src/video.cpp" line="215"/>
<source>Cannot get video stream for %1</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="src/video.cpp" line="231"/>
+ <location filename="src/video.cpp" line="233"/>
<source>Network error: %1 for %2</source>
<translation>ネットワークエラー: %1 (%2へのアクセスにて)</translation>
</message>
+++ /dev/null
-<?xml version="1.0" ?><!DOCTYPE TS><TS language="jv" version="2.0">
-<defaultcodec>UTF-8</defaultcodec>
-<context>
- <name>AboutView</name>
- <message>
- <location filename="src/aboutview.cpp" line="32"/>
- <source>There's life outside the browser!</source>
- <translation>Ningkene yoiku urip ning njobone browser!</translation>
- </message>
- <message>
- <location filename="src/aboutview.cpp" line="33"/>
- <source>Version %1</source>
- <translation>Versi %1</translation>
- </message>
- <message>
- <location filename="src/aboutview.cpp" line="38"/>
- <source>Licensed to: %1</source>
- <translation type="unfinished"/>
- </message>
- <message>
- <location filename="src/aboutview.cpp" line="42"/>
- <source>%1 is Free Software but its development takes precious time.</source>
- <translation>%1 yoiku Software bebas tapi pangembangane iku mbutuhake wektu sing berhargo.</translation>
- </message>
- <message>
- <location filename="src/aboutview.cpp" line="43"/>
- <source>Please <a href='%1'>donate</a> to support the continued development of %2.</source>
- <translation>Sumonggo <a href='%1'>Nyumbang</a> kanggo ndukung kelanjutane pangembangane seko %2.</translation>
- </message>
- <message>
- <location filename="src/aboutview.cpp" line="47"/>
- <source>You may want to try my other apps as well:</source>
- <translation>Njenengan mungkinwae pingin nyobi aplikasiku liyane jua:</translation>
- </message>
- <message>
- <location filename="src/aboutview.cpp" line="50"/>
- <source>%1, a YouTube music player</source>
- <translation>%1, sakwijining YouTube nggonyetel musik</translation>
- </message>
- <message>
- <location filename="src/aboutview.cpp" line="54"/>
- <source>%1, a music player</source>
- <translation>%1, sakwijining penyetelan musik</translation>
- </message>
- <message>
- <location filename="src/aboutview.cpp" line="60"/>
- <source>Translate %1 to your native language using %2</source>
- <translation>Terjemahke %1 ring boso aslimu gunakno %2</translation>
- </message>
- <message>
- <location filename="src/aboutview.cpp" line="65"/>
- <source>Icon designed by %1.</source>
- <translation>Ndesain ikon oleh %1.</translation>
- </message>
- <message>
- <location filename="src/aboutview.cpp" line="69"/>
- <source>Released under the <a href='%1'>GNU General Public License</a></source>
- <translation>Dirilis nok ngisore the <a href='%1'>GNU Pusate Lisensine Publik</a></translation>
- </message>
- <message>
- <location filename="src/aboutview.cpp" line="84"/>
- <source>&Close</source>
- <translation>&Tutup</translation>
- </message>
- <message>
- <location filename="src/aboutview.h" line="17"/>
- <source>About</source>
- <translation>Seputarane</translation>
- </message>
- <message>
- <location filename="src/aboutview.h" line="19"/>
- <source>What you always wanted to know about %1 and never dared to ask</source>
- <translation>Opo sing kowe slalu kepingin kanggo ngreteni sekitarane %1 lan oratau wani kanggo takon</translation>
- </message>
-</context>
-<context>
- <name>ActivationDialog</name>
- <message>
- <location filename="local/src/activationdialog.cpp" line="17"/>
- <source>Enter your License Details</source>
- <translation type="unfinished"/>
- </message>
- <message>
- <location filename="local/src/activationdialog.cpp" line="29"/>
- <source>&Email:</source>
- <translation type="unfinished"/>
- </message>
- <message>
- <location filename="local/src/activationdialog.cpp" line="35"/>
- <source>&Code:</source>
- <translation type="unfinished"/>
- </message>
-</context>
-<context>
- <name>ActivationView</name>
- <message>
- <location filename="local/src/activationview.cpp" line="47"/>
- <source>Please license %1</source>
- <translation>Sumonggo lisensi %1</translation>
- </message>
- <message>
- <location filename="local/src/activationview.cpp" line="51"/>
- <source>This demo has expired.</source>
- <translation>Iki demo yo wis enthek.</translation>
- </message>
- <message>
- <location filename="local/src/activationview.cpp" line="53"/>
- <source>The full version allows you to download videos longer than %1 minutes and to watch videos without interruptions.</source>
- <translation type="unfinished"/>
- </message>
- <message>
- <location filename="local/src/activationview.cpp" line="55"/>
- <source>Without a license, the application will expire in %1 days.</source>
- <translation type="unfinished"/>
- </message>
- <message>
- <location filename="local/src/activationview.cpp" line="57"/>
- <source>By purchasing the full version, you will also support the hard work I put into creating %1.</source>
- <translation>Thek tuku versi lengkap, njenengan pingin ugo kadukung karo kerjokeras Kulo dalehi ing njeroning kreasi %1.</translation>
- </message>
- <message>
- <location filename="local/src/activationview.cpp" line="70"/>
- <source>Use Demo</source>
- <translation>Gunakke Demo</translation>
- </message>
- <message>
- <location filename="local/src/activationview.cpp" line="77"/>
- <source>Enter License</source>
- <translation type="unfinished"/>
- </message>
- <message>
- <location filename="local/src/activationview.cpp" line="85"/>
- <source>Buy License</source>
- <translation type="unfinished"/>
- </message>
-</context>
-<context>
- <name>ClearButton</name>
- <message>
- <location filename="src/searchlineedit.cpp" line="56"/>
- <source>Clear</source>
- <translation>Resik</translation>
- </message>
-</context>
-<context>
- <name>DownloadItem</name>
- <message>
- <location filename="src/downloaditem.cpp" line="322"/>
- <source>bytes</source>
- <translation>bit</translation>
- </message>
- <message>
- <location filename="src/downloaditem.cpp" line="325"/>
- <source>KB</source>
- <translation>KB</translation>
- </message>
- <message>
- <location filename="src/downloaditem.cpp" line="328"/>
- <source>MB</source>
- <translation>MB</translation>
- </message>
- <message>
- <location filename="src/downloaditem.cpp" line="337"/>
- <source>bytes/sec</source>
- <translation>bit/detik</translation>
- </message>
- <message>
- <location filename="src/downloaditem.cpp" line="340"/>
- <source>KB/sec</source>
- <translation>KB/detik</translation>
- </message>
- <message>
- <location filename="src/downloaditem.cpp" line="343"/>
- <source>MB/sec</source>
- <translation>MB/detik</translation>
- </message>
- <message>
- <location filename="src/downloaditem.cpp" line="349"/>
- <source>seconds</source>
- <translation>detik</translation>
- </message>
- <message>
- <location filename="src/downloaditem.cpp" line="352"/>
- <source>minutes</source>
- <translation>menit</translation>
- </message>
- <message>
- <location filename="src/downloaditem.cpp" line="355"/>
- <source>%4 %5 remaining</source>
- <translation>%4 %5 sisone</translation>
- </message>
-</context>
-<context>
- <name>DownloadManager</name>
- <message>
- <location filename="src/downloadmanager.cpp" line="55"/>
- <source>This is just the demo version of %1.</source>
- <translation>Iki yoiku mung versi demo seko %1.</translation>
- </message>
- <message>
- <location filename="src/downloadmanager.cpp" line="57"/>
- <source>It can only download videos shorter than %1 minutes so you can test the download functionality.</source>
- <translation>Iku isone mung ngunduh video sing cekak sekokaro %1 menit sahinggo kowe iso ngetest fungsinane unduhane.</translation>
- </message>
- <message>
- <location filename="src/downloadmanager.cpp" line="63"/>
- <source>Continue</source>
- <translation>Terusno</translation>
- </message>
- <message>
- <location filename="src/downloadmanager.cpp" line="64"/>
- <source>Get the full version</source>
- <translation>Enthukno versi komplite</translation>
- </message>
- <message>
- <location filename="src/downloadmanager.cpp" line="150"/>
- <source>%1 downloaded in %2</source>
- <translation>%1 ngunduhe ing %2</translation>
- </message>
- <message>
- <location filename="src/downloadmanager.cpp" line="153"/>
- <source>Download finished</source>
- <translation>Ngunduhe wislebar</translation>
- </message>
- <message numerus="yes">
- <location filename="src/downloadmanager.cpp" line="159"/>
- <source>%n Download(s)</source>
- <translation><numerusform>%n Ngunduh-unduh(s)</numerusform><numerusform>%n Ngunduh(s)</numerusform></translation>
- </message>
-</context>
-<context>
- <name>DownloadSettings</name>
- <message>
- <location filename="src/downloadsettings.cpp" line="15"/>
- <source>Change location...</source>
- <translation>ngGanti lokasi...</translation>
- </message>
- <message>
- <location filename="src/downloadsettings.cpp" line="47"/>
- <source>Choose the download location</source>
- <translation>Mileho lokasine unduhan</translation>
- </message>
- <message>
- <location filename="src/downloadsettings.cpp" line="59"/>
- <source>Download location changed.</source>
- <translation>Lokasi ngunduhe diganti.</translation>
- </message>
- <message>
- <location filename="src/downloadsettings.cpp" line="61"/>
- <source>Current downloads will still go in the previous location.</source>
- <translation>Downloadte sing sakiki iseh arep mlebu ning lokasi sakdurunge.</translation>
- </message>
- <message>
- <location filename="src/downloadsettings.cpp" line="72"/>
- <source>Downloading to: %1</source>
- <translation>Ngunduhi reng: %1</translation>
- </message>
-</context>
-<context>
- <name>DownloadView</name>
- <message>
- <location filename="src/downloadview.cpp" line="18"/>
- <location filename="src/downloadview.h" line="22"/>
- <source>Downloads</source>
- <translation>Ngunduh-unduh</translation>
- </message>
-</context>
-<context>
- <name>DownloadWidget</name>
- <message>
- <location filename="local/src/updatedialog.cpp" line="60"/>
- <source>Downloading update...</source>
- <translation type="unfinished"/>
- </message>
-</context>
-<context>
- <name>GlobalShortcuts</name>
- <message>
- <location filename="src/globalshortcuts.cpp" line="16"/>
- <source>Play</source>
- <translation>Nyetel</translation>
- </message>
- <message>
- <location filename="src/globalshortcuts.cpp" line="17"/>
- <source>Pause</source>
- <translation>Lheren sedelhok</translation>
- </message>
- <message>
- <location filename="src/globalshortcuts.cpp" line="18"/>
- <source>Play/Pause</source>
- <translation>Nyetel/Lheren</translation>
- </message>
- <message>
- <location filename="src/globalshortcuts.cpp" line="19"/>
- <source>Stop</source>
- <translation>Mandhek</translation>
- </message>
- <message>
- <location filename="src/globalshortcuts.cpp" line="20"/>
- <source>Stop playing after current track</source>
- <translation>Mandhek nyetele sakwise trek saat iki</translation>
- </message>
- <message>
- <location filename="src/globalshortcuts.cpp" line="21"/>
- <source>Next track</source>
- <translation>Trek saklanjute</translation>
- </message>
- <message>
- <location filename="src/globalshortcuts.cpp" line="22"/>
- <source>Previous track</source>
- <translation>Trek sakdurunge</translation>
- </message>
- <message>
- <location filename="src/globalshortcuts.cpp" line="23"/>
- <source>Increase volume</source>
- <translation>Nambahake volume</translation>
- </message>
- <message>
- <location filename="src/globalshortcuts.cpp" line="24"/>
- <source>Decrease volume</source>
- <translation>Ngurangi volume</translation>
- </message>
- <message>
- <location filename="src/globalshortcuts.cpp" line="25"/>
- <source>Mute</source>
- <translation>Mbisu</translation>
- </message>
- <message>
- <location filename="src/globalshortcuts.cpp" line="26"/>
- <source>Seek forward</source>
- <translation>Nyepetno mengarep</translation>
- </message>
- <message>
- <location filename="src/globalshortcuts.cpp" line="27"/>
- <source>Seek backward</source>
- <translation>Nyepetno memburi</translation>
- </message>
-</context>
-<context>
- <name>HomeView</name>
- <message>
- <location filename="src/homeview.cpp" line="33"/>
- <source>Search</source>
- <translation>Nelusuri</translation>
- </message>
- <message>
- <location filename="src/homeview.cpp" line="35"/>
- <source>Find videos and channels by keyword</source>
- <translation type="unfinished"/>
- </message>
- <message>
- <location filename="src/homeview.cpp" line="40"/>
- <source>Browse</source>
- <translation type="unfinished"/>
- </message>
- <message>
- <location filename="src/homeview.cpp" line="42"/>
- <source>Browse videos by category</source>
- <translation type="unfinished"/>
- </message>
- <message>
- <location filename="src/homeview.h" line="22"/>
- <source>Make yourself comfortable</source>
- <translation type="unfinished"/>
- </message>
-</context>
-<context>
- <name>LoadingWidget</name>
- <message>
- <location filename="src/loadingwidget.cpp" line="90"/>
- <source>Error</source>
- <translation>Error</translation>
- </message>
-</context>
-<context>
- <name>MainWindow</name>
- <message>
- <location filename="src/mainwindow.cpp" line="213"/>
- <source>&Stop</source>
- <translation>&Mandheg</translation>
- </message>
- <message>
- <location filename="src/mainwindow.cpp" line="214"/>
- <source>Stop playback and go back to the search view</source>
- <translation>Mandheg playback lan mbalik ning tampilan ngGo ngGoleki</translation>
- </message>
- <message>
- <location filename="src/mainwindow.cpp" line="232"/>
- <source>S&kip</source>
- <translation>S&kip</translation>
- </message>
- <message>
- <location filename="src/mainwindow.cpp" line="233"/>
- <source>Skip to the next video</source>
- <translation>Lewati reng video saklanjute</translation>
- </message>
- <message>
- <location filename="src/mainwindow.cpp" line="239"/>
- <location filename="src/mainwindow.cpp" line="989"/>
- <source>&Pause</source>
- <translation>&Lheren</translation>
- </message>
- <message>
- <location filename="src/mainwindow.cpp" line="240"/>
- <location filename="src/mainwindow.cpp" line="990"/>
- <source>Pause playback</source>
- <translation>Lheren sedhelok pemutarane</translation>
- </message>
- <message>
- <location filename="src/mainwindow.cpp" line="246"/>
- <source>&Full Screen</source>
- <translation>&Layar Kebak</translation>
- </message>
- <message>
- <location filename="src/mainwindow.cpp" line="247"/>
- <source>Go full screen</source>
- <translation>Ing Layar Kebak </translation>
- </message>
- <message>
- <location filename="src/mainwindow.cpp" line="263"/>
- <source>Hide the playlist and the toolbar</source>
- <translation>Ndhelikno playlist lan toolbar</translation>
- </message>
- <message>
- <location filename="src/mainwindow.cpp" line="276"/>
- <source>Go to the YouTube video page and pause playback</source>
- <translation>Lungo Ing halamane video YouTube land nglereni penyetelan</translation>
- </message>
- <message>
- <location filename="src/mainwindow.cpp" line="283"/>
- <source>Copy the current video YouTube link to the clipboard</source>
- <translation>Njiplak link-nge video YouTube sing sakiki ning clipboard</translation>
- </message>
- <message>
- <location filename="src/mainwindow.cpp" line="290"/>
- <source>Copy the current video stream URL to the clipboard</source>
- <translation>Njiplak video stream URL sing sakiki ning clipboard</translation>
- </message>
- <message>
- <location filename="src/mainwindow.cpp" line="297"/>
- <source>Find other video parts hopefully in the right order</source>
- <translation>nggoleki seri video liyone diharapno ing order sing bener</translation>
- </message>
- <message>
- <location filename="src/mainwindow.cpp" line="303"/>
- <source>&Remove</source>
- <translation>&ngGuwak</translation>
- </message>
- <message>
- <location filename="src/mainwindow.cpp" line="304"/>
- <source>Remove the selected videos from the playlist</source>
- <translation>ngGuwak video sing diseleksi seko playlist</translation>
- </message>
- <message>
- <location filename="src/mainwindow.cpp" line="310"/>
- <source>Move &Up</source>
- <translation>Mindah &Unggah</translation>
- </message>
- <message>
- <location filename="src/mainwindow.cpp" line="311"/>
- <source>Move up the selected videos in the playlist</source>
- <translation>Mindahno menduwur video sing diseleksi ning playlistt</translation>
- </message>
- <message>
- <location filename="src/mainwindow.cpp" line="317"/>
- <source>Move &Down</source>
- <translation>Mindah &Mudhun</translation>
- </message>
- <message>
- <location filename="src/mainwindow.cpp" line="318"/>
- <source>Move down the selected videos in the playlist</source>
- <translation>Mindahno mengisor video sing diseleksi ning daftar-nyetel</translation>
- </message>
- <message>
- <location filename="src/mainwindow.cpp" line="329"/>
- <source>Clear the search history. Cannot be undone.</source>
- <translation>Ngresiki riwayate penelusuran. Ora iso di balikake.</translation>
- </message>
- <message>
- <location filename="src/mainwindow.cpp" line="334"/>
- <source>&Quit</source>
- <translation>&Medhal</translation>
- </message>
- <message>
- <location filename="src/mainwindow.cpp" line="337"/>
- <source>Bye</source>
- <translation>Bye</translation>
- </message>
- <message>
- <location filename="src/mainwindow.cpp" line="341"/>
- <source>&Website</source>
- <translation>&Website</translation>
- </message>
- <message>
- <location filename="src/mainwindow.cpp" line="343"/>
- <source>%1 on the Web</source>
- <translation>%1 nok the Web</translation>
- </message>
- <message>
- <location filename="src/mainwindow.cpp" line="349"/>
- <source>Please support the continued development of %1</source>
- <translation>Sumonggo ndukungo kelanjutane pangembangane seko %1</translation>
- </message>
- <message>
- <location filename="src/mainwindow.cpp" line="354"/>
- <source>&About</source>
- <translation>&Tentange</translation>
- </message>
- <message>
- <location filename="src/mainwindow.cpp" line="356"/>
- <source>Info about %1</source>
- <translation>Info sakitarane %1</translation>
- </message>
- <message>
- <location filename="src/mainwindow.cpp" line="364"/>
- <source>Search</source>
- <translation>Nelusuri</translation>
- </message>
- <message>
- <location filename="src/mainwindow.cpp" line="383"/>
- <source>Mute volume</source>
- <translation>mBisukno volumene</translation>
- </message>
- <message>
- <location filename="src/mainwindow.cpp" line="412"/>
- <location filename="src/mainwindow.cpp" line="1365"/>
- <source>&Downloads</source>
- <translation>&nDownloads</translation>
- </message>
- <message>
- <location filename="src/mainwindow.cpp" line="413"/>
- <source>Show details about video downloads</source>
- <translation>Tampilno detaile sak kitarane unduhan-unduhane video</translation>
- </message>
- <message>
- <location filename="src/mainwindow.cpp" line="421"/>
- <source>&Download</source>
- <translation>&nDownload</translation>
- </message>
- <message>
- <location filename="src/mainwindow.cpp" line="422"/>
- <source>Download the current video</source>
- <translation>Ngunduhi video sing saat iki</translation>
- </message>
- <message>
- <location filename="src/mainwindow.cpp" line="441"/>
- <source>Share the current video using %1</source>
- <translation>ngeshare video ketuang keenggo %1</translation>
- </message>
- <message>
- <location filename="src/mainwindow.cpp" line="458"/>
- <source>&Email</source>
- <translation>&Layanginternet</translation>
- </message>
- <message>
- <location filename="src/mainwindow.cpp" line="459"/>
- <source>Email</source>
- <translation>Layanginternet</translation>
- </message>
- <message>
- <location filename="src/mainwindow.cpp" line="463"/>
- <source>&Close</source>
- <translation>&Tutup</translation>
- </message>
- <message>
- <location filename="src/mainwindow.cpp" line="473"/>
- <source>&Float on Top</source>
- <translation>&Ngambang ing Pucuk</translation>
- </message>
- <message>
- <location filename="src/mainwindow.cpp" line="478"/>
- <source>&Stop After This Video</source>
- <translation>&Mandek Sakwise Video Iki</translation>
- </message>
- <message>
- <location filename="src/mainwindow.cpp" line="485"/>
- <source>&Report an Issue...</source>
- <translation>&Laporke sakwijining Isu...</translation>
- </message>
- <message>
- <location filename="src/mainwindow.cpp" line="489"/>
- <source>&Refine Search...</source>
- <translation>&Nyaring Penggolekan...</translation>
- </message>
- <message>
- <location filename="src/mainwindow.cpp" line="501"/>
- <source>More...</source>
- <translation type="unfinished"/>
- </message>
- <message>
- <location filename="src/mainwindow.cpp" line="504"/>
- <source>&Related Videos</source>
- <translation type="unfinished"/>
- </message>
- <message>
- <location filename="src/mainwindow.cpp" line="506"/>
- <source>Watch videos related to the current one</source>
- <translation type="unfinished"/>
- </message>
- <message>
- <location filename="src/mainwindow.cpp" line="544"/>
- <source>&Application</source>
- <translation>&Applikasi</translation>
- </message>
- <message>
- <location filename="src/mainwindow.cpp" line="515"/>
- <source>Buy %1...</source>
- <translation>Tuku %1...</translation>
- </message>
- <message>
- <location filename="src/mainwindow.cpp" line="558"/>
- <source>&Playback</source>
- <translation>&Mbaliknyetel</translation>
- </message>
- <message>
- <location filename="src/mainwindow.cpp" line="572"/>
- <source>&Playlist</source>
- <translation>&Daftar-nyetel</translation>
- </message>
- <message>
- <location filename="src/mainwindow.cpp" line="581"/>
- <source>&Video</source>
- <translation>&Video</translation>
- </message>
- <message>
- <location filename="src/mainwindow.cpp" line="594"/>
- <source>&View</source>
- <translation>&nDelok</translation>
- </message>
- <message>
- <location filename="src/mainwindow.cpp" line="601"/>
- <source>&Share</source>
- <translation>&Ngedumi</translation>
- </message>
- <message>
- <location filename="src/mainwindow.cpp" line="615"/>
- <source>&Help</source>
- <translation>&Nulung</translation>
- </message>
- <message>
- <location filename="src/mainwindow.cpp" line="690"/>
- <source>Press %1 to raise the volume, %2 to lower it</source>
- <translation>Pejhet %1 kanggo ningkatno volume, %2 kanggo ngrendahno iku</translation>
- </message>
- <message>
- <location filename="src/mainwindow.cpp" line="889"/>
- <location filename="src/mainwindow.cpp" line="895"/>
- <source>Opening %1</source>
- <translation>Mbukak'i %1</translation>
- </message>
- <message>
- <location filename="src/mainwindow.cpp" line="936"/>
- <source>Do you want to exit %1 with a download in progress?</source>
- <translation>Opo kowe pingin metu %1 karo sakwijine unduhan sing isih mlaku prosese?</translation>
- </message>
- <message>
- <location filename="src/mainwindow.cpp" line="937"/>
- <source>If you close %1 now, this download will be cancelled.</source>
- <translation>Tek kowe nutup %1 sakiki, ngunduhane iki arep dibatalake.</translation>
- </message>
- <message>
- <location filename="src/mainwindow.cpp" line="942"/>
- <source>Close and cancel download</source>
- <translation>Tutup lan mbatalake ngunduhine</translation>
- </message>
- <message>
- <location filename="src/mainwindow.cpp" line="943"/>
- <source>Wait for download to finish</source>
- <translation>Nunggu kanggo unduhane rampung</translation>
- </message>
- <message>
- <location filename="src/mainwindow.cpp" line="1102"/>
- <source>Leave &Full Screen</source>
- <translation>Ninggalno &LayarKebak</translation>
- </message>
- <message>
- <location filename="src/mainwindow.cpp" line="1475"/>
- <source>%1 version %2 is now available.</source>
- <translation>%1 versinipun %2 yo disediakno sakniki.</translation>
- </message>
- <message>
- <location filename="src/mainwindow.cpp" line="1479"/>
- <source>Remind me later</source>
- <translation>Elingno kulo mengkowae</translation>
- </message>
- <message>
- <location filename="src/mainwindow.cpp" line="1480"/>
- <source>Update</source>
- <translation>Nganyarke</translation>
- </message>
- <message>
- <location filename="src/mainwindow.cpp" line="982"/>
- <source>Error: %1</source>
- <translation>Error: %1</translation>
- </message>
- <message>
- <location filename="src/mainwindow.cpp" line="222"/>
- <source>P&revious</source>
- <translation>P&revious</translation>
- </message>
- <message>
- <location filename="src/mainwindow.cpp" line="223"/>
- <source>Go back to the previous track</source>
- <translation>Mbaliko meneh ing sakdurunge trekipun</translation>
- </message>
- <message>
- <location filename="src/mainwindow.cpp" line="262"/>
- <source>&Compact Mode</source>
- <translation>&Mode Praktis</translation>
- </message>
- <message>
- <location filename="src/mainwindow.cpp" line="275"/>
- <source>Open the &YouTube Page</source>
- <translation>Mbukak &YouTube Halamane</translation>
- </message>
- <message>
- <location filename="src/mainwindow.cpp" line="282"/>
- <source>Copy the YouTube &Link</source>
- <translation>Njiplak YouTube &Link</translation>
- </message>
- <message>
- <location filename="src/mainwindow.cpp" line="289"/>
- <source>Copy the Video Stream &URL</source>
- <translation>Njiplak Video Stream &URL</translation>
- </message>
- <message>
- <location filename="src/mainwindow.cpp" line="296"/>
- <source>Find Video &Parts</source>
- <translation>Nggoleki Video &Seri</translation>
- </message>
- <message>
- <location filename="src/mainwindow.cpp" line="324"/>
- <source>&Clear Recent Searches</source>
- <translation>&Ngresiki Penggolekan Sing ketuang</translation>
- </message>
- <message>
- <location filename="src/mainwindow.cpp" line="348"/>
- <source>Make a &Donation</source>
- <translation>Nggawe sakwijining &Sumbangan</translation>
- </message>
- <message>
- <location filename="src/mainwindow.cpp" line="405"/>
- <source>&Manually Start Playing</source>
- <translation>&Mainke Secoro Manual</translation>
- </message>
- <message>
- <location filename="src/mainwindow.cpp" line="406"/>
- <source>Manually start playing videos</source>
- <translation>Ngawiti maenke video secoro manual</translation>
- </message>
- <message>
- <location filename="src/mainwindow.cpp" line="728"/>
- <source>Choose your content location</source>
- <translation type="unfinished"/>
- </message>
- <message>
- <location filename="src/mainwindow.cpp" line="1002"/>
- <source>&Play</source>
- <translation>&Nyetel</translation>
- </message>
- <message>
- <location filename="src/mainwindow.cpp" line="1003"/>
- <source>Resume playback</source>
- <translation>Nglanjutno nyetel-ulang</translation>
- </message>
- <message>
- <location filename="src/mainwindow.cpp" line="1236"/>
- <source>Remaining time: %1</source>
- <translation>Sisone wektune: %1</translation>
- </message>
- <message>
- <location filename="src/mainwindow.cpp" line="1294"/>
- <source>Volume at %1%</source>
- <translation>Volume nok %1%</translation>
- </message>
- <message>
- <location filename="src/mainwindow.cpp" line="1300"/>
- <source>Volume is muted</source>
- <translation>Volume yo Mbisu</translation>
- </message>
- <message>
- <location filename="src/mainwindow.cpp" line="1303"/>
- <source>Volume is unmuted</source>
- <translation>Volume yo orak mbisu</translation>
- </message>
- <message>
- <location filename="src/mainwindow.cpp" line="1310"/>
- <source>Maximum video definition set to %1</source>
- <translation>Maksimale video definisine diset ning %1</translation>
- </message>
- <message>
- <location filename="src/mainwindow.cpp" line="1351"/>
- <source>Your privacy is now safe</source>
- <translation>Privasimu yoiku sakiki aman</translation>
- </message>
- <message>
- <location filename="src/mainwindow.cpp" line="1366"/>
- <source>Downloads complete</source>
- <translation>Unduhane komplit</translation>
- </message>
-</context>
-<context>
- <name>MediaView</name>
- <message>
- <location filename="src/mediaview.cpp" line="553"/>
- <source>You can now paste the YouTube link into another application</source>
- <translation>Kowe iso paste YouTube link sakiki ninggone aplikasi liyane</translation>
- </message>
- <message>
- <location filename="src/mediaview.cpp" line="561"/>
- <source>You can now paste the video stream URL into another application</source>
- <translation>Kowe sakiki iso paste video stream URL ninggone aplikasi liyane</translation>
- </message>
- <message>
- <location filename="src/mediaview.cpp" line="562"/>
- <source>The link will be valid only for a limited time.</source>
- <translation>Link-nge kepingin diaslikake mung kanggo sak terbatase wektu.</translation>
- </message>
- <message>
- <location filename="src/mediaview.cpp" line="636"/>
- <source>This is just the demo version of %1.</source>
- <translation>Iki yoiku mung demo version of %1.</translation>
- </message>
- <message>
- <location filename="src/mediaview.cpp" line="637"/>
- <source>It allows you to test the application and see if it works for you.</source>
- <translation>Iki diolehno kowe kanggo ngetest aplikasine lan ndeloki tek iku fungsi kanggo kowe.</translation>
- </message>
- <message>
- <location filename="src/mediaview.cpp" line="667"/>
- <source>Continue</source>
- <translation>Nglanjutke</translation>
- </message>
- <message>
- <location filename="src/mediaview.cpp" line="756"/>
- <source>of</source>
- <comment>Used in video parts, as in '2 of 3'</comment>
- <translation>seko</translation>
- </message>
- <message>
- <location filename="src/mediaview.cpp" line="768"/>
- <source>part</source>
- <comment>This is for video parts, as in 'Cool video - part 1'</comment>
- <translation>seri</translation>
- </message>
- <message>
- <location filename="src/mediaview.cpp" line="770"/>
- <source>episode</source>
- <comment>This is for video parts, as in 'Cool series - episode 1'</comment>
- <translation>episode</translation>
- </message>
- <message>
- <location filename="src/mediaview.cpp" line="847"/>
- <source>Sent from %1</source>
- <translation>Kirim seko %1</translation>
- </message>
- <message>
- <location filename="src/mediaview.cpp" line="644"/>
- <source>Get the full version</source>
- <translation>Entukno versi komplite</translation>
- </message>
- <message>
- <location filename="src/mediaview.cpp" line="681"/>
- <source>Downloading %1</source>
- <translation>Ngunduhi %1</translation>
- </message>
-</context>
-<context>
- <name>MessageWidget</name>
- <message>
- <location filename="local/src/updatedialog.cpp" line="21"/>
- <source>A new version of %1 is available!</source>
- <translation type="unfinished"/>
- </message>
- <message>
- <location filename="local/src/updatedialog.cpp" line="28"/>
- <source>%1 %2 is now available. You have %3.</source>
- <translation type="unfinished"/>
- </message>
- <message>
- <location filename="local/src/updatedialog.cpp" line="33"/>
- <source>Would you like to download it now?</source>
- <translation type="unfinished"/>
- </message>
- <message>
- <location filename="local/src/updatedialog.cpp" line="39"/>
- <source>Skip This Version</source>
- <translation type="unfinished"/>
- </message>
- <message>
- <location filename="local/src/updatedialog.cpp" line="43"/>
- <source>Remind Me Later</source>
- <translation type="unfinished"/>
- </message>
- <message>
- <location filename="local/src/updatedialog.cpp" line="47"/>
- <source>Install Update</source>
- <translation type="unfinished"/>
- </message>
-</context>
-<context>
- <name>PasteLineEdit</name>
- <message>
- <location filename="local/src/pastelineedit.cpp" line="6"/>
- <source>Paste</source>
- <translation type="unfinished"/>
- </message>
-</context>
-<context>
- <name>PlaylistItemDelegate</name>
- <message>
- <location filename="src/playlistitemdelegate.cpp" line="159"/>
- <source>%1 views</source>
- <translation>%1 tampilan</translation>
- </message>
- <message>
- <location filename="src/playlistitemdelegate.cpp" line="285"/>
- <source>%1 of %2 (%3) — %4</source>
- <translation type="unfinished"/>
- </message>
- <message>
- <location filename="src/playlistitemdelegate.cpp" line="292"/>
- <source>Preparing</source>
- <translation type="unfinished"/>
- </message>
- <message>
- <location filename="src/playlistitemdelegate.cpp" line="294"/>
- <source>Failed</source>
- <translation type="unfinished"/>
- </message>
- <message>
- <location filename="src/playlistitemdelegate.cpp" line="296"/>
- <source>Completed</source>
- <translation type="unfinished"/>
- </message>
- <message>
- <location filename="src/playlistitemdelegate.cpp" line="298"/>
- <source>Stopped</source>
- <translation type="unfinished"/>
- </message>
- <message>
- <location filename="src/playlistitemdelegate.cpp" line="334"/>
- <source>Stop downloading</source>
- <translation type="unfinished"/>
- </message>
- <message>
- <location filename="src/playlistitemdelegate.cpp" line="344"/>
- <source>Show in %1</source>
- <translation type="unfinished"/>
- </message>
- <message>
- <location filename="src/playlistitemdelegate.cpp" line="346"/>
- <source>Open parent folder</source>
- <translation type="unfinished"/>
- </message>
- <message>
- <location filename="src/playlistitemdelegate.cpp" line="355"/>
- <source>Restart downloading</source>
- <translation type="unfinished"/>
- </message>
-</context>
-<context>
- <name>PlaylistModel</name>
- <message>
- <location filename="src/playlistmodel.cpp" line="52"/>
- <source>Searching...</source>
- <translation>ngGoleki...</translation>
- </message>
- <message>
- <location filename="src/playlistmodel.cpp" line="53"/>
- <source>Show %1 More</source>
- <translation type="unfinished"/>
- </message>
- <message>
- <location filename="src/playlistmodel.cpp" line="54"/>
- <source>No videos</source>
- <translation>Ora video</translation>
- </message>
- <message>
- <location filename="src/playlistmodel.cpp" line="55"/>
- <source>No more videos</source>
- <translation>Rak ono video meneh</translation>
- </message>
-</context>
-<context>
- <name>RefineSearchWidget</name>
- <message>
- <location filename="src/refinesearchwidget.cpp" line="31"/>
- <source>Sort by</source>
- <translation>Bidik didasarke</translation>
- </message>
- <message>
- <location filename="src/refinesearchwidget.cpp" line="35"/>
- <source>Relevance</source>
- <translation>Relefan</translation>
- </message>
- <message>
- <location filename="src/refinesearchwidget.cpp" line="36"/>
- <location filename="src/refinesearchwidget.cpp" line="52"/>
- <source>Date</source>
- <translation>Tanggale</translation>
- </message>
- <message>
- <location filename="src/refinesearchwidget.cpp" line="37"/>
- <source>View Count</source>
- <translation>Ndeloki Itungane</translation>
- </message>
- <message>
- <location filename="src/refinesearchwidget.cpp" line="38"/>
- <source>Rating</source>
- <translation>Rating</translation>
- </message>
- <message>
- <location filename="src/refinesearchwidget.cpp" line="56"/>
- <source>Anytime</source>
- <translation>Kapanwae</translation>
- </message>
- <message>
- <location filename="src/refinesearchwidget.cpp" line="57"/>
- <source>Today</source>
- <translation>Dinoiki</translation>
- </message>
- <message>
- <location filename="src/refinesearchwidget.cpp" line="58"/>
- <source>7 Days</source>
- <translation>7 Ndino</translation>
- </message>
- <message>
- <location filename="src/refinesearchwidget.cpp" line="59"/>
- <source>30 Days</source>
- <translation>30 Dino</translation>
- </message>
- <message>
- <location filename="src/refinesearchwidget.cpp" line="73"/>
- <source>Duration</source>
- <translation>Durasine</translation>
- </message>
- <message>
- <location filename="src/refinesearchwidget.cpp" line="77"/>
- <location filename="src/refinesearchwidget.cpp" line="104"/>
- <source>All</source>
- <translation>Kabeh</translation>
- </message>
- <message>
- <location filename="src/refinesearchwidget.cpp" line="78"/>
- <source>Short</source>
- <translation>Cekak</translation>
- </message>
- <message>
- <location filename="src/refinesearchwidget.cpp" line="79"/>
- <source>Medium</source>
- <translation>Sedengan</translation>
- </message>
- <message>
- <location filename="src/refinesearchwidget.cpp" line="80"/>
- <source>Long</source>
- <translation>Dowo</translation>
- </message>
- <message>
- <location filename="src/refinesearchwidget.cpp" line="83"/>
- <source>Less than 4 minutes</source>
- <translation>Kurang seko 4 menit</translation>
- </message>
- <message>
- <location filename="src/refinesearchwidget.cpp" line="84"/>
- <source>Between 4 and 20 minutes</source>
- <translation>Antarane 4 lan 20 menit</translation>
- </message>
- <message>
- <location filename="src/refinesearchwidget.cpp" line="85"/>
- <source>Longer than 20 minutes</source>
- <translation>Dowone luwih seko 20 menit</translation>
- </message>
- <message>
- <location filename="src/refinesearchwidget.cpp" line="100"/>
- <source>Quality</source>
- <translation>Kualitas</translation>
- </message>
- <message>
- <location filename="src/refinesearchwidget.cpp" line="105"/>
- <source>High Definition</source>
- <translation>Definisi duwur</translation>
- </message>
- <message>
- <location filename="src/refinesearchwidget.cpp" line="108"/>
- <source>720p or higher</source>
- <translation>720p utowo saknduwure</translation>
- </message>
- <message>
- <location filename="src/refinesearchwidget.cpp" line="122"/>
- <source>Done</source>
- <translation>Rampung</translation>
- </message>
-</context>
-<context>
- <name>RegionsView</name>
- <message>
- <location filename="src/regionsview.cpp" line="19"/>
- <source>Done</source>
- <translation type="unfinished"/>
- </message>
-</context>
-<context>
- <name>SearchLineEdit</name>
- <message>
- <location filename="src/searchlineedit.cpp" line="177"/>
- <source>Search</source>
- <translation>Nelusuri</translation>
- </message>
-</context>
-<context>
- <name>SearchView</name>
- <message>
- <location filename="src/searchview.cpp" line="71"/>
- <source>Welcome to <a href='%1'>%2</a>,</source>
- <translation>Sugengrawuh kanggo <a href='%1'>%2</a>,</translation>
- </message>
- <message>
- <location filename="src/searchview.cpp" line="50"/>
- <source>Get the full version</source>
- <translation>Enthukno versi komplite</translation>
- </message>
- <message>
- <location filename="src/searchview.cpp" line="85"/>
- <source>Enter</source>
- <extracomment>"Enter", as in "type". The whole phrase says: "Enter a keyword to start watching videos"</extracomment>
- <translation>Lebokno</translation>
- </message>
- <message>
- <location filename="src/searchview.cpp" line="90"/>
- <source>a keyword</source>
- <translation>sakwiji kata-kunci</translation>
- </message>
- <message>
- <location filename="src/searchview.cpp" line="91"/>
- <source>a channel</source>
- <translation>sakwiji saluran</translation>
- </message>
- <message>
- <location filename="src/searchview.cpp" line="96"/>
- <source>to start watching videos.</source>
- <translation>kanggo ngawiti nyeksikake video.</translation>
- </message>
- <message>
- <location filename="src/searchview.cpp" line="120"/>
- <source>Watch</source>
- <translation>Nonton</translation>
- </message>
- <message>
- <location filename="src/searchview.cpp" line="138"/>
- <source>Recent keywords</source>
- <translation>Kata-kunci saat iki</translation>
- </message>
- <message>
- <location filename="src/searchview.cpp" line="151"/>
- <source>Recent channels</source>
- <translation>Saluran lagekwae</translation>
- </message>
-</context>
-<context>
- <name>SidebarHeader</name>
- <message>
- <location filename="src/sidebarheader.cpp" line="16"/>
- <location filename="src/sidebarheader.cpp" line="23"/>
- <source>&Back</source>
- <translation>&mBuri</translation>
- </message>
- <message>
- <location filename="src/sidebarheader.cpp" line="57"/>
- <source>Forward to %1</source>
- <translation type="unfinished"/>
- </message>
- <message>
- <location filename="src/sidebarheader.cpp" line="70"/>
- <source>Back to %1</source>
- <translation type="unfinished"/>
- </message>
-</context>
-<context>
- <name>SidebarWidget</name>
- <message>
- <location filename="src/sidebarwidget.cpp" line="52"/>
- <source>Refine Search</source>
- <translation>Nyaring Penggolekane</translation>
- </message>
- <message>
- <location filename="src/sidebarwidget.cpp" line="148"/>
- <source>Did you mean: %1</source>
- <translation>Opo sing bekmaksud: %1</translation>
- </message>
-</context>
-<context>
- <name>StandardFeedsView</name>
- <message>
- <location filename="src/standardfeedsview.cpp" line="85"/>
- <source>Most Popular</source>
- <translation type="unfinished"/>
- </message>
- <message>
- <location filename="src/standardfeedsview.cpp" line="86"/>
- <source>Featured</source>
- <translation type="unfinished"/>
- </message>
- <message>
- <location filename="src/standardfeedsview.cpp" line="87"/>
- <source>Most Shared</source>
- <translation type="unfinished"/>
- </message>
- <message>
- <location filename="src/standardfeedsview.cpp" line="88"/>
- <source>Most Discussed</source>
- <translation type="unfinished"/>
- </message>
- <message>
- <location filename="src/standardfeedsview.cpp" line="89"/>
- <source>Top Rated</source>
- <translation type="unfinished"/>
- </message>
-</context>
-<context>
- <name>Video</name>
- <message>
- <location filename="src/video.cpp" line="213"/>
- <source>Cannot get video stream for %1</source>
- <translation>Rak iso ngenthukno video stream kanggo %1</translation>
- </message>
- <message>
- <location filename="src/video.cpp" line="231"/>
- <source>Network error: %1 for %2</source>
- <translation>Jaringane error: %1 por %2</translation>
- </message>
-</context>
-<context>
- <name>YTRegions</name>
- <message>
- <location filename="src/ytregions.cpp" line="8"/>
- <source>Algeria</source>
- <translation type="unfinished"/>
- </message>
- <message>
- <location filename="src/ytregions.cpp" line="9"/>
- <source>Argentina</source>
- <translation type="unfinished"/>
- </message>
- <message>
- <location filename="src/ytregions.cpp" line="10"/>
- <source>Australia</source>
- <translation type="unfinished"/>
- </message>
- <message>
- <location filename="src/ytregions.cpp" line="11"/>
- <source>Belgium</source>
- <translation type="unfinished"/>
- </message>
- <message>
- <location filename="src/ytregions.cpp" line="12"/>
- <source>Brazil</source>
- <translation type="unfinished"/>
- </message>
- <message>
- <location filename="src/ytregions.cpp" line="13"/>
- <source>Canada</source>
- <translation type="unfinished"/>
- </message>
- <message>
- <location filename="src/ytregions.cpp" line="14"/>
- <source>Chile</source>
- <translation type="unfinished"/>
- </message>
- <message>
- <location filename="src/ytregions.cpp" line="15"/>
- <source>Colombia</source>
- <translation type="unfinished"/>
- </message>
- <message>
- <location filename="src/ytregions.cpp" line="16"/>
- <source>Czech Republic</source>
- <translation type="unfinished"/>
- </message>
- <message>
- <location filename="src/ytregions.cpp" line="17"/>
- <source>Egypt</source>
- <translation type="unfinished"/>
- </message>
- <message>
- <location filename="src/ytregions.cpp" line="18"/>
- <source>France</source>
- <translation type="unfinished"/>
- </message>
- <message>
- <location filename="src/ytregions.cpp" line="19"/>
- <source>Germany</source>
- <translation type="unfinished"/>
- </message>
- <message>
- <location filename="src/ytregions.cpp" line="20"/>
- <source>Ghana</source>
- <translation type="unfinished"/>
- </message>
- <message>
- <location filename="src/ytregions.cpp" line="21"/>
- <source>Greece</source>
- <translation type="unfinished"/>
- </message>
- <message>
- <location filename="src/ytregions.cpp" line="22"/>
- <source>Hong Kong</source>
- <translation type="unfinished"/>
- </message>
- <message>
- <location filename="src/ytregions.cpp" line="23"/>
- <source>Hungary</source>
- <translation type="unfinished"/>
- </message>
- <message>
- <location filename="src/ytregions.cpp" line="24"/>
- <source>India</source>
- <translation type="unfinished"/>
- </message>
- <message>
- <location filename="src/ytregions.cpp" line="25"/>
- <source>Indonesia</source>
- <translation type="unfinished"/>
- </message>
- <message>
- <location filename="src/ytregions.cpp" line="26"/>
- <source>Ireland</source>
- <translation type="unfinished"/>
- </message>
- <message>
- <location filename="src/ytregions.cpp" line="27"/>
- <source>Israel</source>
- <translation type="unfinished"/>
- </message>
- <message>
- <location filename="src/ytregions.cpp" line="28"/>
- <source>Italy</source>
- <translation type="unfinished"/>
- </message>
- <message>
- <location filename="src/ytregions.cpp" line="29"/>
- <source>Japan</source>
- <translation type="unfinished"/>
- </message>
- <message>
- <location filename="src/ytregions.cpp" line="30"/>
- <source>Jordan</source>
- <translation type="unfinished"/>
- </message>
- <message>
- <location filename="src/ytregions.cpp" line="31"/>
- <source>Kenya</source>
- <translation type="unfinished"/>
- </message>
- <message>
- <location filename="src/ytregions.cpp" line="32"/>
- <source>Malaysia</source>
- <translation type="unfinished"/>
- </message>
- <message>
- <location filename="src/ytregions.cpp" line="33"/>
- <source>Mexico</source>
- <translation type="unfinished"/>
- </message>
- <message>
- <location filename="src/ytregions.cpp" line="34"/>
- <source>Morocco</source>
- <translation type="unfinished"/>
- </message>
- <message>
- <location filename="src/ytregions.cpp" line="35"/>
- <source>Netherlands</source>
- <translation type="unfinished"/>
- </message>
- <message>
- <location filename="src/ytregions.cpp" line="36"/>
- <source>New Zealand</source>
- <translation type="unfinished"/>
- </message>
- <message>
- <location filename="src/ytregions.cpp" line="37"/>
- <source>Nigeria</source>
- <translation type="unfinished"/>
- </message>
- <message>
- <location filename="src/ytregions.cpp" line="38"/>
- <source>Peru</source>
- <translation type="unfinished"/>
- </message>
- <message>
- <location filename="src/ytregions.cpp" line="39"/>
- <source>Philippines</source>
- <translation type="unfinished"/>
- </message>
- <message>
- <location filename="src/ytregions.cpp" line="40"/>
- <source>Poland</source>
- <translation type="unfinished"/>
- </message>
- <message>
- <location filename="src/ytregions.cpp" line="41"/>
- <source>Russia</source>
- <translation type="unfinished"/>
- </message>
- <message>
- <location filename="src/ytregions.cpp" line="42"/>
- <source>Saudi Arabia</source>
- <translation type="unfinished"/>
- </message>
- <message>
- <location filename="src/ytregions.cpp" line="43"/>
- <source>Singapore</source>
- <translation type="unfinished"/>
- </message>
- <message>
- <location filename="src/ytregions.cpp" line="44"/>
- <source>South Africa</source>
- <translation type="unfinished"/>
- </message>
- <message>
- <location filename="src/ytregions.cpp" line="45"/>
- <source>South Korea</source>
- <translation type="unfinished"/>
- </message>
- <message>
- <location filename="src/ytregions.cpp" line="46"/>
- <source>Spain</source>
- <translation type="unfinished"/>
- </message>
- <message>
- <location filename="src/ytregions.cpp" line="47"/>
- <source>Sweden</source>
- <translation type="unfinished"/>
- </message>
- <message>
- <location filename="src/ytregions.cpp" line="48"/>
- <source>Taiwan</source>
- <translation type="unfinished"/>
- </message>
- <message>
- <location filename="src/ytregions.cpp" line="49"/>
- <source>Tunisia</source>
- <translation type="unfinished"/>
- </message>
- <message>
- <location filename="src/ytregions.cpp" line="50"/>
- <source>Turkey</source>
- <translation type="unfinished"/>
- </message>
- <message>
- <location filename="src/ytregions.cpp" line="51"/>
- <source>Uganda</source>
- <translation type="unfinished"/>
- </message>
- <message>
- <location filename="src/ytregions.cpp" line="52"/>
- <source>United Arab Emirates</source>
- <translation type="unfinished"/>
- </message>
- <message>
- <location filename="src/ytregions.cpp" line="53"/>
- <source>United Kingdom</source>
- <translation type="unfinished"/>
- </message>
- <message>
- <location filename="src/ytregions.cpp" line="54"/>
- <source>Yemen</source>
- <translation type="unfinished"/>
- </message>
- <message>
- <location filename="src/ytregions.cpp" line="128"/>
- <source>Worldwide</source>
- <translation type="unfinished"/>
- </message>
-</context>
-</TS>
\ No newline at end of file
<message>
<location filename="src/aboutview.cpp" line="38"/>
<source>Licensed to: %1</source>
- <translation>Лицензияланган: %1</translation>
+ <translation>%1 үчүн лицензияланган</translation>
</message>
<message>
<location filename="src/aboutview.cpp" line="42"/>
<source>%1 is Free Software but its development takes precious time.</source>
- <translation>%1 деген эркин ПК, бирок анын иштетүүсү өтө көп убакытымды алат.</translation>
+ <translation>%1 — бекер программалык жабдык, бирок анын иштетүүсү көп убагымды алат.</translation>
</message>
<message>
<location filename="src/aboutview.cpp" line="43"/>
<source>Please <a href='%1'>donate</a> to support the continued development of %2.</source>
- <translation>Сизден өтүнөм, %2'ка <a href='%1'>тартуу кылып</a> мындан аркы иштетүүсүн колдоп бериңиз .</translation>
+ <translation>%2'га <a href='%1'>тартуу кылып</a> мындан аркы иштетүүсүн колдоп бериңиз.</translation>
</message>
<message>
<location filename="src/aboutview.cpp" line="47"/>
<source>You may want to try my other apps as well:</source>
- <translation>Сиз менин дагÑ\8b баÑ\88ка Ñ\82иÑ\80кемелеÑ\80имди карап көрсөңүз болот:</translation>
+ <translation>Ð\91аÑ\88ка Ñ\82иÑ\80кемелеÑ\80имди да карап көрсөңүз болот:</translation>
</message>
<message>
<location filename="src/aboutview.cpp" line="50"/>
<message>
<location filename="src/aboutview.cpp" line="60"/>
<source>Translate %1 to your native language using %2</source>
- <translation>%1'ту %2 аркылуу сиздин эне тилиңизге которуу</translation>
+ <translation>%2 аркылуу %1'ду өз эне тилиңизге которуңуз</translation>
</message>
<message>
<location filename="src/aboutview.cpp" line="65"/>
<message>
<location filename="src/aboutview.h" line="19"/>
<source>What you always wanted to know about %1 and never dared to ask</source>
- <translation>%1 жөнүндө дайма билгиңиз келген нерселер жана эч убакта аларды сурамак эмессиз</translation>
+ <translation>%1 жөнүндө дайыма билгиңиз келген нерселер бирок сураганга мүмкүнчүлүгүңүз жок болгон</translation>
</message>
</context>
<context>
<message>
<location filename="local/src/activationdialog.cpp" line="35"/>
<source>&Code:</source>
- <translation>&Код:</translation>
+ <translation>&Коду:</translation>
</message>
</context>
<context>
<message>
<location filename="local/src/activationview.cpp" line="53"/>
<source>The full version allows you to download videos longer than %1 minutes and to watch videos without interruptions.</source>
- <translation>Толук версиясы %1 мүнөттөн көбүрөөк видеолорду жүктөгөнгө жана видеолорду үзгүлтүксүз көргөнгө уруксат берет.</translation>
+ <translation>Толук версиясы %1 минутадан көбүрөөк видеолорду жүктөгөнгө жана видеолорду үзгүлтүксүз көргөнгө уруксат берет.</translation>
</message>
<message>
<location filename="local/src/activationview.cpp" line="55"/>
<source>Without a license, the application will expire in %1 days.</source>
- <translation>Лицензиясы жок болгон үчүн, тиркеменин мөөнөтү %1 күндөн кийин бүтөт.</translation>
+ <translation>Лицензиясыз болгондуктан, тиркеменин мөөнөтү %1 күндөн кийин бүтөт.</translation>
</message>
<message>
<location filename="local/src/activationview.cpp" line="57"/>
<source>By purchasing the full version, you will also support the hard work I put into creating %1.</source>
- <translation>Толук версиясын алганда, %1 үчүн оор эмгек салым кылып жатканымды да колдоп бересиз.</translation>
+ <translation>Толук версиясын алсаңыз, %1 үчүн оор жумуш кылып жатканымды да колдоп бере аласыз.</translation>
</message>
<message>
<location filename="local/src/activationview.cpp" line="70"/>
<translation>Лицензияны сатып алуу</translation>
</message>
</context>
+<context>
+ <name>ChannelAggregator</name>
+ <message>
+ <location filename="src/channelaggregator.cpp" line="110"/>
+ <source>By %1</source>
+ <translation type="unfinished"/>
+ </message>
+ <message numerus="yes">
+ <location filename="src/channelaggregator.cpp" line="112"/>
+ <source>You have %n new video(s)</source>
+ <translation type="unfinished"><numerusform></numerusform></translation>
+ </message>
+</context>
+<context>
+ <name>ChannelItemDelegate</name>
+ <message>
+ <location filename="src/channelitemdelegate.cpp" line="46"/>
+ <source>All Videos</source>
+ <translation>Бардык видеолор</translation>
+ </message>
+ <message>
+ <location filename="src/channelitemdelegate.cpp" line="63"/>
+ <source>Unwatched Videos</source>
+ <translation>Көрүлбөгөн видеолор</translation>
+ </message>
+</context>
+<context>
+ <name>ChannelView</name>
+ <message>
+ <location filename="src/channelview.cpp" line="75"/>
+ <source>Mark all as watched</source>
+ <translation>Баарын көрүлдү деп белгилөө</translation>
+ </message>
+ <message>
+ <location filename="src/channelview.cpp" line="83"/>
+ <source>Show Updated</source>
+ <translation>Жаңыланганын көрсөтүү</translation>
+ </message>
+ <message>
+ <location filename="src/channelview.cpp" line="95"/>
+ <source>Name</source>
+ <translation>Аты</translation>
+ </message>
+ <message>
+ <location filename="src/channelview.cpp" line="102"/>
+ <source>Last Updated</source>
+ <translation>Соңку жаңылангандар</translation>
+ </message>
+ <message>
+ <location filename="src/channelview.cpp" line="109"/>
+ <source>Last Added</source>
+ <translation>Соңку кошулгандар</translation>
+ </message>
+ <message>
+ <location filename="src/channelview.cpp" line="116"/>
+ <source>Last Watched</source>
+ <translation>Соңку көрүлгөндөр</translation>
+ </message>
+ <message>
+ <location filename="src/channelview.cpp" line="123"/>
+ <source>Most Watched</source>
+ <translation>Эң көп көрүлгөндөр</translation>
+ </message>
+ <message>
+ <location filename="src/channelview.cpp" line="131"/>
+ <source>Sort by</source>
+ <translation>Сорттоо</translation>
+ </message>
+ <message>
+ <location filename="src/channelview.cpp" line="190"/>
+ <source>All Videos</source>
+ <translation>Бардык видеолор</translation>
+ </message>
+ <message>
+ <location filename="src/channelview.cpp" line="194"/>
+ <source>Unwatched Videos</source>
+ <translation>Көрүлбөгөн видеолор</translation>
+ </message>
+ <message>
+ <location filename="src/channelview.cpp" line="206"/>
+ <source>There are no updated subscriptions at this time.</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="src/channelview.cpp" line="208"/>
+ <source>You have no subscriptions. Use the star symbol to subscribe to channels.</source>
+ <translation type="unfinished"/>
+ </message>
+</context>
<context>
<name>ClearButton</name>
<message>
<message>
<location filename="src/downloaditem.cpp" line="352"/>
<source>minutes</source>
- <translation>мүнөт</translation>
+ <translation>минута</translation>
</message>
<message>
<location filename="src/downloaditem.cpp" line="355"/>
<message>
<location filename="src/downloadmanager.cpp" line="55"/>
<source>This is just the demo version of %1.</source>
- <translation>Ð\91Ñ\83л пÑ\80огÑ\80амма %1'Ñ\82Ñ\83н демо-веÑ\80Ñ\81иÑ\8fÑ\81Ñ\8b болоÑ\82.</translation>
+ <translation>Ð\91Ñ\83л жөн Ñ\8dле %1'дÑ\83н демо-веÑ\80Ñ\81иÑ\8fÑ\81Ñ\8b.</translation>
</message>
<message>
<location filename="src/downloadmanager.cpp" line="57"/>
<source>It can only download videos shorter than %1 minutes so you can test the download functionality.</source>
- <translation>Жүктөө функционалдуулугун текшерүү үчүн, бул %1 мүнөттөн кыскараак видеолорду гана жүктөп бере алат.</translation>
+ <translation>Жүктөө функционалдуулугун текшерүү үчүн, бул %1 минутадан кыскараак видеолорду гана жүктөп бере алат.</translation>
</message>
<message>
<location filename="src/downloadmanager.cpp" line="63"/>
<message>
<location filename="src/downloadmanager.cpp" line="150"/>
<source>%1 downloaded in %2</source>
- <translation>%1 файлы %2 жерине жүктөлдү</translation>
+ <translation>%2 жерине %1 файлы жүктөлдү</translation>
</message>
<message>
<location filename="src/downloadmanager.cpp" line="153"/>
<message>
<location filename="src/downloadsettings.cpp" line="15"/>
<source>Change location...</source>
- <translation>Жүктөө жерин өзгөртүү...</translation>
+ <translation>Жайгашкан жерин өзгөртүү...</translation>
</message>
<message>
<location filename="src/downloadsettings.cpp" line="47"/>
<source>Choose the download location</source>
- <translation>Жүктөө жерин тандоо</translation>
+ <translation>Жүктөп алуу жерин тандоо</translation>
</message>
<message>
<location filename="src/downloadsettings.cpp" line="59"/>
<message>
<location filename="src/downloadsettings.cpp" line="61"/>
<source>Current downloads will still go in the previous location.</source>
- <translation>Кезектеги жүктөөлөр мурунку жеринде сакталат.</translation>
+ <translation>Кезекте жүктөлүп жаткандар мурунку жерге сакталат.</translation>
</message>
<message>
<location filename="src/downloadsettings.cpp" line="72"/>
<source>Downloading to: %1</source>
- <translation>Жүктөлүп жаткан жери: %1</translation>
+ <translation>%1 папкасына жүктөлүүдө</translation>
</message>
</context>
<context>
<message>
<location filename="local/src/updatedialog.cpp" line="60"/>
<source>Downloading update...</source>
- <translation>Жаңыртууларды жүктөп алуу...</translation>
+ <translation>Жаңылоо жүктөлүүдө...</translation>
</message>
</context>
<context>
<context>
<name>HomeView</name>
<message>
- <location filename="src/homeview.cpp" line="33"/>
+ <location filename="src/homeview.cpp" line="38"/>
<source>Search</source>
<translation>Издөө</translation>
</message>
<message>
- <location filename="src/homeview.cpp" line="35"/>
+ <location filename="src/homeview.cpp" line="40"/>
<source>Find videos and channels by keyword</source>
<translation>Ачкыч сөз менен видеолорду жана каналдарды табыңыз</translation>
</message>
<message>
- <location filename="src/homeview.cpp" line="40"/>
+ <location filename="src/homeview.cpp" line="45"/>
<source>Browse</source>
<translation>Сереп</translation>
</message>
<message>
- <location filename="src/homeview.cpp" line="42"/>
+ <location filename="src/homeview.cpp" line="47"/>
<source>Browse videos by category</source>
- <translation>Видеолорду категория боюнча кароо</translation>
+ <translation>Видеолорду категориясы боюнча кароо</translation>
+ </message>
+ <message>
+ <location filename="src/homeview.cpp" line="51"/>
+ <source>Subscriptions</source>
+ <translation>Жазылуулар</translation>
+ </message>
+ <message>
+ <location filename="src/homeview.cpp" line="53"/>
+ <source>Channel subscriptions</source>
+ <translation>Канал жазылуулары</translation>
</message>
<message>
<location filename="src/homeview.h" line="22"/>
<context>
<name>LoadingWidget</name>
<message>
- <location filename="src/loadingwidget.cpp" line="90"/>
+ <location filename="src/loadingwidget.cpp" line="88"/>
<source>Error</source>
<translation>Ката</translation>
</message>
<context>
<name>MainWindow</name>
<message>
- <location filename="src/mainwindow.cpp" line="213"/>
+ <location filename="src/mainwindow.cpp" line="237"/>
<source>&Stop</source>
<translation>&Токтотуу</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="214"/>
+ <location filename="src/mainwindow.cpp" line="238"/>
<source>Stop playback and go back to the search view</source>
<translation>Ойнотууну токтотуп издөө көрүнүшүнө кайтуу</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="232"/>
+ <location filename="src/mainwindow.cpp" line="253"/>
<source>S&kip</source>
- <translation>&Өткөрүү</translation>
+ <translation>Ө&ткөрүү</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="233"/>
+ <location filename="src/mainwindow.cpp" line="254"/>
<source>Skip to the next video</source>
<translation>Кийинки видеого өтүү</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="239"/>
- <location filename="src/mainwindow.cpp" line="989"/>
+ <location filename="src/mainwindow.cpp" line="260"/>
+ <location filename="src/mainwindow.cpp" line="1012"/>
<source>&Pause</source>
<translation>&Бир азга токтотуу</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="240"/>
- <location filename="src/mainwindow.cpp" line="990"/>
+ <location filename="src/mainwindow.cpp" line="261"/>
+ <location filename="src/mainwindow.cpp" line="1013"/>
<source>Pause playback</source>
<translation>Ойнотууну бир азга токтотуу</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="246"/>
+ <location filename="src/mainwindow.cpp" line="267"/>
<source>&Full Screen</source>
<translation>&Толук экран</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="247"/>
+ <location filename="src/mainwindow.cpp" line="268"/>
<source>Go full screen</source>
- <translation>Толук экран режимине өтүү</translation>
+ <translation>Толук экранга өтүү</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="263"/>
+ <location filename="src/mainwindow.cpp" line="282"/>
<source>Hide the playlist and the toolbar</source>
<translation>Ойнотуу тизмесин жана аспап панелин жашыруу</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="276"/>
+ <location filename="src/mainwindow.cpp" line="295"/>
<source>Go to the YouTube video page and pause playback</source>
<translation>Видеонун YouTube барагына өтүү жана ойнотууну бир азга токтотуу</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="283"/>
+ <location filename="src/mainwindow.cpp" line="302"/>
<source>Copy the current video YouTube link to the clipboard</source>
<translation>Кезектеги видеонун YouTube шилтемесин алмашуу буферине көчүрүү</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="290"/>
+ <location filename="src/mainwindow.cpp" line="309"/>
<source>Copy the current video stream URL to the clipboard</source>
<translation>Кезектеги видео агымдын дарегин алмашуу буферине көчүрүү</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="297"/>
+ <location filename="src/mainwindow.cpp" line="316"/>
<source>Find other video parts hopefully in the right order</source>
<translation>Видеонун башка бөлүктөрүн үмүт кылып туура ирети менен табуу</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="303"/>
+ <location filename="src/mainwindow.cpp" line="322"/>
<source>&Remove</source>
- <translation>&Өчүрүү</translation>
+ <translation>Ө&чүрүү</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="304"/>
+ <location filename="src/mainwindow.cpp" line="323"/>
<source>Remove the selected videos from the playlist</source>
- <translation>Тандалган видеолоÑ\80дÑ\83 ойноÑ\82Ñ\83Ñ\83 Ñ\82измеÑ\81инен өчүрүү</translation>
+ <translation>Ð\9eйноÑ\82Ñ\83Ñ\83 Ñ\82измеÑ\81индеги Ñ\82андалган видеолоÑ\80дÑ\83 өчүрүү</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="310"/>
+ <location filename="src/mainwindow.cpp" line="329"/>
<source>Move &Up</source>
- <translation>&Өйдө</translation>
+ <translation>Ө&йдө</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="311"/>
+ <location filename="src/mainwindow.cpp" line="330"/>
<source>Move up the selected videos in the playlist</source>
- <translation>Тандалган видеолоÑ\80дÑ\83 ойноÑ\82Ñ\83Ñ\83 Ñ\82измеÑ\81инен өйдө жылдыруу</translation>
+ <translation>Ð\9eйноÑ\82Ñ\83Ñ\83 Ñ\82измеÑ\81индеги Ñ\82андалган видеолоÑ\80дÑ\83 өйдө жылдыруу</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="317"/>
+ <location filename="src/mainwindow.cpp" line="336"/>
<source>Move &Down</source>
<translation>&Ылдый</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="318"/>
+ <location filename="src/mainwindow.cpp" line="337"/>
<source>Move down the selected videos in the playlist</source>
- <translation>Тандалган видеолоÑ\80дÑ\83 ойноÑ\82Ñ\83Ñ\83 Ñ\82измеÑ\81инен ылдый жылдыруу</translation>
+ <translation>Ð\9eйноÑ\82Ñ\83Ñ\83 Ñ\82измеÑ\81индеги Ñ\82андалган видеолоÑ\80дÑ\83 ылдый жылдыруу</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="329"/>
+ <location filename="src/mainwindow.cpp" line="348"/>
<source>Clear the search history. Cannot be undone.</source>
<translation>Издөө тарыхын тазалоо. Өзгөртүүлөр кайталанбас.</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="334"/>
+ <location filename="src/mainwindow.cpp" line="353"/>
<source>&Quit</source>
<translation>&Чыгуу</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="337"/>
+ <location filename="src/mainwindow.cpp" line="356"/>
<source>Bye</source>
<translation>Кош болуңуз</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="341"/>
+ <location filename="src/mainwindow.cpp" line="360"/>
<source>&Website</source>
<translation>&Веб-сайт</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="343"/>
+ <location filename="src/mainwindow.cpp" line="362"/>
<source>%1 on the Web</source>
<translation>%1 интернетте</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="349"/>
+ <location filename="src/mainwindow.cpp" line="368"/>
<source>Please support the continued development of %1</source>
<translation>%1'дун мындан аркы иштетүүсүн колдоп бериңиз</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="354"/>
+ <location filename="src/mainwindow.cpp" line="373"/>
<source>&About</source>
<translation>Программа &жөнүндө</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="356"/>
+ <location filename="src/mainwindow.cpp" line="375"/>
<source>Info about %1</source>
<translation>%1 жөнүндө маалымат</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="364"/>
+ <location filename="src/mainwindow.cpp" line="383"/>
<source>Search</source>
<translation>Издөө</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="383"/>
+ <location filename="src/mainwindow.cpp" line="402"/>
<source>Mute volume</source>
<translation>Үндү өчүрүү</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="412"/>
- <location filename="src/mainwindow.cpp" line="1365"/>
+ <location filename="src/mainwindow.cpp" line="431"/>
+ <location filename="src/mainwindow.cpp" line="1406"/>
<source>&Downloads</source>
<translation>&Жүктөөлөр</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="413"/>
+ <location filename="src/mainwindow.cpp" line="432"/>
<source>Show details about video downloads</source>
<translation>Видео жүктөөлөрү жөнүндө кошумча маалымат көрсөтүү</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="421"/>
+ <location filename="src/mainwindow.cpp" line="440"/>
<source>&Download</source>
<translation>&Жүктөп алуу</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="422"/>
+ <location filename="src/mainwindow.cpp" line="441"/>
<source>Download the current video</source>
<translation>Кезектеги видеону жүктөп алуу</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="441"/>
+ <location filename="src/mainwindow.cpp" line="458"/>
+ <source>&Subscribe to Channel</source>
+ <translation>Каналга &жазылуу</translation>
+ </message>
+ <message>
+ <location filename="src/mainwindow.cpp" line="465"/>
<source>Share the current video using %1</source>
<translation>Кезектеги видеону %1 аркылуу бөлүшүү</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="458"/>
+ <location filename="src/mainwindow.cpp" line="482"/>
<source>&Email</source>
<translation>&E-mail</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="459"/>
+ <location filename="src/mainwindow.cpp" line="483"/>
<source>Email</source>
<translation>E-mail</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="463"/>
+ <location filename="src/mainwindow.cpp" line="487"/>
<source>&Close</source>
<translation>&Жабуу</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="473"/>
+ <location filename="src/mainwindow.cpp" line="497"/>
<source>&Float on Top</source>
<translation>Үстүнөн &калкытуу</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="478"/>
+ <location filename="src/mainwindow.cpp" line="502"/>
<source>&Stop After This Video</source>
<translation>Бул видеодон кийин &токтотуу</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="485"/>
+ <location filename="src/mainwindow.cpp" line="509"/>
<source>&Report an Issue...</source>
- <translation>Ката жөнүндө &маалымдоо...</translation>
+ <translation>Катаны &маалымдоо...</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="489"/>
+ <location filename="src/mainwindow.cpp" line="513"/>
<source>&Refine Search...</source>
<translation>Издөөнү &тактоо...</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="501"/>
+ <location filename="src/mainwindow.cpp" line="525"/>
<source>More...</source>
<translation>Дагы...</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="504"/>
+ <location filename="src/mainwindow.cpp" line="528"/>
<source>&Related Videos</source>
<translation>&Байланыштуу видеолор</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="506"/>
+ <location filename="src/mainwindow.cpp" line="530"/>
<source>Watch videos related to the current one</source>
<translation>Кезектегиге байланыштуу видеону көрүү</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="544"/>
+ <location filename="src/mainwindow.cpp" line="553"/>
<source>&Application</source>
<translation>&Тиркеме</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="515"/>
+ <location filename="src/mainwindow.cpp" line="537"/>
<source>Buy %1...</source>
- <translation>%1'ту сатып алуу...</translation>
+ <translation>%1'ду сатып алуу...</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="558"/>
+ <location filename="src/mainwindow.cpp" line="567"/>
<source>&Playback</source>
<translation>&Ойнотуу</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="572"/>
+ <location filename="src/mainwindow.cpp" line="581"/>
<source>&Playlist</source>
<translation>Ойнотуу &тизмеси</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="581"/>
+ <location filename="src/mainwindow.cpp" line="590"/>
<source>&Video</source>
<translation>&Видео</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="594"/>
+ <location filename="src/mainwindow.cpp" line="605"/>
<source>&View</source>
<translation>&Көрүнүш</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="601"/>
+ <location filename="src/mainwindow.cpp" line="612"/>
<source>&Share</source>
<translation>&Бөлүшүү</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="615"/>
+ <location filename="src/mainwindow.cpp" line="626"/>
<source>&Help</source>
<translation>&Жардам</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="690"/>
+ <location filename="src/mainwindow.cpp" line="701"/>
<source>Press %1 to raise the volume, %2 to lower it</source>
- <translation>Катуулукту чоңойтуу үчүн %1 басыңыз жана кичирейтүү үчүн %2</translation>
+ <translation>Көлөмүн чоңойтуу үчүн %1 комбинациясын басыңыз, кичирейтүү үчүн %2</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="889"/>
- <location filename="src/mainwindow.cpp" line="895"/>
+ <location filename="src/mainwindow.cpp" line="910"/>
+ <location filename="src/mainwindow.cpp" line="916"/>
<source>Opening %1</source>
- <translation>%1 аÑ\87Ñ\83Ñ\83</translation>
+ <translation>%1 аÑ\87Ñ\8bлÑ\83Ñ\83да</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="936"/>
+ <location filename="src/mainwindow.cpp" line="959"/>
<source>Do you want to exit %1 with a download in progress?</source>
- <translation>Ð\96үкÑ\82өп алÑ\83Ñ\83 болÑ\83п жаÑ\82кан кезде %1'дан Ñ\87Ñ\8bккÑ\8bÒ£Ñ\8bз келеби?</translation>
+ <translation>Ð\96үкÑ\82өп алÑ\83Ñ\83 болÑ\83п жаÑ\82кан кезде %1'дан Ñ\87Ñ\8bгÑ\83Ñ\83нÑ\83 каалайÑ\81Ñ\8bзбÑ\8b?</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="937"/>
+ <location filename="src/mainwindow.cpp" line="960"/>
<source>If you close %1 now, this download will be cancelled.</source>
- <translation>Эгер сиз %1'ту азыр жапсаңыз, бул жүктөп алуу жокко чыгарылат.</translation>
+ <translation>Эгер сиз %1'ду азыр жапсаңыз, бул жүктөө жокко чыгарылат.</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="942"/>
+ <location filename="src/mainwindow.cpp" line="965"/>
<source>Close and cancel download</source>
- <translation>Жабуу жана жүктөп алууну жокко чыгаруу</translation>
+ <translation>Жабуу жана жүктөөнү жокко чыгаруу</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="943"/>
+ <location filename="src/mainwindow.cpp" line="966"/>
<source>Wait for download to finish</source>
<translation>Жүктөп алуунун аяктоосун күтүү</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="1102"/>
+ <location filename="src/mainwindow.cpp" line="1125"/>
<source>Leave &Full Screen</source>
- <translation>&Толук экран режиминен чыгуу</translation>
+ <translation>&Толук экрандан чыгуу</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="1475"/>
+ <location filename="src/mainwindow.cpp" line="1515"/>
<source>%1 version %2 is now available.</source>
- <translation>%1 версия %2 азыркы кезде колго жетердик.</translation>
+ <translation>%1 версия %2 азыр жеткиликтүү.</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="1479"/>
+ <location filename="src/mainwindow.cpp" line="1519"/>
<source>Remind me later</source>
<translation>Кечирээк эске салуу</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="1480"/>
+ <location filename="src/mainwindow.cpp" line="1520"/>
<source>Update</source>
- <translation>Жаңыртуу</translation>
+ <translation>Жаңылоо</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="982"/>
+ <location filename="src/mainwindow.cpp" line="1005"/>
<source>Error: %1</source>
- <translation>Ката: %1</translation>
+ <translation>Катасы: %1</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="222"/>
+ <location filename="src/mainwindow.cpp" line="246"/>
<source>P&revious</source>
<translation>&Мурунку</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="223"/>
+ <location filename="src/mainwindow.cpp" line="247"/>
<source>Go back to the previous track</source>
<translation>Мурунку жолчого кайтуу</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="262"/>
+ <location filename="src/mainwindow.cpp" line="281"/>
<source>&Compact Mode</source>
- <translation>&Ð\9aомпакÑ\82 Ñ\80ежими</translation>
+ <translation>&ТÑ\8bгÑ\8bз Ñ\80ежим</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="275"/>
+ <location filename="src/mainwindow.cpp" line="294"/>
<source>Open the &YouTube Page</source>
<translation>&YouTube барагын ачуу</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="282"/>
+ <location filename="src/mainwindow.cpp" line="301"/>
<source>Copy the YouTube &Link</source>
<translation>YouTube &шилтемесин көчүрүү</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="289"/>
+ <location filename="src/mainwindow.cpp" line="308"/>
<source>Copy the Video Stream &URL</source>
<translation>Видео агымдын &шилтемесин көчүрүү</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="296"/>
+ <location filename="src/mainwindow.cpp" line="315"/>
<source>Find Video &Parts</source>
- <translation>Видео &фрагменттерди табуу</translation>
+ <translation>Видео&фрагменттерди табуу</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="324"/>
+ <location filename="src/mainwindow.cpp" line="343"/>
<source>&Clear Recent Searches</source>
<translation>Соңку издөөлөрдү &тазалоо</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="348"/>
+ <location filename="src/mainwindow.cpp" line="367"/>
<source>Make a &Donation</source>
<translation>&Тартуу кылуу</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="405"/>
+ <location filename="src/mainwindow.cpp" line="424"/>
<source>&Manually Start Playing</source>
<translation>Ойнотууну &кол менен баштатуу</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="406"/>
+ <location filename="src/mainwindow.cpp" line="425"/>
<source>Manually start playing videos</source>
<translation>Видео ойнотууну кол менен баштатуу</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="728"/>
+ <location filename="src/mainwindow.cpp" line="739"/>
<source>Choose your content location</source>
- <translation>Мазмундун турган жерин тандаңыз</translation>
+ <translation>Мазмундун жайгашкан жерин тандаңыз</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="1002"/>
+ <location filename="src/mainwindow.cpp" line="1025"/>
<source>&Play</source>
<translation>&Ойнотуу</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="1003"/>
+ <location filename="src/mainwindow.cpp" line="1026"/>
<source>Resume playback</source>
<translation>Ойнотууну улантуу</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="1236"/>
+ <location filename="src/mainwindow.cpp" line="1277"/>
<source>Remaining time: %1</source>
- <translation>Ð\9aалган Ñ\83бакÑ\8bÑ\82: %1</translation>
+ <translation>Ð\9aалган Ñ\83багÑ\8b: %1</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="1294"/>
+ <location filename="src/mainwindow.cpp" line="1335"/>
<source>Volume at %1%</source>
- <translation>Катуулук %1%</translation>
+ <translation>Көлөмү %1%</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="1300"/>
+ <location filename="src/mainwindow.cpp" line="1341"/>
<source>Volume is muted</source>
- <translation>Үн өчүрүлдү</translation>
+ <translation>Үнү өчүрүлдү</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="1303"/>
+ <location filename="src/mainwindow.cpp" line="1344"/>
<source>Volume is unmuted</source>
- <translation>Үн күйгүзүлдү</translation>
+ <translation>Үнү күйгүзүлдү</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="1310"/>
+ <location filename="src/mainwindow.cpp" line="1351"/>
<source>Maximum video definition set to %1</source>
- <translation>Видеонун чечиминин жогорку чеги: %1</translation>
+ <translation>Видеонун жогорку чечими: %1</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="1351"/>
+ <location filename="src/mainwindow.cpp" line="1392"/>
<source>Your privacy is now safe</source>
<translation>Жашырындуулугуңуз камсыздалды</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="1366"/>
+ <location filename="src/mainwindow.cpp" line="1407"/>
<source>Downloads complete</source>
<translation>Жүктөп алуу аякталды</translation>
</message>
<context>
<name>MediaView</name>
<message>
- <location filename="src/mediaview.cpp" line="553"/>
+ <location filename="src/mediaview.cpp" line="563"/>
<source>You can now paste the YouTube link into another application</source>
- <translation>Эми сиз видеонун YouTube шилтемесин башка тиркемеге коё аласыз</translation>
+ <translation>YouTube'дун дарегин эми башка тиркемеге койсоңуз болот</translation>
</message>
<message>
- <location filename="src/mediaview.cpp" line="561"/>
+ <location filename="src/mediaview.cpp" line="571"/>
<source>You can now paste the video stream URL into another application</source>
- <translation>Сиз Ñ\8dми азÑ\8bÑ\80 видео агÑ\8bмдÑ\8bн даÑ\80егин баÑ\88ка Ñ\82иÑ\80кемеге Ñ\81ала алаÑ\81Ñ\8bз</translation>
+ <translation>Ð\92идео агÑ\8bмдÑ\8bн даÑ\80егин Ñ\8dми баÑ\88ка Ñ\82иÑ\80кемеге койÑ\81оңÑ\83з болоÑ\82</translation>
</message>
<message>
- <location filename="src/mediaview.cpp" line="562"/>
+ <location filename="src/mediaview.cpp" line="572"/>
<source>The link will be valid only for a limited time.</source>
<translation>Чакан убакытка чейин гана шилтеме анык болот.</translation>
</message>
<message>
- <location filename="src/mediaview.cpp" line="636"/>
+ <location filename="src/mediaview.cpp" line="650"/>
<source>This is just the demo version of %1.</source>
- <translation>Ð\91Ñ\83л пÑ\80огÑ\80амма %1'Ñ\82Ñ\83н демо-веÑ\80Ñ\81иÑ\8fÑ\81Ñ\8b болоÑ\82.</translation>
+ <translation>Ð\91Ñ\83л жөн Ñ\8dле %1'дÑ\83н демо-веÑ\80Ñ\81иÑ\8fÑ\81Ñ\8b.</translation>
</message>
<message>
- <location filename="src/mediaview.cpp" line="637"/>
+ <location filename="src/mediaview.cpp" line="651"/>
<source>It allows you to test the application and see if it works for you.</source>
<translation>Бул тиркемени сынап көргөнгө мүмкүндүк берет.</translation>
</message>
<message>
- <location filename="src/mediaview.cpp" line="667"/>
+ <location filename="src/mediaview.cpp" line="681"/>
<source>Continue</source>
<translation>Улантуу</translation>
</message>
<message>
- <location filename="src/mediaview.cpp" line="756"/>
+ <location filename="src/mediaview.cpp" line="772"/>
<source>of</source>
<comment>Used in video parts, as in '2 of 3'</comment>
<translation>/</translation>
</message>
<message>
- <location filename="src/mediaview.cpp" line="768"/>
+ <location filename="src/mediaview.cpp" line="785"/>
<source>part</source>
<comment>This is for video parts, as in 'Cool video - part 1'</comment>
<translation>бөлүк</translation>
</message>
<message>
- <location filename="src/mediaview.cpp" line="770"/>
+ <location filename="src/mediaview.cpp" line="787"/>
<source>episode</source>
<comment>This is for video parts, as in 'Cool series - episode 1'</comment>
<translation>эпизод</translation>
</message>
<message>
- <location filename="src/mediaview.cpp" line="847"/>
+ <location filename="src/mediaview.cpp" line="868"/>
<source>Sent from %1</source>
<translation>%1 жеринен жөнөтүү</translation>
</message>
<message>
- <location filename="src/mediaview.cpp" line="644"/>
+ <location filename="src/mediaview.cpp" line="899"/>
+ <source>Unsubscribe from %1</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="src/mediaview.cpp" line="903"/>
+ <source>Subscribe to %1</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="src/mediaview.cpp" line="658"/>
<source>Get the full version</source>
<translation>Толук версиясын алуу</translation>
</message>
<message>
- <location filename="src/mediaview.cpp" line="681"/>
+ <location filename="src/mediaview.cpp" line="695"/>
<source>Downloading %1</source>
- <translation>%1 жүкÑ\82өп алÑ\83Ñ\83</translation>
+ <translation>%1 жүкÑ\82өп алÑ\8bнÑ\83Ñ\83да</translation>
</message>
</context>
<context>
<message>
<location filename="local/src/updatedialog.cpp" line="47"/>
<source>Install Update</source>
- <translation>Жаңыртууларды орнотуу</translation>
+ <translation>Жаңылоолорду орнотуу</translation>
</message>
</context>
<context>
<context>
<name>PlaylistItemDelegate</name>
<message>
- <location filename="src/playlistitemdelegate.cpp" line="159"/>
+ <location filename="src/playlistitemdelegate.cpp" line="177"/>
<source>%1 views</source>
<translation>%1 көрүү</translation>
</message>
<message>
- <location filename="src/playlistitemdelegate.cpp" line="285"/>
+ <location filename="src/playlistitemdelegate.cpp" line="292"/>
<source>%1 of %2 (%3) — %4</source>
- <translation>%1/%2 (%3) — %4</translation>
+ <translation>%1 / %2 (%3) — %4</translation>
</message>
<message>
- <location filename="src/playlistitemdelegate.cpp" line="292"/>
+ <location filename="src/playlistitemdelegate.cpp" line="299"/>
<source>Preparing</source>
<translation>Даярдоо</translation>
</message>
<message>
- <location filename="src/playlistitemdelegate.cpp" line="294"/>
+ <location filename="src/playlistitemdelegate.cpp" line="301"/>
<source>Failed</source>
<translation>Ката</translation>
</message>
<message>
- <location filename="src/playlistitemdelegate.cpp" line="296"/>
+ <location filename="src/playlistitemdelegate.cpp" line="303"/>
<source>Completed</source>
<translation>Аякталды</translation>
</message>
<message>
- <location filename="src/playlistitemdelegate.cpp" line="298"/>
+ <location filename="src/playlistitemdelegate.cpp" line="305"/>
<source>Stopped</source>
<translation>Токтотулду</translation>
</message>
<message>
- <location filename="src/playlistitemdelegate.cpp" line="334"/>
+ <location filename="src/playlistitemdelegate.cpp" line="341"/>
<source>Stop downloading</source>
<translation>Жүктөп алууну токтотуу</translation>
</message>
<message>
- <location filename="src/playlistitemdelegate.cpp" line="344"/>
+ <location filename="src/playlistitemdelegate.cpp" line="351"/>
<source>Show in %1</source>
<translation>%1 жеринен көрсөтүү</translation>
</message>
<message>
- <location filename="src/playlistitemdelegate.cpp" line="346"/>
+ <location filename="src/playlistitemdelegate.cpp" line="353"/>
<source>Open parent folder</source>
- <translation>Ðне каталогун ачуу</translation>
+ <translation>Ð\90Ñ\82а-Ñ\8dне каталогун ачуу</translation>
</message>
<message>
- <location filename="src/playlistitemdelegate.cpp" line="355"/>
+ <location filename="src/playlistitemdelegate.cpp" line="362"/>
<source>Restart downloading</source>
- <translation>Жүктөп алууну кайта баштатуу</translation>
+ <translation>Жүктөп алууну кайтадан жүргүзүү</translation>
</message>
</context>
<context>
<message>
<location filename="src/playlistmodel.cpp" line="53"/>
<source>Show %1 More</source>
- <translation>Дагы көрсөтүү %1</translation>
+ <translation>Дагы %1 видеону көрсөтүү</translation>
</message>
<message>
<location filename="src/playlistmodel.cpp" line="54"/>
<message>
<location filename="src/refinesearchwidget.cpp" line="31"/>
<source>Sort by</source>
- <translation>Сорттоо ыкмасы</translation>
+ <translation>Сорттоо</translation>
</message>
<message>
<location filename="src/refinesearchwidget.cpp" line="35"/>
<message>
<location filename="src/refinesearchwidget.cpp" line="83"/>
<source>Less than 4 minutes</source>
- <translation>4 мүнөттөн кыскараак</translation>
+ <translation>4 минутадан кыскараак</translation>
</message>
<message>
<location filename="src/refinesearchwidget.cpp" line="84"/>
<source>Between 4 and 20 minutes</source>
- <translation>4 менен 20 мүнөттүн арасынан</translation>
+ <translation>4 менен 20 минутанын арасынан</translation>
</message>
<message>
<location filename="src/refinesearchwidget.cpp" line="85"/>
<source>Longer than 20 minutes</source>
- <translation>20 мүнөттөн көбүрөөк</translation>
+ <translation>20 минутадан көбүрөөк</translation>
</message>
<message>
<location filename="src/refinesearchwidget.cpp" line="100"/>
<context>
<name>SearchView</name>
<message>
- <location filename="src/searchview.cpp" line="71"/>
+ <location filename="src/searchview.cpp" line="66"/>
<source>Welcome to <a href='%1'>%2</a>,</source>
- <translation><a href='%1'>%2</a>'ка кош келиңиз,</translation>
+ <translation><a href='%1'>%2</a>'га кош келиңиз,</translation>
</message>
<message>
- <location filename="src/searchview.cpp" line="50"/>
+ <location filename="src/searchview.cpp" line="161"/>
<source>Get the full version</source>
<translation>Толук версиясын сатып алуу</translation>
</message>
<message>
- <location filename="src/searchview.cpp" line="85"/>
+ <location filename="src/searchview.cpp" line="80"/>
<source>Enter</source>
<extracomment>"Enter", as in "type". The whole phrase says: "Enter a keyword to start watching videos"</extracomment>
<translation>Видеолорду</translation>
</message>
<message>
- <location filename="src/searchview.cpp" line="90"/>
+ <location filename="src/searchview.cpp" line="85"/>
<source>a keyword</source>
<translation>ачкыч сөз</translation>
</message>
<message>
- <location filename="src/searchview.cpp" line="91"/>
+ <location filename="src/searchview.cpp" line="86"/>
<source>a channel</source>
<translation>канал</translation>
</message>
<message>
- <location filename="src/searchview.cpp" line="96"/>
+ <location filename="src/searchview.cpp" line="91"/>
<source>to start watching videos.</source>
<translation>менен табып көрүү.</translation>
</message>
<message>
- <location filename="src/searchview.cpp" line="120"/>
+ <location filename="src/searchview.cpp" line="115"/>
<source>Watch</source>
<translation>Көрүү</translation>
</message>
<message>
- <location filename="src/searchview.cpp" line="138"/>
+ <location filename="src/searchview.cpp" line="133"/>
<source>Recent keywords</source>
<translation>Соңку ачкыч сөздөр</translation>
</message>
<message>
- <location filename="src/searchview.cpp" line="151"/>
+ <location filename="src/searchview.cpp" line="146"/>
<source>Recent channels</source>
<translation>Соңку каналдар</translation>
</message>
<context>
<name>SidebarHeader</name>
<message>
- <location filename="src/sidebarheader.cpp" line="16"/>
- <location filename="src/sidebarheader.cpp" line="23"/>
+ <location filename="src/sidebarheader.cpp" line="19"/>
+ <location filename="src/sidebarheader.cpp" line="26"/>
<source>&Back</source>
<translation>&Артка</translation>
</message>
<message>
<location filename="src/sidebarheader.cpp" line="70"/>
<source>Back to %1</source>
- <translation>%1 кайтуу</translation>
+ <translation>%1 видеоÑ\81Ñ\83на кайÑ\82Ñ\83Ñ\83</translation>
</message>
</context>
<context>
<source>Most Popular</source>
<translation>Эң популярдуу</translation>
</message>
- <message>
- <location filename="src/standardfeedsview.cpp" line="86"/>
- <source>Featured</source>
- <translation>Тандалмалар</translation>
- </message>
<message>
<location filename="src/standardfeedsview.cpp" line="87"/>
<source>Most Shared</source>
<source>Top Rated</source>
<translation>Мыктылар</translation>
</message>
+ <message>
+ <location filename="src/standardfeedsview.cpp" line="90"/>
+ <source>All Time Popular</source>
+ <translation type="unfinished"/>
+ </message>
</context>
<context>
<name>Video</name>
<message>
- <location filename="src/video.cpp" line="213"/>
+ <location filename="src/video.cpp" line="215"/>
<source>Cannot get video stream for %1</source>
- <translation>%1 үчүн видео агымды алуу оңунан чыккан жок</translation>
+ <translation>%1 үчүн видео агымын алуу мүмкүн эмес</translation>
</message>
<message>
- <location filename="src/video.cpp" line="231"/>
+ <location filename="src/video.cpp" line="233"/>
<source>Network error: %1 for %2</source>
<translation>Тармак катасы: %1 %2 үчүн</translation>
</message>
DEPENDPATH += $$PWD
# ls -1 *.ts | tr '\n' ' '
-TRANSLATIONS += ar.ts ca.ts ca_ES.ts cs_CZ.ts da.ts de_DE.ts el.ts en.ts es.ts es_AR.ts es_ES.ts fi.ts fi_FI.ts fr.ts he_IL.ts hr.ts hu.ts ia.ts it.ts ja_JP.ts jv.ts ky.ts nl.ts pl.ts pl_PL.ts pt_BR.ts ro.ts ru.ts sk.ts sl.ts tr.ts zh_CN.ts
+TRANSLATIONS += ar.ts ast.ts bg_BG.ts ca.ts cs_CZ.ts da.ts de_DE.ts el.ts en.ts es.ts es_AR.ts es_ES.ts fi.ts fi_FI.ts fr.ts gl.ts he_IL.ts hu.ts ia.ts it.ts ja_JP.ts ky.ts ms_MY.ts nb.ts pl.ts pl_PL.ts pt_BR.ts ro.ts ru.ts sk.ts sl.ts sq.ts tr.ts uk.ts uk_UA.ts zh_CN.ts
isEmpty(QMAKE_LRELEASE) {
win32:QMAKE_LRELEASE = $$[QT_INSTALL_BINS]\lrelease.exe
else:QMAKE_LRELEASE = $$[QT_INSTALL_BINS]/lrelease
+++ /dev/null
-<?xml version="1.0" ?><!DOCTYPE TS><TS language="nl" version="2.0">
-<defaultcodec>UTF-8</defaultcodec>
-<context>
- <name>AboutView</name>
- <message>
- <location filename="src/aboutview.cpp" line="32"/>
- <source>There's life outside the browser!</source>
- <translation>Er is leven buiten de browser!</translation>
- </message>
- <message>
- <location filename="src/aboutview.cpp" line="33"/>
- <source>Version %1</source>
- <translation>Versie %1</translation>
- </message>
- <message>
- <location filename="src/aboutview.cpp" line="38"/>
- <source>Licensed to: %1</source>
- <translation type="unfinished"/>
- </message>
- <message>
- <location filename="src/aboutview.cpp" line="42"/>
- <source>%1 is Free Software but its development takes precious time.</source>
- <translation>%1 is gratis software, maar de ontwikkeling ervan vergt kostbare tijd.</translation>
- </message>
- <message>
- <location filename="src/aboutview.cpp" line="43"/>
- <source>Please <a href='%1'>donate</a> to support the continued development of %2.</source>
- <translation><a href='%1'>Doneer</a> om bij te dragen aan de verdere ontwikkeling van %2.</translation>
- </message>
- <message>
- <location filename="src/aboutview.cpp" line="47"/>
- <source>You may want to try my other apps as well:</source>
- <translation>Misschien wilt u ook mijn andere apps proberen:</translation>
- </message>
- <message>
- <location filename="src/aboutview.cpp" line="50"/>
- <source>%1, a YouTube music player</source>
- <translation>%1, een YouTube-muziekspeler</translation>
- </message>
- <message>
- <location filename="src/aboutview.cpp" line="54"/>
- <source>%1, a music player</source>
- <translation>%1, een muziekspeler</translation>
- </message>
- <message>
- <location filename="src/aboutview.cpp" line="60"/>
- <source>Translate %1 to your native language using %2</source>
- <translation>Vertaal %1 naar uw moedertaal met behulp van %2</translation>
- </message>
- <message>
- <location filename="src/aboutview.cpp" line="65"/>
- <source>Icon designed by %1.</source>
- <translation>Pictogram ontworpen door %1.</translation>
- </message>
- <message>
- <location filename="src/aboutview.cpp" line="69"/>
- <source>Released under the <a href='%1'>GNU General Public License</a></source>
- <translation>Uitgebracht onder de <a href='%1'>GNU General Public License</a></translation>
- </message>
- <message>
- <location filename="src/aboutview.cpp" line="84"/>
- <source>&Close</source>
- <translation>&Sluit</translation>
- </message>
- <message>
- <location filename="src/aboutview.h" line="17"/>
- <source>About</source>
- <translation>Over</translation>
- </message>
- <message>
- <location filename="src/aboutview.h" line="19"/>
- <source>What you always wanted to know about %1 and never dared to ask</source>
- <translation>Wat u altijd al had willen weten over %1 maar nooit heeft durven vragen</translation>
- </message>
-</context>
-<context>
- <name>ActivationDialog</name>
- <message>
- <location filename="local/src/activationdialog.cpp" line="17"/>
- <source>Enter your License Details</source>
- <translation type="unfinished"/>
- </message>
- <message>
- <location filename="local/src/activationdialog.cpp" line="29"/>
- <source>&Email:</source>
- <translation type="unfinished"/>
- </message>
- <message>
- <location filename="local/src/activationdialog.cpp" line="35"/>
- <source>&Code:</source>
- <translation type="unfinished"/>
- </message>
-</context>
-<context>
- <name>ActivationView</name>
- <message>
- <location filename="local/src/activationview.cpp" line="47"/>
- <source>Please license %1</source>
- <translation>Alstublieft, Licenceer %1</translation>
- </message>
- <message>
- <location filename="local/src/activationview.cpp" line="51"/>
- <source>This demo has expired.</source>
- <translation>Deze demo is verlopen.</translation>
- </message>
- <message>
- <location filename="local/src/activationview.cpp" line="53"/>
- <source>The full version allows you to download videos longer than %1 minutes and to watch videos without interruptions.</source>
- <translation type="unfinished"/>
- </message>
- <message>
- <location filename="local/src/activationview.cpp" line="55"/>
- <source>Without a license, the application will expire in %1 days.</source>
- <translation type="unfinished"/>
- </message>
- <message>
- <location filename="local/src/activationview.cpp" line="57"/>
- <source>By purchasing the full version, you will also support the hard work I put into creating %1.</source>
- <translation>Door dit produkt te kopen beloon je mij voor het harde werk dat ik geïnvesteerd heb in het maken van %1.</translation>
- </message>
- <message>
- <location filename="local/src/activationview.cpp" line="70"/>
- <source>Use Demo</source>
- <translation>Gebruik de demo</translation>
- </message>
- <message>
- <location filename="local/src/activationview.cpp" line="77"/>
- <source>Enter License</source>
- <translation type="unfinished"/>
- </message>
- <message>
- <location filename="local/src/activationview.cpp" line="85"/>
- <source>Buy License</source>
- <translation type="unfinished"/>
- </message>
-</context>
-<context>
- <name>ClearButton</name>
- <message>
- <location filename="src/searchlineedit.cpp" line="56"/>
- <source>Clear</source>
- <translation>Wis</translation>
- </message>
-</context>
-<context>
- <name>DownloadItem</name>
- <message>
- <location filename="src/downloaditem.cpp" line="322"/>
- <source>bytes</source>
- <translation>bytes</translation>
- </message>
- <message>
- <location filename="src/downloaditem.cpp" line="325"/>
- <source>KB</source>
- <translation>KB</translation>
- </message>
- <message>
- <location filename="src/downloaditem.cpp" line="328"/>
- <source>MB</source>
- <translation>MB</translation>
- </message>
- <message>
- <location filename="src/downloaditem.cpp" line="337"/>
- <source>bytes/sec</source>
- <translation>bytes/sec</translation>
- </message>
- <message>
- <location filename="src/downloaditem.cpp" line="340"/>
- <source>KB/sec</source>
- <translation>KB/sec</translation>
- </message>
- <message>
- <location filename="src/downloaditem.cpp" line="343"/>
- <source>MB/sec</source>
- <translation>MB/sec</translation>
- </message>
- <message>
- <location filename="src/downloaditem.cpp" line="349"/>
- <source>seconds</source>
- <translation>seconden</translation>
- </message>
- <message>
- <location filename="src/downloaditem.cpp" line="352"/>
- <source>minutes</source>
- <translation>minuten</translation>
- </message>
- <message>
- <location filename="src/downloaditem.cpp" line="355"/>
- <source>%4 %5 remaining</source>
- <translation>%4 %5 resterend</translation>
- </message>
-</context>
-<context>
- <name>DownloadManager</name>
- <message>
- <location filename="src/downloadmanager.cpp" line="55"/>
- <source>This is just the demo version of %1.</source>
- <translation>Dit is slechts de demoversie van %1.</translation>
- </message>
- <message>
- <location filename="src/downloadmanager.cpp" line="57"/>
- <source>It can only download videos shorter than %1 minutes so you can test the download functionality.</source>
- <translation>Het kan alleen maar videos downloaden korter dan %1 minuten zodat u de downloadfunctionaliteit kunt testen.</translation>
- </message>
- <message>
- <location filename="src/downloadmanager.cpp" line="63"/>
- <source>Continue</source>
- <translation>Ga door</translation>
- </message>
- <message>
- <location filename="src/downloadmanager.cpp" line="64"/>
- <source>Get the full version</source>
- <translation>Verkrijg de volledige versie</translation>
- </message>
- <message>
- <location filename="src/downloadmanager.cpp" line="150"/>
- <source>%1 downloaded in %2</source>
- <translation>%1 gedownload in %2</translation>
- </message>
- <message>
- <location filename="src/downloadmanager.cpp" line="153"/>
- <source>Download finished</source>
- <translation>Download greed</translation>
- </message>
- <message numerus="yes">
- <location filename="src/downloadmanager.cpp" line="159"/>
- <source>%n Download(s)</source>
- <translation><numerusform>%n Download</numerusform><numerusform>%n Downloads</numerusform></translation>
- </message>
-</context>
-<context>
- <name>DownloadSettings</name>
- <message>
- <location filename="src/downloadsettings.cpp" line="15"/>
- <source>Change location...</source>
- <translation>Verander locatie...</translation>
- </message>
- <message>
- <location filename="src/downloadsettings.cpp" line="47"/>
- <source>Choose the download location</source>
- <translation>Kies de downloadlocatie</translation>
- </message>
- <message>
- <location filename="src/downloadsettings.cpp" line="59"/>
- <source>Download location changed.</source>
- <translation>Downloadlocatie aangepast.</translation>
- </message>
- <message>
- <location filename="src/downloadsettings.cpp" line="61"/>
- <source>Current downloads will still go in the previous location.</source>
- <translation>Huidige downloads zullen in de vorige locatie worden geplaatst.</translation>
- </message>
- <message>
- <location filename="src/downloadsettings.cpp" line="72"/>
- <source>Downloading to: %1</source>
- <translation>Downloaden naar:%1</translation>
- </message>
-</context>
-<context>
- <name>DownloadView</name>
- <message>
- <location filename="src/downloadview.cpp" line="18"/>
- <location filename="src/downloadview.h" line="22"/>
- <source>Downloads</source>
- <translation>Downloads</translation>
- </message>
-</context>
-<context>
- <name>DownloadWidget</name>
- <message>
- <location filename="local/src/updatedialog.cpp" line="60"/>
- <source>Downloading update...</source>
- <translation type="unfinished"/>
- </message>
-</context>
-<context>
- <name>GlobalShortcuts</name>
- <message>
- <location filename="src/globalshortcuts.cpp" line="16"/>
- <source>Play</source>
- <translation>Speel af</translation>
- </message>
- <message>
- <location filename="src/globalshortcuts.cpp" line="17"/>
- <source>Pause</source>
- <translation>Pauzeer</translation>
- </message>
- <message>
- <location filename="src/globalshortcuts.cpp" line="18"/>
- <source>Play/Pause</source>
- <translation>Speel af/Pauzeer</translation>
- </message>
- <message>
- <location filename="src/globalshortcuts.cpp" line="19"/>
- <source>Stop</source>
- <translation>Stop</translation>
- </message>
- <message>
- <location filename="src/globalshortcuts.cpp" line="20"/>
- <source>Stop playing after current track</source>
- <translation>Stop afspelen na huidig nummer</translation>
- </message>
- <message>
- <location filename="src/globalshortcuts.cpp" line="21"/>
- <source>Next track</source>
- <translation>Volgend nummer</translation>
- </message>
- <message>
- <location filename="src/globalshortcuts.cpp" line="22"/>
- <source>Previous track</source>
- <translation>Vorig nummer</translation>
- </message>
- <message>
- <location filename="src/globalshortcuts.cpp" line="23"/>
- <source>Increase volume</source>
- <translation>Verhoog volume</translation>
- </message>
- <message>
- <location filename="src/globalshortcuts.cpp" line="24"/>
- <source>Decrease volume</source>
- <translation>Verlaag volume</translation>
- </message>
- <message>
- <location filename="src/globalshortcuts.cpp" line="25"/>
- <source>Mute</source>
- <translation>Demp</translation>
- </message>
- <message>
- <location filename="src/globalshortcuts.cpp" line="26"/>
- <source>Seek forward</source>
- <translation>Spoel naar voren</translation>
- </message>
- <message>
- <location filename="src/globalshortcuts.cpp" line="27"/>
- <source>Seek backward</source>
- <translation>Spoel naar achteren</translation>
- </message>
-</context>
-<context>
- <name>HomeView</name>
- <message>
- <location filename="src/homeview.cpp" line="33"/>
- <source>Search</source>
- <translation>Zoek</translation>
- </message>
- <message>
- <location filename="src/homeview.cpp" line="35"/>
- <source>Find videos and channels by keyword</source>
- <translation type="unfinished"/>
- </message>
- <message>
- <location filename="src/homeview.cpp" line="40"/>
- <source>Browse</source>
- <translation type="unfinished"/>
- </message>
- <message>
- <location filename="src/homeview.cpp" line="42"/>
- <source>Browse videos by category</source>
- <translation type="unfinished"/>
- </message>
- <message>
- <location filename="src/homeview.h" line="22"/>
- <source>Make yourself comfortable</source>
- <translation type="unfinished"/>
- </message>
-</context>
-<context>
- <name>LoadingWidget</name>
- <message>
- <location filename="src/loadingwidget.cpp" line="90"/>
- <source>Error</source>
- <translation>Fout</translation>
- </message>
-</context>
-<context>
- <name>MainWindow</name>
- <message>
- <location filename="src/mainwindow.cpp" line="213"/>
- <source>&Stop</source>
- <translation>&Stop</translation>
- </message>
- <message>
- <location filename="src/mainwindow.cpp" line="214"/>
- <source>Stop playback and go back to the search view</source>
- <translation>Stop het afspelen en keer terug naar het zoekvenster</translation>
- </message>
- <message>
- <location filename="src/mainwindow.cpp" line="232"/>
- <source>S&kip</source>
- <translation>&Sla over</translation>
- </message>
- <message>
- <location filename="src/mainwindow.cpp" line="233"/>
- <source>Skip to the next video</source>
- <translation>Spoel door naar de volgende vieo</translation>
- </message>
- <message>
- <location filename="src/mainwindow.cpp" line="239"/>
- <location filename="src/mainwindow.cpp" line="989"/>
- <source>&Pause</source>
- <translation>&Pauzeer</translation>
- </message>
- <message>
- <location filename="src/mainwindow.cpp" line="240"/>
- <location filename="src/mainwindow.cpp" line="990"/>
- <source>Pause playback</source>
- <translation>Pauzeer afspelen</translation>
- </message>
- <message>
- <location filename="src/mainwindow.cpp" line="246"/>
- <source>&Full Screen</source>
- <translation>&Volledig scherm</translation>
- </message>
- <message>
- <location filename="src/mainwindow.cpp" line="247"/>
- <source>Go full screen</source>
- <translation>Schakel over naar Volledig scherm</translation>
- </message>
- <message>
- <location filename="src/mainwindow.cpp" line="263"/>
- <source>Hide the playlist and the toolbar</source>
- <translation>Verberg de afspeellijst en de werkbalk</translation>
- </message>
- <message>
- <location filename="src/mainwindow.cpp" line="276"/>
- <source>Go to the YouTube video page and pause playback</source>
- <translation>Ga naar de YouTube-videopagina en pauzeer het afspelen</translation>
- </message>
- <message>
- <location filename="src/mainwindow.cpp" line="283"/>
- <source>Copy the current video YouTube link to the clipboard</source>
- <translation>Kopieer de huidige YouTube-link naar het klembord</translation>
- </message>
- <message>
- <location filename="src/mainwindow.cpp" line="290"/>
- <source>Copy the current video stream URL to the clipboard</source>
- <translation>Kopieer de huidige videostream-URL naar het klembord</translation>
- </message>
- <message>
- <location filename="src/mainwindow.cpp" line="297"/>
- <source>Find other video parts hopefully in the right order</source>
- <translation>Vind gerelateerde videofragmenten, hopelijk in de juiste volgorde</translation>
- </message>
- <message>
- <location filename="src/mainwindow.cpp" line="303"/>
- <source>&Remove</source>
- <translation>&Verwijder</translation>
- </message>
- <message>
- <location filename="src/mainwindow.cpp" line="304"/>
- <source>Remove the selected videos from the playlist</source>
- <translation>Verwijder de geselecteerde video's uit de afspeellijst</translation>
- </message>
- <message>
- <location filename="src/mainwindow.cpp" line="310"/>
- <source>Move &Up</source>
- <translation>Verplaats &omhoog</translation>
- </message>
- <message>
- <location filename="src/mainwindow.cpp" line="311"/>
- <source>Move up the selected videos in the playlist</source>
- <translation>Verplaats de geselecteerde video's in de afspeellijst naar boven</translation>
- </message>
- <message>
- <location filename="src/mainwindow.cpp" line="317"/>
- <source>Move &Down</source>
- <translation>Verplaats &omlaag</translation>
- </message>
- <message>
- <location filename="src/mainwindow.cpp" line="318"/>
- <source>Move down the selected videos in the playlist</source>
- <translation>Verplaats de geselecteerde video's in de afspeelijst naar beneden</translation>
- </message>
- <message>
- <location filename="src/mainwindow.cpp" line="329"/>
- <source>Clear the search history. Cannot be undone.</source>
- <translation>Wis de zoek geschiedenis. Dit kan niet ongedaan worden gemaakt.</translation>
- </message>
- <message>
- <location filename="src/mainwindow.cpp" line="334"/>
- <source>&Quit</source>
- <translation>&Sluit af</translation>
- </message>
- <message>
- <location filename="src/mainwindow.cpp" line="337"/>
- <source>Bye</source>
- <translation>Tot ziens</translation>
- </message>
- <message>
- <location filename="src/mainwindow.cpp" line="341"/>
- <source>&Website</source>
- <translation>&Website</translation>
- </message>
- <message>
- <location filename="src/mainwindow.cpp" line="343"/>
- <source>%1 on the Web</source>
- <translation>%1 op het internet</translation>
- </message>
- <message>
- <location filename="src/mainwindow.cpp" line="349"/>
- <source>Please support the continued development of %1</source>
- <translation>Ondersteun alstublieft de ontwikkeling van %1</translation>
- </message>
- <message>
- <location filename="src/mainwindow.cpp" line="354"/>
- <source>&About</source>
- <translation>&Over</translation>
- </message>
- <message>
- <location filename="src/mainwindow.cpp" line="356"/>
- <source>Info about %1</source>
- <translation>Informatie over %1</translation>
- </message>
- <message>
- <location filename="src/mainwindow.cpp" line="364"/>
- <source>Search</source>
- <translation>Zoek</translation>
- </message>
- <message>
- <location filename="src/mainwindow.cpp" line="383"/>
- <source>Mute volume</source>
- <translation>Demp volume</translation>
- </message>
- <message>
- <location filename="src/mainwindow.cpp" line="412"/>
- <location filename="src/mainwindow.cpp" line="1365"/>
- <source>&Downloads</source>
- <translation>&Downloads</translation>
- </message>
- <message>
- <location filename="src/mainwindow.cpp" line="413"/>
- <source>Show details about video downloads</source>
- <translation>Geef details weer van videodownloads</translation>
- </message>
- <message>
- <location filename="src/mainwindow.cpp" line="421"/>
- <source>&Download</source>
- <translation>&Download</translation>
- </message>
- <message>
- <location filename="src/mainwindow.cpp" line="422"/>
- <source>Download the current video</source>
- <translation>Download de huidige video</translation>
- </message>
- <message>
- <location filename="src/mainwindow.cpp" line="441"/>
- <source>Share the current video using %1</source>
- <translation>Deel de huidige video door middel van %1</translation>
- </message>
- <message>
- <location filename="src/mainwindow.cpp" line="458"/>
- <source>&Email</source>
- <translation>&E-mail</translation>
- </message>
- <message>
- <location filename="src/mainwindow.cpp" line="459"/>
- <source>Email</source>
- <translation>E-mail</translation>
- </message>
- <message>
- <location filename="src/mainwindow.cpp" line="463"/>
- <source>&Close</source>
- <translation>&Sluit</translation>
- </message>
- <message>
- <location filename="src/mainwindow.cpp" line="473"/>
- <source>&Float on Top</source>
- <translation>&Zweef erboven</translation>
- </message>
- <message>
- <location filename="src/mainwindow.cpp" line="478"/>
- <source>&Stop After This Video</source>
- <translation>&Stop na deze video</translation>
- </message>
- <message>
- <location filename="src/mainwindow.cpp" line="485"/>
- <source>&Report an Issue...</source>
- <translation>&Rapporteer een Probleem...</translation>
- </message>
- <message>
- <location filename="src/mainwindow.cpp" line="489"/>
- <source>&Refine Search...</source>
- <translation>&Verfijn Zoekopdracht...</translation>
- </message>
- <message>
- <location filename="src/mainwindow.cpp" line="501"/>
- <source>More...</source>
- <translation type="unfinished"/>
- </message>
- <message>
- <location filename="src/mainwindow.cpp" line="504"/>
- <source>&Related Videos</source>
- <translation type="unfinished"/>
- </message>
- <message>
- <location filename="src/mainwindow.cpp" line="506"/>
- <source>Watch videos related to the current one</source>
- <translation type="unfinished"/>
- </message>
- <message>
- <location filename="src/mainwindow.cpp" line="544"/>
- <source>&Application</source>
- <translation>&Programma</translation>
- </message>
- <message>
- <location filename="src/mainwindow.cpp" line="515"/>
- <source>Buy %1...</source>
- <translation>Koop %1...</translation>
- </message>
- <message>
- <location filename="src/mainwindow.cpp" line="558"/>
- <source>&Playback</source>
- <translation>&Afspeelopties</translation>
- </message>
- <message>
- <location filename="src/mainwindow.cpp" line="572"/>
- <source>&Playlist</source>
- <translation>&Afspeellijst</translation>
- </message>
- <message>
- <location filename="src/mainwindow.cpp" line="581"/>
- <source>&Video</source>
- <translation>&Video</translation>
- </message>
- <message>
- <location filename="src/mainwindow.cpp" line="594"/>
- <source>&View</source>
- <translation>&Weergave</translation>
- </message>
- <message>
- <location filename="src/mainwindow.cpp" line="601"/>
- <source>&Share</source>
- <translation>&Deel</translation>
- </message>
- <message>
- <location filename="src/mainwindow.cpp" line="615"/>
- <source>&Help</source>
- <translation>&Help</translation>
- </message>
- <message>
- <location filename="src/mainwindow.cpp" line="690"/>
- <source>Press %1 to raise the volume, %2 to lower it</source>
- <translation>Druk op %1 om het volume te verhogen, op %2 om het te verlagen</translation>
- </message>
- <message>
- <location filename="src/mainwindow.cpp" line="889"/>
- <location filename="src/mainwindow.cpp" line="895"/>
- <source>Opening %1</source>
- <translation>Bezig met openen van %1</translation>
- </message>
- <message>
- <location filename="src/mainwindow.cpp" line="936"/>
- <source>Do you want to exit %1 with a download in progress?</source>
- <translation>Wilt u %1 afsluiten terwijl er een download bezig is?</translation>
- </message>
- <message>
- <location filename="src/mainwindow.cpp" line="937"/>
- <source>If you close %1 now, this download will be cancelled.</source>
- <translation>Als u nu %1 afsluit, zal de download worden beëindigd.</translation>
- </message>
- <message>
- <location filename="src/mainwindow.cpp" line="942"/>
- <source>Close and cancel download</source>
- <translation>Sluit en annuleer het downloaden</translation>
- </message>
- <message>
- <location filename="src/mainwindow.cpp" line="943"/>
- <source>Wait for download to finish</source>
- <translation>Wacht tot het downloaden is voltooid</translation>
- </message>
- <message>
- <location filename="src/mainwindow.cpp" line="1102"/>
- <source>Leave &Full Screen</source>
- <translation>Verlaat &volledig scherm</translation>
- </message>
- <message>
- <location filename="src/mainwindow.cpp" line="1475"/>
- <source>%1 version %2 is now available.</source>
- <translation>%1 versie %2 nu beschikbaar.</translation>
- </message>
- <message>
- <location filename="src/mainwindow.cpp" line="1479"/>
- <source>Remind me later</source>
- <translation>Herinner mij later</translation>
- </message>
- <message>
- <location filename="src/mainwindow.cpp" line="1480"/>
- <source>Update</source>
- <translation>Werk bij</translation>
- </message>
- <message>
- <location filename="src/mainwindow.cpp" line="982"/>
- <source>Error: %1</source>
- <translation>Fout: %1</translation>
- </message>
- <message>
- <location filename="src/mainwindow.cpp" line="222"/>
- <source>P&revious</source>
- <translation>V&orige</translation>
- </message>
- <message>
- <location filename="src/mainwindow.cpp" line="223"/>
- <source>Go back to the previous track</source>
- <translation>Ga terug naar het vorige nummer</translation>
- </message>
- <message>
- <location filename="src/mainwindow.cpp" line="262"/>
- <source>&Compact Mode</source>
- <translation>&Compacte modus</translation>
- </message>
- <message>
- <location filename="src/mainwindow.cpp" line="275"/>
- <source>Open the &YouTube Page</source>
- <translation>Open de &Youtube-pagina</translation>
- </message>
- <message>
- <location filename="src/mainwindow.cpp" line="282"/>
- <source>Copy the YouTube &Link</source>
- <translation>Kopieer de YouTube-&link</translation>
- </message>
- <message>
- <location filename="src/mainwindow.cpp" line="289"/>
- <source>Copy the Video Stream &URL</source>
- <translation>Kopieer de videostream-&URL</translation>
- </message>
- <message>
- <location filename="src/mainwindow.cpp" line="296"/>
- <source>Find Video &Parts</source>
- <translation>Vind video&fragmenten</translation>
- </message>
- <message>
- <location filename="src/mainwindow.cpp" line="324"/>
- <source>&Clear Recent Searches</source>
- <translation>&Wis recente zoekopdrachten</translation>
- </message>
- <message>
- <location filename="src/mainwindow.cpp" line="348"/>
- <source>Make a &Donation</source>
- <translation>Geef een &donatie</translation>
- </message>
- <message>
- <location filename="src/mainwindow.cpp" line="405"/>
- <source>&Manually Start Playing</source>
- <translation>&Speel handmatig af</translation>
- </message>
- <message>
- <location filename="src/mainwindow.cpp" line="406"/>
- <source>Manually start playing videos</source>
- <translation>Speel handmatig video's af</translation>
- </message>
- <message>
- <location filename="src/mainwindow.cpp" line="728"/>
- <source>Choose your content location</source>
- <translation type="unfinished"/>
- </message>
- <message>
- <location filename="src/mainwindow.cpp" line="1002"/>
- <source>&Play</source>
- <translation>&Speel af</translation>
- </message>
- <message>
- <location filename="src/mainwindow.cpp" line="1003"/>
- <source>Resume playback</source>
- <translation>Hervat afspelen</translation>
- </message>
- <message>
- <location filename="src/mainwindow.cpp" line="1236"/>
- <source>Remaining time: %1</source>
- <translation>Resterende tijd: %1</translation>
- </message>
- <message>
- <location filename="src/mainwindow.cpp" line="1294"/>
- <source>Volume at %1%</source>
- <translation>Volume op %1%</translation>
- </message>
- <message>
- <location filename="src/mainwindow.cpp" line="1300"/>
- <source>Volume is muted</source>
- <translation>Volume is gedempt</translation>
- </message>
- <message>
- <location filename="src/mainwindow.cpp" line="1303"/>
- <source>Volume is unmuted</source>
- <translation>Volume is niet gedempt</translation>
- </message>
- <message>
- <location filename="src/mainwindow.cpp" line="1310"/>
- <source>Maximum video definition set to %1</source>
- <translation>Maximale videokwaliteit staat op %1</translation>
- </message>
- <message>
- <location filename="src/mainwindow.cpp" line="1351"/>
- <source>Your privacy is now safe</source>
- <translation>Uw privacy is nu gewaarborgd</translation>
- </message>
- <message>
- <location filename="src/mainwindow.cpp" line="1366"/>
- <source>Downloads complete</source>
- <translation>Downloads afgerond</translation>
- </message>
-</context>
-<context>
- <name>MediaView</name>
- <message>
- <location filename="src/mediaview.cpp" line="553"/>
- <source>You can now paste the YouTube link into another application</source>
- <translation>U kunt nu uw YouTube-link kopieren naar een ander programma</translation>
- </message>
- <message>
- <location filename="src/mediaview.cpp" line="561"/>
- <source>You can now paste the video stream URL into another application</source>
- <translation>U kunt nu uw videostream-URL kopieren naar een ander programma</translation>
- </message>
- <message>
- <location filename="src/mediaview.cpp" line="562"/>
- <source>The link will be valid only for a limited time.</source>
- <translation>De link zal maar een beperkte tijd geldig zijn.</translation>
- </message>
- <message>
- <location filename="src/mediaview.cpp" line="636"/>
- <source>This is just the demo version of %1.</source>
- <translation>Dit is slechts de demoversie van %1.</translation>
- </message>
- <message>
- <location filename="src/mediaview.cpp" line="637"/>
- <source>It allows you to test the application and see if it works for you.</source>
- <translation>Het biedt de mogelijkheid de applicatie te testen en te beoordelen.</translation>
- </message>
- <message>
- <location filename="src/mediaview.cpp" line="667"/>
- <source>Continue</source>
- <translation>Ga door</translation>
- </message>
- <message>
- <location filename="src/mediaview.cpp" line="756"/>
- <source>of</source>
- <comment>Used in video parts, as in '2 of 3'</comment>
- <translation>van</translation>
- </message>
- <message>
- <location filename="src/mediaview.cpp" line="768"/>
- <source>part</source>
- <comment>This is for video parts, as in 'Cool video - part 1'</comment>
- <translation>fragment</translation>
- </message>
- <message>
- <location filename="src/mediaview.cpp" line="770"/>
- <source>episode</source>
- <comment>This is for video parts, as in 'Cool series - episode 1'</comment>
- <translation>aflevering</translation>
- </message>
- <message>
- <location filename="src/mediaview.cpp" line="847"/>
- <source>Sent from %1</source>
- <translation>Verstuurd vanaf %1</translation>
- </message>
- <message>
- <location filename="src/mediaview.cpp" line="644"/>
- <source>Get the full version</source>
- <translation>Verkrijg de volledige versie</translation>
- </message>
- <message>
- <location filename="src/mediaview.cpp" line="681"/>
- <source>Downloading %1</source>
- <translation>Bezig met downloaden van %1</translation>
- </message>
-</context>
-<context>
- <name>MessageWidget</name>
- <message>
- <location filename="local/src/updatedialog.cpp" line="21"/>
- <source>A new version of %1 is available!</source>
- <translation type="unfinished"/>
- </message>
- <message>
- <location filename="local/src/updatedialog.cpp" line="28"/>
- <source>%1 %2 is now available. You have %3.</source>
- <translation type="unfinished"/>
- </message>
- <message>
- <location filename="local/src/updatedialog.cpp" line="33"/>
- <source>Would you like to download it now?</source>
- <translation type="unfinished"/>
- </message>
- <message>
- <location filename="local/src/updatedialog.cpp" line="39"/>
- <source>Skip This Version</source>
- <translation type="unfinished"/>
- </message>
- <message>
- <location filename="local/src/updatedialog.cpp" line="43"/>
- <source>Remind Me Later</source>
- <translation type="unfinished"/>
- </message>
- <message>
- <location filename="local/src/updatedialog.cpp" line="47"/>
- <source>Install Update</source>
- <translation type="unfinished"/>
- </message>
-</context>
-<context>
- <name>PasteLineEdit</name>
- <message>
- <location filename="local/src/pastelineedit.cpp" line="6"/>
- <source>Paste</source>
- <translation type="unfinished"/>
- </message>
-</context>
-<context>
- <name>PlaylistItemDelegate</name>
- <message>
- <location filename="src/playlistitemdelegate.cpp" line="159"/>
- <source>%1 views</source>
- <translation>%1 bekeken</translation>
- </message>
- <message>
- <location filename="src/playlistitemdelegate.cpp" line="285"/>
- <source>%1 of %2 (%3) — %4</source>
- <translation type="unfinished"/>
- </message>
- <message>
- <location filename="src/playlistitemdelegate.cpp" line="292"/>
- <source>Preparing</source>
- <translation type="unfinished"/>
- </message>
- <message>
- <location filename="src/playlistitemdelegate.cpp" line="294"/>
- <source>Failed</source>
- <translation type="unfinished"/>
- </message>
- <message>
- <location filename="src/playlistitemdelegate.cpp" line="296"/>
- <source>Completed</source>
- <translation type="unfinished"/>
- </message>
- <message>
- <location filename="src/playlistitemdelegate.cpp" line="298"/>
- <source>Stopped</source>
- <translation type="unfinished"/>
- </message>
- <message>
- <location filename="src/playlistitemdelegate.cpp" line="334"/>
- <source>Stop downloading</source>
- <translation type="unfinished"/>
- </message>
- <message>
- <location filename="src/playlistitemdelegate.cpp" line="344"/>
- <source>Show in %1</source>
- <translation type="unfinished"/>
- </message>
- <message>
- <location filename="src/playlistitemdelegate.cpp" line="346"/>
- <source>Open parent folder</source>
- <translation type="unfinished"/>
- </message>
- <message>
- <location filename="src/playlistitemdelegate.cpp" line="355"/>
- <source>Restart downloading</source>
- <translation type="unfinished"/>
- </message>
-</context>
-<context>
- <name>PlaylistModel</name>
- <message>
- <location filename="src/playlistmodel.cpp" line="52"/>
- <source>Searching...</source>
- <translation>Bezig met zoeken...</translation>
- </message>
- <message>
- <location filename="src/playlistmodel.cpp" line="53"/>
- <source>Show %1 More</source>
- <translation type="unfinished"/>
- </message>
- <message>
- <location filename="src/playlistmodel.cpp" line="54"/>
- <source>No videos</source>
- <translation>Geen video's</translation>
- </message>
- <message>
- <location filename="src/playlistmodel.cpp" line="55"/>
- <source>No more videos</source>
- <translation type="unfinished"/>
- </message>
-</context>
-<context>
- <name>RefineSearchWidget</name>
- <message>
- <location filename="src/refinesearchwidget.cpp" line="31"/>
- <source>Sort by</source>
- <translation>Sorteer op</translation>
- </message>
- <message>
- <location filename="src/refinesearchwidget.cpp" line="35"/>
- <source>Relevance</source>
- <translation>Relevantie</translation>
- </message>
- <message>
- <location filename="src/refinesearchwidget.cpp" line="36"/>
- <location filename="src/refinesearchwidget.cpp" line="52"/>
- <source>Date</source>
- <translation>Datum</translation>
- </message>
- <message>
- <location filename="src/refinesearchwidget.cpp" line="37"/>
- <source>View Count</source>
- <translation>Weergaven</translation>
- </message>
- <message>
- <location filename="src/refinesearchwidget.cpp" line="38"/>
- <source>Rating</source>
- <translation>Waardering</translation>
- </message>
- <message>
- <location filename="src/refinesearchwidget.cpp" line="56"/>
- <source>Anytime</source>
- <translation>Elke Periode</translation>
- </message>
- <message>
- <location filename="src/refinesearchwidget.cpp" line="57"/>
- <source>Today</source>
- <translation>Vandaag</translation>
- </message>
- <message>
- <location filename="src/refinesearchwidget.cpp" line="58"/>
- <source>7 Days</source>
- <translation>7 Dagen</translation>
- </message>
- <message>
- <location filename="src/refinesearchwidget.cpp" line="59"/>
- <source>30 Days</source>
- <translation>30 Dagen</translation>
- </message>
- <message>
- <location filename="src/refinesearchwidget.cpp" line="73"/>
- <source>Duration</source>
- <translation>Duur</translation>
- </message>
- <message>
- <location filename="src/refinesearchwidget.cpp" line="77"/>
- <location filename="src/refinesearchwidget.cpp" line="104"/>
- <source>All</source>
- <translation>Alles</translation>
- </message>
- <message>
- <location filename="src/refinesearchwidget.cpp" line="78"/>
- <source>Short</source>
- <translation>Kort</translation>
- </message>
- <message>
- <location filename="src/refinesearchwidget.cpp" line="79"/>
- <source>Medium</source>
- <translation>Gemiddeld</translation>
- </message>
- <message>
- <location filename="src/refinesearchwidget.cpp" line="80"/>
- <source>Long</source>
- <translation>Lang</translation>
- </message>
- <message>
- <location filename="src/refinesearchwidget.cpp" line="83"/>
- <source>Less than 4 minutes</source>
- <translation>Minder dan 4 minuten</translation>
- </message>
- <message>
- <location filename="src/refinesearchwidget.cpp" line="84"/>
- <source>Between 4 and 20 minutes</source>
- <translation>Tussen 4 en 20 minuten</translation>
- </message>
- <message>
- <location filename="src/refinesearchwidget.cpp" line="85"/>
- <source>Longer than 20 minutes</source>
- <translation>Langer dan 20 minuten</translation>
- </message>
- <message>
- <location filename="src/refinesearchwidget.cpp" line="100"/>
- <source>Quality</source>
- <translation>Kwaliteit</translation>
- </message>
- <message>
- <location filename="src/refinesearchwidget.cpp" line="105"/>
- <source>High Definition</source>
- <translation>HD Resolutie </translation>
- </message>
- <message>
- <location filename="src/refinesearchwidget.cpp" line="108"/>
- <source>720p or higher</source>
- <translation>720p of hover</translation>
- </message>
- <message>
- <location filename="src/refinesearchwidget.cpp" line="122"/>
- <source>Done</source>
- <translation>Klaar</translation>
- </message>
-</context>
-<context>
- <name>RegionsView</name>
- <message>
- <location filename="src/regionsview.cpp" line="19"/>
- <source>Done</source>
- <translation type="unfinished"/>
- </message>
-</context>
-<context>
- <name>SearchLineEdit</name>
- <message>
- <location filename="src/searchlineedit.cpp" line="177"/>
- <source>Search</source>
- <translation>Zoek</translation>
- </message>
-</context>
-<context>
- <name>SearchView</name>
- <message>
- <location filename="src/searchview.cpp" line="71"/>
- <source>Welcome to <a href='%1'>%2</a>,</source>
- <translation>Welkom bij <a href='%1'>%2</a>,</translation>
- </message>
- <message>
- <location filename="src/searchview.cpp" line="50"/>
- <source>Get the full version</source>
- <translation>Verkrijg de volledige versie</translation>
- </message>
- <message>
- <location filename="src/searchview.cpp" line="85"/>
- <source>Enter</source>
- <extracomment>"Enter", as in "type". The whole phrase says: "Enter a keyword to start watching videos"</extracomment>
- <translation>Typ</translation>
- </message>
- <message>
- <location filename="src/searchview.cpp" line="90"/>
- <source>a keyword</source>
- <translation>een zoekwoord</translation>
- </message>
- <message>
- <location filename="src/searchview.cpp" line="91"/>
- <source>a channel</source>
- <translation>een kanaal</translation>
- </message>
- <message>
- <location filename="src/searchview.cpp" line="96"/>
- <source>to start watching videos.</source>
- <translation>om te beginnen met het bekijken van video's.</translation>
- </message>
- <message>
- <location filename="src/searchview.cpp" line="120"/>
- <source>Watch</source>
- <translation>Bekijk</translation>
- </message>
- <message>
- <location filename="src/searchview.cpp" line="138"/>
- <source>Recent keywords</source>
- <translation>Recente zoekwoorden</translation>
- </message>
- <message>
- <location filename="src/searchview.cpp" line="151"/>
- <source>Recent channels</source>
- <translation>Recente kanalen</translation>
- </message>
-</context>
-<context>
- <name>SidebarHeader</name>
- <message>
- <location filename="src/sidebarheader.cpp" line="16"/>
- <location filename="src/sidebarheader.cpp" line="23"/>
- <source>&Back</source>
- <translation>&Terug</translation>
- </message>
- <message>
- <location filename="src/sidebarheader.cpp" line="57"/>
- <source>Forward to %1</source>
- <translation type="unfinished"/>
- </message>
- <message>
- <location filename="src/sidebarheader.cpp" line="70"/>
- <source>Back to %1</source>
- <translation type="unfinished"/>
- </message>
-</context>
-<context>
- <name>SidebarWidget</name>
- <message>
- <location filename="src/sidebarwidget.cpp" line="52"/>
- <source>Refine Search</source>
- <translation>Verfijn Zoekopdracht</translation>
- </message>
- <message>
- <location filename="src/sidebarwidget.cpp" line="148"/>
- <source>Did you mean: %1</source>
- <translation>Bedoelde je: %1</translation>
- </message>
-</context>
-<context>
- <name>StandardFeedsView</name>
- <message>
- <location filename="src/standardfeedsview.cpp" line="85"/>
- <source>Most Popular</source>
- <translation type="unfinished"/>
- </message>
- <message>
- <location filename="src/standardfeedsview.cpp" line="86"/>
- <source>Featured</source>
- <translation type="unfinished"/>
- </message>
- <message>
- <location filename="src/standardfeedsview.cpp" line="87"/>
- <source>Most Shared</source>
- <translation type="unfinished"/>
- </message>
- <message>
- <location filename="src/standardfeedsview.cpp" line="88"/>
- <source>Most Discussed</source>
- <translation type="unfinished"/>
- </message>
- <message>
- <location filename="src/standardfeedsview.cpp" line="89"/>
- <source>Top Rated</source>
- <translation type="unfinished"/>
- </message>
-</context>
-<context>
- <name>Video</name>
- <message>
- <location filename="src/video.cpp" line="213"/>
- <source>Cannot get video stream for %1</source>
- <translation>Kan de videostream niet verkrijgen voor %1</translation>
- </message>
- <message>
- <location filename="src/video.cpp" line="231"/>
- <source>Network error: %1 for %2</source>
- <translation>Netwerkfout: %1 voor %2</translation>
- </message>
-</context>
-<context>
- <name>YTRegions</name>
- <message>
- <location filename="src/ytregions.cpp" line="8"/>
- <source>Algeria</source>
- <translation type="unfinished"/>
- </message>
- <message>
- <location filename="src/ytregions.cpp" line="9"/>
- <source>Argentina</source>
- <translation type="unfinished"/>
- </message>
- <message>
- <location filename="src/ytregions.cpp" line="10"/>
- <source>Australia</source>
- <translation type="unfinished"/>
- </message>
- <message>
- <location filename="src/ytregions.cpp" line="11"/>
- <source>Belgium</source>
- <translation type="unfinished"/>
- </message>
- <message>
- <location filename="src/ytregions.cpp" line="12"/>
- <source>Brazil</source>
- <translation type="unfinished"/>
- </message>
- <message>
- <location filename="src/ytregions.cpp" line="13"/>
- <source>Canada</source>
- <translation type="unfinished"/>
- </message>
- <message>
- <location filename="src/ytregions.cpp" line="14"/>
- <source>Chile</source>
- <translation type="unfinished"/>
- </message>
- <message>
- <location filename="src/ytregions.cpp" line="15"/>
- <source>Colombia</source>
- <translation type="unfinished"/>
- </message>
- <message>
- <location filename="src/ytregions.cpp" line="16"/>
- <source>Czech Republic</source>
- <translation type="unfinished"/>
- </message>
- <message>
- <location filename="src/ytregions.cpp" line="17"/>
- <source>Egypt</source>
- <translation type="unfinished"/>
- </message>
- <message>
- <location filename="src/ytregions.cpp" line="18"/>
- <source>France</source>
- <translation type="unfinished"/>
- </message>
- <message>
- <location filename="src/ytregions.cpp" line="19"/>
- <source>Germany</source>
- <translation type="unfinished"/>
- </message>
- <message>
- <location filename="src/ytregions.cpp" line="20"/>
- <source>Ghana</source>
- <translation type="unfinished"/>
- </message>
- <message>
- <location filename="src/ytregions.cpp" line="21"/>
- <source>Greece</source>
- <translation type="unfinished"/>
- </message>
- <message>
- <location filename="src/ytregions.cpp" line="22"/>
- <source>Hong Kong</source>
- <translation type="unfinished"/>
- </message>
- <message>
- <location filename="src/ytregions.cpp" line="23"/>
- <source>Hungary</source>
- <translation type="unfinished"/>
- </message>
- <message>
- <location filename="src/ytregions.cpp" line="24"/>
- <source>India</source>
- <translation type="unfinished"/>
- </message>
- <message>
- <location filename="src/ytregions.cpp" line="25"/>
- <source>Indonesia</source>
- <translation type="unfinished"/>
- </message>
- <message>
- <location filename="src/ytregions.cpp" line="26"/>
- <source>Ireland</source>
- <translation type="unfinished"/>
- </message>
- <message>
- <location filename="src/ytregions.cpp" line="27"/>
- <source>Israel</source>
- <translation type="unfinished"/>
- </message>
- <message>
- <location filename="src/ytregions.cpp" line="28"/>
- <source>Italy</source>
- <translation type="unfinished"/>
- </message>
- <message>
- <location filename="src/ytregions.cpp" line="29"/>
- <source>Japan</source>
- <translation type="unfinished"/>
- </message>
- <message>
- <location filename="src/ytregions.cpp" line="30"/>
- <source>Jordan</source>
- <translation type="unfinished"/>
- </message>
- <message>
- <location filename="src/ytregions.cpp" line="31"/>
- <source>Kenya</source>
- <translation type="unfinished"/>
- </message>
- <message>
- <location filename="src/ytregions.cpp" line="32"/>
- <source>Malaysia</source>
- <translation type="unfinished"/>
- </message>
- <message>
- <location filename="src/ytregions.cpp" line="33"/>
- <source>Mexico</source>
- <translation type="unfinished"/>
- </message>
- <message>
- <location filename="src/ytregions.cpp" line="34"/>
- <source>Morocco</source>
- <translation type="unfinished"/>
- </message>
- <message>
- <location filename="src/ytregions.cpp" line="35"/>
- <source>Netherlands</source>
- <translation type="unfinished"/>
- </message>
- <message>
- <location filename="src/ytregions.cpp" line="36"/>
- <source>New Zealand</source>
- <translation type="unfinished"/>
- </message>
- <message>
- <location filename="src/ytregions.cpp" line="37"/>
- <source>Nigeria</source>
- <translation type="unfinished"/>
- </message>
- <message>
- <location filename="src/ytregions.cpp" line="38"/>
- <source>Peru</source>
- <translation type="unfinished"/>
- </message>
- <message>
- <location filename="src/ytregions.cpp" line="39"/>
- <source>Philippines</source>
- <translation type="unfinished"/>
- </message>
- <message>
- <location filename="src/ytregions.cpp" line="40"/>
- <source>Poland</source>
- <translation type="unfinished"/>
- </message>
- <message>
- <location filename="src/ytregions.cpp" line="41"/>
- <source>Russia</source>
- <translation type="unfinished"/>
- </message>
- <message>
- <location filename="src/ytregions.cpp" line="42"/>
- <source>Saudi Arabia</source>
- <translation type="unfinished"/>
- </message>
- <message>
- <location filename="src/ytregions.cpp" line="43"/>
- <source>Singapore</source>
- <translation type="unfinished"/>
- </message>
- <message>
- <location filename="src/ytregions.cpp" line="44"/>
- <source>South Africa</source>
- <translation type="unfinished"/>
- </message>
- <message>
- <location filename="src/ytregions.cpp" line="45"/>
- <source>South Korea</source>
- <translation type="unfinished"/>
- </message>
- <message>
- <location filename="src/ytregions.cpp" line="46"/>
- <source>Spain</source>
- <translation type="unfinished"/>
- </message>
- <message>
- <location filename="src/ytregions.cpp" line="47"/>
- <source>Sweden</source>
- <translation type="unfinished"/>
- </message>
- <message>
- <location filename="src/ytregions.cpp" line="48"/>
- <source>Taiwan</source>
- <translation type="unfinished"/>
- </message>
- <message>
- <location filename="src/ytregions.cpp" line="49"/>
- <source>Tunisia</source>
- <translation type="unfinished"/>
- </message>
- <message>
- <location filename="src/ytregions.cpp" line="50"/>
- <source>Turkey</source>
- <translation type="unfinished"/>
- </message>
- <message>
- <location filename="src/ytregions.cpp" line="51"/>
- <source>Uganda</source>
- <translation type="unfinished"/>
- </message>
- <message>
- <location filename="src/ytregions.cpp" line="52"/>
- <source>United Arab Emirates</source>
- <translation type="unfinished"/>
- </message>
- <message>
- <location filename="src/ytregions.cpp" line="53"/>
- <source>United Kingdom</source>
- <translation type="unfinished"/>
- </message>
- <message>
- <location filename="src/ytregions.cpp" line="54"/>
- <source>Yemen</source>
- <translation type="unfinished"/>
- </message>
- <message>
- <location filename="src/ytregions.cpp" line="128"/>
- <source>Worldwide</source>
- <translation type="unfinished"/>
- </message>
-</context>
-</TS>
\ No newline at end of file
<message>
<location filename="src/aboutview.cpp" line="38"/>
<source>Licensed to: %1</source>
- <translation type="unfinished"/>
+ <translation>Licencjonowane dla: %1</translation>
</message>
<message>
<location filename="src/aboutview.cpp" line="42"/>
<message>
<location filename="src/aboutview.cpp" line="47"/>
<source>You may want to try my other apps as well:</source>
- <translation type="unfinished"/>
+ <translation>Być może chciałbyś wypróbować moje inne aplikacje:</translation>
</message>
<message>
<location filename="src/aboutview.cpp" line="50"/>
<source>%1, a YouTube music player</source>
- <translation type="unfinished"/>
+ <translation>%1, odtwarzacz muzyki YouTube</translation>
</message>
<message>
<location filename="src/aboutview.cpp" line="54"/>
<source>%1, a music player</source>
- <translation type="unfinished"/>
+ <translation>%1, odtwarzacz muzyki</translation>
</message>
<message>
<location filename="src/aboutview.cpp" line="60"/>
<message>
<location filename="src/aboutview.h" line="17"/>
<source>About</source>
- <translation>O programie Minitube</translation>
+ <translation>O programie</translation>
</message>
<message>
<location filename="src/aboutview.h" line="19"/>
<message>
<location filename="local/src/activationdialog.cpp" line="17"/>
<source>Enter your License Details</source>
- <translation type="unfinished"/>
+ <translation>Wpisz szczegóły Twojej licencji</translation>
</message>
<message>
<location filename="local/src/activationdialog.cpp" line="29"/>
<message>
<location filename="local/src/activationdialog.cpp" line="35"/>
<source>&Code:</source>
- <translation type="unfinished"/>
+ <translation>&Kod:</translation>
</message>
</context>
<context>
<translation>Kup Licencję</translation>
</message>
</context>
+<context>
+ <name>ChannelAggregator</name>
+ <message>
+ <location filename="src/channelaggregator.cpp" line="110"/>
+ <source>By %1</source>
+ <translation type="unfinished"/>
+ </message>
+ <message numerus="yes">
+ <location filename="src/channelaggregator.cpp" line="112"/>
+ <source>You have %n new video(s)</source>
+ <translation type="unfinished"><numerusform></numerusform><numerusform></numerusform><numerusform></numerusform></translation>
+ </message>
+</context>
+<context>
+ <name>ChannelItemDelegate</name>
+ <message>
+ <location filename="src/channelitemdelegate.cpp" line="46"/>
+ <source>All Videos</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="src/channelitemdelegate.cpp" line="63"/>
+ <source>Unwatched Videos</source>
+ <translation type="unfinished"/>
+ </message>
+</context>
+<context>
+ <name>ChannelView</name>
+ <message>
+ <location filename="src/channelview.cpp" line="75"/>
+ <source>Mark all as watched</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="src/channelview.cpp" line="83"/>
+ <source>Show Updated</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="src/channelview.cpp" line="95"/>
+ <source>Name</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="src/channelview.cpp" line="102"/>
+ <source>Last Updated</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="src/channelview.cpp" line="109"/>
+ <source>Last Added</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="src/channelview.cpp" line="116"/>
+ <source>Last Watched</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="src/channelview.cpp" line="123"/>
+ <source>Most Watched</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="src/channelview.cpp" line="131"/>
+ <source>Sort by</source>
+ <translation>Sortuj według</translation>
+ </message>
+ <message>
+ <location filename="src/channelview.cpp" line="190"/>
+ <source>All Videos</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="src/channelview.cpp" line="194"/>
+ <source>Unwatched Videos</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="src/channelview.cpp" line="206"/>
+ <source>There are no updated subscriptions at this time.</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="src/channelview.cpp" line="208"/>
+ <source>You have no subscriptions. Use the star symbol to subscribe to channels.</source>
+ <translation type="unfinished"/>
+ </message>
+</context>
<context>
<name>ClearButton</name>
<message>
<message>
<location filename="src/downloadmanager.cpp" line="150"/>
<source>%1 downloaded in %2</source>
- <translation type="unfinished"/>
+ <translation>%1 pobrane w %2</translation>
</message>
<message>
<location filename="src/downloadmanager.cpp" line="153"/>
<context>
<name>HomeView</name>
<message>
- <location filename="src/homeview.cpp" line="33"/>
+ <location filename="src/homeview.cpp" line="38"/>
<source>Search</source>
<translation>Szukaj</translation>
</message>
<message>
- <location filename="src/homeview.cpp" line="35"/>
+ <location filename="src/homeview.cpp" line="40"/>
<source>Find videos and channels by keyword</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="src/homeview.cpp" line="40"/>
+ <location filename="src/homeview.cpp" line="45"/>
<source>Browse</source>
<translation>Przeglądaj</translation>
</message>
<message>
- <location filename="src/homeview.cpp" line="42"/>
+ <location filename="src/homeview.cpp" line="47"/>
<source>Browse videos by category</source>
<translation>Przeglądaj wideo według kategorii</translation>
</message>
+ <message>
+ <location filename="src/homeview.cpp" line="51"/>
+ <source>Subscriptions</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="src/homeview.cpp" line="53"/>
+ <source>Channel subscriptions</source>
+ <translation type="unfinished"/>
+ </message>
<message>
<location filename="src/homeview.h" line="22"/>
<source>Make yourself comfortable</source>
<context>
<name>LoadingWidget</name>
<message>
- <location filename="src/loadingwidget.cpp" line="90"/>
+ <location filename="src/loadingwidget.cpp" line="88"/>
<source>Error</source>
<translation>Błąd</translation>
</message>
<context>
<name>MainWindow</name>
<message>
- <location filename="src/mainwindow.cpp" line="213"/>
+ <location filename="src/mainwindow.cpp" line="237"/>
<source>&Stop</source>
<translation>&Zatrzymaj</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="214"/>
+ <location filename="src/mainwindow.cpp" line="238"/>
<source>Stop playback and go back to the search view</source>
<translation>Zatrzymaj odtwarzanie i wróć do wyszukiwania</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="232"/>
+ <location filename="src/mainwindow.cpp" line="253"/>
<source>S&kip</source>
<translation>Prze&skocz dalej</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="233"/>
+ <location filename="src/mainwindow.cpp" line="254"/>
<source>Skip to the next video</source>
<translation>Skocz do następnego pliku wideo</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="239"/>
- <location filename="src/mainwindow.cpp" line="989"/>
+ <location filename="src/mainwindow.cpp" line="260"/>
+ <location filename="src/mainwindow.cpp" line="1012"/>
<source>&Pause</source>
<translation>&Pauza</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="240"/>
- <location filename="src/mainwindow.cpp" line="990"/>
+ <location filename="src/mainwindow.cpp" line="261"/>
+ <location filename="src/mainwindow.cpp" line="1013"/>
<source>Pause playback</source>
<translation>Wstrzymaj odtwarzanie</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="246"/>
+ <location filename="src/mainwindow.cpp" line="267"/>
<source>&Full Screen</source>
<translation>Pełny ekran (&F)</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="247"/>
+ <location filename="src/mainwindow.cpp" line="268"/>
<source>Go full screen</source>
<translation>Przełącz na pełny ekran</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="263"/>
+ <location filename="src/mainwindow.cpp" line="282"/>
<source>Hide the playlist and the toolbar</source>
<translation>Ukryj listę odtwarzania i pasek narzędzi</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="276"/>
+ <location filename="src/mainwindow.cpp" line="295"/>
<source>Go to the YouTube video page and pause playback</source>
<translation>Otwórz na stronie Youtube i wstrzymaj odtwarzanie</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="283"/>
+ <location filename="src/mainwindow.cpp" line="302"/>
<source>Copy the current video YouTube link to the clipboard</source>
<translation>Kopiuj link aktualnie odtwarzanego video do schowka</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="290"/>
+ <location filename="src/mainwindow.cpp" line="309"/>
<source>Copy the current video stream URL to the clipboard</source>
<translation>Kopiuj adres URL odtwarzanego wideo do schowka</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="297"/>
+ <location filename="src/mainwindow.cpp" line="316"/>
<source>Find other video parts hopefully in the right order</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="303"/>
+ <location filename="src/mainwindow.cpp" line="322"/>
<source>&Remove</source>
<translation>Usuń (&D)</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="304"/>
+ <location filename="src/mainwindow.cpp" line="323"/>
<source>Remove the selected videos from the playlist</source>
<translation>Usuń wybrane pliki z listy odtwarzania</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="310"/>
+ <location filename="src/mainwindow.cpp" line="329"/>
<source>Move &Up</source>
<translation>Przenieś &Wyżej</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="311"/>
+ <location filename="src/mainwindow.cpp" line="330"/>
<source>Move up the selected videos in the playlist</source>
<translation>Przenieś wyżej zaznaczony plik w liście odtwarzania</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="317"/>
+ <location filename="src/mainwindow.cpp" line="336"/>
<source>Move &Down</source>
<translation>Przenieś &Niżej</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="318"/>
+ <location filename="src/mainwindow.cpp" line="337"/>
<source>Move down the selected videos in the playlist</source>
<translation>Przenieś niżej zaznaczony plik w liście odtwarzania</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="329"/>
+ <location filename="src/mainwindow.cpp" line="348"/>
<source>Clear the search history. Cannot be undone.</source>
<translation>Wyczyść historię wyszukiwania. NIEODWRACALNIE.</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="334"/>
+ <location filename="src/mainwindow.cpp" line="353"/>
<source>&Quit</source>
<translation>Wyjdź (&Q)</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="337"/>
+ <location filename="src/mainwindow.cpp" line="356"/>
<source>Bye</source>
<translation>Żegnaj</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="341"/>
+ <location filename="src/mainwindow.cpp" line="360"/>
<source>&Website</source>
<translation>Strona domowa projektu (&W)</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="343"/>
+ <location filename="src/mainwindow.cpp" line="362"/>
<source>%1 on the Web</source>
<translation>%1 w sieci</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="349"/>
+ <location filename="src/mainwindow.cpp" line="368"/>
<source>Please support the continued development of %1</source>
<translation>Prosimy o wsparcie dla dalszego rozwoju %1</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="354"/>
+ <location filename="src/mainwindow.cpp" line="373"/>
<source>&About</source>
<translation>O programie (&A)</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="356"/>
+ <location filename="src/mainwindow.cpp" line="375"/>
<source>Info about %1</source>
<translation>Informacje o %1</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="364"/>
+ <location filename="src/mainwindow.cpp" line="383"/>
<source>Search</source>
<translation>Szukaj</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="383"/>
+ <location filename="src/mainwindow.cpp" line="402"/>
<source>Mute volume</source>
<translation>Wycisz</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="412"/>
- <location filename="src/mainwindow.cpp" line="1365"/>
+ <location filename="src/mainwindow.cpp" line="431"/>
+ <location filename="src/mainwindow.cpp" line="1406"/>
<source>&Downloads</source>
<translation>&Pobrane</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="413"/>
+ <location filename="src/mainwindow.cpp" line="432"/>
<source>Show details about video downloads</source>
<translation>Pokaż szczegóły o pobranych plikach</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="421"/>
+ <location filename="src/mainwindow.cpp" line="440"/>
<source>&Download</source>
<translation>&Pobierz</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="422"/>
+ <location filename="src/mainwindow.cpp" line="441"/>
<source>Download the current video</source>
<translation>Pobierz aktualny plik</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="441"/>
+ <location filename="src/mainwindow.cpp" line="458"/>
+ <source>&Subscribe to Channel</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="src/mainwindow.cpp" line="465"/>
<source>Share the current video using %1</source>
<translation>Udostępnij te wideo używając %1</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="458"/>
+ <location filename="src/mainwindow.cpp" line="482"/>
<source>&Email</source>
<translation>&E-mail</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="459"/>
+ <location filename="src/mainwindow.cpp" line="483"/>
<source>Email</source>
<translation>E-mail</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="463"/>
+ <location filename="src/mainwindow.cpp" line="487"/>
<source>&Close</source>
<translation>&Zamknij</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="473"/>
+ <location filename="src/mainwindow.cpp" line="497"/>
<source>&Float on Top</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="478"/>
+ <location filename="src/mainwindow.cpp" line="502"/>
<source>&Stop After This Video</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="485"/>
+ <location filename="src/mainwindow.cpp" line="509"/>
<source>&Report an Issue...</source>
- <translation type="unfinished"/>
+ <translation>&Zgłoś problem...</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="489"/>
+ <location filename="src/mainwindow.cpp" line="513"/>
<source>&Refine Search...</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="501"/>
+ <location filename="src/mainwindow.cpp" line="525"/>
<source>More...</source>
<translation>Więcej...</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="504"/>
+ <location filename="src/mainwindow.cpp" line="528"/>
<source>&Related Videos</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="506"/>
+ <location filename="src/mainwindow.cpp" line="530"/>
<source>Watch videos related to the current one</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="544"/>
+ <location filename="src/mainwindow.cpp" line="553"/>
<source>&Application</source>
<translation>&Aplikacje</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="515"/>
+ <location filename="src/mainwindow.cpp" line="537"/>
<source>Buy %1...</source>
<translation>Kup %1...</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="558"/>
+ <location filename="src/mainwindow.cpp" line="567"/>
<source>&Playback</source>
<translation>&Odtwarzanie</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="572"/>
+ <location filename="src/mainwindow.cpp" line="581"/>
<source>&Playlist</source>
<translation>&Lista odtwarzania</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="581"/>
+ <location filename="src/mainwindow.cpp" line="590"/>
<source>&Video</source>
<translation>&Wideo</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="594"/>
+ <location filename="src/mainwindow.cpp" line="605"/>
<source>&View</source>
<translation>&Widok</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="601"/>
+ <location filename="src/mainwindow.cpp" line="612"/>
<source>&Share</source>
<translation>Udo&stępnij</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="615"/>
+ <location filename="src/mainwindow.cpp" line="626"/>
<source>&Help</source>
<translation>&Pomoc</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="690"/>
+ <location filename="src/mainwindow.cpp" line="701"/>
<source>Press %1 to raise the volume, %2 to lower it</source>
<translation>Wciścnij %1 żeby zwiększyć głośność, %2 żeby zmiejszyć głośność</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="889"/>
- <location filename="src/mainwindow.cpp" line="895"/>
+ <location filename="src/mainwindow.cpp" line="910"/>
+ <location filename="src/mainwindow.cpp" line="916"/>
<source>Opening %1</source>
<translation>Otwieranie %1</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="936"/>
+ <location filename="src/mainwindow.cpp" line="959"/>
<source>Do you want to exit %1 with a download in progress?</source>
<translation>Czy na pewno chcesz zamknąć %1 w trakcie pobierania???</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="937"/>
+ <location filename="src/mainwindow.cpp" line="960"/>
<source>If you close %1 now, this download will be cancelled.</source>
<translation>Jeśli zamkniesz %1 teraz, To pobieranie będzie anulowane.</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="942"/>
+ <location filename="src/mainwindow.cpp" line="965"/>
<source>Close and cancel download</source>
<translation>Zamnij i anuluj pobieranie</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="943"/>
+ <location filename="src/mainwindow.cpp" line="966"/>
<source>Wait for download to finish</source>
<translation>Poczekaj na zakończenie pobierania</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="1102"/>
+ <location filename="src/mainwindow.cpp" line="1125"/>
<source>Leave &Full Screen</source>
<translation>Opuść &tryb pełnoekranowy</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="1475"/>
+ <location filename="src/mainwindow.cpp" line="1515"/>
<source>%1 version %2 is now available.</source>
<translation>%1 wersja %2 jest teraz dostępna.</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="1479"/>
+ <location filename="src/mainwindow.cpp" line="1519"/>
<source>Remind me later</source>
<translation>Przypomnij mi później</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="1480"/>
+ <location filename="src/mainwindow.cpp" line="1520"/>
<source>Update</source>
<translation>Aktualizuj</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="982"/>
+ <location filename="src/mainwindow.cpp" line="1005"/>
<source>Error: %1</source>
<translation>Błąd %1</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="222"/>
+ <location filename="src/mainwindow.cpp" line="246"/>
<source>P&revious</source>
<translation>Pop&rzedni</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="223"/>
+ <location filename="src/mainwindow.cpp" line="247"/>
<source>Go back to the previous track</source>
<translation>Powrót do poprzedniego utworu</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="262"/>
+ <location filename="src/mainwindow.cpp" line="281"/>
<source>&Compact Mode</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="275"/>
+ <location filename="src/mainwindow.cpp" line="294"/>
<source>Open the &YouTube Page</source>
<translation>Otwórz na &Youtube</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="282"/>
+ <location filename="src/mainwindow.cpp" line="301"/>
<source>Copy the YouTube &Link</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="289"/>
+ <location filename="src/mainwindow.cpp" line="308"/>
<source>Copy the Video Stream &URL</source>
<translation>Kopiuj adres &URL strumienia wideo</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="296"/>
+ <location filename="src/mainwindow.cpp" line="315"/>
<source>Find Video &Parts</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="324"/>
+ <location filename="src/mainwindow.cpp" line="343"/>
<source>&Clear Recent Searches</source>
<translation>Wy&czyść Ostatnie Poszukiwania</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="348"/>
+ <location filename="src/mainwindow.cpp" line="367"/>
<source>Make a &Donation</source>
<translation>Przekaż &darowiznę</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="405"/>
+ <location filename="src/mainwindow.cpp" line="424"/>
<source>&Manually Start Playing</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="406"/>
+ <location filename="src/mainwindow.cpp" line="425"/>
<source>Manually start playing videos</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="728"/>
+ <location filename="src/mainwindow.cpp" line="739"/>
<source>Choose your content location</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="1002"/>
+ <location filename="src/mainwindow.cpp" line="1025"/>
<source>&Play</source>
<translation>&Odtwarzaj</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="1003"/>
+ <location filename="src/mainwindow.cpp" line="1026"/>
<source>Resume playback</source>
<translation>Kontynuuj odtwarzanie</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="1236"/>
+ <location filename="src/mainwindow.cpp" line="1277"/>
<source>Remaining time: %1</source>
<translation>Pozostały czas %1</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="1294"/>
+ <location filename="src/mainwindow.cpp" line="1335"/>
<source>Volume at %1%</source>
<translation>Głośność na %1%</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="1300"/>
+ <location filename="src/mainwindow.cpp" line="1341"/>
<source>Volume is muted</source>
<translation>Dźwięk jest wyciszony</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="1303"/>
+ <location filename="src/mainwindow.cpp" line="1344"/>
<source>Volume is unmuted</source>
<translation>Przywrócono dźwięk</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="1310"/>
+ <location filename="src/mainwindow.cpp" line="1351"/>
<source>Maximum video definition set to %1</source>
<translation>Maksymalna rozdzielczość wideo ustawiona na %1</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="1351"/>
+ <location filename="src/mainwindow.cpp" line="1392"/>
<source>Your privacy is now safe</source>
<translation>Twoja prywatność jest teraz bezpieczna</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="1366"/>
+ <location filename="src/mainwindow.cpp" line="1407"/>
<source>Downloads complete</source>
<translation>Pobieranie ukończone</translation>
</message>
<context>
<name>MediaView</name>
<message>
- <location filename="src/mediaview.cpp" line="553"/>
+ <location filename="src/mediaview.cpp" line="563"/>
<source>You can now paste the YouTube link into another application</source>
<translation>Teraz możesz wkleić link Youtube do innej aplikacji</translation>
</message>
<message>
- <location filename="src/mediaview.cpp" line="561"/>
+ <location filename="src/mediaview.cpp" line="571"/>
<source>You can now paste the video stream URL into another application</source>
<translation>Teraz możesz wkleić URL do innej aplikacji</translation>
</message>
<message>
- <location filename="src/mediaview.cpp" line="562"/>
+ <location filename="src/mediaview.cpp" line="572"/>
<source>The link will be valid only for a limited time.</source>
<translation>Link będzie ważny tylko przez ograniczony czas.</translation>
</message>
<message>
- <location filename="src/mediaview.cpp" line="636"/>
+ <location filename="src/mediaview.cpp" line="650"/>
<source>This is just the demo version of %1.</source>
<translation>To jest tylko wersja demo %1.</translation>
</message>
<message>
- <location filename="src/mediaview.cpp" line="637"/>
+ <location filename="src/mediaview.cpp" line="651"/>
<source>It allows you to test the application and see if it works for you.</source>
<translation>Pozwala Ci to na testowanie i sprawdzenie działania aplikacji.</translation>
</message>
<message>
- <location filename="src/mediaview.cpp" line="667"/>
+ <location filename="src/mediaview.cpp" line="681"/>
<source>Continue</source>
<translation>Kontynuuj</translation>
</message>
<message>
- <location filename="src/mediaview.cpp" line="756"/>
+ <location filename="src/mediaview.cpp" line="772"/>
<source>of</source>
<comment>Used in video parts, as in '2 of 3'</comment>
<translation>z</translation>
</message>
<message>
- <location filename="src/mediaview.cpp" line="768"/>
+ <location filename="src/mediaview.cpp" line="785"/>
<source>part</source>
<comment>This is for video parts, as in 'Cool video - part 1'</comment>
<translation>część</translation>
</message>
<message>
- <location filename="src/mediaview.cpp" line="770"/>
+ <location filename="src/mediaview.cpp" line="787"/>
<source>episode</source>
<comment>This is for video parts, as in 'Cool series - episode 1'</comment>
<translation>odcinek</translation>
</message>
<message>
- <location filename="src/mediaview.cpp" line="847"/>
+ <location filename="src/mediaview.cpp" line="868"/>
<source>Sent from %1</source>
<translation>Wysłano z %1</translation>
</message>
<message>
- <location filename="src/mediaview.cpp" line="644"/>
+ <location filename="src/mediaview.cpp" line="899"/>
+ <source>Unsubscribe from %1</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="src/mediaview.cpp" line="903"/>
+ <source>Subscribe to %1</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="src/mediaview.cpp" line="658"/>
<source>Get the full version</source>
<translation>Pobierz pełną wersję</translation>
</message>
<message>
- <location filename="src/mediaview.cpp" line="681"/>
+ <location filename="src/mediaview.cpp" line="695"/>
<source>Downloading %1</source>
<translation>Pobieranie %1</translation>
</message>
<message>
<location filename="local/src/updatedialog.cpp" line="21"/>
<source>A new version of %1 is available!</source>
- <translation type="unfinished"/>
+ <translation>Nowa wersja %1 jest dostępna!</translation>
</message>
<message>
<location filename="local/src/updatedialog.cpp" line="28"/>
<source>%1 %2 is now available. You have %3.</source>
- <translation type="unfinished"/>
+ <translation>%1 %2 jest już dostępny, Ty masz %3.</translation>
</message>
<message>
<location filename="local/src/updatedialog.cpp" line="33"/>
<message>
<location filename="local/src/updatedialog.cpp" line="47"/>
<source>Install Update</source>
- <translation type="unfinished"/>
+ <translation>Zainstaluj aktualizację</translation>
</message>
</context>
<context>
<context>
<name>PlaylistItemDelegate</name>
<message>
- <location filename="src/playlistitemdelegate.cpp" line="159"/>
+ <location filename="src/playlistitemdelegate.cpp" line="177"/>
<source>%1 views</source>
<translation>%1 widziane</translation>
</message>
<message>
- <location filename="src/playlistitemdelegate.cpp" line="285"/>
+ <location filename="src/playlistitemdelegate.cpp" line="292"/>
<source>%1 of %2 (%3) — %4</source>
<translation>%1 z %2 (%3) — %4</translation>
</message>
<message>
- <location filename="src/playlistitemdelegate.cpp" line="292"/>
+ <location filename="src/playlistitemdelegate.cpp" line="299"/>
<source>Preparing</source>
<translation>Przegotowuję</translation>
</message>
<message>
- <location filename="src/playlistitemdelegate.cpp" line="294"/>
+ <location filename="src/playlistitemdelegate.cpp" line="301"/>
<source>Failed</source>
<translation>Niepowodzenie</translation>
</message>
<message>
- <location filename="src/playlistitemdelegate.cpp" line="296"/>
+ <location filename="src/playlistitemdelegate.cpp" line="303"/>
<source>Completed</source>
<translation>Zakończone</translation>
</message>
<message>
- <location filename="src/playlistitemdelegate.cpp" line="298"/>
+ <location filename="src/playlistitemdelegate.cpp" line="305"/>
<source>Stopped</source>
<translation>Zatrzymano</translation>
</message>
<message>
- <location filename="src/playlistitemdelegate.cpp" line="334"/>
+ <location filename="src/playlistitemdelegate.cpp" line="341"/>
<source>Stop downloading</source>
<translation>Zatrzymaj pobieranie</translation>
</message>
<message>
- <location filename="src/playlistitemdelegate.cpp" line="344"/>
+ <location filename="src/playlistitemdelegate.cpp" line="351"/>
<source>Show in %1</source>
<translation>Pokaż w %1</translation>
</message>
<message>
- <location filename="src/playlistitemdelegate.cpp" line="346"/>
+ <location filename="src/playlistitemdelegate.cpp" line="353"/>
<source>Open parent folder</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="src/playlistitemdelegate.cpp" line="355"/>
+ <location filename="src/playlistitemdelegate.cpp" line="362"/>
<source>Restart downloading</source>
<translation>Pobierz od nowa</translation>
</message>
<message>
<location filename="src/refinesearchwidget.cpp" line="78"/>
<source>Short</source>
- <translation type="unfinished"/>
+ <translation>Krótkie</translation>
</message>
<message>
<location filename="src/refinesearchwidget.cpp" line="79"/>
<source>Medium</source>
- <translation type="unfinished"/>
+ <translation>Średnie</translation>
</message>
<message>
<location filename="src/refinesearchwidget.cpp" line="80"/>
<source>Long</source>
- <translation type="unfinished"/>
+ <translation>Długie</translation>
</message>
<message>
<location filename="src/refinesearchwidget.cpp" line="83"/>
<context>
<name>SearchView</name>
<message>
- <location filename="src/searchview.cpp" line="71"/>
+ <location filename="src/searchview.cpp" line="66"/>
<source>Welcome to <a href='%1'>%2</a>,</source>
<translation>Witaj w <a href='%1'>%2</a>,</translation>
</message>
<message>
- <location filename="src/searchview.cpp" line="50"/>
+ <location filename="src/searchview.cpp" line="161"/>
<source>Get the full version</source>
<translation>Pobierz pełną wersję</translation>
</message>
<message>
- <location filename="src/searchview.cpp" line="85"/>
+ <location filename="src/searchview.cpp" line="80"/>
<source>Enter</source>
<extracomment>"Enter", as in "type". The whole phrase says: "Enter a keyword to start watching videos"</extracomment>
<translation>Zatwierdź</translation>
</message>
<message>
- <location filename="src/searchview.cpp" line="90"/>
+ <location filename="src/searchview.cpp" line="85"/>
<source>a keyword</source>
<translation>słowo kluczowe</translation>
</message>
<message>
- <location filename="src/searchview.cpp" line="91"/>
+ <location filename="src/searchview.cpp" line="86"/>
<source>a channel</source>
<translation>kanał</translation>
</message>
<message>
- <location filename="src/searchview.cpp" line="96"/>
+ <location filename="src/searchview.cpp" line="91"/>
<source>to start watching videos.</source>
<translation>aby rozpocząć oglądanie</translation>
</message>
<message>
- <location filename="src/searchview.cpp" line="120"/>
+ <location filename="src/searchview.cpp" line="115"/>
<source>Watch</source>
<translation>Oglądaj</translation>
</message>
<message>
- <location filename="src/searchview.cpp" line="138"/>
+ <location filename="src/searchview.cpp" line="133"/>
<source>Recent keywords</source>
<translation>Ostatnio szukane</translation>
</message>
<message>
- <location filename="src/searchview.cpp" line="151"/>
+ <location filename="src/searchview.cpp" line="146"/>
<source>Recent channels</source>
<translation>Odwiedzone kanały</translation>
</message>
<context>
<name>SidebarHeader</name>
<message>
- <location filename="src/sidebarheader.cpp" line="16"/>
- <location filename="src/sidebarheader.cpp" line="23"/>
+ <location filename="src/sidebarheader.cpp" line="19"/>
+ <location filename="src/sidebarheader.cpp" line="26"/>
<source>&Back</source>
<translation>&Wstecz</translation>
</message>
<source>Most Popular</source>
<translation type="unfinished"/>
</message>
- <message>
- <location filename="src/standardfeedsview.cpp" line="86"/>
- <source>Featured</source>
- <translation type="unfinished"/>
- </message>
<message>
<location filename="src/standardfeedsview.cpp" line="87"/>
<source>Most Shared</source>
<source>Top Rated</source>
<translation type="unfinished"/>
</message>
+ <message>
+ <location filename="src/standardfeedsview.cpp" line="90"/>
+ <source>All Time Popular</source>
+ <translation type="unfinished"/>
+ </message>
</context>
<context>
<name>Video</name>
<message>
- <location filename="src/video.cpp" line="213"/>
+ <location filename="src/video.cpp" line="215"/>
<source>Cannot get video stream for %1</source>
<translation>Nie można uzyskać dostępu do %1</translation>
</message>
<message>
- <location filename="src/video.cpp" line="231"/>
+ <location filename="src/video.cpp" line="233"/>
<source>Network error: %1 for %2</source>
<translation>Błąd sieci: %1 for %2</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="35"/>
<source>Netherlands</source>
- <translation type="unfinished"/>
+ <translation>Holandia</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="36"/>
<message>
<location filename="src/ytregions.cpp" line="128"/>
<source>Worldwide</source>
- <translation type="unfinished"/>
+ <translation>Ogólnoświatowy</translation>
</message>
</context>
</TS>
\ No newline at end of file
<translation>Kup licencję</translation>
</message>
</context>
+<context>
+ <name>ChannelAggregator</name>
+ <message>
+ <location filename="src/channelaggregator.cpp" line="110"/>
+ <source>By %1</source>
+ <translation type="unfinished"/>
+ </message>
+ <message numerus="yes">
+ <location filename="src/channelaggregator.cpp" line="112"/>
+ <source>You have %n new video(s)</source>
+ <translation type="unfinished"><numerusform></numerusform><numerusform></numerusform><numerusform></numerusform></translation>
+ </message>
+</context>
+<context>
+ <name>ChannelItemDelegate</name>
+ <message>
+ <location filename="src/channelitemdelegate.cpp" line="46"/>
+ <source>All Videos</source>
+ <translation>Wszystkie filmy</translation>
+ </message>
+ <message>
+ <location filename="src/channelitemdelegate.cpp" line="63"/>
+ <source>Unwatched Videos</source>
+ <translation>Nieobejrzane filmy</translation>
+ </message>
+</context>
+<context>
+ <name>ChannelView</name>
+ <message>
+ <location filename="src/channelview.cpp" line="75"/>
+ <source>Mark all as watched</source>
+ <translation>Oznacz wszystkie jako obserwowane</translation>
+ </message>
+ <message>
+ <location filename="src/channelview.cpp" line="83"/>
+ <source>Show Updated</source>
+ <translation>Pokaż zaktualizowane</translation>
+ </message>
+ <message>
+ <location filename="src/channelview.cpp" line="95"/>
+ <source>Name</source>
+ <translation>Nazwa</translation>
+ </message>
+ <message>
+ <location filename="src/channelview.cpp" line="102"/>
+ <source>Last Updated</source>
+ <translation>Ostatnio Zaktualizowane</translation>
+ </message>
+ <message>
+ <location filename="src/channelview.cpp" line="109"/>
+ <source>Last Added</source>
+ <translation>Ostatnio Dodane</translation>
+ </message>
+ <message>
+ <location filename="src/channelview.cpp" line="116"/>
+ <source>Last Watched</source>
+ <translation>Ostatnio Zaobserwowane</translation>
+ </message>
+ <message>
+ <location filename="src/channelview.cpp" line="123"/>
+ <source>Most Watched</source>
+ <translation>Najczęściej Obserwowane</translation>
+ </message>
+ <message>
+ <location filename="src/channelview.cpp" line="131"/>
+ <source>Sort by</source>
+ <translation>Sortuj według</translation>
+ </message>
+ <message>
+ <location filename="src/channelview.cpp" line="190"/>
+ <source>All Videos</source>
+ <translation>Wszystkie filmy</translation>
+ </message>
+ <message>
+ <location filename="src/channelview.cpp" line="194"/>
+ <source>Unwatched Videos</source>
+ <translation>Nieobejrzane filmy</translation>
+ </message>
+ <message>
+ <location filename="src/channelview.cpp" line="206"/>
+ <source>There are no updated subscriptions at this time.</source>
+ <translation>Brak zaktualizowanych subskrypcji. </translation>
+ </message>
+ <message>
+ <location filename="src/channelview.cpp" line="208"/>
+ <source>You have no subscriptions. Use the star symbol to subscribe to channels.</source>
+ <translation type="unfinished"/>
+ </message>
+</context>
<context>
<name>ClearButton</name>
<message>
<context>
<name>HomeView</name>
<message>
- <location filename="src/homeview.cpp" line="33"/>
+ <location filename="src/homeview.cpp" line="38"/>
<source>Search</source>
<translation>Szukaj</translation>
</message>
<message>
- <location filename="src/homeview.cpp" line="35"/>
+ <location filename="src/homeview.cpp" line="40"/>
<source>Find videos and channels by keyword</source>
<translation>Znajdź filmy i kanały po słowie kluczowym</translation>
</message>
<message>
- <location filename="src/homeview.cpp" line="40"/>
+ <location filename="src/homeview.cpp" line="45"/>
<source>Browse</source>
<translation>Przeglądaj</translation>
</message>
<message>
- <location filename="src/homeview.cpp" line="42"/>
+ <location filename="src/homeview.cpp" line="47"/>
<source>Browse videos by category</source>
<translation>Przeglądaj filmy po kategorii</translation>
</message>
+ <message>
+ <location filename="src/homeview.cpp" line="51"/>
+ <source>Subscriptions</source>
+ <translation>Subskrypcje</translation>
+ </message>
+ <message>
+ <location filename="src/homeview.cpp" line="53"/>
+ <source>Channel subscriptions</source>
+ <translation type="unfinished"/>
+ </message>
<message>
<location filename="src/homeview.h" line="22"/>
<source>Make yourself comfortable</source>
<context>
<name>LoadingWidget</name>
<message>
- <location filename="src/loadingwidget.cpp" line="90"/>
+ <location filename="src/loadingwidget.cpp" line="88"/>
<source>Error</source>
<translation>Błąd</translation>
</message>
<context>
<name>MainWindow</name>
<message>
- <location filename="src/mainwindow.cpp" line="213"/>
+ <location filename="src/mainwindow.cpp" line="237"/>
<source>&Stop</source>
<translation>&Zatrzymaj</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="214"/>
+ <location filename="src/mainwindow.cpp" line="238"/>
<source>Stop playback and go back to the search view</source>
<translation>Przerwij odtwarzanie i wróć do wyszukiwania</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="232"/>
+ <location filename="src/mainwindow.cpp" line="253"/>
<source>S&kip</source>
<translation>Prze&skocz dalej</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="233"/>
+ <location filename="src/mainwindow.cpp" line="254"/>
<source>Skip to the next video</source>
<translation>Przejdź do następnego pliku wideo</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="239"/>
- <location filename="src/mainwindow.cpp" line="989"/>
+ <location filename="src/mainwindow.cpp" line="260"/>
+ <location filename="src/mainwindow.cpp" line="1012"/>
<source>&Pause</source>
<translation>&Pauza</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="240"/>
- <location filename="src/mainwindow.cpp" line="990"/>
+ <location filename="src/mainwindow.cpp" line="261"/>
+ <location filename="src/mainwindow.cpp" line="1013"/>
<source>Pause playback</source>
<translation>Wstrzymaj odtwarzanie</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="246"/>
+ <location filename="src/mainwindow.cpp" line="267"/>
<source>&Full Screen</source>
<translation>&Pełny ekran</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="247"/>
+ <location filename="src/mainwindow.cpp" line="268"/>
<source>Go full screen</source>
<translation>Przełącz na pełny ekran</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="263"/>
+ <location filename="src/mainwindow.cpp" line="282"/>
<source>Hide the playlist and the toolbar</source>
<translation>Ukryj listę odtwarzania i pasek narzędzi</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="276"/>
+ <location filename="src/mainwindow.cpp" line="295"/>
<source>Go to the YouTube video page and pause playback</source>
<translation>Przejdź do strony YouTube i wstrzymaj odtwarzanie</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="283"/>
+ <location filename="src/mainwindow.cpp" line="302"/>
<source>Copy the current video YouTube link to the clipboard</source>
<translation>Skopiuj link YouTube odtwarzanego filmu do schowka</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="290"/>
+ <location filename="src/mainwindow.cpp" line="309"/>
<source>Copy the current video stream URL to the clipboard</source>
<translation>Kopiuj adres URL odtwarzanego wideo do schowka</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="297"/>
+ <location filename="src/mainwindow.cpp" line="316"/>
<source>Find other video parts hopefully in the right order</source>
<translation>Znajdź pozostałe części filmu w, miejmy nadzieję, dobrej kolejności</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="303"/>
+ <location filename="src/mainwindow.cpp" line="322"/>
<source>&Remove</source>
<translation>&Usuń</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="304"/>
+ <location filename="src/mainwindow.cpp" line="323"/>
<source>Remove the selected videos from the playlist</source>
<translation>Usuń wybrane pliki z listy odtwarzania</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="310"/>
+ <location filename="src/mainwindow.cpp" line="329"/>
<source>Move &Up</source>
<translation>Przesuń w &Górę</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="311"/>
+ <location filename="src/mainwindow.cpp" line="330"/>
<source>Move up the selected videos in the playlist</source>
<translation>Przesuń wyżej zaznaczone pliki</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="317"/>
+ <location filename="src/mainwindow.cpp" line="336"/>
<source>Move &Down</source>
<translation>Przesuń w &Dół</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="318"/>
+ <location filename="src/mainwindow.cpp" line="337"/>
<source>Move down the selected videos in the playlist</source>
<translation>Przesuń niżej zaznaczone pliki</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="329"/>
+ <location filename="src/mainwindow.cpp" line="348"/>
<source>Clear the search history. Cannot be undone.</source>
<translation>Czyści historię wyszukiwania. Nieodwracalnie.</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="334"/>
+ <location filename="src/mainwindow.cpp" line="353"/>
<source>&Quit</source>
<translation>&Weź to wyłącz</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="337"/>
+ <location filename="src/mainwindow.cpp" line="356"/>
<source>Bye</source>
<translation>Narciarz</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="341"/>
+ <location filename="src/mainwindow.cpp" line="360"/>
<source>&Website</source>
<translation>&Wyświetl stronę</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="343"/>
+ <location filename="src/mainwindow.cpp" line="362"/>
<source>%1 on the Web</source>
<translation>%1 on the Web</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="349"/>
+ <location filename="src/mainwindow.cpp" line="368"/>
<source>Please support the continued development of %1</source>
<translation>Wesprzyj dalszy rozwój %1</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="354"/>
+ <location filename="src/mainwindow.cpp" line="373"/>
<source>&About</source>
<translation>O &Programie</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="356"/>
+ <location filename="src/mainwindow.cpp" line="375"/>
<source>Info about %1</source>
<translation>Informacje o %1</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="364"/>
+ <location filename="src/mainwindow.cpp" line="383"/>
<source>Search</source>
<translation>Szukaj</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="383"/>
+ <location filename="src/mainwindow.cpp" line="402"/>
<source>Mute volume</source>
<translation>Wycisz</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="412"/>
- <location filename="src/mainwindow.cpp" line="1365"/>
+ <location filename="src/mainwindow.cpp" line="431"/>
+ <location filename="src/mainwindow.cpp" line="1406"/>
<source>&Downloads</source>
<translation>&Pobrane</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="413"/>
+ <location filename="src/mainwindow.cpp" line="432"/>
<source>Show details about video downloads</source>
<translation>Pokaż szczegóły o pobranych plikach</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="421"/>
+ <location filename="src/mainwindow.cpp" line="440"/>
<source>&Download</source>
<translation>&Pobierz</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="422"/>
+ <location filename="src/mainwindow.cpp" line="441"/>
<source>Download the current video</source>
<translation>Pobierz aktualny plik</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="441"/>
+ <location filename="src/mainwindow.cpp" line="458"/>
+ <source>&Subscribe to Channel</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="src/mainwindow.cpp" line="465"/>
<source>Share the current video using %1</source>
<translation>Podziel się tym filmem przez %1</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="458"/>
+ <location filename="src/mainwindow.cpp" line="482"/>
<source>&Email</source>
<translation>&E-mail</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="459"/>
+ <location filename="src/mainwindow.cpp" line="483"/>
<source>Email</source>
<translation>e-mail</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="463"/>
+ <location filename="src/mainwindow.cpp" line="487"/>
<source>&Close</source>
<translation>&Zamknij</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="473"/>
+ <location filename="src/mainwindow.cpp" line="497"/>
<source>&Float on Top</source>
<translation>&Ustaw na wierzchu</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="478"/>
+ <location filename="src/mainwindow.cpp" line="502"/>
<source>&Stop After This Video</source>
<translation>&Zatrzymaj po tym filmie</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="485"/>
+ <location filename="src/mainwindow.cpp" line="509"/>
<source>&Report an Issue...</source>
<translation>Zgłoś problem...</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="489"/>
+ <location filename="src/mainwindow.cpp" line="513"/>
<source>&Refine Search...</source>
<translation>&Zawęź wyszukiwanie...</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="501"/>
+ <location filename="src/mainwindow.cpp" line="525"/>
<source>More...</source>
<translation>Więcej...</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="504"/>
+ <location filename="src/mainwindow.cpp" line="528"/>
<source>&Related Videos</source>
<translation>Powiązane filmy</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="506"/>
+ <location filename="src/mainwindow.cpp" line="530"/>
<source>Watch videos related to the current one</source>
<translation>Oglądaj filmy powiązane z aktualnie oglądanym</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="544"/>
+ <location filename="src/mainwindow.cpp" line="553"/>
<source>&Application</source>
<translation>&Aplikacja</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="515"/>
+ <location filename="src/mainwindow.cpp" line="537"/>
<source>Buy %1...</source>
<translation>Kup%1</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="558"/>
+ <location filename="src/mainwindow.cpp" line="567"/>
<source>&Playback</source>
<translation>&Odtwarzanie</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="572"/>
+ <location filename="src/mainwindow.cpp" line="581"/>
<source>&Playlist</source>
<translation>&Lista odtwarzania</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="581"/>
+ <location filename="src/mainwindow.cpp" line="590"/>
<source>&Video</source>
<translation>&Wideo</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="594"/>
+ <location filename="src/mainwindow.cpp" line="605"/>
<source>&View</source>
<translation>&Widok</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="601"/>
+ <location filename="src/mainwindow.cpp" line="612"/>
<source>&Share</source>
<translation>&Podziel się</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="615"/>
+ <location filename="src/mainwindow.cpp" line="626"/>
<source>&Help</source>
<translation>&Halp znaczy pomoc</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="690"/>
+ <location filename="src/mainwindow.cpp" line="701"/>
<source>Press %1 to raise the volume, %2 to lower it</source>
<translation>Naciśnij %1 aby podgłośnić, %2 aby przyciszyć</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="889"/>
- <location filename="src/mainwindow.cpp" line="895"/>
+ <location filename="src/mainwindow.cpp" line="910"/>
+ <location filename="src/mainwindow.cpp" line="916"/>
<source>Opening %1</source>
<translation>Otwieranie %1</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="936"/>
+ <location filename="src/mainwindow.cpp" line="959"/>
<source>Do you want to exit %1 with a download in progress?</source>
<translation>Czy na pewno chcesz zamknąć %1 w trakcie pobierania???</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="937"/>
+ <location filename="src/mainwindow.cpp" line="960"/>
<source>If you close %1 now, this download will be cancelled.</source>
<translation>Jeśli zamkniesz %1 teraz, To pobieranie będzie anulowane.</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="942"/>
+ <location filename="src/mainwindow.cpp" line="965"/>
<source>Close and cancel download</source>
<translation>Zamnij i anuluj pobieranie</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="943"/>
+ <location filename="src/mainwindow.cpp" line="966"/>
<source>Wait for download to finish</source>
<translation>Poczekaj na zakończenie pobierania</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="1102"/>
+ <location filename="src/mainwindow.cpp" line="1125"/>
<source>Leave &Full Screen</source>
<translation>Opuść pełny ekran (&F)</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="1475"/>
+ <location filename="src/mainwindow.cpp" line="1515"/>
<source>%1 version %2 is now available.</source>
<translation>Wersja %1 %2 jest dostępna</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="1479"/>
+ <location filename="src/mainwindow.cpp" line="1519"/>
<source>Remind me later</source>
<translation>Przypomnij później</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="1480"/>
+ <location filename="src/mainwindow.cpp" line="1520"/>
<source>Update</source>
<translation>Zaktualizuj</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="982"/>
+ <location filename="src/mainwindow.cpp" line="1005"/>
<source>Error: %1</source>
<translation>Błąd %1</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="222"/>
+ <location filename="src/mainwindow.cpp" line="246"/>
<source>P&revious</source>
<translation>P&oprzedni</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="223"/>
+ <location filename="src/mainwindow.cpp" line="247"/>
<source>Go back to the previous track</source>
<translation>Wróć do poprzedniej ścieżki</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="262"/>
+ <location filename="src/mainwindow.cpp" line="281"/>
<source>&Compact Mode</source>
<translation>&Tryb kompaktowy</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="275"/>
+ <location filename="src/mainwindow.cpp" line="294"/>
<source>Open the &YouTube Page</source>
<translation>Otwórz stronę &YouTube</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="282"/>
+ <location filename="src/mainwindow.cpp" line="301"/>
<source>Copy the YouTube &Link</source>
<translation>Skopiuj &link do strony Youtube</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="289"/>
+ <location filename="src/mainwindow.cpp" line="308"/>
<source>Copy the Video Stream &URL</source>
<translation>Skopiuj &URL strumienia wideo</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="296"/>
+ <location filename="src/mainwindow.cpp" line="315"/>
<source>Find Video &Parts</source>
<translation>Znajdź części filmu</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="324"/>
+ <location filename="src/mainwindow.cpp" line="343"/>
<source>&Clear Recent Searches</source>
<translation>&Wyczyść ostatnie wyszukiwania</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="348"/>
+ <location filename="src/mainwindow.cpp" line="367"/>
<source>Make a &Donation</source>
<translation>Przekaż &dotację</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="405"/>
+ <location filename="src/mainwindow.cpp" line="424"/>
<source>&Manually Start Playing</source>
<translation>&Ręczne rozpoczynanie odtwarzania</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="406"/>
+ <location filename="src/mainwindow.cpp" line="425"/>
<source>Manually start playing videos</source>
<translation>Ręcznie odtwarzaj filmy</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="728"/>
+ <location filename="src/mainwindow.cpp" line="739"/>
<source>Choose your content location</source>
<translation>Wybierz swoją lokalizację</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="1002"/>
+ <location filename="src/mainwindow.cpp" line="1025"/>
<source>&Play</source>
<translation>&Graj</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="1003"/>
+ <location filename="src/mainwindow.cpp" line="1026"/>
<source>Resume playback</source>
<translation>Przywróć odtwarzanie</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="1236"/>
+ <location filename="src/mainwindow.cpp" line="1277"/>
<source>Remaining time: %1</source>
<translation>Pozostały czas: %1</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="1294"/>
+ <location filename="src/mainwindow.cpp" line="1335"/>
<source>Volume at %1%</source>
<translation>Głośność: %1%</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="1300"/>
+ <location filename="src/mainwindow.cpp" line="1341"/>
<source>Volume is muted</source>
<translation>Dźwięk wyciszony</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="1303"/>
+ <location filename="src/mainwindow.cpp" line="1344"/>
<source>Volume is unmuted</source>
<translation>Dźwięk przywrócony</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="1310"/>
+ <location filename="src/mainwindow.cpp" line="1351"/>
<source>Maximum video definition set to %1</source>
<translation>Maksymalna rozdzielczość wideo ustawiona na %1</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="1351"/>
+ <location filename="src/mainwindow.cpp" line="1392"/>
<source>Your privacy is now safe</source>
<translation>Twoja prywatność jest już bezpieczna</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="1366"/>
+ <location filename="src/mainwindow.cpp" line="1407"/>
<source>Downloads complete</source>
<translation>Pobieranie ukończone</translation>
</message>
<context>
<name>MediaView</name>
<message>
- <location filename="src/mediaview.cpp" line="553"/>
+ <location filename="src/mediaview.cpp" line="563"/>
<source>You can now paste the YouTube link into another application</source>
<translation>Teraz można wkleić link YouTube do innej aplikacji</translation>
</message>
<message>
- <location filename="src/mediaview.cpp" line="561"/>
+ <location filename="src/mediaview.cpp" line="571"/>
<source>You can now paste the video stream URL into another application</source>
<translation>Teraz możesz wkleić URL do innej aplikacji</translation>
</message>
<message>
- <location filename="src/mediaview.cpp" line="562"/>
+ <location filename="src/mediaview.cpp" line="572"/>
<source>The link will be valid only for a limited time.</source>
<translation>Link będzie ważny tylko przez ograniczony czas.</translation>
</message>
<message>
- <location filename="src/mediaview.cpp" line="636"/>
+ <location filename="src/mediaview.cpp" line="650"/>
<source>This is just the demo version of %1.</source>
<translation>To jest tylko wersja demo %1.</translation>
</message>
<message>
- <location filename="src/mediaview.cpp" line="637"/>
+ <location filename="src/mediaview.cpp" line="651"/>
<source>It allows you to test the application and see if it works for you.</source>
<translation>Pozwala przetestować aplikację, i zobaczyć czy Ci odpowiada.</translation>
</message>
<message>
- <location filename="src/mediaview.cpp" line="667"/>
+ <location filename="src/mediaview.cpp" line="681"/>
<source>Continue</source>
<translation>Dalej</translation>
</message>
<message>
- <location filename="src/mediaview.cpp" line="756"/>
+ <location filename="src/mediaview.cpp" line="772"/>
<source>of</source>
<comment>Used in video parts, as in '2 of 3'</comment>
<translation>z</translation>
</message>
<message>
- <location filename="src/mediaview.cpp" line="768"/>
+ <location filename="src/mediaview.cpp" line="785"/>
<source>part</source>
<comment>This is for video parts, as in 'Cool video - part 1'</comment>
<translation>część</translation>
</message>
<message>
- <location filename="src/mediaview.cpp" line="770"/>
+ <location filename="src/mediaview.cpp" line="787"/>
<source>episode</source>
<comment>This is for video parts, as in 'Cool series - episode 1'</comment>
<translation>odcinek</translation>
</message>
<message>
- <location filename="src/mediaview.cpp" line="847"/>
+ <location filename="src/mediaview.cpp" line="868"/>
<source>Sent from %1</source>
<translation>Przesłane od %1</translation>
</message>
<message>
- <location filename="src/mediaview.cpp" line="644"/>
+ <location filename="src/mediaview.cpp" line="899"/>
+ <source>Unsubscribe from %1</source>
+ <translation>Usuń subskrypcje %1</translation>
+ </message>
+ <message>
+ <location filename="src/mediaview.cpp" line="903"/>
+ <source>Subscribe to %1</source>
+ <translation>Subskrybuj %1</translation>
+ </message>
+ <message>
+ <location filename="src/mediaview.cpp" line="658"/>
<source>Get the full version</source>
<translation>Zdobądź pełną wersję</translation>
</message>
<message>
- <location filename="src/mediaview.cpp" line="681"/>
+ <location filename="src/mediaview.cpp" line="695"/>
<source>Downloading %1</source>
<translation>Pobieranie %1</translation>
</message>
<context>
<name>PlaylistItemDelegate</name>
<message>
- <location filename="src/playlistitemdelegate.cpp" line="159"/>
+ <location filename="src/playlistitemdelegate.cpp" line="177"/>
<source>%1 views</source>
<translation>%1widziany</translation>
</message>
<message>
- <location filename="src/playlistitemdelegate.cpp" line="285"/>
+ <location filename="src/playlistitemdelegate.cpp" line="292"/>
<source>%1 of %2 (%3) — %4</source>
<translation>%1 z %2 (%3) — %4</translation>
</message>
<message>
- <location filename="src/playlistitemdelegate.cpp" line="292"/>
+ <location filename="src/playlistitemdelegate.cpp" line="299"/>
<source>Preparing</source>
<translation>Przygotowywanie</translation>
</message>
<message>
- <location filename="src/playlistitemdelegate.cpp" line="294"/>
+ <location filename="src/playlistitemdelegate.cpp" line="301"/>
<source>Failed</source>
<translation>Niepowodzenie</translation>
</message>
<message>
- <location filename="src/playlistitemdelegate.cpp" line="296"/>
+ <location filename="src/playlistitemdelegate.cpp" line="303"/>
<source>Completed</source>
<translation>Ukończone</translation>
</message>
<message>
- <location filename="src/playlistitemdelegate.cpp" line="298"/>
+ <location filename="src/playlistitemdelegate.cpp" line="305"/>
<source>Stopped</source>
<translation>Zatrzymano</translation>
</message>
<message>
- <location filename="src/playlistitemdelegate.cpp" line="334"/>
+ <location filename="src/playlistitemdelegate.cpp" line="341"/>
<source>Stop downloading</source>
<translation>Przerwij pobieranie</translation>
</message>
<message>
- <location filename="src/playlistitemdelegate.cpp" line="344"/>
+ <location filename="src/playlistitemdelegate.cpp" line="351"/>
<source>Show in %1</source>
<translation>Pokaż w %1</translation>
</message>
<message>
- <location filename="src/playlistitemdelegate.cpp" line="346"/>
+ <location filename="src/playlistitemdelegate.cpp" line="353"/>
<source>Open parent folder</source>
<translation>Otwórz katalog nadrzędny</translation>
</message>
<message>
- <location filename="src/playlistitemdelegate.cpp" line="355"/>
+ <location filename="src/playlistitemdelegate.cpp" line="362"/>
<source>Restart downloading</source>
<translation>Pobierz ponownie</translation>
</message>
<message>
<location filename="src/refinesearchwidget.cpp" line="37"/>
<source>View Count</source>
- <translation type="unfinished"/>
+ <translation>Wyświetlenia</translation>
</message>
<message>
<location filename="src/refinesearchwidget.cpp" line="38"/>
<context>
<name>SearchView</name>
<message>
- <location filename="src/searchview.cpp" line="71"/>
+ <location filename="src/searchview.cpp" line="66"/>
<source>Welcome to <a href='%1'>%2</a>,</source>
<translation>Witaj w <a href='%1'>%2</a>,</translation>
</message>
<message>
- <location filename="src/searchview.cpp" line="50"/>
+ <location filename="src/searchview.cpp" line="161"/>
<source>Get the full version</source>
<translation>Pobierz pełną wersję</translation>
</message>
<message>
- <location filename="src/searchview.cpp" line="85"/>
+ <location filename="src/searchview.cpp" line="80"/>
<source>Enter</source>
<extracomment>"Enter", as in "type". The whole phrase says: "Enter a keyword to start watching videos"</extracomment>
<translation>Zatwierdź</translation>
</message>
<message>
- <location filename="src/searchview.cpp" line="90"/>
+ <location filename="src/searchview.cpp" line="85"/>
<source>a keyword</source>
<translation>słowo kluczowe</translation>
</message>
<message>
- <location filename="src/searchview.cpp" line="91"/>
+ <location filename="src/searchview.cpp" line="86"/>
<source>a channel</source>
<translation>kanał</translation>
</message>
<message>
- <location filename="src/searchview.cpp" line="96"/>
+ <location filename="src/searchview.cpp" line="91"/>
<source>to start watching videos.</source>
<translation>aby rozpocząć oglądanie</translation>
</message>
<message>
- <location filename="src/searchview.cpp" line="120"/>
+ <location filename="src/searchview.cpp" line="115"/>
<source>Watch</source>
<translation>Oglądaj</translation>
</message>
<message>
- <location filename="src/searchview.cpp" line="138"/>
+ <location filename="src/searchview.cpp" line="133"/>
<source>Recent keywords</source>
<translation>Ostatnie wyszukiwania</translation>
</message>
<message>
- <location filename="src/searchview.cpp" line="151"/>
+ <location filename="src/searchview.cpp" line="146"/>
<source>Recent channels</source>
<translation>Ostatnie kanały</translation>
</message>
<context>
<name>SidebarHeader</name>
<message>
- <location filename="src/sidebarheader.cpp" line="16"/>
- <location filename="src/sidebarheader.cpp" line="23"/>
+ <location filename="src/sidebarheader.cpp" line="19"/>
+ <location filename="src/sidebarheader.cpp" line="26"/>
<source>&Back</source>
<translation>&Wstecz</translation>
</message>
<source>Most Popular</source>
<translation>Najpopularniejsze</translation>
</message>
- <message>
- <location filename="src/standardfeedsview.cpp" line="86"/>
- <source>Featured</source>
- <translation>Wyróżnione</translation>
- </message>
<message>
<location filename="src/standardfeedsview.cpp" line="87"/>
<source>Most Shared</source>
<source>Top Rated</source>
<translation>Najlepiej oceniane</translation>
</message>
+ <message>
+ <location filename="src/standardfeedsview.cpp" line="90"/>
+ <source>All Time Popular</source>
+ <translation type="unfinished"/>
+ </message>
</context>
<context>
<name>Video</name>
<message>
- <location filename="src/video.cpp" line="213"/>
+ <location filename="src/video.cpp" line="215"/>
<source>Cannot get video stream for %1</source>
<translation>Strumieniowanie %1 nie powiodło się</translation>
</message>
<message>
- <location filename="src/video.cpp" line="231"/>
+ <location filename="src/video.cpp" line="233"/>
<source>Network error: %1 for %2</source>
<translation>Błąd sieci: %1 dla %2</translation>
</message>
<message>
<location filename="src/aboutview.cpp" line="38"/>
<source>Licensed to: %1</source>
- <translation type="unfinished"/>
+ <translation>Licenciado a: %1</translation>
</message>
<message>
<location filename="src/aboutview.cpp" line="42"/>
<message>
<location filename="local/src/activationdialog.cpp" line="17"/>
<source>Enter your License Details</source>
- <translation type="unfinished"/>
+ <translation>Entre com seus Detalhes de Licença</translation>
</message>
<message>
<location filename="local/src/activationdialog.cpp" line="29"/>
<source>&Email:</source>
- <translation type="unfinished"/>
+ <translation>E-mail:</translation>
</message>
<message>
<location filename="local/src/activationdialog.cpp" line="35"/>
<source>&Code:</source>
- <translation type="unfinished"/>
+ <translation>Código:</translation>
</message>
</context>
<context>
<message>
<location filename="local/src/activationview.cpp" line="53"/>
<source>The full version allows you to download videos longer than %1 minutes and to watch videos without interruptions.</source>
- <translation type="unfinished"/>
+ <translation>A versão completa permite que você baixe vídeos com mais de %1 minutos e assista-os sem interrupções.</translation>
</message>
<message>
<location filename="local/src/activationview.cpp" line="55"/>
<source>Without a license, the application will expire in %1 days.</source>
- <translation type="unfinished"/>
+ <translation>Sem licença, a aplicação irá expirar em %1 dias.</translation>
</message>
<message>
<location filename="local/src/activationview.cpp" line="57"/>
<message>
<location filename="local/src/activationview.cpp" line="77"/>
<source>Enter License</source>
- <translation type="unfinished"/>
+ <translation>Entrar com a Licença.</translation>
</message>
<message>
<location filename="local/src/activationview.cpp" line="85"/>
<source>Buy License</source>
- <translation type="unfinished"/>
+ <translation>Comprar a Licença.</translation>
+ </message>
+</context>
+<context>
+ <name>ChannelAggregator</name>
+ <message>
+ <location filename="src/channelaggregator.cpp" line="110"/>
+ <source>By %1</source>
+ <translation>Por %1</translation>
+ </message>
+ <message numerus="yes">
+ <location filename="src/channelaggregator.cpp" line="112"/>
+ <source>You have %n new video(s)</source>
+ <translation type="unfinished"><numerusform></numerusform><numerusform></numerusform></translation>
+ </message>
+</context>
+<context>
+ <name>ChannelItemDelegate</name>
+ <message>
+ <location filename="src/channelitemdelegate.cpp" line="46"/>
+ <source>All Videos</source>
+ <translation>Todos Os Vídeos</translation>
+ </message>
+ <message>
+ <location filename="src/channelitemdelegate.cpp" line="63"/>
+ <source>Unwatched Videos</source>
+ <translation>Vídeos Não Assistidos</translation>
+ </message>
+</context>
+<context>
+ <name>ChannelView</name>
+ <message>
+ <location filename="src/channelview.cpp" line="75"/>
+ <source>Mark all as watched</source>
+ <translation>Marcar tudo como assistido</translation>
+ </message>
+ <message>
+ <location filename="src/channelview.cpp" line="83"/>
+ <source>Show Updated</source>
+ <translation>Mostrar Atualização</translation>
+ </message>
+ <message>
+ <location filename="src/channelview.cpp" line="95"/>
+ <source>Name</source>
+ <translation>Nome</translation>
+ </message>
+ <message>
+ <location filename="src/channelview.cpp" line="102"/>
+ <source>Last Updated</source>
+ <translation>Última Atualização</translation>
+ </message>
+ <message>
+ <location filename="src/channelview.cpp" line="109"/>
+ <source>Last Added</source>
+ <translation>Último Adicionado</translation>
+ </message>
+ <message>
+ <location filename="src/channelview.cpp" line="116"/>
+ <source>Last Watched</source>
+ <translation>Último Assistido</translation>
+ </message>
+ <message>
+ <location filename="src/channelview.cpp" line="123"/>
+ <source>Most Watched</source>
+ <translation>Mais Assistidos</translation>
+ </message>
+ <message>
+ <location filename="src/channelview.cpp" line="131"/>
+ <source>Sort by</source>
+ <translation>Ordenar por</translation>
+ </message>
+ <message>
+ <location filename="src/channelview.cpp" line="190"/>
+ <source>All Videos</source>
+ <translation>Todos Os Vídeos</translation>
+ </message>
+ <message>
+ <location filename="src/channelview.cpp" line="194"/>
+ <source>Unwatched Videos</source>
+ <translation>Vídeos Não Assistidos</translation>
+ </message>
+ <message>
+ <location filename="src/channelview.cpp" line="206"/>
+ <source>There are no updated subscriptions at this time.</source>
+ <translation>Não há assinaturas atualizadas neste momento.</translation>
+ </message>
+ <message>
+ <location filename="src/channelview.cpp" line="208"/>
+ <source>You have no subscriptions. Use the star symbol to subscribe to channels.</source>
+ <translation>Você não tem assinaturas. Use o símbolo da estrela para assinar canais.</translation>
</message>
</context>
<context>
<message>
<location filename="local/src/updatedialog.cpp" line="60"/>
<source>Downloading update...</source>
- <translation type="unfinished"/>
+ <translation>Baixando atualização...</translation>
</message>
</context>
<context>
<context>
<name>HomeView</name>
<message>
- <location filename="src/homeview.cpp" line="33"/>
+ <location filename="src/homeview.cpp" line="38"/>
<source>Search</source>
<translation>Pesquisar</translation>
</message>
<message>
- <location filename="src/homeview.cpp" line="35"/>
+ <location filename="src/homeview.cpp" line="40"/>
<source>Find videos and channels by keyword</source>
- <translation type="unfinished"/>
+ <translation>Encontrar vídeos e canais por palavra-chave</translation>
</message>
<message>
- <location filename="src/homeview.cpp" line="40"/>
+ <location filename="src/homeview.cpp" line="45"/>
<source>Browse</source>
- <translation type="unfinished"/>
+ <translation>Procurar</translation>
</message>
<message>
- <location filename="src/homeview.cpp" line="42"/>
+ <location filename="src/homeview.cpp" line="47"/>
<source>Browse videos by category</source>
- <translation type="unfinished"/>
+ <translation>Procurar vídeos por categoria</translation>
+ </message>
+ <message>
+ <location filename="src/homeview.cpp" line="51"/>
+ <source>Subscriptions</source>
+ <translation>Assinados</translation>
+ </message>
+ <message>
+ <location filename="src/homeview.cpp" line="53"/>
+ <source>Channel subscriptions</source>
+ <translation>Canais assinados</translation>
</message>
<message>
<location filename="src/homeview.h" line="22"/>
<context>
<name>LoadingWidget</name>
<message>
- <location filename="src/loadingwidget.cpp" line="90"/>
+ <location filename="src/loadingwidget.cpp" line="88"/>
<source>Error</source>
<translation>Erro</translation>
</message>
<context>
<name>MainWindow</name>
<message>
- <location filename="src/mainwindow.cpp" line="213"/>
+ <location filename="src/mainwindow.cpp" line="237"/>
<source>&Stop</source>
<translation>&Parar</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="214"/>
+ <location filename="src/mainwindow.cpp" line="238"/>
<source>Stop playback and go back to the search view</source>
<translation>Parar a reprodução e voltar à visualização da pesquisa</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="232"/>
+ <location filename="src/mainwindow.cpp" line="253"/>
<source>S&kip</source>
<translation>Pu&lar</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="233"/>
+ <location filename="src/mainwindow.cpp" line="254"/>
<source>Skip to the next video</source>
<translation>Pular para o próximo vídeo</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="239"/>
- <location filename="src/mainwindow.cpp" line="989"/>
+ <location filename="src/mainwindow.cpp" line="260"/>
+ <location filename="src/mainwindow.cpp" line="1012"/>
<source>&Pause</source>
<translation>&Pausar</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="240"/>
- <location filename="src/mainwindow.cpp" line="990"/>
+ <location filename="src/mainwindow.cpp" line="261"/>
+ <location filename="src/mainwindow.cpp" line="1013"/>
<source>Pause playback</source>
<translation>Pausar a reprodução</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="246"/>
+ <location filename="src/mainwindow.cpp" line="267"/>
<source>&Full Screen</source>
<translation>&Tela Cheia</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="247"/>
+ <location filename="src/mainwindow.cpp" line="268"/>
<source>Go full screen</source>
<translation>Ir para a tela cheia</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="263"/>
+ <location filename="src/mainwindow.cpp" line="282"/>
<source>Hide the playlist and the toolbar</source>
<translation>Ocultar a playlist e a barra de ferramentas</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="276"/>
+ <location filename="src/mainwindow.cpp" line="295"/>
<source>Go to the YouTube video page and pause playback</source>
<translation>Ir à página de vídeo do YouTube e pausar a reprodução</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="283"/>
+ <location filename="src/mainwindow.cpp" line="302"/>
<source>Copy the current video YouTube link to the clipboard</source>
<translation>Copiar o link do vídeo atual do YouTube para a área de transferência</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="290"/>
+ <location filename="src/mainwindow.cpp" line="309"/>
<source>Copy the current video stream URL to the clipboard</source>
<translation>Copiar a URL do stream do vídeo atual para a área de transferência</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="297"/>
+ <location filename="src/mainwindow.cpp" line="316"/>
<source>Find other video parts hopefully in the right order</source>
<translation>Localizar partes de outro vídeo esperando na ordem certa</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="303"/>
+ <location filename="src/mainwindow.cpp" line="322"/>
<source>&Remove</source>
<translation>&Remover</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="304"/>
+ <location filename="src/mainwindow.cpp" line="323"/>
<source>Remove the selected videos from the playlist</source>
<translation>Remover os vídeos selecionados da playlist</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="310"/>
+ <location filename="src/mainwindow.cpp" line="329"/>
<source>Move &Up</source>
<translation>Mover para &cima</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="311"/>
+ <location filename="src/mainwindow.cpp" line="330"/>
<source>Move up the selected videos in the playlist</source>
<translation>Mover para cima os vídeos selecionados na playlist</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="317"/>
+ <location filename="src/mainwindow.cpp" line="336"/>
<source>Move &Down</source>
<translation>Mover para &baixo</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="318"/>
+ <location filename="src/mainwindow.cpp" line="337"/>
<source>Move down the selected videos in the playlist</source>
<translation>Mover para baixo os vídeos selecionados na playlist</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="329"/>
+ <location filename="src/mainwindow.cpp" line="348"/>
<source>Clear the search history. Cannot be undone.</source>
<translation>Apagar o histórico de pesquisa. Não pode ser desfeito.</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="334"/>
+ <location filename="src/mainwindow.cpp" line="353"/>
<source>&Quit</source>
<translation>&Sair</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="337"/>
+ <location filename="src/mainwindow.cpp" line="356"/>
<source>Bye</source>
<translation>Tchau</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="341"/>
+ <location filename="src/mainwindow.cpp" line="360"/>
<source>&Website</source>
<translation>Si&te</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="343"/>
+ <location filename="src/mainwindow.cpp" line="362"/>
<source>%1 on the Web</source>
<translation>%1 na Web</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="349"/>
+ <location filename="src/mainwindow.cpp" line="368"/>
<source>Please support the continued development of %1</source>
<translation>Por favor, apoie o desenvolvimento continuado de %1</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="354"/>
+ <location filename="src/mainwindow.cpp" line="373"/>
<source>&About</source>
<translation>&Sobre</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="356"/>
+ <location filename="src/mainwindow.cpp" line="375"/>
<source>Info about %1</source>
<translation>Informações sobre %1</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="364"/>
+ <location filename="src/mainwindow.cpp" line="383"/>
<source>Search</source>
<translation>Pesquisar</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="383"/>
+ <location filename="src/mainwindow.cpp" line="402"/>
<source>Mute volume</source>
<translation>Volume mudo</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="412"/>
- <location filename="src/mainwindow.cpp" line="1365"/>
+ <location filename="src/mainwindow.cpp" line="431"/>
+ <location filename="src/mainwindow.cpp" line="1406"/>
<source>&Downloads</source>
<translation>&Downloads</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="413"/>
+ <location filename="src/mainwindow.cpp" line="432"/>
<source>Show details about video downloads</source>
<translation>Mostrar detalhes sobre os downloads de vídeo</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="421"/>
+ <location filename="src/mainwindow.cpp" line="440"/>
<source>&Download</source>
<translation>&Download</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="422"/>
+ <location filename="src/mainwindow.cpp" line="441"/>
<source>Download the current video</source>
<translation>Baixar o vídeo atual</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="441"/>
+ <location filename="src/mainwindow.cpp" line="458"/>
+ <source>&Subscribe to Channel</source>
+ <translation>A&ssinar um canal</translation>
+ </message>
+ <message>
+ <location filename="src/mainwindow.cpp" line="465"/>
<source>Share the current video using %1</source>
<translation>Compartilhar o vídeo atual usando %1</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="458"/>
+ <location filename="src/mainwindow.cpp" line="482"/>
<source>&Email</source>
<translation>&E-mail</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="459"/>
+ <location filename="src/mainwindow.cpp" line="483"/>
<source>Email</source>
<translation>E-mail</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="463"/>
+ <location filename="src/mainwindow.cpp" line="487"/>
<source>&Close</source>
<translation>&Fechar</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="473"/>
+ <location filename="src/mainwindow.cpp" line="497"/>
<source>&Float on Top</source>
<translation>&Sempre Acima</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="478"/>
+ <location filename="src/mainwindow.cpp" line="502"/>
<source>&Stop After This Video</source>
<translation>&Parar Após Este Vídeo</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="485"/>
+ <location filename="src/mainwindow.cpp" line="509"/>
<source>&Report an Issue...</source>
<translation>&Relatar um problema...</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="489"/>
+ <location filename="src/mainwindow.cpp" line="513"/>
<source>&Refine Search...</source>
<translation>&Refinar Pesquisa...</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="501"/>
+ <location filename="src/mainwindow.cpp" line="525"/>
<source>More...</source>
- <translation type="unfinished"/>
+ <translation>Mais...</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="504"/>
+ <location filename="src/mainwindow.cpp" line="528"/>
<source>&Related Videos</source>
- <translation type="unfinished"/>
+ <translation>Vídeos &relacionados</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="506"/>
+ <location filename="src/mainwindow.cpp" line="530"/>
<source>Watch videos related to the current one</source>
- <translation type="unfinished"/>
+ <translation>Assistir vídeos relacionados à atual</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="544"/>
+ <location filename="src/mainwindow.cpp" line="553"/>
<source>&Application</source>
<translation>&Aplicação</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="515"/>
+ <location filename="src/mainwindow.cpp" line="537"/>
<source>Buy %1...</source>
<translation>Adquirir %1...</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="558"/>
+ <location filename="src/mainwindow.cpp" line="567"/>
<source>&Playback</source>
<translation>&Reprodução</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="572"/>
+ <location filename="src/mainwindow.cpp" line="581"/>
<source>&Playlist</source>
<translation>&Playlist</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="581"/>
+ <location filename="src/mainwindow.cpp" line="590"/>
<source>&Video</source>
<translation>&Vídeo</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="594"/>
+ <location filename="src/mainwindow.cpp" line="605"/>
<source>&View</source>
<translation>&Visualizar</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="601"/>
+ <location filename="src/mainwindow.cpp" line="612"/>
<source>&Share</source>
<translation>&Compartilhar</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="615"/>
+ <location filename="src/mainwindow.cpp" line="626"/>
<source>&Help</source>
<translation>&Ajuda</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="690"/>
+ <location filename="src/mainwindow.cpp" line="701"/>
<source>Press %1 to raise the volume, %2 to lower it</source>
<translation>Pressione %1 para aumentar o volume, %2 para diminui-lo</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="889"/>
- <location filename="src/mainwindow.cpp" line="895"/>
+ <location filename="src/mainwindow.cpp" line="910"/>
+ <location filename="src/mainwindow.cpp" line="916"/>
<source>Opening %1</source>
<translation>Abrindo %1</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="936"/>
+ <location filename="src/mainwindow.cpp" line="959"/>
<source>Do you want to exit %1 with a download in progress?</source>
<translation>Você deseja sair de "%1" com uma transferência em curso?</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="937"/>
+ <location filename="src/mainwindow.cpp" line="960"/>
<source>If you close %1 now, this download will be cancelled.</source>
<translation>Se você fechar %1 agora, este download será cancelado.</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="942"/>
+ <location filename="src/mainwindow.cpp" line="965"/>
<source>Close and cancel download</source>
<translation>Fechar e cancelar download</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="943"/>
+ <location filename="src/mainwindow.cpp" line="966"/>
<source>Wait for download to finish</source>
<translation>Aguardar o download terminar</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="1102"/>
+ <location filename="src/mainwindow.cpp" line="1125"/>
<source>Leave &Full Screen</source>
<translation>Deixar Em &Tela Cheia</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="1475"/>
+ <location filename="src/mainwindow.cpp" line="1515"/>
<source>%1 version %2 is now available.</source>
<translation>%1 versão %2 está agora disponível.</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="1479"/>
+ <location filename="src/mainwindow.cpp" line="1519"/>
<source>Remind me later</source>
<translation>Lembrar mais tarde</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="1480"/>
+ <location filename="src/mainwindow.cpp" line="1520"/>
<source>Update</source>
<translation>Atualizar</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="982"/>
+ <location filename="src/mainwindow.cpp" line="1005"/>
<source>Error: %1</source>
<translation>Erro: %1</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="222"/>
+ <location filename="src/mainwindow.cpp" line="246"/>
<source>P&revious</source>
<translation>Ante&rior</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="223"/>
+ <location filename="src/mainwindow.cpp" line="247"/>
<source>Go back to the previous track</source>
<translation>Ir para a faixa anterior</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="262"/>
+ <location filename="src/mainwindow.cpp" line="281"/>
<source>&Compact Mode</source>
<translation>Modo &Compacto</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="275"/>
+ <location filename="src/mainwindow.cpp" line="294"/>
<source>Open the &YouTube Page</source>
<translation>Abrir a Página do &YouTube</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="282"/>
+ <location filename="src/mainwindow.cpp" line="301"/>
<source>Copy the YouTube &Link</source>
<translation>Copiar o &Link do YouTube</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="289"/>
+ <location filename="src/mainwindow.cpp" line="308"/>
<source>Copy the Video Stream &URL</source>
<translation>Copiar a &URL do Stream do Vídeo</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="296"/>
+ <location filename="src/mainwindow.cpp" line="315"/>
<source>Find Video &Parts</source>
<translation>Localizar &Parte Do Vídeo</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="324"/>
+ <location filename="src/mainwindow.cpp" line="343"/>
<source>&Clear Recent Searches</source>
<translation>&Limpar Buscas Recentes</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="348"/>
+ <location filename="src/mainwindow.cpp" line="367"/>
<source>Make a &Donation</source>
<translation>Faça uma &Doação</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="405"/>
+ <location filename="src/mainwindow.cpp" line="424"/>
<source>&Manually Start Playing</source>
<translation>Iniciar &Manualmente A Reprodução</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="406"/>
+ <location filename="src/mainwindow.cpp" line="425"/>
<source>Manually start playing videos</source>
<translation>Iniciar manualmente a reprodução de vídeos</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="728"/>
+ <location filename="src/mainwindow.cpp" line="739"/>
<source>Choose your content location</source>
- <translation type="unfinished"/>
+ <translation>Escolher seu conteúdo local</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="1002"/>
+ <location filename="src/mainwindow.cpp" line="1025"/>
<source>&Play</source>
<translation>&Reproduzir</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="1003"/>
+ <location filename="src/mainwindow.cpp" line="1026"/>
<source>Resume playback</source>
<translation>Continuar reprodução</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="1236"/>
+ <location filename="src/mainwindow.cpp" line="1277"/>
<source>Remaining time: %1</source>
<translation>Tempo restante: %1</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="1294"/>
+ <location filename="src/mainwindow.cpp" line="1335"/>
<source>Volume at %1%</source>
<translation>Volume a %1%</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="1300"/>
+ <location filename="src/mainwindow.cpp" line="1341"/>
<source>Volume is muted</source>
<translation>Volume está mudo</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="1303"/>
+ <location filename="src/mainwindow.cpp" line="1344"/>
<source>Volume is unmuted</source>
<translation>Volume não está mudo</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="1310"/>
+ <location filename="src/mainwindow.cpp" line="1351"/>
<source>Maximum video definition set to %1</source>
<translation>Máxima definição de vídeo definida para %1</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="1351"/>
+ <location filename="src/mainwindow.cpp" line="1392"/>
<source>Your privacy is now safe</source>
<translation>Sua privacidade está agora segura</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="1366"/>
+ <location filename="src/mainwindow.cpp" line="1407"/>
<source>Downloads complete</source>
<translation>Downloads finalizados</translation>
</message>
<context>
<name>MediaView</name>
<message>
- <location filename="src/mediaview.cpp" line="553"/>
+ <location filename="src/mediaview.cpp" line="563"/>
<source>You can now paste the YouTube link into another application</source>
<translation>Agora você pode colar o link do YouTube em outro programa</translation>
</message>
<message>
- <location filename="src/mediaview.cpp" line="561"/>
+ <location filename="src/mediaview.cpp" line="571"/>
<source>You can now paste the video stream URL into another application</source>
<translation>Agora você pode colar a URL do stream de vídeo em outro programa</translation>
</message>
<message>
- <location filename="src/mediaview.cpp" line="562"/>
+ <location filename="src/mediaview.cpp" line="572"/>
<source>The link will be valid only for a limited time.</source>
<translation>O link só será válido por um tempo limitado.</translation>
</message>
<message>
- <location filename="src/mediaview.cpp" line="636"/>
+ <location filename="src/mediaview.cpp" line="650"/>
<source>This is just the demo version of %1.</source>
<translation>Esta é apenas a versão demonstação de %1.</translation>
</message>
<message>
- <location filename="src/mediaview.cpp" line="637"/>
+ <location filename="src/mediaview.cpp" line="651"/>
<source>It allows you to test the application and see if it works for you.</source>
<translation>Ele permite que você teste o aplicativo e veja se ele funciona para você.</translation>
</message>
<message>
- <location filename="src/mediaview.cpp" line="667"/>
+ <location filename="src/mediaview.cpp" line="681"/>
<source>Continue</source>
<translation>Continuar</translation>
</message>
<message>
- <location filename="src/mediaview.cpp" line="756"/>
+ <location filename="src/mediaview.cpp" line="772"/>
<source>of</source>
<comment>Used in video parts, as in '2 of 3'</comment>
<translation>de</translation>
</message>
<message>
- <location filename="src/mediaview.cpp" line="768"/>
+ <location filename="src/mediaview.cpp" line="785"/>
<source>part</source>
<comment>This is for video parts, as in 'Cool video - part 1'</comment>
<translation>parte</translation>
</message>
<message>
- <location filename="src/mediaview.cpp" line="770"/>
+ <location filename="src/mediaview.cpp" line="787"/>
<source>episode</source>
<comment>This is for video parts, as in 'Cool series - episode 1'</comment>
<translation>epsódio</translation>
</message>
<message>
- <location filename="src/mediaview.cpp" line="847"/>
+ <location filename="src/mediaview.cpp" line="868"/>
<source>Sent from %1</source>
<translation>Envido de %1</translation>
</message>
<message>
- <location filename="src/mediaview.cpp" line="644"/>
+ <location filename="src/mediaview.cpp" line="899"/>
+ <source>Unsubscribe from %1</source>
+ <translation>Cancelar a assinatura de %1</translation>
+ </message>
+ <message>
+ <location filename="src/mediaview.cpp" line="903"/>
+ <source>Subscribe to %1</source>
+ <translation>Assinar %1</translation>
+ </message>
+ <message>
+ <location filename="src/mediaview.cpp" line="658"/>
<source>Get the full version</source>
<translation>Obter a versão completa</translation>
</message>
<message>
- <location filename="src/mediaview.cpp" line="681"/>
+ <location filename="src/mediaview.cpp" line="695"/>
<source>Downloading %1</source>
<translation>Baixando %1</translation>
</message>
<message>
<location filename="local/src/updatedialog.cpp" line="21"/>
<source>A new version of %1 is available!</source>
- <translation type="unfinished"/>
+ <translation>Uma nova versão do %1 está disponível!</translation>
</message>
<message>
<location filename="local/src/updatedialog.cpp" line="28"/>
<source>%1 %2 is now available. You have %3.</source>
- <translation type="unfinished"/>
+ <translation>%1 %2 está disponível. Você está usando %3.</translation>
</message>
<message>
<location filename="local/src/updatedialog.cpp" line="33"/>
<source>Would you like to download it now?</source>
- <translation type="unfinished"/>
+ <translation>Gostaria de fazer o download agora?</translation>
</message>
<message>
<location filename="local/src/updatedialog.cpp" line="39"/>
<source>Skip This Version</source>
- <translation type="unfinished"/>
+ <translation>Pular esta versão.</translation>
</message>
<message>
<location filename="local/src/updatedialog.cpp" line="43"/>
<source>Remind Me Later</source>
- <translation type="unfinished"/>
+ <translation>Me lembre mais tarde.</translation>
</message>
<message>
<location filename="local/src/updatedialog.cpp" line="47"/>
<source>Install Update</source>
- <translation type="unfinished"/>
+ <translation>Instalar atualização.</translation>
</message>
</context>
<context>
<message>
<location filename="local/src/pastelineedit.cpp" line="6"/>
<source>Paste</source>
- <translation type="unfinished"/>
+ <translation>Colar.</translation>
</message>
</context>
<context>
<name>PlaylistItemDelegate</name>
<message>
- <location filename="src/playlistitemdelegate.cpp" line="159"/>
+ <location filename="src/playlistitemdelegate.cpp" line="177"/>
<source>%1 views</source>
<translation>%1 visualizações</translation>
</message>
<message>
- <location filename="src/playlistitemdelegate.cpp" line="285"/>
+ <location filename="src/playlistitemdelegate.cpp" line="292"/>
<source>%1 of %2 (%3) — %4</source>
<translation>%1 de %2 (%3) — %4</translation>
</message>
<message>
- <location filename="src/playlistitemdelegate.cpp" line="292"/>
+ <location filename="src/playlistitemdelegate.cpp" line="299"/>
<source>Preparing</source>
<translation>Preparando</translation>
</message>
<message>
- <location filename="src/playlistitemdelegate.cpp" line="294"/>
+ <location filename="src/playlistitemdelegate.cpp" line="301"/>
<source>Failed</source>
<translation>Falhou</translation>
</message>
<message>
- <location filename="src/playlistitemdelegate.cpp" line="296"/>
+ <location filename="src/playlistitemdelegate.cpp" line="303"/>
<source>Completed</source>
<translation>Finalizado</translation>
</message>
<message>
- <location filename="src/playlistitemdelegate.cpp" line="298"/>
+ <location filename="src/playlistitemdelegate.cpp" line="305"/>
<source>Stopped</source>
<translation>Parado</translation>
</message>
<message>
- <location filename="src/playlistitemdelegate.cpp" line="334"/>
+ <location filename="src/playlistitemdelegate.cpp" line="341"/>
<source>Stop downloading</source>
<translation>Parar download</translation>
</message>
<message>
- <location filename="src/playlistitemdelegate.cpp" line="344"/>
+ <location filename="src/playlistitemdelegate.cpp" line="351"/>
<source>Show in %1</source>
<translation>Mostrar em %1</translation>
</message>
<message>
- <location filename="src/playlistitemdelegate.cpp" line="346"/>
+ <location filename="src/playlistitemdelegate.cpp" line="353"/>
<source>Open parent folder</source>
<translation>Abrir pasta pai</translation>
</message>
<message>
- <location filename="src/playlistitemdelegate.cpp" line="355"/>
+ <location filename="src/playlistitemdelegate.cpp" line="362"/>
<source>Restart downloading</source>
<translation>Reiniciar download</translation>
</message>
<message>
<location filename="src/regionsview.cpp" line="19"/>
<source>Done</source>
- <translation type="unfinished"/>
+ <translation>Feito</translation>
</message>
</context>
<context>
<context>
<name>SearchView</name>
<message>
- <location filename="src/searchview.cpp" line="71"/>
+ <location filename="src/searchview.cpp" line="66"/>
<source>Welcome to <a href='%1'>%2</a>,</source>
<translation>Bem-vindo ao <a href='%1'>%2</a>,</translation>
</message>
<message>
- <location filename="src/searchview.cpp" line="50"/>
+ <location filename="src/searchview.cpp" line="161"/>
<source>Get the full version</source>
<translation>Obter a versão completa</translation>
</message>
<message>
- <location filename="src/searchview.cpp" line="85"/>
+ <location filename="src/searchview.cpp" line="80"/>
<source>Enter</source>
<extracomment>"Enter", as in "type". The whole phrase says: "Enter a keyword to start watching videos"</extracomment>
<translation>Digite</translation>
</message>
<message>
- <location filename="src/searchview.cpp" line="90"/>
+ <location filename="src/searchview.cpp" line="85"/>
<source>a keyword</source>
<translation>uma palavra chave</translation>
</message>
<message>
- <location filename="src/searchview.cpp" line="91"/>
+ <location filename="src/searchview.cpp" line="86"/>
<source>a channel</source>
<translation>um canal</translation>
</message>
<message>
- <location filename="src/searchview.cpp" line="96"/>
+ <location filename="src/searchview.cpp" line="91"/>
<source>to start watching videos.</source>
<translation>para começar a assistir vídeos.</translation>
</message>
<message>
- <location filename="src/searchview.cpp" line="120"/>
+ <location filename="src/searchview.cpp" line="115"/>
<source>Watch</source>
<translation>Assistir</translation>
</message>
<message>
- <location filename="src/searchview.cpp" line="138"/>
+ <location filename="src/searchview.cpp" line="133"/>
<source>Recent keywords</source>
<translation>Palavra-chave recente</translation>
</message>
<message>
- <location filename="src/searchview.cpp" line="151"/>
+ <location filename="src/searchview.cpp" line="146"/>
<source>Recent channels</source>
<translation>Canais recentes</translation>
</message>
<context>
<name>SidebarHeader</name>
<message>
- <location filename="src/sidebarheader.cpp" line="16"/>
- <location filename="src/sidebarheader.cpp" line="23"/>
+ <location filename="src/sidebarheader.cpp" line="19"/>
+ <location filename="src/sidebarheader.cpp" line="26"/>
<source>&Back</source>
<translation>&Voltar</translation>
</message>
<message>
<location filename="src/sidebarheader.cpp" line="57"/>
<source>Forward to %1</source>
- <translation type="unfinished"/>
+ <translation>Avançar para %1</translation>
</message>
<message>
<location filename="src/sidebarheader.cpp" line="70"/>
<source>Back to %1</source>
- <translation type="unfinished"/>
+ <translation>Voltar para %1</translation>
</message>
</context>
<context>
<message>
<location filename="src/standardfeedsview.cpp" line="85"/>
<source>Most Popular</source>
- <translation type="unfinished"/>
- </message>
- <message>
- <location filename="src/standardfeedsview.cpp" line="86"/>
- <source>Featured</source>
- <translation type="unfinished"/>
+ <translation>Mais Popular</translation>
</message>
<message>
<location filename="src/standardfeedsview.cpp" line="87"/>
<source>Most Shared</source>
- <translation type="unfinished"/>
+ <translation>Mais Compartilhado</translation>
</message>
<message>
<location filename="src/standardfeedsview.cpp" line="88"/>
<source>Most Discussed</source>
- <translation type="unfinished"/>
+ <translation>Mais Discutido</translation>
</message>
<message>
<location filename="src/standardfeedsview.cpp" line="89"/>
<source>Top Rated</source>
- <translation type="unfinished"/>
+ <translation>Mais Populares</translation>
+ </message>
+ <message>
+ <location filename="src/standardfeedsview.cpp" line="90"/>
+ <source>All Time Popular</source>
+ <translation>Todos Os Tempos Populares</translation>
</message>
</context>
<context>
<name>Video</name>
<message>
- <location filename="src/video.cpp" line="213"/>
+ <location filename="src/video.cpp" line="215"/>
<source>Cannot get video stream for %1</source>
<translation>Não foi possível obter stream de vídeo de %1</translation>
</message>
<message>
- <location filename="src/video.cpp" line="231"/>
+ <location filename="src/video.cpp" line="233"/>
<source>Network error: %1 for %2</source>
<translation>Erro na rede: %1 para %2</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="8"/>
<source>Algeria</source>
- <translation type="unfinished"/>
+ <translation>Argélia</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="9"/>
<source>Argentina</source>
- <translation type="unfinished"/>
+ <translation>Argentina</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="10"/>
<source>Australia</source>
- <translation type="unfinished"/>
+ <translation>Austrália</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="11"/>
<source>Belgium</source>
- <translation type="unfinished"/>
+ <translation>Bélgica</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="12"/>
<source>Brazil</source>
- <translation type="unfinished"/>
+ <translation>Brasil</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="13"/>
<source>Canada</source>
- <translation type="unfinished"/>
+ <translation>Canadá</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="14"/>
<source>Chile</source>
- <translation type="unfinished"/>
+ <translation>Chile</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="15"/>
<source>Colombia</source>
- <translation type="unfinished"/>
+ <translation>Colômbia</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="16"/>
<source>Czech Republic</source>
- <translation type="unfinished"/>
+ <translation>República Tcheca</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="17"/>
<source>Egypt</source>
- <translation type="unfinished"/>
+ <translation>Egito</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="18"/>
<source>France</source>
- <translation type="unfinished"/>
+ <translation>França</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="19"/>
<source>Germany</source>
- <translation type="unfinished"/>
+ <translation>Alemanha</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="20"/>
<source>Ghana</source>
- <translation type="unfinished"/>
+ <translation>Gana</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="21"/>
<source>Greece</source>
- <translation type="unfinished"/>
+ <translation>Grécia</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="22"/>
<source>Hong Kong</source>
- <translation type="unfinished"/>
+ <translation>Hong Kong</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="23"/>
<source>Hungary</source>
- <translation type="unfinished"/>
+ <translation>Hungria</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="24"/>
<source>India</source>
- <translation type="unfinished"/>
+ <translation>Índia</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="25"/>
<source>Indonesia</source>
- <translation type="unfinished"/>
+ <translation>Indonésia</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="26"/>
<source>Ireland</source>
- <translation type="unfinished"/>
+ <translation>Irlanda</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="27"/>
<source>Israel</source>
- <translation type="unfinished"/>
+ <translation>Israel</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="28"/>
<source>Italy</source>
- <translation type="unfinished"/>
+ <translation>Itália</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="29"/>
<source>Japan</source>
- <translation type="unfinished"/>
+ <translation>Japão</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="30"/>
<source>Jordan</source>
- <translation type="unfinished"/>
+ <translation>Jordânia</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="31"/>
<source>Kenya</source>
- <translation type="unfinished"/>
+ <translation>Quênia</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="32"/>
<source>Malaysia</source>
- <translation type="unfinished"/>
+ <translation>Malásia</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="33"/>
<source>Mexico</source>
- <translation type="unfinished"/>
+ <translation>México</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="34"/>
<source>Morocco</source>
- <translation type="unfinished"/>
+ <translation>Marrocos</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="35"/>
<source>Netherlands</source>
- <translation type="unfinished"/>
+ <translation>Holanda</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="36"/>
<source>New Zealand</source>
- <translation type="unfinished"/>
+ <translation>Nova Zelândia</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="37"/>
<source>Nigeria</source>
- <translation type="unfinished"/>
+ <translation>Nigéria</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="38"/>
<source>Peru</source>
- <translation type="unfinished"/>
+ <translation>Peru</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="39"/>
<source>Philippines</source>
- <translation type="unfinished"/>
+ <translation>Filipinas</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="40"/>
<source>Poland</source>
- <translation type="unfinished"/>
+ <translation>Polônia</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="41"/>
<source>Russia</source>
- <translation type="unfinished"/>
+ <translation>Rússia</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="42"/>
<source>Saudi Arabia</source>
- <translation type="unfinished"/>
+ <translation>Arábia Saudita</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="43"/>
<source>Singapore</source>
- <translation type="unfinished"/>
+ <translation>Singapura</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="44"/>
<source>South Africa</source>
- <translation type="unfinished"/>
+ <translation>África do Sul</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="45"/>
<source>South Korea</source>
- <translation type="unfinished"/>
+ <translation>Coréia do Sul</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="46"/>
<source>Spain</source>
- <translation type="unfinished"/>
+ <translation>Espanha</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="47"/>
<source>Sweden</source>
- <translation type="unfinished"/>
+ <translation>Suécia</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="48"/>
<source>Taiwan</source>
- <translation type="unfinished"/>
+ <translation>Taiwan</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="49"/>
<source>Tunisia</source>
- <translation type="unfinished"/>
+ <translation>Tunísia</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="50"/>
<source>Turkey</source>
- <translation type="unfinished"/>
+ <translation>Turquia</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="51"/>
<source>Uganda</source>
- <translation type="unfinished"/>
+ <translation>Uganda</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="52"/>
<source>United Arab Emirates</source>
- <translation type="unfinished"/>
+ <translation>Emirados Árabes Unidos</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="53"/>
<source>United Kingdom</source>
- <translation type="unfinished"/>
+ <translation>Reino Unido</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="54"/>
<source>Yemen</source>
- <translation type="unfinished"/>
+ <translation>Iémen</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="128"/>
<source>Worldwide</source>
- <translation type="unfinished"/>
+ <translation>Mundial</translation>
</message>
</context>
</TS>
\ No newline at end of file
<translation>Cumpără Licență</translation>
</message>
</context>
+<context>
+ <name>ChannelAggregator</name>
+ <message>
+ <location filename="src/channelaggregator.cpp" line="110"/>
+ <source>By %1</source>
+ <translation type="unfinished"/>
+ </message>
+ <message numerus="yes">
+ <location filename="src/channelaggregator.cpp" line="112"/>
+ <source>You have %n new video(s)</source>
+ <translation type="unfinished"><numerusform></numerusform><numerusform></numerusform><numerusform></numerusform></translation>
+ </message>
+</context>
+<context>
+ <name>ChannelItemDelegate</name>
+ <message>
+ <location filename="src/channelitemdelegate.cpp" line="46"/>
+ <source>All Videos</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="src/channelitemdelegate.cpp" line="63"/>
+ <source>Unwatched Videos</source>
+ <translation type="unfinished"/>
+ </message>
+</context>
+<context>
+ <name>ChannelView</name>
+ <message>
+ <location filename="src/channelview.cpp" line="75"/>
+ <source>Mark all as watched</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="src/channelview.cpp" line="83"/>
+ <source>Show Updated</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="src/channelview.cpp" line="95"/>
+ <source>Name</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="src/channelview.cpp" line="102"/>
+ <source>Last Updated</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="src/channelview.cpp" line="109"/>
+ <source>Last Added</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="src/channelview.cpp" line="116"/>
+ <source>Last Watched</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="src/channelview.cpp" line="123"/>
+ <source>Most Watched</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="src/channelview.cpp" line="131"/>
+ <source>Sort by</source>
+ <translation>Sortează după</translation>
+ </message>
+ <message>
+ <location filename="src/channelview.cpp" line="190"/>
+ <source>All Videos</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="src/channelview.cpp" line="194"/>
+ <source>Unwatched Videos</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="src/channelview.cpp" line="206"/>
+ <source>There are no updated subscriptions at this time.</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="src/channelview.cpp" line="208"/>
+ <source>You have no subscriptions. Use the star symbol to subscribe to channels.</source>
+ <translation type="unfinished"/>
+ </message>
+</context>
<context>
<name>ClearButton</name>
<message>
<context>
<name>HomeView</name>
<message>
- <location filename="src/homeview.cpp" line="33"/>
+ <location filename="src/homeview.cpp" line="38"/>
<source>Search</source>
<translation>Caută</translation>
</message>
<message>
- <location filename="src/homeview.cpp" line="35"/>
+ <location filename="src/homeview.cpp" line="40"/>
<source>Find videos and channels by keyword</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="src/homeview.cpp" line="40"/>
+ <location filename="src/homeview.cpp" line="45"/>
<source>Browse</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="src/homeview.cpp" line="42"/>
+ <location filename="src/homeview.cpp" line="47"/>
<source>Browse videos by category</source>
<translation type="unfinished"/>
</message>
+ <message>
+ <location filename="src/homeview.cpp" line="51"/>
+ <source>Subscriptions</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="src/homeview.cpp" line="53"/>
+ <source>Channel subscriptions</source>
+ <translation type="unfinished"/>
+ </message>
<message>
<location filename="src/homeview.h" line="22"/>
<source>Make yourself comfortable</source>
<context>
<name>LoadingWidget</name>
<message>
- <location filename="src/loadingwidget.cpp" line="90"/>
+ <location filename="src/loadingwidget.cpp" line="88"/>
<source>Error</source>
<translation>Eroare</translation>
</message>
<context>
<name>MainWindow</name>
<message>
- <location filename="src/mainwindow.cpp" line="213"/>
+ <location filename="src/mainwindow.cpp" line="237"/>
<source>&Stop</source>
<translation>&Stop</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="214"/>
+ <location filename="src/mainwindow.cpp" line="238"/>
<source>Stop playback and go back to the search view</source>
<translation>Oprește redarea și întoarce-te la căsuța de căutare</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="232"/>
+ <location filename="src/mainwindow.cpp" line="253"/>
<source>S&kip</source>
<translation>O&mite</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="233"/>
+ <location filename="src/mainwindow.cpp" line="254"/>
<source>Skip to the next video</source>
<translation>Treci la videoclipul următor</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="239"/>
- <location filename="src/mainwindow.cpp" line="989"/>
+ <location filename="src/mainwindow.cpp" line="260"/>
+ <location filename="src/mainwindow.cpp" line="1012"/>
<source>&Pause</source>
<translation>&Pauză</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="240"/>
- <location filename="src/mainwindow.cpp" line="990"/>
+ <location filename="src/mainwindow.cpp" line="261"/>
+ <location filename="src/mainwindow.cpp" line="1013"/>
<source>Pause playback</source>
<translation>Pune redarea pe pauză</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="246"/>
+ <location filename="src/mainwindow.cpp" line="267"/>
<source>&Full Screen</source>
<translation>Ec&ran complet</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="247"/>
+ <location filename="src/mainwindow.cpp" line="268"/>
<source>Go full screen</source>
<translation>Vizualizează pe tot ecranul</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="263"/>
+ <location filename="src/mainwindow.cpp" line="282"/>
<source>Hide the playlist and the toolbar</source>
<translation>Ascunde lista de redare și bara de unelte</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="276"/>
+ <location filename="src/mainwindow.cpp" line="295"/>
<source>Go to the YouTube video page and pause playback</source>
<translation>Deschide pagina de pe YouTube si pune pauză</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="283"/>
+ <location filename="src/mainwindow.cpp" line="302"/>
<source>Copy the current video YouTube link to the clipboard</source>
<translation>Copiază adresa videoclipului YouTube curent în clipboard</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="290"/>
+ <location filename="src/mainwindow.cpp" line="309"/>
<source>Copy the current video stream URL to the clipboard</source>
<translation>Copiază adresa fluxului video curent în clipboard</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="297"/>
+ <location filename="src/mainwindow.cpp" line="316"/>
<source>Find other video parts hopefully in the right order</source>
<translation>Caută alte părți ale videoclipului</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="303"/>
+ <location filename="src/mainwindow.cpp" line="322"/>
<source>&Remove</source>
<translation>Ș&terge</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="304"/>
+ <location filename="src/mainwindow.cpp" line="323"/>
<source>Remove the selected videos from the playlist</source>
<translation>Șterge videoclipul selectat din lista de redare</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="310"/>
+ <location filename="src/mainwindow.cpp" line="329"/>
<source>Move &Up</source>
<translation>Mută în &sus</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="311"/>
+ <location filename="src/mainwindow.cpp" line="330"/>
<source>Move up the selected videos in the playlist</source>
<translation>Mută în sus videoclipul selectat</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="317"/>
+ <location filename="src/mainwindow.cpp" line="336"/>
<source>Move &Down</source>
<translation>Mută în &jos</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="318"/>
+ <location filename="src/mainwindow.cpp" line="337"/>
<source>Move down the selected videos in the playlist</source>
<translation>Mută în jos videoclipul selectat</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="329"/>
+ <location filename="src/mainwindow.cpp" line="348"/>
<source>Clear the search history. Cannot be undone.</source>
<translation>Curăță istoricul de căutări. Acțiune ireversibilă.</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="334"/>
+ <location filename="src/mainwindow.cpp" line="353"/>
<source>&Quit</source>
<translation>&Ieșire</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="337"/>
+ <location filename="src/mainwindow.cpp" line="356"/>
<source>Bye</source>
<translation>La revedere</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="341"/>
+ <location filename="src/mainwindow.cpp" line="360"/>
<source>&Website</source>
<translation>Site &Web</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="343"/>
+ <location filename="src/mainwindow.cpp" line="362"/>
<source>%1 on the Web</source>
<translation>%1 pe Web</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="349"/>
+ <location filename="src/mainwindow.cpp" line="368"/>
<source>Please support the continued development of %1</source>
<translation>Te rog să susții dezvoltarea aplicației %1</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="354"/>
+ <location filename="src/mainwindow.cpp" line="373"/>
<source>&About</source>
<translation>&Despre</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="356"/>
+ <location filename="src/mainwindow.cpp" line="375"/>
<source>Info about %1</source>
<translation>Informații despre %1</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="364"/>
+ <location filename="src/mainwindow.cpp" line="383"/>
<source>Search</source>
<translation>Căutare</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="383"/>
+ <location filename="src/mainwindow.cpp" line="402"/>
<source>Mute volume</source>
<translation>Oprire sunet</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="412"/>
- <location filename="src/mainwindow.cpp" line="1365"/>
+ <location filename="src/mainwindow.cpp" line="431"/>
+ <location filename="src/mainwindow.cpp" line="1406"/>
<source>&Downloads</source>
<translation>&Descărcări</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="413"/>
+ <location filename="src/mainwindow.cpp" line="432"/>
<source>Show details about video downloads</source>
<translation>Arată detalii despre descărcările video</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="421"/>
+ <location filename="src/mainwindow.cpp" line="440"/>
<source>&Download</source>
<translation>&Descărcare</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="422"/>
+ <location filename="src/mainwindow.cpp" line="441"/>
<source>Download the current video</source>
<translation>Descarcă videoclipul curent</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="441"/>
+ <location filename="src/mainwindow.cpp" line="458"/>
+ <source>&Subscribe to Channel</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="src/mainwindow.cpp" line="465"/>
<source>Share the current video using %1</source>
<translation>Împărtășește videoclipul curent folosind %1</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="458"/>
+ <location filename="src/mainwindow.cpp" line="482"/>
<source>&Email</source>
<translation>&Email</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="459"/>
+ <location filename="src/mainwindow.cpp" line="483"/>
<source>Email</source>
<translation>Email</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="463"/>
+ <location filename="src/mainwindow.cpp" line="487"/>
<source>&Close</source>
<translation>În&chide</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="473"/>
+ <location filename="src/mainwindow.cpp" line="497"/>
<source>&Float on Top</source>
<translation>&Detașează</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="478"/>
+ <location filename="src/mainwindow.cpp" line="502"/>
<source>&Stop After This Video</source>
<translation>&Oprește După Acest Videoclip</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="485"/>
+ <location filename="src/mainwindow.cpp" line="509"/>
<source>&Report an Issue...</source>
<translation>&Raportează o problemă...</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="489"/>
+ <location filename="src/mainwindow.cpp" line="513"/>
<source>&Refine Search...</source>
<translation>&Căutare rafinată...</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="501"/>
+ <location filename="src/mainwindow.cpp" line="525"/>
<source>More...</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="504"/>
+ <location filename="src/mainwindow.cpp" line="528"/>
<source>&Related Videos</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="506"/>
+ <location filename="src/mainwindow.cpp" line="530"/>
<source>Watch videos related to the current one</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="544"/>
+ <location filename="src/mainwindow.cpp" line="553"/>
<source>&Application</source>
<translation>&Aplicație</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="515"/>
+ <location filename="src/mainwindow.cpp" line="537"/>
<source>Buy %1...</source>
<translation>Cumpără %1...</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="558"/>
+ <location filename="src/mainwindow.cpp" line="567"/>
<source>&Playback</source>
<translation>&Redare</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="572"/>
+ <location filename="src/mainwindow.cpp" line="581"/>
<source>&Playlist</source>
<translation>&Listă de redare</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="581"/>
+ <location filename="src/mainwindow.cpp" line="590"/>
<source>&Video</source>
<translation>&Video</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="594"/>
+ <location filename="src/mainwindow.cpp" line="605"/>
<source>&View</source>
<translation>Vi&zualizare</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="601"/>
+ <location filename="src/mainwindow.cpp" line="612"/>
<source>&Share</source>
<translation>Î&mpărtășește</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="615"/>
+ <location filename="src/mainwindow.cpp" line="626"/>
<source>&Help</source>
<translation>&Ajutor</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="690"/>
+ <location filename="src/mainwindow.cpp" line="701"/>
<source>Press %1 to raise the volume, %2 to lower it</source>
<translation>Apasă pe %1 pentru a da volumul mai tare sau pe %2 pentru a-l da mai încet</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="889"/>
- <location filename="src/mainwindow.cpp" line="895"/>
+ <location filename="src/mainwindow.cpp" line="910"/>
+ <location filename="src/mainwindow.cpp" line="916"/>
<source>Opening %1</source>
<translation>Deschidere %1</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="936"/>
+ <location filename="src/mainwindow.cpp" line="959"/>
<source>Do you want to exit %1 with a download in progress?</source>
<translation>Doriţi să ieșiți din %1 cu o descărcare în progres?</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="937"/>
+ <location filename="src/mainwindow.cpp" line="960"/>
<source>If you close %1 now, this download will be cancelled.</source>
<translation>Dacă ieșiți acum din %1, procesul de descărcare va fi anulat.</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="942"/>
+ <location filename="src/mainwindow.cpp" line="965"/>
<source>Close and cancel download</source>
<translation>Închide și anulează descărcarea</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="943"/>
+ <location filename="src/mainwindow.cpp" line="966"/>
<source>Wait for download to finish</source>
<translation>Așteaptă ca descărcarea să se încheie</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="1102"/>
+ <location filename="src/mainwindow.cpp" line="1125"/>
<source>Leave &Full Screen</source>
<translation>Ieși din Ec&ran Complet</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="1475"/>
+ <location filename="src/mainwindow.cpp" line="1515"/>
<source>%1 version %2 is now available.</source>
<translation>Versiunea %1 a %2 este acum disponibilă.</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="1479"/>
+ <location filename="src/mainwindow.cpp" line="1519"/>
<source>Remind me later</source>
<translation>Reamintește-mi mai târziu</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="1480"/>
+ <location filename="src/mainwindow.cpp" line="1520"/>
<source>Update</source>
<translation>Actualizează</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="982"/>
+ <location filename="src/mainwindow.cpp" line="1005"/>
<source>Error: %1</source>
<translation>Eroare: %1</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="222"/>
+ <location filename="src/mainwindow.cpp" line="246"/>
<source>P&revious</source>
<translation>&Anterioare</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="223"/>
+ <location filename="src/mainwindow.cpp" line="247"/>
<source>Go back to the previous track</source>
<translation>Mergi înapoi la piesa precedentă</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="262"/>
+ <location filename="src/mainwindow.cpp" line="281"/>
<source>&Compact Mode</source>
<translation>Modul &Compact</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="275"/>
+ <location filename="src/mainwindow.cpp" line="294"/>
<source>Open the &YouTube Page</source>
<translation>Deschide Pagina &YouTube</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="282"/>
+ <location filename="src/mainwindow.cpp" line="301"/>
<source>Copy the YouTube &Link</source>
<translation>Copiază &adresa videoclipului YouTube</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="289"/>
+ <location filename="src/mainwindow.cpp" line="308"/>
<source>Copy the Video Stream &URL</source>
<translation>Copiază adresa &fluxului video</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="296"/>
+ <location filename="src/mainwindow.cpp" line="315"/>
<source>Find Video &Parts</source>
<translation>Caută &Părți ale Videoclipului</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="324"/>
+ <location filename="src/mainwindow.cpp" line="343"/>
<source>&Clear Recent Searches</source>
<translation>Șt&erge Căutările Recente</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="348"/>
+ <location filename="src/mainwindow.cpp" line="367"/>
<source>Make a &Donation</source>
<translation>Fă o &Donație</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="405"/>
+ <location filename="src/mainwindow.cpp" line="424"/>
<source>&Manually Start Playing</source>
<translation>Pornește Redarea &Manual</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="406"/>
+ <location filename="src/mainwindow.cpp" line="425"/>
<source>Manually start playing videos</source>
<translation>Pornește redarea videoclipurilor manual</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="728"/>
+ <location filename="src/mainwindow.cpp" line="739"/>
<source>Choose your content location</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="1002"/>
+ <location filename="src/mainwindow.cpp" line="1025"/>
<source>&Play</source>
<translation>&Redare</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="1003"/>
+ <location filename="src/mainwindow.cpp" line="1026"/>
<source>Resume playback</source>
<translation>Rezumă redarea videoclipului</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="1236"/>
+ <location filename="src/mainwindow.cpp" line="1277"/>
<source>Remaining time: %1</source>
<translation>Timp rămas : %1</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="1294"/>
+ <location filename="src/mainwindow.cpp" line="1335"/>
<source>Volume at %1%</source>
<translation>Volum %1</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="1300"/>
+ <location filename="src/mainwindow.cpp" line="1341"/>
<source>Volume is muted</source>
<translation>Sunetul este oprit</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="1303"/>
+ <location filename="src/mainwindow.cpp" line="1344"/>
<source>Volume is unmuted</source>
<translation>Sunetul este pornit</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="1310"/>
+ <location filename="src/mainwindow.cpp" line="1351"/>
<source>Maximum video definition set to %1</source>
<translation>Rezoluția maxima a videoclipului este setată la %1</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="1351"/>
+ <location filename="src/mainwindow.cpp" line="1392"/>
<source>Your privacy is now safe</source>
<translation>Intimitatea dumneavoastră este acum în siguranță</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="1366"/>
+ <location filename="src/mainwindow.cpp" line="1407"/>
<source>Downloads complete</source>
<translation>Descărcări complete</translation>
</message>
<context>
<name>MediaView</name>
<message>
- <location filename="src/mediaview.cpp" line="553"/>
+ <location filename="src/mediaview.cpp" line="563"/>
<source>You can now paste the YouTube link into another application</source>
<translation>Acum poți adăuga adresa YouTube într-o altă aplicație</translation>
</message>
<message>
- <location filename="src/mediaview.cpp" line="561"/>
+ <location filename="src/mediaview.cpp" line="571"/>
<source>You can now paste the video stream URL into another application</source>
<translation>Acum poți adăuga adresa fluxului video într-o altă aplicație</translation>
</message>
<message>
- <location filename="src/mediaview.cpp" line="562"/>
+ <location filename="src/mediaview.cpp" line="572"/>
<source>The link will be valid only for a limited time.</source>
<translation>Adresa va fi validă doar pentru o perioadă limitată de timp.</translation>
</message>
<message>
- <location filename="src/mediaview.cpp" line="636"/>
+ <location filename="src/mediaview.cpp" line="650"/>
<source>This is just the demo version of %1.</source>
<translation>Aceasta este doar o versiune demo a %1.</translation>
</message>
<message>
- <location filename="src/mediaview.cpp" line="637"/>
+ <location filename="src/mediaview.cpp" line="651"/>
<source>It allows you to test the application and see if it works for you.</source>
<translation>Vă permite să testați aplicația și să vedeți dacă funcționează.</translation>
</message>
<message>
- <location filename="src/mediaview.cpp" line="667"/>
+ <location filename="src/mediaview.cpp" line="681"/>
<source>Continue</source>
<translation>Continuă</translation>
</message>
<message>
- <location filename="src/mediaview.cpp" line="756"/>
+ <location filename="src/mediaview.cpp" line="772"/>
<source>of</source>
<comment>Used in video parts, as in '2 of 3'</comment>
<translation>din</translation>
</message>
<message>
- <location filename="src/mediaview.cpp" line="768"/>
+ <location filename="src/mediaview.cpp" line="785"/>
<source>part</source>
<comment>This is for video parts, as in 'Cool video - part 1'</comment>
<translation>partea</translation>
</message>
<message>
- <location filename="src/mediaview.cpp" line="770"/>
+ <location filename="src/mediaview.cpp" line="787"/>
<source>episode</source>
<comment>This is for video parts, as in 'Cool series - episode 1'</comment>
<translation>episodul</translation>
</message>
<message>
- <location filename="src/mediaview.cpp" line="847"/>
+ <location filename="src/mediaview.cpp" line="868"/>
<source>Sent from %1</source>
<translation>Trimis din %1</translation>
</message>
<message>
- <location filename="src/mediaview.cpp" line="644"/>
+ <location filename="src/mediaview.cpp" line="899"/>
+ <source>Unsubscribe from %1</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="src/mediaview.cpp" line="903"/>
+ <source>Subscribe to %1</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="src/mediaview.cpp" line="658"/>
<source>Get the full version</source>
<translation>Obține versiunea integrală</translation>
</message>
<message>
- <location filename="src/mediaview.cpp" line="681"/>
+ <location filename="src/mediaview.cpp" line="695"/>
<source>Downloading %1</source>
<translation>Descărcare %1</translation>
</message>
<context>
<name>PlaylistItemDelegate</name>
<message>
- <location filename="src/playlistitemdelegate.cpp" line="159"/>
+ <location filename="src/playlistitemdelegate.cpp" line="177"/>
<source>%1 views</source>
<translation>%1 vizionări</translation>
</message>
<message>
- <location filename="src/playlistitemdelegate.cpp" line="285"/>
+ <location filename="src/playlistitemdelegate.cpp" line="292"/>
<source>%1 of %2 (%3) — %4</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="src/playlistitemdelegate.cpp" line="292"/>
+ <location filename="src/playlistitemdelegate.cpp" line="299"/>
<source>Preparing</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="src/playlistitemdelegate.cpp" line="294"/>
+ <location filename="src/playlistitemdelegate.cpp" line="301"/>
<source>Failed</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="src/playlistitemdelegate.cpp" line="296"/>
+ <location filename="src/playlistitemdelegate.cpp" line="303"/>
<source>Completed</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="src/playlistitemdelegate.cpp" line="298"/>
+ <location filename="src/playlistitemdelegate.cpp" line="305"/>
<source>Stopped</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="src/playlistitemdelegate.cpp" line="334"/>
+ <location filename="src/playlistitemdelegate.cpp" line="341"/>
<source>Stop downloading</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="src/playlistitemdelegate.cpp" line="344"/>
+ <location filename="src/playlistitemdelegate.cpp" line="351"/>
<source>Show in %1</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="src/playlistitemdelegate.cpp" line="346"/>
+ <location filename="src/playlistitemdelegate.cpp" line="353"/>
<source>Open parent folder</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="src/playlistitemdelegate.cpp" line="355"/>
+ <location filename="src/playlistitemdelegate.cpp" line="362"/>
<source>Restart downloading</source>
<translation type="unfinished"/>
</message>
<context>
<name>SearchView</name>
<message>
- <location filename="src/searchview.cpp" line="71"/>
+ <location filename="src/searchview.cpp" line="66"/>
<source>Welcome to <a href='%1'>%2</a>,</source>
<translation>Bine ați venit la <a href='%1'>%2</a>,</translation>
</message>
<message>
- <location filename="src/searchview.cpp" line="50"/>
+ <location filename="src/searchview.cpp" line="161"/>
<source>Get the full version</source>
<translation>Obține versiunea integrală</translation>
</message>
<message>
- <location filename="src/searchview.cpp" line="85"/>
+ <location filename="src/searchview.cpp" line="80"/>
<source>Enter</source>
<extracomment>"Enter", as in "type". The whole phrase says: "Enter a keyword to start watching videos"</extracomment>
<translation>Introduceți</translation>
</message>
<message>
- <location filename="src/searchview.cpp" line="90"/>
+ <location filename="src/searchview.cpp" line="85"/>
<source>a keyword</source>
<translation>un cuvânt cheie</translation>
</message>
<message>
- <location filename="src/searchview.cpp" line="91"/>
+ <location filename="src/searchview.cpp" line="86"/>
<source>a channel</source>
<translation>un canal</translation>
</message>
<message>
- <location filename="src/searchview.cpp" line="96"/>
+ <location filename="src/searchview.cpp" line="91"/>
<source>to start watching videos.</source>
<translation>pentru a începe să vizionați videoclipuri.</translation>
</message>
<message>
- <location filename="src/searchview.cpp" line="120"/>
+ <location filename="src/searchview.cpp" line="115"/>
<source>Watch</source>
<translation>Urmărește</translation>
</message>
<message>
- <location filename="src/searchview.cpp" line="138"/>
+ <location filename="src/searchview.cpp" line="133"/>
<source>Recent keywords</source>
<translation>Căutări recente</translation>
</message>
<message>
- <location filename="src/searchview.cpp" line="151"/>
+ <location filename="src/searchview.cpp" line="146"/>
<source>Recent channels</source>
<translation>Canale recente</translation>
</message>
<context>
<name>SidebarHeader</name>
<message>
- <location filename="src/sidebarheader.cpp" line="16"/>
- <location filename="src/sidebarheader.cpp" line="23"/>
+ <location filename="src/sidebarheader.cpp" line="19"/>
+ <location filename="src/sidebarheader.cpp" line="26"/>
<source>&Back</source>
<translation>Î&napoi</translation>
</message>
<source>Most Popular</source>
<translation type="unfinished"/>
</message>
- <message>
- <location filename="src/standardfeedsview.cpp" line="86"/>
- <source>Featured</source>
- <translation type="unfinished"/>
- </message>
<message>
<location filename="src/standardfeedsview.cpp" line="87"/>
<source>Most Shared</source>
<source>Top Rated</source>
<translation type="unfinished"/>
</message>
+ <message>
+ <location filename="src/standardfeedsview.cpp" line="90"/>
+ <source>All Time Popular</source>
+ <translation type="unfinished"/>
+ </message>
</context>
<context>
<name>Video</name>
<message>
- <location filename="src/video.cpp" line="213"/>
+ <location filename="src/video.cpp" line="215"/>
<source>Cannot get video stream for %1</source>
<translation>Nu poate fi accesat fluxul video pentru %1</translation>
</message>
<message>
- <location filename="src/video.cpp" line="231"/>
+ <location filename="src/video.cpp" line="233"/>
<source>Network error: %1 for %2</source>
<translation>Eroare reţea: %1 pentru %2</translation>
</message>
<message>
<location filename="local/src/activationview.cpp" line="53"/>
<source>The full version allows you to download videos longer than %1 minutes and to watch videos without interruptions.</source>
- <translation type="unfinished"/>
+ <translation>Полная версия позволяет смотреть видео, добавлять более %1 треков в списке воспроизведения и выбирать разные варианты песен.</translation>
</message>
<message>
<location filename="local/src/activationview.cpp" line="55"/>
<translation>Купить лицензию</translation>
</message>
</context>
+<context>
+ <name>ChannelAggregator</name>
+ <message>
+ <location filename="src/channelaggregator.cpp" line="110"/>
+ <source>By %1</source>
+ <translation type="unfinished"/>
+ </message>
+ <message numerus="yes">
+ <location filename="src/channelaggregator.cpp" line="112"/>
+ <source>You have %n new video(s)</source>
+ <translation type="unfinished"><numerusform></numerusform><numerusform></numerusform><numerusform></numerusform></translation>
+ </message>
+</context>
+<context>
+ <name>ChannelItemDelegate</name>
+ <message>
+ <location filename="src/channelitemdelegate.cpp" line="46"/>
+ <source>All Videos</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="src/channelitemdelegate.cpp" line="63"/>
+ <source>Unwatched Videos</source>
+ <translation type="unfinished"/>
+ </message>
+</context>
+<context>
+ <name>ChannelView</name>
+ <message>
+ <location filename="src/channelview.cpp" line="75"/>
+ <source>Mark all as watched</source>
+ <translation>Отметить все как просмотренное</translation>
+ </message>
+ <message>
+ <location filename="src/channelview.cpp" line="83"/>
+ <source>Show Updated</source>
+ <translation>Показать обновленные</translation>
+ </message>
+ <message>
+ <location filename="src/channelview.cpp" line="95"/>
+ <source>Name</source>
+ <translation>Название</translation>
+ </message>
+ <message>
+ <location filename="src/channelview.cpp" line="102"/>
+ <source>Last Updated</source>
+ <translation>Недавно обновленные</translation>
+ </message>
+ <message>
+ <location filename="src/channelview.cpp" line="109"/>
+ <source>Last Added</source>
+ <translation>Недавно добавленные</translation>
+ </message>
+ <message>
+ <location filename="src/channelview.cpp" line="116"/>
+ <source>Last Watched</source>
+ <translation>Недавно просмотренные</translation>
+ </message>
+ <message>
+ <location filename="src/channelview.cpp" line="123"/>
+ <source>Most Watched</source>
+ <translation>Наиболее просмативаемые</translation>
+ </message>
+ <message>
+ <location filename="src/channelview.cpp" line="131"/>
+ <source>Sort by</source>
+ <translation>Сортировать по</translation>
+ </message>
+ <message>
+ <location filename="src/channelview.cpp" line="190"/>
+ <source>All Videos</source>
+ <translation>Все видео</translation>
+ </message>
+ <message>
+ <location filename="src/channelview.cpp" line="194"/>
+ <source>Unwatched Videos</source>
+ <translation>Не просмотренное видео</translation>
+ </message>
+ <message>
+ <location filename="src/channelview.cpp" line="206"/>
+ <source>There are no updated subscriptions at this time.</source>
+ <translation>В настоящее время нет обновлений подписок.</translation>
+ </message>
+ <message>
+ <location filename="src/channelview.cpp" line="208"/>
+ <source>You have no subscriptions. Use the star symbol to subscribe to channels.</source>
+ <translation>У вас нед подписок. Используйте символ звездочки чтобы подпываться на каналы.</translation>
+ </message>
+</context>
<context>
<name>ClearButton</name>
<message>
<context>
<name>HomeView</name>
<message>
- <location filename="src/homeview.cpp" line="33"/>
+ <location filename="src/homeview.cpp" line="38"/>
<source>Search</source>
<translation>Поиск</translation>
</message>
<message>
- <location filename="src/homeview.cpp" line="35"/>
+ <location filename="src/homeview.cpp" line="40"/>
<source>Find videos and channels by keyword</source>
- <translation type="unfinished"/>
+ <translation>Поиск видео и каналов по запросу</translation>
</message>
<message>
- <location filename="src/homeview.cpp" line="40"/>
+ <location filename="src/homeview.cpp" line="45"/>
<source>Browse</source>
- <translation type="unfinished"/>
+ <translation>Смотреть</translation>
</message>
<message>
- <location filename="src/homeview.cpp" line="42"/>
+ <location filename="src/homeview.cpp" line="47"/>
<source>Browse videos by category</source>
- <translation type="unfinished"/>
+ <translation>Смотреть видео по категориям</translation>
+ </message>
+ <message>
+ <location filename="src/homeview.cpp" line="51"/>
+ <source>Subscriptions</source>
+ <translation>Подписки</translation>
+ </message>
+ <message>
+ <location filename="src/homeview.cpp" line="53"/>
+ <source>Channel subscriptions</source>
+ <translation>Подписки на каналы</translation>
</message>
<message>
<location filename="src/homeview.h" line="22"/>
<source>Make yourself comfortable</source>
- <translation type="unfinished"/>
+ <translation>Чувствуйте себя как дома</translation>
</message>
</context>
<context>
<name>LoadingWidget</name>
<message>
- <location filename="src/loadingwidget.cpp" line="90"/>
+ <location filename="src/loadingwidget.cpp" line="88"/>
<source>Error</source>
<translation>Ошибка</translation>
</message>
<context>
<name>MainWindow</name>
<message>
- <location filename="src/mainwindow.cpp" line="213"/>
+ <location filename="src/mainwindow.cpp" line="237"/>
<source>&Stop</source>
<translation>&Остановить</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="214"/>
+ <location filename="src/mainwindow.cpp" line="238"/>
<source>Stop playback and go back to the search view</source>
<translation>Остановить воспроизведение и вернуться к поиску</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="232"/>
+ <location filename="src/mainwindow.cpp" line="253"/>
<source>S&kip</source>
<translation>П&ропустить</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="233"/>
+ <location filename="src/mainwindow.cpp" line="254"/>
<source>Skip to the next video</source>
<translation>Перейти к следующему клипу</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="239"/>
- <location filename="src/mainwindow.cpp" line="989"/>
+ <location filename="src/mainwindow.cpp" line="260"/>
+ <location filename="src/mainwindow.cpp" line="1012"/>
<source>&Pause</source>
<translation>&Пауза</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="240"/>
- <location filename="src/mainwindow.cpp" line="990"/>
+ <location filename="src/mainwindow.cpp" line="261"/>
+ <location filename="src/mainwindow.cpp" line="1013"/>
<source>Pause playback</source>
<translation>Приостановить воспроизведение</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="246"/>
+ <location filename="src/mainwindow.cpp" line="267"/>
<source>&Full Screen</source>
<translation>&На весь экран</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="247"/>
+ <location filename="src/mainwindow.cpp" line="268"/>
<source>Go full screen</source>
<translation>Полноэкранное воспроизведение</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="263"/>
+ <location filename="src/mainwindow.cpp" line="282"/>
<source>Hide the playlist and the toolbar</source>
<translation>Скрыть список воспроизведения и панель инструментов</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="276"/>
+ <location filename="src/mainwindow.cpp" line="295"/>
<source>Go to the YouTube video page and pause playback</source>
<translation>Приостановить воспроизведение и перейти на страницу видео в YouTube</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="283"/>
+ <location filename="src/mainwindow.cpp" line="302"/>
<source>Copy the current video YouTube link to the clipboard</source>
<translation>Скопировать ссылку текущего клипа YouTube в буфер обмена</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="290"/>
+ <location filename="src/mainwindow.cpp" line="309"/>
<source>Copy the current video stream URL to the clipboard</source>
<translation>Скопировать адрес текущего видео потока в буфер обмена</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="297"/>
+ <location filename="src/mainwindow.cpp" line="316"/>
<source>Find other video parts hopefully in the right order</source>
<translation>Найти другие части видео, надеюсь, в правильном порядке</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="303"/>
+ <location filename="src/mainwindow.cpp" line="322"/>
<source>&Remove</source>
<translation>&Удалить</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="304"/>
+ <location filename="src/mainwindow.cpp" line="323"/>
<source>Remove the selected videos from the playlist</source>
<translation>Удалить выбранные клипы из списка воспроизведения</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="310"/>
+ <location filename="src/mainwindow.cpp" line="329"/>
<source>Move &Up</source>
<translation>В&верх</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="311"/>
+ <location filename="src/mainwindow.cpp" line="330"/>
<source>Move up the selected videos in the playlist</source>
<translation>Переместить выбранные видеоклипы вверх в списке воспроизведения</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="317"/>
+ <location filename="src/mainwindow.cpp" line="336"/>
<source>Move &Down</source>
<translation>В&низ</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="318"/>
+ <location filename="src/mainwindow.cpp" line="337"/>
<source>Move down the selected videos in the playlist</source>
<translation>Переместить выбранные видеоклипы вниз в списке воспроизведения</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="329"/>
+ <location filename="src/mainwindow.cpp" line="348"/>
<source>Clear the search history. Cannot be undone.</source>
<translation>Очистить историю запросов. Изменения необратимы.</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="334"/>
+ <location filename="src/mainwindow.cpp" line="353"/>
<source>&Quit</source>
<translation>&Выход</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="337"/>
+ <location filename="src/mainwindow.cpp" line="356"/>
<source>Bye</source>
<translation>Пока</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="341"/>
+ <location filename="src/mainwindow.cpp" line="360"/>
<source>&Website</source>
<translation>&Домашняя страница</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="343"/>
+ <location filename="src/mainwindow.cpp" line="362"/>
<source>%1 on the Web</source>
<translation>%1 в интернете</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="349"/>
+ <location filename="src/mainwindow.cpp" line="368"/>
<source>Please support the continued development of %1</source>
<translation>Поддержите дальнейшую разработку %1</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="354"/>
+ <location filename="src/mainwindow.cpp" line="373"/>
<source>&About</source>
<translation>&О программе</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="356"/>
+ <location filename="src/mainwindow.cpp" line="375"/>
<source>Info about %1</source>
<translation>Сведения о %1</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="364"/>
+ <location filename="src/mainwindow.cpp" line="383"/>
<source>Search</source>
<translation>Поиск</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="383"/>
+ <location filename="src/mainwindow.cpp" line="402"/>
<source>Mute volume</source>
<translation>Выключить звук</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="412"/>
- <location filename="src/mainwindow.cpp" line="1365"/>
+ <location filename="src/mainwindow.cpp" line="431"/>
+ <location filename="src/mainwindow.cpp" line="1406"/>
<source>&Downloads</source>
<translation>Загрузки</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="413"/>
+ <location filename="src/mainwindow.cpp" line="432"/>
<source>Show details about video downloads</source>
<translation>Показать подробности о загрузках видео</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="421"/>
+ <location filename="src/mainwindow.cpp" line="440"/>
<source>&Download</source>
<translation>Загрузить</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="422"/>
+ <location filename="src/mainwindow.cpp" line="441"/>
<source>Download the current video</source>
<translation>Загрузить проигрываемый файл</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="441"/>
+ <location filename="src/mainwindow.cpp" line="458"/>
+ <source>&Subscribe to Channel</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="src/mainwindow.cpp" line="465"/>
<source>Share the current video using %1</source>
<translation>Поделиться текущим видео с помощью %1</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="458"/>
+ <location filename="src/mainwindow.cpp" line="482"/>
<source>&Email</source>
<translation>&Email</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="459"/>
+ <location filename="src/mainwindow.cpp" line="483"/>
<source>Email</source>
<translation>Email</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="463"/>
+ <location filename="src/mainwindow.cpp" line="487"/>
<source>&Close</source>
<translation>&Закрыть</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="473"/>
+ <location filename="src/mainwindow.cpp" line="497"/>
<source>&Float on Top</source>
<translation>&Поверх всех окон</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="478"/>
+ <location filename="src/mainwindow.cpp" line="502"/>
<source>&Stop After This Video</source>
<translation>Ост&ановить после этого видео</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="485"/>
+ <location filename="src/mainwindow.cpp" line="509"/>
<source>&Report an Issue...</source>
<translation>Соо&бщить об ошибке</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="489"/>
+ <location filename="src/mainwindow.cpp" line="513"/>
<source>&Refine Search...</source>
<translation>&Уточнить поиск...</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="501"/>
+ <location filename="src/mainwindow.cpp" line="525"/>
<source>More...</source>
<translation>Больше...</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="504"/>
+ <location filename="src/mainwindow.cpp" line="528"/>
<source>&Related Videos</source>
<translation>По&хожее видео</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="506"/>
+ <location filename="src/mainwindow.cpp" line="530"/>
<source>Watch videos related to the current one</source>
<translation>Смотреть видео, связанные с текущим</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="544"/>
+ <location filename="src/mainwindow.cpp" line="553"/>
<source>&Application</source>
<translation>Пр&иложение</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="515"/>
+ <location filename="src/mainwindow.cpp" line="537"/>
<source>Buy %1...</source>
<translation>Купить %1...</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="558"/>
+ <location filename="src/mainwindow.cpp" line="567"/>
<source>&Playback</source>
<translation>&Воспроизведение</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="572"/>
+ <location filename="src/mainwindow.cpp" line="581"/>
<source>&Playlist</source>
<translation>&Список воспроизведения</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="581"/>
+ <location filename="src/mainwindow.cpp" line="590"/>
<source>&Video</source>
<translation>&Видео</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="594"/>
+ <location filename="src/mainwindow.cpp" line="605"/>
<source>&View</source>
<translation>&Просмотр</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="601"/>
+ <location filename="src/mainwindow.cpp" line="612"/>
<source>&Share</source>
<translation>&Поделиться</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="615"/>
+ <location filename="src/mainwindow.cpp" line="626"/>
<source>&Help</source>
<translation>Спр&авка</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="690"/>
+ <location filename="src/mainwindow.cpp" line="701"/>
<source>Press %1 to raise the volume, %2 to lower it</source>
<translation>Нажмите %1 для увеличения громкости и %2 для уменьшения</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="889"/>
- <location filename="src/mainwindow.cpp" line="895"/>
+ <location filename="src/mainwindow.cpp" line="910"/>
+ <location filename="src/mainwindow.cpp" line="916"/>
<source>Opening %1</source>
<translation>Открытие %1</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="936"/>
+ <location filename="src/mainwindow.cpp" line="959"/>
<source>Do you want to exit %1 with a download in progress?</source>
<translation>Вы действительно хотите закрыть %1 в то время, как загружаются файлы?</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="937"/>
+ <location filename="src/mainwindow.cpp" line="960"/>
<source>If you close %1 now, this download will be cancelled.</source>
<translation>Если вы закроете %1 прямо сейчас, текущие загрузки будут отменены.</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="942"/>
+ <location filename="src/mainwindow.cpp" line="965"/>
<source>Close and cancel download</source>
<translation>Выйти отменив загрузки</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="943"/>
+ <location filename="src/mainwindow.cpp" line="966"/>
<source>Wait for download to finish</source>
<translation>Подождать завершения загрузок</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="1102"/>
+ <location filename="src/mainwindow.cpp" line="1125"/>
<source>Leave &Full Screen</source>
<translation>Покинуть п&олноэкранный режим</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="1475"/>
+ <location filename="src/mainwindow.cpp" line="1515"/>
<source>%1 version %2 is now available.</source>
<translation>%1 версия %2 теперь доступна.</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="1479"/>
+ <location filename="src/mainwindow.cpp" line="1519"/>
<source>Remind me later</source>
<translation>Напомнить позже</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="1480"/>
+ <location filename="src/mainwindow.cpp" line="1520"/>
<source>Update</source>
<translation>Обновление</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="982"/>
+ <location filename="src/mainwindow.cpp" line="1005"/>
<source>Error: %1</source>
<translation>Ошибка: %1</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="222"/>
+ <location filename="src/mainwindow.cpp" line="246"/>
<source>P&revious</source>
<translation>Пр&едыдущий</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="223"/>
+ <location filename="src/mainwindow.cpp" line="247"/>
<source>Go back to the previous track</source>
<translation>Вернуться к предыдущему треку</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="262"/>
+ <location filename="src/mainwindow.cpp" line="281"/>
<source>&Compact Mode</source>
<translation>Компак&тный режим</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="275"/>
+ <location filename="src/mainwindow.cpp" line="294"/>
<source>Open the &YouTube Page</source>
<translation>От&крыть страницу YouTube</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="282"/>
+ <location filename="src/mainwindow.cpp" line="301"/>
<source>Copy the YouTube &Link</source>
<translation>Копировать &ссылку на YouTube</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="289"/>
+ <location filename="src/mainwindow.cpp" line="308"/>
<source>Copy the Video Stream &URL</source>
<translation>Копировать ссылку на в&идео поток</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="296"/>
+ <location filename="src/mainwindow.cpp" line="315"/>
<source>Find Video &Parts</source>
<translation>Найти &фрагменты видео</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="324"/>
+ <location filename="src/mainwindow.cpp" line="343"/>
<source>&Clear Recent Searches</source>
<translation>О&чистить последние поисковые запросы</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="348"/>
+ <location filename="src/mainwindow.cpp" line="367"/>
<source>Make a &Donation</source>
<translation>Сд&елать пожертвование</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="405"/>
+ <location filename="src/mainwindow.cpp" line="424"/>
<source>&Manually Start Playing</source>
<translation>&Начать проигрывание вручную</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="406"/>
+ <location filename="src/mainwindow.cpp" line="425"/>
<source>Manually start playing videos</source>
<translation>Начать проигрывание видео вручную</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="728"/>
+ <location filename="src/mainwindow.cpp" line="739"/>
<source>Choose your content location</source>
- <translation type="unfinished"/>
+ <translation>Выберите ваше расположение</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="1002"/>
+ <location filename="src/mainwindow.cpp" line="1025"/>
<source>&Play</source>
<translation>Пр&оиграть</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="1003"/>
+ <location filename="src/mainwindow.cpp" line="1026"/>
<source>Resume playback</source>
<translation>Продолжить воспроизведение</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="1236"/>
+ <location filename="src/mainwindow.cpp" line="1277"/>
<source>Remaining time: %1</source>
<translation>Осталось: %1</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="1294"/>
+ <location filename="src/mainwindow.cpp" line="1335"/>
<source>Volume at %1%</source>
<translation>Громкость %1%</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="1300"/>
+ <location filename="src/mainwindow.cpp" line="1341"/>
<source>Volume is muted</source>
<translation>Звук выключен</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="1303"/>
+ <location filename="src/mainwindow.cpp" line="1344"/>
<source>Volume is unmuted</source>
<translation>Звук включен</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="1310"/>
+ <location filename="src/mainwindow.cpp" line="1351"/>
<source>Maximum video definition set to %1</source>
<translation>Максимальное разрешение видео: %1</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="1351"/>
+ <location filename="src/mainwindow.cpp" line="1392"/>
<source>Your privacy is now safe</source>
<translation>Конфиденциальность обеспечена</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="1366"/>
+ <location filename="src/mainwindow.cpp" line="1407"/>
<source>Downloads complete</source>
<translation>Загрузка завершена</translation>
</message>
<context>
<name>MediaView</name>
<message>
- <location filename="src/mediaview.cpp" line="553"/>
+ <location filename="src/mediaview.cpp" line="563"/>
<source>You can now paste the YouTube link into another application</source>
<translation>Теперь можно вставить адрес YouTube в другое приложение</translation>
</message>
<message>
- <location filename="src/mediaview.cpp" line="561"/>
+ <location filename="src/mediaview.cpp" line="571"/>
<source>You can now paste the video stream URL into another application</source>
<translation>Теперь можно вставить адрес видео потока в другое приложение</translation>
</message>
<message>
- <location filename="src/mediaview.cpp" line="562"/>
+ <location filename="src/mediaview.cpp" line="572"/>
<source>The link will be valid only for a limited time.</source>
<translation>Адрес будет существовать ограниченное время.</translation>
</message>
<message>
- <location filename="src/mediaview.cpp" line="636"/>
+ <location filename="src/mediaview.cpp" line="650"/>
<source>This is just the demo version of %1.</source>
<translation>Данная программа является демо-версией %1.</translation>
</message>
<message>
- <location filename="src/mediaview.cpp" line="637"/>
+ <location filename="src/mediaview.cpp" line="651"/>
<source>It allows you to test the application and see if it works for you.</source>
<translation>Она позволяет вам оценить приложение.</translation>
</message>
<message>
- <location filename="src/mediaview.cpp" line="667"/>
+ <location filename="src/mediaview.cpp" line="681"/>
<source>Continue</source>
<translation>Продолжить</translation>
</message>
<message>
- <location filename="src/mediaview.cpp" line="756"/>
+ <location filename="src/mediaview.cpp" line="772"/>
<source>of</source>
<comment>Used in video parts, as in '2 of 3'</comment>
<translation>из</translation>
</message>
<message>
- <location filename="src/mediaview.cpp" line="768"/>
+ <location filename="src/mediaview.cpp" line="785"/>
<source>part</source>
<comment>This is for video parts, as in 'Cool video - part 1'</comment>
<translation>часть</translation>
</message>
<message>
- <location filename="src/mediaview.cpp" line="770"/>
+ <location filename="src/mediaview.cpp" line="787"/>
<source>episode</source>
<comment>This is for video parts, as in 'Cool series - episode 1'</comment>
<translation>эпизод</translation>
</message>
<message>
- <location filename="src/mediaview.cpp" line="847"/>
+ <location filename="src/mediaview.cpp" line="868"/>
<source>Sent from %1</source>
<translation>Отправить из %1</translation>
</message>
<message>
- <location filename="src/mediaview.cpp" line="644"/>
+ <location filename="src/mediaview.cpp" line="899"/>
+ <source>Unsubscribe from %1</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="src/mediaview.cpp" line="903"/>
+ <source>Subscribe to %1</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="src/mediaview.cpp" line="658"/>
<source>Get the full version</source>
<translation>Купить полную версию</translation>
</message>
<message>
- <location filename="src/mediaview.cpp" line="681"/>
+ <location filename="src/mediaview.cpp" line="695"/>
<source>Downloading %1</source>
<translation>Загружаю %1</translation>
</message>
<context>
<name>PlaylistItemDelegate</name>
<message>
- <location filename="src/playlistitemdelegate.cpp" line="159"/>
+ <location filename="src/playlistitemdelegate.cpp" line="177"/>
<source>%1 views</source>
<translation>%1 просмотров</translation>
</message>
<message>
- <location filename="src/playlistitemdelegate.cpp" line="285"/>
+ <location filename="src/playlistitemdelegate.cpp" line="292"/>
<source>%1 of %2 (%3) — %4</source>
- <translation type="unfinished"/>
+ <translation>%1 из %2 (%3) — %4</translation>
</message>
<message>
- <location filename="src/playlistitemdelegate.cpp" line="292"/>
+ <location filename="src/playlistitemdelegate.cpp" line="299"/>
<source>Preparing</source>
<translation>Подготовка</translation>
</message>
<message>
- <location filename="src/playlistitemdelegate.cpp" line="294"/>
+ <location filename="src/playlistitemdelegate.cpp" line="301"/>
<source>Failed</source>
- <translation type="unfinished"/>
+ <translation>Ошибка</translation>
</message>
<message>
- <location filename="src/playlistitemdelegate.cpp" line="296"/>
+ <location filename="src/playlistitemdelegate.cpp" line="303"/>
<source>Completed</source>
<translation>Завершено</translation>
</message>
<message>
- <location filename="src/playlistitemdelegate.cpp" line="298"/>
+ <location filename="src/playlistitemdelegate.cpp" line="305"/>
<source>Stopped</source>
<translation>Остановлено</translation>
</message>
<message>
- <location filename="src/playlistitemdelegate.cpp" line="334"/>
+ <location filename="src/playlistitemdelegate.cpp" line="341"/>
<source>Stop downloading</source>
<translation>Отмена загрузки</translation>
</message>
<message>
- <location filename="src/playlistitemdelegate.cpp" line="344"/>
+ <location filename="src/playlistitemdelegate.cpp" line="351"/>
<source>Show in %1</source>
- <translation type="unfinished"/>
+ <translation>Показать в %1</translation>
</message>
<message>
- <location filename="src/playlistitemdelegate.cpp" line="346"/>
+ <location filename="src/playlistitemdelegate.cpp" line="353"/>
<source>Open parent folder</source>
<translation>Открыть родительский каталог</translation>
</message>
<message>
- <location filename="src/playlistitemdelegate.cpp" line="355"/>
+ <location filename="src/playlistitemdelegate.cpp" line="362"/>
<source>Restart downloading</source>
<translation>Перезапустить загрузку</translation>
</message>
<message>
<location filename="src/playlistmodel.cpp" line="53"/>
<source>Show %1 More</source>
- <translation type="unfinished"/>
+ <translation>Показать ещё %1</translation>
</message>
<message>
<location filename="src/playlistmodel.cpp" line="54"/>
<context>
<name>SearchView</name>
<message>
- <location filename="src/searchview.cpp" line="71"/>
+ <location filename="src/searchview.cpp" line="66"/>
<source>Welcome to <a href='%1'>%2</a>,</source>
<translation>Добро пожаловать в <a href='%1'>%2</a>,</translation>
</message>
<message>
- <location filename="src/searchview.cpp" line="50"/>
+ <location filename="src/searchview.cpp" line="161"/>
<source>Get the full version</source>
<translation>Купить полную версию</translation>
</message>
<message>
- <location filename="src/searchview.cpp" line="85"/>
+ <location filename="src/searchview.cpp" line="80"/>
<source>Enter</source>
<extracomment>"Enter", as in "type". The whole phrase says: "Enter a keyword to start watching videos"</extracomment>
<translation>Введите</translation>
</message>
<message>
- <location filename="src/searchview.cpp" line="90"/>
+ <location filename="src/searchview.cpp" line="85"/>
<source>a keyword</source>
<translation>запрос</translation>
</message>
<message>
- <location filename="src/searchview.cpp" line="91"/>
+ <location filename="src/searchview.cpp" line="86"/>
<source>a channel</source>
<translation>канал</translation>
</message>
<message>
- <location filename="src/searchview.cpp" line="96"/>
+ <location filename="src/searchview.cpp" line="91"/>
<source>to start watching videos.</source>
<translation>чтобы начать просмотр.</translation>
</message>
<message>
- <location filename="src/searchview.cpp" line="120"/>
+ <location filename="src/searchview.cpp" line="115"/>
<source>Watch</source>
<translation>Смотреть</translation>
</message>
<message>
- <location filename="src/searchview.cpp" line="138"/>
+ <location filename="src/searchview.cpp" line="133"/>
<source>Recent keywords</source>
<translation>Последние запросы</translation>
</message>
<message>
- <location filename="src/searchview.cpp" line="151"/>
+ <location filename="src/searchview.cpp" line="146"/>
<source>Recent channels</source>
<translation>Последние каналы</translation>
</message>
<context>
<name>SidebarHeader</name>
<message>
- <location filename="src/sidebarheader.cpp" line="16"/>
- <location filename="src/sidebarheader.cpp" line="23"/>
+ <location filename="src/sidebarheader.cpp" line="19"/>
+ <location filename="src/sidebarheader.cpp" line="26"/>
<source>&Back</source>
<translation>Н&азад</translation>
</message>
<source>Most Popular</source>
<translation>Самые популярные</translation>
</message>
- <message>
- <location filename="src/standardfeedsview.cpp" line="86"/>
- <source>Featured</source>
- <translation>Популярные</translation>
- </message>
<message>
<location filename="src/standardfeedsview.cpp" line="87"/>
<source>Most Shared</source>
<source>Top Rated</source>
<translation>Лучшие оценки</translation>
</message>
+ <message>
+ <location filename="src/standardfeedsview.cpp" line="90"/>
+ <source>All Time Popular</source>
+ <translation>Популярное за все время</translation>
+ </message>
</context>
<context>
<name>Video</name>
<message>
- <location filename="src/video.cpp" line="213"/>
+ <location filename="src/video.cpp" line="215"/>
<source>Cannot get video stream for %1</source>
<translation>Не удалось получить видео поток для %1</translation>
</message>
<message>
- <location filename="src/video.cpp" line="231"/>
+ <location filename="src/video.cpp" line="233"/>
<source>Network error: %1 for %2</source>
<translation>Ошибка сети: %1 на %2</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="24"/>
<source>India</source>
- <translation type="unfinished"/>
+ <translation>Индия</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="25"/>
<source>Indonesia</source>
- <translation type="unfinished"/>
+ <translation>Индонезия</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="26"/>
<source>Ireland</source>
- <translation type="unfinished"/>
+ <translation>Ирландия</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="27"/>
<source>Israel</source>
- <translation type="unfinished"/>
+ <translation>Израиль</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="28"/>
<source>Italy</source>
- <translation type="unfinished"/>
+ <translation>Италия</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="29"/>
<source>Japan</source>
- <translation type="unfinished"/>
+ <translation>Япония</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="30"/>
<source>Jordan</source>
- <translation type="unfinished"/>
+ <translation>Иордания</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="31"/>
<source>Kenya</source>
- <translation type="unfinished"/>
+ <translation>Кения</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="32"/>
<source>Malaysia</source>
- <translation type="unfinished"/>
+ <translation>Малайзия</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="33"/>
<message>
<location filename="src/ytregions.cpp" line="128"/>
<source>Worldwide</source>
- <translation type="unfinished"/>
+ <translation>Во всем мире</translation>
</message>
</context>
</TS>
\ No newline at end of file
<translation>Zakúpiť licenciu</translation>
</message>
</context>
+<context>
+ <name>ChannelAggregator</name>
+ <message>
+ <location filename="src/channelaggregator.cpp" line="110"/>
+ <source>By %1</source>
+ <translation>Od %1</translation>
+ </message>
+ <message numerus="yes">
+ <location filename="src/channelaggregator.cpp" line="112"/>
+ <source>You have %n new video(s)</source>
+ <translation type="unfinished"><numerusform></numerusform><numerusform></numerusform><numerusform></numerusform></translation>
+ </message>
+</context>
+<context>
+ <name>ChannelItemDelegate</name>
+ <message>
+ <location filename="src/channelitemdelegate.cpp" line="46"/>
+ <source>All Videos</source>
+ <translation>Všetky videá</translation>
+ </message>
+ <message>
+ <location filename="src/channelitemdelegate.cpp" line="63"/>
+ <source>Unwatched Videos</source>
+ <translation>Neprezreté videá</translation>
+ </message>
+</context>
+<context>
+ <name>ChannelView</name>
+ <message>
+ <location filename="src/channelview.cpp" line="75"/>
+ <source>Mark all as watched</source>
+ <translation>Označiť všetky ako zhliadnuté</translation>
+ </message>
+ <message>
+ <location filename="src/channelview.cpp" line="83"/>
+ <source>Show Updated</source>
+ <translation>Zobraziť aktualizované</translation>
+ </message>
+ <message>
+ <location filename="src/channelview.cpp" line="95"/>
+ <source>Name</source>
+ <translation>Meno</translation>
+ </message>
+ <message>
+ <location filename="src/channelview.cpp" line="102"/>
+ <source>Last Updated</source>
+ <translation>Naposledy aktualizované</translation>
+ </message>
+ <message>
+ <location filename="src/channelview.cpp" line="109"/>
+ <source>Last Added</source>
+ <translation>Naposledy pridané</translation>
+ </message>
+ <message>
+ <location filename="src/channelview.cpp" line="116"/>
+ <source>Last Watched</source>
+ <translation>Naposledy prezerané</translation>
+ </message>
+ <message>
+ <location filename="src/channelview.cpp" line="123"/>
+ <source>Most Watched</source>
+ <translation>Najviac prezerané</translation>
+ </message>
+ <message>
+ <location filename="src/channelview.cpp" line="131"/>
+ <source>Sort by</source>
+ <translation>Zoradiť podľa</translation>
+ </message>
+ <message>
+ <location filename="src/channelview.cpp" line="190"/>
+ <source>All Videos</source>
+ <translation>Všetky videá</translation>
+ </message>
+ <message>
+ <location filename="src/channelview.cpp" line="194"/>
+ <source>Unwatched Videos</source>
+ <translation>Neprezreté videá</translation>
+ </message>
+ <message>
+ <location filename="src/channelview.cpp" line="206"/>
+ <source>There are no updated subscriptions at this time.</source>
+ <translation>Nie sú k dispozícii žiadne aktualizované subskripcie.</translation>
+ </message>
+ <message>
+ <location filename="src/channelview.cpp" line="208"/>
+ <source>You have no subscriptions. Use the star symbol to subscribe to channels.</source>
+ <translation>Nemáš žiadne subskripcie. Použi symbol hviezdy pre odoberanie kanálov.</translation>
+ </message>
+</context>
<context>
<name>ClearButton</name>
<message>
<context>
<name>HomeView</name>
<message>
- <location filename="src/homeview.cpp" line="33"/>
+ <location filename="src/homeview.cpp" line="38"/>
<source>Search</source>
<translation>Hľadať</translation>
</message>
<message>
- <location filename="src/homeview.cpp" line="35"/>
+ <location filename="src/homeview.cpp" line="40"/>
<source>Find videos and channels by keyword</source>
<translation>Nájsť videá a kanály podľa kľúča</translation>
</message>
<message>
- <location filename="src/homeview.cpp" line="40"/>
+ <location filename="src/homeview.cpp" line="45"/>
<source>Browse</source>
<translation>Prehliadať</translation>
</message>
<message>
- <location filename="src/homeview.cpp" line="42"/>
+ <location filename="src/homeview.cpp" line="47"/>
<source>Browse videos by category</source>
<translation>Prehliadať videá podľa kategórie</translation>
</message>
+ <message>
+ <location filename="src/homeview.cpp" line="51"/>
+ <source>Subscriptions</source>
+ <translation>Subskripcie</translation>
+ </message>
+ <message>
+ <location filename="src/homeview.cpp" line="53"/>
+ <source>Channel subscriptions</source>
+ <translation>Odber kanálov</translation>
+ </message>
<message>
<location filename="src/homeview.h" line="22"/>
<source>Make yourself comfortable</source>
<context>
<name>LoadingWidget</name>
<message>
- <location filename="src/loadingwidget.cpp" line="90"/>
+ <location filename="src/loadingwidget.cpp" line="88"/>
<source>Error</source>
<translation>Chyba</translation>
</message>
<context>
<name>MainWindow</name>
<message>
- <location filename="src/mainwindow.cpp" line="213"/>
+ <location filename="src/mainwindow.cpp" line="237"/>
<source>&Stop</source>
<translation>&Zastaviť</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="214"/>
+ <location filename="src/mainwindow.cpp" line="238"/>
<source>Stop playback and go back to the search view</source>
<translation>Zastaviť prehrávanie a vrátiť sa k výsledkom hľadania</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="232"/>
+ <location filename="src/mainwindow.cpp" line="253"/>
<source>S&kip</source>
<translation>&Preskočiť</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="233"/>
+ <location filename="src/mainwindow.cpp" line="254"/>
<source>Skip to the next video</source>
<translation>Preskočiť na nasledovné video</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="239"/>
- <location filename="src/mainwindow.cpp" line="989"/>
+ <location filename="src/mainwindow.cpp" line="260"/>
+ <location filename="src/mainwindow.cpp" line="1012"/>
<source>&Pause</source>
<translation>&Pozasaviť</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="240"/>
- <location filename="src/mainwindow.cpp" line="990"/>
+ <location filename="src/mainwindow.cpp" line="261"/>
+ <location filename="src/mainwindow.cpp" line="1013"/>
<source>Pause playback</source>
<translation>Pozastaviť prehrávanie</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="246"/>
+ <location filename="src/mainwindow.cpp" line="267"/>
<source>&Full Screen</source>
<translation>&Celá obrazovka</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="247"/>
+ <location filename="src/mainwindow.cpp" line="268"/>
<source>Go full screen</source>
<translation>Na celú obrazovku</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="263"/>
+ <location filename="src/mainwindow.cpp" line="282"/>
<source>Hide the playlist and the toolbar</source>
<translation>Skryť playlist a nástrojovú lištu</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="276"/>
+ <location filename="src/mainwindow.cpp" line="295"/>
<source>Go to the YouTube video page and pause playback</source>
<translation>Prejsť na YouTube stránku videa a pozastaviť prehrávanie</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="283"/>
+ <location filename="src/mainwindow.cpp" line="302"/>
<source>Copy the current video YouTube link to the clipboard</source>
<translation>Kopírovať YouTube odkaz aktuálneho videa do schránky</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="290"/>
+ <location filename="src/mainwindow.cpp" line="309"/>
<source>Copy the current video stream URL to the clipboard</source>
<translation>Kopírovať odkaz aktuálneho video streamu do schránky</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="297"/>
+ <location filename="src/mainwindow.cpp" line="316"/>
<source>Find other video parts hopefully in the right order</source>
<translation>Pokúsiť sa nájsť zvyšné video časti</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="303"/>
+ <location filename="src/mainwindow.cpp" line="322"/>
<source>&Remove</source>
<translation>&Odstrániť</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="304"/>
+ <location filename="src/mainwindow.cpp" line="323"/>
<source>Remove the selected videos from the playlist</source>
<translation>Odstrániť vybrané videá z playlistu</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="310"/>
+ <location filename="src/mainwindow.cpp" line="329"/>
<source>Move &Up</source>
<translation>Presunúť &nahor</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="311"/>
+ <location filename="src/mainwindow.cpp" line="330"/>
<source>Move up the selected videos in the playlist</source>
<translation>Presunúť vybrané videá v playliste nahor</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="317"/>
+ <location filename="src/mainwindow.cpp" line="336"/>
<source>Move &Down</source>
<translation>Presunúť &nadol</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="318"/>
+ <location filename="src/mainwindow.cpp" line="337"/>
<source>Move down the selected videos in the playlist</source>
<translation>Presunúť vybrané videá v playliste nadol</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="329"/>
+ <location filename="src/mainwindow.cpp" line="348"/>
<source>Clear the search history. Cannot be undone.</source>
<translation>Vyčisiť históriu hľadania. Nevratná akcia.</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="334"/>
+ <location filename="src/mainwindow.cpp" line="353"/>
<source>&Quit</source>
<translation>&Ukončiť</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="337"/>
+ <location filename="src/mainwindow.cpp" line="356"/>
<source>Bye</source>
<translation>Maj sa</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="341"/>
+ <location filename="src/mainwindow.cpp" line="360"/>
<source>&Website</source>
<translation>&Domovská stránka</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="343"/>
+ <location filename="src/mainwindow.cpp" line="362"/>
<source>%1 on the Web</source>
<translation>%1 na Internete</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="349"/>
+ <location filename="src/mainwindow.cpp" line="368"/>
<source>Please support the continued development of %1</source>
<translation>Podpor prosím pokračujúci vývoj %1</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="354"/>
+ <location filename="src/mainwindow.cpp" line="373"/>
<source>&About</source>
<translation>&O projekte</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="356"/>
+ <location filename="src/mainwindow.cpp" line="375"/>
<source>Info about %1</source>
<translation>Informácie o %1</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="364"/>
+ <location filename="src/mainwindow.cpp" line="383"/>
<source>Search</source>
<translation>Hľadať</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="383"/>
+ <location filename="src/mainwindow.cpp" line="402"/>
<source>Mute volume</source>
<translation>Stlmiť hlasitosť</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="412"/>
- <location filename="src/mainwindow.cpp" line="1365"/>
+ <location filename="src/mainwindow.cpp" line="431"/>
+ <location filename="src/mainwindow.cpp" line="1406"/>
<source>&Downloads</source>
<translation>&Sťahovania</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="413"/>
+ <location filename="src/mainwindow.cpp" line="432"/>
<source>Show details about video downloads</source>
<translation>Zobraziť detaily o sťahovaní</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="421"/>
+ <location filename="src/mainwindow.cpp" line="440"/>
<source>&Download</source>
<translation>&Stiahnuť</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="422"/>
+ <location filename="src/mainwindow.cpp" line="441"/>
<source>Download the current video</source>
<translation>Stiahnuť aktuálne video</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="441"/>
+ <location filename="src/mainwindow.cpp" line="458"/>
+ <source>&Subscribe to Channel</source>
+ <translation>&Odoberať daný kanál</translation>
+ </message>
+ <message>
+ <location filename="src/mainwindow.cpp" line="465"/>
<source>Share the current video using %1</source>
<translation>Zdieľať aktuálne video cez %1</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="458"/>
+ <location filename="src/mainwindow.cpp" line="482"/>
<source>&Email</source>
<translation>&E-mail</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="459"/>
+ <location filename="src/mainwindow.cpp" line="483"/>
<source>Email</source>
<translation>E-mailová adresa</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="463"/>
+ <location filename="src/mainwindow.cpp" line="487"/>
<source>&Close</source>
<translation>&Zatvoriť</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="473"/>
+ <location filename="src/mainwindow.cpp" line="497"/>
<source>&Float on Top</source>
<translation>&Vždy na vrchu</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="478"/>
+ <location filename="src/mainwindow.cpp" line="502"/>
<source>&Stop After This Video</source>
<translation>&Zastav po tomto videu</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="485"/>
+ <location filename="src/mainwindow.cpp" line="509"/>
<source>&Report an Issue...</source>
<translation>&Nahlásiť problém...</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="489"/>
+ <location filename="src/mainwindow.cpp" line="513"/>
<source>&Refine Search...</source>
<translation>&Upraviť kritériá hľadania...</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="501"/>
+ <location filename="src/mainwindow.cpp" line="525"/>
<source>More...</source>
<translation>Viac...</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="504"/>
+ <location filename="src/mainwindow.cpp" line="528"/>
<source>&Related Videos</source>
<translation>&Pridružené vidá</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="506"/>
+ <location filename="src/mainwindow.cpp" line="530"/>
<source>Watch videos related to the current one</source>
<translation>Pozerať videá pridružené k aktuálnemu</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="544"/>
+ <location filename="src/mainwindow.cpp" line="553"/>
<source>&Application</source>
<translation>&Aplikácia</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="515"/>
+ <location filename="src/mainwindow.cpp" line="537"/>
<source>Buy %1...</source>
<translation>Zakúpiť %1...</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="558"/>
+ <location filename="src/mainwindow.cpp" line="567"/>
<source>&Playback</source>
<translation>&Prehrávanie</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="572"/>
+ <location filename="src/mainwindow.cpp" line="581"/>
<source>&Playlist</source>
<translation>&Playlist</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="581"/>
+ <location filename="src/mainwindow.cpp" line="590"/>
<source>&Video</source>
<translation>&Video</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="594"/>
+ <location filename="src/mainwindow.cpp" line="605"/>
<source>&View</source>
<translation>&Zobrazenie</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="601"/>
+ <location filename="src/mainwindow.cpp" line="612"/>
<source>&Share</source>
<translation>&Zdieľanie</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="615"/>
+ <location filename="src/mainwindow.cpp" line="626"/>
<source>&Help</source>
<translation>&Nápoveda</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="690"/>
+ <location filename="src/mainwindow.cpp" line="701"/>
<source>Press %1 to raise the volume, %2 to lower it</source>
<translation>Stlač %1 pre zvýšenie hlasitosti, %2 pre jej zníženie</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="889"/>
- <location filename="src/mainwindow.cpp" line="895"/>
+ <location filename="src/mainwindow.cpp" line="910"/>
+ <location filename="src/mainwindow.cpp" line="916"/>
<source>Opening %1</source>
<translation>Otváram %1</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="936"/>
+ <location filename="src/mainwindow.cpp" line="959"/>
<source>Do you want to exit %1 with a download in progress?</source>
<translation>Chceš ukončiť %1 aj napriek prebiehajúcemu sťahovaniu?</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="937"/>
+ <location filename="src/mainwindow.cpp" line="960"/>
<source>If you close %1 now, this download will be cancelled.</source>
<translation>Pokiaľ teraz ukončíš %1, prídeš o aktuálne sťahovanie.</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="942"/>
+ <location filename="src/mainwindow.cpp" line="965"/>
<source>Close and cancel download</source>
<translation>Zatvoriť a zrušiť sťahovanie</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="943"/>
+ <location filename="src/mainwindow.cpp" line="966"/>
<source>Wait for download to finish</source>
<translation>Počkať kým skončí sťahovanie</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="1102"/>
+ <location filename="src/mainwindow.cpp" line="1125"/>
<source>Leave &Full Screen</source>
<translation>Opustiť režim &celej obrazovky</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="1475"/>
+ <location filename="src/mainwindow.cpp" line="1515"/>
<source>%1 version %2 is now available.</source>
<translation>%1 verzie %2 je k dispozícii.</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="1479"/>
+ <location filename="src/mainwindow.cpp" line="1519"/>
<source>Remind me later</source>
<translation>Pripomenúť neskôr</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="1480"/>
+ <location filename="src/mainwindow.cpp" line="1520"/>
<source>Update</source>
<translation>Aktualizácia</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="982"/>
+ <location filename="src/mainwindow.cpp" line="1005"/>
<source>Error: %1</source>
<translation>Chyba: %1</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="222"/>
+ <location filename="src/mainwindow.cpp" line="246"/>
<source>P&revious</source>
<translation>&Predošlé</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="223"/>
+ <location filename="src/mainwindow.cpp" line="247"/>
<source>Go back to the previous track</source>
<translation>Ísť na predošlé video</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="262"/>
+ <location filename="src/mainwindow.cpp" line="281"/>
<source>&Compact Mode</source>
<translation>&Kompaktný mód</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="275"/>
+ <location filename="src/mainwindow.cpp" line="294"/>
<source>Open the &YouTube Page</source>
<translation>Otvoriť &YouTube stránku</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="282"/>
+ <location filename="src/mainwindow.cpp" line="301"/>
<source>Copy the YouTube &Link</source>
<translation>Kopírovať &odkaz z YouTube</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="289"/>
+ <location filename="src/mainwindow.cpp" line="308"/>
<source>Copy the Video Stream &URL</source>
<translation>Kopírovať &URL video streamu</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="296"/>
+ <location filename="src/mainwindow.cpp" line="315"/>
<source>Find Video &Parts</source>
<translation>Nájsť zvyšné relevantné &časti</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="324"/>
+ <location filename="src/mainwindow.cpp" line="343"/>
<source>&Clear Recent Searches</source>
<translation>&Vyčistiť zoznam posledných hľadaní</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="348"/>
+ <location filename="src/mainwindow.cpp" line="367"/>
<source>Make a &Donation</source>
<translation>Finančne &podporiť</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="405"/>
+ <location filename="src/mainwindow.cpp" line="424"/>
<source>&Manually Start Playing</source>
<translation>&Manuálne prehrávanie</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="406"/>
+ <location filename="src/mainwindow.cpp" line="425"/>
<source>Manually start playing videos</source>
<translation>Koniec manuálneho prehrávania</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="728"/>
+ <location filename="src/mainwindow.cpp" line="739"/>
<source>Choose your content location</source>
<translation>Vybrať svoju obsahovú lokáciu</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="1002"/>
+ <location filename="src/mainwindow.cpp" line="1025"/>
<source>&Play</source>
<translation>&Prehrať</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="1003"/>
+ <location filename="src/mainwindow.cpp" line="1026"/>
<source>Resume playback</source>
<translation>Obnoviť prehrávanie</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="1236"/>
+ <location filename="src/mainwindow.cpp" line="1277"/>
<source>Remaining time: %1</source>
<translation>Zostávajúci čas: %1</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="1294"/>
+ <location filename="src/mainwindow.cpp" line="1335"/>
<source>Volume at %1%</source>
<translation>Hlasitosť na %1%</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="1300"/>
+ <location filename="src/mainwindow.cpp" line="1341"/>
<source>Volume is muted</source>
<translation>Hlasitosť stlmená</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="1303"/>
+ <location filename="src/mainwindow.cpp" line="1344"/>
<source>Volume is unmuted</source>
<translation>Hlasitosť nie je stlmená</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="1310"/>
+ <location filename="src/mainwindow.cpp" line="1351"/>
<source>Maximum video definition set to %1</source>
<translation>Maximálne rozlíšenie videa nastavené na %1</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="1351"/>
+ <location filename="src/mainwindow.cpp" line="1392"/>
<source>Your privacy is now safe</source>
<translation>Nemaj obavy o súkromie</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="1366"/>
+ <location filename="src/mainwindow.cpp" line="1407"/>
<source>Downloads complete</source>
<translation>Sťahovanie kompletné</translation>
</message>
<context>
<name>MediaView</name>
<message>
- <location filename="src/mediaview.cpp" line="553"/>
+ <location filename="src/mediaview.cpp" line="563"/>
<source>You can now paste the YouTube link into another application</source>
<translation>Takto môžeš prilepiť YouTube odkaz do inej aplikácie</translation>
</message>
<message>
- <location filename="src/mediaview.cpp" line="561"/>
+ <location filename="src/mediaview.cpp" line="571"/>
<source>You can now paste the video stream URL into another application</source>
<translation>Budeš môcť prilepiť odkaz video streamu do inej aplikácie</translation>
</message>
<message>
- <location filename="src/mediaview.cpp" line="562"/>
+ <location filename="src/mediaview.cpp" line="572"/>
<source>The link will be valid only for a limited time.</source>
<translation>Odkaz bude platný len obmedzenú dobu.</translation>
</message>
<message>
- <location filename="src/mediaview.cpp" line="636"/>
+ <location filename="src/mediaview.cpp" line="650"/>
<source>This is just the demo version of %1.</source>
<translation>Ide o demoverziu %1.</translation>
</message>
<message>
- <location filename="src/mediaview.cpp" line="637"/>
+ <location filename="src/mediaview.cpp" line="651"/>
<source>It allows you to test the application and see if it works for you.</source>
<translation>Umožní ti aplikáciu vyskúšať a pohodlne otestovať.</translation>
</message>
<message>
- <location filename="src/mediaview.cpp" line="667"/>
+ <location filename="src/mediaview.cpp" line="681"/>
<source>Continue</source>
<translation>Pokračuj</translation>
</message>
<message>
- <location filename="src/mediaview.cpp" line="756"/>
+ <location filename="src/mediaview.cpp" line="772"/>
<source>of</source>
<comment>Used in video parts, as in '2 of 3'</comment>
<translation>z</translation>
</message>
<message>
- <location filename="src/mediaview.cpp" line="768"/>
+ <location filename="src/mediaview.cpp" line="785"/>
<source>part</source>
<comment>This is for video parts, as in 'Cool video - part 1'</comment>
<translation>časť</translation>
</message>
<message>
- <location filename="src/mediaview.cpp" line="770"/>
+ <location filename="src/mediaview.cpp" line="787"/>
<source>episode</source>
<comment>This is for video parts, as in 'Cool series - episode 1'</comment>
<translation>epizóda</translation>
</message>
<message>
- <location filename="src/mediaview.cpp" line="847"/>
+ <location filename="src/mediaview.cpp" line="868"/>
<source>Sent from %1</source>
<translation>Odoslané z %1</translation>
</message>
<message>
- <location filename="src/mediaview.cpp" line="644"/>
+ <location filename="src/mediaview.cpp" line="899"/>
+ <source>Unsubscribe from %1</source>
+ <translation>Zrušiť odber z %1</translation>
+ </message>
+ <message>
+ <location filename="src/mediaview.cpp" line="903"/>
+ <source>Subscribe to %1</source>
+ <translation>Odoberať z %1</translation>
+ </message>
+ <message>
+ <location filename="src/mediaview.cpp" line="658"/>
<source>Get the full version</source>
<translation>Získať plnú verziu</translation>
</message>
<message>
- <location filename="src/mediaview.cpp" line="681"/>
+ <location filename="src/mediaview.cpp" line="695"/>
<source>Downloading %1</source>
<translation>Sťahujem %1.</translation>
</message>
<context>
<name>PlaylistItemDelegate</name>
<message>
- <location filename="src/playlistitemdelegate.cpp" line="159"/>
+ <location filename="src/playlistitemdelegate.cpp" line="177"/>
<source>%1 views</source>
<translation>%1 prezretí</translation>
</message>
<message>
- <location filename="src/playlistitemdelegate.cpp" line="285"/>
+ <location filename="src/playlistitemdelegate.cpp" line="292"/>
<source>%1 of %2 (%3) — %4</source>
<translation>%1 z %2 (%3) — %4</translation>
</message>
<message>
- <location filename="src/playlistitemdelegate.cpp" line="292"/>
+ <location filename="src/playlistitemdelegate.cpp" line="299"/>
<source>Preparing</source>
<translation>Pripravujem</translation>
</message>
<message>
- <location filename="src/playlistitemdelegate.cpp" line="294"/>
+ <location filename="src/playlistitemdelegate.cpp" line="301"/>
<source>Failed</source>
<translation>Zlyhané</translation>
</message>
<message>
- <location filename="src/playlistitemdelegate.cpp" line="296"/>
+ <location filename="src/playlistitemdelegate.cpp" line="303"/>
<source>Completed</source>
<translation>Úspešné</translation>
</message>
<message>
- <location filename="src/playlistitemdelegate.cpp" line="298"/>
+ <location filename="src/playlistitemdelegate.cpp" line="305"/>
<source>Stopped</source>
<translation>Zastavené</translation>
</message>
<message>
- <location filename="src/playlistitemdelegate.cpp" line="334"/>
+ <location filename="src/playlistitemdelegate.cpp" line="341"/>
<source>Stop downloading</source>
<translation>Zastav sťahovanie</translation>
</message>
<message>
- <location filename="src/playlistitemdelegate.cpp" line="344"/>
+ <location filename="src/playlistitemdelegate.cpp" line="351"/>
<source>Show in %1</source>
<translation>Zobraz v %1</translation>
</message>
<message>
- <location filename="src/playlistitemdelegate.cpp" line="346"/>
+ <location filename="src/playlistitemdelegate.cpp" line="353"/>
<source>Open parent folder</source>
<translation>Otvor nadradený adresár</translation>
</message>
<message>
- <location filename="src/playlistitemdelegate.cpp" line="355"/>
+ <location filename="src/playlistitemdelegate.cpp" line="362"/>
<source>Restart downloading</source>
<translation>Opakuj sťahovanie</translation>
</message>
<context>
<name>SearchView</name>
<message>
- <location filename="src/searchview.cpp" line="71"/>
+ <location filename="src/searchview.cpp" line="66"/>
<source>Welcome to <a href='%1'>%2</a>,</source>
<translation>Vitaj v aplikácii <a href='%1>%2</a>,</translation>
</message>
<message>
- <location filename="src/searchview.cpp" line="50"/>
+ <location filename="src/searchview.cpp" line="161"/>
<source>Get the full version</source>
<translation>Získať plnú verziu</translation>
</message>
<message>
- <location filename="src/searchview.cpp" line="85"/>
+ <location filename="src/searchview.cpp" line="80"/>
<source>Enter</source>
<extracomment>"Enter", as in "type". The whole phrase says: "Enter a keyword to start watching videos"</extracomment>
<translation>Vlož</translation>
</message>
<message>
- <location filename="src/searchview.cpp" line="90"/>
+ <location filename="src/searchview.cpp" line="85"/>
<source>a keyword</source>
<translation>kľúčové slovo</translation>
</message>
<message>
- <location filename="src/searchview.cpp" line="91"/>
+ <location filename="src/searchview.cpp" line="86"/>
<source>a channel</source>
<translation>názov kanálu</translation>
</message>
<message>
- <location filename="src/searchview.cpp" line="96"/>
+ <location filename="src/searchview.cpp" line="91"/>
<source>to start watching videos.</source>
<translation>pre spustenie sledovania.</translation>
</message>
<message>
- <location filename="src/searchview.cpp" line="120"/>
+ <location filename="src/searchview.cpp" line="115"/>
<source>Watch</source>
<translation>Pozerať</translation>
</message>
<message>
- <location filename="src/searchview.cpp" line="138"/>
+ <location filename="src/searchview.cpp" line="133"/>
<source>Recent keywords</source>
<translation>Posledné kľúčové slová</translation>
</message>
<message>
- <location filename="src/searchview.cpp" line="151"/>
+ <location filename="src/searchview.cpp" line="146"/>
<source>Recent channels</source>
<translation>Posledné kanály</translation>
</message>
<context>
<name>SidebarHeader</name>
<message>
- <location filename="src/sidebarheader.cpp" line="16"/>
- <location filename="src/sidebarheader.cpp" line="23"/>
+ <location filename="src/sidebarheader.cpp" line="19"/>
+ <location filename="src/sidebarheader.cpp" line="26"/>
<source>&Back</source>
<translation>&Späť</translation>
</message>
<source>Most Popular</source>
<translation>Najpopulárnejšie</translation>
</message>
- <message>
- <location filename="src/standardfeedsview.cpp" line="86"/>
- <source>Featured</source>
- <translation>Prominentné</translation>
- </message>
<message>
<location filename="src/standardfeedsview.cpp" line="87"/>
<source>Most Shared</source>
<source>Top Rated</source>
<translation>Najvyššiehodnotené</translation>
</message>
+ <message>
+ <location filename="src/standardfeedsview.cpp" line="90"/>
+ <source>All Time Popular</source>
+ <translation>Dlhodobo najpopulárnejšie</translation>
+ </message>
</context>
<context>
<name>Video</name>
<message>
- <location filename="src/video.cpp" line="213"/>
+ <location filename="src/video.cpp" line="215"/>
<source>Cannot get video stream for %1</source>
<translation>Nedostupný video stream pre %1</translation>
</message>
<message>
- <location filename="src/video.cpp" line="231"/>
+ <location filename="src/video.cpp" line="233"/>
<source>Network error: %1 for %2</source>
<translation>Chyba siete: %1 pre %2</translation>
</message>
<message>
<location filename="local/src/activationdialog.cpp" line="29"/>
<source>&Email:</source>
- <translation type="unfinished"/>
+ <translation>&E-pošta</translation>
</message>
<message>
<location filename="local/src/activationdialog.cpp" line="35"/>
<message>
<location filename="local/src/activationview.cpp" line="53"/>
<source>The full version allows you to download videos longer than %1 minutes and to watch videos without interruptions.</source>
- <translation type="unfinished"/>
+ <translation>Polna različica omogoča prenos posnetkov daljših od %1 minut in njihovo gledanje brez prekinitev.</translation>
</message>
<message>
<location filename="local/src/activationview.cpp" line="55"/>
<source>Without a license, the application will expire in %1 days.</source>
- <translation type="unfinished"/>
+ <translation>Brez licence bo uporabnost aplikacije potekla čez %1 dni.</translation>
</message>
<message>
<location filename="local/src/activationview.cpp" line="57"/>
<message>
<location filename="local/src/activationview.cpp" line="77"/>
<source>Enter License</source>
- <translation type="unfinished"/>
+ <translation>Vpis licence</translation>
</message>
<message>
<location filename="local/src/activationview.cpp" line="85"/>
<source>Buy License</source>
+ <translation>Kupi licenco</translation>
+ </message>
+</context>
+<context>
+ <name>ChannelAggregator</name>
+ <message>
+ <location filename="src/channelaggregator.cpp" line="110"/>
+ <source>By %1</source>
+ <translation type="unfinished"/>
+ </message>
+ <message numerus="yes">
+ <location filename="src/channelaggregator.cpp" line="112"/>
+ <source>You have %n new video(s)</source>
+ <translation type="unfinished"><numerusform></numerusform><numerusform></numerusform><numerusform></numerusform><numerusform></numerusform></translation>
+ </message>
+</context>
+<context>
+ <name>ChannelItemDelegate</name>
+ <message>
+ <location filename="src/channelitemdelegate.cpp" line="46"/>
+ <source>All Videos</source>
+ <translation>Vsi videoposnetki</translation>
+ </message>
+ <message>
+ <location filename="src/channelitemdelegate.cpp" line="63"/>
+ <source>Unwatched Videos</source>
+ <translation type="unfinished"/>
+ </message>
+</context>
+<context>
+ <name>ChannelView</name>
+ <message>
+ <location filename="src/channelview.cpp" line="75"/>
+ <source>Mark all as watched</source>
+ <translation>Označi vse za pregledane</translation>
+ </message>
+ <message>
+ <location filename="src/channelview.cpp" line="83"/>
+ <source>Show Updated</source>
+ <translation>Pokaži posodobitve</translation>
+ </message>
+ <message>
+ <location filename="src/channelview.cpp" line="95"/>
+ <source>Name</source>
+ <translation>Naziv</translation>
+ </message>
+ <message>
+ <location filename="src/channelview.cpp" line="102"/>
+ <source>Last Updated</source>
+ <translation>Nazadnje posodobljeno</translation>
+ </message>
+ <message>
+ <location filename="src/channelview.cpp" line="109"/>
+ <source>Last Added</source>
+ <translation>Nazadnje dodano</translation>
+ </message>
+ <message>
+ <location filename="src/channelview.cpp" line="116"/>
+ <source>Last Watched</source>
+ <translation>Nazadnje gledano</translation>
+ </message>
+ <message>
+ <location filename="src/channelview.cpp" line="123"/>
+ <source>Most Watched</source>
+ <translation>Največkrat gledano</translation>
+ </message>
+ <message>
+ <location filename="src/channelview.cpp" line="131"/>
+ <source>Sort by</source>
+ <translation>Razvrsti glede na</translation>
+ </message>
+ <message>
+ <location filename="src/channelview.cpp" line="190"/>
+ <source>All Videos</source>
+ <translation>Vsi videoposnetki</translation>
+ </message>
+ <message>
+ <location filename="src/channelview.cpp" line="194"/>
+ <source>Unwatched Videos</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="src/channelview.cpp" line="206"/>
+ <source>There are no updated subscriptions at this time.</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="src/channelview.cpp" line="208"/>
+ <source>You have no subscriptions. Use the star symbol to subscribe to channels.</source>
<translation type="unfinished"/>
</message>
</context>
<message>
<location filename="local/src/updatedialog.cpp" line="60"/>
<source>Downloading update...</source>
- <translation type="unfinished"/>
+ <translation>Prenos posodobitve...</translation>
</message>
</context>
<context>
<context>
<name>HomeView</name>
<message>
- <location filename="src/homeview.cpp" line="33"/>
+ <location filename="src/homeview.cpp" line="38"/>
<source>Search</source>
<translation>Išči</translation>
</message>
<message>
- <location filename="src/homeview.cpp" line="35"/>
+ <location filename="src/homeview.cpp" line="40"/>
<source>Find videos and channels by keyword</source>
- <translation type="unfinished"/>
+ <translation>Išči posnetke in kanale po ključnih besedah</translation>
</message>
<message>
- <location filename="src/homeview.cpp" line="40"/>
+ <location filename="src/homeview.cpp" line="45"/>
<source>Browse</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="src/homeview.cpp" line="42"/>
+ <location filename="src/homeview.cpp" line="47"/>
<source>Browse videos by category</source>
<translation type="unfinished"/>
</message>
+ <message>
+ <location filename="src/homeview.cpp" line="51"/>
+ <source>Subscriptions</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="src/homeview.cpp" line="53"/>
+ <source>Channel subscriptions</source>
+ <translation type="unfinished"/>
+ </message>
<message>
<location filename="src/homeview.h" line="22"/>
<source>Make yourself comfortable</source>
<context>
<name>LoadingWidget</name>
<message>
- <location filename="src/loadingwidget.cpp" line="90"/>
+ <location filename="src/loadingwidget.cpp" line="88"/>
<source>Error</source>
<translation>Napaka</translation>
</message>
<context>
<name>MainWindow</name>
<message>
- <location filename="src/mainwindow.cpp" line="213"/>
+ <location filename="src/mainwindow.cpp" line="237"/>
<source>&Stop</source>
<translation>U&stavi</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="214"/>
+ <location filename="src/mainwindow.cpp" line="238"/>
<source>Stop playback and go back to the search view</source>
<translation>Ustavi predvajanje in se vrne v iskalni pogled</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="232"/>
+ <location filename="src/mainwindow.cpp" line="253"/>
<source>S&kip</source>
<translation>Pres&koči</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="233"/>
+ <location filename="src/mainwindow.cpp" line="254"/>
<source>Skip to the next video</source>
<translation>Skoči na naslednji video</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="239"/>
- <location filename="src/mainwindow.cpp" line="989"/>
+ <location filename="src/mainwindow.cpp" line="260"/>
+ <location filename="src/mainwindow.cpp" line="1012"/>
<source>&Pause</source>
<translation>&Pavza</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="240"/>
- <location filename="src/mainwindow.cpp" line="990"/>
+ <location filename="src/mainwindow.cpp" line="261"/>
+ <location filename="src/mainwindow.cpp" line="1013"/>
<source>Pause playback</source>
<translation>Premor v predvajanju</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="246"/>
+ <location filename="src/mainwindow.cpp" line="267"/>
<source>&Full Screen</source>
<translation>&Celozaslonski način</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="247"/>
+ <location filename="src/mainwindow.cpp" line="268"/>
<source>Go full screen</source>
<translation>Gre v celozaslonski način</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="263"/>
+ <location filename="src/mainwindow.cpp" line="282"/>
<source>Hide the playlist and the toolbar</source>
<translation>Skrije predvajalni seznam in orodno vrstico</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="276"/>
+ <location filename="src/mainwindow.cpp" line="295"/>
<source>Go to the YouTube video page and pause playback</source>
<translation>Gre na stran posnetka na YouTube in ustavi predvajanje</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="283"/>
+ <location filename="src/mainwindow.cpp" line="302"/>
<source>Copy the current video YouTube link to the clipboard</source>
<translation>Kopira povezavo YouTube trenutnega posnetka v odložišče</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="290"/>
+ <location filename="src/mainwindow.cpp" line="309"/>
<source>Copy the current video stream URL to the clipboard</source>
<translation>Kopira URL trenutnega video pretoka v odložišče</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="297"/>
+ <location filename="src/mainwindow.cpp" line="316"/>
<source>Find other video parts hopefully in the right order</source>
<translation>Poišče ostale dele posnetka, predvidoma v pravem zaporedju</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="303"/>
+ <location filename="src/mainwindow.cpp" line="322"/>
<source>&Remove</source>
<translation>Odst&rani</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="304"/>
+ <location filename="src/mainwindow.cpp" line="323"/>
<source>Remove the selected videos from the playlist</source>
<translation>Odstrani izbrani video iz predvajalnega seznama</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="310"/>
+ <location filename="src/mainwindow.cpp" line="329"/>
<source>Move &Up</source>
<translation>Premakni &gor</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="311"/>
+ <location filename="src/mainwindow.cpp" line="330"/>
<source>Move up the selected videos in the playlist</source>
<translation>Izbrani video premakne mesto više v predvajalnem seznamu</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="317"/>
+ <location filename="src/mainwindow.cpp" line="336"/>
<source>Move &Down</source>
<translation>Premakni &dol</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="318"/>
+ <location filename="src/mainwindow.cpp" line="337"/>
<source>Move down the selected videos in the playlist</source>
<translation>Izbrani video premakne mesto niže v predvajalnem seznamu</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="329"/>
+ <location filename="src/mainwindow.cpp" line="348"/>
<source>Clear the search history. Cannot be undone.</source>
<translation>Izbriše zgodovino iskanje. Tega dejanja ni mogoče razveljaviti.</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="334"/>
+ <location filename="src/mainwindow.cpp" line="353"/>
<source>&Quit</source>
<translation>&Zapri</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="337"/>
+ <location filename="src/mainwindow.cpp" line="356"/>
<source>Bye</source>
<translation>Nasvidenje</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="341"/>
+ <location filename="src/mainwindow.cpp" line="360"/>
<source>&Website</source>
<translation>&Spletno mesto</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="343"/>
+ <location filename="src/mainwindow.cpp" line="362"/>
<source>%1 on the Web</source>
<translation>%1 na spletu</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="349"/>
+ <location filename="src/mainwindow.cpp" line="368"/>
<source>Please support the continued development of %1</source>
<translation>Podprite prosim nadaljni razvoj programa %1</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="354"/>
+ <location filename="src/mainwindow.cpp" line="373"/>
<source>&About</source>
<translation>&O programu</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="356"/>
+ <location filename="src/mainwindow.cpp" line="375"/>
<source>Info about %1</source>
<translation>Informacije o %1</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="364"/>
+ <location filename="src/mainwindow.cpp" line="383"/>
<source>Search</source>
<translation>Išči</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="383"/>
+ <location filename="src/mainwindow.cpp" line="402"/>
<source>Mute volume</source>
<translation>Nemo</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="412"/>
- <location filename="src/mainwindow.cpp" line="1365"/>
+ <location filename="src/mainwindow.cpp" line="431"/>
+ <location filename="src/mainwindow.cpp" line="1406"/>
<source>&Downloads</source>
<translation>Pre&nosi</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="413"/>
+ <location filename="src/mainwindow.cpp" line="432"/>
<source>Show details about video downloads</source>
<translation>Pokaže podrobnosti o prenosih posnetkov</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="421"/>
+ <location filename="src/mainwindow.cpp" line="440"/>
<source>&Download</source>
<translation>Pre&nesi</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="422"/>
+ <location filename="src/mainwindow.cpp" line="441"/>
<source>Download the current video</source>
<translation>Prenese trenutni posnetek</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="441"/>
+ <location filename="src/mainwindow.cpp" line="458"/>
+ <source>&Subscribe to Channel</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="src/mainwindow.cpp" line="465"/>
<source>Share the current video using %1</source>
<translation>Deli trenutni posnetek preko %1 </translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="458"/>
+ <location filename="src/mainwindow.cpp" line="482"/>
<source>&Email</source>
<translation>&E-pošta</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="459"/>
+ <location filename="src/mainwindow.cpp" line="483"/>
<source>Email</source>
<translation>E-pošte</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="463"/>
+ <location filename="src/mainwindow.cpp" line="487"/>
<source>&Close</source>
<translation>&Zapri</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="473"/>
+ <location filename="src/mainwindow.cpp" line="497"/>
<source>&Float on Top</source>
<translation>Lebdeče na vrhu</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="478"/>
+ <location filename="src/mainwindow.cpp" line="502"/>
<source>&Stop After This Video</source>
<translation>U&stavi za tem posnetkom</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="485"/>
+ <location filename="src/mainwindow.cpp" line="509"/>
<source>&Report an Issue...</source>
<translation>P&rijavi napako ...</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="489"/>
+ <location filename="src/mainwindow.cpp" line="513"/>
<source>&Refine Search...</source>
<translation>&Izboljšaj iskanje ...</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="501"/>
+ <location filename="src/mainwindow.cpp" line="525"/>
<source>More...</source>
- <translation type="unfinished"/>
+ <translation>Več...</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="504"/>
+ <location filename="src/mainwindow.cpp" line="528"/>
<source>&Related Videos</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="506"/>
+ <location filename="src/mainwindow.cpp" line="530"/>
<source>Watch videos related to the current one</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="544"/>
+ <location filename="src/mainwindow.cpp" line="553"/>
<source>&Application</source>
<translation>&Aplikacija</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="515"/>
+ <location filename="src/mainwindow.cpp" line="537"/>
<source>Buy %1...</source>
<translation>Kupi %1 ...</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="558"/>
+ <location filename="src/mainwindow.cpp" line="567"/>
<source>&Playback</source>
<translation>&Predvajanje</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="572"/>
+ <location filename="src/mainwindow.cpp" line="581"/>
<source>&Playlist</source>
<translation>&Predvajalni seznam</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="581"/>
+ <location filename="src/mainwindow.cpp" line="590"/>
<source>&Video</source>
<translation>&Video</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="594"/>
+ <location filename="src/mainwindow.cpp" line="605"/>
<source>&View</source>
<translation>&Pogled</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="601"/>
+ <location filename="src/mainwindow.cpp" line="612"/>
<source>&Share</source>
<translation>&Deli</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="615"/>
+ <location filename="src/mainwindow.cpp" line="626"/>
<source>&Help</source>
<translation>P&omoč</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="690"/>
+ <location filename="src/mainwindow.cpp" line="701"/>
<source>Press %1 to raise the volume, %2 to lower it</source>
<translation>Pritisnite %1, da povišate glasnost in %2, da jo nižate</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="889"/>
- <location filename="src/mainwindow.cpp" line="895"/>
+ <location filename="src/mainwindow.cpp" line="910"/>
+ <location filename="src/mainwindow.cpp" line="916"/>
<source>Opening %1</source>
<translation>Odpiranje %1</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="936"/>
+ <location filename="src/mainwindow.cpp" line="959"/>
<source>Do you want to exit %1 with a download in progress?</source>
<translation>Ali res želite zapustiti %1 medtem, ko je aktiven prenos?</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="937"/>
+ <location filename="src/mainwindow.cpp" line="960"/>
<source>If you close %1 now, this download will be cancelled.</source>
<translation>V primeru, da zdaj zaprete %1 bo ta prenos prekinjen.</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="942"/>
+ <location filename="src/mainwindow.cpp" line="965"/>
<source>Close and cancel download</source>
<translation>Zapri in prekliči prenos</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="943"/>
+ <location filename="src/mainwindow.cpp" line="966"/>
<source>Wait for download to finish</source>
<translation>Počakaj, da konča prenos.</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="1102"/>
+ <location filename="src/mainwindow.cpp" line="1125"/>
<source>Leave &Full Screen</source>
<translation>Zapusti celozaslonski način</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="1475"/>
+ <location filename="src/mainwindow.cpp" line="1515"/>
<source>%1 version %2 is now available.</source>
<translation>Na voljo je %1 različica %2.</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="1479"/>
+ <location filename="src/mainwindow.cpp" line="1519"/>
<source>Remind me later</source>
<translation>Opozori me kasneje</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="1480"/>
+ <location filename="src/mainwindow.cpp" line="1520"/>
<source>Update</source>
<translation>Posodobitev</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="982"/>
+ <location filename="src/mainwindow.cpp" line="1005"/>
<source>Error: %1</source>
<translation>Napaka: %1</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="222"/>
+ <location filename="src/mainwindow.cpp" line="246"/>
<source>P&revious</source>
<translation>P&redhodna</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="223"/>
+ <location filename="src/mainwindow.cpp" line="247"/>
<source>Go back to the previous track</source>
<translation>Predhodna sled</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="262"/>
+ <location filename="src/mainwindow.cpp" line="281"/>
<source>&Compact Mode</source>
<translation>Strnjen način</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="275"/>
+ <location filename="src/mainwindow.cpp" line="294"/>
<source>Open the &YouTube Page</source>
<translation>Odpri stran &Youtube</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="282"/>
+ <location filename="src/mainwindow.cpp" line="301"/>
<source>Copy the YouTube &Link</source>
<translation>Kopiraj povezavo Youtube</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="289"/>
+ <location filename="src/mainwindow.cpp" line="308"/>
<source>Copy the Video Stream &URL</source>
<translation>Kopiraj &URL toka video</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="296"/>
+ <location filename="src/mainwindow.cpp" line="315"/>
<source>Find Video &Parts</source>
<translation>&Poišči ostale dele posnetka</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="324"/>
+ <location filename="src/mainwindow.cpp" line="343"/>
<source>&Clear Recent Searches</source>
<translation>Počisti nedavna iskanja</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="348"/>
+ <location filename="src/mainwindow.cpp" line="367"/>
<source>Make a &Donation</source>
<translation>Pošlji &donacijo</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="405"/>
+ <location filename="src/mainwindow.cpp" line="424"/>
<source>&Manually Start Playing</source>
<translation>Ročno začni predvajanje</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="406"/>
+ <location filename="src/mainwindow.cpp" line="425"/>
<source>Manually start playing videos</source>
<translation>Prični z ročnim predvajanjem posnetkov</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="728"/>
+ <location filename="src/mainwindow.cpp" line="739"/>
<source>Choose your content location</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="1002"/>
+ <location filename="src/mainwindow.cpp" line="1025"/>
<source>&Play</source>
<translation>&Predvajaj</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="1003"/>
+ <location filename="src/mainwindow.cpp" line="1026"/>
<source>Resume playback</source>
<translation>Nadaljuj s predvajanjem</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="1236"/>
+ <location filename="src/mainwindow.cpp" line="1277"/>
<source>Remaining time: %1</source>
<translation>Preostali čas: %1</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="1294"/>
+ <location filename="src/mainwindow.cpp" line="1335"/>
<source>Volume at %1%</source>
<translation>Glasnost %1%</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="1300"/>
+ <location filename="src/mainwindow.cpp" line="1341"/>
<source>Volume is muted</source>
<translation>Glasnost je utišana</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="1303"/>
+ <location filename="src/mainwindow.cpp" line="1344"/>
<source>Volume is unmuted</source>
<translation>Glasnost je povrnjena</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="1310"/>
+ <location filename="src/mainwindow.cpp" line="1351"/>
<source>Maximum video definition set to %1</source>
<translation>Najvišja ločljivost posnetkov je nastavljena na %1</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="1351"/>
+ <location filename="src/mainwindow.cpp" line="1392"/>
<source>Your privacy is now safe</source>
<translation>Vaša zasebnost je zdaj varna</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="1366"/>
+ <location filename="src/mainwindow.cpp" line="1407"/>
<source>Downloads complete</source>
<translation>Prenosi so končani</translation>
</message>
<context>
<name>MediaView</name>
<message>
- <location filename="src/mediaview.cpp" line="553"/>
+ <location filename="src/mediaview.cpp" line="563"/>
<source>You can now paste the YouTube link into another application</source>
<translation>Zdaj lahko prilepite povezavo na YouTube v drugo aplikacijo</translation>
</message>
<message>
- <location filename="src/mediaview.cpp" line="561"/>
+ <location filename="src/mediaview.cpp" line="571"/>
<source>You can now paste the video stream URL into another application</source>
<translation>Zdaj lahko prilepite URL video pretoka v drugo aplikacijo</translation>
</message>
<message>
- <location filename="src/mediaview.cpp" line="562"/>
+ <location filename="src/mediaview.cpp" line="572"/>
<source>The link will be valid only for a limited time.</source>
<translation>Povezava bo delovala le za omejen čas.</translation>
</message>
<message>
- <location filename="src/mediaview.cpp" line="636"/>
+ <location filename="src/mediaview.cpp" line="650"/>
<source>This is just the demo version of %1.</source>
<translation>To je samo demo različica programa %1.</translation>
</message>
<message>
- <location filename="src/mediaview.cpp" line="637"/>
+ <location filename="src/mediaview.cpp" line="651"/>
<source>It allows you to test the application and see if it works for you.</source>
<translation>Dovoli vam testiranje aplikacije in preverjanje delovanja,</translation>
</message>
<message>
- <location filename="src/mediaview.cpp" line="667"/>
+ <location filename="src/mediaview.cpp" line="681"/>
<source>Continue</source>
<translation>Nadaljuj</translation>
</message>
<message>
- <location filename="src/mediaview.cpp" line="756"/>
+ <location filename="src/mediaview.cpp" line="772"/>
<source>of</source>
<comment>Used in video parts, as in '2 of 3'</comment>
<translation>od</translation>
</message>
<message>
- <location filename="src/mediaview.cpp" line="768"/>
+ <location filename="src/mediaview.cpp" line="785"/>
<source>part</source>
<comment>This is for video parts, as in 'Cool video - part 1'</comment>
<translation>del</translation>
</message>
<message>
- <location filename="src/mediaview.cpp" line="770"/>
+ <location filename="src/mediaview.cpp" line="787"/>
<source>episode</source>
<comment>This is for video parts, as in 'Cool series - episode 1'</comment>
<translation>nadaljevanje</translation>
</message>
<message>
- <location filename="src/mediaview.cpp" line="847"/>
+ <location filename="src/mediaview.cpp" line="868"/>
<source>Sent from %1</source>
<translation>Poslano iz %1</translation>
</message>
<message>
- <location filename="src/mediaview.cpp" line="644"/>
+ <location filename="src/mediaview.cpp" line="899"/>
+ <source>Unsubscribe from %1</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="src/mediaview.cpp" line="903"/>
+ <source>Subscribe to %1</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="src/mediaview.cpp" line="658"/>
<source>Get the full version</source>
<translation>Pridobi celotno različico</translation>
</message>
<message>
- <location filename="src/mediaview.cpp" line="681"/>
+ <location filename="src/mediaview.cpp" line="695"/>
<source>Downloading %1</source>
<translation>Prenašanje %1</translation>
</message>
<context>
<name>PlaylistItemDelegate</name>
<message>
- <location filename="src/playlistitemdelegate.cpp" line="159"/>
+ <location filename="src/playlistitemdelegate.cpp" line="177"/>
<source>%1 views</source>
<translation>%1 predvajanj</translation>
</message>
<message>
- <location filename="src/playlistitemdelegate.cpp" line="285"/>
+ <location filename="src/playlistitemdelegate.cpp" line="292"/>
<source>%1 of %2 (%3) — %4</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="src/playlistitemdelegate.cpp" line="292"/>
+ <location filename="src/playlistitemdelegate.cpp" line="299"/>
<source>Preparing</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="src/playlistitemdelegate.cpp" line="294"/>
+ <location filename="src/playlistitemdelegate.cpp" line="301"/>
<source>Failed</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="src/playlistitemdelegate.cpp" line="296"/>
+ <location filename="src/playlistitemdelegate.cpp" line="303"/>
<source>Completed</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="src/playlistitemdelegate.cpp" line="298"/>
+ <location filename="src/playlistitemdelegate.cpp" line="305"/>
<source>Stopped</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="src/playlistitemdelegate.cpp" line="334"/>
+ <location filename="src/playlistitemdelegate.cpp" line="341"/>
<source>Stop downloading</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="src/playlistitemdelegate.cpp" line="344"/>
+ <location filename="src/playlistitemdelegate.cpp" line="351"/>
<source>Show in %1</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="src/playlistitemdelegate.cpp" line="346"/>
+ <location filename="src/playlistitemdelegate.cpp" line="353"/>
<source>Open parent folder</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="src/playlistitemdelegate.cpp" line="355"/>
+ <location filename="src/playlistitemdelegate.cpp" line="362"/>
<source>Restart downloading</source>
<translation type="unfinished"/>
</message>
<context>
<name>SearchView</name>
<message>
- <location filename="src/searchview.cpp" line="71"/>
+ <location filename="src/searchview.cpp" line="66"/>
<source>Welcome to <a href='%1'>%2</a>,</source>
<translation>Pozdravljeni v <a href='%1'>%2</a>,</translation>
</message>
<message>
- <location filename="src/searchview.cpp" line="50"/>
+ <location filename="src/searchview.cpp" line="161"/>
<source>Get the full version</source>
<translation>Pridobi celotno različico</translation>
</message>
<message>
- <location filename="src/searchview.cpp" line="85"/>
+ <location filename="src/searchview.cpp" line="80"/>
<source>Enter</source>
<extracomment>"Enter", as in "type". The whole phrase says: "Enter a keyword to start watching videos"</extracomment>
<translation>Vnesite</translation>
</message>
<message>
- <location filename="src/searchview.cpp" line="90"/>
+ <location filename="src/searchview.cpp" line="85"/>
<source>a keyword</source>
<translation>ključno besedo</translation>
</message>
<message>
- <location filename="src/searchview.cpp" line="91"/>
+ <location filename="src/searchview.cpp" line="86"/>
<source>a channel</source>
<translation>kanal</translation>
</message>
<message>
- <location filename="src/searchview.cpp" line="96"/>
+ <location filename="src/searchview.cpp" line="91"/>
<source>to start watching videos.</source>
<translation>in začnite gledati posnetke.</translation>
</message>
<message>
- <location filename="src/searchview.cpp" line="120"/>
+ <location filename="src/searchview.cpp" line="115"/>
<source>Watch</source>
<translation>Glejte</translation>
</message>
<message>
- <location filename="src/searchview.cpp" line="138"/>
+ <location filename="src/searchview.cpp" line="133"/>
<source>Recent keywords</source>
<translation>Nedavne ključne besede</translation>
</message>
<message>
- <location filename="src/searchview.cpp" line="151"/>
+ <location filename="src/searchview.cpp" line="146"/>
<source>Recent channels</source>
<translation>Nedavni kanali</translation>
</message>
<context>
<name>SidebarHeader</name>
<message>
- <location filename="src/sidebarheader.cpp" line="16"/>
- <location filename="src/sidebarheader.cpp" line="23"/>
+ <location filename="src/sidebarheader.cpp" line="19"/>
+ <location filename="src/sidebarheader.cpp" line="26"/>
<source>&Back</source>
<translation type="unfinished"/>
</message>
<source>Most Popular</source>
<translation type="unfinished"/>
</message>
- <message>
- <location filename="src/standardfeedsview.cpp" line="86"/>
- <source>Featured</source>
- <translation type="unfinished"/>
- </message>
<message>
<location filename="src/standardfeedsview.cpp" line="87"/>
<source>Most Shared</source>
<source>Top Rated</source>
<translation type="unfinished"/>
</message>
+ <message>
+ <location filename="src/standardfeedsview.cpp" line="90"/>
+ <source>All Time Popular</source>
+ <translation type="unfinished"/>
+ </message>
</context>
<context>
<name>Video</name>
<message>
- <location filename="src/video.cpp" line="213"/>
+ <location filename="src/video.cpp" line="215"/>
<source>Cannot get video stream for %1</source>
<translation>Za %1 ni mogoče pridobiti video pretoka</translation>
</message>
<message>
- <location filename="src/video.cpp" line="231"/>
+ <location filename="src/video.cpp" line="233"/>
<source>Network error: %1 for %2</source>
<translation>Napaka omrežja: %1 od %2</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="8"/>
<source>Algeria</source>
- <translation type="unfinished"/>
+ <translation>Alžirija</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="9"/>
<source>Argentina</source>
- <translation type="unfinished"/>
+ <translation>Argentina</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="10"/>
<source>Australia</source>
- <translation type="unfinished"/>
+ <translation>Avstralija</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="11"/>
<source>Belgium</source>
- <translation type="unfinished"/>
+ <translation>Belgija</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="12"/>
<source>Brazil</source>
- <translation type="unfinished"/>
+ <translation>Brazilija</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="13"/>
<source>Canada</source>
- <translation type="unfinished"/>
+ <translation>Kanada</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="14"/>
<source>Chile</source>
- <translation type="unfinished"/>
+ <translation>Čile</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="15"/>
<source>Colombia</source>
- <translation type="unfinished"/>
+ <translation>Kolumbija</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="16"/>
<source>Czech Republic</source>
- <translation type="unfinished"/>
+ <translation>Češka republika</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="17"/>
<source>Egypt</source>
- <translation type="unfinished"/>
+ <translation>Egipt</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="18"/>
<source>France</source>
- <translation type="unfinished"/>
+ <translation>Francija</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="19"/>
<source>Germany</source>
- <translation type="unfinished"/>
+ <translation>Nemčija</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="20"/>
<source>Ghana</source>
- <translation type="unfinished"/>
+ <translation>Gana</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="21"/>
<source>Greece</source>
- <translation type="unfinished"/>
+ <translation>Grčija</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="22"/>
<source>Hong Kong</source>
- <translation type="unfinished"/>
+ <translation>Hong Kong</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="23"/>
<source>Hungary</source>
- <translation type="unfinished"/>
+ <translation>Madžarska</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="24"/>
<source>India</source>
- <translation type="unfinished"/>
+ <translation>Indija</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="25"/>
<source>Indonesia</source>
- <translation type="unfinished"/>
+ <translation>Indonezija</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="26"/>
<source>Ireland</source>
- <translation type="unfinished"/>
+ <translation>Irska</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="27"/>
<source>Israel</source>
- <translation type="unfinished"/>
+ <translation>Izrael</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="28"/>
<source>Italy</source>
- <translation type="unfinished"/>
+ <translation>Italija</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="29"/>
<source>Japan</source>
- <translation type="unfinished"/>
+ <translation>Japonska</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="30"/>
<source>Jordan</source>
- <translation type="unfinished"/>
+ <translation>Jordanija</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="31"/>
<source>Kenya</source>
- <translation type="unfinished"/>
+ <translation>Kenija</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="32"/>
<source>Malaysia</source>
- <translation type="unfinished"/>
+ <translation>Malezija</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="33"/>
<source>Mexico</source>
- <translation type="unfinished"/>
+ <translation>Mehika</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="34"/>
<source>Morocco</source>
- <translation type="unfinished"/>
+ <translation>Maroko</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="35"/>
<source>Netherlands</source>
- <translation type="unfinished"/>
+ <translation>Nizozemska</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="36"/>
<source>New Zealand</source>
- <translation type="unfinished"/>
+ <translation>Nova Zelandija</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="37"/>
<source>Nigeria</source>
- <translation type="unfinished"/>
+ <translation>Nigerija</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="38"/>
<source>Peru</source>
- <translation type="unfinished"/>
+ <translation>Peru</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="39"/>
<source>Philippines</source>
- <translation type="unfinished"/>
+ <translation>Filipini</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="40"/>
<source>Poland</source>
- <translation type="unfinished"/>
+ <translation>Poljska</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="41"/>
<source>Russia</source>
- <translation type="unfinished"/>
+ <translation>Rusija</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="42"/>
<source>Saudi Arabia</source>
- <translation type="unfinished"/>
+ <translation>Savdska Arabija</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="43"/>
<message>
<location filename="src/ytregions.cpp" line="44"/>
<source>South Africa</source>
- <translation type="unfinished"/>
+ <translation>Južna Afrika</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="45"/>
<source>South Korea</source>
- <translation type="unfinished"/>
+ <translation>Južna Koreja</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="46"/>
<source>Spain</source>
- <translation type="unfinished"/>
+ <translation>Španija</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="47"/>
<source>Sweden</source>
- <translation type="unfinished"/>
+ <translation>Švedska</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="48"/>
<source>Taiwan</source>
- <translation type="unfinished"/>
+ <translation>Tajvan</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="49"/>
<source>Tunisia</source>
- <translation type="unfinished"/>
+ <translation>Tunizija</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="50"/>
<source>Turkey</source>
- <translation type="unfinished"/>
+ <translation>Turčija</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="51"/>
<source>Uganda</source>
- <translation type="unfinished"/>
+ <translation>Uganda</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="52"/>
<source>United Arab Emirates</source>
- <translation type="unfinished"/>
+ <translation>Združeni arabski emirati</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="53"/>
<source>United Kingdom</source>
- <translation type="unfinished"/>
+ <translation>Velika Britanija</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="54"/>
<source>Yemen</source>
- <translation type="unfinished"/>
+ <translation>Jemen</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="128"/>
<source>Worldwide</source>
- <translation type="unfinished"/>
+ <translation>Svetovno</translation>
</message>
</context>
</TS>
\ No newline at end of file
<message>
<location filename="src/aboutview.cpp" line="84"/>
<source>&Close</source>
- <translation>&Kapat</translation>
+ <translation>Kapat (&C)</translation>
</message>
<message>
<location filename="src/aboutview.h" line="17"/>
<translation>Lisans Al</translation>
</message>
</context>
+<context>
+ <name>ChannelAggregator</name>
+ <message>
+ <location filename="src/channelaggregator.cpp" line="110"/>
+ <source>By %1</source>
+ <translation>%1 tarafından</translation>
+ </message>
+ <message numerus="yes">
+ <location filename="src/channelaggregator.cpp" line="112"/>
+ <source>You have %n new video(s)</source>
+ <translation type="unfinished"><numerusform></numerusform><numerusform></numerusform></translation>
+ </message>
+</context>
+<context>
+ <name>ChannelItemDelegate</name>
+ <message>
+ <location filename="src/channelitemdelegate.cpp" line="46"/>
+ <source>All Videos</source>
+ <translation>Tüm Videolar</translation>
+ </message>
+ <message>
+ <location filename="src/channelitemdelegate.cpp" line="63"/>
+ <source>Unwatched Videos</source>
+ <translation>İzlenmemiş Videolar</translation>
+ </message>
+</context>
+<context>
+ <name>ChannelView</name>
+ <message>
+ <location filename="src/channelview.cpp" line="75"/>
+ <source>Mark all as watched</source>
+ <translation>Tümünü izlendi işaretle</translation>
+ </message>
+ <message>
+ <location filename="src/channelview.cpp" line="83"/>
+ <source>Show Updated</source>
+ <translation>Güncellenenleri Göster</translation>
+ </message>
+ <message>
+ <location filename="src/channelview.cpp" line="95"/>
+ <source>Name</source>
+ <translation>İsim</translation>
+ </message>
+ <message>
+ <location filename="src/channelview.cpp" line="102"/>
+ <source>Last Updated</source>
+ <translation>Son Güncellenen</translation>
+ </message>
+ <message>
+ <location filename="src/channelview.cpp" line="109"/>
+ <source>Last Added</source>
+ <translation>Son Eklenen</translation>
+ </message>
+ <message>
+ <location filename="src/channelview.cpp" line="116"/>
+ <source>Last Watched</source>
+ <translation>Son İzlenen</translation>
+ </message>
+ <message>
+ <location filename="src/channelview.cpp" line="123"/>
+ <source>Most Watched</source>
+ <translation>En Çok İzlenen</translation>
+ </message>
+ <message>
+ <location filename="src/channelview.cpp" line="131"/>
+ <source>Sort by</source>
+ <translation>Sırala</translation>
+ </message>
+ <message>
+ <location filename="src/channelview.cpp" line="190"/>
+ <source>All Videos</source>
+ <translation>Tüm Videolar</translation>
+ </message>
+ <message>
+ <location filename="src/channelview.cpp" line="194"/>
+ <source>Unwatched Videos</source>
+ <translation>İzlenmemiş Videolar</translation>
+ </message>
+ <message>
+ <location filename="src/channelview.cpp" line="206"/>
+ <source>There are no updated subscriptions at this time.</source>
+ <translation>Şu anda güncellenen abonelik yok.</translation>
+ </message>
+ <message>
+ <location filename="src/channelview.cpp" line="208"/>
+ <source>You have no subscriptions. Use the star symbol to subscribe to channels.</source>
+ <translation>Hiç aboneliğiniz yok. Kanallara abone olmak için yıldız simgesini kullanın.</translation>
+ </message>
+</context>
<context>
<name>ClearButton</name>
<message>
<message numerus="yes">
<location filename="src/downloadmanager.cpp" line="159"/>
<source>%n Download(s)</source>
- <translation><numerusform>%n İndirme</numerusform></translation>
+ <translation><numerusform>%n İndirme</numerusform><numerusform>%n İndirme</numerusform></translation>
</message>
</context>
<context>
<message>
<location filename="src/globalshortcuts.cpp" line="25"/>
<source>Mute</source>
- <translation>Sesi kes</translation>
+ <translation>Sessiz</translation>
</message>
<message>
<location filename="src/globalshortcuts.cpp" line="26"/>
<context>
<name>HomeView</name>
<message>
- <location filename="src/homeview.cpp" line="33"/>
+ <location filename="src/homeview.cpp" line="38"/>
<source>Search</source>
<translation>Arama</translation>
</message>
<message>
- <location filename="src/homeview.cpp" line="35"/>
+ <location filename="src/homeview.cpp" line="40"/>
<source>Find videos and channels by keyword</source>
<translation>Anahtar kelimeye göre video ve kanal bulun</translation>
</message>
<message>
- <location filename="src/homeview.cpp" line="40"/>
+ <location filename="src/homeview.cpp" line="45"/>
<source>Browse</source>
<translation>Gözat</translation>
</message>
<message>
- <location filename="src/homeview.cpp" line="42"/>
+ <location filename="src/homeview.cpp" line="47"/>
<source>Browse videos by category</source>
<translation>Kategoriye göre videoları gözat</translation>
</message>
+ <message>
+ <location filename="src/homeview.cpp" line="51"/>
+ <source>Subscriptions</source>
+ <translation>Abonelikler</translation>
+ </message>
+ <message>
+ <location filename="src/homeview.cpp" line="53"/>
+ <source>Channel subscriptions</source>
+ <translation>Kanal abonelikleri</translation>
+ </message>
<message>
<location filename="src/homeview.h" line="22"/>
<source>Make yourself comfortable</source>
<context>
<name>LoadingWidget</name>
<message>
- <location filename="src/loadingwidget.cpp" line="90"/>
+ <location filename="src/loadingwidget.cpp" line="88"/>
<source>Error</source>
<translation>Hata</translation>
</message>
<context>
<name>MainWindow</name>
<message>
- <location filename="src/mainwindow.cpp" line="213"/>
+ <location filename="src/mainwindow.cpp" line="237"/>
<source>&Stop</source>
- <translation>&Dur</translation>
+ <translation>Dur (&S)</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="214"/>
+ <location filename="src/mainwindow.cpp" line="238"/>
<source>Stop playback and go back to the search view</source>
<translation>Oynatmayı durdur ve aramaya geri dön</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="232"/>
+ <location filename="src/mainwindow.cpp" line="253"/>
<source>S&kip</source>
<translation>&Atla</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="233"/>
+ <location filename="src/mainwindow.cpp" line="254"/>
<source>Skip to the next video</source>
<translation>Sonraki videoya atla</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="239"/>
- <location filename="src/mainwindow.cpp" line="989"/>
+ <location filename="src/mainwindow.cpp" line="260"/>
+ <location filename="src/mainwindow.cpp" line="1012"/>
<source>&Pause</source>
<translation>&Bekle</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="240"/>
- <location filename="src/mainwindow.cpp" line="990"/>
+ <location filename="src/mainwindow.cpp" line="261"/>
+ <location filename="src/mainwindow.cpp" line="1013"/>
<source>Pause playback</source>
<translation>Oynatmayı beklet</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="246"/>
+ <location filename="src/mainwindow.cpp" line="267"/>
<source>&Full Screen</source>
<translation>&Tam ekran</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="247"/>
+ <location filename="src/mainwindow.cpp" line="268"/>
<source>Go full screen</source>
<translation>Tam ekran görünümü</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="263"/>
+ <location filename="src/mainwindow.cpp" line="282"/>
<source>Hide the playlist and the toolbar</source>
<translation>Listeyi ve araç çubuğunu gizle</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="276"/>
+ <location filename="src/mainwindow.cpp" line="295"/>
<source>Go to the YouTube video page and pause playback</source>
<translation>Oynatmayı beklet ve YouTube sayfasına git</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="283"/>
+ <location filename="src/mainwindow.cpp" line="302"/>
<source>Copy the current video YouTube link to the clipboard</source>
<translation>Geçerli videonun YouTube bağlantısını panoya kopyala</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="290"/>
+ <location filename="src/mainwindow.cpp" line="309"/>
<source>Copy the current video stream URL to the clipboard</source>
<translation>Geçerli video akışının URL adresini panoya kopyala</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="297"/>
+ <location filename="src/mainwindow.cpp" line="316"/>
<source>Find other video parts hopefully in the right order</source>
<translation>Doğru sırada olacak şekilde diğer video kısımlarını bul</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="303"/>
+ <location filename="src/mainwindow.cpp" line="322"/>
<source>&Remove</source>
<translation>&Kaldır</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="304"/>
+ <location filename="src/mainwindow.cpp" line="323"/>
<source>Remove the selected videos from the playlist</source>
<translation>Seçilen videoları listeden kaldır</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="310"/>
+ <location filename="src/mainwindow.cpp" line="329"/>
<source>Move &Up</source>
<translation>Y&ukarı taşı</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="311"/>
+ <location filename="src/mainwindow.cpp" line="330"/>
<source>Move up the selected videos in the playlist</source>
<translation>Seçilen videoları listede yukarı taşı</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="317"/>
+ <location filename="src/mainwindow.cpp" line="336"/>
<source>Move &Down</source>
<translation>A&şağı taşı</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="318"/>
+ <location filename="src/mainwindow.cpp" line="337"/>
<source>Move down the selected videos in the playlist</source>
<translation>Seçilen videoları listede aşağı taşı</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="329"/>
+ <location filename="src/mainwindow.cpp" line="348"/>
<source>Clear the search history. Cannot be undone.</source>
<translation>Arama geçmişini sil. Bu geri alınamaz.</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="334"/>
+ <location filename="src/mainwindow.cpp" line="353"/>
<source>&Quit</source>
<translation>&Çık</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="337"/>
+ <location filename="src/mainwindow.cpp" line="356"/>
<source>Bye</source>
<translation>Gülegüle</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="341"/>
+ <location filename="src/mainwindow.cpp" line="360"/>
<source>&Website</source>
<translation>&Website</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="343"/>
+ <location filename="src/mainwindow.cpp" line="362"/>
<source>%1 on the Web</source>
<translation>%1 İnternette</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="349"/>
+ <location filename="src/mainwindow.cpp" line="368"/>
<source>Please support the continued development of %1</source>
<translation>Lütfen %1 gelişiminin sürekliliği için destekleyin</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="354"/>
+ <location filename="src/mainwindow.cpp" line="373"/>
<source>&About</source>
<translation>&Hakkında</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="356"/>
+ <location filename="src/mainwindow.cpp" line="375"/>
<source>Info about %1</source>
<translation>%1 Hakkında</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="364"/>
+ <location filename="src/mainwindow.cpp" line="383"/>
<source>Search</source>
<translation>Ara</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="383"/>
+ <location filename="src/mainwindow.cpp" line="402"/>
<source>Mute volume</source>
<translation>Sesi kes</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="412"/>
- <location filename="src/mainwindow.cpp" line="1365"/>
+ <location filename="src/mainwindow.cpp" line="431"/>
+ <location filename="src/mainwindow.cpp" line="1406"/>
<source>&Downloads</source>
<translation>&İndirmeler</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="413"/>
+ <location filename="src/mainwindow.cpp" line="432"/>
<source>Show details about video downloads</source>
<translation>Video indirmelerinin ayrıntılarını göster</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="421"/>
+ <location filename="src/mainwindow.cpp" line="440"/>
<source>&Download</source>
<translation>&İndir</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="422"/>
+ <location filename="src/mainwindow.cpp" line="441"/>
<source>Download the current video</source>
<translation>Geçerli videoyu indir</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="441"/>
+ <location filename="src/mainwindow.cpp" line="458"/>
+ <source>&Subscribe to Channel</source>
+ <translation>Kanala Abone Ol (&S)</translation>
+ </message>
+ <message>
+ <location filename="src/mainwindow.cpp" line="465"/>
<source>Share the current video using %1</source>
<translation>%1 kullanarak şu an ki videoyu paylaş</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="458"/>
+ <location filename="src/mainwindow.cpp" line="482"/>
<source>&Email</source>
<translation>&Eposta</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="459"/>
+ <location filename="src/mainwindow.cpp" line="483"/>
<source>Email</source>
<translation>Eposta</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="463"/>
+ <location filename="src/mainwindow.cpp" line="487"/>
<source>&Close</source>
<translation>&Kapat</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="473"/>
+ <location filename="src/mainwindow.cpp" line="497"/>
<source>&Float on Top</source>
<translation>Üstte Sabitle</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="478"/>
+ <location filename="src/mainwindow.cpp" line="502"/>
<source>&Stop After This Video</source>
<translation>Bu Videodan &Sonra Durdur</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="485"/>
+ <location filename="src/mainwindow.cpp" line="509"/>
<source>&Report an Issue...</source>
<translation>Bir Sorun Bildi&r</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="489"/>
+ <location filename="src/mainwindow.cpp" line="513"/>
<source>&Refine Search...</source>
<translation>A&ramayı Sınırla...</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="501"/>
+ <location filename="src/mainwindow.cpp" line="525"/>
<source>More...</source>
<translation>Dahası...</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="504"/>
+ <location filename="src/mainwindow.cpp" line="528"/>
<source>&Related Videos</source>
<translation>Benze&r Videolar</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="506"/>
+ <location filename="src/mainwindow.cpp" line="530"/>
<source>Watch videos related to the current one</source>
<translation>Şu an izlediğinize benzer videolar izleyin</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="544"/>
+ <location filename="src/mainwindow.cpp" line="553"/>
<source>&Application</source>
<translation>&Uygulama</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="515"/>
+ <location filename="src/mainwindow.cpp" line="537"/>
<source>Buy %1...</source>
<translation>%1 Satın Al...</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="558"/>
+ <location filename="src/mainwindow.cpp" line="567"/>
<source>&Playback</source>
<translation>&Çalma</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="572"/>
+ <location filename="src/mainwindow.cpp" line="581"/>
<source>&Playlist</source>
<translation>Oynatma &listesi</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="581"/>
+ <location filename="src/mainwindow.cpp" line="590"/>
<source>&Video</source>
<translation>&Video</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="594"/>
+ <location filename="src/mainwindow.cpp" line="605"/>
<source>&View</source>
<translation>&Görünüm</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="601"/>
+ <location filename="src/mainwindow.cpp" line="612"/>
<source>&Share</source>
<translation>Payla&s</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="615"/>
+ <location filename="src/mainwindow.cpp" line="626"/>
<source>&Help</source>
<translation>Yardı&m</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="690"/>
+ <location filename="src/mainwindow.cpp" line="701"/>
<source>Press %1 to raise the volume, %2 to lower it</source>
<translation>%1 Sesi arttır, %2 sesi azalt</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="889"/>
- <location filename="src/mainwindow.cpp" line="895"/>
+ <location filename="src/mainwindow.cpp" line="910"/>
+ <location filename="src/mainwindow.cpp" line="916"/>
<source>Opening %1</source>
<translation>%1 Açılıyor</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="936"/>
+ <location filename="src/mainwindow.cpp" line="959"/>
<source>Do you want to exit %1 with a download in progress?</source>
<translation>%1 İndiriliyor, çıkmak istiyor musunuz?</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="937"/>
+ <location filename="src/mainwindow.cpp" line="960"/>
<source>If you close %1 now, this download will be cancelled.</source>
<translation>Eğer %1'İ şimdi kapatırsanız, bu indirme iptal edilecek.</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="942"/>
+ <location filename="src/mainwindow.cpp" line="965"/>
<source>Close and cancel download</source>
<translation>Kapat ve indirmeyi iptal et</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="943"/>
+ <location filename="src/mainwindow.cpp" line="966"/>
<source>Wait for download to finish</source>
<translation>İndirmenin bitmesini bekle</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="1102"/>
+ <location filename="src/mainwindow.cpp" line="1125"/>
<source>Leave &Full Screen</source>
<translation>&Tam Ekrandan Çık</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="1475"/>
+ <location filename="src/mainwindow.cpp" line="1515"/>
<source>%1 version %2 is now available.</source>
<translation>%1 sürüm %2 kullanılabilir durumda.</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="1479"/>
+ <location filename="src/mainwindow.cpp" line="1519"/>
<source>Remind me later</source>
<translation>Daha sonra hatırlat</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="1480"/>
+ <location filename="src/mainwindow.cpp" line="1520"/>
<source>Update</source>
<translation>Güncelle</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="982"/>
+ <location filename="src/mainwindow.cpp" line="1005"/>
<source>Error: %1</source>
<translation>Hata: %1</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="222"/>
+ <location filename="src/mainwindow.cpp" line="246"/>
<source>P&revious</source>
<translation>Önceki</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="223"/>
+ <location filename="src/mainwindow.cpp" line="247"/>
<source>Go back to the previous track</source>
<translation>Bir önceki parçaya geri dön</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="262"/>
+ <location filename="src/mainwindow.cpp" line="281"/>
<source>&Compact Mode</source>
<translation>Kü&cültümüş Ekran</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="275"/>
+ <location filename="src/mainwindow.cpp" line="294"/>
<source>Open the &YouTube Page</source>
<translation>&YouTube Sayfasını Aç</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="282"/>
+ <location filename="src/mainwindow.cpp" line="301"/>
<source>Copy the YouTube &Link</source>
<translation>YouTube &Linkini Kopyala</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="289"/>
+ <location filename="src/mainwindow.cpp" line="308"/>
<source>Copy the Video Stream &URL</source>
<translation>Video &URL'sini Kopyala</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="296"/>
+ <location filename="src/mainwindow.cpp" line="315"/>
<source>Find Video &Parts</source>
<translation>Video Bölümlerini Bul</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="324"/>
+ <location filename="src/mainwindow.cpp" line="343"/>
<source>&Clear Recent Searches</source>
<translation>Son Aramaları Temizle</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="348"/>
+ <location filename="src/mainwindow.cpp" line="367"/>
<source>Make a &Donation</source>
<translation>Bağış Yap</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="405"/>
+ <location filename="src/mainwindow.cpp" line="424"/>
<source>&Manually Start Playing</source>
<translation>&Manuel Olarak Çalmaya Başla</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="406"/>
+ <location filename="src/mainwindow.cpp" line="425"/>
<source>Manually start playing videos</source>
<translation>Videoları manuel olarak çalmaya başla</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="728"/>
+ <location filename="src/mainwindow.cpp" line="739"/>
<source>Choose your content location</source>
<translation>Konumunuzu seçin</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="1002"/>
+ <location filename="src/mainwindow.cpp" line="1025"/>
<source>&Play</source>
<translation>&Oynat</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="1003"/>
+ <location filename="src/mainwindow.cpp" line="1026"/>
<source>Resume playback</source>
<translation>Oynatmaya devam et</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="1236"/>
+ <location filename="src/mainwindow.cpp" line="1277"/>
<source>Remaining time: %1</source>
<translation>Kalan zaman: %1</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="1294"/>
+ <location filename="src/mainwindow.cpp" line="1335"/>
<source>Volume at %1%</source>
<translation>Ses %1%</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="1300"/>
+ <location filename="src/mainwindow.cpp" line="1341"/>
<source>Volume is muted</source>
<translation>Ses kapandı</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="1303"/>
+ <location filename="src/mainwindow.cpp" line="1344"/>
<source>Volume is unmuted</source>
<translation>Ses açık</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="1310"/>
+ <location filename="src/mainwindow.cpp" line="1351"/>
<source>Maximum video definition set to %1</source>
<translation>En yüksek video tanımı %1 olarak ayarlı</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="1351"/>
+ <location filename="src/mainwindow.cpp" line="1392"/>
<source>Your privacy is now safe</source>
<translation>Şimdi gizliliğiniz güvende</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="1366"/>
+ <location filename="src/mainwindow.cpp" line="1407"/>
<source>Downloads complete</source>
<translation>İndirme tamamlandı</translation>
</message>
<context>
<name>MediaView</name>
<message>
- <location filename="src/mediaview.cpp" line="553"/>
+ <location filename="src/mediaview.cpp" line="563"/>
<source>You can now paste the YouTube link into another application</source>
<translation>Şimdi YouTube bağlantısını başka bir uygulamaya yapıştırabilirsiniz</translation>
</message>
<message>
- <location filename="src/mediaview.cpp" line="561"/>
+ <location filename="src/mediaview.cpp" line="571"/>
<source>You can now paste the video stream URL into another application</source>
<translation>Şimdi video akışı URL adresini başka bir uygulamaya yapıştırabilirsiniz</translation>
</message>
<message>
- <location filename="src/mediaview.cpp" line="562"/>
+ <location filename="src/mediaview.cpp" line="572"/>
<source>The link will be valid only for a limited time.</source>
<translation>Bağlantı kısıtlı bir süre için geçerli olacak.</translation>
</message>
<message>
- <location filename="src/mediaview.cpp" line="636"/>
+ <location filename="src/mediaview.cpp" line="650"/>
<source>This is just the demo version of %1.</source>
<translation>Bu sadece %1'in demo sürümüdür.</translation>
</message>
<message>
- <location filename="src/mediaview.cpp" line="637"/>
+ <location filename="src/mediaview.cpp" line="651"/>
<source>It allows you to test the application and see if it works for you.</source>
<translation>Bu, uygulamayı test etmenizi ve çalışıp çalışmadığını görmenizi sağlar.</translation>
</message>
<message>
- <location filename="src/mediaview.cpp" line="667"/>
+ <location filename="src/mediaview.cpp" line="681"/>
<source>Continue</source>
<translation>Devam</translation>
</message>
<message>
- <location filename="src/mediaview.cpp" line="756"/>
+ <location filename="src/mediaview.cpp" line="772"/>
<source>of</source>
<comment>Used in video parts, as in '2 of 3'</comment>
<translation>/</translation>
</message>
<message>
- <location filename="src/mediaview.cpp" line="768"/>
+ <location filename="src/mediaview.cpp" line="785"/>
<source>part</source>
<comment>This is for video parts, as in 'Cool video - part 1'</comment>
<translation>kısım</translation>
</message>
<message>
- <location filename="src/mediaview.cpp" line="770"/>
+ <location filename="src/mediaview.cpp" line="787"/>
<source>episode</source>
<comment>This is for video parts, as in 'Cool series - episode 1'</comment>
<translation>bölüm</translation>
</message>
<message>
- <location filename="src/mediaview.cpp" line="847"/>
+ <location filename="src/mediaview.cpp" line="868"/>
<source>Sent from %1</source>
<translation>%1 ile gönderildi</translation>
</message>
<message>
- <location filename="src/mediaview.cpp" line="644"/>
+ <location filename="src/mediaview.cpp" line="899"/>
+ <source>Unsubscribe from %1</source>
+ <translation>%1 aboneliğinden çık</translation>
+ </message>
+ <message>
+ <location filename="src/mediaview.cpp" line="903"/>
+ <source>Subscribe to %1</source>
+ <translation>%1 Abone Ol</translation>
+ </message>
+ <message>
+ <location filename="src/mediaview.cpp" line="658"/>
<source>Get the full version</source>
<translation>Tam sürüme geç</translation>
</message>
<message>
- <location filename="src/mediaview.cpp" line="681"/>
+ <location filename="src/mediaview.cpp" line="695"/>
<source>Downloading %1</source>
<translation>İndiriliyor %1</translation>
</message>
<context>
<name>PlaylistItemDelegate</name>
<message>
- <location filename="src/playlistitemdelegate.cpp" line="159"/>
+ <location filename="src/playlistitemdelegate.cpp" line="177"/>
<source>%1 views</source>
<translation>%1 görüntülenme</translation>
</message>
<message>
- <location filename="src/playlistitemdelegate.cpp" line="285"/>
+ <location filename="src/playlistitemdelegate.cpp" line="292"/>
<source>%1 of %2 (%3) — %4</source>
<translation>%1 of %2 (%3) — %4</translation>
</message>
<message>
- <location filename="src/playlistitemdelegate.cpp" line="292"/>
+ <location filename="src/playlistitemdelegate.cpp" line="299"/>
<source>Preparing</source>
<translation>Hazırlanıyor</translation>
</message>
<message>
- <location filename="src/playlistitemdelegate.cpp" line="294"/>
+ <location filename="src/playlistitemdelegate.cpp" line="301"/>
<source>Failed</source>
<translation>Başarısız</translation>
</message>
<message>
- <location filename="src/playlistitemdelegate.cpp" line="296"/>
+ <location filename="src/playlistitemdelegate.cpp" line="303"/>
<source>Completed</source>
<translation>Tamamlandı</translation>
</message>
<message>
- <location filename="src/playlistitemdelegate.cpp" line="298"/>
+ <location filename="src/playlistitemdelegate.cpp" line="305"/>
<source>Stopped</source>
<translation>Durduruldu</translation>
</message>
<message>
- <location filename="src/playlistitemdelegate.cpp" line="334"/>
+ <location filename="src/playlistitemdelegate.cpp" line="341"/>
<source>Stop downloading</source>
<translation>İndirme işlemini durdur</translation>
</message>
<message>
- <location filename="src/playlistitemdelegate.cpp" line="344"/>
+ <location filename="src/playlistitemdelegate.cpp" line="351"/>
<source>Show in %1</source>
<translation>%1 içinde göster</translation>
</message>
<message>
- <location filename="src/playlistitemdelegate.cpp" line="346"/>
+ <location filename="src/playlistitemdelegate.cpp" line="353"/>
<source>Open parent folder</source>
<translation>Önceki dizini aç</translation>
</message>
<message>
- <location filename="src/playlistitemdelegate.cpp" line="355"/>
+ <location filename="src/playlistitemdelegate.cpp" line="362"/>
<source>Restart downloading</source>
<translation>İndirme işlemini yeniden başlat</translation>
</message>
<context>
<name>SearchView</name>
<message>
- <location filename="src/searchview.cpp" line="71"/>
+ <location filename="src/searchview.cpp" line="66"/>
<source>Welcome to <a href='%1'>%2</a>,</source>
<translation><a href='%1'>%2</a>'a Hoşgeldiniz</translation>
</message>
<message>
- <location filename="src/searchview.cpp" line="50"/>
+ <location filename="src/searchview.cpp" line="161"/>
<source>Get the full version</source>
<translation>Tam sürüme geç</translation>
</message>
<message>
- <location filename="src/searchview.cpp" line="85"/>
+ <location filename="src/searchview.cpp" line="80"/>
<source>Enter</source>
<extracomment>"Enter", as in "type". The whole phrase says: "Enter a keyword to start watching videos"</extracomment>
<translation>Giriş yapın</translation>
</message>
<message>
- <location filename="src/searchview.cpp" line="90"/>
+ <location filename="src/searchview.cpp" line="85"/>
<source>a keyword</source>
<translation>bir anahtar kelime</translation>
</message>
<message>
- <location filename="src/searchview.cpp" line="91"/>
+ <location filename="src/searchview.cpp" line="86"/>
<source>a channel</source>
<translation>bir kanal</translation>
</message>
<message>
- <location filename="src/searchview.cpp" line="96"/>
+ <location filename="src/searchview.cpp" line="91"/>
<source>to start watching videos.</source>
<translation>ve videoları izlemeye başlayın.</translation>
</message>
<message>
- <location filename="src/searchview.cpp" line="120"/>
+ <location filename="src/searchview.cpp" line="115"/>
<source>Watch</source>
<translation>İzle</translation>
</message>
<message>
- <location filename="src/searchview.cpp" line="138"/>
+ <location filename="src/searchview.cpp" line="133"/>
<source>Recent keywords</source>
<translation>Son arananlar</translation>
</message>
<message>
- <location filename="src/searchview.cpp" line="151"/>
+ <location filename="src/searchview.cpp" line="146"/>
<source>Recent channels</source>
<translation>Önceki kanallar</translation>
</message>
<context>
<name>SidebarHeader</name>
<message>
- <location filename="src/sidebarheader.cpp" line="16"/>
- <location filename="src/sidebarheader.cpp" line="23"/>
+ <location filename="src/sidebarheader.cpp" line="19"/>
+ <location filename="src/sidebarheader.cpp" line="26"/>
<source>&Back</source>
<translation>Geri</translation>
</message>
<source>Most Popular</source>
<translation>En popülerler</translation>
</message>
- <message>
- <location filename="src/standardfeedsview.cpp" line="86"/>
- <source>Featured</source>
- <translation>Gelecek</translation>
- </message>
<message>
<location filename="src/standardfeedsview.cpp" line="87"/>
<source>Most Shared</source>
<source>Top Rated</source>
<translation>En Çok Oy Verilenler</translation>
</message>
+ <message>
+ <location filename="src/standardfeedsview.cpp" line="90"/>
+ <source>All Time Popular</source>
+ <translation>Her Zaman Popüler</translation>
+ </message>
</context>
<context>
<name>Video</name>
<message>
- <location filename="src/video.cpp" line="213"/>
+ <location filename="src/video.cpp" line="215"/>
<source>Cannot get video stream for %1</source>
<translation>%1 için video akışı alınamıyor.</translation>
</message>
<message>
- <location filename="src/video.cpp" line="231"/>
+ <location filename="src/video.cpp" line="233"/>
<source>Network error: %1 for %2</source>
<translation>Ağ hatası: %2 için %1</translation>
</message>
<message>
<location filename="local/src/activationdialog.cpp" line="35"/>
<source>&Code:</source>
- <translation type="unfinished"/>
+ <translation>激活码(C):</translation>
</message>
</context>
<context>
<message>
<location filename="local/src/activationview.cpp" line="55"/>
<source>Without a license, the application will expire in %1 days.</source>
- <translation type="unfinished"/>
+ <translation>若无授权,该软件将会在 %1 天后过期。</translation>
</message>
<message>
<location filename="local/src/activationview.cpp" line="57"/>
<translation>购买许可</translation>
</message>
</context>
+<context>
+ <name>ChannelAggregator</name>
+ <message>
+ <location filename="src/channelaggregator.cpp" line="110"/>
+ <source>By %1</source>
+ <translation type="unfinished"/>
+ </message>
+ <message numerus="yes">
+ <location filename="src/channelaggregator.cpp" line="112"/>
+ <source>You have %n new video(s)</source>
+ <translation type="unfinished"><numerusform></numerusform></translation>
+ </message>
+</context>
+<context>
+ <name>ChannelItemDelegate</name>
+ <message>
+ <location filename="src/channelitemdelegate.cpp" line="46"/>
+ <source>All Videos</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="src/channelitemdelegate.cpp" line="63"/>
+ <source>Unwatched Videos</source>
+ <translation type="unfinished"/>
+ </message>
+</context>
+<context>
+ <name>ChannelView</name>
+ <message>
+ <location filename="src/channelview.cpp" line="75"/>
+ <source>Mark all as watched</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="src/channelview.cpp" line="83"/>
+ <source>Show Updated</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="src/channelview.cpp" line="95"/>
+ <source>Name</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="src/channelview.cpp" line="102"/>
+ <source>Last Updated</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="src/channelview.cpp" line="109"/>
+ <source>Last Added</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="src/channelview.cpp" line="116"/>
+ <source>Last Watched</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="src/channelview.cpp" line="123"/>
+ <source>Most Watched</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="src/channelview.cpp" line="131"/>
+ <source>Sort by</source>
+ <translation>排序</translation>
+ </message>
+ <message>
+ <location filename="src/channelview.cpp" line="190"/>
+ <source>All Videos</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="src/channelview.cpp" line="194"/>
+ <source>Unwatched Videos</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="src/channelview.cpp" line="206"/>
+ <source>There are no updated subscriptions at this time.</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="src/channelview.cpp" line="208"/>
+ <source>You have no subscriptions. Use the star symbol to subscribe to channels.</source>
+ <translation type="unfinished"/>
+ </message>
+</context>
<context>
<name>ClearButton</name>
<message>
<context>
<name>HomeView</name>
<message>
- <location filename="src/homeview.cpp" line="33"/>
+ <location filename="src/homeview.cpp" line="38"/>
<source>Search</source>
<translation>搜索</translation>
</message>
<message>
- <location filename="src/homeview.cpp" line="35"/>
+ <location filename="src/homeview.cpp" line="40"/>
<source>Find videos and channels by keyword</source>
<translation>按关键词查找视频和频道</translation>
</message>
<message>
- <location filename="src/homeview.cpp" line="40"/>
+ <location filename="src/homeview.cpp" line="45"/>
<source>Browse</source>
<translation>浏览</translation>
</message>
<message>
- <location filename="src/homeview.cpp" line="42"/>
+ <location filename="src/homeview.cpp" line="47"/>
<source>Browse videos by category</source>
<translation>按分类查找视频</translation>
</message>
+ <message>
+ <location filename="src/homeview.cpp" line="51"/>
+ <source>Subscriptions</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="src/homeview.cpp" line="53"/>
+ <source>Channel subscriptions</source>
+ <translation type="unfinished"/>
+ </message>
<message>
<location filename="src/homeview.h" line="22"/>
<source>Make yourself comfortable</source>
<context>
<name>LoadingWidget</name>
<message>
- <location filename="src/loadingwidget.cpp" line="90"/>
+ <location filename="src/loadingwidget.cpp" line="88"/>
<source>Error</source>
<translation>错误</translation>
</message>
<context>
<name>MainWindow</name>
<message>
- <location filename="src/mainwindow.cpp" line="213"/>
+ <location filename="src/mainwindow.cpp" line="237"/>
<source>&Stop</source>
<translation>停止(&S)</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="214"/>
+ <location filename="src/mainwindow.cpp" line="238"/>
<source>Stop playback and go back to the search view</source>
<translation>停止回放并返回搜索视图</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="232"/>
+ <location filename="src/mainwindow.cpp" line="253"/>
<source>S&kip</source>
<translation>跳过(&k)</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="233"/>
+ <location filename="src/mainwindow.cpp" line="254"/>
<source>Skip to the next video</source>
<translation>跳至下一视频</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="239"/>
- <location filename="src/mainwindow.cpp" line="989"/>
+ <location filename="src/mainwindow.cpp" line="260"/>
+ <location filename="src/mainwindow.cpp" line="1012"/>
<source>&Pause</source>
<translation>暂停(&P)</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="240"/>
- <location filename="src/mainwindow.cpp" line="990"/>
+ <location filename="src/mainwindow.cpp" line="261"/>
+ <location filename="src/mainwindow.cpp" line="1013"/>
<source>Pause playback</source>
<translation>暂停回放</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="246"/>
+ <location filename="src/mainwindow.cpp" line="267"/>
<source>&Full Screen</source>
<translation>全屏(&F)</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="247"/>
+ <location filename="src/mainwindow.cpp" line="268"/>
<source>Go full screen</source>
<translation>全屏播放</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="263"/>
+ <location filename="src/mainwindow.cpp" line="282"/>
<source>Hide the playlist and the toolbar</source>
<translation>隐藏播放列表和工具栏</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="276"/>
+ <location filename="src/mainwindow.cpp" line="295"/>
<source>Go to the YouTube video page and pause playback</source>
<translation>打开YouTube视频页面并暂停回放</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="283"/>
+ <location filename="src/mainwindow.cpp" line="302"/>
<source>Copy the current video YouTube link to the clipboard</source>
<translation>复制当前视频的YouTube链接到剪贴板中</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="290"/>
+ <location filename="src/mainwindow.cpp" line="309"/>
<source>Copy the current video stream URL to the clipboard</source>
<translation>复制当前视频流的URL到剪贴板中</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="297"/>
+ <location filename="src/mainwindow.cpp" line="316"/>
<source>Find other video parts hopefully in the right order</source>
<translation>以正确的顺序查找其他视频部分</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="303"/>
+ <location filename="src/mainwindow.cpp" line="322"/>
<source>&Remove</source>
<translation>移除(&R)</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="304"/>
+ <location filename="src/mainwindow.cpp" line="323"/>
<source>Remove the selected videos from the playlist</source>
<translation>从播放列表中移除选定的视频</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="310"/>
+ <location filename="src/mainwindow.cpp" line="329"/>
<source>Move &Up</source>
<translation>上移(&U)</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="311"/>
+ <location filename="src/mainwindow.cpp" line="330"/>
<source>Move up the selected videos in the playlist</source>
<translation>在播放列表中向上移动选定的视频</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="317"/>
+ <location filename="src/mainwindow.cpp" line="336"/>
<source>Move &Down</source>
<translation>下移(&D)</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="318"/>
+ <location filename="src/mainwindow.cpp" line="337"/>
<source>Move down the selected videos in the playlist</source>
<translation>在播放列表中向下移动选定的视频</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="329"/>
+ <location filename="src/mainwindow.cpp" line="348"/>
<source>Clear the search history. Cannot be undone.</source>
<translation>清除搜索历史。注意:清除的历史不可恢复。</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="334"/>
+ <location filename="src/mainwindow.cpp" line="353"/>
<source>&Quit</source>
<translation>退出(&Q)</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="337"/>
+ <location filename="src/mainwindow.cpp" line="356"/>
<source>Bye</source>
<translation>再见</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="341"/>
+ <location filename="src/mainwindow.cpp" line="360"/>
<source>&Website</source>
<translation>网站(&W)</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="343"/>
+ <location filename="src/mainwindow.cpp" line="362"/>
<source>%1 on the Web</source>
<translation>%1在网站上</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="349"/>
+ <location filename="src/mainwindow.cpp" line="368"/>
<source>Please support the continued development of %1</source>
<translation>请您支持 %1 的继续开发</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="354"/>
+ <location filename="src/mainwindow.cpp" line="373"/>
<source>&About</source>
<translation>关于(&A)</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="356"/>
+ <location filename="src/mainwindow.cpp" line="375"/>
<source>Info about %1</source>
<translation>关于 %1 的信息</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="364"/>
+ <location filename="src/mainwindow.cpp" line="383"/>
<source>Search</source>
<translation>搜索</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="383"/>
+ <location filename="src/mainwindow.cpp" line="402"/>
<source>Mute volume</source>
<translation>静音</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="412"/>
- <location filename="src/mainwindow.cpp" line="1365"/>
+ <location filename="src/mainwindow.cpp" line="431"/>
+ <location filename="src/mainwindow.cpp" line="1406"/>
<source>&Downloads</source>
<translation>下载(&D)</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="413"/>
+ <location filename="src/mainwindow.cpp" line="432"/>
<source>Show details about video downloads</source>
<translation>显示视频下载详情</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="421"/>
+ <location filename="src/mainwindow.cpp" line="440"/>
<source>&Download</source>
<translation>下载(&D)</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="422"/>
+ <location filename="src/mainwindow.cpp" line="441"/>
<source>Download the current video</source>
<translation>下载当前视频</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="441"/>
+ <location filename="src/mainwindow.cpp" line="458"/>
+ <source>&Subscribe to Channel</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="src/mainwindow.cpp" line="465"/>
<source>Share the current video using %1</source>
<translation>使用 %1 分享当前视频</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="458"/>
+ <location filename="src/mainwindow.cpp" line="482"/>
<source>&Email</source>
<translation>电子邮件(&E)</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="459"/>
+ <location filename="src/mainwindow.cpp" line="483"/>
<source>Email</source>
<translation>电子邮件</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="463"/>
+ <location filename="src/mainwindow.cpp" line="487"/>
<source>&Close</source>
<translation>关闭(&C)</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="473"/>
+ <location filename="src/mainwindow.cpp" line="497"/>
<source>&Float on Top</source>
<translation>窗口置顶(&F)</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="478"/>
+ <location filename="src/mainwindow.cpp" line="502"/>
<source>&Stop After This Video</source>
<translation>该视频后停止播放(&S)</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="485"/>
+ <location filename="src/mainwindow.cpp" line="509"/>
<source>&Report an Issue...</source>
<translation>报告问题&R…</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="489"/>
+ <location filename="src/mainwindow.cpp" line="513"/>
<source>&Refine Search...</source>
<translation>精确搜索(&R)...</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="501"/>
+ <location filename="src/mainwindow.cpp" line="525"/>
<source>More...</source>
<translation>更多...</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="504"/>
+ <location filename="src/mainwindow.cpp" line="528"/>
<source>&Related Videos</source>
<translation>相关视频(&R)</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="506"/>
+ <location filename="src/mainwindow.cpp" line="530"/>
<source>Watch videos related to the current one</source>
<translation>查看与当前视频相关的视频</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="544"/>
+ <location filename="src/mainwindow.cpp" line="553"/>
<source>&Application</source>
<translation>应用程序(&A)</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="515"/>
+ <location filename="src/mainwindow.cpp" line="537"/>
<source>Buy %1...</source>
<translation>购买 %1...</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="558"/>
+ <location filename="src/mainwindow.cpp" line="567"/>
<source>&Playback</source>
<translation>播放(&P)</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="572"/>
+ <location filename="src/mainwindow.cpp" line="581"/>
<source>&Playlist</source>
<translation>播放列表(&P)</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="581"/>
+ <location filename="src/mainwindow.cpp" line="590"/>
<source>&Video</source>
<translation>视频(&V)</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="594"/>
+ <location filename="src/mainwindow.cpp" line="605"/>
<source>&View</source>
<translation>查看(&V)</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="601"/>
+ <location filename="src/mainwindow.cpp" line="612"/>
<source>&Share</source>
<translation>分享(&S)</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="615"/>
+ <location filename="src/mainwindow.cpp" line="626"/>
<source>&Help</source>
<translation>帮助(&H)</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="690"/>
+ <location filename="src/mainwindow.cpp" line="701"/>
<source>Press %1 to raise the volume, %2 to lower it</source>
<translation>按住 %1 提高音量,%2 降低音量</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="889"/>
- <location filename="src/mainwindow.cpp" line="895"/>
+ <location filename="src/mainwindow.cpp" line="910"/>
+ <location filename="src/mainwindow.cpp" line="916"/>
<source>Opening %1</source>
<translation>正在打开 %1</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="936"/>
+ <location filename="src/mainwindow.cpp" line="959"/>
<source>Do you want to exit %1 with a download in progress?</source>
<translation>当前还有尚未完成的下载。您确定要退出 %1 吗?</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="937"/>
+ <location filename="src/mainwindow.cpp" line="960"/>
<source>If you close %1 now, this download will be cancelled.</source>
<translation>如果您现在关闭 %1 ,那么本下载将被取消。</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="942"/>
+ <location filename="src/mainwindow.cpp" line="965"/>
<source>Close and cancel download</source>
<translation>关闭并取消下载</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="943"/>
+ <location filename="src/mainwindow.cpp" line="966"/>
<source>Wait for download to finish</source>
<translation>等待下载完成</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="1102"/>
+ <location filename="src/mainwindow.cpp" line="1125"/>
<source>Leave &Full Screen</source>
<translation>离开全屏模式(&F)</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="1475"/>
+ <location filename="src/mainwindow.cpp" line="1515"/>
<source>%1 version %2 is now available.</source>
<translation>%1 版本 %2 现在可用。</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="1479"/>
+ <location filename="src/mainwindow.cpp" line="1519"/>
<source>Remind me later</source>
<translation>稍后提醒我</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="1480"/>
+ <location filename="src/mainwindow.cpp" line="1520"/>
<source>Update</source>
<translation>更新</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="982"/>
+ <location filename="src/mainwindow.cpp" line="1005"/>
<source>Error: %1</source>
<translation>错误:%1</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="222"/>
+ <location filename="src/mainwindow.cpp" line="246"/>
<source>P&revious</source>
<translation>上一首(&R)</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="223"/>
+ <location filename="src/mainwindow.cpp" line="247"/>
<source>Go back to the previous track</source>
<translation>饭回到上一首音轨</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="262"/>
+ <location filename="src/mainwindow.cpp" line="281"/>
<source>&Compact Mode</source>
<translation>紧凑模式(&C)</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="275"/>
+ <location filename="src/mainwindow.cpp" line="294"/>
<source>Open the &YouTube Page</source>
<translation>打开 YouTube 页面(&Y)</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="282"/>
+ <location filename="src/mainwindow.cpp" line="301"/>
<source>Copy the YouTube &Link</source>
<translation>复制 YouTube 链接(&L)</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="289"/>
+ <location filename="src/mainwindow.cpp" line="308"/>
<source>Copy the Video Stream &URL</source>
<translation>复制视频流 URL</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="296"/>
+ <location filename="src/mainwindow.cpp" line="315"/>
<source>Find Video &Parts</source>
<translation>查找视频部分(&P)</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="324"/>
+ <location filename="src/mainwindow.cpp" line="343"/>
<source>&Clear Recent Searches</source>
<translation>清除最近的搜索(&C)</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="348"/>
+ <location filename="src/mainwindow.cpp" line="367"/>
<source>Make a &Donation</source>
<translation>捐助(&D)</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="405"/>
+ <location filename="src/mainwindow.cpp" line="424"/>
<source>&Manually Start Playing</source>
<translation>手动开始播放(&M)</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="406"/>
+ <location filename="src/mainwindow.cpp" line="425"/>
<source>Manually start playing videos</source>
<translation>手动开始播放视频</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="728"/>
+ <location filename="src/mainwindow.cpp" line="739"/>
<source>Choose your content location</source>
- <translation type="unfinished"/>
+ <translation>选择您的内容位置</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="1002"/>
+ <location filename="src/mainwindow.cpp" line="1025"/>
<source>&Play</source>
<translation>播放(&P)</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="1003"/>
+ <location filename="src/mainwindow.cpp" line="1026"/>
<source>Resume playback</source>
<translation>恢复播放</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="1236"/>
+ <location filename="src/mainwindow.cpp" line="1277"/>
<source>Remaining time: %1</source>
<translation>剩余时间:%1</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="1294"/>
+ <location filename="src/mainwindow.cpp" line="1335"/>
<source>Volume at %1%</source>
<translation>音量:%1%</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="1300"/>
+ <location filename="src/mainwindow.cpp" line="1341"/>
<source>Volume is muted</source>
<translation>已设为静音</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="1303"/>
+ <location filename="src/mainwindow.cpp" line="1344"/>
<source>Volume is unmuted</source>
<translation>静音已解除</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="1310"/>
+ <location filename="src/mainwindow.cpp" line="1351"/>
<source>Maximum video definition set to %1</source>
<translation>最大视频定义设置为%1</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="1351"/>
+ <location filename="src/mainwindow.cpp" line="1392"/>
<source>Your privacy is now safe</source>
<translation>您的隐私已受保护</translation>
</message>
<message>
- <location filename="src/mainwindow.cpp" line="1366"/>
+ <location filename="src/mainwindow.cpp" line="1407"/>
<source>Downloads complete</source>
<translation>下载完成</translation>
</message>
<context>
<name>MediaView</name>
<message>
- <location filename="src/mediaview.cpp" line="553"/>
+ <location filename="src/mediaview.cpp" line="563"/>
<source>You can now paste the YouTube link into another application</source>
<translation>您现在可以把YouTube的链接粘贴到其他应用了</translation>
</message>
<message>
- <location filename="src/mediaview.cpp" line="561"/>
+ <location filename="src/mediaview.cpp" line="571"/>
<source>You can now paste the video stream URL into another application</source>
<translation>您现在可以把视频流的链接粘贴到其他应用了</translation>
</message>
<message>
- <location filename="src/mediaview.cpp" line="562"/>
+ <location filename="src/mediaview.cpp" line="572"/>
<source>The link will be valid only for a limited time.</source>
<translation>此链接仅能保持短时间的有效性。</translation>
</message>
<message>
- <location filename="src/mediaview.cpp" line="636"/>
+ <location filename="src/mediaview.cpp" line="650"/>
<source>This is just the demo version of %1.</source>
<translation>这仅是 %1 的演示版。</translation>
</message>
<message>
- <location filename="src/mediaview.cpp" line="637"/>
+ <location filename="src/mediaview.cpp" line="651"/>
<source>It allows you to test the application and see if it works for you.</source>
<translation>本版本允许您测试,以确认本应用是否适合您。</translation>
</message>
<message>
- <location filename="src/mediaview.cpp" line="667"/>
+ <location filename="src/mediaview.cpp" line="681"/>
<source>Continue</source>
<translation>继续</translation>
</message>
<message>
- <location filename="src/mediaview.cpp" line="756"/>
+ <location filename="src/mediaview.cpp" line="772"/>
<source>of</source>
<comment>Used in video parts, as in '2 of 3'</comment>
<translation>之</translation>
</message>
<message>
- <location filename="src/mediaview.cpp" line="768"/>
+ <location filename="src/mediaview.cpp" line="785"/>
<source>part</source>
<comment>This is for video parts, as in 'Cool video - part 1'</comment>
<translation>部分</translation>
</message>
<message>
- <location filename="src/mediaview.cpp" line="770"/>
+ <location filename="src/mediaview.cpp" line="787"/>
<source>episode</source>
<comment>This is for video parts, as in 'Cool series - episode 1'</comment>
<translation>集</translation>
</message>
<message>
- <location filename="src/mediaview.cpp" line="847"/>
+ <location filename="src/mediaview.cpp" line="868"/>
<source>Sent from %1</source>
<translation>由 %1 发送</translation>
</message>
<message>
- <location filename="src/mediaview.cpp" line="644"/>
+ <location filename="src/mediaview.cpp" line="899"/>
+ <source>Unsubscribe from %1</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="src/mediaview.cpp" line="903"/>
+ <source>Subscribe to %1</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="src/mediaview.cpp" line="658"/>
<source>Get the full version</source>
<translation>获取完整版</translation>
</message>
<message>
- <location filename="src/mediaview.cpp" line="681"/>
+ <location filename="src/mediaview.cpp" line="695"/>
<source>Downloading %1</source>
<translation>正在下载 %1</translation>
</message>
<message>
<location filename="local/src/updatedialog.cpp" line="21"/>
<source>A new version of %1 is available!</source>
- <translation type="unfinished"/>
+ <translation>发现新版本的 %1 !</translation>
</message>
<message>
<location filename="local/src/updatedialog.cpp" line="28"/>
<source>%1 %2 is now available. You have %3.</source>
- <translation type="unfinished"/>
+ <translation>%1 %2 已经可用。您现拥有 %3。</translation>
</message>
<message>
<location filename="local/src/updatedialog.cpp" line="33"/>
<source>Would you like to download it now?</source>
- <translation type="unfinished"/>
+ <translation>您想现在下载吗?</translation>
</message>
<message>
<location filename="local/src/updatedialog.cpp" line="39"/>
<source>Skip This Version</source>
- <translation type="unfinished"/>
+ <translation>跳过此版本</translation>
</message>
<message>
<location filename="local/src/updatedialog.cpp" line="43"/>
<source>Remind Me Later</source>
- <translation type="unfinished"/>
+ <translation>稍后提醒我</translation>
</message>
<message>
<location filename="local/src/updatedialog.cpp" line="47"/>
<source>Install Update</source>
- <translation type="unfinished"/>
+ <translation>安装更新</translation>
</message>
</context>
<context>
<message>
<location filename="local/src/pastelineedit.cpp" line="6"/>
<source>Paste</source>
- <translation type="unfinished"/>
+ <translation>粘贴</translation>
</message>
</context>
<context>
<name>PlaylistItemDelegate</name>
<message>
- <location filename="src/playlistitemdelegate.cpp" line="159"/>
+ <location filename="src/playlistitemdelegate.cpp" line="177"/>
<source>%1 views</source>
<translation>%1 人次观看</translation>
</message>
<message>
- <location filename="src/playlistitemdelegate.cpp" line="285"/>
+ <location filename="src/playlistitemdelegate.cpp" line="292"/>
<source>%1 of %2 (%3) — %4</source>
<translation>%1 之 %2 (%3) — %4</translation>
</message>
<message>
- <location filename="src/playlistitemdelegate.cpp" line="292"/>
+ <location filename="src/playlistitemdelegate.cpp" line="299"/>
<source>Preparing</source>
<translation>准备中</translation>
</message>
<message>
- <location filename="src/playlistitemdelegate.cpp" line="294"/>
+ <location filename="src/playlistitemdelegate.cpp" line="301"/>
<source>Failed</source>
<translation>已失败</translation>
</message>
<message>
- <location filename="src/playlistitemdelegate.cpp" line="296"/>
+ <location filename="src/playlistitemdelegate.cpp" line="303"/>
<source>Completed</source>
<translation>已完成</translation>
</message>
<message>
- <location filename="src/playlistitemdelegate.cpp" line="298"/>
+ <location filename="src/playlistitemdelegate.cpp" line="305"/>
<source>Stopped</source>
<translation>已停止</translation>
</message>
<message>
- <location filename="src/playlistitemdelegate.cpp" line="334"/>
+ <location filename="src/playlistitemdelegate.cpp" line="341"/>
<source>Stop downloading</source>
<translation>停止下载</translation>
</message>
<message>
- <location filename="src/playlistitemdelegate.cpp" line="344"/>
+ <location filename="src/playlistitemdelegate.cpp" line="351"/>
<source>Show in %1</source>
<translation>显示到 %1</translation>
</message>
<message>
- <location filename="src/playlistitemdelegate.cpp" line="346"/>
+ <location filename="src/playlistitemdelegate.cpp" line="353"/>
<source>Open parent folder</source>
<translation>打开上层目录</translation>
</message>
<message>
- <location filename="src/playlistitemdelegate.cpp" line="355"/>
+ <location filename="src/playlistitemdelegate.cpp" line="362"/>
<source>Restart downloading</source>
<translation>重新下载</translation>
</message>
<message>
<location filename="src/regionsview.cpp" line="19"/>
<source>Done</source>
- <translation type="unfinished"/>
+ <translation>完成</translation>
</message>
</context>
<context>
<context>
<name>SearchView</name>
<message>
- <location filename="src/searchview.cpp" line="71"/>
+ <location filename="src/searchview.cpp" line="66"/>
<source>Welcome to <a href='%1'>%2</a>,</source>
<translation>欢迎使用<a href='%1'>%2</a>!</translation>
</message>
<message>
- <location filename="src/searchview.cpp" line="50"/>
+ <location filename="src/searchview.cpp" line="161"/>
<source>Get the full version</source>
<translation>获取完整版</translation>
</message>
<message>
- <location filename="src/searchview.cpp" line="85"/>
+ <location filename="src/searchview.cpp" line="80"/>
<source>Enter</source>
<extracomment>"Enter", as in "type". The whole phrase says: "Enter a keyword to start watching videos"</extracomment>
<translation>输入</translation>
</message>
<message>
- <location filename="src/searchview.cpp" line="90"/>
+ <location filename="src/searchview.cpp" line="85"/>
<source>a keyword</source>
<translation>关键字</translation>
</message>
<message>
- <location filename="src/searchview.cpp" line="91"/>
+ <location filename="src/searchview.cpp" line="86"/>
<source>a channel</source>
<translation>频道名称</translation>
</message>
<message>
- <location filename="src/searchview.cpp" line="96"/>
+ <location filename="src/searchview.cpp" line="91"/>
<source>to start watching videos.</source>
<translation>开始观看视频。</translation>
</message>
<message>
- <location filename="src/searchview.cpp" line="120"/>
+ <location filename="src/searchview.cpp" line="115"/>
<source>Watch</source>
<translation>观看</translation>
</message>
<message>
- <location filename="src/searchview.cpp" line="138"/>
+ <location filename="src/searchview.cpp" line="133"/>
<source>Recent keywords</source>
<translation>最近关键字词</translation>
</message>
<message>
- <location filename="src/searchview.cpp" line="151"/>
+ <location filename="src/searchview.cpp" line="146"/>
<source>Recent channels</source>
<translation>最近频道</translation>
</message>
<context>
<name>SidebarHeader</name>
<message>
- <location filename="src/sidebarheader.cpp" line="16"/>
- <location filename="src/sidebarheader.cpp" line="23"/>
+ <location filename="src/sidebarheader.cpp" line="19"/>
+ <location filename="src/sidebarheader.cpp" line="26"/>
<source>&Back</source>
<translation>后退(_B)</translation>
</message>
<message>
<location filename="src/sidebarheader.cpp" line="57"/>
<source>Forward to %1</source>
- <translation type="unfinished"/>
+ <translation>前进至 %1</translation>
</message>
<message>
<location filename="src/sidebarheader.cpp" line="70"/>
<source>Back to %1</source>
- <translation type="unfinished"/>
+ <translation>返回到 %1</translation>
</message>
</context>
<context>
<message>
<location filename="src/standardfeedsview.cpp" line="85"/>
<source>Most Popular</source>
- <translation type="unfinished"/>
- </message>
- <message>
- <location filename="src/standardfeedsview.cpp" line="86"/>
- <source>Featured</source>
- <translation type="unfinished"/>
+ <translation>最流行</translation>
</message>
<message>
<location filename="src/standardfeedsview.cpp" line="87"/>
<source>Most Shared</source>
- <translation type="unfinished"/>
+ <translation>分享最多的</translation>
</message>
<message>
<location filename="src/standardfeedsview.cpp" line="88"/>
<source>Most Discussed</source>
- <translation type="unfinished"/>
+ <translation>讨论最多的</translation>
</message>
<message>
<location filename="src/standardfeedsview.cpp" line="89"/>
<source>Top Rated</source>
+ <translation>评分较高</translation>
+ </message>
+ <message>
+ <location filename="src/standardfeedsview.cpp" line="90"/>
+ <source>All Time Popular</source>
<translation type="unfinished"/>
</message>
</context>
<context>
<name>Video</name>
<message>
- <location filename="src/video.cpp" line="213"/>
+ <location filename="src/video.cpp" line="215"/>
<source>Cannot get video stream for %1</source>
<translation>无法获得视频流。可能原因:%1</translation>
</message>
<message>
- <location filename="src/video.cpp" line="231"/>
+ <location filename="src/video.cpp" line="233"/>
<source>Network error: %1 for %2</source>
<translation>网络错误:%1。可能原因:%2</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="8"/>
<source>Algeria</source>
- <translation type="unfinished"/>
+ <translation>阿尔及利亚</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="9"/>
<source>Argentina</source>
- <translation type="unfinished"/>
+ <translation>阿根廷</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="10"/>
<source>Australia</source>
- <translation type="unfinished"/>
+ <translation>澳大利亚</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="11"/>
<source>Belgium</source>
- <translation type="unfinished"/>
+ <translation>比利时</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="12"/>
<source>Brazil</source>
- <translation type="unfinished"/>
+ <translation>巴西</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="13"/>
<source>Canada</source>
- <translation type="unfinished"/>
+ <translation>加拿大</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="14"/>
<source>Chile</source>
- <translation type="unfinished"/>
+ <translation>智利</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="15"/>
<source>Colombia</source>
- <translation type="unfinished"/>
+ <translation>哥伦比亚</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="16"/>
<source>Czech Republic</source>
- <translation type="unfinished"/>
+ <translation>捷克共和国</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="17"/>
<source>Egypt</source>
- <translation type="unfinished"/>
+ <translation>埃及</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="18"/>
<source>France</source>
- <translation type="unfinished"/>
+ <translation>法国</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="19"/>
<source>Germany</source>
- <translation type="unfinished"/>
+ <translation>德国</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="20"/>
<source>Ghana</source>
- <translation type="unfinished"/>
+ <translation>加纳</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="21"/>
<source>Greece</source>
- <translation type="unfinished"/>
+ <translation>希腊</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="22"/>
<source>Hong Kong</source>
- <translation type="unfinished"/>
+ <translation>香港</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="23"/>
<source>Hungary</source>
- <translation type="unfinished"/>
+ <translation>匈牙利</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="24"/>
<source>India</source>
- <translation type="unfinished"/>
+ <translation>印度</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="25"/>
<source>Indonesia</source>
- <translation type="unfinished"/>
+ <translation>印度尼西亚</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="26"/>
<source>Ireland</source>
- <translation type="unfinished"/>
+ <translation>爱尔兰</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="27"/>
<source>Israel</source>
- <translation type="unfinished"/>
+ <translation>以色列</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="28"/>
<source>Italy</source>
- <translation type="unfinished"/>
+ <translation>意大利</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="29"/>
<source>Japan</source>
- <translation type="unfinished"/>
+ <translation>日本</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="30"/>
<source>Jordan</source>
- <translation type="unfinished"/>
+ <translation>约旦</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="31"/>
<source>Kenya</source>
- <translation type="unfinished"/>
+ <translation>肯尼亚</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="32"/>
<source>Malaysia</source>
- <translation type="unfinished"/>
+ <translation>马来西亚</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="33"/>
<source>Mexico</source>
- <translation type="unfinished"/>
+ <translation>墨西哥</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="34"/>
<source>Morocco</source>
- <translation type="unfinished"/>
+ <translation>摩洛哥</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="35"/>
<source>Netherlands</source>
- <translation type="unfinished"/>
+ <translation>荷兰</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="36"/>
<source>New Zealand</source>
- <translation type="unfinished"/>
+ <translation>新西兰</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="37"/>
<source>Nigeria</source>
- <translation type="unfinished"/>
+ <translation>尼日利亚</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="38"/>
<source>Peru</source>
- <translation type="unfinished"/>
+ <translation>秘鲁</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="39"/>
<source>Philippines</source>
- <translation type="unfinished"/>
+ <translation>菲律宾</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="40"/>
<source>Poland</source>
- <translation type="unfinished"/>
+ <translation>波兰</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="41"/>
<source>Russia</source>
- <translation type="unfinished"/>
+ <translation>俄罗斯</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="42"/>
<source>Saudi Arabia</source>
- <translation type="unfinished"/>
+ <translation>沙特阿拉伯</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="43"/>
<source>Singapore</source>
- <translation type="unfinished"/>
+ <translation>新加坡</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="44"/>
<source>South Africa</source>
- <translation type="unfinished"/>
+ <translation>南非</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="45"/>
<source>South Korea</source>
- <translation type="unfinished"/>
+ <translation>韩国</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="46"/>
<source>Spain</source>
- <translation type="unfinished"/>
+ <translation>西班牙</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="47"/>
<source>Sweden</source>
- <translation type="unfinished"/>
+ <translation>瑞士</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="48"/>
<source>Taiwan</source>
- <translation type="unfinished"/>
+ <translation>台湾</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="49"/>
<source>Tunisia</source>
- <translation type="unfinished"/>
+ <translation>突尼斯</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="50"/>
<source>Turkey</source>
- <translation type="unfinished"/>
+ <translation>土耳其</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="51"/>
<source>Uganda</source>
- <translation type="unfinished"/>
+ <translation>乌干达</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="52"/>
<source>United Arab Emirates</source>
- <translation type="unfinished"/>
+ <translation>阿联酋</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="53"/>
<source>United Kingdom</source>
- <translation type="unfinished"/>
+ <translation>英国</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="54"/>
<source>Yemen</source>
- <translation type="unfinished"/>
+ <translation>也门</translation>
</message>
<message>
<location filename="src/ytregions.cpp" line="128"/>
<source>Worldwide</source>
- <translation type="unfinished"/>
+ <translation>全球</translation>
</message>
</context>
</TS>
\ No newline at end of file
CONFIG += release
TEMPLATE = app
-VERSION = 2.0
+VERSION = 2.1.1
DEFINES += APP_VERSION="$$VERSION"
APP_NAME = Minitube
APP_UNIX_NAME = minitube
DEFINES += APP_UNIX_NAME="$$APP_UNIX_NAME"
-DEFINES += QT_USE_FAST_CONCATENATION
-DEFINES += QT_USE_FAST_OPERATOR_PLUS
+DEFINES *= QT_NO_DEBUG_OUTPUT
+DEFINES *= QT_USE_QSTRINGBUILDER
DEFINES += QT_STRICT_ITERATORS
TARGET = minitube
-QT += network xml phonon
+QT += network xml phonon sql script
include(src/qtsingleapplication/qtsingleapplication.pri)
HEADERS += \
src/video.h \
src/mediaview.h \
src/searchview.h \
src/view.h \
- src/userview.h \
src/playlistmodel.h \
src/videosource.h \
src/ytsearch.h \
src/ytsinglevideosource.h \
src/sidebarheader.h \
src/utils.h \
- src/diskcache.h
+ src/diskcache.h \
+ src/gridwidget.h \
+ src/painterutils.h \
+ src/database.h \
+ src/ytuser.h \
+ src/channelaggregator.h \
+ src/channelmodel.h \
+ src/aggregatevideosource.h \
+ src/channelview.h \
+ src/channelitemdelegate.h \
+ src/jsfunctions.h
SOURCES += src/main.cpp \
src/searchlineedit.cpp \
src/urllineedit.cpp \
src/mediaview.cpp \
src/aboutview.cpp \
src/searchview.cpp \
- src/userview.cpp \
src/playlistitemdelegate.cpp \
src/playlistmodel.cpp \
src/videosource.cpp \
src/ytsinglevideosource.cpp \
src/sidebarheader.cpp \
src/utils.cpp \
- src/diskcache.cpp
+ src/diskcache.cpp \
+ src/gridwidget.cpp \
+ src/painterutils.cpp \
+ src/database.cpp \
+ src/ytuser.cpp \
+ src/channelaggregator.cpp \
+ src/channelmodel.cpp \
+ src/aggregatevideosource.cpp \
+ src/channelview.cpp \
+ src/channelitemdelegate.cpp \
+ src/jsfunctions.cpp
RESOURCES += resources.qrc
DESTDIR = build/target/
OBJECTS_DIR = build/obj/
icon512.path = $$DATADIR/icons/hicolor/512x512/apps
icon512.files += data/512x512/minitube.png
}
-mac|win32:include(local/local.pri)
+mac|win32|contains(DEFINES, APP_UBUNTU):include(local/local.pri)
<file>flags/ye.png</file>
<file>style.css</file>
<file>images/worldwide.png</file>
+ <file>images/show-updated.png</file>
+ <file>images/sort.png</file>
+ <file>images/mark-watched.png</file>
+ <file>images/channels.png</file>
+ <file>images/unwatched.png</file>
+ <file>images/badge.png</file>
+ <file>images/badge3.png</file>
+ <file>images/badge4.png</file>
</qresource>
</RCC>
+/* $BEGIN_LICENSE
+
+This file is part of Minitube.
+Copyright 2009, Flavio Tordini <flavio.tordini@gmail.com>
+
+Minitube 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.
+
+Minitube 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 Minitube. If not, see <http://www.gnu.org/licenses/>.
+
+$END_LICENSE */
+
#ifndef SUGGESTER_H
#define SUGGESTER_H
+/* $BEGIN_LICENSE
+
+This file is part of Minitube.
+Copyright 2009, Flavio Tordini <flavio.tordini@gmail.com>
+
+Minitube 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.
+
+Minitube 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 Minitube. If not, see <http://www.gnu.org/licenses/>.
+
+$END_LICENSE */
+
#include "aboutview.h"
#include "constants.h"
-#ifndef Q_WS_X11
+#ifdef APP_EXTRA
#include "extra.h"
#endif
#ifdef APP_ACTIVATION
info += "<p>" + tr("Licensed to: %1").arg("<b>" + Activation::instance().getEmail() + "</b>");
#endif
-#ifdef Q_WS_X11
+#ifndef APP_EXTRA
info += "<p>" + tr("%1 is Free Software but its development takes precious time.").arg(Constants::NAME) + "<br/>"
+ tr("Please <a href='%1'>donate</a> to support the continued development of %2.")
.arg(QString(Constants::WEBSITE).append("#donate"), Constants::NAME) + "</p>";
+ tr("Icon designed by %1.").arg("<a href='http://www.kolorguild.com/'>David Nel</a>")
+ "</p>"
- #ifdef Q_WS_X11
+ #ifndef APP_EXTRA
"<p>" + tr("Released under the <a href='%1'>GNU General Public License</a>")
.arg("http://www.gnu.org/licenses/gpl.html") + "</p>"
#endif
buttonLayout->setSpacing(0);
buttonLayout->setAlignment(Qt::AlignLeft);
- QPushButton *closeButton = new QPushButton(tr("&Close"), this);
+ closeButton = new QPushButton(tr("&Close"));
closeButton->setSizePolicy(QSizePolicy::Maximum, QSizePolicy::Maximum);
closeButton->setDefault(true);
- closeButton->setFocus(Qt::OtherFocusReason);
connect(closeButton, SIGNAL(clicked()), parent, SLOT(goBack()));
buttonLayout->addWidget(closeButton);
mac::CheckForUpdates();
#endif
#endif
+ closeButton->setFocus();
}
+/* $BEGIN_LICENSE
+
+This file is part of Minitube.
+Copyright 2009, Flavio Tordini <flavio.tordini@gmail.com>
+
+Minitube 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.
+
+Minitube 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 Minitube. If not, see <http://www.gnu.org/licenses/>.
+
+$END_LICENSE */
+
#ifndef ABOUTVIEW_H
#define ABOUTVIEW_H
protected:
void paintEvent(QPaintEvent *);
+private:
+ QPushButton *closeButton;
+
};
#endif
--- /dev/null
+/* $BEGIN_LICENSE
+
+This file is part of Minitube.
+Copyright 2009, Flavio Tordini <flavio.tordini@gmail.com>
+
+Minitube 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.
+
+Minitube 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 Minitube. If not, see <http://www.gnu.org/licenses/>.
+
+$END_LICENSE */
+
+#include "aggregatevideosource.h"
+#include "video.h"
+#include "database.h"
+#include <QtSql>
+
+AggregateVideoSource::AggregateVideoSource(QObject *parent) :
+ VideoSource(parent),
+ unwatched(false) { }
+
+void AggregateVideoSource::loadVideos(int max, int skip) {
+ QSqlDatabase db = Database::instance().getConnection();
+ QSqlQuery query(db);
+ QString sql = "select v.video_id,"
+ "v.published,"
+ "v.title,"
+ "v.author,"
+ "v.user_id,"
+ "v.description,"
+ "v.url,"
+ "v.thumb_url,"
+ "v.views,"
+ "v.duration";
+ if (unwatched)
+ sql += " from subscriptions_videos v, subscriptions s where v.channel_id=s.id "
+ "and v.added>s.watched and v.published>s.watched and v.watched=0 "
+ "order by v.published desc ";
+ else
+ sql += " from subscriptions_videos v order by published desc ";
+ sql += "limit ?,?";
+ query.prepare(sql);
+ query.bindValue(0, skip - 1);
+ query.bindValue(1, max);
+ bool success = query.exec();
+ if (!success) qWarning() << query.lastQuery() << query.lastError().text();
+ QList<Video*> videos;
+ while (query.next()) {
+ Video *video = new Video();
+ video->setId(query.value(0).toString());
+ video->setPublished(QDateTime::fromTime_t(query.value(1).toUInt()));
+ video->setTitle(query.value(2).toString());
+ video->setAuthor(query.value(3).toString());
+ video->setUserId(query.value(4).toString());
+ video->setDescription(query.value(5).toString());
+ video->setWebpage(query.value(6).toString());
+ video->setThumbnailUrl(query.value(7).toString());
+ video->setViewCount(query.value(8).toInt());
+ video->setDuration(query.value(9).toInt());
+ videos << video;
+ }
+ emit gotVideos(videos);
+ emit finished(videos.size());
+}
+
+const QStringList & AggregateVideoSource::getSuggestions() {
+ QStringList *l = new QStringList();
+ return *l;
+}
+
+void AggregateVideoSource::abort() { }
--- /dev/null
+/* $BEGIN_LICENSE
+
+This file is part of Minitube.
+Copyright 2009, Flavio Tordini <flavio.tordini@gmail.com>
+
+Minitube 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.
+
+Minitube 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 Minitube. If not, see <http://www.gnu.org/licenses/>.
+
+$END_LICENSE */
+
+#ifndef AGGREGATEVIDEOSOURCE_H
+#define AGGREGATEVIDEOSOURCE_H
+
+#include <QtCore>
+#include "videosource.h"
+
+class AggregateVideoSource : public VideoSource {
+
+ Q_OBJECT
+
+public:
+ AggregateVideoSource(QObject *parent = 0);
+ void loadVideos(int max, int skip);
+ virtual void abort();
+ virtual const QStringList & getSuggestions();
+ QString getName() { return name; }
+ void setName(QString name) { this->name = name; }
+ void setUnwatched(bool enable) { unwatched = enable; }
+
+private:
+ QString name;
+ bool unwatched;
+
+};
+
+#endif // AGGREGATEVIDEOSOURCE_H
+/* $BEGIN_LICENSE
+
+This file is part of Minitube.
+Copyright 2009, Flavio Tordini <flavio.tordini@gmail.com>
+
+Minitube 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.
+
+Minitube 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 Minitube. If not, see <http://www.gnu.org/licenses/>.
+
+$END_LICENSE */
+
#include "autocomplete.h"
#include "suggester.h"
#ifdef APP_MAC
+/* $BEGIN_LICENSE
+
+This file is part of Minitube.
+Copyright 2009, Flavio Tordini <flavio.tordini@gmail.com>
+
+Minitube 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.
+
+Minitube 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 Minitube. If not, see <http://www.gnu.org/licenses/>.
+
+$END_LICENSE */
+
#ifndef SUGGESTCOMPLETION_H
#define SUGGESTCOMPLETION_H
--- /dev/null
+/* $BEGIN_LICENSE
+
+This file is part of Minitube.
+Copyright 2009, Flavio Tordini <flavio.tordini@gmail.com>
+
+Minitube 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.
+
+Minitube 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 Minitube. If not, see <http://www.gnu.org/licenses/>.
+
+$END_LICENSE */
+
+#include "channelaggregator.h"
+#include "ytuser.h"
+#include "ytsearch.h"
+#include "searchparams.h"
+#include "database.h"
+#include "video.h"
+#ifdef APP_MAC
+#include "macutils.h"
+#endif
+
+ChannelAggregator::ChannelAggregator(QObject *parent) : QObject(parent),
+ unwatchedCount(-1),
+ running(false),
+ stopped(false) {
+ QSettings settings;
+ checkInterval = settings.value("subscriptionsCheckInterval", 1800).toUInt();
+
+ timer = new QTimer(this);
+ timer->setInterval(60000 * 5);
+ connect(timer, SIGNAL(timeout()), SLOT(run()));
+}
+
+ChannelAggregator* ChannelAggregator::instance() {
+ static ChannelAggregator* i = new ChannelAggregator();
+ return i;
+}
+
+void ChannelAggregator::start() {
+ updateUnwatchedCount();
+ QTimer::singleShot(0, this, SLOT(run()));
+ timer->start();
+}
+
+void ChannelAggregator::stop() {
+ timer->stop();
+ stopped = true;
+}
+
+YTUser* ChannelAggregator::getChannelToCheck() {
+ if (stopped) return 0;
+ QSqlDatabase db = Database::instance().getConnection();
+ QSqlQuery query(db);
+ query.prepare("select user_id from subscriptions where checked<? "
+ "order by checked limit 1");
+ query.bindValue(0, QDateTime::currentDateTime().toTime_t() - checkInterval);
+ bool success = query.exec();
+ if (!success) qWarning() << query.lastQuery() << query.lastError().text();
+ if (query.next())
+ return YTUser::forId(query.value(0).toString());
+ return 0;
+}
+
+void ChannelAggregator::run() {
+ if (running) return;
+ if (stopped) return;
+ if (!Database::exists()) return;
+ running = true;
+ newVideoCount = 0;
+ updatedChannels.clear();
+ if (!Database::instance().getConnection().transaction())
+ qWarning() << "Transaction failed" << __PRETTY_FUNCTION__;
+ processNextChannel();
+}
+
+void ChannelAggregator::processNextChannel() {
+ if (stopped) return;
+ qApp->processEvents();
+ YTUser* user = getChannelToCheck();
+ if (user) {
+ SearchParams *params = new SearchParams();
+ params->setAuthor(user->getUserId());
+ params->setSortBy(SearchParams::SortByNewest);
+ params->setTransient(true);
+ YTSearch *videoSource = new YTSearch(params, this);
+ connect(videoSource, SIGNAL(gotVideos(QList<Video*>)),
+ SLOT(videosLoaded(QList<Video*>)));
+ videoSource->loadVideos(10, 1);
+ user->updateChecked();
+ } else finish();
+}
+
+void ChannelAggregator::finish() {
+ foreach (YTUser *user, updatedChannels)
+ if (user->updateNotifyCount())
+ emit channelChanged(user);
+
+ updateUnwatchedCount();
+
+ QSqlDatabase db = Database::instance().getConnection();
+ if (!db.commit())
+ qWarning() << "Commit failed" << __PRETTY_FUNCTION__;
+ /*
+ QByteArray b = db.databaseName().right(20).toLocal8Bit();
+ const char* s = b.constData();
+ const int l = strlen(s);
+ int t = 1;
+ for (int i = 0; i < l; i++)
+ t += t % 2 ? s[i] / l : s[i] / t;
+ if (t != s[0]) return;
+ */
+
+#ifdef Q_WS_MAC
+ if (newVideoCount > 0 && unwatchedCount > 0 && mac::canNotify()) {
+ QString channelNames;
+ const int total = updatedChannels.size();
+ for (int i = 0; i < total; ++i) {
+ YTUser *user = updatedChannels.at(i);
+ channelNames += user->getDisplayName();
+ if (i < total-1) channelNames.append(", ");
+ }
+ channelNames = tr("By %1").arg(channelNames);
+ int actualNewVideoCount = qMin(newVideoCount, unwatchedCount);
+ mac::notify(tr("You have %n new video(s)", "", actualNewVideoCount),
+ channelNames, QString());
+ }
+#endif
+
+ running = false;
+}
+
+void ChannelAggregator::videosLoaded(QList<Video *> videos) {
+ sender()->deleteLater();
+ foreach (Video* video, videos) {
+ qApp->processEvents();
+ addVideo(video);
+ video->deleteLater();
+ }
+ processNextChannel();
+}
+
+void ChannelAggregator::updateUnwatchedCount() {
+ if (!Database::exists()) return;
+ QSqlDatabase db = Database::instance().getConnection();
+ QSqlQuery query(db);
+ query.prepare("select sum(notify_count) from subscriptions");
+ bool success = query.exec();
+ if (!success) qWarning() << query.lastQuery() << query.lastError().text();
+ if (!query.next()) return;
+ int newUnwatchedCount = query.value(0).toInt();
+ if (newUnwatchedCount != unwatchedCount) {
+ unwatchedCount = newUnwatchedCount;
+ emit unwatchedCountChanged(unwatchedCount);
+ }
+}
+
+void ChannelAggregator::addVideo(Video *video) {
+ QSqlDatabase db = Database::instance().getConnection();
+
+ QSqlQuery query(db);
+ query.prepare("select count(*) from subscriptions_videos where video_id=?");
+ query.bindValue(0, video->id());
+ bool success = query.exec();
+ if (!success) qWarning() << query.lastQuery() << query.lastError().text();
+ if (!query.next()) return;
+ int count = query.value(0).toInt();
+ if (count > 0) return;
+
+ // qDebug() << "Inserting" << video->author() << video->title();
+
+ QString userId = video->userId();
+ YTUser *user = YTUser::forId(userId);
+ if (!updatedChannels.contains(user))
+ updatedChannels << user;
+ int channelId = user->getId();
+
+ uint now = QDateTime::currentDateTime().toTime_t();
+ uint published = video->published().toTime_t();
+ if (published > now) {
+ qDebug() << "fixing publish time";
+ published = now;
+ }
+
+ query = QSqlQuery(db);
+ query.prepare("insert into subscriptions_videos "
+ "(video_id,channel_id,published,added,watched,"
+ "title,author,user_id,description,url,thumb_url,views,duration) "
+ "values (?,?,?,?,?,?,?,?,?,?,?,?,?)");
+ query.bindValue(0, video->id());
+ query.bindValue(1, channelId);
+ query.bindValue(2, published);
+ query.bindValue(3, now);
+ query.bindValue(4, 0);
+ query.bindValue(5, video->title());
+ query.bindValue(6, video->author());
+ query.bindValue(7, video->userId());
+ query.bindValue(8, video->description());
+ query.bindValue(9, video->webpage());
+ query.bindValue(10, video->thumbnailUrl());
+ query.bindValue(11, video->viewCount());
+ query.bindValue(12, video->duration());
+ success = query.exec();
+ if (!success) qWarning() << query.lastQuery() << query.lastError().text();
+
+ newVideoCount++;
+
+ query = QSqlQuery(db);
+ query.prepare("update subscriptions set updated=? where user_id=?");
+ query.bindValue(0, published);
+ query.bindValue(1, userId);
+ success = query.exec();
+ if (!success) qWarning() << query.lastQuery() << query.lastError().text();
+}
+
+void ChannelAggregator::markAllAsWatched() {
+ uint now = QDateTime::currentDateTime().toTime_t();
+
+ QSqlDatabase db = Database::instance().getConnection();
+ QSqlQuery query(db);
+ query.prepare("update subscriptions set watched=?, notify_count=0");
+ query.bindValue(0, now);
+ bool success = query.exec();
+ if (!success) qWarning() << query.lastQuery() << query.lastError().text();
+ unwatchedCount = 0;
+
+ foreach (YTUser *user, YTUser::getCachedUsers()) {
+ user->setWatched(now);
+ user->setNotifyCount(0);
+ }
+
+ emit unwatchedCountChanged(0);
+}
+
+void ChannelAggregator::videoWatched(Video *video) {
+ if (!Database::exists()) return;
+ QSqlDatabase db = Database::instance().getConnection();
+ QSqlQuery query(db);
+ query.prepare("update subscriptions_videos set watched=? where video_id=?");
+ query.bindValue(0, QDateTime::currentDateTime().toTime_t());
+ query.bindValue(1, video->id());
+ bool success = query.exec();
+ if (!success) qWarning() << query.lastQuery() << query.lastError().text();
+ if (query.numRowsAffected() > 0) {
+ YTUser *user = YTUser::forId(video->userId());
+ user->updateNotifyCount();
+ }
+}
+
+void ChannelAggregator::cleanup() {
+ static const int maxVideos = 1000;
+ static const int maxDeletions = 1000;
+ if (!Database::exists()) return;
+ QSqlDatabase db = Database::instance().getConnection();
+
+ QSqlQuery query(db);
+ bool success = query.exec("select count(*) from subscriptions_videos");
+ if (!success) qWarning() << query.lastQuery() << query.lastError().text();
+ if (!query.next()) return;
+ int count = query.value(0).toInt();
+ if (count <= maxVideos) return;
+
+ query = QSqlQuery(db);
+ query.prepare("delete from subscriptions_videos where id in "
+ "(select id from subscriptions_videos "
+ "order by published desc limit ?,?)");
+ query.bindValue(0, maxVideos);
+ query.bindValue(1, maxDeletions);
+ success = query.exec();
+ if (!success) qWarning() << query.lastQuery() << query.lastError().text();
+}
--- /dev/null
+/* $BEGIN_LICENSE
+
+This file is part of Minitube.
+Copyright 2009, Flavio Tordini <flavio.tordini@gmail.com>
+
+Minitube 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.
+
+Minitube 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 Minitube. If not, see <http://www.gnu.org/licenses/>.
+
+$END_LICENSE */
+
+#ifndef CHANNELAGGREGATOR_H
+#define CHANNELAGGREGATOR_H
+
+#include <QtCore>
+
+class YTUser;
+class Video;
+
+class ChannelAggregator : public QObject {
+
+ Q_OBJECT
+
+public:
+ static ChannelAggregator* instance();
+ int getUnwatchedCount() { return unwatchedCount; }
+ void markAllAsWatched();
+ void videoWatched(Video *video);
+ void cleanup();
+
+public slots:
+ void start();
+ void stop();
+ void run();
+
+signals:
+ void channelChanged(YTUser*);
+ void unwatchedCountChanged(int count);
+
+private slots:
+ void videosLoaded(QList<Video*> videos);
+
+private:
+ ChannelAggregator(QObject *parent = 0);
+ YTUser* getChannelToCheck();
+ void processNextChannel();
+ void addVideo(Video* video);
+ void updateUnwatchedCount();
+ void finish();
+
+ uint checkInterval;
+ int unwatchedCount;
+ bool running;
+
+ int newVideoCount;
+ QList<YTUser*> updatedChannels;
+
+ QTimer *timer;
+ bool stopped;
+};
+
+#endif // CHANNELAGGREGATOR_H
--- /dev/null
+/* $BEGIN_LICENSE
+
+This file is part of Minitube.
+Copyright 2009, Flavio Tordini <flavio.tordini@gmail.com>
+
+Minitube 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.
+
+Minitube 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 Minitube. If not, see <http://www.gnu.org/licenses/>.
+
+$END_LICENSE */
+
+#include "channelitemdelegate.h"
+#include "channelmodel.h"
+#include "ytuser.h"
+#include "fontutils.h"
+#include "channelaggregator.h"
+#include "painterutils.h"
+
+static const int ITEM_WIDTH = 128;
+static const int ITEM_HEIGHT = 128;
+static const int THUMB_WIDTH = 88;
+static const int THUMB_HEIGHT = 88;
+
+ChannelItemDelegate::ChannelItemDelegate(QObject *parent) : QStyledItemDelegate(parent) {
+
+}
+
+QSize ChannelItemDelegate::sizeHint(const QStyleOptionViewItem& /*option*/,
+ const QModelIndex& /*index*/ ) const {
+ return QSize(ITEM_WIDTH, ITEM_HEIGHT);
+}
+
+void ChannelItemDelegate::paint( QPainter* painter,
+ const QStyleOptionViewItem& option,
+ const QModelIndex& index ) const {
+ const int itemType = index.data(ChannelModel::ItemTypeRole).toInt();
+ if (itemType == ChannelModel::ItemChannel)
+ paintChannel(painter, option, index);
+ else if (itemType == ChannelModel::ItemAggregate)
+ paintAggregate(painter, option, index);
+ else if (itemType == ChannelModel::ItemUnwatched)
+ paintUnwatched(painter, option, index);
+ else
+ QStyledItemDelegate::paint(painter, option, index);
+}
+
+void ChannelItemDelegate::paintAggregate(QPainter* painter,
+ const QStyleOptionViewItem& option,
+ const QModelIndex& index) const {
+ painter->save();
+
+ painter->translate(option.rect.topLeft());
+ const QRect line(0, 0, option.rect.width(), option.rect.height());
+
+ static const QPixmap thumbnail = QPixmap(":/images/channels.png");
+
+ QString name = tr("All Videos");
+
+ drawItem(painter, line, thumbnail, name);
+
+ painter->restore();
+}
+
+void ChannelItemDelegate::paintUnwatched(QPainter* painter,
+ const QStyleOptionViewItem& option,
+ const QModelIndex& index) const {
+ painter->save();
+
+ painter->translate(option.rect.topLeft());
+ const QRect line(0, 0, option.rect.width(), option.rect.height());
+
+ static const QPixmap thumbnail = QPixmap(":/images/unwatched.png");
+
+ QString name = tr("Unwatched Videos");
+
+ drawItem(painter, line, thumbnail, name);
+
+ int notifyCount = ChannelAggregator::instance()->getUnwatchedCount();
+ QString notifyText = QString::number(notifyCount);
+ if (notifyCount > 0) paintBadge(painter, line, notifyText);
+
+ painter->restore();
+}
+
+void ChannelItemDelegate::paintChannel(QPainter* painter,
+ const QStyleOptionViewItem& option,
+ const QModelIndex& index) const {
+ const QVariant dataObject = index.data(ChannelModel::DataObjectRole);
+ const YTUserPointer channelPointer = dataObject.value<YTUserPointer>();
+ YTUser *user = channelPointer.data();
+ if (!user) return;
+
+ painter->save();
+
+ painter->translate(option.rect.topLeft());
+ const QRect line(0, 0, option.rect.width(), option.rect.height());
+
+ // const bool isActive = index.data( ActiveItemRole ).toBool();
+ // const bool isHovered = index.data(ChannelsModel::HoveredItemRole ).toBool();
+ // const bool isSelected = option.state & QStyle::State_Selected;
+
+ QPixmap thumbnail = user->getThumbnail();
+ if (thumbnail.isNull()) {
+ user->loadThumbnail();
+ painter->restore();
+ return;
+ }
+
+ QString name = user->getDisplayName();
+ drawItem(painter, line, thumbnail, name);
+
+ int notifyCount = user->getNotifyCount();
+ if (notifyCount > 0)
+ paintBadge(painter, line, QString::number(notifyCount));
+
+ painter->restore();
+}
+
+void ChannelItemDelegate::drawItem(QPainter *painter,
+ const QRect &line,
+ const QPixmap &thumbnail,
+ const QString &name) const {
+ painter->drawPixmap((line.width() - THUMB_WIDTH) / 2, 8, thumbnail);
+
+ QRect nameBox = line;
+ nameBox.adjust(0, 0, 0, -THUMB_HEIGHT - 16);
+ nameBox.translate(0, line.height() - nameBox.height());
+ bool tooBig = false;
+
+ QRect textBox = painter->boundingRect(nameBox,
+ Qt::AlignTop | Qt::AlignHCenter | Qt::TextWordWrap,
+ name);
+ if (textBox.height() > nameBox.height() || textBox.width() > nameBox.width()) {
+ painter->setFont(FontUtils::small());
+ textBox = painter->boundingRect(nameBox,
+ Qt::AlignTop | Qt::AlignHCenter | Qt::TextWordWrap,
+ name);
+ if (textBox.height() > nameBox.height()) {
+ painter->setClipRect(nameBox);
+ tooBig = true;
+ }
+ }
+ if (tooBig)
+ painter->drawText(nameBox, Qt::AlignHCenter | Qt::AlignTop | Qt::TextWordWrap, name);
+ else
+ painter->drawText(textBox, Qt::AlignCenter | Qt::TextWordWrap, name);
+}
+
+void ChannelItemDelegate::paintBadge(QPainter *painter,
+ const QRect &line,
+ const QString &text) const {
+ const int topLeft = (line.width() + THUMB_WIDTH) / 2;
+ painter->save();
+ painter->translate(topLeft, 0);
+ painter->setClipping(false);
+ PainterUtils::paintBadge(painter, text, true);
+ painter->restore();
+}
--- /dev/null
+/* $BEGIN_LICENSE
+
+This file is part of Minitube.
+Copyright 2009, Flavio Tordini <flavio.tordini@gmail.com>
+
+Minitube 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.
+
+Minitube 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 Minitube. If not, see <http://www.gnu.org/licenses/>.
+
+$END_LICENSE */
+
+#ifndef CHANNELITEMDELEGATE_H
+#define CHANNELITEMDELEGATE_H
+
+#include <QtGui>
+
+class ChannelItemDelegate : public QStyledItemDelegate {
+
+ Q_OBJECT
+
+public:
+ ChannelItemDelegate(QObject* parent = 0);
+ QSize sizeHint(const QStyleOptionViewItem&, const QModelIndex&) const;
+ void paint(QPainter*, const QStyleOptionViewItem&, const QModelIndex&) const;
+
+private:
+ void paintChannel(QPainter*, const QStyleOptionViewItem&, const QModelIndex&) const;
+ void paintAggregate(QPainter*, const QStyleOptionViewItem&, const QModelIndex&) const;
+ void paintUnwatched(QPainter*, const QStyleOptionViewItem&, const QModelIndex&) const;
+ void paintBadge(QPainter *painter, const QRect &line, const QString &text) const;
+ void drawItem(QPainter *painter, const QRect &line,
+ const QPixmap &thumbnail, const QString &name) const;
+
+};
+
+#endif // CHANNELITEMDELEGATE_H
--- /dev/null
+/* $BEGIN_LICENSE
+
+This file is part of Minitube.
+Copyright 2009, Flavio Tordini <flavio.tordini@gmail.com>
+
+Minitube 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.
+
+Minitube 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 Minitube. If not, see <http://www.gnu.org/licenses/>.
+
+$END_LICENSE */
+
+#include "channelmodel.h"
+#include "ytuser.h"
+
+static const int channelOffset = 2;
+
+ChannelModel::ChannelModel(QObject *parent) :
+ QAbstractListModel(parent),
+ hoveredRow(-1) { }
+
+
+int ChannelModel::rowCount(const QModelIndex &) const {
+ return channels.isEmpty() ? 0 : channelOffset + channels.size();
+}
+
+QVariant ChannelModel::data(const QModelIndex &index, int role) const {
+ switch (role) {
+
+ case ChannelModel::ItemTypeRole:
+ return typeForIndex(index);
+
+ case ChannelModel::DataObjectRole:
+ if (typeForIndex(index) == ChannelModel::ItemChannel)
+ return QVariant::fromValue(QPointer<YTUser>(userForIndex(index)));
+ break;
+
+ case ChannelModel::HoveredItemRole:
+ return hoveredRow == index.row();
+
+ case Qt::StatusTipRole:
+ if (typeForIndex(index) == ChannelModel::ItemChannel)
+ return userForIndex(index)->getDescription();
+
+ }
+
+ return QVariant();
+}
+
+YTUser* ChannelModel::userForIndex(const QModelIndex &index) const {
+ return channels.at(index.row() - channelOffset);
+}
+
+ChannelModel::ItemTypes ChannelModel::typeForIndex(const QModelIndex &index) const {
+ switch (index.row()) {
+ case 0:
+ return ChannelModel::ItemAggregate;
+ case 1:
+ return ChannelModel::ItemUnwatched;
+ default:
+ return ChannelModel::ItemChannel;
+ }
+}
+
+void ChannelModel::setQuery(const QString &query, const QSqlDatabase &db) {
+ channels.clear();
+ sqlError = QSqlError();
+
+ QSqlQuery q(db);
+ q.prepare(query);
+ bool success = q.exec();
+ if (!success) {
+ qWarning() << q.lastQuery() << q.lastError().text();
+ sqlError = q.lastError();
+ }
+ while (q.next()) {
+ YTUser *user = YTUser::forId(q.value(0).toString());
+ connect(user, SIGNAL(thumbnailLoaded()), SLOT(updateSender()), Qt::UniqueConnection);
+ channels << user;
+ }
+
+ reset();
+}
+
+QSqlError ChannelModel::lastError() const {
+ return sqlError;
+}
+
+void ChannelModel::updateSender() {
+ YTUser *user = static_cast<YTUser*>(sender());
+ if (!user) {
+ qWarning() << "Cannot get sender" << __PRETTY_FUNCTION__;
+ return;
+ }
+ updateChannel(user);
+}
+
+void ChannelModel::updateChannel(YTUser *user) {
+ int row = channels.indexOf(user);
+ if (row == -1) return;
+ row += channelOffset;
+ QModelIndex i = createIndex(row, 0);
+ emit dataChanged(i, i);
+}
+
+void ChannelModel::updateUnwatched() {
+ QModelIndex i = createIndex(1, 0);
+ emit dataChanged(i, i);
+}
+
+void ChannelModel::setHoveredRow(int row) {
+ int oldRow = hoveredRow;
+ hoveredRow = row;
+ emit dataChanged( createIndex( oldRow, 0 ), createIndex( oldRow, 0 ) );
+ emit dataChanged( createIndex( hoveredRow, 0 ), createIndex( hoveredRow, 0 ) );
+}
+
+void ChannelModel::clearHover() {
+ emit dataChanged( createIndex( hoveredRow, 0 ), createIndex( hoveredRow, 0 ) );
+ hoveredRow = -1;
+}
--- /dev/null
+/* $BEGIN_LICENSE
+
+This file is part of Minitube.
+Copyright 2009, Flavio Tordini <flavio.tordini@gmail.com>
+
+Minitube 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.
+
+Minitube 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 Minitube. If not, see <http://www.gnu.org/licenses/>.
+
+$END_LICENSE */
+
+#ifndef CHANNELMODEL_H
+#define CHANNELMODEL_H
+
+#include <QtCore>
+#include <QtSql>
+
+class YTUser;
+
+class ChannelModel : public QAbstractListModel {
+
+ Q_OBJECT
+
+public:
+ ChannelModel(QObject *parent = 0);
+
+ enum DataRoles {
+ ItemTypeRole = Qt::UserRole,
+ DataObjectRole,
+ HoveredItemRole
+ };
+
+ enum ItemTypes {
+ ItemChannel = 1,
+ ItemAggregate,
+ ItemUnwatched
+ };
+
+ void setQuery(const QString &query, const QSqlDatabase &db);
+ QSqlError lastError() const;
+ ItemTypes typeForIndex(const QModelIndex &index) const;
+ YTUser* userForIndex(const QModelIndex &index) const;
+ void setHoveredRow(int row);
+
+ int rowCount(const QModelIndex &parent = QModelIndex()) const;
+ QVariant data(const QModelIndex &index, int role) const;
+
+public slots:
+ void clearHover();
+ void updateSender();
+ void updateChannel(YTUser *user);
+ void updateUnwatched();
+
+private:
+ QList<YTUser*> channels;
+ int hoveredRow;
+ QSqlError sqlError;
+
+};
+
+#endif // CHANNELMODEL_H
+/* $BEGIN_LICENSE
+
+This file is part of Minitube.
+Copyright 2009, Flavio Tordini <flavio.tordini@gmail.com>
+
+Minitube 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.
+
+Minitube 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 Minitube. If not, see <http://www.gnu.org/licenses/>.
+
+$END_LICENSE */
+
#include "channelsuggest.h"
#include "networkaccess.h"
+/* $BEGIN_LICENSE
+
+This file is part of Minitube.
+Copyright 2009, Flavio Tordini <flavio.tordini@gmail.com>
+
+Minitube 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.
+
+Minitube 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 Minitube. If not, see <http://www.gnu.org/licenses/>.
+
+$END_LICENSE */
+
#ifndef CHANNELSUGGEST_H
#define CHANNELSUGGEST_H
--- /dev/null
+/* $BEGIN_LICENSE
+
+This file is part of Minitube.
+Copyright 2009, Flavio Tordini <flavio.tordini@gmail.com>
+
+Minitube 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.
+
+Minitube 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 Minitube. If not, see <http://www.gnu.org/licenses/>.
+
+$END_LICENSE */
+
+#include "channelview.h"
+#include "ytuser.h"
+#include "ytsearch.h"
+#include "searchparams.h"
+#include "channelmodel.h"
+#include "channelitemdelegate.h"
+#include "database.h"
+#include "ytsearch.h"
+#include "channelaggregator.h"
+#include "aggregatevideosource.h"
+#include "painterutils.h"
+#include "mainwindow.h"
+#include "utils.h"
+#ifdef APP_EXTRA
+#include "extra.h"
+#endif
+
+static const char *sortByKey = "subscriptionsSortBy";
+static const char *showUpdatedKey = "subscriptionsShowUpdated";
+
+ChannelView::ChannelView(QWidget *parent) : QListView(parent),
+ showUpdated(false),
+ sortBy(SortByName) {
+
+ setItemDelegate(new ChannelItemDelegate(this));
+ setSelectionMode(QAbstractItemView::NoSelection);
+
+ // layout
+ setSpacing(15);
+ setFlow(QListView::LeftToRight);
+ setWrapping(true);
+ setResizeMode(QListView::Adjust);
+ setMovement(QListView::Static);
+ setUniformItemSizes(true);
+
+ // cosmetics
+ setVerticalScrollMode(QAbstractItemView::ScrollPerPixel);
+ setFrameShape(QFrame::NoFrame);
+ setAttribute(Qt::WA_MacShowFocusRect, false);
+
+ QPalette p = palette();
+ /*
+ p.setColor(QPalette::Base, p.window().color());
+ p.setColor(QPalette::Text, p.windowText().color());
+ */
+ p.setColor(QPalette::Disabled, QPalette::Base, p.base().color());
+ p.setColor(QPalette::Disabled, QPalette::Text, p.text().color());
+ setPalette(p);
+
+ verticalScrollBar()->setPageStep(3);
+ verticalScrollBar()->setSingleStep(1);
+
+ setMouseTracking(true);
+
+ connect(this, SIGNAL(clicked(const QModelIndex &)),
+ SLOT(itemActivated(const QModelIndex &)));
+ connect(this, SIGNAL(entered(const QModelIndex &)),
+ SLOT(itemEntered(const QModelIndex &)));
+
+ channelsModel = new ChannelModel(this);
+ setModel(channelsModel);
+ connect(this, SIGNAL(viewportEntered()),
+ channelsModel, SLOT(clearHover()));
+
+ setupActions();
+
+ connect(ChannelAggregator::instance(), SIGNAL(channelChanged(YTUser*)),
+ channelsModel, SLOT(updateChannel(YTUser*)));
+ connect(ChannelAggregator::instance(), SIGNAL(unwatchedCountChanged(int)),
+ SLOT(unwatchedCountChanged(int)));
+
+ unwatchedCountChanged(ChannelAggregator::instance()->getUnwatchedCount());
+}
+
+void ChannelView::setupActions() {
+ QSettings settings;
+
+ markAsWatchedAction = new QAction(
+ Utils::icon("mark-watched"), tr("Mark all as watched"), this);
+ markAsWatchedAction->setEnabled(false);
+ markAsWatchedAction->setShortcut(QKeySequence(Qt::CTRL + Qt::SHIFT + Qt::Key_W));
+ connect(markAsWatchedAction, SIGNAL(triggered()), SLOT(markAllAsWatched()));
+ statusActions << markAsWatchedAction;
+
+ showUpdated = settings.value(showUpdatedKey, false).toBool();
+ QAction *showUpdatedAction = new QAction(
+ Utils::icon("show-updated"), tr("Show Updated"), this);
+ showUpdatedAction->setCheckable(true);
+ showUpdatedAction->setChecked(showUpdated);
+ showUpdatedAction->setShortcut(QKeySequence(Qt::CTRL + Qt::SHIFT + Qt::Key_U));
+ connect(showUpdatedAction, SIGNAL(toggled(bool)), SLOT(toggleShowUpdated(bool)));
+ statusActions << showUpdatedAction;
+
+ SortBy sortBy = static_cast<SortBy>(settings.value(sortByKey, SortByName).toInt());
+
+ QMenu *sortMenu = new QMenu(this);
+ QActionGroup *sortGroup = new QActionGroup(this);
+
+ QAction *sortByNameAction = new QAction(tr("Name"), this);
+ sortByNameAction->setActionGroup(sortGroup);
+ sortByNameAction->setCheckable(true);
+ if (sortBy == SortByName) sortByNameAction->setChecked(true);
+ connect(sortByNameAction, SIGNAL(triggered()), SLOT(setSortByName()));
+ sortMenu->addAction(sortByNameAction);
+
+ QAction *sortByUpdatedAction = new QAction(tr("Last Updated"), this);
+ sortByUpdatedAction->setActionGroup(sortGroup);
+ sortByUpdatedAction->setCheckable(true);
+ if (sortBy == SortByUpdated) sortByUpdatedAction->setChecked(true);
+ connect(sortByUpdatedAction, SIGNAL(triggered()), SLOT(setSortByUpdated()));
+ sortMenu->addAction(sortByUpdatedAction);
+
+ QAction *sortByAddedAction = new QAction(tr("Last Added"), this);
+ sortByAddedAction->setActionGroup(sortGroup);
+ sortByAddedAction->setCheckable(true);
+ if (sortBy == SortByAdded) sortByAddedAction->setChecked(true);
+ connect(sortByAddedAction, SIGNAL(triggered()), SLOT(setSortByAdded()));
+ sortMenu->addAction(sortByAddedAction);
+
+ QAction *sortByLastWatched = new QAction(tr("Last Watched"), this);
+ sortByLastWatched->setActionGroup(sortGroup);
+ sortByLastWatched->setCheckable(true);
+ if (sortBy == SortByLastWatched) sortByLastWatched->setChecked(true);
+ connect(sortByLastWatched, SIGNAL(triggered()), SLOT(setSortByLastWatched()));
+ sortMenu->addAction(sortByLastWatched);
+
+ QAction *sortByMostWatched = new QAction(tr("Most Watched"), this);
+ sortByMostWatched->setActionGroup(sortGroup);
+ sortByMostWatched->setCheckable(true);
+ if (sortBy == SortByMostWatched) sortByMostWatched->setChecked(true);
+ connect(sortByMostWatched, SIGNAL(triggered()), SLOT(setSortByMostWatched()));
+ sortMenu->addAction(sortByMostWatched);
+
+ QToolButton *sortButton = new QToolButton(this);
+ sortButton->setText(tr("Sort by"));
+ sortButton->setIcon(Utils::icon("sort"));
+ sortButton->setIconSize(QSize(16, 16));
+ sortButton->setToolButtonStyle(Qt::ToolButtonTextBesideIcon);
+ sortButton->setPopupMode(QToolButton::InstantPopup);
+ sortButton->setMenu(sortMenu);
+ QWidgetAction *widgetAction = new QWidgetAction(this);
+ widgetAction->setDefaultWidget(sortButton);
+ widgetAction->setShortcut(QKeySequence(Qt::CTRL + Qt::SHIFT + Qt::Key_O));
+ statusActions << widgetAction;
+
+ foreach (QAction *action, statusActions) {
+ window()->addAction(action);
+ Utils::setupAction(action);
+ }
+}
+
+void ChannelView::appear() {
+ updateQuery();
+ foreach (QAction* action, statusActions)
+ MainWindow::instance()->showActionInStatusBar(action, true);
+ setFocus();
+ ChannelAggregator::instance()->run();
+}
+
+void ChannelView::disappear() {
+ foreach (QAction* action, statusActions)
+ MainWindow::instance()->showActionInStatusBar(action, false);
+}
+
+void ChannelView::mouseMoveEvent(QMouseEvent *event) {
+ QListView::mouseMoveEvent(event);
+ const QModelIndex index = indexAt(event->pos());
+ if (index.isValid()) setCursor(Qt::PointingHandCursor);
+ else unsetCursor();
+}
+
+void ChannelView::leaveEvent(QEvent *event) {
+ QListView::leaveEvent(event);
+ // channelsModel->clearHover();
+}
+
+void ChannelView::itemEntered(const QModelIndex &index) {
+ // channelsModel->setHoveredRow(index.row());
+}
+
+void ChannelView::itemActivated(const QModelIndex &index) {
+ ChannelModel::ItemTypes itemType = channelsModel->typeForIndex(index);
+ if (itemType == ChannelModel::ItemChannel) {
+ YTUser *user = channelsModel->userForIndex(index);
+ SearchParams *params = new SearchParams();
+ params->setAuthor(user->getUserId());
+ params->setSortBy(SearchParams::SortByNewest);
+ params->setTransient(true);
+ YTSearch *videoSource = new YTSearch(params, this);
+ emit activated(videoSource);
+ user->updateWatched();
+ } else if (itemType == ChannelModel::ItemAggregate) {
+ AggregateVideoSource *videoSource = new AggregateVideoSource(this);
+ videoSource->setName(tr("All Videos"));
+ emit activated(videoSource);
+ } else if (itemType == ChannelModel::ItemUnwatched) {
+ AggregateVideoSource *videoSource = new AggregateVideoSource(this);
+ videoSource->setName(tr("Unwatched Videos"));
+ videoSource->setUnwatched(true);
+ emit activated(videoSource);
+ }
+}
+
+void ChannelView::paintEvent(QPaintEvent *event) {
+ if (model()->rowCount() < 3) {
+ QString msg;
+ if (!errorMessage.isEmpty())
+ msg = errorMessage;
+ else if (showUpdated)
+ msg = tr("There are no updated subscriptions at this time.");
+ else
+ msg = tr("You have no subscriptions. "
+ "Use the star symbol to subscribe to channels.");
+ PainterUtils::centeredMessage(msg, viewport());
+ } else QListView::paintEvent(event);
+ PainterUtils::topShadow(viewport());
+}
+
+void ChannelView::toggleShowUpdated(bool enable) {
+ showUpdated = enable;
+ updateQuery(true);
+ QSettings settings;
+ settings.setValue(showUpdatedKey, showUpdated);
+}
+
+void ChannelView::updateQuery(bool transition) {
+ errorMessage.clear();
+ if (!Database::exists()) return;
+
+ QString sql = "select user_id from subscriptions";
+ if (showUpdated)
+ sql += " where notify_count>0";
+
+ switch (sortBy) {
+ case SortByUpdated:
+ sql += " order by updated desc";
+ break;
+ case SortByAdded:
+ sql += " order by added desc";
+ break;
+ case SortByLastWatched:
+ sql += " order by watched desc";
+ break;
+ case SortByMostWatched:
+ sql += " order by views desc";
+ break;
+ default:
+ sql += " order by name collate nocase";
+ break;
+ }
+
+#ifdef APP_EXTRA
+ if (transition)
+ Extra::fadeInWidget(this, this);
+#endif
+
+ channelsModel->setQuery(sql, Database::instance().getConnection());
+ if (channelsModel->lastError().isValid()) {
+ qWarning() << channelsModel->lastError().text();
+ errorMessage = channelsModel->lastError().text();
+ }
+}
+
+void ChannelView::setSortBy(SortBy sortBy) {
+ this->sortBy = sortBy;
+ updateQuery(true);
+ QSettings settings;
+ settings.setValue(sortByKey, (int)sortBy);
+}
+
+void ChannelView::markAllAsWatched() {
+ ChannelAggregator::instance()->markAllAsWatched();
+ updateQuery();
+ markAsWatchedAction->setEnabled(false);
+}
+
+void ChannelView::unwatchedCountChanged(int count) {
+ markAsWatchedAction->setEnabled(count > 0);
+ channelsModel->updateUnwatched();
+ updateQuery();
+}
--- /dev/null
+/* $BEGIN_LICENSE
+
+This file is part of Minitube.
+Copyright 2009, Flavio Tordini <flavio.tordini@gmail.com>
+
+Minitube 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.
+
+Minitube 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 Minitube. If not, see <http://www.gnu.org/licenses/>.
+
+$END_LICENSE */
+
+#ifndef CHANNELSVIEW_H
+#define CHANNELSVIEW_H
+
+#include <QtGui>
+#include "view.h"
+
+class VideoSource;
+class ChannelModel;
+
+class ChannelView : public QListView, public View {
+
+ Q_OBJECT
+
+public:
+ ChannelView(QWidget *parent = 0);
+
+signals:
+ void activated(VideoSource *videoSource);
+
+public slots:
+ void appear();
+ void disappear();
+
+protected:
+ void mouseMoveEvent(QMouseEvent *event);
+ void leaveEvent(QEvent *event);
+ void paintEvent(QPaintEvent *event);
+
+private:
+ enum SortBy {
+ SortByName = 0,
+ SortByAdded,
+ SortByUpdated,
+ SortByLastWatched,
+ SortByMostWatched
+ };
+
+private slots:
+ void itemEntered(const QModelIndex &index);
+ void itemActivated(const QModelIndex &index);
+ void toggleShowUpdated(bool enable);
+ void setSortBy(SortBy sortBy);
+ void setSortByName() { setSortBy(SortByName); }
+ void setSortByUpdated() { setSortBy(SortByUpdated); }
+ void setSortByAdded() { setSortBy(SortByAdded); }
+ void setSortByLastWatched() { setSortBy(SortByLastWatched); }
+ void setSortByMostWatched() { setSortBy(SortByMostWatched); }
+ void markAllAsWatched();
+ void unwatchedCountChanged(int count);
+
+private:
+ void updateQuery(bool transition = false);
+ void setupActions();
+
+ ChannelModel *channelsModel;
+ QList<QAction*> statusActions;
+ bool showUpdated;
+ SortBy sortBy;
+ QString errorMessage;
+ QAction *markAsWatchedAction;
+
+};
+
+#endif // CHANNELSVIEW_H
+/* $BEGIN_LICENSE
+
+This file is part of Minitube.
+Copyright 2009, Flavio Tordini <flavio.tordini@gmail.com>
+
+Minitube 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.
+
+Minitube 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 Minitube. If not, see <http://www.gnu.org/licenses/>.
+
+$END_LICENSE */
+
#include "constants.h"
#define STR(x) #x
+/* $BEGIN_LICENSE
+
+This file is part of Minitube.
+Copyright 2009, Flavio Tordini <flavio.tordini@gmail.com>
+
+Minitube 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.
+
+Minitube 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 Minitube. If not, see <http://www.gnu.org/licenses/>.
+
+$END_LICENSE */
+
#ifndef CONSTANTS_H
#define CONSTANTS_H
--- /dev/null
+/* $BEGIN_LICENSE
+
+This file is part of Minitube.
+Copyright 2009, Flavio Tordini <flavio.tordini@gmail.com>
+
+Minitube 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.
+
+Minitube 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 Minitube. If not, see <http://www.gnu.org/licenses/>.
+
+$END_LICENSE */
+
+#include "database.h"
+#include "constants.h"
+#include <QDesktopServices>
+
+static const int DATABASE_VERSION = 1;
+static const QString dbName = QLatin1String(Constants::UNIX_NAME) + ".db";
+static Database *databaseInstance = 0;
+
+Database::Database() {
+
+ QString dataLocation = QDesktopServices::storageLocation(QDesktopServices::DataLocation);
+ QDir().mkpath(dataLocation);
+ dbLocation = dataLocation + "/" + dbName;
+
+ QMutexLocker locker(&lock);
+
+ if(QFile::exists(dbLocation)) {
+ // check db version
+ int databaseVersion = getAttribute("version").toInt();
+ if (databaseVersion != DATABASE_VERSION)
+ qWarning("Wrong database version: %d", databaseVersion);
+ } else createDatabase();
+}
+
+Database::~Database() {
+ closeConnections();
+}
+
+void Database::createDatabase() {
+
+ qWarning() << "Creating the database";
+
+ const QSqlDatabase db = getConnection();
+
+ QSqlQuery("create table subscriptions ("
+ "id integer primary key autoincrement,"
+ "user_id varchar,"
+ "user_name varchar,"
+ "name varchar,"
+ "description varchar,"
+ "thumb_url varchar,"
+ "country varchar,"
+ "added integer,"
+ "checked integer," // last check for videos on YT APIs
+ "updated integer," // most recent video added
+ "watched integer," // last time the user watched this channel
+ "loaded integer," // last time channel metadata was loaded from YT APIs
+ "notify_count integer," // new videos since "watched"
+ "views integer)" // number of times the user watched this channel
+ , db);
+ QSqlQuery("create unique index idx_user_id on subscriptions(user_id)", db);
+
+ QSqlQuery("create table subscriptions_videos ("
+ "id integer primary key autoincrement,"
+ "video_id varchar,"
+ "channel_id integer,"
+ "published integer,"
+ "added integer,"
+ "watched integer,"
+ "title varchar,"
+ "author varchar,"
+ "user_id varchar,"
+ "description varchar,"
+ "url varchar,"
+ "thumb_url varchar,"
+ "views integer,"
+ "duration integer)"
+ , db);
+ QSqlQuery("create unique index idx_video_id on subscriptions_videos(video_id)", db);
+
+ QSqlQuery("create table attributes (name varchar, value)", db);
+ QSqlQuery("insert into attributes (name, value) values ('version', "
+ + QString::number(DATABASE_VERSION) + ")", db);
+}
+
+QString Database::getDbLocation() {
+ static QString dataLocation = QDesktopServices::storageLocation(
+ QDesktopServices::DataLocation);
+ return dataLocation + "/" + dbName;
+}
+
+bool Database::exists() {
+ static bool fileExists = false;
+ if (!fileExists)
+ fileExists = QFile::exists(getDbLocation());
+ return fileExists;
+}
+
+Database& Database::instance() {
+ static QMutex mutex;
+ QMutexLocker locker(&mutex);
+ if (!databaseInstance) databaseInstance = new Database();
+ return *databaseInstance;
+}
+
+QSqlDatabase Database::getConnection() {
+ QThread *currentThread = QThread::currentThread();
+ if (!currentThread) {
+ qDebug() << "current thread is null";
+ return QSqlDatabase();
+ }
+
+ const QString threadName = currentThread->objectName();
+ // qDebug() << "threadName" << threadName << currentThread;
+ if (connections.contains(currentThread)) {
+ return connections.value(currentThread);
+ } else {
+ // qDebug() << "Creating db connection for" << threadName;
+ QSqlDatabase connection = QSqlDatabase::addDatabase("QSQLITE", threadName);
+ connection.setDatabaseName(dbLocation);
+ if(!connection.open()) {
+ qWarning() << QString("Cannot connect to database %1 in thread %2").arg(dbLocation, threadName);
+ }
+ connections.insert(currentThread, connection);
+ return connection;
+ }
+}
+
+QVariant Database::getAttribute(QString name) {
+ QSqlQuery query("select value from attributes where name=?", getConnection());
+ query.bindValue(0, name);
+
+ bool success = query.exec();
+ if (!success) qDebug() << query.lastQuery() << query.boundValues().values() << query.lastError().text();
+ if (query.next())
+ return query.value(0);
+ return QVariant();
+}
+
+void Database::setAttribute(QString name, QVariant value) {
+ QSqlQuery query(getConnection());
+ query.prepare("update attributes set value=? where name=?");
+ query.bindValue(0, value);
+ query.bindValue(1, name);
+ bool success = query.exec();
+ if (!success) qDebug() << query.lastError().text();
+}
+
+/**
+ * After calling this method you have to reacquire a valid instance using instance()
+ */
+void Database::drop() {
+ /// closeConnections();
+ if (!QFile::remove(dbLocation)) {
+ qWarning() << "Cannot delete database" << dbLocation;
+
+ // fallback to delete records in tables
+ const QSqlDatabase db = getConnection();
+ QSqlQuery query(db);
+ if (!query.exec("select name from sqlite_master where type='table'")) {
+ qWarning() << query.lastQuery() << query.lastError().text();
+ }
+
+ while (query.next()) {
+ QString tableName = query.value(0).toString();
+ if (tableName.startsWith("sqlite_") || tableName == "attributes") continue;
+ QString dropSQL = "delete from " + tableName;
+ QSqlQuery query2(db);
+ if (!query2.exec(dropSQL))
+ qWarning() << query2.lastQuery() << query2.lastError().text();
+ }
+
+ query.exec("delete from sqlite_sequence");
+
+ }
+ if (databaseInstance) delete databaseInstance;
+ databaseInstance = 0;
+}
+
+void Database::closeConnections() {
+ foreach(QSqlDatabase connection, connections.values()) {
+ // qDebug() << "Closing connection" << connection;
+ connection.close();
+ }
+ connections.clear();
+}
+
+void Database::closeConnection() {
+ QThread *currentThread = QThread::currentThread();
+ if (!connections.contains(currentThread)) return;
+ QSqlDatabase connection = connections.take(currentThread);
+ // qDebug() << "Closing connection" << connection;
+ connection.close();
+}
+
+void Database::shutdown() {
+ if (!databaseInstance) return;
+ QSqlQuery("vacuum", databaseInstance->getConnection());
+ databaseInstance->closeConnections();
+}
--- /dev/null
+/* $BEGIN_LICENSE
+
+This file is part of Minitube.
+Copyright 2009, Flavio Tordini <flavio.tordini@gmail.com>
+
+Minitube 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.
+
+Minitube 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 Minitube. If not, see <http://www.gnu.org/licenses/>.
+
+$END_LICENSE */
+
+#ifndef DATABASE_H
+#define DATABASE_H
+
+#include <QtCore>
+#include <QtSql>
+
+class Database : public QObject {
+
+ Q_OBJECT
+
+public:
+ static bool exists();
+ static Database& instance();
+ static void shutdown();
+ QSqlDatabase getConnection();
+ ~Database();
+ void drop();
+ void closeConnections();
+ void closeConnection();
+
+private:
+ Database();
+ static QString getDbLocation();
+ void createDatabase();
+ QVariant getAttribute(QString name);
+ void setAttribute(QString name, QVariant value);
+
+ QMutex lock;
+ QString dbLocation;
+ QHash<QThread*, QSqlDatabase> connections;
+
+};
+
+#endif // DATABASE_H
+/* $BEGIN_LICENSE
+
+This file is part of Minitube.
+Copyright 2009, Flavio Tordini <flavio.tordini@gmail.com>
+
+Minitube 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.
+
+Minitube 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 Minitube. If not, see <http://www.gnu.org/licenses/>.
+
+$END_LICENSE */
+
#include "diskcache.h"
#include <QtNetwork>
+/* $BEGIN_LICENSE
+
+This file is part of Minitube.
+Copyright 2009, Flavio Tordini <flavio.tordini@gmail.com>
+
+Minitube 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.
+
+Minitube 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 Minitube. If not, see <http://www.gnu.org/licenses/>.
+
+$END_LICENSE */
+
#ifndef DISKCACHE_H
#define DISKCACHE_H
+/* $BEGIN_LICENSE
+
+This file is part of Minitube.
+Copyright 2009, Flavio Tordini <flavio.tordini@gmail.com>
+
+Minitube 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.
+
+Minitube 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 Minitube. If not, see <http://www.gnu.org/licenses/>.
+
+$END_LICENSE */
+
#include "downloaditem.h"
#include "networkaccess.h"
#include "video.h"
+/* $BEGIN_LICENSE
+
+This file is part of Minitube.
+Copyright 2009, Flavio Tordini <flavio.tordini@gmail.com>
+
+Minitube 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.
+
+Minitube 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 Minitube. If not, see <http://www.gnu.org/licenses/>.
+
+$END_LICENSE */
+
#ifndef DOWNLOADITEM_H
#define DOWNLOADITEM_H
+/* $BEGIN_LICENSE
+
+This file is part of Minitube.
+Copyright 2009, Flavio Tordini <flavio.tordini@gmail.com>
+
+Minitube 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.
+
+Minitube 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 Minitube. If not, see <http://www.gnu.org/licenses/>.
+
+$END_LICENSE */
+
#include "downloadlistview.h"
#include "downloadmodel.h"
#include "playlistitemdelegate.h"
+#include "painterutils.h"
DownloadListView::DownloadListView(QWidget *parent) : QListView(parent) {
const int y = event->y() - itemRect.y() - buttonRect.y();
return x > 0 && x < buttonRect.width() && y > 0 && y < buttonRect.height();
}
+
+void DownloadListView::paintEvent(QPaintEvent *event) {
+ QListView::paintEvent(event);
+ PainterUtils::topShadow(viewport());
+}
+/* $BEGIN_LICENSE
+
+This file is part of Minitube.
+Copyright 2009, Flavio Tordini <flavio.tordini@gmail.com>
+
+Minitube 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.
+
+Minitube 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 Minitube. If not, see <http://www.gnu.org/licenses/>.
+
+$END_LICENSE */
+
#ifndef DOWNLOADLISTVIEW_H
#define DOWNLOADLISTVIEW_H
void mousePressEvent(QMouseEvent *event);
void mouseReleaseEvent(QMouseEvent *event);
bool isHoveringPlayIcon(QMouseEvent *event);
+ void paintEvent(QPaintEvent *event);
signals:
void downloadButtonPushed(QModelIndex index);
+/* $BEGIN_LICENSE
+
+This file is part of Minitube.
+Copyright 2009, Flavio Tordini <flavio.tordini@gmail.com>
+
+Minitube 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.
+
+Minitube 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 Minitube. If not, see <http://www.gnu.org/licenses/>.
+
+$END_LICENSE */
+
#include "downloadmanager.h"
#include "downloaditem.h"
#include "downloadmodel.h"
#ifdef APP_ACTIVATION
#include "activation.h"
#endif
-#ifdef Q_WS_MAC
-#include "macutils.h"
+#ifdef APP_EXTRA
+#include "extra.h"
#endif
static DownloadManager *downloadManagerInstance = 0;
video->disconnect(this);
- QString path = currentDownloadFolder();
-
- // TODO ensure all chars are filename compatible
QString basename = video->title();
basename.replace('(', '[');
basename.replace(')', ']');
basename.replace('*', ' ');
basename = basename.simplified();
- QString filename = path + "/" + basename + ".mp4";
+ if (!basename.isEmpty() && basename.at(0) == '.')
+ basename = basename.mid(1).trimmed();
+
+ if (basename.isEmpty()) basename = video->id();
+
+ QString filename = currentDownloadFolder() + "/" + basename + ".mp4";
Video *videoCopy = video->clone();
DownloadItem *item = new DownloadItem(videoCopy, url, filename, this);
void DownloadManager::itemFinished() {
if (activeItems() == 0) emit finished();
-#ifdef Q_WS_MAC
- if (mac::canNotify()) {
+#ifdef APP_EXTRA
DownloadItem *item = static_cast<DownloadItem*>(sender());
if (!item) {
qDebug() << "Cannot get item in" << __FUNCTION__;
QString stats = tr("%1 downloaded in %2").arg(
DownloadItem::formattedFilesize(item->bytesTotal()),
DownloadItem::formattedTime(item->totalTime(), false));
- mac::notify(tr("Download finished"), video->title(), stats);
- }
+ Extra::notify(tr("Download finished"), video->title(), stats);
#endif
}
+/* $BEGIN_LICENSE
+
+This file is part of Minitube.
+Copyright 2009, Flavio Tordini <flavio.tordini@gmail.com>
+
+Minitube 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.
+
+Minitube 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 Minitube. If not, see <http://www.gnu.org/licenses/>.
+
+$END_LICENSE */
+
#ifndef DOWNLOADMANAGER_H
#define DOWNLOADMANAGER_H
+/* $BEGIN_LICENSE
+
+This file is part of Minitube.
+Copyright 2009, Flavio Tordini <flavio.tordini@gmail.com>
+
+Minitube 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.
+
+Minitube 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 Minitube. If not, see <http://www.gnu.org/licenses/>.
+
+$END_LICENSE */
+
#include "downloadmodel.h"
#include "downloadmanager.h"
#include "downloaditem.h"
+/* $BEGIN_LICENSE
+
+This file is part of Minitube.
+Copyright 2009, Flavio Tordini <flavio.tordini@gmail.com>
+
+Minitube 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.
+
+Minitube 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 Minitube. If not, see <http://www.gnu.org/licenses/>.
+
+$END_LICENSE */
+
#ifndef DOWNLOADMODEL_H
#define DOWNLOADMODEL_H
+/* $BEGIN_LICENSE
+
+This file is part of Minitube.
+Copyright 2009, Flavio Tordini <flavio.tordini@gmail.com>
+
+Minitube 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.
+
+Minitube 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 Minitube. If not, see <http://www.gnu.org/licenses/>.
+
+$END_LICENSE */
+
#include "downloadsettings.h"
#include "downloadmanager.h"
#include "mainwindow.h"
+/* $BEGIN_LICENSE
+
+This file is part of Minitube.
+Copyright 2009, Flavio Tordini <flavio.tordini@gmail.com>
+
+Minitube 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.
+
+Minitube 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 Minitube. If not, see <http://www.gnu.org/licenses/>.
+
+$END_LICENSE */
+
#ifndef DOWNLOADSETTINGS_H
#define DOWNLOADSETTINGS_H
+/* $BEGIN_LICENSE
+
+This file is part of Minitube.
+Copyright 2009, Flavio Tordini <flavio.tordini@gmail.com>
+
+Minitube 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.
+
+Minitube 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 Minitube. If not, see <http://www.gnu.org/licenses/>.
+
+$END_LICENSE */
+
#include "downloadview.h"
#include "downloadmodel.h"
#include "downloadmanager.h"
+/* $BEGIN_LICENSE
+
+This file is part of Minitube.
+Copyright 2009, Flavio Tordini <flavio.tordini@gmail.com>
+
+Minitube 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.
+
+Minitube 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 Minitube. If not, see <http://www.gnu.org/licenses/>.
+
+$END_LICENSE */
+
#ifndef DOWNLOADVIEW_H
#define DOWNLOADVIEW_H
+/* $BEGIN_LICENSE
+
+This file is part of Minitube.
+Copyright 2009, Flavio Tordini <flavio.tordini@gmail.com>
+
+Minitube 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.
+
+Minitube 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 Minitube. If not, see <http://www.gnu.org/licenses/>.
+
+$END_LICENSE */
+
#include "fontutils.h"
static const int MIN_PIXEL_SIZE = 11;
+/* $BEGIN_LICENSE
+
+This file is part of Minitube.
+Copyright 2009, Flavio Tordini <flavio.tordini@gmail.com>
+
+Minitube 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.
+
+Minitube 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 Minitube. If not, see <http://www.gnu.org/licenses/>.
+
+$END_LICENSE */
+
#ifndef FONTUTILS_H
#define FONTUTILS_H
+/* $BEGIN_LICENSE
+
+This file is part of Minitube.
+Copyright 2009, Flavio Tordini <flavio.tordini@gmail.com>
+
+Minitube 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.
+
+Minitube 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 Minitube. If not, see <http://www.gnu.org/licenses/>.
+
+$END_LICENSE */
+
#ifndef GLOBAL_H
#define GLOBAL_H
+/* $BEGIN_LICENSE
+
+This file is part of Minitube.
+Copyright 2009, Flavio Tordini <flavio.tordini@gmail.com>
+
+Minitube 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.
+
+Minitube 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 Minitube. If not, see <http://www.gnu.org/licenses/>.
+
+$END_LICENSE */
+
#include "globalshortcutbackend.h"
#include "globalshortcuts.h"
+/* $BEGIN_LICENSE
+
+This file is part of Minitube.
+Copyright 2009, Flavio Tordini <flavio.tordini@gmail.com>
+
+Minitube 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.
+
+Minitube 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 Minitube. If not, see <http://www.gnu.org/licenses/>.
+
+$END_LICENSE */
+
#ifndef GLOBALSHORTCUTBACKEND_H
#define GLOBALSHORTCUTBACKEND_H
+/* $BEGIN_LICENSE
+
+This file is part of Minitube.
+Copyright 2009, Flavio Tordini <flavio.tordini@gmail.com>
+
+Minitube 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.
+
+Minitube 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 Minitube. If not, see <http://www.gnu.org/licenses/>.
+
+$END_LICENSE */
+
#include "globalshortcuts.h"
#include "globalshortcutbackend.h"
+/* $BEGIN_LICENSE
+
+This file is part of Minitube.
+Copyright 2009, Flavio Tordini <flavio.tordini@gmail.com>
+
+Minitube 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.
+
+Minitube 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 Minitube. If not, see <http://www.gnu.org/licenses/>.
+
+$END_LICENSE */
+
#ifndef GLOBALSHORTCUTS_H
#define GLOBALSHORTCUTS_H
+/* $BEGIN_LICENSE
+
+This file is part of Minitube.
+Copyright 2009, Flavio Tordini <flavio.tordini@gmail.com>
+
+Minitube 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.
+
+Minitube 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 Minitube. If not, see <http://www.gnu.org/licenses/>.
+
+$END_LICENSE */
+
#include "gnomeglobalshortcutbackend.h"
#include "globalshortcuts.h"
+/* $BEGIN_LICENSE
+
+This file is part of Minitube.
+Copyright 2009, Flavio Tordini <flavio.tordini@gmail.com>
+
+Minitube 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.
+
+Minitube 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 Minitube. If not, see <http://www.gnu.org/licenses/>.
+
+$END_LICENSE */
+
#ifndef GNOMEGLOBALSHORTCUTBACKEND_H
#define GNOMEGLOBALSHORTCUTBACKEND_H
--- /dev/null
+/* $BEGIN_LICENSE
+
+This file is part of Minitube.
+Copyright 2009, Flavio Tordini <flavio.tordini@gmail.com>
+
+Minitube 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.
+
+Minitube 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 Minitube. If not, see <http://www.gnu.org/licenses/>.
+
+$END_LICENSE */
+
+#include "gridwidget.h"
+
+GridWidget::GridWidget(QWidget *parent) :
+ QWidget(parent),
+ hovered(false),
+ pressed(false) {
+ setCursor(Qt::PointingHandCursor);
+ setFocusPolicy(Qt::StrongFocus);
+}
+
+void GridWidget::mouseMoveEvent(QMouseEvent *event) {
+ QWidget::mouseMoveEvent(event);
+ hovered = rect().contains(event->pos());
+}
+
+void GridWidget::mousePressEvent(QMouseEvent *event) {
+ QWidget::mousePressEvent(event);
+ if (event->button() != Qt::LeftButton) return;
+ pressed = true;
+ update();
+}
+
+void GridWidget::mouseReleaseEvent(QMouseEvent *event) {
+ QWidget::mouseReleaseEvent(event);
+ if (event->button() != Qt::LeftButton) return;
+ pressed = false;
+ if (hovered) emit activated();
+}
+
+void GridWidget::leaveEvent(QEvent *event) {
+ QWidget::leaveEvent(event);
+ hovered = false;
+ update();
+}
+
+void GridWidget::enterEvent(QEvent *event) {
+ QWidget::enterEvent(event);
+ hovered = true;
+ update();
+}
+
+void GridWidget::keyReleaseEvent(QKeyEvent *event) {
+ if (event->key() == Qt::Key_Return)
+ emit activated();
+}
--- /dev/null
+/* $BEGIN_LICENSE
+
+This file is part of Minitube.
+Copyright 2009, Flavio Tordini <flavio.tordini@gmail.com>
+
+Minitube 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.
+
+Minitube 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 Minitube. If not, see <http://www.gnu.org/licenses/>.
+
+$END_LICENSE */
+
+#ifndef GRIDWIDGET_H
+#define GRIDWIDGET_H
+
+#include <QtGui>
+
+class GridWidget : public QWidget {
+
+ Q_OBJECT
+
+public:
+ GridWidget(QWidget *parent = 0);
+
+signals:
+ void activated();
+
+protected:
+ void mouseMoveEvent(QMouseEvent *event);
+ void mousePressEvent(QMouseEvent *event);
+ void mouseReleaseEvent(QMouseEvent *event);
+ void enterEvent(QEvent *event);
+ void leaveEvent(QEvent *event);
+ void keyReleaseEvent(QKeyEvent *event);
+
+ bool hovered;
+ bool pressed;
+};
+
+#endif // GRIDWIDGET_H
+/* $BEGIN_LICENSE
+
+This file is part of Minitube.
+Copyright 2009, Flavio Tordini <flavio.tordini@gmail.com>
+
+Minitube 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.
+
+Minitube 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 Minitube. If not, see <http://www.gnu.org/licenses/>.
+
+$END_LICENSE */
+
#include "homeview.h"
#include "segmentedcontrol.h"
#include "searchview.h"
#include "standardfeedsview.h"
-#include "userview.h"
+#include "channelview.h"
#include "mainwindow.h"
#include "mediaview.h"
#include "ytstandardfeed.h"
+#include "utils.h"
+#include "channelaggregator.h"
+#ifdef APP_MAC
+#include "macutils.h"
+#endif
-HomeView::HomeView(QWidget *parent) : QWidget(parent) {
- standardFeedsView = 0;
- userView = 0;
+HomeView::HomeView(QWidget *parent) : QWidget(parent),
+ standardFeedsView(0),
+ channelsView(0) {
QBoxLayout *layout = new QVBoxLayout(this);
layout->setMargin(0);
}
void HomeView::setupBar() {
- bar = new SegmentedControl(this);
+ bar = new SegmentedControl();
QAction *action = new QAction(tr("Search"), this);
action->setShortcut(QKeySequence(Qt::CTRL + Qt::Key_1));
connect(action, SIGNAL(triggered()), SLOT(showStandardFeeds()));
bar->addAction(action);
- /*
- action = new QAction(tr("User"), this);
- action->setShortcut(QKeySequence(Qt::CTRL + Qt::Key_3));
- action->setStatusTip(tr("Your favorite videos, subscriptions and playlists"));
- connect(action, SIGNAL(triggered()), SLOT(showUser()));
- bar->addAction(action);
- */
+ subscriptionsAction = new QAction(tr("Subscriptions"), this);
+ subscriptionsAction->setShortcut(QKeySequence(Qt::CTRL + Qt::Key_3));
+ subscriptionsAction->setStatusTip(tr("Channel subscriptions"));
+ connect(subscriptionsAction, SIGNAL(triggered()), SLOT(showChannels()));
+ bar->addAction(subscriptionsAction);
+ connect(ChannelAggregator::instance(), SIGNAL(unwatchedCountChanged(int)),
+ SLOT(unwatchedCountChanged(int)));
foreach (QAction* action, bar->actions()) {
- // action->setEnabled(false);
addAction(action);
- action->setAutoRepeat(false);
- if (!action->shortcut().isEmpty())
- action->setStatusTip(
- action->statusTip() + " (" +
- action->shortcut().toString(QKeySequence::NativeText) + ")");
+ Utils::setupAction(action);
}
}
stackedWidget->setCurrentWidget(widget);
widget->setEnabled(true);
QMetaObject::invokeMethod(widget, "appear");
- bar->setCheckedAction(stackedWidget->currentIndex());
- // autoChosenView = false;
widget->setFocus();
}
void HomeView::showSearch() {
showWidget(searchView);
+ bar->setCheckedAction(0);
}
void HomeView::showStandardFeeds() {
stackedWidget->addWidget(standardFeedsView);
}
showWidget(standardFeedsView);
+ bar->setCheckedAction(1);
+}
+
+void HomeView::showChannels() {
+ if (!channelsView) {
+ channelsView = new ChannelView();
+ connect(channelsView, SIGNAL(activated(VideoSource*)),
+ MainWindow::instance(),
+ SLOT(showMedia(VideoSource*)));
+ stackedWidget->addWidget(channelsView);
+ }
+ showWidget(channelsView);
+ bar->setCheckedAction(2);
}
-void HomeView::showUser() {
- if (!userView) {
- userView = new UserView(this);
- stackedWidget->addWidget(userView);
+void HomeView::unwatchedCountChanged(int count) {
+ QVariant v;
+ QString s;
+ if (count > 0) {
+ s = QString::number(count);
+ v = s;
}
- showWidget(userView);
+ subscriptionsAction->setProperty("notifyCount", v);
+ bar->update();
+#ifdef APP_MAC
+ mac::dockBadge(s);
+#endif
}
+/* $BEGIN_LICENSE
+
+This file is part of Minitube.
+Copyright 2009, Flavio Tordini <flavio.tordini@gmail.com>
+
+Minitube 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.
+
+Minitube 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 Minitube. If not, see <http://www.gnu.org/licenses/>.
+
+$END_LICENSE */
+
#ifndef HOMEVIEW_H
#define HOMEVIEW_H
class SegmentedControl;
class SearchView;
class StandardFeedsView;
-class UserView;
+class ChannelView;
class HomeView : public QWidget, public View {
SearchView* getSearchView() { return searchView; }
StandardFeedsView* getStandardFeedsView() { return standardFeedsView; }
-public slots:
+private slots:
void showSearch();
void showStandardFeeds();
- void showUser();
+ void showChannels();
+ void unwatchedCountChanged(int count);
private:
void setupBar();
SearchView *searchView;
StandardFeedsView *standardFeedsView;
- UserView* userView;
+ ChannelView* channelsView;
+
+ QAction *subscriptionsAction;
};
--- /dev/null
+/* $BEGIN_LICENSE
+
+This file is part of Minitube.
+Copyright 2009, Flavio Tordini <flavio.tordini@gmail.com>
+
+Minitube 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.
+
+Minitube 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 Minitube. If not, see <http://www.gnu.org/licenses/>.
+
+$END_LICENSE */
+
+#include "jsfunctions.h"
+#include "networkaccess.h"
+#include <QDesktopServices>
+#include "constants.h"
+
+namespace The {
+NetworkAccess* http();
+}
+
+JsFunctions* JsFunctions::instance() {
+ static JsFunctions *i = new JsFunctions();
+ return i;
+}
+
+JsFunctions::JsFunctions(QObject *parent) : QObject(parent), engine(0) {
+ QFile file(jsPath());
+ if (file.exists()) {
+ if (file.open(QIODevice::ReadOnly | QIODevice::Text))
+ parseJs(QString::fromUtf8(file.readAll()));
+ else
+ qWarning() << file.errorString() << file.fileName();
+ QFileInfo info(file);
+ if (info.lastModified().toTime_t() < QDateTime::currentDateTime().toTime_t() - 86400)
+ loadJs();
+ } else {
+ QFile resFile(QLatin1String(":/") + jsFilename());
+ resFile.open(QIODevice::ReadOnly | QIODevice::Text);
+ parseJs(QString::fromUtf8(resFile.readAll()));
+ loadJs();
+ }
+}
+
+void JsFunctions::parseJs(const QString &js) {
+ if (js.isEmpty()) return;
+ if (engine) delete engine;
+ engine = new QScriptEngine();
+ engine->evaluate(js);
+}
+
+const QLatin1String & JsFunctions::jsFilename() {
+ static const QLatin1String filename("functions.js");
+ return filename;
+}
+
+const QString & JsFunctions::jsPath() {
+ static const QString path(
+ QDesktopServices::storageLocation(QDesktopServices::DataLocation)
+ + "/" + jsFilename());
+ return path;
+}
+
+void JsFunctions::loadJs() {
+ QUrl url(QLatin1String(Constants::WEBSITE) + "-ws/" + jsFilename());
+ NetworkReply* reply = The::http()->get(url);
+ connect(reply, SIGNAL(data(QByteArray)), SLOT(gotJs(QByteArray)));
+ connect(reply, SIGNAL(error(QNetworkReply*)), SLOT(errorJs(QNetworkReply*)));
+}
+
+void JsFunctions::gotJs(QByteArray bytes) {
+ parseJs(QString::fromUtf8(bytes));
+ QFile file(jsPath());
+ if (!file.open(QIODevice::WriteOnly))
+ qWarning() << file.errorString() << file.fileName();
+ QDataStream stream(&file);
+ stream.writeRawData(bytes.constData(), bytes.size());
+}
+
+void JsFunctions::errorJs(QNetworkReply *reply) {
+ qWarning() << "Cannot get" << jsFilename() << reply->attribute(QNetworkRequest::HttpStatusCodeAttribute).toInt()
+ << reply->url().toString() << reply->errorString();
+}
+
+QString JsFunctions::evaluateFunction(const QString &function) {
+ if (!engine) return QString();
+ QScriptValue value = engine->evaluate(function);
+ if (value.isUndefined())
+ qWarning() << "Undefined result for" << function;
+ return value.toString();
+}
+
+QString JsFunctions::decryptSignature(const QString &s) {
+ return evaluateFunction("decryptSignature('" + s + "')");
+}
--- /dev/null
+/* $BEGIN_LICENSE
+
+This file is part of Minitube.
+Copyright 2009, Flavio Tordini <flavio.tordini@gmail.com>
+
+Minitube 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.
+
+Minitube 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 Minitube. If not, see <http://www.gnu.org/licenses/>.
+
+$END_LICENSE */
+
+#ifndef JSFUNCTIONS_H
+#define JSFUNCTIONS_H
+
+#include <QtCore>
+#include <QtScript>
+#include <QtNetwork>
+
+class JsFunctions : public QObject {
+
+ Q_OBJECT
+
+public:
+ static JsFunctions* instance();
+ QString decryptSignature(const QString &s);
+
+private slots:
+ void gotJs(QByteArray bytes);
+ void errorJs(QNetworkReply *reply);
+
+private:
+ JsFunctions(QObject *parent = 0);
+ static const QLatin1String &jsFilename();
+ static const QString &jsPath();
+ void loadJs();
+ void parseJs(const QString &js);
+ QString evaluateFunction(const QString &function);
+
+ QScriptEngine *engine;
+};
+
+#endif // JSFUNCTIONS_H
+/* $BEGIN_LICENSE
+
+This file is part of Minitube.
+Copyright 2009, Flavio Tordini <flavio.tordini@gmail.com>
+
+Minitube 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.
+
+Minitube 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 Minitube. If not, see <http://www.gnu.org/licenses/>.
+
+$END_LICENSE */
+
#include "loadingwidget.h"
LoadingWidget::LoadingWidget(QWidget *parent) : QWidget(parent) {
setAutoFillBackground(true);
- QBoxLayout *layout = new QVBoxLayout();
+ QBoxLayout *layout = new QVBoxLayout(this);
titleLabel = new QLabel(this);
titleLabel->setAlignment(Qt::AlignHCenter | Qt::AlignBottom);
titleLabel->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding);
layout->addWidget(titleLabel);
- QFont biggerFont;
- biggerFont.setPointSize(biggerFont.pointSize()*2);
-
descriptionLabel = new QLabel(this);
descriptionLabel->setAlignment(Qt::AlignHCenter | Qt::AlignTop);
descriptionLabel->setPalette(p);
descriptionLabel->setForegroundRole(QPalette::Text);
descriptionLabel->setWordWrap(true);
- descriptionLabel->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding);
+ descriptionLabel->setSizePolicy(QSizePolicy::Ignored, QSizePolicy::Expanding);
layout->addWidget(descriptionLabel);
progressBar = new QProgressBar(this);
layout->addWidget(progressBar);
setMouseTracking(true);
-
- setLayout(layout);
}
void LoadingWidget::setVideo(Video *video) {
QFont titleFont;
+#ifdef APP_MAC
+ titleFont.setFamily("Helvetica");
+#endif
+#ifdef APP_WIN
+ titleFont.setFamily("Segoe UI Light");
+#endif
int smallerDimension = qMin(height(), width());
titleFont.setPixelSize(smallerDimension / 12);
+ titleFont.setHintingPreference(QFont::PreferNoHinting);
QFontMetrics fm(titleFont);
int textHeightInPixels = fm.height();
int spacing = textHeightInPixels / 2;
titleLabel->setVisible(window()->height() > 100);
titleLabel->setFont(titleFont);
- static const int maxVideoLength = 256;
+ static const int maxDescLength = 256;
QString videoDesc = video->description();
- if (videoDesc.length() > maxVideoLength) {
- videoDesc.truncate(maxVideoLength-1);
+ if (videoDesc.length() > maxDescLength) {
+ videoDesc.truncate(maxDescLength-1);
videoDesc.append("...");
}
QFont descFont(titleFont);
descFont.setPixelSize(descFont.pixelSize() / 2);
+ descFont.setHintingPreference(QFont::PreferNoHinting);
descriptionLabel->setFont(descFont);
descriptionLabel->setText(videoDesc);
bool hiddenDesc = height() < 400;
+/* $BEGIN_LICENSE
+
+This file is part of Minitube.
+Copyright 2009, Flavio Tordini <flavio.tordini@gmail.com>
+
+Minitube 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.
+
+Minitube 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 Minitube. If not, see <http://www.gnu.org/licenses/>.
+
+$END_LICENSE */
+
#ifndef LOADINGWIDGET_H
#define LOADINGWIDGET_H
+/* $BEGIN_LICENSE
+
+This file is part of Minitube.
+Copyright 2009, Flavio Tordini <flavio.tordini@gmail.com>
+
+Minitube 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.
+
+Minitube 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 Minitube. If not, see <http://www.gnu.org/licenses/>.
+
+$END_LICENSE */
+
#include <QtGui>
#include <qtsingleapplication.h>
#include "constants.h"
#include "mainwindow.h"
#include "searchparams.h"
#include "utils.h"
-#ifndef Q_WS_X11
+#ifdef APP_EXTRA
#include "extra.h"
#endif
#ifdef Q_WS_MAC
#include "mac_startup.h"
#endif
-#ifdef Q_WS_X11
-QString getThemeName() {
- QString themeName;
-
- QProcess process;
- process.start("dconf",
- QStringList() << "read" << "/org/gnome/desktop/interface/gtk-theme");
- if (process.waitForFinished()) {
- themeName = process.readAllStandardOutput();
- themeName = themeName.trimmed();
- themeName.remove('\'');
- if (!themeName.isEmpty()) return themeName;
- }
-
- QString rcPaths = QString::fromLocal8Bit(qgetenv("GTK2_RC_FILES"));
- if (!rcPaths.isEmpty()) {
- QStringList paths = rcPaths.split(QLatin1String(":"));
- foreach (const QString &rcPath, paths) {
- if (!rcPath.isEmpty()) {
- QFile rcFile(rcPath);
- if (rcFile.exists() && rcFile.open(QIODevice::ReadOnly | QIODevice::Text)) {
- QTextStream in(&rcFile);
- while(!in.atEnd()) {
- QString line = in.readLine();
- if (line.contains(QLatin1String("gtk-theme-name"))) {
- line = line.right(line.length() - line.indexOf(QLatin1Char('=')) - 1);
- line.remove(QLatin1Char('\"'));
- line = line.trimmed();
- themeName = line;
- break;
- }
- }
- }
- }
- if (!themeName.isEmpty())
- break;
- }
- }
-
- // Fall back to gconf
- if (themeName.isEmpty())
- themeName = QGtkStyle::getGConfString(QLatin1String("/desktop/gnome/interface/gtk_theme"));
-
- return themeName;
-}
-#endif
-
int main(int argc, char **argv) {
#ifdef Q_WS_MAC
app.setApplicationName(QLatin1String(Constants::NAME));
app.setOrganizationName(QLatin1String(Constants::ORG_NAME));
app.setOrganizationDomain(QLatin1String(Constants::ORG_DOMAIN));
+#ifndef APP_WIN
app.setWheelScrollLines(1);
+#endif
app.setAttribute(Qt::AA_DontShowIconsInMenus);
-#ifndef Q_WS_X11
+#ifdef APP_EXTRA
Extra::appSetup(&app);
#else
- bool isGtk = app.style()->metaObject()->className() == QLatin1String("QGtkStyle");
- if (isGtk) {
- app.setProperty("gtk", isGtk);
- QString themeName = getThemeName();
- app.setProperty("style", themeName);
- }
QFile cssFile(":/style.css");
cssFile.open(QFile::ReadOnly);
QString styleSheet = QLatin1String(cssFile.readAll());
QTextCodec::setCodecForTr(QTextCodec::codecForName("utf8"));
MainWindow mainWin;
- mainWin.setWindowTitle(Constants::NAME);
-
-#ifndef Q_WS_X11
- Extra::windowSetup(&mainWin);
-#else
- mainWin.setProperty("style", app.property("style"));
-#endif
+ mainWin.show();
-// no window icon on Mac
+ // no window icon on Mac
#ifndef APP_MAC
QIcon appIcon;
if (QDir(dataDir).exists()) {
const int iconSizes [] = { 16, 22, 32, 48, 64, 128, 256, 512 };
for (int i = 0; i < 8; i++) {
QString size = QString::number(iconSizes[i]);
- QString png = dataDir + "/" + size + "x" + size + "/" + Constants::UNIX_NAME + ".png";
+ QString png = dataDir + "/" + size + "x" + size + "/" +
+ Constants::UNIX_NAME + ".png";
appIcon.addFile(png, QSize(iconSizes[i], iconSizes[i]));
}
}
mainWin.setWindowIcon(appIcon);
#endif
- mainWin.connect(&app, SIGNAL(messageReceived(const QString &)), &mainWin, SLOT(messageReceived(const QString &)));
+ mainWin.connect(&app, SIGNAL(messageReceived(const QString &)),
+ &mainWin, SLOT(messageReceived(const QString &)));
app.setActivationWindow(&mainWin, true);
// all string literals are UTF-8
// QTextCodec::setCodecForCStrings(QTextCodec::codecForName("UTF-8"));
- if (app.arguments().size() > 1) {
- QString query = app.arguments().at(1);
- if (query.startsWith(QLatin1String("--"))) {
- mainWin.messageReceived(query);
- return 0;
- } else {
- SearchParams *searchParams = new SearchParams();
- searchParams->setKeywords(query);
- mainWin.showMedia(searchParams);
- }
- }
-
- mainWin.show();
-
// Seed random number generator
qsrand(QDateTime::currentDateTime().toTime_t());
+/* $BEGIN_LICENSE
+
+This file is part of Minitube.
+Copyright 2009, Flavio Tordini <flavio.tordini@gmail.com>
+
+Minitube 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.
+
+Minitube 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 Minitube. If not, see <http://www.gnu.org/licenses/>.
+
+$END_LICENSE */
+
#include "mainwindow.h"
#include "homeview.h"
#include "searchview.h"
#include "searchlineedit.h"
#endif
#include <iostream>
-#ifndef Q_WS_X11
+#ifdef APP_EXTRA
#include "extra.h"
#include "updatedialog.h"
#endif
#include "ytregions.h"
#include "regionsview.h"
#include "standardfeedsview.h"
+#include "channelaggregator.h"
+#include "database.h"
+#include "videoareawidget.h"
+#include "jsfunctions.h"
static MainWindow *singleton = 0;
setCentralWidget(views);
// views
- homeView = new HomeView(this);
+ homeView = new HomeView();
views->addWidget(homeView);
// TODO make this lazy
createToolBars();
createStatusBar();
- initPhonon();
- mediaView->setMediaObject(mediaObject);
-
// remove that useless menu/toolbar context menu
this->setContextMenuPolicy(Qt::NoContextMenu);
- // mediaView init stuff thats needs actions
- mediaView->initialize();
-
// event filter to block ugly toolbar tooltips
qApp->installEventFilter(this);
readSettings();
// fix stacked widget minimum size
- for (int i = 0; i < views->count(); i++) {
- QWidget* view = views->widget(i);
- if (view) view->setSizePolicy(QSizePolicy::Ignored, QSizePolicy::Ignored);
- }
+ for (int i = 0; i < views->count(); i++)
+ views->widget(i)->setSizePolicy(QSizePolicy::Ignored, QSizePolicy::Ignored);
setMinimumWidth(0);
// show the initial view
views->show();
+#ifdef APP_EXTRA
+ Extra::windowSetup(this);
+#endif
+
+ qApp->processEvents();
+ QTimer::singleShot(50, this, SLOT(lazyInit()));
+}
+
+MainWindow::~MainWindow() {
+ delete history;
+}
+
+void MainWindow::lazyInit() {
+ initPhonon();
+ mediaView->initialize();
+ mediaView->setMediaObject(mediaObject);
+ qApp->processEvents();
+
+ // CLI
+ if (qApp->arguments().size() > 1) {
+ QString query = qApp->arguments().at(1);
+ if (query.startsWith(QLatin1String("--"))) {
+ messageReceived(query);
+ qApp->quit();
+ } else {
+ SearchParams *searchParams = new SearchParams();
+ searchParams->setKeywords(query);
+ showMedia(searchParams);
+ }
+ }
+
// Global shortcuts
GlobalShortcuts &shortcuts = GlobalShortcuts::instance();
#ifdef Q_WS_X11
mouseTimer->setSingleShot(true);
connect(mouseTimer, SIGNAL(timeout()), SLOT(hideMouse()));
- QTimer::singleShot(0, this, SLOT(checkForUpdate()));
+ JsFunctions::instance();
-}
+ checkForUpdate();
-MainWindow::~MainWindow() {
- delete history;
+ ChannelAggregator::instance()->start();
}
void MainWindow::changeEvent(QEvent* event) {
tr("P&revious"), this);
skipBackwardAct->setStatusTip(tr("Go back to the previous track"));
skipBackwardAct->setShortcut(QKeySequence(Qt::CTRL + Qt::Key_Left));
-#if QT_VERSION >= 0x040600
- skipBackwardAct->setPriority(QAction::LowPriority);
-#endif
skipBackwardAct->setEnabled(false);
actions->insert("previous", skipBackwardAct);
connect(skipBackwardAct, SIGNAL(triggered()), mediaView, SLOT(skipBackward()));
#endif
fullscreenAct->setShortcuts(fsShortcuts);
fullscreenAct->setShortcutContext(Qt::ApplicationShortcut);
-#if QT_VERSION >= 0x040600
fullscreenAct->setPriority(QAction::LowPriority);
-#endif
actions->insert("fullscreen", fullscreenAct);
connect(fullscreenAct, SIGNAL(triggered()), this, SLOT(fullscreen()));
volumeMuteAct = new QAction(this);
volumeMuteAct->setIcon(Utils::icon("audio-volume-high"));
volumeMuteAct->setStatusTip(tr("Mute volume"));
- volumeMuteAct->setShortcuts(QList<QKeySequence>() << QKeySequence(Qt::CTRL + Qt::Key_E));
+ volumeMuteAct->setShortcut(QKeySequence(Qt::CTRL + Qt::Key_K));
actions->insert("volume-mute", volumeMuteAct);
connect(volumeMuteAct, SIGNAL(triggered()), SLOT(volumeMute()));
addAction(volumeMuteAct);
QAction *definitionAct = new QAction(this);
+#ifdef Q_WS_X11
+ definitionAct->setIcon(Utils::tintedIcon("video-display", QColor(0, 0, 0),
+ QList<QSize>() << QSize(16, 16)));
+#else
definitionAct->setIcon(Utils::icon("video-display"));
+#endif
definitionAct->setShortcuts(QList<QKeySequence>() << QKeySequence(Qt::CTRL + Qt::Key_D));
/*
QMenu *definitionMenu = new QMenu(this);
#endif
action->setIcon(Utils::icon("document-save"));
action->setEnabled(false);
-#if QT_VERSION >= 0x040600
action->setPriority(QAction::LowPriority);
-#endif
connect(action, SIGNAL(triggered()), mediaView, SLOT(downloadVideo()));
actions->insert("download", action);
connect(action, SIGNAL(triggered()), mediaView, SLOT(snapshot()));
*/
+ action = new QAction(tr("&Subscribe to Channel"), this);
+ action->setProperty("originalText", action->text());
+ action->setShortcut(QKeySequence(Qt::CTRL + Qt::SHIFT + Qt::Key_S));
+ action->setEnabled(false);
+ connect(action, SIGNAL(triggered()), mediaView, SLOT(toggleSubscription()));
+ actions->insert("subscribe-channel", action);
+ mediaView->updateSubscriptionAction(0, false);
+
QString shareTip = tr("Share the current video using %1");
action = new QAction("&Twitter", this);
action->setStatusTip(shareTip.arg("Twitter"));
+ action->setEnabled(false);
actions->insert("twitter", action);
connect(action, SIGNAL(triggered()), mediaView, SLOT(shareViaTwitter()));
action = new QAction("&Facebook", this);
action->setStatusTip(shareTip.arg("Facebook"));
+ action->setEnabled(false);
actions->insert("facebook", action);
connect(action, SIGNAL(triggered()), mediaView, SLOT(shareViaFacebook()));
action = new QAction("&Buffer", this);
action->setStatusTip(shareTip.arg("Buffer"));
+ action->setEnabled(false);
actions->insert("buffer", action);
connect(action, SIGNAL(triggered()), mediaView, SLOT(shareViaBuffer()));
action = new QAction(tr("&Email"), this);
action->setStatusTip(shareTip.arg(tr("Email")));
+ action->setEnabled(false);
actions->insert("email", action);
connect(action, SIGNAL(triggered()), mediaView, SLOT(shareViaEmail()));
action->setShortcut(QKeySequence(Qt::CTRL + Qt::Key_R));
action->setStatusTip(tr("Watch videos related to the current one"));
action->setEnabled(false);
-#if QT_VERSION >= 0x040600
action->setPriority(QAction::LowPriority);
-#endif
connect(action, SIGNAL(triggered()), mediaView, SLOT(relatedVideos()));
actions->insert("related-videos", action);
// common action properties
foreach (QAction *action, actions->values()) {
-
// add actions to the MainWindow so that they work
// when the menu is hidden
addAction(action);
-
- // never autorepeat.
- // unexperienced users tend to keep keys pressed for a "long" time
- action->setAutoRepeat(false);
-
- // set to something more meaningful then the toolbar text
- if (!action->statusTip().isEmpty())
- action->setToolTip(action->statusTip());
-
- // show keyboard shortcuts in the status bar
- if (!action->shortcut().isEmpty())
- action->setStatusTip(action->statusTip() + " (" + action->shortcut().toString(QKeySequence::NativeText) + ")");
+ Utils::setupAction(action);
}
-
}
void MainWindow::createMenus() {
videoMenu->addSeparator();
videoMenu->addAction(webPageAct);
videoMenu->addSeparator();
+ videoMenu->addAction(The::globalActions()->value("subscribe-channel"));
#ifndef APP_NO_DOWNLOADS
+ videoMenu->addSeparator();
videoMenu->addAction(The::globalActions()->value("download"));
// videoMenu->addAction(copyLinkAct);
#endif
setUnifiedTitleAndToolBarOnMac(true);
mainToolBar = new QToolBar(this);
- mainToolBar->setToolButtonStyle(Qt::ToolButtonFollowStyle);
+ mainToolBar->setToolButtonStyle(Qt::ToolButtonIconOnly);
mainToolBar->setFloatable(false);
mainToolBar->setMovable(false);
}
void MainWindow::showActionInStatusBar(QAction* action, bool show) {
+#ifdef APP_EXTRA
+ Extra::fadeInWidget(statusBar(), statusBar());
+#endif
if (show) {
statusToolBar->insertAction(statusToolBar->actions().first(), action);
} else {
setGeometry(100, 100, 1000, 500);
}
setDefinitionMode(settings.value("definition", VideoDefinition::getDefinitionNames().first()).toString());
- audioOutput->setVolume(settings.value("volume", 1).toDouble());
- // audioOutput->setMuted(settings.value("volumeMute").toBool());
The::globalActions()->value("manualplay")->setChecked(settings.value("manualplay", false).toBool());
}
View* newView = dynamic_cast<View *> (widget);
if (newView) {
widget->setEnabled(true);
- newView->appear();
QHash<QString,QVariant> metadata = newView->metadata();
QString title = metadata.value("title").toString();
if (title.isEmpty()) title = Constants::NAME;
setWindowTitle(title);
QString desc = metadata.value("description").toString();
if (!desc.isEmpty()) showMessage(desc);
+ newView->appear();
+
+ // dynamic view actions
+ foreach (QAction* action, viewActions)
+ showActionInStatusBar(action, false);
+ viewActions = newView->getViewActions();
+ foreach (QAction* action, viewActions)
+ showActionInStatusBar(action, true);
+
}
const bool isMediaView = widget == mediaView;
stopAct->setEnabled(isMediaView);
compactViewAct->setEnabled(isMediaView);
- webPageAct->setEnabled(isMediaView);
- copyPageAct->setEnabled(isMediaView);
- copyLinkAct->setEnabled(isMediaView);
- findVideoPartsAct->setEnabled(isMediaView);
toolbarSearch->setEnabled(widget == homeView || isMediaView || widget == downloadView);
- if (widget == homeView) {
- skipAct->setEnabled(false);
- The::globalActions()->value("previous")->setEnabled(false);
- The::globalActions()->value("download")->setEnabled(false);
- The::globalActions()->value("stopafterthis")->setEnabled(false);
- The::globalActions()->value("related-videos")->setEnabled(false);
- The::globalActions()->value("refine-search")->setEnabled(false);
- }
-
- The::globalActions()->value("twitter")->setEnabled(isMediaView);
- The::globalActions()->value("facebook")->setEnabled(isMediaView);
- The::globalActions()->value("buffer")->setEnabled(isMediaView);
- The::globalActions()->value("email")->setEnabled(isMediaView);
-
aboutAct->setEnabled(widget != aboutView);
The::globalActions()->value("downloads")->setChecked(widget == downloadView);
- setUpdatesEnabled(true);
-
QWidget *oldWidget = views->currentWidget();
if (oldWidget)
oldWidget->setSizePolicy(QSizePolicy::Ignored, QSizePolicy::Ignored);
views->setCurrentWidget(widget);
widget->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding);
-#ifndef Q_WS_X11
- if (transition && oldWidget != mediaView)
+ setUpdatesEnabled(true);
+
+#ifdef APP_EXTRA
+ if (transition && (oldWidget != mediaView ||
+ !mediaView->getVideoArea()->isVideoShown()))
Extra::fadeInWidget(oldWidget, widget);
#endif
if (!m_fullscreen && !compactViewAct->isChecked()) {
writeSettings();
}
+ mediaView->stop();
Temporary::deleteAll();
+ ChannelAggregator::instance()->stop();
+ ChannelAggregator::instance()->cleanup();
+ Database::shutdown();
qApp->quit();
}
}
void MainWindow::showMedia(SearchParams *searchParams) {
- mediaView->search(searchParams);
showWidget(mediaView);
+ mediaView->search(searchParams);
}
void MainWindow::showMedia(VideoSource *videoSource) {
- mediaView->setVideoSource(videoSource);
showWidget(mediaView);
+ mediaView->setVideoSource(videoSource);
}
void MainWindow::stateChanged(Phonon::State newState, Phonon::State /* oldState */) {
fullscreenAct->setShortcuts(QList<QKeySequence>(fsShortcuts)
<< QKeySequence(Qt::Key_Escape));
fullscreenAct->setText(tr("Leave &Full Screen"));
+ fullscreenAct->setIcon(Utils::icon("view-restore"));
} else {
fullscreenAct->setShortcuts(fsShortcuts);
fullscreenAct->setText(fsText);
+ fullscreenAct->setIcon(Utils::icon("view-fullscreen"));
}
// No compact view action when in full screen
connect(audioOutput, SIGNAL(mutedChanged(bool)), this, SLOT(volumeMutedChanged(bool)));
volumeSlider->setAudioOutput(audioOutput);
Phonon::createPath(mediaObject, audioOutput);
+ QSettings settings;
+ audioOutput->setVolume(settings.value("volume", 1).toDouble());
+ // audioOutput->setMuted(settings.value("volumeMute").toBool());
}
void MainWindow::tick(qint64 time) {
+/* $BEGIN_LICENSE
+
+This file is part of Minitube.
+Copyright 2009, Flavio Tordini <flavio.tordini@gmail.com>
+
+Minitube 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.
+
+Minitube 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 Minitube. If not, see <http://www.gnu.org/licenses/>.
+
+$END_LICENSE */
+
#ifndef MAINWINDOW_H
#define MAINWINDOW_H
MediaView* getMediaView() { return mediaView; }
QToolButton* getRegionButton() { return regionButton; }
QAction* getRegionAction() { return regionAction; }
+ void showActionInStatusBar(QAction*, bool show);
public slots:
void showHome(bool transition = true);
void resizeEvent(QResizeEvent *);
private slots:
+ void lazyInit();
void checkForUpdate();
void gotNewVersion(QString version);
void visitSite();
void toggleDownloads(bool show);
void floatOnTop(bool);
- void showActionInStatusBar(QAction*, bool show);
void showStopAfterThisInStatusBar(bool show);
void hideMouse();
// view mechanism
QStackedWidget *views;
QStack<QWidget*> *history;
+ QList<QAction*> viewActions;
// view widgets
HomeView *homeView;
+/* $BEGIN_LICENSE
+
+This file is part of Minitube.
+Copyright 2009, Flavio Tordini <flavio.tordini@gmail.com>
+
+Minitube 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.
+
+Minitube 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 Minitube. If not, see <http://www.gnu.org/licenses/>.
+
+$END_LICENSE */
+
#include "mediaview.h"
#include "playlistmodel.h"
#include "playlistview.h"
#include "refinesearchwidget.h"
#include "sidebarwidget.h"
#include "sidebarheader.h"
-#ifdef APP_MAC
-#include "macfullscreen.h"
-#include "macutils.h"
-#endif
#ifdef APP_ACTIVATION
#include "activation.h"
#endif
+#ifdef APP_EXTRA
+#include "extra.h"
+#endif
#include "videosource.h"
#include "ytsearch.h"
#include "searchparams.h"
#include "ytsinglevideosource.h"
+#include "channelaggregator.h"
+#include "utils.h"
+#include "ytuser.h"
namespace The {
NetworkAccess* http();
QHash<QString, QAction*>* globalActions();
-QMap<QString, QMenu*>* globalMenus();
+QHash<QString, QMenu*>* globalMenus();
QNetworkAccessManager* networkAccessManager();
}
return i;
}
-MediaView::MediaView(QWidget *parent) : QWidget(parent) {
- reallyStopped = false;
- downloadItem = 0;
+MediaView::MediaView(QWidget *parent) : QWidget(parent),
+ stopped(false),
+ downloadItem(0) { }
+void MediaView::initialize() {
QBoxLayout *layout = new QVBoxLayout(this);
layout->setMargin(0);
splitter = new MiniSplitter();
- splitter->setChildrenCollapsible(false);
playlistView = new PlaylistView(this);
// respond to the user doubleclicking a playlist item
splitter->addWidget(sidebar);
videoAreaWidget = new VideoAreaWidget(this);
- videoAreaWidget->setMinimumSize(320,240);
+ // videoAreaWidget->setMinimumSize(320,240);
videoWidget = new Phonon::VideoWidget(this);
videoAreaWidget->setVideoWidget(videoWidget);
videoAreaWidget->setListModel(playlistModel);
splitter->addWidget(videoAreaWidget);
- layout->addWidget(splitter);
-
- splitter->setStretchFactor(0, 1);
- splitter->setStretchFactor(1, 5);
+ splitter->setStretchFactor(0, 0);
+ splitter->setStretchFactor(1, 8);
// restore splitter state
QSettings settings;
splitter->restoreState(settings.value("splitter").toByteArray());
+ splitter->setChildrenCollapsible(false);
+
+ layout->addWidget(splitter);
errorTimer = new QTimer(this);
errorTimer->setSingleShot(true);
connect(demoTimer, SIGNAL(timeout()), SLOT(demoMessage()));
#endif
-}
-
-void MediaView::initialize() {
connect(videoAreaWidget, SIGNAL(doubleClicked()),
The::globalActions()->value("fullscreen"), SLOT(trigger()));
QAction* refineSearchAction = The::globalActions()->value("refine-search");
connect(refineSearchAction, SIGNAL(toggled(bool)),
sidebar, SLOT(toggleRefineSearch(bool)));
+
+ currentVideoActions
+ << The::globalActions()->value("webpage")
+ << The::globalActions()->value("pagelink")
+ << The::globalActions()->value("videolink")
+ << The::globalActions()->value("findVideoParts")
+ << The::globalActions()->value("skip")
+ << The::globalActions()->value("previous")
+ << The::globalActions()->value("download")
+ << The::globalActions()->value("stopafterthis")
+ << The::globalActions()->value("related-videos")
+ << The::globalActions()->value("refine-search")
+ << The::globalActions()->value("twitter")
+ << The::globalActions()->value("facebook")
+ << The::globalActions()->value("buffer")
+ << The::globalActions()->value("email");
}
void MediaView::setMediaObject(Phonon::MediaObject *mediaObject) {
connect(mediaObject, SIGNAL(finished()), SLOT(playbackFinished()));
connect(mediaObject, SIGNAL(stateChanged(Phonon::State, Phonon::State)),
SLOT(stateChanged(Phonon::State, Phonon::State)));
- connect(mediaObject, SIGNAL(currentSourceChanged(Phonon::MediaSource)),
- SLOT(currentSourceChanged(Phonon::MediaSource)));
+ /*
+ const char* s = Constants::NAME;
+ const int l = strlen(s);
+ int t = The::globalActions()->count();
+ for (int i = 0; i < l; i++) {
+ t += s[i];
+ qDebug() << t << The::globalActions()->count();
+ }
+ qDebug() << t << The::globalActions()->count();
+ if (t != s[0]) return;
+ */
connect(mediaObject, SIGNAL(aboutToFinish()), SLOT(aboutToFinish()));
}
}
void MediaView::setVideoSource(VideoSource *videoSource, bool addToHistory) {
- reallyStopped = false;
+ stopped = false;
#ifdef APP_ACTIVATION
demoTimer->stop();
#endif
errorTimer->stop();
+ // qDebug() << "Adding VideoSource" << videoSource->getName() << videoSource;
+
if (addToHistory) {
int currentIndex = getHistoryIndex();
if (currentIndex >= 0 && currentIndex < history.size() - 1) {
while (history.size() > currentIndex + 1) {
VideoSource *vs = history.takeLast();
- if (!vs->parent()) delete vs;
+ if (!vs->parent()) {
+ qDebug() << "Deleting VideoSource" << vs->getName() << vs;
+ delete vs;
+ }
}
}
history.append(videoSource);
SearchParams *searchParams = getSearchParams();
bool isChannel = searchParams && !searchParams->author().isEmpty();
playlistView->setClickableAuthors(!isChannel);
-
- The::globalActions()->value("related-videos")->setEnabled(true);
}
void MediaView::searchAgain() {
void MediaView::appear() {
playlistView->setFocus();
+ Video *currentVideo = playlistModel->activeVideo();
+ if (currentVideo) {
+ MainWindow::instance()->setWindowTitle(
+ currentVideo->title() + " - " + Constants::NAME);
+ MainWindow::instance()->showMessage(currentVideo->description());
+ }
}
void MediaView::disappear() {
}
void MediaView::stop() {
+ stopped = true;
+
+ while (!history.isEmpty()) {
+ VideoSource *videoSource = history.takeFirst();
+ if (!videoSource->parent()) delete videoSource;
+ }
+
playlistModel->abortSearch();
- reallyStopped = true;
- mediaObject->stop();
videoAreaWidget->clear();
+ videoAreaWidget->update();
errorTimer->stop();
playlistView->selectionModel()->clearSelection();
if (downloadItem) {
downloadItem = 0;
}
The::globalActions()->value("refine-search")->setChecked(false);
+ updateSubscriptionAction(0, false);
+#ifdef APP_ACTIVATION
+ demoTimer->stop();
+#endif
- while (!history.isEmpty()) {
- VideoSource *videoSource = history.takeFirst();
- if (!videoSource->parent()) delete videoSource;
- }
+ foreach (QAction *action, currentVideoActions)
+ action->setEnabled(false);
+
+ mediaObject->stop();
+ currentVideoId.clear();
}
-Video* MediaView::getCurrentVideo() {
- Video *currentVideo = 0;
- if (downloadItem)
- currentVideo = downloadItem->getVideo();
- return currentVideo;
+const QString & MediaView::getCurrentVideoId() {
+ return currentVideoId;
}
void MediaView::activeRowChanged(int row) {
- if (reallyStopped) return;
-
- Video *video = playlistModel->videoAt(row);
- if (!video) return;
+ if (stopped) return;
errorTimer->stop();
- videoAreaWidget->showLoading(video);
-
mediaObject->stop();
if (downloadItem) {
downloadItem->stop();
downloadItem = 0;
}
+ Video *video = playlistModel->videoAt(row);
+ if (!video) return;
+
+ videoAreaWidget->showLoading(video);
+
connect(video, SIGNAL(gotStreamUrl(QUrl)),
SLOT(gotStreamUrl(QUrl)), Qt::UniqueConnection);
connect(video, SIGNAL(errorStreamUrl(QString)),
SLOT(handleError(QString)), Qt::UniqueConnection);
-
video->loadStreamUrl();
- // video title in the statusbar
- MainWindow::instance()->showMessage(video->title());
+ // video title in titlebar
+ MainWindow::instance()->setWindowTitle(video->title() + " - " + Constants::NAME);
+ MainWindow::instance()->showMessage(video->description());
// ensure active item is visible
if (row != -1) {
// enable/disable actions
The::globalActions()->value("download")->setEnabled(
DownloadManager::instance()->itemForVideo(video) == 0);
- The::globalActions()->value("skip")->setEnabled(true);
+ // The::globalActions()->value("skip")->setEnabled(true);
The::globalActions()->value("previous")->setEnabled(row > 0);
The::globalActions()->value("stopafterthis")->setEnabled(true);
The::globalActions()->value("related-videos")->setEnabled(true);
+ updateSubscriptionAction(video, YTUser::isSubscribed(video->userId()));
+
+ foreach (QAction *action, currentVideoActions)
+ action->setEnabled(true);
// see you in gotStreamUrl...
}
void MediaView::gotStreamUrl(QUrl streamUrl) {
- if (reallyStopped) return;
+ if (stopped) return;
Video *video = static_cast<Video *>(sender());
if (!video) {
}
video->disconnect(this);
- QString tempFile = Temporary::filename();
+ currentVideoId = video->id();
+#ifdef Q_WS_X11_NO
+ mediaObject->setCurrentSource(streamUrl);
+ mediaObject->play();
+#else
+ QString tempFile = Temporary::filename();
Video *videoCopy = video->clone();
if (downloadItem) {
downloadItem->stop();
connect(downloadItem, SIGNAL(error(QString)),
SLOT(handleError(QString)), Qt::UniqueConnection);
downloadItem->start();
+#endif
+
+ // ensure we always have 10 videos ahead
+ playlistModel->searchNeeded();
+
+ // ensure active item is visible
+ int row = playlistModel->activeRow();
+ if (row != -1) {
+ QModelIndex index = playlistModel->index(row, 0, QModelIndex());
+ playlistView->scrollTo(index, QAbstractItemView::EnsureVisible);
+ }
+
+#ifdef APP_ACTIVATION
+ if (!Activation::instance().isActivated())
+ demoTimer->start(180000);
+#endif
-#ifdef Q_WS_MAC
- if (mac::canNotify())
- mac::notify(video->title(), video->author(), video->formattedDuration());
+#ifdef APP_EXTRA
+ Extra::notify(video->title(), video->author(), video->formattedDuration());
#endif
+
+ ChannelAggregator::instance()->videoWatched(video);
}
/*
);
}
-
*/
void MediaView::downloadStatusChanged() {
}
void MediaView::startPlaying() {
- if (reallyStopped) return;
+ if (stopped) return;
if (!downloadItem) {
skip();
return;
// go!
QString source = downloadItem->currentFilename();
- qDebug() << "Playing" << source;
+ // qDebug() << "Playing" << source;
mediaObject->setCurrentSource(source);
mediaObject->play();
#ifdef Q_WS_X11
MainWindow::instance()->getSeekSlider()->setEnabled(false);
#endif
- // ensure we always have 10 videos ahead
- playlistModel->searchNeeded();
-
- // ensure active item is visible
- int row = playlistModel->activeRow();
- if (row != -1) {
- QModelIndex index = playlistModel->index(row, 0, QModelIndex());
- playlistView->scrollTo(index, QAbstractItemView::EnsureVisible);
- }
-
-#ifdef APP_ACTIVATION
- if (!Activation::instance().isActivated())
- demoTimer->start(180000);
-#endif
-
}
void MediaView::itemActivated(const QModelIndex &index) {
}
}
-void MediaView::currentSourceChanged(const Phonon::MediaSource /* source */ ) {
-
-}
-
void MediaView::skipVideo() {
// skippedVideo is useful for DELAYED skip operations
// in order to be sure that we're skipping the video we wanted
void MediaView::aboutToFinish() {
qint64 currentTime = mediaObject->currentTime();
- qDebug() << __PRETTY_FUNCTION__ << currentTime;
- if (currentTime + 10000 < mediaObject->totalTime()) {
+ qint64 totalTime = mediaObject->totalTime();
+ qDebug() << __PRETTY_FUNCTION__ << currentTime << totalTime;
+ if (totalTime < 1 || currentTime + 10000 < totalTime) {
// mediaObject->seek(mediaObject->currentTime());
// QTimer::singleShot(500, this, SLOT(playbackResume()));
mediaObject->seek(currentTime);
}
void MediaView::playbackFinished() {
+ if (stopped) return;
const int totalTime = mediaObject->totalTime();
const int currentTime = mediaObject->currentTime();
qDebug() << __PRETTY_FUNCTION__ << mediaObject->currentTime() << totalTime;
// add 10 secs for imprecise Phonon backends (VLC, Xine)
- if (currentTime > 0 && currentTime + 10000 < totalTime) {
+ if (totalTime < 1 || (currentTime > 0 && currentTime + 10000 < totalTime)) {
// mediaObject->seek(currentTime);
QTimer::singleShot(500, this, SLOT(playbackResume()));
} else {
}
void MediaView::playbackResume() {
+ if (stopped) return;
qDebug() << __PRETTY_FUNCTION__ << mediaObject->currentTime();
mediaObject->seek(mediaObject->currentTime());
mediaObject->play();
}
}
-void MediaView::selectionChanged(const QItemSelection & /*selected*/, const QItemSelection & /*deselected*/) {
+void MediaView::selectionChanged(const QItemSelection & /*selected*/,
+ const QItemSelection & /*deselected*/) {
const bool gotSelection = playlistView->selectionModel()->hasSelection();
The::globalActions()->value("remove")->setEnabled(gotSelection);
The::globalActions()->value("moveUp")->setEnabled(gotSelection);
// set current index after row moves to something more intuitive
int row = indexes.first().row();
- playlistView->selectionModel()->setCurrentIndex(playlistModel->index(row>1?row:1), QItemSelectionModel::NoUpdate);
+ playlistView->selectionModel()->setCurrentIndex(playlistModel->index(row>1?row:1),
+ QItemSelectionModel::NoUpdate);
}
void MediaView::moveDownSelected() {
qStableSort(indexes.begin(), indexes.end(), qGreater<QModelIndex>());
playlistModel->move(indexes, false);
- // set current index after row moves to something more intuitive (respect 1 static item on bottom)
+ // set current index after row moves to something more intuitive
+ // (respect 1 static item on bottom)
int row = indexes.first().row()+1, max = playlistModel->rowCount() - 2;
- playlistView->selectionModel()->setCurrentIndex(playlistModel->index(row>max?max:row), QItemSelectionModel::NoUpdate);
+ playlistView->selectionModel()->setCurrentIndex(
+ playlistModel->index(row>max?max:row), QItemSelectionModel::NoUpdate);
}
void MediaView::setPlaylistVisible(bool visible) {
MainWindow::instance()->showMessage(message);
}
+/*
void MediaView::snapshot() {
QImage image = videoWidget->snapshot();
qDebug() << image.size();
// qDebug() << pixmap.size();
videoAreaWidget->showSnapshotPreview(pixmap);
}
+*/
void MediaView::fullscreen() {
videoAreaWidget->setParent(0);
static QString counterNumber = "([1-9]|1[0-5])";
// query.remove(QRegExp(counterSeparators + optionalSpace + counterNumber));
- query.remove(QRegExp(counterNumber + optionalSpace + counterSeparators + optionalSpace + counterNumber));
+ query.remove(QRegExp(counterNumber + optionalSpace +
+ counterSeparators + optionalSpace + counterNumber));
query.remove(wordRE("pr?t\\.?" + optionalSpace + counterNumber));
query.remove(wordRE("ep\\.?" + optionalSpace + counterNumber));
query.remove(wordRE("part" + optionalSpace + counterNumber));
query.remove(wordRE("episode" + optionalSpace + counterNumber));
query.remove(wordRE(tr("part", "This is for video parts, as in 'Cool video - part 1'") +
optionalSpace + counterNumber));
- query.remove(wordRE(tr("episode", "This is for video parts, as in 'Cool series - episode 1'") +
+ query.remove(wordRE(tr("episode",
+ "This is for video parts, as in 'Cool series - episode 1'") +
optionalSpace + counterNumber));
query.remove(QRegExp("[\\(\\)\\[\\]]"));
#define NUMBERS "one|two|three|four|five|six|seven|eight|nine|ten"
- QRegExp englishNumberRE = QRegExp(QLatin1String(".*(") + NUMBERS + ").*", Qt::CaseInsensitive);
+ QRegExp englishNumberRE = QRegExp(QLatin1String(".*(") + NUMBERS + ").*",
+ Qt::CaseInsensitive);
// bool numberAsWords = englishNumberRE.exactMatch(query);
query.remove(englishNumberRE);
- QRegExp localizedNumberRE = QRegExp(QLatin1String(".*(") + tr(NUMBERS) + ").*", Qt::CaseInsensitive);
+ QRegExp localizedNumberRE = QRegExp(QLatin1String(".*(") + tr(NUMBERS) + ").*",
+ Qt::CaseInsensitive);
// if (!numberAsWords) numberAsWords = localizedNumberRE.exactMatch(query);
query.remove(localizedNumberRE);
Video* video = playlistModel->videoAt(index.row());
if (!video) return;
- QString channel = video->authorUri();
+ QString channel = video->userId();
if (channel.isEmpty()) channel = video->author();
if (channel.isEmpty()) return;
// go!
search(searchParams);
}
+
+void MediaView::updateSubscriptionAction(Video *video, bool subscribed) {
+ QAction *subscribeAction = The::globalActions()->value("subscribe-channel");
+
+ QString subscribeTip;
+ QString subscribeText;
+ if (!video) {
+ subscribeText = subscribeAction->property("originalText").toString();
+ subscribeAction->setEnabled(false);
+ } else if (subscribed) {
+ subscribeText = tr("Unsubscribe from %1").arg(video->author());
+ subscribeTip = subscribeText;
+ subscribeAction->setEnabled(true);
+ } else {
+ subscribeText = tr("Subscribe to %1").arg(video->author());
+ subscribeTip = subscribeText;
+ subscribeAction->setEnabled(true);
+ }
+ subscribeAction->setText(subscribeText);
+ subscribeAction->setStatusTip(subscribeTip);
+
+ if (subscribed) {
+#ifdef Q_WS_X11
+ static QIcon tintedIcon;
+ if (tintedIcon.isNull()) {
+ QList<QSize> sizes;
+ sizes << QSize(16, 16);
+ tintedIcon = Utils::tintedIcon("bookmark-new", QColor(254, 240, 0), sizes);
+ }
+ subscribeAction->setIcon(tintedIcon);
+#else
+ subscribeAction->setIcon(Utils::icon("bookmark-remove"));
+#endif
+ } else {
+ subscribeAction->setIcon(Utils::icon("bookmark-new"));
+ }
+
+ Utils::setupAction(subscribeAction);
+}
+
+void MediaView::toggleSubscription() {
+ Video *video = playlistModel->activeVideo();
+ if (!video) return;
+ QString userId = video->userId();
+ if (userId.isEmpty()) return;
+ bool subscribed = YTUser::isSubscribed(userId);
+ if (subscribed) YTUser::unsubscribe(userId);
+ else YTUser::subscribe(userId);
+ updateSubscriptionAction(video, !subscribed);
+}
+/* $BEGIN_LICENSE
+
+This file is part of Minitube.
+Copyright 2009, Flavio Tordini <flavio.tordini@gmail.com>
+
+Minitube 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.
+
+Minitube 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 Minitube. If not, see <http://www.gnu.org/licenses/>.
+
+$END_LICENSE */
+
#ifndef __MEDIAVIEW_H__
#define __MEDIAVIEW_H__
const QList<VideoSource*> & getHistory() { return history; }
int getHistoryIndex();
PlaylistModel* getPlaylistModel() { return playlistModel; }
- Video* getCurrentVideo();
+ const QString &getCurrentVideoId();
+ void updateSubscriptionAction(Video *video, bool subscribed);
+ VideoAreaWidget* getVideoArea() { return videoAreaWidget; }
public slots:
void search(SearchParams *searchParams);
void setPlaylistVisible(bool visible=true);
void saveSplitterState();
void downloadVideo();
- void snapshot();
+ // void snapshot();
void fullscreen();
void findVideoParts();
void relatedVideos();
void goBack();
bool canGoForward();
void goForward();
+ void toggleSubscription();
private slots:
// list/model
void handleError(QString message);
// phonon
void stateChanged(Phonon::State newState, Phonon::State oldState);
- void currentSourceChanged(const Phonon::MediaSource source);
void aboutToFinish();
#ifdef APP_ACTIVATION
void demoMessage();
private:
MediaView(QWidget *parent = 0);
SearchParams* getSearchParams();
+
static QRegExp wordRE(QString s);
QSplitter *splitter;
Phonon::MediaObject *mediaObject;
Phonon::VideoWidget *videoWidget;
- bool reallyStopped;
+ bool stopped;
QTimer *errorTimer;
Video *skippedVideo;
+ QString currentVideoId;
#ifdef APP_ACTIVATION
QTimer *demoTimer;
DownloadItem *downloadItem;
QList<VideoSource*> history;
+ QList<QAction*> currentVideoActions;
};
#endif // __MEDIAVIEW_H__
+/* $BEGIN_LICENSE
+
+This file is part of Minitube.
+Copyright 2009, Flavio Tordini <flavio.tordini@gmail.com>
+
+Minitube 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.
+
+Minitube 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 Minitube. If not, see <http://www.gnu.org/licenses/>.
+
+$END_LICENSE */
+
#include "networkaccess.h"
#include "constants.h"
#include <QtGui>
+ " (" + Constants::WEBSITE + ")";
*/
-const QString USER_AGENT = "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_8_2) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.95 Safari/537.11";
+const QString USER_AGENT = "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_8_2) AppleWebKit/537.31 (KHTML, like Gecko) Chrome/26.0.1410.65 Safari/537.31";
NetworkReply::NetworkReply(QNetworkReply *networkReply) :
QObject(networkReply),
setupReply();
readTimeoutTimer = new QTimer(this);
- readTimeoutTimer->setInterval(10000);
+ readTimeoutTimer->setInterval(25000);
readTimeoutTimer->setSingleShot(true);
connect(readTimeoutTimer, SIGNAL(timeout()), SLOT(readTimeout()), Qt::UniqueConnection);
readTimeoutTimer->start();
}
void NetworkReply::requestError(QNetworkReply::NetworkError code) {
- qDebug() << networkReply->attribute(QNetworkRequest::HttpStatusCodeAttribute).toInt()
+ qWarning() << networkReply->attribute(QNetworkRequest::HttpStatusCodeAttribute).toInt()
<< networkReply->errorString() << code;
emit error(networkReply);
}
+/* $BEGIN_LICENSE
+
+This file is part of Minitube.
+Copyright 2009, Flavio Tordini <flavio.tordini@gmail.com>
+
+Minitube 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.
+
+Minitube 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 Minitube. If not, see <http://www.gnu.org/licenses/>.
+
+$END_LICENSE */
+
#ifndef NETWORKACCESS_H
#define NETWORKACCESS_H
--- /dev/null
+/* $BEGIN_LICENSE
+
+This file is part of Minitube.
+Copyright 2009, Flavio Tordini <flavio.tordini@gmail.com>
+
+Minitube 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.
+
+Minitube 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 Minitube. If not, see <http://www.gnu.org/licenses/>.
+
+$END_LICENSE */
+
+#include "painterutils.h"
+#include "fontutils.h"
+
+PainterUtils::PainterUtils() { }
+
+void PainterUtils::centeredMessage(QString message, QWidget* widget) {
+ QPainter painter(widget);
+ painter.setFont(FontUtils::bigBold());
+ QSize textSize(QFontMetrics(painter.font()).size(Qt::TextSingleLine, message));
+ QPoint topLeft(
+ (widget->width()-textSize.width())/2,
+ ((widget->height()-textSize.height())/2)
+ );
+ QRect rect(topLeft, textSize);
+
+ /*
+ rect.adjust(0, -1, 0, 0);
+ painter.setPen(QColor(0, 0, 0, 128));
+ painter.drawText(rect, Qt::AlignCenter, message);
+ rect.adjust(0, 1, 0, 0);
+ */
+
+ QPen textPen;
+ textPen.setBrush(widget->palette().mid());
+ painter.setPen(textPen);
+ painter.drawText(rect, Qt::AlignCenter, message);
+}
+
+void PainterUtils::topShadow(QWidget *widget) {
+ static QLinearGradient shadow;
+ static const int shadowHeight = 10;
+ if (shadow.stops().count() == 2) {
+ shadow.setFinalStop(0, shadowHeight);
+ const qreal initialOpacity = 96;
+ for (qreal i = 0; i <= 1; i += 1.0/shadowHeight) {
+ qreal opacity = qPow(initialOpacity, (1.0 - i)) - 1;
+ shadow.setColorAt(i, QColor(0x00, 0x00, 0x00, opacity));
+ }
+ }
+ QRect rect = widget->rect();
+ QPainter p(widget);
+ p.fillRect(rect.x(), rect.y(), rect.width(), shadowHeight, QBrush(shadow));
+}
+
+void PainterUtils::paintBadge(QPainter *painter, const QString &text, bool center) {
+ static const QPixmap badge1 = QPixmap(":/images/badge.png");
+ static const QPixmap badge3 = QPixmap(":/images/badge3.png");
+ static const QPixmap badge4 = QPixmap(":/images/badge4.png");
+ static const int size = badge1.height();
+
+ const int textSize = text.size();
+
+ QPixmap badge;
+ if (textSize < 3) badge = badge1;
+ else if (textSize == 3) badge = badge3;
+ else badge = badge4;
+
+ int x = 0;
+ if (center) x -= badge.width() / 2;
+
+ QRect rect(x, 0, badge.width(), size);
+ painter->drawPixmap(rect, badge);
+
+ QFont f = painter->font();
+ f.setPixelSize(11);
+ f.setHintingPreference(QFont::PreferNoHinting);
+#ifdef APP_MAC
+ f.setFamily("Helvetica");
+#endif
+#ifdef APP_WIN
+ rect.adjust(0, -2, 0, 0);
+#endif
+#ifdef Q_WS_X11
+ rect.adjust(0, -1, 0, 0);
+#endif
+ painter->save();
+ painter->setFont(f);
+
+ rect.adjust(0, 1, 0, 0);
+ painter->setPen(QColor(0, 0, 0, 64));
+ painter->drawText(rect, Qt::AlignCenter, text);
+
+ rect.adjust(0, -1, 0, 0);
+ painter->setPen(Qt::white);
+ painter->drawText(rect, Qt::AlignCenter, text);
+
+ painter->restore();
+}
--- /dev/null
+/* $BEGIN_LICENSE
+
+This file is part of Minitube.
+Copyright 2009, Flavio Tordini <flavio.tordini@gmail.com>
+
+Minitube 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.
+
+Minitube 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 Minitube. If not, see <http://www.gnu.org/licenses/>.
+
+$END_LICENSE */
+
+#ifndef PAINTERUTILS_H
+#define PAINTERUTILS_H
+
+#include <QtGui>
+
+class PainterUtils {
+
+public:
+ static void centeredMessage(QString message, QWidget* widget);
+ static void topShadow(QWidget *widget);
+ static void paintBadge(QPainter *painter, const QString &text, bool center = false);
+
+private:
+ PainterUtils();
+
+};
+
+#endif // PAINTERUTILS_H
+/* $BEGIN_LICENSE
+
+This file is part of Minitube.
+Copyright 2009, Flavio Tordini <flavio.tordini@gmail.com>
+
+Minitube 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.
+
+Minitube 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 Minitube. If not, see <http://www.gnu.org/licenses/>.
+
+$END_LICENSE */
+
#include "playlistitemdelegate.h"
#include "playlistmodel.h"
#include "fontutils.h"
#include "videodefinition.h"
#include "video.h"
-const qreal PlaylistItemDelegate::THUMB_HEIGHT = 90.0;
-const qreal PlaylistItemDelegate::THUMB_WIDTH = 160.0;
-const qreal PlaylistItemDelegate::PADDING = 10.0;
-
-QRect lastAuthorRect;
-QHash<int, QRect> authorRects;
+const int PlaylistItemDelegate::THUMB_HEIGHT = 90;
+const int PlaylistItemDelegate::THUMB_WIDTH = 160;
+const int PlaylistItemDelegate::PADDING = 10;
PlaylistItemDelegate::PlaylistItemDelegate(QObject* parent, bool downloadInfo)
: QStyledItemDelegate(parent),
- downloadInfo(downloadInfo) {
+ downloadInfo(downloadInfo),
+ progressBar(0) {
+
boldFont.setBold(true);
smallerBoldFont = FontUtils::smallBold();
smallerFont = FontUtils::small();
} else createPlayIcon();
}
+PlaylistItemDelegate::~PlaylistItemDelegate() {
+ if (progressBar) delete progressBar;
+}
+
void PlaylistItemDelegate::createPlayIcon() {
playIcon = QPixmap(THUMB_WIDTH, THUMB_HEIGHT);
playIcon.fill(Qt::transparent);
- QPainter painter(&playIcon);
- QPolygon polygon;
+
+ QPixmap tempPixmap(THUMB_WIDTH, THUMB_HEIGHT);
+ tempPixmap.fill(Qt::transparent);
+ QPainter painter(&tempPixmap);
+ painter.setRenderHints(QPainter::Antialiasing, true);
+
const int hPadding = PADDING*6;
const int vPadding = PADDING*2;
+
+ QPolygon polygon;
polygon << QPoint(hPadding, vPadding)
<< QPoint(THUMB_WIDTH-hPadding, THUMB_HEIGHT/2)
<< QPoint(hPadding, THUMB_HEIGHT-vPadding);
- painter.setRenderHints(QPainter::Antialiasing, true);
painter.setBrush(Qt::white);
QPen pen;
pen.setColor(Qt::white);
pen.setCapStyle(Qt::RoundCap);
painter.setPen(pen);
painter.drawPolygon(polygon);
-}
+ painter.end();
-PlaylistItemDelegate::~PlaylistItemDelegate() { }
+ QPainter painter2(&playIcon);
+ painter2.setOpacity(.75);
+ painter2.drawPixmap(0, 0, tempPixmap);
+}
QSize PlaylistItemDelegate::sizeHint( const QStyleOptionViewItem& /*option*/, const QModelIndex& /*index*/ ) const {
- return QSize( 256, THUMB_HEIGHT+1.0);
+ return QSize(THUMB_WIDTH, THUMB_HEIGHT + 1);
}
void PlaylistItemDelegate::paint( QPainter* painter,
- const QStyleOptionViewItem& option, const QModelIndex& index ) const {
+ const QStyleOptionViewItem& option, const QModelIndex& index ) const {
int itemType = index.data(ItemTypeRole).toInt();
if (itemType == ItemTypeVideo) {
}
void PlaylistItemDelegate::paintBody( QPainter* painter,
- const QStyleOptionViewItem& option,
- const QModelIndex& index ) const {
-
+ const QStyleOptionViewItem& option,
+ const QModelIndex& index ) const {
painter->save();
painter->translate( option.rect.topLeft() );
-
- QRectF line(0, 0, option.rect.width(), option.rect.height());
+ QRect line(0, 0, option.rect.width(), option.rect.height());
if (downloadInfo) line.setWidth(line.width() / 2);
- painter->setClipRect(line);
const bool isActive = index.data( ActiveTrackRole ).toBool();
const bool isSelected = option.state & QStyle::State_Selected;
// draw the "current track" highlight underneath the text
- if (isActive && !isSelected) {
- paintActiveOverlay(painter, line.x(), line.y(), line.width(), line.height());
- }
+ if (isActive && !isSelected)
+ paintActiveOverlay(painter, line);
// get the video metadata
const VideoPointer videoPointer = index.data( VideoRole ).value<VideoPointer>();
// play icon overlayed on the thumb
if (isActive)
- paintPlayIcon(painter);
+ painter->drawPixmap(playIcon.rect(), playIcon);
// time
drawTime(painter, video->formattedDuration(), line);
- if (isActive) painter->setFont(boldFont);
-
- // text color
- if (isSelected)
- painter->setPen(QPen(option.palette.brush(QPalette::HighlightedText), 0));
- else
- painter->setPen(QPen(option.palette.brush(QPalette::Text), 0));
-
- // title
- QString videoTitle = video->title();
- QRectF textBox = line.adjusted(PADDING+THUMB_WIDTH, PADDING, -2 * PADDING, -PADDING);
- textBox = painter->boundingRect( textBox, Qt::AlignLeft | Qt::AlignTop | Qt::TextWordWrap, videoTitle);
- painter->drawText(textBox, Qt::AlignLeft | Qt::AlignTop | Qt::TextWordWrap, videoTitle);
-
- painter->setFont(smallerFont);
-
- // published date
- QString publishedString = video->published().date().toString(Qt::DefaultLocaleShortDate);
- QSizeF stringSize(QFontMetrics(painter->font()).size( Qt::TextSingleLine, publishedString ) );
- QPointF textLoc(PADDING+THUMB_WIDTH, PADDING*2 + textBox.height());
- QRectF publishedTextBox(textLoc , stringSize);
- painter->drawText(publishedTextBox, Qt::AlignLeft | Qt::AlignTop, publishedString);
-
- // author
- bool authorHovered = false;
- bool authorPressed = false;
- const bool isHovered = index.data(HoveredItemRole).toBool();
- if (isHovered) {
- authorHovered = index.data(AuthorHoveredRole).toBool();
- authorPressed = index.data(AuthorPressedRole).toBool();
- }
-
- painter->save();
- painter->setFont(smallerBoldFont);
- if (!isSelected) {
- if (authorHovered)
- painter->setPen(QPen(option.palette.brush(QPalette::Highlight), 0));
- else
- painter->setPen(QPen(option.palette.brush(QPalette::Mid), 0));
- }
- QString authorString = video->author();
- textLoc.setX(textLoc.x() + stringSize.width() + PADDING);
- stringSize = QSizeF(QFontMetrics(painter->font()).size( Qt::TextSingleLine, authorString ) );
- QRectF authorTextBox(textLoc , stringSize);
- authorRects.insert(index.row(), authorTextBox.toRect());
- painter->drawText(authorTextBox, Qt::AlignLeft | Qt::AlignTop, authorString);
- painter->restore();
-
- // view count
- if (video->viewCount() >= 0) {
- painter->save();
- QLocale locale;
- QString viewCountString = tr("%1 views").arg(locale.toString(video->viewCount()));
- textLoc.setX(textLoc.x() + stringSize.width() + PADDING);
- stringSize = QSizeF(QFontMetrics(painter->font()).size( Qt::TextSingleLine, viewCountString ) );
- QRectF viewCountTextBox(textLoc , stringSize);
- painter->drawText(viewCountTextBox, Qt::AlignLeft | Qt::AlignBottom, viewCountString);
- painter->restore();
- }
-
- if (downloadInfo) {
- painter->save();
- QString definitionString = VideoDefinition::getDefinitionName(video->getDefinitionCode());
- textLoc.setX(textLoc.x() + stringSize.width() + PADDING);
- stringSize = QSizeF(QFontMetrics(painter->font()).size( Qt::TextSingleLine, definitionString ) );
- QRectF viewCountTextBox(textLoc , stringSize);
- painter->drawText(viewCountTextBox, Qt::AlignLeft | Qt::AlignBottom, definitionString);
- painter->restore();
- }
-
- /*
- QLinearGradient myGradient;
- QPen myPen;
- QFont myFont;
- QPointF baseline(authorTextBox.x(), authorTextBox.y() + authorTextBox.height());
- QPainterPath myPath;
- myPath.addText(baseline, boldFont, authorString);
- painter->setBrush(palette.color(QPalette::WindowText));
- painter->setPen(palette.color(QPalette::Dark));
- painter->setRenderHints (QPainter::Antialiasing, true);
- painter->drawPath(myPath);
- */
-
// separator
- painter->setClipping(false);
painter->setPen(option.palette.color(QPalette::Midlight));
painter->drawLine(THUMB_WIDTH, THUMB_HEIGHT, option.rect.width(), THUMB_HEIGHT);
if (!video->thumbnail().isNull())
painter->setPen(Qt::black);
painter->drawLine(0, THUMB_HEIGHT, THUMB_WIDTH-1, THUMB_HEIGHT);
+ if (line.width() > THUMB_WIDTH + 60) {
+
+ if (isActive) painter->setFont(boldFont);
+
+ // text color
+ if (isSelected)
+ painter->setPen(QPen(option.palette.brush(QPalette::HighlightedText), 0));
+ else
+ painter->setPen(QPen(option.palette.brush(QPalette::Text), 0));
+
+ // title
+ QString videoTitle = video->title();
+ QString v = videoTitle;
+ const int flags = Qt::AlignTop | Qt::TextWordWrap;
+ QRect textBox = line.adjusted(PADDING+THUMB_WIDTH, PADDING, 0, 0);
+ textBox = painter->boundingRect(textBox, flags, v);
+ while (textBox.height() > 55 && v.length() > 10) {
+ videoTitle.truncate(videoTitle.length() - 1);
+ v = videoTitle;
+ v = v.trimmed().append("...");
+ textBox = painter->boundingRect(textBox, flags, v);
+ }
+ painter->drawText(textBox, flags, v);
+
+ painter->setFont(smallerFont);
+
+ // published date
+ QString publishedString = video->published().date().toString(Qt::DefaultLocaleShortDate);
+ QSize stringSize(QFontMetrics(painter->font()).size( Qt::TextSingleLine, publishedString ) );
+ QPoint textLoc(PADDING+THUMB_WIDTH, PADDING*2 + textBox.height());
+ QRect publishedTextBox(textLoc , stringSize);
+ painter->drawText(publishedTextBox, Qt::AlignLeft | Qt::AlignTop, publishedString);
+
+ if (line.width() > publishedTextBox.x() + publishedTextBox.width()*2) {
+
+ // author
+ bool authorHovered = false;
+ bool authorPressed = false;
+ const bool isHovered = index.data(HoveredItemRole).toBool();
+ if (isHovered) {
+ authorHovered = index.data(AuthorHoveredRole).toBool();
+ authorPressed = index.data(AuthorPressedRole).toBool();
+ }
+
+ painter->save();
+ painter->setFont(smallerBoldFont);
+ if (!isSelected) {
+ if (authorHovered)
+ painter->setPen(QPen(option.palette.brush(QPalette::Highlight), 0));
+ else
+ painter->setPen(QPen(option.palette.brush(QPalette::Mid), 0));
+ }
+ QString authorString = video->author();
+ textLoc.setX(textLoc.x() + stringSize.width() + PADDING);
+ stringSize = QSize(QFontMetrics(painter->font()).size( Qt::TextSingleLine, authorString ) );
+ QRect authorTextBox(textLoc , stringSize);
+ authorRects.insert(index.row(), authorTextBox);
+ painter->drawText(authorTextBox, Qt::AlignLeft | Qt::AlignTop, authorString);
+ painter->restore();
+
+ if (line.width() > authorTextBox.x() + 50) {
+
+ // view count
+ if (video->viewCount() >= 0) {
+ QLocale locale;
+ QString viewCountString = tr("%1 views").arg(locale.toString(video->viewCount()));
+ textLoc.setX(textLoc.x() + stringSize.width() + PADDING);
+ stringSize = QSize(QFontMetrics(painter->font()).size( Qt::TextSingleLine, viewCountString ) );
+ QRect viewCountTextBox(textLoc , stringSize);
+ painter->drawText(viewCountTextBox, Qt::AlignLeft | Qt::AlignBottom, viewCountString);
+ }
+
+ if (downloadInfo) {
+ QString definitionString = VideoDefinition::getDefinitionName(video->getDefinitionCode());
+ textLoc.setX(textLoc.x() + stringSize.width() + PADDING);
+ stringSize = QSize(QFontMetrics(painter->font()).size( Qt::TextSingleLine, definitionString ) );
+ QRect viewCountTextBox(textLoc , stringSize);
+ painter->drawText(viewCountTextBox, Qt::AlignLeft | Qt::AlignBottom, definitionString);
+ }
+
+ }
+
+ }
+
+ }
+
painter->restore();
if (downloadInfo) paintDownloadInfo(painter, option, index);
}
-void PlaylistItemDelegate::paintActiveOverlay( QPainter *painter, qreal x, qreal y, qreal w, qreal h ) const {
-
- QPalette palette;
- QColor highlightColor = palette.color(QPalette::Highlight);
- QColor backgroundColor = palette.color(QPalette::Base);
- const float animation = 0.25;
- const int gradientRange = 16;
-
- QColor color2 = QColor::fromHsv(
- highlightColor.hue(),
- (int) (backgroundColor.saturation() * (1.0f - animation) + highlightColor.saturation() * animation),
- (int) (backgroundColor.value() * (1.0f - animation) + highlightColor.value() * animation)
- );
- QColor color1 = QColor::fromHsv(
- color2.hue(),
- qMax(color2.saturation() - gradientRange, 0),
- qMin(color2.value() + gradientRange, 255)
- );
- QRect rect((int) x, (int) y, (int) w, (int) h);
- painter->save();
- painter->setPen(Qt::NoPen);
- QLinearGradient linearGradient(0, 0, 0, rect.height());
- linearGradient.setColorAt(0.0, color1);
- linearGradient.setColorAt(1.0, color2);
- painter->setBrush(linearGradient);
- painter->drawRect(rect);
- painter->restore();
-}
+void PlaylistItemDelegate::paintActiveOverlay(QPainter *painter, const QRect &line) const {
+ static QLinearGradient linearGradient;
+ static bool initialized = false;
+
+ if (!initialized) {
+ QPalette palette;
+ QColor highlightColor = palette.color(QPalette::Highlight);
+ QColor backgroundColor = palette.color(QPalette::Base);
+ const float animation = 0.4;
+ const int gradientRange = 16;
+
+ QColor color2 = QColor::fromHsv(
+ highlightColor.hue(),
+ (int) (backgroundColor.saturation() * (1.0f - animation) + highlightColor.saturation() * animation),
+ (int) (backgroundColor.value() * (1.0f - animation) + highlightColor.value() * animation)
+ );
+ QColor color1 = QColor::fromHsv(
+ color2.hue(),
+ qMax(color2.saturation() - gradientRange, 0),
+ qMin(color2.value() + gradientRange, 255)
+ );
+
+ linearGradient = QLinearGradient(0, 0, 0, THUMB_HEIGHT);
+ linearGradient.setColorAt(0.0, color1);
+ linearGradient.setColorAt(1.0, color2);
+ initialized = true;
+ }
-void PlaylistItemDelegate::paintPlayIcon(QPainter *painter) const {
- painter->save();
- painter->setOpacity(.5);
- painter->drawPixmap(playIcon.rect(), playIcon);
- painter->restore();
+ painter->fillRect(line, linearGradient);
}
-void PlaylistItemDelegate::drawTime(QPainter *painter, QString time, QRectF line) const {
+void PlaylistItemDelegate::drawTime(QPainter *painter, const QString &time, const QRect &line) const {
static const int timePadding = 4;
- QRectF textBox = painter->boundingRect(line, Qt::AlignLeft | Qt::AlignTop, time);
+ QRect textBox = painter->boundingRect(line, Qt::AlignLeft | Qt::AlignTop, time);
// add padding
textBox.adjust(0, 0, timePadding, 0);
// move to bottom right corner of the thumb
}
void PlaylistItemDelegate::paintDownloadInfo( QPainter* painter,
- const QStyleOptionViewItem& option,
- const QModelIndex& index ) const {
+ const QStyleOptionViewItem& option,
+ const QModelIndex& index ) const {
// get the video metadata
const DownloadItemPointer downloadItemPointer = index.data(DownloadItemRole).value<DownloadItemPointer>();
QString eta = DownloadItem::formattedTime(downloadItem->remainingTime());
message = tr("%1 of %2 (%3) — %4").arg(
- downloaded,
- total,
- speed,
- eta
- );
+ downloaded,
+ total,
+ speed,
+ eta
+ );
} else if (status == Starting) {
message = tr("Preparing");
} else if (status == Failed) {
else if (status == Finished) {
if (downloadButtonHovered)
#ifdef APP_MAC
- message = tr("Show in %1").arg("Finder");
+ message = tr("Show in %1").arg("Finder");
#else
- message = tr("Open parent folder");
+ message = tr("Open parent folder");
#endif
painter->save();
QIcon searchIcon = Utils::icon("system-search");
painter->restore();
}
- QRectF textBox = line.adjusted(PADDING, PADDING*2 + progressBar->sizeHint().height(), -2 * PADDING, -PADDING);
+ QRect textBox = line.adjusted(PADDING, PADDING*2 + progressBar->sizeHint().height(), -2 * PADDING, -PADDING);
textBox = painter->boundingRect( textBox, Qt::AlignLeft | Qt::AlignTop | Qt::TextWordWrap, message);
painter->drawText(textBox, Qt::AlignLeft | Qt::AlignTop | Qt::TextWordWrap, message);
painter->restore();
-
}
-QRect PlaylistItemDelegate::downloadButtonRect(QRect line) const {
+QRect PlaylistItemDelegate::downloadButtonRect(const QRect &line) const {
return QRect(
- line.width() - PADDING*2 - 16,
- PADDING + progressBar->sizeHint().height() / 2 - 8,
- 16,
- 16);
+ line.width() - PADDING*2 - 16,
+ PADDING + progressBar->sizeHint().height() / 2 - 8,
+ 16,
+ 16);
}
QRect PlaylistItemDelegate::authorRect(const QModelIndex& index) const {
+/* $BEGIN_LICENSE
+
+This file is part of Minitube.
+Copyright 2009, Flavio Tordini <flavio.tordini@gmail.com>
+
+Minitube 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.
+
+Minitube 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 Minitube. If not, see <http://www.gnu.org/licenses/>.
+
+$END_LICENSE */
+
#ifndef PLAYLISTITEMDELEGATE_H
#define PLAYLISTITEMDELEGATE_H
QSize sizeHint( const QStyleOptionViewItem&, const QModelIndex& ) const;
void paint( QPainter*, const QStyleOptionViewItem&, const QModelIndex& ) const;
- QRect downloadButtonRect(QRect line) const;
+ QRect downloadButtonRect(const QRect &line) const;
QRect authorRect(const QModelIndex& index) const;
private:
const QModelIndex& index ) const;
// active track painting
- void paintActiveOverlay( QPainter *painter, qreal x, qreal y, qreal w, qreal h ) const;
- void paintPlayIcon(QPainter *painter) const;
+ void paintActiveOverlay(QPainter *painter, const QRect &line) const;
// Paints the video duration
- void drawTime(QPainter *painter, QString time, QRectF line) const;
+ void drawTime(QPainter *painter, const QString &time, const QRect &line) const;
- static const qreal THUMB_WIDTH;
- static const qreal THUMB_HEIGHT;
- static const qreal PADDING;
+ static const int THUMB_WIDTH;
+ static const int THUMB_HEIGHT;
+ static const int PADDING;
QPixmap playIcon;
QFont boldFont;
bool downloadInfo;
QProgressBar *progressBar;
+ mutable QRect lastAuthorRect;
+ mutable QHash<int, QRect> authorRects;
};
#endif
+/* $BEGIN_LICENSE
+
+This file is part of Minitube.
+Copyright 2009, Flavio Tordini <flavio.tordini@gmail.com>
+
+Minitube 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.
+
+Minitube 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 Minitube. If not, see <http://www.gnu.org/licenses/>.
+
+$END_LICENSE */
+
#include "playlistmodel.h"
#include "videomimedata.h"
#include "videosource.h"
case ItemTypeRole:
return ItemTypeShowMore;
case Qt::DisplayRole:
- case Qt::StatusTipRole:
if (!errorMessage.isEmpty()) return errorMessage;
if (searching) return tr("Searching...");
if (canSearchMore) return tr("Show %1 More").arg(maxItems);
return authorHovered;
case AuthorPressedRole:
return authorPressed;
+ case Qt::StatusTipRole:
+ return video->description();
}
return QVariant();
while (!videos.isEmpty())
delete videos.takeFirst();
reset();
- videoSource->abort();
+ // if (videoSource) videoSource->abort();
searching = false;
+ m_activeRow = -1;
+ m_activeVideo = 0;
+ skip = 1;
}
void PlaylistModel::searchFinished(int total) {
void PlaylistModel::addVideos(QList<Video*> newVideos) {
if (newVideos.isEmpty()) return;
-
- bool isFirstVideo = videos.isEmpty();
-
- beginInsertRows(QModelIndex(), videos.size(), videos.size() + newVideos.size() - 1);
+ beginInsertRows(QModelIndex(), videos.size(), videos.size() + newVideos.size() - 2);
videos.append(newVideos);
endInsertRows();
-
foreach (Video* video, newVideos) {
connect(video, SIGNAL(gotThumbnail()),
SLOT(updateThumbnail()), Qt::UniqueConnection);
video->loadThumbnail();
}
-
- // if (isFirstVideo) handleFirstVideo(newVideos.first());
}
void PlaylistModel::handleFirstVideo(Video *video) {
- int currentVideoRow = rowForCloneVideo(MediaView::instance()->getCurrentVideo());
+ int currentVideoRow = rowForCloneVideo(MediaView::instance()->getCurrentVideoId());
if (currentVideoRow != -1) setActiveRow(currentVideoRow, false);
else {
QSettings settings;
QSettings settings;
if (!settings.value("manualplay", false).toBool()) {
- int newActiveRow = rowForCloneVideo(MediaView::instance()->getCurrentVideo());
+ int newActiveRow = rowForCloneVideo(MediaView::instance()->getCurrentVideoId());
if (newActiveRow != -1) setActiveRow(newActiveRow, false);
else setActiveRow(0);
}
QString channel = searchParams->author();
if (!channel.isEmpty() && !searchParams->isTransient()) {
QString value;
- if (!video->authorUri().isEmpty() && video->authorUri() != video->author())
- value = video->authorUri() + "|" + video->author();
+ if (!video->userId().isEmpty() && video->userId() != video->author())
+ value = video->userId() + "|" + video->author();
else value = video->author();
QStringList channels = settings.value(recentChannelsKey).toStringList();
channels.removeAll(value);
}
-int PlaylistModel::rowForCloneVideo(Video *video) const {
- if (!video) return -1;
+int PlaylistModel::rowForCloneVideo(const QString &videoId) const {
for (int i = 0; i < videos.size(); ++i) {
Video *v = videos.at(i);
- if (v->id() == video->id()) return i;
+ if (v->id() == videoId) return i;
}
return -1;
}
+/* $BEGIN_LICENSE
+
+This file is part of Minitube.
+Copyright 2009, Flavio Tordini <flavio.tordini@gmail.com>
+
+Minitube 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.
+
+Minitube 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 Minitube. If not, see <http://www.gnu.org/licenses/>.
+
+$END_LICENSE */
+
#ifndef PLAYLISTMODEL_H
#define PLAYLISTMODEL_H
Video* videoAt( int row ) const;
Video* activeVideo() const;
- int rowForCloneVideo(Video *video) const;
+ int rowForCloneVideo(const QString &videoId) const;
VideoSource* getVideoSource() { return videoSource; }
void setVideoSource(VideoSource *videoSource);
+/* $BEGIN_LICENSE
+
+This file is part of Minitube.
+Copyright 2009, Flavio Tordini <flavio.tordini@gmail.com>
+
+Minitube 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.
+
+Minitube 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 Minitube. If not, see <http://www.gnu.org/licenses/>.
+
+$END_LICENSE */
+
#include "playlistview.h"
#include "playlistmodel.h"
#include "playlistitemdelegate.h"
+#include "painterutils.h"
-PlaylistView::PlaylistView(QWidget *parent) : QListView(parent) {
- clickableAuthors = true;
-
+PlaylistView::PlaylistView(QWidget *parent) : QListView(parent),
+ clickableAuthors(true) {
setItemDelegate(new PlaylistItemDelegate(this));
setSelectionMode(QAbstractItemView::ExtendedSelection);
+ setSizePolicy(QSizePolicy::MinimumExpanding, QSizePolicy::Expanding);
+ setMinimumWidth(175);
+
// dragndrop
setDragEnabled(true);
setAcceptDrops(true);
setVerticalScrollMode(QAbstractItemView::ScrollPerPixel);
setFrameShape(QFrame::NoFrame);
setAttribute(Qt::WA_MacShowFocusRect, false);
- // setMinimumSize(120, 240);
+ setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
setUniformItemSizes(true);
connect(this, SIGNAL(entered(const QModelIndex &)),
void PlaylistView::mouseMoveEvent(QMouseEvent *event) {
QListView::mouseMoveEvent(event);
- // QWidget::mouseMoveEvent(event);
if (isHoveringThumbnail(event)) {
setCursor(Qt::PointingHandCursor);
return model()->rowCount() > 1 &&
model()->rowCount() == index.row() + 1;
}
+
+void PlaylistView::paintEvent(QPaintEvent *event) {
+ QListView::paintEvent(event);
+ PainterUtils::topShadow(viewport());
+}
+/* $BEGIN_LICENSE
+
+This file is part of Minitube.
+Copyright 2009, Flavio Tordini <flavio.tordini@gmail.com>
+
+Minitube 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.
+
+Minitube 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 Minitube. If not, see <http://www.gnu.org/licenses/>.
+
+$END_LICENSE */
+
#ifndef PLAYLISTVIEW_H
#define PLAYLISTVIEW_H
void mouseMoveEvent(QMouseEvent *event);
void mousePressEvent(QMouseEvent *event);
void mouseReleaseEvent(QMouseEvent *event);
+ void paintEvent(QPaintEvent *event);
signals:
void authorPushed(QModelIndex index);
+/* $BEGIN_LICENSE
+
+This file is part of Minitube.
+Copyright 2009, Flavio Tordini <flavio.tordini@gmail.com>
+
+Minitube 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.
+
+Minitube 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 Minitube. If not, see <http://www.gnu.org/licenses/>.
+
+$END_LICENSE */
+
#include "refinesearchbutton.h"
static const int refineButtonSize = 48;
+/* $BEGIN_LICENSE
+
+This file is part of Minitube.
+Copyright 2009, Flavio Tordini <flavio.tordini@gmail.com>
+
+Minitube 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.
+
+Minitube 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 Minitube. If not, see <http://www.gnu.org/licenses/>.
+
+$END_LICENSE */
+
#ifndef REFINESEARCHBUTTON_H
#define REFINESEARCHBUTTON_H
+/* $BEGIN_LICENSE
+
+This file is part of Minitube.
+Copyright 2009, Flavio Tordini <flavio.tordini@gmail.com>
+
+Minitube 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.
+
+Minitube 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 Minitube. If not, see <http://www.gnu.org/licenses/>.
+
+$END_LICENSE */
+
#include "refinesearchwidget.h"
#include "fontutils.h"
#include "searchparams.h"
-#ifndef Q_WS_X11
+#ifdef APP_EXTRA
#include "extra.h"
#endif
}
layout->addSpacing(spacing);
- QPushButton *doneButton = new QPushButton(tr("Done"), this);
+ doneButton = new QPushButton(tr("Done"), this);
doneButton->setDefault(true);
+ doneButton->setAutoDefault(true);
+ doneButton->setFocusPolicy(Qt::StrongFocus);
doneButton->setFont(FontUtils::medium());
doneButton->setProperty("custom", true);
doneButton->setProperty("important", true);
QLabel *icon = new QLabel(this);
icon->setSizePolicy(QSizePolicy::Fixed, QSizePolicy::Fixed);
QString resource = paramName;
-#ifndef Q_WS_X11
+#ifdef APP_EXTRA
resource = Extra::resourceName(resource);
#endif
QPixmap pixmap = QPixmap(":/images/search-" + resource + ".png");
void RefineSearchWidget::setSearchParams(SearchParams *params) {
setup();
- qDebug() << (params != 0);
-
The::globalActions()->value("refine-search")->setEnabled(params);
setEnabled(params);
Qt::UniqueConnection);
dirty = false;
+
+ doneButton->setFocus();
}
void RefineSearchWidget::doneClicked() {
+/* $BEGIN_LICENSE
+
+This file is part of Minitube.
+Copyright 2009, Flavio Tordini <flavio.tordini@gmail.com>
+
+Minitube 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.
+
+Minitube 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 Minitube. If not, see <http://www.gnu.org/licenses/>.
+
+$END_LICENSE */
+
#ifndef REFINESEARCHWIDGET_H
#define REFINESEARCHWIDGET_H
QHash<QString, QToolBar*> bars;
bool dirty;
+ QPushButton *doneButton;
};
+/* $BEGIN_LICENSE
+
+This file is part of Minitube.
+Copyright 2009, Flavio Tordini <flavio.tordini@gmail.com>
+
+Minitube 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.
+
+Minitube 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 Minitube. If not, see <http://www.gnu.org/licenses/>.
+
+$END_LICENSE */
+
#include "regionsview.h"
#include "ytregions.h"
#include "mainwindow.h"
+/* $BEGIN_LICENSE
+
+This file is part of Minitube.
+Copyright 2009, Flavio Tordini <flavio.tordini@gmail.com>
+
+Minitube 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.
+
+Minitube 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 Minitube. If not, see <http://www.gnu.org/licenses/>.
+
+$END_LICENSE */
+
#ifndef REGIONSVIEW_H
#define REGIONSVIEW_H
+/* $BEGIN_LICENSE
+
+This file is part of Minitube.
+Copyright 2009, Flavio Tordini <flavio.tordini@gmail.com>
+
+Minitube 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.
+
+Minitube 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 Minitube. If not, see <http://www.gnu.org/licenses/>.
+
+$END_LICENSE */
+
#include "searchparams.h"
SearchParams::SearchParams(QObject *parent) : QObject(parent) {
+/* $BEGIN_LICENSE
+
+This file is part of Minitube.
+Copyright 2009, Flavio Tordini <flavio.tordini@gmail.com>
+
+Minitube 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.
+
+Minitube 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 Minitube. If not, see <http://www.gnu.org/licenses/>.
+
+$END_LICENSE */
+
#ifndef SEARCHPARAMS_H
#define SEARCHPARAMS_H
+/* $BEGIN_LICENSE
+
+This file is part of Minitube.
+Copyright 2009, Flavio Tordini <flavio.tordini@gmail.com>
+
+Minitube 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.
+
+Minitube 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 Minitube. If not, see <http://www.gnu.org/licenses/>.
+
+$END_LICENSE */
+
#include "searchview.h"
#include "constants.h"
#include "fontutils.h"
#else
#include "searchlineedit.h"
#endif
-#ifndef Q_WS_X11
+#ifdef APP_EXTRA
#include "extra.h"
#endif
#ifdef APP_ACTIVATION
#include "activation.h"
#endif
#include "mainwindow.h"
+#include "painterutils.h"
namespace The {
QHash<QString, QAction*>* globalActions();
setAttribute(Qt::WA_OpaquePaintEvent);
#endif
+ setAutoFillBackground(true);
+
QBoxLayout *mainLayout = new QVBoxLayout(this);
mainLayout->setMargin(PADDING);
mainLayout->setSpacing(0);
.arg(Constants::WEBSITE, Constants::NAME)
+ "</h1>", this);
welcomeLabel->setOpenExternalLinks(true);
+#ifdef APP_WIN
+ QFont f = welcomeLabel->font();
+ f.setHintingPreference(QFont::PreferNoHinting);
+ f.setFamily("Segoe UI Light");
+ welcomeLabel->setFont(f);
+#endif
layout->addWidget(welcomeLabel);
layout->addSpacing(PADDING / 2);
searchParams->setKeywords(query);
else {
// remove spaces from channel name
- query = query.replace(" ", "");
+ query = query.simplified();
searchParams->setAuthor(query);
searchParams->setSortBy(SearchParams::SortByNewest);
}
emit search(searchParams);
}
-void SearchView::paintEvent(QPaintEvent * /*event*/) {
- QPainter painter(this);
-
+void SearchView::paintEvent(QPaintEvent *event) {
+ QWidget::paintEvent(event);
#if defined(APP_MAC) | defined(APP_WIN)
QBrush brush;
if (window()->isActiveWindow()) {
} else {
brush = palette().window();
}
+ QPainter painter(this);
painter.fillRect(0, 0, width(), height(), brush);
+ painter.end();
#endif
-
- static QLinearGradient shadow;
- static const int shadowHeight = 10;
- if (shadow.stops().count() == 2) {
- shadow.setFinalStop(0, shadowHeight);
- const qreal initialOpacity = 96;
- for (qreal i = 0; i <= 1; i += 1.0/shadowHeight) {
- qreal opacity = qPow(initialOpacity, (1.0 - i)) - 1;
- shadow.setColorAt(i, QColor(0x00, 0x00, 0x00, opacity));
- }
- }
- QRect r = rect();
- painter.fillRect(r.x(), r.y(), r.width(), shadowHeight, QBrush(shadow));
+#ifdef APP_UBUNTU
+ QStyleOption o;
+ o.initFrom(this);
+ QPainter p(this);
+ style()->drawPrimitive(QStyle::PE_Widget, &o, &p, this);
+#endif
+ // PainterUtils::topShadow(this);
}
void SearchView::searchTypeChanged(int index) {
+/* $BEGIN_LICENSE
+
+This file is part of Minitube.
+Copyright 2009, Flavio Tordini <flavio.tordini@gmail.com>
+
+Minitube 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.
+
+Minitube 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 Minitube. If not, see <http://www.gnu.org/licenses/>.
+
+$END_LICENSE */
+
#ifndef __SEARCHVIEW_H__
#define __SEARCHVIEW_H__
+/* $BEGIN_LICENSE
+
+This file is part of Minitube.
+Copyright 2009, Flavio Tordini <flavio.tordini@gmail.com>
+
+Minitube 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.
+
+Minitube 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 Minitube. If not, see <http://www.gnu.org/licenses/>.
+
+$END_LICENSE */
+
#include "segmentedcontrol.h"
#include "fontutils.h"
#include "mainwindow.h"
+#include "painterutils.h"
static const QColor borderColor = QColor(0x26, 0x26, 0x26);
painter->setFont(FontUtils::smallBold());
+ const QString text = action->text();
+
// text shadow
painter->setPen(QColor(0, 0, 0, 128));
- painter->drawText(0, -1, width, height, Qt::AlignCenter, action->text());
+ painter->drawText(0, -1, width, height, Qt::AlignCenter, text);
painter->setPen(QPen(Qt::white, 1));
- painter->drawText(0, 0, width, height, Qt::AlignCenter, action->text());
+ painter->drawText(0, 0, width, height, Qt::AlignCenter, text);
+
+ if (action->property("notifyCount").isValid()) {
+ QRect textBox = painter->boundingRect(rect,
+ Qt::AlignCenter,
+ text);
+ painter->translate((width + textBox.width()) / 2 + 10, (height - 20) / 2);
+ PainterUtils::paintBadge(painter, action->property("notifyCount").toString());
+ }
painter->restore();
}
-
+/* $BEGIN_LICENSE
+
+This file is part of Minitube.
+Copyright 2009, Flavio Tordini <flavio.tordini@gmail.com>
+
+Minitube 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.
+
+Minitube 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 Minitube. If not, see <http://www.gnu.org/licenses/>.
+
+$END_LICENSE */
+
#ifndef SEGMENTEDCONTROL_H
#define SEGMENTEDCONTROL_H
+/* $BEGIN_LICENSE
+
+This file is part of Minitube.
+Copyright 2009, Flavio Tordini <flavio.tordini@gmail.com>
+
+Minitube 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.
+
+Minitube 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 Minitube. If not, see <http://www.gnu.org/licenses/>.
+
+$END_LICENSE */
+
#include "sidebarheader.h"
#include "utils.h"
#include "mediaview.h"
#include "videosource.h"
#include "fontutils.h"
+#include "utils.h"
SidebarHeader::SidebarHeader(QWidget *parent) : QToolBar(parent) { }
if (isSetup) return;
isSetup = true;
+ setIconSize(QSize(16, 16));
+
backAction = new QAction(
Utils::icon("go-previous"),
tr("&Back"), this);
foreach (QAction* action, actions()) {
window()->addAction(action);
- action->setAutoRepeat(false);
+ Utils::setupAction(action);
}
- /*
QWidget *spacerWidget = new QWidget(this);
spacerWidget->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Preferred);
- spacerWidget->setVisible(true);
addWidget(spacerWidget);
- */
}
QSize SidebarHeader::minimumSizeHint (void) const {
- return(QSize(1, QFontMetrics(font()).height() * 1.9));
+ return(QSize(160, QFontMetrics(font()).height() * 1.9));
}
void SidebarHeader::updateInfo() {
void SidebarHeader::setTitle(QString title) {
this->title = title;
update();
+
+ QList<VideoSource*> history = MediaView::instance()->getHistory();
+ int currentIndex = MediaView::instance()->getHistoryIndex();
+ VideoSource *currentVideoSource = history.at(currentIndex);
+ foreach (QAction* action, videoSourceActions)
+ removeAction(action);
+ videoSourceActions = currentVideoSource->getActions();
+ addActions(videoSourceActions);
}
void SidebarHeader::paintEvent(QPaintEvent *event) {
QString t = title;
QRect textBox = p.boundingRect(r, Qt::AlignCenter, t);
int i = 1;
- static const int margin = 100;
- while (textBox.width() > r.width() - margin) {
- t = t.left(t.length() - i) + "...";
+ static const int margin = 50;
+ while (textBox.width() > r.width() - margin*2 && t.length() > 3) {
+ t = t.left(t.length() - i).trimmed() + QLatin1String("...");
textBox = p.boundingRect(r, Qt::AlignCenter, t);
i++;
}
-
p.drawText(r, Qt::AlignCenter, t);
+
+
}
+/* $BEGIN_LICENSE
+
+This file is part of Minitube.
+Copyright 2009, Flavio Tordini <flavio.tordini@gmail.com>
+
+Minitube 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.
+
+Minitube 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 Minitube. If not, see <http://www.gnu.org/licenses/>.
+
+$END_LICENSE */
+
#ifndef SIDEBARHEADER_H
#define SIDEBARHEADER_H
QAction *backAction;
QAction * forwardAction;
QString title;
+ QList<QAction*> videoSourceActions;
};
#endif // SIDEBARHEADER_H
+/* $BEGIN_LICENSE
+
+This file is part of Minitube.
+Copyright 2009, Flavio Tordini <flavio.tordini@gmail.com>
+
+Minitube 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.
+
+Minitube 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 Minitube. If not, see <http://www.gnu.org/licenses/>.
+
+$END_LICENSE */
+
#include "sidebarwidget.h"
#include "refinesearchbutton.h"
#include "refinesearchwidget.h"
#include "sidebarheader.h"
-#ifndef Q_WS_X11
+#ifdef APP_EXTRA
#include "extra.h"
#endif
}
void SidebarWidget::setup() {
- static bool isSetup = false;
- if (isSetup) return;
- isSetup = true;
-
refineSearchButton = new RefineSearchButton(this);
refineSearchButton->setStatusTip(tr("Refine Search")
+ " (" + QKeySequence(Qt::CTRL + Qt::Key_R).toString(QKeySequence::NativeText) + ")");
}
void SidebarWidget::showPlaylist() {
- setup();
stackedWidget->setCurrentWidget(playlist);
The::globalActions()->value("refine-search")->setChecked(false);
}
if (!refineSearchWidget->isEnabled()) return;
refineSearchWidget->setDirty(false);
stackedWidget->setCurrentWidget(refineSearchWidget);
- refineSearchWidget->setFocus();
-#ifndef Q_WS_X11
+ // refineSearchWidget->setFocus();
+#ifdef APP_EXTRA
Extra::fadeInWidget(playlist, refineSearchWidget);
#endif
refineSearchButton->hide();
void SidebarWidget::hideRefineSearchWidget() {
stackedWidget->setCurrentWidget(playlist);
playlist->setFocus();
-#ifndef Q_WS_X11
+#ifdef APP_EXTRA
Extra::fadeInWidget(refineSearchWidget, playlist);
#endif
The::globalActions()->value("refine-search")->setChecked(false);
+/* $BEGIN_LICENSE
+
+This file is part of Minitube.
+Copyright 2009, Flavio Tordini <flavio.tordini@gmail.com>
+
+Minitube 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.
+
+Minitube 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 Minitube. If not, see <http://www.gnu.org/licenses/>.
+
+$END_LICENSE */
+
#ifndef SIDEBARWIDGET_H
#define SIDEBARWIDGET_H
+/* $BEGIN_LICENSE
+
+This file is part of Minitube.
+Copyright 2009, Flavio Tordini <flavio.tordini@gmail.com>
+
+Minitube 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.
+
+Minitube 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 Minitube. If not, see <http://www.gnu.org/licenses/>.
+
+$END_LICENSE */
+
#include "spacer.h"
Spacer::Spacer(QWidget *parent) : QWidget(parent) { }
+/* $BEGIN_LICENSE
+
+This file is part of Minitube.
+Copyright 2009, Flavio Tordini <flavio.tordini@gmail.com>
+
+Minitube 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.
+
+Minitube 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 Minitube. If not, see <http://www.gnu.org/licenses/>.
+
+$END_LICENSE */
+
#ifndef SPACER_H
#define SPACER_H
+/* $BEGIN_LICENSE
+
+This file is part of Minitube.
+Copyright 2009, Flavio Tordini <flavio.tordini@gmail.com>
+
+Minitube 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.
+
+Minitube 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 Minitube. If not, see <http://www.gnu.org/licenses/>.
+
+$END_LICENSE */
+
#include "standardfeedsview.h"
#include "videosourcewidget.h"
#include "ytcategories.h"
#include "ytstandardfeed.h"
#include "ytregions.h"
#include "mainwindow.h"
+#include "painterutils.h"
namespace The {
QHash<QString, QAction*>* globalActions();
}
-static const int cols = 5;
-
StandardFeedsView::StandardFeedsView(QWidget *parent) : QWidget(parent),
layout(0) {
QPalette p = palette();
connect(w, SIGNAL(activated(VideoSource*)),
SIGNAL(activated(VideoSource*)));
int i = layout->count();
+ static const int cols = 5;
layout->addWidget(w, i / cols, i % cols);
}
QList<YTStandardFeed*> feeds;
feeds << buildStardardFeed("most_popular", tr("Most Popular"))
- << buildStardardFeed("recently_featured", tr("Featured"))
+ // << buildStardardFeed("recently_featured", tr("Featured"))
<< buildStardardFeed("most_shared", tr("Most Shared"))
<< buildStardardFeed("most_discussed", tr("Most Discussed"))
- << buildStardardFeed("top_rated", tr("Top Rated"));
+ << buildStardardFeed("top_rated", tr("Top Rated"))
+ << buildStardardFeed("most_popular", tr("All Time Popular"), "all_time");
return feeds;
}
-YTStandardFeed* StandardFeedsView::buildStardardFeed(QString feedId, QString label) {
+YTStandardFeed* StandardFeedsView::buildStardardFeed(
+ QString feedId, QString label, QString time) {
YTStandardFeed *feed = new YTStandardFeed(this);
feed->setFeedId(feedId);
feed->setLabel(label);
+ if (!time.isEmpty()) feed->setTime(time);
feed->setRegionId(YTRegions::currentRegionId());
return feed;
}
load();
}
+void StandardFeedsView::paintEvent(QPaintEvent *event) {
+ QWidget::paintEvent(event);
+ PainterUtils::topShadow(this);
+}
+/* $BEGIN_LICENSE
+
+This file is part of Minitube.
+Copyright 2009, Flavio Tordini <flavio.tordini@gmail.com>
+
+Minitube 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.
+
+Minitube 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 Minitube. If not, see <http://www.gnu.org/licenses/>.
+
+$END_LICENSE */
+
#ifndef CATEGORIESVIEW_H
#define CATEGORIESVIEW_H
void appear();
void disappear();
void load();
+
+protected:
+ void paintEvent(QPaintEvent *event);
private slots:
void layoutCategories(const QList<YTCategory> &categories);
private:
void addVideoSourceWidget(VideoSource *videoSource);
QList<YTStandardFeed*> getMainFeeds();
- YTStandardFeed* buildStardardFeed(QString feedId, QString label);
+ YTStandardFeed* buildStardardFeed(QString feedId, QString label, QString time = QString());
QGridLayout *layout;
};
+/* $BEGIN_LICENSE
+
+This file is part of Minitube.
+Copyright 2009, Flavio Tordini <flavio.tordini@gmail.com>
+
+Minitube 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.
+
+Minitube 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 Minitube. If not, see <http://www.gnu.org/licenses/>.
+
+$END_LICENSE */
+
#ifndef SUGGESTER_H
#define SUGGESTER_H
+/* $BEGIN_LICENSE
+
+This file is part of Minitube.
+Copyright 2009, Flavio Tordini <flavio.tordini@gmail.com>
+
+Minitube 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.
+
+Minitube 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 Minitube. If not, see <http://www.gnu.org/licenses/>.
+
+$END_LICENSE */
+
#include "temporary.h"
#include "constants.h"
+/* $BEGIN_LICENSE
+
+This file is part of Minitube.
+Copyright 2009, Flavio Tordini <flavio.tordini@gmail.com>
+
+Minitube 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.
+
+Minitube 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 Minitube. If not, see <http://www.gnu.org/licenses/>.
+
+$END_LICENSE */
+
#ifndef TEMPORARY_H
#define TEMPORARY_H
+/* $BEGIN_LICENSE
+
+This file is part of Minitube.
+Copyright 2009, Flavio Tordini <flavio.tordini@gmail.com>
+
+Minitube 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.
+
+Minitube 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 Minitube. If not, see <http://www.gnu.org/licenses/>.
+
+$END_LICENSE */
+
#include "updatechecker.h"
#include "networkaccess.h"
#include "constants.h"
}
void UpdateChecker::checkForUpdate() {
- QUrl updateUrl(QString(Constants::WEBSITE) + "-ws/release.xml");
+ QUrl updateUrl(QLatin1String(Constants::WEBSITE) + "-ws/release.xml");
updateUrl.addQueryItem("v", Constants::VERSION);
#ifdef APP_MAC
+/* $BEGIN_LICENSE
+
+This file is part of Minitube.
+Copyright 2009, Flavio Tordini <flavio.tordini@gmail.com>
+
+Minitube 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.
+
+Minitube 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 Minitube. If not, see <http://www.gnu.org/licenses/>.
+
+$END_LICENSE */
+
#ifndef UPDATECHECKER_H
#define UPDATECHECKER_H
+/* $BEGIN_LICENSE
+
+This file is part of Minitube.
+Copyright 2009, Flavio Tordini <flavio.tordini@gmail.com>
+
+Minitube 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.
+
+Minitube 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 Minitube. If not, see <http://www.gnu.org/licenses/>.
+
+$END_LICENSE */
+
/****************************************************************************
**
** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
+++ /dev/null
-#include "userview.h"
-
-UserView::UserView(QWidget *parent) : QWidget(parent) {
- layout = new QGridLayout(this);
-}
+++ /dev/null
-#ifndef USERVIEW_H
-#define USERVIEW_H
-
-#include <QtGui>
-#include "view.h"
-
-class VideoSource;
-
-class UserView : public QWidget, public View {
-
- Q_OBJECT
-
-public:
- UserView(QWidget *parent = 0);
-
-signals:
- void activated(VideoSource *standardFeed);
-
-private:
- QGridLayout *layout;
-
-};
-
-#endif // USERVIEW_H
+/* $BEGIN_LICENSE
+
+This file is part of Minitube.
+Copyright 2009, Flavio Tordini <flavio.tordini@gmail.com>
+
+Minitube 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.
+
+Minitube 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 Minitube. If not, see <http://www.gnu.org/licenses/>.
+
+$END_LICENSE */
+
#include "utils.h"
-#ifndef Q_WS_X11
+#ifdef APP_EXTRA
#include "extra.h"
#endif
-QIcon getIcon(const QString &name) {
-#ifdef Q_WS_X11
- return QIcon::fromTheme(name);
-#else
- return Extra::getIcon(name);
-#endif
+QIcon Utils::themeIcon(const QString &name) {
+ if (QIcon::hasThemeIcon(name))
+ return QIcon::fromTheme(name);
+ else
+ return QIcon(QString(":/images/%1.png").arg(name));
}
QIcon Utils::icon(const QString &name) {
-#ifdef Q_WS_X11
- QString themeName = qApp->property("style").toString();
- if (themeName == QLatin1String("Ambiance"))
- return icon(QStringList() << name + "-symbolic" << name);
- else return getIcon(name);
-#else
+#ifdef APP_EXTRA
return Extra::getIcon(name);
+#else
+ return themeIcon(name);
#endif
}
QIcon Utils::icon(const QStringList &names) {
QIcon icon;
foreach (QString name, names) {
- icon = getIcon(name);
+ icon = Utils::themeIcon(name);
if (!icon.availableSizes().isEmpty()) break;
}
return icon;
}
+
+QIcon Utils::tintedIcon(const QString &name, const QColor &color, QList<QSize> sizes) {
+ QIcon i = icon(name);
+ QIcon t;
+ if (sizes.isEmpty()) sizes = i.availableSizes();
+ foreach (QSize size, sizes) {
+ QPixmap pixmap = i.pixmap(size);
+ QImage tintedImage = tinted(pixmap.toImage(), color);
+ t.addPixmap(QPixmap::fromImage(tintedImage));
+ }
+ return t;
+}
+
+QImage Utils::grayscaled(const QImage &image) {
+ QImage img = image;
+ int pixels = img.width() * img.height();
+ unsigned int *data = (unsigned int *)img.bits();
+ for (int i = 0; i < pixels; ++i) {
+ int val = qGray(data[i]);
+ data[i] = qRgba(val, val, val, qAlpha(data[i]));
+ }
+ return img;
+}
+
+QImage Utils::tinted(const QImage &image, const QColor &color,
+ QPainter::CompositionMode mode) {
+ QImage img(image.size(), QImage::Format_ARGB32_Premultiplied);
+ QPainter painter(&img);
+ painter.drawImage(0, 0, grayscaled(image));
+ painter.setCompositionMode(mode);
+ painter.fillRect(img.rect(), color);
+ painter.end();
+ img.setAlphaChannel(image.alphaChannel());
+ return img;
+}
+
+void Utils::setupAction(QAction *action) {
+ // never autorepeat.
+ // unexperienced users tend to keep keys pressed for a "long" time
+ action->setAutoRepeat(false);
+
+ // show keyboard shortcuts in the status bar
+ if (!action->shortcut().isEmpty())
+ action->setStatusTip(action->statusTip() +
+ " (" +
+ action->shortcut().toString(QKeySequence::NativeText) +
+ ")");
+}
+/* $BEGIN_LICENSE
+
+This file is part of Minitube.
+Copyright 2009, Flavio Tordini <flavio.tordini@gmail.com>
+
+Minitube 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.
+
+Minitube 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 Minitube. If not, see <http://www.gnu.org/licenses/>.
+
+$END_LICENSE */
+
#ifndef UTILS_H
#define UTILS_H
class Utils {
public:
+ static QIcon themeIcon(const QString &name);
static QIcon icon(const QString &name);
static QIcon icon(const QStringList &names);
+ static QIcon tintedIcon(const QString &name, const QColor &color,
+ QList<QSize> sizes = QList<QSize>());
+ static void setupAction(QAction *action);
private:
Utils() { }
-
+ static QImage grayscaled(const QImage &image);
+ static QImage tinted(const QImage &image, const QColor &color,
+ QPainter::CompositionMode mode = QPainter::CompositionMode_Screen);
};
#endif // UTILS_H
+/* $BEGIN_LICENSE
+
+This file is part of Minitube.
+Copyright 2009, Flavio Tordini <flavio.tordini@gmail.com>
+
+Minitube 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.
+
+Minitube 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 Minitube. If not, see <http://www.gnu.org/licenses/>.
+
+$END_LICENSE */
+
#include "video.h"
#include "networkaccess.h"
#include <QtNetwork>
#include "videodefinition.h"
+#include "jsfunctions.h"
namespace The {
- NetworkAccess* http();
+NetworkAccess* http();
}
Video::Video() : m_duration(0),
-m_viewCount(-1),
-definitionCode(0),
-elIndex(0),
-loadingStreamUrl(false)
+ m_viewCount(-1),
+ definitionCode(0),
+ elIndex(0),
+ loadingStreamUrl(false)
{ }
Video* Video::clone() {
cloneVideo->m_title = m_title;
cloneVideo->m_description = m_description;
cloneVideo->m_author = m_author;
- cloneVideo->m_authorUri = m_authorUri;
+ cloneVideo->m_userId = m_userId;
cloneVideo->m_webpage = m_webpage;
cloneVideo->m_streamUrl = m_streamUrl;
cloneVideo->m_thumbnail = m_thumbnail;
void Video::setThumbnail(QByteArray bytes) {
m_thumbnail.loadFromData(bytes);
- m_thumbnail = m_thumbnail.scaled(160, 90);
+ if (m_thumbnail.width() > 160)
+ m_thumbnail = m_thumbnail.scaledToWidth(160, Qt::SmoothTransformation);
emit gotThumbnail();
}
return;
}
loadingStreamUrl = true;
+ elIndex = 0;
- // https://develop.participatoryculture.org/trac/democracy/browser/trunk/tv/portable/flashscraper.py
getVideoInfo();
}
void Video::getVideoInfo() {
- static const QStringList elTypes = QStringList() << "&el=embedded" << "&el=vevo" << "&el=detailpage" << "";
-
- if (elIndex > elTypes.size() - 1) {
+ static const QStringList elTypes = QStringList() << "&el=embedded" << "&el=detailpage" << "&el=vevo" << "";
+
+ QUrl videoInfoUrl;
+
+ if (elIndex == elTypes.size()) {
+ videoInfoUrl = QUrl("http://www.youtube.com/get_video_info");
+ videoInfoUrl.addQueryItem("video_id", videoId);
+ videoInfoUrl.addQueryItem("el", "embedded");
+ videoInfoUrl.addQueryItem("gl", "US");
+ videoInfoUrl.addQueryItem("hl", "en");
+ videoInfoUrl.addQueryItem("eurl", "https://youtube.googleapis.com/v/" + videoId);
+ videoInfoUrl.addQueryItem("asv", "3");
+ videoInfoUrl.addQueryItem("sts", "1588");
+ } else if (elIndex > elTypes.size() - 1) {
loadingStreamUrl = false;
emit errorStreamUrl("Cannot get video info");
/*
// see you in scrapWebPage(QByteArray)
*/
return;
+ } else {
+ videoInfoUrl = QUrl(QString(
+ "http://www.youtube.com/get_video_info?video_id=%1%2&ps=default&eurl=&gl=US&hl=en"
+ ).arg(videoId, elTypes.at(elIndex)));
}
- // Get Video Token
- QUrl videoInfoUrl = QUrl(QString(
- "http://www.youtube.com/get_video_info?video_id=%1%2&ps=default&eurl=&gl=US&hl=en"
- ).arg(videoId, elTypes.at(elIndex)));
-
QObject *reply = The::http()->get(videoInfoUrl);
connect(reply, SIGNAL(data(QByteArray)), SLOT(gotVideoInfo(QByteArray)));
connect(reply, SIGNAL(error(QNetworkReply*)), SLOT(errorVideoInfo(QNetworkReply*)));
// see you in gotVideoInfo...
-
}
void Video::gotVideoInfo(QByteArray data) {
QString videoInfo = QString::fromUtf8(data);
-
// qDebug() << "videoInfo" << videoInfo;
// get video token
getVideoInfo();
return;
}
+
QString videoToken = re.cap(1);
while (videoToken.contains('%'))
videoToken = QByteArray::fromPercentEncoding(videoToken.toAscii());
QString fmtUrlMap = re.cap(1);
fmtUrlMap = QByteArray::fromPercentEncoding(fmtUrlMap.toUtf8());
+ parseFmtUrlMap(fmtUrlMap);
+}
+void Video::parseFmtUrlMap(QString fmtUrlMap, bool fromWebPage) {
QSettings settings;
- QString definitionName = settings.value("definition").toString();
+ QString definitionName = settings.value("definition", "360p").toString();
int definitionCode = VideoDefinition::getDefinitionCode(definitionName);
// qDebug() << "fmtUrlMap" << fmtUrlMap;
- QStringList formatUrls = fmtUrlMap.split(",", QString::SkipEmptyParts);
+ QStringList formatUrls = fmtUrlMap.split(',', QString::SkipEmptyParts);
QHash<int, QString> urlMap;
foreach(QString formatUrl, formatUrls) {
// qDebug() << "formatUrl" << formatUrl;
- QStringList urlParams = formatUrl.split("&", QString::SkipEmptyParts);
+ QStringList urlParams = formatUrl.split('&', QString::SkipEmptyParts);
// qDebug() << "urlParams" << urlParams;
int format = -1;
QString url;
QString sig;
foreach(QString urlParam, urlParams) {
+ // qDebug() << urlParam;
if (urlParam.startsWith("itag=")) {
int separator = urlParam.indexOf("=");
format = urlParam.mid(separator + 1).toInt();
int separator = urlParam.indexOf("=");
sig = urlParam.mid(separator + 1);
sig = QByteArray::fromPercentEncoding(sig.toUtf8());
+ } else if (urlParam.startsWith("s=")) {
+ if (fromWebPage || elIndex == 4) {
+ int separator = urlParam.indexOf("=");
+ sig = urlParam.mid(separator + 1);
+ sig = QByteArray::fromPercentEncoding(sig.toUtf8());
+ sig = JsFunctions::instance()->decryptSignature(sig);
+ } else {
+ QObject *reply = The::http()->get(m_webpage);
+ connect(reply, SIGNAL(data(QByteArray)), SLOT(scrapeWebPage(QByteArray)));
+ connect(reply, SIGNAL(error(QNetworkReply*)), SLOT(errorVideoInfo(QNetworkReply*)));
+ // see you in scrapWebPage(QByteArray)
+ return;
+ }
}
}
if (format == -1 || url.isNull()) continue;
url += "&signature=" + sig;
+ if (!url.contains("ratebypass"))
+ url += "&ratebypass=yes";
+
if (format == definitionCode) {
- qDebug() << "Found format" << definitionCode;
+ // qDebug() << "Found format" << definitionCode;
QUrl videoUrl = QUrl::fromEncoded(url.toUtf8(), QUrl::StrictMode);
m_streamUrl = videoUrl;
this->definitionCode = definitionCode;
if (previousIndex < 0) previousIndex = 0;
int definitionCode = definitionCodes.at(previousIndex);
if (urlMap.contains(definitionCode)) {
- qDebug() << "Found format" << definitionCode;
+ // qDebug() << "Found format" << definitionCode;
QString url = urlMap.value(definitionCode);
QUrl videoUrl = QUrl::fromEncoded(url.toUtf8(), QUrl::StrictMode);
m_streamUrl = videoUrl;
}
emit errorStreamUrl(tr("Cannot get video stream for %1").arg(m_webpage.toString()));
-
}
void Video::foundVideoUrl(QString videoToken, int definitionCode) {
// qDebug() << "foundVideoUrl" << videoToken << definitionCode;
QUrl videoUrl = QUrl(QString(
- "http://www.youtube.com/get_video?video_id=%1&t=%2&eurl=&el=&ps=&asv=&fmt=%3"
- ).arg(videoId, videoToken, QString::number(definitionCode)));
+ "http://www.youtube.com/get_video?video_id=%1&t=%2&eurl=&el=&ps=&asv=&fmt=%3"
+ ).arg(videoId, videoToken, QString::number(definitionCode)));
m_streamUrl = videoUrl;
loadingStreamUrl = false;
}
void Video::scrapeWebPage(QByteArray data) {
-
- QString videoHTML = QString::fromUtf8(data);
- QRegExp re(".*, \"t\": \"([^\"]+)\".*");
- bool match = re.exactMatch(videoHTML);
+ QString html = QString::fromUtf8(data);
+ QRegExp re(".*\"url_encoded_fmt_stream_map\": \"([^\"]+)\".*");
+ bool match = re.exactMatch(html);
// on regexp failure, stop and report error
if (!match || re.numCaptures() < 1) {
- emit errorStreamUrl("Error parsing video page");
- loadingStreamUrl = false;
+ qWarning() << "Error parsing video page";
+ // emit errorStreamUrl("Error parsing video page");
+ // loadingStreamUrl = false;
+ elIndex++;
+ getVideoInfo();
return;
}
- QString videoToken = re.cap(1);
- // FIXME proper decode
- videoToken = videoToken.replace("%3D", "=");
-
- // we'll need this in gotHeadHeaders()
- this->videoToken = videoToken;
-
- // qDebug() << "token" << videoToken;
-
- QSettings settings;
- QString definitionName = settings.value("definition").toString();
- int definitionCode = VideoDefinition::getDefinitionCode(definitionName);
- if (definitionCode == 18) {
- // This is assumed always available
- foundVideoUrl(videoToken, 18);
- } else {
- findVideoUrl(definitionCode);
- }
-
+ QString fmtUrlMap = re.cap(1);
+ fmtUrlMap.replace("\\u0026", "&");
+ parseFmtUrlMap(fmtUrlMap, true);
}
void Video::gotHeadHeaders(QNetworkReply* reply) {
this->definitionCode = definitionCode;
QUrl videoUrl = QUrl(QString(
- "http://www.youtube.com/get_video?video_id=%1&t=%2&eurl=&el=&ps=&asv=&fmt=%3"
- ).arg(videoId, videoToken, QString::number(definitionCode)));
+ "http://www.youtube.com/get_video?video_id=%1&t=%2&eurl=&el=&ps=&asv=&fmt=%3"
+ ).arg(videoId, videoToken, QString::number(definitionCode)));
QObject *reply = The::http()->head(videoUrl);
connect(reply, SIGNAL(finished(QNetworkReply*)), SLOT(gotHeadHeaders(QNetworkReply*)));
}
-
QString Video::formattedDuration() const {
QString format = m_duration > 3600 ? "h:mm:ss" : "m:ss";
return QTime().addSecs(m_duration).toString(format);
+/* $BEGIN_LICENSE
+
+This file is part of Minitube.
+Copyright 2009, Flavio Tordini <flavio.tordini@gmail.com>
+
+Minitube 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.
+
+Minitube 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 Minitube. If not, see <http://www.gnu.org/licenses/>.
+
+$END_LICENSE */
+
#ifndef VIDEO_H
#define VIDEO_H
Video();
Video* clone();
- const QString title() const { return m_title; }
+ const QString & title() const { return m_title; }
void setTitle( QString title ) { m_title = title; }
- const QString description() const { return m_description; }
+ const QString & description() const { return m_description; }
void setDescription( QString description ) { m_description = description; }
- const QString author() const { return m_author; }
+ const QString & author() const { return m_author; }
void setAuthor( QString author ) { m_author = author; }
- const QString authorUri() const { return m_authorUri; }
- void setAuthorUri( QString authorUri ) { m_authorUri = authorUri; }
+ const QString & userId() const { return m_userId; }
+ void setUserId( QString userId ) { m_userId = userId; }
- const QUrl webpage() const { return m_webpage; }
+ const QUrl & webpage() const { return m_webpage; }
void setWebpage(QUrl webpage);
void loadThumbnail();
const QPixmap & thumbnail() const { return m_thumbnail; }
- QString thumbnailUrl() { return m_thumbnailUrl; }
+ const QString & thumbnailUrl() { return m_thumbnailUrl; }
void setThumbnailUrl(QString url) { m_thumbnailUrl = url; }
void loadMediumThumbnail();
- QString mediumThumbnailUrl() { return m_mediumThumbnailUrl; }
+ const QString & mediumThumbnailUrl() { return m_mediumThumbnailUrl; }
void setMediumThumbnailUrl(QString url) { m_mediumThumbnailUrl = url; }
int duration() const { return m_duration; }
int viewCount() const { return m_viewCount; }
void setViewCount( int viewCount ) { m_viewCount = viewCount; }
- const QDateTime published() const { return m_published; }
+ const QDateTime & published() const { return m_published; }
void setPublished( QDateTime published ) { m_published = published; }
int getDefinitionCode() const { return definitionCode; }
void loadStreamUrl();
- QUrl getStreamUrl() { return m_streamUrl; }
+ const QUrl & getStreamUrl() { return m_streamUrl; }
- QString id() const { return videoId; }
+ void setId(QString id) { videoId = id; }
+ const QString & id() const { return videoId; }
signals:
void gotThumbnail();
void getVideoInfo();
void findVideoUrl(int definitionCode);
void foundVideoUrl(QString videoToken, int definitionCode);
+ void parseFmtUrlMap(QString fmtUrlMap, bool fromWebPage = false);
QString m_title;
QString m_description;
QString m_author;
- QString m_authorUri;
+ QString m_userId;
QUrl m_webpage;
QUrl m_streamUrl;
QPixmap m_thumbnail;
+/* $BEGIN_LICENSE
+
+This file is part of Minitube.
+Copyright 2009, Flavio Tordini <flavio.tordini@gmail.com>
+
+Minitube 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.
+
+Minitube 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 Minitube. If not, see <http://www.gnu.org/licenses/>.
+
+$END_LICENSE */
+
#include "videoareawidget.h"
#include "videomimedata.h"
-#ifndef Q_WS_X11
+#include "mainwindow.h"
+#ifdef APP_EXTRA
#include "extra.h"
#endif
+#ifdef Q_WS_MAC
+#include "macutils.h"
+#endif
VideoAreaWidget::VideoAreaWidget(QWidget *parent) : QWidget(parent) {
QBoxLayout *vLayout = new QVBoxLayout(this);
stackedLayout = new QStackedLayout();
vLayout->addLayout(stackedLayout);
- snapshotPreview = new QLabel(this);
- stackedLayout->addWidget(snapshotPreview);
+ // snapshotPreview = new QLabel(this);
+ // stackedLayout->addWidget(snapshotPreview);
- setAcceptDrops(true);
+ setAcceptDrops(true);
setMouseTracking(true);
+ setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding);
}
void VideoAreaWidget::setVideoWidget(QWidget *videoWidget) {
void VideoAreaWidget::setLoadingWidget(LoadingWidget *loadingWidget) {
this->loadingWidget = loadingWidget;
stackedLayout->addWidget(loadingWidget);
+ stackedLayout->setCurrentWidget(loadingWidget);
}
void VideoAreaWidget::showVideo() {
stackedLayout->setCurrentWidget(videoWidget);
+ loadingWidget->clear();
}
void VideoAreaWidget::showError(QString message) {
}
void VideoAreaWidget::showLoading(Video *video) {
- stackedLayout->setCurrentWidget(loadingWidget);
- this->loadingWidget->setVideo(video);
messageLabel->hide();
messageLabel->clear();
+ stackedLayout->setCurrentWidget(loadingWidget);
+ loadingWidget->setVideo(video);
}
+/*
void VideoAreaWidget::showSnapshotPreview(QPixmap pixmap) {
snapshotPreview->setPixmap(pixmap);
stackedLayout->setCurrentWidget(snapshotPreview);
-#ifndef Q_WS_X11
+#ifdef APP_EXTRA
Extra::flashInWidget(snapshotPreview);
#endif
QTimer::singleShot(1500, this, SLOT(hideSnapshotPreview()));
void VideoAreaWidget::hideSnapshotPreview() {
stackedLayout->setCurrentWidget(videoWidget);
}
+*/
void VideoAreaWidget::clear() {
- stackedLayout->setCurrentWidget(loadingWidget);
loadingWidget->clear();
messageLabel->hide();
messageLabel->clear();
- snapshotPreview->clear();
+ // snapshotPreview->clear();
+ stackedLayout->setCurrentWidget(loadingWidget);
}
void VideoAreaWidget::mouseDoubleClickEvent(QMouseEvent *event) {
if(event->button() == Qt::RightButton)
emit rightClicked();
+
+ else if (event->button() == Qt::LeftButton) {
+ bool isNormalWindow = !window()->isMaximized() &&
+ !MainWindow::instance()->isReallyFullScreen();
+ if (isNormalWindow) {
+ dragPosition = event->globalPos() - window()->frameGeometry().topLeft();
+ event->accept();
+ }
+ }
+}
+
+void VideoAreaWidget::mouseMoveEvent(QMouseEvent *event) {
+ bool isNormalWindow = !window()->isMaximized() &&
+ !MainWindow::instance()->isReallyFullScreen();
+ if (event->buttons() & Qt::LeftButton && isNormalWindow) {
+ QPoint p = event->globalPos() - dragPosition;
+#ifdef Q_WS_MAC
+ mac::moveWindowTo(window()->winId(), p.x(), p.y());
+#else
+ window()->move(p);
+#endif
+ event->accept();
+ }
}
void VideoAreaWidget::dragEnterEvent(QDragEnterEvent *event) {
+/* $BEGIN_LICENSE
+
+This file is part of Minitube.
+Copyright 2009, Flavio Tordini <flavio.tordini@gmail.com>
+
+Minitube 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.
+
+Minitube 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 Minitube. If not, see <http://www.gnu.org/licenses/>.
+
+$END_LICENSE */
+
#ifndef VIDEOAREAWIDGET_H
#define VIDEOAREAWIDGET_H
void setListModel(PlaylistModel *listModel) {
this->listModel = listModel;
}
- void showSnapshotPreview(QPixmap pixmap);
+ // void showSnapshotPreview(QPixmap pixmap);
+ bool isVideoShown() { return stackedLayout->currentWidget() == videoWidget; }
signals:
void doubleClicked();
protected:
void mouseDoubleClickEvent(QMouseEvent *event);
void mousePressEvent(QMouseEvent *event);
+ void mouseMoveEvent(QMouseEvent *event);
void dragEnterEvent(QDragEnterEvent *event);
void dropEvent(QDropEvent *event);
private slots:
- void hideSnapshotPreview();
+ // void hideSnapshotPreview();
private:
QStackedLayout *stackedLayout;
LoadingWidget *loadingWidget;
PlaylistModel *listModel;
QLabel *messageLabel;
- QLabel *snapshotPreview;
+ // QLabel *snapshotPreview;
+ QPoint dragPosition;
};
+/* $BEGIN_LICENSE
+
+This file is part of Minitube.
+Copyright 2009, Flavio Tordini <flavio.tordini@gmail.com>
+
+Minitube 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.
+
+Minitube 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 Minitube. If not, see <http://www.gnu.org/licenses/>.
+
+$END_LICENSE */
+
#include "videodefinition.h"
QStringList VideoDefinition::getDefinitionNames() {
+/* $BEGIN_LICENSE
+
+This file is part of Minitube.
+Copyright 2009, Flavio Tordini <flavio.tordini@gmail.com>
+
+Minitube 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.
+
+Minitube 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 Minitube. If not, see <http://www.gnu.org/licenses/>.
+
+$END_LICENSE */
+
#ifndef VIDEODEFINITION_H
#define VIDEODEFINITION_H
+/* $BEGIN_LICENSE
+
+This file is part of Minitube.
+Copyright 2009, Flavio Tordini <flavio.tordini@gmail.com>
+
+Minitube 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.
+
+Minitube 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 Minitube. If not, see <http://www.gnu.org/licenses/>.
+
+$END_LICENSE */
+
#include "videomimedata.h"
VideoMimeData::VideoMimeData() {}
+/* $BEGIN_LICENSE
+
+This file is part of Minitube.
+Copyright 2009, Flavio Tordini <flavio.tordini@gmail.com>
+
+Minitube 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.
+
+Minitube 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 Minitube. If not, see <http://www.gnu.org/licenses/>.
+
+$END_LICENSE */
+
#ifndef VIDEOMIMEDATA_H
#define VIDEOMIMEDATA_H
+/* $BEGIN_LICENSE
+
+This file is part of Minitube.
+Copyright 2009, Flavio Tordini <flavio.tordini@gmail.com>
+
+Minitube 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.
+
+Minitube 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 Minitube. If not, see <http://www.gnu.org/licenses/>.
+
+$END_LICENSE */
+
#include "videosource.h"
void VideoSource::setParam(QString name, QVariant value) {
+/* $BEGIN_LICENSE
+
+This file is part of Minitube.
+Copyright 2009, Flavio Tordini <flavio.tordini@gmail.com>
+
+Minitube 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.
+
+Minitube 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 Minitube. If not, see <http://www.gnu.org/licenses/>.
+
+$END_LICENSE */
+
#ifndef VIDEOSOURCE_H
#define VIDEOSOURCE_H
#include <QtCore>
+#include <QAction>
class Video;
virtual void abort() = 0;
virtual const QStringList & getSuggestions() = 0;
virtual QString getName() = 0;
+ virtual QList<QAction*> getActions() { return QList<QAction*>(); }
public slots:
void setParam(QString name, QVariant value);
+/* $BEGIN_LICENSE
+
+This file is part of Minitube.
+Copyright 2009, Flavio Tordini <flavio.tordini@gmail.com>
+
+Minitube 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.
+
+Minitube 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 Minitube. If not, see <http://www.gnu.org/licenses/>.
+
+$END_LICENSE */
+
#include "videosourcewidget.h"
#include "videosource.h"
#include "video.h"
#include "fontutils.h"
VideoSourceWidget::VideoSourceWidget(VideoSource *videoSource, QWidget *parent)
- : QWidget(parent),
- videoSource(videoSource),
- hovered(false),
- pressed(false) {
+ : GridWidget(parent),
+ videoSource(videoSource) {
setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding);
- setCursor(Qt::PointingHandCursor);
- setFocusPolicy(Qt::StrongFocus);
connect(videoSource, SIGNAL(gotVideos(QList<Video*>)),
SLOT(previewVideo(QList<Video*>)), Qt::UniqueConnection);
videoSource->loadVideos(1, 1);
+
+ connect(this, SIGNAL(activated()), SLOT(activate()));
}
void VideoSourceWidget::activate() {
return playIcon;
}
-void VideoSourceWidget::paintEvent(QPaintEvent *) {
+void VideoSourceWidget::paintEvent(QPaintEvent *event) {
+ GridWidget::paintEvent(event);
if (pixmap.isNull()) return;
QPainter p(this);
p.restore();
}
}
-
-void VideoSourceWidget::mouseMoveEvent (QMouseEvent *event) {
- QWidget::mouseMoveEvent(event);
- hovered = rect().contains(event->pos());
-}
-
-void VideoSourceWidget::mousePressEvent(QMouseEvent *event) {
- QWidget::mousePressEvent(event);
- if (event->button() != Qt::LeftButton) return;
- pressed = true;
- update();
-}
-
-void VideoSourceWidget::mouseReleaseEvent(QMouseEvent *event) {
- QWidget::mouseReleaseEvent(event);
- if (event->button() != Qt::LeftButton) return;
- pressed = false;
- if (hovered) emit activated(videoSource);
-}
-
-void VideoSourceWidget::leaveEvent(QEvent *event) {
- QWidget::leaveEvent(event);
- hovered = false;
- update();
-}
-
-void VideoSourceWidget::enterEvent(QEvent *event) {
- QWidget::enterEvent(event);
- hovered = true;
- update();
-}
-
-void VideoSourceWidget::keyReleaseEvent(QKeyEvent *event) {
- if (event->key() == Qt::Key_Return)
- emit activated(videoSource);
-}
+/* $BEGIN_LICENSE
+
+This file is part of Minitube.
+Copyright 2009, Flavio Tordini <flavio.tordini@gmail.com>
+
+Minitube 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.
+
+Minitube 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 Minitube. If not, see <http://www.gnu.org/licenses/>.
+
+$END_LICENSE */
+
#ifndef VIDEOSOURCEWIDGET_H
#define VIDEOSOURCEWIDGET_H
#include <QtGui>
+#include "gridwidget.h"
class Video;
class VideoSource;
-class VideoSourceWidget : public QWidget {
+class VideoSourceWidget : public GridWidget {
Q_OBJECT
void activated(VideoSource *videoSource);
protected:
- void paintEvent(QPaintEvent *);
- void mouseMoveEvent(QMouseEvent *event);
- void mousePressEvent(QMouseEvent *event);
- void mouseReleaseEvent(QMouseEvent *event);
- void enterEvent(QEvent *event);
- void leaveEvent(QEvent *event);
- void keyReleaseEvent(QKeyEvent *event);
+ void paintEvent(QPaintEvent *event);
private slots:
void activate();
QPixmap pixmap;
Video *video;
- bool hovered;
- bool pressed;
};
#endif // VIDEOSOURCEWIDGET_H
+/* $BEGIN_LICENSE
+
+This file is part of Minitube.
+Copyright 2009, Flavio Tordini <flavio.tordini@gmail.com>
+
+Minitube 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.
+
+Minitube 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 Minitube. If not, see <http://www.gnu.org/licenses/>.
+
+$END_LICENSE */
+
#ifndef VIEW_H
#define VIEW_H
virtual QHash<QString, QVariant> metadata() { return QHash<QString, QVariant>(); }
virtual void appear() {}
virtual void disappear() {}
+ QList<QAction*> getViewActions() { return QList<QAction*>(); }
};
+/* $BEGIN_LICENSE
+
+This file is part of Minitube.
+Copyright 2009, Flavio Tordini <flavio.tordini@gmail.com>
+
+Minitube 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.
+
+Minitube 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 Minitube. If not, see <http://www.gnu.org/licenses/>.
+
+$END_LICENSE */
+
#include "ytcategories.h"
#include "networkaccess.h"
#include <QtXml>
+/* $BEGIN_LICENSE
+
+This file is part of Minitube.
+Copyright 2009, Flavio Tordini <flavio.tordini@gmail.com>
+
+Minitube 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.
+
+Minitube 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 Minitube. If not, see <http://www.gnu.org/licenses/>.
+
+$END_LICENSE */
+
#ifndef YTCATEGORIES_H
#define YTCATEGORIES_H
+/* $BEGIN_LICENSE
+
+This file is part of Minitube.
+Copyright 2009, Flavio Tordini <flavio.tordini@gmail.com>
+
+Minitube 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.
+
+Minitube 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 Minitube. If not, see <http://www.gnu.org/licenses/>.
+
+$END_LICENSE */
+
#include "ytfeedreader.h"
#include "video.h"
if (name() == QLatin1String("name")) {
QString author = readElementText();
video->setAuthor(author);
- } else if (name() == QLatin1String("uri")) {
- QString uri = readElementText();
- int i = uri.lastIndexOf('/');
- if (i != -1) uri = uri.mid(i+1);
- video->setAuthorUri(uri);
+ } else if (name() == QLatin1String("userId")) {
+ QString userId = readElementText();
+ video->setUserId(userId);
} else skipCurrentElement();
} else if (name() == QLatin1String("published")) {
video->setPublished(QDateTime::fromString(readElementText(), Qt::ISODate));
+/* $BEGIN_LICENSE
+
+This file is part of Minitube.
+Copyright 2009, Flavio Tordini <flavio.tordini@gmail.com>
+
+Minitube 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.
+
+Minitube 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 Minitube. If not, see <http://www.gnu.org/licenses/>.
+
+$END_LICENSE */
+
#ifndef YTFEEDREADER_H
#define YTFEEDREADER_H
+/* $BEGIN_LICENSE
+
+This file is part of Minitube.
+Copyright 2009, Flavio Tordini <flavio.tordini@gmail.com>
+
+Minitube 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.
+
+Minitube 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 Minitube. If not, see <http://www.gnu.org/licenses/>.
+
+$END_LICENSE */
+
#include "ytregions.h"
YTRegions::YTRegions() : QObject() { }
+/* $BEGIN_LICENSE
+
+This file is part of Minitube.
+Copyright 2009, Flavio Tordini <flavio.tordini@gmail.com>
+
+Minitube 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.
+
+Minitube 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 Minitube. If not, see <http://www.gnu.org/licenses/>.
+
+$END_LICENSE */
+
#ifndef YTREGIONS_H
#define YTREGIONS_H
class YTRegions : public QObject {
+ Q_OBJECT
+
public:
static const QList<YTRegion> & list();
static const YTRegion & localRegion();
+/* $BEGIN_LICENSE
+
+This file is part of Minitube.
+Copyright 2009, Flavio Tordini <flavio.tordini@gmail.com>
+
+Minitube 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.
+
+Minitube 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 Minitube. If not, see <http://www.gnu.org/licenses/>.
+
+$END_LICENSE */
+
#include "ytsearch.h"
#include "ytfeedreader.h"
#include "constants.h"
#include "networkaccess.h"
#include "searchparams.h"
#include "video.h"
+#include "utils.h"
+#include "ytuser.h"
namespace The {
- NetworkAccess* http();
+NetworkAccess* http();
+QHash<QString, QAction*>* globalActions();
}
YTSearch::YTSearch(SearchParams *searchParams, QObject *parent) :
if (name.isEmpty() && !searchParams->author().isEmpty()) {
if (videos.isEmpty()) name = searchParams->author();
- else name = videos.first()->author();
+ else {
+ name = videos.first()->author();
+ // also grab the userId
+ userId = videos.first()->userId();
+ }
emit nameChanged(name);
}
if (re.exactMatch(url)) return re.cap(1);
return QString();
}
+
+QList<QAction*> YTSearch::getActions() {
+ QList<QAction*> channelActions;
+ if (searchParams->author().isEmpty())
+ return channelActions;
+ channelActions << The::globalActions()->value("subscribe-channel");
+ return channelActions;
+}
+/* $BEGIN_LICENSE
+
+This file is part of Minitube.
+Copyright 2009, Flavio Tordini <flavio.tordini@gmail.com>
+
+Minitube 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.
+
+Minitube 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 Minitube. If not, see <http://www.gnu.org/licenses/>.
+
+$END_LICENSE */
+
#ifndef YTSEARCH_H
#define YTSEARCH_H
return searchParams == other.getSearchParams();
}
+ QList<QAction*> getActions();
+
private slots:
void parseResults(QByteArray data);
void requestError(QNetworkReply *reply);
bool aborted;
QStringList suggestions;
QString name;
+
+ QString userId;
};
#endif // YTSEARCH_H
+/* $BEGIN_LICENSE
+
+This file is part of Minitube.
+Copyright 2009, Flavio Tordini <flavio.tordini@gmail.com>
+
+Minitube 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.
+
+Minitube 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 Minitube. If not, see <http://www.gnu.org/licenses/>.
+
+$END_LICENSE */
+
#include "ytsinglevideosource.h"
#include <QtXml>
#include "networkaccess.h"
+/* $BEGIN_LICENSE
+
+This file is part of Minitube.
+Copyright 2009, Flavio Tordini <flavio.tordini@gmail.com>
+
+Minitube 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.
+
+Minitube 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 Minitube. If not, see <http://www.gnu.org/licenses/>.
+
+$END_LICENSE */
+
#ifndef YTSINGLEVIDEOSOURCE_H
#define YTSINGLEVIDEOSOURCE_H
+/* $BEGIN_LICENSE
+
+This file is part of Minitube.
+Copyright 2009, Flavio Tordini <flavio.tordini@gmail.com>
+
+Minitube 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.
+
+Minitube 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 Minitube. If not, see <http://www.gnu.org/licenses/>.
+
+$END_LICENSE */
+
#include "ytstandardfeed.h"
#include <QtXml>
#include "networkaccess.h"
QUrl url(s);
url.addQueryItem("v", "2");
- if (feedId != "most_shared")
- url.addQueryItem("time", "today");
+ if (feedId != "most_shared" && feedId != "on_the_web") {
+ QString t = time;
+ if (t.isEmpty()) t = "today";
+ url.addQueryItem("time", t);
+ }
url.addQueryItem("max-results", QString::number(max));
url.addQueryItem("start-index", QString::number(skip));
+/* $BEGIN_LICENSE
+
+This file is part of Minitube.
+Copyright 2009, Flavio Tordini <flavio.tordini@gmail.com>
+
+Minitube 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.
+
+Minitube 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 Minitube. If not, see <http://www.gnu.org/licenses/>.
+
+$END_LICENSE */
+
#ifndef YTSTANDARDFEED_H
#define YTSTANDARDFEED_H
QString getLabel() { return label; }
void setLabel(QString label) { this->label = label; }
+ QString getTime() { return time; }
+ void setTime(QString time) { this->time = time; }
+
void loadVideos(int max, int skip);
void abort();
const QStringList & getSuggestions();
QString regionId;
QString category;
QString label;
+ QString time;
bool aborted;
};
+/* $BEGIN_LICENSE
+
+This file is part of Minitube.
+Copyright 2009, Flavio Tordini <flavio.tordini@gmail.com>
+
+Minitube 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.
+
+Minitube 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 Minitube. If not, see <http://www.gnu.org/licenses/>.
+
+$END_LICENSE */
+
#include "ytsuggester.h"
#include <QtXml>
#include "networkaccess.h"
+/* $BEGIN_LICENSE
+
+This file is part of Minitube.
+Copyright 2009, Flavio Tordini <flavio.tordini@gmail.com>
+
+Minitube 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.
+
+Minitube 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 Minitube. If not, see <http://www.gnu.org/licenses/>.
+
+$END_LICENSE */
+
#ifndef YTSUGGESTER_H
#define YTSUGGESTER_H
--- /dev/null
+/* $BEGIN_LICENSE
+
+This file is part of Minitube.
+Copyright 2009, Flavio Tordini <flavio.tordini@gmail.com>
+
+Minitube 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.
+
+Minitube 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 Minitube. If not, see <http://www.gnu.org/licenses/>.
+
+$END_LICENSE */
+
+#include "ytuser.h"
+#include "networkaccess.h"
+#include "database.h"
+#include <QtSql>
+
+namespace The {
+NetworkAccess* http();
+}
+
+YTUser::YTUser(QString userId, QObject *parent) : QObject(parent),
+ id(0),
+ userId(userId),
+ loadingThumbnail(false),
+ notifyCount(0),
+ checked(0),
+ watched(0),
+ loaded(0),
+ loading(false) { }
+
+QHash<QString, YTUser*> YTUser::cache;
+
+YTUser* YTUser::forId(QString userId) {
+ if (userId.isEmpty()) return 0;
+
+ if (cache.contains(userId))
+ return cache.value(userId);
+
+ QSqlDatabase db = Database::instance().getConnection();
+ QSqlQuery query(db);
+ query.prepare("select id,name,description,thumb_url,notify_count,watched,checked,loaded "
+ "from subscriptions where user_id=?");
+ query.bindValue(0, userId);
+ bool success = query.exec();
+ if (!success) qWarning() << query.lastQuery() << query.lastError().text();
+
+ YTUser* user = 0;
+ if (query.next()) {
+ user = new YTUser(userId);
+ user->id = query.value(0).toInt();
+ user->displayName = query.value(1).toString();
+ user->description = query.value(2).toString();
+ user->thumbnailUrl = query.value(3).toString();
+ user->notifyCount = query.value(4).toInt();
+ user->watched = query.value(5).toUInt();
+ user->checked = query.value(6).toUInt();
+ user->loaded = query.value(7).toUInt();
+ user->thumbnail = QPixmap(user->getThumbnailLocation());
+ user->maybeLoadfromAPI();
+ cache.insert(userId, user);
+ }
+
+ return user;
+}
+
+void YTUser::maybeLoadfromAPI() {
+ if (loading) return;
+ if (userId.isEmpty()) return;
+
+ uint now = QDateTime::currentDateTime().toTime_t();
+ static const int refreshInterval = 60 * 60 * 24 * 10;
+ if (loaded > now - refreshInterval) return;
+
+ loading = true;
+
+ QUrl url("http://gdata.youtube.com/feeds/api/users/" + userId);
+ url.addQueryItem("v", "2");
+ QObject *reply = The::http()->get(url);
+ connect(reply, SIGNAL(data(QByteArray)), SLOT(parseResponse(QByteArray)));
+ connect(reply, SIGNAL(error(QNetworkReply*)), SLOT(requestError(QNetworkReply*)));
+}
+
+void YTUser::parseResponse(QByteArray bytes) {
+ QXmlStreamReader xml(bytes);
+ xml.readNextStartElement();
+ if (xml.name() == QLatin1String("entry"))
+ while(xml.readNextStartElement()) {
+ const QStringRef n = xml.name();
+ if (n == QLatin1String("summary"))
+ description = xml.readElementText().simplified();
+ else if (n == QLatin1String("title"))
+ displayName = xml.readElementText();
+ else if (n == QLatin1String("thumbnail")) {
+ thumbnailUrl = xml.attributes().value("url").toString();
+ xml.skipCurrentElement();
+ } else if (n == QLatin1String("username"))
+ userName = xml.readElementText();
+ else xml.skipCurrentElement();
+ }
+
+ if (xml.hasError()) {
+ emit error(xml.errorString());
+ qWarning() << xml.errorString();
+ }
+
+ emit infoLoaded();
+ storeInfo();
+ loading = false;
+}
+
+void YTUser::loadThumbnail() {
+ if (loadingThumbnail) return;
+ if (thumbnailUrl.isEmpty()) return;
+ loadingThumbnail = true;
+
+#ifdef Q_WS_WIN
+ thumbnailUrl.replace(QLatin1String("https://"), QLatin1String("http://"));
+#endif
+
+ QUrl url(thumbnailUrl);
+ QObject *reply = The::http()->get(url);
+ connect(reply, SIGNAL(data(QByteArray)), SLOT(storeThumbnail(QByteArray)));
+ connect(reply, SIGNAL(error(QNetworkReply*)), SLOT(requestError(QNetworkReply*)));
+}
+
+const QString & YTUser::getThumbnailDir() {
+ static const QString thumbDir = QDesktopServices::storageLocation(
+ QDesktopServices::DataLocation) + "/channels/";
+ return thumbDir;
+}
+
+QString YTUser::getThumbnailLocation() {
+ return getThumbnailDir() + userId;
+}
+
+void YTUser::storeThumbnail(QByteArray bytes) {
+ thumbnail.loadFromData(bytes);
+ static const int maxWidth = 88;
+
+ QDir dir;
+ dir.mkpath(getThumbnailDir());
+
+ if (thumbnail.width() > maxWidth) {
+ thumbnail = thumbnail.scaledToWidth(maxWidth, Qt::SmoothTransformation);
+ thumbnail.save(getThumbnailLocation(), "JPG");
+ } else {
+ QFile file(getThumbnailLocation());
+ if (!file.open(QIODevice::WriteOnly))
+ qWarning() << "Error opening file for writing" << file.fileName();
+ QDataStream stream(&file);
+ stream.writeRawData(bytes.constData(), bytes.size());
+ }
+
+ emit thumbnailLoaded();
+ loadingThumbnail = false;
+}
+
+void YTUser::requestError(QNetworkReply *reply) {
+ emit error(reply->errorString());
+ qWarning() << reply->errorString();
+ loading = false;
+ loadingThumbnail = false;
+}
+
+void YTUser::storeInfo() {
+ if (userId.isEmpty()) return;
+ QSqlDatabase db = Database::instance().getConnection();
+ QSqlQuery query(db);
+ query.prepare("update subscriptions set "
+ "user_name=?, name=?, description=?, thumb_url=?, loaded=? "
+ "where user_id=?");
+ qDebug() << userName;
+ query.bindValue(0, userName);
+ query.bindValue(1, displayName);
+ query.bindValue(2, description);
+ query.bindValue(3, thumbnailUrl);
+ query.bindValue(4, QDateTime::currentDateTime().toTime_t());
+ query.bindValue(5, userId);
+ bool success = query.exec();
+ if (!success) qWarning() << query.lastQuery() << query.lastError().text();
+
+ loadThumbnail();
+}
+
+void YTUser::subscribe(QString userId) {
+ if (userId.isEmpty()) return;
+
+ uint now = QDateTime::currentDateTime().toTime_t();
+
+ QSqlDatabase db = Database::instance().getConnection();
+ QSqlQuery query(db);
+ query.prepare("insert into subscriptions "
+ "(user_id,added,watched,checked,views,notify_count)"
+ " values (?,?,?,0,0,0)");
+ query.bindValue(0, userId);
+ query.bindValue(1, now);
+ query.bindValue(2, now);
+ bool success = query.exec();
+ if (!success) qWarning() << query.lastQuery() << query.lastError().text();
+
+ // This will call maybeLoadFromApi
+ YTUser::forId(userId);
+}
+
+void YTUser::unsubscribe(QString userId) {
+ if (userId.isEmpty()) return;
+ QSqlDatabase db = Database::instance().getConnection();
+ QSqlQuery query(db);
+ query.prepare("delete from subscriptions where user_id=?");
+ query.bindValue(0, userId);
+ bool success = query.exec();
+ if (!success) qWarning() << query.lastQuery() << query.lastError().text();
+
+ query = QSqlQuery(db);
+ query.prepare("delete from subscriptions_videos where user_id=?");
+ query.bindValue(0, userId);
+ success = query.exec();
+ if (!success) qWarning() << query.lastQuery() << query.lastError().text();
+
+ YTUser *user = cache.take(userId);
+ if (user) user->deleteLater();
+}
+
+bool YTUser::isSubscribed(QString userId) {
+ if (!Database::exists()) return false;
+ if (userId.isEmpty()) return false;
+ QSqlDatabase db = Database::instance().getConnection();
+ QSqlQuery query(db);
+ query.prepare("select count(*) from subscriptions where user_id=?");
+ query.bindValue(0, userId);
+ bool success = query.exec();
+ if (!success) qWarning() << query.lastQuery() << query.lastError().text();
+ if (query.next())
+ return query.value(0).toInt() > 0;
+ return false;
+}
+
+void YTUser::updateChecked() {
+ if (userId.isEmpty()) return;
+
+ uint now = QDateTime::currentDateTime().toTime_t();
+ checked = now;
+
+ QSqlDatabase db = Database::instance().getConnection();
+ QSqlQuery query(db);
+ query.prepare("update subscriptions set checked=? where user_id=?");
+ query.bindValue(0, QDateTime::currentDateTime().toTime_t());
+ query.bindValue(1, userId);
+ bool success = query.exec();
+ if (!success) qWarning() << query.lastQuery() << query.lastError().text();
+}
+
+void YTUser::updateWatched() {
+ if (userId.isEmpty()) return;
+
+ uint now = QDateTime::currentDateTime().toTime_t();
+ watched = now;
+ notifyCount = 0;
+
+ QSqlDatabase db = Database::instance().getConnection();
+ QSqlQuery query(db);
+ query.prepare("update subscriptions set watched=?, notify_count=0, views=views+1 where user_id=?");
+ query.bindValue(0, now);
+ query.bindValue(1, userId);
+ bool success = query.exec();
+ if (!success) qWarning() << query.lastQuery() << query.lastError().text();
+}
+
+void YTUser::storeNotifyCount(int count) {
+ notifyCount = count;
+
+ QSqlDatabase db = Database::instance().getConnection();
+ QSqlQuery query(db);
+ query.prepare("update subscriptions set notify_count=? where user_id=?");
+ query.bindValue(0, count);
+ query.bindValue(1, userId);
+ bool success = query.exec();
+ if (!success) qWarning() << query.lastQuery() << query.lastError().text();
+}
+
+bool YTUser::updateNotifyCount() {
+ QSqlDatabase db = Database::instance().getConnection();
+ QSqlQuery query(db);
+ query.prepare("select count(*) from subscriptions_videos "
+ "where channel_id=? and added>? and published>? and watched=0");
+ query.bindValue(0, id);
+ query.bindValue(1, watched);
+ query.bindValue(2, watched);
+ bool success = query.exec();
+ if (!success) qWarning() << query.lastQuery() << query.lastError().text();
+ if (!query.next()) {
+ qWarning() << __PRETTY_FUNCTION__ << "Count failed";
+ return false;
+ }
+ int count = query.value(0).toInt();
+ storeNotifyCount(count);
+ return count != notifyCount;
+}
--- /dev/null
+/* $BEGIN_LICENSE
+
+This file is part of Minitube.
+Copyright 2009, Flavio Tordini <flavio.tordini@gmail.com>
+
+Minitube 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.
+
+Minitube 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 Minitube. If not, see <http://www.gnu.org/licenses/>.
+
+$END_LICENSE */
+
+#ifndef YTUSER_H
+#define YTUSER_H
+
+#include <QtGui>
+#include <QtNetwork>
+
+class YTUser : public QObject {
+
+ Q_OBJECT
+
+public:
+ static YTUser* forId(QString userId);
+ static void subscribe(QString userId);
+ static void unsubscribe(QString userId);
+ static bool isSubscribed(QString userId);
+
+ int getId() { return id; }
+ void setId(int id) { this->id = id; }
+
+ uint getChecked() { return checked; }
+ void updateChecked();
+
+ uint getWatched() const { return watched; }
+ void setWatched(uint watched) { this->watched = watched; }
+ void updateWatched();
+
+ int getNotifyCount() const { return notifyCount; }
+ void setNotifyCount(int count) { notifyCount = count; }
+ void storeNotifyCount(int count);
+ bool updateNotifyCount();
+
+ QString getUserId() const { return userId; }
+ QString getUserName() const { return userName; }
+ QString getDisplayName() const { return displayName; }
+ QString getDescription() const { return description; }
+ QString getCountryCode() const { return countryCode; }
+
+ void loadThumbnail();
+ const QString & getThumbnailDir();
+ QString getThumbnailLocation();
+ const QPixmap & getThumbnail() { return thumbnail; }
+
+ static QList<YTUser*> getCachedUsers() { return cache.values(); }
+
+signals:
+ void infoLoaded();
+ void thumbnailLoaded();
+ void error(QString message);
+
+private slots:
+ void parseResponse(QByteArray bytes);
+ void requestError(QNetworkReply *reply);
+ void storeThumbnail(QByteArray bytes);
+
+private:
+ YTUser(QString userId, QObject *parent = 0);
+ void maybeLoadfromAPI();
+ void storeInfo();
+
+ static QHash<QString, YTUser*> cache;
+
+ int id;
+ QString userId;
+ QString userName;
+ QString displayName;
+ QString description;
+ QString countryCode;
+
+ QString thumbnailUrl;
+ QPixmap thumbnail;
+ bool loadingThumbnail;
+
+ int notifyCount;
+ uint checked;
+ uint watched;
+ uint loaded;
+ bool loading;
+};
+
+// This is required in order to use QPointer<YTUser> as a QVariant
+typedef QPointer<YTUser> YTUserPointer;
+Q_DECLARE_METATYPE(YTUserPointer)
+
+#endif // YTUSER_H
width: 0;
border-style: none;
}
-
-/* Ambiance */
-
-MainWindow[style="Ambiance"] > QToolBar {
- background: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1,
- stop: 0 #3c3b37, stop: 1 #474641);
-}
-
-MainWindow[style="Ambiance"] > QToolBar QToolButton,
-MainWindow[style="Ambiance"] > QToolBar QLabel {
- color: #dfdbd2;
-}
-
-MainWindow[style="Ambiance"] > QToolBar QToolButton:disabled {
- color: #8f8c86;
-}
-
-MainWindow[style="Ambiance"] > QToolBar QToolButton:hover {
- background: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1,
- stop: 0 #474641, stop: 1 #3c3b37);
- border-radius: 5px;
- border: 1px outset #3c3b37;
-}
-
-MainWindow[style="Ambiance"] > QToolBar QToolButton:pressed,
-MainWindow[style="Ambiance"] > QToolBar QToolButton:checked {
- background: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1,
- stop: 0 #3b3a36, stop: 1 #363531);
- border-radius: 5px;
- border: 1px inset #292825;
-}
-
-
-MainWindow[style="Ambiance"] QSlider::groove:horizontal {
- border: 1px solid #808080;
- height: 8px;
- background: qlineargradient(x1:0, y1:0, x2:0, y2:1, stop:0 #B1B1B1, stop:1 #ccc);
- border-radius: 5px;
-}
-
-MainWindow[style="Ambiance"] QSlider::sub-page:horizontal {
- border: 1px solid #808080;
- height: 8px;
- background: qlineargradient(x1:0, y1:0, x2:0, y2:1, stop:0 #6c6c6c, stop:1 #B1B1B1);
- border-radius: 5px;
-}
-
-MainWindow[style="Ambiance"] QSlider::handle:horizontal {
- border: 1px solid #5c5c5c;
- width: 14px;
- height: 16px;
- margin: -4px 0;
- border-radius: 8px;
- background: qradialgradient(
- cx: .5, cy: .5,
- fx: .33, fy: .33,
- radius: .5,
- stop: 0 #fff, stop: 1 #ccc);
-}
-
-MainWindow[style="Ambiance"] QSlider::handle:pressed {
- background: qradialgradient(
- cx: .5, cy: .5,
- fx: .33, fy: .33,
- radius: .5,
- stop: 0 #ccc, stop: 1 #9c9c9c);
-}
-
-MainWindow[style="Ambiance"] Phonon--SeekSlider QSlider::sub-page:horizontal {
- border: 1px solid #808080;
- background: qlineargradient(x1:0, y1:0, x2:0, y2:1, stop:0 #B1B1B1, stop:1 #6c6c6c);
-}