]> git.sur5r.net Git - minitube/commitdiff
New upstream version 2.9 upstream/2.9
authorJakob Haufe <sur5r@sur5r.net>
Sat, 11 Aug 2018 17:27:43 +0000 (17:27 +0000)
committerJakob Haufe <sur5r@sur5r.net>
Sat, 11 Aug 2018 17:27:43 +0000 (17:27 +0000)
285 files changed:
.clang-format [new file with mode: 0644]
.gitignore
CHANGES
README.md
empty.ts
images/64x64/app.png [new file with mode: 0644]
images/64x64/app@2x.png [new file with mode: 0644]
images/audio-volume-high.png [new file with mode: 0644]
images/audio-volume-high@2x.png [new file with mode: 0644]
images/audio-volume-muted.png [new file with mode: 0644]
images/audio-volume-muted@2x.png [new file with mode: 0644]
images/badge.png [deleted file]
images/badge3.png [deleted file]
images/badge3@2x.png [deleted file]
images/badge4.png [deleted file]
images/badge4@2x.png [deleted file]
images/badge@2x.png [deleted file]
images/bookmark-new.png [new file with mode: 0644]
images/bookmark-new@2x.png [new file with mode: 0644]
images/bookmark-new_active.png [new file with mode: 0644]
images/bookmark-new_active@2x.png [new file with mode: 0644]
images/bookmark-remove.png [new file with mode: 0644]
images/bookmark-remove@2x.png [new file with mode: 0644]
images/content-loading.png [new file with mode: 0644]
images/content-loading@2x.png [new file with mode: 0644]
images/document-save.png [new file with mode: 0644]
images/document-save@2x.png [new file with mode: 0644]
images/edit-clear.png [new file with mode: 0644]
images/edit-find.png [new file with mode: 0644]
images/email.png [new file with mode: 0644]
images/email@2x.png [new file with mode: 0644]
images/facebook.png [new file with mode: 0644]
images/facebook@2x.png [new file with mode: 0644]
images/go-next.png [new file with mode: 0644]
images/go-next@2x.png [new file with mode: 0644]
images/go-next_active.png [new file with mode: 0644]
images/go-next_active@2x.png [new file with mode: 0644]
images/go-previous.png [new file with mode: 0644]
images/go-previous@2x.png [new file with mode: 0644]
images/go-previous_active.png [new file with mode: 0644]
images/go-previous_active@2x.png [new file with mode: 0644]
images/go-top.png [new file with mode: 0644]
images/go-top@2x.png [new file with mode: 0644]
images/link.png [new file with mode: 0644]
images/link@2x.png [new file with mode: 0644]
images/media-playback-pause.png [new file with mode: 0644]
images/media-playback-pause@2x.png [new file with mode: 0644]
images/media-playback-start.png [new file with mode: 0644]
images/media-playback-start@2x.png [new file with mode: 0644]
images/media-playback-stop.png [new file with mode: 0644]
images/media-playback-stop@2x.png [new file with mode: 0644]
images/media-skip-forward.png [new file with mode: 0644]
images/media-skip-forward@2x.png [new file with mode: 0644]
images/safesearch.png [new file with mode: 0644]
images/safesearch@2x.png [new file with mode: 0644]
images/system-search.png [new file with mode: 0644]
images/system-search_active.png [new file with mode: 0644]
images/system-search_selected.png [new file with mode: 0644]
images/twitter.png [new file with mode: 0644]
images/twitter@2x.png [new file with mode: 0644]
images/video-display.png [new file with mode: 0644]
images/video-display@2x.png [new file with mode: 0644]
images/view-fullscreen.png [new file with mode: 0644]
images/view-fullscreen@2x.png [new file with mode: 0644]
images/view-list.png [new file with mode: 0644]
images/view-list@2x.png [new file with mode: 0644]
images/view-more.png [new file with mode: 0644]
images/view-more@2x.png [new file with mode: 0644]
images/view-refresh.png [new file with mode: 0644]
images/view-refresh_active.png [new file with mode: 0644]
images/view-refresh_selected.png [new file with mode: 0644]
images/view-restore.png [new file with mode: 0644]
images/view-restore@2x.png [new file with mode: 0644]
images/window-close.png [new file with mode: 0644]
images/window-close_active.png [new file with mode: 0644]
images/window-close_selected.png [new file with mode: 0644]
locale/ar.ts
locale/ast.ts
locale/be.ts
locale/bg_BG.ts
locale/ca.ts
locale/ca_ES.ts
locale/cs_CZ.ts
locale/da.ts
locale/de_DE.ts
locale/el.ts
locale/es.ts
locale/es_AR.ts
locale/es_ES.ts
locale/es_MX.ts
locale/fi.ts
locale/fi_FI.ts
locale/fr.ts
locale/gl.ts
locale/he_IL.ts
locale/hr.ts
locale/hu.ts
locale/ia.ts [deleted file]
locale/id.ts
locale/it.ts
locale/ja_JP.ts
locale/ko_KR.ts
locale/ky.ts
locale/locale.pri
locale/ms_MY.ts
locale/nb.ts
locale/nl.ts
locale/nn.ts
locale/pl.ts
locale/pl_PL.ts
locale/pt.ts
locale/pt_BR.ts
locale/ro.ts
locale/ru.ts
locale/sk.ts
locale/sl.ts
locale/sq.ts
locale/sr.ts [new file with mode: 0644]
locale/sv_SE.ts
locale/th.ts
locale/tr.ts
locale/uk.ts
locale/uk_UA.ts
locale/vi.ts
locale/zh_CN.ts
locale/zh_TW.ts
minitube.appdata.xml [new file with mode: 0644]
minitube.pro
resources.qrc
src/aboutview.cpp
src/aboutview.h
src/aggregatevideosource.cpp
src/aggregatevideosource.h
src/appwidget.cpp [new file with mode: 0644]
src/appwidget.h [new file with mode: 0644]
src/autocomplete.cpp
src/autocomplete.h
src/channelaggregator.cpp
src/channelaggregator.h
src/channelitemdelegate.h
src/channellistview.h
src/channelmodel.cpp
src/channelmodel.h
src/channelsuggest.cpp
src/channelsuggest.h
src/channelview.cpp
src/channelview.h
src/clickablelabel.cpp [new file with mode: 0644]
src/clickablelabel.h [new file with mode: 0644]
src/compatibility/pathsservice.cpp [deleted file]
src/compatibility/pathsservice.h [deleted file]
src/compatibility/qurlqueryhelper.h [deleted file]
src/database.cpp
src/datautils.cpp
src/diskcache.cpp
src/downloaditem.cpp
src/downloadlistview.h
src/downloadmanager.cpp
src/downloadmanager.h
src/downloadmodel.cpp
src/downloadsettings.cpp
src/downloadsettings.h
src/downloadview.cpp
src/downloadview.h
src/exlineedit.cpp
src/exlineedit.h
src/fontutils.cpp
src/fontutils.h
src/global.h [deleted file]
src/globalshortcuts.h
src/gnomeglobalshortcutbackend.cpp
src/gridwidget.h
src/homeview.cpp
src/homeview.h
src/http/README.md [new file with mode: 0644]
src/http/http.pri [new file with mode: 0644]
src/http/src/cachedhttp.cpp [new file with mode: 0644]
src/http/src/cachedhttp.h [new file with mode: 0644]
src/http/src/http.cpp [new file with mode: 0644]
src/http/src/http.h [new file with mode: 0644]
src/http/src/localcache.cpp [new file with mode: 0644]
src/http/src/localcache.h [new file with mode: 0644]
src/http/src/throttledhttp.cpp [new file with mode: 0644]
src/http/src/throttledhttp.h [new file with mode: 0644]
src/httputils.cpp [new file with mode: 0644]
src/httputils.h [new file with mode: 0644]
src/iconutils.cpp
src/iconutils.h
src/idle/idle.pri [new file with mode: 0644]
src/idle/src/idle.h [new file with mode: 0644]
src/idle/src/idle_linux.cpp [new file with mode: 0644]
src/idle/src/idle_mac.cpp [new file with mode: 0644]
src/idle/src/idle_win.cpp [new file with mode: 0644]
src/jsfunctions.cpp
src/jsfunctions.h
src/loadingwidget.cpp
src/loadingwidget.h
src/main.cpp
src/mainwindow.cpp
src/mainwindow.h
src/mediaview.cpp
src/mediaview.h
src/minisplitter.cpp
src/minisplitter.h
src/networkaccess.cpp [deleted file]
src/networkaccess.h [deleted file]
src/paginatedvideosource.cpp
src/paginatedvideosource.h
src/painterutils.cpp
src/painterutils.h
src/playlistitemdelegate.cpp
src/playlistitemdelegate.h
src/playlistmodel.cpp
src/playlistmodel.h
src/playlistview.cpp
src/playlistview.h
src/refinesearchbutton.h
src/refinesearchwidget.cpp
src/refinesearchwidget.h
src/regionsview.cpp
src/regionsview.h
src/searchlineedit.cpp
src/searchlineedit.h
src/searchparams.cpp
src/searchparams.h
src/searchview.cpp
src/searchview.h
src/searchwidget.h
src/seekslider.h
src/segmentedcontrol.cpp
src/segmentedcontrol.h
src/sharetoolbar.cpp [new file with mode: 0644]
src/sharetoolbar.h [new file with mode: 0644]
src/sidebarheader.cpp
src/sidebarheader.h
src/sidebarwidget.cpp
src/sidebarwidget.h
src/snapshotpreview.cpp
src/snapshotpreview.h
src/snapshotsettings.cpp
src/snapshotsettings.h
src/spacer.cpp
src/spacer.h
src/standardfeedsview.cpp
src/standardfeedsview.h
src/suggester.h
src/temporary.cpp
src/toolbarmenu.cpp [new file with mode: 0644]
src/toolbarmenu.h [new file with mode: 0644]
src/updatechecker.cpp
src/video.cpp
src/video.h
src/videoareawidget.cpp
src/videoareawidget.h
src/videodefinition.cpp
src/videodefinition.h
src/videomimedata.cpp
src/videomimedata.h
src/videosource.h
src/videosourcewidget.cpp
src/videosourcewidget.h
src/view.h
src/yt3.cpp
src/yt3.h
src/yt3listparser.cpp
src/yt3listparser.h
src/ytcategories.cpp
src/ytcategories.h
src/ytchannel.cpp
src/ytchannel.h
src/ytfeedreader.cpp [deleted file]
src/ytfeedreader.h [deleted file]
src/ytregions.cpp
src/ytregions.h
src/ytsearch.cpp
src/ytsearch.h
src/ytsinglevideosource.cpp
src/ytsinglevideosource.h
src/ytstandardfeed.cpp
src/ytstandardfeed.h
src/ytsuggester.cpp
src/ytsuggester.h
src/ytvideo.cpp [new file with mode: 0644]
src/ytvideo.h [new file with mode: 0644]
style.css

diff --git a/.clang-format b/.clang-format
new file mode 100644 (file)
index 0000000..2409f52
--- /dev/null
@@ -0,0 +1,11 @@
+BasedOnStyle: LLVM
+IndentWidth: 4
+AccessModifierOffset: -4
+ColumnLimit: 100
+AllowShortIfStatementsOnASingleLine: true
+AllowShortFunctionsOnASingleLine: Inline
+KeepEmptyLinesAtTheStartOfBlocks: false
+ContinuationIndentWidth: 8
+AlignAfterOpenBracket: true
+BinPackParameters: false
+AllowAllParametersOfDeclarationOnNextLine: false
index bb53302cd245aa5acde739e91f9da27e1d5b69bc..48266c8c56f0188d9ca9d5d974c77a42bb38bb66 100644 (file)
@@ -12,3 +12,5 @@ android
 qtc_packaging
 debian
 
+
+*.stash
diff --git a/CHANGES b/CHANGES
index 52d3333b890df058ffa65e1e3cd882f866ad6208..471de2b173ce39518c529585d31b8cc49486cd18 100644 (file)
--- a/CHANGES
+++ b/CHANGES
@@ -1,3 +1,28 @@
+2.7
+- Show toolbar only in "media view"
+- Don't draw channel in playlist when all videos from same channel
+- Use system proxies
+- Ability to hide menu on Windows and Linux
+- Use system icons on Linux
+- Remove slider custom style on Windows and Linux
+- Long press on stop toolbar button to show "Stop After This" menu on Windows and Linux
+- Style tweaks
+- Fix sidebar resizing on Mac
+- Fix floating garbage on fullscreen on Mac
+- Fix painting issues in "search view" on Linux
+- Updated translations
+
+2.6
+- Windows 10 style
+- Prevent sleep
+- Warn on GPL build without API key, messagebox to user at startup
+- Safe search
+- Custom icons on Linux
+- Drop QtScript
+- Move to Http lib
+- Fix GNOME media keys
+- Notification count style
+
 2.5.2
 - Fixed VEVO videos
 
index 494268da4c173a201d0fed14be66e19a0cbb96b9..d238fe0c7d5998c05f5b8aaff0511f2ebcb28291 100644 (file)
--- a/README.md
+++ b/README.md
@@ -6,7 +6,6 @@ Translations are done at https://www.transifex.com/projects/p/minitube/
 Just register and apply for a language team. Please don't request translation merges on GitHub.
 
 ## Google API Key
-
 Google is now requiring an API key in order to access YouTube Data web services.
 Create a "Browser Key" at https://console.developers.google.com
 
@@ -14,12 +13,11 @@ The key must be specified at compile time as shown below.
 Alternatively Minitube can read an API key from the GOOGLE_API_KEY environment variable.
 
 ## Build instructions
-To compile Minitube you need at least Qt 5.0. The following Qt modules are needed:
-core, gui, widgets, network, sql (using the Sqlite plugin), script, dbus.
+To compile Minitube you need at least Qt 5.0. The following Qt modules are needed: core, gui, widgets, network, sql (using the Sqlite plugin), declarative, dbus.
 
 To be able to build on a Debian (or derivative) system:
 
-    $ sudo apt-get install build-essential qttools5-dev-tools qt5-qmake qtscript5-dev libphonon4qt5-dev libqt5sql5-sqlite qt5-default
+    $ sudo apt-get install build-essential qttools5-dev-tools qt5-qmake  qtdeclarative5-dev libphonon4qt5-dev libqt5sql5-sqlite qt5-default
 
 Compiling:
 
index 949d592d53ba4213ebc5fc4e3efa10827f01b28b..ec0b1219f340486cb0166f8764271a421faa9da8 100644 (file)
--- a/empty.ts
+++ b/empty.ts
@@ -4,67 +4,42 @@
 <context>
     <name>AboutView</name>
     <message>
-        <location filename="src/aboutview.cpp" line="58"/>
         <source>There&apos;s life outside the browser!</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="src/aboutview.cpp" line="59"/>
         <source>Version %1</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="src/aboutview.cpp" line="64"/>
         <source>Licensed to: %1</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="src/aboutview.cpp" line="68"/>
         <source>%1 is Free Software but its development takes precious time.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="src/aboutview.cpp" line="69"/>
         <source>Please &lt;a href=&apos;%1&apos;&gt;donate&lt;/a&gt; to support the continued development of %2.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="src/aboutview.cpp" line="73"/>
-        <source>You may want to try my other apps as well:</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="src/aboutview.cpp" line="76"/>
-        <source>%1, a YouTube music player</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="src/aboutview.cpp" line="80"/>
-        <source>%1, a music player</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="src/aboutview.cpp" line="86"/>
         <source>Translate %1 to your native language using %2</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="src/aboutview.cpp" line="91"/>
         <source>Icon designed by %1.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="src/aboutview.cpp" line="95"/>
         <source>Released under the &lt;a href=&apos;%1&apos;&gt;GNU General Public License&lt;/a&gt;</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="src/aboutview.cpp" line="110"/>
         <source>&amp;Close</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="src/aboutview.h" line="40"/>
         <source>About</source>
         <translation type="unfinished"></translation>
     </message>
 <context>
     <name>ActivationDialog</name>
     <message>
-        <location filename="local/src/activationdialog.cpp" line="17"/>
         <source>Enter your License Details</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="local/src/activationdialog.cpp" line="29"/>
         <source>&amp;Email:</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="local/src/activationdialog.cpp" line="35"/>
         <source>&amp;Code:</source>
         <translation type="unfinished"></translation>
     </message>
 <context>
     <name>ActivationView</name>
     <message>
-        <location filename="local/src/activationview.cpp" line="47"/>
         <source>Please license %1</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="local/src/activationview.cpp" line="51"/>
         <source>This demo has expired.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="local/src/activationview.cpp" line="53"/>
         <source>The full version allows you to watch videos without interruptions.</source>
-        <oldsource>The full version allows you to download videos longer than %1 minutes and to watch videos without interruptions.</oldsource>
         <translation type="unfinished"></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>
     </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 type="unfinished"></translation>
     </message>
     <message>
-        <location filename="local/src/activationview.cpp" line="70"/>
         <source>Use Demo</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="local/src/activationview.cpp" line="77"/>
         <source>Enter License</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="local/src/activationview.cpp" line="85"/>
         <source>Buy License</source>
         <translation type="unfinished"></translation>
     </message>
 </context>
+<context>
+    <name>AppWidget</name>
+    <message>
+        <source>Download</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
 <context>
     <name>ChannelAggregator</name>
     <message>
-        <location filename="src/channelaggregator.cpp" line="183"/>
         <source>By %1</source>
         <translation type="unfinished"></translation>
     </message>
     <message numerus="yes">
-        <location filename="src/channelaggregator.cpp" line="185"/>
         <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="67"/>
         <source>All Videos</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="src/channelitemdelegate.cpp" line="85"/>
         <source>Unwatched Videos</source>
         <translation type="unfinished"></translation>
     </message>
 <context>
     <name>ChannelView</name>
     <message>
-        <location filename="src/channelview.cpp" line="151"/>
-        <source>Mark all as watched</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="src/channelview.cpp" line="159"/>
-        <source>Show Updated</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="src/channelview.cpp" line="103"/>
         <source>Name</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="110"/>
         <source>Last Updated</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="117"/>
         <source>Last Added</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="124"/>
         <source>Last Watched</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="131"/>
         <source>Most Watched</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="139"/>
         <source>Sort by</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="222"/>
+        <source>Mark all as watched</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Show Updated</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
         <source>All Videos</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="226"/>
         <source>Unwatched Videos</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="244"/>
         <source>Mark as Watched</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="257"/>
         <source>Unsubscribe</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="270"/>
         <source>There are no updated subscriptions at this time.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="272"/>
         <source>You have no subscriptions. Use the star symbol to subscribe to channels.</source>
         <translation type="unfinished"></translation>
     </message>
 <context>
     <name>ClearButton</name>
     <message>
-        <location filename="src/exlineedit.cpp" line="6"/>
         <source>Clear</source>
         <translation type="unfinished"></translation>
     </message>
 <context>
     <name>DataUtils</name>
     <message>
-        <location filename="src/datautils.cpp" line="88"/>
         <source>Just now</source>
         <translation type="unfinished"></translation>
     </message>
     <message numerus="yes">
-        <location filename="src/datautils.cpp" line="90"/>
-        <source>%n minute(s) ago</source>
-        <translation type="unfinished">
-            <numerusform></numerusform><numerusform></numerusform>
-        </translation>
-    </message>
-    <message numerus="yes">
-        <location filename="src/datautils.cpp" line="92"/>
         <source>%n hour(s) ago</source>
         <translation type="unfinished">
-            <numerusform></numerusform><numerusform></numerusform>
+            <numerusform></numerusform>
         </translation>
     </message>
     <message numerus="yes">
-        <location filename="src/datautils.cpp" line="94"/>
         <source>%n day(s) ago</source>
         <translation type="unfinished">
-            <numerusform></numerusform><numerusform></numerusform>
+            <numerusform></numerusform>
         </translation>
     </message>
     <message numerus="yes">
-        <location filename="src/datautils.cpp" line="96"/>
         <source>%n weeks(s) ago</source>
         <translation type="unfinished">
-            <numerusform></numerusform><numerusform></numerusform>
+            <numerusform></numerusform>
         </translation>
     </message>
     <message numerus="yes">
-        <location filename="src/datautils.cpp" line="98"/>
         <source>%n month(s) ago</source>
         <translation type="unfinished">
-            <numerusform></numerusform><numerusform></numerusform>
+            <numerusform></numerusform>
         </translation>
     </message>
 </context>
 <context>
     <name>DownloadItem</name>
     <message>
-        <location filename="src/downloaditem.cpp" line="406"/>
         <source>bytes</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="src/downloaditem.cpp" line="409"/>
         <source>KB</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="src/downloaditem.cpp" line="412"/>
         <source>MB</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="src/downloaditem.cpp" line="421"/>
         <source>bytes/sec</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="src/downloaditem.cpp" line="424"/>
         <source>KB/sec</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="src/downloaditem.cpp" line="427"/>
         <source>MB/sec</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="src/downloaditem.cpp" line="433"/>
         <source>seconds</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="src/downloaditem.cpp" line="436"/>
         <source>minutes</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="src/downloaditem.cpp" line="439"/>
         <source>%4 %5 remaining</source>
         <translation type="unfinished"></translation>
     </message>
 <context>
     <name>DownloadManager</name>
     <message>
-        <location filename="src/downloadmanager.cpp" line="77"/>
-        <source>This is just the demo version of %1.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="src/downloadmanager.cpp" line="79"/>
-        <source>It can only download videos shorter than %1 minutes so you can test the download functionality.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="src/downloadmanager.cpp" line="85"/>
-        <source>Continue</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="src/downloadmanager.cpp" line="86"/>
-        <source>Get the full version</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="src/downloadmanager.cpp" line="157"/>
         <source>%1 downloaded in %2</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="src/downloadmanager.cpp" line="160"/>
         <source>Download finished</source>
         <translation type="unfinished"></translation>
     </message>
     <message numerus="yes">
-        <location filename="src/downloadmanager.cpp" line="165"/>
         <source>%n Download(s)</source>
         <translation type="unfinished">
-            <numerusform></numerusform><numerusform></numerusform>
+            <numerusform></numerusform>
         </translation>
     </message>
 </context>
 <context>
     <name>DownloadSettings</name>
     <message>
-        <location filename="src/downloadsettings.cpp" line="36"/>
         <source>Change location...</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="src/downloadsettings.cpp" line="69"/>
         <source>Choose the download location</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="src/downloadsettings.cpp" line="81"/>
         <source>Download location changed.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="src/downloadsettings.cpp" line="83"/>
         <source>Current downloads will still go in the previous location.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="src/downloadsettings.cpp" line="94"/>
         <source>Downloading to: %1</source>
         <translation type="unfinished"></translation>
     </message>
 <context>
     <name>DownloadView</name>
     <message>
-        <location filename="src/downloadview.cpp" line="38"/>
-        <location filename="src/downloadview.h" line="45"/>
         <source>Downloads</source>
         <translation type="unfinished"></translation>
     </message>
 </context>
-<context>
-    <name>DownloadWidget</name>
-    <message>
-        <location filename="local/src/updatedialog.cpp" line="60"/>
-        <source>Downloading update...</source>
-        <translation type="unfinished"></translation>
-    </message>
-</context>
 <context>
     <name>Extra</name>
     <message>
-        <location filename="local/src/extra.cpp" line="251"/>
         <source>The executable file has been tempered with, maybe by a virus.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="local/src/extra.cpp" line="252"/>
         <source>%1 will not run. Try installing again.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="local/src/extra.cpp" line="253"/>
         <source>Quit</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="local/src/extra.cpp" line="254"/>
         <source>Reinstall</source>
         <translation type="unfinished"></translation>
     </message>
 <context>
     <name>GlobalShortcuts</name>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="36"/>
         <source>Play</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="37"/>
         <source>Pause</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="38"/>
         <source>Play/Pause</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="39"/>
         <source>Stop</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="40"/>
         <source>Stop playing after current track</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="41"/>
         <source>Next track</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="42"/>
         <source>Previous track</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="43"/>
         <source>Increase volume</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="44"/>
         <source>Decrease volume</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="45"/>
         <source>Mute</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="46"/>
         <source>Seek forward</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="47"/>
         <source>Seek backward</source>
         <translation type="unfinished"></translation>
     </message>
 <context>
     <name>HomeView</name>
     <message>
-        <location filename="src/homeview.cpp" line="58"/>
         <source>Search</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="src/homeview.cpp" line="60"/>
         <source>Find videos and channels by keyword</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="src/homeview.cpp" line="65"/>
         <source>Browse</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="src/homeview.cpp" line="67"/>
         <source>Browse videos by category</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="src/homeview.cpp" line="71"/>
         <source>Subscriptions</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="src/homeview.cpp" line="73"/>
         <source>Channel subscriptions</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="src/homeview.h" line="44"/>
         <source>Make yourself comfortable</source>
         <translation type="unfinished"></translation>
     </message>
 <context>
     <name>LoadingWidget</name>
     <message>
-        <location filename="src/loadingwidget.cpp" line="125"/>
         <source>Error</source>
         <translation type="unfinished"></translation>
     </message>
 <context>
     <name>MainWindow</name>
     <message>
-        <location filename="src/mainwindow.cpp" line="291"/>
         <source>&amp;Stop</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="292"/>
         <source>Stop playback and go back to the search view</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="307"/>
+        <source>P&amp;revious</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Go back to the previous track</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
         <source>S&amp;kip</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="308"/>
         <source>Skip to the next video</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1134"/>
-        <source>&amp;Pause</source>
+        <source>&amp;Play</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1135"/>
-        <source>Pause playback</source>
+        <source>Resume playback</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="321"/>
         <source>&amp;Full Screen</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="322"/>
         <source>Go full screen</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="336"/>
+        <source>&amp;Compact Mode</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
         <source>Hide the playlist and the toolbar</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="349"/>
+        <source>Open the &amp;YouTube Page</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
         <source>Go to the YouTube video page and pause playback</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="356"/>
+        <source>Copy the YouTube &amp;Link</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
         <source>Copy the current video YouTube link to the clipboard</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="363"/>
+        <source>Copy the Video Stream &amp;URL</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
         <source>Copy the current video stream URL to the clipboard</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="370"/>
+        <source>Find Video &amp;Parts</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
         <source>Find other video parts hopefully in the right order</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="376"/>
         <source>&amp;Remove</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="377"/>
         <source>Remove the selected videos from the playlist</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="383"/>
         <source>Move &amp;Up</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="384"/>
         <source>Move up the selected videos in the playlist</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="390"/>
         <source>Move &amp;Down</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="391"/>
         <source>Move down the selected videos in the playlist</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="402"/>
+        <source>&amp;Clear Recent Searches</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
         <source>Clear the search history. Cannot be undone.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="407"/>
         <source>&amp;Quit</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="410"/>
         <source>Bye</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="414"/>
         <source>&amp;Website</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="416"/>
         <source>%1 on the Web</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="422"/>
+        <source>Make a &amp;Donation</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
         <source>Please support the continued development of %1</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="427"/>
         <source>&amp;About</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="429"/>
         <source>Info about %1</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="437"/>
         <source>Search</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="456"/>
         <source>Mute volume</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="490"/>
-        <location filename="src/mainwindow.cpp" line="1609"/>
+        <source>&amp;Manually Start Playing</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Manually start playing videos</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
         <source>&amp;Downloads</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="491"/>
         <source>Show details about video downloads</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="499"/>
         <source>&amp;Download</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="500"/>
         <source>Download the current video</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="510"/>
         <source>Take &amp;Snapshot</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="517"/>
         <source>&amp;Subscribe to Channel</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="525"/>
         <source>Share the current video using %1</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="545"/>
         <source>&amp;Email</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="546"/>
         <source>Email</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="551"/>
         <source>&amp;Close</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="561"/>
         <source>&amp;Float on Top</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="566"/>
-        <source>&amp;Adjust Window Size</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="571"/>
         <source>&amp;Stop After This Video</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="578"/>
         <source>&amp;Report an Issue...</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="582"/>
         <source>&amp;Refine Search...</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="594"/>
         <source>More...</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="597"/>
         <source>&amp;Related Videos</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="599"/>
         <source>Watch videos related to the current one</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="605"/>
         <source>Open in &amp;Browser...</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="612"/>
-        <source>&amp;Love %1? Rate it!</source>
+        <source>Restricted Mode</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="633"/>
-        <source>&amp;Application</source>
+        <source>Hide videos that may contain inappropriate content</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>&amp;Love %1? Rate it!</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="618"/>
         <source>Buy %1...</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="647"/>
+        <source>&amp;Application</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
         <source>&amp;Playback</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="661"/>
         <source>&amp;Playlist</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="670"/>
         <source>&amp;Video</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="686"/>
-        <source>&amp;View</source>
+        <source>&amp;Share</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="695"/>
-        <source>&amp;Share</source>
+        <source>&amp;View</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="709"/>
         <source>&amp;Help</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="751"/>
         <source>Press %1 to raise the volume, %2 to lower it</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1021"/>
-        <location filename="src/mainwindow.cpp" line="1027"/>
+        <source>Choose your content location</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
         <source>Opening %1</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1080"/>
         <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="1081"/>
         <source>If you close %1 now, this download will be cancelled.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1086"/>
         <source>Close and cancel download</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1087"/>
         <source>Wait for download to finish</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1158"/>
-        <source>&amp;Loading...</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="1264"/>
-        <source>Leave &amp;Full Screen</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="1718"/>
-        <source>%1 version %2 is now available.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="1722"/>
-        <source>Remind me later</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="1723"/>
-        <source>Update</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="1127"/>
         <source>Error: %1</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="300"/>
-        <source>P&amp;revious</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="301"/>
-        <source>Go back to the previous track</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="335"/>
-        <source>&amp;Compact Mode</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="348"/>
-        <source>Open the &amp;YouTube Page</source>
+        <source>&amp;Pause</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="355"/>
-        <source>Copy the YouTube &amp;Link</source>
+        <source>Pause playback</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="362"/>
-        <source>Copy the Video Stream &amp;URL</source>
+        <source>&amp;Loading...</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="369"/>
-        <source>Find Video &amp;Parts</source>
+        <source>Leave &amp;Full Screen</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="397"/>
-        <source>&amp;Clear Recent Searches</source>
+        <source>Remaining time: %1</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="421"/>
-        <source>Make a &amp;Donation</source>
+        <source>Volume is muted</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="483"/>
-        <source>&amp;Manually Start Playing</source>
+        <source>Volume is unmuted</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="484"/>
-        <source>Manually start playing videos</source>
+        <source>Maximum video definition set to %1</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="847"/>
-        <source>Choose your content location</source>
+        <source>Your privacy is now safe</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="314"/>
-        <location filename="src/mainwindow.cpp" line="1142"/>
-        <location filename="src/mainwindow.cpp" line="1150"/>
-        <source>&amp;Play</source>
+        <source>Downloads complete</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="315"/>
-        <location filename="src/mainwindow.cpp" line="1143"/>
-        <location filename="src/mainwindow.cpp" line="1151"/>
-        <source>Resume playback</source>
+        <source>%1 version %2 is now available.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1437"/>
-        <source>Remaining time: %1</source>
+        <source>Remind me later</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1528"/>
-        <source>Volume at %1%</source>
+        <source>Update</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1534"/>
-        <source>Volume is muted</source>
+        <source>Toggle &amp;Menu Bar</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1537"/>
-        <source>Volume is unmuted</source>
+        <source>You can still access the menu bar by pressing the ALT key</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1548"/>
-        <source>Maximum video definition set to %1</source>
+        <source>&amp;Window</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1595"/>
-        <source>Your privacy is now safe</source>
+        <source>&amp;Minimize</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1610"/>
-        <source>Downloads complete</source>
+        <source>Menu</source>
         <translation type="unfinished"></translation>
     </message>
 </context>
 <context>
     <name>MediaView</name>
     <message>
-        <location filename="src/mediaview.cpp" line="702"/>
         <source>You can now paste the YouTube link into another application</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="710"/>
         <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="711"/>
         <source>The link will be valid only for a limited time.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="800"/>
-        <source>This is just the demo version of %1.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="src/mediaview.cpp" line="801"/>
-        <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="833"/>
-        <source>Continue</source>
+        <source>Downloading %1</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="988"/>
         <source>of</source>
         <comment>Used in video parts, as in &apos;2 of 3&apos;</comment>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="1001"/>
         <source>part</source>
         <comment>This is for video parts, as in &apos;Cool video - part 1&apos;</comment>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="1003"/>
         <source>episode</source>
         <comment>This is for video parts, as in &apos;Cool series - episode 1&apos;</comment>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="1096"/>
         <source>Sent from %1</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="1128"/>
         <source>Unsubscribe from %1</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="1132"/>
         <source>Subscribe to %1</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="1166"/>
         <source>Unsubscribed from %1</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="1169"/>
         <source>Subscribed to %1</source>
         <translation type="unfinished"></translation>
     </message>
-    <message>
-        <location filename="src/mediaview.cpp" line="808"/>
-        <source>Get the full version</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="src/mediaview.cpp" line="847"/>
-        <source>Downloading %1</source>
-        <translation type="unfinished"></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"></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>
     </message>
     <message>
-        <location filename="local/src/updatedialog.cpp" line="33"/>
         <source>Would you like to download it now?</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="local/src/updatedialog.cpp" line="39"/>
         <source>Skip This Version</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="local/src/updatedialog.cpp" line="43"/>
         <source>Remind Me Later</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="local/src/updatedialog.cpp" line="47"/>
         <source>Install Update</source>
         <translation type="unfinished"></translation>
     </message>
+    <message>
+        <source>Pick a video</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>PasteLineEdit</name>
     <message>
-        <location filename="local/src/pastelineedit.cpp" line="6"/>
         <source>Paste</source>
         <translation type="unfinished"></translation>
     </message>
 <context>
     <name>PlaylistItemDelegate</name>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="209"/>
         <source>%1 views</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="309"/>
         <source>%1 of %2 (%3) — %4</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="316"/>
         <source>Preparing</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="318"/>
         <source>Failed</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="320"/>
         <source>Completed</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="322"/>
         <source>Stopped</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="358"/>
         <source>Stop downloading</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="368"/>
         <source>Show in %1</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="370"/>
         <source>Open parent folder</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="379"/>
         <source>Restart downloading</source>
         <translation type="unfinished"></translation>
     </message>
 <context>
     <name>PlaylistModel</name>
     <message>
-        <location filename="src/playlistmodel.cpp" line="70"/>
         <source>Searching...</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="src/playlistmodel.cpp" line="71"/>
         <source>Show %1 More</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="src/playlistmodel.cpp" line="72"/>
         <source>No videos</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="src/playlistmodel.cpp" line="73"/>
         <source>No more videos</source>
         <translation type="unfinished"></translation>
     </message>
 <context>
     <name>RefineSearchWidget</name>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="49"/>
         <source>Sort by</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="53"/>
         <source>Relevance</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="54"/>
-        <location filename="src/refinesearchwidget.cpp" line="69"/>
         <source>Date</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="55"/>
         <source>View Count</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="56"/>
         <source>Rating</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="73"/>
         <source>Anytime</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="74"/>
         <source>Today</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="75"/>
         <source>7 Days</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="76"/>
         <source>30 Days</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="89"/>
         <source>Duration</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="93"/>
-        <location filename="src/refinesearchwidget.cpp" line="119"/>
         <source>All</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="94"/>
         <source>Short</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="95"/>
         <source>Medium</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="96"/>
         <source>Long</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="99"/>
         <source>Less than 4 minutes</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="100"/>
         <source>Between 4 and 20 minutes</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="101"/>
         <source>Longer than 20 minutes</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="115"/>
         <source>Quality</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="120"/>
         <source>High Definition</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="123"/>
         <source>720p or higher</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="136"/>
         <source>Done</source>
         <translation type="unfinished"></translation>
     </message>
 <context>
     <name>RegionsView</name>
     <message>
-        <location filename="src/regionsview.cpp" line="39"/>
         <source>Done</source>
         <translation type="unfinished"></translation>
     </message>
 <context>
     <name>SearchLineEdit</name>
     <message>
-        <location filename="src/searchlineedit.cpp" line="55"/>
         <source>Search</source>
         <translation type="unfinished"></translation>
     </message>
 <context>
     <name>SearchView</name>
     <message>
-        <location filename="src/searchview.cpp" line="83"/>
         <source>Welcome to &lt;a href=&apos;%1&apos;&gt;%2&lt;/a&gt;,</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="200"/>
-        <source>Get the full version</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="src/searchview.cpp" line="110"/>
         <source>Enter</source>
-        <extracomment>&quot;Enter&quot;, as in &quot;type&quot;. The whole phrase says: &quot;Enter a keyword to start watching videos&quot;</extracomment>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="117"/>
         <source>a keyword</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="118"/>
-        <source>a channel</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="src/searchview.cpp" line="125"/>
         <source>to start watching videos.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="156"/>
         <source>Watch</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="174"/>
         <source>Recent keywords</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="186"/>
         <source>Recent channels</source>
         <translation type="unfinished"></translation>
     </message>
+    <message>
+        <source>Get the full version</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>SidebarHeader</name>
     <message>
-        <location filename="src/sidebarheader.cpp" line="38"/>
-        <location filename="src/sidebarheader.cpp" line="45"/>
         <source>&amp;Back</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="src/sidebarheader.cpp" line="76"/>
         <source>Forward to %1</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="src/sidebarheader.cpp" line="89"/>
         <source>Back to %1</source>
         <translation type="unfinished"></translation>
     </message>
 <context>
     <name>SidebarWidget</name>
     <message>
-        <location filename="src/sidebarwidget.cpp" line="68"/>
         <source>Refine Search</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="src/sidebarwidget.cpp" line="167"/>
         <source>Did you mean: %1</source>
         <translation type="unfinished"></translation>
     </message>
 <context>
     <name>SnapshotSettings</name>
     <message>
-        <location filename="src/snapshotsettings.cpp" line="47"/>
         <source>Change location...</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="src/snapshotsettings.cpp" line="64"/>
         <source>Snapshot saved to %1</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="src/snapshotsettings.cpp" line="117"/>
         <source>Snapshots location changed.</source>
         <translation type="unfinished"></translation>
     </message>
 <context>
     <name>StandardFeedsView</name>
     <message>
-        <location filename="src/standardfeedsview.cpp" line="107"/>
         <source>Most Popular</source>
         <translation type="unfinished"></translation>
     </message>
 </context>
 <context>
-    <name>Video</name>
+    <name>UpdateDialog</name>
     <message>
-        <location filename="src/video.cpp" line="287"/>
-        <source>Cannot get video stream for %1</source>
+        <source>Downloading update...</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="src/video.cpp" line="292"/>
-        <source>Network error: %1 for %2</source>
+        <source>Downloading %1...</source>
         <translation type="unfinished"></translation>
     </message>
 </context>
 <context>
     <name>YTRegions</name>
     <message>
-        <location filename="src/ytregions.cpp" line="28"/>
         <source>Algeria</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="29"/>
         <source>Argentina</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="30"/>
         <source>Australia</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="31"/>
         <source>Belgium</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="32"/>
         <source>Brazil</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="33"/>
         <source>Canada</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="34"/>
         <source>Chile</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="35"/>
         <source>Colombia</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="36"/>
         <source>Czech Republic</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="37"/>
         <source>Egypt</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="38"/>
         <source>France</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="39"/>
         <source>Germany</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="40"/>
         <source>Ghana</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="41"/>
         <source>Greece</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="42"/>
         <source>Hong Kong</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="43"/>
         <source>Hungary</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="44"/>
         <source>India</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="45"/>
         <source>Indonesia</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="46"/>
         <source>Ireland</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="47"/>
         <source>Israel</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="48"/>
         <source>Italy</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="49"/>
         <source>Japan</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="50"/>
         <source>Jordan</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="51"/>
         <source>Kenya</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="52"/>
         <source>Malaysia</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="53"/>
         <source>Mexico</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="54"/>
         <source>Morocco</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="55"/>
         <source>Netherlands</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="56"/>
         <source>New Zealand</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="57"/>
         <source>Nigeria</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="58"/>
         <source>Peru</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="59"/>
         <source>Philippines</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="60"/>
         <source>Poland</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="61"/>
         <source>Russia</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="62"/>
         <source>Saudi Arabia</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="63"/>
         <source>Singapore</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="64"/>
         <source>South Africa</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="65"/>
         <source>South Korea</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="66"/>
         <source>Spain</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="67"/>
         <source>Sweden</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="68"/>
         <source>Taiwan</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="69"/>
         <source>Tunisia</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="70"/>
         <source>Turkey</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="71"/>
         <source>Uganda</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="72"/>
         <source>United Arab Emirates</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="73"/>
         <source>United Kingdom</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="74"/>
         <source>Yemen</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="148"/>
         <source>Worldwide</source>
         <translation type="unfinished"></translation>
     </message>
 </context>
+<context>
+    <name>YTVideo</name>
+    <message>
+        <source>Cannot get video stream for %1</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
 </TS>
diff --git a/images/64x64/app.png b/images/64x64/app.png
new file mode 100644 (file)
index 0000000..3afc57b
Binary files /dev/null and b/images/64x64/app.png differ
diff --git a/images/64x64/app@2x.png b/images/64x64/app@2x.png
new file mode 100644 (file)
index 0000000..44f4add
Binary files /dev/null and b/images/64x64/app@2x.png differ
diff --git a/images/audio-volume-high.png b/images/audio-volume-high.png
new file mode 100644 (file)
index 0000000..dc0141a
Binary files /dev/null and b/images/audio-volume-high.png differ
diff --git a/images/audio-volume-high@2x.png b/images/audio-volume-high@2x.png
new file mode 100644 (file)
index 0000000..a4bc0de
Binary files /dev/null and b/images/audio-volume-high@2x.png differ
diff --git a/images/audio-volume-muted.png b/images/audio-volume-muted.png
new file mode 100644 (file)
index 0000000..e2475ac
Binary files /dev/null and b/images/audio-volume-muted.png differ
diff --git a/images/audio-volume-muted@2x.png b/images/audio-volume-muted@2x.png
new file mode 100644 (file)
index 0000000..0f8fb55
Binary files /dev/null and b/images/audio-volume-muted@2x.png differ
diff --git a/images/badge.png b/images/badge.png
deleted file mode 100644 (file)
index 82f633a..0000000
Binary files a/images/badge.png and /dev/null differ
diff --git a/images/badge3.png b/images/badge3.png
deleted file mode 100644 (file)
index 8aa475b..0000000
Binary files a/images/badge3.png and /dev/null differ
diff --git a/images/badge3@2x.png b/images/badge3@2x.png
deleted file mode 100644 (file)
index f516a47..0000000
Binary files a/images/badge3@2x.png and /dev/null differ
diff --git a/images/badge4.png b/images/badge4.png
deleted file mode 100644 (file)
index 0515ec2..0000000
Binary files a/images/badge4.png and /dev/null differ
diff --git a/images/badge4@2x.png b/images/badge4@2x.png
deleted file mode 100644 (file)
index 4511b45..0000000
Binary files a/images/badge4@2x.png and /dev/null differ
diff --git a/images/badge@2x.png b/images/badge@2x.png
deleted file mode 100644 (file)
index 2ae172e..0000000
Binary files a/images/badge@2x.png and /dev/null differ
diff --git a/images/bookmark-new.png b/images/bookmark-new.png
new file mode 100644 (file)
index 0000000..796499b
Binary files /dev/null and b/images/bookmark-new.png differ
diff --git a/images/bookmark-new@2x.png b/images/bookmark-new@2x.png
new file mode 100644 (file)
index 0000000..c7fc497
Binary files /dev/null and b/images/bookmark-new@2x.png differ
diff --git a/images/bookmark-new_active.png b/images/bookmark-new_active.png
new file mode 100644 (file)
index 0000000..ea26fa5
Binary files /dev/null and b/images/bookmark-new_active.png differ
diff --git a/images/bookmark-new_active@2x.png b/images/bookmark-new_active@2x.png
new file mode 100644 (file)
index 0000000..15781af
Binary files /dev/null and b/images/bookmark-new_active@2x.png differ
diff --git a/images/bookmark-remove.png b/images/bookmark-remove.png
new file mode 100644 (file)
index 0000000..48d46a5
Binary files /dev/null and b/images/bookmark-remove.png differ
diff --git a/images/bookmark-remove@2x.png b/images/bookmark-remove@2x.png
new file mode 100644 (file)
index 0000000..8c8d7e9
Binary files /dev/null and b/images/bookmark-remove@2x.png differ
diff --git a/images/content-loading.png b/images/content-loading.png
new file mode 100644 (file)
index 0000000..e88c4f0
Binary files /dev/null and b/images/content-loading.png differ
diff --git a/images/content-loading@2x.png b/images/content-loading@2x.png
new file mode 100644 (file)
index 0000000..d68c67b
Binary files /dev/null and b/images/content-loading@2x.png differ
diff --git a/images/document-save.png b/images/document-save.png
new file mode 100644 (file)
index 0000000..4ac54e0
Binary files /dev/null and b/images/document-save.png differ
diff --git a/images/document-save@2x.png b/images/document-save@2x.png
new file mode 100644 (file)
index 0000000..360b8f0
Binary files /dev/null and b/images/document-save@2x.png differ
diff --git a/images/edit-clear.png b/images/edit-clear.png
new file mode 100644 (file)
index 0000000..42901d8
Binary files /dev/null and b/images/edit-clear.png differ
diff --git a/images/edit-find.png b/images/edit-find.png
new file mode 100644 (file)
index 0000000..aabed51
Binary files /dev/null and b/images/edit-find.png differ
diff --git a/images/email.png b/images/email.png
new file mode 100644 (file)
index 0000000..11e34d7
Binary files /dev/null and b/images/email.png differ
diff --git a/images/email@2x.png b/images/email@2x.png
new file mode 100644 (file)
index 0000000..ed0f958
Binary files /dev/null and b/images/email@2x.png differ
diff --git a/images/facebook.png b/images/facebook.png
new file mode 100644 (file)
index 0000000..016965f
Binary files /dev/null and b/images/facebook.png differ
diff --git a/images/facebook@2x.png b/images/facebook@2x.png
new file mode 100644 (file)
index 0000000..f3eb5de
Binary files /dev/null and b/images/facebook@2x.png differ
diff --git a/images/go-next.png b/images/go-next.png
new file mode 100644 (file)
index 0000000..b927522
Binary files /dev/null and b/images/go-next.png differ
diff --git a/images/go-next@2x.png b/images/go-next@2x.png
new file mode 100644 (file)
index 0000000..1e617cd
Binary files /dev/null and b/images/go-next@2x.png differ
diff --git a/images/go-next_active.png b/images/go-next_active.png
new file mode 100644 (file)
index 0000000..9521341
Binary files /dev/null and b/images/go-next_active.png differ
diff --git a/images/go-next_active@2x.png b/images/go-next_active@2x.png
new file mode 100644 (file)
index 0000000..3e3e7dc
Binary files /dev/null and b/images/go-next_active@2x.png differ
diff --git a/images/go-previous.png b/images/go-previous.png
new file mode 100644 (file)
index 0000000..c62d60f
Binary files /dev/null and b/images/go-previous.png differ
diff --git a/images/go-previous@2x.png b/images/go-previous@2x.png
new file mode 100644 (file)
index 0000000..fc2664c
Binary files /dev/null and b/images/go-previous@2x.png differ
diff --git a/images/go-previous_active.png b/images/go-previous_active.png
new file mode 100644 (file)
index 0000000..b410707
Binary files /dev/null and b/images/go-previous_active.png differ
diff --git a/images/go-previous_active@2x.png b/images/go-previous_active@2x.png
new file mode 100644 (file)
index 0000000..faf42a5
Binary files /dev/null and b/images/go-previous_active@2x.png differ
diff --git a/images/go-top.png b/images/go-top.png
new file mode 100644 (file)
index 0000000..b2ea402
Binary files /dev/null and b/images/go-top.png differ
diff --git a/images/go-top@2x.png b/images/go-top@2x.png
new file mode 100644 (file)
index 0000000..c814273
Binary files /dev/null and b/images/go-top@2x.png differ
diff --git a/images/link.png b/images/link.png
new file mode 100644 (file)
index 0000000..8c9687a
Binary files /dev/null and b/images/link.png differ
diff --git a/images/link@2x.png b/images/link@2x.png
new file mode 100644 (file)
index 0000000..bb31be1
Binary files /dev/null and b/images/link@2x.png differ
diff --git a/images/media-playback-pause.png b/images/media-playback-pause.png
new file mode 100644 (file)
index 0000000..03a5d7c
Binary files /dev/null and b/images/media-playback-pause.png differ
diff --git a/images/media-playback-pause@2x.png b/images/media-playback-pause@2x.png
new file mode 100644 (file)
index 0000000..c78ae2d
Binary files /dev/null and b/images/media-playback-pause@2x.png differ
diff --git a/images/media-playback-start.png b/images/media-playback-start.png
new file mode 100644 (file)
index 0000000..256686b
Binary files /dev/null and b/images/media-playback-start.png differ
diff --git a/images/media-playback-start@2x.png b/images/media-playback-start@2x.png
new file mode 100644 (file)
index 0000000..662fe6a
Binary files /dev/null and b/images/media-playback-start@2x.png differ
diff --git a/images/media-playback-stop.png b/images/media-playback-stop.png
new file mode 100644 (file)
index 0000000..6c4e66d
Binary files /dev/null and b/images/media-playback-stop.png differ
diff --git a/images/media-playback-stop@2x.png b/images/media-playback-stop@2x.png
new file mode 100644 (file)
index 0000000..b3a9971
Binary files /dev/null and b/images/media-playback-stop@2x.png differ
diff --git a/images/media-skip-forward.png b/images/media-skip-forward.png
new file mode 100644 (file)
index 0000000..e59e645
Binary files /dev/null and b/images/media-skip-forward.png differ
diff --git a/images/media-skip-forward@2x.png b/images/media-skip-forward@2x.png
new file mode 100644 (file)
index 0000000..5300dc8
Binary files /dev/null and b/images/media-skip-forward@2x.png differ
diff --git a/images/safesearch.png b/images/safesearch.png
new file mode 100644 (file)
index 0000000..eef8f60
Binary files /dev/null and b/images/safesearch.png differ
diff --git a/images/safesearch@2x.png b/images/safesearch@2x.png
new file mode 100644 (file)
index 0000000..9a5fed5
Binary files /dev/null and b/images/safesearch@2x.png differ
diff --git a/images/system-search.png b/images/system-search.png
new file mode 100644 (file)
index 0000000..4cf77de
Binary files /dev/null and b/images/system-search.png differ
diff --git a/images/system-search_active.png b/images/system-search_active.png
new file mode 100644 (file)
index 0000000..ff40df1
Binary files /dev/null and b/images/system-search_active.png differ
diff --git a/images/system-search_selected.png b/images/system-search_selected.png
new file mode 100644 (file)
index 0000000..0db8a8f
Binary files /dev/null and b/images/system-search_selected.png differ
diff --git a/images/twitter.png b/images/twitter.png
new file mode 100644 (file)
index 0000000..8ccc500
Binary files /dev/null and b/images/twitter.png differ
diff --git a/images/twitter@2x.png b/images/twitter@2x.png
new file mode 100644 (file)
index 0000000..2366d6d
Binary files /dev/null and b/images/twitter@2x.png differ
diff --git a/images/video-display.png b/images/video-display.png
new file mode 100644 (file)
index 0000000..a32f4a6
Binary files /dev/null and b/images/video-display.png differ
diff --git a/images/video-display@2x.png b/images/video-display@2x.png
new file mode 100644 (file)
index 0000000..adacbe8
Binary files /dev/null and b/images/video-display@2x.png differ
diff --git a/images/view-fullscreen.png b/images/view-fullscreen.png
new file mode 100644 (file)
index 0000000..eb7cac5
Binary files /dev/null and b/images/view-fullscreen.png differ
diff --git a/images/view-fullscreen@2x.png b/images/view-fullscreen@2x.png
new file mode 100644 (file)
index 0000000..80b93f0
Binary files /dev/null and b/images/view-fullscreen@2x.png differ
diff --git a/images/view-list.png b/images/view-list.png
new file mode 100644 (file)
index 0000000..9727d29
Binary files /dev/null and b/images/view-list.png differ
diff --git a/images/view-list@2x.png b/images/view-list@2x.png
new file mode 100644 (file)
index 0000000..20ea4b1
Binary files /dev/null and b/images/view-list@2x.png differ
diff --git a/images/view-more.png b/images/view-more.png
new file mode 100644 (file)
index 0000000..6143f4b
Binary files /dev/null and b/images/view-more.png differ
diff --git a/images/view-more@2x.png b/images/view-more@2x.png
new file mode 100644 (file)
index 0000000..f13d0e0
Binary files /dev/null and b/images/view-more@2x.png differ
diff --git a/images/view-refresh.png b/images/view-refresh.png
new file mode 100644 (file)
index 0000000..c4603d9
Binary files /dev/null and b/images/view-refresh.png differ
diff --git a/images/view-refresh_active.png b/images/view-refresh_active.png
new file mode 100644 (file)
index 0000000..2c9a275
Binary files /dev/null and b/images/view-refresh_active.png differ
diff --git a/images/view-refresh_selected.png b/images/view-refresh_selected.png
new file mode 100644 (file)
index 0000000..3b83d8b
Binary files /dev/null and b/images/view-refresh_selected.png differ
diff --git a/images/view-restore.png b/images/view-restore.png
new file mode 100644 (file)
index 0000000..9f05eb9
Binary files /dev/null and b/images/view-restore.png differ
diff --git a/images/view-restore@2x.png b/images/view-restore@2x.png
new file mode 100644 (file)
index 0000000..ecee8be
Binary files /dev/null and b/images/view-restore@2x.png differ
diff --git a/images/window-close.png b/images/window-close.png
new file mode 100644 (file)
index 0000000..7a23bfd
Binary files /dev/null and b/images/window-close.png differ
diff --git a/images/window-close_active.png b/images/window-close_active.png
new file mode 100644 (file)
index 0000000..7553fca
Binary files /dev/null and b/images/window-close_active.png differ
diff --git a/images/window-close_selected.png b/images/window-close_selected.png
new file mode 100644 (file)
index 0000000..4158542
Binary files /dev/null and b/images/window-close_selected.png differ
index 026700f9ffe2ff517210925623a233cb88783400..79649787a38f9a1295b755781ca1d92ebd8cffe7 100644 (file)
@@ -2,67 +2,42 @@
 <context>
     <name>AboutView</name>
     <message>
-        <location filename="src/aboutview.cpp" line="58"/>
         <source>There&apos;s life outside the browser!</source>
         <translation>هناك حياة خارج المتصفح!</translation>
     </message>
     <message>
-        <location filename="src/aboutview.cpp" line="59"/>
         <source>Version %1</source>
         <translation>النسخة %1</translation>
     </message>
     <message>
-        <location filename="src/aboutview.cpp" line="64"/>
         <source>Licensed to: %1</source>
         <translation>مرخّص لـ: %1</translation>
     </message>
     <message>
-        <location filename="src/aboutview.cpp" line="68"/>
         <source>%1 is Free Software but its development takes precious time.</source>
         <translation>%1 هو برنامج مجاني و لكن برمجته تستهلك وقتا ثمينا.</translation>
     </message>
     <message>
-        <location filename="src/aboutview.cpp" line="69"/>
         <source>Please &lt;a href=&apos;%1&apos;&gt;donate&lt;/a&gt; to support the continued development of %2.</source>
         <translation>‎الرجاء &lt;a href=&apos;%1&apos;&gt;التبرع&lt;/a&gt; لمتابعة تطوير  %2.</translation>
     </message>
     <message>
-        <location filename="src/aboutview.cpp" line="73"/>
-        <source>You may want to try my other apps as well:</source>
-        <translation>قد ترغب في تجريب برامجي الأخرى أيضا</translation>
-    </message>
-    <message>
-        <location filename="src/aboutview.cpp" line="76"/>
-        <source>%1, a YouTube music player</source>
-        <translation>%1، قارئ موسيقى على اليوتيوب</translation>
-    </message>
-    <message>
-        <location filename="src/aboutview.cpp" line="80"/>
-        <source>%1, a music player</source>
-        <translation>%1، قارئ موسيقى</translation>
-    </message>
-    <message>
-        <location filename="src/aboutview.cpp" line="86"/>
         <source>Translate %1 to your native language using %2</source>
         <translation>ترجم %1 إلى لغتك الأم بإستعمال %2</translation>
     </message>
     <message>
-        <location filename="src/aboutview.cpp" line="91"/>
         <source>Icon designed by %1.</source>
         <translation>صمم الايقونة %1.</translation>
     </message>
     <message>
-        <location filename="src/aboutview.cpp" line="95"/>
         <source>Released under the &lt;a href=&apos;%1&apos;&gt;GNU General Public License&lt;/a&gt;</source>
         <translation>نشر هذا البرنامج تحت رخصة  &lt;a href=&apos;%1&apos;&gt;GNU General Public License&lt;/a&gt;</translation>
     </message>
     <message>
-        <location filename="src/aboutview.cpp" line="110"/>
         <source>&amp;Close</source>
         <translation>&amp;اقفل</translation>
     </message>
     <message>
-        <location filename="src/aboutview.h" line="40"/>
         <source>About</source>
         <translation>عن البرنامج</translation>
     </message>
 <context>
     <name>ActivationDialog</name>
     <message>
-        <location filename="local/src/activationdialog.cpp" line="17"/>
         <source>Enter your License Details</source>
         <translation>أدخل تفاصيل الرخصة الخاصة بك</translation>
     </message>
     <message>
-        <location filename="local/src/activationdialog.cpp" line="29"/>
         <source>&amp;Email:</source>
         <translation>&amp;البريد الألكتروني:</translation>
     </message>
     <message>
-        <location filename="local/src/activationdialog.cpp" line="35"/>
         <source>&amp;Code:</source>
         <translation>الرقم ال&amp;خاصّ:</translation>
     </message>
 <context>
     <name>ActivationView</name>
     <message>
-        <location filename="local/src/activationview.cpp" line="47"/>
         <source>Please license %1</source>
         <translation>الرجاء قم بترخيص %1</translation>
     </message>
     <message>
-        <location filename="local/src/activationview.cpp" line="51"/>
         <source>This demo has expired.</source>
         <translation>أنتهت مدة النسخة التجريبية.</translation>
     </message>
     <message>
-        <location filename="local/src/activationview.cpp" line="53"/>
         <source>The full version allows you to watch videos without interruptions.</source>
-        <oldsource>The full version allows you to download videos longer than %1 minutes and to watch videos without interruptions.</oldsource>
         <translation>تسمح لك النسخة الكاملة بمشاهدة مقاطع الفيديو دون مقاطعة.</translation>
     </message>
     <message>
-        <location filename="local/src/activationview.cpp" line="55"/>
         <source>Without a license, the application will expire in %1 days.</source>
         <translation>بدون رخصة, سوف تنتهي النسخة التجريبية من هذا البرنامج خلال 20 يوما</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>
     </message>
     <message>
-        <location filename="local/src/activationview.cpp" line="70"/>
         <source>Use Demo</source>
         <translation>استخدم النسخة التجريبية</translation>
     </message>
     <message>
-        <location filename="local/src/activationview.cpp" line="77"/>
         <source>Enter License</source>
         <translation>أدخل رخصة</translation>
     </message>
     <message>
-        <location filename="local/src/activationview.cpp" line="85"/>
         <source>Buy License</source>
         <translation>قم بشراء رخصة</translation>
     </message>
 </context>
+<context>
+    <name>AppWidget</name>
+    <message>
+        <source>Download</source>
+        <translation>تحميل</translation>
+    </message>
+</context>
 <context>
     <name>ChannelAggregator</name>
     <message>
-        <location filename="src/channelaggregator.cpp" line="183"/>
         <source>By %1</source>
         <translation>بواسطة %1</translation>
     </message>
     <message numerus="yes">
-        <location filename="src/channelaggregator.cpp" line="185"/>
         <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>
     <name>ChannelItemDelegate</name>
     <message>
-        <location filename="src/channelitemdelegate.cpp" line="67"/>
         <source>All Videos</source>
         <translation>جميع الفيديوهات</translation>
     </message>
     <message>
-        <location filename="src/channelitemdelegate.cpp" line="85"/>
         <source>Unwatched Videos</source>
         <translation>فيديوهات لم تتم مشاهدتها</translation>
     </message>
 <context>
     <name>ChannelView</name>
     <message>
-        <location filename="src/channelview.cpp" line="151"/>
-        <source>Mark all as watched</source>
-        <translation>علّمها كمُشاهدة</translation>
-    </message>
-    <message>
-        <location filename="src/channelview.cpp" line="159"/>
-        <source>Show Updated</source>
-        <translation>أظهر التّحديثات</translation>
-    </message>
-    <message>
-        <location filename="src/channelview.cpp" line="103"/>
         <source>Name</source>
         <translation>الاسم</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="110"/>
         <source>Last Updated</source>
         <translation>آخر تحديث</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="117"/>
         <source>Last Added</source>
         <translation>آخر إضافة</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="124"/>
         <source>Last Watched</source>
         <translation>آخر عرض</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="131"/>
         <source>Most Watched</source>
         <translation>الأكثر مشاهدة</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="139"/>
         <source>Sort by</source>
         <translation>ترتيب بـ</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="222"/>
+        <source>Mark all as watched</source>
+        <translation>علّمها كمُشاهدة</translation>
+    </message>
+    <message>
+        <source>Show Updated</source>
+        <translation>أظهر التّحديثات</translation>
+    </message>
+    <message>
         <source>All Videos</source>
         <translation>جميع الفيديوهات</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="226"/>
         <source>Unwatched Videos</source>
         <translation>فيديوهات لم تتم مشاهدتها</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="244"/>
         <source>Mark as Watched</source>
         <translation>علّمها كمُشاهدة</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="257"/>
         <source>Unsubscribe</source>
         <translation>ألغِ الاشتراك</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="270"/>
         <source>There are no updated subscriptions at this time.</source>
         <translation>لا يوجد تحديثات لقوائم اشتراكاتك حاليًا</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="272"/>
         <source>You have no subscriptions. Use the star symbol to subscribe to channels.</source>
         <translation>لا يوجد لديك اشتراكات. استخدم رمز النجمة للإشتراك في القنوات.</translation>
     </message>
 <context>
     <name>ClearButton</name>
     <message>
-        <location filename="src/exlineedit.cpp" line="6"/>
         <source>Clear</source>
         <translation>مسح</translation>
     </message>
 <context>
     <name>DataUtils</name>
     <message>
-        <location filename="src/datautils.cpp" line="88"/>
         <source>Just now</source>
         <translation>الآن</translation>
     </message>
     <message numerus="yes">
-        <location filename="src/datautils.cpp" line="90"/>
-        <source>%n minute(s) ago</source>
-        <translation type="unfinished"><numerusform></numerusform><numerusform></numerusform><numerusform></numerusform><numerusform></numerusform><numerusform></numerusform><numerusform></numerusform></translation>
-    </message>
-    <message numerus="yes">
-        <location filename="src/datautils.cpp" line="92"/>
         <source>%n hour(s) ago</source>
         <translation type="unfinished"><numerusform></numerusform><numerusform></numerusform><numerusform></numerusform><numerusform></numerusform><numerusform></numerusform><numerusform></numerusform></translation>
     </message>
     <message numerus="yes">
-        <location filename="src/datautils.cpp" line="94"/>
         <source>%n day(s) ago</source>
         <translation type="unfinished"><numerusform></numerusform><numerusform></numerusform><numerusform></numerusform><numerusform></numerusform><numerusform></numerusform><numerusform></numerusform></translation>
     </message>
     <message numerus="yes">
-        <location filename="src/datautils.cpp" line="96"/>
         <source>%n weeks(s) ago</source>
         <translation type="unfinished"><numerusform></numerusform><numerusform></numerusform><numerusform></numerusform><numerusform></numerusform><numerusform></numerusform><numerusform></numerusform></translation>
     </message>
     <message numerus="yes">
-        <location filename="src/datautils.cpp" line="98"/>
         <source>%n month(s) ago</source>
         <translation type="unfinished"><numerusform></numerusform><numerusform></numerusform><numerusform></numerusform><numerusform></numerusform><numerusform></numerusform><numerusform></numerusform></translation>
     </message>
 <context>
     <name>DownloadItem</name>
     <message>
-        <location filename="src/downloaditem.cpp" line="406"/>
         <source>bytes</source>
         <translation>بايت</translation>
     </message>
     <message>
-        <location filename="src/downloaditem.cpp" line="409"/>
         <source>KB</source>
         <translation>كب</translation>
     </message>
     <message>
-        <location filename="src/downloaditem.cpp" line="412"/>
         <source>MB</source>
         <translation>مب</translation>
     </message>
     <message>
-        <location filename="src/downloaditem.cpp" line="421"/>
         <source>bytes/sec</source>
         <translation>بايت/ثا</translation>
     </message>
     <message>
-        <location filename="src/downloaditem.cpp" line="424"/>
         <source>KB/sec</source>
         <translation>كب/ثا</translation>
     </message>
     <message>
-        <location filename="src/downloaditem.cpp" line="427"/>
         <source>MB/sec</source>
         <translation>مب/ثا</translation>
     </message>
     <message>
-        <location filename="src/downloaditem.cpp" line="433"/>
         <source>seconds</source>
         <translation>ثانية</translation>
     </message>
     <message>
-        <location filename="src/downloaditem.cpp" line="436"/>
         <source>minutes</source>
         <translation>دقيقة</translation>
     </message>
     <message>
-        <location filename="src/downloaditem.cpp" line="439"/>
         <source>%4 %5 remaining</source>
         <translation>%4 %5 متبقي</translation>
     </message>
 <context>
     <name>DownloadManager</name>
     <message>
-        <location filename="src/downloadmanager.cpp" line="77"/>
         <source>This is just the demo version of %1.</source>
         <translation>هذه ليست سوى النسخة التجريبية من %1.</translation>
     </message>
     <message>
-        <location filename="src/downloadmanager.cpp" line="79"/>
         <source>It can only download videos shorter than %1 minutes so you can test the download functionality.</source>
         <translation>يمكن تحميل الفيديو في أقل من %1  دقيقة بحيث يمكنك اختبار وظيفة التحميل.</translation>
     </message>
     <message>
-        <location filename="src/downloadmanager.cpp" line="85"/>
         <source>Continue</source>
         <translation>متابعة</translation>
     </message>
     <message>
-        <location filename="src/downloadmanager.cpp" line="86"/>
         <source>Get the full version</source>
         <translation>احصل على النسخة الكاملة</translation>
     </message>
     <message>
-        <location filename="src/downloadmanager.cpp" line="157"/>
         <source>%1 downloaded in %2</source>
         <translation>%1 حمل في %2</translation>
     </message>
     <message>
-        <location filename="src/downloadmanager.cpp" line="160"/>
         <source>Download finished</source>
         <translation>انتهي التحميل</translation>
     </message>
     <message numerus="yes">
-        <location filename="src/downloadmanager.cpp" line="165"/>
         <source>%n Download(s)</source>
         <translation type="unfinished"><numerusform></numerusform><numerusform></numerusform><numerusform></numerusform><numerusform></numerusform><numerusform></numerusform><numerusform></numerusform></translation>
     </message>
 <context>
     <name>DownloadSettings</name>
     <message>
-        <location filename="src/downloadsettings.cpp" line="36"/>
         <source>Change location...</source>
         <translation>تغيير الموقع...</translation>
     </message>
     <message>
-        <location filename="src/downloadsettings.cpp" line="69"/>
         <source>Choose the download location</source>
         <translation>اختر موقع التحميل</translation>
     </message>
     <message>
-        <location filename="src/downloadsettings.cpp" line="81"/>
         <source>Download location changed.</source>
         <translation>موقع التحميل تغير.</translation>
     </message>
     <message>
-        <location filename="src/downloadsettings.cpp" line="83"/>
         <source>Current downloads will still go in the previous location.</source>
         <translation>التحميل سيتم في الموقع السابق.</translation>
     </message>
     <message>
-        <location filename="src/downloadsettings.cpp" line="94"/>
         <source>Downloading to: %1</source>
         <translation>التحميل الى:%1</translation>
     </message>
 <context>
     <name>DownloadView</name>
     <message>
-        <location filename="src/downloadview.cpp" line="38"/>
-        <location filename="src/downloadview.h" line="45"/>
         <source>Downloads</source>
         <translation>التحميلات</translation>
     </message>
 </context>
-<context>
-    <name>DownloadWidget</name>
-    <message>
-        <location filename="local/src/updatedialog.cpp" line="60"/>
-        <source>Downloading update...</source>
-        <translation>يتم الآن تحميل التحديث</translation>
-    </message>
-</context>
 <context>
     <name>Extra</name>
     <message>
-        <location filename="local/src/extra.cpp" line="251"/>
         <source>The executable file has been tempered with, maybe by a virus.</source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="local/src/extra.cpp" line="252"/>
         <source>%1 will not run. Try installing again.</source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="local/src/extra.cpp" line="253"/>
         <source>Quit</source>
         <translation>خروج</translation>
     </message>
     <message>
-        <location filename="local/src/extra.cpp" line="254"/>
         <source>Reinstall</source>
         <translation>إعادة التثبيت</translation>
     </message>
 <context>
     <name>GlobalShortcuts</name>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="36"/>
         <source>Play</source>
         <translation>تشغيل</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="37"/>
         <source>Pause</source>
         <translation>ألبث</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="38"/>
         <source>Play/Pause</source>
         <translation>شغّل/ألبث</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="39"/>
         <source>Stop</source>
         <translation>أوقف</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="40"/>
         <source>Stop playing after current track</source>
         <translation>ايقاف تشغيل المقطع الحالي</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="41"/>
         <source>Next track</source>
         <translation>المقطع التالي</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="42"/>
         <source>Previous track</source>
         <translation>المقطع السابق</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="43"/>
         <source>Increase volume</source>
         <translation>رفع الصوت</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="44"/>
         <source>Decrease volume</source>
         <translation>خفض الصوت</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="45"/>
         <source>Mute</source>
         <translation>صامت</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="46"/>
         <source>Seek forward</source>
         <translation>امام</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="47"/>
         <source>Seek backward</source>
         <translation>خلف</translation>
     </message>
 <context>
     <name>HomeView</name>
     <message>
-        <location filename="src/homeview.cpp" line="58"/>
         <source>Search</source>
         <translation>بحث</translation>
     </message>
     <message>
-        <location filename="src/homeview.cpp" line="60"/>
         <source>Find videos and channels by keyword</source>
         <translation>جِد مقاطع فيديو وقنواتٍ بحسب الكلمة الرئيسة</translation>
     </message>
     <message>
-        <location filename="src/homeview.cpp" line="65"/>
         <source>Browse</source>
         <translation>أستعراض</translation>
     </message>
     <message>
-        <location filename="src/homeview.cpp" line="67"/>
         <source>Browse videos by category</source>
         <translation>تصفح الفيديوهات حسب الفئة</translation>
     </message>
     <message>
-        <location filename="src/homeview.cpp" line="71"/>
         <source>Subscriptions</source>
         <translation>الإشتراكات</translation>
     </message>
     <message>
-        <location filename="src/homeview.cpp" line="73"/>
         <source>Channel subscriptions</source>
         <translation>اشتراكات القنوات</translation>
     </message>
     <message>
-        <location filename="src/homeview.h" line="44"/>
         <source>Make yourself comfortable</source>
         <translation>اجعل نفسك مرتاحا</translation>
     </message>
 <context>
     <name>LoadingWidget</name>
     <message>
-        <location filename="src/loadingwidget.cpp" line="125"/>
         <source>Error</source>
         <translation>خطأ</translation>
     </message>
 <context>
     <name>MainWindow</name>
     <message>
-        <location filename="src/mainwindow.cpp" line="291"/>
+        <source>&amp;Window</source>
+        <translation>&amp;نافذة</translation>
+    </message>
+    <message>
+        <source>&amp;Minimize</source>
+        <translation>&amp;تصغير الى شريط المهام</translation>
+    </message>
+    <message>
         <source>&amp;Stop</source>
         <translation>&amp;قف</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="292"/>
         <source>Stop playback and go back to the search view</source>
         <translation>وقف التشغيل و العودة لوضع البحث</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="307"/>
+        <source>P&amp;revious</source>
+        <translation>ال&amp;سابق</translation>
+    </message>
+    <message>
+        <source>Go back to the previous track</source>
+        <translation>العودة إلى المجاز السابق</translation>
+    </message>
+    <message>
         <source>S&amp;kip</source>
         <translation>&amp;القفز</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="308"/>
         <source>Skip to the next video</source>
         <translation>القفز للفيديو التالي</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1134"/>
-        <source>&amp;Pause</source>
-        <translation>&amp;ايقاف مؤقت</translation>
+        <source>&amp;Play</source>
+        <translation>&amp;التشغيل</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1135"/>
-        <source>Pause playback</source>
-        <translation>ايقاف التشغيل</translation>
+        <source>Resume playback</source>
+        <translation>اكمال التشغيل</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="321"/>
         <source>&amp;Full Screen</source>
         <translation>&amp;شاشة كاملة</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="322"/>
         <source>Go full screen</source>
         <translation>تشغيل شاشة كاملة</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="336"/>
+        <source>&amp;Compact Mode</source>
+        <translation>&amp;الواجهة الخفيفة</translation>
+    </message>
+    <message>
         <source>Hide the playlist and the toolbar</source>
         <translation>اخفاء القائمة و شريط المهام</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="349"/>
+        <source>Open the &amp;YouTube Page</source>
+        <translation>أفتح صفحة الفيديو على &amp;YouTube</translation>
+    </message>
+    <message>
         <source>Go to the YouTube video page and pause playback</source>
         <translation>اذهب الى صفحة فيديو YouTube و وقف التشغيل</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="356"/>
+        <source>Copy the YouTube &amp;Link</source>
+        <translation>انسخ رابط الفيديو &amp;Link</translation>
+    </message>
+    <message>
         <source>Copy the current video YouTube link to the clipboard</source>
         <translation>نسخ رابط YouTube الى clipboard</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="363"/>
+        <source>Copy the Video Stream &amp;URL</source>
+        <translation>انسخ الفيديو وعنوانه</translation>
+    </message>
+    <message>
         <source>Copy the current video stream URL to the clipboard</source>
         <translation>نسخ رابط الفيديو الى clipboard</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="370"/>
+        <source>Find Video &amp;Parts</source>
+        <translation>أبحث عن &amp;أجزاء الفيديو الأُخرى</translation>
+    </message>
+    <message>
         <source>Find other video parts hopefully in the right order</source>
         <translation>اوجد أجزاء الفيديو الأخرى املا أن تكون في الترتيب الصحيح</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="376"/>
         <source>&amp;Remove</source>
         <translation>&amp;إزالة</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="377"/>
         <source>Remove the selected videos from the playlist</source>
         <translation>إزالة الفيديو من القائمة</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="383"/>
         <source>Move &amp;Up</source>
         <translation>الرفع الى &amp;اعلى</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="384"/>
         <source>Move up the selected videos in the playlist</source>
         <translation>رفع المقاطع المختارة الى فوق في القائمة</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="390"/>
         <source>Move &amp;Down</source>
         <translation>الانزال الى &amp;تحت</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="391"/>
         <source>Move down the selected videos in the playlist</source>
         <translation>انزال المقاطع المختارة الى تحت في القائمة</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="402"/>
+        <source>&amp;Clear Recent Searches</source>
+        <translation>&amp;مسح تاريخ البحث </translation>
+    </message>
+    <message>
         <source>Clear the search history. Cannot be undone.</source>
         <translation>مسح تاريخ البحث. لا يمكن استعادته.</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="407"/>
         <source>&amp;Quit</source>
         <translation>&amp;الانتهاء</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="410"/>
         <source>Bye</source>
         <translation>مع السلامة</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="414"/>
         <source>&amp;Website</source>
         <translation>&amp;الموقع</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="416"/>
         <source>%1 on the Web</source>
         <translation>%1 على الشبكة</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="422"/>
+        <source>Make a &amp;Donation</source>
+        <translation>القيام بتبرع</translation>
+    </message>
+    <message>
         <source>Please support the continued development of %1</source>
         <translation>‎الرجاء التبرع لمتابعة تطوير  %1</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="427"/>
         <source>&amp;About</source>
         <translation>&amp;عن البرنامج</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="429"/>
         <source>Info about %1</source>
         <translation>معلومات عن %1</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="437"/>
         <source>Search</source>
         <translation>البحث</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="456"/>
         <source>Mute volume</source>
         <translation>كتم الصوت</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="490"/>
-        <location filename="src/mainwindow.cpp" line="1609"/>
+        <source>&amp;Manually Start Playing</source>
+        <translation>&amp;تشغيل الفيديوهات يدويا</translation>
+    </message>
+    <message>
+        <source>Manually start playing videos</source>
+        <translation>بدء تشغيل الفيديو يدويا</translation>
+    </message>
+    <message>
         <source>&amp;Downloads</source>
         <translation>&amp;التحميلات</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="491"/>
         <source>Show details about video downloads</source>
         <translation>عرض تفاصيل عن تحميلات الفيديو</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="499"/>
         <source>&amp;Download</source>
         <translation>&amp;التحميلات</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="500"/>
         <source>Download the current video</source>
         <translation>تحميل الفيديو الحالي</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="510"/>
         <source>Take &amp;Snapshot</source>
         <translation>التقط &amp;صورة</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="517"/>
         <source>&amp;Subscribe to Channel</source>
         <translation>ا&amp;شترك بالقناة</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="525"/>
         <source>Share the current video using %1</source>
         <translation>شارك الفيديو الحالي باستخدام %1</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="545"/>
         <source>&amp;Email</source>
         <translation>&amp;البريد الإلكتروني</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="546"/>
         <source>Email</source>
         <translation>البريد الإلكتروني</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="551"/>
         <source>&amp;Close</source>
         <translation>&amp;اقفل</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="561"/>
         <source>&amp;Float on Top</source>
         <translation>&amp;اطفو علي القمة</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="566"/>
         <source>&amp;Adjust Window Size</source>
-        <translation type="unfinished"/>
+        <translation>&amp;ضبط حجم النافذة</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="571"/>
         <source>&amp;Stop After This Video</source>
         <translation>&amp;أوقف العرض التلقائي بعد الفيديو الحالي </translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="578"/>
         <source>&amp;Report an Issue...</source>
         <translation>&amp;أبلغ عن مشكلة</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="582"/>
         <source>&amp;Refine Search...</source>
         <translation>&amp;خيارات البحث...</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="594"/>
         <source>More...</source>
         <translation>المزيد...</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="597"/>
         <source>&amp;Related Videos</source>
         <translation>مقاطع ذات &amp;صلة</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="599"/>
         <source>Watch videos related to the current one</source>
         <translation>شاهد مقاطع فيديو ذات صلة بهذا</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="605"/>
         <source>Open in &amp;Browser...</source>
         <translation>افتح &amp;ضمن المُستعرض...</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="612"/>
-        <source>&amp;Love %1? Rate it!</source>
-        <translation>أت&amp;حبّ %1؟ قيّمه!</translation>
+        <source>Restricted Mode</source>
+        <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="633"/>
-        <source>&amp;Application</source>
-        <translation>&amp;البرنامج</translation>
+        <source>Hide videos that may contain inappropriate content</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <source>&amp;Love %1? Rate it!</source>
+        <translation>أت&amp;حبّ %1؟ قيّمه!</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="618"/>
         <source>Buy %1...</source>
         <translation>اشترِ %1...</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="647"/>
+        <source>&amp;Application</source>
+        <translation>&amp;البرنامج</translation>
+    </message>
+    <message>
         <source>&amp;Playback</source>
         <translation>&amp;قراءة</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="661"/>
         <source>&amp;Playlist</source>
         <translation>&amp;القائمة</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="670"/>
         <source>&amp;Video</source>
         <translation>&amp;الفيديو</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="686"/>
-        <source>&amp;View</source>
-        <translation>&amp;مشاهدة</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="695"/>
         <source>&amp;Share</source>
         <translation>&amp;شارك</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="709"/>
+        <source>&amp;View</source>
+        <translation>&amp;مشاهدة</translation>
+    </message>
+    <message>
         <source>&amp;Help</source>
         <translation>&amp;المساعدة</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="751"/>
         <source>Press %1 to raise the volume, %2 to lower it</source>
         <translation>اضغط %1 لرفع الصوت و %2 لخفضه</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1021"/>
-        <location filename="src/mainwindow.cpp" line="1027"/>
+        <source>Choose your content location</source>
+        <translation>اختر موقع محتوياتك</translation>
+    </message>
+    <message>
         <source>Opening %1</source>
         <translation>جاري فتح %1</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1080"/>
         <source>Do you want to exit %1 with a download in progress?</source>
         <translation>هل تريد الخروج %1  رغم وجود تحميل?</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1081"/>
         <source>If you close %1 now, this download will be cancelled.</source>
         <translation>عند اغلاق %1 التحميل سيلغى.</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1086"/>
         <source>Close and cancel download</source>
         <translation>الاغلاق و الغاء التحميل</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1087"/>
         <source>Wait for download to finish</source>
         <translation>انتظار انتهاء التحميل</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1158"/>
-        <source>&amp;Loading...</source>
-        <translation type="unfinished"/>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="1264"/>
-        <source>Leave &amp;Full Screen</source>
-        <translation>غادر &amp;الشاشة الكاملة</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="1718"/>
-        <source>%1 version %2 is now available.</source>
-        <translation>%1 الإصدار %2 متوفر الآن.</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="1722"/>
-        <source>Remind me later</source>
-        <translation>ذكرني لاحقا</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="1723"/>
-        <source>Update</source>
-        <translation>تحديث</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="1127"/>
         <source>Error: %1</source>
         <translation>خطأ: %1</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="300"/>
-        <source>P&amp;revious</source>
-        <translation>ال&amp;سابق</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="301"/>
-        <source>Go back to the previous track</source>
-        <translation>العودة إلى المجاز السابق</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="335"/>
-        <source>&amp;Compact Mode</source>
-        <translation>&amp;الواجهة الخفيفة</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="348"/>
-        <source>Open the &amp;YouTube Page</source>
-        <translation>أفتح صفحة الفيديو على &amp;YouTube</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="355"/>
-        <source>Copy the YouTube &amp;Link</source>
-        <translation>انسخ رابط الفيديو &amp;Link</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="362"/>
-        <source>Copy the Video Stream &amp;URL</source>
-        <translation>انسخ الفيديو وعنوانه</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="369"/>
-        <source>Find Video &amp;Parts</source>
-        <translation>أبحث عن &amp;أجزاء الفيديو الأُخرى</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="397"/>
-        <source>&amp;Clear Recent Searches</source>
-        <translation>&amp;مسح تاريخ البحث </translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="421"/>
-        <source>Make a &amp;Donation</source>
-        <translation>القيام بتبرع</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="483"/>
-        <source>&amp;Manually Start Playing</source>
-        <translation>&amp;تشغيل الفيديوهات يدويا</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="484"/>
-        <source>Manually start playing videos</source>
-        <translation>بدء تشغيل الفيديو يدويا</translation>
+        <source>&amp;Pause</source>
+        <translation>&amp;ايقاف مؤقت</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="847"/>
-        <source>Choose your content location</source>
-        <translation>اختر موقع محتوياتك</translation>
+        <source>Pause playback</source>
+        <translation>ايقاف التشغيل</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="314"/>
-        <location filename="src/mainwindow.cpp" line="1142"/>
-        <location filename="src/mainwindow.cpp" line="1150"/>
-        <source>&amp;Play</source>
-        <translation>&amp;التشغيل</translation>
+        <source>&amp;Loading...</source>
+        <translation>&amp;تحميل...</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="315"/>
-        <location filename="src/mainwindow.cpp" line="1143"/>
-        <location filename="src/mainwindow.cpp" line="1151"/>
-        <source>Resume playback</source>
-        <translation>اكمال التشغيل</translation>
+        <source>Leave &amp;Full Screen</source>
+        <translation>غادر &amp;الشاشة الكاملة</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1437"/>
         <source>Remaining time: %1</source>
         <translation>الوقت المتبقي: %1</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1528"/>
         <source>Volume at %1%</source>
         <translation>%1%الصوت عند </translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1534"/>
         <source>Volume is muted</source>
         <translation>الصوت مكتوم</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1537"/>
         <source>Volume is unmuted</source>
         <translation>الصوت غير مكتوم</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1548"/>
         <source>Maximum video definition set to %1</source>
         <translation>الوضوح الاقصى %1</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1595"/>
         <source>Your privacy is now safe</source>
         <translation>خصوصيتك امنة</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1610"/>
         <source>Downloads complete</source>
         <translation>التحميل انتهى</translation>
     </message>
+    <message>
+        <source>%1 version %2 is now available.</source>
+        <translation>%1 الإصدار %2 متوفر الآن.</translation>
+    </message>
+    <message>
+        <source>Remind me later</source>
+        <translation>ذكرني لاحقا</translation>
+    </message>
+    <message>
+        <source>Update</source>
+        <translation>تحديث</translation>
+    </message>
 </context>
 <context>
     <name>MediaView</name>
     <message>
-        <location filename="src/mediaview.cpp" line="702"/>
         <source>You can now paste the YouTube link into another application</source>
         <translation>يمكنك لصق رابط YouTube في برنامج اخر</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="710"/>
         <source>You can now paste the video stream URL into another application</source>
         <translation>يمكنك لصق رابط الفيديو في برنامج اخر</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="711"/>
         <source>The link will be valid only for a limited time.</source>
         <translation>الرابط سيكون صالحا لمدة محدودة.</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="800"/>
         <source>This is just the demo version of %1.</source>
         <translation>هذه ليست سوى النسخة التجريبية من %1.</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="801"/>
         <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="833"/>
+        <source>Get the full version</source>
+        <translation>احصل على النسخة الكاملة</translation>
+    </message>
+    <message>
         <source>Continue</source>
         <translation>متابعة</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="988"/>
+        <source>Downloading %1</source>
+        <translation>جاري تحميل %1</translation>
+    </message>
+    <message>
         <source>of</source>
         <comment>Used in video parts, as in '2 of 3'</comment>
         <translation>من</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="1001"/>
         <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="1003"/>
         <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="1096"/>
         <source>Sent from %1</source>
         <translation>أرسلت من %1</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="1128"/>
         <source>Unsubscribe from %1</source>
         <translation>إلغاء الاشتراك من %1</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="1132"/>
         <source>Subscribe to %1</source>
         <translation>اشترك في %1</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="1166"/>
         <source>Unsubscribed from %1</source>
-        <translation type="unfinished"/>
+        <translation>تم إلغاء متابعتك ل %1</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="1169"/>
         <source>Subscribed to %1</source>
-        <translation type="unfinished"/>
-    </message>
-    <message>
-        <location filename="src/mediaview.cpp" line="808"/>
-        <source>Get the full version</source>
-        <translation>احصل على النسخة الكاملة</translation>
-    </message>
-    <message>
-        <location filename="src/mediaview.cpp" line="847"/>
-        <source>Downloading %1</source>
-        <translation>جاري تحميل %1</translation>
+        <translation>تمت اضافة متابعة ل %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>يتوقّر إصدار جديد من %1!</translation>
     </message>
     <message>
-        <location filename="local/src/updatedialog.cpp" line="28"/>
         <source>%1 %2 is now available. You have %3.</source>
         <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>أتريد تنزيله الآن؟</translation>
     </message>
     <message>
-        <location filename="local/src/updatedialog.cpp" line="39"/>
         <source>Skip This Version</source>
         <translation>تجاوز هذا الإصدار</translation>
     </message>
     <message>
-        <location filename="local/src/updatedialog.cpp" line="43"/>
         <source>Remind Me Later</source>
         <translation>ذكرني لاحقا</translation>
     </message>
     <message>
-        <location filename="local/src/updatedialog.cpp" line="47"/>
         <source>Install Update</source>
         <translation>تثبيت التحديث</translation>
     </message>
 <context>
     <name>PasteLineEdit</name>
     <message>
-        <location filename="local/src/pastelineedit.cpp" line="6"/>
         <source>Paste</source>
         <translation>لصق</translation>
     </message>
 <context>
     <name>PlaylistItemDelegate</name>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="209"/>
         <source>%1 views</source>
         <translation>%1 مشاهدة</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="309"/>
         <source>%1 of %2 (%3) — %4</source>
         <translation>1% من 2% (3%) — 4%</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="316"/>
         <source>Preparing</source>
         <translation>تهيئة</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="318"/>
         <source>Failed</source>
         <translation>فشل</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="320"/>
         <source>Completed</source>
         <translation>تم</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="322"/>
         <source>Stopped</source>
         <translation>متوقف</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="358"/>
         <source>Stop downloading</source>
         <translation>ايقاف التحميل</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="368"/>
         <source>Show in %1</source>
         <translation>اظهار في %1</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="370"/>
         <source>Open parent folder</source>
         <translation>فتح المجلد الرئيسي</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="379"/>
         <source>Restart downloading</source>
         <translation>اعادة التحميل</translation>
     </message>
 <context>
     <name>PlaylistModel</name>
     <message>
-        <location filename="src/playlistmodel.cpp" line="70"/>
         <source>Searching...</source>
         <translation>جاري البحث...</translation>
     </message>
     <message>
-        <location filename="src/playlistmodel.cpp" line="71"/>
         <source>Show %1 More</source>
         <translation>اظهر %1 المزيد</translation>
     </message>
     <message>
-        <location filename="src/playlistmodel.cpp" line="72"/>
         <source>No videos</source>
         <translation>لا توجد فيديوهات</translation>
     </message>
     <message>
-        <location filename="src/playlistmodel.cpp" line="73"/>
         <source>No more videos</source>
         <translation>لا يوجد المزيد من الفيديوهات</translation>
     </message>
 <context>
     <name>RefineSearchWidget</name>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="49"/>
         <source>Sort by</source>
         <translation>ترتيب بـ</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="53"/>
         <source>Relevance</source>
         <translation>ذات صلة</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="54"/>
-        <location filename="src/refinesearchwidget.cpp" line="69"/>
         <source>Date</source>
         <translation>التاريخ</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="55"/>
         <source>View Count</source>
         <translation>عدد المشاهدات</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="56"/>
         <source>Rating</source>
         <translation>التقييم</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="73"/>
         <source>Anytime</source>
         <translation>اي وقت</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="74"/>
         <source>Today</source>
         <translation>اليوم</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="75"/>
         <source>7 Days</source>
         <translation>7 أيام</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="76"/>
         <source>30 Days</source>
         <translation>30 يوم</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="89"/>
         <source>Duration</source>
         <translation>المدة</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="93"/>
-        <location filename="src/refinesearchwidget.cpp" line="119"/>
         <source>All</source>
         <translation>الكل</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="94"/>
         <source>Short</source>
         <translation>قصير</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="95"/>
         <source>Medium</source>
         <translation>متوسط</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="96"/>
         <source>Long</source>
         <translation>طويل</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="99"/>
         <source>Less than 4 minutes</source>
         <translation>أقل من 4 دقائق</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="100"/>
         <source>Between 4 and 20 minutes</source>
         <translation>ما بين 4 ال 20 دقيقة</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="101"/>
         <source>Longer than 20 minutes</source>
         <translation>أطول من 20 دقيقة</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="115"/>
         <source>Quality</source>
         <translation>الجودة</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="120"/>
         <source>High Definition</source>
         <translation>دقة عالية</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="123"/>
         <source>720p or higher</source>
         <translation>720 أو أعلي</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="136"/>
         <source>Done</source>
         <translation>إنتهي</translation>
     </message>
 <context>
     <name>RegionsView</name>
     <message>
-        <location filename="src/regionsview.cpp" line="39"/>
         <source>Done</source>
         <translation>تمّ</translation>
     </message>
 <context>
     <name>SearchLineEdit</name>
     <message>
-        <location filename="src/searchlineedit.cpp" line="55"/>
         <source>Search</source>
         <translation>البحث</translation>
     </message>
 <context>
     <name>SearchView</name>
     <message>
-        <location filename="src/searchview.cpp" line="83"/>
         <source>Welcome to &lt;a href=&apos;%1&apos;&gt;%2&lt;/a&gt;,</source>
         <translation>مرحبا بك في &lt;a href=&apos;%1&apos;&gt;%2&lt;/a&gt;,</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="200"/>
-        <source>Get the full version</source>
-        <translation>الحصول على النسخة الكاملة</translation>
-    </message>
-    <message>
-        <location filename="src/searchview.cpp" line="110"/>
         <source>Enter</source>
         <extracomment>&quot;Enter&quot;, as in &quot;type&quot;. The whole phrase says: &quot;Enter a keyword to start watching videos&quot;</extracomment>
         <translation>أدخل</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="117"/>
         <source>a keyword</source>
         <translation> كلمة مفتاح</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="118"/>
         <source>a channel</source>
         <translation>قناة</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="125"/>
         <source>to start watching videos.</source>
         <translation>لبدء مشاهدة أشرطة الفيديو</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="156"/>
         <source>Watch</source>
         <translation>شاهد</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="174"/>
         <source>Recent keywords</source>
         <translation>كلمات بحث سابقة</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="186"/>
         <source>Recent channels</source>
         <translation>القنوات الأخيرة</translation>
     </message>
+    <message>
+        <source>Get the full version</source>
+        <translation>الحصول على النسخة الكاملة</translation>
+    </message>
 </context>
 <context>
     <name>SidebarHeader</name>
     <message>
-        <location filename="src/sidebarheader.cpp" line="38"/>
-        <location filename="src/sidebarheader.cpp" line="45"/>
         <source>&amp;Back</source>
         <translation>&amp;عودة</translation>
     </message>
     <message>
-        <location filename="src/sidebarheader.cpp" line="76"/>
         <source>Forward to %1</source>
         <translation>تقدّم إلى %1</translation>
     </message>
     <message>
-        <location filename="src/sidebarheader.cpp" line="89"/>
         <source>Back to %1</source>
         <translation>عُد إلى %1</translation>
     </message>
 <context>
     <name>SidebarWidget</name>
     <message>
-        <location filename="src/sidebarwidget.cpp" line="68"/>
         <source>Refine Search</source>
         <translation>خيارات البحث</translation>
     </message>
     <message>
-        <location filename="src/sidebarwidget.cpp" line="167"/>
         <source>Did you mean: %1</source>
         <translation>هل تقصد: %1</translation>
     </message>
 <context>
     <name>SnapshotSettings</name>
     <message>
-        <location filename="src/snapshotsettings.cpp" line="47"/>
         <source>Change location...</source>
         <translation>تغيير الموقع...</translation>
     </message>
     <message>
-        <location filename="src/snapshotsettings.cpp" line="64"/>
         <source>Snapshot saved to %1</source>
         <translation>حُفظت الصورة إلى %1</translation>
     </message>
     <message>
-        <location filename="src/snapshotsettings.cpp" line="117"/>
         <source>Snapshots location changed.</source>
         <translation>تغيّر موقع الصّور المُلتقطة.</translation>
     </message>
 <context>
     <name>StandardFeedsView</name>
     <message>
-        <location filename="src/standardfeedsview.cpp" line="107"/>
         <source>Most Popular</source>
         <translation>الأكثر شهرة</translation>
     </message>
 </context>
+<context>
+    <name>UpdateDialog</name>
+    <message>
+        <source>Downloading update...</source>
+        <translation>يتم الآن تحميل التحديث</translation>
+    </message>
+    <message>
+        <source>Downloading %1...</source>
+        <translation type="unfinished"/>
+    </message>
+</context>
 <context>
     <name>Video</name>
     <message>
-        <location filename="src/video.cpp" line="287"/>
         <source>Cannot get video stream for %1</source>
         <translation>لا يمكن الحصول على دفق الفيديو %1</translation>
     </message>
-    <message>
-        <location filename="src/video.cpp" line="292"/>
-        <source>Network error: %1 for %2</source>
-        <translation>خطأ شبكة:%1 الى %2</translation>
-    </message>
 </context>
 <context>
     <name>YTRegions</name>
     <message>
-        <location filename="src/ytregions.cpp" line="28"/>
         <source>Algeria</source>
         <translation>الجزائر</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="29"/>
         <source>Argentina</source>
         <translation>الأرجنتين</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="30"/>
         <source>Australia</source>
         <translation>أستراليا</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="31"/>
         <source>Belgium</source>
         <translation>بلجيكا</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="32"/>
         <source>Brazil</source>
         <translation>البرازيل</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="33"/>
         <source>Canada</source>
         <translation>كندا</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="34"/>
         <source>Chile</source>
         <translation>تشيلي</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="35"/>
         <source>Colombia</source>
         <translation>كولومبيا</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="36"/>
         <source>Czech Republic</source>
         <translation>جمهورية التشيك</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="37"/>
         <source>Egypt</source>
         <translation>مصر</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="38"/>
         <source>France</source>
         <translation>فرنسا</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="39"/>
         <source>Germany</source>
         <translation>ألمانيا</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="40"/>
         <source>Ghana</source>
         <translation>غانا</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="41"/>
         <source>Greece</source>
         <translation>اليونان</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="42"/>
         <source>Hong Kong</source>
         <translation>هونغ كونغ</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="43"/>
         <source>Hungary</source>
         <translation>هنغاريا</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="44"/>
         <source>India</source>
         <translation>الهند</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="45"/>
         <source>Indonesia</source>
         <translation>إندونيسيا</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="46"/>
         <source>Ireland</source>
         <translation>إيرلندا</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="47"/>
         <source>Israel</source>
         <translation>إسرائيل</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="48"/>
         <source>Italy</source>
         <translation>إيطاليا</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="49"/>
         <source>Japan</source>
         <translation>اليابان</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="50"/>
         <source>Jordan</source>
         <translation>الأردن</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="51"/>
         <source>Kenya</source>
         <translation>كينيا</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="52"/>
         <source>Malaysia</source>
         <translation>ماليزيا</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="53"/>
         <source>Mexico</source>
         <translation>المكسيك</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="54"/>
         <source>Morocco</source>
         <translation>المغرب</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="55"/>
         <source>Netherlands</source>
         <translation>هولندا</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="56"/>
         <source>New Zealand</source>
         <translation>نيوزيلندا </translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="57"/>
         <source>Nigeria</source>
         <translation>نيجيريا</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="58"/>
         <source>Peru</source>
         <translation>بيرو</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="59"/>
         <source>Philippines</source>
         <translation>الفلبين</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="60"/>
         <source>Poland</source>
         <translation>بولندا</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="61"/>
         <source>Russia</source>
         <translation>روسيا</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="62"/>
         <source>Saudi Arabia</source>
         <translation>المملكة العربية السعودية</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="63"/>
         <source>Singapore</source>
         <translation>سنغافورة</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="64"/>
         <source>South Africa</source>
         <translation>جنوب أفريقيا</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="65"/>
         <source>South Korea</source>
         <translation>كوريا الجنوبية</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="66"/>
         <source>Spain</source>
         <translation>إسبانيا</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="67"/>
         <source>Sweden</source>
         <translation>السويد</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="68"/>
         <source>Taiwan</source>
         <translation>تايوان</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="69"/>
         <source>Tunisia</source>
         <translation>تونس</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="70"/>
         <source>Turkey</source>
         <translation>تركيا</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="71"/>
         <source>Uganda</source>
         <translation>أوغندا</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="72"/>
         <source>United Arab Emirates</source>
         <translation>الإمارات العربية المتحدة</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="73"/>
         <source>United Kingdom</source>
         <translation>المملكة المتحدة</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="74"/>
         <source>Yemen</source>
         <translation>اليمن</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="148"/>
         <source>Worldwide</source>
         <translation>العالم</translation>
     </message>
index 5a177930243c8ed215cf6da034eb30d7a6d2e846..2a18063ffc27e172b7503105c3ae808209fb15be 100644 (file)
@@ -2,67 +2,42 @@
 <context>
     <name>AboutView</name>
     <message>
-        <location filename="src/aboutview.cpp" line="58"/>
         <source>There&apos;s life outside the browser!</source>
         <translation>¡Hai vida más allá del restolador!</translation>
     </message>
     <message>
-        <location filename="src/aboutview.cpp" line="59"/>
         <source>Version %1</source>
         <translation>Versión %1</translation>
     </message>
     <message>
-        <location filename="src/aboutview.cpp" line="64"/>
         <source>Licensed to: %1</source>
         <translation>Llicencia pa: %1</translation>
     </message>
     <message>
-        <location filename="src/aboutview.cpp" line="68"/>
         <source>%1 is Free Software but its development takes precious time.</source>
         <translation>%1 ye Software Llibre pero lleva un tiempu valoratible desendolcalu.</translation>
     </message>
     <message>
-        <location filename="src/aboutview.cpp" line="69"/>
         <source>Please &lt;a href=&apos;%1&apos;&gt;donate&lt;/a&gt; to support the continued development of %2.</source>
         <translation>Por favor &lt;a href=&apos;%1&apos;&gt;fai una donación&lt;/a&gt; pa sofitar el desendolcu continuu de %2.</translation>
     </message>
     <message>
-        <location filename="src/aboutview.cpp" line="73"/>
-        <source>You may want to try my other apps as well:</source>
-        <translation>Seique quieras probar tamién les mios otres aplicaciones:</translation>
-    </message>
-    <message>
-        <location filename="src/aboutview.cpp" line="76"/>
-        <source>%1, a YouTube music player</source>
-        <translation>%1, un reproductor de música de YouTube</translation>
-    </message>
-    <message>
-        <location filename="src/aboutview.cpp" line="80"/>
-        <source>%1, a music player</source>
-        <translation>%1, un reproductor de música</translation>
-    </message>
-    <message>
-        <location filename="src/aboutview.cpp" line="86"/>
         <source>Translate %1 to your native language using %2</source>
         <translation>Traduz %1 a la to llingua nativa usando %2</translation>
     </message>
     <message>
-        <location filename="src/aboutview.cpp" line="91"/>
         <source>Icon designed by %1.</source>
         <translation>Iconu diseñáu por %1.</translation>
     </message>
     <message>
-        <location filename="src/aboutview.cpp" line="95"/>
         <source>Released under the &lt;a href=&apos;%1&apos;&gt;GNU General Public License&lt;/a&gt;</source>
         <translation>Lliberáu baxo la &lt;a href=&apos;%1&apos;&gt;Llicencia Pública Xeneral GNU&lt;/a&gt;</translation>
     </message>
     <message>
-        <location filename="src/aboutview.cpp" line="110"/>
         <source>&amp;Close</source>
         <translation>&amp;Zarrar</translation>
     </message>
     <message>
-        <location filename="src/aboutview.h" line="40"/>
         <source>About</source>
         <translation>Tocante a</translation>
     </message>
 <context>
     <name>ActivationDialog</name>
     <message>
-        <location filename="local/src/activationdialog.cpp" line="17"/>
         <source>Enter your License Details</source>
         <translation>Introduz los detalles de la llicencia</translation>
     </message>
     <message>
-        <location filename="local/src/activationdialog.cpp" line="29"/>
         <source>&amp;Email:</source>
         <translation>Cor&amp;réu-e:</translation>
     </message>
     <message>
-        <location filename="local/src/activationdialog.cpp" line="35"/>
         <source>&amp;Code:</source>
         <translation>&amp;Códigu:</translation>
     </message>
 <context>
     <name>ActivationView</name>
     <message>
-        <location filename="local/src/activationview.cpp" line="47"/>
         <source>Please license %1</source>
         <translation>Obtén una llicencia de %1</translation>
     </message>
     <message>
-        <location filename="local/src/activationview.cpp" line="51"/>
         <source>This demo has expired.</source>
         <translation>Esta demo caducó</translation>
     </message>
     <message>
-        <location filename="local/src/activationview.cpp" line="53"/>
         <source>The full version allows you to watch videos without interruptions.</source>
-        <oldsource>The full version allows you to download videos longer than %1 minutes and to watch videos without interruptions.</oldsource>
         <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>Ensin una llicencia, l&apos;aplicación va caducar en %1 díes.</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 mercar la versión completa, tamién sofites el trabayu fechu na creación de %1.</translation>
     </message>
     <message>
-        <location filename="local/src/activationview.cpp" line="70"/>
         <source>Use Demo</source>
         <translation>Usar demostración</translation>
     </message>
     <message>
-        <location filename="local/src/activationview.cpp" line="77"/>
         <source>Enter License</source>
         <translation>Introducir llicencia</translation>
     </message>
     <message>
-        <location filename="local/src/activationview.cpp" line="85"/>
         <source>Buy License</source>
         <translation>Mercar llicencia</translation>
     </message>
 </context>
+<context>
+    <name>AppWidget</name>
+    <message>
+        <source>Download</source>
+        <translation type="unfinished"/>
+    </message>
+</context>
 <context>
     <name>ChannelAggregator</name>
     <message>
-        <location filename="src/channelaggregator.cpp" line="183"/>
         <source>By %1</source>
         <translation type="unfinished"/>
     </message>
     <message numerus="yes">
-        <location filename="src/channelaggregator.cpp" line="185"/>
         <source>You have %n new video(s)</source>
         <translation type="unfinished"><numerusform></numerusform><numerusform></numerusform></translation>
     </message>
 <context>
     <name>ChannelItemDelegate</name>
     <message>
-        <location filename="src/channelitemdelegate.cpp" line="67"/>
         <source>All Videos</source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="src/channelitemdelegate.cpp" line="85"/>
         <source>Unwatched Videos</source>
         <translation type="unfinished"/>
     </message>
 <context>
     <name>ChannelView</name>
     <message>
-        <location filename="src/channelview.cpp" line="151"/>
-        <source>Mark all as watched</source>
-        <translation type="unfinished"/>
-    </message>
-    <message>
-        <location filename="src/channelview.cpp" line="159"/>
-        <source>Show Updated</source>
-        <translation type="unfinished"/>
-    </message>
-    <message>
-        <location filename="src/channelview.cpp" line="103"/>
         <source>Name</source>
         <translation>Nome</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="110"/>
         <source>Last Updated</source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="117"/>
         <source>Last Added</source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="124"/>
         <source>Last Watched</source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="131"/>
         <source>Most Watched</source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="139"/>
         <source>Sort by</source>
         <translation>Ordenar por</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="222"/>
+        <source>Mark all as watched</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <source>Show Updated</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
         <source>All Videos</source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="226"/>
         <source>Unwatched Videos</source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="244"/>
         <source>Mark as Watched</source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="257"/>
         <source>Unsubscribe</source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="270"/>
         <source>There are no updated subscriptions at this time.</source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="272"/>
         <source>You have no subscriptions. Use the star symbol to subscribe to channels.</source>
         <translation type="unfinished"/>
     </message>
 <context>
     <name>ClearButton</name>
     <message>
-        <location filename="src/exlineedit.cpp" line="6"/>
         <source>Clear</source>
         <translation>Llimpiar</translation>
     </message>
 <context>
     <name>DataUtils</name>
     <message>
-        <location filename="src/datautils.cpp" line="88"/>
         <source>Just now</source>
         <translation type="unfinished"/>
     </message>
     <message numerus="yes">
-        <location filename="src/datautils.cpp" line="90"/>
-        <source>%n minute(s) ago</source>
-        <translation type="unfinished"><numerusform></numerusform><numerusform></numerusform></translation>
-    </message>
-    <message numerus="yes">
-        <location filename="src/datautils.cpp" line="92"/>
         <source>%n hour(s) ago</source>
         <translation type="unfinished"><numerusform></numerusform><numerusform></numerusform></translation>
     </message>
     <message numerus="yes">
-        <location filename="src/datautils.cpp" line="94"/>
         <source>%n day(s) ago</source>
         <translation type="unfinished"><numerusform></numerusform><numerusform></numerusform></translation>
     </message>
     <message numerus="yes">
-        <location filename="src/datautils.cpp" line="96"/>
         <source>%n weeks(s) ago</source>
         <translation type="unfinished"><numerusform></numerusform><numerusform></numerusform></translation>
     </message>
     <message numerus="yes">
-        <location filename="src/datautils.cpp" line="98"/>
         <source>%n month(s) ago</source>
         <translation type="unfinished"><numerusform></numerusform><numerusform></numerusform></translation>
     </message>
 <context>
     <name>DownloadItem</name>
     <message>
-        <location filename="src/downloaditem.cpp" line="406"/>
         <source>bytes</source>
         <translation>bytes</translation>
     </message>
     <message>
-        <location filename="src/downloaditem.cpp" line="409"/>
         <source>KB</source>
         <translation>KB</translation>
     </message>
     <message>
-        <location filename="src/downloaditem.cpp" line="412"/>
         <source>MB</source>
         <translation>MB</translation>
     </message>
     <message>
-        <location filename="src/downloaditem.cpp" line="421"/>
         <source>bytes/sec</source>
         <translation>bytes/seg</translation>
     </message>
     <message>
-        <location filename="src/downloaditem.cpp" line="424"/>
         <source>KB/sec</source>
         <translation>KB/seg</translation>
     </message>
     <message>
-        <location filename="src/downloaditem.cpp" line="427"/>
         <source>MB/sec</source>
         <translation>KB/seg</translation>
     </message>
     <message>
-        <location filename="src/downloaditem.cpp" line="433"/>
         <source>seconds</source>
         <translation>segundos</translation>
     </message>
     <message>
-        <location filename="src/downloaditem.cpp" line="436"/>
         <source>minutes</source>
         <translation>minutos</translation>
     </message>
     <message>
-        <location filename="src/downloaditem.cpp" line="439"/>
         <source>%4 %5 remaining</source>
         <translation>%4 %5 restantes</translation>
     </message>
 <context>
     <name>DownloadManager</name>
     <message>
-        <location filename="src/downloadmanager.cpp" line="77"/>
         <source>This is just the demo version of %1.</source>
         <translation>Esto ye namái la versión demo de %1.</translation>
     </message>
     <message>
-        <location filename="src/downloadmanager.cpp" line="79"/>
         <source>It can only download videos shorter than %1 minutes so you can test the download functionality.</source>
         <translation>Namái pues descargar vídeos de duración menor que %1 minutos pa que puedas probar la función de descarga.</translation>
     </message>
     <message>
-        <location filename="src/downloadmanager.cpp" line="85"/>
         <source>Continue</source>
         <translation>Siguir</translation>
     </message>
     <message>
-        <location filename="src/downloadmanager.cpp" line="86"/>
         <source>Get the full version</source>
         <translation>Consigui la versión completa</translation>
     </message>
     <message>
-        <location filename="src/downloadmanager.cpp" line="157"/>
         <source>%1 downloaded in %2</source>
         <translation>%1 descargáu en %2</translation>
     </message>
     <message>
-        <location filename="src/downloadmanager.cpp" line="160"/>
         <source>Download finished</source>
         <translation>Descarga finada</translation>
     </message>
     <message numerus="yes">
-        <location filename="src/downloadmanager.cpp" line="165"/>
         <source>%n Download(s)</source>
         <translation type="unfinished"><numerusform></numerusform><numerusform></numerusform></translation>
     </message>
 <context>
     <name>DownloadSettings</name>
     <message>
-        <location filename="src/downloadsettings.cpp" line="36"/>
         <source>Change location...</source>
         <translation>Camudar llocalización...</translation>
     </message>
     <message>
-        <location filename="src/downloadsettings.cpp" line="69"/>
         <source>Choose the download location</source>
         <translation>Escueyi la llocalización de les descargues</translation>
     </message>
     <message>
-        <location filename="src/downloadsettings.cpp" line="81"/>
         <source>Download location changed.</source>
         <translation>Ubicación pa descargues modificada.</translation>
     </message>
     <message>
-        <location filename="src/downloadsettings.cpp" line="83"/>
         <source>Current downloads will still go in the previous location.</source>
         <translation>Les descargues en cursu van dir a la llocalización anterior.</translation>
     </message>
     <message>
-        <location filename="src/downloadsettings.cpp" line="94"/>
         <source>Downloading to: %1</source>
         <translation>Descargando a: %1</translation>
     </message>
 <context>
     <name>DownloadView</name>
     <message>
-        <location filename="src/downloadview.cpp" line="38"/>
-        <location filename="src/downloadview.h" line="45"/>
         <source>Downloads</source>
         <translation>Descargues</translation>
     </message>
 </context>
-<context>
-    <name>DownloadWidget</name>
-    <message>
-        <location filename="local/src/updatedialog.cpp" line="60"/>
-        <source>Downloading update...</source>
-        <translation>Descargando anovamientu...</translation>
-    </message>
-</context>
 <context>
     <name>Extra</name>
     <message>
-        <location filename="local/src/extra.cpp" line="251"/>
         <source>The executable file has been tempered with, maybe by a virus.</source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="local/src/extra.cpp" line="252"/>
         <source>%1 will not run. Try installing again.</source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="local/src/extra.cpp" line="253"/>
         <source>Quit</source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="local/src/extra.cpp" line="254"/>
         <source>Reinstall</source>
         <translation type="unfinished"/>
     </message>
 <context>
     <name>GlobalShortcuts</name>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="36"/>
         <source>Play</source>
         <translation>Reproducir</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="37"/>
         <source>Pause</source>
         <translation>Posar</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="38"/>
         <source>Play/Pause</source>
         <translation>Reproducir/Posar</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="39"/>
         <source>Stop</source>
         <translation>Parar</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="40"/>
         <source>Stop playing after current track</source>
         <translation>Dexar de reproducir tres la pista actual</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="41"/>
         <source>Next track</source>
         <translation>Pista siguiente</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="42"/>
         <source>Previous track</source>
         <translation>Pista anterior</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="43"/>
         <source>Increase volume</source>
         <translation>Xubir volume</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="44"/>
         <source>Decrease volume</source>
         <translation>Baxar volume</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="45"/>
         <source>Mute</source>
         <translation>Callar</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="46"/>
         <source>Seek forward</source>
         <translation>Guetar p&apos;alantre</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="47"/>
         <source>Seek backward</source>
         <translation>Guetar p&apos;atrás</translation>
     </message>
 <context>
     <name>HomeView</name>
     <message>
-        <location filename="src/homeview.cpp" line="58"/>
         <source>Search</source>
         <translation>Guetar</translation>
     </message>
     <message>
-        <location filename="src/homeview.cpp" line="60"/>
         <source>Find videos and channels by keyword</source>
         <translation>Atopar vídeos y canales por pallabres clave</translation>
     </message>
     <message>
-        <location filename="src/homeview.cpp" line="65"/>
         <source>Browse</source>
         <translation>Restolar</translation>
     </message>
     <message>
-        <location filename="src/homeview.cpp" line="67"/>
         <source>Browse videos by category</source>
         <translation>Guetar vídeos por categoría</translation>
     </message>
     <message>
-        <location filename="src/homeview.cpp" line="71"/>
         <source>Subscriptions</source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="src/homeview.cpp" line="73"/>
         <source>Channel subscriptions</source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="src/homeview.h" line="44"/>
         <source>Make yourself comfortable</source>
         <translation>Ponte cómodu</translation>
     </message>
 <context>
     <name>LoadingWidget</name>
     <message>
-        <location filename="src/loadingwidget.cpp" line="125"/>
         <source>Error</source>
         <translation>Fallu</translation>
     </message>
 <context>
     <name>MainWindow</name>
     <message>
-        <location filename="src/mainwindow.cpp" line="291"/>
+        <source>&amp;Window</source>
+        <translation>&amp;Ventana</translation>
+    </message>
+    <message>
+        <source>&amp;Minimize</source>
+        <translation>A&amp;menorgar</translation>
+    </message>
+    <message>
         <source>&amp;Stop</source>
         <translation>&amp;Parar</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="292"/>
         <source>Stop playback and go back to the search view</source>
         <translation>Detener la reproducción y volver a la gueta</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="307"/>
+        <source>P&amp;revious</source>
+        <translation>A&amp;nterior</translation>
+    </message>
+    <message>
+        <source>Go back to the previous track</source>
+        <translation>Tornar a la pista anterior</translation>
+    </message>
+    <message>
         <source>S&amp;kip</source>
         <translation>&amp;Saltar</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="308"/>
         <source>Skip to the next video</source>
         <translation>Omitir videu y saltar al siguiente</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1134"/>
-        <source>&amp;Pause</source>
-        <translation>&amp;Posar</translation>
+        <source>&amp;Play</source>
+        <translation>Re&amp;producir</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1135"/>
-        <source>Pause playback</source>
-        <translation>Posar reproducción</translation>
+        <source>Resume playback</source>
+        <translation>Continuar la reproducción</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="321"/>
         <source>&amp;Full Screen</source>
         <translation>&amp;Pantalla completa</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="322"/>
         <source>Go full screen</source>
         <translation>Pasar a pantalla completa</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="336"/>
+        <source>&amp;Compact Mode</source>
+        <translation>M&amp;ou compautu</translation>
+    </message>
+    <message>
         <source>Hide the playlist and the toolbar</source>
         <translation>Anubrir la llista de reproducción y la barra de ferramientes</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="349"/>
+        <source>Open the &amp;YouTube Page</source>
+        <translation>Abrir la páxina de &amp;YouTube</translation>
+    </message>
+    <message>
         <source>Go to the YouTube video page and pause playback</source>
         <translation>Dir a la páxina del videu en YouTube y posar la reproducción</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="356"/>
+        <source>Copy the YouTube &amp;Link</source>
+        <translation>Copiar l&apos;en&amp;llaz de YouTube</translation>
+    </message>
+    <message>
         <source>Copy the current video YouTube link to the clipboard</source>
         <translation>Copiar l&apos;enllaz a YouTube del videu actual nel cartafueyu</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="363"/>
+        <source>Copy the Video Stream &amp;URL</source>
+        <translation>Copiar la &amp;URL de fluxu del videu</translation>
+    </message>
+    <message>
         <source>Copy the current video stream URL to the clipboard</source>
         <translation>Copiar la URL actual del fluxu del videu al cartafueyu</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="370"/>
+        <source>Find Video &amp;Parts</source>
+        <translation>Alcontrar &amp;partes de vídeos</translation>
+    </message>
+    <message>
         <source>Find other video parts hopefully in the right order</source>
         <translation>Alcontrar otres partes de vídeos, con suerte nel orde correutu</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="376"/>
         <source>&amp;Remove</source>
         <translation>Desanicia&amp;r</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="377"/>
         <source>Remove the selected videos from the playlist</source>
         <translation>Quitar los vídeos seleicionaos de la llista de reproducción</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="383"/>
         <source>Move &amp;Up</source>
         <translation>X&amp;ubir</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="384"/>
         <source>Move up the selected videos in the playlist</source>
         <translation>Mover hacia arriba na llista de reproducción los vídeos seleicionaos</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="390"/>
         <source>Move &amp;Down</source>
         <translation>&amp;Baxar</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="391"/>
         <source>Move down the selected videos in the playlist</source>
         <translation>Mover hacia abaxo na llista de reproducción los vídeos seleicionaos</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="402"/>
+        <source>&amp;Clear Recent Searches</source>
+        <translation>&amp;Llimpiar guetes recientes</translation>
+    </message>
+    <message>
         <source>Clear the search history. Cannot be undone.</source>
         <translation>Llimpiar l&apos;historial de guetes. Nun pue desfacese.</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="407"/>
         <source>&amp;Quit</source>
         <translation>Co&amp;lar</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="410"/>
         <source>Bye</source>
         <translation>Alón</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="414"/>
         <source>&amp;Website</source>
         <translation>Páxina &amp;web</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="416"/>
         <source>%1 on the Web</source>
         <translation>%1 na web</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="422"/>
+        <source>Make a &amp;Donation</source>
+        <translation>Facer una &amp;donación</translation>
+    </message>
+    <message>
         <source>Please support the continued development of %1</source>
         <translation>Por favor, sofita&apos;l desendolcu continuu de %1</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="427"/>
         <source>&amp;About</source>
         <translation>Tocante &amp;a</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="429"/>
         <source>Info about %1</source>
         <translation>Información tocante a %1</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="437"/>
         <source>Search</source>
         <translation>Guetar</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="456"/>
         <source>Mute volume</source>
         <translation>Silenciar volume</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="490"/>
-        <location filename="src/mainwindow.cpp" line="1609"/>
+        <source>&amp;Manually Start Playing</source>
+        <translation>Comenzar la reproducción &amp;manualmente</translation>
+    </message>
+    <message>
+        <source>Manually start playing videos</source>
+        <translation>Comenzar la reproducción de vídeos manualmente</translation>
+    </message>
+    <message>
         <source>&amp;Downloads</source>
         <translation>&amp;Descargues</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="491"/>
         <source>Show details about video downloads</source>
         <translation>Amosar detalles sobre les descargues de vídeos</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="499"/>
         <source>&amp;Download</source>
         <translation>&amp;Descargar</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="500"/>
         <source>Download the current video</source>
         <translation>Descargar el videu actual</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="510"/>
         <source>Take &amp;Snapshot</source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="517"/>
         <source>&amp;Subscribe to Channel</source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="525"/>
         <source>Share the current video using %1</source>
         <translation>Compartir el videu actual usando %1</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="545"/>
         <source>&amp;Email</source>
         <translation>Cor&amp;réu-e:</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="546"/>
         <source>Email</source>
         <translation>Corréu-e</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="551"/>
         <source>&amp;Close</source>
         <translation>&amp;Zarrar</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="561"/>
         <source>&amp;Float on Top</source>
         <translation>&amp;Flotar na parte superior</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="566"/>
         <source>&amp;Adjust Window Size</source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="571"/>
         <source>&amp;Stop After This Video</source>
         <translation>&amp;Detener tres d&apos;esti videu</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="578"/>
         <source>&amp;Report an Issue...</source>
         <translation>&amp;Informar de un problema...</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="582"/>
         <source>&amp;Refine Search...</source>
         <translation>&amp;Refinar la gueta...</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="594"/>
         <source>More...</source>
         <translation>Más...</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="597"/>
         <source>&amp;Related Videos</source>
         <translation>Vídeos &amp;rellacionaos</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="599"/>
         <source>Watch videos related to the current one</source>
         <translation>Ver vídeos rellacionaos col actual</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="605"/>
         <source>Open in &amp;Browser...</source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="612"/>
-        <source>&amp;Love %1? Rate it!</source>
-        <translation>¿&amp;Préstate %1? ¡Puntúalo!</translation>
+        <source>Restricted Mode</source>
+        <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="633"/>
-        <source>&amp;Application</source>
-        <translation>&amp;Aplicación</translation>
+        <source>Hide videos that may contain inappropriate content</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <source>&amp;Love %1? Rate it!</source>
+        <translation>¿&amp;Préstate %1? ¡Puntúalo!</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="618"/>
         <source>Buy %1...</source>
         <translation>Mercar %1...</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="647"/>
+        <source>&amp;Application</source>
+        <translation>&amp;Aplicación</translation>
+    </message>
+    <message>
         <source>&amp;Playback</source>
         <translation>Re&amp;producción</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="661"/>
         <source>&amp;Playlist</source>
         <translation>&amp;Llista de reprod.</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="670"/>
         <source>&amp;Video</source>
         <translation>&amp;Videu</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="686"/>
-        <source>&amp;View</source>
-        <translation>&amp;Ver</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="695"/>
         <source>&amp;Share</source>
         <translation>&amp;Compartir</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="709"/>
+        <source>&amp;View</source>
+        <translation>&amp;Ver</translation>
+    </message>
+    <message>
         <source>&amp;Help</source>
         <translation>A&amp;yuda</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="751"/>
         <source>Press %1 to raise the volume, %2 to lower it</source>
         <translation>Calca %1 pa xubir el volume, %2 pa baxalu</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1021"/>
-        <location filename="src/mainwindow.cpp" line="1027"/>
+        <source>Choose your content location</source>
+        <translation>Escueyi la llocalización pal conteníu</translation>
+    </message>
+    <message>
         <source>Opening %1</source>
         <translation>Abriendo %1</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1080"/>
         <source>Do you want to exit %1 with a download in progress?</source>
         <translation>¿Quies salir de %1 con una descarga en cursu?</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1081"/>
         <source>If you close %1 now, this download will be cancelled.</source>
         <translation>Si zarres %1 agora, esta descarga va encaboxase.</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1086"/>
         <source>Close and cancel download</source>
         <translation>Zarrar y encaboxar descarga</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1087"/>
         <source>Wait for download to finish</source>
         <translation>Esperar a que fine la descarga</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1158"/>
-        <source>&amp;Loading...</source>
-        <translation type="unfinished"/>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="1264"/>
-        <source>Leave &amp;Full Screen</source>
-        <translation>Salir de pan&amp;talla completa</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="1718"/>
-        <source>%1 version %2 is now available.</source>
-        <translation>%1 versión %2 yá ta disponible.</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="1722"/>
-        <source>Remind me later</source>
-        <translation>Avisame más sero</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="1723"/>
-        <source>Update</source>
-        <translation>Anovar</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="1127"/>
         <source>Error: %1</source>
         <translation>Fallu: %1</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="300"/>
-        <source>P&amp;revious</source>
-        <translation>A&amp;nterior</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="301"/>
-        <source>Go back to the previous track</source>
-        <translation>Tornar a la pista anterior</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="335"/>
-        <source>&amp;Compact Mode</source>
-        <translation>M&amp;ou compautu</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="348"/>
-        <source>Open the &amp;YouTube Page</source>
-        <translation>Abrir la páxina de &amp;YouTube</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="355"/>
-        <source>Copy the YouTube &amp;Link</source>
-        <translation>Copiar l&apos;en&amp;llaz de YouTube</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="362"/>
-        <source>Copy the Video Stream &amp;URL</source>
-        <translation>Copiar la &amp;URL de fluxu del videu</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="369"/>
-        <source>Find Video &amp;Parts</source>
-        <translation>Alcontrar &amp;partes de vídeos</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="397"/>
-        <source>&amp;Clear Recent Searches</source>
-        <translation>&amp;Llimpiar guetes recientes</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="421"/>
-        <source>Make a &amp;Donation</source>
-        <translation>Facer una &amp;donación</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="483"/>
-        <source>&amp;Manually Start Playing</source>
-        <translation>Comenzar la reproducción &amp;manualmente</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="484"/>
-        <source>Manually start playing videos</source>
-        <translation>Comenzar la reproducción de vídeos manualmente</translation>
+        <source>&amp;Pause</source>
+        <translation>&amp;Posar</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="847"/>
-        <source>Choose your content location</source>
-        <translation>Escueyi la llocalización pal conteníu</translation>
+        <source>Pause playback</source>
+        <translation>Posar reproducción</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="314"/>
-        <location filename="src/mainwindow.cpp" line="1142"/>
-        <location filename="src/mainwindow.cpp" line="1150"/>
-        <source>&amp;Play</source>
-        <translation>Re&amp;producir</translation>
+        <source>&amp;Loading...</source>
+        <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="315"/>
-        <location filename="src/mainwindow.cpp" line="1143"/>
-        <location filename="src/mainwindow.cpp" line="1151"/>
-        <source>Resume playback</source>
-        <translation>Continuar la reproducción</translation>
+        <source>Leave &amp;Full Screen</source>
+        <translation>Salir de pan&amp;talla completa</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1437"/>
         <source>Remaining time: %1</source>
         <translation>Tiempu faltante: %1</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1528"/>
         <source>Volume at %1%</source>
         <translation>Volume al %1%</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1534"/>
         <source>Volume is muted</source>
         <translation>Volume silenciáu</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1537"/>
         <source>Volume is unmuted</source>
         <translation>Volume activu</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1548"/>
         <source>Maximum video definition set to %1</source>
         <translation>Resolución máxima de videu afitada en %1</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1595"/>
         <source>Your privacy is now safe</source>
         <translation>La to privacidá agora ta asegurada</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1610"/>
         <source>Downloads complete</source>
         <translation>Descargues completes</translation>
     </message>
+    <message>
+        <source>%1 version %2 is now available.</source>
+        <translation>%1 versión %2 yá ta disponible.</translation>
+    </message>
+    <message>
+        <source>Remind me later</source>
+        <translation>Avisame más sero</translation>
+    </message>
+    <message>
+        <source>Update</source>
+        <translation>Anovar</translation>
+    </message>
 </context>
 <context>
     <name>MediaView</name>
     <message>
-        <location filename="src/mediaview.cpp" line="702"/>
         <source>You can now paste the YouTube link into another application</source>
         <translation>Agora pues apegar la URL del fluxu de videu n&apos;otra aplicación</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="710"/>
         <source>You can now paste the video stream URL into another application</source>
         <translation>L&apos;enllaz ye válidu namái por un tiempu llimitáu.</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="711"/>
         <source>The link will be valid only for a limited time.</source>
         <translation>Esto ye namái la versión de prueba de %1.</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="800"/>
         <source>This is just the demo version of %1.</source>
         <translation>Esto ye namái la versión demo de %1.</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="801"/>
         <source>It allows you to test the application and see if it works for you.</source>
         <translation>Déxate probar l&apos;aplicación y ver si te funciona.</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="833"/>
+        <source>Get the full version</source>
+        <translation>Consigui la versión completa</translation>
+    </message>
+    <message>
         <source>Continue</source>
         <translation>Siguir</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="988"/>
+        <source>Downloading %1</source>
+        <translation>Descargando %1</translation>
+    </message>
+    <message>
         <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="1001"/>
         <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="1003"/>
         <source>episode</source>
         <comment>This is for video parts, as in 'Cool series - episode 1'</comment>
         <translation>episodiu</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="1096"/>
         <source>Sent from %1</source>
         <translation>Unviáu dende %1</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="1128"/>
         <source>Unsubscribe from %1</source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="1132"/>
         <source>Subscribe to %1</source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="1166"/>
         <source>Unsubscribed from %1</source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="1169"/>
         <source>Subscribed to %1</source>
         <translation type="unfinished"/>
     </message>
-    <message>
-        <location filename="src/mediaview.cpp" line="808"/>
-        <source>Get the full version</source>
-        <translation>Consigui la versión completa</translation>
-    </message>
-    <message>
-        <location filename="src/mediaview.cpp" line="847"/>
-        <source>Downloading %1</source>
-        <translation>Descargando %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>Hai disponible una versión nueva de %1.</translation>
     </message>
     <message>
-        <location filename="local/src/updatedialog.cpp" line="28"/>
         <source>%1 %2 is now available. You have %3.</source>
         <translation>%1 %2 ta disponible agora. Tienes %3.</translation>
     </message>
     <message>
-        <location filename="local/src/updatedialog.cpp" line="33"/>
         <source>Would you like to download it now?</source>
         <translation>¿Quies descargala agora?</translation>
     </message>
     <message>
-        <location filename="local/src/updatedialog.cpp" line="39"/>
         <source>Skip This Version</source>
         <translation>Omitir esta versión</translation>
     </message>
     <message>
-        <location filename="local/src/updatedialog.cpp" line="43"/>
         <source>Remind Me Later</source>
         <translation>Avisame más sero</translation>
     </message>
     <message>
-        <location filename="local/src/updatedialog.cpp" line="47"/>
         <source>Install Update</source>
         <translation>Instalar anovamientu</translation>
     </message>
 <context>
     <name>PasteLineEdit</name>
     <message>
-        <location filename="local/src/pastelineedit.cpp" line="6"/>
         <source>Paste</source>
         <translation>Apegar</translation>
     </message>
 <context>
     <name>PlaylistItemDelegate</name>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="209"/>
         <source>%1 views</source>
         <translation>%1 reproducciones</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="309"/>
         <source>%1 of %2 (%3) — %4</source>
         <translation>%1 de %2 (%3) — %4</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="316"/>
         <source>Preparing</source>
         <translation>Preparando</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="318"/>
         <source>Failed</source>
         <translation>Falló</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="320"/>
         <source>Completed</source>
         <translation>Completáu</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="322"/>
         <source>Stopped</source>
         <translation>Paráu</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="358"/>
         <source>Stop downloading</source>
         <translation>Detener la descarga</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="368"/>
         <source>Show in %1</source>
         <translation>Amosar en %1</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="370"/>
         <source>Open parent folder</source>
         <translation>Abrir carpeta contenedora</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="379"/>
         <source>Restart downloading</source>
         <translation>Reaniciar la descarga</translation>
     </message>
 <context>
     <name>PlaylistModel</name>
     <message>
-        <location filename="src/playlistmodel.cpp" line="70"/>
         <source>Searching...</source>
         <translation>Guetando...</translation>
     </message>
     <message>
-        <location filename="src/playlistmodel.cpp" line="71"/>
         <source>Show %1 More</source>
         <translation>Amosar %1 más</translation>
     </message>
     <message>
-        <location filename="src/playlistmodel.cpp" line="72"/>
         <source>No videos</source>
         <translation>Nun hai vídeos</translation>
     </message>
     <message>
-        <location filename="src/playlistmodel.cpp" line="73"/>
         <source>No more videos</source>
         <translation>Nun hai más vídeos</translation>
     </message>
 <context>
     <name>RefineSearchWidget</name>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="49"/>
         <source>Sort by</source>
         <translation>Ordenar por</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="53"/>
         <source>Relevance</source>
         <translation>Relevancia</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="54"/>
-        <location filename="src/refinesearchwidget.cpp" line="69"/>
         <source>Date</source>
         <translation>Data</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="55"/>
         <source>View Count</source>
         <translation>Númberu de visites</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="56"/>
         <source>Rating</source>
         <translation>Valoración</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="73"/>
         <source>Anytime</source>
         <translation>Cualquier momentu</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="74"/>
         <source>Today</source>
         <translation>Güei</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="75"/>
         <source>7 Days</source>
         <translation>7 díes</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="76"/>
         <source>30 Days</source>
         <translation>30 díes</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="89"/>
         <source>Duration</source>
         <translation>Duración</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="93"/>
-        <location filename="src/refinesearchwidget.cpp" line="119"/>
         <source>All</source>
         <translation>Too</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="94"/>
         <source>Short</source>
         <translation>Curtiu</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="95"/>
         <source>Medium</source>
         <translation>Mediu</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="96"/>
         <source>Long</source>
         <translation>Llargu</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="99"/>
         <source>Less than 4 minutes</source>
         <translation>Menos de 4 minutos</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="100"/>
         <source>Between 4 and 20 minutes</source>
         <translation>Ente 4 y 20 minutos</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="101"/>
         <source>Longer than 20 minutes</source>
         <translation>Mayor de 20 minutos</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="115"/>
         <source>Quality</source>
         <translation>Calidá</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="120"/>
         <source>High Definition</source>
         <translation>Alta definición</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="123"/>
         <source>720p or higher</source>
         <translation>720p o mayor</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="136"/>
         <source>Done</source>
         <translation>Fecho</translation>
     </message>
 <context>
     <name>RegionsView</name>
     <message>
-        <location filename="src/regionsview.cpp" line="39"/>
         <source>Done</source>
         <translation>Fecho</translation>
     </message>
 <context>
     <name>SearchLineEdit</name>
     <message>
-        <location filename="src/searchlineedit.cpp" line="55"/>
         <source>Search</source>
         <translation>Guetar</translation>
     </message>
 <context>
     <name>SearchView</name>
     <message>
-        <location filename="src/searchview.cpp" line="83"/>
         <source>Welcome to &lt;a href=&apos;%1&apos;&gt;%2&lt;/a&gt;,</source>
         <translation>Bienveníu a &lt;a href=&apos;%1&apos;&gt;%2&lt;/a&gt;,</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="200"/>
-        <source>Get the full version</source>
-        <translation>Consigui la versión completa</translation>
-    </message>
-    <message>
-        <location filename="src/searchview.cpp" line="110"/>
         <source>Enter</source>
         <extracomment>&quot;Enter&quot;, as in &quot;type&quot;. The whole phrase says: &quot;Enter a keyword to start watching videos&quot;</extracomment>
         <translation>Escribi</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="117"/>
         <source>a keyword</source>
         <translation>una pallabra clave</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="118"/>
         <source>a channel</source>
         <translation>una canal</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="125"/>
         <source>to start watching videos.</source>
         <translation>pa entamar a ver vídeos.</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="156"/>
         <source>Watch</source>
         <translation>ver</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="174"/>
         <source>Recent keywords</source>
         <translation>Pallabres clave recientes</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="186"/>
         <source>Recent channels</source>
         <translation>Canales recientes</translation>
     </message>
+    <message>
+        <source>Get the full version</source>
+        <translation>Consigui la versión completa</translation>
+    </message>
 </context>
 <context>
     <name>SidebarHeader</name>
     <message>
-        <location filename="src/sidebarheader.cpp" line="38"/>
-        <location filename="src/sidebarheader.cpp" line="45"/>
         <source>&amp;Back</source>
         <translation>&amp;Atrás</translation>
     </message>
     <message>
-        <location filename="src/sidebarheader.cpp" line="76"/>
         <source>Forward to %1</source>
         <translation>Dir a %1</translation>
     </message>
     <message>
-        <location filename="src/sidebarheader.cpp" line="89"/>
         <source>Back to %1</source>
         <translation>Regresar a %1</translation>
     </message>
 <context>
     <name>SidebarWidget</name>
     <message>
-        <location filename="src/sidebarwidget.cpp" line="68"/>
         <source>Refine Search</source>
         <translation>&amp;Refinar la gueta...</translation>
     </message>
     <message>
-        <location filename="src/sidebarwidget.cpp" line="167"/>
         <source>Did you mean: %1</source>
         <translation>Quixisti dicir: %1</translation>
     </message>
 <context>
     <name>SnapshotSettings</name>
     <message>
-        <location filename="src/snapshotsettings.cpp" line="47"/>
         <source>Change location...</source>
         <translation>Camudar llocalización...</translation>
     </message>
     <message>
-        <location filename="src/snapshotsettings.cpp" line="64"/>
         <source>Snapshot saved to %1</source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="src/snapshotsettings.cpp" line="117"/>
         <source>Snapshots location changed.</source>
         <translation type="unfinished"/>
     </message>
 <context>
     <name>StandardFeedsView</name>
     <message>
-        <location filename="src/standardfeedsview.cpp" line="107"/>
         <source>Most Popular</source>
         <translation>Más populares</translation>
     </message>
 </context>
+<context>
+    <name>UpdateDialog</name>
+    <message>
+        <source>Downloading update...</source>
+        <translation>Descargando anovamientu...</translation>
+    </message>
+    <message>
+        <source>Downloading %1...</source>
+        <translation type="unfinished"/>
+    </message>
+</context>
 <context>
     <name>Video</name>
     <message>
-        <location filename="src/video.cpp" line="287"/>
         <source>Cannot get video stream for %1</source>
         <translation>Nun pue obtenese&apos;l fluxu de videu pa %1</translation>
     </message>
-    <message>
-        <location filename="src/video.cpp" line="292"/>
-        <source>Network error: %1 for %2</source>
-        <translation>Fallu de rede: %1 por %2</translation>
-    </message>
 </context>
 <context>
     <name>YTRegions</name>
     <message>
-        <location filename="src/ytregions.cpp" line="28"/>
         <source>Algeria</source>
         <translation>Algeria</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="29"/>
         <source>Argentina</source>
         <translation>L&apos;Arxentina</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="30"/>
         <source>Australia</source>
         <translation>Australia</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="31"/>
         <source>Belgium</source>
         <translation>Bélxica</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="32"/>
         <source>Brazil</source>
         <translation>El Brasil</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="33"/>
         <source>Canada</source>
         <translation>El Canadá</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="34"/>
         <source>Chile</source>
         <translation>Chile</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="35"/>
         <source>Colombia</source>
         <translation>Colombia</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="36"/>
         <source>Czech Republic</source>
         <translation>República Checa</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="37"/>
         <source>Egypt</source>
         <translation>L&apos;Exiptu</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="38"/>
         <source>France</source>
         <translation>Francia</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="39"/>
         <source>Germany</source>
         <translation>Alemaña</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="40"/>
         <source>Ghana</source>
         <translation>Ghana</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="41"/>
         <source>Greece</source>
         <translation>Grecia</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="42"/>
         <source>Hong Kong</source>
         <translation>Ḥong Kong</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="43"/>
         <source>Hungary</source>
         <translation>Hungría</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="44"/>
         <source>India</source>
         <translation>India</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="45"/>
         <source>Indonesia</source>
         <translation>Indonesia</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="46"/>
         <source>Ireland</source>
         <translation>Irlanda</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="47"/>
         <source>Israel</source>
         <translation>Israel</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="48"/>
         <source>Italy</source>
         <translation>Italia</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="49"/>
         <source>Japan</source>
         <translation>Xapón</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="50"/>
         <source>Jordan</source>
         <translation>Xordania</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="51"/>
         <source>Kenya</source>
         <translation>Kenia</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="52"/>
         <source>Malaysia</source>
         <translation>Malasia</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="53"/>
         <source>Mexico</source>
         <translation>Méxicu</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="54"/>
         <source>Morocco</source>
         <translation>Marruecos</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="55"/>
         <source>Netherlands</source>
         <translation>Los Países Baxos</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="56"/>
         <source>New Zealand</source>
         <translation>Nueva Zelanda</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="57"/>
         <source>Nigeria</source>
         <translation>Nixeria</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="58"/>
         <source>Peru</source>
         <translation>Perú</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="59"/>
         <source>Philippines</source>
         <translation>Filipines</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="60"/>
         <source>Poland</source>
         <translation>Polonia</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="61"/>
         <source>Russia</source>
         <translation>Rusia</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="62"/>
         <source>Saudi Arabia</source>
         <translation>Arabia Saudita</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="63"/>
         <source>Singapore</source>
         <translation>Singapur</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="64"/>
         <source>South Africa</source>
         <translation>Sudáfrica</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="65"/>
         <source>South Korea</source>
         <translation>Corea del Sur</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="66"/>
         <source>Spain</source>
         <translation>España</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="67"/>
         <source>Sweden</source>
         <translation>Suecia</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="68"/>
         <source>Taiwan</source>
         <translation>Taiwán</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="69"/>
         <source>Tunisia</source>
         <translation>Tunicia</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="70"/>
         <source>Turkey</source>
         <translation>Turquía</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="71"/>
         <source>Uganda</source>
         <translation>Uganda</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="72"/>
         <source>United Arab Emirates</source>
         <translation>Emiratos Árabes Xuníos</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="73"/>
         <source>United Kingdom</source>
         <translation>Reinu Xuníu</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="74"/>
         <source>Yemen</source>
         <translation>Yemen</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="148"/>
         <source>Worldwide</source>
         <translation>Tol mundu</translation>
     </message>
index 3677ef6246a6ae741961cc955a534b19053e9983..64ed283d4f4f9fedd45b4986bf91c09bb317b403 100644 (file)
@@ -2,67 +2,42 @@
 <context>
     <name>AboutView</name>
     <message>
-        <location filename="src/aboutview.cpp" line="58"/>
         <source>There&apos;s life outside the browser!</source>
         <translation>Жыццё ёсць і вонках браўзера!</translation>
     </message>
     <message>
-        <location filename="src/aboutview.cpp" line="59"/>
         <source>Version %1</source>
         <translation>Версія %1</translation>
     </message>
     <message>
-        <location filename="src/aboutview.cpp" line="64"/>
         <source>Licensed to: %1</source>
         <translation>Ліцэнзія на: %1</translation>
     </message>
     <message>
-        <location filename="src/aboutview.cpp" line="68"/>
         <source>%1 is Free Software but its development takes precious time.</source>
         <translation>%1 ёсць свабодным праграмным забеспячэннем. Але яго развіццё займае каштоўны час.</translation>
     </message>
     <message>
-        <location filename="src/aboutview.cpp" line="69"/>
         <source>Please &lt;a href=&apos;%1&apos;&gt;donate&lt;/a&gt; to support the continued development of %2.</source>
         <translation>Калі ласка, &lt;a href=&apos;%1&apos;&gt;ахвяруйце&lt;/a&gt; на падтрымку неперарыўнага развіцця %2.</translation>
     </message>
     <message>
-        <location filename="src/aboutview.cpp" line="73"/>
-        <source>You may want to try my other apps as well:</source>
-        <translation>Магчыма, вам спадабаюцца мае іншыя праграмы:</translation>
-    </message>
-    <message>
-        <location filename="src/aboutview.cpp" line="76"/>
-        <source>%1, a YouTube music player</source>
-        <translation>%1, музыкальны плэер для YouTube</translation>
-    </message>
-    <message>
-        <location filename="src/aboutview.cpp" line="80"/>
-        <source>%1, a music player</source>
-        <translation>%1, музыкальны плэер</translation>
-    </message>
-    <message>
-        <location filename="src/aboutview.cpp" line="86"/>
         <source>Translate %1 to your native language using %2</source>
         <translation>Перакладайце %1 на родную мову праз %2</translation>
     </message>
     <message>
-        <location filename="src/aboutview.cpp" line="91"/>
         <source>Icon designed by %1.</source>
         <translation>Дызайн іконкі выканаў %1.</translation>
     </message>
     <message>
-        <location filename="src/aboutview.cpp" line="95"/>
         <source>Released under the &lt;a href=&apos;%1&apos;&gt;GNU General Public License&lt;/a&gt;</source>
         <translation>Выпушчана пад ліцэнзіяй &lt;a href=&apos;%1&apos;&gt;GNU General Public License&lt;/a&gt;</translation>
     </message>
     <message>
-        <location filename="src/aboutview.cpp" line="110"/>
         <source>&amp;Close</source>
         <translation>&amp;Закрыць</translation>
     </message>
     <message>
-        <location filename="src/aboutview.h" line="40"/>
         <source>About</source>
         <translation>Апісанне</translation>
     </message>
 <context>
     <name>ActivationDialog</name>
     <message>
-        <location filename="local/src/activationdialog.cpp" line="17"/>
         <source>Enter your License Details</source>
         <translation>Увядзіце ліцэнзійныя звесткі</translation>
     </message>
     <message>
-        <location filename="local/src/activationdialog.cpp" line="29"/>
         <source>&amp;Email:</source>
         <translation>&amp;Эл. пошта:</translation>
     </message>
     <message>
-        <location filename="local/src/activationdialog.cpp" line="35"/>
         <source>&amp;Code:</source>
         <translation>&amp;Код:</translation>
     </message>
 <context>
     <name>ActivationView</name>
     <message>
-        <location filename="local/src/activationview.cpp" line="47"/>
         <source>Please license %1</source>
         <translation>Набывайце ліцэнзію %1</translation>
     </message>
     <message>
-        <location filename="local/src/activationview.cpp" line="51"/>
         <source>This demo has expired.</source>
         <translation>Тэрмін дэманстрацыі кончыўся.</translation>
     </message>
     <message>
-        <location filename="local/src/activationview.cpp" line="53"/>
         <source>The full version allows you to watch videos without interruptions.</source>
-        <oldsource>The full version allows you to download videos longer than %1 minutes and to watch videos without interruptions.</oldsource>
         <translation>Поўная версія дазволіць глядзець відэа бесперапынна.</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>
     </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>
     </message>
     <message>
-        <location filename="local/src/activationview.cpp" line="70"/>
         <source>Use Demo</source>
         <translation>Дэманстрацыя</translation>
     </message>
     <message>
-        <location filename="local/src/activationview.cpp" line="77"/>
         <source>Enter License</source>
         <translation>Ужыць ліцэнзію</translation>
     </message>
     <message>
-        <location filename="local/src/activationview.cpp" line="85"/>
         <source>Buy License</source>
         <translation>Набыць ліцэнзію</translation>
     </message>
 </context>
+<context>
+    <name>AppWidget</name>
+    <message>
+        <source>Download</source>
+        <translation type="unfinished"/>
+    </message>
+</context>
 <context>
     <name>ChannelAggregator</name>
     <message>
-        <location filename="src/channelaggregator.cpp" line="183"/>
         <source>By %1</source>
         <translation>Ад %1</translation>
     </message>
     <message numerus="yes">
-        <location filename="src/channelaggregator.cpp" line="185"/>
         <source>You have %n new video(s)</source>
         <translation type="unfinished"><numerusform></numerusform><numerusform></numerusform><numerusform></numerusform><numerusform></numerusform></translation>
     </message>
 <context>
     <name>ChannelItemDelegate</name>
     <message>
-        <location filename="src/channelitemdelegate.cpp" line="67"/>
         <source>All Videos</source>
         <translation>Усе відэа</translation>
     </message>
     <message>
-        <location filename="src/channelitemdelegate.cpp" line="85"/>
         <source>Unwatched Videos</source>
         <translation>Нягледжаныя відэа</translation>
     </message>
 <context>
     <name>ChannelView</name>
     <message>
-        <location filename="src/channelview.cpp" line="151"/>
-        <source>Mark all as watched</source>
-        <translation>Пазначыць усё як гледжанае</translation>
-    </message>
-    <message>
-        <location filename="src/channelview.cpp" line="159"/>
-        <source>Show Updated</source>
-        <translation>Паказаць абноўленыя</translation>
-    </message>
-    <message>
-        <location filename="src/channelview.cpp" line="103"/>
         <source>Name</source>
         <translation>назвы</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="110"/>
         <source>Last Updated</source>
         <translation>даты абнаўлення</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="117"/>
         <source>Last Added</source>
         <translation>даты дадання</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="124"/>
         <source>Last Watched</source>
         <translation>даты апошняга прагляду</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="131"/>
         <source>Most Watched</source>
         <translation>колькасці праглядаў</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="139"/>
         <source>Sort by</source>
         <translation>Сартаваць паводле</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="222"/>
+        <source>Mark all as watched</source>
+        <translation>Пазначыць усё як гледжанае</translation>
+    </message>
+    <message>
+        <source>Show Updated</source>
+        <translation>Паказаць абноўленыя</translation>
+    </message>
+    <message>
         <source>All Videos</source>
         <translation>Усе відэа</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="226"/>
         <source>Unwatched Videos</source>
         <translation>Нягледжаныя відэа</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="244"/>
         <source>Mark as Watched</source>
         <translation>Пазначыць як гледжанае</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="257"/>
         <source>Unsubscribe</source>
         <translation>Адпісацца</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="270"/>
         <source>There are no updated subscriptions at this time.</source>
         <translation>Падпіскі пакуль не абнаўляліся.</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="272"/>
         <source>You have no subscriptions. Use the star symbol to subscribe to channels.</source>
         <translation>Няма жаднай падпіскі. Ужывайце зорачку, каб падпісвацца на каналы.</translation>
     </message>
 <context>
     <name>ClearButton</name>
     <message>
-        <location filename="src/exlineedit.cpp" line="6"/>
         <source>Clear</source>
         <translation>Ачысціць</translation>
     </message>
 <context>
     <name>DataUtils</name>
     <message>
-        <location filename="src/datautils.cpp" line="88"/>
         <source>Just now</source>
         <translation type="unfinished"/>
     </message>
     <message numerus="yes">
-        <location filename="src/datautils.cpp" line="90"/>
-        <source>%n minute(s) ago</source>
-        <translation type="unfinished"><numerusform></numerusform><numerusform></numerusform><numerusform></numerusform><numerusform></numerusform></translation>
-    </message>
-    <message numerus="yes">
-        <location filename="src/datautils.cpp" line="92"/>
         <source>%n hour(s) ago</source>
         <translation type="unfinished"><numerusform></numerusform><numerusform></numerusform><numerusform></numerusform><numerusform></numerusform></translation>
     </message>
     <message numerus="yes">
-        <location filename="src/datautils.cpp" line="94"/>
         <source>%n day(s) ago</source>
         <translation type="unfinished"><numerusform></numerusform><numerusform></numerusform><numerusform></numerusform><numerusform></numerusform></translation>
     </message>
     <message numerus="yes">
-        <location filename="src/datautils.cpp" line="96"/>
         <source>%n weeks(s) ago</source>
         <translation type="unfinished"><numerusform></numerusform><numerusform></numerusform><numerusform></numerusform><numerusform></numerusform></translation>
     </message>
     <message numerus="yes">
-        <location filename="src/datautils.cpp" line="98"/>
         <source>%n month(s) ago</source>
         <translation type="unfinished"><numerusform></numerusform><numerusform></numerusform><numerusform></numerusform><numerusform></numerusform></translation>
     </message>
 <context>
     <name>DownloadItem</name>
     <message>
-        <location filename="src/downloaditem.cpp" line="406"/>
         <source>bytes</source>
         <translation>байтаў</translation>
     </message>
     <message>
-        <location filename="src/downloaditem.cpp" line="409"/>
         <source>KB</source>
         <translation>КБ</translation>
     </message>
     <message>
-        <location filename="src/downloaditem.cpp" line="412"/>
         <source>MB</source>
         <translation>МБ</translation>
     </message>
     <message>
-        <location filename="src/downloaditem.cpp" line="421"/>
         <source>bytes/sec</source>
         <translation>Б/с</translation>
     </message>
     <message>
-        <location filename="src/downloaditem.cpp" line="424"/>
         <source>KB/sec</source>
         <translation>КБ/с</translation>
     </message>
     <message>
-        <location filename="src/downloaditem.cpp" line="427"/>
         <source>MB/sec</source>
         <translation>МБ/с</translation>
     </message>
     <message>
-        <location filename="src/downloaditem.cpp" line="433"/>
         <source>seconds</source>
         <translation>секундаў</translation>
     </message>
     <message>
-        <location filename="src/downloaditem.cpp" line="436"/>
         <source>minutes</source>
         <translation>хвілін</translation>
     </message>
     <message>
-        <location filename="src/downloaditem.cpp" line="439"/>
         <source>%4 %5 remaining</source>
         <translation>%4 %5 да канца</translation>
     </message>
 <context>
     <name>DownloadManager</name>
     <message>
-        <location filename="src/downloadmanager.cpp" line="77"/>
         <source>This is just the demo version of %1.</source>
         <translation>Гэта дэма-версія %1.</translation>
     </message>
     <message>
-        <location filename="src/downloadmanager.cpp" line="79"/>
         <source>It can only download videos shorter than %1 minutes so you can test the download functionality.</source>
         <translation>Можна пампаваць толькі відэа, каротшыя за %1 хв., што дастаткова для тэсціравання.</translation>
     </message>
     <message>
-        <location filename="src/downloadmanager.cpp" line="85"/>
         <source>Continue</source>
         <translation>Працягнуць</translation>
     </message>
     <message>
-        <location filename="src/downloadmanager.cpp" line="86"/>
         <source>Get the full version</source>
         <translation>Атрымаць поўную версію</translation>
     </message>
     <message>
-        <location filename="src/downloadmanager.cpp" line="157"/>
         <source>%1 downloaded in %2</source>
         <translation>%1 сцягнута ў %2</translation>
     </message>
     <message>
-        <location filename="src/downloadmanager.cpp" line="160"/>
         <source>Download finished</source>
         <translation>Сцягванне завершана</translation>
     </message>
     <message numerus="yes">
-        <location filename="src/downloadmanager.cpp" line="165"/>
         <source>%n Download(s)</source>
         <translation type="unfinished"><numerusform></numerusform><numerusform></numerusform><numerusform></numerusform><numerusform></numerusform></translation>
     </message>
 <context>
     <name>DownloadSettings</name>
     <message>
-        <location filename="src/downloadsettings.cpp" line="36"/>
         <source>Change location...</source>
         <translation>Змяніць размяшчэнне...</translation>
     </message>
     <message>
-        <location filename="src/downloadsettings.cpp" line="69"/>
         <source>Choose the download location</source>
         <translation>Размяшчэнне сцягнутага</translation>
     </message>
     <message>
-        <location filename="src/downloadsettings.cpp" line="81"/>
         <source>Download location changed.</source>
         <translation>Размяшчэнне сцягнутага абноўлена.</translation>
     </message>
     <message>
-        <location filename="src/downloadsettings.cpp" line="83"/>
         <source>Current downloads will still go in the previous location.</source>
         <translation>Бягучыя сцягванні запішуцца ў ранейшае месца.</translation>
     </message>
     <message>
-        <location filename="src/downloadsettings.cpp" line="94"/>
         <source>Downloading to: %1</source>
         <translation>Сцягваецца ў: %1</translation>
     </message>
 <context>
     <name>DownloadView</name>
     <message>
-        <location filename="src/downloadview.cpp" line="38"/>
-        <location filename="src/downloadview.h" line="45"/>
         <source>Downloads</source>
         <translation>Сцягванні</translation>
     </message>
 </context>
-<context>
-    <name>DownloadWidget</name>
-    <message>
-        <location filename="local/src/updatedialog.cpp" line="60"/>
-        <source>Downloading update...</source>
-        <translation>Сцягваецца абнаўленне...</translation>
-    </message>
-</context>
 <context>
     <name>Extra</name>
     <message>
-        <location filename="local/src/extra.cpp" line="251"/>
         <source>The executable file has been tempered with, maybe by a virus.</source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="local/src/extra.cpp" line="252"/>
         <source>%1 will not run. Try installing again.</source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="local/src/extra.cpp" line="253"/>
         <source>Quit</source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="local/src/extra.cpp" line="254"/>
         <source>Reinstall</source>
         <translation type="unfinished"/>
     </message>
 <context>
     <name>GlobalShortcuts</name>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="36"/>
         <source>Play</source>
         <translation>Граць</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="37"/>
         <source>Pause</source>
         <translation>Паўза</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="38"/>
         <source>Play/Pause</source>
         <translation>Граць/Паўза</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="39"/>
         <source>Stop</source>
         <translation>Спыніць</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="40"/>
         <source>Stop playing after current track</source>
         <translation>Спыніцца пасля бягучага трэка</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="41"/>
         <source>Next track</source>
         <translation>Наступны трэк</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="42"/>
         <source>Previous track</source>
         <translation>Папярэдні трэк</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="43"/>
         <source>Increase volume</source>
         <translation>Гучней</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="44"/>
         <source>Decrease volume</source>
         <translation>Цішэй</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="45"/>
         <source>Mute</source>
         <translation>Бязгучна</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="46"/>
         <source>Seek forward</source>
         <translation>Праматаць наперад</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="47"/>
         <source>Seek backward</source>
         <translation>Праматаць назад</translation>
     </message>
 <context>
     <name>HomeView</name>
     <message>
-        <location filename="src/homeview.cpp" line="58"/>
         <source>Search</source>
         <translation>Пошук</translation>
     </message>
     <message>
-        <location filename="src/homeview.cpp" line="60"/>
         <source>Find videos and channels by keyword</source>
         <translation>Шукаць відэа і каналы з ключавымі словамі</translation>
     </message>
     <message>
-        <location filename="src/homeview.cpp" line="65"/>
         <source>Browse</source>
         <translation>Агляд</translation>
     </message>
     <message>
-        <location filename="src/homeview.cpp" line="67"/>
         <source>Browse videos by category</source>
         <translation>Аглядаць відэа паводле катэгорыі</translation>
     </message>
     <message>
-        <location filename="src/homeview.cpp" line="71"/>
         <source>Subscriptions</source>
         <translation>Падпіскі</translation>
     </message>
     <message>
-        <location filename="src/homeview.cpp" line="73"/>
         <source>Channel subscriptions</source>
         <translation>Падпіскі на каналы</translation>
     </message>
     <message>
-        <location filename="src/homeview.h" line="44"/>
         <source>Make yourself comfortable</source>
         <translation>Пачуйцеся выгодна</translation>
     </message>
 <context>
     <name>LoadingWidget</name>
     <message>
-        <location filename="src/loadingwidget.cpp" line="125"/>
         <source>Error</source>
         <translation>Памылка</translation>
     </message>
 <context>
     <name>MainWindow</name>
     <message>
-        <location filename="src/mainwindow.cpp" line="291"/>
+        <source>&amp;Window</source>
+        <translation>&amp;Акно</translation>
+    </message>
+    <message>
+        <source>&amp;Minimize</source>
+        <translation>&amp;Згарнуць</translation>
+    </message>
+    <message>
         <source>&amp;Stop</source>
         <translation>&amp;Спыніць</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="292"/>
         <source>Stop playback and go back to the search view</source>
         <translation>Спыніць прайграванне і вярнуцца да пошуку</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="307"/>
+        <source>P&amp;revious</source>
+        <translation>Папя&amp;рэдні</translation>
+    </message>
+    <message>
+        <source>Go back to the previous track</source>
+        <translation>Вярнуцца да папярэдняга трэка</translation>
+    </message>
+    <message>
         <source>S&amp;kip</source>
         <translation>П&amp;рапусціць</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="308"/>
         <source>Skip to the next video</source>
         <translation>Перайсці да наступнага відэа</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1134"/>
-        <source>&amp;Pause</source>
-        <translation>&amp;Паўза</translation>
+        <source>&amp;Play</source>
+        <translation>&amp;Граць</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1135"/>
-        <source>Pause playback</source>
-        <translation>Паставіць на паўзу</translation>
+        <source>Resume playback</source>
+        <translation>Аднавіць прайграванне</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="321"/>
         <source>&amp;Full Screen</source>
         <translation>Поўны &amp;экран</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="322"/>
         <source>Go full screen</source>
         <translation>Уключыць на поўны экран</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="336"/>
+        <source>&amp;Compact Mode</source>
+        <translation>&amp;Кампактны рэжым</translation>
+    </message>
+    <message>
         <source>Hide the playlist and the toolbar</source>
         <translation>Схаваць плэйліст і панель інструментаў</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="349"/>
+        <source>Open the &amp;YouTube Page</source>
+        <translation>Адкрыць старонку на &amp;YouTube</translation>
+    </message>
+    <message>
         <source>Go to the YouTube video page and pause playback</source>
         <translation>Перайсці на старонку YouTube і паставіць на паўзу</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="356"/>
+        <source>Copy the YouTube &amp;Link</source>
+        <translation>Скапіяваць YouTube-&amp;спасылку</translation>
+    </message>
+    <message>
         <source>Copy the current video YouTube link to the clipboard</source>
         <translation>Скапіяваць YouTube-спасылку бягучага відэа ў буфер</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="363"/>
+        <source>Copy the Video Stream &amp;URL</source>
+        <translation>Скапіяваць спасылку на відэа&amp;паток</translation>
+    </message>
+    <message>
         <source>Copy the current video stream URL to the clipboard</source>
         <translation>Скапіяваць спасылку на бягучы відаэпаток у буфер</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="370"/>
+        <source>Find Video &amp;Parts</source>
+        <translation>Знайсці &amp;часткі відэа</translation>
+    </message>
+    <message>
         <source>Find other video parts hopefully in the right order</source>
         <translation>Знайсці іншыя часці відэа, імаверна, у правільным парадку</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="376"/>
         <source>&amp;Remove</source>
         <translation>Вы&amp;даліць</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="377"/>
         <source>Remove the selected videos from the playlist</source>
         <translation>Выдаліць абраныя відэа з плэйлісту</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="383"/>
         <source>Move &amp;Up</source>
         <translation>Пасунуць у&amp;верх</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="384"/>
         <source>Move up the selected videos in the playlist</source>
         <translation>Пасунуць абраныя відэа ўверх па плэйлісце</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="390"/>
         <source>Move &amp;Down</source>
         <translation>Пасунуць у&amp;ніз</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="391"/>
         <source>Move down the selected videos in the playlist</source>
         <translation>Пасунуць абраныя відэа ўніз па плэйлісце</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="402"/>
+        <source>&amp;Clear Recent Searches</source>
+        <translation>А&amp;чысціць апошнія запытанні</translation>
+    </message>
+    <message>
         <source>Clear the search history. Cannot be undone.</source>
         <translation>Ачысціць гісторыю пошуку. Няможна адкаціць.</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="407"/>
         <source>&amp;Quit</source>
         <translation>&amp;Выйсці</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="410"/>
         <source>Bye</source>
         <translation>Бывай</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="414"/>
         <source>&amp;Website</source>
         <translation>&amp;Вэб-сайт</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="416"/>
         <source>%1 on the Web</source>
         <translation>%1 у інтэрнеце</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="422"/>
+        <source>Make a &amp;Donation</source>
+        <translation>&amp;Ахвяраваць</translation>
+    </message>
+    <message>
         <source>Please support the continued development of %1</source>
         <translation>Калі ласка, падтрымайце развіццё %1</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="427"/>
         <source>&amp;About</source>
         <translation>&amp;Апісанне</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="429"/>
         <source>Info about %1</source>
         <translation>Звесткі пра %1</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="437"/>
         <source>Search</source>
         <translation>Пошук</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="456"/>
         <source>Mute volume</source>
         <translation>Бязгучна</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="490"/>
-        <location filename="src/mainwindow.cpp" line="1609"/>
+        <source>&amp;Manually Start Playing</source>
+        <translation>Пачынаць &amp;гранне ўручную</translation>
+    </message>
+    <message>
+        <source>Manually start playing videos</source>
+        <translation>Пачынаць граць відэа ўручную</translation>
+    </message>
+    <message>
         <source>&amp;Downloads</source>
         <translation>&amp;Сцягванні</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="491"/>
         <source>Show details about video downloads</source>
         <translation>Падрабязнасці пра сцягванні</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="499"/>
         <source>&amp;Download</source>
         <translation>&amp;Сцягнуць</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="500"/>
         <source>Download the current video</source>
         <translation>Сцягнуць бягучае відэа</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="510"/>
         <source>Take &amp;Snapshot</source>
         <translation>Зрабіць &amp;здымак</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="517"/>
         <source>&amp;Subscribe to Channel</source>
         <translation>&amp;Падпісацца на канал</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="525"/>
         <source>Share the current video using %1</source>
         <translation>Распаўсюдзіць відэа праз %1</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="545"/>
         <source>&amp;Email</source>
         <translation>&amp;Пошта</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="546"/>
         <source>Email</source>
         <translation>Пошта</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="551"/>
         <source>&amp;Close</source>
         <translation>&amp;Закрыць</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="561"/>
         <source>&amp;Float on Top</source>
         <translation>&amp;Заставацца па-над усімі вокнамі</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="566"/>
         <source>&amp;Adjust Window Size</source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="571"/>
         <source>&amp;Stop After This Video</source>
         <translation>&amp;Спыніцца пасля гэтага відэа</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="578"/>
         <source>&amp;Report an Issue...</source>
         <translation>&amp;Паведаміць пра хібу...</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="582"/>
         <source>&amp;Refine Search...</source>
         <translation>У&amp;дасканаліць запытанне...</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="594"/>
         <source>More...</source>
         <translation>Больш...</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="597"/>
         <source>&amp;Related Videos</source>
         <translation>&amp;Падобныя відэа</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="599"/>
         <source>Watch videos related to the current one</source>
         <translation>Глядзець відэа, падобныя да гэтага</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="605"/>
         <source>Open in &amp;Browser...</source>
         <translation>Адкрыць у &amp;браўзеры...</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="612"/>
-        <source>&amp;Love %1? Rate it!</source>
-        <translation>&amp;Падабаецца %1? Ацані яго!</translation>
+        <source>Restricted Mode</source>
+        <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="633"/>
-        <source>&amp;Application</source>
-        <translation>&amp;Праграма</translation>
+        <source>Hide videos that may contain inappropriate content</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <source>&amp;Love %1? Rate it!</source>
+        <translation>&amp;Падабаецца %1? Ацані яго!</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="618"/>
         <source>Buy %1...</source>
         <translation>Купіць %1...</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="647"/>
+        <source>&amp;Application</source>
+        <translation>&amp;Праграма</translation>
+    </message>
+    <message>
         <source>&amp;Playback</source>
         <translation>&amp;Прайграванне</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="661"/>
         <source>&amp;Playlist</source>
         <translation>Плэй&amp;ліст</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="670"/>
         <source>&amp;Video</source>
         <translation>&amp;Відэа</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="686"/>
-        <source>&amp;View</source>
-        <translation>&amp;Выгляд</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="695"/>
         <source>&amp;Share</source>
         <translation>&amp;Распаўсюд</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="709"/>
+        <source>&amp;View</source>
+        <translation>&amp;Выгляд</translation>
+    </message>
+    <message>
         <source>&amp;Help</source>
         <translation>&amp;Дапамога</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="751"/>
         <source>Press %1 to raise the volume, %2 to lower it</source>
         <translation>Націсніце %1 для павелічэння гуку, %2 для памяншэння</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1021"/>
-        <location filename="src/mainwindow.cpp" line="1027"/>
+        <source>Choose your content location</source>
+        <translation>Выберыце вашае месцаразмяшчэнне</translation>
+    </message>
+    <message>
         <source>Opening %1</source>
         <translation>%1 адкрываецца</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1080"/>
         <source>Do you want to exit %1 with a download in progress?</source>
         <translation>Жадаеце выйсці з %1 маючы актыўныя сцягванні?</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1081"/>
         <source>If you close %1 now, this download will be cancelled.</source>
         <translation>Калі зараз выйсці з %1, яны будуць скасаваныя.</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1086"/>
         <source>Close and cancel download</source>
         <translation>Закрыць і скасаваць сцягванне</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1087"/>
         <source>Wait for download to finish</source>
         <translation>Прычакаць сканчэння сцягвання</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1158"/>
-        <source>&amp;Loading...</source>
-        <translation type="unfinished"/>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="1264"/>
-        <source>Leave &amp;Full Screen</source>
-        <translation>Пакінуць поўна&amp;экранны рэжым</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="1718"/>
-        <source>%1 version %2 is now available.</source>
-        <translation>%1 версіі %2 ужо даступны.</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="1722"/>
-        <source>Remind me later</source>
-        <translation>Напомніць пазней</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="1723"/>
-        <source>Update</source>
-        <translation>Абнаўленне</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="1127"/>
         <source>Error: %1</source>
         <translation>Памылка: %1</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="300"/>
-        <source>P&amp;revious</source>
-        <translation>Папя&amp;рэдні</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="301"/>
-        <source>Go back to the previous track</source>
-        <translation>Вярнуцца да папярэдняга трэка</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="335"/>
-        <source>&amp;Compact Mode</source>
-        <translation>&amp;Кампактны рэжым</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="348"/>
-        <source>Open the &amp;YouTube Page</source>
-        <translation>Адкрыць старонку на &amp;YouTube</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="355"/>
-        <source>Copy the YouTube &amp;Link</source>
-        <translation>Скапіяваць YouTube-&amp;спасылку</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="362"/>
-        <source>Copy the Video Stream &amp;URL</source>
-        <translation>Скапіяваць спасылку на відэа&amp;паток</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="369"/>
-        <source>Find Video &amp;Parts</source>
-        <translation>Знайсці &amp;часткі відэа</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="397"/>
-        <source>&amp;Clear Recent Searches</source>
-        <translation>А&amp;чысціць апошнія запытанні</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="421"/>
-        <source>Make a &amp;Donation</source>
-        <translation>&amp;Ахвяраваць</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="483"/>
-        <source>&amp;Manually Start Playing</source>
-        <translation>Пачынаць &amp;гранне ўручную</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="484"/>
-        <source>Manually start playing videos</source>
-        <translation>Пачынаць граць відэа ўручную</translation>
+        <source>&amp;Pause</source>
+        <translation>&amp;Паўза</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="847"/>
-        <source>Choose your content location</source>
-        <translation>Выберыце вашае месцаразмяшчэнне</translation>
+        <source>Pause playback</source>
+        <translation>Паставіць на паўзу</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="314"/>
-        <location filename="src/mainwindow.cpp" line="1142"/>
-        <location filename="src/mainwindow.cpp" line="1150"/>
-        <source>&amp;Play</source>
-        <translation>&amp;Граць</translation>
+        <source>&amp;Loading...</source>
+        <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="315"/>
-        <location filename="src/mainwindow.cpp" line="1143"/>
-        <location filename="src/mainwindow.cpp" line="1151"/>
-        <source>Resume playback</source>
-        <translation>Аднавіць прайграванне</translation>
+        <source>Leave &amp;Full Screen</source>
+        <translation>Пакінуць поўна&amp;экранны рэжым</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1437"/>
         <source>Remaining time: %1</source>
         <translation>Засталося: %1</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1528"/>
         <source>Volume at %1%</source>
         <translation>Гучнасць: %1%</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1534"/>
         <source>Volume is muted</source>
         <translation>Гуку няма</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1537"/>
         <source>Volume is unmuted</source>
         <translation>Гук ёсць</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1548"/>
         <source>Maximum video definition set to %1</source>
         <translation>Максімальны памер відэа: %1</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1595"/>
         <source>Your privacy is now safe</source>
         <translation>Вашая прыватнасць цяпер у бяспецы</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1610"/>
         <source>Downloads complete</source>
         <translation>Сцягванне завершанае</translation>
     </message>
+    <message>
+        <source>%1 version %2 is now available.</source>
+        <translation>%1 версіі %2 ужо даступны.</translation>
+    </message>
+    <message>
+        <source>Remind me later</source>
+        <translation>Напомніць пазней</translation>
+    </message>
+    <message>
+        <source>Update</source>
+        <translation>Абнаўленне</translation>
+    </message>
 </context>
 <context>
     <name>MediaView</name>
     <message>
-        <location filename="src/mediaview.cpp" line="702"/>
         <source>You can now paste the YouTube link into another application</source>
         <translation>Цяпер можна ўставіць YouTube-спасылку ў іншую праграму</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="710"/>
         <source>You can now paste the video stream URL into another application</source>
         <translation>Цяпер можна ўстаўляць спасылкі на відэапаток у іншых праграмах</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="711"/>
         <source>The link will be valid only for a limited time.</source>
         <translation>Спасылка будзе заставацца слушнай абмежаваны час.</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="800"/>
         <source>This is just the demo version of %1.</source>
         <translation>Гэта дэма-версія %1.</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="801"/>
         <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="833"/>
+        <source>Get the full version</source>
+        <translation>Атрымаць поўную версію</translation>
+    </message>
+    <message>
         <source>Continue</source>
         <translation>Працягнуць</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="988"/>
+        <source>Downloading %1</source>
+        <translation>Сцягваецца %1</translation>
+    </message>
+    <message>
         <source>of</source>
         <comment>Used in video parts, as in '2 of 3'</comment>
         <translation>з</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="1001"/>
         <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="1003"/>
         <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="1096"/>
         <source>Sent from %1</source>
         <translation>Адпраўлена з %1</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="1128"/>
         <source>Unsubscribe from %1</source>
         <translation>Адпісацца ад %1</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="1132"/>
         <source>Subscribe to %1</source>
         <translation>Падпісацца на %1</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="1166"/>
         <source>Unsubscribed from %1</source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="1169"/>
         <source>Subscribed to %1</source>
         <translation type="unfinished"/>
     </message>
-    <message>
-        <location filename="src/mediaview.cpp" line="808"/>
-        <source>Get the full version</source>
-        <translation>Атрымаць поўную версію</translation>
-    </message>
-    <message>
-        <location filename="src/mediaview.cpp" line="847"/>
-        <source>Downloading %1</source>
-        <translation>Сцягваецца %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>Даступна новая версія %1!</translation>
     </message>
     <message>
-        <location filename="local/src/updatedialog.cpp" line="28"/>
         <source>%1 %2 is now available. You have %3.</source>
         <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>Сцягнуць зараз?</translation>
     </message>
     <message>
-        <location filename="local/src/updatedialog.cpp" line="39"/>
         <source>Skip This Version</source>
         <translation>Прапусціць гэтую версію</translation>
     </message>
     <message>
-        <location filename="local/src/updatedialog.cpp" line="43"/>
         <source>Remind Me Later</source>
         <translation>Напомніць пазней</translation>
     </message>
     <message>
-        <location filename="local/src/updatedialog.cpp" line="47"/>
         <source>Install Update</source>
         <translation>Устанавіць абнаўленне</translation>
     </message>
 <context>
     <name>PasteLineEdit</name>
     <message>
-        <location filename="local/src/pastelineedit.cpp" line="6"/>
         <source>Paste</source>
         <translation>Уставіць</translation>
     </message>
 <context>
     <name>PlaylistItemDelegate</name>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="209"/>
         <source>%1 views</source>
         <translation>%1 праглядаў</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="309"/>
         <source>%1 of %2 (%3) — %4</source>
         <translation>%1 з %2 (%3) — %4</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="316"/>
         <source>Preparing</source>
         <translation>Падрыхтоўка</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="318"/>
         <source>Failed</source>
         <translation>Памылка</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="320"/>
         <source>Completed</source>
         <translation>Завершана</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="322"/>
         <source>Stopped</source>
         <translation>Спынена</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="358"/>
         <source>Stop downloading</source>
         <translation>Спыніць сцягванне</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="368"/>
         <source>Show in %1</source>
         <translation>Паказаць у %1</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="370"/>
         <source>Open parent folder</source>
         <translation>Адчыніць бацькоўскую папку</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="379"/>
         <source>Restart downloading</source>
         <translation>Перазапусціць сцягванне</translation>
     </message>
 <context>
     <name>PlaylistModel</name>
     <message>
-        <location filename="src/playlistmodel.cpp" line="70"/>
         <source>Searching...</source>
         <translation>Пошук...</translation>
     </message>
     <message>
-        <location filename="src/playlistmodel.cpp" line="71"/>
         <source>Show %1 More</source>
         <translation>Паказаць яшчэ %1</translation>
     </message>
     <message>
-        <location filename="src/playlistmodel.cpp" line="72"/>
         <source>No videos</source>
         <translation>Няма відэа</translation>
     </message>
     <message>
-        <location filename="src/playlistmodel.cpp" line="73"/>
         <source>No more videos</source>
         <translation>Больш няма відэа</translation>
     </message>
 <context>
     <name>RefineSearchWidget</name>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="49"/>
         <source>Sort by</source>
         <translation>Сартаваць паводле</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="53"/>
         <source>Relevance</source>
         <translation>адпаведнасці</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="54"/>
-        <location filename="src/refinesearchwidget.cpp" line="69"/>
         <source>Date</source>
         <translation>даты</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="55"/>
         <source>View Count</source>
         <translation>колькасці праглядаў</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="56"/>
         <source>Rating</source>
         <translation>ацэнак</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="73"/>
         <source>Anytime</source>
         <translation>За ўвесь час</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="74"/>
         <source>Today</source>
         <translation>Сёння</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="75"/>
         <source>7 Days</source>
         <translation>7 дзён</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="76"/>
         <source>30 Days</source>
         <translation>30 дзён</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="89"/>
         <source>Duration</source>
         <translation>Працягласць</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="93"/>
-        <location filename="src/refinesearchwidget.cpp" line="119"/>
         <source>All</source>
         <translation>Усе</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="94"/>
         <source>Short</source>
         <translation>Кароткія</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="95"/>
         <source>Medium</source>
         <translation>Сярэднія</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="96"/>
         <source>Long</source>
         <translation>Даўгія</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="99"/>
         <source>Less than 4 minutes</source>
         <translation>Меншыя за 4 хвіліны</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="100"/>
         <source>Between 4 and 20 minutes</source>
         <translation>4—20 хвілін</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="101"/>
         <source>Longer than 20 minutes</source>
         <translation>Даўжэйшыя за 20 хвілін</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="115"/>
         <source>Quality</source>
         <translation>Якасць</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="120"/>
         <source>High Definition</source>
         <translation>High Definition</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="123"/>
         <source>720p or higher</source>
         <translation>720p і лепей</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="136"/>
         <source>Done</source>
         <translation>Гатова</translation>
     </message>
 <context>
     <name>RegionsView</name>
     <message>
-        <location filename="src/regionsview.cpp" line="39"/>
         <source>Done</source>
         <translation>Гатова</translation>
     </message>
 <context>
     <name>SearchLineEdit</name>
     <message>
-        <location filename="src/searchlineedit.cpp" line="55"/>
         <source>Search</source>
         <translation>Пошук</translation>
     </message>
 <context>
     <name>SearchView</name>
     <message>
-        <location filename="src/searchview.cpp" line="83"/>
         <source>Welcome to &lt;a href=&apos;%1&apos;&gt;%2&lt;/a&gt;,</source>
         <translation>Ласкава запрашаем у &lt;a href=&apos;%1&apos;&gt;%2&lt;/a&gt;</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="200"/>
-        <source>Get the full version</source>
-        <translation>Атрымаць поўную версію</translation>
-    </message>
-    <message>
-        <location filename="src/searchview.cpp" line="110"/>
         <source>Enter</source>
         <extracomment>&quot;Enter&quot;, as in &quot;type&quot;. The whole phrase says: &quot;Enter a keyword to start watching videos&quot;</extracomment>
         <translation>Задайце</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="117"/>
         <source>a keyword</source>
         <translation>ключавое слова</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="118"/>
         <source>a channel</source>
         <translation>канал</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="125"/>
         <source>to start watching videos.</source>
         <translation>, каб пачаць глядзець відэа.</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="156"/>
         <source>Watch</source>
         <translation>Глядзець</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="174"/>
         <source>Recent keywords</source>
         <translation>Апошнія запытанні</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="186"/>
         <source>Recent channels</source>
         <translation>Апошнія каналы</translation>
     </message>
+    <message>
+        <source>Get the full version</source>
+        <translation>Атрымаць поўную версію</translation>
+    </message>
 </context>
 <context>
     <name>SidebarHeader</name>
     <message>
-        <location filename="src/sidebarheader.cpp" line="38"/>
-        <location filename="src/sidebarheader.cpp" line="45"/>
         <source>&amp;Back</source>
         <translation>&amp;Назад</translation>
     </message>
     <message>
-        <location filename="src/sidebarheader.cpp" line="76"/>
         <source>Forward to %1</source>
         <translation>Наперад да %1</translation>
     </message>
     <message>
-        <location filename="src/sidebarheader.cpp" line="89"/>
         <source>Back to %1</source>
         <translation>Назад да %1</translation>
     </message>
 <context>
     <name>SidebarWidget</name>
     <message>
-        <location filename="src/sidebarwidget.cpp" line="68"/>
         <source>Refine Search</source>
         <translation>Удасканаліць запытанне</translation>
     </message>
     <message>
-        <location filename="src/sidebarwidget.cpp" line="167"/>
         <source>Did you mean: %1</source>
         <translation>Мелі на ўвазе: %1</translation>
     </message>
 <context>
     <name>SnapshotSettings</name>
     <message>
-        <location filename="src/snapshotsettings.cpp" line="47"/>
         <source>Change location...</source>
         <translation>Змяніць размяшчэнне...</translation>
     </message>
     <message>
-        <location filename="src/snapshotsettings.cpp" line="64"/>
         <source>Snapshot saved to %1</source>
         <translation>Здымак захаваны ў %1</translation>
     </message>
     <message>
-        <location filename="src/snapshotsettings.cpp" line="117"/>
         <source>Snapshots location changed.</source>
         <translation>Размяшчэнне здымкаў зменена.</translation>
     </message>
 <context>
     <name>StandardFeedsView</name>
     <message>
-        <location filename="src/standardfeedsview.cpp" line="107"/>
         <source>Most Popular</source>
         <translation>Папулярныя</translation>
     </message>
 </context>
+<context>
+    <name>UpdateDialog</name>
+    <message>
+        <source>Downloading update...</source>
+        <translation>Сцягваецца абнаўленне...</translation>
+    </message>
+    <message>
+        <source>Downloading %1...</source>
+        <translation type="unfinished"/>
+    </message>
+</context>
 <context>
     <name>Video</name>
     <message>
-        <location filename="src/video.cpp" line="287"/>
         <source>Cannot get video stream for %1</source>
         <translation>Не ўдалося атрымаць відэапаток для %1</translation>
     </message>
-    <message>
-        <location filename="src/video.cpp" line="292"/>
-        <source>Network error: %1 for %2</source>
-        <translation>Сеткавая памылка: %1 для %2</translation>
-    </message>
 </context>
 <context>
     <name>YTRegions</name>
     <message>
-        <location filename="src/ytregions.cpp" line="28"/>
         <source>Algeria</source>
         <translation>Алжыр</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="29"/>
         <source>Argentina</source>
         <translation>Аргентына</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="30"/>
         <source>Australia</source>
         <translation>Аўстралія</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="31"/>
         <source>Belgium</source>
         <translation>Бельгія</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="32"/>
         <source>Brazil</source>
         <translation>Бразілія</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="33"/>
         <source>Canada</source>
         <translation>Канада</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="34"/>
         <source>Chile</source>
         <translation>Чылі</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="35"/>
         <source>Colombia</source>
         <translation>Калумбія</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="36"/>
         <source>Czech Republic</source>
         <translation>Чэхія</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="37"/>
         <source>Egypt</source>
         <translation>Егіпет</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="38"/>
         <source>France</source>
         <translation>Францыя</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="39"/>
         <source>Germany</source>
         <translation>Нямеччына</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="40"/>
         <source>Ghana</source>
         <translation>Гана</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="41"/>
         <source>Greece</source>
         <translation>Грэцыя</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="42"/>
         <source>Hong Kong</source>
         <translation>Ганконг</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="43"/>
         <source>Hungary</source>
         <translation>Вугоршчына</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="44"/>
         <source>India</source>
         <translation>Індыя</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="45"/>
         <source>Indonesia</source>
         <translation>Інданезія</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="46"/>
         <source>Ireland</source>
         <translation>Ірландыя</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="47"/>
         <source>Israel</source>
         <translation>Ізраіль</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="48"/>
         <source>Italy</source>
         <translation>Італія</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="49"/>
         <source>Japan</source>
         <translation>Японія</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="50"/>
         <source>Jordan</source>
         <translation>Іардан</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="51"/>
         <source>Kenya</source>
         <translation>Кенія</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="52"/>
         <source>Malaysia</source>
         <translation>Малайзія</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="53"/>
         <source>Mexico</source>
         <translation>Мексіка</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="54"/>
         <source>Morocco</source>
         <translation>Марока</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="55"/>
         <source>Netherlands</source>
         <translation>Нідэрланды</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="56"/>
         <source>New Zealand</source>
         <translation>Новая Зеландыя</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="57"/>
         <source>Nigeria</source>
         <translation>Нігерыя</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="58"/>
         <source>Peru</source>
         <translation>Перу</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="59"/>
         <source>Philippines</source>
         <translation>Філіпіны</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="60"/>
         <source>Poland</source>
         <translation>Польшча</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="61"/>
         <source>Russia</source>
         <translation>Расія</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="62"/>
         <source>Saudi Arabia</source>
         <translation>Саудаўская Аравія</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="63"/>
         <source>Singapore</source>
         <translation>Сінгапур</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="64"/>
         <source>South Africa</source>
         <translation>Паўднёвая Афрыка</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="65"/>
         <source>South Korea</source>
         <translation>Паўднёвая Карэя</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="66"/>
         <source>Spain</source>
         <translation>Гішпанія</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="67"/>
         <source>Sweden</source>
         <translation>Шведыя</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="68"/>
         <source>Taiwan</source>
         <translation>Тайвань</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="69"/>
         <source>Tunisia</source>
         <translation>Туніс</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="70"/>
         <source>Turkey</source>
         <translation>Турцыя</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="71"/>
         <source>Uganda</source>
         <translation>Уганда</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="72"/>
         <source>United Arab Emirates</source>
         <translation>Аб&apos;яднаныя Арабскія Эміраты</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="73"/>
         <source>United Kingdom</source>
         <translation>Вялікая Брытанія</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="74"/>
         <source>Yemen</source>
         <translation>Емен</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="148"/>
         <source>Worldwide</source>
         <translation>Увесь свет</translation>
     </message>
index 45e635564135234a6e4d02825332561783835232..7fe65e02ef2a153bcde832f6e2e277a384c7c10f 100644 (file)
@@ -2,67 +2,42 @@
 <context>
     <name>AboutView</name>
     <message>
-        <location filename="src/aboutview.cpp" line="58"/>
         <source>There&apos;s life outside the browser!</source>
         <translation>Има живот и извън браузера!</translation>
     </message>
     <message>
-        <location filename="src/aboutview.cpp" line="59"/>
         <source>Version %1</source>
         <translation>Версия %1</translation>
     </message>
     <message>
-        <location filename="src/aboutview.cpp" line="64"/>
         <source>Licensed to: %1</source>
         <translation>Лицензирано от: %1</translation>
     </message>
     <message>
-        <location filename="src/aboutview.cpp" line="68"/>
         <source>%1 is Free Software but its development takes precious time.</source>
         <translation>%1 е безплатен софтуер, но разработването му отнема безценно време.</translation>
     </message>
     <message>
-        <location filename="src/aboutview.cpp" line="69"/>
         <source>Please &lt;a href=&apos;%1&apos;&gt;donate&lt;/a&gt; to support the continued development of %2.</source>
         <translation>Моля &lt;a href=&apos;%1&apos;&gt;дарете&lt;/a&gt; за да подкрепите бъдещите разработки, на %2.</translation>
     </message>
     <message>
-        <location filename="src/aboutview.cpp" line="73"/>
-        <source>You may want to try my other apps as well:</source>
-        <translation>Може също да искате да пробвате и другите ми програми:</translation>
-    </message>
-    <message>
-        <location filename="src/aboutview.cpp" line="76"/>
-        <source>%1, a YouTube music player</source>
-        <translation>&amp;1, YouTube музикалн плеър</translation>
-    </message>
-    <message>
-        <location filename="src/aboutview.cpp" line="80"/>
-        <source>%1, a music player</source>
-        <translation>&amp;1, музикален плеър</translation>
-    </message>
-    <message>
-        <location filename="src/aboutview.cpp" line="86"/>
         <source>Translate %1 to your native language using %2</source>
         <translation>Преведи &amp;1 на твоя роден език използвайки &amp;2</translation>
     </message>
     <message>
-        <location filename="src/aboutview.cpp" line="91"/>
         <source>Icon designed by %1.</source>
         <translation>Иконите са изработени от %1.</translation>
     </message>
     <message>
-        <location filename="src/aboutview.cpp" line="95"/>
         <source>Released under the &lt;a href=&apos;%1&apos;&gt;GNU General Public License&lt;/a&gt;</source>
         <translation>Издадено е под &lt;a href=&apos;%1&apos;&gt;GNU General Public License&lt;/a&gt;</translation>
     </message>
     <message>
-        <location filename="src/aboutview.cpp" line="110"/>
         <source>&amp;Close</source>
         <translation>&amp;Затваряне</translation>
     </message>
     <message>
-        <location filename="src/aboutview.h" line="40"/>
         <source>About</source>
         <translation>Относно</translation>
     </message>
 <context>
     <name>ActivationDialog</name>
     <message>
-        <location filename="local/src/activationdialog.cpp" line="17"/>
         <source>Enter your License Details</source>
         <translation>Въведете вашите лицензионни данни</translation>
     </message>
     <message>
-        <location filename="local/src/activationdialog.cpp" line="29"/>
         <source>&amp;Email:</source>
         <translation>&amp;Електронна поща</translation>
     </message>
     <message>
-        <location filename="local/src/activationdialog.cpp" line="35"/>
         <source>&amp;Code:</source>
         <translation>&amp;Код:</translation>
     </message>
 <context>
     <name>ActivationView</name>
     <message>
-        <location filename="local/src/activationview.cpp" line="47"/>
         <source>Please license %1</source>
         <translation>Моля, закупете лиценз %1</translation>
     </message>
     <message>
-        <location filename="local/src/activationview.cpp" line="51"/>
         <source>This demo has expired.</source>
         <translation>Това демо изтече</translation>
     </message>
     <message>
-        <location filename="local/src/activationview.cpp" line="53"/>
         <source>The full version allows you to watch videos without interruptions.</source>
-        <oldsource>The full version allows you to download videos longer than %1 minutes and to watch videos without interruptions.</oldsource>
         <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>Без лиценз срока за ползване ще изтече за &amp;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>Закупувайки пълната версия, също така подкрепяте труда, който съм вложил в създаването &amp;1.</translation>
     </message>
     <message>
-        <location filename="local/src/activationview.cpp" line="70"/>
         <source>Use Demo</source>
         <translation>Ползвай демо версия</translation>
     </message>
     <message>
-        <location filename="local/src/activationview.cpp" line="77"/>
         <source>Enter License</source>
         <translation>Въведи лиценз</translation>
     </message>
     <message>
-        <location filename="local/src/activationview.cpp" line="85"/>
         <source>Buy License</source>
         <translation>Закупи лиценз</translation>
     </message>
 </context>
+<context>
+    <name>AppWidget</name>
+    <message>
+        <source>Download</source>
+        <translation type="unfinished"/>
+    </message>
+</context>
 <context>
     <name>ChannelAggregator</name>
     <message>
-        <location filename="src/channelaggregator.cpp" line="183"/>
         <source>By %1</source>
         <translation>От %1</translation>
     </message>
     <message numerus="yes">
-        <location filename="src/channelaggregator.cpp" line="185"/>
         <source>You have %n new video(s)</source>
         <translation type="unfinished"><numerusform></numerusform><numerusform></numerusform></translation>
     </message>
 <context>
     <name>ChannelItemDelegate</name>
     <message>
-        <location filename="src/channelitemdelegate.cpp" line="67"/>
         <source>All Videos</source>
         <translation>Всички видео клипове</translation>
     </message>
     <message>
-        <location filename="src/channelitemdelegate.cpp" line="85"/>
         <source>Unwatched Videos</source>
         <translation>Неизгледани видео клипове</translation>
     </message>
 <context>
     <name>ChannelView</name>
     <message>
-        <location filename="src/channelview.cpp" line="151"/>
-        <source>Mark all as watched</source>
-        <translation>Маркирай всички видео клипове като гледани</translation>
-    </message>
-    <message>
-        <location filename="src/channelview.cpp" line="159"/>
-        <source>Show Updated</source>
-        <translation>Покажи обновени</translation>
-    </message>
-    <message>
-        <location filename="src/channelview.cpp" line="103"/>
         <source>Name</source>
         <translation>Име</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="110"/>
         <source>Last Updated</source>
         <translation>Последно обновени</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="117"/>
         <source>Last Added</source>
         <translation>Последно добавени</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="124"/>
         <source>Last Watched</source>
         <translation>Последно гледани</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="131"/>
         <source>Most Watched</source>
         <translation>Най-гледани</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="139"/>
         <source>Sort by</source>
         <translation>Сортиране по</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="222"/>
+        <source>Mark all as watched</source>
+        <translation>Маркирай всички видео клипове като гледани</translation>
+    </message>
+    <message>
+        <source>Show Updated</source>
+        <translation>Покажи обновени</translation>
+    </message>
+    <message>
         <source>All Videos</source>
         <translation>Всички видео клипове</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="226"/>
         <source>Unwatched Videos</source>
         <translation>Негледани видео клипове</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="244"/>
         <source>Mark as Watched</source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="257"/>
         <source>Unsubscribe</source>
         <translation>Отписване</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="270"/>
         <source>There are no updated subscriptions at this time.</source>
         <translation>Няма обновени абонаменти</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="272"/>
         <source>You have no subscriptions. Use the star symbol to subscribe to channels.</source>
         <translation>Нямате абонаменти. Изполвай звезда за абониране към канали</translation>
     </message>
 <context>
     <name>ClearButton</name>
     <message>
-        <location filename="src/exlineedit.cpp" line="6"/>
         <source>Clear</source>
         <translation>Изчисти</translation>
     </message>
 <context>
     <name>DataUtils</name>
     <message>
-        <location filename="src/datautils.cpp" line="88"/>
         <source>Just now</source>
         <translation type="unfinished"/>
     </message>
     <message numerus="yes">
-        <location filename="src/datautils.cpp" line="90"/>
-        <source>%n minute(s) ago</source>
-        <translation type="unfinished"><numerusform></numerusform><numerusform></numerusform></translation>
-    </message>
-    <message numerus="yes">
-        <location filename="src/datautils.cpp" line="92"/>
         <source>%n hour(s) ago</source>
         <translation type="unfinished"><numerusform></numerusform><numerusform></numerusform></translation>
     </message>
     <message numerus="yes">
-        <location filename="src/datautils.cpp" line="94"/>
         <source>%n day(s) ago</source>
         <translation type="unfinished"><numerusform></numerusform><numerusform></numerusform></translation>
     </message>
     <message numerus="yes">
-        <location filename="src/datautils.cpp" line="96"/>
         <source>%n weeks(s) ago</source>
         <translation type="unfinished"><numerusform></numerusform><numerusform></numerusform></translation>
     </message>
     <message numerus="yes">
-        <location filename="src/datautils.cpp" line="98"/>
         <source>%n month(s) ago</source>
         <translation type="unfinished"><numerusform></numerusform><numerusform></numerusform></translation>
     </message>
 <context>
     <name>DownloadItem</name>
     <message>
-        <location filename="src/downloaditem.cpp" line="406"/>
         <source>bytes</source>
         <translation>байта</translation>
     </message>
     <message>
-        <location filename="src/downloaditem.cpp" line="409"/>
         <source>KB</source>
         <translation>КБ</translation>
     </message>
     <message>
-        <location filename="src/downloaditem.cpp" line="412"/>
         <source>MB</source>
         <translation>МБ</translation>
     </message>
     <message>
-        <location filename="src/downloaditem.cpp" line="421"/>
         <source>bytes/sec</source>
         <translation>байта/сек</translation>
     </message>
     <message>
-        <location filename="src/downloaditem.cpp" line="424"/>
         <source>KB/sec</source>
         <translation>КБ/сек</translation>
     </message>
     <message>
-        <location filename="src/downloaditem.cpp" line="427"/>
         <source>MB/sec</source>
         <translation>МБ/сек</translation>
     </message>
     <message>
-        <location filename="src/downloaditem.cpp" line="433"/>
         <source>seconds</source>
         <translation>секунди</translation>
     </message>
     <message>
-        <location filename="src/downloaditem.cpp" line="436"/>
         <source>minutes</source>
         <translation>минути</translation>
     </message>
     <message>
-        <location filename="src/downloaditem.cpp" line="439"/>
         <source>%4 %5 remaining</source>
         <translation>остават %4 %5</translation>
     </message>
 <context>
     <name>DownloadManager</name>
     <message>
-        <location filename="src/downloadmanager.cpp" line="77"/>
         <source>This is just the demo version of %1.</source>
         <translation>Това е демо верция на %1</translation>
     </message>
     <message>
-        <location filename="src/downloadmanager.cpp" line="79"/>
         <source>It can only download videos shorter than %1 minutes so you can test the download functionality.</source>
         <translation>Може да изтегляте видео клипове по-къси от &amp;1 минута, за да изпробвате функцията за изтегляне.</translation>
     </message>
     <message>
-        <location filename="src/downloadmanager.cpp" line="85"/>
         <source>Continue</source>
         <translation>Продължи</translation>
     </message>
     <message>
-        <location filename="src/downloadmanager.cpp" line="86"/>
         <source>Get the full version</source>
         <translation>Пълна версия</translation>
     </message>
     <message>
-        <location filename="src/downloadmanager.cpp" line="157"/>
         <source>%1 downloaded in %2</source>
         <translation>%1 изтеглено за %2</translation>
     </message>
     <message>
-        <location filename="src/downloadmanager.cpp" line="160"/>
         <source>Download finished</source>
         <translation>Теглене привършено</translation>
     </message>
     <message numerus="yes">
-        <location filename="src/downloadmanager.cpp" line="165"/>
         <source>%n Download(s)</source>
         <translation type="unfinished"><numerusform></numerusform><numerusform></numerusform></translation>
     </message>
 <context>
     <name>DownloadSettings</name>
     <message>
-        <location filename="src/downloadsettings.cpp" line="36"/>
         <source>Change location...</source>
         <translation>Промени мястото...</translation>
     </message>
     <message>
-        <location filename="src/downloadsettings.cpp" line="69"/>
         <source>Choose the download location</source>
         <translation>Избери мястo за изтегляне</translation>
     </message>
     <message>
-        <location filename="src/downloadsettings.cpp" line="81"/>
         <source>Download location changed.</source>
         <translation>Мястото за запис на изтеглянията е сменено.</translation>
     </message>
     <message>
-        <location filename="src/downloadsettings.cpp" line="83"/>
         <source>Current downloads will still go in the previous location.</source>
         <translation>Текущите изтегляния ще продължат да се запазват на предишното място.</translation>
     </message>
     <message>
-        <location filename="src/downloadsettings.cpp" line="94"/>
         <source>Downloading to: %1</source>
         <translation>изтегляне в: %1</translation>
     </message>
 <context>
     <name>DownloadView</name>
     <message>
-        <location filename="src/downloadview.cpp" line="38"/>
-        <location filename="src/downloadview.h" line="45"/>
         <source>Downloads</source>
         <translation>Изтегляния</translation>
     </message>
 </context>
-<context>
-    <name>DownloadWidget</name>
-    <message>
-        <location filename="local/src/updatedialog.cpp" line="60"/>
-        <source>Downloading update...</source>
-        <translation>Изтегляне на обновяване...</translation>
-    </message>
-</context>
 <context>
     <name>Extra</name>
     <message>
-        <location filename="local/src/extra.cpp" line="251"/>
         <source>The executable file has been tempered with, maybe by a virus.</source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="local/src/extra.cpp" line="252"/>
         <source>%1 will not run. Try installing again.</source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="local/src/extra.cpp" line="253"/>
         <source>Quit</source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="local/src/extra.cpp" line="254"/>
         <source>Reinstall</source>
         <translation type="unfinished"/>
     </message>
 <context>
     <name>GlobalShortcuts</name>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="36"/>
         <source>Play</source>
         <translation>Възпроизвеждане</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="37"/>
         <source>Pause</source>
         <translation>Пауза</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="38"/>
         <source>Play/Pause</source>
         <translation>Възпроизвеждане/Пауза</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="39"/>
         <source>Stop</source>
         <translation>Спри</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="40"/>
         <source>Stop playing after current track</source>
         <translation>Спри след сегашната песен</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="41"/>
         <source>Next track</source>
         <translation>Следваща песен</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="42"/>
         <source>Previous track</source>
         <translation>Предишна песен</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="43"/>
         <source>Increase volume</source>
         <translation>Повиши звука</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="44"/>
         <source>Decrease volume</source>
         <translation>Понижи звука</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="45"/>
         <source>Mute</source>
         <translation>Заглуши</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="46"/>
         <source>Seek forward</source>
         <translation>Превъртане напред</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="47"/>
         <source>Seek backward</source>
         <translation>Превъртане назад</translation>
     </message>
 <context>
     <name>HomeView</name>
     <message>
-        <location filename="src/homeview.cpp" line="58"/>
         <source>Search</source>
         <translation>Търси</translation>
     </message>
     <message>
-        <location filename="src/homeview.cpp" line="60"/>
         <source>Find videos and channels by keyword</source>
         <translation>Търсене на видео клипове и канали с ключови думи</translation>
     </message>
     <message>
-        <location filename="src/homeview.cpp" line="65"/>
         <source>Browse</source>
         <translation>Търси</translation>
     </message>
     <message>
-        <location filename="src/homeview.cpp" line="67"/>
         <source>Browse videos by category</source>
         <translation>Търси видеа по категория</translation>
     </message>
     <message>
-        <location filename="src/homeview.cpp" line="71"/>
         <source>Subscriptions</source>
         <translation>Абонаменти</translation>
     </message>
     <message>
-        <location filename="src/homeview.cpp" line="73"/>
         <source>Channel subscriptions</source>
         <translation>Абонаменти за канали</translation>
     </message>
     <message>
-        <location filename="src/homeview.h" line="44"/>
         <source>Make yourself comfortable</source>
         <translation>Отпуснете се</translation>
     </message>
 <context>
     <name>LoadingWidget</name>
     <message>
-        <location filename="src/loadingwidget.cpp" line="125"/>
         <source>Error</source>
         <translation>Грешка</translation>
     </message>
 <context>
     <name>MainWindow</name>
     <message>
-        <location filename="src/mainwindow.cpp" line="291"/>
+        <source>&amp;Window</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <source>&amp;Minimize</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
         <source>&amp;Stop</source>
         <translation>&amp;Спри</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="292"/>
         <source>Stop playback and go back to the search view</source>
         <translation>Спри изпълнението и се върни в търсачката</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="307"/>
+        <source>P&amp;revious</source>
+        <translation>П&amp;редишно</translation>
+    </message>
+    <message>
+        <source>Go back to the previous track</source>
+        <translation>Върни се на предишната песен</translation>
+    </message>
+    <message>
         <source>S&amp;kip</source>
         <translation>П&amp;ропусни</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="308"/>
         <source>Skip to the next video</source>
         <translation>Следващо видео</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1134"/>
-        <source>&amp;Pause</source>
-        <translation>&amp;Пауза</translation>
+        <source>&amp;Play</source>
+        <translation>&amp;Възпроизвеждане</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1135"/>
-        <source>Pause playback</source>
-        <translation>Пауза на възпроизвеждането</translation>
+        <source>Resume playback</source>
+        <translation>Възстанови възпроизвеждането</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="321"/>
         <source>&amp;Full Screen</source>
         <translation>&amp;Цял екран</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="322"/>
         <source>Go full screen</source>
         <translation>Отвори в цял екран</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="336"/>
+        <source>&amp;Compact Mode</source>
+        <translation>&amp;Компактен режим</translation>
+    </message>
+    <message>
         <source>Hide the playlist and the toolbar</source>
         <translation>Скрии прейлистата и туулбара</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="349"/>
+        <source>Open the &amp;YouTube Page</source>
+        <translation>Отвори в &amp;YouTube страницата</translation>
+    </message>
+    <message>
         <source>Go to the YouTube video page and pause playback</source>
         <translation>Отиди в YouTube видео страницата и сложи на пауза</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="356"/>
+        <source>Copy the YouTube &amp;Link</source>
+        <translation>Копирай YouTube &amp;връзката</translation>
+    </message>
+    <message>
         <source>Copy the current video YouTube link to the clipboard</source>
         <translation>Постави връзка към видеото в YouTube в клипборда</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="363"/>
+        <source>Copy the Video Stream &amp;URL</source>
+        <translation>Копирай &amp;URL на видео излъчването</translation>
+    </message>
+    <message>
         <source>Copy the current video stream URL to the clipboard</source>
         <translation>Копирай URL на гледаното видео в клипборда</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="370"/>
+        <source>Find Video &amp;Parts</source>
+        <translation>Намери Видео &amp;Части</translation>
+    </message>
+    <message>
         <source>Find other video parts hopefully in the right order</source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="376"/>
         <source>&amp;Remove</source>
         <translation>&amp;Премахни</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="377"/>
         <source>Remove the selected videos from the playlist</source>
         <translation>Премахни избраните виде от плейлистата</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="383"/>
         <source>Move &amp;Up</source>
         <translation>Премести &amp;нагоре</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="384"/>
         <source>Move up the selected videos in the playlist</source>
         <translation>Премести избраните видеа в плейлиста</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="390"/>
         <source>Move &amp;Down</source>
         <translation>Премести &amp;надолу</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="391"/>
         <source>Move down the selected videos in the playlist</source>
         <translation>Премести надолу в плейлиста избраните видеа</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="402"/>
+        <source>&amp;Clear Recent Searches</source>
+        <translation>&amp;Изчисти Последните Търсения</translation>
+    </message>
+    <message>
         <source>Clear the search history. Cannot be undone.</source>
         <translation>Изчисти историята на търсене. Не е обратимо.</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="407"/>
         <source>&amp;Quit</source>
         <translation>&amp;Изход</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="410"/>
         <source>Bye</source>
         <translation>Чао</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="414"/>
         <source>&amp;Website</source>
         <translation>&amp;Уебсайт</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="416"/>
         <source>%1 on the Web</source>
         <translation>%1 в мрежата</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="422"/>
+        <source>Make a &amp;Donation</source>
+        <translation>Направи &amp;дарение</translation>
+    </message>
+    <message>
         <source>Please support the continued development of %1</source>
         <translation>Моля подкрепете, бъдещите разработки на %1</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="427"/>
         <source>&amp;About</source>
         <translation>&amp;Относно</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="429"/>
         <source>Info about %1</source>
         <translation>Информация за %1</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="437"/>
         <source>Search</source>
         <translation>Търси</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="456"/>
         <source>Mute volume</source>
         <translation>Заглуши звука</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="490"/>
-        <location filename="src/mainwindow.cpp" line="1609"/>
+        <source>&amp;Manually Start Playing</source>
+        <translation>&amp;Ръчно стартиране</translation>
+    </message>
+    <message>
+        <source>Manually start playing videos</source>
+        <translation>Ръчно възпроизвеждане на видео клипове</translation>
+    </message>
+    <message>
         <source>&amp;Downloads</source>
         <translation>&amp;Изтегляния</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="491"/>
         <source>Show details about video downloads</source>
         <translation>Покажи подробности относно видео изтеглянията</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="499"/>
         <source>&amp;Download</source>
         <translation>&amp;Изтегляния</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="500"/>
         <source>Download the current video</source>
         <translation>Изтегли текущото видео</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="510"/>
         <source>Take &amp;Snapshot</source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="517"/>
         <source>&amp;Subscribe to Channel</source>
         <translation>&amp;Абонирай се за Канала</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="525"/>
         <source>Share the current video using %1</source>
         <translation>Сподели сегашният видео клип с %1</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="545"/>
         <source>&amp;Email</source>
         <translation>&amp;Електронна поща</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="546"/>
         <source>Email</source>
         <translation>Електронна поща</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="551"/>
         <source>&amp;Close</source>
         <translation>&amp;Затваряне</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="561"/>
         <source>&amp;Float on Top</source>
         <translation>&amp;Залепи най отгоре</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="566"/>
         <source>&amp;Adjust Window Size</source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="571"/>
         <source>&amp;Stop After This Video</source>
         <translation>&amp;Спри след този видео клип</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="578"/>
         <source>&amp;Report an Issue...</source>
         <translation>&amp;Докладвай проблем...</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="582"/>
         <source>&amp;Refine Search...</source>
         <translation>&amp;Стесняване на търсенето...</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="594"/>
         <source>More...</source>
         <translation>Повече...</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="597"/>
         <source>&amp;Related Videos</source>
         <translation>&amp;Сродни Видео клипове</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="599"/>
         <source>Watch videos related to the current one</source>
         <translation>Гледай видео клиповете свързани с това</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="605"/>
         <source>Open in &amp;Browser...</source>
         <translation>Отвори в &amp;Браузъра...</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="612"/>
-        <source>&amp;Love %1? Rate it!</source>
+        <source>Restricted Mode</source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="633"/>
-        <source>&amp;Application</source>
-        <translation>&amp;Апликация</translation>
+        <source>Hide videos that may contain inappropriate content</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <source>&amp;Love %1? Rate it!</source>
+        <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="618"/>
         <source>Buy %1...</source>
         <translation>Закупи %1</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="647"/>
+        <source>&amp;Application</source>
+        <translation>&amp;Апликация</translation>
+    </message>
+    <message>
         <source>&amp;Playback</source>
         <translation>&amp;Възпроизвеждане</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="661"/>
         <source>&amp;Playlist</source>
         <translation>&amp;Плейлиста</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="670"/>
         <source>&amp;Video</source>
         <translation>&amp;Видео</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="686"/>
-        <source>&amp;View</source>
-        <translation>&amp;Виж</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="695"/>
         <source>&amp;Share</source>
         <translation>&amp;Сподели</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="709"/>
+        <source>&amp;View</source>
+        <translation>&amp;Виж</translation>
+    </message>
+    <message>
         <source>&amp;Help</source>
         <translation>&amp;Помощ</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="751"/>
         <source>Press %1 to raise the volume, %2 to lower it</source>
         <translation>Натисни %1 за да увеличите звука, %2 да го намалите</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1021"/>
-        <location filename="src/mainwindow.cpp" line="1027"/>
+        <source>Choose your content location</source>
+        <translation>Избери местонахождение</translation>
+    </message>
+    <message>
         <source>Opening %1</source>
         <translation>Отваряне %1</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1080"/>
         <source>Do you want to exit %1 with a download in progress?</source>
         <translation>Искате ли да излезете &amp;1 с незавършено изтегляне?</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1081"/>
         <source>If you close %1 now, this download will be cancelled.</source>
         <translation>Ако затворите &amp;1 сега, изтеглянето ще бъде прекъснато.</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1086"/>
         <source>Close and cancel download</source>
         <translation>Затвори и прекъсни изтеглянето</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1087"/>
         <source>Wait for download to finish</source>
         <translation>Изчакайте тегленето да привърши</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1158"/>
-        <source>&amp;Loading...</source>
-        <translation type="unfinished"/>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="1264"/>
-        <source>Leave &amp;Full Screen</source>
-        <translation>Изход от &amp;Цял екран</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="1718"/>
-        <source>%1 version %2 is now available.</source>
-        <translation>%1 версия %2 е достъпна.</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="1722"/>
-        <source>Remind me later</source>
-        <translation>Напомни ми по късно</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="1723"/>
-        <source>Update</source>
-        <translation>Обнови</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="1127"/>
         <source>Error: %1</source>
         <translation>Грешка: %1</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="300"/>
-        <source>P&amp;revious</source>
-        <translation>П&amp;редишно</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="301"/>
-        <source>Go back to the previous track</source>
-        <translation>Върни се на предишната песен</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="335"/>
-        <source>&amp;Compact Mode</source>
-        <translation>&amp;Компактен режим</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="348"/>
-        <source>Open the &amp;YouTube Page</source>
-        <translation>Отвори в &amp;YouTube страницата</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="355"/>
-        <source>Copy the YouTube &amp;Link</source>
-        <translation>Копирай YouTube &amp;връзката</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="362"/>
-        <source>Copy the Video Stream &amp;URL</source>
-        <translation>Копирай &amp;URL на видео излъчването</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="369"/>
-        <source>Find Video &amp;Parts</source>
-        <translation>Намери Видео &amp;Части</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="397"/>
-        <source>&amp;Clear Recent Searches</source>
-        <translation>&amp;Изчисти Последните Търсения</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="421"/>
-        <source>Make a &amp;Donation</source>
-        <translation>Направи &amp;дарение</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="483"/>
-        <source>&amp;Manually Start Playing</source>
-        <translation>&amp;Ръчно стартиране</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="484"/>
-        <source>Manually start playing videos</source>
-        <translation>Ръчно възпроизвеждане на видео клипове</translation>
+        <source>&amp;Pause</source>
+        <translation>&amp;Пауза</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="847"/>
-        <source>Choose your content location</source>
-        <translation>Избери местонахождение</translation>
+        <source>Pause playback</source>
+        <translation>Пауза на възпроизвеждането</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="314"/>
-        <location filename="src/mainwindow.cpp" line="1142"/>
-        <location filename="src/mainwindow.cpp" line="1150"/>
-        <source>&amp;Play</source>
-        <translation>&amp;Възпроизвеждане</translation>
+        <source>&amp;Loading...</source>
+        <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="315"/>
-        <location filename="src/mainwindow.cpp" line="1143"/>
-        <location filename="src/mainwindow.cpp" line="1151"/>
-        <source>Resume playback</source>
-        <translation>Възстанови възпроизвеждането</translation>
+        <source>Leave &amp;Full Screen</source>
+        <translation>Изход от &amp;Цял екран</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1437"/>
         <source>Remaining time: %1</source>
         <translation>Оставащо време: %1</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1528"/>
         <source>Volume at %1%</source>
         <translation>Звук на %1%</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1534"/>
         <source>Volume is muted</source>
         <translation>Звука е заглушен</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1537"/>
         <source>Volume is unmuted</source>
         <translation>Звука е отглушен</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1548"/>
         <source>Maximum video definition set to %1</source>
         <translation>Максимално качество на видеото зададено на %1</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1595"/>
         <source>Your privacy is now safe</source>
         <translation>Вашата интимност вече е обезопасена</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1610"/>
         <source>Downloads complete</source>
         <translation>Изтеглянето е завършено</translation>
     </message>
+    <message>
+        <source>%1 version %2 is now available.</source>
+        <translation>%1 версия %2 е достъпна.</translation>
+    </message>
+    <message>
+        <source>Remind me later</source>
+        <translation>Напомни ми по късно</translation>
+    </message>
+    <message>
+        <source>Update</source>
+        <translation>Обнови</translation>
+    </message>
 </context>
 <context>
     <name>MediaView</name>
     <message>
-        <location filename="src/mediaview.cpp" line="702"/>
         <source>You can now paste the YouTube link into another application</source>
         <translation>Вече можете да вмъкнете YouTube линка в друго приложение</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="710"/>
         <source>You can now paste the video stream URL into another application</source>
         <translation>Вече можете да вмъкнете URL адреса на излъчването в друго приложение</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="711"/>
         <source>The link will be valid only for a limited time.</source>
         <translation>Линка ще е валиден само за определено време.</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="800"/>
         <source>This is just the demo version of %1.</source>
         <translation>Това е демо верция на %1</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="801"/>
         <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="833"/>
+        <source>Get the full version</source>
+        <translation>Пълна версия</translation>
+    </message>
+    <message>
         <source>Continue</source>
         <translation>Продължи</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="988"/>
+        <source>Downloading %1</source>
+        <translation>изтеглане %1</translation>
+    </message>
+    <message>
         <source>of</source>
         <comment>Used in video parts, as in '2 of 3'</comment>
         <translation>от</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="1001"/>
         <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="1003"/>
         <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="1096"/>
         <source>Sent from %1</source>
         <translation>Изпратено от %1</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="1128"/>
         <source>Unsubscribe from %1</source>
         <translation>Отписване от %1</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="1132"/>
         <source>Subscribe to %1</source>
         <translation>Абонирай се за %1</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="1166"/>
         <source>Unsubscribed from %1</source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="1169"/>
         <source>Subscribed to %1</source>
         <translation type="unfinished"/>
     </message>
-    <message>
-        <location filename="src/mediaview.cpp" line="808"/>
-        <source>Get the full version</source>
-        <translation>Пълна версия</translation>
-    </message>
-    <message>
-        <location filename="src/mediaview.cpp" line="847"/>
-        <source>Downloading %1</source>
-        <translation>изтеглане %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>Достъпна е нова версия на %1</translation>
     </message>
     <message>
-        <location filename="local/src/updatedialog.cpp" line="28"/>
         <source>%1 %2 is now available. You have %3.</source>
         <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>Бихте ли искали да го изтеглите сега?</translation>
     </message>
     <message>
-        <location filename="local/src/updatedialog.cpp" line="39"/>
         <source>Skip This Version</source>
         <translation>Пропусни тази версия</translation>
     </message>
     <message>
-        <location filename="local/src/updatedialog.cpp" line="43"/>
         <source>Remind Me Later</source>
         <translation>Напомни ми по-късно</translation>
     </message>
     <message>
-        <location filename="local/src/updatedialog.cpp" line="47"/>
         <source>Install Update</source>
         <translation>Обновете</translation>
     </message>
 <context>
     <name>PasteLineEdit</name>
     <message>
-        <location filename="local/src/pastelineedit.cpp" line="6"/>
         <source>Paste</source>
         <translation>Постави</translation>
     </message>
 <context>
     <name>PlaylistItemDelegate</name>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="209"/>
         <source>%1 views</source>
         <translation>%1 гледания</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="309"/>
         <source>%1 of %2 (%3) — %4</source>
         <translation>%1 от %2 (%3) — %4</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="316"/>
         <source>Preparing</source>
         <translation>Приготвяне</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="318"/>
         <source>Failed</source>
         <translation>Неуспешно</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="320"/>
         <source>Completed</source>
         <translation>Завършен</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="322"/>
         <source>Stopped</source>
         <translation>Спряно</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="358"/>
         <source>Stop downloading</source>
         <translation>Спри изтеглянето</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="368"/>
         <source>Show in %1</source>
         <translation>Покажи в %1</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="370"/>
         <source>Open parent folder</source>
         <translation>Отвори родителската папка</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="379"/>
         <source>Restart downloading</source>
         <translation>Рестартирай изтеглянето</translation>
     </message>
 <context>
     <name>PlaylistModel</name>
     <message>
-        <location filename="src/playlistmodel.cpp" line="70"/>
         <source>Searching...</source>
         <translation>Търся...</translation>
     </message>
     <message>
-        <location filename="src/playlistmodel.cpp" line="71"/>
         <source>Show %1 More</source>
         <translation>Покажи %1 повече</translation>
     </message>
     <message>
-        <location filename="src/playlistmodel.cpp" line="72"/>
         <source>No videos</source>
         <translation>Няма видео клипове</translation>
     </message>
     <message>
-        <location filename="src/playlistmodel.cpp" line="73"/>
         <source>No more videos</source>
         <translation>Няма повече видео клипове</translation>
     </message>
 <context>
     <name>RefineSearchWidget</name>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="49"/>
         <source>Sort by</source>
         <translation>Сортиране по</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="53"/>
         <source>Relevance</source>
         <translation>Уместност</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="54"/>
-        <location filename="src/refinesearchwidget.cpp" line="69"/>
         <source>Date</source>
         <translation>Дата</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="55"/>
         <source>View Count</source>
         <translation>Виж бройка</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="56"/>
         <source>Rating</source>
         <translation>Класация</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="73"/>
         <source>Anytime</source>
         <translation>По всяко време</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="74"/>
         <source>Today</source>
         <translation>Днес</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="75"/>
         <source>7 Days</source>
         <translation>7 Дни</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="76"/>
         <source>30 Days</source>
         <translation>30 Дни</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="89"/>
         <source>Duration</source>
         <translation>Времетраене</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="93"/>
-        <location filename="src/refinesearchwidget.cpp" line="119"/>
         <source>All</source>
         <translation>Всички</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="94"/>
         <source>Short</source>
         <translation>Къс</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="95"/>
         <source>Medium</source>
         <translation>Среден</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="96"/>
         <source>Long</source>
         <translation>Дълъг</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="99"/>
         <source>Less than 4 minutes</source>
         <translation>По къс от 4 минути</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="100"/>
         <source>Between 4 and 20 minutes</source>
         <translation>Между 4 у 20 минути</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="101"/>
         <source>Longer than 20 minutes</source>
         <translation>По голям от 20 минути</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="115"/>
         <source>Quality</source>
         <translation>Качество</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="120"/>
         <source>High Definition</source>
         <translation>Високо качество</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="123"/>
         <source>720p or higher</source>
         <translation>720p или по голямо</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="136"/>
         <source>Done</source>
         <translation>Готово</translation>
     </message>
 <context>
     <name>RegionsView</name>
     <message>
-        <location filename="src/regionsview.cpp" line="39"/>
         <source>Done</source>
         <translation>Завършено</translation>
     </message>
 <context>
     <name>SearchLineEdit</name>
     <message>
-        <location filename="src/searchlineedit.cpp" line="55"/>
         <source>Search</source>
         <translation>Търси</translation>
     </message>
 <context>
     <name>SearchView</name>
     <message>
-        <location filename="src/searchview.cpp" line="83"/>
         <source>Welcome to &lt;a href=&apos;%1&apos;&gt;%2&lt;/a&gt;,</source>
         <translation>Добре дошли в &lt;a href=&apos;%1&apos;&gt;%2&lt;/a&gt;,</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="200"/>
-        <source>Get the full version</source>
-        <translation>Пълна версия</translation>
-    </message>
-    <message>
-        <location filename="src/searchview.cpp" line="110"/>
         <source>Enter</source>
         <extracomment>&quot;Enter&quot;, as in &quot;type&quot;. The whole phrase says: &quot;Enter a keyword to start watching videos&quot;</extracomment>
         <translation>Напишете</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="117"/>
         <source>a keyword</source>
         <translation>ключова дума</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="118"/>
         <source>a channel</source>
         <translation>канал</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="125"/>
         <source>to start watching videos.</source>
         <translation>за гледане на видео клипове</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="156"/>
         <source>Watch</source>
         <translation>Гледай</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="174"/>
         <source>Recent keywords</source>
         <translation>Скорошни ключови думи</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="186"/>
         <source>Recent channels</source>
         <translation>Скорошни канали</translation>
     </message>
+    <message>
+        <source>Get the full version</source>
+        <translation>Пълна версия</translation>
+    </message>
 </context>
 <context>
     <name>SidebarHeader</name>
     <message>
-        <location filename="src/sidebarheader.cpp" line="38"/>
-        <location filename="src/sidebarheader.cpp" line="45"/>
         <source>&amp;Back</source>
         <translation>&amp;Назад</translation>
     </message>
     <message>
-        <location filename="src/sidebarheader.cpp" line="76"/>
         <source>Forward to %1</source>
         <translation>Напред до %1</translation>
     </message>
     <message>
-        <location filename="src/sidebarheader.cpp" line="89"/>
         <source>Back to %1</source>
         <translation>Назад до %1</translation>
     </message>
 <context>
     <name>SidebarWidget</name>
     <message>
-        <location filename="src/sidebarwidget.cpp" line="68"/>
         <source>Refine Search</source>
         <translation>Стесни търсенето</translation>
     </message>
     <message>
-        <location filename="src/sidebarwidget.cpp" line="167"/>
         <source>Did you mean: %1</source>
         <translation>Да не имахте в предвид: %1</translation>
     </message>
 <context>
     <name>SnapshotSettings</name>
     <message>
-        <location filename="src/snapshotsettings.cpp" line="47"/>
         <source>Change location...</source>
         <translation>Промени мястото...</translation>
     </message>
     <message>
-        <location filename="src/snapshotsettings.cpp" line="64"/>
         <source>Snapshot saved to %1</source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="src/snapshotsettings.cpp" line="117"/>
         <source>Snapshots location changed.</source>
         <translation type="unfinished"/>
     </message>
 <context>
     <name>StandardFeedsView</name>
     <message>
-        <location filename="src/standardfeedsview.cpp" line="107"/>
         <source>Most Popular</source>
         <translation>Най-популярни</translation>
     </message>
 </context>
 <context>
-    <name>Video</name>
+    <name>UpdateDialog</name>
     <message>
-        <location filename="src/video.cpp" line="287"/>
-        <source>Cannot get video stream for %1</source>
+        <source>Downloading update...</source>
+        <translation>Изтегляне на обновяване...</translation>
+    </message>
+    <message>
+        <source>Downloading %1...</source>
         <translation type="unfinished"/>
     </message>
+</context>
+<context>
+    <name>Video</name>
     <message>
-        <location filename="src/video.cpp" line="292"/>
-        <source>Network error: %1 for %2</source>
-        <translation>Мрежова грешка: %1 за %2</translation>
+        <source>Cannot get video stream for %1</source>
+        <translation type="unfinished"/>
     </message>
 </context>
 <context>
     <name>YTRegions</name>
     <message>
-        <location filename="src/ytregions.cpp" line="28"/>
         <source>Algeria</source>
         <translation>Алжир</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="29"/>
         <source>Argentina</source>
         <translation>Аржентина</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="30"/>
         <source>Australia</source>
         <translation>Австралия</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="31"/>
         <source>Belgium</source>
         <translation>Белгия</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="32"/>
         <source>Brazil</source>
         <translation>Бразилия</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="33"/>
         <source>Canada</source>
         <translation>Канада</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="34"/>
         <source>Chile</source>
         <translation>Чили</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="35"/>
         <source>Colombia</source>
         <translation>Колумбия</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="36"/>
         <source>Czech Republic</source>
         <translation>Чехия</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="37"/>
         <source>Egypt</source>
         <translation>Египет</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="38"/>
         <source>France</source>
         <translation>Франция</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="39"/>
         <source>Germany</source>
         <translation>Германия</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="40"/>
         <source>Ghana</source>
         <translation>Гана</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="41"/>
         <source>Greece</source>
         <translation>Гърция</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="42"/>
         <source>Hong Kong</source>
         <translation>Хонг Конг</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="43"/>
         <source>Hungary</source>
         <translation>Унгария</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="44"/>
         <source>India</source>
         <translation>Индия</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="45"/>
         <source>Indonesia</source>
         <translation>Индонезия</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="46"/>
         <source>Ireland</source>
         <translation>Ирландия</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="47"/>
         <source>Israel</source>
         <translation>Израел</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="48"/>
         <source>Italy</source>
         <translation>Италия</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="49"/>
         <source>Japan</source>
         <translation>Япония</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="50"/>
         <source>Jordan</source>
         <translation>Йордания</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="51"/>
         <source>Kenya</source>
         <translation>Кения</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="52"/>
         <source>Malaysia</source>
         <translation>Малайзия</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="53"/>
         <source>Mexico</source>
         <translation>Мексико</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="54"/>
         <source>Morocco</source>
         <translation>Мароко</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="55"/>
         <source>Netherlands</source>
         <translation>Холандия</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="56"/>
         <source>New Zealand</source>
         <translation>Нова Зеландия</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="57"/>
         <source>Nigeria</source>
         <translation>Нигерия</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="58"/>
         <source>Peru</source>
         <translation>Перу</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="59"/>
         <source>Philippines</source>
         <translation>Филипините</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="60"/>
         <source>Poland</source>
         <translation>Полша</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="61"/>
         <source>Russia</source>
         <translation>Русия</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="62"/>
         <source>Saudi Arabia</source>
         <translation>Саудитска Арабия</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="63"/>
         <source>Singapore</source>
         <translation>Сингапур</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="64"/>
         <source>South Africa</source>
         <translation>ЮАР</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="65"/>
         <source>South Korea</source>
         <translation>Южна Корея</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="66"/>
         <source>Spain</source>
         <translation>Испания</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="67"/>
         <source>Sweden</source>
         <translation>Швеция</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="68"/>
         <source>Taiwan</source>
         <translation>Тайван</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="69"/>
         <source>Tunisia</source>
         <translation>Туниз</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="70"/>
         <source>Turkey</source>
         <translation>Турция</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="71"/>
         <source>Uganda</source>
         <translation>Уганда</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="72"/>
         <source>United Arab Emirates</source>
         <translation>ОАЕ</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="73"/>
         <source>United Kingdom</source>
         <translation>Великобритания</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="74"/>
         <source>Yemen</source>
         <translation>Йемен</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="148"/>
         <source>Worldwide</source>
         <translation>На световно ниво</translation>
     </message>
index e87091168efc5becdd1a8c3db3521684eb8371d9..1f8fadec8d9087c194b145650e948b1bbafb8c75 100644 (file)
@@ -2,67 +2,42 @@
 <context>
     <name>AboutView</name>
     <message>
-        <location filename="src/aboutview.cpp" line="58"/>
         <source>There&apos;s life outside the browser!</source>
         <translation>Hi ha vida fora del navegador!</translation>
     </message>
     <message>
-        <location filename="src/aboutview.cpp" line="59"/>
         <source>Version %1</source>
         <translation>Versió %1</translation>
     </message>
     <message>
-        <location filename="src/aboutview.cpp" line="64"/>
         <source>Licensed to: %1</source>
         <translation>Llicenciat a: %1</translation>
     </message>
     <message>
-        <location filename="src/aboutview.cpp" line="68"/>
         <source>%1 is Free Software but its development takes precious time.</source>
         <translation>%1 és programari lliure, però el seu desenvolupament pren un temps preciós.</translation>
     </message>
     <message>
-        <location filename="src/aboutview.cpp" line="69"/>
         <source>Please &lt;a href=&apos;%1&apos;&gt;donate&lt;/a&gt; to support the continued development of %2.</source>
         <translation>Siusplau &lt;a href=&apos;%1&apos;&gt;dóna&lt;/a&gt; per ajudar al desenvolupament continuat del %2.</translation>
     </message>
     <message>
-        <location filename="src/aboutview.cpp" line="73"/>
-        <source>You may want to try my other apps as well:</source>
-        <translation>És possible que també vulgueu provar altres aplicacions meves:</translation>
-    </message>
-    <message>
-        <location filename="src/aboutview.cpp" line="76"/>
-        <source>%1, a YouTube music player</source>
-        <translation>%1, un reproductor de música de YouTube</translation>
-    </message>
-    <message>
-        <location filename="src/aboutview.cpp" line="80"/>
-        <source>%1, a music player</source>
-        <translation>%1, un reproductor de música</translation>
-    </message>
-    <message>
-        <location filename="src/aboutview.cpp" line="86"/>
         <source>Translate %1 to your native language using %2</source>
         <translation>Traduïu el %1 al vostre idioma natal utilitzant %2</translation>
     </message>
     <message>
-        <location filename="src/aboutview.cpp" line="91"/>
         <source>Icon designed by %1.</source>
         <translation>Icona dissenyada per %1.</translation>
     </message>
     <message>
-        <location filename="src/aboutview.cpp" line="95"/>
         <source>Released under the &lt;a href=&apos;%1&apos;&gt;GNU General Public License&lt;/a&gt;</source>
         <translation>Alliberat sota la &lt;a href=&apos;%1&apos;&gt;Llicència Pública General de GNU&lt;/a&gt;</translation>
     </message>
     <message>
-        <location filename="src/aboutview.cpp" line="110"/>
         <source>&amp;Close</source>
         <translation>&amp;Tanca</translation>
     </message>
     <message>
-        <location filename="src/aboutview.h" line="40"/>
         <source>About</source>
         <translation>Quant a</translation>
     </message>
 <context>
     <name>ActivationDialog</name>
     <message>
-        <location filename="local/src/activationdialog.cpp" line="17"/>
         <source>Enter your License Details</source>
         <translation>Entra els detalls de la teva llicència</translation>
     </message>
     <message>
-        <location filename="local/src/activationdialog.cpp" line="29"/>
         <source>&amp;Email:</source>
         <translation>&amp;Email:</translation>
     </message>
     <message>
-        <location filename="local/src/activationdialog.cpp" line="35"/>
         <source>&amp;Code:</source>
         <translation>&amp;Codi:</translation>
     </message>
 <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 watch videos without interruptions.</source>
-        <oldsource>The full version allows you to download videos longer than %1 minutes and to watch videos without interruptions.</oldsource>
         <translation>La versió completa permet visualitzar videos sense interrupcions.</translation>
     </message>
     <message>
-        <location filename="local/src/activationview.cpp" line="55"/>
         <source>Without a license, the application will expire in %1 days.</source>
         <translation>Sense llicència, l&apos;aplicació caducarà en %1 dies</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>Comprant la versió completa, també donarà 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>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>AppWidget</name>
+    <message>
+        <source>Download</source>
+        <translation>Descarrega</translation>
+    </message>
+</context>
 <context>
     <name>ChannelAggregator</name>
     <message>
-        <location filename="src/channelaggregator.cpp" line="183"/>
         <source>By %1</source>
         <translation>Per %1</translation>
     </message>
     <message numerus="yes">
-        <location filename="src/channelaggregator.cpp" line="185"/>
         <source>You have %n new video(s)</source>
         <translation type="unfinished"><numerusform></numerusform><numerusform></numerusform></translation>
     </message>
 <context>
     <name>ChannelItemDelegate</name>
     <message>
-        <location filename="src/channelitemdelegate.cpp" line="67"/>
         <source>All Videos</source>
         <translation>Tots els vídeos</translation>
     </message>
     <message>
-        <location filename="src/channelitemdelegate.cpp" line="85"/>
         <source>Unwatched Videos</source>
         <translation>Vídeos no vists</translation>
     </message>
 <context>
     <name>ChannelView</name>
     <message>
-        <location filename="src/channelview.cpp" line="151"/>
-        <source>Mark all as watched</source>
-        <translation>Marca-ho tot vist</translation>
-    </message>
-    <message>
-        <location filename="src/channelview.cpp" line="159"/>
-        <source>Show Updated</source>
-        <translation>Mostra actualitzats</translation>
-    </message>
-    <message>
-        <location filename="src/channelview.cpp" line="103"/>
         <source>Name</source>
         <translation>Nom</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="110"/>
         <source>Last Updated</source>
         <translation>Últim actualitzat</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="117"/>
         <source>Last Added</source>
         <translation>Últim afegit</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="124"/>
         <source>Last Watched</source>
         <translation>Últim vist</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="131"/>
         <source>Most Watched</source>
         <translation>Més vistos</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="139"/>
         <source>Sort by</source>
         <translation>Ordena per</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="222"/>
+        <source>Mark all as watched</source>
+        <translation>Marca-ho tot vist</translation>
+    </message>
+    <message>
+        <source>Show Updated</source>
+        <translation>Mostra actualitzats</translation>
+    </message>
+    <message>
         <source>All Videos</source>
         <translation>Tots els vídeos</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="226"/>
         <source>Unwatched Videos</source>
         <translation>Vídeos no vistos</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="244"/>
         <source>Mark as Watched</source>
         <translation>Marca com a Visualitzat</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="257"/>
         <source>Unsubscribe</source>
         <translation>Donar-se de baixa</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="270"/>
         <source>There are no updated subscriptions at this time.</source>
         <translation>No hi han subscripcions actualitzades.</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="272"/>
         <source>You have no subscriptions. Use the star symbol to subscribe to channels.</source>
         <translation>No teniu subscripcions. Feu servir el símbol de l&apos;estrella per subscríure-us als canals.</translation>
     </message>
 <context>
     <name>ClearButton</name>
     <message>
-        <location filename="src/exlineedit.cpp" line="6"/>
         <source>Clear</source>
         <translation>Neteja</translation>
     </message>
 <context>
     <name>DataUtils</name>
     <message>
-        <location filename="src/datautils.cpp" line="88"/>
         <source>Just now</source>
-        <translation type="unfinished"/>
+        <translation>Ara mateix</translation>
     </message>
     <message numerus="yes">
-        <location filename="src/datautils.cpp" line="90"/>
-        <source>%n minute(s) ago</source>
-        <translation type="unfinished"><numerusform></numerusform><numerusform></numerusform></translation>
-    </message>
-    <message numerus="yes">
-        <location filename="src/datautils.cpp" line="92"/>
         <source>%n hour(s) ago</source>
         <translation type="unfinished"><numerusform></numerusform><numerusform></numerusform></translation>
     </message>
     <message numerus="yes">
-        <location filename="src/datautils.cpp" line="94"/>
         <source>%n day(s) ago</source>
         <translation type="unfinished"><numerusform></numerusform><numerusform></numerusform></translation>
     </message>
     <message numerus="yes">
-        <location filename="src/datautils.cpp" line="96"/>
         <source>%n weeks(s) ago</source>
         <translation type="unfinished"><numerusform></numerusform><numerusform></numerusform></translation>
     </message>
     <message numerus="yes">
-        <location filename="src/datautils.cpp" line="98"/>
         <source>%n month(s) ago</source>
         <translation type="unfinished"><numerusform></numerusform><numerusform></numerusform></translation>
     </message>
 <context>
     <name>DownloadItem</name>
     <message>
-        <location filename="src/downloaditem.cpp" line="406"/>
         <source>bytes</source>
         <translation>bytes</translation>
     </message>
     <message>
-        <location filename="src/downloaditem.cpp" line="409"/>
         <source>KB</source>
         <translation>KB</translation>
     </message>
     <message>
-        <location filename="src/downloaditem.cpp" line="412"/>
         <source>MB</source>
         <translation>MB</translation>
     </message>
     <message>
-        <location filename="src/downloaditem.cpp" line="421"/>
         <source>bytes/sec</source>
         <translation>bytes/s</translation>
     </message>
     <message>
-        <location filename="src/downloaditem.cpp" line="424"/>
         <source>KB/sec</source>
         <translation>KB/s</translation>
     </message>
     <message>
-        <location filename="src/downloaditem.cpp" line="427"/>
         <source>MB/sec</source>
         <translation>MB/s</translation>
     </message>
     <message>
-        <location filename="src/downloaditem.cpp" line="433"/>
         <source>seconds</source>
         <translation>segons</translation>
     </message>
     <message>
-        <location filename="src/downloaditem.cpp" line="436"/>
         <source>minutes</source>
         <translation>minuts</translation>
     </message>
     <message>
-        <location filename="src/downloaditem.cpp" line="439"/>
         <source>%4 %5 remaining</source>
         <translation>%4 %5 restant</translation>
     </message>
 <context>
     <name>DownloadManager</name>
     <message>
-        <location filename="src/downloadmanager.cpp" line="77"/>
         <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="79"/>
         <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="85"/>
         <source>Continue</source>
         <translation>Continua</translation>
     </message>
     <message>
-        <location filename="src/downloadmanager.cpp" line="86"/>
         <source>Get the full version</source>
         <translation>Aconsegueix la versió completa</translation>
     </message>
     <message>
-        <location filename="src/downloadmanager.cpp" line="157"/>
         <source>%1 downloaded in %2</source>
         <translation>%1 descarregat en %2</translation>
     </message>
     <message>
-        <location filename="src/downloadmanager.cpp" line="160"/>
         <source>Download finished</source>
         <translation>Descàrrega completada</translation>
     </message>
     <message numerus="yes">
-        <location filename="src/downloadmanager.cpp" line="165"/>
         <source>%n Download(s)</source>
         <translation type="unfinished"><numerusform></numerusform><numerusform></numerusform></translation>
     </message>
 <context>
     <name>DownloadSettings</name>
     <message>
-        <location filename="src/downloadsettings.cpp" line="36"/>
         <source>Change location...</source>
         <translation>Canvia la ubicació...</translation>
     </message>
     <message>
-        <location filename="src/downloadsettings.cpp" line="69"/>
         <source>Choose the download location</source>
         <translation>Escull la ubicació de les baixades</translation>
     </message>
     <message>
-        <location filename="src/downloadsettings.cpp" line="81"/>
         <source>Download location changed.</source>
         <translation>Ubicació de baixades canviada.</translation>
     </message>
     <message>
-        <location filename="src/downloadsettings.cpp" line="83"/>
         <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="94"/>
         <source>Downloading to: %1</source>
         <translation>Baixant a: %1</translation>
     </message>
 <context>
     <name>DownloadView</name>
     <message>
-        <location filename="src/downloadview.cpp" line="38"/>
-        <location filename="src/downloadview.h" line="45"/>
         <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>Descarregant actualitzacions...</translation>
-    </message>
-</context>
 <context>
     <name>Extra</name>
     <message>
-        <location filename="local/src/extra.cpp" line="251"/>
         <source>The executable file has been tempered with, maybe by a virus.</source>
-        <translation type="unfinished"/>
+        <translation>El fitxer executable ha estat manipulat, potser per un virus.</translation>
     </message>
     <message>
-        <location filename="local/src/extra.cpp" line="252"/>
         <source>%1 will not run. Try installing again.</source>
-        <translation type="unfinished"/>
+        <translation>%1 no funcionarà. Proveu tornar a instalar</translation>
     </message>
     <message>
-        <location filename="local/src/extra.cpp" line="253"/>
         <source>Quit</source>
-        <translation type="unfinished"/>
+        <translation>Surt</translation>
     </message>
     <message>
-        <location filename="local/src/extra.cpp" line="254"/>
         <source>Reinstall</source>
-        <translation type="unfinished"/>
+        <translation>Reinstala</translation>
     </message>
 </context>
 <context>
     <name>GlobalShortcuts</name>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="36"/>
         <source>Play</source>
         <translation>Reprodueix</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="37"/>
         <source>Pause</source>
         <translation>Posa en pausa</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="38"/>
         <source>Play/Pause</source>
         <translation>Reprodueix/posa en pausa</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="39"/>
         <source>Stop</source>
         <translation>Atura</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="40"/>
         <source>Stop playing after current track</source>
         <translation>Atura en acabar la peça actual</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="41"/>
         <source>Next track</source>
         <translation>Peça següent</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="42"/>
         <source>Previous track</source>
         <translation>Peça prèvia</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="43"/>
         <source>Increase volume</source>
         <translation>Augmenta el volum</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="44"/>
         <source>Decrease volume</source>
         <translation>Disminuex el volum</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="45"/>
         <source>Mute</source>
         <translation>Silencia</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="46"/>
         <source>Seek forward</source>
         <translation>Cerca endavant</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="47"/>
         <source>Seek backward</source>
         <translation>Cerca enrere</translation>
     </message>
 <context>
     <name>HomeView</name>
     <message>
-        <location filename="src/homeview.cpp" line="58"/>
         <source>Search</source>
         <translation>Cerca</translation>
     </message>
     <message>
-        <location filename="src/homeview.cpp" line="60"/>
         <source>Find videos and channels by keyword</source>
         <translation>Troba vídeos i canals per paraula clau</translation>
     </message>
     <message>
-        <location filename="src/homeview.cpp" line="65"/>
         <source>Browse</source>
         <translation>Explora</translation>
     </message>
     <message>
-        <location filename="src/homeview.cpp" line="67"/>
         <source>Browse videos by category</source>
         <translation>Explora vídeos per categoria</translation>
     </message>
     <message>
-        <location filename="src/homeview.cpp" line="71"/>
         <source>Subscriptions</source>
         <translation>Subscripcions</translation>
     </message>
     <message>
-        <location filename="src/homeview.cpp" line="73"/>
         <source>Channel subscriptions</source>
         <translation>Subscripcions de canal</translation>
     </message>
     <message>
-        <location filename="src/homeview.h" line="44"/>
         <source>Make yourself comfortable</source>
         <translation>Poseu-vos còmodes</translation>
     </message>
 <context>
     <name>LoadingWidget</name>
     <message>
-        <location filename="src/loadingwidget.cpp" line="125"/>
         <source>Error</source>
         <translation>Error</translation>
     </message>
 <context>
     <name>MainWindow</name>
     <message>
-        <location filename="src/mainwindow.cpp" line="291"/>
+        <source>&amp;Window</source>
+        <translation>&amp;Finestra</translation>
+    </message>
+    <message>
+        <source>&amp;Minimize</source>
+        <translation>&amp;Minimitza</translation>
+    </message>
+    <message>
         <source>&amp;Stop</source>
         <translation>&amp;Atura</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="292"/>
         <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="307"/>
+        <source>P&amp;revious</source>
+        <translation>P&amp;revi</translation>
+    </message>
+    <message>
+        <source>Go back to the previous track</source>
+        <translation>Torna a la pista anterior</translation>
+    </message>
+    <message>
         <source>S&amp;kip</source>
         <translation>&amp;Salta</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="308"/>
         <source>Skip to the next video</source>
         <translation>Salta al vídeo següent</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1134"/>
-        <source>&amp;Pause</source>
-        <translation>&amp;Pausa</translation>
+        <source>&amp;Play</source>
+        <translation>&amp;Reprodueix</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1135"/>
-        <source>Pause playback</source>
-        <translation>Pausa la reproducció</translation>
+        <source>Resume playback</source>
+        <translation>Continua la reproducció</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="321"/>
         <source>&amp;Full Screen</source>
         <translation>Pantalla &amp;completa</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="322"/>
         <source>Go full screen</source>
         <translation>Passa a pantalla completa</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="336"/>
+        <source>&amp;Compact Mode</source>
+        <translation>&amp;Mode compacte</translation>
+    </message>
+    <message>
         <source>Hide the playlist and the toolbar</source>
         <translation>Amaga la llista de reproducció i la barra d&apos;eines</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="349"/>
+        <source>Open the &amp;YouTube Page</source>
+        <translation>Obre la pàgina de &amp;YouTube</translation>
+    </message>
+    <message>
         <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="356"/>
+        <source>Copy the YouTube &amp;Link</source>
+        <translation>Copia l&apos;&amp;enllaç de YouTube</translation>
+    </message>
+    <message>
         <source>Copy the current video YouTube link to the clipboard</source>
         <translation>Copia l&apos;enllaç del vídeo actual del YouTube al porta-retalls</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="363"/>
+        <source>Copy the Video Stream &amp;URL</source>
+        <translation>Copia el &amp;URL del flux de vídeo</translation>
+    </message>
+    <message>
         <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="370"/>
+        <source>Find Video &amp;Parts</source>
+        <translation>Troba &amp;parts de vídeo</translation>
+    </message>
+    <message>
         <source>Find other video parts hopefully in the right order</source>
         <translation>Troba altres parts del vídeo, amb sort en l&apos;ordre correcte</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="376"/>
         <source>&amp;Remove</source>
         <translation>&amp;Elimina</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="377"/>
         <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="383"/>
         <source>Move &amp;Up</source>
         <translation>Mou &amp;amunt</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="384"/>
         <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="390"/>
         <source>Move &amp;Down</source>
         <translation>Mou a&amp;vall</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="391"/>
         <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="402"/>
+        <source>&amp;Clear Recent Searches</source>
+        <translation>&amp;Neteja les búsquedes recents</translation>
+    </message>
+    <message>
         <source>Clear the search history. Cannot be undone.</source>
         <translation>Neteja l&apos;historial de búsquedes. No es pot desfer.</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="407"/>
         <source>&amp;Quit</source>
         <translation>&amp;Surt</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="410"/>
         <source>Bye</source>
         <translation>Adéu</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="414"/>
         <source>&amp;Website</source>
         <translation>Pàgina &amp;web</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="416"/>
         <source>%1 on the Web</source>
         <translation>%1 a la xarxa</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="422"/>
+        <source>Make a &amp;Donation</source>
+        <translation>Fer una &amp;donació</translation>
+    </message>
+    <message>
         <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="427"/>
         <source>&amp;About</source>
         <translation>&amp;Quant a</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="429"/>
         <source>Info about %1</source>
         <translation>Info sobre %1</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="437"/>
         <source>Search</source>
         <translation>Cerca</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="456"/>
         <source>Mute volume</source>
         <translation>Silencia el volum</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="490"/>
-        <location filename="src/mainwindow.cpp" line="1609"/>
+        <source>&amp;Manually Start Playing</source>
+        <translation>Reprodueix vídeos &amp;manualment</translation>
+    </message>
+    <message>
+        <source>Manually start playing videos</source>
+        <translation>Comença a reproduir vídeos manualment</translation>
+    </message>
+    <message>
         <source>&amp;Downloads</source>
         <translation>&amp;Baixades</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="491"/>
         <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="499"/>
         <source>&amp;Download</source>
         <translation>&amp;Baixa</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="500"/>
         <source>Download the current video</source>
         <translation>Baixa el vídeo actual</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="510"/>
         <source>Take &amp;Snapshot</source>
         <translation>Pren &amp;Instantània</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="517"/>
         <source>&amp;Subscribe to Channel</source>
         <translation>&amp;Subscriu al canal</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="525"/>
         <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="545"/>
         <source>&amp;Email</source>
         <translation>&amp;Email</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="546"/>
         <source>Email</source>
         <translation>Correu electrònic</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="551"/>
         <source>&amp;Close</source>
         <translation>&amp;Tanca</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="561"/>
         <source>&amp;Float on Top</source>
         <translation>Manté a &amp;sobre</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="566"/>
         <source>&amp;Adjust Window Size</source>
-        <translation type="unfinished"/>
+        <translation>&amp;Ajusta la mida de la finestra</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="571"/>
         <source>&amp;Stop After This Video</source>
         <translation>&amp;Atura després d&apos;aquest vídeo</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="578"/>
         <source>&amp;Report an Issue...</source>
         <translation>&amp;Informa d&apos;un problema...</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="582"/>
         <source>&amp;Refine Search...</source>
         <translation>&amp;Afina la Cerca...</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="594"/>
         <source>More...</source>
         <translation>Més...</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="597"/>
         <source>&amp;Related Videos</source>
         <translation>Vídeos &amp;Relacionats</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="599"/>
         <source>Watch videos related to the current one</source>
         <translation>Visualitza vídeos relacionats amb l&apos;actual</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="605"/>
         <source>Open in &amp;Browser...</source>
         <translation>Obre al &amp;Navegador...</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="612"/>
-        <source>&amp;Love %1? Rate it!</source>
-        <translation>T&apos;&amp;Agrada %1? Puntua&apos;l!</translation>
+        <source>Restricted Mode</source>
+        <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="633"/>
-        <source>&amp;Application</source>
-        <translation>&amp;Aplicació</translation>
+        <source>Hide videos that may contain inappropriate content</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <source>&amp;Love %1? Rate it!</source>
+        <translation>T&apos;&amp;Agrada %1? Puntua&apos;l!</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="618"/>
         <source>Buy %1...</source>
         <translation>Compra %1...</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="647"/>
+        <source>&amp;Application</source>
+        <translation>&amp;Aplicació</translation>
+    </message>
+    <message>
         <source>&amp;Playback</source>
         <translation>&amp;Reproducció</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="661"/>
         <source>&amp;Playlist</source>
         <translation>&amp;Llista de reproducció</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="670"/>
         <source>&amp;Video</source>
         <translation>&amp;Vídeo</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="686"/>
-        <source>&amp;View</source>
-        <translation>&amp;Vista</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="695"/>
         <source>&amp;Share</source>
         <translation>&amp;Compartir</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="709"/>
+        <source>&amp;View</source>
+        <translation>&amp;Vista</translation>
+    </message>
+    <message>
         <source>&amp;Help</source>
         <translation>A&amp;juda</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="751"/>
         <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="1021"/>
-        <location filename="src/mainwindow.cpp" line="1027"/>
+        <source>Choose your content location</source>
+        <translation>Esculliu la ubicació del vostre contingut</translation>
+    </message>
+    <message>
         <source>Opening %1</source>
         <translation>Obrint %1</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1080"/>
         <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="1081"/>
         <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="1086"/>
         <source>Close and cancel download</source>
         <translation>Tanca i cancel·la la baixada</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1087"/>
         <source>Wait for download to finish</source>
         <translation>Espera a acabar la baixada</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1158"/>
-        <source>&amp;Loading...</source>
-        <translation type="unfinished"/>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="1264"/>
-        <source>Leave &amp;Full Screen</source>
-        <translation>Abandona la Pantalla &amp;Completa</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="1718"/>
-        <source>%1 version %2 is now available.</source>
-        <translation>%1 versió %2 ja està disponible.</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="1722"/>
-        <source>Remind me later</source>
-        <translation>Recorda-m&apos;ho més tard</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="1723"/>
-        <source>Update</source>
-        <translation>Actualitza</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="1127"/>
         <source>Error: %1</source>
         <translation>Error: %1</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="300"/>
-        <source>P&amp;revious</source>
-        <translation>P&amp;revi</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="301"/>
-        <source>Go back to the previous track</source>
-        <translation>Torna a la pista anterior</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="335"/>
-        <source>&amp;Compact Mode</source>
-        <translation>&amp;Mode compacte</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="348"/>
-        <source>Open the &amp;YouTube Page</source>
-        <translation>Obre la pàgina de &amp;YouTube</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="355"/>
-        <source>Copy the YouTube &amp;Link</source>
-        <translation>Copia l&apos;&amp;enllaç de YouTube</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="362"/>
-        <source>Copy the Video Stream &amp;URL</source>
-        <translation>Copia el &amp;URL del flux de vídeo</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="369"/>
-        <source>Find Video &amp;Parts</source>
-        <translation>Troba &amp;parts de vídeo</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="397"/>
-        <source>&amp;Clear Recent Searches</source>
-        <translation>&amp;Neteja les búsquedes recents</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="421"/>
-        <source>Make a &amp;Donation</source>
-        <translation>Fer una &amp;donació</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="483"/>
-        <source>&amp;Manually Start Playing</source>
-        <translation>Reprodueix vídeos &amp;manualment</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="484"/>
-        <source>Manually start playing videos</source>
-        <translation>Comença a reproduir vídeos manualment</translation>
+        <source>&amp;Pause</source>
+        <translation>&amp;Pausa</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="847"/>
-        <source>Choose your content location</source>
-        <translation>Esculliu la ubicació del vostre contingut</translation>
+        <source>Pause playback</source>
+        <translation>Pausa la reproducció</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="314"/>
-        <location filename="src/mainwindow.cpp" line="1142"/>
-        <location filename="src/mainwindow.cpp" line="1150"/>
-        <source>&amp;Play</source>
-        <translation>&amp;Reprodueix</translation>
+        <source>&amp;Loading...</source>
+        <translation>&amp;Carregant...</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="315"/>
-        <location filename="src/mainwindow.cpp" line="1143"/>
-        <location filename="src/mainwindow.cpp" line="1151"/>
-        <source>Resume playback</source>
-        <translation>Continua la reproducció</translation>
+        <source>Leave &amp;Full Screen</source>
+        <translation>Abandona la Pantalla &amp;Completa</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1437"/>
         <source>Remaining time: %1</source>
         <translation>Temps restant: %1</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1528"/>
         <source>Volume at %1%</source>
         <translation>Volum al %1%</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1534"/>
         <source>Volume is muted</source>
         <translation>El volum està silenciat</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1537"/>
         <source>Volume is unmuted</source>
         <translation>El volum no està silenciat</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1548"/>
         <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="1595"/>
         <source>Your privacy is now safe</source>
         <translation>La vostra privacitat ara és segura</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1610"/>
         <source>Downloads complete</source>
         <translation>Baixades completes</translation>
     </message>
+    <message>
+        <source>%1 version %2 is now available.</source>
+        <translation>%1 versió %2 ja està disponible.</translation>
+    </message>
+    <message>
+        <source>Remind me later</source>
+        <translation>Recorda-m&apos;ho més tard</translation>
+    </message>
+    <message>
+        <source>Update</source>
+        <translation>Actualitza</translation>
+    </message>
 </context>
 <context>
     <name>MediaView</name>
     <message>
-        <location filename="src/mediaview.cpp" line="702"/>
         <source>You can now paste the YouTube link into another application</source>
         <translation>Ja podeu enganxar l&apos;enllaç de YouTube en una altra aplicació</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="710"/>
         <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="711"/>
         <source>The link will be valid only for a limited time.</source>
         <translation>L&apos;enllaç només serà vàlid durant un temps limitat.</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="800"/>
         <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="801"/>
         <source>It allows you to test the application and see if it works for you.</source>
         <translation>Us permet probar l&apos;aplicació i veure si us va bé.</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="833"/>
+        <source>Get the full version</source>
+        <translation>Aconseguiu la versió completa</translation>
+    </message>
+    <message>
         <source>Continue</source>
         <translation>Continua</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="988"/>
+        <source>Downloading %1</source>
+        <translation>Baixant %1</translation>
+    </message>
+    <message>
         <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="1001"/>
         <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="1003"/>
         <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="1096"/>
         <source>Sent from %1</source>
         <translation>Enviat des de %1</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="1128"/>
         <source>Unsubscribe from %1</source>
         <translation>Cancel·la la subscripció a %1</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="1132"/>
         <source>Subscribe to %1</source>
         <translation>Subscriu-me a %1</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="1166"/>
         <source>Unsubscribed from %1</source>
-        <translation type="unfinished"/>
+        <translation>De-subscrit de %1 </translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="1169"/>
         <source>Subscribed to %1</source>
-        <translation type="unfinished"/>
-    </message>
-    <message>
-        <location filename="src/mediaview.cpp" line="808"/>
-        <source>Get the full version</source>
-        <translation>Aconseguiu la versió completa</translation>
-    </message>
-    <message>
-        <location filename="src/mediaview.cpp" line="847"/>
-        <source>Downloading %1</source>
-        <translation>Baixant %1</translation>
+        <translation>Subscrit a %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>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>%1 %2 està disponible. Tu tens %3.</translation>
     </message>
     <message>
-        <location filename="local/src/updatedialog.cpp" line="33"/>
         <source>Would you like to download it now?</source>
         <translation>T&apos;agradaria descarregar-ho ara?</translation>
     </message>
     <message>
-        <location filename="local/src/updatedialog.cpp" line="39"/>
         <source>Skip This Version</source>
         <translation>Omet aquesta versió</translation>
     </message>
     <message>
-        <location filename="local/src/updatedialog.cpp" line="43"/>
         <source>Remind Me Later</source>
         <translation>Recorda-m&apos;ho després</translation>
     </message>
     <message>
-        <location filename="local/src/updatedialog.cpp" line="47"/>
         <source>Install Update</source>
         <translation>Instal·la l&apos;actualització</translation>
     </message>
 <context>
     <name>PasteLineEdit</name>
     <message>
-        <location filename="local/src/pastelineedit.cpp" line="6"/>
         <source>Paste</source>
         <translation>Enganxa</translation>
     </message>
 <context>
     <name>PlaylistItemDelegate</name>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="209"/>
         <source>%1 views</source>
         <translation>%1 visualitzacions</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="309"/>
         <source>%1 of %2 (%3) — %4</source>
         <translation>%1 de %2 (%3) — %4</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="316"/>
         <source>Preparing</source>
         <translation>Preparant</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="318"/>
         <source>Failed</source>
         <translation>Fallit</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="320"/>
         <source>Completed</source>
         <translation>Completat</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="322"/>
         <source>Stopped</source>
         <translation>Aturat</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="358"/>
         <source>Stop downloading</source>
         <translation>Atura la baixada</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="368"/>
         <source>Show in %1</source>
         <translation>Mostra en %1</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="370"/>
         <source>Open parent folder</source>
         <translation>Obre el directori superior</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="379"/>
         <source>Restart downloading</source>
         <translation>Recomença la baixada</translation>
     </message>
 <context>
     <name>PlaylistModel</name>
     <message>
-        <location filename="src/playlistmodel.cpp" line="70"/>
         <source>Searching...</source>
         <translation>Cercant...</translation>
     </message>
     <message>
-        <location filename="src/playlistmodel.cpp" line="71"/>
         <source>Show %1 More</source>
         <translation>Mostra %1 Més</translation>
     </message>
     <message>
-        <location filename="src/playlistmodel.cpp" line="72"/>
         <source>No videos</source>
         <translation>Cap vídeo</translation>
     </message>
     <message>
-        <location filename="src/playlistmodel.cpp" line="73"/>
         <source>No more videos</source>
         <translation>Cap més vídeo</translation>
     </message>
 <context>
     <name>RefineSearchWidget</name>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="49"/>
         <source>Sort by</source>
         <translation>Ordena per</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="53"/>
         <source>Relevance</source>
         <translation>Rellevància</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="54"/>
-        <location filename="src/refinesearchwidget.cpp" line="69"/>
         <source>Date</source>
         <translation>Data</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="55"/>
         <source>View Count</source>
         <translation>Nombre de vistes</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="56"/>
         <source>Rating</source>
         <translation>Qualificació</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="73"/>
         <source>Anytime</source>
         <translation>Qualsevol data</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="74"/>
         <source>Today</source>
         <translation>Avui</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="75"/>
         <source>7 Days</source>
         <translation>7 dies</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="76"/>
         <source>30 Days</source>
         <translation>30 dies</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="89"/>
         <source>Duration</source>
         <translation>Duració</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="93"/>
-        <location filename="src/refinesearchwidget.cpp" line="119"/>
         <source>All</source>
         <translation>Tot</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="94"/>
         <source>Short</source>
         <translation>Curt</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="95"/>
         <source>Medium</source>
         <translation>Mig</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="96"/>
         <source>Long</source>
         <translation>Llarg</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="99"/>
         <source>Less than 4 minutes</source>
         <translation>Menys de 4 minuts</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="100"/>
         <source>Between 4 and 20 minutes</source>
         <translation>Entre 4 i 20 minuts</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="101"/>
         <source>Longer than 20 minutes</source>
         <translation>Més de 20 minuts</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="115"/>
         <source>Quality</source>
         <translation>Qualitat</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="120"/>
         <source>High Definition</source>
         <translation>Alta Definició</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="123"/>
         <source>720p or higher</source>
         <translation>720p o major</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="136"/>
         <source>Done</source>
         <translation>Fet</translation>
     </message>
 <context>
     <name>RegionsView</name>
     <message>
-        <location filename="src/regionsview.cpp" line="39"/>
         <source>Done</source>
         <translation>Fet</translation>
     </message>
 <context>
     <name>SearchLineEdit</name>
     <message>
-        <location filename="src/searchlineedit.cpp" line="55"/>
         <source>Search</source>
         <translation>Cerca</translation>
     </message>
 <context>
     <name>SearchView</name>
     <message>
-        <location filename="src/searchview.cpp" line="83"/>
         <source>Welcome to &lt;a href=&apos;%1&apos;&gt;%2&lt;/a&gt;,</source>
         <translation>Benvinguts al &lt;a href=&apos;%1&apos;&gt;%2&lt;/a&gt;,</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="200"/>
-        <source>Get the full version</source>
-        <translation>Aconsegueix la versió completa</translation>
-    </message>
-    <message>
-        <location filename="src/searchview.cpp" line="110"/>
         <source>Enter</source>
         <extracomment>&quot;Enter&quot;, as in &quot;type&quot;. The whole phrase says: &quot;Enter a keyword to start watching videos&quot;</extracomment>
         <translation>Introdueix</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="117"/>
         <source>a keyword</source>
         <translation>una paraula</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="118"/>
         <source>a channel</source>
         <translation>un canal</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="125"/>
         <source>to start watching videos.</source>
         <translation>per comencar a veure vídeos.</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="156"/>
         <source>Watch</source>
         <translation>Veure</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="174"/>
         <source>Recent keywords</source>
         <translation>Búsquedes recents</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="186"/>
         <source>Recent channels</source>
         <translation>Canals recents</translation>
     </message>
+    <message>
+        <source>Get the full version</source>
+        <translation>Aconsegueix la versió completa</translation>
+    </message>
 </context>
 <context>
     <name>SidebarHeader</name>
     <message>
-        <location filename="src/sidebarheader.cpp" line="38"/>
-        <location filename="src/sidebarheader.cpp" line="45"/>
         <source>&amp;Back</source>
         <translation>&amp;Enrere</translation>
     </message>
     <message>
-        <location filename="src/sidebarheader.cpp" line="76"/>
         <source>Forward to %1</source>
         <translation>Avança a %1</translation>
     </message>
     <message>
-        <location filename="src/sidebarheader.cpp" line="89"/>
         <source>Back to %1</source>
         <translation>Retrocedeix a %1</translation>
     </message>
 <context>
     <name>SidebarWidget</name>
     <message>
-        <location filename="src/sidebarwidget.cpp" line="68"/>
         <source>Refine Search</source>
         <translation>Afina la Cerca</translation>
     </message>
     <message>
-        <location filename="src/sidebarwidget.cpp" line="167"/>
         <source>Did you mean: %1</source>
         <translation>Volieu dir: %1</translation>
     </message>
 <context>
     <name>SnapshotSettings</name>
     <message>
-        <location filename="src/snapshotsettings.cpp" line="47"/>
         <source>Change location...</source>
         <translation>Canvia la ubicació...</translation>
     </message>
     <message>
-        <location filename="src/snapshotsettings.cpp" line="64"/>
         <source>Snapshot saved to %1</source>
         <translation>Instantània desada a %1</translation>
     </message>
     <message>
-        <location filename="src/snapshotsettings.cpp" line="117"/>
         <source>Snapshots location changed.</source>
         <translation>La ubicació de les instantànies ha canviat. </translation>
     </message>
 <context>
     <name>StandardFeedsView</name>
     <message>
-        <location filename="src/standardfeedsview.cpp" line="107"/>
         <source>Most Popular</source>
         <translation>Més popular</translation>
     </message>
 </context>
+<context>
+    <name>UpdateDialog</name>
+    <message>
+        <source>Downloading update...</source>
+        <translation>Descarregant actualitzacions...</translation>
+    </message>
+    <message>
+        <source>Downloading %1...</source>
+        <translation>Descarregant %1...</translation>
+    </message>
+</context>
 <context>
     <name>Video</name>
     <message>
-        <location filename="src/video.cpp" line="287"/>
         <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="292"/>
-        <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="28"/>
         <source>Algeria</source>
         <translation>Algèria</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="29"/>
         <source>Argentina</source>
         <translation>Argentina</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="30"/>
         <source>Australia</source>
         <translation>Austràlia</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="31"/>
         <source>Belgium</source>
         <translation>Bèlgica</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="32"/>
         <source>Brazil</source>
         <translation>Brazil</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="33"/>
         <source>Canada</source>
         <translation>Canadà</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="34"/>
         <source>Chile</source>
         <translation>Xile</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="35"/>
         <source>Colombia</source>
         <translation>Colòmbia</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="36"/>
         <source>Czech Republic</source>
         <translation>República Txeca</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="37"/>
         <source>Egypt</source>
         <translation>Egipte</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="38"/>
         <source>France</source>
         <translation>França</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="39"/>
         <source>Germany</source>
         <translation>Alemanya</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="40"/>
         <source>Ghana</source>
         <translation>Ghana</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="41"/>
         <source>Greece</source>
         <translation>Grècia</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="42"/>
         <source>Hong Kong</source>
         <translation>Hong Kong</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="43"/>
         <source>Hungary</source>
         <translation>Hongria</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="44"/>
         <source>India</source>
         <translation>Índia</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="45"/>
         <source>Indonesia</source>
         <translation>Indonèsia</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="46"/>
         <source>Ireland</source>
         <translation>Irlanda</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="47"/>
         <source>Israel</source>
         <translation>Israel</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="48"/>
         <source>Italy</source>
         <translation>Itàlia</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="49"/>
         <source>Japan</source>
         <translation>Japó</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="50"/>
         <source>Jordan</source>
         <translation>Jordània</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="51"/>
         <source>Kenya</source>
         <translation>Kenya</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="52"/>
         <source>Malaysia</source>
         <translation>Malàisia</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="53"/>
         <source>Mexico</source>
         <translation>Mèxic</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="54"/>
         <source>Morocco</source>
         <translation>Marroc</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="55"/>
         <source>Netherlands</source>
         <translation>Holanda</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="56"/>
         <source>New Zealand</source>
         <translation>Nova Zelanda</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="57"/>
         <source>Nigeria</source>
         <translation>Nigèria</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="58"/>
         <source>Peru</source>
         <translation>Perú</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="59"/>
         <source>Philippines</source>
         <translation>Filipines</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="60"/>
         <source>Poland</source>
         <translation>Polònia</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="61"/>
         <source>Russia</source>
         <translation>Rússia</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="62"/>
         <source>Saudi Arabia</source>
         <translation>Aràbia Saudita</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="63"/>
         <source>Singapore</source>
         <translation>Singapur</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="64"/>
         <source>South Africa</source>
         <translation>Sud-àfrica</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="65"/>
         <source>South Korea</source>
         <translation>Corea del Sud</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="66"/>
         <source>Spain</source>
         <translation>Espanya</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="67"/>
         <source>Sweden</source>
         <translation>Suècia</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="68"/>
         <source>Taiwan</source>
         <translation>Taiwan</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="69"/>
         <source>Tunisia</source>
         <translation>Tunísia</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="70"/>
         <source>Turkey</source>
         <translation>Turquia</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="71"/>
         <source>Uganda</source>
         <translation>Uganda</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="72"/>
         <source>United Arab Emirates</source>
         <translation>Emirats Àrabs Units</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="73"/>
         <source>United Kingdom</source>
         <translation>Regne Unit</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="74"/>
         <source>Yemen</source>
         <translation>Yemen</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="148"/>
         <source>Worldwide</source>
         <translation>Global</translation>
     </message>
index 781667a2fa5263f0707d164e05c41d5eb32c3531..11f3677a4440077b6fbcb2775bfaf2e3ab3e7ead 100644 (file)
@@ -2,67 +2,42 @@
 <context>
     <name>AboutView</name>
     <message>
-        <location filename="src/aboutview.cpp" line="58"/>
         <source>There&apos;s life outside the browser!</source>
         <translation>Hi ha vida fora del navegador!</translation>
     </message>
     <message>
-        <location filename="src/aboutview.cpp" line="59"/>
         <source>Version %1</source>
         <translation>Versió %1</translation>
     </message>
     <message>
-        <location filename="src/aboutview.cpp" line="64"/>
         <source>Licensed to: %1</source>
         <translation>Llicenciat a: %1</translation>
     </message>
     <message>
-        <location filename="src/aboutview.cpp" line="68"/>
         <source>%1 is Free Software but its development takes precious time.</source>
         <translation>%1 és programari lliure, però el seu desenvolupament pren un temps preciós.</translation>
     </message>
     <message>
-        <location filename="src/aboutview.cpp" line="69"/>
         <source>Please &lt;a href=&apos;%1&apos;&gt;donate&lt;/a&gt; to support the continued development of %2.</source>
         <translation>Siusplau &lt;a href=&apos;%1&apos;&gt;dóna&lt;/a&gt; per ajudar al desenvolupament continuat del %2.</translation>
     </message>
     <message>
-        <location filename="src/aboutview.cpp" line="73"/>
-        <source>You may want to try my other apps as well:</source>
-        <translation>És possible que també vulgueu provar altres aplicacions meves:</translation>
-    </message>
-    <message>
-        <location filename="src/aboutview.cpp" line="76"/>
-        <source>%1, a YouTube music player</source>
-        <translation>%1, un reproductor de música de YouTube</translation>
-    </message>
-    <message>
-        <location filename="src/aboutview.cpp" line="80"/>
-        <source>%1, a music player</source>
-        <translation>%1, un reproductor de música</translation>
-    </message>
-    <message>
-        <location filename="src/aboutview.cpp" line="86"/>
         <source>Translate %1 to your native language using %2</source>
         <translation>Traduïu el %1 al vostre idioma natal utilitzant %2</translation>
     </message>
     <message>
-        <location filename="src/aboutview.cpp" line="91"/>
         <source>Icon designed by %1.</source>
         <translation>Icona dissenyada per %1.</translation>
     </message>
     <message>
-        <location filename="src/aboutview.cpp" line="95"/>
         <source>Released under the &lt;a href=&apos;%1&apos;&gt;GNU General Public License&lt;/a&gt;</source>
         <translation>Alliberat sota la &lt;a href=&apos;%1&apos;&gt;Llicència Pública General de GNU&lt;/a&gt;</translation>
     </message>
     <message>
-        <location filename="src/aboutview.cpp" line="110"/>
         <source>&amp;Close</source>
         <translation>&amp;Tanca</translation>
     </message>
     <message>
-        <location filename="src/aboutview.h" line="40"/>
         <source>About</source>
         <translation>Quant a</translation>
     </message>
 <context>
     <name>ActivationDialog</name>
     <message>
-        <location filename="local/src/activationdialog.cpp" line="17"/>
         <source>Enter your License Details</source>
         <translation>Entra els detalls de la teva llicència</translation>
     </message>
     <message>
-        <location filename="local/src/activationdialog.cpp" line="29"/>
         <source>&amp;Email:</source>
         <translation>&amp;Email:</translation>
     </message>
     <message>
-        <location filename="local/src/activationdialog.cpp" line="35"/>
         <source>&amp;Code:</source>
         <translation>&amp;Codi:</translation>
     </message>
 <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 watch videos without interruptions.</source>
-        <oldsource>The full version allows you to download videos longer than %1 minutes and to watch videos without interruptions.</oldsource>
         <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>Sense llicència, l&apos;aplicació caducarà en %1 dies</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>Comprant la versió completa, també donarà 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>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>AppWidget</name>
+    <message>
+        <source>Download</source>
+        <translation>Descarrega</translation>
+    </message>
+</context>
 <context>
     <name>ChannelAggregator</name>
     <message>
-        <location filename="src/channelaggregator.cpp" line="183"/>
         <source>By %1</source>
         <translation>Per %1</translation>
     </message>
     <message numerus="yes">
-        <location filename="src/channelaggregator.cpp" line="185"/>
         <source>You have %n new video(s)</source>
         <translation type="unfinished"><numerusform></numerusform><numerusform></numerusform></translation>
     </message>
 <context>
     <name>ChannelItemDelegate</name>
     <message>
-        <location filename="src/channelitemdelegate.cpp" line="67"/>
         <source>All Videos</source>
         <translation>Tots els vídeos</translation>
     </message>
     <message>
-        <location filename="src/channelitemdelegate.cpp" line="85"/>
         <source>Unwatched Videos</source>
         <translation>Vídeos no vists</translation>
     </message>
 <context>
     <name>ChannelView</name>
     <message>
-        <location filename="src/channelview.cpp" line="151"/>
-        <source>Mark all as watched</source>
-        <translation>Marca-ho tot vist</translation>
-    </message>
-    <message>
-        <location filename="src/channelview.cpp" line="159"/>
-        <source>Show Updated</source>
-        <translation>Mostra actualitzats</translation>
-    </message>
-    <message>
-        <location filename="src/channelview.cpp" line="103"/>
         <source>Name</source>
         <translation>Nom</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="110"/>
         <source>Last Updated</source>
         <translation>Últim actualitzat</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="117"/>
         <source>Last Added</source>
         <translation>Últim afegit</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="124"/>
         <source>Last Watched</source>
         <translation>Últim vist</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="131"/>
         <source>Most Watched</source>
         <translation>Més vistos</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="139"/>
         <source>Sort by</source>
         <translation>Ordena per</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="222"/>
+        <source>Mark all as watched</source>
+        <translation>Marca-ho tot vist</translation>
+    </message>
+    <message>
+        <source>Show Updated</source>
+        <translation>Mostra actualitzats</translation>
+    </message>
+    <message>
         <source>All Videos</source>
         <translation>Tots els vídeos</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="226"/>
         <source>Unwatched Videos</source>
         <translation>Vídeos no vistos</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="244"/>
         <source>Mark as Watched</source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="257"/>
         <source>Unsubscribe</source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="270"/>
         <source>There are no updated subscriptions at this time.</source>
         <translation>No hi han subscripcions actualitzades.</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="272"/>
         <source>You have no subscriptions. Use the star symbol to subscribe to channels.</source>
         <translation>No teniu subscripcions. Feu servir el símbol de l&apos;estrella per subscríure-us als canals.</translation>
     </message>
 <context>
     <name>ClearButton</name>
     <message>
-        <location filename="src/exlineedit.cpp" line="6"/>
         <source>Clear</source>
         <translation>Neteja</translation>
     </message>
 <context>
     <name>DataUtils</name>
     <message>
-        <location filename="src/datautils.cpp" line="88"/>
         <source>Just now</source>
         <translation type="unfinished"/>
     </message>
     <message numerus="yes">
-        <location filename="src/datautils.cpp" line="90"/>
-        <source>%n minute(s) ago</source>
-        <translation type="unfinished"><numerusform></numerusform><numerusform></numerusform></translation>
-    </message>
-    <message numerus="yes">
-        <location filename="src/datautils.cpp" line="92"/>
         <source>%n hour(s) ago</source>
         <translation type="unfinished"><numerusform></numerusform><numerusform></numerusform></translation>
     </message>
     <message numerus="yes">
-        <location filename="src/datautils.cpp" line="94"/>
         <source>%n day(s) ago</source>
         <translation type="unfinished"><numerusform></numerusform><numerusform></numerusform></translation>
     </message>
     <message numerus="yes">
-        <location filename="src/datautils.cpp" line="96"/>
         <source>%n weeks(s) ago</source>
         <translation type="unfinished"><numerusform></numerusform><numerusform></numerusform></translation>
     </message>
     <message numerus="yes">
-        <location filename="src/datautils.cpp" line="98"/>
         <source>%n month(s) ago</source>
         <translation type="unfinished"><numerusform></numerusform><numerusform></numerusform></translation>
     </message>
 <context>
     <name>DownloadItem</name>
     <message>
-        <location filename="src/downloaditem.cpp" line="406"/>
         <source>bytes</source>
         <translation>bytes</translation>
     </message>
     <message>
-        <location filename="src/downloaditem.cpp" line="409"/>
         <source>KB</source>
         <translation>KB</translation>
     </message>
     <message>
-        <location filename="src/downloaditem.cpp" line="412"/>
         <source>MB</source>
         <translation>MB</translation>
     </message>
     <message>
-        <location filename="src/downloaditem.cpp" line="421"/>
         <source>bytes/sec</source>
         <translation>bytes/s</translation>
     </message>
     <message>
-        <location filename="src/downloaditem.cpp" line="424"/>
         <source>KB/sec</source>
         <translation>KB/s</translation>
     </message>
     <message>
-        <location filename="src/downloaditem.cpp" line="427"/>
         <source>MB/sec</source>
         <translation>MB/s</translation>
     </message>
     <message>
-        <location filename="src/downloaditem.cpp" line="433"/>
         <source>seconds</source>
         <translation>segons</translation>
     </message>
     <message>
-        <location filename="src/downloaditem.cpp" line="436"/>
         <source>minutes</source>
         <translation>minuts</translation>
     </message>
     <message>
-        <location filename="src/downloaditem.cpp" line="439"/>
         <source>%4 %5 remaining</source>
         <translation>%4 %5 restant</translation>
     </message>
 <context>
     <name>DownloadManager</name>
     <message>
-        <location filename="src/downloadmanager.cpp" line="77"/>
         <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="79"/>
         <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="85"/>
         <source>Continue</source>
         <translation>Continua</translation>
     </message>
     <message>
-        <location filename="src/downloadmanager.cpp" line="86"/>
         <source>Get the full version</source>
         <translation>Aconsegueix la versió completa</translation>
     </message>
     <message>
-        <location filename="src/downloadmanager.cpp" line="157"/>
         <source>%1 downloaded in %2</source>
         <translation>%1 descarregat en %2</translation>
     </message>
     <message>
-        <location filename="src/downloadmanager.cpp" line="160"/>
         <source>Download finished</source>
         <translation>Descàrrega completada</translation>
     </message>
     <message numerus="yes">
-        <location filename="src/downloadmanager.cpp" line="165"/>
         <source>%n Download(s)</source>
         <translation type="unfinished"><numerusform></numerusform><numerusform></numerusform></translation>
     </message>
 <context>
     <name>DownloadSettings</name>
     <message>
-        <location filename="src/downloadsettings.cpp" line="36"/>
         <source>Change location...</source>
         <translation>Canvia la ubicació...</translation>
     </message>
     <message>
-        <location filename="src/downloadsettings.cpp" line="69"/>
         <source>Choose the download location</source>
         <translation>Escull la ubicació de les baixades</translation>
     </message>
     <message>
-        <location filename="src/downloadsettings.cpp" line="81"/>
         <source>Download location changed.</source>
         <translation>Ubicació de baixades canviada.</translation>
     </message>
     <message>
-        <location filename="src/downloadsettings.cpp" line="83"/>
         <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="94"/>
         <source>Downloading to: %1</source>
         <translation>Baixant a: %1</translation>
     </message>
 <context>
     <name>DownloadView</name>
     <message>
-        <location filename="src/downloadview.cpp" line="38"/>
-        <location filename="src/downloadview.h" line="45"/>
         <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>Descarregant actualitzacions...</translation>
-    </message>
-</context>
 <context>
     <name>Extra</name>
     <message>
-        <location filename="local/src/extra.cpp" line="251"/>
         <source>The executable file has been tempered with, maybe by a virus.</source>
-        <translation type="unfinished"/>
+        <translation>El fitxer executable ha estat manipulat, potser per un virus.</translation>
     </message>
     <message>
-        <location filename="local/src/extra.cpp" line="252"/>
         <source>%1 will not run. Try installing again.</source>
-        <translation type="unfinished"/>
+        <translation>%1 no funcionarà. Proveu tornar a instal·lar.</translation>
     </message>
     <message>
-        <location filename="local/src/extra.cpp" line="253"/>
         <source>Quit</source>
-        <translation type="unfinished"/>
+        <translation>Surt</translation>
     </message>
     <message>
-        <location filename="local/src/extra.cpp" line="254"/>
         <source>Reinstall</source>
-        <translation type="unfinished"/>
+        <translation>Reinstal·la</translation>
     </message>
 </context>
 <context>
     <name>GlobalShortcuts</name>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="36"/>
         <source>Play</source>
         <translation>Reprodueix</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="37"/>
         <source>Pause</source>
         <translation>Posa en pausa</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="38"/>
         <source>Play/Pause</source>
         <translation>Reprodueix/posa en pausa</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="39"/>
         <source>Stop</source>
         <translation>Atura</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="40"/>
         <source>Stop playing after current track</source>
         <translation>Atura en acabar la peça actual</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="41"/>
         <source>Next track</source>
         <translation>Peça següent</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="42"/>
         <source>Previous track</source>
         <translation>Peça prèvia</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="43"/>
         <source>Increase volume</source>
         <translation>Augmenta el volum</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="44"/>
         <source>Decrease volume</source>
         <translation>Disminuex el volum</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="45"/>
         <source>Mute</source>
         <translation>Silencia</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="46"/>
         <source>Seek forward</source>
         <translation>Cerca endavant</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="47"/>
         <source>Seek backward</source>
         <translation>Cerca enrere</translation>
     </message>
 <context>
     <name>HomeView</name>
     <message>
-        <location filename="src/homeview.cpp" line="58"/>
         <source>Search</source>
         <translation>Cerca</translation>
     </message>
     <message>
-        <location filename="src/homeview.cpp" line="60"/>
         <source>Find videos and channels by keyword</source>
         <translation>Troba vídeos i canals per paraula clau</translation>
     </message>
     <message>
-        <location filename="src/homeview.cpp" line="65"/>
         <source>Browse</source>
         <translation>Explora</translation>
     </message>
     <message>
-        <location filename="src/homeview.cpp" line="67"/>
         <source>Browse videos by category</source>
         <translation>Explora vídeos per categoria</translation>
     </message>
     <message>
-        <location filename="src/homeview.cpp" line="71"/>
         <source>Subscriptions</source>
         <translation>Subscripcions</translation>
     </message>
     <message>
-        <location filename="src/homeview.cpp" line="73"/>
         <source>Channel subscriptions</source>
         <translation>Subscripcions de canal</translation>
     </message>
     <message>
-        <location filename="src/homeview.h" line="44"/>
         <source>Make yourself comfortable</source>
         <translation>Poseu-vos còmodes</translation>
     </message>
 <context>
     <name>LoadingWidget</name>
     <message>
-        <location filename="src/loadingwidget.cpp" line="125"/>
         <source>Error</source>
         <translation>Error</translation>
     </message>
 <context>
     <name>MainWindow</name>
     <message>
-        <location filename="src/mainwindow.cpp" line="291"/>
+        <source>&amp;Window</source>
+        <translation>&amp;Finestra</translation>
+    </message>
+    <message>
+        <source>&amp;Minimize</source>
+        <translation>&amp;Minimitza</translation>
+    </message>
+    <message>
         <source>&amp;Stop</source>
         <translation>&amp;Atura</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="292"/>
         <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="307"/>
+        <source>P&amp;revious</source>
+        <translation>P&amp;revi</translation>
+    </message>
+    <message>
+        <source>Go back to the previous track</source>
+        <translation>Torna a la pista anterior</translation>
+    </message>
+    <message>
         <source>S&amp;kip</source>
         <translation>&amp;Salta</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="308"/>
         <source>Skip to the next video</source>
         <translation>Salta al vídeo següent</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1134"/>
-        <source>&amp;Pause</source>
-        <translation>&amp;Pausa</translation>
+        <source>&amp;Play</source>
+        <translation>&amp;Reprodueix</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1135"/>
-        <source>Pause playback</source>
-        <translation>Pausa la reproducció</translation>
+        <source>Resume playback</source>
+        <translation>Continua la reproducció</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="321"/>
         <source>&amp;Full Screen</source>
         <translation>Pantalla &amp;completa</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="322"/>
         <source>Go full screen</source>
         <translation>Passa a pantalla completa</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="336"/>
+        <source>&amp;Compact Mode</source>
+        <translation>&amp;Mode compacte</translation>
+    </message>
+    <message>
         <source>Hide the playlist and the toolbar</source>
         <translation>Amaga la llista de reproducció i la barra d&apos;eines</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="349"/>
+        <source>Open the &amp;YouTube Page</source>
+        <translation>Obre la pàgina de &amp;YouTube</translation>
+    </message>
+    <message>
         <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="356"/>
+        <source>Copy the YouTube &amp;Link</source>
+        <translation>Copia l&apos;&amp;enllaç de YouTube</translation>
+    </message>
+    <message>
         <source>Copy the current video YouTube link to the clipboard</source>
         <translation>Copia l&apos;enllaç del vídeo actual del YouTube al porta-retalls</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="363"/>
+        <source>Copy the Video Stream &amp;URL</source>
+        <translation>Copia el &amp;URL del flux de vídeo</translation>
+    </message>
+    <message>
         <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="370"/>
+        <source>Find Video &amp;Parts</source>
+        <translation>Troba &amp;parts de vídeo</translation>
+    </message>
+    <message>
         <source>Find other video parts hopefully in the right order</source>
         <translation>Troba altres parts del vídeo, amb sort en l&apos;ordre correcte</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="376"/>
         <source>&amp;Remove</source>
         <translation>&amp;Elimina</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="377"/>
         <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="383"/>
         <source>Move &amp;Up</source>
         <translation>Mou &amp;amunt</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="384"/>
         <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="390"/>
         <source>Move &amp;Down</source>
         <translation>Mou a&amp;vall</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="391"/>
         <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="402"/>
+        <source>&amp;Clear Recent Searches</source>
+        <translation>&amp;Neteja les búsquedes recents</translation>
+    </message>
+    <message>
         <source>Clear the search history. Cannot be undone.</source>
         <translation>Neteja l&apos;historial de búsquedes. No es pot desfer.</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="407"/>
         <source>&amp;Quit</source>
         <translation>&amp;Surt</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="410"/>
         <source>Bye</source>
         <translation>Adéu</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="414"/>
         <source>&amp;Website</source>
         <translation>Pàgina &amp;web</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="416"/>
         <source>%1 on the Web</source>
         <translation>%1 a la xarxa</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="422"/>
+        <source>Make a &amp;Donation</source>
+        <translation>Fer una &amp;donació</translation>
+    </message>
+    <message>
         <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="427"/>
         <source>&amp;About</source>
         <translation>&amp;Quant a</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="429"/>
         <source>Info about %1</source>
         <translation>Info sobre %1</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="437"/>
         <source>Search</source>
         <translation>Cerca</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="456"/>
         <source>Mute volume</source>
         <translation>Silencia el volum</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="490"/>
-        <location filename="src/mainwindow.cpp" line="1609"/>
+        <source>&amp;Manually Start Playing</source>
+        <translation>Reprodueix vídeos &amp;manualment</translation>
+    </message>
+    <message>
+        <source>Manually start playing videos</source>
+        <translation>Comença a reproduir vídeos manualment</translation>
+    </message>
+    <message>
         <source>&amp;Downloads</source>
         <translation>&amp;Baixades</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="491"/>
         <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="499"/>
         <source>&amp;Download</source>
         <translation>&amp;Baixa</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="500"/>
         <source>Download the current video</source>
         <translation>Baixa el vídeo actual</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="510"/>
         <source>Take &amp;Snapshot</source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="517"/>
         <source>&amp;Subscribe to Channel</source>
         <translation>&amp;Subscriu al canal</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="525"/>
         <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="545"/>
         <source>&amp;Email</source>
         <translation>&amp;Email</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="546"/>
         <source>Email</source>
         <translation>Correu electrònic</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="551"/>
         <source>&amp;Close</source>
         <translation>&amp;Tanca</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="561"/>
         <source>&amp;Float on Top</source>
         <translation>Manté a &amp;sobre</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="566"/>
         <source>&amp;Adjust Window Size</source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="571"/>
         <source>&amp;Stop After This Video</source>
         <translation>&amp;Atura després d&apos;aquest vídeo</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="578"/>
         <source>&amp;Report an Issue...</source>
         <translation>&amp;Informa d&apos;un problema...</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="582"/>
         <source>&amp;Refine Search...</source>
         <translation>&amp;Afina la Cerca...</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="594"/>
         <source>More...</source>
         <translation>Més...</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="597"/>
         <source>&amp;Related Videos</source>
         <translation>Vídeos &amp;Relacionats</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="599"/>
         <source>Watch videos related to the current one</source>
         <translation>Visualitza vídeos relacionats amb l&apos;actual</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="605"/>
         <source>Open in &amp;Browser...</source>
         <translation>Obre al &amp;Navegador...</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="612"/>
-        <source>&amp;Love %1? Rate it!</source>
-        <translation>T&apos;&amp;Agrada %1? Puntua&apos;l!</translation>
+        <source>Restricted Mode</source>
+        <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="633"/>
-        <source>&amp;Application</source>
-        <translation>&amp;Aplicació</translation>
+        <source>Hide videos that may contain inappropriate content</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <source>&amp;Love %1? Rate it!</source>
+        <translation>T&apos;&amp;Agrada %1? Puntua&apos;l!</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="618"/>
         <source>Buy %1...</source>
         <translation>Compra %1...</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="647"/>
+        <source>&amp;Application</source>
+        <translation>&amp;Aplicació</translation>
+    </message>
+    <message>
         <source>&amp;Playback</source>
         <translation>&amp;Reproducció</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="661"/>
         <source>&amp;Playlist</source>
         <translation>&amp;Llista de reproducció</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="670"/>
         <source>&amp;Video</source>
         <translation>&amp;Vídeo</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="686"/>
-        <source>&amp;View</source>
-        <translation>&amp;Vista</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="695"/>
         <source>&amp;Share</source>
         <translation>&amp;Compartir</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="709"/>
+        <source>&amp;View</source>
+        <translation>&amp;Vista</translation>
+    </message>
+    <message>
         <source>&amp;Help</source>
         <translation>A&amp;juda</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="751"/>
         <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="1021"/>
-        <location filename="src/mainwindow.cpp" line="1027"/>
+        <source>Choose your content location</source>
+        <translation>Esculliu la ubicació del vostre contingut</translation>
+    </message>
+    <message>
         <source>Opening %1</source>
         <translation>Obrint %1</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1080"/>
         <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="1081"/>
         <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="1086"/>
         <source>Close and cancel download</source>
         <translation>Tanca i cancel·la la baixada</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1087"/>
         <source>Wait for download to finish</source>
         <translation>Espera a acabar la baixada</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1158"/>
-        <source>&amp;Loading...</source>
-        <translation type="unfinished"/>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="1264"/>
-        <source>Leave &amp;Full Screen</source>
-        <translation>Abandona la Pantalla &amp;Completa</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="1718"/>
-        <source>%1 version %2 is now available.</source>
-        <translation>%1 versió %2 ja està disponible.</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="1722"/>
-        <source>Remind me later</source>
-        <translation>Recorda-m&apos;ho més tard</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="1723"/>
-        <source>Update</source>
-        <translation>Actualitza</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="1127"/>
         <source>Error: %1</source>
         <translation>Error: %1</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="300"/>
-        <source>P&amp;revious</source>
-        <translation>P&amp;revi</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="301"/>
-        <source>Go back to the previous track</source>
-        <translation>Torna a la pista anterior</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="335"/>
-        <source>&amp;Compact Mode</source>
-        <translation>&amp;Mode compacte</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="348"/>
-        <source>Open the &amp;YouTube Page</source>
-        <translation>Obre la pàgina de &amp;YouTube</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="355"/>
-        <source>Copy the YouTube &amp;Link</source>
-        <translation>Copia l&apos;&amp;enllaç de YouTube</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="362"/>
-        <source>Copy the Video Stream &amp;URL</source>
-        <translation>Copia el &amp;URL del flux de vídeo</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="369"/>
-        <source>Find Video &amp;Parts</source>
-        <translation>Troba &amp;parts de vídeo</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="397"/>
-        <source>&amp;Clear Recent Searches</source>
-        <translation>&amp;Neteja les búsquedes recents</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="421"/>
-        <source>Make a &amp;Donation</source>
-        <translation>Fer una &amp;donació</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="483"/>
-        <source>&amp;Manually Start Playing</source>
-        <translation>Reprodueix vídeos &amp;manualment</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="484"/>
-        <source>Manually start playing videos</source>
-        <translation>Comença a reproduir vídeos manualment</translation>
+        <source>&amp;Pause</source>
+        <translation>&amp;Pausa</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="847"/>
-        <source>Choose your content location</source>
-        <translation>Esculliu la ubicació del vostre contingut</translation>
+        <source>Pause playback</source>
+        <translation>Pausa la reproducció</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="314"/>
-        <location filename="src/mainwindow.cpp" line="1142"/>
-        <location filename="src/mainwindow.cpp" line="1150"/>
-        <source>&amp;Play</source>
-        <translation>&amp;Reprodueix</translation>
+        <source>&amp;Loading...</source>
+        <translation>&amp;Carregant...</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="315"/>
-        <location filename="src/mainwindow.cpp" line="1143"/>
-        <location filename="src/mainwindow.cpp" line="1151"/>
-        <source>Resume playback</source>
-        <translation>Continua la reproducció</translation>
+        <source>Leave &amp;Full Screen</source>
+        <translation>Abandona la Pantalla &amp;Completa</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1437"/>
         <source>Remaining time: %1</source>
         <translation>Temps restant: %1</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1528"/>
         <source>Volume at %1%</source>
         <translation>Volum al %1%</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1534"/>
         <source>Volume is muted</source>
         <translation>El volum està silenciat</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1537"/>
         <source>Volume is unmuted</source>
         <translation>El volum no està silenciat</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1548"/>
         <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="1595"/>
         <source>Your privacy is now safe</source>
         <translation>La vostra privacitat ara és segura</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1610"/>
         <source>Downloads complete</source>
         <translation>Baixades completes</translation>
     </message>
+    <message>
+        <source>%1 version %2 is now available.</source>
+        <translation>%1 versió %2 ja està disponible.</translation>
+    </message>
+    <message>
+        <source>Remind me later</source>
+        <translation>Recorda-m&apos;ho més tard</translation>
+    </message>
+    <message>
+        <source>Update</source>
+        <translation>Actualitza</translation>
+    </message>
 </context>
 <context>
     <name>MediaView</name>
     <message>
-        <location filename="src/mediaview.cpp" line="702"/>
         <source>You can now paste the YouTube link into another application</source>
         <translation>Ja podeu enganxar l&apos;enllaç de YouTube en una altra aplicació</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="710"/>
         <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="711"/>
         <source>The link will be valid only for a limited time.</source>
         <translation>L&apos;enllaç només serà vàlid durant un temps limitat.</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="800"/>
         <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="801"/>
         <source>It allows you to test the application and see if it works for you.</source>
         <translation>Us permet probar l&apos;aplicació i veure si us va bé.</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="833"/>
+        <source>Get the full version</source>
+        <translation>Aconseguiu la versió completa</translation>
+    </message>
+    <message>
         <source>Continue</source>
         <translation>Continua</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="988"/>
+        <source>Downloading %1</source>
+        <translation>Baixant %1</translation>
+    </message>
+    <message>
         <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="1001"/>
         <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="1003"/>
         <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="1096"/>
         <source>Sent from %1</source>
         <translation>Enviat des de %1</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="1128"/>
         <source>Unsubscribe from %1</source>
         <translation>Cancel·la la subscripció a %1</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="1132"/>
         <source>Subscribe to %1</source>
         <translation>Subscriu-me a %1</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="1166"/>
         <source>Unsubscribed from %1</source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="1169"/>
         <source>Subscribed to %1</source>
         <translation type="unfinished"/>
     </message>
-    <message>
-        <location filename="src/mediaview.cpp" line="808"/>
-        <source>Get the full version</source>
-        <translation>Aconseguiu la versió completa</translation>
-    </message>
-    <message>
-        <location filename="src/mediaview.cpp" line="847"/>
-        <source>Downloading %1</source>
-        <translation>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>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>%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>T&apos;agradaria descarregar-ho ara?</translation>
     </message>
     <message>
-        <location filename="local/src/updatedialog.cpp" line="39"/>
         <source>Skip This Version</source>
         <translation>Omet aquesta versió</translation>
     </message>
     <message>
-        <location filename="local/src/updatedialog.cpp" line="43"/>
         <source>Remind Me Later</source>
         <translation>Recorda-m&apos;ho després</translation>
     </message>
     <message>
-        <location filename="local/src/updatedialog.cpp" line="47"/>
         <source>Install Update</source>
         <translation>Instal·la Actualització</translation>
     </message>
 <context>
     <name>PasteLineEdit</name>
     <message>
-        <location filename="local/src/pastelineedit.cpp" line="6"/>
         <source>Paste</source>
         <translation>Enganxar</translation>
     </message>
 <context>
     <name>PlaylistItemDelegate</name>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="209"/>
         <source>%1 views</source>
         <translation>%1 visualitzacions</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="309"/>
         <source>%1 of %2 (%3) — %4</source>
         <translation>%1 de %2 (%3) — %4</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="316"/>
         <source>Preparing</source>
         <translation>Preparant</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="318"/>
         <source>Failed</source>
         <translation>Fallit</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="320"/>
         <source>Completed</source>
         <translation>Completat</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="322"/>
         <source>Stopped</source>
         <translation>Aturat</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="358"/>
         <source>Stop downloading</source>
         <translation>Atura la baixada</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="368"/>
         <source>Show in %1</source>
         <translation>Mostra en %1</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="370"/>
         <source>Open parent folder</source>
         <translation>Obre el directori superior</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="379"/>
         <source>Restart downloading</source>
         <translation>Recomença la baixada</translation>
     </message>
 <context>
     <name>PlaylistModel</name>
     <message>
-        <location filename="src/playlistmodel.cpp" line="70"/>
         <source>Searching...</source>
         <translation>Cercant...</translation>
     </message>
     <message>
-        <location filename="src/playlistmodel.cpp" line="71"/>
         <source>Show %1 More</source>
         <translation>Mostra %1 Més</translation>
     </message>
     <message>
-        <location filename="src/playlistmodel.cpp" line="72"/>
         <source>No videos</source>
         <translation>Cap vídeo</translation>
     </message>
     <message>
-        <location filename="src/playlistmodel.cpp" line="73"/>
         <source>No more videos</source>
         <translation>Cap més vídeo</translation>
     </message>
 <context>
     <name>RefineSearchWidget</name>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="49"/>
         <source>Sort by</source>
         <translation>Ordena per</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="53"/>
         <source>Relevance</source>
         <translation>Rellevància</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="54"/>
-        <location filename="src/refinesearchwidget.cpp" line="69"/>
         <source>Date</source>
         <translation>Data</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="55"/>
         <source>View Count</source>
         <translation>Nombre de vistes</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="56"/>
         <source>Rating</source>
         <translation>Qualificació</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="73"/>
         <source>Anytime</source>
         <translation>Qualsevol data</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="74"/>
         <source>Today</source>
         <translation>Avui</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="75"/>
         <source>7 Days</source>
         <translation>7 dies</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="76"/>
         <source>30 Days</source>
         <translation>30 dies</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="89"/>
         <source>Duration</source>
         <translation>Duració</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="93"/>
-        <location filename="src/refinesearchwidget.cpp" line="119"/>
         <source>All</source>
         <translation>Tot</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="94"/>
         <source>Short</source>
         <translation>Curt</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="95"/>
         <source>Medium</source>
         <translation>Mig</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="96"/>
         <source>Long</source>
         <translation>Llarg</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="99"/>
         <source>Less than 4 minutes</source>
         <translation>Menys de 4 minuts</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="100"/>
         <source>Between 4 and 20 minutes</source>
         <translation>Entre 4 i 20 minuts</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="101"/>
         <source>Longer than 20 minutes</source>
         <translation>Més de 20 minuts</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="115"/>
         <source>Quality</source>
         <translation>Qualitat</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="120"/>
         <source>High Definition</source>
         <translation>Alta Definició</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="123"/>
         <source>720p or higher</source>
         <translation>720p o major</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="136"/>
         <source>Done</source>
         <translation>Fet</translation>
     </message>
 <context>
     <name>RegionsView</name>
     <message>
-        <location filename="src/regionsview.cpp" line="39"/>
         <source>Done</source>
         <translation>Fet</translation>
     </message>
 <context>
     <name>SearchLineEdit</name>
     <message>
-        <location filename="src/searchlineedit.cpp" line="55"/>
         <source>Search</source>
         <translation>Cerca</translation>
     </message>
 <context>
     <name>SearchView</name>
     <message>
-        <location filename="src/searchview.cpp" line="83"/>
         <source>Welcome to &lt;a href=&apos;%1&apos;&gt;%2&lt;/a&gt;,</source>
         <translation>Benvinguts al &lt;a href=&apos;%1&apos;&gt;%2&lt;/a&gt;,</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="200"/>
-        <source>Get the full version</source>
-        <translation>Aconsegueix la versió completa</translation>
-    </message>
-    <message>
-        <location filename="src/searchview.cpp" line="110"/>
         <source>Enter</source>
         <extracomment>&quot;Enter&quot;, as in &quot;type&quot;. The whole phrase says: &quot;Enter a keyword to start watching videos&quot;</extracomment>
         <translation>Introdueix</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="117"/>
         <source>a keyword</source>
         <translation>una paraula</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="118"/>
         <source>a channel</source>
         <translation>un canal</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="125"/>
         <source>to start watching videos.</source>
         <translation>per comencar a veure vídeos.</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="156"/>
         <source>Watch</source>
         <translation>Veure</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="174"/>
         <source>Recent keywords</source>
         <translation>Búsquedes recents</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="186"/>
         <source>Recent channels</source>
         <translation>Canals recents</translation>
     </message>
+    <message>
+        <source>Get the full version</source>
+        <translation>Aconsegueix la versió completa</translation>
+    </message>
 </context>
 <context>
     <name>SidebarHeader</name>
     <message>
-        <location filename="src/sidebarheader.cpp" line="38"/>
-        <location filename="src/sidebarheader.cpp" line="45"/>
         <source>&amp;Back</source>
         <translation>&amp;Enrere</translation>
     </message>
     <message>
-        <location filename="src/sidebarheader.cpp" line="76"/>
         <source>Forward to %1</source>
         <translation>Avança a %1</translation>
     </message>
     <message>
-        <location filename="src/sidebarheader.cpp" line="89"/>
         <source>Back to %1</source>
         <translation>Retrocedeix a %1</translation>
     </message>
 <context>
     <name>SidebarWidget</name>
     <message>
-        <location filename="src/sidebarwidget.cpp" line="68"/>
         <source>Refine Search</source>
         <translation>Afina la Cerca</translation>
     </message>
     <message>
-        <location filename="src/sidebarwidget.cpp" line="167"/>
         <source>Did you mean: %1</source>
         <translation>Volieu dir: %1</translation>
     </message>
 <context>
     <name>SnapshotSettings</name>
     <message>
-        <location filename="src/snapshotsettings.cpp" line="47"/>
         <source>Change location...</source>
         <translation>Canvia la ubicació...</translation>
     </message>
     <message>
-        <location filename="src/snapshotsettings.cpp" line="64"/>
         <source>Snapshot saved to %1</source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="src/snapshotsettings.cpp" line="117"/>
         <source>Snapshots location changed.</source>
         <translation type="unfinished"/>
     </message>
 <context>
     <name>StandardFeedsView</name>
     <message>
-        <location filename="src/standardfeedsview.cpp" line="107"/>
         <source>Most Popular</source>
         <translation>Més popular</translation>
     </message>
 </context>
+<context>
+    <name>UpdateDialog</name>
+    <message>
+        <source>Downloading update...</source>
+        <translation>Descarregant actualitzacions...</translation>
+    </message>
+    <message>
+        <source>Downloading %1...</source>
+        <translation>Descarregant %1...</translation>
+    </message>
+</context>
 <context>
     <name>Video</name>
     <message>
-        <location filename="src/video.cpp" line="287"/>
         <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="292"/>
-        <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="28"/>
         <source>Algeria</source>
         <translation>Algèria</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="29"/>
         <source>Argentina</source>
         <translation>Argentina</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="30"/>
         <source>Australia</source>
         <translation>Austràlia</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="31"/>
         <source>Belgium</source>
         <translation>Bèlgica</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="32"/>
         <source>Brazil</source>
         <translation>Brazil</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="33"/>
         <source>Canada</source>
         <translation>Canadà</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="34"/>
         <source>Chile</source>
         <translation>Xile</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="35"/>
         <source>Colombia</source>
         <translation>Colòmbia</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="36"/>
         <source>Czech Republic</source>
         <translation>República Txeca</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="37"/>
         <source>Egypt</source>
         <translation>Egipte</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="38"/>
         <source>France</source>
         <translation>França</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="39"/>
         <source>Germany</source>
         <translation>Alemanya</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="40"/>
         <source>Ghana</source>
         <translation>Ghana</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="41"/>
         <source>Greece</source>
         <translation>Grècia</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="42"/>
         <source>Hong Kong</source>
         <translation>Hong Kong</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="43"/>
         <source>Hungary</source>
         <translation>Hongria</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="44"/>
         <source>India</source>
         <translation>Índia</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="45"/>
         <source>Indonesia</source>
         <translation>Indonèsia</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="46"/>
         <source>Ireland</source>
         <translation>Irlanda</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="47"/>
         <source>Israel</source>
         <translation>Israel</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="48"/>
         <source>Italy</source>
         <translation>Itàlia</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="49"/>
         <source>Japan</source>
         <translation>Japó</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="50"/>
         <source>Jordan</source>
         <translation>Jordània</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="51"/>
         <source>Kenya</source>
         <translation>Kenya</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="52"/>
         <source>Malaysia</source>
         <translation>Malàisia</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="53"/>
         <source>Mexico</source>
         <translation>Mèxic</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="54"/>
         <source>Morocco</source>
         <translation>Marroc</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="55"/>
         <source>Netherlands</source>
         <translation>Holanda</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="56"/>
         <source>New Zealand</source>
         <translation>Nova Zelanda</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="57"/>
         <source>Nigeria</source>
         <translation>Nigèria</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="58"/>
         <source>Peru</source>
         <translation>Perú</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="59"/>
         <source>Philippines</source>
         <translation>Filipines</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="60"/>
         <source>Poland</source>
         <translation>Polònia</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="61"/>
         <source>Russia</source>
         <translation>Rússia</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="62"/>
         <source>Saudi Arabia</source>
         <translation>Aràbia Saudita</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="63"/>
         <source>Singapore</source>
         <translation>Singapur</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="64"/>
         <source>South Africa</source>
         <translation>Sud-àfrica</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="65"/>
         <source>South Korea</source>
         <translation>Corea del Sud</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="66"/>
         <source>Spain</source>
         <translation>Espanya</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="67"/>
         <source>Sweden</source>
         <translation>Suècia</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="68"/>
         <source>Taiwan</source>
         <translation>Taiwan</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="69"/>
         <source>Tunisia</source>
         <translation>Tunísia</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="70"/>
         <source>Turkey</source>
         <translation>Turquia</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="71"/>
         <source>Uganda</source>
         <translation>Uganda</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="72"/>
         <source>United Arab Emirates</source>
         <translation>Emirats Àrabs Units</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="73"/>
         <source>United Kingdom</source>
         <translation>Regne Unit</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="74"/>
         <source>Yemen</source>
         <translation>Yemen</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="148"/>
         <source>Worldwide</source>
         <translation>Global</translation>
     </message>
index 46850404eb8936806953bde58fe0fab226719f87..3af0d90ef2d7149c452dad8c3286b46f286448ae 100644 (file)
@@ -2,67 +2,42 @@
 <context>
     <name>AboutView</name>
     <message>
-        <location filename="src/aboutview.cpp" line="58"/>
         <source>There&apos;s life outside the browser!</source>
         <translation>Život existuje i mimo prohlížeč!</translation>
     </message>
     <message>
-        <location filename="src/aboutview.cpp" line="59"/>
         <source>Version %1</source>
         <translation>Verze %1</translation>
     </message>
     <message>
-        <location filename="src/aboutview.cpp" line="64"/>
         <source>Licensed to: %1</source>
         <translation>Licence k: %1</translation>
     </message>
     <message>
-        <location filename="src/aboutview.cpp" line="68"/>
         <source>%1 is Free Software but its development takes precious time.</source>
         <translation>%1 je svobodný software, ale jeho vývoj stojí drahocenný čas.</translation>
     </message>
     <message>
-        <location filename="src/aboutview.cpp" line="69"/>
         <source>Please &lt;a href=&apos;%1&apos;&gt;donate&lt;/a&gt; to support the continued development of %2.</source>
         <translation>Prosím &lt;a href=&apos;%1&apos;&gt;přispějte&lt;/a&gt; na další vývoj %2.</translation>
     </message>
     <message>
-        <location filename="src/aboutview.cpp" line="73"/>
-        <source>You may want to try my other apps as well:</source>
-        <translation>Je možné, že vás zaujmou i moje ostatní programy:</translation>
-    </message>
-    <message>
-        <location filename="src/aboutview.cpp" line="76"/>
-        <source>%1, a YouTube music player</source>
-        <translation>%1, přehrávač hudby z YouTube</translation>
-    </message>
-    <message>
-        <location filename="src/aboutview.cpp" line="80"/>
-        <source>%1, a music player</source>
-        <translation>%1, hudební přehrávač</translation>
-    </message>
-    <message>
-        <location filename="src/aboutview.cpp" line="86"/>
         <source>Translate %1 to your native language using %2</source>
         <translation>Přeložte %1 do vašeho mateřského jazyka pomocí %2</translation>
     </message>
     <message>
-        <location filename="src/aboutview.cpp" line="91"/>
         <source>Icon designed by %1.</source>
         <translation>Autor ikony: %1.</translation>
     </message>
     <message>
-        <location filename="src/aboutview.cpp" line="95"/>
         <source>Released under the &lt;a href=&apos;%1&apos;&gt;GNU General Public License&lt;/a&gt;</source>
         <translation>Vydáno pod &lt;a href=&apos;%1&apos;&gt;licencí GNU General Public License&lt;/a&gt;</translation>
     </message>
     <message>
-        <location filename="src/aboutview.cpp" line="110"/>
         <source>&amp;Close</source>
         <translation>&amp;Zavřít</translation>
     </message>
     <message>
-        <location filename="src/aboutview.h" line="40"/>
         <source>About</source>
         <translation>O aplikaci</translation>
     </message>
 <context>
     <name>ActivationDialog</name>
     <message>
-        <location filename="local/src/activationdialog.cpp" line="17"/>
         <source>Enter your License Details</source>
         <translation>Vložte detaily vaší licence</translation>
     </message>
     <message>
-        <location filename="local/src/activationdialog.cpp" line="29"/>
         <source>&amp;Email:</source>
         <translation>&amp;Email:</translation>
     </message>
     <message>
-        <location filename="local/src/activationdialog.cpp" line="35"/>
         <source>&amp;Code:</source>
         <translation>&amp;Kód</translation>
     </message>
 <context>
     <name>ActivationView</name>
     <message>
-        <location filename="local/src/activationview.cpp" line="47"/>
         <source>Please license %1</source>
         <translation>Sežeňte si, prosím, licenci %1</translation>
     </message>
     <message>
-        <location filename="local/src/activationview.cpp" line="51"/>
         <source>This demo has expired.</source>
         <translation>Platnost demoverze vypršela.</translation>
     </message>
     <message>
-        <location filename="local/src/activationview.cpp" line="53"/>
         <source>The full version allows you to watch videos without interruptions.</source>
-        <oldsource>The full version allows you to download videos longer than %1 minutes and to watch videos without interruptions.</oldsource>
         <translation>Plná verze umožní sledovat videa bez přerušení.</translation>
     </message>
     <message>
-        <location filename="local/src/activationview.cpp" line="55"/>
         <source>Without a license, the application will expire in %1 days.</source>
         <translation>Bez licence žádost vyprší za %1 dnů</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>Zakoupením plné verze také podpoříte práci, která byla vložená do tvorby %1.</translation>
     </message>
     <message>
-        <location filename="local/src/activationview.cpp" line="70"/>
         <source>Use Demo</source>
         <translation>Použít demoverzi</translation>
     </message>
     <message>
-        <location filename="local/src/activationview.cpp" line="77"/>
         <source>Enter License</source>
         <translation>Vložit licenci</translation>
     </message>
     <message>
-        <location filename="local/src/activationview.cpp" line="85"/>
         <source>Buy License</source>
         <translation>Koupit licenci</translation>
     </message>
 </context>
+<context>
+    <name>AppWidget</name>
+    <message>
+        <source>Download</source>
+        <translation>Stáhnout</translation>
+    </message>
+</context>
 <context>
     <name>ChannelAggregator</name>
     <message>
-        <location filename="src/channelaggregator.cpp" line="183"/>
         <source>By %1</source>
         <translation>Od %1</translation>
     </message>
     <message numerus="yes">
-        <location filename="src/channelaggregator.cpp" line="185"/>
         <source>You have %n new video(s)</source>
         <translation type="unfinished"><numerusform></numerusform><numerusform></numerusform><numerusform></numerusform></translation>
     </message>
 <context>
     <name>ChannelItemDelegate</name>
     <message>
-        <location filename="src/channelitemdelegate.cpp" line="67"/>
         <source>All Videos</source>
         <translation>Všechna videa</translation>
     </message>
     <message>
-        <location filename="src/channelitemdelegate.cpp" line="85"/>
         <source>Unwatched Videos</source>
         <translation>Nesledovaná videa</translation>
     </message>
 <context>
     <name>ChannelView</name>
     <message>
-        <location filename="src/channelview.cpp" line="151"/>
-        <source>Mark all as watched</source>
-        <translation>Označit jako shlédnuté</translation>
-    </message>
-    <message>
-        <location filename="src/channelview.cpp" line="159"/>
-        <source>Show Updated</source>
-        <translation>Zobrazit aktualizace</translation>
-    </message>
-    <message>
-        <location filename="src/channelview.cpp" line="103"/>
         <source>Name</source>
         <translation>Jméno</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="110"/>
         <source>Last Updated</source>
         <translation>Poslední aktualizace</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="117"/>
         <source>Last Added</source>
         <translation>Naposledy přidáno</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="124"/>
         <source>Last Watched</source>
         <translation>Naposledy shlédnuto</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="131"/>
         <source>Most Watched</source>
         <translation>Nejsledovanější</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="139"/>
         <source>Sort by</source>
         <translation>Třídit podle</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="222"/>
+        <source>Mark all as watched</source>
+        <translation>Označit jako shlédnuté</translation>
+    </message>
+    <message>
+        <source>Show Updated</source>
+        <translation>Zobrazit aktualizace</translation>
+    </message>
+    <message>
         <source>All Videos</source>
         <translation>Všechna videa</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="226"/>
         <source>Unwatched Videos</source>
         <translation>Nesledovaná videa</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="244"/>
         <source>Mark as Watched</source>
         <translation>Označit jako shlédnuté</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="257"/>
         <source>Unsubscribe</source>
         <translation>Odhlásit</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="270"/>
         <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="272"/>
         <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>
     <name>ClearButton</name>
     <message>
-        <location filename="src/exlineedit.cpp" line="6"/>
         <source>Clear</source>
         <translation>Odstranit vše</translation>
     </message>
 <context>
     <name>DataUtils</name>
     <message>
-        <location filename="src/datautils.cpp" line="88"/>
         <source>Just now</source>
         <translation>Právě teď</translation>
     </message>
     <message numerus="yes">
-        <location filename="src/datautils.cpp" line="90"/>
-        <source>%n minute(s) ago</source>
-        <translation type="unfinished"><numerusform></numerusform><numerusform></numerusform><numerusform></numerusform></translation>
-    </message>
-    <message numerus="yes">
-        <location filename="src/datautils.cpp" line="92"/>
         <source>%n hour(s) ago</source>
         <translation type="unfinished"><numerusform></numerusform><numerusform></numerusform><numerusform></numerusform></translation>
     </message>
     <message numerus="yes">
-        <location filename="src/datautils.cpp" line="94"/>
         <source>%n day(s) ago</source>
         <translation type="unfinished"><numerusform></numerusform><numerusform></numerusform><numerusform></numerusform></translation>
     </message>
     <message numerus="yes">
-        <location filename="src/datautils.cpp" line="96"/>
         <source>%n weeks(s) ago</source>
         <translation type="unfinished"><numerusform></numerusform><numerusform></numerusform><numerusform></numerusform></translation>
     </message>
     <message numerus="yes">
-        <location filename="src/datautils.cpp" line="98"/>
         <source>%n month(s) ago</source>
         <translation type="unfinished"><numerusform></numerusform><numerusform></numerusform><numerusform></numerusform></translation>
     </message>
 <context>
     <name>DownloadItem</name>
     <message>
-        <location filename="src/downloaditem.cpp" line="406"/>
         <source>bytes</source>
         <translation>bajtů</translation>
     </message>
     <message>
-        <location filename="src/downloaditem.cpp" line="409"/>
         <source>KB</source>
         <translation>KB</translation>
     </message>
     <message>
-        <location filename="src/downloaditem.cpp" line="412"/>
         <source>MB</source>
         <translation>MB</translation>
     </message>
     <message>
-        <location filename="src/downloaditem.cpp" line="421"/>
         <source>bytes/sec</source>
         <translation>bajtů/sec</translation>
     </message>
     <message>
-        <location filename="src/downloaditem.cpp" line="424"/>
         <source>KB/sec</source>
         <translation>KB</translation>
     </message>
     <message>
-        <location filename="src/downloaditem.cpp" line="427"/>
         <source>MB/sec</source>
         <translation>MB/se</translation>
     </message>
     <message>
-        <location filename="src/downloaditem.cpp" line="433"/>
         <source>seconds</source>
         <translation>sekund</translation>
     </message>
     <message>
-        <location filename="src/downloaditem.cpp" line="436"/>
         <source>minutes</source>
         <translation>minut</translation>
     </message>
     <message>
-        <location filename="src/downloaditem.cpp" line="439"/>
         <source>%4 %5 remaining</source>
         <translation>%4 %5 zbývá</translation>
     </message>
 <context>
     <name>DownloadManager</name>
     <message>
-        <location filename="src/downloadmanager.cpp" line="77"/>
         <source>This is just the demo version of %1.</source>
         <translation>Toto je pouze demoverze %1.</translation>
     </message>
     <message>
-        <location filename="src/downloadmanager.cpp" line="79"/>
         <source>It can only download videos shorter than %1 minutes so you can test the download functionality.</source>
         <translation>Umí stahovat pouze videa délky do %1 minut, abyste mohli funkci stahování vyzkoušet</translation>
     </message>
     <message>
-        <location filename="src/downloadmanager.cpp" line="85"/>
         <source>Continue</source>
         <translation>Pokračovat</translation>
     </message>
     <message>
-        <location filename="src/downloadmanager.cpp" line="86"/>
         <source>Get the full version</source>
         <translation>Získat plnou verzi</translation>
     </message>
     <message>
-        <location filename="src/downloadmanager.cpp" line="157"/>
         <source>%1 downloaded in %2</source>
         <translation>%1 staženo v %2</translation>
     </message>
     <message>
-        <location filename="src/downloadmanager.cpp" line="160"/>
         <source>Download finished</source>
         <translation>Stahování dokončeno</translation>
     </message>
     <message numerus="yes">
-        <location filename="src/downloadmanager.cpp" line="165"/>
         <source>%n Download(s)</source>
         <translation type="unfinished"><numerusform></numerusform><numerusform></numerusform><numerusform></numerusform></translation>
     </message>
 <context>
     <name>DownloadSettings</name>
     <message>
-        <location filename="src/downloadsettings.cpp" line="36"/>
         <source>Change location...</source>
         <translation>Změnit složku pro stahování...</translation>
     </message>
     <message>
-        <location filename="src/downloadsettings.cpp" line="69"/>
         <source>Choose the download location</source>
         <translation>Vyberte složku, do které se bude stahovat</translation>
     </message>
     <message>
-        <location filename="src/downloadsettings.cpp" line="81"/>
         <source>Download location changed.</source>
         <translation>Nastavení složky pro stahování bylo změněno.</translation>
     </message>
     <message>
-        <location filename="src/downloadsettings.cpp" line="83"/>
         <source>Current downloads will still go in the previous location.</source>
         <translation>Probíhající stahování budou stále pokračovat v ukládání do dříve nastaveného adresáře</translation>
     </message>
     <message>
-        <location filename="src/downloadsettings.cpp" line="94"/>
         <source>Downloading to: %1</source>
         <translation>Stahováno do: %1</translation>
     </message>
 <context>
     <name>DownloadView</name>
     <message>
-        <location filename="src/downloadview.cpp" line="38"/>
-        <location filename="src/downloadview.h" line="45"/>
         <source>Downloads</source>
         <translation>Stahování</translation>
     </message>
 </context>
-<context>
-    <name>DownloadWidget</name>
-    <message>
-        <location filename="local/src/updatedialog.cpp" line="60"/>
-        <source>Downloading update...</source>
-        <translation>Stahování aktualizace...</translation>
-    </message>
-</context>
 <context>
     <name>Extra</name>
     <message>
-        <location filename="local/src/extra.cpp" line="251"/>
         <source>The executable file has been tempered with, maybe by a virus.</source>
-        <translation type="unfinished"/>
+        <translation>Soubor pro spuštění byl požkozen, toto mohl zapříčinit virus.</translation>
     </message>
     <message>
-        <location filename="local/src/extra.cpp" line="252"/>
         <source>%1 will not run. Try installing again.</source>
-        <translation type="unfinished"/>
+        <translation>%1 nepoběží. Zkuste instalovat znovu.</translation>
     </message>
     <message>
-        <location filename="local/src/extra.cpp" line="253"/>
         <source>Quit</source>
         <translation>&amp;Ukončit</translation>
     </message>
     <message>
-        <location filename="local/src/extra.cpp" line="254"/>
         <source>Reinstall</source>
         <translation>Přeinstalovat</translation>
     </message>
 <context>
     <name>GlobalShortcuts</name>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="36"/>
         <source>Play</source>
         <translation>Přehrát</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="37"/>
         <source>Pause</source>
         <translation>Pozastavit</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="38"/>
         <source>Play/Pause</source>
         <translation>Pustit/Pozastavit</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="39"/>
         <source>Stop</source>
         <translation>Zastavit</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="40"/>
         <source>Stop playing after current track</source>
         <translation>Zastavit přehrávání po dokončení nyní přehrávaného videa</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="41"/>
         <source>Next track</source>
         <translation>Další video</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="42"/>
         <source>Previous track</source>
         <translation>Předchozí video</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="43"/>
         <source>Increase volume</source>
         <translation>Zvýšit hlasitost</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="44"/>
         <source>Decrease volume</source>
         <translation>Snížit hlasitost</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="45"/>
         <source>Mute</source>
         <translation>Ztlumit hlasitost</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="46"/>
         <source>Seek forward</source>
         <translation>Rychle vpřed</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="47"/>
         <source>Seek backward</source>
         <translation>Rychle vzad</translation>
     </message>
 <context>
     <name>HomeView</name>
     <message>
-        <location filename="src/homeview.cpp" line="58"/>
         <source>Search</source>
         <translation>Hledat</translation>
     </message>
     <message>
-        <location filename="src/homeview.cpp" line="60"/>
         <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="65"/>
         <source>Browse</source>
         <translation>Prohlížet</translation>
     </message>
     <message>
-        <location filename="src/homeview.cpp" line="67"/>
         <source>Browse videos by category</source>
         <translation>Prohlížet videa podle kategorie</translation>
     </message>
     <message>
-        <location filename="src/homeview.cpp" line="71"/>
         <source>Subscriptions</source>
         <translation>Odběry</translation>
     </message>
     <message>
-        <location filename="src/homeview.cpp" line="73"/>
         <source>Channel subscriptions</source>
         <translation>Kanál odběrů</translation>
     </message>
     <message>
-        <location filename="src/homeview.h" line="44"/>
         <source>Make yourself comfortable</source>
         <translation>Udělejte si pohodlí</translation>
     </message>
 <context>
     <name>LoadingWidget</name>
     <message>
-        <location filename="src/loadingwidget.cpp" line="125"/>
         <source>Error</source>
         <translation>Chyba</translation>
     </message>
 <context>
     <name>MainWindow</name>
     <message>
-        <location filename="src/mainwindow.cpp" line="291"/>
+        <source>&amp;Window</source>
+        <translation>&amp;Okno</translation>
+    </message>
+    <message>
+        <source>&amp;Minimize</source>
+        <translation>&amp;Zmenšit</translation>
+    </message>
+    <message>
         <source>&amp;Stop</source>
         <translation>&amp;Zastavit</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="292"/>
         <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="307"/>
+        <source>P&amp;revious</source>
+        <translation>P&amp;ředešlý</translation>
+    </message>
+    <message>
+        <source>Go back to the previous track</source>
+        <translation>Jít zpět na předchozí skladbu</translation>
+    </message>
+    <message>
         <source>S&amp;kip</source>
         <translation>Př&amp;eskočit</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="308"/>
         <source>Skip to the next video</source>
         <translation>Přeskočí na další video</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1134"/>
-        <source>&amp;Pause</source>
-        <translation>&amp;Pauza</translation>
+        <source>&amp;Play</source>
+        <translation>&amp;Play</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1135"/>
-        <source>Pause playback</source>
-        <translation>Pozastaví přehrávání</translation>
+        <source>Resume playback</source>
+        <translation>Pokračovat v přehrávání</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="321"/>
         <source>&amp;Full Screen</source>
         <translation>&amp;Celá obrazovka</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="322"/>
         <source>Go full screen</source>
         <translation>Přepne na celou obrazovku</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="336"/>
+        <source>&amp;Compact Mode</source>
+        <translation>&amp;Kompaktní mód</translation>
+    </message>
+    <message>
         <source>Hide the playlist and the toolbar</source>
         <translation>Skryje playlist a toolbar</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="349"/>
+        <source>Open the &amp;YouTube Page</source>
+        <translation>Otevřít stránku &amp;YouTube </translation>
+    </message>
+    <message>
         <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="356"/>
+        <source>Copy the YouTube &amp;Link</source>
+        <translation>Kopírovat YouTube &amp;odkaz</translation>
+    </message>
+    <message>
         <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="363"/>
+        <source>Copy the Video Stream &amp;URL</source>
+        <translation>Zkopírovat adresu &amp;video streamu</translation>
+    </message>
+    <message>
         <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="370"/>
+        <source>Find Video &amp;Parts</source>
+        <translation>Nalézt &amp;části videa</translation>
+    </message>
+    <message>
         <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="376"/>
         <source>&amp;Remove</source>
         <translation>&amp;Odstranit</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="377"/>
         <source>Remove the selected videos from the playlist</source>
         <translation>Odstraní vybraná videa z playlistu</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="383"/>
         <source>Move &amp;Up</source>
         <translation>&amp;Nahoru</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="384"/>
         <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="390"/>
         <source>Move &amp;Down</source>
         <translation>&amp;Dolů</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="391"/>
         <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="402"/>
+        <source>&amp;Clear Recent Searches</source>
+        <translation>&amp;Vymazat poslední hledání</translation>
+    </message>
+    <message>
         <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="407"/>
         <source>&amp;Quit</source>
         <translation>&amp;Zavřít</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="410"/>
         <source>Bye</source>
         <translation>Sbohem</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="414"/>
         <source>&amp;Website</source>
         <translation>&amp;Homepage</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="416"/>
         <source>%1 on the Web</source>
         <translation>%1 na Webu</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="422"/>
+        <source>Make a &amp;Donation</source>
+        <translation>&amp;Podpořit</translation>
+    </message>
+    <message>
         <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="427"/>
         <source>&amp;About</source>
         <translation>&amp;O aplikaci</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="429"/>
         <source>Info about %1</source>
         <translation>Info o aplikaci %1</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="437"/>
         <source>Search</source>
         <translation>Hledat</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="456"/>
         <source>Mute volume</source>
         <translation>Ztlumit</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="490"/>
-        <location filename="src/mainwindow.cpp" line="1609"/>
+        <source>&amp;Manually Start Playing</source>
+        <translation>Zahájit přehrávání &amp;ručně </translation>
+    </message>
+    <message>
+        <source>Manually start playing videos</source>
+        <translation>Zahájit přehrávání videí ručně</translation>
+    </message>
+    <message>
         <source>&amp;Downloads</source>
         <translation>&amp;Stahování</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="491"/>
         <source>Show details about video downloads</source>
         <translation>Zobrazit podrobnosti o stahování videí</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="499"/>
         <source>&amp;Download</source>
         <translation>&amp;Stáhnout</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="500"/>
         <source>Download the current video</source>
         <translation>Stáhnout přávě zobrazené video</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="510"/>
         <source>Take &amp;Snapshot</source>
         <translation>Udělat &amp;Snímek</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="517"/>
         <source>&amp;Subscribe to Channel</source>
         <translation>&amp;Přihlásit se ke kanálu</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="525"/>
         <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="545"/>
         <source>&amp;Email</source>
         <translation>&amp;Email</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="546"/>
         <source>Email</source>
         <translation>Email</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="551"/>
         <source>&amp;Close</source>
         <translation>&amp;Zavřít</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="561"/>
         <source>&amp;Float on Top</source>
         <translation>&amp;Plovoucí navrchu</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="566"/>
         <source>&amp;Adjust Window Size</source>
         <translation>&amp;Přizpůsobit velikost okna</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="571"/>
         <source>&amp;Stop After This Video</source>
         <translation>&amp;Zastavit po tomto videu</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="578"/>
         <source>&amp;Report an Issue...</source>
         <translation>&amp;Nahlásit chybu...</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="582"/>
         <source>&amp;Refine Search...</source>
         <translation>&amp;Upřesnit vyhledávání...</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="594"/>
         <source>More...</source>
         <translation>Více...</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="597"/>
         <source>&amp;Related Videos</source>
         <translation>&amp;Související videa</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="599"/>
         <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="605"/>
         <source>Open in &amp;Browser...</source>
         <translation>Otevřít v prohlížeči ...</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="612"/>
-        <source>&amp;Love %1? Rate it!</source>
-        <translation>&amp;Líbí se %1? Ohodnotit!</translation>
+        <source>Restricted Mode</source>
+        <translation>Omezený režim</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="633"/>
-        <source>&amp;Application</source>
-        <translation>&amp;Aplikace</translation>
+        <source>Hide videos that may contain inappropriate content</source>
+        <translation>Skrýt videa, která by mohla obsahovat nevhodný obsah</translation>
+    </message>
+    <message>
+        <source>&amp;Love %1? Rate it!</source>
+        <translation>&amp;Líbí se %1? Ohodnotit!</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="618"/>
         <source>Buy %1...</source>
         <translation>Koupit %1...</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="647"/>
+        <source>&amp;Application</source>
+        <translation>&amp;Aplikace</translation>
+    </message>
+    <message>
         <source>&amp;Playback</source>
         <translation>&amp;Přehrávání</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="661"/>
         <source>&amp;Playlist</source>
         <translation>&amp;Playlist</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="670"/>
         <source>&amp;Video</source>
         <translation>&amp;Video</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="686"/>
-        <source>&amp;View</source>
-        <translation>&amp;Pohled</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="695"/>
         <source>&amp;Share</source>
         <translation>&amp;Sdílet</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="709"/>
+        <source>&amp;View</source>
+        <translation>&amp;Pohled</translation>
+    </message>
+    <message>
         <source>&amp;Help</source>
         <translation>&amp;Nápověda</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="751"/>
         <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="1021"/>
-        <location filename="src/mainwindow.cpp" line="1027"/>
+        <source>Choose your content location</source>
+        <translation>Vyberte si umístění obsahu</translation>
+    </message>
+    <message>
         <source>Opening %1</source>
         <translation>Otevírám %1</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1080"/>
         <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="1081"/>
         <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="1086"/>
         <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="1087"/>
         <source>Wait for download to finish</source>
         <translation>Počkat na dokončení stahování</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1158"/>
-        <source>&amp;Loading...</source>
-        <translation>&amp;Nahrávání...</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="1264"/>
-        <source>Leave &amp;Full Screen</source>
-        <translation>Opustit zobrazení na &amp;celou obrazovku</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="1718"/>
-        <source>%1 version %2 is now available.</source>
-        <translation>%1 verze %2 je nyní dostupná.</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="1722"/>
-        <source>Remind me later</source>
-        <translation>Připomenout později</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="1723"/>
-        <source>Update</source>
-        <translation>Aktualizovat</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="1127"/>
         <source>Error: %1</source>
         <translation>Chyba: %1</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="300"/>
-        <source>P&amp;revious</source>
-        <translation>P&amp;ředešlý</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="301"/>
-        <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="335"/>
-        <source>&amp;Compact Mode</source>
-        <translation>&amp;Kompaktní mód</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="348"/>
-        <source>Open the &amp;YouTube Page</source>
-        <translation>Otevřít stránku &amp;YouTube </translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="355"/>
-        <source>Copy the YouTube &amp;Link</source>
-        <translation>Kopírovat YouTube &amp;odkaz</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="362"/>
-        <source>Copy the Video Stream &amp;URL</source>
-        <translation>Zkopírovat adresu &amp;video streamu</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="369"/>
-        <source>Find Video &amp;Parts</source>
-        <translation>Nalézt &amp;části videa</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="397"/>
-        <source>&amp;Clear Recent Searches</source>
-        <translation>&amp;Vymazat poslední hledání</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="421"/>
-        <source>Make a &amp;Donation</source>
-        <translation>&amp;Podpořit</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="483"/>
-        <source>&amp;Manually Start Playing</source>
-        <translation>Zahájit přehrávání &amp;ručně </translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="484"/>
-        <source>Manually start playing videos</source>
-        <translation>Zahájit přehrávání videí ručně</translation>
+        <source>&amp;Pause</source>
+        <translation>&amp;Pauza</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="847"/>
-        <source>Choose your content location</source>
-        <translation>Vyberte si umístění obsahu</translation>
+        <source>Pause playback</source>
+        <translation>Pozastaví přehrávání</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="314"/>
-        <location filename="src/mainwindow.cpp" line="1142"/>
-        <location filename="src/mainwindow.cpp" line="1150"/>
-        <source>&amp;Play</source>
-        <translation>&amp;Play</translation>
+        <source>&amp;Loading...</source>
+        <translation>&amp;Nahrávání...</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="315"/>
-        <location filename="src/mainwindow.cpp" line="1143"/>
-        <location filename="src/mainwindow.cpp" line="1151"/>
-        <source>Resume playback</source>
-        <translation>Pokračovat v přehrávání</translation>
+        <source>Leave &amp;Full Screen</source>
+        <translation>Opustit zobrazení na &amp;celou obrazovku</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1437"/>
         <source>Remaining time: %1</source>
         <translation>Zbývající čas: %1</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1528"/>
         <source>Volume at %1%</source>
         <translation>Hlasitost na %1%</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1534"/>
         <source>Volume is muted</source>
         <translation>Zvuk je ztlumen</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1537"/>
         <source>Volume is unmuted</source>
         <translation>Zvuk je zapnut</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1548"/>
         <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="1595"/>
         <source>Your privacy is now safe</source>
         <translation>Vaše soukromí je nyní v bezpečí</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1610"/>
         <source>Downloads complete</source>
         <translation>Všechna stahování byla dokončena</translation>
     </message>
+    <message>
+        <source>%1 version %2 is now available.</source>
+        <translation>%1 verze %2 je nyní dostupná.</translation>
+    </message>
+    <message>
+        <source>Remind me later</source>
+        <translation>Připomenout později</translation>
+    </message>
+    <message>
+        <source>Update</source>
+        <translation>Aktualizovat</translation>
+    </message>
 </context>
 <context>
     <name>MediaView</name>
     <message>
-        <location filename="src/mediaview.cpp" line="702"/>
         <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="710"/>
         <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="711"/>
         <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="800"/>
         <source>This is just the demo version of %1.</source>
         <translation>Toto je %1 -- demoverze.</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="801"/>
         <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="833"/>
+        <source>Get the full version</source>
+        <translation>Stáhnout plnou verzi</translation>
+    </message>
+    <message>
         <source>Continue</source>
         <translation>Pokračovat</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="988"/>
+        <source>Downloading %1</source>
+        <translation>Je stahováno %1</translation>
+    </message>
+    <message>
         <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="1001"/>
         <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="1003"/>
         <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="1096"/>
         <source>Sent from %1</source>
         <translation>Zaslat z %1</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="1128"/>
         <source>Unsubscribe from %1</source>
         <translation>Odhlásit z </translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="1132"/>
         <source>Subscribe to %1</source>
         <translation>Přihlásit k %1</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="1166"/>
         <source>Unsubscribed from %1</source>
-        <translation type="unfinished"/>
+        <translation>Odhlášen z odběru %1</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="1169"/>
         <source>Subscribed to %1</source>
-        <translation type="unfinished"/>
-    </message>
-    <message>
-        <location filename="src/mediaview.cpp" line="808"/>
-        <source>Get the full version</source>
-        <translation>Stáhnout plnou verzi</translation>
-    </message>
-    <message>
-        <location filename="src/mediaview.cpp" line="847"/>
-        <source>Downloading %1</source>
-        <translation>Je stahováno %1</translation>
+        <translation>Přihlášen k odběru %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>Nová verze %1 je k dispozici!</translation>
     </message>
     <message>
-        <location filename="local/src/updatedialog.cpp" line="28"/>
         <source>%1 %2 is now available. You have %3.</source>
         <translation>%1 %2 je nyní k dispozici. Vy máte %3.</translation>
     </message>
     <message>
-        <location filename="local/src/updatedialog.cpp" line="33"/>
         <source>Would you like to download it now?</source>
         <translation>Chcete ji nyní stáhnout?</translation>
     </message>
     <message>
-        <location filename="local/src/updatedialog.cpp" line="39"/>
         <source>Skip This Version</source>
         <translation>Přeskočit tuto verzi</translation>
     </message>
     <message>
-        <location filename="local/src/updatedialog.cpp" line="43"/>
         <source>Remind Me Later</source>
         <translation>Připomenout později</translation>
     </message>
     <message>
-        <location filename="local/src/updatedialog.cpp" line="47"/>
         <source>Install Update</source>
         <translation>Nainstalovat aktualizaci</translation>
     </message>
 <context>
     <name>PasteLineEdit</name>
     <message>
-        <location filename="local/src/pastelineedit.cpp" line="6"/>
         <source>Paste</source>
         <translation>Vložit</translation>
     </message>
 <context>
     <name>PlaylistItemDelegate</name>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="209"/>
         <source>%1 views</source>
         <translation>%1 zobrazení</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="309"/>
         <source>%1 of %2 (%3) — %4</source>
         <translation>%1 z %2 (%3) — %4</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="316"/>
         <source>Preparing</source>
         <translation>Připravuje se</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="318"/>
         <source>Failed</source>
         <translation>Selhalo</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="320"/>
         <source>Completed</source>
         <translation>Dokončeno</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="322"/>
         <source>Stopped</source>
         <translation>Zastaveno</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="358"/>
         <source>Stop downloading</source>
         <translation>Zastavit stahování</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="368"/>
         <source>Show in %1</source>
         <translation>Ukázat v %1</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="370"/>
         <source>Open parent folder</source>
         <translation>Otevřít příslušný adresář</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="379"/>
         <source>Restart downloading</source>
         <translation>Začít stahovat znovu</translation>
     </message>
 <context>
     <name>PlaylistModel</name>
     <message>
-        <location filename="src/playlistmodel.cpp" line="70"/>
         <source>Searching...</source>
         <translation>Hledá se...</translation>
     </message>
     <message>
-        <location filename="src/playlistmodel.cpp" line="71"/>
         <source>Show %1 More</source>
         <translation>Zobrazit dalších %1</translation>
     </message>
     <message>
-        <location filename="src/playlistmodel.cpp" line="72"/>
         <source>No videos</source>
         <translation>Žádná videa</translation>
     </message>
     <message>
-        <location filename="src/playlistmodel.cpp" line="73"/>
         <source>No more videos</source>
         <translation>Žádná další videa</translation>
     </message>
 <context>
     <name>RefineSearchWidget</name>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="49"/>
         <source>Sort by</source>
         <translation>Třídit podle</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="53"/>
         <source>Relevance</source>
         <translation>Významu</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="54"/>
-        <location filename="src/refinesearchwidget.cpp" line="69"/>
         <source>Date</source>
         <translation>Data</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="55"/>
         <source>View Count</source>
         <translation>Počtu shlédnutí</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="56"/>
         <source>Rating</source>
         <translation>Hodnocení</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="73"/>
         <source>Anytime</source>
         <translation>Kdykoliv</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="74"/>
         <source>Today</source>
         <translation>Dnes</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="75"/>
         <source>7 Days</source>
         <translation>7 dní</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="76"/>
         <source>30 Days</source>
         <translation>30 dnů</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="89"/>
         <source>Duration</source>
         <translation>Délka</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="93"/>
-        <location filename="src/refinesearchwidget.cpp" line="119"/>
         <source>All</source>
         <translation>Vše</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="94"/>
         <source>Short</source>
         <translation>Krátký</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="95"/>
         <source>Medium</source>
         <translation>Střední</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="96"/>
         <source>Long</source>
         <translation>Dlouhý</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="99"/>
         <source>Less than 4 minutes</source>
         <translation>Méně než 4 minuty</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="100"/>
         <source>Between 4 and 20 minutes</source>
         <translation>Mezi 4 a 20minutami</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="101"/>
         <source>Longer than 20 minutes</source>
         <translation>Delší než 20 minut</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="115"/>
         <source>Quality</source>
         <translation>Kvalita</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="120"/>
         <source>High Definition</source>
         <translation>Vysoké rozlišení</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="123"/>
         <source>720p or higher</source>
         <translation>720p nebo vyšší</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="136"/>
         <source>Done</source>
         <translation>Hotovo</translation>
     </message>
 <context>
     <name>RegionsView</name>
     <message>
-        <location filename="src/regionsview.cpp" line="39"/>
         <source>Done</source>
         <translation>Hotovo</translation>
     </message>
 <context>
     <name>SearchLineEdit</name>
     <message>
-        <location filename="src/searchlineedit.cpp" line="55"/>
         <source>Search</source>
         <translation>Hledat</translation>
     </message>
 <context>
     <name>SearchView</name>
     <message>
-        <location filename="src/searchview.cpp" line="83"/>
         <source>Welcome to &lt;a href=&apos;%1&apos;&gt;%2&lt;/a&gt;,</source>
         <translation>Vítejte v &lt;a href=&apos;%1&apos;&gt;%2&lt;/a&gt;</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="200"/>
-        <source>Get the full version</source>
-        <translation>Získat plnou verzi</translation>
-    </message>
-    <message>
-        <location filename="src/searchview.cpp" line="110"/>
         <source>Enter</source>
         <extracomment>&quot;Enter&quot;, as in &quot;type&quot;. The whole phrase says: &quot;Enter a keyword to start watching videos&quot;</extracomment>
         <translation>Vložit</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="117"/>
         <source>a keyword</source>
         <translation>klíčové slovo</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="118"/>
         <source>a channel</source>
         <translation>kanál</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="125"/>
         <source>to start watching videos.</source>
         <translation> pro sledování videí.</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="156"/>
         <source>Watch</source>
         <translation>Sledovat</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="174"/>
         <source>Recent keywords</source>
         <translation>Poslední klíčová slova</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="186"/>
         <source>Recent channels</source>
         <translation>Poslední kanály</translation>
     </message>
+    <message>
+        <source>Get the full version</source>
+        <translation>Získat plnou verzi</translation>
+    </message>
 </context>
 <context>
     <name>SidebarHeader</name>
     <message>
-        <location filename="src/sidebarheader.cpp" line="38"/>
-        <location filename="src/sidebarheader.cpp" line="45"/>
         <source>&amp;Back</source>
         <translation>&amp;Zpět</translation>
     </message>
     <message>
-        <location filename="src/sidebarheader.cpp" line="76"/>
         <source>Forward to %1</source>
         <translation>Předat k %1</translation>
     </message>
     <message>
-        <location filename="src/sidebarheader.cpp" line="89"/>
         <source>Back to %1</source>
         <translation>Zpět k %1</translation>
     </message>
 <context>
     <name>SidebarWidget</name>
     <message>
-        <location filename="src/sidebarwidget.cpp" line="68"/>
         <source>Refine Search</source>
         <translation>Upřesnit vyhledávání</translation>
     </message>
     <message>
-        <location filename="src/sidebarwidget.cpp" line="167"/>
         <source>Did you mean: %1</source>
         <translation>Měli jste na mysli: %1</translation>
     </message>
 <context>
     <name>SnapshotSettings</name>
     <message>
-        <location filename="src/snapshotsettings.cpp" line="47"/>
         <source>Change location...</source>
         <translation>Změnit složku pro stahování...</translation>
     </message>
     <message>
-        <location filename="src/snapshotsettings.cpp" line="64"/>
         <source>Snapshot saved to %1</source>
         <translation>Snímek uložen do %1</translation>
     </message>
     <message>
-        <location filename="src/snapshotsettings.cpp" line="117"/>
         <source>Snapshots location changed.</source>
         <translation>Umístění snímku se změnilo.</translation>
     </message>
 <context>
     <name>StandardFeedsView</name>
     <message>
-        <location filename="src/standardfeedsview.cpp" line="107"/>
         <source>Most Popular</source>
         <translation>Nejoblíbenější</translation>
     </message>
 </context>
+<context>
+    <name>UpdateDialog</name>
+    <message>
+        <source>Downloading update...</source>
+        <translation>Stahování aktualizace...</translation>
+    </message>
+    <message>
+        <source>Downloading %1...</source>
+        <translation>Stahování %1...</translation>
+    </message>
+</context>
 <context>
     <name>Video</name>
     <message>
-        <location filename="src/video.cpp" line="287"/>
         <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="292"/>
-        <source>Network error: %1 for %2</source>
-        <translation>Chyba přípojení: %1 pro %2</translation>
-    </message>
 </context>
 <context>
     <name>YTRegions</name>
     <message>
-        <location filename="src/ytregions.cpp" line="28"/>
         <source>Algeria</source>
         <translation>Alžírsko</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="29"/>
         <source>Argentina</source>
         <translation>Argentina</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="30"/>
         <source>Australia</source>
         <translation>Austrálie</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="31"/>
         <source>Belgium</source>
         <translation>Belgie</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="32"/>
         <source>Brazil</source>
         <translation>Brazílie</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="33"/>
         <source>Canada</source>
         <translation>Kanada</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="34"/>
         <source>Chile</source>
         <translation>Chile</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="35"/>
         <source>Colombia</source>
         <translation>Kolumbie</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="36"/>
         <source>Czech Republic</source>
         <translation>Česká republika</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="37"/>
         <source>Egypt</source>
         <translation>Egypt</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="38"/>
         <source>France</source>
         <translation>Francie</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="39"/>
         <source>Germany</source>
         <translation>Německo</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="40"/>
         <source>Ghana</source>
         <translation>Ghana</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="41"/>
         <source>Greece</source>
         <translation>Řecko</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="42"/>
         <source>Hong Kong</source>
         <translation>Hong Kong</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="43"/>
         <source>Hungary</source>
         <translation>Maďarsko</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="44"/>
         <source>India</source>
         <translation>Indie</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="45"/>
         <source>Indonesia</source>
         <translation>Indonesie</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="46"/>
         <source>Ireland</source>
         <translation>Irsko</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="47"/>
         <source>Israel</source>
         <translation>Izrael</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="48"/>
         <source>Italy</source>
         <translation>Itálie</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="49"/>
         <source>Japan</source>
         <translation>Japonsko</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="50"/>
         <source>Jordan</source>
         <translation>Jordánsko</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="51"/>
         <source>Kenya</source>
         <translation>Keňa</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="52"/>
         <source>Malaysia</source>
         <translation>Malajsie</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="53"/>
         <source>Mexico</source>
         <translation>Mexico</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="54"/>
         <source>Morocco</source>
         <translation>Maroko</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="55"/>
         <source>Netherlands</source>
         <translation>Nizozemí</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="56"/>
         <source>New Zealand</source>
         <translation>Nový Zéland</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="57"/>
         <source>Nigeria</source>
         <translation>Niger</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="58"/>
         <source>Peru</source>
         <translation>Peru</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="59"/>
         <source>Philippines</source>
         <translation>Filipíny</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="60"/>
         <source>Poland</source>
         <translation>Polsko</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="61"/>
         <source>Russia</source>
         <translation>Rusko</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="62"/>
         <source>Saudi Arabia</source>
         <translation>Saudská Arabie</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="63"/>
         <source>Singapore</source>
         <translation>Singapur</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="64"/>
         <source>South Africa</source>
         <translation>Jižní Afrika</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="65"/>
         <source>South Korea</source>
         <translation>Severní Korea</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="66"/>
         <source>Spain</source>
         <translation>Španělsko</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="67"/>
         <source>Sweden</source>
         <translation>Švédsko</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="68"/>
         <source>Taiwan</source>
         <translation>Taiwan</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="69"/>
         <source>Tunisia</source>
         <translation>Tunisko</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="70"/>
         <source>Turkey</source>
         <translation>Turecko</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="71"/>
         <source>Uganda</source>
         <translation>Uganda</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="72"/>
         <source>United Arab Emirates</source>
         <translation>Spojené arabské emiráty</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="73"/>
         <source>United Kingdom</source>
         <translation>Velká Británie</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="74"/>
         <source>Yemen</source>
         <translation>Jemen</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="148"/>
         <source>Worldwide</source>
         <translation>Celosvětově</translation>
     </message>
index 0810eb1e9120fd6abd7ecf6888d2aabda13540a0..e3361891192fda6319c525d00d4df6e4f71f2f66 100644 (file)
@@ -2,67 +2,42 @@
 <context>
     <name>AboutView</name>
     <message>
-        <location filename="src/aboutview.cpp" line="58"/>
         <source>There&apos;s life outside the browser!</source>
         <translation>Der findes liv udenfor browseren!</translation>
     </message>
     <message>
-        <location filename="src/aboutview.cpp" line="59"/>
         <source>Version %1</source>
         <translation>Version %1</translation>
     </message>
     <message>
-        <location filename="src/aboutview.cpp" line="64"/>
         <source>Licensed to: %1</source>
         <translation>Licenseret til: %1</translation>
     </message>
     <message>
-        <location filename="src/aboutview.cpp" line="68"/>
         <source>%1 is Free Software but its development takes precious time.</source>
         <translation>%1 er fri software, men udviklingen tager værdifuld tid.</translation>
     </message>
     <message>
-        <location filename="src/aboutview.cpp" line="69"/>
         <source>Please &lt;a href=&apos;%1&apos;&gt;donate&lt;/a&gt; to support the continued development of %2.</source>
         <translation>Venligst &lt;a href=&apos;%1&apos;&gt;doner&lt;/a&gt; for at støtte den forsatte udvikling af %2.</translation>
     </message>
     <message>
-        <location filename="src/aboutview.cpp" line="73"/>
-        <source>You may want to try my other apps as well:</source>
-        <translation>Du ønsker måske også at prøve mine andre apps:</translation>
-    </message>
-    <message>
-        <location filename="src/aboutview.cpp" line="76"/>
-        <source>%1, a YouTube music player</source>
-        <translation>%1, en YouTube-musikafspiller</translation>
-    </message>
-    <message>
-        <location filename="src/aboutview.cpp" line="80"/>
-        <source>%1, a music player</source>
-        <translation>%1, en musikafspiller</translation>
-    </message>
-    <message>
-        <location filename="src/aboutview.cpp" line="86"/>
         <source>Translate %1 to your native language using %2</source>
         <translation>Oversæt %1 til din modersmål ved hjælp af %2</translation>
     </message>
     <message>
-        <location filename="src/aboutview.cpp" line="91"/>
         <source>Icon designed by %1.</source>
         <translation>Ikon designet af %1.</translation>
     </message>
     <message>
-        <location filename="src/aboutview.cpp" line="95"/>
         <source>Released under the &lt;a href=&apos;%1&apos;&gt;GNU General Public License&lt;/a&gt;</source>
         <translation>Frigivet under &lt;a href=&apos;%1&apos;&gt;GNU General Public License&lt;/a&gt;</translation>
     </message>
     <message>
-        <location filename="src/aboutview.cpp" line="110"/>
         <source>&amp;Close</source>
         <translation>&amp;Luk</translation>
     </message>
     <message>
-        <location filename="src/aboutview.h" line="40"/>
         <source>About</source>
         <translation>Om</translation>
     </message>
 <context>
     <name>ActivationDialog</name>
     <message>
-        <location filename="local/src/activationdialog.cpp" line="17"/>
         <source>Enter your License Details</source>
         <translation>Indtast dine licensoplysninger</translation>
     </message>
     <message>
-        <location filename="local/src/activationdialog.cpp" line="29"/>
         <source>&amp;Email:</source>
         <translation>&amp;Email:</translation>
     </message>
     <message>
-        <location filename="local/src/activationdialog.cpp" line="35"/>
         <source>&amp;Code:</source>
         <translation>&amp;Kode:</translation>
     </message>
 <context>
     <name>ActivationView</name>
     <message>
-        <location filename="local/src/activationview.cpp" line="47"/>
         <source>Please license %1</source>
         <translation>Venligst licensér %1</translation>
     </message>
     <message>
-        <location filename="local/src/activationview.cpp" line="51"/>
         <source>This demo has expired.</source>
         <translation>Denne prøveversion er udløbet.</translation>
     </message>
     <message>
-        <location filename="local/src/activationview.cpp" line="53"/>
         <source>The full version allows you to watch videos without interruptions.</source>
-        <oldsource>The full version allows you to download videos longer than %1 minutes and to watch videos without interruptions.</oldsource>
         <translation>Den fulde version giver dig mulighed for, at se videoer uden afbrydelser.</translation>
     </message>
     <message>
-        <location filename="local/src/activationview.cpp" line="55"/>
         <source>Without a license, the application will expire in %1 days.</source>
         <translation>Dette program vil udløbe om %1 dage uden en licens.</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>Ved at købe den fulde version, støtter du også støtte det hårde arbejde jeg lagt i at udvikle %1.</translation>
     </message>
     <message>
-        <location filename="local/src/activationview.cpp" line="70"/>
         <source>Use Demo</source>
         <translation>Brug prøveversion</translation>
     </message>
     <message>
-        <location filename="local/src/activationview.cpp" line="77"/>
         <source>Enter License</source>
         <translation>Indtast licens</translation>
     </message>
     <message>
-        <location filename="local/src/activationview.cpp" line="85"/>
         <source>Buy License</source>
         <translation>Køb licens</translation>
     </message>
 </context>
+<context>
+    <name>AppWidget</name>
+    <message>
+        <source>Download</source>
+        <translation type="unfinished"/>
+    </message>
+</context>
 <context>
     <name>ChannelAggregator</name>
     <message>
-        <location filename="src/channelaggregator.cpp" line="183"/>
         <source>By %1</source>
         <translation>Af %1</translation>
     </message>
     <message numerus="yes">
-        <location filename="src/channelaggregator.cpp" line="185"/>
         <source>You have %n new video(s)</source>
-        <translation><numerusform>Du har %n ny video</numerusform><numerusform>Du har %n nye videoer</numerusform></translation>
+        <translation type="unfinished"><numerusform></numerusform><numerusform></numerusform></translation>
     </message>
 </context>
 <context>
     <name>ChannelItemDelegate</name>
     <message>
-        <location filename="src/channelitemdelegate.cpp" line="67"/>
         <source>All Videos</source>
         <translation>Alle videoer</translation>
     </message>
     <message>
-        <location filename="src/channelitemdelegate.cpp" line="85"/>
         <source>Unwatched Videos</source>
         <translation>Videoer, der ikke er set</translation>
     </message>
 <context>
     <name>ChannelView</name>
     <message>
-        <location filename="src/channelview.cpp" line="151"/>
-        <source>Mark all as watched</source>
-        <translation>Marker alle som set</translation>
-    </message>
-    <message>
-        <location filename="src/channelview.cpp" line="159"/>
-        <source>Show Updated</source>
-        <translation>Show opdateret</translation>
-    </message>
-    <message>
-        <location filename="src/channelview.cpp" line="103"/>
         <source>Name</source>
         <translation>Navn</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="110"/>
         <source>Last Updated</source>
         <translation>Senest opdateret</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="117"/>
         <source>Last Added</source>
         <translation>Senest tilføjet</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="124"/>
         <source>Last Watched</source>
         <translation>Sidst set</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="131"/>
         <source>Most Watched</source>
         <translation>Mest set</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="139"/>
         <source>Sort by</source>
         <translation>Sorter efter</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="222"/>
+        <source>Mark all as watched</source>
+        <translation>Marker alle som set</translation>
+    </message>
+    <message>
+        <source>Show Updated</source>
+        <translation>Show opdateret</translation>
+    </message>
+    <message>
         <source>All Videos</source>
         <translation>Alle videoer</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="226"/>
         <source>Unwatched Videos</source>
         <translation>Videoer, der ikke er set</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="244"/>
         <source>Mark as Watched</source>
         <translation>Marker som set</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="257"/>
         <source>Unsubscribe</source>
         <translation>Afmeld</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="270"/>
         <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="272"/>
         <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>
     <name>ClearButton</name>
     <message>
-        <location filename="src/exlineedit.cpp" line="6"/>
         <source>Clear</source>
         <translation>Fjern</translation>
     </message>
 <context>
     <name>DataUtils</name>
     <message>
-        <location filename="src/datautils.cpp" line="88"/>
         <source>Just now</source>
         <translation>Lige nu</translation>
     </message>
     <message numerus="yes">
-        <location filename="src/datautils.cpp" line="90"/>
-        <source>%n minute(s) ago</source>
-        <translation><numerusform>%n minut siden</numerusform><numerusform>%n minutter siden</numerusform></translation>
-    </message>
-    <message numerus="yes">
-        <location filename="src/datautils.cpp" line="92"/>
         <source>%n hour(s) ago</source>
-        <translation><numerusform>%n time siden</numerusform><numerusform>%n timer siden</numerusform></translation>
+        <translation type="unfinished"><numerusform></numerusform><numerusform></numerusform></translation>
     </message>
     <message numerus="yes">
-        <location filename="src/datautils.cpp" line="94"/>
         <source>%n day(s) ago</source>
-        <translation><numerusform>%n dag siden</numerusform><numerusform>%n dage siden</numerusform></translation>
+        <translation type="unfinished"><numerusform></numerusform><numerusform></numerusform></translation>
     </message>
     <message numerus="yes">
-        <location filename="src/datautils.cpp" line="96"/>
         <source>%n weeks(s) ago</source>
-        <translation><numerusform>%n uge siden</numerusform><numerusform>%n uger siden</numerusform></translation>
+        <translation type="unfinished"><numerusform></numerusform><numerusform></numerusform></translation>
     </message>
     <message numerus="yes">
-        <location filename="src/datautils.cpp" line="98"/>
         <source>%n month(s) ago</source>
-        <translation><numerusform>%n måned siden</numerusform><numerusform>%n måneder siden</numerusform></translation>
+        <translation type="unfinished"><numerusform></numerusform><numerusform></numerusform></translation>
     </message>
 </context>
 <context>
     <name>DownloadItem</name>
     <message>
-        <location filename="src/downloaditem.cpp" line="406"/>
         <source>bytes</source>
         <translation>bytes</translation>
     </message>
     <message>
-        <location filename="src/downloaditem.cpp" line="409"/>
         <source>KB</source>
         <translation>KB</translation>
     </message>
     <message>
-        <location filename="src/downloaditem.cpp" line="412"/>
         <source>MB</source>
         <translation>MB</translation>
     </message>
     <message>
-        <location filename="src/downloaditem.cpp" line="421"/>
         <source>bytes/sec</source>
         <translation>bytes/sek</translation>
     </message>
     <message>
-        <location filename="src/downloaditem.cpp" line="424"/>
         <source>KB/sec</source>
         <translation>KB/sek</translation>
     </message>
     <message>
-        <location filename="src/downloaditem.cpp" line="427"/>
         <source>MB/sec</source>
         <translation>MB/sek</translation>
     </message>
     <message>
-        <location filename="src/downloaditem.cpp" line="433"/>
         <source>seconds</source>
         <translation>sekunder</translation>
     </message>
     <message>
-        <location filename="src/downloaditem.cpp" line="436"/>
         <source>minutes</source>
         <translation>minutter</translation>
     </message>
     <message>
-        <location filename="src/downloaditem.cpp" line="439"/>
         <source>%4 %5 remaining</source>
         <translation>%4 %5 mangler</translation>
     </message>
 <context>
     <name>DownloadManager</name>
     <message>
-        <location filename="src/downloadmanager.cpp" line="77"/>
         <source>This is just the demo version of %1.</source>
         <translation>Dette er kun demoversionen af %1.</translation>
     </message>
     <message>
-        <location filename="src/downloadmanager.cpp" line="79"/>
         <source>It can only download videos shorter than %1 minutes so you can test the download functionality.</source>
         <translation>Det kan kun hente videoer kortere end %1 minut, så du kan teste downloadfunktionaliteten.</translation>
     </message>
     <message>
-        <location filename="src/downloadmanager.cpp" line="85"/>
         <source>Continue</source>
         <translation>Forsæt</translation>
     </message>
     <message>
-        <location filename="src/downloadmanager.cpp" line="86"/>
         <source>Get the full version</source>
         <translation>Hent den fulde version</translation>
     </message>
     <message>
-        <location filename="src/downloadmanager.cpp" line="157"/>
         <source>%1 downloaded in %2</source>
         <translation>%1 downloaded på %2</translation>
     </message>
     <message>
-        <location filename="src/downloadmanager.cpp" line="160"/>
         <source>Download finished</source>
         <translation>Download afsluttet</translation>
     </message>
     <message numerus="yes">
-        <location filename="src/downloadmanager.cpp" line="165"/>
         <source>%n Download(s)</source>
-        <translation><numerusform>%n download</numerusform><numerusform>%n downloads</numerusform></translation>
+        <translation type="unfinished"><numerusform></numerusform><numerusform></numerusform></translation>
     </message>
 </context>
 <context>
     <name>DownloadSettings</name>
     <message>
-        <location filename="src/downloadsettings.cpp" line="36"/>
         <source>Change location...</source>
         <translation>Skift placering...</translation>
     </message>
     <message>
-        <location filename="src/downloadsettings.cpp" line="69"/>
         <source>Choose the download location</source>
         <translation>Vælg placering til downloads</translation>
     </message>
     <message>
-        <location filename="src/downloadsettings.cpp" line="81"/>
         <source>Download location changed.</source>
         <translation>Downloadplacering ændret.</translation>
     </message>
     <message>
-        <location filename="src/downloadsettings.cpp" line="83"/>
         <source>Current downloads will still go in the previous location.</source>
         <translation>Nuværende downloads vil stadig blive glemt i forrige placering.</translation>
     </message>
     <message>
-        <location filename="src/downloadsettings.cpp" line="94"/>
         <source>Downloading to: %1</source>
         <translation>Downloader til: %1</translation>
     </message>
 <context>
     <name>DownloadView</name>
     <message>
-        <location filename="src/downloadview.cpp" line="38"/>
-        <location filename="src/downloadview.h" line="45"/>
         <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>Henter opdatering...</translation>
-    </message>
-</context>
 <context>
     <name>Extra</name>
     <message>
-        <location filename="local/src/extra.cpp" line="251"/>
         <source>The executable file has been tempered with, maybe by a virus.</source>
         <translation>Den eksekverbare fil er blevet manipuleret, muligvis af en virus.</translation>
     </message>
     <message>
-        <location filename="local/src/extra.cpp" line="252"/>
         <source>%1 will not run. Try installing again.</source>
         <translation>%1 kører ikke. Prøv at geninstallere.</translation>
     </message>
     <message>
-        <location filename="local/src/extra.cpp" line="253"/>
         <source>Quit</source>
         <translation>Afslut</translation>
     </message>
     <message>
-        <location filename="local/src/extra.cpp" line="254"/>
         <source>Reinstall</source>
         <translation>Geninstaller</translation>
     </message>
 <context>
     <name>GlobalShortcuts</name>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="36"/>
         <source>Play</source>
         <translation>Afspil</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="37"/>
         <source>Pause</source>
         <translation>Pause</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="38"/>
         <source>Play/Pause</source>
         <translation>Afspil/Pause</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="39"/>
         <source>Stop</source>
         <translation>Stop</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="40"/>
         <source>Stop playing after current track</source>
         <translation>Stop afspilning efter det aktuelle spor</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="41"/>
         <source>Next track</source>
         <translation>Næste spor</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="42"/>
         <source>Previous track</source>
         <translation>Forrige spor</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="43"/>
         <source>Increase volume</source>
         <translation>Skru op</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="44"/>
         <source>Decrease volume</source>
         <translation>Skru ned</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="45"/>
         <source>Mute</source>
         <translation>Slå lyden fra</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="46"/>
         <source>Seek forward</source>
         <translation>Søg fremad</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="47"/>
         <source>Seek backward</source>
         <translation>Søg baglæns</translation>
     </message>
 <context>
     <name>HomeView</name>
     <message>
-        <location filename="src/homeview.cpp" line="58"/>
         <source>Search</source>
         <translation>Søg</translation>
     </message>
     <message>
-        <location filename="src/homeview.cpp" line="60"/>
         <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="65"/>
         <source>Browse</source>
         <translation>Gennemse</translation>
     </message>
     <message>
-        <location filename="src/homeview.cpp" line="67"/>
         <source>Browse videos by category</source>
         <translation>Gennemse videoer efter kategori</translation>
     </message>
     <message>
-        <location filename="src/homeview.cpp" line="71"/>
         <source>Subscriptions</source>
         <translation>Abonnementer</translation>
     </message>
     <message>
-        <location filename="src/homeview.cpp" line="73"/>
         <source>Channel subscriptions</source>
         <translation>Abonnementer på kanaler</translation>
     </message>
     <message>
-        <location filename="src/homeview.h" line="44"/>
         <source>Make yourself comfortable</source>
         <translation>Sæt dig godt til rette</translation>
     </message>
 <context>
     <name>LoadingWidget</name>
     <message>
-        <location filename="src/loadingwidget.cpp" line="125"/>
         <source>Error</source>
         <translation>Fejl</translation>
     </message>
 <context>
     <name>MainWindow</name>
     <message>
-        <location filename="src/mainwindow.cpp" line="291"/>
+        <source>&amp;Window</source>
+        <translation>&amp;Vindue</translation>
+    </message>
+    <message>
+        <source>&amp;Minimize</source>
+        <translation>&amp;Minimize</translation>
+    </message>
+    <message>
         <source>&amp;Stop</source>
         <translation>&amp;Stop</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="292"/>
         <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="307"/>
+        <source>P&amp;revious</source>
+        <translation>F&amp;orrige</translation>
+    </message>
+    <message>
+        <source>Go back to the previous track</source>
+        <translation>Gå tilbage til forrige nummer</translation>
+    </message>
+    <message>
         <source>S&amp;kip</source>
         <translation>S&amp;pring over</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="308"/>
         <source>Skip to the next video</source>
         <translation>Spring til næste video</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1134"/>
-        <source>&amp;Pause</source>
-        <translation>&amp;Pause</translation>
+        <source>&amp;Play</source>
+        <translation>&amp;Afspil</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1135"/>
-        <source>Pause playback</source>
-        <translation>Pause afspilning</translation>
+        <source>Resume playback</source>
+        <translation>Genoptag afspilning</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="321"/>
         <source>&amp;Full Screen</source>
         <translation>&amp;Fuldskærm</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="322"/>
         <source>Go full screen</source>
         <translation>Vis i fuldskærm</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="336"/>
+        <source>&amp;Compact Mode</source>
+        <translation>%</translation>
+    </message>
+    <message>
         <source>Hide the playlist and the toolbar</source>
         <translation>Skjul afspilningslisten og værktøjslinjen</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="349"/>
+        <source>Open the &amp;YouTube Page</source>
+        <translation>Åbn &amp;Youtube-siden</translation>
+    </message>
+    <message>
         <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="356"/>
+        <source>Copy the YouTube &amp;Link</source>
+        <translation>Kopier &amp;link til Youtube</translation>
+    </message>
+    <message>
         <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="363"/>
+        <source>Copy the Video Stream &amp;URL</source>
+        <translation>  
+Kopiér &amp;URL&apos;en til videostrømmen</translation>
+    </message>
+    <message>
         <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="370"/>
+        <source>Find Video &amp;Parts</source>
+        <translation>Find dele af videoen</translation>
+    </message>
+    <message>
         <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="376"/>
         <source>&amp;Remove</source>
         <translation>&amp;Fjern</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="377"/>
         <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="383"/>
         <source>Move &amp;Up</source>
         <translation>Flyt &amp;Op</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="384"/>
         <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="390"/>
         <source>Move &amp;Down</source>
         <translation>Flyt &amp;Ned</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="391"/>
         <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="402"/>
+        <source>&amp;Clear Recent Searches</source>
+        <translation>&amp;Ryd seneste søgninger</translation>
+    </message>
+    <message>
         <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="407"/>
         <source>&amp;Quit</source>
         <translation>&amp;Afslut</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="410"/>
         <source>Bye</source>
         <translation>Farvel</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="414"/>
         <source>&amp;Website</source>
         <translation>&amp;Hjemmeside</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="416"/>
         <source>%1 on the Web</source>
         <translation>%1 på nettet</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="422"/>
+        <source>Make a &amp;Donation</source>
+        <translation>Giv en &amp;Donation</translation>
+    </message>
+    <message>
         <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="427"/>
         <source>&amp;About</source>
         <translation>&amp;Om</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="429"/>
         <source>Info about %1</source>
         <translation>Info om %1</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="437"/>
         <source>Search</source>
         <translation>Søg</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="456"/>
         <source>Mute volume</source>
         <translation>Slå lyden fra</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="490"/>
-        <location filename="src/mainwindow.cpp" line="1609"/>
+        <source>&amp;Manually Start Playing</source>
+        <translation>Start afspilning &amp;manuelt</translation>
+    </message>
+    <message>
+        <source>Manually start playing videos</source>
+        <translation>Start afspilning af videoer manuelt</translation>
+    </message>
+    <message>
         <source>&amp;Downloads</source>
         <translation>&amp;Downloads</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="491"/>
         <source>Show details about video downloads</source>
         <translation>Vis deltaljer om video downloads</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="499"/>
         <source>&amp;Download</source>
         <translation>&amp;Download</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="500"/>
         <source>Download the current video</source>
         <translation>Download den aktuelle video</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="510"/>
         <source>Take &amp;Snapshot</source>
         <translation>Tag $Skærmbillede</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="517"/>
         <source>&amp;Subscribe to Channel</source>
         <translation>&amp;Abonner på kanal</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="525"/>
         <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="545"/>
         <source>&amp;Email</source>
         <translation>&amp;amp; E-mail</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="546"/>
         <source>Email</source>
         <translation>E-mail</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="551"/>
         <source>&amp;Close</source>
         <translation>&amp;Luk</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="561"/>
         <source>&amp;Float on Top</source>
         <translation>&amp;Behold øverst</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="566"/>
         <source>&amp;Adjust Window Size</source>
         <translation>&amp;Juster vinduesstørrelse</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="571"/>
         <source>&amp;Stop After This Video</source>
         <translation>&amp;Stop efter denne video</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="578"/>
         <source>&amp;Report an Issue...</source>
         <translation>&amp;Rapporter et problem...</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="582"/>
         <source>&amp;Refine Search...</source>
         <translation>&amp;Indskrænk søgning...</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="594"/>
         <source>More...</source>
         <translation>Mere...</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="597"/>
         <source>&amp;Related Videos</source>
         <translation>&amp;Relaterede videoer</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="599"/>
         <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="605"/>
         <source>Open in &amp;Browser...</source>
         <translation>Åbn i &amp;browser...</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="612"/>
-        <source>&amp;Love %1? Rate it!</source>
-        <translation>%Vild med %1? Bedøm det!</translation>
+        <source>Restricted Mode</source>
+        <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="633"/>
-        <source>&amp;Application</source>
-        <translation>&amp;Program</translation>
+        <source>Hide videos that may contain inappropriate content</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <source>&amp;Love %1? Rate it!</source>
+        <translation>%Vild med %1? Bedøm det!</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="618"/>
         <source>Buy %1...</source>
         <translation>Køb %1...</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="647"/>
+        <source>&amp;Application</source>
+        <translation>&amp;Program</translation>
+    </message>
+    <message>
         <source>&amp;Playback</source>
         <translation>&amp;Afspil</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="661"/>
         <source>&amp;Playlist</source>
         <translation>&amp;Afspilningsliste</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="670"/>
         <source>&amp;Video</source>
         <translation>&amp;Video</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="686"/>
-        <source>&amp;View</source>
-        <translation>&amp;Vis</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="695"/>
         <source>&amp;Share</source>
         <translation>&amp;Del</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="709"/>
+        <source>&amp;View</source>
+        <translation>&amp;Vis</translation>
+    </message>
+    <message>
         <source>&amp;Help</source>
         <translation>&amp;Hjælp</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="751"/>
         <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="1021"/>
-        <location filename="src/mainwindow.cpp" line="1027"/>
+        <source>Choose your content location</source>
+        <translation>Vælg placering for dit indhold</translation>
+    </message>
+    <message>
         <source>Opening %1</source>
         <translation>Åbner %1</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1080"/>
         <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="1081"/>
         <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="1086"/>
         <source>Close and cancel download</source>
         <translation>Luk og annuller download </translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1087"/>
         <source>Wait for download to finish</source>
         <translation>Vent til download er færdig</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1158"/>
-        <source>&amp;Loading...</source>
-        <translation>&amp;Loader...</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="1264"/>
-        <source>Leave &amp;Full Screen</source>
-        <translation>Forlad &amp;Fuld skærm</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="1718"/>
-        <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="1722"/>
-        <source>Remind me later</source>
-        <translation>Påmind mig senere</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="1723"/>
-        <source>Update</source>
-        <translation>Opdatér</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="1127"/>
         <source>Error: %1</source>
         <translation>Fejl: %1</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="300"/>
-        <source>P&amp;revious</source>
-        <translation>F&amp;orrige</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="301"/>
-        <source>Go back to the previous track</source>
-        <translation>Gå tilbage til forrige nummer</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="335"/>
-        <source>&amp;Compact Mode</source>
-        <translation>%</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="348"/>
-        <source>Open the &amp;YouTube Page</source>
-        <translation>Åbn &amp;Youtube-siden</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="355"/>
-        <source>Copy the YouTube &amp;Link</source>
-        <translation>Kopier &amp;link til Youtube</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="362"/>
-        <source>Copy the Video Stream &amp;URL</source>
-        <translation>  
-Kopiér &amp;URL&apos;en til videostrømmen</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="369"/>
-        <source>Find Video &amp;Parts</source>
-        <translation>Find dele af videoen</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="397"/>
-        <source>&amp;Clear Recent Searches</source>
-        <translation>&amp;Ryd seneste søgninger</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="421"/>
-        <source>Make a &amp;Donation</source>
-        <translation>Giv en &amp;Donation</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="483"/>
-        <source>&amp;Manually Start Playing</source>
-        <translation>Start afspilning &amp;manuelt</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="484"/>
-        <source>Manually start playing videos</source>
-        <translation>Start afspilning af videoer manuelt</translation>
+        <source>&amp;Pause</source>
+        <translation>&amp;Pause</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="847"/>
-        <source>Choose your content location</source>
-        <translation>Vælg placering for dit indhold</translation>
+        <source>Pause playback</source>
+        <translation>Pause afspilning</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="314"/>
-        <location filename="src/mainwindow.cpp" line="1142"/>
-        <location filename="src/mainwindow.cpp" line="1150"/>
-        <source>&amp;Play</source>
-        <translation>&amp;Afspil</translation>
+        <source>&amp;Loading...</source>
+        <translation>&amp;Loader...</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="315"/>
-        <location filename="src/mainwindow.cpp" line="1143"/>
-        <location filename="src/mainwindow.cpp" line="1151"/>
-        <source>Resume playback</source>
-        <translation>Genoptag afspilning</translation>
+        <source>Leave &amp;Full Screen</source>
+        <translation>Forlad &amp;Fuld skærm</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1437"/>
         <source>Remaining time: %1</source>
         <translation>Tilbageværende tid: %1</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1528"/>
         <source>Volume at %1%</source>
         <translation>Lydniveau på %1%</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1534"/>
         <source>Volume is muted</source>
         <translation>Lyden er slået fra</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1537"/>
         <source>Volume is unmuted</source>
         <translation>Lyden er slået til</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1548"/>
         <source>Maximum video definition set to %1</source>
         <translation>Maksimal videoopløsning sat til %1</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1595"/>
         <source>Your privacy is now safe</source>
         <translation>Dit privatliv er nu sikret</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1610"/>
         <source>Downloads complete</source>
         <translation>Downloads færdig</translation>
     </message>
+    <message>
+        <source>%1 version %2 is now available.</source>
+        <translation>%1 version %2 er nu tilgængelig.</translation>
+    </message>
+    <message>
+        <source>Remind me later</source>
+        <translation>Påmind mig senere</translation>
+    </message>
+    <message>
+        <source>Update</source>
+        <translation>Opdatér</translation>
+    </message>
 </context>
 <context>
     <name>MediaView</name>
     <message>
-        <location filename="src/mediaview.cpp" line="702"/>
         <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="710"/>
         <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="711"/>
         <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="800"/>
         <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="801"/>
         <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="833"/>
+        <source>Get the full version</source>
+        <translation>Hent den fulde version</translation>
+    </message>
+    <message>
         <source>Continue</source>
         <translation>Forsæt</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="988"/>
+        <source>Downloading %1</source>
+        <translation>Downloader %1</translation>
+    </message>
+    <message>
         <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="1001"/>
         <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="1003"/>
         <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="1096"/>
         <source>Sent from %1</source>
         <translation>Sendt fra %1</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="1128"/>
         <source>Unsubscribe from %1</source>
         <translation>Fjern abonnement fra %1</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="1132"/>
         <source>Subscribe to %1</source>
         <translation>Abonner på %1</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="1166"/>
         <source>Unsubscribed from %1</source>
         <translation>Abonnerer ikke længere på %1</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="1169"/>
         <source>Subscribed to %1</source>
         <translation>Abonnerer nu på %1</translation>
     </message>
-    <message>
-        <location filename="src/mediaview.cpp" line="808"/>
-        <source>Get the full version</source>
-        <translation>Hent den fulde version</translation>
-    </message>
-    <message>
-        <location filename="src/mediaview.cpp" line="847"/>
-        <source>Downloading %1</source>
-        <translation>Downloader %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>En ny version af %1 er tilgængelig!</translation>
     </message>
     <message>
-        <location filename="local/src/updatedialog.cpp" line="28"/>
         <source>%1 %2 is now available. You have %3.</source>
         <translation>%1 %2 er tilgængelig. Du har %3.</translation>
     </message>
     <message>
-        <location filename="local/src/updatedialog.cpp" line="33"/>
         <source>Would you like to download it now?</source>
         <translation>Ønsker du at hente den nu?</translation>
     </message>
     <message>
-        <location filename="local/src/updatedialog.cpp" line="39"/>
         <source>Skip This Version</source>
         <translation>Spring denne version over</translation>
     </message>
     <message>
-        <location filename="local/src/updatedialog.cpp" line="43"/>
         <source>Remind Me Later</source>
         <translation>Påmind mig senere</translation>
     </message>
     <message>
-        <location filename="local/src/updatedialog.cpp" line="47"/>
         <source>Install Update</source>
         <translation>Installér opdatering</translation>
     </message>
@@ -1114,7 +898,6 @@ Kopiér &amp;URL&apos;en til videostrømmen</translation>
 <context>
     <name>PasteLineEdit</name>
     <message>
-        <location filename="local/src/pastelineedit.cpp" line="6"/>
         <source>Paste</source>
         <translation>Indsæt</translation>
     </message>
@@ -1122,52 +905,42 @@ Kopiér &amp;URL&apos;en til videostrømmen</translation>
 <context>
     <name>PlaylistItemDelegate</name>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="209"/>
         <source>%1 views</source>
         <translation>%1 visninger</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="309"/>
         <source>%1 of %2 (%3) — %4</source>
         <translation>%1 af %2 (%3) — %4</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="316"/>
         <source>Preparing</source>
         <translation>Forbereder</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="318"/>
         <source>Failed</source>
         <translation>Fejl</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="320"/>
         <source>Completed</source>
         <translation>Fuldendt</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="322"/>
         <source>Stopped</source>
         <translation>Stoppet</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="358"/>
         <source>Stop downloading</source>
         <translation>Stop download</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="368"/>
         <source>Show in %1</source>
         <translation>VIs i %1</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="370"/>
         <source>Open parent folder</source>
         <translation>Åben ovenstående mappe</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="379"/>
         <source>Restart downloading</source>
         <translation>Genstart download</translation>
     </message>
@@ -1175,22 +948,18 @@ Kopiér &amp;URL&apos;en til videostrømmen</translation>
 <context>
     <name>PlaylistModel</name>
     <message>
-        <location filename="src/playlistmodel.cpp" line="70"/>
         <source>Searching...</source>
         <translation>Søger...</translation>
     </message>
     <message>
-        <location filename="src/playlistmodel.cpp" line="71"/>
         <source>Show %1 More</source>
         <translation>Vis %1 mere</translation>
     </message>
     <message>
-        <location filename="src/playlistmodel.cpp" line="72"/>
         <source>No videos</source>
         <translation>Ingen videoer</translation>
     </message>
     <message>
-        <location filename="src/playlistmodel.cpp" line="73"/>
         <source>No more videos</source>
         <translation>Ikke flere videoer</translation>
     </message>
@@ -1198,109 +967,86 @@ Kopiér &amp;URL&apos;en til videostrømmen</translation>
 <context>
     <name>RefineSearchWidget</name>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="49"/>
         <source>Sort by</source>
         <translation>Sorter efter</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="53"/>
         <source>Relevance</source>
         <translation>Relevans</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="54"/>
-        <location filename="src/refinesearchwidget.cpp" line="69"/>
         <source>Date</source>
         <translation>Dato</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="55"/>
         <source>View Count</source>
         <translation>Antal visninger</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="56"/>
         <source>Rating</source>
         <translation>Bedømmelse</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="73"/>
         <source>Anytime</source>
         <translation>Når som helst</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="74"/>
         <source>Today</source>
         <translation>I dag</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="75"/>
         <source>7 Days</source>
         <translation>7 dage</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="76"/>
         <source>30 Days</source>
         <translation>30 dage</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="89"/>
         <source>Duration</source>
         <translation>Varighed</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="93"/>
-        <location filename="src/refinesearchwidget.cpp" line="119"/>
         <source>All</source>
         <translation>Alle</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="94"/>
         <source>Short</source>
         <translation>Kort</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="95"/>
         <source>Medium</source>
         <translation>Medium</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="96"/>
         <source>Long</source>
         <translation>Lang</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="99"/>
         <source>Less than 4 minutes</source>
         <translation>Mindre end 4 minutter</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="100"/>
         <source>Between 4 and 20 minutes</source>
         <translation>Mellem 4 og 20 minutter</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="101"/>
         <source>Longer than 20 minutes</source>
         <translation>Længere end 20 minutter</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="115"/>
         <source>Quality</source>
         <translation>Kvalitet</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="120"/>
         <source>High Definition</source>
         <translation>High Definition</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="123"/>
         <source>720p or higher</source>
         <translation>720p eller højere</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="136"/>
         <source>Done</source>
         <translation>Afsluttet</translation>
     </message>
@@ -1308,7 +1054,6 @@ Kopiér &amp;URL&apos;en til videostrømmen</translation>
 <context>
     <name>RegionsView</name>
     <message>
-        <location filename="src/regionsview.cpp" line="39"/>
         <source>Done</source>
         <translation>Afslut</translation>
     </message>
@@ -1316,7 +1061,6 @@ Kopiér &amp;URL&apos;en til videostrømmen</translation>
 <context>
     <name>SearchLineEdit</name>
     <message>
-        <location filename="src/searchlineedit.cpp" line="55"/>
         <source>Search</source>
         <translation>Søg</translation>
     </message>
@@ -1324,67 +1068,54 @@ Kopiér &amp;URL&apos;en til videostrømmen</translation>
 <context>
     <name>SearchView</name>
     <message>
-        <location filename="src/searchview.cpp" line="83"/>
         <source>Welcome to &lt;a href=&apos;%1&apos;&gt;%2&lt;/a&gt;,</source>
         <translation>Velkommen til &lt;a href=&apos;%1&apos;&gt;%2&lt;/a&gt;,</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="200"/>
-        <source>Get the full version</source>
-        <translation>Hent den fulde version</translation>
-    </message>
-    <message>
-        <location filename="src/searchview.cpp" line="110"/>
         <source>Enter</source>
         <extracomment>&quot;Enter&quot;, as in &quot;type&quot;. The whole phrase says: &quot;Enter a keyword to start watching videos&quot;</extracomment>
         <translation>Indtast</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="117"/>
         <source>a keyword</source>
         <translation>et nøgleord</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="118"/>
         <source>a channel</source>
         <translation>en kanal</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="125"/>
         <source>to start watching videos.</source>
         <translation>for at  begynde at se video.</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="156"/>
         <source>Watch</source>
         <translation>Afspil</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="174"/>
         <source>Recent keywords</source>
         <translation>Seneste nøgleord</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="186"/>
         <source>Recent channels</source>
         <translation>Nyeste kanaler</translation>
     </message>
+    <message>
+        <source>Get the full version</source>
+        <translation>Hent den fulde version</translation>
+    </message>
 </context>
 <context>
     <name>SidebarHeader</name>
     <message>
-        <location filename="src/sidebarheader.cpp" line="38"/>
-        <location filename="src/sidebarheader.cpp" line="45"/>
         <source>&amp;Back</source>
         <translation>&amp;Tilbage</translation>
     </message>
     <message>
-        <location filename="src/sidebarheader.cpp" line="76"/>
         <source>Forward to %1</source>
         <translation>Frem til %1</translation>
     </message>
     <message>
-        <location filename="src/sidebarheader.cpp" line="89"/>
         <source>Back to %1</source>
         <translation>Tilbage til %1</translation>
     </message>
@@ -1392,12 +1123,10 @@ Kopiér &amp;URL&apos;en til videostrømmen</translation>
 <context>
     <name>SidebarWidget</name>
     <message>
-        <location filename="src/sidebarwidget.cpp" line="68"/>
         <source>Refine Search</source>
         <translation>Indskrænk søgning</translation>
     </message>
     <message>
-        <location filename="src/sidebarwidget.cpp" line="167"/>
         <source>Did you mean: %1</source>
         <translation>Mente du: %1</translation>
     </message>
@@ -1405,17 +1134,14 @@ Kopiér &amp;URL&apos;en til videostrømmen</translation>
 <context>
     <name>SnapshotSettings</name>
     <message>
-        <location filename="src/snapshotsettings.cpp" line="47"/>
         <source>Change location...</source>
         <translation>Skift placering...</translation>
     </message>
     <message>
-        <location filename="src/snapshotsettings.cpp" line="64"/>
         <source>Snapshot saved to %1</source>
         <translation>Skærmbillede gemt på %1</translation>
     </message>
     <message>
-        <location filename="src/snapshotsettings.cpp" line="117"/>
         <source>Snapshots location changed.</source>
         <translation>Lokation for skærmbilleder ændret.</translation>
     </message>
@@ -1423,263 +1149,219 @@ Kopiér &amp;URL&apos;en til videostrømmen</translation>
 <context>
     <name>StandardFeedsView</name>
     <message>
-        <location filename="src/standardfeedsview.cpp" line="107"/>
         <source>Most Popular</source>
         <translation>Mest populære</translation>
     </message>
 </context>
+<context>
+    <name>UpdateDialog</name>
+    <message>
+        <source>Downloading update...</source>
+        <translation>Henter opdatering...</translation>
+    </message>
+    <message>
+        <source>Downloading %1...</source>
+        <translation type="unfinished"/>
+    </message>
+</context>
 <context>
     <name>Video</name>
     <message>
-        <location filename="src/video.cpp" line="287"/>
         <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="292"/>
-        <source>Network error: %1 for %2</source>
-        <translation>Netværksfejl: %1 for %2</translation>
-    </message>
 </context>
 <context>
     <name>YTRegions</name>
     <message>
-        <location filename="src/ytregions.cpp" line="28"/>
         <source>Algeria</source>
         <translation>Algeriet</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="29"/>
         <source>Argentina</source>
         <translation>Argentina</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="30"/>
         <source>Australia</source>
         <translation>Austalien</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="31"/>
         <source>Belgium</source>
         <translation>Belgien</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="32"/>
         <source>Brazil</source>
         <translation>Brasilien</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="33"/>
         <source>Canada</source>
         <translation>Canada</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="34"/>
         <source>Chile</source>
         <translation>Chile</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="35"/>
         <source>Colombia</source>
         <translation>Colombia</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="36"/>
         <source>Czech Republic</source>
         <translation>Tjekkiet</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="37"/>
         <source>Egypt</source>
         <translation>Egypten</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="38"/>
         <source>France</source>
         <translation>Frankrig</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="39"/>
         <source>Germany</source>
         <translation>Tyskland</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="40"/>
         <source>Ghana</source>
         <translation>Ghana</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="41"/>
         <source>Greece</source>
         <translation>Grækenland</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="42"/>
         <source>Hong Kong</source>
         <translation>Hong Kong</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="43"/>
         <source>Hungary</source>
         <translation>Ungarn</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="44"/>
         <source>India</source>
         <translation>Indien</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="45"/>
         <source>Indonesia</source>
         <translation>Indonesien</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="46"/>
         <source>Ireland</source>
         <translation>Irland</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="47"/>
         <source>Israel</source>
         <translation>Israel</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="48"/>
         <source>Italy</source>
         <translation>Italien</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="49"/>
         <source>Japan</source>
         <translation>Japan</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="50"/>
         <source>Jordan</source>
         <translation>Jordan</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="51"/>
         <source>Kenya</source>
         <translation>Kenya</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="52"/>
         <source>Malaysia</source>
         <translation>Malaysia</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="53"/>
         <source>Mexico</source>
         <translation>Mexico</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="54"/>
         <source>Morocco</source>
         <translation>Marokko</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="55"/>
         <source>Netherlands</source>
         <translation>Nederlandende</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="56"/>
         <source>New Zealand</source>
         <translation>New Zealand</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="57"/>
         <source>Nigeria</source>
         <translation>Nigeria</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="58"/>
         <source>Peru</source>
         <translation>Peru</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="59"/>
         <source>Philippines</source>
         <translation>Philipinierne</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="60"/>
         <source>Poland</source>
         <translation>Polen</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="61"/>
         <source>Russia</source>
         <translation>Rusland</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="62"/>
         <source>Saudi Arabia</source>
         <translation>Saudi-Arabien</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="63"/>
         <source>Singapore</source>
         <translation>Singapore</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="64"/>
         <source>South Africa</source>
         <translation>Sydfrika</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="65"/>
         <source>South Korea</source>
         <translation>Sydkorea</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="66"/>
         <source>Spain</source>
         <translation>Spanien</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="67"/>
         <source>Sweden</source>
         <translation>Sverige</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="68"/>
         <source>Taiwan</source>
         <translation>Taiwan</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="69"/>
         <source>Tunisia</source>
         <translation>Tunisien</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="70"/>
         <source>Turkey</source>
         <translation>Tyrkiet</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="71"/>
         <source>Uganda</source>
         <translation>Uganda</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="72"/>
         <source>United Arab Emirates</source>
         <translation>Forenede Arabiske Emirater</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="73"/>
         <source>United Kingdom</source>
         <translation>Storbritanien</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="74"/>
         <source>Yemen</source>
         <translation>Yemen</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="148"/>
         <source>Worldwide</source>
         <translation>Hele verden</translation>
     </message>
index 909db7a303f2d8056645a4929c943b08a9145dd7..6802af7f06b06236fb91539f40127a147de0e635 100644 (file)
@@ -2,67 +2,42 @@
 <context>
     <name>AboutView</name>
     <message>
-        <location filename="src/aboutview.cpp" line="58"/>
         <source>There&apos;s life outside the browser!</source>
         <translation>Es gibt ein Leben außerhalb des Browsers!</translation>
     </message>
     <message>
-        <location filename="src/aboutview.cpp" line="59"/>
         <source>Version %1</source>
         <translation>Version %1</translation>
     </message>
     <message>
-        <location filename="src/aboutview.cpp" line="64"/>
         <source>Licensed to: %1</source>
         <translation>Lizenziert für: %1</translation>
     </message>
     <message>
-        <location filename="src/aboutview.cpp" line="68"/>
         <source>%1 is Free Software but its development takes precious time.</source>
         <translation>%1 ist Freie Software, aber die Entwicklung kostet wertvolle Zeit.</translation>
     </message>
     <message>
-        <location filename="src/aboutview.cpp" line="69"/>
         <source>Please &lt;a href=&apos;%1&apos;&gt;donate&lt;/a&gt; to support the continued development of %2.</source>
         <translation>Bitte &lt;a href=&apos;%1&apos;&gt;spenden&lt;/a&gt; Sie, um die Weiterentwicklung von %2 zu unterstützen.</translation>
     </message>
     <message>
-        <location filename="src/aboutview.cpp" line="73"/>
-        <source>You may want to try my other apps as well:</source>
-        <translation>Vielleicht möchten Sie auch meine anderen Apps ausprobieren:</translation>
-    </message>
-    <message>
-        <location filename="src/aboutview.cpp" line="76"/>
-        <source>%1, a YouTube music player</source>
-        <translation>%1, ein YouTube-Musik-Player</translation>
-    </message>
-    <message>
-        <location filename="src/aboutview.cpp" line="80"/>
-        <source>%1, a music player</source>
-        <translation>%1, ein Musik-Player</translation>
-    </message>
-    <message>
-        <location filename="src/aboutview.cpp" line="86"/>
         <source>Translate %1 to your native language using %2</source>
         <translation>Übersetzen Sie %1 in Ihre Muttersprache mit %2</translation>
     </message>
     <message>
-        <location filename="src/aboutview.cpp" line="91"/>
         <source>Icon designed by %1.</source>
         <translation>Icons wurden gestaltet von %1.</translation>
     </message>
     <message>
-        <location filename="src/aboutview.cpp" line="95"/>
         <source>Released under the &lt;a href=&apos;%1&apos;&gt;GNU General Public License&lt;/a&gt;</source>
         <translation>Veröffentlicht unter der &lt;a href=&apos;%1&apos;&gt;GNU General Public License&lt;/a&gt;</translation>
     </message>
     <message>
-        <location filename="src/aboutview.cpp" line="110"/>
         <source>&amp;Close</source>
         <translation>&amp;Schließen</translation>
     </message>
     <message>
-        <location filename="src/aboutview.h" line="40"/>
         <source>About</source>
         <translation>Über</translation>
     </message>
 <context>
     <name>ActivationDialog</name>
     <message>
-        <location filename="local/src/activationdialog.cpp" line="17"/>
         <source>Enter your License Details</source>
         <translation>Geben Sie Ihre Lizenzierungsinformationen ein</translation>
     </message>
     <message>
-        <location filename="local/src/activationdialog.cpp" line="29"/>
         <source>&amp;Email:</source>
         <translation>&amp;E-mail:</translation>
     </message>
     <message>
-        <location filename="local/src/activationdialog.cpp" line="35"/>
         <source>&amp;Code:</source>
         <translation>&amp;Schlüssel:</translation>
     </message>
 <context>
     <name>ActivationView</name>
     <message>
-        <location filename="local/src/activationview.cpp" line="47"/>
         <source>Please license %1</source>
         <translation>Bitte lizenzieren Sie %1</translation>
     </message>
     <message>
-        <location filename="local/src/activationview.cpp" line="51"/>
         <source>This demo has expired.</source>
         <translation>Diese Demo ist abgelaufen.</translation>
     </message>
     <message>
-        <location filename="local/src/activationview.cpp" line="53"/>
         <source>The full version allows you to watch videos without interruptions.</source>
-        <oldsource>The full version allows you to download videos longer than %1 minutes and to watch videos without interruptions.</oldsource>
         <translation>Die Vollversion erlaubt es Ihnen, Videos ohne Unterbrechung anzuschauen.</translation>
     </message>
     <message>
-        <location filename="local/src/activationview.cpp" line="55"/>
         <source>Without a license, the application will expire in %1 days.</source>
         <translation>Ohne Lizenz läuft das Programm nur noch %1 Tage.</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>Mit dem Kauf der Vollversion unterstützen Sie auch die harte Arbeit, die ich in die Erstellung von %1 gesteckt habe.</translation>
     </message>
     <message>
-        <location filename="local/src/activationview.cpp" line="70"/>
         <source>Use Demo</source>
         <translation>Demo verwenden</translation>
     </message>
     <message>
-        <location filename="local/src/activationview.cpp" line="77"/>
         <source>Enter License</source>
         <translation>Lizenzdaten eingeben</translation>
     </message>
     <message>
-        <location filename="local/src/activationview.cpp" line="85"/>
         <source>Buy License</source>
         <translation>Lizenz kaufen</translation>
     </message>
 </context>
+<context>
+    <name>AppWidget</name>
+    <message>
+        <source>Download</source>
+        <translation>Herunterladen</translation>
+    </message>
+</context>
 <context>
     <name>ChannelAggregator</name>
     <message>
-        <location filename="src/channelaggregator.cpp" line="183"/>
         <source>By %1</source>
         <translation>Von %1</translation>
     </message>
     <message numerus="yes">
-        <location filename="src/channelaggregator.cpp" line="185"/>
         <source>You have %n new video(s)</source>
         <translation type="unfinished"><numerusform></numerusform><numerusform></numerusform></translation>
     </message>
 <context>
     <name>ChannelItemDelegate</name>
     <message>
-        <location filename="src/channelitemdelegate.cpp" line="67"/>
         <source>All Videos</source>
         <translation>Alle Videos</translation>
     </message>
     <message>
-        <location filename="src/channelitemdelegate.cpp" line="85"/>
         <source>Unwatched Videos</source>
         <translation>Ungesehene Videos</translation>
     </message>
 <context>
     <name>ChannelView</name>
     <message>
-        <location filename="src/channelview.cpp" line="151"/>
-        <source>Mark all as watched</source>
-        <translation>Alle als gesehen markieren</translation>
-    </message>
-    <message>
-        <location filename="src/channelview.cpp" line="159"/>
-        <source>Show Updated</source>
-        <translation>Zeige aktualisierte</translation>
-    </message>
-    <message>
-        <location filename="src/channelview.cpp" line="103"/>
         <source>Name</source>
         <translation>Name</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="110"/>
         <source>Last Updated</source>
         <translation>Zuletzt aktualisiert</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="117"/>
         <source>Last Added</source>
         <translation>Zuletzt hinzugefügt</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="124"/>
         <source>Last Watched</source>
         <translation>Zuletzt angesehen</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="131"/>
         <source>Most Watched</source>
         <translation>Am meisten angesehen</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="139"/>
         <source>Sort by</source>
         <translation>Sortieren nach</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="222"/>
+        <source>Mark all as watched</source>
+        <translation>Alle als gesehen markieren</translation>
+    </message>
+    <message>
+        <source>Show Updated</source>
+        <translation>Zeige aktualisierte</translation>
+    </message>
+    <message>
         <source>All Videos</source>
         <translation>Alle Videos</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="226"/>
         <source>Unwatched Videos</source>
         <translation>Ungesehene Videos</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="244"/>
         <source>Mark as Watched</source>
         <translation>Als gesehen markieren</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="257"/>
         <source>Unsubscribe</source>
         <translation>Abonnement beenden</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="270"/>
         <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="272"/>
         <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>
     <name>ClearButton</name>
     <message>
-        <location filename="src/exlineedit.cpp" line="6"/>
         <source>Clear</source>
         <translation>Säubern</translation>
     </message>
 <context>
     <name>DataUtils</name>
     <message>
-        <location filename="src/datautils.cpp" line="88"/>
         <source>Just now</source>
         <translation>Jetzt</translation>
     </message>
     <message numerus="yes">
-        <location filename="src/datautils.cpp" line="90"/>
-        <source>%n minute(s) ago</source>
-        <translation><numerusform>Vor %n Minute(n)</numerusform><numerusform>Vor %n Minute(n)</numerusform></translation>
-    </message>
-    <message numerus="yes">
-        <location filename="src/datautils.cpp" line="92"/>
         <source>%n hour(s) ago</source>
-        <translation><numerusform>Vor %n Stunde(n)</numerusform><numerusform>Vor %n Stunde(n)</numerusform></translation>
+        <translation type="unfinished"><numerusform></numerusform><numerusform></numerusform></translation>
     </message>
     <message numerus="yes">
-        <location filename="src/datautils.cpp" line="94"/>
         <source>%n day(s) ago</source>
-        <translation><numerusform>Vor %n Tag(en)</numerusform><numerusform>Vor %n Tag(en)</numerusform></translation>
+        <translation type="unfinished"><numerusform></numerusform><numerusform></numerusform></translation>
     </message>
     <message numerus="yes">
-        <location filename="src/datautils.cpp" line="96"/>
         <source>%n weeks(s) ago</source>
-        <translation><numerusform>Vor %n Woche(n)</numerusform><numerusform>Vor %n Woche(n)</numerusform></translation>
+        <translation type="unfinished"><numerusform></numerusform><numerusform></numerusform></translation>
     </message>
     <message numerus="yes">
-        <location filename="src/datautils.cpp" line="98"/>
         <source>%n month(s) ago</source>
-        <translation><numerusform>Vor %n Monat(en)</numerusform><numerusform>Vor %n Monat(en)</numerusform></translation>
+        <translation type="unfinished"><numerusform></numerusform><numerusform></numerusform></translation>
     </message>
 </context>
 <context>
     <name>DownloadItem</name>
     <message>
-        <location filename="src/downloaditem.cpp" line="406"/>
         <source>bytes</source>
         <translation>Bytes</translation>
     </message>
     <message>
-        <location filename="src/downloaditem.cpp" line="409"/>
         <source>KB</source>
         <translation>kB</translation>
     </message>
     <message>
-        <location filename="src/downloaditem.cpp" line="412"/>
         <source>MB</source>
         <translation>MB</translation>
     </message>
     <message>
-        <location filename="src/downloaditem.cpp" line="421"/>
         <source>bytes/sec</source>
         <translation>Bytes/s</translation>
     </message>
     <message>
-        <location filename="src/downloaditem.cpp" line="424"/>
         <source>KB/sec</source>
         <translation>kB/s</translation>
     </message>
     <message>
-        <location filename="src/downloaditem.cpp" line="427"/>
         <source>MB/sec</source>
         <translation>MB/s</translation>
     </message>
     <message>
-        <location filename="src/downloaditem.cpp" line="433"/>
         <source>seconds</source>
         <translation>Sekunden</translation>
     </message>
     <message>
-        <location filename="src/downloaditem.cpp" line="436"/>
         <source>minutes</source>
         <translation>Minuten</translation>
     </message>
     <message>
-        <location filename="src/downloaditem.cpp" line="439"/>
         <source>%4 %5 remaining</source>
         <translation>%4 %5 verbleibend</translation>
     </message>
 <context>
     <name>DownloadManager</name>
     <message>
-        <location filename="src/downloadmanager.cpp" line="77"/>
         <source>This is just the demo version of %1.</source>
         <translation>Dies ist nur die Demoversion von %1.</translation>
     </message>
     <message>
-        <location filename="src/downloadmanager.cpp" line="79"/>
         <source>It can only download videos shorter than %1 minutes so you can test the download functionality.</source>
         <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="85"/>
         <source>Continue</source>
         <translation>Fortfahren</translation>
     </message>
     <message>
-        <location filename="src/downloadmanager.cpp" line="86"/>
         <source>Get the full version</source>
         <translation>Die Vollversion kaufen</translation>
     </message>
     <message>
-        <location filename="src/downloadmanager.cpp" line="157"/>
         <source>%1 downloaded in %2</source>
         <translation>%1 heruntergeladen nach %2</translation>
     </message>
     <message>
-        <location filename="src/downloadmanager.cpp" line="160"/>
         <source>Download finished</source>
         <translation>Herunterladen abgeschlossen</translation>
     </message>
     <message numerus="yes">
-        <location filename="src/downloadmanager.cpp" line="165"/>
         <source>%n Download(s)</source>
         <translation type="unfinished"><numerusform></numerusform><numerusform></numerusform></translation>
     </message>
 <context>
     <name>DownloadSettings</name>
     <message>
-        <location filename="src/downloadsettings.cpp" line="36"/>
         <source>Change location...</source>
         <translation>Speicherort ändern…</translation>
     </message>
     <message>
-        <location filename="src/downloadsettings.cpp" line="69"/>
         <source>Choose the download location</source>
         <translation>Wähle den Speicherort</translation>
     </message>
     <message>
-        <location filename="src/downloadsettings.cpp" line="81"/>
         <source>Download location changed.</source>
         <translation>Speicherort wurde geändert.</translation>
     </message>
     <message>
-        <location filename="src/downloadsettings.cpp" line="83"/>
         <source>Current downloads will still go in the previous location.</source>
         <translation>Aktuelle Downloads werden immer noch im alten Speicherort gespeichert.</translation>
     </message>
     <message>
-        <location filename="src/downloadsettings.cpp" line="94"/>
         <source>Downloading to: %1</source>
         <translation>Lade herunter nach: %1</translation>
     </message>
 <context>
     <name>DownloadView</name>
     <message>
-        <location filename="src/downloadview.cpp" line="38"/>
-        <location filename="src/downloadview.h" line="45"/>
         <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>Lade Aktualisierung herunter...</translation>
-    </message>
-</context>
 <context>
     <name>Extra</name>
     <message>
-        <location filename="local/src/extra.cpp" line="251"/>
         <source>The executable file has been tempered with, maybe by a virus.</source>
-        <translation type="unfinished"/>
+        <translation>Die Binärdatei wurde kompromittiert. Möglicherweise von einem Virus.</translation>
     </message>
     <message>
-        <location filename="local/src/extra.cpp" line="252"/>
         <source>%1 will not run. Try installing again.</source>
-        <translation type="unfinished"/>
+        <translation>%1 startet nicht. Bitte versuchen Sie eine Neuinstallation.</translation>
     </message>
     <message>
-        <location filename="local/src/extra.cpp" line="253"/>
         <source>Quit</source>
         <translation>Verlassen</translation>
     </message>
     <message>
-        <location filename="local/src/extra.cpp" line="254"/>
         <source>Reinstall</source>
         <translation>Neuinstallation</translation>
     </message>
 <context>
     <name>GlobalShortcuts</name>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="36"/>
         <source>Play</source>
         <translation>Abspielen</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="37"/>
         <source>Pause</source>
         <translation>Pause</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="38"/>
         <source>Play/Pause</source>
         <translation>Abspielen/Pause</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="39"/>
         <source>Stop</source>
         <translation>Halt</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="40"/>
         <source>Stop playing after current track</source>
         <translation>Nach aktuellem Titel Wiedergabe anhalten</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="41"/>
         <source>Next track</source>
         <translation>Nächster Titel</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="42"/>
         <source>Previous track</source>
         <translation>Vorheriger Titel</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="43"/>
         <source>Increase volume</source>
         <translation>Lautstärke erhöhen</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="44"/>
         <source>Decrease volume</source>
         <translation>Lautstärke verringern</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="45"/>
         <source>Mute</source>
         <translation>Stummschalten</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="46"/>
         <source>Seek forward</source>
         <translation>Vorwärts spulen</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="47"/>
         <source>Seek backward</source>
         <translation>Rückwärts spulen</translation>
     </message>
 <context>
     <name>HomeView</name>
     <message>
-        <location filename="src/homeview.cpp" line="58"/>
         <source>Search</source>
         <translation>Suche</translation>
     </message>
     <message>
-        <location filename="src/homeview.cpp" line="60"/>
         <source>Find videos and channels by keyword</source>
         <translation>Videos und Kanäle nach Suchbegriff finden</translation>
     </message>
     <message>
-        <location filename="src/homeview.cpp" line="65"/>
         <source>Browse</source>
         <translation>Stöbern</translation>
     </message>
     <message>
-        <location filename="src/homeview.cpp" line="67"/>
         <source>Browse videos by category</source>
         <translation>Videos nach Kategorien durchstöbern</translation>
     </message>
     <message>
-        <location filename="src/homeview.cpp" line="71"/>
         <source>Subscriptions</source>
         <translation>Abonnements</translation>
     </message>
     <message>
-        <location filename="src/homeview.cpp" line="73"/>
         <source>Channel subscriptions</source>
         <translation>Abonnierte Kanäle</translation>
     </message>
     <message>
-        <location filename="src/homeview.h" line="44"/>
         <source>Make yourself comfortable</source>
         <translation>Machen Sie es sich gemütlich</translation>
     </message>
 <context>
     <name>LoadingWidget</name>
     <message>
-        <location filename="src/loadingwidget.cpp" line="125"/>
         <source>Error</source>
         <translation>Fehler</translation>
     </message>
 <context>
     <name>MainWindow</name>
     <message>
-        <location filename="src/mainwindow.cpp" line="291"/>
+        <source>&amp;Window</source>
+        <translation>&amp;Fenster</translation>
+    </message>
+    <message>
+        <source>&amp;Minimize</source>
+        <translation>&amp;Minimieren</translation>
+    </message>
+    <message>
         <source>&amp;Stop</source>
         <translation>&amp;Stop</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="292"/>
         <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="307"/>
+        <source>P&amp;revious</source>
+        <translation>V&amp;origes</translation>
+    </message>
+    <message>
+        <source>Go back to the previous track</source>
+        <translation>Zum vorherigen Titel zurückgehen</translation>
+    </message>
+    <message>
         <source>S&amp;kip</source>
         <translation>Ü&amp;berspringen</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="308"/>
         <source>Skip to the next video</source>
         <translation>Zum nächsten Video springen</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1134"/>
-        <source>&amp;Pause</source>
-        <translation>&amp;Pause</translation>
+        <source>&amp;Play</source>
+        <translation>&amp;Abspielen</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1135"/>
-        <source>Pause playback</source>
-        <translation>Wiedergabe pausieren</translation>
+        <source>Resume playback</source>
+        <translation>Wiedergabe fortsetzen</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="321"/>
         <source>&amp;Full Screen</source>
         <translation>&amp;Vollbildmodus</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="322"/>
         <source>Go full screen</source>
         <translation>Vollbildmodus aktivieren</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="336"/>
+        <source>&amp;Compact Mode</source>
+        <translation>&amp;Kompakt-Modus</translation>
+    </message>
+    <message>
         <source>Hide the playlist and the toolbar</source>
         <translation>Abspielliste und Werkzeugleiste ausblenden</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="349"/>
+        <source>Open the &amp;YouTube Page</source>
+        <translation>&amp;YouTube-Seite öffnen</translation>
+    </message>
+    <message>
         <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="356"/>
+        <source>Copy the YouTube &amp;Link</source>
+        <translation>YouTube-&amp;Link kopieren</translation>
+    </message>
+    <message>
         <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="363"/>
+        <source>Copy the Video Stream &amp;URL</source>
+        <translation>Video-Stream-&amp;URL kopieren</translation>
+    </message>
+    <message>
         <source>Copy the current video stream URL to the clipboard</source>
         <translation>Video-Link in die Zwischenablage kopieren</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="370"/>
+        <source>Find Video &amp;Parts</source>
+        <translation>Suche weitere Video&amp;teile</translation>
+    </message>
+    <message>
         <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="376"/>
         <source>&amp;Remove</source>
         <translation>Entfe&amp;rnen</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="377"/>
         <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="383"/>
         <source>Move &amp;Up</source>
         <translation>Bewege &amp;hinauf</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="384"/>
         <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="390"/>
         <source>Move &amp;Down</source>
         <translation>Bewege hin&amp;ab</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="391"/>
         <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="402"/>
+        <source>&amp;Clear Recent Searches</source>
+        <translation>Vorherige Suchbegriffe löschen</translation>
+    </message>
+    <message>
         <source>Clear the search history. Cannot be undone.</source>
         <translation>Den Suchverlauf löschen. Kann nicht rückgängig gemacht werden.</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="407"/>
         <source>&amp;Quit</source>
         <translation>&amp;Verlassen</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="410"/>
         <source>Bye</source>
         <translation>Tschüss</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="414"/>
         <source>&amp;Website</source>
         <translation>&amp;Webseite</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="416"/>
         <source>%1 on the Web</source>
         <translation>%1 im Web</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="422"/>
+        <source>Make a &amp;Donation</source>
+        <translation>&amp;Spenden</translation>
+    </message>
+    <message>
         <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="427"/>
         <source>&amp;About</source>
         <translation>&amp;Über</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="429"/>
         <source>Info about %1</source>
         <translation>Informationen über %1</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="437"/>
         <source>Search</source>
         <translation>Suche</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="456"/>
         <source>Mute volume</source>
         <translation>Stummschalten</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="490"/>
-        <location filename="src/mainwindow.cpp" line="1609"/>
+        <source>&amp;Manually Start Playing</source>
+        <translation>&amp;Manuelles Starten der Wiedergabe</translation>
+    </message>
+    <message>
+        <source>Manually start playing videos</source>
+        <translation>Manuelles Starten der Videowiedergabe</translation>
+    </message>
+    <message>
         <source>&amp;Downloads</source>
         <translation>&amp;Downloads</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="491"/>
         <source>Show details about video downloads</source>
         <translation>Details über Video-Downloads anzeigen</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="499"/>
         <source>&amp;Download</source>
         <translation>H&amp;erunterladen</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="500"/>
         <source>Download the current video</source>
         <translation>Das aktuelle Video herunterladen</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="510"/>
         <source>Take &amp;Snapshot</source>
         <translation>&amp;Schnappschuss machen</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="517"/>
         <source>&amp;Subscribe to Channel</source>
         <translation>&amp;Abonnieren des Kanals</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="525"/>
         <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="545"/>
         <source>&amp;Email</source>
         <translation>&amp;E-Mail</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="546"/>
         <source>Email</source>
         <translation>E-Mail</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="551"/>
         <source>&amp;Close</source>
         <translation>&amp;Schließen</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="561"/>
         <source>&amp;Float on Top</source>
         <translation>Im Vordergrund &amp;bleiben</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="566"/>
         <source>&amp;Adjust Window Size</source>
         <translation>&amp;Fenstergröße anpassen</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="571"/>
         <source>&amp;Stop After This Video</source>
         <translation>Nach diesem Video &amp;anhalten</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="578"/>
         <source>&amp;Report an Issue...</source>
         <translation>&amp;Ein Problem melden ...</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="582"/>
         <source>&amp;Refine Search...</source>
         <translation>&amp;Suche verfeinern ...</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="594"/>
         <source>More...</source>
         <translation>Mehr...</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="597"/>
         <source>&amp;Related Videos</source>
         <translation>Ve&amp;rwandte Videos</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="599"/>
         <source>Watch videos related to the current one</source>
         <translation>Verwandte Videos zum Aktuellen ansehen</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="605"/>
         <source>Open in &amp;Browser...</source>
         <translation>Im &amp;Browser öffnen...</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="612"/>
-        <source>&amp;Love %1? Rate it!</source>
-        <translation>&amp;Gefällt Ihnen %1? Bewertung abgeben!</translation>
+        <source>Restricted Mode</source>
+        <translation>eingeschränkter Modus</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="633"/>
-        <source>&amp;Application</source>
-        <translation>&amp;Anwendung</translation>
+        <source>Hide videos that may contain inappropriate content</source>
+        <translation>Verstecke Videos die unpassende Inhalte enthalten können</translation>
+    </message>
+    <message>
+        <source>&amp;Love %1? Rate it!</source>
+        <translation>&amp;Gefällt Ihnen %1? Bewertung abgeben!</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="618"/>
         <source>Buy %1...</source>
         <translation>%1 kaufen...</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="647"/>
+        <source>&amp;Application</source>
+        <translation>&amp;Anwendung</translation>
+    </message>
+    <message>
         <source>&amp;Playback</source>
         <translation>&amp;Wiedergabe</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="661"/>
         <source>&amp;Playlist</source>
         <translation>A&amp;bspielliste</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="670"/>
         <source>&amp;Video</source>
         <translation>&amp;Video</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="686"/>
-        <source>&amp;View</source>
-        <translation>&amp;Ansehen</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="695"/>
         <source>&amp;Share</source>
         <translation>&amp;Teilen</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="709"/>
+        <source>&amp;View</source>
+        <translation>&amp;Ansehen</translation>
+    </message>
+    <message>
         <source>&amp;Help</source>
         <translation>&amp;Hilfe</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="751"/>
         <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="1021"/>
-        <location filename="src/mainwindow.cpp" line="1027"/>
+        <source>Choose your content location</source>
+        <translation>Wähle ein Land für Inhalte</translation>
+    </message>
+    <message>
         <source>Opening %1</source>
         <translation>Öffne %1</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1080"/>
         <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="1081"/>
         <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="1086"/>
         <source>Close and cancel download</source>
         <translation>Beenden und Download abbrechen</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1087"/>
         <source>Wait for download to finish</source>
         <translation>Auf Abschluss des Downloads warten</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1158"/>
-        <source>&amp;Loading...</source>
-        <translation>&amp;Laden</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="1264"/>
-        <source>Leave &amp;Full Screen</source>
-        <translation>&amp;Vollbild verlassen</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="1718"/>
-        <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="1722"/>
-        <source>Remind me later</source>
-        <translation>Erinnere mich später</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="1723"/>
-        <source>Update</source>
-        <translation>Aktualisierung</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="1127"/>
         <source>Error: %1</source>
         <translation>Fehler: %1</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="300"/>
-        <source>P&amp;revious</source>
-        <translation>V&amp;origes</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="301"/>
-        <source>Go back to the previous track</source>
-        <translation>Zum vorherigen Titel zurückgehen</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="335"/>
-        <source>&amp;Compact Mode</source>
-        <translation>&amp;Kompakt-Modus</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="348"/>
-        <source>Open the &amp;YouTube Page</source>
-        <translation>&amp;YouTube-Seite öffnen</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="355"/>
-        <source>Copy the YouTube &amp;Link</source>
-        <translation>YouTube-&amp;Link kopieren</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="362"/>
-        <source>Copy the Video Stream &amp;URL</source>
-        <translation>Video-Stream-&amp;URL kopieren</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="369"/>
-        <source>Find Video &amp;Parts</source>
-        <translation>Suche weitere Video&amp;teile</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="397"/>
-        <source>&amp;Clear Recent Searches</source>
-        <translation>Vorherige Suchbegriffe löschen</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="421"/>
-        <source>Make a &amp;Donation</source>
-        <translation>&amp;Spenden</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="483"/>
-        <source>&amp;Manually Start Playing</source>
-        <translation>&amp;Manuelles Starten der Wiedergabe</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="484"/>
-        <source>Manually start playing videos</source>
-        <translation>Manuelles Starten der Videowiedergabe</translation>
+        <source>&amp;Pause</source>
+        <translation>&amp;Pause</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="847"/>
-        <source>Choose your content location</source>
-        <translation>Wähle ein Land für Inhalte</translation>
+        <source>Pause playback</source>
+        <translation>Wiedergabe pausieren</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="314"/>
-        <location filename="src/mainwindow.cpp" line="1142"/>
-        <location filename="src/mainwindow.cpp" line="1150"/>
-        <source>&amp;Play</source>
-        <translation>&amp;Abspielen</translation>
+        <source>&amp;Loading...</source>
+        <translation>&amp;Laden</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="315"/>
-        <location filename="src/mainwindow.cpp" line="1143"/>
-        <location filename="src/mainwindow.cpp" line="1151"/>
-        <source>Resume playback</source>
-        <translation>Wiedergabe fortsetzen</translation>
+        <source>Leave &amp;Full Screen</source>
+        <translation>&amp;Vollbild verlassen</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1437"/>
         <source>Remaining time: %1</source>
         <translation>Verbleibende Zeit: %1</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1528"/>
         <source>Volume at %1%</source>
         <translation>Lautstärke %1%</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1534"/>
         <source>Volume is muted</source>
         <translation>Ton ist stummgeschaltet</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1537"/>
         <source>Volume is unmuted</source>
         <translation>Ton ist eingeschaltet</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1548"/>
         <source>Maximum video definition set to %1</source>
         <translation>Maximale Videoauflösung wurde auf %1 gesetzt</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1595"/>
         <source>Your privacy is now safe</source>
         <translation>Ihre Privatsphäre ist nun geschützt</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1610"/>
         <source>Downloads complete</source>
         <translation>Herunterladen vollständig</translation>
     </message>
+    <message>
+        <source>%1 version %2 is now available.</source>
+        <translation>%1 Version %2 ist jetzt verfügbar.</translation>
+    </message>
+    <message>
+        <source>Remind me later</source>
+        <translation>Erinnere mich später</translation>
+    </message>
+    <message>
+        <source>Update</source>
+        <translation>Aktualisierung</translation>
+    </message>
 </context>
 <context>
     <name>MediaView</name>
     <message>
-        <location filename="src/mediaview.cpp" line="702"/>
         <source>You can now paste the YouTube link into another application</source>
         <translation>Sie können den YouTube-Link nun in einer anderen Anwendung einfügen</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="710"/>
         <source>You can now paste the video stream URL into another application</source>
         <translation>Sie können den Video-Link nun in einer anderen Anwendung einfügen</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="711"/>
         <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="800"/>
         <source>This is just the demo version of %1.</source>
         <translation>Dies ist nur die Demoversion von %1.</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="801"/>
         <source>It allows you to test the application and see if it works for you.</source>
         <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="833"/>
+        <source>Get the full version</source>
+        <translation>Die Vollversion kaufen</translation>
+    </message>
+    <message>
         <source>Continue</source>
         <translation>Fortfahren</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="988"/>
+        <source>Downloading %1</source>
+        <translation>%1 herunterladen</translation>
+    </message>
+    <message>
         <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="1001"/>
         <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="1003"/>
         <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="1096"/>
         <source>Sent from %1</source>
         <translation>Gesendet von %1</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="1128"/>
         <source>Unsubscribe from %1</source>
         <translation>Beende Abonnement von %1</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="1132"/>
         <source>Subscribe to %1</source>
         <translation>Abonnieren von %1</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="1166"/>
         <source>Unsubscribed from %1</source>
-        <translation type="unfinished"/>
+        <translation>Abonnement von %1 wurde aufgehoben.</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="1169"/>
         <source>Subscribed to %1</source>
-        <translation type="unfinished"/>
-    </message>
-    <message>
-        <location filename="src/mediaview.cpp" line="808"/>
-        <source>Get the full version</source>
-        <translation>Die Vollversion kaufen</translation>
-    </message>
-    <message>
-        <location filename="src/mediaview.cpp" line="847"/>
-        <source>Downloading %1</source>
-        <translation>%1 herunterladen</translation>
+        <translation>%1 abonniert</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>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>%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>Möchten Sie sie jetzt herunterladen?</translation>
     </message>
     <message>
-        <location filename="local/src/updatedialog.cpp" line="39"/>
         <source>Skip This Version</source>
         <translation>Diese Version überspringen</translation>
     </message>
     <message>
-        <location filename="local/src/updatedialog.cpp" line="43"/>
         <source>Remind Me Later</source>
         <translation>Später erinnern</translation>
     </message>
     <message>
-        <location filename="local/src/updatedialog.cpp" line="47"/>
         <source>Install Update</source>
         <translation>Aktualisierung installieren</translation>
     </message>
 <context>
     <name>PasteLineEdit</name>
     <message>
-        <location filename="local/src/pastelineedit.cpp" line="6"/>
         <source>Paste</source>
         <translation>Einfügen</translation>
     </message>
 <context>
     <name>PlaylistItemDelegate</name>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="209"/>
         <source>%1 views</source>
         <translation>%1 mal betrachtet</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="309"/>
         <source>%1 of %2 (%3) — %4</source>
         <translation>%1 von %2 (%3) – %4</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="316"/>
         <source>Preparing</source>
         <translation>Bereite vor</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="318"/>
         <source>Failed</source>
         <translation>Fehlgeschlagen</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="320"/>
         <source>Completed</source>
         <translation>Fertiggestellt</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="322"/>
         <source>Stopped</source>
         <translation>Angehalten</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="358"/>
         <source>Stop downloading</source>
         <translation>Herunterladen abbrechen</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="368"/>
         <source>Show in %1</source>
         <translation>In %1 anzeigen</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="370"/>
         <source>Open parent folder</source>
         <translation>übergeordneten Ordner öffnen</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="379"/>
         <source>Restart downloading</source>
         <translation>Herunterladen neu starten</translation>
     </message>
 <context>
     <name>PlaylistModel</name>
     <message>
-        <location filename="src/playlistmodel.cpp" line="70"/>
         <source>Searching...</source>
         <translation>Suche...</translation>
     </message>
     <message>
-        <location filename="src/playlistmodel.cpp" line="71"/>
         <source>Show %1 More</source>
         <translation>Weitere %1 zeigen</translation>
     </message>
     <message>
-        <location filename="src/playlistmodel.cpp" line="72"/>
         <source>No videos</source>
         <translation>Keine Videos</translation>
     </message>
     <message>
-        <location filename="src/playlistmodel.cpp" line="73"/>
         <source>No more videos</source>
         <translation>Keine weiteren Videos</translation>
     </message>
 <context>
     <name>RefineSearchWidget</name>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="49"/>
         <source>Sort by</source>
         <translation>Sortieren nach</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="53"/>
         <source>Relevance</source>
         <translation>Relevanz</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="54"/>
-        <location filename="src/refinesearchwidget.cpp" line="69"/>
         <source>Date</source>
         <translation>Datum</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="55"/>
         <source>View Count</source>
         <translation>Aufrufe</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="56"/>
         <source>Rating</source>
         <translation>Bewertung</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="73"/>
         <source>Anytime</source>
         <translation>Irgendwann</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="74"/>
         <source>Today</source>
         <translation>Heute</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="75"/>
         <source>7 Days</source>
         <translation>7 Tage</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="76"/>
         <source>30 Days</source>
         <translation>30 Tage</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="89"/>
         <source>Duration</source>
         <translation>Dauer</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="93"/>
-        <location filename="src/refinesearchwidget.cpp" line="119"/>
         <source>All</source>
         <translation>Alle</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="94"/>
         <source>Short</source>
         <translation>Kurz</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="95"/>
         <source>Medium</source>
         <translation>Mittel</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="96"/>
         <source>Long</source>
         <translation>Lang</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="99"/>
         <source>Less than 4 minutes</source>
         <translation>Weniger als 4 Minuten</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="100"/>
         <source>Between 4 and 20 minutes</source>
         <translation>Zwischen 4 und 20 Minuten</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="101"/>
         <source>Longer than 20 minutes</source>
         <translation>Länger als 20 Minuten</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="115"/>
         <source>Quality</source>
         <translation>Qualität</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="120"/>
         <source>High Definition</source>
         <translation>Hochauflösend</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="123"/>
         <source>720p or higher</source>
         <translation>720p oder höher</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="136"/>
         <source>Done</source>
         <translation>Erledigt</translation>
     </message>
 <context>
     <name>RegionsView</name>
     <message>
-        <location filename="src/regionsview.cpp" line="39"/>
         <source>Done</source>
         <translation>Fertig</translation>
     </message>
 <context>
     <name>SearchLineEdit</name>
     <message>
-        <location filename="src/searchlineedit.cpp" line="55"/>
         <source>Search</source>
         <translation>Suche</translation>
     </message>
 <context>
     <name>SearchView</name>
     <message>
-        <location filename="src/searchview.cpp" line="83"/>
         <source>Welcome to &lt;a href=&apos;%1&apos;&gt;%2&lt;/a&gt;,</source>
         <translation>Willkommen bei &lt;a href=&apos;%1&apos;&gt;%2&lt;/a&gt;,</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="200"/>
-        <source>Get the full version</source>
-        <translation>Die Vollversion kaufen</translation>
-    </message>
-    <message>
-        <location filename="src/searchview.cpp" line="110"/>
         <source>Enter</source>
         <extracomment>&quot;Enter&quot;, as in &quot;type&quot;. The whole phrase says: &quot;Enter a keyword to start watching videos&quot;</extracomment>
         <translation>Eingeben</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="117"/>
         <source>a keyword</source>
         <translation>ein Suchbegriff</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="118"/>
         <source>a channel</source>
         <translation>ein Kanal</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="125"/>
         <source>to start watching videos.</source>
         <translation>um die Wiedergabe zu starten.</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="156"/>
         <source>Watch</source>
         <translation>Anschauen</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="174"/>
         <source>Recent keywords</source>
         <translation>Letzte Suchbegriffe</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="186"/>
         <source>Recent channels</source>
         <translation>Letzte Kanäle</translation>
     </message>
+    <message>
+        <source>Get the full version</source>
+        <translation>Die Vollversion kaufen</translation>
+    </message>
 </context>
 <context>
     <name>SidebarHeader</name>
     <message>
-        <location filename="src/sidebarheader.cpp" line="38"/>
-        <location filename="src/sidebarheader.cpp" line="45"/>
         <source>&amp;Back</source>
         <translation>&amp;Zurück</translation>
     </message>
     <message>
-        <location filename="src/sidebarheader.cpp" line="76"/>
         <source>Forward to %1</source>
         <translation>Weiter zu %1</translation>
     </message>
     <message>
-        <location filename="src/sidebarheader.cpp" line="89"/>
         <source>Back to %1</source>
         <translation>Zurück zu %1</translation>
     </message>
 <context>
     <name>SidebarWidget</name>
     <message>
-        <location filename="src/sidebarwidget.cpp" line="68"/>
         <source>Refine Search</source>
         <translation>Suche verfeinern</translation>
     </message>
     <message>
-        <location filename="src/sidebarwidget.cpp" line="167"/>
         <source>Did you mean: %1</source>
         <translation>Haben Sie gemeint: %1</translation>
     </message>
 <context>
     <name>SnapshotSettings</name>
     <message>
-        <location filename="src/snapshotsettings.cpp" line="47"/>
         <source>Change location...</source>
         <translation>Speicherort ändern…</translation>
     </message>
     <message>
-        <location filename="src/snapshotsettings.cpp" line="64"/>
         <source>Snapshot saved to %1</source>
         <translation>Schnappschuss gespeichert unter %1</translation>
     </message>
     <message>
-        <location filename="src/snapshotsettings.cpp" line="117"/>
         <source>Snapshots location changed.</source>
         <translation>Speicherort der Schnappschüsse geändert.</translation>
     </message>
 <context>
     <name>StandardFeedsView</name>
     <message>
-        <location filename="src/standardfeedsview.cpp" line="107"/>
         <source>Most Popular</source>
         <translation>Beliebteste</translation>
     </message>
 </context>
+<context>
+    <name>UpdateDialog</name>
+    <message>
+        <source>Downloading update...</source>
+        <translation>Lade Aktualisierung herunter...</translation>
+    </message>
+    <message>
+        <source>Downloading %1...</source>
+        <translation>heruntergeladen %1</translation>
+    </message>
+</context>
 <context>
     <name>Video</name>
     <message>
-        <location filename="src/video.cpp" line="287"/>
         <source>Cannot get video stream for %1</source>
         <translation>Videostream für %1 konnte nicht geöffnet werden</translation>
     </message>
-    <message>
-        <location filename="src/video.cpp" line="292"/>
-        <source>Network error: %1 for %2</source>
-        <translation>Netzwerk-Fehler: %1 für %2</translation>
-    </message>
 </context>
 <context>
     <name>YTRegions</name>
     <message>
-        <location filename="src/ytregions.cpp" line="28"/>
         <source>Algeria</source>
         <translation>Algerien</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="29"/>
         <source>Argentina</source>
         <translation>Argentinien</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="30"/>
         <source>Australia</source>
         <translation>Australien</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="31"/>
         <source>Belgium</source>
         <translation>Belgien</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="32"/>
         <source>Brazil</source>
         <translation>Brasilien</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="33"/>
         <source>Canada</source>
         <translation>Kanada</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="34"/>
         <source>Chile</source>
         <translation>Chile</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="35"/>
         <source>Colombia</source>
         <translation>Kolumbien</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="36"/>
         <source>Czech Republic</source>
         <translation>Tschechische Republik</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="37"/>
         <source>Egypt</source>
         <translation>Ägypten</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="38"/>
         <source>France</source>
         <translation>Frankreich</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="39"/>
         <source>Germany</source>
         <translation>Deutschland</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="40"/>
         <source>Ghana</source>
         <translation>Ghana</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="41"/>
         <source>Greece</source>
         <translation>Griechenland</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="42"/>
         <source>Hong Kong</source>
         <translation>Hong Kong</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="43"/>
         <source>Hungary</source>
         <translation>Ungarn</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="44"/>
         <source>India</source>
         <translation>Indien</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="45"/>
         <source>Indonesia</source>
         <translation>Indonesien</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="46"/>
         <source>Ireland</source>
         <translation>Irland</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="47"/>
         <source>Israel</source>
         <translation>Israel</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="48"/>
         <source>Italy</source>
         <translation>Italien</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="49"/>
         <source>Japan</source>
         <translation>Japan</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="50"/>
         <source>Jordan</source>
         <translation>Jordanien</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="51"/>
         <source>Kenya</source>
         <translation>Kenia</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="52"/>
         <source>Malaysia</source>
         <translation>Malaysia</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="53"/>
         <source>Mexico</source>
         <translation>Mexiko</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="54"/>
         <source>Morocco</source>
         <translation>Marokko</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="55"/>
         <source>Netherlands</source>
         <translation>Niederlande</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="56"/>
         <source>New Zealand</source>
         <translation>Neuseeland</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="57"/>
         <source>Nigeria</source>
         <translation>Nigeria</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="58"/>
         <source>Peru</source>
         <translation>Peru</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="59"/>
         <source>Philippines</source>
         <translation>Philippinen</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="60"/>
         <source>Poland</source>
         <translation>Polen</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="61"/>
         <source>Russia</source>
         <translation>Russland</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="62"/>
         <source>Saudi Arabia</source>
         <translation>Saudi-Arabien</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="63"/>
         <source>Singapore</source>
         <translation>Singapur</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="64"/>
         <source>South Africa</source>
         <translation>Südafrika</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="65"/>
         <source>South Korea</source>
         <translation>Südkorea</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="66"/>
         <source>Spain</source>
         <translation>Spanien</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="67"/>
         <source>Sweden</source>
         <translation>Schweden</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="68"/>
         <source>Taiwan</source>
         <translation>Taiwan</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="69"/>
         <source>Tunisia</source>
         <translation>Tunesien</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="70"/>
         <source>Turkey</source>
         <translation>Türkei</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="71"/>
         <source>Uganda</source>
         <translation>Uganda</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="72"/>
         <source>United Arab Emirates</source>
         <translation>Vereinigte Arabische Emirate</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="73"/>
         <source>United Kingdom</source>
         <translation>Vereinigtes Königreich</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="74"/>
         <source>Yemen</source>
         <translation>Jemen</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="148"/>
         <source>Worldwide</source>
         <translation>Weltweit</translation>
     </message>
index 1f64b4f0ccee8f4f03545fc7d1788f4a3901a62d..8ecd850515e3c998d6aa0e93bfa5ef6b305c3dbe 100644 (file)
@@ -2,67 +2,42 @@
 <context>
     <name>AboutView</name>
     <message>
-        <location filename="src/aboutview.cpp" line="58"/>
         <source>There&apos;s life outside the browser!</source>
         <translation>Υπάρχει ζωή έξω από τον φυλλομετρητή!</translation>
     </message>
     <message>
-        <location filename="src/aboutview.cpp" line="59"/>
         <source>Version %1</source>
         <translation>Έκδοση %1</translation>
     </message>
     <message>
-        <location filename="src/aboutview.cpp" line="64"/>
         <source>Licensed to: %1</source>
         <translation>Αδειοδοτημένο στον/ην: %1</translation>
     </message>
     <message>
-        <location filename="src/aboutview.cpp" line="68"/>
         <source>%1 is Free Software but its development takes precious time.</source>
         <translation>Το %1 είναι Ελεύθερο Λογισμικό αλλά η ανάπτυξη του παίρνει πολύτιμο χρόνο.</translation>
     </message>
     <message>
-        <location filename="src/aboutview.cpp" line="69"/>
         <source>Please &lt;a href=&apos;%1&apos;&gt;donate&lt;/a&gt; to support the continued development of %2.</source>
         <translation>Παρακαλούμε &lt;a href=&apos;%1%&apos;&gt;κάνετε μια δωρεά&lt;/a&gt; για να υποστηρίξετε την συνεχόμενη ανάπτυξη του %2.</translation>
     </message>
     <message>
-        <location filename="src/aboutview.cpp" line="73"/>
-        <source>You may want to try my other apps as well:</source>
-        <translation>Μπορείτε να θέλετε να δοκιμάσετε και τις άλλες μου εφαρμογές:</translation>
-    </message>
-    <message>
-        <location filename="src/aboutview.cpp" line="76"/>
-        <source>%1, a YouTube music player</source>
-        <translation>%1, ένας αναπαραγωγέας μουσικής του YouTube</translation>
-    </message>
-    <message>
-        <location filename="src/aboutview.cpp" line="80"/>
-        <source>%1, a music player</source>
-        <translation>%1, ένας αναπαραγωγέας μουσικής</translation>
-    </message>
-    <message>
-        <location filename="src/aboutview.cpp" line="86"/>
         <source>Translate %1 to your native language using %2</source>
         <translation>Μεταφράστε το %1 στη γλώσσα σας με χρήση του %2</translation>
     </message>
     <message>
-        <location filename="src/aboutview.cpp" line="91"/>
         <source>Icon designed by %1.</source>
         <translation>Σχεδιασμός εικονιδίου από %1.</translation>
     </message>
     <message>
-        <location filename="src/aboutview.cpp" line="95"/>
         <source>Released under the &lt;a href=&apos;%1&apos;&gt;GNU General Public License&lt;/a&gt;</source>
         <translation>Έκδοση υπό τους όρους της &lt;a href=&apos;%1&apos;&gt;Γενικής Άδειας Χρήσης GNU&lt;/a&gt;</translation>
     </message>
     <message>
-        <location filename="src/aboutview.cpp" line="110"/>
         <source>&amp;Close</source>
         <translation>&amp;Κλείσιμο</translation>
     </message>
     <message>
-        <location filename="src/aboutview.h" line="40"/>
         <source>About</source>
         <translation>Σχετικά</translation>
     </message>
 <context>
     <name>ActivationDialog</name>
     <message>
-        <location filename="local/src/activationdialog.cpp" line="17"/>
         <source>Enter your License Details</source>
         <translation>Εισάγετε τις λεπτομέρειες της άδειας χρήσης</translation>
     </message>
     <message>
-        <location filename="local/src/activationdialog.cpp" line="29"/>
         <source>&amp;Email:</source>
         <translation>&amp;Ηλ. αλληλογραφία:</translation>
     </message>
     <message>
-        <location filename="local/src/activationdialog.cpp" line="35"/>
         <source>&amp;Code:</source>
         <translation>&amp;Κωδικός:</translation>
     </message>
 <context>
     <name>ActivationView</name>
     <message>
-        <location filename="local/src/activationview.cpp" line="47"/>
         <source>Please license %1</source>
         <translation>Παρακαλώ αποκτήστε την άδεια χρήσης του %1</translation>
     </message>
     <message>
-        <location filename="local/src/activationview.cpp" line="51"/>
         <source>This demo has expired.</source>
         <translation>Αυτή η δοκιμαστική έκδοση έληξε.</translation>
     </message>
     <message>
-        <location filename="local/src/activationview.cpp" line="53"/>
         <source>The full version allows you to watch videos without interruptions.</source>
-        <oldsource>The full version allows you to download videos longer than %1 minutes and to watch videos without interruptions.</oldsource>
         <translation>Η πλήρης έκδοση σας επιτρέπει να παρακολουθήσετε βίντεο χωρίς διακοπές.</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>
     </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>
     </message>
     <message>
-        <location filename="local/src/activationview.cpp" line="70"/>
         <source>Use Demo</source>
         <translation>Χρήση της δοκιμαστικής έκδοσης</translation>
     </message>
     <message>
-        <location filename="local/src/activationview.cpp" line="77"/>
         <source>Enter License</source>
         <translation>Εισαγωγή άδειας χρήσης</translation>
     </message>
     <message>
-        <location filename="local/src/activationview.cpp" line="85"/>
         <source>Buy License</source>
         <translation>Αγορά άδειας χρήσης</translation>
     </message>
 </context>
+<context>
+    <name>AppWidget</name>
+    <message>
+        <source>Download</source>
+        <translation>Λήψη</translation>
+    </message>
+</context>
 <context>
     <name>ChannelAggregator</name>
     <message>
-        <location filename="src/channelaggregator.cpp" line="183"/>
         <source>By %1</source>
         <translation>Από %1</translation>
     </message>
     <message numerus="yes">
-        <location filename="src/channelaggregator.cpp" line="185"/>
         <source>You have %n new video(s)</source>
-        <translation><numerusform>Έχετε %n νέο-α βίντεο</numerusform><numerusform>Έχετε %n νέο-α βίντεο</numerusform></translation>
+        <translation type="unfinished"><numerusform></numerusform><numerusform></numerusform></translation>
     </message>
 </context>
 <context>
     <name>ChannelItemDelegate</name>
     <message>
-        <location filename="src/channelitemdelegate.cpp" line="67"/>
         <source>All Videos</source>
         <translation>Όλα τα βίντεο</translation>
     </message>
     <message>
-        <location filename="src/channelitemdelegate.cpp" line="85"/>
         <source>Unwatched Videos</source>
         <translation>Μη ιδωμένα βίντεο</translation>
     </message>
 <context>
     <name>ChannelView</name>
     <message>
-        <location filename="src/channelview.cpp" line="151"/>
-        <source>Mark all as watched</source>
-        <translation>Σημείωση όλων ως παρακολούθεντα</translation>
-    </message>
-    <message>
-        <location filename="src/channelview.cpp" line="159"/>
-        <source>Show Updated</source>
-        <translation>Εμφάνιση ενημερωμένων</translation>
-    </message>
-    <message>
-        <location filename="src/channelview.cpp" line="103"/>
         <source>Name</source>
         <translation>Όνομα</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="110"/>
         <source>Last Updated</source>
         <translation>Τελευταία ενημερωμένα</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="117"/>
         <source>Last Added</source>
         <translation>Τελευταία προστιθέμενα</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="124"/>
         <source>Last Watched</source>
         <translation>Τελευταία ιδωμένα</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="131"/>
         <source>Most Watched</source>
         <translation>Περισσότερο ιδωμένα</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="139"/>
         <source>Sort by</source>
         <translation>Ταξινόμηση κατά</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="222"/>
+        <source>Mark all as watched</source>
+        <translation>Σημείωση όλων ως παρακολούθεντα</translation>
+    </message>
+    <message>
+        <source>Show Updated</source>
+        <translation>Εμφάνιση ενημερωμένων</translation>
+    </message>
+    <message>
         <source>All Videos</source>
         <translation>Όλα τα βίντεο</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="226"/>
         <source>Unwatched Videos</source>
         <translation>Μη ιδωμένα βίντεο</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="244"/>
         <source>Mark as Watched</source>
         <translation>Σήμανση ως ιδωμένο</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="257"/>
         <source>Unsubscribe</source>
         <translation>Κατάργηση εγγραφής</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="270"/>
         <source>There are no updated subscriptions at this time.</source>
         <translation>Δεν υπάρχουν ενημερωμένες συδρομές αυτήν την στιγμή.</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="272"/>
         <source>You have no subscriptions. Use the star symbol to subscribe to channels.</source>
         <translation>Δεν έχετε συνδρομές. Χρησιμοποιήστε το αστέρι για να κάνετε συνδρομή σε κανάλια.</translation>
     </message>
 <context>
     <name>ClearButton</name>
     <message>
-        <location filename="src/exlineedit.cpp" line="6"/>
         <source>Clear</source>
         <translation>Εκκαθάριση</translation>
     </message>
 <context>
     <name>DataUtils</name>
     <message>
-        <location filename="src/datautils.cpp" line="88"/>
         <source>Just now</source>
         <translation>Μόλις τώρα</translation>
     </message>
     <message numerus="yes">
-        <location filename="src/datautils.cpp" line="90"/>
-        <source>%n minute(s) ago</source>
-        <translation><numerusform>Πριν από %n λεπτό-ά</numerusform><numerusform>Πριν από %n λεπτό-ά</numerusform></translation>
-    </message>
-    <message numerus="yes">
-        <location filename="src/datautils.cpp" line="92"/>
         <source>%n hour(s) ago</source>
-        <translation><numerusform>Πριν %n ώρα-ες</numerusform><numerusform>Πριν %n ώρα-ες</numerusform></translation>
+        <translation type="unfinished"><numerusform></numerusform><numerusform></numerusform></translation>
     </message>
     <message numerus="yes">
-        <location filename="src/datautils.cpp" line="94"/>
         <source>%n day(s) ago</source>
-        <translation><numerusform>Πριν %n ημέρα-ες</numerusform><numerusform>Πριν %n ημέρα-ες</numerusform></translation>
+        <translation type="unfinished"><numerusform></numerusform><numerusform></numerusform></translation>
     </message>
     <message numerus="yes">
-        <location filename="src/datautils.cpp" line="96"/>
         <source>%n weeks(s) ago</source>
-        <translation><numerusform>Πριν %n εβδομάδα-ες</numerusform><numerusform>Πριν %n εβδομάδα-ες</numerusform></translation>
+        <translation type="unfinished"><numerusform></numerusform><numerusform></numerusform></translation>
     </message>
     <message numerus="yes">
-        <location filename="src/datautils.cpp" line="98"/>
         <source>%n month(s) ago</source>
-        <translation><numerusform>Πριν %n μήνα-ες</numerusform><numerusform>Πριν %n μήνα-ες</numerusform></translation>
+        <translation type="unfinished"><numerusform></numerusform><numerusform></numerusform></translation>
     </message>
 </context>
 <context>
     <name>DownloadItem</name>
     <message>
-        <location filename="src/downloaditem.cpp" line="406"/>
         <source>bytes</source>
         <translation>byte</translation>
     </message>
     <message>
-        <location filename="src/downloaditem.cpp" line="409"/>
         <source>KB</source>
         <translation>KB</translation>
     </message>
     <message>
-        <location filename="src/downloaditem.cpp" line="412"/>
         <source>MB</source>
         <translation>MB</translation>
     </message>
     <message>
-        <location filename="src/downloaditem.cpp" line="421"/>
         <source>bytes/sec</source>
         <translation>byte/δευτ</translation>
     </message>
     <message>
-        <location filename="src/downloaditem.cpp" line="424"/>
         <source>KB/sec</source>
         <translation>KB/δευτ</translation>
     </message>
     <message>
-        <location filename="src/downloaditem.cpp" line="427"/>
         <source>MB/sec</source>
         <translation>MB/δευτ</translation>
     </message>
     <message>
-        <location filename="src/downloaditem.cpp" line="433"/>
         <source>seconds</source>
         <translation>δευτερόλεπτα</translation>
     </message>
     <message>
-        <location filename="src/downloaditem.cpp" line="436"/>
         <source>minutes</source>
         <translation>λεπτά</translation>
     </message>
     <message>
-        <location filename="src/downloaditem.cpp" line="439"/>
         <source>%4 %5 remaining</source>
         <translation>απομένουν %4 %5</translation>
     </message>
 <context>
     <name>DownloadManager</name>
     <message>
-        <location filename="src/downloadmanager.cpp" line="77"/>
         <source>This is just the demo version of %1.</source>
         <translation>Αυτή είναι απλά η δοκιμαστική έκδοση του %1.</translation>
     </message>
     <message>
-        <location filename="src/downloadmanager.cpp" line="79"/>
         <source>It can only download videos shorter than %1 minutes so you can test the download functionality.</source>
         <translation>Μπορεί να κάνει λήψη βίντεο μικρότερα από %1 λεπτά ώστε να δοκιμάσετε τη λειτουργία λήψης.</translation>
     </message>
     <message>
-        <location filename="src/downloadmanager.cpp" line="85"/>
         <source>Continue</source>
         <translation>Συνέχεια</translation>
     </message>
     <message>
-        <location filename="src/downloadmanager.cpp" line="86"/>
         <source>Get the full version</source>
         <translation>Αποκτήστε την πλήρη έκδοση</translation>
     </message>
     <message>
-        <location filename="src/downloadmanager.cpp" line="157"/>
         <source>%1 downloaded in %2</source>
         <translation>%1 λήφθηκε σε %2</translation>
     </message>
     <message>
-        <location filename="src/downloadmanager.cpp" line="160"/>
         <source>Download finished</source>
         <translation>Η λήψη ολοκληρώθηκε</translation>
     </message>
     <message numerus="yes">
-        <location filename="src/downloadmanager.cpp" line="165"/>
         <source>%n Download(s)</source>
-        <translation><numerusform>%n Λήψη-εις</numerusform><numerusform>%n Λήψη-εις</numerusform></translation>
+        <translation type="unfinished"><numerusform></numerusform><numerusform></numerusform></translation>
     </message>
 </context>
 <context>
     <name>DownloadSettings</name>
     <message>
-        <location filename="src/downloadsettings.cpp" line="36"/>
         <source>Change location...</source>
         <translation>Αλλάξτε τοποθεσία...</translation>
     </message>
     <message>
-        <location filename="src/downloadsettings.cpp" line="69"/>
         <source>Choose the download location</source>
         <translation>Επιλέξτε την τοποθεσία λήψης</translation>
     </message>
     <message>
-        <location filename="src/downloadsettings.cpp" line="81"/>
         <source>Download location changed.</source>
         <translation>Η τοποθεσία λήψης άλλαξε.</translation>
     </message>
     <message>
-        <location filename="src/downloadsettings.cpp" line="83"/>
         <source>Current downloads will still go in the previous location.</source>
         <translation>Τα ήδη ληφθέντα θα παραμείνουν στην προηγούμενη τοποθεσία.</translation>
     </message>
     <message>
-        <location filename="src/downloadsettings.cpp" line="94"/>
         <source>Downloading to: %1</source>
         <translation>Λήψη στο: %1</translation>
     </message>
 <context>
     <name>DownloadView</name>
     <message>
-        <location filename="src/downloadview.cpp" line="38"/>
-        <location filename="src/downloadview.h" line="45"/>
         <source>Downloads</source>
         <translation>Λήψεις</translation>
     </message>
 </context>
-<context>
-    <name>DownloadWidget</name>
-    <message>
-        <location filename="local/src/updatedialog.cpp" line="60"/>
-        <source>Downloading update...</source>
-        <translation>Λήψη ενημερώσεων...</translation>
-    </message>
-</context>
 <context>
     <name>Extra</name>
     <message>
-        <location filename="local/src/extra.cpp" line="251"/>
         <source>The executable file has been tempered with, maybe by a virus.</source>
         <translation>Το εκτελέσιμο αρχείο έχει κακοποιηθεί, ίσως πρόκειται για ιό.</translation>
     </message>
     <message>
-        <location filename="local/src/extra.cpp" line="252"/>
         <source>%1 will not run. Try installing again.</source>
         <translation>Το %1 δεν θα εκτελεσθεί. Δοκιμάστε να το εγκαταστήσετε εκ νέου.</translation>
     </message>
     <message>
-        <location filename="local/src/extra.cpp" line="253"/>
         <source>Quit</source>
         <translation>Έξοδος</translation>
     </message>
     <message>
-        <location filename="local/src/extra.cpp" line="254"/>
         <source>Reinstall</source>
         <translation>Επανεγκατάσταση</translation>
     </message>
 <context>
     <name>GlobalShortcuts</name>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="36"/>
         <source>Play</source>
         <translation>Αναπαραγωγή</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="37"/>
         <source>Pause</source>
         <translation>Παύση</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="38"/>
         <source>Play/Pause</source>
         <translation>Αναπαραγωγή/Παύση</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="39"/>
         <source>Stop</source>
         <translation>Διακοπή</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="40"/>
         <source>Stop playing after current track</source>
         <translation>Διακοπή αναπαραγωγής μετά το τρέχον κομμάτι</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="41"/>
         <source>Next track</source>
         <translation>Επόμενο κομμάτι</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="42"/>
         <source>Previous track</source>
         <translation>Προηγούμενο κομμάτι</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="43"/>
         <source>Increase volume</source>
         <translation>Αύξηση έντασης</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="44"/>
         <source>Decrease volume</source>
         <translation>Μείωση έντασης</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="45"/>
         <source>Mute</source>
         <translation>Σίγαση</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="46"/>
         <source>Seek forward</source>
         <translation>Αναζήτηση μπροστά</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="47"/>
         <source>Seek backward</source>
         <translation>Αναζήτηση πίσω</translation>
     </message>
 <context>
     <name>HomeView</name>
     <message>
-        <location filename="src/homeview.cpp" line="58"/>
         <source>Search</source>
         <translation>Αναζήτηση</translation>
     </message>
     <message>
-        <location filename="src/homeview.cpp" line="60"/>
         <source>Find videos and channels by keyword</source>
         <translation>Εύρεση βίντεο και καναλιών μέσω λέξεις-κλειδιά </translation>
     </message>
     <message>
-        <location filename="src/homeview.cpp" line="65"/>
         <source>Browse</source>
         <translation>Περίηγηση</translation>
     </message>
     <message>
-        <location filename="src/homeview.cpp" line="67"/>
         <source>Browse videos by category</source>
         <translation>Περιήγηση βίντεο ανά κατηγορία</translation>
     </message>
     <message>
-        <location filename="src/homeview.cpp" line="71"/>
         <source>Subscriptions</source>
         <translation>Συνδρομές</translation>
     </message>
     <message>
-        <location filename="src/homeview.cpp" line="73"/>
         <source>Channel subscriptions</source>
-        <translation>Συδρομές σε κανάλια</translation>
+        <translation>ΣÏ\85νδÏ\81ομέÏ\82 Ï\83ε ÎºÎ±Î½Î¬Î»Î¹Î±</translation>
     </message>
     <message>
-        <location filename="src/homeview.h" line="44"/>
         <source>Make yourself comfortable</source>
         <translation>Βολευτείτε</translation>
     </message>
 <context>
     <name>LoadingWidget</name>
     <message>
-        <location filename="src/loadingwidget.cpp" line="125"/>
         <source>Error</source>
         <translation>Σφάλμα</translation>
     </message>
 <context>
     <name>MainWindow</name>
     <message>
-        <location filename="src/mainwindow.cpp" line="291"/>
+        <source>&amp;Window</source>
+        <translation>&amp;Παράθυρο</translation>
+    </message>
+    <message>
+        <source>&amp;Minimize</source>
+        <translation>&amp;Ελαχιστοποίηση</translation>
+    </message>
+    <message>
         <source>&amp;Stop</source>
         <translation>&amp;Διακοπή</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="292"/>
         <source>Stop playback and go back to the search view</source>
         <translation>Διακοπή αναπαραγωγής και επιστροφή στη προβολή αναζήτησης</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="307"/>
+        <source>P&amp;revious</source>
+        <translation>Π&amp;ροηγούμενο</translation>
+    </message>
+    <message>
+        <source>Go back to the previous track</source>
+        <translation>Επιστροφή στο προηγούμενο κομμάτι</translation>
+    </message>
+    <message>
         <source>S&amp;kip</source>
         <translation>&amp;Παράλειψη</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="308"/>
         <source>Skip to the next video</source>
         <translation>Μετάβαση στο επόμενο βίντεο</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1134"/>
-        <source>&amp;Pause</source>
-        <translation>&amp;Παύση</translation>
+        <source>&amp;Play</source>
+        <translation>Α&amp;ναπαραγωγή</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1135"/>
-        <source>Pause playback</source>
-        <translation>Παύση αναπαραγωγής</translation>
+        <source>Resume playback</source>
+        <translation>Συνέχεια αναπαραγωγής</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="321"/>
         <source>&amp;Full Screen</source>
         <translation>&amp;Πλήρης οθόνη</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="322"/>
         <source>Go full screen</source>
         <translation>Προβολή σε πλήρη οθόνη</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="336"/>
+        <source>&amp;Compact Mode</source>
+        <translation>&amp;Συμπαγής εμφάνιση</translation>
+    </message>
+    <message>
         <source>Hide the playlist and the toolbar</source>
         <translation>Απόκρυψη της λίστας αναπαραγωγής και της εργαλειοθήκης</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="349"/>
+        <source>Open the &amp;YouTube Page</source>
+        <translation>Άνοιγμα στην Ιστοσελίδα του &amp;YouTube</translation>
+    </message>
+    <message>
         <source>Go to the YouTube video page and pause playback</source>
         <translation>Μετάβαση στη σελίδα βίντεο του YouTube και παύση αναπαραγωγής</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="356"/>
+        <source>Copy the YouTube &amp;Link</source>
+        <translation>Αντιγραφή του &amp;συνδέσμου YouTube</translation>
+    </message>
+    <message>
         <source>Copy the current video YouTube link to the clipboard</source>
-        <translation>Αντιγραφή του συνδεσμού του τρέχοντος βίντεο YouTube στο πρόχειρο</translation>
+        <translation>Αντιγραφή του συνδέσμου του τρέχοντος βίντεο YouTube στο πρόχειρο</translation>
+    </message>
+    <message>
+        <source>Copy the Video Stream &amp;URL</source>
+        <translation>Αντιγραφή του &amp;συνδέσμου της ροής βίντεο</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="363"/>
         <source>Copy the current video stream URL to the clipboard</source>
         <translation>Αντιγραφή του συνδέσμου της τρέχουσας ροής βίντεο στη μνήμη</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="370"/>
+        <source>Find Video &amp;Parts</source>
+        <translation>Αναζήτηση των &amp;επεισοδίων του βίντεο</translation>
+    </message>
+    <message>
         <source>Find other video parts hopefully in the right order</source>
         <translation>Εύρεση των υπόλοιπων επισοδείων του βίντεο, ελπίζουμε στη σωστή σειρά</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="376"/>
         <source>&amp;Remove</source>
         <translation>&amp;Αφαίρεση</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="377"/>
         <source>Remove the selected videos from the playlist</source>
         <translation>Αφαίρεση επιλεγμένων βίντεο απο την λίστα αναπαραγωγής</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="383"/>
         <source>Move &amp;Up</source>
         <translation>Μετακίνηση προς τα &amp;πάνω</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="384"/>
         <source>Move up the selected videos in the playlist</source>
         <translation>Μετακίνηση επιλεγμένων βίντεο προς τα πάνω</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="390"/>
         <source>Move &amp;Down</source>
         <translation>Μετακίνηση προς τα &amp;κάτω</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="391"/>
         <source>Move down the selected videos in the playlist</source>
         <translation>Μετακίνηση επιλεγμένων βίντεο προς τα κάτω</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="402"/>
+        <source>&amp;Clear Recent Searches</source>
+        <translation>&amp;Εκκαθάριση πρόσφατων αναζητήσεων</translation>
+    </message>
+    <message>
         <source>Clear the search history. Cannot be undone.</source>
         <translation>Εκκαθάριση του ιστορικού αναζήτησης. Αυτή η ενέργεια δε μπορεί να αναιρεθεί.</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="407"/>
         <source>&amp;Quit</source>
         <translation>Έ&amp;ξοδος</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="410"/>
         <source>Bye</source>
         <translation>Αντίο</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="414"/>
         <source>&amp;Website</source>
         <translation>&amp;Ιστοχώρος</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="416"/>
         <source>%1 on the Web</source>
         <translation>Το %1 στο διαδίκτυο</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="422"/>
+        <source>Make a &amp;Donation</source>
+        <translation>Κάντε μια &amp;δωρεά</translation>
+    </message>
+    <message>
         <source>Please support the continued development of %1</source>
         <translation>Παρακαλούμε υποστηρίξτε την συνεχόμενη ανάπτυξη του %1</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="427"/>
         <source>&amp;About</source>
         <translation>&amp;Σχετικά</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="429"/>
         <source>Info about %1</source>
         <translation>Πληροφορίες για το %1</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="437"/>
         <source>Search</source>
         <translation>Αναζήτηση</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="456"/>
         <source>Mute volume</source>
         <translation>Σίγαση ήχου</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="490"/>
-        <location filename="src/mainwindow.cpp" line="1609"/>
+        <source>&amp;Manually Start Playing</source>
+        <translation>Εκκίνηση της αναπαραγωγής &amp;χειροκίνητα</translation>
+    </message>
+    <message>
+        <source>Manually start playing videos</source>
+        <translation>Εκκίνηση αναπαραγωγής των βίντεο χειροκίνητα</translation>
+    </message>
+    <message>
         <source>&amp;Downloads</source>
         <translation>&amp;Λήψεις</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="491"/>
         <source>Show details about video downloads</source>
         <translation>Εμφάνιση λεπτομερειών για τις λήψεις βίντεο</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="499"/>
         <source>&amp;Download</source>
         <translation>&amp;Λήψη</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="500"/>
         <source>Download the current video</source>
         <translation>Λήψη του τρέχοντος βίντεο</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="510"/>
         <source>Take &amp;Snapshot</source>
         <translation>Λήψη &amp;στιγμιότυπου</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="517"/>
         <source>&amp;Subscribe to Channel</source>
         <translation>&amp;Εγγραφή στο κανάλι</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="525"/>
         <source>Share the current video using %1</source>
         <translation>Κοινοποίηση του τρέχοντος βίντεο μέσω %1</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="545"/>
         <source>&amp;Email</source>
         <translation>&amp;Ηλ. αλληλογραφία</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="546"/>
         <source>Email</source>
         <translation>Ηλ. αλληλογραφία</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="551"/>
         <source>&amp;Close</source>
         <translation>&amp;Κλείσιμο</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="561"/>
         <source>&amp;Float on Top</source>
         <translation>&amp;Διατήρηση στην κορυφή</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="566"/>
         <source>&amp;Adjust Window Size</source>
         <translation>&amp;Προσαρμογή του μεγέθους του παραθύρου</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="571"/>
         <source>&amp;Stop After This Video</source>
         <translation>&amp;Διακοπή μετά από αυτό το βίντεο</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="578"/>
         <source>&amp;Report an Issue...</source>
         <translation>&amp;Αναφέρετε σφάλμα...</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="582"/>
         <source>&amp;Refine Search...</source>
         <translation>&amp;Σύνθετη αναζήτηση...</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="594"/>
         <source>More...</source>
         <translation>Περισσότερα...</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="597"/>
         <source>&amp;Related Videos</source>
         <translation>&amp;Σχετικά βίντεο</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="599"/>
         <source>Watch videos related to the current one</source>
         <translation>Παρακολουθήστε βίντεο που σχετίζονται με το τρέχον</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="605"/>
         <source>Open in &amp;Browser...</source>
         <translation>Άνοιγμα σε &amp;Περιηγητή...</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="612"/>
-        <source>&amp;Love %1? Rate it!</source>
-        <translation>&amp;Λατρεύετε το %1; Βαθμολογήστε το!</translation>
+        <source>Restricted Mode</source>
+        <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="633"/>
-        <source>&amp;Application</source>
-        <translation>&amp;Εφαρμογή</translation>
+        <source>Hide videos that may contain inappropriate content</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <source>&amp;Love %1? Rate it!</source>
+        <translation>&amp;Λατρεύετε το %1; Βαθμολογήστε το!</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="618"/>
         <source>Buy %1...</source>
         <translation>Αγοράστε το %1...</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="647"/>
+        <source>&amp;Application</source>
+        <translation>&amp;Εφαρμογή</translation>
+    </message>
+    <message>
         <source>&amp;Playback</source>
         <translation>&amp;Αναπαραγωγή</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="661"/>
         <source>&amp;Playlist</source>
         <translation>Λ&amp;ίστα αναπαραγωγής</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="670"/>
         <source>&amp;Video</source>
         <translation>Βίν&amp;τεο</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="686"/>
-        <source>&amp;View</source>
-        <translation>&amp;Προβολή</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="695"/>
         <source>&amp;Share</source>
         <translation>&amp;Κοινοποίηση</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="709"/>
+        <source>&amp;View</source>
+        <translation>&amp;Προβολή</translation>
+    </message>
+    <message>
         <source>&amp;Help</source>
         <translation>&amp;Βοήθεια</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="751"/>
         <source>Press %1 to raise the volume, %2 to lower it</source>
         <translation>Πατήστε %1 για να αυξήσετε την ένταση, %2 για να την χαμηλώσετε</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1021"/>
-        <location filename="src/mainwindow.cpp" line="1027"/>
+        <source>Choose your content location</source>
+        <translation>Επιλέξτε την τοποθεσία για το περιεχόμενό σας </translation>
+    </message>
+    <message>
         <source>Opening %1</source>
         <translation>Άνοιγμα %1</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1080"/>
         <source>Do you want to exit %1 with a download in progress?</source>
         <translation>Θέλετε να κλείσετε το %1 ενώ βρίσκεται μια λήψη σε εξέλιξη;</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1081"/>
         <source>If you close %1 now, this download will be cancelled.</source>
         <translation>Αν κλείσετε το %1 τώρα, η λήψη θα ακυρωθεί.</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1086"/>
         <source>Close and cancel download</source>
         <translation>Κλείσιμο και ακύρωση λήψης</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1087"/>
         <source>Wait for download to finish</source>
         <translation>Αναμονή ολοκλήρωσης λήψης</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1158"/>
-        <source>&amp;Loading...</source>
-        <translation>&amp;Φόρτωση...</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="1264"/>
-        <source>Leave &amp;Full Screen</source>
-        <translation>Έξοδος από &amp;πλήρη οθόνη</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="1718"/>
-        <source>%1 version %2 is now available.</source>
-        <translation>Η έκδοση %2 του %1 έχει γίνει διαθέσιμη.</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="1722"/>
-        <source>Remind me later</source>
-        <translation>Υπενθύμιση αργότερα</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="1723"/>
-        <source>Update</source>
-        <translation>Ενημέρωση</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="1127"/>
         <source>Error: %1</source>
         <translation>Σφάλμα: %1</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="300"/>
-        <source>P&amp;revious</source>
-        <translation>Π&amp;ροηγούμενο</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="301"/>
-        <source>Go back to the previous track</source>
-        <translation>Επιστροφή στο προηγούμενο κομμάτι</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="335"/>
-        <source>&amp;Compact Mode</source>
-        <translation>&amp;Συμπαγής εμφάνιση</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="348"/>
-        <source>Open the &amp;YouTube Page</source>
-        <translation>Άνοιγμα στην Ιστοσελίδα του &amp;YouTube</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="355"/>
-        <source>Copy the YouTube &amp;Link</source>
-        <translation>Αντιγραφή του &amp;συνδέσμου YouTube</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="362"/>
-        <source>Copy the Video Stream &amp;URL</source>
-        <translation>Αντιγραφή του &amp;συνδέσμου της ροής βίντεο</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="369"/>
-        <source>Find Video &amp;Parts</source>
-        <translation>Αναζήτηση των &amp;επεισοδίων του βίντεο</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="397"/>
-        <source>&amp;Clear Recent Searches</source>
-        <translation>&amp;Εκκαθάριση πρόσφατων αναζητήσεων</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="421"/>
-        <source>Make a &amp;Donation</source>
-        <translation>Κάντε μια &amp;δωρεά</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="483"/>
-        <source>&amp;Manually Start Playing</source>
-        <translation>Εκκίνηση της αναπαραγωγής &amp;χειροκίνητα</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="484"/>
-        <source>Manually start playing videos</source>
-        <translation>Εκκίνηση αναπαραγωγής των βίντεο χειροκίνητα</translation>
+        <source>&amp;Pause</source>
+        <translation>&amp;Παύση</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="847"/>
-        <source>Choose your content location</source>
-        <translation>Επιλέξτε την τοποθεσία για το περιεχόμενό σας </translation>
+        <source>Pause playback</source>
+        <translation>Παύση αναπαραγωγής</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="314"/>
-        <location filename="src/mainwindow.cpp" line="1142"/>
-        <location filename="src/mainwindow.cpp" line="1150"/>
-        <source>&amp;Play</source>
-        <translation>Α&amp;ναπαραγωγή</translation>
+        <source>&amp;Loading...</source>
+        <translation>&amp;Φόρτωση...</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="315"/>
-        <location filename="src/mainwindow.cpp" line="1143"/>
-        <location filename="src/mainwindow.cpp" line="1151"/>
-        <source>Resume playback</source>
-        <translation>Συνέχεια αναπαραγωγής</translation>
+        <source>Leave &amp;Full Screen</source>
+        <translation>Έξοδος από &amp;πλήρη οθόνη</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1437"/>
         <source>Remaining time: %1</source>
         <translation>Υπολειπόμενος χρόνος: %1</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1528"/>
         <source>Volume at %1%</source>
         <translation>Ένταση στο %1%</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1534"/>
         <source>Volume is muted</source>
         <translation>Σίγαση</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1537"/>
         <source>Volume is unmuted</source>
         <translation>Η ένταση αποκαταστάθηκε</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1548"/>
         <source>Maximum video definition set to %1</source>
         <translation>H μέγιστη ανάλυση βίντεο τέθηκε σε %1</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1595"/>
         <source>Your privacy is now safe</source>
         <translation>Η ιδιωτικότητα σας είναι τώρα ασφαλής</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1610"/>
         <source>Downloads complete</source>
         <translation>Οι λήψεις ολοκληρώθηκαν</translation>
     </message>
+    <message>
+        <source>%1 version %2 is now available.</source>
+        <translation>Η έκδοση %2 του %1 έχει γίνει διαθέσιμη.</translation>
+    </message>
+    <message>
+        <source>Remind me later</source>
+        <translation>Υπενθύμιση αργότερα</translation>
+    </message>
+    <message>
+        <source>Update</source>
+        <translation>Ενημέρωση</translation>
+    </message>
 </context>
 <context>
     <name>MediaView</name>
     <message>
-        <location filename="src/mediaview.cpp" line="702"/>
         <source>You can now paste the YouTube link into another application</source>
         <translation>Τώρα μπορείτε να επικολλήσετε τον συνδεσμό του YouTube σε κάποια άλλη εφαρμογή</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="710"/>
         <source>You can now paste the video stream URL into another application</source>
         <translation>Τώρα μπορείτε να επικολλήσετε τον σύνδεσμο της ροής βίντεο σε κάποια άλλη εφαρμογή</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="711"/>
         <source>The link will be valid only for a limited time.</source>
         <translation>Ο σύνδεσμος θα είναι έγκυρος για περιορισμένο χρονικό διάστημα.</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="800"/>
         <source>This is just the demo version of %1.</source>
         <translation>Αυτή είναι απλά μια δοκιμαστική έκδοση του %1.</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="801"/>
         <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="833"/>
+        <source>Get the full version</source>
+        <translation>Αποκτήστε τη πλήρη έκδοση</translation>
+    </message>
+    <message>
         <source>Continue</source>
         <translation>Συνέχεια</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="988"/>
+        <source>Downloading %1</source>
+        <translation>Λήψη %1</translation>
+    </message>
+    <message>
         <source>of</source>
         <comment>Used in video parts, as in '2 of 3'</comment>
         <translation>από</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="1001"/>
         <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="1003"/>
         <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="1096"/>
         <source>Sent from %1</source>
         <translation>Αποστολή από %1</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="1128"/>
         <source>Unsubscribe from %1</source>
         <translation>Κατάργηση εγγραφής στο %1</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="1132"/>
         <source>Subscribe to %1</source>
         <translation>Εγγραφή στο %1</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="1166"/>
         <source>Unsubscribed from %1</source>
         <translation>Διεγράφη από το %1</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="1169"/>
         <source>Subscribed to %1</source>
         <translation>Εγγραφή στο %1</translation>
     </message>
-    <message>
-        <location filename="src/mediaview.cpp" line="808"/>
-        <source>Get the full version</source>
-        <translation>Αποκτήστε τη πλήρη έκδοση</translation>
-    </message>
-    <message>
-        <location filename="src/mediaview.cpp" line="847"/>
-        <source>Downloading %1</source>
-        <translation>Λήψη %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>Μια νέα έκδοση του %1 είναι διαθέσιμη!</translation>
     </message>
     <message>
-        <location filename="local/src/updatedialog.cpp" line="28"/>
         <source>%1 %2 is now available. You have %3.</source>
         <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>Θα θέλατε να την κατεβάσετε τώρα;</translation>
     </message>
     <message>
-        <location filename="local/src/updatedialog.cpp" line="39"/>
         <source>Skip This Version</source>
         <translation>Παράλειψη αυτής της έκδοσης</translation>
     </message>
     <message>
-        <location filename="local/src/updatedialog.cpp" line="43"/>
         <source>Remind Me Later</source>
         <translation>Υπενθύμισε το μου αργότερα</translation>
     </message>
     <message>
-        <location filename="local/src/updatedialog.cpp" line="47"/>
         <source>Install Update</source>
         <translation>Εγκατάσταση ενημέρωσης</translation>
     </message>
 <context>
     <name>PasteLineEdit</name>
     <message>
-        <location filename="local/src/pastelineedit.cpp" line="6"/>
         <source>Paste</source>
         <translation>Επικόλληση</translation>
     </message>
 <context>
     <name>PlaylistItemDelegate</name>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="209"/>
         <source>%1 views</source>
         <translation>%1 προβολές</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="309"/>
         <source>%1 of %2 (%3) — %4</source>
         <translation>%1 από %2 (%3) — %4</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="316"/>
         <source>Preparing</source>
         <translation>Προετοιμάζεται</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="318"/>
         <source>Failed</source>
         <translation>Απέτυχε</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="320"/>
         <source>Completed</source>
         <translation>Ολοκληρώθηκε</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="322"/>
         <source>Stopped</source>
         <translation>Διακόπηκε</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="358"/>
         <source>Stop downloading</source>
         <translation>Διακοπή λήψης</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="368"/>
         <source>Show in %1</source>
         <translation>Εμφάνιση σε %1</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="370"/>
         <source>Open parent folder</source>
         <translation>Άνοιγμα γονικού φακέλου</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="379"/>
         <source>Restart downloading</source>
         <translation>Επανεκκίνηση λήψης</translation>
     </message>
 <context>
     <name>PlaylistModel</name>
     <message>
-        <location filename="src/playlistmodel.cpp" line="70"/>
         <source>Searching...</source>
         <translation>Αναζήτηση...</translation>
     </message>
     <message>
-        <location filename="src/playlistmodel.cpp" line="71"/>
         <source>Show %1 More</source>
         <translation>Εμφάνιση %1 ακόμα</translation>
     </message>
     <message>
-        <location filename="src/playlistmodel.cpp" line="72"/>
         <source>No videos</source>
         <translation>Κανένα βίντεο</translation>
     </message>
     <message>
-        <location filename="src/playlistmodel.cpp" line="73"/>
         <source>No more videos</source>
         <translation>Δεν υπάρχουν άλλα βίντεο</translation>
     </message>
 <context>
     <name>RefineSearchWidget</name>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="49"/>
         <source>Sort by</source>
         <translation>Ταξινόμηση κατά ...</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="53"/>
         <source>Relevance</source>
         <translation>Σχετικότητα</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="54"/>
-        <location filename="src/refinesearchwidget.cpp" line="69"/>
         <source>Date</source>
         <translation>Ημερομηνία</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="55"/>
         <source>View Count</source>
         <translation>Αριθμό προβολών</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="56"/>
         <source>Rating</source>
         <translation>Βαθμολογία</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="73"/>
         <source>Anytime</source>
         <translation>Οποτεδήποτε</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="74"/>
         <source>Today</source>
         <translation>Σήμερα</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="75"/>
         <source>7 Days</source>
         <translation>Εβδομάδα</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="76"/>
         <source>30 Days</source>
         <translation>Μήνας</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="89"/>
         <source>Duration</source>
         <translation>Διάρκεια</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="93"/>
-        <location filename="src/refinesearchwidget.cpp" line="119"/>
         <source>All</source>
         <translation>Όλα</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="94"/>
         <source>Short</source>
         <translation>Μικρή</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="95"/>
         <source>Medium</source>
         <translation>Μέτρια</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="96"/>
         <source>Long</source>
         <translation>Μεγάλη</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="99"/>
         <source>Less than 4 minutes</source>
         <translation>Λιγότερη από 4 λεπτά</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="100"/>
         <source>Between 4 and 20 minutes</source>
         <translation>Μεταξύ 4 και 20 λεπτά</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="101"/>
         <source>Longer than 20 minutes</source>
         <translation>Μεγαλύτερη από 20 λεπτά</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="115"/>
         <source>Quality</source>
         <translation>Ποιότητα</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="120"/>
         <source>High Definition</source>
         <translation>Υψηλή Ανάλυση</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="123"/>
         <source>720p or higher</source>
         <translation>720p και μεγαλύτερη</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="136"/>
         <source>Done</source>
         <translation>Έγινε</translation>
     </message>
 <context>
     <name>RegionsView</name>
     <message>
-        <location filename="src/regionsview.cpp" line="39"/>
         <source>Done</source>
         <translation>Έγινε</translation>
     </message>
 <context>
     <name>SearchLineEdit</name>
     <message>
-        <location filename="src/searchlineedit.cpp" line="55"/>
         <source>Search</source>
         <translation>Αναζήτηση</translation>
     </message>
 <context>
     <name>SearchView</name>
     <message>
-        <location filename="src/searchview.cpp" line="83"/>
         <source>Welcome to &lt;a href=&apos;%1&apos;&gt;%2&lt;/a&gt;,</source>
         <translation>Καλωσορίσατε στο &lt;a href=&apos;%1&apos;&gt;%2&lt;/a&gt;,</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="200"/>
-        <source>Get the full version</source>
-        <translation>Αποκτήστε την πλήρη έκδοση</translation>
-    </message>
-    <message>
-        <location filename="src/searchview.cpp" line="110"/>
         <source>Enter</source>
         <extracomment>&quot;Enter&quot;, as in &quot;type&quot;. The whole phrase says: &quot;Enter a keyword to start watching videos&quot;</extracomment>
         <translation>Εισάγετε</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="117"/>
         <source>a keyword</source>
         <translation>μια λέξη-κλειδί</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="118"/>
         <source>a channel</source>
         <translation>ένα κανάλι</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="125"/>
         <source>to start watching videos.</source>
         <translation>για να αρχίσετε να βλέπετε βίντεο.</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="156"/>
         <source>Watch</source>
         <translation>Παρακολουθήστε</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="174"/>
         <source>Recent keywords</source>
         <translation>Πρόσφατες λέξεις-κλειδιά</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="186"/>
         <source>Recent channels</source>
         <translation>Πρόσφατα κανάλια</translation>
     </message>
+    <message>
+        <source>Get the full version</source>
+        <translation>Αποκτήστε την πλήρη έκδοση</translation>
+    </message>
 </context>
 <context>
     <name>SidebarHeader</name>
     <message>
-        <location filename="src/sidebarheader.cpp" line="38"/>
-        <location filename="src/sidebarheader.cpp" line="45"/>
         <source>&amp;Back</source>
         <translation>&amp;Επιστροφή</translation>
     </message>
     <message>
-        <location filename="src/sidebarheader.cpp" line="76"/>
         <source>Forward to %1</source>
         <translation>Προώθηση σε %1</translation>
     </message>
     <message>
-        <location filename="src/sidebarheader.cpp" line="89"/>
         <source>Back to %1</source>
         <translation>Επιστροφή στο %1</translation>
     </message>
 <context>
     <name>SidebarWidget</name>
     <message>
-        <location filename="src/sidebarwidget.cpp" line="68"/>
         <source>Refine Search</source>
         <translation>Σύνθετη Αναζήτηση</translation>
     </message>
     <message>
-        <location filename="src/sidebarwidget.cpp" line="167"/>
         <source>Did you mean: %1</source>
         <translation>Μήπως εννοείτε: %1</translation>
     </message>
 <context>
     <name>SnapshotSettings</name>
     <message>
-        <location filename="src/snapshotsettings.cpp" line="47"/>
         <source>Change location...</source>
         <translation>Αλλάξτε τοποθεσία...</translation>
     </message>
     <message>
-        <location filename="src/snapshotsettings.cpp" line="64"/>
         <source>Snapshot saved to %1</source>
         <translation>Το στιγμιότυπο αποθηκεύτηκε σε %1</translation>
     </message>
     <message>
-        <location filename="src/snapshotsettings.cpp" line="117"/>
         <source>Snapshots location changed.</source>
         <translation>Η τοποθεσία για στιγμιότυπα άλλαξε.</translation>
     </message>
 <context>
     <name>StandardFeedsView</name>
     <message>
-        <location filename="src/standardfeedsview.cpp" line="107"/>
         <source>Most Popular</source>
         <translation>Πιο δημοφιλή</translation>
     </message>
 </context>
+<context>
+    <name>UpdateDialog</name>
+    <message>
+        <source>Downloading update...</source>
+        <translation>Λήψη ενημερώσεων...</translation>
+    </message>
+    <message>
+        <source>Downloading %1...</source>
+        <translation>Λήψη %1...</translation>
+    </message>
+</context>
 <context>
     <name>Video</name>
     <message>
-        <location filename="src/video.cpp" line="287"/>
         <source>Cannot get video stream for %1</source>
         <translation>Αδυναμία λήψης της ροής βίντεο για το %1</translation>
     </message>
-    <message>
-        <location filename="src/video.cpp" line="292"/>
-        <source>Network error: %1 for %2</source>
-        <translation>Σφάλμα δικτύου: %1 για %2</translation>
-    </message>
 </context>
 <context>
     <name>YTRegions</name>
     <message>
-        <location filename="src/ytregions.cpp" line="28"/>
         <source>Algeria</source>
         <translation>Αλγερία</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="29"/>
         <source>Argentina</source>
         <translation>Αργεντινή</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="30"/>
         <source>Australia</source>
         <translation>Αυστραλία</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="31"/>
         <source>Belgium</source>
         <translation>Βέλγιο</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="32"/>
         <source>Brazil</source>
         <translation>Βραζιλία</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="33"/>
         <source>Canada</source>
         <translation>Καναδάς</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="34"/>
         <source>Chile</source>
         <translation>Χιλή</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="35"/>
         <source>Colombia</source>
         <translation>Κολομβία</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="36"/>
         <source>Czech Republic</source>
         <translation>Τσεχία</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="37"/>
         <source>Egypt</source>
         <translation>Αίγυπτος</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="38"/>
         <source>France</source>
         <translation>Γαλλία</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="39"/>
         <source>Germany</source>
         <translation>Γερμανία</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="40"/>
         <source>Ghana</source>
         <translation>Γκάνα</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="41"/>
         <source>Greece</source>
         <translation>Ελλάδα</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="42"/>
         <source>Hong Kong</source>
         <translation>Χονγκ Κονγκ</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="43"/>
         <source>Hungary</source>
         <translation>Ουγγαρία</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="44"/>
         <source>India</source>
         <translation>Ινδία</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="45"/>
         <source>Indonesia</source>
         <translation>Ινδονησία</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="46"/>
         <source>Ireland</source>
         <translation>Ιρλανδία</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="47"/>
         <source>Israel</source>
         <translation>Ισραήλ</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="48"/>
         <source>Italy</source>
         <translation>Ιταλία</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="49"/>
         <source>Japan</source>
         <translation>Ιαπωνία</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="50"/>
         <source>Jordan</source>
         <translation>Ιορδανία</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="51"/>
         <source>Kenya</source>
         <translation>Κένυα</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="52"/>
         <source>Malaysia</source>
         <translation>Μαλαισία</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="53"/>
         <source>Mexico</source>
         <translation>Μεξικό</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="54"/>
         <source>Morocco</source>
         <translation>Μαρόκο</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="55"/>
         <source>Netherlands</source>
         <translation>Κάτω Χώρες</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="56"/>
         <source>New Zealand</source>
         <translation>Νέα Ζηλανδία</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="57"/>
         <source>Nigeria</source>
         <translation>Νιγηρία</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="58"/>
         <source>Peru</source>
         <translation>Περού</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="59"/>
         <source>Philippines</source>
         <translation>Φιλιππίνες</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="60"/>
         <source>Poland</source>
         <translation>Πολωνία</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="61"/>
         <source>Russia</source>
         <translation>Ρωσία</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="62"/>
         <source>Saudi Arabia</source>
         <translation>Σαουδική Αραβία</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="63"/>
         <source>Singapore</source>
         <translation>Σινγκαπούρη</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="64"/>
         <source>South Africa</source>
         <translation>Νότια Αφρική</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="65"/>
         <source>South Korea</source>
         <translation>Νότια Κορέα</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="66"/>
         <source>Spain</source>
         <translation>Ισπανία</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="67"/>
         <source>Sweden</source>
         <translation>Σουηδία</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="68"/>
         <source>Taiwan</source>
         <translation>Ταϊβάν</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="69"/>
         <source>Tunisia</source>
         <translation>Τυνησία</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="70"/>
         <source>Turkey</source>
         <translation>Τουρκία</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="71"/>
         <source>Uganda</source>
         <translation>Ουγκάντα</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="72"/>
         <source>United Arab Emirates</source>
         <translation>Ηνωμένα Αραβικά Εμιράτα</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="73"/>
         <source>United Kingdom</source>
         <translation>Ηνωμένο Βασίλειο</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="74"/>
         <source>Yemen</source>
         <translation>Υεμένη</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="148"/>
         <source>Worldwide</source>
         <translation>Παγκοσμίως</translation>
     </message>
index e16f9fce9dd4d5cea5c466c6d0c533908363c9dd..c0d34c44df1e59775b811f8f004fa65d9c0ffecb 100644 (file)
@@ -2,67 +2,42 @@
 <context>
     <name>AboutView</name>
     <message>
-        <location filename="src/aboutview.cpp" line="58"/>
         <source>There&apos;s life outside the browser!</source>
         <translation>¡Hay vida más allá del navegador!</translation>
     </message>
     <message>
-        <location filename="src/aboutview.cpp" line="59"/>
         <source>Version %1</source>
         <translation>Versión %1</translation>
     </message>
     <message>
-        <location filename="src/aboutview.cpp" line="64"/>
         <source>Licensed to: %1</source>
         <translation>Con licencia para: %1</translation>
     </message>
     <message>
-        <location filename="src/aboutview.cpp" line="68"/>
         <source>%1 is Free Software but its development takes precious time.</source>
         <translation>%1 es software libre, pero su desarrollo supone un tiempo muy valioso.</translation>
     </message>
     <message>
-        <location filename="src/aboutview.cpp" line="69"/>
         <source>Please &lt;a href=&apos;%1&apos;&gt;donate&lt;/a&gt; to support the continued development of %2.</source>
         <translation>Haga una &lt;a href=&apos;%1&apos;&gt;donación&lt;/a&gt; para ayudar a continuar el desarrollo de %2.</translation>
     </message>
     <message>
-        <location filename="src/aboutview.cpp" line="73"/>
-        <source>You may want to try my other apps as well:</source>
-        <translation>Quizá también quiera probar mis otras aplicaciones:</translation>
-    </message>
-    <message>
-        <location filename="src/aboutview.cpp" line="76"/>
-        <source>%1, a YouTube music player</source>
-        <translation>%1, un reproductor de música de YouTube</translation>
-    </message>
-    <message>
-        <location filename="src/aboutview.cpp" line="80"/>
-        <source>%1, a music player</source>
-        <translation>%1, un reproductor de música</translation>
-    </message>
-    <message>
-        <location filename="src/aboutview.cpp" line="86"/>
         <source>Translate %1 to your native language using %2</source>
         <translation>Traduzca %1 a su idioma natal usando %2</translation>
     </message>
     <message>
-        <location filename="src/aboutview.cpp" line="91"/>
         <source>Icon designed by %1.</source>
         <translation>Icono diseñado por %1.</translation>
     </message>
     <message>
-        <location filename="src/aboutview.cpp" line="95"/>
         <source>Released under the &lt;a href=&apos;%1&apos;&gt;GNU General Public License&lt;/a&gt;</source>
         <translation>Publicado bajo la &lt;a href=&apos;%1&apos;&gt;Licencia Pública General de GNU&lt;/a&gt;</translation>
     </message>
     <message>
-        <location filename="src/aboutview.cpp" line="110"/>
         <source>&amp;Close</source>
         <translation>&amp;Cerrar</translation>
     </message>
     <message>
-        <location filename="src/aboutview.h" line="40"/>
         <source>About</source>
         <translation>Acerca de</translation>
     </message>
 <context>
     <name>ActivationDialog</name>
     <message>
-        <location filename="local/src/activationdialog.cpp" line="17"/>
         <source>Enter your License Details</source>
         <translation>Introduzca los detalles de la licencia</translation>
     </message>
     <message>
-        <location filename="local/src/activationdialog.cpp" line="29"/>
         <source>&amp;Email:</source>
         <translation>Correo &amp;electrónico:</translation>
     </message>
     <message>
-        <location filename="local/src/activationdialog.cpp" line="35"/>
         <source>&amp;Code:</source>
         <translation>&amp;Código:</translation>
     </message>
 <context>
     <name>ActivationView</name>
     <message>
-        <location filename="local/src/activationview.cpp" line="47"/>
         <source>Please license %1</source>
         <translation>Obtenga una licencia de %1</translation>
     </message>
     <message>
-        <location filename="local/src/activationview.cpp" line="51"/>
         <source>This demo has expired.</source>
         <translation>Esta versión de demostración ha caducado.</translation>
     </message>
     <message>
-        <location filename="local/src/activationview.cpp" line="53"/>
         <source>The full version allows you to watch videos without interruptions.</source>
-        <oldsource>The full version allows you to download videos longer than %1 minutes and to watch videos without interruptions.</oldsource>
         <translation>La versión completa le permite 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>Sin una licencia, la aplicación caducará en %1 días.</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 realizado en la creación de %1.</translation>
     </message>
     <message>
-        <location filename="local/src/activationview.cpp" line="70"/>
         <source>Use Demo</source>
         <translation>Usar demostración</translation>
     </message>
     <message>
-        <location filename="local/src/activationview.cpp" line="77"/>
         <source>Enter License</source>
         <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>AppWidget</name>
+    <message>
+        <source>Download</source>
+        <translation>Descargar</translation>
+    </message>
+</context>
 <context>
     <name>ChannelAggregator</name>
     <message>
-        <location filename="src/channelaggregator.cpp" line="183"/>
         <source>By %1</source>
         <translation>Por %1</translation>
     </message>
     <message numerus="yes">
-        <location filename="src/channelaggregator.cpp" line="185"/>
         <source>You have %n new video(s)</source>
-        <translation><numerusform>Tiene %n video nuevo!</numerusform><numerusform>Tienes %n videos(s) nuevos!</numerusform></translation>
+        <translation type="unfinished"><numerusform></numerusform><numerusform></numerusform></translation>
     </message>
 </context>
 <context>
     <name>ChannelItemDelegate</name>
     <message>
-        <location filename="src/channelitemdelegate.cpp" line="67"/>
         <source>All Videos</source>
         <translation>Todos los vídeos</translation>
     </message>
     <message>
-        <location filename="src/channelitemdelegate.cpp" line="85"/>
         <source>Unwatched Videos</source>
         <translation>Vídeos sin ver</translation>
     </message>
 <context>
     <name>ChannelView</name>
     <message>
-        <location filename="src/channelview.cpp" line="151"/>
-        <source>Mark all as watched</source>
-        <translation>Marcar todos como vistos</translation>
-    </message>
-    <message>
-        <location filename="src/channelview.cpp" line="159"/>
-        <source>Show Updated</source>
-        <translation>Mostrar actualizados</translation>
-    </message>
-    <message>
-        <location filename="src/channelview.cpp" line="103"/>
         <source>Name</source>
         <translation>Nombre</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="110"/>
         <source>Last Updated</source>
         <translation>Actualizado por última vez</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="117"/>
         <source>Last Added</source>
         <translation>Añadido por última vez</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="124"/>
         <source>Last Watched</source>
         <translation>Vistos por última vez</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="131"/>
         <source>Most Watched</source>
         <translation>Más vistos</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="139"/>
         <source>Sort by</source>
         <translation>Ordenar por</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="222"/>
+        <source>Mark all as watched</source>
+        <translation>Marcar todos como vistos</translation>
+    </message>
+    <message>
+        <source>Show Updated</source>
+        <translation>Mostrar actualizados</translation>
+    </message>
+    <message>
         <source>All Videos</source>
         <translation>Todos los vídeos</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="226"/>
         <source>Unwatched Videos</source>
         <translation>Vídeos sin ver</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="244"/>
         <source>Mark as Watched</source>
         <translation>Marcar como visto</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="257"/>
         <source>Unsubscribe</source>
         <translation>Cancelar suscripción</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="270"/>
         <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="272"/>
         <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 para suscribirse a los canales.</translation>
     </message>
 <context>
     <name>ClearButton</name>
     <message>
-        <location filename="src/exlineedit.cpp" line="6"/>
         <source>Clear</source>
         <translation>Vaciar</translation>
     </message>
 <context>
     <name>DataUtils</name>
     <message>
-        <location filename="src/datautils.cpp" line="88"/>
         <source>Just now</source>
         <translation>Justo Ahora</translation>
     </message>
     <message numerus="yes">
-        <location filename="src/datautils.cpp" line="90"/>
-        <source>%n minute(s) ago</source>
-        <translation><numerusform>Hace 1 minuto</numerusform><numerusform>Hace %n minutos</numerusform></translation>
-    </message>
-    <message numerus="yes">
-        <location filename="src/datautils.cpp" line="92"/>
         <source>%n hour(s) ago</source>
-        <translation><numerusform>Hace 1 hora</numerusform><numerusform>Hace %n horas</numerusform></translation>
+        <translation type="unfinished"><numerusform></numerusform><numerusform></numerusform></translation>
     </message>
     <message numerus="yes">
-        <location filename="src/datautils.cpp" line="94"/>
         <source>%n day(s) ago</source>
-        <translation><numerusform>Hace 1 dia</numerusform><numerusform>Hace %n dias</numerusform></translation>
+        <translation type="unfinished"><numerusform></numerusform><numerusform></numerusform></translation>
     </message>
     <message numerus="yes">
-        <location filename="src/datautils.cpp" line="96"/>
         <source>%n weeks(s) ago</source>
-        <translation><numerusform>Hace 1 semana</numerusform><numerusform>Hace %n semanas</numerusform></translation>
+        <translation type="unfinished"><numerusform></numerusform><numerusform></numerusform></translation>
     </message>
     <message numerus="yes">
-        <location filename="src/datautils.cpp" line="98"/>
         <source>%n month(s) ago</source>
-        <translation><numerusform>Hace 1 mes</numerusform><numerusform>Hace %n meses</numerusform></translation>
+        <translation type="unfinished"><numerusform></numerusform><numerusform></numerusform></translation>
     </message>
 </context>
 <context>
     <name>DownloadItem</name>
     <message>
-        <location filename="src/downloaditem.cpp" line="406"/>
         <source>bytes</source>
         <translation>bytes</translation>
     </message>
     <message>
-        <location filename="src/downloaditem.cpp" line="409"/>
         <source>KB</source>
         <translation>KB</translation>
     </message>
     <message>
-        <location filename="src/downloaditem.cpp" line="412"/>
         <source>MB</source>
         <translation>MB</translation>
     </message>
     <message>
-        <location filename="src/downloaditem.cpp" line="421"/>
         <source>bytes/sec</source>
         <translation>bytes/s</translation>
     </message>
     <message>
-        <location filename="src/downloaditem.cpp" line="424"/>
         <source>KB/sec</source>
         <translation>KB/s</translation>
     </message>
     <message>
-        <location filename="src/downloaditem.cpp" line="427"/>
         <source>MB/sec</source>
         <translation>MB/s</translation>
     </message>
     <message>
-        <location filename="src/downloaditem.cpp" line="433"/>
         <source>seconds</source>
         <translation>segundos</translation>
     </message>
     <message>
-        <location filename="src/downloaditem.cpp" line="436"/>
         <source>minutes</source>
         <translation>minutos</translation>
     </message>
     <message>
-        <location filename="src/downloaditem.cpp" line="439"/>
         <source>%4 %5 remaining</source>
         <translation>%4 %5 restantes</translation>
     </message>
 <context>
     <name>DownloadManager</name>
     <message>
-        <location filename="src/downloadmanager.cpp" line="77"/>
         <source>This is just the demo version of %1.</source>
         <translation>Esta es solo la versión de prueba de %1.</translation>
     </message>
     <message>
-        <location filename="src/downloadmanager.cpp" line="79"/>
         <source>It can only download videos shorter than %1 minutes so you can test the download functionality.</source>
         <translation>Solo puede descargar vídeos de duración menor que %1 minutos para que pueda probar la función de descarga.</translation>
     </message>
     <message>
-        <location filename="src/downloadmanager.cpp" line="85"/>
         <source>Continue</source>
         <translation>Continuar</translation>
     </message>
     <message>
-        <location filename="src/downloadmanager.cpp" line="86"/>
         <source>Get the full version</source>
         <translation>Obtener la versión completa</translation>
     </message>
     <message>
-        <location filename="src/downloadmanager.cpp" line="157"/>
         <source>%1 downloaded in %2</source>
         <translation>%1 descargados en %2</translation>
     </message>
     <message>
-        <location filename="src/downloadmanager.cpp" line="160"/>
         <source>Download finished</source>
         <translation>Descarga finalizada</translation>
     </message>
     <message numerus="yes">
-        <location filename="src/downloadmanager.cpp" line="165"/>
         <source>%n Download(s)</source>
-        <translation><numerusform>%n descarga(s)</numerusform><numerusform>%n descarga(s)</numerusform></translation>
+        <translation type="unfinished"><numerusform></numerusform><numerusform></numerusform></translation>
     </message>
 </context>
 <context>
     <name>DownloadSettings</name>
     <message>
-        <location filename="src/downloadsettings.cpp" line="36"/>
         <source>Change location...</source>
         <translation>Cambiar ubicación…</translation>
     </message>
     <message>
-        <location filename="src/downloadsettings.cpp" line="69"/>
         <source>Choose the download location</source>
         <translation>Elija la ubicación de las descargas</translation>
     </message>
     <message>
-        <location filename="src/downloadsettings.cpp" line="81"/>
         <source>Download location changed.</source>
         <translation>Ubicación para descargas modificada.</translation>
     </message>
     <message>
-        <location filename="src/downloadsettings.cpp" line="83"/>
         <source>Current downloads will still go in the previous location.</source>
         <translation>Las descargas en curso irán a la ubicación anterior.</translation>
     </message>
     <message>
-        <location filename="src/downloadsettings.cpp" line="94"/>
         <source>Downloading to: %1</source>
         <translation>Descargando a: %1</translation>
     </message>
 <context>
     <name>DownloadView</name>
     <message>
-        <location filename="src/downloadview.cpp" line="38"/>
-        <location filename="src/downloadview.h" line="45"/>
         <source>Downloads</source>
         <translation>Descargas</translation>
     </message>
 </context>
-<context>
-    <name>DownloadWidget</name>
-    <message>
-        <location filename="local/src/updatedialog.cpp" line="60"/>
-        <source>Downloading update...</source>
-        <translation>Descargando la actualización…</translation>
-    </message>
-</context>
 <context>
     <name>Extra</name>
     <message>
-        <location filename="local/src/extra.cpp" line="251"/>
         <source>The executable file has been tempered with, maybe by a virus.</source>
         <translation>El archivo ejecutable ha sido alterado, tal vez por un virus.</translation>
     </message>
     <message>
-        <location filename="local/src/extra.cpp" line="252"/>
         <source>%1 will not run. Try installing again.</source>
         <translation>%1 no se ejecutará. Trate de instalar  nuevamente.</translation>
     </message>
     <message>
-        <location filename="local/src/extra.cpp" line="253"/>
         <source>Quit</source>
         <translation>Cerrar</translation>
     </message>
     <message>
-        <location filename="local/src/extra.cpp" line="254"/>
         <source>Reinstall</source>
         <translation>Reinstalar</translation>
     </message>
 <context>
     <name>GlobalShortcuts</name>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="36"/>
         <source>Play</source>
         <translation>Reproducir</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="37"/>
         <source>Pause</source>
         <translation>Pausar</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="38"/>
         <source>Play/Pause</source>
         <translation>Reproducir/pausar</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="39"/>
         <source>Stop</source>
         <translation>Detener</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="40"/>
         <source>Stop playing after current track</source>
         <translation>Detener la reproducción al terminar la pista actual</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="41"/>
         <source>Next track</source>
         <translation>Pista siguiente</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="42"/>
         <source>Previous track</source>
         <translation>Pista anterior</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="43"/>
         <source>Increase volume</source>
         <translation>Aumentar volumen</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="44"/>
         <source>Decrease volume</source>
         <translation>Disminuir volumen</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="45"/>
         <source>Mute</source>
         <translation>Silenciar</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="46"/>
         <source>Seek forward</source>
         <translation>Buscar hacia adelante</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="47"/>
         <source>Seek backward</source>
         <translation>Buscar hacia atrás</translation>
     </message>
 <context>
     <name>HomeView</name>
     <message>
-        <location filename="src/homeview.cpp" line="58"/>
         <source>Search</source>
         <translation>Buscar</translation>
     </message>
     <message>
-        <location filename="src/homeview.cpp" line="60"/>
         <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="65"/>
         <source>Browse</source>
         <translation>Examinar</translation>
     </message>
     <message>
-        <location filename="src/homeview.cpp" line="67"/>
         <source>Browse videos by category</source>
         <translation>Buscar videos por categoría</translation>
     </message>
     <message>
-        <location filename="src/homeview.cpp" line="71"/>
         <source>Subscriptions</source>
         <translation>Suscripciones</translation>
     </message>
     <message>
-        <location filename="src/homeview.cpp" line="73"/>
         <source>Channel subscriptions</source>
         <translation>Suscripciones a canales</translation>
     </message>
     <message>
-        <location filename="src/homeview.h" line="44"/>
         <source>Make yourself comfortable</source>
         <translation>Póngase cómodo</translation>
     </message>
 <context>
     <name>LoadingWidget</name>
     <message>
-        <location filename="src/loadingwidget.cpp" line="125"/>
         <source>Error</source>
         <translation>Error</translation>
     </message>
 <context>
     <name>MainWindow</name>
     <message>
-        <location filename="src/mainwindow.cpp" line="291"/>
+        <source>&amp;Window</source>
+        <translation>&amp;Ventana</translation>
+    </message>
+    <message>
+        <source>&amp;Minimize</source>
+        <translation>&amp;Minimizar</translation>
+    </message>
+    <message>
         <source>&amp;Stop</source>
         <translation>&amp;Detener</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="292"/>
         <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="307"/>
+        <source>P&amp;revious</source>
+        <translation>Ante&amp;rior</translation>
+    </message>
+    <message>
+        <source>Go back to the previous track</source>
+        <translation>Regresar a la pista anterior</translation>
+    </message>
+    <message>
         <source>S&amp;kip</source>
         <translation>&amp;Omitir</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="308"/>
         <source>Skip to the next video</source>
         <translation>Omitir vídeo y saltar al siguiente</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1134"/>
-        <source>&amp;Pause</source>
-        <translation>&amp;Pausar</translation>
+        <source>&amp;Play</source>
+        <translation>&amp;Reproducir</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1135"/>
-        <source>Pause playback</source>
-        <translation>Pausar la reproducción</translation>
+        <source>Resume playback</source>
+        <translation>Continuar la reproducción</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="321"/>
         <source>&amp;Full Screen</source>
         <translation>&amp;Pantalla completa</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="322"/>
         <source>Go full screen</source>
         <translation>Ir a pantalla completa</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="336"/>
+        <source>&amp;Compact Mode</source>
+        <translation>Modo &amp;compacto</translation>
+    </message>
+    <message>
         <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="349"/>
+        <source>Open the &amp;YouTube Page</source>
+        <translation>Abrir la página de &amp;YouTube</translation>
+    </message>
+    <message>
         <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="356"/>
+        <source>Copy the YouTube &amp;Link</source>
+        <translation>Copiar el en&amp;lace de YouTube</translation>
+    </message>
+    <message>
         <source>Copy the current video YouTube link to the clipboard</source>
         <translation>Copiar el enlace de YouTube del vídeo actual en el portapapeles</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="363"/>
+        <source>Copy the Video Stream &amp;URL</source>
+        <translation>Copiar el &amp;URL de flujo del vídeo</translation>
+    </message>
+    <message>
         <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="370"/>
+        <source>Find Video &amp;Parts</source>
+        <translation>Encontrar &amp;partes de vídeos</translation>
+    </message>
+    <message>
         <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="376"/>
         <source>&amp;Remove</source>
         <translation>&amp;Eliminar</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="377"/>
         <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="383"/>
         <source>Move &amp;Up</source>
         <translation>&amp;Subir</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="384"/>
         <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="390"/>
         <source>Move &amp;Down</source>
         <translation>&amp;Bajar</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="391"/>
         <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="402"/>
+        <source>&amp;Clear Recent Searches</source>
+        <translation>&amp;Limpiar búsquedas recientes</translation>
+    </message>
+    <message>
         <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="407"/>
         <source>&amp;Quit</source>
         <translation>&amp;Salir</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="410"/>
         <source>Bye</source>
         <translation>Hasta luego</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="414"/>
         <source>&amp;Website</source>
         <translation>&amp;Sitio web</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="416"/>
         <source>%1 on the Web</source>
         <translation>%1 en la web</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="422"/>
+        <source>Make a &amp;Donation</source>
+        <translation>Hacer una &amp;donación</translation>
+    </message>
+    <message>
         <source>Please support the continued development of %1</source>
         <translation>Porfavor apoye el desarrollo continuo de %1</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="427"/>
         <source>&amp;About</source>
         <translation>&amp;Acerca de</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="429"/>
         <source>Info about %1</source>
         <translation>Información acerca de %1</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="437"/>
         <source>Search</source>
         <translation>Buscar</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="456"/>
         <source>Mute volume</source>
         <translation>Silenciar volumen</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="490"/>
-        <location filename="src/mainwindow.cpp" line="1609"/>
+        <source>&amp;Manually Start Playing</source>
+        <translation>Comenzar la reproducción &amp;manualmente</translation>
+    </message>
+    <message>
+        <source>Manually start playing videos</source>
+        <translation>Comenzar la reproducción de vídeos manualmente</translation>
+    </message>
+    <message>
         <source>&amp;Downloads</source>
         <translation>&amp;Descargas</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="491"/>
         <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="499"/>
         <source>&amp;Download</source>
         <translation>&amp;Descargar</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="500"/>
         <source>Download the current video</source>
         <translation>Descargar el vídeo actual</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="510"/>
         <source>Take &amp;Snapshot</source>
-        <translation>Tomar &amp;captura</translation>
+        <translation>Tomar &amp;Captura</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="517"/>
         <source>&amp;Subscribe to Channel</source>
-        <translation>&amp;Suscribirse al canal</translation>
+        <translation>&amp;Suscribirse al Canal</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="525"/>
         <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="545"/>
         <source>&amp;Email</source>
         <translation>&amp;Correo electrónico</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="546"/>
         <source>Email</source>
         <translation>Correo electrónico</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="551"/>
         <source>&amp;Close</source>
         <translation>&amp;Cerrar</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="561"/>
         <source>&amp;Float on Top</source>
         <translation>&amp;Flotar en la parte superior</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="566"/>
         <source>&amp;Adjust Window Size</source>
         <translation>&amp;Ajustar tamaño de la ventana</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="571"/>
         <source>&amp;Stop After This Video</source>
         <translation>&amp;Detener tras este vídeo</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="578"/>
         <source>&amp;Report an Issue...</source>
         <translation>&amp;Informar de un problema...</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="582"/>
         <source>&amp;Refine Search...</source>
         <translation>&amp;Refinar la búsqueda...</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="594"/>
         <source>More...</source>
         <translation>Más…</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="597"/>
         <source>&amp;Related Videos</source>
-        <translation>Vídeos &amp;relacionados</translation>
+        <translation>Vídeos &amp;Relacionados</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="599"/>
         <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="605"/>
         <source>Open in &amp;Browser...</source>
         <translation>Abrir en &amp;Navegador...</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="612"/>
-        <source>&amp;Love %1? Rate it!</source>
-        <translation>¿&amp;Le gusta %1? ¡Valórelo!</translation>
+        <source>Restricted Mode</source>
+        <translation>Modo Restringido</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="633"/>
-        <source>&amp;Application</source>
-        <translation>&amp;Aplicación</translation>
+        <source>Hide videos that may contain inappropriate content</source>
+        <translation>Ocultar videos que puedan contener contenido inapropiado</translation>
+    </message>
+    <message>
+        <source>&amp;Love %1? Rate it!</source>
+        <translation>¿&amp;Le gusta %1? ¡Valórelo!</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="618"/>
         <source>Buy %1...</source>
         <translation>Comprar %1…</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="647"/>
+        <source>&amp;Application</source>
+        <translation>&amp;Aplicación</translation>
+    </message>
+    <message>
         <source>&amp;Playback</source>
         <translation>&amp;Reproducción</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="661"/>
         <source>&amp;Playlist</source>
         <translation>&amp;Lista de reprod.</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="670"/>
         <source>&amp;Video</source>
         <translation>&amp;Vídeo</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="686"/>
-        <source>&amp;View</source>
-        <translation>&amp;Ver</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="695"/>
         <source>&amp;Share</source>
         <translation>&amp;Compartir</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="709"/>
+        <source>&amp;View</source>
+        <translation>&amp;Ver</translation>
+    </message>
+    <message>
         <source>&amp;Help</source>
         <translation>&amp;Ayuda</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="751"/>
         <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="1021"/>
-        <location filename="src/mainwindow.cpp" line="1027"/>
+        <source>Choose your content location</source>
+        <translation>Elija su ubicación para el contenido</translation>
+    </message>
+    <message>
         <source>Opening %1</source>
         <translation>Abriendo %1</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1080"/>
         <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="1081"/>
         <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="1086"/>
         <source>Close and cancel download</source>
         <translation>Cerrar y cancelar descarga</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1087"/>
         <source>Wait for download to finish</source>
         <translation>Esperando a que finalice la descarga</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1158"/>
-        <source>&amp;Loading...</source>
-        <translation>&amp;Cargando...</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="1264"/>
-        <source>Leave &amp;Full Screen</source>
-        <translation>&amp;Salir de pantalla completa</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="1718"/>
-        <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="1722"/>
-        <source>Remind me later</source>
-        <translation>Recordarme después</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="1723"/>
-        <source>Update</source>
-        <translation>Actualizar</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="1127"/>
         <source>Error: %1</source>
         <translation>Error: %1</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="300"/>
-        <source>P&amp;revious</source>
-        <translation>Ante&amp;rior</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="301"/>
-        <source>Go back to the previous track</source>
-        <translation>Regresar a la pista anterior</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="335"/>
-        <source>&amp;Compact Mode</source>
-        <translation>Modo &amp;compacto</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="348"/>
-        <source>Open the &amp;YouTube Page</source>
-        <translation>Abrir la página de &amp;YouTube</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="355"/>
-        <source>Copy the YouTube &amp;Link</source>
-        <translation>Copiar el en&amp;lace de YouTube</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="362"/>
-        <source>Copy the Video Stream &amp;URL</source>
-        <translation>Copiar el &amp;URL de flujo del vídeo</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="369"/>
-        <source>Find Video &amp;Parts</source>
-        <translation>Encontrar &amp;partes de vídeos</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="397"/>
-        <source>&amp;Clear Recent Searches</source>
-        <translation>&amp;Limpiar búsquedas recientes</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="421"/>
-        <source>Make a &amp;Donation</source>
-        <translation>Hacer una &amp;donación</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="483"/>
-        <source>&amp;Manually Start Playing</source>
-        <translation>Comenzar la reproducción &amp;manualmente</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="484"/>
-        <source>Manually start playing videos</source>
-        <translation>Comenzar la reproducción de vídeos manualmente</translation>
+        <source>&amp;Pause</source>
+        <translation>&amp;Pausar</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="847"/>
-        <source>Choose your content location</source>
-        <translation>Elija su ubicación para el contenido</translation>
+        <source>Pause playback</source>
+        <translation>Pausar la reproducción</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="314"/>
-        <location filename="src/mainwindow.cpp" line="1142"/>
-        <location filename="src/mainwindow.cpp" line="1150"/>
-        <source>&amp;Play</source>
-        <translation>&amp;Reproducir</translation>
+        <source>&amp;Loading...</source>
+        <translation>&amp;Cargando...</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="315"/>
-        <location filename="src/mainwindow.cpp" line="1143"/>
-        <location filename="src/mainwindow.cpp" line="1151"/>
-        <source>Resume playback</source>
-        <translation>Continuar la reproducción</translation>
+        <source>Leave &amp;Full Screen</source>
+        <translation>&amp;Salir de pantalla completa</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1437"/>
         <source>Remaining time: %1</source>
         <translation>Tiempo restante: %1</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1528"/>
         <source>Volume at %1%</source>
         <translation>Volumen al %1%</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1534"/>
         <source>Volume is muted</source>
         <translation>El volumen está silenciado</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1537"/>
         <source>Volume is unmuted</source>
         <translation>El volumen no está silenciado</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1548"/>
         <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="1595"/>
         <source>Your privacy is now safe</source>
         <translation>Su privacidad ahora está asegurada
 </translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1610"/>
         <source>Downloads complete</source>
         <translation>Descargas completas</translation>
     </message>
+    <message>
+        <source>%1 version %2 is now available.</source>
+        <translation>%1 versión %2 ya está disponible.</translation>
+    </message>
+    <message>
+        <source>Remind me later</source>
+        <translation>Recordarme después</translation>
+    </message>
+    <message>
+        <source>Update</source>
+        <translation>Actualizar</translation>
+    </message>
 </context>
 <context>
     <name>MediaView</name>
     <message>
-        <location filename="src/mediaview.cpp" line="702"/>
         <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="710"/>
         <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="711"/>
         <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="800"/>
         <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="801"/>
         <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="833"/>
+        <source>Get the full version</source>
+        <translation>Obtener la versión completa</translation>
+    </message>
+    <message>
         <source>Continue</source>
         <translation>Continuar</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="988"/>
+        <source>Downloading %1</source>
+        <translation>Descargando %1</translation>
+    </message>
+    <message>
         <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="1001"/>
         <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="1003"/>
         <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="1096"/>
         <source>Sent from %1</source>
         <translation>Enviado desde %1</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="1128"/>
         <source>Unsubscribe from %1</source>
         <translation>Cancelar suscripción a %1</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="1132"/>
         <source>Subscribe to %1</source>
         <translation>Suscribirse a %1</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="1166"/>
         <source>Unsubscribed from %1</source>
         <translation>Desuscrito de %1</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="1169"/>
         <source>Subscribed to %1</source>
         <translation>Suscrito a %1</translation>
     </message>
-    <message>
-        <location filename="src/mediaview.cpp" line="808"/>
-        <source>Get the full version</source>
-        <translation>Obtener la versión completa</translation>
-    </message>
-    <message>
-        <location filename="src/mediaview.cpp" line="847"/>
-        <source>Downloading %1</source>
-        <translation>Descargando %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>Está disponible una versión nueva de %1.</translation>
     </message>
     <message>
-        <location filename="local/src/updatedialog.cpp" line="28"/>
         <source>%1 %2 is now available. You have %3.</source>
         <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>¿Quiere descargarla ahora?</translation>
     </message>
     <message>
-        <location filename="local/src/updatedialog.cpp" line="39"/>
         <source>Skip This Version</source>
         <translation>Omitir esta versión</translation>
     </message>
     <message>
-        <location filename="local/src/updatedialog.cpp" line="43"/>
         <source>Remind Me Later</source>
         <translation>Recordarme después</translation>
     </message>
     <message>
-        <location filename="local/src/updatedialog.cpp" line="47"/>
         <source>Install Update</source>
         <translation>Instalar actualización</translation>
     </message>
 <context>
     <name>PasteLineEdit</name>
     <message>
-        <location filename="local/src/pastelineedit.cpp" line="6"/>
         <source>Paste</source>
         <translation>Pegar</translation>
     </message>
 <context>
     <name>PlaylistItemDelegate</name>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="209"/>
         <source>%1 views</source>
         <translation>%1 reproducciones</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="309"/>
         <source>%1 of %2 (%3) — %4</source>
         <translation>%1 de %2 (%3) — %4</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="316"/>
         <source>Preparing</source>
         <translation>Preparando</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="318"/>
         <source>Failed</source>
         <translation>Falló</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="320"/>
         <source>Completed</source>
         <translation>Completado</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="322"/>
         <source>Stopped</source>
         <translation>Detenido</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="358"/>
         <source>Stop downloading</source>
         <translation>Detener la descarga</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="368"/>
         <source>Show in %1</source>
         <translation>Mostrar en %1</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="370"/>
         <source>Open parent folder</source>
         <translation>Abrir carpeta contenedora</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="379"/>
         <source>Restart downloading</source>
         <translation>Reiniciar la descarga</translation>
     </message>
 <context>
     <name>PlaylistModel</name>
     <message>
-        <location filename="src/playlistmodel.cpp" line="70"/>
         <source>Searching...</source>
         <translation>Buscando…</translation>
     </message>
     <message>
-        <location filename="src/playlistmodel.cpp" line="71"/>
         <source>Show %1 More</source>
         <translation>Mostrar %1 más</translation>
     </message>
     <message>
-        <location filename="src/playlistmodel.cpp" line="72"/>
         <source>No videos</source>
         <translation>No hay vídeos</translation>
     </message>
     <message>
-        <location filename="src/playlistmodel.cpp" line="73"/>
         <source>No more videos</source>
         <translation>No hay más vídeos</translation>
     </message>
 <context>
     <name>RefineSearchWidget</name>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="49"/>
         <source>Sort by</source>
         <translation>Ordenar por</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="53"/>
         <source>Relevance</source>
         <translation>Relevancia</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="54"/>
-        <location filename="src/refinesearchwidget.cpp" line="69"/>
         <source>Date</source>
         <translation>Fecha</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="55"/>
         <source>View Count</source>
         <translation>Número de vistas</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="56"/>
         <source>Rating</source>
         <translation>Valoración</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="73"/>
         <source>Anytime</source>
         <translation>Cualquier momento</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="74"/>
         <source>Today</source>
         <translation>Hoy</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="75"/>
         <source>7 Days</source>
         <translation>7 días</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="76"/>
         <source>30 Days</source>
         <translation>30 días</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="89"/>
         <source>Duration</source>
         <translation>Duración</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="93"/>
-        <location filename="src/refinesearchwidget.cpp" line="119"/>
         <source>All</source>
         <translation>Todo</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="94"/>
         <source>Short</source>
         <translation>Corto</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="95"/>
         <source>Medium</source>
         <translation>Medio</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="96"/>
         <source>Long</source>
         <translation>Largo</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="99"/>
         <source>Less than 4 minutes</source>
         <translation>Menos de 4 minutos</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="100"/>
         <source>Between 4 and 20 minutes</source>
         <translation>Entre 4 y 20 minutos</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="101"/>
         <source>Longer than 20 minutes</source>
         <translation>Mayor a 20 minutos</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="115"/>
         <source>Quality</source>
         <translation>Calidad</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="120"/>
         <source>High Definition</source>
         <translation>Alta definición</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="123"/>
         <source>720p or higher</source>
         <translation>720p o mayor</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="136"/>
         <source>Done</source>
         <translation>Hecho</translation>
     </message>
 <context>
     <name>RegionsView</name>
     <message>
-        <location filename="src/regionsview.cpp" line="39"/>
         <source>Done</source>
         <translation>Hecho</translation>
     </message>
 <context>
     <name>SearchLineEdit</name>
     <message>
-        <location filename="src/searchlineedit.cpp" line="55"/>
         <source>Search</source>
         <translation>Buscar</translation>
     </message>
 <context>
     <name>SearchView</name>
     <message>
-        <location filename="src/searchview.cpp" line="83"/>
         <source>Welcome to &lt;a href=&apos;%1&apos;&gt;%2&lt;/a&gt;,</source>
         <translation>Bienvenido a &lt;a href=&apos;%1&apos;&gt;%2&lt;/a&gt;,</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="200"/>
-        <source>Get the full version</source>
-        <translation>Obtener la versión completa</translation>
-    </message>
-    <message>
-        <location filename="src/searchview.cpp" line="110"/>
         <source>Enter</source>
         <extracomment>&quot;Enter&quot;, as in &quot;type&quot;. The whole phrase says: &quot;Enter a keyword to start watching videos&quot;</extracomment>
         <translation>Escriba</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="117"/>
         <source>a keyword</source>
         <translation>una palabra clave</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="118"/>
         <source>a channel</source>
         <translation>un canal</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="125"/>
         <source>to start watching videos.</source>
         <translation>para empezar a ver vídeos.</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="156"/>
         <source>Watch</source>
         <translation>Ver</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="174"/>
         <source>Recent keywords</source>
         <translation>Palabras clave recientes</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="186"/>
         <source>Recent channels</source>
         <translation>Canales recientes</translation>
     </message>
+    <message>
+        <source>Get the full version</source>
+        <translation>Obtener la versión completa</translation>
+    </message>
 </context>
 <context>
     <name>SidebarHeader</name>
     <message>
-        <location filename="src/sidebarheader.cpp" line="38"/>
-        <location filename="src/sidebarheader.cpp" line="45"/>
         <source>&amp;Back</source>
         <translation>&amp;Atrás</translation>
     </message>
     <message>
-        <location filename="src/sidebarheader.cpp" line="76"/>
         <source>Forward to %1</source>
         <translation>Reenviar a %1</translation>
     </message>
     <message>
-        <location filename="src/sidebarheader.cpp" line="89"/>
         <source>Back to %1</source>
         <translation>Regresar a %1</translation>
     </message>
 <context>
     <name>SidebarWidget</name>
     <message>
-        <location filename="src/sidebarwidget.cpp" line="68"/>
         <source>Refine Search</source>
         <translation>Refinar la búsqueda</translation>
     </message>
     <message>
-        <location filename="src/sidebarwidget.cpp" line="167"/>
         <source>Did you mean: %1</source>
         <translation>Quizá quiso decir: %1</translation>
     </message>
 <context>
     <name>SnapshotSettings</name>
     <message>
-        <location filename="src/snapshotsettings.cpp" line="47"/>
         <source>Change location...</source>
         <translation>Cambiar ubicación…</translation>
     </message>
     <message>
-        <location filename="src/snapshotsettings.cpp" line="64"/>
         <source>Snapshot saved to %1</source>
         <translation>Se guardó la captura en %1</translation>
     </message>
     <message>
-        <location filename="src/snapshotsettings.cpp" line="117"/>
         <source>Snapshots location changed.</source>
         <translation>Se modificó la ubicación de las capturas.</translation>
     </message>
 <context>
     <name>StandardFeedsView</name>
     <message>
-        <location filename="src/standardfeedsview.cpp" line="107"/>
         <source>Most Popular</source>
         <translation>Más populares</translation>
     </message>
 </context>
+<context>
+    <name>UpdateDialog</name>
+    <message>
+        <source>Downloading update...</source>
+        <translation>Descargando actualización…</translation>
+    </message>
+    <message>
+        <source>Downloading %1...</source>
+        <translation>Descargando %1...</translation>
+    </message>
+</context>
 <context>
     <name>Video</name>
     <message>
-        <location filename="src/video.cpp" line="287"/>
         <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="292"/>
-        <source>Network error: %1 for %2</source>
-        <translation>Error de red: %1 por %2</translation>
-    </message>
 </context>
 <context>
     <name>YTRegions</name>
     <message>
-        <location filename="src/ytregions.cpp" line="28"/>
         <source>Algeria</source>
         <translation>Argelia</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="29"/>
         <source>Argentina</source>
         <translation>Argentina</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="30"/>
         <source>Australia</source>
         <translation>Australia</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="31"/>
         <source>Belgium</source>
         <translation>Bélgica</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="32"/>
         <source>Brazil</source>
         <translation>Brasil</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="33"/>
         <source>Canada</source>
         <translation>Canadá</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="34"/>
         <source>Chile</source>
         <translation>Chile</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="35"/>
         <source>Colombia</source>
         <translation>Colombia</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="36"/>
         <source>Czech Republic</source>
         <translation>República Checa</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="37"/>
         <source>Egypt</source>
         <translation>Egipto</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="38"/>
         <source>France</source>
         <translation>Francia</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="39"/>
         <source>Germany</source>
         <translation>Alemania</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="40"/>
         <source>Ghana</source>
         <translation>Ghana</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="41"/>
         <source>Greece</source>
         <translation>Grecia</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="42"/>
         <source>Hong Kong</source>
         <translation>Hong Kong</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="43"/>
         <source>Hungary</source>
         <translation>Hungría</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="44"/>
         <source>India</source>
         <translation>India</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="45"/>
         <source>Indonesia</source>
         <translation>Indonesia</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="46"/>
         <source>Ireland</source>
         <translation>Irlanda</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="47"/>
         <source>Israel</source>
         <translation>Israel</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="48"/>
         <source>Italy</source>
         <translation>Italia</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="49"/>
         <source>Japan</source>
         <translation>Japón</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="50"/>
         <source>Jordan</source>
         <translation>Jordania</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="51"/>
         <source>Kenya</source>
         <translation>Kenia</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="52"/>
         <source>Malaysia</source>
         <translation>Malasia</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="53"/>
         <source>Mexico</source>
         <translation>México</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="54"/>
         <source>Morocco</source>
         <translation>Marruecos</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="55"/>
         <source>Netherlands</source>
         <translation>Holanda</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="56"/>
         <source>New Zealand</source>
         <translation>Nueva Zelanda</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="57"/>
         <source>Nigeria</source>
         <translation>Nigeria</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="58"/>
         <source>Peru</source>
         <translation>Perú</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="59"/>
         <source>Philippines</source>
         <translation>Filipinas</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="60"/>
         <source>Poland</source>
         <translation>Polonia</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="61"/>
         <source>Russia</source>
         <translation>Rusia</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="62"/>
         <source>Saudi Arabia</source>
         <translation>Arabia Saudita</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="63"/>
         <source>Singapore</source>
         <translation>Singapur</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="64"/>
         <source>South Africa</source>
         <translation>Sudáfrica</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="65"/>
         <source>South Korea</source>
         <translation>Corea del Sur</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="66"/>
         <source>Spain</source>
         <translation>España</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="67"/>
         <source>Sweden</source>
         <translation>Suecia</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="68"/>
         <source>Taiwan</source>
         <translation>Taiwán</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="69"/>
         <source>Tunisia</source>
         <translation>Túnez</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="70"/>
         <source>Turkey</source>
         <translation>Turquía</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="71"/>
         <source>Uganda</source>
         <translation>Uganda</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="72"/>
         <source>United Arab Emirates</source>
         <translation>Emiratos Árabes Unidos</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="73"/>
         <source>United Kingdom</source>
         <translation>Reino Unido</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="74"/>
         <source>Yemen</source>
         <translation>Yemen</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="148"/>
         <source>Worldwide</source>
         <translation>Todo el mundo</translation>
     </message>
index 91e8c863a02b073a805c91b024fac12a5641c523..7945c359e1205ad79735cee4c2bc6ca9e89e5325 100644 (file)
@@ -2,67 +2,42 @@
 <context>
     <name>AboutView</name>
     <message>
-        <location filename="src/aboutview.cpp" line="58"/>
         <source>There&apos;s life outside the browser!</source>
         <translation>¡Hay vida más allá del navegador!</translation>
     </message>
     <message>
-        <location filename="src/aboutview.cpp" line="59"/>
         <source>Version %1</source>
         <translation>Versión %1</translation>
     </message>
     <message>
-        <location filename="src/aboutview.cpp" line="64"/>
         <source>Licensed to: %1</source>
         <translation>Licencia para: %1</translation>
     </message>
     <message>
-        <location filename="src/aboutview.cpp" line="68"/>
         <source>%1 is Free Software but its development takes precious time.</source>
         <translation>%1 es Software Libre pero su desarrollo lleva tiempo valioso.</translation>
     </message>
     <message>
-        <location filename="src/aboutview.cpp" line="69"/>
         <source>Please &lt;a href=&apos;%1&apos;&gt;donate&lt;/a&gt; to support the continued development of %2.</source>
         <translation>Por favor, &lt;a href=&apos;%1&apos;&gt;done&lt;/a&gt; para apoyar el desarrollo continuo de %2.</translation>
     </message>
     <message>
-        <location filename="src/aboutview.cpp" line="73"/>
-        <source>You may want to try my other apps as well:</source>
-        <translation>Tal vez querrá probar mis otras aplicaciones:</translation>
-    </message>
-    <message>
-        <location filename="src/aboutview.cpp" line="76"/>
-        <source>%1, a YouTube music player</source>
-        <translation>%1, un reproductor de música de YouTube</translation>
-    </message>
-    <message>
-        <location filename="src/aboutview.cpp" line="80"/>
-        <source>%1, a music player</source>
-        <translation>%1, un reproductor de música </translation>
-    </message>
-    <message>
-        <location filename="src/aboutview.cpp" line="86"/>
         <source>Translate %1 to your native language using %2</source>
         <translation>Traduce %1 a tu idioma natal usando %2</translation>
     </message>
     <message>
-        <location filename="src/aboutview.cpp" line="91"/>
         <source>Icon designed by %1.</source>
         <translation>Iconos diseñados por %1.</translation>
     </message>
     <message>
-        <location filename="src/aboutview.cpp" line="95"/>
         <source>Released under the &lt;a href=&apos;%1&apos;&gt;GNU General Public License&lt;/a&gt;</source>
         <translation>Publicado bajo la &lt;a href=&apos;%1&apos;&gt;Licencia Pública General de GNU&lt;/a&gt;</translation>
     </message>
     <message>
-        <location filename="src/aboutview.cpp" line="110"/>
         <source>&amp;Close</source>
         <translation>&amp;Cerrar</translation>
     </message>
     <message>
-        <location filename="src/aboutview.h" line="40"/>
         <source>About</source>
         <translation>Acerca de</translation>
     </message>
 <context>
     <name>ActivationDialog</name>
     <message>
-        <location filename="local/src/activationdialog.cpp" line="17"/>
         <source>Enter your License Details</source>
         <translation>Introduzca los detalles de su licencia</translation>
     </message>
     <message>
-        <location filename="local/src/activationdialog.cpp" line="29"/>
         <source>&amp;Email:</source>
         <translation>&amp;Correo electrónico:</translation>
     </message>
     <message>
-        <location filename="local/src/activationdialog.cpp" line="35"/>
         <source>&amp;Code:</source>
         <translation>&amp;Código:</translation>
     </message>
 <context>
     <name>ActivationView</name>
     <message>
-        <location filename="local/src/activationview.cpp" line="47"/>
         <source>Please license %1</source>
         <translation>Por favor autorice %1</translation>
     </message>
     <message>
-        <location filename="local/src/activationview.cpp" line="51"/>
         <source>This demo has expired.</source>
         <translation>Esta prueba ha vencido.</translation>
     </message>
     <message>
-        <location filename="local/src/activationview.cpp" line="53"/>
         <source>The full version allows you to watch videos without interruptions.</source>
-        <oldsource>The full version allows you to download videos longer than %1 minutes and to watch videos without interruptions.</oldsource>
         <translation>La versión completa le permite ver videos 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>Sin una licencia, la aplicación caducará en %1 días.</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 apoyas el duro trabajo que he puesto creado %1</translation>
     </message>
     <message>
-        <location filename="local/src/activationview.cpp" line="70"/>
         <source>Use Demo</source>
         <translation>Usar Prueba</translation>
     </message>
     <message>
-        <location filename="local/src/activationview.cpp" line="77"/>
         <source>Enter License</source>
         <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>AppWidget</name>
+    <message>
+        <source>Download</source>
+        <translation>Descarga</translation>
+    </message>
+</context>
 <context>
     <name>ChannelAggregator</name>
     <message>
-        <location filename="src/channelaggregator.cpp" line="183"/>
         <source>By %1</source>
-        <translation type="unfinished"/>
+        <translation>Por %1</translation>
     </message>
     <message numerus="yes">
-        <location filename="src/channelaggregator.cpp" line="185"/>
         <source>You have %n new video(s)</source>
-        <translation><numerusform>Usted tiene %n Nuevo(s) Video(s)</numerusform><numerusform>Usted tiene %n Nuevo(s) Video(s)</numerusform></translation>
+        <translation type="unfinished"><numerusform></numerusform><numerusform></numerusform></translation>
     </message>
 </context>
 <context>
     <name>ChannelItemDelegate</name>
     <message>
-        <location filename="src/channelitemdelegate.cpp" line="67"/>
         <source>All Videos</source>
         <translation>Todos los videos</translation>
     </message>
     <message>
-        <location filename="src/channelitemdelegate.cpp" line="85"/>
         <source>Unwatched Videos</source>
         <translation>Videos no vistos</translation>
     </message>
 <context>
     <name>ChannelView</name>
     <message>
-        <location filename="src/channelview.cpp" line="151"/>
-        <source>Mark all as watched</source>
-        <translation>Marcar todos como vistos</translation>
-    </message>
-    <message>
-        <location filename="src/channelview.cpp" line="159"/>
-        <source>Show Updated</source>
-        <translation>Show actualizado</translation>
-    </message>
-    <message>
-        <location filename="src/channelview.cpp" line="103"/>
         <source>Name</source>
         <translation>Nombre</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="110"/>
         <source>Last Updated</source>
         <translation>Última vez actualizado</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="117"/>
         <source>Last Added</source>
         <translation>Último añadido</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="124"/>
         <source>Last Watched</source>
         <translation>Último visto</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="131"/>
         <source>Most Watched</source>
         <translation>Más visto</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="139"/>
         <source>Sort by</source>
         <translation>Sortear por</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="222"/>
+        <source>Mark all as watched</source>
+        <translation>Marcar todos como vistos</translation>
+    </message>
+    <message>
+        <source>Show Updated</source>
+        <translation>Show actualizado</translation>
+    </message>
+    <message>
         <source>All Videos</source>
         <translation>Todos los videos</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="226"/>
         <source>Unwatched Videos</source>
         <translation>Videos no vistos</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="244"/>
         <source>Mark as Watched</source>
         <translation>Marcar como Visto</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="257"/>
         <source>Unsubscribe</source>
         <translation>Cancelar suscripción</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="270"/>
         <source>There are no updated subscriptions at this time.</source>
         <translation>No hay actualizaciones a sus suscripciones en este momento</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="272"/>
         <source>You have no subscriptions. Use the star symbol to subscribe to channels.</source>
         <translation>No tiene suscripciones. Haga click en el ícono de la estrella para suscribirse a un canal</translation>
     </message>
 <context>
     <name>ClearButton</name>
     <message>
-        <location filename="src/exlineedit.cpp" line="6"/>
         <source>Clear</source>
         <translation>Limpiar</translation>
     </message>
 <context>
     <name>DataUtils</name>
     <message>
-        <location filename="src/datautils.cpp" line="88"/>
         <source>Just now</source>
         <translation>Justo Ahora</translation>
     </message>
     <message numerus="yes">
-        <location filename="src/datautils.cpp" line="90"/>
-        <source>%n minute(s) ago</source>
-        <translation type="unfinished"><numerusform></numerusform><numerusform></numerusform></translation>
-    </message>
-    <message numerus="yes">
-        <location filename="src/datautils.cpp" line="92"/>
         <source>%n hour(s) ago</source>
         <translation type="unfinished"><numerusform></numerusform><numerusform></numerusform></translation>
     </message>
     <message numerus="yes">
-        <location filename="src/datautils.cpp" line="94"/>
         <source>%n day(s) ago</source>
         <translation type="unfinished"><numerusform></numerusform><numerusform></numerusform></translation>
     </message>
     <message numerus="yes">
-        <location filename="src/datautils.cpp" line="96"/>
         <source>%n weeks(s) ago</source>
         <translation type="unfinished"><numerusform></numerusform><numerusform></numerusform></translation>
     </message>
     <message numerus="yes">
-        <location filename="src/datautils.cpp" line="98"/>
         <source>%n month(s) ago</source>
         <translation type="unfinished"><numerusform></numerusform><numerusform></numerusform></translation>
     </message>
 <context>
     <name>DownloadItem</name>
     <message>
-        <location filename="src/downloaditem.cpp" line="406"/>
         <source>bytes</source>
         <translation>bytes</translation>
     </message>
     <message>
-        <location filename="src/downloaditem.cpp" line="409"/>
         <source>KB</source>
         <translation>KB</translation>
     </message>
     <message>
-        <location filename="src/downloaditem.cpp" line="412"/>
         <source>MB</source>
         <translation>MB</translation>
     </message>
     <message>
-        <location filename="src/downloaditem.cpp" line="421"/>
         <source>bytes/sec</source>
         <translation>bytes/sec</translation>
     </message>
     <message>
-        <location filename="src/downloaditem.cpp" line="424"/>
         <source>KB/sec</source>
         <translation>KB/sec</translation>
     </message>
     <message>
-        <location filename="src/downloaditem.cpp" line="427"/>
         <source>MB/sec</source>
         <translation>MB/sec</translation>
     </message>
     <message>
-        <location filename="src/downloaditem.cpp" line="433"/>
         <source>seconds</source>
         <translation>segundos</translation>
     </message>
     <message>
-        <location filename="src/downloaditem.cpp" line="436"/>
         <source>minutes</source>
         <translation>minutos</translation>
     </message>
     <message>
-        <location filename="src/downloaditem.cpp" line="439"/>
         <source>%4 %5 remaining</source>
         <translation>%4 %5 restante(s)</translation>
     </message>
 <context>
     <name>DownloadManager</name>
     <message>
-        <location filename="src/downloadmanager.cpp" line="77"/>
         <source>This is just the demo version of %1.</source>
         <translation>Esta es sólo una versión de demostración de %1.</translation>
     </message>
     <message>
-        <location filename="src/downloadmanager.cpp" line="79"/>
         <source>It can only download videos shorter than %1 minutes so you can test the download functionality.</source>
         <translation>Sólo se pueden bajar videos de menos de %1 minutos, para probar la funcionalidad de descarga.</translation>
     </message>
     <message>
-        <location filename="src/downloadmanager.cpp" line="85"/>
         <source>Continue</source>
         <translation>Continuar</translation>
     </message>
     <message>
-        <location filename="src/downloadmanager.cpp" line="86"/>
         <source>Get the full version</source>
         <translation>Consigue la versión completa</translation>
     </message>
     <message>
-        <location filename="src/downloadmanager.cpp" line="157"/>
         <source>%1 downloaded in %2</source>
         <translation>%1 descargado en %2</translation>
     </message>
     <message>
-        <location filename="src/downloadmanager.cpp" line="160"/>
         <source>Download finished</source>
         <translation>Descarga finalizada</translation>
     </message>
     <message numerus="yes">
-        <location filename="src/downloadmanager.cpp" line="165"/>
         <source>%n Download(s)</source>
         <translation type="unfinished"><numerusform></numerusform><numerusform></numerusform></translation>
     </message>
 <context>
     <name>DownloadSettings</name>
     <message>
-        <location filename="src/downloadsettings.cpp" line="36"/>
         <source>Change location...</source>
         <translation>Cambiar destino...</translation>
     </message>
     <message>
-        <location filename="src/downloadsettings.cpp" line="69"/>
         <source>Choose the download location</source>
         <translation>Elegir el destino de la descarga</translation>
     </message>
     <message>
-        <location filename="src/downloadsettings.cpp" line="81"/>
         <source>Download location changed.</source>
         <translation>Destino de la descarga cambiado.</translation>
     </message>
     <message>
-        <location filename="src/downloadsettings.cpp" line="83"/>
         <source>Current downloads will still go in the previous location.</source>
         <translation>Las descargas en curso van a seguir bajándose al destino anterior.</translation>
     </message>
     <message>
-        <location filename="src/downloadsettings.cpp" line="94"/>
         <source>Downloading to: %1</source>
         <translation>Bajando al: %1</translation>
     </message>
 <context>
     <name>DownloadView</name>
     <message>
-        <location filename="src/downloadview.cpp" line="38"/>
-        <location filename="src/downloadview.h" line="45"/>
         <source>Downloads</source>
         <translation>Descargas</translation>
     </message>
 </context>
-<context>
-    <name>DownloadWidget</name>
-    <message>
-        <location filename="local/src/updatedialog.cpp" line="60"/>
-        <source>Downloading update...</source>
-        <translation>Descargando actualización…</translation>
-    </message>
-</context>
 <context>
     <name>Extra</name>
     <message>
-        <location filename="local/src/extra.cpp" line="251"/>
         <source>The executable file has been tempered with, maybe by a virus.</source>
-        <translation type="unfinished"/>
+        <translation>El archivo ejecutable ha sido corrompido, quizás por un virus.</translation>
     </message>
     <message>
-        <location filename="local/src/extra.cpp" line="252"/>
         <source>%1 will not run. Try installing again.</source>
-        <translation type="unfinished"/>
+        <translation>%1 no ejecutará. Intenta instalar nuevamente.</translation>
     </message>
     <message>
-        <location filename="local/src/extra.cpp" line="253"/>
         <source>Quit</source>
-        <translation type="unfinished"/>
+        <translation>Salir</translation>
     </message>
     <message>
-        <location filename="local/src/extra.cpp" line="254"/>
         <source>Reinstall</source>
-        <translation type="unfinished"/>
+        <translation>Reinstalar</translation>
     </message>
 </context>
 <context>
     <name>GlobalShortcuts</name>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="36"/>
         <source>Play</source>
         <translation>Reproducir</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="37"/>
         <source>Pause</source>
         <translation>Pausa</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="38"/>
         <source>Play/Pause</source>
         <translation>Reproducir/Pausa</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="39"/>
         <source>Stop</source>
         <translation>Detener</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="40"/>
         <source>Stop playing after current track</source>
         <translation>Detener luego de la pista actual</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="41"/>
         <source>Next track</source>
         <translation>Pista siguiente</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="42"/>
         <source>Previous track</source>
         <translation>Pista previa</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="43"/>
         <source>Increase volume</source>
         <translation>Subir volumen</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="44"/>
         <source>Decrease volume</source>
         <translation>Bajar volumen</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="45"/>
         <source>Mute</source>
         <translation>Mudo</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="46"/>
         <source>Seek forward</source>
         <translation>Avanzar rápido</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="47"/>
         <source>Seek backward</source>
         <translation>Retroceder rápido</translation>
     </message>
 <context>
     <name>HomeView</name>
     <message>
-        <location filename="src/homeview.cpp" line="58"/>
         <source>Search</source>
         <translation>Buscar</translation>
     </message>
     <message>
-        <location filename="src/homeview.cpp" line="60"/>
         <source>Find videos and channels by keyword</source>
         <translation>Encuentra vídeos por canales o por palabras clave</translation>
     </message>
     <message>
-        <location filename="src/homeview.cpp" line="65"/>
         <source>Browse</source>
         <translation>Navegar</translation>
     </message>
     <message>
-        <location filename="src/homeview.cpp" line="67"/>
         <source>Browse videos by category</source>
         <translation>Navega en los vídeos por categoría</translation>
     </message>
     <message>
-        <location filename="src/homeview.cpp" line="71"/>
         <source>Subscriptions</source>
         <translation>Suscripciones</translation>
     </message>
     <message>
-        <location filename="src/homeview.cpp" line="73"/>
         <source>Channel subscriptions</source>
         <translation>Mis suscripciones</translation>
     </message>
     <message>
-        <location filename="src/homeview.h" line="44"/>
         <source>Make yourself comfortable</source>
         <translation>Personalizar</translation>
     </message>
 <context>
     <name>LoadingWidget</name>
     <message>
-        <location filename="src/loadingwidget.cpp" line="125"/>
         <source>Error</source>
         <translation>Error</translation>
     </message>
 <context>
     <name>MainWindow</name>
     <message>
-        <location filename="src/mainwindow.cpp" line="291"/>
+        <source>&amp;Window</source>
+        <translation>&amp;Ventana</translation>
+    </message>
+    <message>
+        <source>&amp;Minimize</source>
+        <translation>&amp;Minimizar</translation>
+    </message>
+    <message>
         <source>&amp;Stop</source>
         <translation>&amp;Detener</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="292"/>
         <source>Stop playback and go back to the search view</source>
         <translation>Detener la reproducción y volver a la vista de búsqueda</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="307"/>
+        <source>P&amp;revious</source>
+        <translation>Anterior</translation>
+    </message>
+    <message>
+        <source>Go back to the previous track</source>
+        <translation>Volver a la pista previa</translation>
+    </message>
+    <message>
         <source>S&amp;kip</source>
         <translation>&amp;Saltar</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="308"/>
         <source>Skip to the next video</source>
         <translation>Saltar al siguiente video</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1134"/>
-        <source>&amp;Pause</source>
-        <translation>&amp;Pausar</translation>
+        <source>&amp;Play</source>
+        <translation>&amp;Reproducir</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1135"/>
-        <source>Pause playback</source>
-        <translation>Pausar</translation>
+        <source>Resume playback</source>
+        <translation>Continuar reproducción</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="321"/>
         <source>&amp;Full Screen</source>
         <translation>&amp;Pantalla completa</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="322"/>
         <source>Go full screen</source>
         <translation>Ir a pantalla completa</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="336"/>
+        <source>&amp;Compact Mode</source>
+        <translation>&amp;Modo Compacto</translation>
+    </message>
+    <message>
         <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="349"/>
+        <source>Open the &amp;YouTube Page</source>
+        <translation>Abrir la página de &amp;YouTube </translation>
+    </message>
+    <message>
         <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="356"/>
+        <source>Copy the YouTube &amp;Link</source>
+        <translation>Copiar el enlace de &amp;YouTube</translation>
+    </message>
+    <message>
         <source>Copy the current video YouTube link to the clipboard</source>
         <translation>Copiar el enlace de YouTube del video actual al portapapeles</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="363"/>
+        <source>Copy the Video Stream &amp;URL</source>
+        <translation>Copiar Video &amp;URL</translation>
+    </message>
+    <message>
         <source>Copy the current video stream URL to the clipboard</source>
         <translation>Copiar la URL del stream del video al portapapeles</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="370"/>
+        <source>Find Video &amp;Parts</source>
+        <translation>Encontrar Video &amp;Partes</translation>
+    </message>
+    <message>
         <source>Find other video parts hopefully in the right order</source>
         <translation>Encuentra las otras partes del video con suerte en el orden correcto</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="376"/>
         <source>&amp;Remove</source>
         <translation>&amp;Borrar</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="377"/>
         <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="383"/>
         <source>Move &amp;Up</source>
         <translation>Mover hacia &amp;arriba</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="384"/>
         <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="390"/>
         <source>Move &amp;Down</source>
         <translation>Mover hacia &amp;abajo</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="391"/>
         <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="402"/>
+        <source>&amp;Clear Recent Searches</source>
+        <translation>&amp;Borrar las búsquedas recientes</translation>
+    </message>
+    <message>
         <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="407"/>
         <source>&amp;Quit</source>
         <translation>&amp;Salir</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="410"/>
         <source>Bye</source>
         <translation>Adiós</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="414"/>
         <source>&amp;Website</source>
         <translation>&amp;Sitio web</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="416"/>
         <source>%1 on the Web</source>
         <translation>%1 en la Web</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="422"/>
+        <source>Make a &amp;Donation</source>
+        <translation>Hacer una &amp;donación</translation>
+    </message>
+    <message>
         <source>Please support the continued development of %1</source>
         <translation>Por favor apoya el desarrollo continuo de %1</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="427"/>
         <source>&amp;About</source>
         <translation>&amp;Acerca de</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="429"/>
         <source>Info about %1</source>
         <translation>Información sobre %1</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="437"/>
         <source>Search</source>
         <translation>Buscar</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="456"/>
         <source>Mute volume</source>
         <translation>Silenciar volumen</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="490"/>
-        <location filename="src/mainwindow.cpp" line="1609"/>
+        <source>&amp;Manually Start Playing</source>
+        <translation>&amp;Iniciar Reproducción Manualmente</translation>
+    </message>
+    <message>
+        <source>Manually start playing videos</source>
+        <translation>Empezar a reproducir videos manualmente</translation>
+    </message>
+    <message>
         <source>&amp;Downloads</source>
         <translation>&amp;Descargas</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="491"/>
         <source>Show details about video downloads</source>
         <translation>Mostrar detalles sobre la descarga de videos</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="499"/>
         <source>&amp;Download</source>
         <translation>&amp;Bajar video</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="500"/>
         <source>Download the current video</source>
         <translation>Bajar el video actual</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="510"/>
         <source>Take &amp;Snapshot</source>
         <translation>Tomar &amp;Captura de pantalla</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="517"/>
         <source>&amp;Subscribe to Channel</source>
         <translation>&amp;Suscribirse al canal</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="525"/>
         <source>Share the current video using %1</source>
         <translation>Compartí el vídeo actual usando %1</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="545"/>
         <source>&amp;Email</source>
         <translation>&amp;Correo</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="546"/>
         <source>Email</source>
         <translation>Correo</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="551"/>
         <source>&amp;Close</source>
         <translation>&amp;Cerrar</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="561"/>
         <source>&amp;Float on Top</source>
         <translation>&amp;Siempre Visible</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="566"/>
         <source>&amp;Adjust Window Size</source>
-        <translation type="unfinished"/>
+        <translation>Ajustar el tamaño de la ventana</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="571"/>
         <source>&amp;Stop After This Video</source>
         <translation>&amp;Finalizar Después de este Video</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="578"/>
         <source>&amp;Report an Issue...</source>
         <translation>&amp;Reportar un inconveniente</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="582"/>
         <source>&amp;Refine Search...</source>
         <translation>&amp;Refinar Búsqueda</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="594"/>
         <source>More...</source>
         <translation>Más...</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="597"/>
         <source>&amp;Related Videos</source>
         <translation>&amp;Vídeos relacionados</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="599"/>
         <source>Watch videos related to the current one</source>
         <translation>Mirar vídeos relacionados al vídeo actual</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="605"/>
         <source>Open in &amp;Browser...</source>
         <translation>Abrir en &amp;Navegador...</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="612"/>
-        <source>&amp;Love %1? Rate it!</source>
-        <translation type="unfinished"/>
+        <source>Restricted Mode</source>
+        <translation>Modo restringido</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="633"/>
-        <source>&amp;Application</source>
-        <translation>&amp;Programa</translation>
+        <source>Hide videos that may contain inappropriate content</source>
+        <translation>Ocultar videos que puedan tener contenido inapropiado</translation>
+    </message>
+    <message>
+        <source>&amp;Love %1? Rate it!</source>
+        <translation>¿Amas %1? ¡Califícalo!</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="618"/>
         <source>Buy %1...</source>
         <translation>Comprar %1...</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="647"/>
+        <source>&amp;Application</source>
+        <translation>&amp;Programa</translation>
+    </message>
+    <message>
         <source>&amp;Playback</source>
         <translation>&amp;Reproducción</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="661"/>
         <source>&amp;Playlist</source>
         <translation>&amp;Lista de reproducción</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="670"/>
         <source>&amp;Video</source>
         <translation>&amp;Video</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="686"/>
-        <source>&amp;View</source>
-        <translation>&amp;Ver</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="695"/>
         <source>&amp;Share</source>
         <translation>&amp;Compartir</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="709"/>
+        <source>&amp;View</source>
+        <translation>&amp;Ver</translation>
+    </message>
+    <message>
         <source>&amp;Help</source>
         <translation>&amp;Ayuda</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="751"/>
         <source>Press %1 to raise the volume, %2 to lower it</source>
         <translation>Con %1 para subir el volumen, con %2 para bajarlo</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1021"/>
-        <location filename="src/mainwindow.cpp" line="1027"/>
+        <source>Choose your content location</source>
+        <translation>Selecciona la localidad de tu contenido</translation>
+    </message>
+    <message>
         <source>Opening %1</source>
         <translation>Abriendo %1</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1080"/>
         <source>Do you want to exit %1 with a download in progress?</source>
         <translation>Seguro que quieres salir de %1 con una descarga en progreso?</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1081"/>
         <source>If you close %1 now, this download will be cancelled.</source>
         <translation>Si cierras %1 ahora, la descarga se va a cancelar.</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1086"/>
         <source>Close and cancel download</source>
         <translation>Cerrar y cancelar descarga</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1087"/>
         <source>Wait for download to finish</source>
         <translation>Esperar a que termine la descarga</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1158"/>
-        <source>&amp;Loading...</source>
-        <translation type="unfinished"/>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="1264"/>
-        <source>Leave &amp;Full Screen</source>
-        <translation>Salir de &amp;Pantalla Completa</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="1718"/>
-        <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="1722"/>
-        <source>Remind me later</source>
-        <translation>Recordármelo después</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="1723"/>
-        <source>Update</source>
-        <translation>Actualizar</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="1127"/>
         <source>Error: %1</source>
         <translation>Error: %1</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="300"/>
-        <source>P&amp;revious</source>
-        <translation>Anterior</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="301"/>
-        <source>Go back to the previous track</source>
-        <translation>Volver a la pista previa</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="335"/>
-        <source>&amp;Compact Mode</source>
-        <translation>&amp;Modo Compacto</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="348"/>
-        <source>Open the &amp;YouTube Page</source>
-        <translation>Abrir la página de &amp;YouTube </translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="355"/>
-        <source>Copy the YouTube &amp;Link</source>
-        <translation>Copiar el enlace de &amp;YouTube</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="362"/>
-        <source>Copy the Video Stream &amp;URL</source>
-        <translation>Copiar Video &amp;URL</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="369"/>
-        <source>Find Video &amp;Parts</source>
-        <translation>Encontrar Video &amp;Partes</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="397"/>
-        <source>&amp;Clear Recent Searches</source>
-        <translation>&amp;Borrar las búsquedas recientes</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="421"/>
-        <source>Make a &amp;Donation</source>
-        <translation>Hacer una &amp;donación</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="483"/>
-        <source>&amp;Manually Start Playing</source>
-        <translation>&amp;Iniciar Reproducción Manualmente</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="484"/>
-        <source>Manually start playing videos</source>
-        <translation>Empezar a reproducir videos manualmente</translation>
+        <source>&amp;Pause</source>
+        <translation>&amp;Pausar</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="847"/>
-        <source>Choose your content location</source>
-        <translation>Selecciona la localidad de tu contenido</translation>
+        <source>Pause playback</source>
+        <translation>Pausar</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="314"/>
-        <location filename="src/mainwindow.cpp" line="1142"/>
-        <location filename="src/mainwindow.cpp" line="1150"/>
-        <source>&amp;Play</source>
-        <translation>&amp;Reproducir</translation>
+        <source>&amp;Loading...</source>
+        <translation>Cargando...</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="315"/>
-        <location filename="src/mainwindow.cpp" line="1143"/>
-        <location filename="src/mainwindow.cpp" line="1151"/>
-        <source>Resume playback</source>
-        <translation>Continuar reproducción</translation>
+        <source>Leave &amp;Full Screen</source>
+        <translation>Salir de &amp;Pantalla Completa</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1437"/>
         <source>Remaining time: %1</source>
         <translation>Tiempo restante: %1</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1528"/>
         <source>Volume at %1%</source>
         <translation>Volumen al %1%</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1534"/>
         <source>Volume is muted</source>
         <translation>Volumen silenciado</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1537"/>
         <source>Volume is unmuted</source>
         <translation>Volumen activo</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1548"/>
         <source>Maximum video definition set to %1</source>
         <translation>Definición máxima de video ajustada en %1</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1595"/>
         <source>Your privacy is now safe</source>
         <translation>Tu privacidad ahora está segura</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1610"/>
         <source>Downloads complete</source>
         <translation>Descarga completa</translation>
     </message>
+    <message>
+        <source>%1 version %2 is now available.</source>
+        <translation>%1 versión %2 está ahora disponible</translation>
+    </message>
+    <message>
+        <source>Remind me later</source>
+        <translation>Recordármelo después</translation>
+    </message>
+    <message>
+        <source>Update</source>
+        <translation>Actualizar</translation>
+    </message>
 </context>
 <context>
     <name>MediaView</name>
     <message>
-        <location filename="src/mediaview.cpp" line="702"/>
         <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="710"/>
         <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="711"/>
         <source>The link will be valid only for a limited time.</source>
         <translation>El enlace va a ser válido sólo por un tiempo limitado.</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="800"/>
         <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="801"/>
         <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="833"/>
+        <source>Get the full version</source>
+        <translation>Conseguir la versión completa</translation>
+    </message>
+    <message>
         <source>Continue</source>
         <translation>Continuar</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="988"/>
+        <source>Downloading %1</source>
+        <translation>Descargando %1</translation>
+    </message>
+    <message>
         <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="1001"/>
         <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="1003"/>
         <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="1096"/>
         <source>Sent from %1</source>
         <translation>Enviado desde %1</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="1128"/>
         <source>Unsubscribe from %1</source>
         <translation>Cancelar suscripción a %1</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="1132"/>
         <source>Subscribe to %1</source>
         <translation>Suscribirse a %1</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="1166"/>
         <source>Unsubscribed from %1</source>
-        <translation type="unfinished"/>
+        <translation>Desubscripto de %1</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="1169"/>
         <source>Subscribed to %1</source>
-        <translation type="unfinished"/>
-    </message>
-    <message>
-        <location filename="src/mediaview.cpp" line="808"/>
-        <source>Get the full version</source>
-        <translation>Conseguir la versión completa</translation>
-    </message>
-    <message>
-        <location filename="src/mediaview.cpp" line="847"/>
-        <source>Downloading %1</source>
-        <translation>Descargando %1</translation>
+        <translation>Subscripto a %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>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>%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>¿Quiere descargarla ahora?</translation>
     </message>
     <message>
-        <location filename="local/src/updatedialog.cpp" line="39"/>
         <source>Skip This Version</source>
         <translation>Omitir esta versión</translation>
     </message>
     <message>
-        <location filename="local/src/updatedialog.cpp" line="43"/>
         <source>Remind Me Later</source>
         <translation>Recordarme después</translation>
     </message>
     <message>
-        <location filename="local/src/updatedialog.cpp" line="47"/>
         <source>Install Update</source>
         <translation>Instalar actualización</translation>
     </message>
 <context>
     <name>PasteLineEdit</name>
     <message>
-        <location filename="local/src/pastelineedit.cpp" line="6"/>
         <source>Paste</source>
         <translation>Pegar</translation>
     </message>
 <context>
     <name>PlaylistItemDelegate</name>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="209"/>
         <source>%1 views</source>
         <translation>%1 visitas</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="309"/>
         <source>%1 of %2 (%3) — %4</source>
         <translation>%1 of %2 (%3) — %4</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="316"/>
         <source>Preparing</source>
         <translation>Preparando</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="318"/>
         <source>Failed</source>
         <translation>Falló</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="320"/>
         <source>Completed</source>
         <translation>Completado</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="322"/>
         <source>Stopped</source>
         <translation>Detenido</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="358"/>
         <source>Stop downloading</source>
         <translation>Detener descarga</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="368"/>
         <source>Show in %1</source>
         <translation>Mostrar en %1</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="370"/>
         <source>Open parent folder</source>
         <translation>Abrir carpeta relacionada</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="379"/>
         <source>Restart downloading</source>
         <translation>Reiniciar descarga</translation>
     </message>
 <context>
     <name>PlaylistModel</name>
     <message>
-        <location filename="src/playlistmodel.cpp" line="70"/>
         <source>Searching...</source>
         <translation>Buscando...</translation>
     </message>
     <message>
-        <location filename="src/playlistmodel.cpp" line="71"/>
         <source>Show %1 More</source>
         <translation>Mostrar %1 más</translation>
     </message>
     <message>
-        <location filename="src/playlistmodel.cpp" line="72"/>
         <source>No videos</source>
         <translation>No hay videos</translation>
     </message>
     <message>
-        <location filename="src/playlistmodel.cpp" line="73"/>
         <source>No more videos</source>
         <translation>No hay más vídeos</translation>
     </message>
 <context>
     <name>RefineSearchWidget</name>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="49"/>
         <source>Sort by</source>
         <translation>Sortear por</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="53"/>
         <source>Relevance</source>
         <translation>Relevancia</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="54"/>
-        <location filename="src/refinesearchwidget.cpp" line="69"/>
         <source>Date</source>
         <translation>Fecha</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="55"/>
         <source>View Count</source>
         <translation>Contador de Visitas</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="56"/>
         <source>Rating</source>
         <translation>Calificación</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="73"/>
         <source>Anytime</source>
         <translation>Histórico</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="74"/>
         <source>Today</source>
         <translation>Hoy</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="75"/>
         <source>7 Days</source>
         <translation>7 Días</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="76"/>
         <source>30 Days</source>
         <translation>30 Días</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="89"/>
         <source>Duration</source>
         <translation>Duración</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="93"/>
-        <location filename="src/refinesearchwidget.cpp" line="119"/>
         <source>All</source>
         <translation>Todos</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="94"/>
         <source>Short</source>
         <translation>Cortos</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="95"/>
         <source>Medium</source>
         <translation>Medianos</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="96"/>
         <source>Long</source>
         <translation>Largos</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="99"/>
         <source>Less than 4 minutes</source>
         <translation>Menores que 4 minutos</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="100"/>
         <source>Between 4 and 20 minutes</source>
         <translation>Entre 4 y 20 minutos</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="101"/>
         <source>Longer than 20 minutes</source>
         <translation>Mayores a 20 minutos</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="115"/>
         <source>Quality</source>
         <translation>Calidad</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="120"/>
         <source>High Definition</source>
         <translation>Alta Definición</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="123"/>
         <source>720p or higher</source>
         <translation>720p o mayor</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="136"/>
         <source>Done</source>
         <translation>Finalizado</translation>
     </message>
 <context>
     <name>RegionsView</name>
     <message>
-        <location filename="src/regionsview.cpp" line="39"/>
         <source>Done</source>
         <translation>Hecho</translation>
     </message>
 <context>
     <name>SearchLineEdit</name>
     <message>
-        <location filename="src/searchlineedit.cpp" line="55"/>
         <source>Search</source>
         <translation>Buscar</translation>
     </message>
 <context>
     <name>SearchView</name>
     <message>
-        <location filename="src/searchview.cpp" line="83"/>
         <source>Welcome to &lt;a href=&apos;%1&apos;&gt;%2&lt;/a&gt;,</source>
         <translation>Bienvenido a &lt;a href=&apos;%1&apos;&gt;%2&lt;/a&gt;,</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="200"/>
-        <source>Get the full version</source>
-        <translation>Conseguir la versión completa</translation>
-    </message>
-    <message>
-        <location filename="src/searchview.cpp" line="110"/>
         <source>Enter</source>
         <extracomment>&quot;Enter&quot;, as in &quot;type&quot;. The whole phrase says: &quot;Enter a keyword to start watching videos&quot;</extracomment>
         <translation>Escribir</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="117"/>
         <source>a keyword</source>
         <translation>una palabra clave</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="118"/>
         <source>a channel</source>
         <translation>un canal</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="125"/>
         <source>to start watching videos.</source>
         <translation>para empezar a ver videos.</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="156"/>
         <source>Watch</source>
         <translation>Ver</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="174"/>
         <source>Recent keywords</source>
         <translation>Búsquedas recientes</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="186"/>
         <source>Recent channels</source>
         <translation>Canales recientes</translation>
     </message>
+    <message>
+        <source>Get the full version</source>
+        <translation>Conseguir la versión completa</translation>
+    </message>
 </context>
 <context>
     <name>SidebarHeader</name>
     <message>
-        <location filename="src/sidebarheader.cpp" line="38"/>
-        <location filename="src/sidebarheader.cpp" line="45"/>
         <source>&amp;Back</source>
         <translation>&amp;Atrás</translation>
     </message>
     <message>
-        <location filename="src/sidebarheader.cpp" line="76"/>
         <source>Forward to %1</source>
         <translation>Avanzar a %1</translation>
     </message>
     <message>
-        <location filename="src/sidebarheader.cpp" line="89"/>
         <source>Back to %1</source>
         <translation>Retroceder a %1</translation>
     </message>
 <context>
     <name>SidebarWidget</name>
     <message>
-        <location filename="src/sidebarwidget.cpp" line="68"/>
         <source>Refine Search</source>
         <translation>Refinar Búsqueda</translation>
     </message>
     <message>
-        <location filename="src/sidebarwidget.cpp" line="167"/>
         <source>Did you mean: %1</source>
         <translation>Quiso decir: %1</translation>
     </message>
 <context>
     <name>SnapshotSettings</name>
     <message>
-        <location filename="src/snapshotsettings.cpp" line="47"/>
         <source>Change location...</source>
         <translation>Cambiar destino...</translation>
     </message>
     <message>
-        <location filename="src/snapshotsettings.cpp" line="64"/>
         <source>Snapshot saved to %1</source>
         <translation>Captura de pantalla guardada en %1</translation>
     </message>
     <message>
-        <location filename="src/snapshotsettings.cpp" line="117"/>
         <source>Snapshots location changed.</source>
         <translation>La ubicación de la captura de pantalla ha sido cambiada.</translation>
     </message>
 <context>
     <name>StandardFeedsView</name>
     <message>
-        <location filename="src/standardfeedsview.cpp" line="107"/>
         <source>Most Popular</source>
         <translation>Más populares</translation>
     </message>
 </context>
+<context>
+    <name>UpdateDialog</name>
+    <message>
+        <source>Downloading update...</source>
+        <translation>Descargando actualización…</translation>
+    </message>
+    <message>
+        <source>Downloading %1...</source>
+        <translation>Descargando %1...</translation>
+    </message>
+</context>
 <context>
     <name>Video</name>
     <message>
-        <location filename="src/video.cpp" line="287"/>
         <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="292"/>
-        <source>Network error: %1 for %2</source>
-        <translation>Error de conexión: %1 para %2</translation>
-    </message>
 </context>
 <context>
     <name>YTRegions</name>
     <message>
-        <location filename="src/ytregions.cpp" line="28"/>
         <source>Algeria</source>
         <translation>Algeria</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="29"/>
         <source>Argentina</source>
         <translation>Argentina</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="30"/>
         <source>Australia</source>
         <translation>Australia</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="31"/>
         <source>Belgium</source>
         <translation>Bélgica</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="32"/>
         <source>Brazil</source>
         <translation>Brasil</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="33"/>
         <source>Canada</source>
         <translation>Canada</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="34"/>
         <source>Chile</source>
         <translation>Chile</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="35"/>
         <source>Colombia</source>
         <translation>Colombia</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="36"/>
         <source>Czech Republic</source>
         <translation>República Checa</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="37"/>
         <source>Egypt</source>
         <translation>Egipto</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="38"/>
         <source>France</source>
         <translation>Francia</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="39"/>
         <source>Germany</source>
         <translation>Alemania</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="40"/>
         <source>Ghana</source>
         <translation>Ghana</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="41"/>
         <source>Greece</source>
         <translation>Grecia</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="42"/>
         <source>Hong Kong</source>
         <translation>Hong Kong</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="43"/>
         <source>Hungary</source>
         <translation>Hungría</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="44"/>
         <source>India</source>
         <translation>India</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="45"/>
         <source>Indonesia</source>
         <translation>Indonesia</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="46"/>
         <source>Ireland</source>
         <translation>Irlanda</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="47"/>
         <source>Israel</source>
         <translation>Israel</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="48"/>
         <source>Italy</source>
         <translation>Italia</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="49"/>
         <source>Japan</source>
         <translation>Japón</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="50"/>
         <source>Jordan</source>
         <translation>Jordan</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="51"/>
         <source>Kenya</source>
         <translation>Kenya</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="52"/>
         <source>Malaysia</source>
         <translation>Malasia</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="53"/>
         <source>Mexico</source>
         <translation>México</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="54"/>
         <source>Morocco</source>
         <translation>Marruecos</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="55"/>
         <source>Netherlands</source>
         <translation>Países Bajos</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="56"/>
         <source>New Zealand</source>
         <translation>Nueva Zelanda</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="57"/>
         <source>Nigeria</source>
         <translation>Nigeria</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="58"/>
         <source>Peru</source>
         <translation>Perú</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="59"/>
         <source>Philippines</source>
         <translation>Filipinas</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="60"/>
         <source>Poland</source>
         <translation>Polonia</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="61"/>
         <source>Russia</source>
         <translation>Rusia</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="62"/>
         <source>Saudi Arabia</source>
         <translation>Arabia Saudita</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="63"/>
         <source>Singapore</source>
         <translation>Singapur</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="64"/>
         <source>South Africa</source>
         <translation>Sud Africa</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="65"/>
         <source>South Korea</source>
         <translation>Sud Corea</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="66"/>
         <source>Spain</source>
         <translation>España</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="67"/>
         <source>Sweden</source>
         <translation>Suecia</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="68"/>
         <source>Taiwan</source>
         <translation>Taiwan</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="69"/>
         <source>Tunisia</source>
         <translation>Túnez</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="70"/>
         <source>Turkey</source>
         <translation>Turquía</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="71"/>
         <source>Uganda</source>
         <translation>Uganda</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="72"/>
         <source>United Arab Emirates</source>
         <translation>Emiratos Arabes Unidos</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="73"/>
         <source>United Kingdom</source>
         <translation>Reino Unido</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="74"/>
         <source>Yemen</source>
         <translation>Yemen</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="148"/>
         <source>Worldwide</source>
         <translation>Todo el mundo</translation>
     </message>
index 9623f894d134db72071f70780878fe664f2693a4..a06f5ca88b41b63ed2426513cfe5df9ff525cb69 100644 (file)
@@ -2,67 +2,42 @@
 <context>
     <name>AboutView</name>
     <message>
-        <location filename="src/aboutview.cpp" line="58"/>
         <source>There&apos;s life outside the browser!</source>
         <translation>¡Hay vida fuera del navegador!</translation>
     </message>
     <message>
-        <location filename="src/aboutview.cpp" line="59"/>
         <source>Version %1</source>
         <translation>Versión %1</translation>
     </message>
     <message>
-        <location filename="src/aboutview.cpp" line="64"/>
         <source>Licensed to: %1</source>
         <translation>Con licencia para %1</translation>
     </message>
     <message>
-        <location filename="src/aboutview.cpp" line="68"/>
         <source>%1 is Free Software but its development takes precious time.</source>
         <translation>%1 es un programa de software libre, pero su desarrollo lleva mucho tiempo.</translation>
     </message>
     <message>
-        <location filename="src/aboutview.cpp" line="69"/>
         <source>Please &lt;a href=&apos;%1&apos;&gt;donate&lt;/a&gt; to support the continued development of %2.</source>
         <translation>Por favor, considere &lt;a href=&apos;%1&apos;&gt;donar&lt;/a&gt; para apoyar el desarrollo de %2.</translation>
     </message>
     <message>
-        <location filename="src/aboutview.cpp" line="73"/>
-        <source>You may want to try my other apps as well:</source>
-        <translation>También puede probar mis otras aplicaciones:</translation>
-    </message>
-    <message>
-        <location filename="src/aboutview.cpp" line="76"/>
-        <source>%1, a YouTube music player</source>
-        <translation>%1, un reproductor de música de YouTube</translation>
-    </message>
-    <message>
-        <location filename="src/aboutview.cpp" line="80"/>
-        <source>%1, a music player</source>
-        <translation>%1, un reproductor de música</translation>
-    </message>
-    <message>
-        <location filename="src/aboutview.cpp" line="86"/>
         <source>Translate %1 to your native language using %2</source>
         <translation>Traducir %1 a tu idioma utilizando %2</translation>
     </message>
     <message>
-        <location filename="src/aboutview.cpp" line="91"/>
         <source>Icon designed by %1.</source>
         <translation>Icono diseñado por %1.</translation>
     </message>
     <message>
-        <location filename="src/aboutview.cpp" line="95"/>
         <source>Released under the &lt;a href=&apos;%1&apos;&gt;GNU General Public License&lt;/a&gt;</source>
         <translation>Publicado bajo la &lt;a href=&apos;%1&apos;&gt;Licencia Pública General GNU&lt;/a&gt;</translation>
     </message>
     <message>
-        <location filename="src/aboutview.cpp" line="110"/>
         <source>&amp;Close</source>
         <translation>&amp;Cerrar</translation>
     </message>
     <message>
-        <location filename="src/aboutview.h" line="40"/>
         <source>About</source>
         <translation>Acerca de...</translation>
     </message>
 <context>
     <name>ActivationDialog</name>
     <message>
-        <location filename="local/src/activationdialog.cpp" line="17"/>
         <source>Enter your License Details</source>
         <translation>Introducir detalles de la licencia</translation>
     </message>
     <message>
-        <location filename="local/src/activationdialog.cpp" line="29"/>
         <source>&amp;Email:</source>
         <translation>Corr&amp;eo electrónico:</translation>
     </message>
     <message>
-        <location filename="local/src/activationdialog.cpp" line="35"/>
         <source>&amp;Code:</source>
         <translation>&amp;Código:</translation>
     </message>
 <context>
     <name>ActivationView</name>
     <message>
-        <location filename="local/src/activationview.cpp" line="47"/>
         <source>Please license %1</source>
         <translation>Introduzca la licencia de %1</translation>
     </message>
     <message>
-        <location filename="local/src/activationview.cpp" line="51"/>
         <source>This demo has expired.</source>
         <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 watch videos without interruptions.</source>
-        <oldsource>The full version allows you to download videos longer than %1 minutes and to watch videos without interruptions.</oldsource>
-        <translation type="unfinished"/>
+        <translation>La versión completa le permite mirar videos 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>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, estará apoyando el gran trabajo empleado en la creación de %1.</translation>
     </message>
     <message>
-        <location filename="local/src/activationview.cpp" line="70"/>
         <source>Use Demo</source>
         <translation>Utilizar la versión de prueba</translation>
     </message>
     <message>
-        <location filename="local/src/activationview.cpp" line="77"/>
         <source>Enter License</source>
         <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>AppWidget</name>
+    <message>
+        <source>Download</source>
+        <translation>Descarga</translation>
+    </message>
+</context>
 <context>
     <name>ChannelAggregator</name>
     <message>
-        <location filename="src/channelaggregator.cpp" line="183"/>
         <source>By %1</source>
-        <translation type="unfinished"/>
+        <translation>Por %1</translation>
     </message>
     <message numerus="yes">
-        <location filename="src/channelaggregator.cpp" line="185"/>
         <source>You have %n new video(s)</source>
         <translation type="unfinished"><numerusform></numerusform><numerusform></numerusform></translation>
     </message>
 <context>
     <name>ChannelItemDelegate</name>
     <message>
-        <location filename="src/channelitemdelegate.cpp" line="67"/>
         <source>All Videos</source>
-        <translation type="unfinished"/>
+        <translation>Todos los videos</translation>
     </message>
     <message>
-        <location filename="src/channelitemdelegate.cpp" line="85"/>
         <source>Unwatched Videos</source>
-        <translation type="unfinished"/>
+        <translation>Videos no vistos</translation>
     </message>
 </context>
 <context>
     <name>ChannelView</name>
     <message>
-        <location filename="src/channelview.cpp" line="151"/>
-        <source>Mark all as watched</source>
-        <translation type="unfinished"/>
-    </message>
-    <message>
-        <location filename="src/channelview.cpp" line="159"/>
-        <source>Show Updated</source>
-        <translation type="unfinished"/>
-    </message>
-    <message>
-        <location filename="src/channelview.cpp" line="103"/>
         <source>Name</source>
         <translation>Nombre</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="110"/>
         <source>Last Updated</source>
-        <translation type="unfinished"/>
+        <translation>Última actualización</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="117"/>
         <source>Last Added</source>
-        <translation type="unfinished"/>
+        <translation>Último agregado</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="124"/>
         <source>Last Watched</source>
-        <translation type="unfinished"/>
+        <translation>Último visto</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="131"/>
         <source>Most Watched</source>
-        <translation type="unfinished"/>
+        <translation>Más vistos</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="139"/>
         <source>Sort by</source>
         <translation>Sortear por</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="222"/>
+        <source>Mark all as watched</source>
+        <translation>Marcar todos como vistos</translation>
+    </message>
+    <message>
+        <source>Show Updated</source>
+        <translation>Mostrar actualizados</translation>
+    </message>
+    <message>
         <source>All Videos</source>
-        <translation type="unfinished"/>
+        <translation>Todos los videos</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="226"/>
         <source>Unwatched Videos</source>
-        <translation type="unfinished"/>
+        <translation>Videos no vistos</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="244"/>
         <source>Mark as Watched</source>
-        <translation type="unfinished"/>
+        <translation>Marcar como visto</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="257"/>
         <source>Unsubscribe</source>
-        <translation type="unfinished"/>
+        <translation>Desusbcribirse</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="270"/>
         <source>There are no updated subscriptions at this time.</source>
-        <translation type="unfinished"/>
+        <translation>No existen subscripciones actualizadas en este momento.</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="272"/>
         <source>You have no subscriptions. Use the star symbol to subscribe to channels.</source>
-        <translation type="unfinished"/>
+        <translation>No tienes ninguna subscripción. Usa la estrella para subscribirte a los canales.</translation>
     </message>
 </context>
 <context>
     <name>ClearButton</name>
     <message>
-        <location filename="src/exlineedit.cpp" line="6"/>
         <source>Clear</source>
         <translation>Limpiar</translation>
     </message>
 <context>
     <name>DataUtils</name>
     <message>
-        <location filename="src/datautils.cpp" line="88"/>
         <source>Just now</source>
-        <translation type="unfinished"/>
+        <translation>Ahora</translation>
     </message>
     <message numerus="yes">
-        <location filename="src/datautils.cpp" line="90"/>
-        <source>%n minute(s) ago</source>
-        <translation type="unfinished"><numerusform></numerusform><numerusform></numerusform></translation>
-    </message>
-    <message numerus="yes">
-        <location filename="src/datautils.cpp" line="92"/>
         <source>%n hour(s) ago</source>
         <translation type="unfinished"><numerusform></numerusform><numerusform></numerusform></translation>
     </message>
     <message numerus="yes">
-        <location filename="src/datautils.cpp" line="94"/>
         <source>%n day(s) ago</source>
         <translation type="unfinished"><numerusform></numerusform><numerusform></numerusform></translation>
     </message>
     <message numerus="yes">
-        <location filename="src/datautils.cpp" line="96"/>
         <source>%n weeks(s) ago</source>
         <translation type="unfinished"><numerusform></numerusform><numerusform></numerusform></translation>
     </message>
     <message numerus="yes">
-        <location filename="src/datautils.cpp" line="98"/>
         <source>%n month(s) ago</source>
         <translation type="unfinished"><numerusform></numerusform><numerusform></numerusform></translation>
     </message>
 <context>
     <name>DownloadItem</name>
     <message>
-        <location filename="src/downloaditem.cpp" line="406"/>
         <source>bytes</source>
         <translation>bytes</translation>
     </message>
     <message>
-        <location filename="src/downloaditem.cpp" line="409"/>
         <source>KB</source>
         <translation>KB</translation>
     </message>
     <message>
-        <location filename="src/downloaditem.cpp" line="412"/>
         <source>MB</source>
         <translation>MB</translation>
     </message>
     <message>
-        <location filename="src/downloaditem.cpp" line="421"/>
         <source>bytes/sec</source>
         <translation>bytes/seg</translation>
     </message>
     <message>
-        <location filename="src/downloaditem.cpp" line="424"/>
         <source>KB/sec</source>
         <translation>KB/seg</translation>
     </message>
     <message>
-        <location filename="src/downloaditem.cpp" line="427"/>
         <source>MB/sec</source>
         <translation>MB/seg</translation>
     </message>
     <message>
-        <location filename="src/downloaditem.cpp" line="433"/>
         <source>seconds</source>
         <translation>segundos</translation>
     </message>
     <message>
-        <location filename="src/downloaditem.cpp" line="436"/>
         <source>minutes</source>
         <translation>minutos</translation>
     </message>
     <message>
-        <location filename="src/downloaditem.cpp" line="439"/>
         <source>%4 %5 remaining</source>
         <translation>%4 %5 restante</translation>
     </message>
 <context>
     <name>DownloadManager</name>
     <message>
-        <location filename="src/downloadmanager.cpp" line="77"/>
         <source>This is just the demo version of %1.</source>
         <translation>Esta es la versión de prueba de %1.</translation>
     </message>
     <message>
-        <location filename="src/downloadmanager.cpp" line="79"/>
         <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 inferiores a %1 minutos. Así podrá probar la funcionalidad de descarga.</translation>
     </message>
     <message>
-        <location filename="src/downloadmanager.cpp" line="85"/>
         <source>Continue</source>
         <translation>Continuar</translation>
     </message>
     <message>
-        <location filename="src/downloadmanager.cpp" line="86"/>
         <source>Get the full version</source>
         <translation>Obtener la versión completa</translation>
     </message>
     <message>
-        <location filename="src/downloadmanager.cpp" line="157"/>
         <source>%1 downloaded in %2</source>
         <translation>%1 descargado en %2</translation>
     </message>
     <message>
-        <location filename="src/downloadmanager.cpp" line="160"/>
         <source>Download finished</source>
         <translation>Descarga finalizada</translation>
     </message>
     <message numerus="yes">
-        <location filename="src/downloadmanager.cpp" line="165"/>
         <source>%n Download(s)</source>
         <translation type="unfinished"><numerusform></numerusform><numerusform></numerusform></translation>
     </message>
 <context>
     <name>DownloadSettings</name>
     <message>
-        <location filename="src/downloadsettings.cpp" line="36"/>
         <source>Change location...</source>
         <translation>Cambiar ubicación...</translation>
     </message>
     <message>
-        <location filename="src/downloadsettings.cpp" line="69"/>
         <source>Choose the download location</source>
         <translation>Eligir la ubicación de descarga</translation>
     </message>
     <message>
-        <location filename="src/downloadsettings.cpp" line="81"/>
         <source>Download location changed.</source>
         <translation>Ubicación de descarga cambiada.</translation>
     </message>
     <message>
-        <location filename="src/downloadsettings.cpp" line="83"/>
         <source>Current downloads will still go in the previous location.</source>
         <translation>Las descargan actuales se guardarán en la ubicación anterior.</translation>
     </message>
     <message>
-        <location filename="src/downloadsettings.cpp" line="94"/>
         <source>Downloading to: %1</source>
         <translation>Descargado: %1</translation>
     </message>
 <context>
     <name>DownloadView</name>
     <message>
-        <location filename="src/downloadview.cpp" line="38"/>
-        <location filename="src/downloadview.h" line="45"/>
         <source>Downloads</source>
         <translation>Descargas</translation>
     </message>
 </context>
-<context>
-    <name>DownloadWidget</name>
-    <message>
-        <location filename="local/src/updatedialog.cpp" line="60"/>
-        <source>Downloading update...</source>
-        <translation>Descargando actualización...</translation>
-    </message>
-</context>
 <context>
     <name>Extra</name>
     <message>
-        <location filename="local/src/extra.cpp" line="251"/>
         <source>The executable file has been tempered with, maybe by a virus.</source>
-        <translation type="unfinished"/>
+        <translation>El archivo ejecutable ha sido corrompido, quizás por un virus.</translation>
     </message>
     <message>
-        <location filename="local/src/extra.cpp" line="252"/>
         <source>%1 will not run. Try installing again.</source>
-        <translation type="unfinished"/>
+        <translation>%1 no se ejecutará. Intenta instalar nuevamente.</translation>
     </message>
     <message>
-        <location filename="local/src/extra.cpp" line="253"/>
         <source>Quit</source>
-        <translation type="unfinished"/>
+        <translation>Salir</translation>
     </message>
     <message>
-        <location filename="local/src/extra.cpp" line="254"/>
         <source>Reinstall</source>
-        <translation type="unfinished"/>
+        <translation>Reinstalar</translation>
     </message>
 </context>
 <context>
     <name>GlobalShortcuts</name>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="36"/>
         <source>Play</source>
         <translation>Reproducir</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="37"/>
         <source>Pause</source>
         <translation>Pausar</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="38"/>
         <source>Play/Pause</source>
         <translation>Reproducir/Pausar</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="39"/>
         <source>Stop</source>
         <translation>Detener</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="40"/>
         <source>Stop playing after current track</source>
         <translation>Detener reproducción después esta pista</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="41"/>
         <source>Next track</source>
         <translation>Siguiente pista</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="42"/>
         <source>Previous track</source>
         <translation>Pista anterior</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="43"/>
         <source>Increase volume</source>
         <translation>Subir volumen</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="44"/>
         <source>Decrease volume</source>
         <translation>Bajar volumen</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="45"/>
         <source>Mute</source>
         <translation>Silenciar</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="46"/>
         <source>Seek forward</source>
         <translation>Buscar hacia adelante</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="47"/>
         <source>Seek backward</source>
         <translation>Buscar hacia atrás</translation>
     </message>
 <context>
     <name>HomeView</name>
     <message>
-        <location filename="src/homeview.cpp" line="58"/>
         <source>Search</source>
         <translation>Buscar</translation>
     </message>
     <message>
-        <location filename="src/homeview.cpp" line="60"/>
         <source>Find videos and channels by keyword</source>
         <translation>Buscar vídeos y canales mediante palabra clave</translation>
     </message>
     <message>
-        <location filename="src/homeview.cpp" line="65"/>
         <source>Browse</source>
         <translation>Examinar</translation>
     </message>
     <message>
-        <location filename="src/homeview.cpp" line="67"/>
         <source>Browse videos by category</source>
         <translation>Examinar vídeos por categoría</translation>
     </message>
     <message>
-        <location filename="src/homeview.cpp" line="71"/>
         <source>Subscriptions</source>
-        <translation type="unfinished"/>
+        <translation>Subscripciones</translation>
     </message>
     <message>
-        <location filename="src/homeview.cpp" line="73"/>
         <source>Channel subscriptions</source>
-        <translation type="unfinished"/>
+        <translation>Subscripciones a canales</translation>
     </message>
     <message>
-        <location filename="src/homeview.h" line="44"/>
         <source>Make yourself comfortable</source>
         <translation>Siéntete como en casa</translation>
     </message>
 <context>
     <name>LoadingWidget</name>
     <message>
-        <location filename="src/loadingwidget.cpp" line="125"/>
         <source>Error</source>
         <translation>Error</translation>
     </message>
 <context>
     <name>MainWindow</name>
     <message>
-        <location filename="src/mainwindow.cpp" line="291"/>
+        <source>&amp;Window</source>
+        <translation>&amp;Ventana</translation>
+    </message>
+    <message>
+        <source>&amp;Minimize</source>
+        <translation>&amp;Minimizar</translation>
+    </message>
+    <message>
         <source>&amp;Stop</source>
         <translation>&amp;Detener</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="292"/>
         <source>Stop playback and go back to the search view</source>
         <translation>Detener reproducción y volver a la vista de búsqueda</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="307"/>
+        <source>P&amp;revious</source>
+        <translation>Ante&amp;rior</translation>
+    </message>
+    <message>
+        <source>Go back to the previous track</source>
+        <translation>Vuelve a la vista anterior</translation>
+    </message>
+    <message>
         <source>S&amp;kip</source>
         <translation>Sa&amp;ltar</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="308"/>
         <source>Skip to the next video</source>
         <translation>Saltar al siguiente vídeo</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1134"/>
-        <source>&amp;Pause</source>
-        <translation>&amp;Pausar</translation>
+        <source>&amp;Play</source>
+        <translation>Re&amp;producir</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1135"/>
-        <source>Pause playback</source>
-        <translation>Pausar reproducción</translation>
+        <source>Resume playback</source>
+        <translation>Reanudar la reproducción</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="321"/>
         <source>&amp;Full Screen</source>
         <translation>&amp;Pantalla completa</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="322"/>
         <source>Go full screen</source>
         <translation>Ir a pantalla completa</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="336"/>
+        <source>&amp;Compact Mode</source>
+        <translation>Modo &amp;compacto</translation>
+    </message>
+    <message>
         <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="349"/>
+        <source>Open the &amp;YouTube Page</source>
+        <translation>Abrir la página de &amp;YouTube</translation>
+    </message>
+    <message>
         <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="356"/>
+        <source>Copy the YouTube &amp;Link</source>
+        <translation>Copiar el &amp;enlace de YouTube</translation>
+    </message>
+    <message>
         <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="363"/>
+        <source>Copy the Video Stream &amp;URL</source>
+        <translation>Copiar &amp;URL del flujo de vídeo</translation>
+    </message>
+    <message>
         <source>Copy the current video stream URL to the clipboard</source>
         <translation>Copiar al portapapeles la &amp;URL del flujo de vídeo actual</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="370"/>
+        <source>Find Video &amp;Parts</source>
+        <translation>Buscar &amp;partes del vídeo</translation>
+    </message>
+    <message>
         <source>Find other video parts hopefully in the right order</source>
         <translation>Buscar otras partes del vídeo, con suerte, en el orden correcto</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="376"/>
         <source>&amp;Remove</source>
         <translation>Elimina&amp;r</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="377"/>
         <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="383"/>
         <source>Move &amp;Up</source>
         <translation>S&amp;ubir</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="384"/>
         <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="390"/>
         <source>Move &amp;Down</source>
         <translation>&amp;Bajar</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="391"/>
         <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="402"/>
+        <source>&amp;Clear Recent Searches</source>
+        <translation>&amp;Limpiar búsquedas recientes</translation>
+    </message>
+    <message>
         <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="407"/>
         <source>&amp;Quit</source>
         <translation>&amp;Salir</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="410"/>
         <source>Bye</source>
         <translation>Adiós</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="414"/>
         <source>&amp;Website</source>
         <translation>Sitio &amp;Web</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="416"/>
         <source>%1 on the Web</source>
         <translation>%1 en la Web</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="422"/>
+        <source>Make a &amp;Donation</source>
+        <translation>Hacer una &amp;donación</translation>
+    </message>
+    <message>
         <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="427"/>
         <source>&amp;About</source>
         <translation>&amp;Acerca de...</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="429"/>
         <source>Info about %1</source>
         <translation>Información acerca de %1</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="437"/>
         <source>Search</source>
         <translation>Buscar</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="456"/>
         <source>Mute volume</source>
         <translation>Silenciar volumen</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="490"/>
-        <location filename="src/mainwindow.cpp" line="1609"/>
+        <source>&amp;Manually Start Playing</source>
+        <translation>&amp;Iniciar reproducción manual</translation>
+    </message>
+    <message>
+        <source>Manually start playing videos</source>
+        <translation>Empezar a reproducir vídeos manualmente</translation>
+    </message>
+    <message>
         <source>&amp;Downloads</source>
         <translation>&amp;Descargas</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="491"/>
         <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="499"/>
         <source>&amp;Download</source>
         <translation>&amp;Descargar</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="500"/>
         <source>Download the current video</source>
         <translation>Descargar el vídeo actual</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="510"/>
         <source>Take &amp;Snapshot</source>
-        <translation type="unfinished"/>
+        <translation>Tomar una &amp;instantánea</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="517"/>
         <source>&amp;Subscribe to Channel</source>
-        <translation type="unfinished"/>
+        <translation>&amp;Subscribirse al canal</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="525"/>
         <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="545"/>
         <source>&amp;Email</source>
         <translation>&amp;Correo electrónico</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="546"/>
         <source>Email</source>
         <translation>Correo electrónico</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="551"/>
         <source>&amp;Close</source>
         <translation>&amp;Cerrar</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="561"/>
         <source>&amp;Float on Top</source>
         <translation>&amp;Siempre Visible</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="566"/>
         <source>&amp;Adjust Window Size</source>
-        <translation type="unfinished"/>
+        <translation>&amp;Ajustar el tamaños de la ventana</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="571"/>
         <source>&amp;Stop After This Video</source>
         <translation>&amp;Detener después de este vídeo</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="578"/>
         <source>&amp;Report an Issue...</source>
         <translation>&amp;Informar de un problema...</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="582"/>
         <source>&amp;Refine Search...</source>
         <translation>&amp;Refinar búsqueda...</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="594"/>
         <source>More...</source>
         <translation>Más...</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="597"/>
         <source>&amp;Related Videos</source>
         <translation>Vídeos &amp;relacionados</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="599"/>
         <source>Watch videos related to the current one</source>
         <translation>Ver vídeos relacionados con el actual</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="605"/>
         <source>Open in &amp;Browser...</source>
-        <translation type="unfinished"/>
+        <translation>Abrir en el &amp;navegador...</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="612"/>
-        <source>&amp;Love %1? Rate it!</source>
-        <translation>&amp;¿Te encanta %1? ¡Puntúalo!</translation>
+        <source>Restricted Mode</source>
+        <translation>Modo restringido</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="633"/>
-        <source>&amp;Application</source>
-        <translation>&amp;Aplicación</translation>
+        <source>Hide videos that may contain inappropriate content</source>
+        <translation>Ocultar video que puedan poseer contenido inapropiado</translation>
+    </message>
+    <message>
+        <source>&amp;Love %1? Rate it!</source>
+        <translation>&amp;¿Te encanta %1? ¡Puntúalo!</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="618"/>
         <source>Buy %1...</source>
         <translation>Comprar %1...</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="647"/>
+        <source>&amp;Application</source>
+        <translation>&amp;Aplicación</translation>
+    </message>
+    <message>
         <source>&amp;Playback</source>
         <translation>&amp;Reproducción</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="661"/>
         <source>&amp;Playlist</source>
         <translation>Lista de Re&amp;producción</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="670"/>
         <source>&amp;Video</source>
         <translation>&amp;Vídeo</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="686"/>
-        <source>&amp;View</source>
-        <translation>&amp;Ver</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="695"/>
         <source>&amp;Share</source>
         <translation>Com&amp;partir</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="709"/>
+        <source>&amp;View</source>
+        <translation>&amp;Ver</translation>
+    </message>
+    <message>
         <source>&amp;Help</source>
         <translation>&amp;Ayuda</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="751"/>
         <source>Press %1 to raise the volume, %2 to lower it</source>
         <translation>Pulse %1 para subir el volumen y %2 para bajarlo</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1021"/>
-        <location filename="src/mainwindow.cpp" line="1027"/>
+        <source>Choose your content location</source>
+        <translation>Elegir la ubicación del contenido</translation>
+    </message>
+    <message>
         <source>Opening %1</source>
         <translation>Abriendo %1</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1080"/>
         <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="1081"/>
         <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="1086"/>
         <source>Close and cancel download</source>
         <translation>Cerrar y cancelar la descarga</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1087"/>
         <source>Wait for download to finish</source>
         <translation>Esperar la finalización de la descarga</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1158"/>
-        <source>&amp;Loading...</source>
-        <translation type="unfinished"/>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="1264"/>
-        <source>Leave &amp;Full Screen</source>
-        <translation>Salir de pan&amp;talla completa</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="1718"/>
-        <source>%1 version %2 is now available.</source>
-        <translation>La versión %2 de %1 ya está disponible.</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="1722"/>
-        <source>Remind me later</source>
-        <translation>Recordarme después</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="1723"/>
-        <source>Update</source>
-        <translation>Actualizar</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="1127"/>
         <source>Error: %1</source>
         <translation>Error: %1</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="300"/>
-        <source>P&amp;revious</source>
-        <translation>Ante&amp;rior</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="301"/>
-        <source>Go back to the previous track</source>
-        <translation>Vuelve a la vista anterior</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="335"/>
-        <source>&amp;Compact Mode</source>
-        <translation>Modo &amp;compacto</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="348"/>
-        <source>Open the &amp;YouTube Page</source>
-        <translation>Abrir la página de &amp;YouTube</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="355"/>
-        <source>Copy the YouTube &amp;Link</source>
-        <translation>Copiar el &amp;enlace de YouTube</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="362"/>
-        <source>Copy the Video Stream &amp;URL</source>
-        <translation>Copiar &amp;URL del flujo de vídeo</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="369"/>
-        <source>Find Video &amp;Parts</source>
-        <translation>Buscar &amp;partes del vídeo</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="397"/>
-        <source>&amp;Clear Recent Searches</source>
-        <translation>&amp;Limpiar búsquedas recientes</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="421"/>
-        <source>Make a &amp;Donation</source>
-        <translation>Hacer una &amp;donación</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="483"/>
-        <source>&amp;Manually Start Playing</source>
-        <translation>&amp;Iniciar reproducción manual</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="484"/>
-        <source>Manually start playing videos</source>
-        <translation>Empezar a reproducir vídeos manualmente</translation>
+        <source>&amp;Pause</source>
+        <translation>&amp;Pausar</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="847"/>
-        <source>Choose your content location</source>
-        <translation>Elegir la ubicación del contenido</translation>
+        <source>Pause playback</source>
+        <translation>Pausar reproducción</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="314"/>
-        <location filename="src/mainwindow.cpp" line="1142"/>
-        <location filename="src/mainwindow.cpp" line="1150"/>
-        <source>&amp;Play</source>
-        <translation>Re&amp;producir</translation>
+        <source>&amp;Loading...</source>
+        <translation>&amp;Cargando...</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="315"/>
-        <location filename="src/mainwindow.cpp" line="1143"/>
-        <location filename="src/mainwindow.cpp" line="1151"/>
-        <source>Resume playback</source>
-        <translation>Reanudar la reproducción</translation>
+        <source>Leave &amp;Full Screen</source>
+        <translation>Salir de pan&amp;talla completa</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1437"/>
         <source>Remaining time: %1</source>
         <translation>Tiempo restante: %1</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1528"/>
         <source>Volume at %1%</source>
         <translation>Volumen al %1%</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1534"/>
         <source>Volume is muted</source>
         <translation>El volumen está silenciado</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1537"/>
         <source>Volume is unmuted</source>
         <translation>El volumen no está silenciado</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1548"/>
         <source>Maximum video definition set to %1</source>
         <translation>La definición máxima de vídeo es %1</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1595"/>
         <source>Your privacy is now safe</source>
         <translation>Su privacidad ahora es segura</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1610"/>
         <source>Downloads complete</source>
         <translation>Descargas completadas</translation>
     </message>
+    <message>
+        <source>%1 version %2 is now available.</source>
+        <translation>La versión %2 de %1 ya está disponible.</translation>
+    </message>
+    <message>
+        <source>Remind me later</source>
+        <translation>Recordarme después</translation>
+    </message>
+    <message>
+        <source>Update</source>
+        <translation>Actualizar</translation>
+    </message>
 </context>
 <context>
     <name>MediaView</name>
     <message>
-        <location filename="src/mediaview.cpp" line="702"/>
         <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="710"/>
         <source>You can now paste the video stream URL into another application</source>
         <translation>Ahora puedes pegar la URL del flujo de vídeo en otra aplicación</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="711"/>
         <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>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="800"/>
         <source>This is just the demo version of %1.</source>
         <translation>Esta es la versión de prueba de %1.</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="801"/>
         <source>It allows you to test the application and see if it works for you.</source>
         <translation>Esta versión le permite probar la aplicación y ver si le sirve.</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="833"/>
+        <source>Get the full version</source>
+        <translation>Obtener la versión completa</translation>
+    </message>
+    <message>
         <source>Continue</source>
         <translation>Continuar</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="988"/>
+        <source>Downloading %1</source>
+        <translation>Descargando %1</translation>
+    </message>
+    <message>
         <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="1001"/>
         <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="1003"/>
         <source>episode</source>
         <comment>This is for video parts, as in 'Cool series - episode 1'</comment>
         <translation>capítulo</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="1096"/>
         <source>Sent from %1</source>
         <translation>Enviado desde %1</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="1128"/>
         <source>Unsubscribe from %1</source>
-        <translation type="unfinished"/>
+        <translation>Desubscribirse de %1</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="1132"/>
         <source>Subscribe to %1</source>
-        <translation type="unfinished"/>
+        <translation>Subscribirse a %1</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="1166"/>
         <source>Unsubscribed from %1</source>
-        <translation type="unfinished"/>
+        <translation>Desubscripto de %1</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="1169"/>
         <source>Subscribed to %1</source>
-        <translation type="unfinished"/>
-    </message>
-    <message>
-        <location filename="src/mediaview.cpp" line="808"/>
-        <source>Get the full version</source>
-        <translation>Obtener la versión completa</translation>
-    </message>
-    <message>
-        <location filename="src/mediaview.cpp" line="847"/>
-        <source>Downloading %1</source>
-        <translation>Descargando %1</translation>
+        <translation>Subscripto a %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>¡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>%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>¿Deseas descargarla ahora?</translation>
     </message>
     <message>
-        <location filename="local/src/updatedialog.cpp" line="39"/>
         <source>Skip This Version</source>
         <translation>Saltar esta versión</translation>
     </message>
     <message>
-        <location filename="local/src/updatedialog.cpp" line="43"/>
         <source>Remind Me Later</source>
         <translation>Recordarme después</translation>
     </message>
     <message>
-        <location filename="local/src/updatedialog.cpp" line="47"/>
         <source>Install Update</source>
         <translation>Instalar actualización</translation>
     </message>
 <context>
     <name>PasteLineEdit</name>
     <message>
-        <location filename="local/src/pastelineedit.cpp" line="6"/>
         <source>Paste</source>
         <translation>Pegar</translation>
     </message>
 <context>
     <name>PlaylistItemDelegate</name>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="209"/>
         <source>%1 views</source>
         <translation>%1 vistas</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="309"/>
         <source>%1 of %2 (%3) — %4</source>
         <translation>%1 de %2 (%3) — %4</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="316"/>
         <source>Preparing</source>
         <translation>Preparando</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="318"/>
         <source>Failed</source>
         <translation>Falló</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="320"/>
         <source>Completed</source>
         <translation>Completo</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="322"/>
         <source>Stopped</source>
         <translation>Detenido</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="358"/>
         <source>Stop downloading</source>
         <translation>Detener descarga</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="368"/>
         <source>Show in %1</source>
         <translation>Mostrar en %1</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="370"/>
         <source>Open parent folder</source>
         <translation>Abrir carpeta raíz</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="379"/>
         <source>Restart downloading</source>
         <translation>Reiniciar descarga</translation>
     </message>
 <context>
     <name>PlaylistModel</name>
     <message>
-        <location filename="src/playlistmodel.cpp" line="70"/>
         <source>Searching...</source>
         <translation>Buscando...</translation>
     </message>
     <message>
-        <location filename="src/playlistmodel.cpp" line="71"/>
         <source>Show %1 More</source>
         <translation>Mostrar %1 más</translation>
     </message>
     <message>
-        <location filename="src/playlistmodel.cpp" line="72"/>
         <source>No videos</source>
         <translation>No hay vídeos</translation>
     </message>
     <message>
-        <location filename="src/playlistmodel.cpp" line="73"/>
         <source>No more videos</source>
         <translation>No hay más vídeos</translation>
     </message>
 <context>
     <name>RefineSearchWidget</name>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="49"/>
         <source>Sort by</source>
         <translation>Ordenar por</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="53"/>
         <source>Relevance</source>
         <translation>Relevancia</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="54"/>
-        <location filename="src/refinesearchwidget.cpp" line="69"/>
         <source>Date</source>
         <translation>Fecha</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="55"/>
         <source>View Count</source>
         <translation>Vistas</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="56"/>
         <source>Rating</source>
         <translation>Valoraciones</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="73"/>
         <source>Anytime</source>
         <translation>Histórico</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="74"/>
         <source>Today</source>
         <translation>Hoy</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="75"/>
         <source>7 Days</source>
         <translation>7 días</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="76"/>
         <source>30 Days</source>
         <translation>30 días</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="89"/>
         <source>Duration</source>
         <translation>Duración</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="93"/>
-        <location filename="src/refinesearchwidget.cpp" line="119"/>
         <source>All</source>
         <translation>Todos</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="94"/>
         <source>Short</source>
         <translation>Corto</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="95"/>
         <source>Medium</source>
         <translation>Mediano</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="96"/>
         <source>Long</source>
         <translation>Largo</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="99"/>
         <source>Less than 4 minutes</source>
         <translation>Inferior a 4 minutos</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="100"/>
         <source>Between 4 and 20 minutes</source>
         <translation>Entre 4 y 20 minutos</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="101"/>
         <source>Longer than 20 minutes</source>
         <translation>Superior a 20 minutos</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="115"/>
         <source>Quality</source>
         <translation>Calidad</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="120"/>
         <source>High Definition</source>
         <translation>Alta definición</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="123"/>
         <source>720p or higher</source>
         <translation>720p o mayor</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="136"/>
         <source>Done</source>
         <translation>Finalizado</translation>
     </message>
 <context>
     <name>RegionsView</name>
     <message>
-        <location filename="src/regionsview.cpp" line="39"/>
         <source>Done</source>
         <translation>Finalizado</translation>
     </message>
 <context>
     <name>SearchLineEdit</name>
     <message>
-        <location filename="src/searchlineedit.cpp" line="55"/>
         <source>Search</source>
         <translation>Buscar</translation>
     </message>
 <context>
     <name>SearchView</name>
     <message>
-        <location filename="src/searchview.cpp" line="83"/>
         <source>Welcome to &lt;a href=&apos;%1&apos;&gt;%2&lt;/a&gt;,</source>
         <translation>Bienvenidos a &lt;a href=&apos;%1&apos;&gt;%2&lt;/a&gt;,</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="200"/>
-        <source>Get the full version</source>
-        <translation>Obtener la versión completa</translation>
-    </message>
-    <message>
-        <location filename="src/searchview.cpp" line="110"/>
         <source>Enter</source>
         <extracomment>&quot;Enter&quot;, as in &quot;type&quot;. The whole phrase says: &quot;Enter a keyword to start watching videos&quot;</extracomment>
         <translation>Introducir</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="117"/>
         <source>a keyword</source>
         <translation>una palabra clave</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="118"/>
         <source>a channel</source>
         <translation>un canal</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="125"/>
         <source>to start watching videos.</source>
         <translation>para empezar a ver vídeos</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="156"/>
         <source>Watch</source>
         <translation>Ver</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="174"/>
         <source>Recent keywords</source>
         <translation>Palabras clave recientes</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="186"/>
         <source>Recent channels</source>
         <translation>Canales recientes</translation>
     </message>
+    <message>
+        <source>Get the full version</source>
+        <translation>Obtener la versión completa</translation>
+    </message>
 </context>
 <context>
     <name>SidebarHeader</name>
     <message>
-        <location filename="src/sidebarheader.cpp" line="38"/>
-        <location filename="src/sidebarheader.cpp" line="45"/>
         <source>&amp;Back</source>
         <translation>&amp;Volver</translation>
     </message>
     <message>
-        <location filename="src/sidebarheader.cpp" line="76"/>
         <source>Forward to %1</source>
         <translation>Hacia adelante %1</translation>
     </message>
     <message>
-        <location filename="src/sidebarheader.cpp" line="89"/>
         <source>Back to %1</source>
         <translation>Hacia atrás %1</translation>
     </message>
 <context>
     <name>SidebarWidget</name>
     <message>
-        <location filename="src/sidebarwidget.cpp" line="68"/>
         <source>Refine Search</source>
         <translation>Refinar búsqueda</translation>
     </message>
     <message>
-        <location filename="src/sidebarwidget.cpp" line="167"/>
         <source>Did you mean: %1</source>
         <translation>Quiso decir: %1</translation>
     </message>
 <context>
     <name>SnapshotSettings</name>
     <message>
-        <location filename="src/snapshotsettings.cpp" line="47"/>
         <source>Change location...</source>
         <translation>Cambiar ubicación...</translation>
     </message>
     <message>
-        <location filename="src/snapshotsettings.cpp" line="64"/>
         <source>Snapshot saved to %1</source>
-        <translation type="unfinished"/>
+        <translation>Instantánea guardada en %1</translation>
     </message>
     <message>
-        <location filename="src/snapshotsettings.cpp" line="117"/>
         <source>Snapshots location changed.</source>
-        <translation type="unfinished"/>
+        <translation>La ubicación de las instantáneas ha cambiado.</translation>
     </message>
 </context>
 <context>
     <name>StandardFeedsView</name>
     <message>
-        <location filename="src/standardfeedsview.cpp" line="107"/>
         <source>Most Popular</source>
         <translation>Más popular</translation>
     </message>
 </context>
+<context>
+    <name>UpdateDialog</name>
+    <message>
+        <source>Downloading update...</source>
+        <translation>Descargando actualización...</translation>
+    </message>
+    <message>
+        <source>Downloading %1...</source>
+        <translation>Descargando %1...</translation>
+    </message>
+</context>
 <context>
     <name>Video</name>
     <message>
-        <location filename="src/video.cpp" line="287"/>
         <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="292"/>
-        <source>Network error: %1 for %2</source>
-        <translation>Error de red: %1 por %2 </translation>
-    </message>
 </context>
 <context>
     <name>YTRegions</name>
     <message>
-        <location filename="src/ytregions.cpp" line="28"/>
         <source>Algeria</source>
         <translation>Algeria</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="29"/>
         <source>Argentina</source>
         <translation>Argentina</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="30"/>
         <source>Australia</source>
         <translation>Australia</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="31"/>
         <source>Belgium</source>
         <translation>Bélgica</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="32"/>
         <source>Brazil</source>
         <translation>Brasil</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="33"/>
         <source>Canada</source>
         <translation>Canadá</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="34"/>
         <source>Chile</source>
         <translation>Chile</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="35"/>
         <source>Colombia</source>
         <translation>Colombia</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="36"/>
         <source>Czech Republic</source>
         <translation>República Checa</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="37"/>
         <source>Egypt</source>
         <translation>Egipto</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="38"/>
         <source>France</source>
         <translation>Francia</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="39"/>
         <source>Germany</source>
         <translation>Alemania</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="40"/>
         <source>Ghana</source>
         <translation>Ghana</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="41"/>
         <source>Greece</source>
         <translation>Grecia</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="42"/>
         <source>Hong Kong</source>
         <translation>Hong Kong</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="43"/>
         <source>Hungary</source>
         <translation>Hungría</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="44"/>
         <source>India</source>
         <translation>India</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="45"/>
         <source>Indonesia</source>
         <translation>Indonesia</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="46"/>
         <source>Ireland</source>
         <translation>Irlanda</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="47"/>
         <source>Israel</source>
         <translation>Israel</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="48"/>
         <source>Italy</source>
         <translation>Italia</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="49"/>
         <source>Japan</source>
         <translation>Japón</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="50"/>
         <source>Jordan</source>
         <translation>Jordania</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="51"/>
         <source>Kenya</source>
         <translation>Kenia</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="52"/>
         <source>Malaysia</source>
         <translation>Malasia</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="53"/>
         <source>Mexico</source>
         <translation>México</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="54"/>
         <source>Morocco</source>
         <translation>Marruecos</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="55"/>
         <source>Netherlands</source>
         <translation>Países Bajos</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="56"/>
         <source>New Zealand</source>
         <translation>Nueva Zelanda</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="57"/>
         <source>Nigeria</source>
         <translation>Nigeria</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="58"/>
         <source>Peru</source>
         <translation>Perú</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="59"/>
         <source>Philippines</source>
         <translation>Filipinas</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="60"/>
         <source>Poland</source>
         <translation>Polonia</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="61"/>
         <source>Russia</source>
         <translation>Rusia</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="62"/>
         <source>Saudi Arabia</source>
         <translation>Arabia Saudí</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="63"/>
         <source>Singapore</source>
         <translation>Singapur</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="64"/>
         <source>South Africa</source>
         <translation>Sudáfrica</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="65"/>
         <source>South Korea</source>
         <translation>Corea del Sur</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="66"/>
         <source>Spain</source>
         <translation>España</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="67"/>
         <source>Sweden</source>
         <translation>Suecia</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="68"/>
         <source>Taiwan</source>
         <translation>Taiwán</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="69"/>
         <source>Tunisia</source>
         <translation>Túnez</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="70"/>
         <source>Turkey</source>
         <translation>Turquía</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="71"/>
         <source>Uganda</source>
         <translation>Uganda</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="72"/>
         <source>United Arab Emirates</source>
         <translation>Emiratos Árabes Unidos</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="73"/>
         <source>United Kingdom</source>
         <translation>Reino Unido</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="74"/>
         <source>Yemen</source>
         <translation>Yemen</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="148"/>
         <source>Worldwide</source>
         <translation>Mundial</translation>
     </message>
index af956f224b59386457076f0ccb14e0bec7ea9b0a..337e4ac5aff73f4d0733277b62aa6f347377fc5f 100644 (file)
@@ -2,67 +2,42 @@
 <context>
     <name>AboutView</name>
     <message>
-        <location filename="src/aboutview.cpp" line="58"/>
         <source>There&apos;s life outside the browser!</source>
         <translation>Hay vida fuera del navegador!!!!</translation>
     </message>
     <message>
-        <location filename="src/aboutview.cpp" line="59"/>
         <source>Version %1</source>
         <translation>Versión %1</translation>
     </message>
     <message>
-        <location filename="src/aboutview.cpp" line="64"/>
         <source>Licensed to: %1</source>
         <translation>Licenciado a: %1</translation>
     </message>
     <message>
-        <location filename="src/aboutview.cpp" line="68"/>
         <source>%1 is Free Software but its development takes precious time.</source>
         <translation>%1 es Software Libre pero su desarrollo toma tiempo.</translation>
     </message>
     <message>
-        <location filename="src/aboutview.cpp" line="69"/>
         <source>Please &lt;a href=&apos;%1&apos;&gt;donate&lt;/a&gt; to support the continued development of %2.</source>
         <translation>Por favor &lt;a href=&apos;%1&apos;&gt;dona&lt;/a&gt; para apoyar el desarrollo de %2</translation>
     </message>
     <message>
-        <location filename="src/aboutview.cpp" line="73"/>
-        <source>You may want to try my other apps as well:</source>
-        <translation>Podrías probar mis otras aplicaciones:</translation>
-    </message>
-    <message>
-        <location filename="src/aboutview.cpp" line="76"/>
-        <source>%1, a YouTube music player</source>
-        <translation>%1, un reproductor musical de YouTube</translation>
-    </message>
-    <message>
-        <location filename="src/aboutview.cpp" line="80"/>
-        <source>%1, a music player</source>
-        <translation>%1, un reproductor de música</translation>
-    </message>
-    <message>
-        <location filename="src/aboutview.cpp" line="86"/>
         <source>Translate %1 to your native language using %2</source>
         <translation>Traducir %1 a tu idioma nativo usando %2</translation>
     </message>
     <message>
-        <location filename="src/aboutview.cpp" line="91"/>
         <source>Icon designed by %1.</source>
         <translation>Ícono diseñado por %1</translation>
     </message>
     <message>
-        <location filename="src/aboutview.cpp" line="95"/>
         <source>Released under the &lt;a href=&apos;%1&apos;&gt;GNU General Public License&lt;/a&gt;</source>
         <translation>Liberado bajo la licencia &lt;a href=&apos;%1&apos;&gt; GNU General Public License&lt;/a&gt;</translation>
     </message>
     <message>
-        <location filename="src/aboutview.cpp" line="110"/>
         <source>&amp;Close</source>
         <translation>&amp;Cerrar</translation>
     </message>
     <message>
-        <location filename="src/aboutview.h" line="40"/>
         <source>About</source>
         <translation>Acerca de</translation>
     </message>
 <context>
     <name>ActivationDialog</name>
     <message>
-        <location filename="local/src/activationdialog.cpp" line="17"/>
         <source>Enter your License Details</source>
         <translation>Introduzca su detalle de licencia</translation>
     </message>
     <message>
-        <location filename="local/src/activationdialog.cpp" line="29"/>
         <source>&amp;Email:</source>
         <translation>Correo &amp;electrónico:</translation>
     </message>
     <message>
-        <location filename="local/src/activationdialog.cpp" line="35"/>
         <source>&amp;Code:</source>
         <translation>&amp;Códico</translation>
     </message>
 <context>
     <name>ActivationView</name>
     <message>
-        <location filename="local/src/activationview.cpp" line="47"/>
         <source>Please license %1</source>
         <translation>Por favor licencia %1</translation>
     </message>
     <message>
-        <location filename="local/src/activationview.cpp" line="51"/>
         <source>This demo has expired.</source>
         <translation>Esta demostración ha expirado</translation>
     </message>
     <message>
-        <location filename="local/src/activationview.cpp" line="53"/>
         <source>The full version allows you to watch videos without interruptions.</source>
-        <oldsource>The full version allows you to download videos longer than %1 minutes and to watch videos without interruptions.</oldsource>
         <translation>La versión completa te permite 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>Sin una licencia, la aplicación expirará en %1 dias.</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>Comprando la versión completa, permitirás el desarrollo y el trabajo duro que he puesto creando %1</translation>
     </message>
     <message>
-        <location filename="local/src/activationview.cpp" line="70"/>
         <source>Use Demo</source>
         <translation>Usar Demostración</translation>
     </message>
     <message>
-        <location filename="local/src/activationview.cpp" line="77"/>
         <source>Enter License</source>
         <translation>Introduzca Licencia</translation>
     </message>
     <message>
-        <location filename="local/src/activationview.cpp" line="85"/>
         <source>Buy License</source>
         <translation>Comprar Licencia</translation>
     </message>
 </context>
+<context>
+    <name>AppWidget</name>
+    <message>
+        <source>Download</source>
+        <translation>Descargar</translation>
+    </message>
+</context>
 <context>
     <name>ChannelAggregator</name>
     <message>
-        <location filename="src/channelaggregator.cpp" line="183"/>
         <source>By %1</source>
         <translation>Por %1</translation>
     </message>
     <message numerus="yes">
-        <location filename="src/channelaggregator.cpp" line="185"/>
         <source>You have %n new video(s)</source>
         <translation type="unfinished"><numerusform></numerusform><numerusform></numerusform></translation>
     </message>
 <context>
     <name>ChannelItemDelegate</name>
     <message>
-        <location filename="src/channelitemdelegate.cpp" line="67"/>
         <source>All Videos</source>
         <translation>Todos los vídeos</translation>
     </message>
     <message>
-        <location filename="src/channelitemdelegate.cpp" line="85"/>
         <source>Unwatched Videos</source>
         <translation>Vídeos sin ver</translation>
     </message>
 <context>
     <name>ChannelView</name>
     <message>
-        <location filename="src/channelview.cpp" line="151"/>
-        <source>Mark all as watched</source>
-        <translation>Marcar todo como visto</translation>
-    </message>
-    <message>
-        <location filename="src/channelview.cpp" line="159"/>
-        <source>Show Updated</source>
-        <translation>Mostrar actualizados</translation>
-    </message>
-    <message>
-        <location filename="src/channelview.cpp" line="103"/>
         <source>Name</source>
         <translation>Nombre</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="110"/>
         <source>Last Updated</source>
         <translation>Últimos Actualizados</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="117"/>
         <source>Last Added</source>
         <translation>Últimos añadidos</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="124"/>
         <source>Last Watched</source>
         <translation>Últimos vistos</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="131"/>
         <source>Most Watched</source>
         <translation>Más vistos</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="139"/>
         <source>Sort by</source>
         <translation>Ordenar por</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="222"/>
+        <source>Mark all as watched</source>
+        <translation>Marcar todo como visto</translation>
+    </message>
+    <message>
+        <source>Show Updated</source>
+        <translation>Mostrar actualizados</translation>
+    </message>
+    <message>
         <source>All Videos</source>
         <translation>Todos los vídeos</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="226"/>
         <source>Unwatched Videos</source>
         <translation>Vídeos no vistos</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="244"/>
         <source>Mark as Watched</source>
         <translation>Marcar como visto</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="257"/>
         <source>Unsubscribe</source>
         <translation>Quitar suscripción</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="270"/>
         <source>There are no updated subscriptions at this time.</source>
         <translation>No hay suscripciones actualizadas</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="272"/>
         <source>You have no subscriptions. Use the star symbol to subscribe to channels.</source>
         <translation>No tienes suscripciones. Usa el símbolo de estrella para suscribirte a los canales.</translation>
     </message>
 <context>
     <name>ClearButton</name>
     <message>
-        <location filename="src/exlineedit.cpp" line="6"/>
         <source>Clear</source>
         <translation>Limpiar</translation>
     </message>
 <context>
     <name>DataUtils</name>
     <message>
-        <location filename="src/datautils.cpp" line="88"/>
         <source>Just now</source>
-        <translation type="unfinished"/>
-    </message>
-    <message numerus="yes">
-        <location filename="src/datautils.cpp" line="90"/>
-        <source>%n minute(s) ago</source>
-        <translation type="unfinished"><numerusform></numerusform><numerusform></numerusform></translation>
+        <translation>Justo ahora</translation>
     </message>
     <message numerus="yes">
-        <location filename="src/datautils.cpp" line="92"/>
         <source>%n hour(s) ago</source>
         <translation type="unfinished"><numerusform></numerusform><numerusform></numerusform></translation>
     </message>
     <message numerus="yes">
-        <location filename="src/datautils.cpp" line="94"/>
         <source>%n day(s) ago</source>
         <translation type="unfinished"><numerusform></numerusform><numerusform></numerusform></translation>
     </message>
     <message numerus="yes">
-        <location filename="src/datautils.cpp" line="96"/>
         <source>%n weeks(s) ago</source>
         <translation type="unfinished"><numerusform></numerusform><numerusform></numerusform></translation>
     </message>
     <message numerus="yes">
-        <location filename="src/datautils.cpp" line="98"/>
         <source>%n month(s) ago</source>
         <translation type="unfinished"><numerusform></numerusform><numerusform></numerusform></translation>
     </message>
 <context>
     <name>DownloadItem</name>
     <message>
-        <location filename="src/downloaditem.cpp" line="406"/>
         <source>bytes</source>
         <translation>bytes</translation>
     </message>
     <message>
-        <location filename="src/downloaditem.cpp" line="409"/>
         <source>KB</source>
         <translation>KB</translation>
     </message>
     <message>
-        <location filename="src/downloaditem.cpp" line="412"/>
         <source>MB</source>
         <translation>MB</translation>
     </message>
     <message>
-        <location filename="src/downloaditem.cpp" line="421"/>
         <source>bytes/sec</source>
         <translation>bytes/seg</translation>
     </message>
     <message>
-        <location filename="src/downloaditem.cpp" line="424"/>
         <source>KB/sec</source>
         <translation>KB/seg</translation>
     </message>
     <message>
-        <location filename="src/downloaditem.cpp" line="427"/>
         <source>MB/sec</source>
         <translation>MB/seg</translation>
     </message>
     <message>
-        <location filename="src/downloaditem.cpp" line="433"/>
         <source>seconds</source>
         <translation>segundos</translation>
     </message>
     <message>
-        <location filename="src/downloaditem.cpp" line="436"/>
         <source>minutes</source>
         <translation>minutos</translation>
     </message>
     <message>
-        <location filename="src/downloaditem.cpp" line="439"/>
         <source>%4 %5 remaining</source>
         <translation>%4 %5 restante</translation>
     </message>
 <context>
     <name>DownloadManager</name>
     <message>
-        <location filename="src/downloadmanager.cpp" line="77"/>
         <source>This is just the demo version of %1.</source>
         <translation>Esta es la versión demostrativa de %1</translation>
     </message>
     <message>
-        <location filename="src/downloadmanager.cpp" line="79"/>
         <source>It can only download videos shorter than %1 minutes so you can test the download functionality.</source>
         <translation>Sólo puede descargar videos con duración menor a %1 minutos asi que puedes probar la funcionalidad de descarga</translation>
     </message>
     <message>
-        <location filename="src/downloadmanager.cpp" line="85"/>
         <source>Continue</source>
         <translation>Continuar</translation>
     </message>
     <message>
-        <location filename="src/downloadmanager.cpp" line="86"/>
         <source>Get the full version</source>
         <translation>Obtener la versión completa</translation>
     </message>
     <message>
-        <location filename="src/downloadmanager.cpp" line="157"/>
         <source>%1 downloaded in %2</source>
         <translation>Descargados %1 en %2</translation>
     </message>
     <message>
-        <location filename="src/downloadmanager.cpp" line="160"/>
         <source>Download finished</source>
         <translation>Descarga terminada</translation>
     </message>
     <message numerus="yes">
-        <location filename="src/downloadmanager.cpp" line="165"/>
         <source>%n Download(s)</source>
         <translation type="unfinished"><numerusform></numerusform><numerusform></numerusform></translation>
     </message>
 <context>
     <name>DownloadSettings</name>
     <message>
-        <location filename="src/downloadsettings.cpp" line="36"/>
         <source>Change location...</source>
         <translation>Cambiar ubicación...</translation>
     </message>
     <message>
-        <location filename="src/downloadsettings.cpp" line="69"/>
         <source>Choose the download location</source>
         <translation>Seleccionar donde descargar</translation>
     </message>
     <message>
-        <location filename="src/downloadsettings.cpp" line="81"/>
         <source>Download location changed.</source>
         <translation>Ubicación de descarga cambiada.</translation>
     </message>
     <message>
-        <location filename="src/downloadsettings.cpp" line="83"/>
         <source>Current downloads will still go in the previous location.</source>
         <translation>Las descargas actuales seguiran en la ubicación anterior</translation>
     </message>
     <message>
-        <location filename="src/downloadsettings.cpp" line="94"/>
         <source>Downloading to: %1</source>
         <translation>Descargando en: %1</translation>
     </message>
 <context>
     <name>DownloadView</name>
     <message>
-        <location filename="src/downloadview.cpp" line="38"/>
-        <location filename="src/downloadview.h" line="45"/>
         <source>Downloads</source>
         <translation>Descargas</translation>
     </message>
 </context>
-<context>
-    <name>DownloadWidget</name>
-    <message>
-        <location filename="local/src/updatedialog.cpp" line="60"/>
-        <source>Downloading update...</source>
-        <translation>Descargando actualización...</translation>
-    </message>
-</context>
 <context>
     <name>Extra</name>
     <message>
-        <location filename="local/src/extra.cpp" line="251"/>
         <source>The executable file has been tempered with, maybe by a virus.</source>
-        <translation type="unfinished"/>
+        <translation>El ejecutable ha sido modificado, probablemente sea un virus</translation>
     </message>
     <message>
-        <location filename="local/src/extra.cpp" line="252"/>
         <source>%1 will not run. Try installing again.</source>
-        <translation type="unfinished"/>
+        <translation>%1 no puede ejecutarse. Intenta reinstalándolo</translation>
     </message>
     <message>
-        <location filename="local/src/extra.cpp" line="253"/>
         <source>Quit</source>
-        <translation type="unfinished"/>
+        <translation>Salir</translation>
     </message>
     <message>
-        <location filename="local/src/extra.cpp" line="254"/>
         <source>Reinstall</source>
-        <translation type="unfinished"/>
+        <translation>Reinstalar</translation>
     </message>
 </context>
 <context>
     <name>GlobalShortcuts</name>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="36"/>
         <source>Play</source>
         <translation>Reproducir</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="37"/>
         <source>Pause</source>
         <translation>Pausar</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="38"/>
         <source>Play/Pause</source>
         <translation>Reproducir/Pausar</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="39"/>
         <source>Stop</source>
         <translation>Detener</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="40"/>
         <source>Stop playing after current track</source>
         <translation>Detener reproducción después del track actual</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="41"/>
         <source>Next track</source>
         <translation>Pista siguiente</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="42"/>
         <source>Previous track</source>
         <translation>Pista anterior</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="43"/>
         <source>Increase volume</source>
         <translation>Incrementar volumen</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="44"/>
         <source>Decrease volume</source>
         <translation>Reducir volumen</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="45"/>
         <source>Mute</source>
         <translation>Silenciar</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="46"/>
         <source>Seek forward</source>
         <translation>Buscar hacia adelante</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="47"/>
         <source>Seek backward</source>
         <translation>Buscar hacia atrás</translation>
     </message>
 <context>
     <name>HomeView</name>
     <message>
-        <location filename="src/homeview.cpp" line="58"/>
         <source>Search</source>
         <translation>Búsqueda</translation>
     </message>
     <message>
-        <location filename="src/homeview.cpp" line="60"/>
         <source>Find videos and channels by keyword</source>
         <translation>Buscar vídeos y canales por palabra clave</translation>
     </message>
     <message>
-        <location filename="src/homeview.cpp" line="65"/>
         <source>Browse</source>
         <translation>Navegar</translation>
     </message>
     <message>
-        <location filename="src/homeview.cpp" line="67"/>
         <source>Browse videos by category</source>
         <translation>Navegar vídeos por categoría</translation>
     </message>
     <message>
-        <location filename="src/homeview.cpp" line="71"/>
         <source>Subscriptions</source>
         <translation>Suscripciones</translation>
     </message>
     <message>
-        <location filename="src/homeview.cpp" line="73"/>
         <source>Channel subscriptions</source>
         <translation>Suscripciones a canales</translation>
     </message>
     <message>
-        <location filename="src/homeview.h" line="44"/>
         <source>Make yourself comfortable</source>
         <translation>Siéntete a gusto</translation>
     </message>
 <context>
     <name>LoadingWidget</name>
     <message>
-        <location filename="src/loadingwidget.cpp" line="125"/>
         <source>Error</source>
         <translation>Error</translation>
     </message>
 <context>
     <name>MainWindow</name>
     <message>
-        <location filename="src/mainwindow.cpp" line="291"/>
+        <source>&amp;Window</source>
+        <translation>&amp;Ventana</translation>
+    </message>
+    <message>
+        <source>&amp;Minimize</source>
+        <translation>&amp;Minimizar</translation>
+    </message>
+    <message>
         <source>&amp;Stop</source>
-        <translation>%Detener</translation>
+        <translation>&amp;Detener</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="292"/>
         <source>Stop playback and go back to the search view</source>
         <translation>Detener reproducción e ir haca la vista de búsqueda</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="307"/>
+        <source>P&amp;revious</source>
+        <translation>Ante&amp;rior</translation>
+    </message>
+    <message>
+        <source>Go back to the previous track</source>
+        <translation>Ir al track anterior</translation>
+    </message>
+    <message>
         <source>S&amp;kip</source>
         <translation>S&amp;altar</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="308"/>
         <source>Skip to the next video</source>
         <translation>Saltar al siguiente video</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1134"/>
-        <source>&amp;Pause</source>
-        <translation>&amp;Pausar</translation>
+        <source>&amp;Play</source>
+        <translation>&amp;Reproducir</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1135"/>
-        <source>Pause playback</source>
-        <translation>Pausar reproducción</translation>
+        <source>Resume playback</source>
+        <translation>Reiniciar reproducción</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="321"/>
         <source>&amp;Full Screen</source>
         <translation>&amp;Pantalla Completa</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="322"/>
         <source>Go full screen</source>
         <translation>Ir a Pantalla Completa</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="336"/>
+        <source>&amp;Compact Mode</source>
+        <translation>Modo &amp;compacto</translation>
+    </message>
+    <message>
         <source>Hide the playlist and the toolbar</source>
         <translation>Ocultar la lista de reproducción y la barra de tareas</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="349"/>
+        <source>Open the &amp;YouTube Page</source>
+        <translation>Abrir la página de &amp;YouTube</translation>
+    </message>
+    <message>
         <source>Go to the YouTube video page and pause playback</source>
         <translation>Ir a la página YouTube del vídeo y pausar reproducción</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="356"/>
+        <source>Copy the YouTube &amp;Link</source>
+        <translation>Copiar el víncu&amp;lo YouTube</translation>
+    </message>
+    <message>
         <source>Copy the current video YouTube link to the clipboard</source>
         <translation>Copiar el enlace de YouTube al portapapeles</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="363"/>
+        <source>Copy the Video Stream &amp;URL</source>
+        <translation>Copiar la URL de la difusión de vídeo</translation>
+    </message>
+    <message>
         <source>Copy the current video stream URL to the clipboard</source>
         <translation>Copiar la dirección de la difusión de vídeo al portapapeles</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="370"/>
+        <source>Find Video &amp;Parts</source>
+        <translation>Buscar las &amp;partes del vídeo</translation>
+    </message>
+    <message>
         <source>Find other video parts hopefully in the right order</source>
         <translation>Buscar otras partes del vídeo en el orden correcto</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="376"/>
         <source>&amp;Remove</source>
         <translation>Elimina&amp;r</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="377"/>
         <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="383"/>
         <source>Move &amp;Up</source>
         <translation>Mover &amp;arriba</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="384"/>
         <source>Move up the selected videos in the playlist</source>
         <translation>Mover hacia arriba los vídeos seleccionados en la lista de reproducción</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="390"/>
         <source>Move &amp;Down</source>
         <translation>Mover a&amp;bajo</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="391"/>
         <source>Move down the selected videos in the playlist</source>
         <translation>Mover hacia abajo los vídeos seleccionados en lista de reproducción</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="402"/>
+        <source>&amp;Clear Recent Searches</source>
+        <translation>Limpiar búsquedas re&amp;cientes</translation>
+    </message>
+    <message>
         <source>Clear the search history. Cannot be undone.</source>
         <translation>Limpiar el historial de búsqueda. No puede ser deshecho.</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="407"/>
         <source>&amp;Quit</source>
         <translation>&amp;Salir</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="410"/>
         <source>Bye</source>
         <translation>Adiós</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="414"/>
         <source>&amp;Website</source>
         <translation>Sitio &amp;Web</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="416"/>
         <source>%1 on the Web</source>
         <translation>%1 en el Web</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="422"/>
+        <source>Make a &amp;Donation</source>
+        <translation>Hacer una &amp;donación</translation>
+    </message>
+    <message>
         <source>Please support the continued development of %1</source>
         <translation>Por favor apoya el desarrollo continuo de %1</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="427"/>
         <source>&amp;About</source>
         <translation>&amp;Acerca de</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="429"/>
         <source>Info about %1</source>
         <translation>Información acerca de %1</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="437"/>
         <source>Search</source>
         <translation>Búsqueda</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="456"/>
         <source>Mute volume</source>
         <translation>Silenciar volumen</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="490"/>
-        <location filename="src/mainwindow.cpp" line="1609"/>
+        <source>&amp;Manually Start Playing</source>
+        <translation>Iniciar reproducción &amp;manualmente</translation>
+    </message>
+    <message>
+        <source>Manually start playing videos</source>
+        <translation>Reproduce vídeos de manera manual</translation>
+    </message>
+    <message>
         <source>&amp;Downloads</source>
         <translation>&amp;Descargas</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="491"/>
         <source>Show details about video downloads</source>
         <translation>Mostrar detalles acerca de las descargas de vídeos</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="499"/>
         <source>&amp;Download</source>
         <translation>&amp;Descarga</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="500"/>
         <source>Download the current video</source>
         <translation>Descargar el vídeo actual</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="510"/>
         <source>Take &amp;Snapshot</source>
         <translation>Capturar &amp;fotogramas</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="517"/>
         <source>&amp;Subscribe to Channel</source>
         <translation>&amp;Suscribir al Canal</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="525"/>
         <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="545"/>
         <source>&amp;Email</source>
         <translation>Correo &amp;Electrónico</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="546"/>
         <source>Email</source>
         <translation>Correo electrónico</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="551"/>
         <source>&amp;Close</source>
         <translation>&amp;Cerrar</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="561"/>
         <source>&amp;Float on Top</source>
         <translation>%Mantener arriba</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="566"/>
         <source>&amp;Adjust Window Size</source>
-        <translation type="unfinished"/>
+        <translation>&amp;Ajustar tamaño de ventana</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="571"/>
         <source>&amp;Stop After This Video</source>
         <translation>Detener de&amp;spués de este vídeo</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="578"/>
         <source>&amp;Report an Issue...</source>
         <translation>&amp;Reportar un problema</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="582"/>
         <source>&amp;Refine Search...</source>
         <translation>&amp;Refinar búsqueda</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="594"/>
         <source>More...</source>
         <translation>Más...</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="597"/>
         <source>&amp;Related Videos</source>
         <translation>Vídeos &amp;Relacionados</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="599"/>
         <source>Watch videos related to the current one</source>
         <translation>Ver vídeos relacionados con el actual</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="605"/>
         <source>Open in &amp;Browser...</source>
         <translation>Abrir en Navegador...</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="612"/>
-        <source>&amp;Love %1? Rate it!</source>
-        <translation>&amp;Amas %1? Calíficalo!</translation>
+        <source>Restricted Mode</source>
+        <translation>Modo restringido</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="633"/>
-        <source>&amp;Application</source>
-        <translation>%Aplicación</translation>
+        <source>Hide videos that may contain inappropriate content</source>
+        <translation>Ocultar vídeos que pueden tener contenido inapropiado</translation>
+    </message>
+    <message>
+        <source>&amp;Love %1? Rate it!</source>
+        <translation>&amp;Amas %1? Calíficalo!</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="618"/>
         <source>Buy %1...</source>
         <translation>Comprar %1...</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="647"/>
+        <source>&amp;Application</source>
+        <translation>&amp;Aplicación</translation>
+    </message>
+    <message>
         <source>&amp;Playback</source>
         <translation>Re&amp;producir</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="661"/>
         <source>&amp;Playlist</source>
         <translation>Lista de re&amp;producción</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="670"/>
         <source>&amp;Video</source>
         <translation>&amp;Vídeo</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="686"/>
-        <source>&amp;View</source>
-        <translation>&amp;Ver</translation>
+        <source>&amp;Share</source>
+        <translation>&amp;Compartir</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="695"/>
-        <source>&amp;Share</source>
-        <translation>%Compartir</translation>
+        <source>&amp;View</source>
+        <translation>&amp;Ver</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="709"/>
         <source>&amp;Help</source>
         <translation>&amp;Ayuda</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="751"/>
         <source>Press %1 to raise the volume, %2 to lower it</source>
         <translation>Presiona %1 para aumentar el volumen, %2 para reducirlo.</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1021"/>
-        <location filename="src/mainwindow.cpp" line="1027"/>
+        <source>Choose your content location</source>
+        <translation>Introduce la ubicación de tu contenido</translation>
+    </message>
+    <message>
         <source>Opening %1</source>
         <translation>Abriendo %1</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1080"/>
         <source>Do you want to exit %1 with a download in progress?</source>
         <translation>Deseas salir de %1 con una descarga en progreso?</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1081"/>
         <source>If you close %1 now, this download will be cancelled.</source>
         <translation>SI cierras %1 ahora, esta descarga será cancelada.</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1086"/>
         <source>Close and cancel download</source>
         <translation>Cerrar y cancelar descarga</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1087"/>
         <source>Wait for download to finish</source>
         <translation>Esperarando a que termine la descarga</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1158"/>
-        <source>&amp;Loading...</source>
-        <translation type="unfinished"/>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="1264"/>
-        <source>Leave &amp;Full Screen</source>
-        <translation>Mantener en pantalla completa</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="1718"/>
-        <source>%1 version %2 is now available.</source>
-        <translation>Está disponible %1 versión %2.</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="1722"/>
-        <source>Remind me later</source>
-        <translation>Recordarme después</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="1723"/>
-        <source>Update</source>
-        <translation>Actualizar</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="1127"/>
         <source>Error: %1</source>
         <translation>Error: %1</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="300"/>
-        <source>P&amp;revious</source>
-        <translation>Ante&amp;rior</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="301"/>
-        <source>Go back to the previous track</source>
-        <translation>Ir al track anterior</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="335"/>
-        <source>&amp;Compact Mode</source>
-        <translation>Modo &amp;compacto</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="348"/>
-        <source>Open the &amp;YouTube Page</source>
-        <translation>Abrir la página de &amp;YouTube</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="355"/>
-        <source>Copy the YouTube &amp;Link</source>
-        <translation>Copiar el víncu&amp;lo YouTube</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="362"/>
-        <source>Copy the Video Stream &amp;URL</source>
-        <translation>Copiar la URL de la difusión de vídeo</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="369"/>
-        <source>Find Video &amp;Parts</source>
-        <translation>Buscar las &amp;partes del vídeo</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="397"/>
-        <source>&amp;Clear Recent Searches</source>
-        <translation>Limpiar búsquedas re&amp;cientes</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="421"/>
-        <source>Make a &amp;Donation</source>
-        <translation>Hacer una &amp;donación</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="483"/>
-        <source>&amp;Manually Start Playing</source>
-        <translation>Iniciar reproducción &amp;manualmente</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="484"/>
-        <source>Manually start playing videos</source>
-        <translation>Reproduce vídeos de manera manual</translation>
+        <source>&amp;Pause</source>
+        <translation>&amp;Pausar</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="847"/>
-        <source>Choose your content location</source>
-        <translation>Introduce la ubicación de tu contenido</translation>
+        <source>Pause playback</source>
+        <translation>Pausar reproducción</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="314"/>
-        <location filename="src/mainwindow.cpp" line="1142"/>
-        <location filename="src/mainwindow.cpp" line="1150"/>
-        <source>&amp;Play</source>
-        <translation>%Reproducir</translation>
+        <source>&amp;Loading...</source>
+        <translation>&amp;Cargando...</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="315"/>
-        <location filename="src/mainwindow.cpp" line="1143"/>
-        <location filename="src/mainwindow.cpp" line="1151"/>
-        <source>Resume playback</source>
-        <translation>Reiniciar reproducción</translation>
+        <source>Leave &amp;Full Screen</source>
+        <translation>Mantener en pantalla completa</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1437"/>
         <source>Remaining time: %1</source>
         <translation>Tiempo restante: %1</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1528"/>
         <source>Volume at %1%</source>
         <translation>Volumen a %1%</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1534"/>
         <source>Volume is muted</source>
         <translation>Audio silenciado</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1537"/>
         <source>Volume is unmuted</source>
         <translation>Audio sin silenciar</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1548"/>
         <source>Maximum video definition set to %1</source>
         <translation>Resolución de vídeo máxima definida en %1</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1595"/>
         <source>Your privacy is now safe</source>
         <translation>Tu privacidad está segura ahora</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1610"/>
         <source>Downloads complete</source>
         <translation>Descarga completa</translation>
     </message>
+    <message>
+        <source>%1 version %2 is now available.</source>
+        <translation>Está disponible %1 versión %2.</translation>
+    </message>
+    <message>
+        <source>Remind me later</source>
+        <translation>Recordarme después</translation>
+    </message>
+    <message>
+        <source>Update</source>
+        <translation>Actualizar</translation>
+    </message>
 </context>
 <context>
     <name>MediaView</name>
     <message>
-        <location filename="src/mediaview.cpp" line="702"/>
         <source>You can now paste the YouTube link into another application</source>
         <translation>Ahora puedes pegar el vínculo YouTube en otra aplicación</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="710"/>
         <source>You can now paste the video stream URL into another application</source>
         <translation>Puedes pegar el URL de la difusión de vídeo en otra aplicación</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="711"/>
         <source>The link will be valid only for a limited time.</source>
         <translation>El vínculo será válido sólo por un tiempo limitado</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="800"/>
         <source>This is just the demo version of %1.</source>
         <translation>Esta es la versión demostrativa de %1</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="801"/>
         <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 funciona para ti.</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="833"/>
+        <source>Get the full version</source>
+        <translation>Obtener la versión completa</translation>
+    </message>
+    <message>
         <source>Continue</source>
         <translation>Continuar</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="988"/>
+        <source>Downloading %1</source>
+        <translation>Descargando %1</translation>
+    </message>
+    <message>
         <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="1001"/>
         <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="1003"/>
         <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="1096"/>
         <source>Sent from %1</source>
         <translation>Enviado desde %1</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="1128"/>
         <source>Unsubscribe from %1</source>
         <translation>Desuscribir de %1</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="1132"/>
         <source>Subscribe to %1</source>
         <translation>Suscribir a %1</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="1166"/>
         <source>Unsubscribed from %1</source>
-        <translation type="unfinished"/>
+        <translation>Desuscribir de %1</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="1169"/>
         <source>Subscribed to %1</source>
-        <translation type="unfinished"/>
-    </message>
-    <message>
-        <location filename="src/mediaview.cpp" line="808"/>
-        <source>Get the full version</source>
-        <translation>Obtener la versión completa</translation>
-    </message>
-    <message>
-        <location filename="src/mediaview.cpp" line="847"/>
-        <source>Downloading %1</source>
-        <translation>Descargando %1</translation>
+        <translation>Suscrito a %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>Una versión nueva 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>%1 %2 está disponible. Tú tienes %3</translation>
     </message>
     <message>
-        <location filename="local/src/updatedialog.cpp" line="33"/>
         <source>Would you like to download it now?</source>
         <translation>Te gustaría descargarla ahora?</translation>
     </message>
     <message>
-        <location filename="local/src/updatedialog.cpp" line="39"/>
         <source>Skip This Version</source>
         <translation>Saltar esta versión</translation>
     </message>
     <message>
-        <location filename="local/src/updatedialog.cpp" line="43"/>
         <source>Remind Me Later</source>
         <translation>Recordarme despúes</translation>
     </message>
     <message>
-        <location filename="local/src/updatedialog.cpp" line="47"/>
         <source>Install Update</source>
         <translation>Instalar actualización</translation>
     </message>
 <context>
     <name>PasteLineEdit</name>
     <message>
-        <location filename="local/src/pastelineedit.cpp" line="6"/>
         <source>Paste</source>
         <translation>Pegar</translation>
     </message>
 <context>
     <name>PlaylistItemDelegate</name>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="209"/>
         <source>%1 views</source>
         <translation>%1 vistas</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="309"/>
         <source>%1 of %2 (%3) — %4</source>
         <translation>%1 de %2 (%3) - %4</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="316"/>
         <source>Preparing</source>
         <translation>Preparando</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="318"/>
         <source>Failed</source>
         <translation>Error</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="320"/>
         <source>Completed</source>
         <translation>Completado</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="322"/>
         <source>Stopped</source>
         <translation>Detenido</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="358"/>
         <source>Stop downloading</source>
         <translation>Detener descarga</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="368"/>
         <source>Show in %1</source>
         <translation>Mostrar en %1</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="370"/>
         <source>Open parent folder</source>
         <translation>Abrir carpeta principal</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="379"/>
         <source>Restart downloading</source>
         <translation>Reiniciar descarga</translation>
     </message>
 <context>
     <name>PlaylistModel</name>
     <message>
-        <location filename="src/playlistmodel.cpp" line="70"/>
         <source>Searching...</source>
         <translation>Buscando...</translation>
     </message>
     <message>
-        <location filename="src/playlistmodel.cpp" line="71"/>
         <source>Show %1 More</source>
         <translation>Mostrar %1 más</translation>
     </message>
     <message>
-        <location filename="src/playlistmodel.cpp" line="72"/>
         <source>No videos</source>
         <translation>Sin vídeos</translation>
     </message>
     <message>
-        <location filename="src/playlistmodel.cpp" line="73"/>
         <source>No more videos</source>
         <translation>No hay mas vídeos</translation>
     </message>
 <context>
     <name>RefineSearchWidget</name>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="49"/>
         <source>Sort by</source>
         <translation>Ordenar por</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="53"/>
         <source>Relevance</source>
         <translation>Importancia</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="54"/>
-        <location filename="src/refinesearchwidget.cpp" line="69"/>
         <source>Date</source>
         <translation>Fecha</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="55"/>
         <source>View Count</source>
         <translation>Conteo de visitas</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="56"/>
         <source>Rating</source>
         <translation>Calificación</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="73"/>
         <source>Anytime</source>
         <translation>Cualquier tiempo</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="74"/>
         <source>Today</source>
         <translation>Hoy</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="75"/>
         <source>7 Days</source>
         <translation>Hace 7 Dias</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="76"/>
         <source>30 Days</source>
         <translation>Hace 30 Días</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="89"/>
         <source>Duration</source>
         <translation>Duración</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="93"/>
-        <location filename="src/refinesearchwidget.cpp" line="119"/>
         <source>All</source>
         <translation>Todo</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="94"/>
         <source>Short</source>
         <translation>Pequeño</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="95"/>
         <source>Medium</source>
         <translation>Medio</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="96"/>
         <source>Long</source>
         <translation>Largo</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="99"/>
         <source>Less than 4 minutes</source>
         <translation>Menos de 4 minutos</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="100"/>
         <source>Between 4 and 20 minutes</source>
         <translation>entre 4 y 20 minutos</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="101"/>
         <source>Longer than 20 minutes</source>
         <translation>Mayor a 20 minutos</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="115"/>
         <source>Quality</source>
         <translation>Calidad</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="120"/>
         <source>High Definition</source>
         <translation>Alta definición</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="123"/>
         <source>720p or higher</source>
         <translation>720p o mayor</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="136"/>
         <source>Done</source>
         <translation>Hecho</translation>
     </message>
 <context>
     <name>RegionsView</name>
     <message>
-        <location filename="src/regionsview.cpp" line="39"/>
         <source>Done</source>
         <translation>Hecho</translation>
     </message>
 <context>
     <name>SearchLineEdit</name>
     <message>
-        <location filename="src/searchlineedit.cpp" line="55"/>
         <source>Search</source>
         <translation>Búsqueda</translation>
     </message>
 <context>
     <name>SearchView</name>
     <message>
-        <location filename="src/searchview.cpp" line="83"/>
         <source>Welcome to &lt;a href=&apos;%1&apos;&gt;%2&lt;/a&gt;,</source>
         <translation>Bienvenido a &lt;a href=&apos;%1&apos;&gt;%2&lt;/a&gt;,</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="200"/>
-        <source>Get the full version</source>
-        <translation>Obtener la versión completa</translation>
-    </message>
-    <message>
-        <location filename="src/searchview.cpp" line="110"/>
         <source>Enter</source>
         <extracomment>&quot;Enter&quot;, as in &quot;type&quot;. The whole phrase says: &quot;Enter a keyword to start watching videos&quot;</extracomment>
         <translation>Introduzca</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="117"/>
         <source>a keyword</source>
         <translation>una palabra clave</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="118"/>
         <source>a channel</source>
         <translation>un canal</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="125"/>
         <source>to start watching videos.</source>
         <translation>para ver vídeos</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="156"/>
         <source>Watch</source>
         <translation>Ver</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="174"/>
         <source>Recent keywords</source>
         <translation>Palabras claves recientes</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="186"/>
         <source>Recent channels</source>
         <translation>Canales Recientes</translation>
     </message>
+    <message>
+        <source>Get the full version</source>
+        <translation>Obtener la versión completa</translation>
+    </message>
 </context>
 <context>
     <name>SidebarHeader</name>
     <message>
-        <location filename="src/sidebarheader.cpp" line="38"/>
-        <location filename="src/sidebarheader.cpp" line="45"/>
         <source>&amp;Back</source>
         <translation>Retroceder</translation>
     </message>
     <message>
-        <location filename="src/sidebarheader.cpp" line="76"/>
         <source>Forward to %1</source>
         <translation>Avanzar a %1 </translation>
     </message>
     <message>
-        <location filename="src/sidebarheader.cpp" line="89"/>
         <source>Back to %1</source>
         <translation>Retroceder a %1</translation>
     </message>
 <context>
     <name>SidebarWidget</name>
     <message>
-        <location filename="src/sidebarwidget.cpp" line="68"/>
         <source>Refine Search</source>
         <translation>Redefine búsqueda</translation>
     </message>
     <message>
-        <location filename="src/sidebarwidget.cpp" line="167"/>
         <source>Did you mean: %1</source>
         <translation>Querías decir: %1</translation>
     </message>
 <context>
     <name>SnapshotSettings</name>
     <message>
-        <location filename="src/snapshotsettings.cpp" line="47"/>
         <source>Change location...</source>
         <translation>Cambiar ubicación...</translation>
     </message>
     <message>
-        <location filename="src/snapshotsettings.cpp" line="64"/>
         <source>Snapshot saved to %1</source>
         <translation>Fotograma capturado en %1</translation>
     </message>
     <message>
-        <location filename="src/snapshotsettings.cpp" line="117"/>
         <source>Snapshots location changed.</source>
         <translation>Ubicación de capturas cambiada</translation>
     </message>
 <context>
     <name>StandardFeedsView</name>
     <message>
-        <location filename="src/standardfeedsview.cpp" line="107"/>
         <source>Most Popular</source>
         <translation>Más populares</translation>
     </message>
 </context>
+<context>
+    <name>UpdateDialog</name>
+    <message>
+        <source>Downloading update...</source>
+        <translation>Descargando actualización...</translation>
+    </message>
+    <message>
+        <source>Downloading %1...</source>
+        <translation>Descargando %1...</translation>
+    </message>
+</context>
 <context>
     <name>Video</name>
     <message>
-        <location filename="src/video.cpp" line="287"/>
         <source>Cannot get video stream for %1</source>
         <translation>No se puede obtener el vídeo para %1</translation>
     </message>
-    <message>
-        <location filename="src/video.cpp" line="292"/>
-        <source>Network error: %1 for %2</source>
-        <translation>Error de red: %1 para %2</translation>
-    </message>
 </context>
 <context>
     <name>YTRegions</name>
     <message>
-        <location filename="src/ytregions.cpp" line="28"/>
         <source>Algeria</source>
         <translation>Algeria</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="29"/>
         <source>Argentina</source>
         <translation>Argentina</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="30"/>
         <source>Australia</source>
         <translation>Australia</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="31"/>
         <source>Belgium</source>
         <translation>Bélgica</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="32"/>
         <source>Brazil</source>
         <translation>Brasil</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="33"/>
         <source>Canada</source>
         <translation>Cánada</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="34"/>
         <source>Chile</source>
         <translation>Chile</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="35"/>
         <source>Colombia</source>
         <translation>Colombia</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="36"/>
         <source>Czech Republic</source>
         <translation>República checa</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="37"/>
         <source>Egypt</source>
         <translation>Egipto</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="38"/>
         <source>France</source>
         <translation>Francia</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="39"/>
         <source>Germany</source>
         <translation>Alemania</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="40"/>
         <source>Ghana</source>
         <translation>Ghana</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="41"/>
         <source>Greece</source>
         <translation>Grecia</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="42"/>
         <source>Hong Kong</source>
         <translation>Hong Kong</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="43"/>
         <source>Hungary</source>
         <translation>Hungría</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="44"/>
         <source>India</source>
         <translation>India</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="45"/>
         <source>Indonesia</source>
         <translation>Indonesia</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="46"/>
         <source>Ireland</source>
         <translation>Irlanda</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="47"/>
         <source>Israel</source>
         <translation>Israel</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="48"/>
         <source>Italy</source>
         <translation>Italia</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="49"/>
         <source>Japan</source>
         <translation>Japón</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="50"/>
         <source>Jordan</source>
         <translation>Jordania</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="51"/>
         <source>Kenya</source>
         <translation>Kenia</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="52"/>
         <source>Malaysia</source>
         <translation>Malasia</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="53"/>
         <source>Mexico</source>
         <translation>México</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="54"/>
         <source>Morocco</source>
         <translation>Marruecos</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="55"/>
         <source>Netherlands</source>
         <translation>Países bajos</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="56"/>
         <source>New Zealand</source>
         <translation>Nueva Zelanda</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="57"/>
         <source>Nigeria</source>
         <translation>Nigeria</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="58"/>
         <source>Peru</source>
         <translation>Perú</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="59"/>
         <source>Philippines</source>
         <translation>Filipinas</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="60"/>
         <source>Poland</source>
         <translation>Polonia</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="61"/>
         <source>Russia</source>
         <translation>Rusia</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="62"/>
         <source>Saudi Arabia</source>
         <translation>Arabia Saudita</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="63"/>
         <source>Singapore</source>
         <translation>Singapur</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="64"/>
         <source>South Africa</source>
         <translation>Sudáfrica</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="65"/>
         <source>South Korea</source>
         <translation>Cora del Sur</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="66"/>
         <source>Spain</source>
         <translation>España</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="67"/>
         <source>Sweden</source>
         <translation>Suecia</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="68"/>
         <source>Taiwan</source>
         <translation>Taiwan</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="69"/>
         <source>Tunisia</source>
         <translation>Túnez</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="70"/>
         <source>Turkey</source>
         <translation>Turkía</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="71"/>
         <source>Uganda</source>
         <translation>ganda</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="72"/>
         <source>United Arab Emirates</source>
         <translation>Emiratos Árabes Unidos</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="73"/>
         <source>United Kingdom</source>
         <translation>Reino Unido</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="74"/>
         <source>Yemen</source>
         <translation>Yemen</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="148"/>
         <source>Worldwide</source>
         <translation>Mundial</translation>
     </message>
index 4f13e860e87a22501ca74f18819a5cb9372cfb58..2a331538f2d218e875e90661fe42e7f1b14d20b5 100644 (file)
@@ -2,67 +2,42 @@
 <context>
     <name>AboutView</name>
     <message>
-        <location filename="src/aboutview.cpp" line="58"/>
         <source>There&apos;s life outside the browser!</source>
         <translation>Selaimen ulkopuolellakin on elämää!</translation>
     </message>
     <message>
-        <location filename="src/aboutview.cpp" line="59"/>
         <source>Version %1</source>
         <translation>Versio: %1</translation>
     </message>
     <message>
-        <location filename="src/aboutview.cpp" line="64"/>
         <source>Licensed to: %1</source>
         <translation>Lisensoitu henkilölle: %1</translation>
     </message>
     <message>
-        <location filename="src/aboutview.cpp" line="68"/>
         <source>%1 is Free Software but its development takes precious time.</source>
         <translation>%1 on ilmainen ohjelma, mutta sen kehittäminen vie kallista aikaa.</translation>
     </message>
     <message>
-        <location filename="src/aboutview.cpp" line="69"/>
         <source>Please &lt;a href=&apos;%1&apos;&gt;donate&lt;/a&gt; to support the continued development of %2.</source>
         <translation>Voit tukea %2-kehitystä jatkumista tekemällä &lt;a href=&apos;%1&apos;&gt;lahjoituksen&lt;/a&gt;.</translation>
     </message>
     <message>
-        <location filename="src/aboutview.cpp" line="73"/>
-        <source>You may want to try my other apps as well:</source>
-        <translation>Sinua voi kiinnostaa myös nämä sovellukseni:</translation>
-    </message>
-    <message>
-        <location filename="src/aboutview.cpp" line="76"/>
-        <source>%1, a YouTube music player</source>
-        <translation>%1, YouTube-musiikkisoitin</translation>
-    </message>
-    <message>
-        <location filename="src/aboutview.cpp" line="80"/>
-        <source>%1, a music player</source>
-        <translation>%1, musiikkisoitin</translation>
-    </message>
-    <message>
-        <location filename="src/aboutview.cpp" line="86"/>
         <source>Translate %1 to your native language using %2</source>
         <translation>Käännä %1 äidinkielellesi käyttämällä %2</translation>
     </message>
     <message>
-        <location filename="src/aboutview.cpp" line="91"/>
         <source>Icon designed by %1.</source>
         <translation>Kuvakkeen suunnitteli %1.</translation>
     </message>
     <message>
-        <location filename="src/aboutview.cpp" line="95"/>
         <source>Released under the &lt;a href=&apos;%1&apos;&gt;GNU General Public License&lt;/a&gt;</source>
         <translation>Julkaistu &lt;a href=&apos;%1&apos;&gt;GNU General Public License&lt;/a&gt; -lisenssillä</translation>
     </message>
     <message>
-        <location filename="src/aboutview.cpp" line="110"/>
         <source>&amp;Close</source>
         <translation>&amp;Sulje</translation>
     </message>
     <message>
-        <location filename="src/aboutview.h" line="40"/>
         <source>About</source>
         <translation>Tietoja</translation>
     </message>
 <context>
     <name>ActivationDialog</name>
     <message>
-        <location filename="local/src/activationdialog.cpp" line="17"/>
         <source>Enter your License Details</source>
         <translation>Syötä tähän lisenssitietosi</translation>
     </message>
     <message>
-        <location filename="local/src/activationdialog.cpp" line="29"/>
         <source>&amp;Email:</source>
         <translation>&amp;Sähköposti:</translation>
     </message>
     <message>
-        <location filename="local/src/activationdialog.cpp" line="35"/>
         <source>&amp;Code:</source>
         <translation>&amp;Koodi:</translation>
     </message>
 <context>
     <name>ActivationView</name>
     <message>
-        <location filename="local/src/activationview.cpp" line="47"/>
         <source>Please license %1</source>
         <translation>Lisensioi %1.</translation>
     </message>
     <message>
-        <location filename="local/src/activationview.cpp" line="51"/>
         <source>This demo has expired.</source>
         <translation>Tämä demon kokeiluaika on päättynyt.</translation>
     </message>
     <message>
-        <location filename="local/src/activationview.cpp" line="53"/>
         <source>The full version allows you to watch videos without interruptions.</source>
-        <oldsource>The full version allows you to download videos longer than %1 minutes and to watch videos without interruptions.</oldsource>
         <translation>Täysversio mahdollistaa videoiden katselun ilman keskeytyksiä.</translation>
     </message>
     <message>
-        <location filename="local/src/activationview.cpp" line="55"/>
         <source>Without a license, the application will expire in %1 days.</source>
         <translation>Ilman lisenssiä tämä sovellus vanhenee %1 päivässä.</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>Ostamalla täyden version tuet kovaa työtäni sovelluksen %1 parissa.</translation>
     </message>
     <message>
-        <location filename="local/src/activationview.cpp" line="70"/>
         <source>Use Demo</source>
         <translation>Käytä demoa</translation>
     </message>
     <message>
-        <location filename="local/src/activationview.cpp" line="77"/>
         <source>Enter License</source>
         <translation>Syötä lisenssi</translation>
     </message>
     <message>
-        <location filename="local/src/activationview.cpp" line="85"/>
         <source>Buy License</source>
         <translation>Osta lisenssi</translation>
     </message>
 </context>
+<context>
+    <name>AppWidget</name>
+    <message>
+        <source>Download</source>
+        <translation>Lataa</translation>
+    </message>
+</context>
 <context>
     <name>ChannelAggregator</name>
     <message>
-        <location filename="src/channelaggregator.cpp" line="183"/>
         <source>By %1</source>
         <translation>Tekijältä %1</translation>
     </message>
     <message numerus="yes">
-        <location filename="src/channelaggregator.cpp" line="185"/>
         <source>You have %n new video(s)</source>
-        <translation><numerusform>%n uusi video</numerusform><numerusform>%n uutta videota</numerusform></translation>
+        <translation type="unfinished"><numerusform></numerusform><numerusform></numerusform></translation>
     </message>
 </context>
 <context>
     <name>ChannelItemDelegate</name>
     <message>
-        <location filename="src/channelitemdelegate.cpp" line="67"/>
         <source>All Videos</source>
         <translation>Kaikki videot</translation>
     </message>
     <message>
-        <location filename="src/channelitemdelegate.cpp" line="85"/>
         <source>Unwatched Videos</source>
         <translation>Katsomattomat videot</translation>
     </message>
 <context>
     <name>ChannelView</name>
     <message>
-        <location filename="src/channelview.cpp" line="151"/>
-        <source>Mark all as watched</source>
-        <translation>Merkitse kaikki katsotuiksi</translation>
-    </message>
-    <message>
-        <location filename="src/channelview.cpp" line="159"/>
-        <source>Show Updated</source>
-        <translation>Näytä päivitetyt</translation>
-    </message>
-    <message>
-        <location filename="src/channelview.cpp" line="103"/>
         <source>Name</source>
         <translation>Nimi</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="110"/>
         <source>Last Updated</source>
         <translation>Viimeksi päivitetyt</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="117"/>
         <source>Last Added</source>
         <translation>Viimeksi lisätyt</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="124"/>
         <source>Last Watched</source>
         <translation>Viimeksi katsotut</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="131"/>
         <source>Most Watched</source>
         <translation>Katsotuimmat</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="139"/>
         <source>Sort by</source>
         <translation>Järjestysperuste</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="222"/>
+        <source>Mark all as watched</source>
+        <translation>Merkitse kaikki katsotuiksi</translation>
+    </message>
+    <message>
+        <source>Show Updated</source>
+        <translation>Näytä päivitetyt</translation>
+    </message>
+    <message>
         <source>All Videos</source>
         <translation>Kaikki videot</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="226"/>
         <source>Unwatched Videos</source>
         <translation>Katsomattomat videot</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="244"/>
         <source>Mark as Watched</source>
         <translation>Merkitse katsotuksi</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="257"/>
         <source>Unsubscribe</source>
         <translation>Lopeta tilaus</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="270"/>
         <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="272"/>
         <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>
     <name>ClearButton</name>
     <message>
-        <location filename="src/exlineedit.cpp" line="6"/>
         <source>Clear</source>
         <translation>Tyhjennä</translation>
     </message>
 <context>
     <name>DataUtils</name>
     <message>
-        <location filename="src/datautils.cpp" line="88"/>
         <source>Just now</source>
         <translation>Juuri nyt</translation>
     </message>
     <message numerus="yes">
-        <location filename="src/datautils.cpp" line="90"/>
-        <source>%n minute(s) ago</source>
-        <translation><numerusform>%n minuutti sitten</numerusform><numerusform>%n minuuttia sitten</numerusform></translation>
-    </message>
-    <message numerus="yes">
-        <location filename="src/datautils.cpp" line="92"/>
         <source>%n hour(s) ago</source>
-        <translation><numerusform>%n tunti sitten</numerusform><numerusform>%n tuntia sitten</numerusform></translation>
+        <translation type="unfinished"><numerusform></numerusform><numerusform></numerusform></translation>
     </message>
     <message numerus="yes">
-        <location filename="src/datautils.cpp" line="94"/>
         <source>%n day(s) ago</source>
-        <translation><numerusform>%n päivä sitten</numerusform><numerusform>%n päivää sitten</numerusform></translation>
+        <translation type="unfinished"><numerusform></numerusform><numerusform></numerusform></translation>
     </message>
     <message numerus="yes">
-        <location filename="src/datautils.cpp" line="96"/>
         <source>%n weeks(s) ago</source>
-        <translation><numerusform>%n viikko sitten</numerusform><numerusform>%n viikkoa sitten</numerusform></translation>
+        <translation type="unfinished"><numerusform></numerusform><numerusform></numerusform></translation>
     </message>
     <message numerus="yes">
-        <location filename="src/datautils.cpp" line="98"/>
         <source>%n month(s) ago</source>
-        <translation><numerusform>%n kuukausi sitten</numerusform><numerusform>%n kuukautta sitten</numerusform></translation>
+        <translation type="unfinished"><numerusform></numerusform><numerusform></numerusform></translation>
     </message>
 </context>
 <context>
     <name>DownloadItem</name>
     <message>
-        <location filename="src/downloaditem.cpp" line="406"/>
         <source>bytes</source>
         <translation>tavua</translation>
     </message>
     <message>
-        <location filename="src/downloaditem.cpp" line="409"/>
         <source>KB</source>
         <translation>Kt</translation>
     </message>
     <message>
-        <location filename="src/downloaditem.cpp" line="412"/>
         <source>MB</source>
         <translation>Mt</translation>
     </message>
     <message>
-        <location filename="src/downloaditem.cpp" line="421"/>
         <source>bytes/sec</source>
         <translation>tavua/sekunnissa</translation>
     </message>
     <message>
-        <location filename="src/downloaditem.cpp" line="424"/>
         <source>KB/sec</source>
         <translation>Kt/s</translation>
     </message>
     <message>
-        <location filename="src/downloaditem.cpp" line="427"/>
         <source>MB/sec</source>
         <translation>Mt/s</translation>
     </message>
     <message>
-        <location filename="src/downloaditem.cpp" line="433"/>
         <source>seconds</source>
         <translation>sekunttia</translation>
     </message>
     <message>
-        <location filename="src/downloaditem.cpp" line="436"/>
         <source>minutes</source>
         <translation>minuuttia</translation>
     </message>
     <message>
-        <location filename="src/downloaditem.cpp" line="439"/>
         <source>%4 %5 remaining</source>
         <translation>%4 %5 jäljellä</translation>
     </message>
 <context>
     <name>DownloadManager</name>
     <message>
-        <location filename="src/downloadmanager.cpp" line="77"/>
         <source>This is just the demo version of %1.</source>
         <translation>Tämä on vain %1-kokeiluversio.</translation>
     </message>
     <message>
-        <location filename="src/downloadmanager.cpp" line="79"/>
         <source>It can only download videos shorter than %1 minutes so you can test the download functionality.</source>
         <translation>Voit ladata vain videoita jotka ovat lyhyempiä kuin %1 minuuttia, jotta voit testata latausominaisuutta.</translation>
     </message>
     <message>
-        <location filename="src/downloadmanager.cpp" line="85"/>
         <source>Continue</source>
         <translation>Jatka</translation>
     </message>
     <message>
-        <location filename="src/downloadmanager.cpp" line="86"/>
         <source>Get the full version</source>
         <translation>Hanki täysi versio</translation>
     </message>
     <message>
-        <location filename="src/downloadmanager.cpp" line="157"/>
         <source>%1 downloaded in %2</source>
         <translation>%1 ladattu ajassa %2</translation>
     </message>
     <message>
-        <location filename="src/downloadmanager.cpp" line="160"/>
         <source>Download finished</source>
         <translation>Lataus valmistui</translation>
     </message>
     <message numerus="yes">
-        <location filename="src/downloadmanager.cpp" line="165"/>
         <source>%n Download(s)</source>
-        <translation><numerusform>%n lataus</numerusform><numerusform>%n latausta</numerusform></translation>
+        <translation type="unfinished"><numerusform></numerusform><numerusform></numerusform></translation>
     </message>
 </context>
 <context>
     <name>DownloadSettings</name>
     <message>
-        <location filename="src/downloadsettings.cpp" line="36"/>
         <source>Change location...</source>
         <translation>Vaihda sijaintia...</translation>
     </message>
     <message>
-        <location filename="src/downloadsettings.cpp" line="69"/>
         <source>Choose the download location</source>
         <translation>Valitse latausten sijainti</translation>
     </message>
     <message>
-        <location filename="src/downloadsettings.cpp" line="81"/>
         <source>Download location changed.</source>
         <translation>Lataus sijaintia on muutettu.</translation>
     </message>
     <message>
-        <location filename="src/downloadsettings.cpp" line="83"/>
         <source>Current downloads will still go in the previous location.</source>
         <translation>Nykyiset lataukset menevät vanhaan sijaintiin.</translation>
     </message>
     <message>
-        <location filename="src/downloadsettings.cpp" line="94"/>
         <source>Downloading to: %1</source>
         <translation>Ladataan kansioon: %1</translation>
     </message>
 <context>
     <name>DownloadView</name>
     <message>
-        <location filename="src/downloadview.cpp" line="38"/>
-        <location filename="src/downloadview.h" line="45"/>
         <source>Downloads</source>
         <translation>Lataukset</translation>
     </message>
 </context>
-<context>
-    <name>DownloadWidget</name>
-    <message>
-        <location filename="local/src/updatedialog.cpp" line="60"/>
-        <source>Downloading update...</source>
-        <translation>Ladataan päivitystä...</translation>
-    </message>
-</context>
 <context>
     <name>Extra</name>
     <message>
-        <location filename="local/src/extra.cpp" line="251"/>
         <source>The executable file has been tempered with, maybe by a virus.</source>
         <translation>Suoritustiedostoa on muokattu, kyseessä saattaa olla virus.</translation>
     </message>
     <message>
-        <location filename="local/src/extra.cpp" line="252"/>
         <source>%1 will not run. Try installing again.</source>
         <translation>%1 ei käynnisty. Yritä uudelleenasennusta.</translation>
     </message>
     <message>
-        <location filename="local/src/extra.cpp" line="253"/>
         <source>Quit</source>
         <translation>Lopeta</translation>
     </message>
     <message>
-        <location filename="local/src/extra.cpp" line="254"/>
         <source>Reinstall</source>
         <translation>Asenna uudelleen</translation>
     </message>
 <context>
     <name>GlobalShortcuts</name>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="36"/>
         <source>Play</source>
         <translation>Toista</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="37"/>
         <source>Pause</source>
         <translation>Keskeytä</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="38"/>
         <source>Play/Pause</source>
         <translation>Toista/keskeytä</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="39"/>
         <source>Stop</source>
         <translation>Pysäytä</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="40"/>
         <source>Stop playing after current track</source>
         <translation>Pysäytä toisto nykyisen kappaleen jälkeen</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="41"/>
         <source>Next track</source>
         <translation>Seuraava kappale</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="42"/>
         <source>Previous track</source>
         <translation>Edellinen kappale</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="43"/>
         <source>Increase volume</source>
         <translation>Lisää äänenvoimakkuutta</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="44"/>
         <source>Decrease volume</source>
         <translation>Vähennä äänenvoimakkuutta</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="45"/>
         <source>Mute</source>
         <translation>Vaimenna</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="46"/>
         <source>Seek forward</source>
         <translation>Kelaa eteenpäin</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="47"/>
         <source>Seek backward</source>
         <translation>Kelaa taaksepäin</translation>
     </message>
 <context>
     <name>HomeView</name>
     <message>
-        <location filename="src/homeview.cpp" line="58"/>
         <source>Search</source>
         <translation>Etsi</translation>
     </message>
     <message>
-        <location filename="src/homeview.cpp" line="60"/>
         <source>Find videos and channels by keyword</source>
         <translation>Etsi videoita ja kanavia avainsanalla</translation>
     </message>
     <message>
-        <location filename="src/homeview.cpp" line="65"/>
         <source>Browse</source>
         <translation>Selaa</translation>
     </message>
     <message>
-        <location filename="src/homeview.cpp" line="67"/>
         <source>Browse videos by category</source>
         <translation>Selaa videoita ryhmien mukaan</translation>
     </message>
     <message>
-        <location filename="src/homeview.cpp" line="71"/>
         <source>Subscriptions</source>
         <translation>Tilaukset</translation>
     </message>
     <message>
-        <location filename="src/homeview.cpp" line="73"/>
         <source>Channel subscriptions</source>
         <translation>Kanavatilaukset</translation>
     </message>
     <message>
-        <location filename="src/homeview.h" line="44"/>
         <source>Make yourself comfortable</source>
         <translation>Tee olosi kotoisaksi</translation>
     </message>
 <context>
     <name>LoadingWidget</name>
     <message>
-        <location filename="src/loadingwidget.cpp" line="125"/>
         <source>Error</source>
         <translation>Virhe</translation>
     </message>
 <context>
     <name>MainWindow</name>
     <message>
-        <location filename="src/mainwindow.cpp" line="291"/>
+        <source>&amp;Window</source>
+        <translation>&amp;Ikkuna</translation>
+    </message>
+    <message>
+        <source>&amp;Minimize</source>
+        <translation>&amp;Pienennä</translation>
+    </message>
+    <message>
         <source>&amp;Stop</source>
         <translation>&amp;Pysäytä</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="292"/>
         <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="307"/>
+        <source>P&amp;revious</source>
+        <translation>E&amp;dellinen</translation>
+    </message>
+    <message>
+        <source>Go back to the previous track</source>
+        <translation>Siirry takaisin edelliseen kappaleeseen</translation>
+    </message>
+    <message>
         <source>S&amp;kip</source>
         <translation>&amp;Hyppää yli</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="308"/>
         <source>Skip to the next video</source>
         <translation>Siirry seuraavaan videoon</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1134"/>
-        <source>&amp;Pause</source>
-        <translation>&amp;Keskeytä</translation>
+        <source>&amp;Play</source>
+        <translation>&amp;Toista</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1135"/>
-        <source>Pause playback</source>
-        <translation>Keskeytä toisto</translation>
+        <source>Resume playback</source>
+        <translation>Jatka toistoa</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="321"/>
         <source>&amp;Full Screen</source>
         <translation>&amp;Koko näytön tila</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="322"/>
         <source>Go full screen</source>
         <translation>Siirry koko näytön tilaan</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="336"/>
+        <source>&amp;Compact Mode</source>
+        <translation>Kompakti &amp;tila</translation>
+    </message>
+    <message>
         <source>Hide the playlist and the toolbar</source>
         <translation>Piilota soittolista sekä työkalupalkki</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="349"/>
+        <source>Open the &amp;YouTube Page</source>
+        <translation>Avaa &amp;YouTube-sivu</translation>
+    </message>
+    <message>
         <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="356"/>
+        <source>Copy the YouTube &amp;Link</source>
+        <translation>Kopioi YouTube-&amp;linkki</translation>
+    </message>
+    <message>
         <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="363"/>
+        <source>Copy the Video Stream &amp;URL</source>
+        <translation>Kopioi videovirran &amp;verkko-osoite</translation>
+    </message>
+    <message>
         <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="370"/>
+        <source>Find Video &amp;Parts</source>
+        <translation>Etsi videon &amp;osat</translation>
+    </message>
+    <message>
         <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="376"/>
         <source>&amp;Remove</source>
         <translation>&amp;Poista</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="377"/>
         <source>Remove the selected videos from the playlist</source>
         <translation>Poista valitut videot toistolistalta</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="383"/>
         <source>Move &amp;Up</source>
         <translation>Siirrä &amp;ylös</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="384"/>
         <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="390"/>
         <source>Move &amp;Down</source>
         <translation>Sirrä &amp;alas</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="391"/>
         <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="402"/>
+        <source>&amp;Clear Recent Searches</source>
+        <translation>Ty&amp;hjennä viimeisimmät haut</translation>
+    </message>
+    <message>
         <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="407"/>
         <source>&amp;Quit</source>
         <translation>&amp;Lopeta</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="410"/>
         <source>Bye</source>
         <translation>Näkemiin</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="414"/>
         <source>&amp;Website</source>
         <translation>&amp;Nettisivusto</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="416"/>
         <source>%1 on the Web</source>
         <translation>%1 netissä</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="422"/>
+        <source>Make a &amp;Donation</source>
+        <translation>Tee &amp;lahjoitus</translation>
+    </message>
+    <message>
         <source>Please support the continued development of %1</source>
         <translation>Tue %1n jatkokehitystä</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="427"/>
         <source>&amp;About</source>
         <translation>&amp;Tietoja</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="429"/>
         <source>Info about %1</source>
         <translation>Tietoja %1sta</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="437"/>
         <source>Search</source>
         <translation>Etsi</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="456"/>
         <source>Mute volume</source>
         <translation>Vaimenna ääni</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="490"/>
-        <location filename="src/mainwindow.cpp" line="1609"/>
+        <source>&amp;Manually Start Playing</source>
+        <translation>Aloita toisto &amp;manuaalisesti</translation>
+    </message>
+    <message>
+        <source>Manually start playing videos</source>
+        <translation>Aloittaa videoiden toiston manuaalisesti</translation>
+    </message>
+    <message>
         <source>&amp;Downloads</source>
         <translation>&amp;Lataukset</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="491"/>
         <source>Show details about video downloads</source>
         <translation>Näytä tietoja latauksista</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="499"/>
         <source>&amp;Download</source>
         <translation>&amp;Lataa</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="500"/>
         <source>Download the current video</source>
         <translation>Lataa nykyinen video</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="510"/>
         <source>Take &amp;Snapshot</source>
         <translation>Ota &amp;tilannevedos</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="517"/>
         <source>&amp;Subscribe to Channel</source>
         <translation>&amp;Tilaa kanava</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="525"/>
         <source>Share the current video using %1</source>
         <translation>Jaa nykyinen video palvelulla %1</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="545"/>
         <source>&amp;Email</source>
         <translation>&amp;Sähköposti</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="546"/>
         <source>Email</source>
         <translation>Sähköposti</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="551"/>
         <source>&amp;Close</source>
         <translation>&amp;Sulje</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="561"/>
         <source>&amp;Float on Top</source>
         <translation>&amp;Pysy päällimmäisenä</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="566"/>
         <source>&amp;Adjust Window Size</source>
         <translation>&amp;Muuta ikkunan kokoa</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="571"/>
         <source>&amp;Stop After This Video</source>
         <translation>Py&amp;säytä toisto tämän videon jälkeen</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="578"/>
         <source>&amp;Report an Issue...</source>
         <translation>&amp;Ilmoita ongelmasta...</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="582"/>
         <source>&amp;Refine Search...</source>
         <translation>&amp;Määritä haku uudelleen...</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="594"/>
         <source>More...</source>
         <translation>Lisää...</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="597"/>
         <source>&amp;Related Videos</source>
         <translation>&amp;Aiheeseen liittyvät videot</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="599"/>
         <source>Watch videos related to the current one</source>
         <translation>Katso nykyiseen videoon liittyvät videot</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="605"/>
         <source>Open in &amp;Browser...</source>
         <translation>Avaa &amp;selaimessa...</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="612"/>
-        <source>&amp;Love %1? Rate it!</source>
-        <translation>&amp;Pidätkö %1sta? Arvostele se!</translation>
+        <source>Restricted Mode</source>
+        <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="633"/>
-        <source>&amp;Application</source>
-        <translation>&amp;Sovellus</translation>
+        <source>Hide videos that may contain inappropriate content</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <source>&amp;Love %1? Rate it!</source>
+        <translation>&amp;Pidätkö %1sta? Arvostele se!</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="618"/>
         <source>Buy %1...</source>
         <translation>Osta %1...</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="647"/>
+        <source>&amp;Application</source>
+        <translation>&amp;Sovellus</translation>
+    </message>
+    <message>
         <source>&amp;Playback</source>
         <translation>&amp;Toisto</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="661"/>
         <source>&amp;Playlist</source>
         <translation>S&amp;oittolista</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="670"/>
         <source>&amp;Video</source>
         <translation>&amp;Video</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="686"/>
-        <source>&amp;View</source>
-        <translation>&amp;Näytä</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="695"/>
         <source>&amp;Share</source>
         <translation>&amp;Jaa</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="709"/>
+        <source>&amp;View</source>
+        <translation>&amp;Näytä</translation>
+    </message>
+    <message>
         <source>&amp;Help</source>
         <translation>&amp;Ohje</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="751"/>
         <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="1021"/>
-        <location filename="src/mainwindow.cpp" line="1027"/>
+        <source>Choose your content location</source>
+        <translation>Valitse sisältösi sijainti</translation>
+    </message>
+    <message>
         <source>Opening %1</source>
         <translation>Avataan kohdetta %1</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1080"/>
         <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="1081"/>
         <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="1086"/>
         <source>Close and cancel download</source>
         <translation>Sulje ja peru lataus</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1087"/>
         <source>Wait for download to finish</source>
         <translation>Odota latauksen valmistumista</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1158"/>
-        <source>&amp;Loading...</source>
-        <translation>&amp;Ladataan...</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="1264"/>
-        <source>Leave &amp;Full Screen</source>
-        <translation> Poistu &amp;koko näytön tilasta</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="1718"/>
-        <source>%1 version %2 is now available.</source>
-        <translation>%1 versio %2 on nyt saatavilla.</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="1722"/>
-        <source>Remind me later</source>
-        <translation>Muistuta myöhemmin</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="1723"/>
-        <source>Update</source>
-        <translation>Päivitä</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="1127"/>
         <source>Error: %1</source>
         <translation>Virhe: %1</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="300"/>
-        <source>P&amp;revious</source>
-        <translation>E&amp;dellinen</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="301"/>
-        <source>Go back to the previous track</source>
-        <translation>Siirry takaisin edelliseen kappaleeseen</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="335"/>
-        <source>&amp;Compact Mode</source>
-        <translation>Kompakti &amp;tila</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="348"/>
-        <source>Open the &amp;YouTube Page</source>
-        <translation>Avaa &amp;YouTube-sivu</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="355"/>
-        <source>Copy the YouTube &amp;Link</source>
-        <translation>Kopioi YouTube-&amp;linkki</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="362"/>
-        <source>Copy the Video Stream &amp;URL</source>
-        <translation>Kopioi videovirran &amp;verkko-osoite</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="369"/>
-        <source>Find Video &amp;Parts</source>
-        <translation>Etsi videon &amp;osat</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="397"/>
-        <source>&amp;Clear Recent Searches</source>
-        <translation>Ty&amp;hjennä viimeisimmät haut</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="421"/>
-        <source>Make a &amp;Donation</source>
-        <translation>Tee &amp;lahjoitus</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="483"/>
-        <source>&amp;Manually Start Playing</source>
-        <translation>Aloita toisto &amp;manuaalisesti</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="484"/>
-        <source>Manually start playing videos</source>
-        <translation>Aloittaa videoiden toiston manuaalisesti</translation>
+        <source>&amp;Pause</source>
+        <translation>&amp;Keskeytä</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="847"/>
-        <source>Choose your content location</source>
-        <translation>Valitse sisältösi sijainti</translation>
+        <source>Pause playback</source>
+        <translation>Keskeytä toisto</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="314"/>
-        <location filename="src/mainwindow.cpp" line="1142"/>
-        <location filename="src/mainwindow.cpp" line="1150"/>
-        <source>&amp;Play</source>
-        <translation>&amp;Toista</translation>
+        <source>&amp;Loading...</source>
+        <translation>&amp;Ladataan...</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="315"/>
-        <location filename="src/mainwindow.cpp" line="1143"/>
-        <location filename="src/mainwindow.cpp" line="1151"/>
-        <source>Resume playback</source>
-        <translation>Jatka toistoa</translation>
+        <source>Leave &amp;Full Screen</source>
+        <translation> Poistu &amp;koko näytön tilasta</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1437"/>
         <source>Remaining time: %1</source>
         <translation>Aikaa jäljellä: %1</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1528"/>
         <source>Volume at %1%</source>
         <translation>Äänentaso: %1%</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1534"/>
         <source>Volume is muted</source>
         <translation>Ääni on vaimennettu</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1537"/>
         <source>Volume is unmuted</source>
         <translation>Ääni ei ole vaimennettu</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1548"/>
         <source>Maximum video definition set to %1</source>
         <translation>Korkein videonlaatu on rajoitettu tarkkuuteen %1</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1595"/>
         <source>Your privacy is now safe</source>
         <translation>Yksityisyytesi on nyt turvattu</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1610"/>
         <source>Downloads complete</source>
         <translation>Lataukset ovat valmistuneet</translation>
     </message>
+    <message>
+        <source>%1 version %2 is now available.</source>
+        <translation>%1 versio %2 on nyt saatavilla.</translation>
+    </message>
+    <message>
+        <source>Remind me later</source>
+        <translation>Muistuta myöhemmin</translation>
+    </message>
+    <message>
+        <source>Update</source>
+        <translation>Päivitä</translation>
+    </message>
 </context>
 <context>
     <name>MediaView</name>
     <message>
-        <location filename="src/mediaview.cpp" line="702"/>
         <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="710"/>
         <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="711"/>
         <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="800"/>
         <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="801"/>
         <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="833"/>
+        <source>Get the full version</source>
+        <translation>Hanki täysi versio</translation>
+    </message>
+    <message>
         <source>Continue</source>
         <translation>Jatka</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="988"/>
+        <source>Downloading %1</source>
+        <translation>Ladataan %1ta/tä</translation>
+    </message>
+    <message>
         <source>of</source>
         <comment>Used in video parts, as in '2 of 3'</comment>
         <translation>/</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="1001"/>
         <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="1003"/>
         <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="1096"/>
         <source>Sent from %1</source>
         <translation>Lähetetty palvelusta %1</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="1128"/>
         <source>Unsubscribe from %1</source>
         <translation>Peru kanavan %1 tilaus</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="1132"/>
         <source>Subscribe to %1</source>
         <translation>Tilaa kanava %1</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="1166"/>
         <source>Unsubscribed from %1</source>
         <translation>Kohteen %1 tilaus lopetettu</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="1169"/>
         <source>Subscribed to %1</source>
         <translation>Tilattu %1</translation>
     </message>
-    <message>
-        <location filename="src/mediaview.cpp" line="808"/>
-        <source>Get the full version</source>
-        <translation>Hanki täysi versio</translation>
-    </message>
-    <message>
-        <location filename="src/mediaview.cpp" line="847"/>
-        <source>Downloading %1</source>
-        <translation>Ladataan %1ta/tä</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>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>%1 %2 on nyt saatavilla. Sinulla on %3.</translation>
     </message>
     <message>
-        <location filename="local/src/updatedialog.cpp" line="33"/>
         <source>Would you like to download it now?</source>
         <translation>Haluatko ladata sen nyt?</translation>
     </message>
     <message>
-        <location filename="local/src/updatedialog.cpp" line="39"/>
         <source>Skip This Version</source>
         <translation>Ohita tämä versio</translation>
     </message>
     <message>
-        <location filename="local/src/updatedialog.cpp" line="43"/>
         <source>Remind Me Later</source>
         <translation>Muistuta minua myöhemmin</translation>
     </message>
     <message>
-        <location filename="local/src/updatedialog.cpp" line="47"/>
         <source>Install Update</source>
         <translation>Asenna päivitys</translation>
     </message>
 <context>
     <name>PasteLineEdit</name>
     <message>
-        <location filename="local/src/pastelineedit.cpp" line="6"/>
         <source>Paste</source>
         <translation>Liitä</translation>
     </message>
 <context>
     <name>PlaylistItemDelegate</name>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="209"/>
         <source>%1 views</source>
         <translation>Katsottu %1 kertaa</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="309"/>
         <source>%1 of %2 (%3) — %4</source>
         <translation>%1 / %2 (%3) — %4</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="316"/>
         <source>Preparing</source>
         <translation>Valmistellaan</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="318"/>
         <source>Failed</source>
         <translation>Epäonnistui</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="320"/>
         <source>Completed</source>
         <translation>Valmis</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="322"/>
         <source>Stopped</source>
         <translation>Pysäytetty</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="358"/>
         <source>Stop downloading</source>
         <translation>Pysäytä lataus</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="368"/>
         <source>Show in %1</source>
         <translation>Avaa %1ssa/ssä</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="370"/>
         <source>Open parent folder</source>
         <translation>Avaa yläkansio</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="379"/>
         <source>Restart downloading</source>
         <translation>Käynnistä lataus uudelleen</translation>
     </message>
 <context>
     <name>PlaylistModel</name>
     <message>
-        <location filename="src/playlistmodel.cpp" line="70"/>
         <source>Searching...</source>
         <translation>Etsitään...</translation>
     </message>
     <message>
-        <location filename="src/playlistmodel.cpp" line="71"/>
         <source>Show %1 More</source>
         <translation>Näytä %1 lisää</translation>
     </message>
     <message>
-        <location filename="src/playlistmodel.cpp" line="72"/>
         <source>No videos</source>
         <translation>Ei videoita</translation>
     </message>
     <message>
-        <location filename="src/playlistmodel.cpp" line="73"/>
         <source>No more videos</source>
         <translation>Ei enempää videoita</translation>
     </message>
 <context>
     <name>RefineSearchWidget</name>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="49"/>
         <source>Sort by</source>
         <translation>Järjestysperuste</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="53"/>
         <source>Relevance</source>
         <translation>Olennaisuus</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="54"/>
-        <location filename="src/refinesearchwidget.cpp" line="69"/>
         <source>Date</source>
         <translation>Päiväys</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="55"/>
         <source>View Count</source>
         <translation>Katselukerrat</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="56"/>
         <source>Rating</source>
         <translation>Arvostelu</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="73"/>
         <source>Anytime</source>
         <translation>Milloin tahansa</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="74"/>
         <source>Today</source>
         <translation>Tänään</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="75"/>
         <source>7 Days</source>
         <translation>7 päivää</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="76"/>
         <source>30 Days</source>
         <translation>30 päivää</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="89"/>
         <source>Duration</source>
         <translation>Kesto</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="93"/>
-        <location filename="src/refinesearchwidget.cpp" line="119"/>
         <source>All</source>
         <translation>Kaikki</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="94"/>
         <source>Short</source>
         <translation>Lyhyt</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="95"/>
         <source>Medium</source>
         <translation>Keskipituinen</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="96"/>
         <source>Long</source>
         <translation>Pitkä</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="99"/>
         <source>Less than 4 minutes</source>
         <translation>Vähemmän kuin 4 minuuttia</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="100"/>
         <source>Between 4 and 20 minutes</source>
         <translation>4-20 minuutin välillä</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="101"/>
         <source>Longer than 20 minutes</source>
         <translation>Pidempi kuin 20 minuuttia</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="115"/>
         <source>Quality</source>
         <translation>Laatu</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="120"/>
         <source>High Definition</source>
         <translation>Teräväpiirto</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="123"/>
         <source>720p or higher</source>
         <translation>720p tai tarkempi</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="136"/>
         <source>Done</source>
         <translation>Valmis</translation>
     </message>
 <context>
     <name>RegionsView</name>
     <message>
-        <location filename="src/regionsview.cpp" line="39"/>
         <source>Done</source>
         <translation>Valmis</translation>
     </message>
 <context>
     <name>SearchLineEdit</name>
     <message>
-        <location filename="src/searchlineedit.cpp" line="55"/>
         <source>Search</source>
         <translation>Etsi</translation>
     </message>
 <context>
     <name>SearchView</name>
     <message>
-        <location filename="src/searchview.cpp" line="83"/>
         <source>Welcome to &lt;a href=&apos;%1&apos;&gt;%2&lt;/a&gt;,</source>
         <translation>Tervetuloa &lt;a href=&apos;%1&apos;&gt;%2en&lt;/a&gt;</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="200"/>
-        <source>Get the full version</source>
-        <translation>Hanki täysversio</translation>
-    </message>
-    <message>
-        <location filename="src/searchview.cpp" line="110"/>
         <source>Enter</source>
         <extracomment>&quot;Enter&quot;, as in &quot;type&quot;. The whole phrase says: &quot;Enter a keyword to start watching videos&quot;</extracomment>
         <translation>Syötä</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="117"/>
         <source>a keyword</source>
         <translation>hakusana</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="118"/>
         <source>a channel</source>
         <translation>kanava</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="125"/>
         <source>to start watching videos.</source>
         <translation>aloittaaksesi videoiden katselu.</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="156"/>
         <source>Watch</source>
         <translation>Katso</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="174"/>
         <source>Recent keywords</source>
         <translation>Viimeisimmät hakusanat</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="186"/>
         <source>Recent channels</source>
         <translation>Viimeisimmät kanavat</translation>
     </message>
+    <message>
+        <source>Get the full version</source>
+        <translation>Hanki täysversio</translation>
+    </message>
 </context>
 <context>
     <name>SidebarHeader</name>
     <message>
-        <location filename="src/sidebarheader.cpp" line="38"/>
-        <location filename="src/sidebarheader.cpp" line="45"/>
         <source>&amp;Back</source>
         <translation>&amp;Takaisin</translation>
     </message>
     <message>
-        <location filename="src/sidebarheader.cpp" line="76"/>
         <source>Forward to %1</source>
         <translation>Eteenpäin kohteeseen %1</translation>
     </message>
     <message>
-        <location filename="src/sidebarheader.cpp" line="89"/>
         <source>Back to %1</source>
         <translation>Takaisin kohteeseen %1</translation>
     </message>
 <context>
     <name>SidebarWidget</name>
     <message>
-        <location filename="src/sidebarwidget.cpp" line="68"/>
         <source>Refine Search</source>
         <translation>Määritä haku uudelleen</translation>
     </message>
     <message>
-        <location filename="src/sidebarwidget.cpp" line="167"/>
         <source>Did you mean: %1</source>
         <translation>Tarkoititko: %1</translation>
     </message>
 <context>
     <name>SnapshotSettings</name>
     <message>
-        <location filename="src/snapshotsettings.cpp" line="47"/>
         <source>Change location...</source>
         <translation>Vaihda sijaintia...</translation>
     </message>
     <message>
-        <location filename="src/snapshotsettings.cpp" line="64"/>
         <source>Snapshot saved to %1</source>
         <translation>Tilannevedos tallennettu polkuun %1</translation>
     </message>
     <message>
-        <location filename="src/snapshotsettings.cpp" line="117"/>
         <source>Snapshots location changed.</source>
         <translation>Tilannevedoksien sijainti muutettu.</translation>
     </message>
 <context>
     <name>StandardFeedsView</name>
     <message>
-        <location filename="src/standardfeedsview.cpp" line="107"/>
         <source>Most Popular</source>
         <translation>Suosituimmat</translation>
     </message>
 </context>
+<context>
+    <name>UpdateDialog</name>
+    <message>
+        <source>Downloading update...</source>
+        <translation>Ladataan päivitystä...</translation>
+    </message>
+    <message>
+        <source>Downloading %1...</source>
+        <translation>Ladataan %1...</translation>
+    </message>
+</context>
 <context>
     <name>Video</name>
     <message>
-        <location filename="src/video.cpp" line="287"/>
         <source>Cannot get video stream for %1</source>
         <translation>Videostriimiä ei saada kohteelle %1</translation>
     </message>
-    <message>
-        <location filename="src/video.cpp" line="292"/>
-        <source>Network error: %1 for %2</source>
-        <translation>Verkkovirhe: &quot;%1&quot; &quot;%2&quot;lle</translation>
-    </message>
 </context>
 <context>
     <name>YTRegions</name>
     <message>
-        <location filename="src/ytregions.cpp" line="28"/>
         <source>Algeria</source>
         <translation>Algeria</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="29"/>
         <source>Argentina</source>
         <translation>Argentiina</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="30"/>
         <source>Australia</source>
         <translation>Australia</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="31"/>
         <source>Belgium</source>
         <translation>Belgia</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="32"/>
         <source>Brazil</source>
         <translation>Brasilia</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="33"/>
         <source>Canada</source>
         <translation>Kanada</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="34"/>
         <source>Chile</source>
         <translation>Chile</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="35"/>
         <source>Colombia</source>
         <translation>Kolumbia</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="36"/>
         <source>Czech Republic</source>
         <translation>Tšekin tasavalta</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="37"/>
         <source>Egypt</source>
         <translation>Egypti</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="38"/>
         <source>France</source>
         <translation>Ranska</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="39"/>
         <source>Germany</source>
         <translation>Saksa</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="40"/>
         <source>Ghana</source>
         <translation>Ghana</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="41"/>
         <source>Greece</source>
         <translation>Kreikka</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="42"/>
         <source>Hong Kong</source>
         <translation>Hongkong</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="43"/>
         <source>Hungary</source>
         <translation>Unkari</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="44"/>
         <source>India</source>
         <translation>Intia</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="45"/>
         <source>Indonesia</source>
         <translation>Indonesia</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="46"/>
         <source>Ireland</source>
         <translation>Irlanti</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="47"/>
         <source>Israel</source>
         <translation>Israel</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="48"/>
         <source>Italy</source>
         <translation>Italia</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="49"/>
         <source>Japan</source>
         <translation>Japani</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="50"/>
         <source>Jordan</source>
         <translation>Jordania</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="51"/>
         <source>Kenya</source>
         <translation>Kenia</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="52"/>
         <source>Malaysia</source>
         <translation>Malesia</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="53"/>
         <source>Mexico</source>
         <translation>Meksiko</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="54"/>
         <source>Morocco</source>
         <translation>Marokko</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="55"/>
         <source>Netherlands</source>
         <translation>Alankomaat</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="56"/>
         <source>New Zealand</source>
         <translation>Uusi-Seelanti</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="57"/>
         <source>Nigeria</source>
         <translation>Nigeria</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="58"/>
         <source>Peru</source>
         <translation>Peru</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="59"/>
         <source>Philippines</source>
         <translation>Filippiinit</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="60"/>
         <source>Poland</source>
         <translation>Puola</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="61"/>
         <source>Russia</source>
         <translation>Venäjä</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="62"/>
         <source>Saudi Arabia</source>
         <translation>Saudi-Arabia</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="63"/>
         <source>Singapore</source>
         <translation>Singapore</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="64"/>
         <source>South Africa</source>
         <translation>Etelä-Afrikka</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="65"/>
         <source>South Korea</source>
         <translation>Etelä-Korea</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="66"/>
         <source>Spain</source>
         <translation>Espanja</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="67"/>
         <source>Sweden</source>
         <translation>Ruotsi</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="68"/>
         <source>Taiwan</source>
         <translation>Taiwan</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="69"/>
         <source>Tunisia</source>
         <translation>Tunisia</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="70"/>
         <source>Turkey</source>
         <translation>Turkki</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="71"/>
         <source>Uganda</source>
         <translation>Uganda</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="72"/>
         <source>United Arab Emirates</source>
         <translation>Yhdistyneet arabiemiirikunnat</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="73"/>
         <source>United Kingdom</source>
         <translation>Yhdistynyt kuningaskunta</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="74"/>
         <source>Yemen</source>
         <translation>Jemen</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="148"/>
         <source>Worldwide</source>
         <translation>Maailmanlaajuinen</translation>
     </message>
index cbea2b73bb40438a6617e55496d0be4c873c761f..9af8f00221556a713726510b75295ebd2174782e 100644 (file)
@@ -2,67 +2,42 @@
 <context>
     <name>AboutView</name>
     <message>
-        <location filename="src/aboutview.cpp" line="58"/>
         <source>There&apos;s life outside the browser!</source>
         <translation>Selaimen ulkopuolellakin on elämää!</translation>
     </message>
     <message>
-        <location filename="src/aboutview.cpp" line="59"/>
         <source>Version %1</source>
         <translation>Versio: %1</translation>
     </message>
     <message>
-        <location filename="src/aboutview.cpp" line="64"/>
         <source>Licensed to: %1</source>
         <translation>Lisensoitu henkilölle: %1</translation>
     </message>
     <message>
-        <location filename="src/aboutview.cpp" line="68"/>
         <source>%1 is Free Software but its development takes precious time.</source>
         <translation>%1 on ilmainen ohjelma, mutta sen kehittäminen vie kallista aikaa.</translation>
     </message>
     <message>
-        <location filename="src/aboutview.cpp" line="69"/>
         <source>Please &lt;a href=&apos;%1&apos;&gt;donate&lt;/a&gt; to support the continued development of %2.</source>
         <translation>Voit tukea %2-kehitystä jatkumista tekemällä &lt;a href=&apos;%1&apos;&gt;lahjoituksen&lt;/a&gt;.</translation>
     </message>
     <message>
-        <location filename="src/aboutview.cpp" line="73"/>
-        <source>You may want to try my other apps as well:</source>
-        <translation>Sinua voi kiinnostaa myös nämä sovellukseni:</translation>
-    </message>
-    <message>
-        <location filename="src/aboutview.cpp" line="76"/>
-        <source>%1, a YouTube music player</source>
-        <translation>%1, YouTube-musiikkisoitin</translation>
-    </message>
-    <message>
-        <location filename="src/aboutview.cpp" line="80"/>
-        <source>%1, a music player</source>
-        <translation>%1, musiikkisoitin</translation>
-    </message>
-    <message>
-        <location filename="src/aboutview.cpp" line="86"/>
         <source>Translate %1 to your native language using %2</source>
         <translation>Käännä %1 äidinkielellesi käyttämällä %2</translation>
     </message>
     <message>
-        <location filename="src/aboutview.cpp" line="91"/>
         <source>Icon designed by %1.</source>
         <translation>Kuvakkeen suunnitteli %1.</translation>
     </message>
     <message>
-        <location filename="src/aboutview.cpp" line="95"/>
         <source>Released under the &lt;a href=&apos;%1&apos;&gt;GNU General Public License&lt;/a&gt;</source>
         <translation>Julkaistu &lt;a href=&apos;%1&apos;&gt;GNU General Public License&lt;/a&gt; -lisenssillä</translation>
     </message>
     <message>
-        <location filename="src/aboutview.cpp" line="110"/>
         <source>&amp;Close</source>
         <translation>&amp;Sulje</translation>
     </message>
     <message>
-        <location filename="src/aboutview.h" line="40"/>
         <source>About</source>
         <translation>Tietoja</translation>
     </message>
 <context>
     <name>ActivationDialog</name>
     <message>
-        <location filename="local/src/activationdialog.cpp" line="17"/>
         <source>Enter your License Details</source>
         <translation>Syötä tähän lisenssitietosi</translation>
     </message>
     <message>
-        <location filename="local/src/activationdialog.cpp" line="29"/>
         <source>&amp;Email:</source>
         <translation>&amp;Sähköposti:</translation>
     </message>
     <message>
-        <location filename="local/src/activationdialog.cpp" line="35"/>
         <source>&amp;Code:</source>
         <translation>&amp;Koodi:</translation>
     </message>
 <context>
     <name>ActivationView</name>
     <message>
-        <location filename="local/src/activationview.cpp" line="47"/>
         <source>Please license %1</source>
         <translation>Lisensioi %1.</translation>
     </message>
     <message>
-        <location filename="local/src/activationview.cpp" line="51"/>
         <source>This demo has expired.</source>
         <translation>Tämä demon kokeiluaika on päättynyt.</translation>
     </message>
     <message>
-        <location filename="local/src/activationview.cpp" line="53"/>
         <source>The full version allows you to watch videos without interruptions.</source>
-        <oldsource>The full version allows you to download videos longer than %1 minutes and to watch videos without interruptions.</oldsource>
         <translation>Täysversio mahdollistaa videoiden katselun ilman keskeytyksiä.</translation>
     </message>
     <message>
-        <location filename="local/src/activationview.cpp" line="55"/>
         <source>Without a license, the application will expire in %1 days.</source>
         <translation>Ilman lisenssiä tämä sovellus vanhenee %1 päivässä.</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>Ostamalla täyden version tuet kovaa työtäni sovelluksen %1 parissa.</translation>
     </message>
     <message>
-        <location filename="local/src/activationview.cpp" line="70"/>
         <source>Use Demo</source>
         <translation>Käytä demoa</translation>
     </message>
     <message>
-        <location filename="local/src/activationview.cpp" line="77"/>
         <source>Enter License</source>
         <translation>Syötä lisenssi</translation>
     </message>
     <message>
-        <location filename="local/src/activationview.cpp" line="85"/>
         <source>Buy License</source>
         <translation>Osta lisenssi</translation>
     </message>
 </context>
+<context>
+    <name>AppWidget</name>
+    <message>
+        <source>Download</source>
+        <translation type="unfinished"/>
+    </message>
+</context>
 <context>
     <name>ChannelAggregator</name>
     <message>
-        <location filename="src/channelaggregator.cpp" line="183"/>
         <source>By %1</source>
         <translation>Tekijältä %1</translation>
     </message>
     <message numerus="yes">
-        <location filename="src/channelaggregator.cpp" line="185"/>
         <source>You have %n new video(s)</source>
-        <translation><numerusform>%n uusi video</numerusform><numerusform>%n uutta videota</numerusform></translation>
+        <translation type="unfinished"><numerusform></numerusform><numerusform></numerusform></translation>
     </message>
 </context>
 <context>
     <name>ChannelItemDelegate</name>
     <message>
-        <location filename="src/channelitemdelegate.cpp" line="67"/>
         <source>All Videos</source>
         <translation>Kaikki videot</translation>
     </message>
     <message>
-        <location filename="src/channelitemdelegate.cpp" line="85"/>
         <source>Unwatched Videos</source>
         <translation>Katsomattomat videot</translation>
     </message>
 <context>
     <name>ChannelView</name>
     <message>
-        <location filename="src/channelview.cpp" line="151"/>
-        <source>Mark all as watched</source>
-        <translation>Merkitse kaikki katsotuiksi</translation>
-    </message>
-    <message>
-        <location filename="src/channelview.cpp" line="159"/>
-        <source>Show Updated</source>
-        <translation>Näytä päivitetyt</translation>
-    </message>
-    <message>
-        <location filename="src/channelview.cpp" line="103"/>
         <source>Name</source>
         <translation>Nimi</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="110"/>
         <source>Last Updated</source>
         <translation>Viimeksi päivitetyt</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="117"/>
         <source>Last Added</source>
         <translation>Viimeksi lisätyt</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="124"/>
         <source>Last Watched</source>
         <translation>Viimeksi katsotut</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="131"/>
         <source>Most Watched</source>
         <translation>Katsotuimmat</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="139"/>
         <source>Sort by</source>
         <translation>Järjestysperuste</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="222"/>
+        <source>Mark all as watched</source>
+        <translation>Merkitse kaikki katsotuiksi</translation>
+    </message>
+    <message>
+        <source>Show Updated</source>
+        <translation>Näytä päivitetyt</translation>
+    </message>
+    <message>
         <source>All Videos</source>
         <translation>Kaikki videot</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="226"/>
         <source>Unwatched Videos</source>
         <translation>Katsomattomat videot</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="244"/>
         <source>Mark as Watched</source>
         <translation>Merkitse katsotuksi</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="257"/>
         <source>Unsubscribe</source>
         <translation>Lopeta tilaus</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="270"/>
         <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="272"/>
         <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>
     <name>ClearButton</name>
     <message>
-        <location filename="src/exlineedit.cpp" line="6"/>
         <source>Clear</source>
         <translation>Tyhjennä</translation>
     </message>
 <context>
     <name>DataUtils</name>
     <message>
-        <location filename="src/datautils.cpp" line="88"/>
         <source>Just now</source>
         <translation>Juuri nyt</translation>
     </message>
     <message numerus="yes">
-        <location filename="src/datautils.cpp" line="90"/>
-        <source>%n minute(s) ago</source>
-        <translation><numerusform>%n minuutti sitten</numerusform><numerusform>%n minuuttia sitten</numerusform></translation>
-    </message>
-    <message numerus="yes">
-        <location filename="src/datautils.cpp" line="92"/>
         <source>%n hour(s) ago</source>
-        <translation><numerusform>%n tunti sitten</numerusform><numerusform>%n tuntia sitten</numerusform></translation>
+        <translation type="unfinished"><numerusform></numerusform><numerusform></numerusform></translation>
     </message>
     <message numerus="yes">
-        <location filename="src/datautils.cpp" line="94"/>
         <source>%n day(s) ago</source>
-        <translation><numerusform>%n päivä sitten</numerusform><numerusform>%n päivää sitten</numerusform></translation>
+        <translation type="unfinished"><numerusform></numerusform><numerusform></numerusform></translation>
     </message>
     <message numerus="yes">
-        <location filename="src/datautils.cpp" line="96"/>
         <source>%n weeks(s) ago</source>
-        <translation><numerusform>%n viikko sitten</numerusform><numerusform>%n viikkoa sitten</numerusform></translation>
+        <translation type="unfinished"><numerusform></numerusform><numerusform></numerusform></translation>
     </message>
     <message numerus="yes">
-        <location filename="src/datautils.cpp" line="98"/>
         <source>%n month(s) ago</source>
-        <translation><numerusform>%n kuukausi sitten</numerusform><numerusform>%n kuukautta sitten</numerusform></translation>
+        <translation type="unfinished"><numerusform></numerusform><numerusform></numerusform></translation>
     </message>
 </context>
 <context>
     <name>DownloadItem</name>
     <message>
-        <location filename="src/downloaditem.cpp" line="406"/>
         <source>bytes</source>
         <translation>tavua</translation>
     </message>
     <message>
-        <location filename="src/downloaditem.cpp" line="409"/>
         <source>KB</source>
         <translation>Kt</translation>
     </message>
     <message>
-        <location filename="src/downloaditem.cpp" line="412"/>
         <source>MB</source>
         <translation>Mt</translation>
     </message>
     <message>
-        <location filename="src/downloaditem.cpp" line="421"/>
         <source>bytes/sec</source>
         <translation>tavua/sekunnissa</translation>
     </message>
     <message>
-        <location filename="src/downloaditem.cpp" line="424"/>
         <source>KB/sec</source>
         <translation>Kt/s</translation>
     </message>
     <message>
-        <location filename="src/downloaditem.cpp" line="427"/>
         <source>MB/sec</source>
         <translation>Mt/s</translation>
     </message>
     <message>
-        <location filename="src/downloaditem.cpp" line="433"/>
         <source>seconds</source>
         <translation>sekunttia</translation>
     </message>
     <message>
-        <location filename="src/downloaditem.cpp" line="436"/>
         <source>minutes</source>
         <translation>minuuttia</translation>
     </message>
     <message>
-        <location filename="src/downloaditem.cpp" line="439"/>
         <source>%4 %5 remaining</source>
         <translation>%4 %5 jäljellä</translation>
     </message>
 <context>
     <name>DownloadManager</name>
     <message>
-        <location filename="src/downloadmanager.cpp" line="77"/>
         <source>This is just the demo version of %1.</source>
         <translation>Tämä on vain %1-kokeiluversio.</translation>
     </message>
     <message>
-        <location filename="src/downloadmanager.cpp" line="79"/>
         <source>It can only download videos shorter than %1 minutes so you can test the download functionality.</source>
         <translation>Voit ladata vain videoita jotka ovat lyhyempiä kuin %1 minuuttia, jotta voit testata latausominaisuutta.</translation>
     </message>
     <message>
-        <location filename="src/downloadmanager.cpp" line="85"/>
         <source>Continue</source>
         <translation>Jatka</translation>
     </message>
     <message>
-        <location filename="src/downloadmanager.cpp" line="86"/>
         <source>Get the full version</source>
         <translation>Hanki täysi versio</translation>
     </message>
     <message>
-        <location filename="src/downloadmanager.cpp" line="157"/>
         <source>%1 downloaded in %2</source>
         <translation>%1 ladattu ajassa %2</translation>
     </message>
     <message>
-        <location filename="src/downloadmanager.cpp" line="160"/>
         <source>Download finished</source>
         <translation>Lataus valmistui</translation>
     </message>
     <message numerus="yes">
-        <location filename="src/downloadmanager.cpp" line="165"/>
         <source>%n Download(s)</source>
-        <translation><numerusform>%n lataus</numerusform><numerusform>%n latausta</numerusform></translation>
+        <translation type="unfinished"><numerusform></numerusform><numerusform></numerusform></translation>
     </message>
 </context>
 <context>
     <name>DownloadSettings</name>
     <message>
-        <location filename="src/downloadsettings.cpp" line="36"/>
         <source>Change location...</source>
         <translation>Vaihda sijaintia...</translation>
     </message>
     <message>
-        <location filename="src/downloadsettings.cpp" line="69"/>
         <source>Choose the download location</source>
         <translation>Valitse latausten sijainti</translation>
     </message>
     <message>
-        <location filename="src/downloadsettings.cpp" line="81"/>
         <source>Download location changed.</source>
         <translation>Lataus sijaintia on muutettu.</translation>
     </message>
     <message>
-        <location filename="src/downloadsettings.cpp" line="83"/>
         <source>Current downloads will still go in the previous location.</source>
         <translation>Nykyiset lataukset menevät vanhaan sijaintiin.</translation>
     </message>
     <message>
-        <location filename="src/downloadsettings.cpp" line="94"/>
         <source>Downloading to: %1</source>
         <translation>Ladataan kansioon: %1</translation>
     </message>
 <context>
     <name>DownloadView</name>
     <message>
-        <location filename="src/downloadview.cpp" line="38"/>
-        <location filename="src/downloadview.h" line="45"/>
         <source>Downloads</source>
         <translation>Lataukset</translation>
     </message>
 </context>
-<context>
-    <name>DownloadWidget</name>
-    <message>
-        <location filename="local/src/updatedialog.cpp" line="60"/>
-        <source>Downloading update...</source>
-        <translation>Ladataan päivitystä...</translation>
-    </message>
-</context>
 <context>
     <name>Extra</name>
     <message>
-        <location filename="local/src/extra.cpp" line="251"/>
         <source>The executable file has been tempered with, maybe by a virus.</source>
         <translation>Suoritustiedostoa on muokattu, kyseessä saattaa olla virus.</translation>
     </message>
     <message>
-        <location filename="local/src/extra.cpp" line="252"/>
         <source>%1 will not run. Try installing again.</source>
         <translation>%1 ei käynnisty. Yritä uudelleenasennusta.</translation>
     </message>
     <message>
-        <location filename="local/src/extra.cpp" line="253"/>
         <source>Quit</source>
         <translation>Lopeta</translation>
     </message>
     <message>
-        <location filename="local/src/extra.cpp" line="254"/>
         <source>Reinstall</source>
         <translation>Asenna uudelleen</translation>
     </message>
 <context>
     <name>GlobalShortcuts</name>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="36"/>
         <source>Play</source>
         <translation>Toista</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="37"/>
         <source>Pause</source>
         <translation>Keskeytä</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="38"/>
         <source>Play/Pause</source>
         <translation>Toista/keskeytä</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="39"/>
         <source>Stop</source>
         <translation>Pysäytä</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="40"/>
         <source>Stop playing after current track</source>
         <translation>Pysäytä toisto nykyisen kappaleen jälkeen</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="41"/>
         <source>Next track</source>
         <translation>Seuraava kappale</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="42"/>
         <source>Previous track</source>
         <translation>Edellinen kappale</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="43"/>
         <source>Increase volume</source>
         <translation>Lisää äänenvoimakkuutta</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="44"/>
         <source>Decrease volume</source>
         <translation>Vähennä äänenvoimakkuutta</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="45"/>
         <source>Mute</source>
         <translation>Vaimenna</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="46"/>
         <source>Seek forward</source>
         <translation>Kelaa eteenpäin</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="47"/>
         <source>Seek backward</source>
         <translation>Kelaa taaksepäin</translation>
     </message>
 <context>
     <name>HomeView</name>
     <message>
-        <location filename="src/homeview.cpp" line="58"/>
         <source>Search</source>
         <translation>Etsi</translation>
     </message>
     <message>
-        <location filename="src/homeview.cpp" line="60"/>
         <source>Find videos and channels by keyword</source>
         <translation>Etsi videoita ja kanavia avainsanalla</translation>
     </message>
     <message>
-        <location filename="src/homeview.cpp" line="65"/>
         <source>Browse</source>
         <translation>Selaa</translation>
     </message>
     <message>
-        <location filename="src/homeview.cpp" line="67"/>
         <source>Browse videos by category</source>
         <translation>Selaa videoita ryhmien mukaan</translation>
     </message>
     <message>
-        <location filename="src/homeview.cpp" line="71"/>
         <source>Subscriptions</source>
         <translation>Tilaukset</translation>
     </message>
     <message>
-        <location filename="src/homeview.cpp" line="73"/>
         <source>Channel subscriptions</source>
         <translation>Kanavatilaukset</translation>
     </message>
     <message>
-        <location filename="src/homeview.h" line="44"/>
         <source>Make yourself comfortable</source>
         <translation>Tee olosi kotoisaksi</translation>
     </message>
 <context>
     <name>LoadingWidget</name>
     <message>
-        <location filename="src/loadingwidget.cpp" line="125"/>
         <source>Error</source>
         <translation>Virhe</translation>
     </message>
 <context>
     <name>MainWindow</name>
     <message>
-        <location filename="src/mainwindow.cpp" line="291"/>
+        <source>&amp;Window</source>
+        <translation>&amp;Ikkuna</translation>
+    </message>
+    <message>
+        <source>&amp;Minimize</source>
+        <translation>&amp;Pienennä</translation>
+    </message>
+    <message>
         <source>&amp;Stop</source>
         <translation>&amp;Pysäytä</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="292"/>
         <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="307"/>
+        <source>P&amp;revious</source>
+        <translation>E&amp;dellinen</translation>
+    </message>
+    <message>
+        <source>Go back to the previous track</source>
+        <translation>Siirry takaisin edelliseen kappaleeseen</translation>
+    </message>
+    <message>
         <source>S&amp;kip</source>
         <translation>&amp;Hyppää yli</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="308"/>
         <source>Skip to the next video</source>
         <translation>Siirry seuraavaan videoon</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1134"/>
-        <source>&amp;Pause</source>
-        <translation>&amp;Keskeytä</translation>
+        <source>&amp;Play</source>
+        <translation>&amp;Toista</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1135"/>
-        <source>Pause playback</source>
-        <translation>Keskeytä toisto</translation>
+        <source>Resume playback</source>
+        <translation>Jatka toistoa</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="321"/>
         <source>&amp;Full Screen</source>
         <translation>&amp;Koko näytön tila</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="322"/>
         <source>Go full screen</source>
         <translation>Siirry koko näytön tilaan</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="336"/>
+        <source>&amp;Compact Mode</source>
+        <translation>Kompakti &amp;tila</translation>
+    </message>
+    <message>
         <source>Hide the playlist and the toolbar</source>
         <translation>Piilota soittolista sekä työkalupalkki</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="349"/>
+        <source>Open the &amp;YouTube Page</source>
+        <translation>Avaa &amp;YouTube-sivu</translation>
+    </message>
+    <message>
         <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="356"/>
+        <source>Copy the YouTube &amp;Link</source>
+        <translation>Kopioi YouTube-&amp;linkki</translation>
+    </message>
+    <message>
         <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="363"/>
+        <source>Copy the Video Stream &amp;URL</source>
+        <translation>Kopioi videovirran &amp;verkko-osoite</translation>
+    </message>
+    <message>
         <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="370"/>
+        <source>Find Video &amp;Parts</source>
+        <translation>Etsi videon &amp;osat</translation>
+    </message>
+    <message>
         <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="376"/>
         <source>&amp;Remove</source>
         <translation>&amp;Poista</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="377"/>
         <source>Remove the selected videos from the playlist</source>
         <translation>Poista valitut videot toistolistalta</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="383"/>
         <source>Move &amp;Up</source>
         <translation>Siirrä &amp;ylös</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="384"/>
         <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="390"/>
         <source>Move &amp;Down</source>
         <translation>Sirrä &amp;alas</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="391"/>
         <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="402"/>
+        <source>&amp;Clear Recent Searches</source>
+        <translation>Ty&amp;hjennä viimeisimmät haut</translation>
+    </message>
+    <message>
         <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="407"/>
         <source>&amp;Quit</source>
         <translation>&amp;Lopeta</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="410"/>
         <source>Bye</source>
         <translation>Näkemiin</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="414"/>
         <source>&amp;Website</source>
         <translation>&amp;Nettisivusto</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="416"/>
         <source>%1 on the Web</source>
         <translation>%1 netissä</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="422"/>
+        <source>Make a &amp;Donation</source>
+        <translation>Tee &amp;lahjoitus</translation>
+    </message>
+    <message>
         <source>Please support the continued development of %1</source>
         <translation>Tue %1n jatkokehitystä</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="427"/>
         <source>&amp;About</source>
         <translation>&amp;Tietoja</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="429"/>
         <source>Info about %1</source>
         <translation>Tietoja %1sta</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="437"/>
         <source>Search</source>
         <translation>Etsi</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="456"/>
         <source>Mute volume</source>
         <translation>Vaimenna ääni</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="490"/>
-        <location filename="src/mainwindow.cpp" line="1609"/>
+        <source>&amp;Manually Start Playing</source>
+        <translation>Aloita toisto &amp;manuaalisesti</translation>
+    </message>
+    <message>
+        <source>Manually start playing videos</source>
+        <translation>Aloittaa videoiden toiston manuaalisesti</translation>
+    </message>
+    <message>
         <source>&amp;Downloads</source>
         <translation>&amp;Lataukset</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="491"/>
         <source>Show details about video downloads</source>
         <translation>Näytä tietoja latauksista</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="499"/>
         <source>&amp;Download</source>
         <translation>&amp;Lataa</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="500"/>
         <source>Download the current video</source>
         <translation>Lataa nykyinen video</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="510"/>
         <source>Take &amp;Snapshot</source>
         <translation>Ota &amp;tilannevedos</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="517"/>
         <source>&amp;Subscribe to Channel</source>
         <translation>&amp;Tilaa kanava</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="525"/>
         <source>Share the current video using %1</source>
         <translation>Jaa nykyinen video palvelulla %1</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="545"/>
         <source>&amp;Email</source>
         <translation>&amp;Sähköposti</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="546"/>
         <source>Email</source>
         <translation>Sähköposti</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="551"/>
         <source>&amp;Close</source>
         <translation>&amp;Sulje</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="561"/>
         <source>&amp;Float on Top</source>
         <translation>&amp;Pysy päällimmäisenä</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="566"/>
         <source>&amp;Adjust Window Size</source>
         <translation>&amp;Muuta ikkunan kokoa</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="571"/>
         <source>&amp;Stop After This Video</source>
         <translation>Py&amp;säytä toisto tämän videon jälkeen</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="578"/>
         <source>&amp;Report an Issue...</source>
         <translation>&amp;Ilmoita ongelmasta...</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="582"/>
         <source>&amp;Refine Search...</source>
         <translation>&amp;Määritä haku uudelleen...</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="594"/>
         <source>More...</source>
         <translation>Lisää...</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="597"/>
         <source>&amp;Related Videos</source>
         <translation>&amp;Aiheeseen liittyvät videot</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="599"/>
         <source>Watch videos related to the current one</source>
         <translation>Katso nykyiseen videoon liittyvät videot</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="605"/>
         <source>Open in &amp;Browser...</source>
         <translation>Avaa &amp;selaimessa...</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="612"/>
-        <source>&amp;Love %1? Rate it!</source>
-        <translation>&amp;Pidätkö %1sta? Arvostele se!</translation>
+        <source>Restricted Mode</source>
+        <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="633"/>
-        <source>&amp;Application</source>
-        <translation>&amp;Sovellus</translation>
+        <source>Hide videos that may contain inappropriate content</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <source>&amp;Love %1? Rate it!</source>
+        <translation>&amp;Pidätkö %1sta? Arvostele se!</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="618"/>
         <source>Buy %1...</source>
         <translation>Osta %1...</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="647"/>
+        <source>&amp;Application</source>
+        <translation>&amp;Sovellus</translation>
+    </message>
+    <message>
         <source>&amp;Playback</source>
         <translation>&amp;Toisto</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="661"/>
         <source>&amp;Playlist</source>
         <translation>S&amp;oittolista</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="670"/>
         <source>&amp;Video</source>
         <translation>&amp;Video</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="686"/>
-        <source>&amp;View</source>
-        <translation>&amp;Näytä</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="695"/>
         <source>&amp;Share</source>
         <translation>&amp;Jaa</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="709"/>
+        <source>&amp;View</source>
+        <translation>&amp;Näytä</translation>
+    </message>
+    <message>
         <source>&amp;Help</source>
         <translation>&amp;Ohje</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="751"/>
         <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="1021"/>
-        <location filename="src/mainwindow.cpp" line="1027"/>
+        <source>Choose your content location</source>
+        <translation>Valitse sisältösi sijainti</translation>
+    </message>
+    <message>
         <source>Opening %1</source>
         <translation>Avataan kohdetta %1</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1080"/>
         <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="1081"/>
         <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="1086"/>
         <source>Close and cancel download</source>
         <translation>Sulje ja peru lataus</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1087"/>
         <source>Wait for download to finish</source>
         <translation>Odota latauksen valmistumista</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1158"/>
-        <source>&amp;Loading...</source>
-        <translation>&amp;Ladataan...</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="1264"/>
-        <source>Leave &amp;Full Screen</source>
-        <translation> Poistu &amp;koko näytön tilasta</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="1718"/>
-        <source>%1 version %2 is now available.</source>
-        <translation>%1 versio %2 on nyt saatavilla.</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="1722"/>
-        <source>Remind me later</source>
-        <translation>Muistuta myöhemmin</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="1723"/>
-        <source>Update</source>
-        <translation>Päivitä</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="1127"/>
         <source>Error: %1</source>
         <translation>Virhe: %1</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="300"/>
-        <source>P&amp;revious</source>
-        <translation>E&amp;dellinen</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="301"/>
-        <source>Go back to the previous track</source>
-        <translation>Siirry takaisin edelliseen kappaleeseen</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="335"/>
-        <source>&amp;Compact Mode</source>
-        <translation>Kompakti &amp;tila</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="348"/>
-        <source>Open the &amp;YouTube Page</source>
-        <translation>Avaa &amp;YouTube-sivu</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="355"/>
-        <source>Copy the YouTube &amp;Link</source>
-        <translation>Kopioi YouTube-&amp;linkki</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="362"/>
-        <source>Copy the Video Stream &amp;URL</source>
-        <translation>Kopioi videovirran &amp;verkko-osoite</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="369"/>
-        <source>Find Video &amp;Parts</source>
-        <translation>Etsi videon &amp;osat</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="397"/>
-        <source>&amp;Clear Recent Searches</source>
-        <translation>Ty&amp;hjennä viimeisimmät haut</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="421"/>
-        <source>Make a &amp;Donation</source>
-        <translation>Tee &amp;lahjoitus</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="483"/>
-        <source>&amp;Manually Start Playing</source>
-        <translation>Aloita toisto &amp;manuaalisesti</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="484"/>
-        <source>Manually start playing videos</source>
-        <translation>Aloittaa videoiden toiston manuaalisesti</translation>
+        <source>&amp;Pause</source>
+        <translation>&amp;Keskeytä</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="847"/>
-        <source>Choose your content location</source>
-        <translation>Valitse sisältösi sijainti</translation>
+        <source>Pause playback</source>
+        <translation>Keskeytä toisto</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="314"/>
-        <location filename="src/mainwindow.cpp" line="1142"/>
-        <location filename="src/mainwindow.cpp" line="1150"/>
-        <source>&amp;Play</source>
-        <translation>&amp;Toista</translation>
+        <source>&amp;Loading...</source>
+        <translation>&amp;Ladataan...</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="315"/>
-        <location filename="src/mainwindow.cpp" line="1143"/>
-        <location filename="src/mainwindow.cpp" line="1151"/>
-        <source>Resume playback</source>
-        <translation>Jatka toistoa</translation>
+        <source>Leave &amp;Full Screen</source>
+        <translation> Poistu &amp;koko näytön tilasta</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1437"/>
         <source>Remaining time: %1</source>
         <translation>Aikaa jäljellä: %1</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1528"/>
         <source>Volume at %1%</source>
         <translation>Äänentaso: %1%</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1534"/>
         <source>Volume is muted</source>
         <translation>Ääni on vaimennettu</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1537"/>
         <source>Volume is unmuted</source>
         <translation>Ääni ei ole vaimennettu</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1548"/>
         <source>Maximum video definition set to %1</source>
         <translation>Korkein videonlaatu on rajoitettu tarkkuuteen %1</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1595"/>
         <source>Your privacy is now safe</source>
         <translation>Yksityisyytesi on nyt turvattu</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1610"/>
         <source>Downloads complete</source>
         <translation>Lataukset ovat valmistuneet</translation>
     </message>
+    <message>
+        <source>%1 version %2 is now available.</source>
+        <translation>%1 versio %2 on nyt saatavilla.</translation>
+    </message>
+    <message>
+        <source>Remind me later</source>
+        <translation>Muistuta myöhemmin</translation>
+    </message>
+    <message>
+        <source>Update</source>
+        <translation>Päivitä</translation>
+    </message>
 </context>
 <context>
     <name>MediaView</name>
     <message>
-        <location filename="src/mediaview.cpp" line="702"/>
         <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="710"/>
         <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="711"/>
         <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="800"/>
         <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="801"/>
         <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="833"/>
+        <source>Get the full version</source>
+        <translation>Hanki täysi versio</translation>
+    </message>
+    <message>
         <source>Continue</source>
         <translation>Jatka</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="988"/>
+        <source>Downloading %1</source>
+        <translation>Ladataan %1ta/tä</translation>
+    </message>
+    <message>
         <source>of</source>
         <comment>Used in video parts, as in '2 of 3'</comment>
         <translation>/</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="1001"/>
         <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="1003"/>
         <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="1096"/>
         <source>Sent from %1</source>
         <translation>Lähetetty palvelusta %1</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="1128"/>
         <source>Unsubscribe from %1</source>
         <translation>Peru kanavan %1 tilaus</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="1132"/>
         <source>Subscribe to %1</source>
         <translation>Tilaa kanava %1</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="1166"/>
         <source>Unsubscribed from %1</source>
         <translation>Lopeta kohteen %1 tilaaminen</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="1169"/>
         <source>Subscribed to %1</source>
         <translation>Tilaa %1</translation>
     </message>
-    <message>
-        <location filename="src/mediaview.cpp" line="808"/>
-        <source>Get the full version</source>
-        <translation>Hanki täysi versio</translation>
-    </message>
-    <message>
-        <location filename="src/mediaview.cpp" line="847"/>
-        <source>Downloading %1</source>
-        <translation>Ladataan %1ta/tä</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>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>%1 %2 on nyt saatavilla. Sinulla on %3.</translation>
     </message>
     <message>
-        <location filename="local/src/updatedialog.cpp" line="33"/>
         <source>Would you like to download it now?</source>
         <translation>Haluatko ladata sen nyt?</translation>
     </message>
     <message>
-        <location filename="local/src/updatedialog.cpp" line="39"/>
         <source>Skip This Version</source>
         <translation>Ohita tämä versio</translation>
     </message>
     <message>
-        <location filename="local/src/updatedialog.cpp" line="43"/>
         <source>Remind Me Later</source>
         <translation>Muistuta minua myöhemmin</translation>
     </message>
     <message>
-        <location filename="local/src/updatedialog.cpp" line="47"/>
         <source>Install Update</source>
         <translation>Asenna päivitys</translation>
     </message>
 <context>
     <name>PasteLineEdit</name>
     <message>
-        <location filename="local/src/pastelineedit.cpp" line="6"/>
         <source>Paste</source>
         <translation>Liitä</translation>
     </message>
 <context>
     <name>PlaylistItemDelegate</name>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="209"/>
         <source>%1 views</source>
         <translation>Katsottu %1 kertaa</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="309"/>
         <source>%1 of %2 (%3) — %4</source>
         <translation>%1 / %2 (%3) — %4</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="316"/>
         <source>Preparing</source>
         <translation>Valmistellaan</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="318"/>
         <source>Failed</source>
         <translation>Epäonnistui</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="320"/>
         <source>Completed</source>
         <translation>Valmis</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="322"/>
         <source>Stopped</source>
         <translation>Pysäytetty</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="358"/>
         <source>Stop downloading</source>
         <translation>Pysäytä lataus</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="368"/>
         <source>Show in %1</source>
         <translation>Avaa %1ssa/ssä</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="370"/>
         <source>Open parent folder</source>
         <translation>Avaa yläkansio</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="379"/>
         <source>Restart downloading</source>
         <translation>Käynnistä lataus uudelleen</translation>
     </message>
 <context>
     <name>PlaylistModel</name>
     <message>
-        <location filename="src/playlistmodel.cpp" line="70"/>
         <source>Searching...</source>
         <translation>Etsitään...</translation>
     </message>
     <message>
-        <location filename="src/playlistmodel.cpp" line="71"/>
         <source>Show %1 More</source>
         <translation>Näytä %1 lisää</translation>
     </message>
     <message>
-        <location filename="src/playlistmodel.cpp" line="72"/>
         <source>No videos</source>
         <translation>Ei videoita</translation>
     </message>
     <message>
-        <location filename="src/playlistmodel.cpp" line="73"/>
         <source>No more videos</source>
         <translation>Ei enempää videoita</translation>
     </message>
 <context>
     <name>RefineSearchWidget</name>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="49"/>
         <source>Sort by</source>
         <translation>Järjestysperuste</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="53"/>
         <source>Relevance</source>
         <translation>Olennaisuus</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="54"/>
-        <location filename="src/refinesearchwidget.cpp" line="69"/>
         <source>Date</source>
         <translation>Päiväys</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="55"/>
         <source>View Count</source>
         <translation>Katselukerrat</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="56"/>
         <source>Rating</source>
         <translation>Arvostelu</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="73"/>
         <source>Anytime</source>
         <translation>Milloin tahansa</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="74"/>
         <source>Today</source>
         <translation>Tänään</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="75"/>
         <source>7 Days</source>
         <translation>7 päivää</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="76"/>
         <source>30 Days</source>
         <translation>30 päivää</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="89"/>
         <source>Duration</source>
         <translation>Kesto</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="93"/>
-        <location filename="src/refinesearchwidget.cpp" line="119"/>
         <source>All</source>
         <translation>Kaikki</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="94"/>
         <source>Short</source>
         <translation>Lyhyt</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="95"/>
         <source>Medium</source>
         <translation>Keskipituinen</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="96"/>
         <source>Long</source>
         <translation>Pitkä</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="99"/>
         <source>Less than 4 minutes</source>
         <translation>Vähemmän kuin 4 minuuttia</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="100"/>
         <source>Between 4 and 20 minutes</source>
         <translation>4-20 minuutin välillä</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="101"/>
         <source>Longer than 20 minutes</source>
         <translation>Pidempi kuin 20 minuuttia</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="115"/>
         <source>Quality</source>
         <translation>Laatu</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="120"/>
         <source>High Definition</source>
         <translation>Teräväpiirto</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="123"/>
         <source>720p or higher</source>
         <translation>720p tai tarkempi</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="136"/>
         <source>Done</source>
         <translation>Valmis</translation>
     </message>
 <context>
     <name>RegionsView</name>
     <message>
-        <location filename="src/regionsview.cpp" line="39"/>
         <source>Done</source>
         <translation>Valmis</translation>
     </message>
 <context>
     <name>SearchLineEdit</name>
     <message>
-        <location filename="src/searchlineedit.cpp" line="55"/>
         <source>Search</source>
         <translation>Etsi</translation>
     </message>
 <context>
     <name>SearchView</name>
     <message>
-        <location filename="src/searchview.cpp" line="83"/>
         <source>Welcome to &lt;a href=&apos;%1&apos;&gt;%2&lt;/a&gt;,</source>
         <translation>Tervetuloa &lt;a href=&apos;%1&apos;&gt;%2en&lt;/a&gt;</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="200"/>
-        <source>Get the full version</source>
-        <translation>Hanki täysversio</translation>
-    </message>
-    <message>
-        <location filename="src/searchview.cpp" line="110"/>
         <source>Enter</source>
         <extracomment>&quot;Enter&quot;, as in &quot;type&quot;. The whole phrase says: &quot;Enter a keyword to start watching videos&quot;</extracomment>
         <translation>Syötä</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="117"/>
         <source>a keyword</source>
         <translation>hakusana</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="118"/>
         <source>a channel</source>
         <translation>kanava</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="125"/>
         <source>to start watching videos.</source>
         <translation>aloittaaksesi videoiden katselu.</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="156"/>
         <source>Watch</source>
         <translation>Katso</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="174"/>
         <source>Recent keywords</source>
         <translation>Viimeisimmät hakusanat</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="186"/>
         <source>Recent channels</source>
         <translation>Viimeisimmät kanavat</translation>
     </message>
+    <message>
+        <source>Get the full version</source>
+        <translation>Hanki täysversio</translation>
+    </message>
 </context>
 <context>
     <name>SidebarHeader</name>
     <message>
-        <location filename="src/sidebarheader.cpp" line="38"/>
-        <location filename="src/sidebarheader.cpp" line="45"/>
         <source>&amp;Back</source>
         <translation>&amp;Takaisin</translation>
     </message>
     <message>
-        <location filename="src/sidebarheader.cpp" line="76"/>
         <source>Forward to %1</source>
         <translation>Eteenpäin kohteeseen %1</translation>
     </message>
     <message>
-        <location filename="src/sidebarheader.cpp" line="89"/>
         <source>Back to %1</source>
         <translation>Takaisin kohteeseen %1</translation>
     </message>
 <context>
     <name>SidebarWidget</name>
     <message>
-        <location filename="src/sidebarwidget.cpp" line="68"/>
         <source>Refine Search</source>
         <translation>Määritä haku uudelleen</translation>
     </message>
     <message>
-        <location filename="src/sidebarwidget.cpp" line="167"/>
         <source>Did you mean: %1</source>
         <translation>Tarkoititko: %1</translation>
     </message>
 <context>
     <name>SnapshotSettings</name>
     <message>
-        <location filename="src/snapshotsettings.cpp" line="47"/>
         <source>Change location...</source>
         <translation>Vaihda sijaintia...</translation>
     </message>
     <message>
-        <location filename="src/snapshotsettings.cpp" line="64"/>
         <source>Snapshot saved to %1</source>
         <translation>Tilannevedos tallennettu polkuun %1</translation>
     </message>
     <message>
-        <location filename="src/snapshotsettings.cpp" line="117"/>
         <source>Snapshots location changed.</source>
         <translation>Tilannevedoksien sijainti muutettu.</translation>
     </message>
 <context>
     <name>StandardFeedsView</name>
     <message>
-        <location filename="src/standardfeedsview.cpp" line="107"/>
         <source>Most Popular</source>
         <translation>Suosituimmat</translation>
     </message>
 </context>
+<context>
+    <name>UpdateDialog</name>
+    <message>
+        <source>Downloading update...</source>
+        <translation>Ladataan päivitystä...</translation>
+    </message>
+    <message>
+        <source>Downloading %1...</source>
+        <translation type="unfinished"/>
+    </message>
+</context>
 <context>
     <name>Video</name>
     <message>
-        <location filename="src/video.cpp" line="287"/>
         <source>Cannot get video stream for %1</source>
         <translation>Videostriimiä ei saada kohteelle %1</translation>
     </message>
-    <message>
-        <location filename="src/video.cpp" line="292"/>
-        <source>Network error: %1 for %2</source>
-        <translation>Verkkovirhe: &quot;%1&quot; &quot;%2&quot;lle</translation>
-    </message>
 </context>
 <context>
     <name>YTRegions</name>
     <message>
-        <location filename="src/ytregions.cpp" line="28"/>
         <source>Algeria</source>
         <translation>Algeria</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="29"/>
         <source>Argentina</source>
         <translation>Argentiina</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="30"/>
         <source>Australia</source>
         <translation>Australia</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="31"/>
         <source>Belgium</source>
         <translation>Belgia</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="32"/>
         <source>Brazil</source>
         <translation>Brasilia</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="33"/>
         <source>Canada</source>
         <translation>Kanada</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="34"/>
         <source>Chile</source>
         <translation>Chile</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="35"/>
         <source>Colombia</source>
         <translation>Kolumbia</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="36"/>
         <source>Czech Republic</source>
         <translation>Tšekin tasavalta</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="37"/>
         <source>Egypt</source>
         <translation>Egypti</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="38"/>
         <source>France</source>
         <translation>Ranska</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="39"/>
         <source>Germany</source>
         <translation>Saksa</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="40"/>
         <source>Ghana</source>
         <translation>Ghana</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="41"/>
         <source>Greece</source>
         <translation>Kreikka</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="42"/>
         <source>Hong Kong</source>
         <translation>Hongkong</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="43"/>
         <source>Hungary</source>
         <translation>Unkari</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="44"/>
         <source>India</source>
         <translation>Intia</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="45"/>
         <source>Indonesia</source>
         <translation>Indonesia</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="46"/>
         <source>Ireland</source>
         <translation>Irlanti</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="47"/>
         <source>Israel</source>
         <translation>Israel</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="48"/>
         <source>Italy</source>
         <translation>Italia</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="49"/>
         <source>Japan</source>
         <translation>Japani</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="50"/>
         <source>Jordan</source>
         <translation>Jordania</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="51"/>
         <source>Kenya</source>
         <translation>Kenia</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="52"/>
         <source>Malaysia</source>
         <translation>Malesia</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="53"/>
         <source>Mexico</source>
         <translation>Meksiko</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="54"/>
         <source>Morocco</source>
         <translation>Marokko</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="55"/>
         <source>Netherlands</source>
         <translation>Alankomaat</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="56"/>
         <source>New Zealand</source>
         <translation>Uusi-Seelanti</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="57"/>
         <source>Nigeria</source>
         <translation>Nigeria</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="58"/>
         <source>Peru</source>
         <translation>Peru</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="59"/>
         <source>Philippines</source>
         <translation>Filippiinit</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="60"/>
         <source>Poland</source>
         <translation>Puola</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="61"/>
         <source>Russia</source>
         <translation>Venäjä</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="62"/>
         <source>Saudi Arabia</source>
         <translation>Saudi-Arabia</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="63"/>
         <source>Singapore</source>
         <translation>Singapore</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="64"/>
         <source>South Africa</source>
         <translation>Etelä-Afrikka</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="65"/>
         <source>South Korea</source>
         <translation>Etelä-Korea</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="66"/>
         <source>Spain</source>
         <translation>Espanja</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="67"/>
         <source>Sweden</source>
         <translation>Ruotsi</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="68"/>
         <source>Taiwan</source>
         <translation>Taiwan</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="69"/>
         <source>Tunisia</source>
         <translation>Tunisia</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="70"/>
         <source>Turkey</source>
         <translation>Turkki</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="71"/>
         <source>Uganda</source>
         <translation>Uganda</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="72"/>
         <source>United Arab Emirates</source>
         <translation>Yhdistyneet arabiemiirikunnat</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="73"/>
         <source>United Kingdom</source>
         <translation>Yhdistynyt kuningaskunta</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="74"/>
         <source>Yemen</source>
         <translation>Jemen</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="148"/>
         <source>Worldwide</source>
         <translation>Maailmanlaajuinen</translation>
     </message>
index 20b79f02f30ef8228c48697688327b600919da61..3392dd081bfc51518c043052307b603cd62d9762 100644 (file)
@@ -2,67 +2,42 @@
 <context>
     <name>AboutView</name>
     <message>
-        <location filename="src/aboutview.cpp" line="58"/>
         <source>There&apos;s life outside the browser!</source>
-        <translation>Il y a une vie après le navigateur !</translation>
+        <translation>Il y a une vie en dehors du navigateur !</translation>
     </message>
     <message>
-        <location filename="src/aboutview.cpp" line="59"/>
         <source>Version %1</source>
         <translation>Version %1</translation>
     </message>
     <message>
-        <location filename="src/aboutview.cpp" line="64"/>
         <source>Licensed to: %1</source>
         <translation>Licence accordée à : %1</translation>
     </message>
     <message>
-        <location filename="src/aboutview.cpp" line="68"/>
         <source>%1 is Free Software but its development takes precious time.</source>
         <translation>%1 est un Logiciel Libre, mais son développement prend un temps précieux.</translation>
     </message>
     <message>
-        <location filename="src/aboutview.cpp" line="69"/>
         <source>Please &lt;a href=&apos;%1&apos;&gt;donate&lt;/a&gt; to support the continued development of %2.</source>
         <translation>Merci &lt;a href=&apos;%1&apos;&gt;d&apos;envoyer vos dons&lt;/a&gt; pour aider à poursuivre le développement de %2.</translation>
     </message>
     <message>
-        <location filename="src/aboutview.cpp" line="73"/>
-        <source>You may want to try my other apps as well:</source>
-        <translation>Vous serrez sûrement intéressé par mes autres applications :</translation>
-    </message>
-    <message>
-        <location filename="src/aboutview.cpp" line="76"/>
-        <source>%1, a YouTube music player</source>
-        <translation>%1, un lecteur de musique basé sur YouTube</translation>
-    </message>
-    <message>
-        <location filename="src/aboutview.cpp" line="80"/>
-        <source>%1, a music player</source>
-        <translation>%1, un lecteur de musique</translation>
-    </message>
-    <message>
-        <location filename="src/aboutview.cpp" line="86"/>
         <source>Translate %1 to your native language using %2</source>
         <translation>Traduisez %1 dans votre langue native en utilisant %2</translation>
     </message>
     <message>
-        <location filename="src/aboutview.cpp" line="91"/>
         <source>Icon designed by %1.</source>
         <translation>Icône dessinée par %1.</translation>
     </message>
     <message>
-        <location filename="src/aboutview.cpp" line="95"/>
         <source>Released under the &lt;a href=&apos;%1&apos;&gt;GNU General Public License&lt;/a&gt;</source>
-        <translation>Proposé sous licence &lt;a href=&apos;%1&apos;&gt;GNU General Public License&lt;/a&gt;</translation>
+        <translation>Publié sous la licence &lt;a href=&apos;%1&apos;&gt;GNU General Public License&lt;/a&gt;</translation>
     </message>
     <message>
-        <location filename="src/aboutview.cpp" line="110"/>
         <source>&amp;Close</source>
         <translation>&amp;Fermer</translation>
     </message>
     <message>
-        <location filename="src/aboutview.h" line="40"/>
         <source>About</source>
         <translation>À propos</translation>
     </message>
 <context>
     <name>ActivationDialog</name>
     <message>
-        <location filename="local/src/activationdialog.cpp" line="17"/>
         <source>Enter your License Details</source>
         <translation>Entrez les details de votre licence</translation>
     </message>
     <message>
-        <location filename="local/src/activationdialog.cpp" line="29"/>
         <source>&amp;Email:</source>
         <translation>&amp;Email :</translation>
     </message>
     <message>
-        <location filename="local/src/activationdialog.cpp" line="35"/>
         <source>&amp;Code:</source>
         <translation>&amp;Code :</translation>
     </message>
 <context>
     <name>ActivationView</name>
     <message>
-        <location filename="local/src/activationview.cpp" line="47"/>
         <source>Please license %1</source>
         <translation>Veuillez obtenir une licence pour %1</translation>
     </message>
     <message>
-        <location filename="local/src/activationview.cpp" line="51"/>
         <source>This demo has expired.</source>
-        <translation>Cette version de démo a expiré.</translation>
+        <translation>Cette version de démonstration a expiré.</translation>
     </message>
     <message>
-        <location filename="local/src/activationview.cpp" line="53"/>
         <source>The full version allows you to watch videos without interruptions.</source>
-        <oldsource>The full version allows you to download videos longer than %1 minutes and to watch videos without interruptions.</oldsource>
         <translation>La version complète vous permet de voir des vidéos sans interruption.</translation>
     </message>
     <message>
-        <location filename="local/src/activationview.cpp" line="55"/>
         <source>Without a license, the application will expire in %1 days.</source>
         <translation>En l&apos;absence de licence, l&apos;application expirera dans %1 jours.</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>En achetant la version complète, vous supporterai aussi le grand travail que j&apos;ai investi dans la création de %1.</translation>
+        <translation>En achetant la version complète,vous supporterez aussi le grand travail que j&apos;ai investi dans la création de %1.</translation>
     </message>
     <message>
-        <location filename="local/src/activationview.cpp" line="70"/>
         <source>Use Demo</source>
-        <translation>Utilisez la version de démo</translation>
+        <translation>Utilisez la version de démonstration</translation>
     </message>
     <message>
-        <location filename="local/src/activationview.cpp" line="77"/>
         <source>Enter License</source>
         <translation>Entrer une licence</translation>
     </message>
     <message>
-        <location filename="local/src/activationview.cpp" line="85"/>
         <source>Buy License</source>
         <translation>Acheter une licence</translation>
     </message>
 </context>
+<context>
+    <name>AppWidget</name>
+    <message>
+        <source>Download</source>
+        <translation>Téléchargements</translation>
+    </message>
+</context>
 <context>
     <name>ChannelAggregator</name>
     <message>
-        <location filename="src/channelaggregator.cpp" line="183"/>
         <source>By %1</source>
         <translation>Par %1</translation>
     </message>
     <message numerus="yes">
-        <location filename="src/channelaggregator.cpp" line="185"/>
         <source>You have %n new video(s)</source>
-        <translation><numerusform>Vous avez %n nouvelles vidéo(s)</numerusform><numerusform>Vous avez %n nouvelles vidéo(s)</numerusform></translation>
+        <translation type="unfinished"><numerusform></numerusform><numerusform></numerusform></translation>
     </message>
 </context>
 <context>
     <name>ChannelItemDelegate</name>
     <message>
-        <location filename="src/channelitemdelegate.cpp" line="67"/>
         <source>All Videos</source>
         <translation>Toutes les vidéos</translation>
     </message>
     <message>
-        <location filename="src/channelitemdelegate.cpp" line="85"/>
         <source>Unwatched Videos</source>
         <translation>Vidéos non vues</translation>
     </message>
 <context>
     <name>ChannelView</name>
     <message>
-        <location filename="src/channelview.cpp" line="151"/>
-        <source>Mark all as watched</source>
-        <translation>Tout marquer comme vu</translation>
-    </message>
-    <message>
-        <location filename="src/channelview.cpp" line="159"/>
-        <source>Show Updated</source>
-        <translation>Afficher les mises à jour</translation>
-    </message>
-    <message>
-        <location filename="src/channelview.cpp" line="103"/>
         <source>Name</source>
         <translation>Nom</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="110"/>
         <source>Last Updated</source>
-        <translation>Dernièrement mis à jour</translation>
+        <translation>Dernièrement mis à jours</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="117"/>
         <source>Last Added</source>
         <translation>Dernièrement ajoutées</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="124"/>
         <source>Last Watched</source>
         <translation>Dernièrement vues</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="131"/>
         <source>Most Watched</source>
         <translation>Les plus vues</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="139"/>
         <source>Sort by</source>
         <translation>Trier par</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="222"/>
+        <source>Mark all as watched</source>
+        <translation>Tout marquer comme vu</translation>
+    </message>
+    <message>
+        <source>Show Updated</source>
+        <translation>Afficher les mises à jours</translation>
+    </message>
+    <message>
         <source>All Videos</source>
         <translation>Toutes les vidéos</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="226"/>
         <source>Unwatched Videos</source>
         <translation>Vidéos non vues</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="244"/>
         <source>Mark as Watched</source>
         <translation>Marquer comme vu</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="257"/>
         <source>Unsubscribe</source>
         <translation>Se désabonner</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="270"/>
         <source>There are no updated subscriptions at this time.</source>
         <translation>Il n&apos;y a pas d&apos;abonnements mis à jour en ce moment.</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="272"/>
         <source>You have no subscriptions. Use the star symbol to subscribe to channels.</source>
-        <translation>Vous n&apos;avez pas d&apos;abonnements. Utilisez le symbole de l&apos;étoile pour vous abonner à des chaines,</translation>
+        <translation>Vous n&apos;avez pas d&apos;abonnements. Utilisez le symbole en forme d&apos;étoile pour vous abonner à des chaines,</translation>
     </message>
 </context>
 <context>
     <name>ClearButton</name>
     <message>
-        <location filename="src/exlineedit.cpp" line="6"/>
         <source>Clear</source>
-        <translation>Effacer</translation>
+        <translation>Nettoyer </translation>
     </message>
 </context>
 <context>
     <name>DataUtils</name>
     <message>
-        <location filename="src/datautils.cpp" line="88"/>
         <source>Just now</source>
         <translation>Juste maintenant</translation>
     </message>
     <message numerus="yes">
-        <location filename="src/datautils.cpp" line="90"/>
-        <source>%n minute(s) ago</source>
-        <translation><numerusform>Il y a %n minute(s)</numerusform><numerusform>Il y a %n minute(s)</numerusform></translation>
-    </message>
-    <message numerus="yes">
-        <location filename="src/datautils.cpp" line="92"/>
         <source>%n hour(s) ago</source>
-        <translation><numerusform>Il y a %n heure(s)</numerusform><numerusform>Il y a %n heure(s)</numerusform></translation>
+        <translation type="unfinished"><numerusform></numerusform><numerusform></numerusform></translation>
     </message>
     <message numerus="yes">
-        <location filename="src/datautils.cpp" line="94"/>
         <source>%n day(s) ago</source>
-        <translation><numerusform>Il y a %n jour(s)</numerusform><numerusform>Il y a %n jour(s)</numerusform></translation>
+        <translation type="unfinished"><numerusform></numerusform><numerusform></numerusform></translation>
     </message>
     <message numerus="yes">
-        <location filename="src/datautils.cpp" line="96"/>
         <source>%n weeks(s) ago</source>
-        <translation><numerusform>Il y a %n semaine(s)</numerusform><numerusform>Il y a %n semaine(s)</numerusform></translation>
+        <translation type="unfinished"><numerusform></numerusform><numerusform></numerusform></translation>
     </message>
     <message numerus="yes">
-        <location filename="src/datautils.cpp" line="98"/>
         <source>%n month(s) ago</source>
-        <translation><numerusform>Il y a %n mois</numerusform><numerusform>Il y a %n mois()</numerusform></translation>
+        <translation type="unfinished"><numerusform></numerusform><numerusform></numerusform></translation>
     </message>
 </context>
 <context>
     <name>DownloadItem</name>
     <message>
-        <location filename="src/downloaditem.cpp" line="406"/>
         <source>bytes</source>
         <translation>octets</translation>
     </message>
     <message>
-        <location filename="src/downloaditem.cpp" line="409"/>
         <source>KB</source>
         <translation>Kio</translation>
     </message>
     <message>
-        <location filename="src/downloaditem.cpp" line="412"/>
         <source>MB</source>
         <translation>Mio</translation>
     </message>
     <message>
-        <location filename="src/downloaditem.cpp" line="421"/>
         <source>bytes/sec</source>
         <translation>octets/sec</translation>
     </message>
     <message>
-        <location filename="src/downloaditem.cpp" line="424"/>
         <source>KB/sec</source>
         <translation>Kio/sec</translation>
     </message>
     <message>
-        <location filename="src/downloaditem.cpp" line="427"/>
         <source>MB/sec</source>
         <translation>Mio/sec</translation>
     </message>
     <message>
-        <location filename="src/downloaditem.cpp" line="433"/>
         <source>seconds</source>
         <translation>secondes</translation>
     </message>
     <message>
-        <location filename="src/downloaditem.cpp" line="436"/>
         <source>minutes</source>
         <translation>minutes</translation>
     </message>
     <message>
-        <location filename="src/downloaditem.cpp" line="439"/>
         <source>%4 %5 remaining</source>
         <translation>%4 %5 restant</translation>
     </message>
 <context>
     <name>DownloadManager</name>
     <message>
-        <location filename="src/downloadmanager.cpp" line="77"/>
         <source>This is just the demo version of %1.</source>
-        <translation>Il s&apos;agit seulement de la version démo de %1.</translation>
+        <translation>Il s&apos;agit seulement de la version de démonstration de %1.</translation>
     </message>
     <message>
-        <location filename="src/downloadmanager.cpp" line="79"/>
         <source>It can only download videos shorter than %1 minutes so you can test the download functionality.</source>
-        <translation>Vous ne pouvez télécharger que des vidéos plus courtes que %1 minutes de sorte que vous pouvez tester la fonctionnalité de téléchargement.</translation>
+        <translation>Vous ne pouvez télécharger que des vidéos plus courtes que %1 minutes de sorte que vous puissiez tester la fonctionnalité de téléchargement.</translation>
     </message>
     <message>
-        <location filename="src/downloadmanager.cpp" line="85"/>
         <source>Continue</source>
         <translation>Continuer</translation>
     </message>
     <message>
-        <location filename="src/downloadmanager.cpp" line="86"/>
         <source>Get the full version</source>
         <translation>Obtenir la version complète</translation>
     </message>
     <message>
-        <location filename="src/downloadmanager.cpp" line="157"/>
         <source>%1 downloaded in %2</source>
         <translation>%1 téléchargé sur %2</translation>
     </message>
     <message>
-        <location filename="src/downloadmanager.cpp" line="160"/>
         <source>Download finished</source>
         <translation>Téléchargement terminé</translation>
     </message>
     <message numerus="yes">
-        <location filename="src/downloadmanager.cpp" line="165"/>
         <source>%n Download(s)</source>
-        <translation><numerusform>%n téléchargement(s)</numerusform><numerusform>%n téléchargement(s)</numerusform></translation>
+        <translation type="unfinished"><numerusform></numerusform><numerusform></numerusform></translation>
     </message>
 </context>
 <context>
     <name>DownloadSettings</name>
     <message>
-        <location filename="src/downloadsettings.cpp" line="36"/>
         <source>Change location...</source>
         <translation>Changer d&apos;emplacement...</translation>
     </message>
     <message>
-        <location filename="src/downloadsettings.cpp" line="69"/>
         <source>Choose the download location</source>
         <translation>Choisissez l&apos;emplacement de téléchargement</translation>
     </message>
     <message>
-        <location filename="src/downloadsettings.cpp" line="81"/>
         <source>Download location changed.</source>
         <translation>Emplacement de téléchargement changé.</translation>
     </message>
     <message>
-        <location filename="src/downloadsettings.cpp" line="83"/>
         <source>Current downloads will still go in the previous location.</source>
-        <translation>Les téléchargements en cours iront à l&apos;emplacement précédent.</translation>
+        <translation>Les téléchargements en cours iront encore à l&apos;emplacement précédent.</translation>
     </message>
     <message>
-        <location filename="src/downloadsettings.cpp" line="94"/>
         <source>Downloading to: %1</source>
         <translation>Téléchargement de : %1</translation>
     </message>
 <context>
     <name>DownloadView</name>
     <message>
-        <location filename="src/downloadview.cpp" line="38"/>
-        <location filename="src/downloadview.h" line="45"/>
         <source>Downloads</source>
         <translation>Téléchargements</translation>
     </message>
 </context>
-<context>
-    <name>DownloadWidget</name>
-    <message>
-        <location filename="local/src/updatedialog.cpp" line="60"/>
-        <source>Downloading update...</source>
-        <translation>Téléchargement de la mise à jour...</translation>
-    </message>
-</context>
 <context>
     <name>Extra</name>
     <message>
-        <location filename="local/src/extra.cpp" line="251"/>
         <source>The executable file has been tempered with, maybe by a virus.</source>
         <translation>Le fichier exécutable a été modifié avec, peut-être par un virus.</translation>
     </message>
     <message>
-        <location filename="local/src/extra.cpp" line="252"/>
         <source>%1 will not run. Try installing again.</source>
-        <translation>%1 ne sera pas exécuté. Essayez d&apos;installer de nouveau.</translation>
+        <translation>%1 ne sera pas exécuté. Essayez d&apos;installer à nouveau.</translation>
     </message>
     <message>
-        <location filename="local/src/extra.cpp" line="253"/>
         <source>Quit</source>
         <translation>Quitter</translation>
     </message>
     <message>
-        <location filename="local/src/extra.cpp" line="254"/>
         <source>Reinstall</source>
         <translation>Réinstaller</translation>
     </message>
 <context>
     <name>GlobalShortcuts</name>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="36"/>
         <source>Play</source>
         <translation>Lancer</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="37"/>
         <source>Pause</source>
         <translation>Pause</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="38"/>
         <source>Play/Pause</source>
         <translation>Lance/Pause</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="39"/>
         <source>Stop</source>
         <translation>Arrêter</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="40"/>
         <source>Stop playing after current track</source>
-        <translation>Arrêtez après le morceau en cours</translation>
+        <translation>Arrêtez la lecture après le morceau en cours</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="41"/>
         <source>Next track</source>
         <translation>Morceau suivant</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="42"/>
         <source>Previous track</source>
         <translation>Monceau précédent</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="43"/>
         <source>Increase volume</source>
         <translation>Augmenter le volume</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="44"/>
         <source>Decrease volume</source>
         <translation>Diminuer le volume</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="45"/>
         <source>Mute</source>
         <translation>Muet</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="46"/>
         <source>Seek forward</source>
         <translation>Avancer</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="47"/>
         <source>Seek backward</source>
         <translation>Retour</translation>
     </message>
 <context>
     <name>HomeView</name>
     <message>
-        <location filename="src/homeview.cpp" line="58"/>
         <source>Search</source>
         <translation>Chercher</translation>
     </message>
     <message>
-        <location filename="src/homeview.cpp" line="60"/>
         <source>Find videos and channels by keyword</source>
         <translation>Trouver des vidéos et des chaînes par mot-clé</translation>
     </message>
     <message>
-        <location filename="src/homeview.cpp" line="65"/>
         <source>Browse</source>
         <translation>Parcourir</translation>
     </message>
     <message>
-        <location filename="src/homeview.cpp" line="67"/>
         <source>Browse videos by category</source>
         <translation>Parcourir les vidéos par catégories</translation>
     </message>
     <message>
-        <location filename="src/homeview.cpp" line="71"/>
         <source>Subscriptions</source>
         <translation>Abonnements</translation>
     </message>
     <message>
-        <location filename="src/homeview.cpp" line="73"/>
         <source>Channel subscriptions</source>
         <translation>Abonnements aux chaines</translation>
     </message>
     <message>
-        <location filename="src/homeview.h" line="44"/>
         <source>Make yourself comfortable</source>
         <translation>Installez-vous confortablement</translation>
     </message>
 <context>
     <name>LoadingWidget</name>
     <message>
-        <location filename="src/loadingwidget.cpp" line="125"/>
         <source>Error</source>
         <translation>Erreur</translation>
     </message>
 <context>
     <name>MainWindow</name>
     <message>
-        <location filename="src/mainwindow.cpp" line="291"/>
+        <source>&amp;Window</source>
+        <translation>&amp;Fenêtre</translation>
+    </message>
+    <message>
+        <source>&amp;Minimize</source>
+        <translation>&amp;Réduire</translation>
+    </message>
+    <message>
         <source>&amp;Stop</source>
         <translation>&amp;Arrêter</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="292"/>
         <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="307"/>
+        <source>P&amp;revious</source>
+        <translation>P&amp;récédent</translation>
+    </message>
+    <message>
+        <source>Go back to the previous track</source>
+        <translation>Aller à la piste précédente</translation>
+    </message>
+    <message>
         <source>S&amp;kip</source>
         <translation>&amp;Passer</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="308"/>
         <source>Skip to the next video</source>
         <translation>Passer à la vidéo suivante</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1134"/>
-        <source>&amp;Pause</source>
-        <translation>&amp;Pause</translation>
+        <source>&amp;Play</source>
+        <translation>&amp;Jouer</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1135"/>
-        <source>Pause playback</source>
-        <translation>Mettre en pause</translation>
+        <source>Resume playback</source>
+        <translation>Relancer la lecture</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="321"/>
         <source>&amp;Full Screen</source>
         <translation>&amp;Plein écran</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="322"/>
         <source>Go full screen</source>
         <translation>Mettre en plein écran</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="336"/>
+        <source>&amp;Compact Mode</source>
+        <translation>&amp;Mode compact</translation>
+    </message>
+    <message>
         <source>Hide the playlist and the toolbar</source>
         <translation>Cacher la liste de lecture et la barre d&apos;outils</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="349"/>
+        <source>Open the &amp;YouTube Page</source>
+        <translation>Ouvrir la page &amp;Youtube</translation>
+    </message>
+    <message>
         <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="356"/>
+        <source>Copy the YouTube &amp;Link</source>
+        <translation>Copier le &amp;lien Youtube</translation>
+    </message>
+    <message>
         <source>Copy the current video YouTube link to the clipboard</source>
         <translation>Copier l&apos;adresse de la vidéo YouTube courante dans le presse-papier</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="363"/>
+        <source>Copy the Video Stream &amp;URL</source>
+        <translation>Copier l&apos;&amp;URL du flux vidéo </translation>
+    </message>
+    <message>
         <source>Copy the current video stream URL to the clipboard</source>
         <translation>Copier l&apos;adresse du flux vidéo courant dans le presse-papier</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="370"/>
+        <source>Find Video &amp;Parts</source>
+        <translation>Trouver les &amp;parties de la vidéo</translation>
+    </message>
+    <message>
         <source>Find other video parts hopefully in the right order</source>
         <translation>Trouver les autres parties de la vidéo en espérant qu&apos;elles soient dans le bon ordre</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="376"/>
         <source>&amp;Remove</source>
         <translation>&amp;Supprimer</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="377"/>
         <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="383"/>
         <source>Move &amp;Up</source>
         <translation>Déplacer vers les &amp;haut</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="384"/>
         <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="390"/>
         <source>Move &amp;Down</source>
         <translation>Déplacer vers les &amp;bas</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="391"/>
         <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="402"/>
+        <source>&amp;Clear Recent Searches</source>
+        <translation>&amp;Effacer les recherches récentes </translation>
+    </message>
+    <message>
         <source>Clear the search history. Cannot be undone.</source>
         <translation>Effacer l&apos;historique de recherche. Opération irréversible.</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="407"/>
         <source>&amp;Quit</source>
         <translation>&amp;Quitter</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="410"/>
         <source>Bye</source>
         <translation>Au revoir</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="414"/>
         <source>&amp;Website</source>
         <translation>Site &amp;Web</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="416"/>
         <source>%1 on the Web</source>
         <translation>%1 sur le Web</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="422"/>
+        <source>Make a &amp;Donation</source>
+        <translation>Faire un &amp;Don</translation>
+    </message>
+    <message>
         <source>Please support the continued development of %1</source>
         <translation>Merci d&apos;aider à poursuivre le développement de %1</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="427"/>
         <source>&amp;About</source>
         <translation>&amp;À propos</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="429"/>
         <source>Info about %1</source>
         <translation>À propos de %1</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="437"/>
         <source>Search</source>
         <translation>Chercher</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="456"/>
         <source>Mute volume</source>
         <translation>Couper le son</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="490"/>
-        <location filename="src/mainwindow.cpp" line="1609"/>
+        <source>&amp;Manually Start Playing</source>
+        <translation>&amp;</translation>
+    </message>
+    <message>
+        <source>Manually start playing videos</source>
+        <translation>Démarrer manuellement la lecture de vidéos</translation>
+    </message>
+    <message>
         <source>&amp;Downloads</source>
         <translation>&amp;Téléchargements</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="491"/>
         <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="499"/>
         <source>&amp;Download</source>
         <translation>&amp;Téléchargement</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="500"/>
         <source>Download the current video</source>
         <translation>Télécharger la vidéo en cours</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="510"/>
         <source>Take &amp;Snapshot</source>
         <translation>Prendre un in&amp;stantané</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="517"/>
         <source>&amp;Subscribe to Channel</source>
         <translation>&amp;S&apos;abonner à la chaine</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="525"/>
         <source>Share the current video using %1</source>
         <translation>Partager cette vidéo avec %1</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="545"/>
         <source>&amp;Email</source>
         <translation>&amp;Email</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="546"/>
         <source>Email</source>
         <translation>Email</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="551"/>
         <source>&amp;Close</source>
         <translation>&amp;Fermer</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="561"/>
         <source>&amp;Float on Top</source>
         <translation>&amp;Laisser au dessus</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="566"/>
         <source>&amp;Adjust Window Size</source>
         <translation>&amp;Ajuster la taille de la fenètre</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="571"/>
         <source>&amp;Stop After This Video</source>
         <translation>&amp;Arrêter après cette vidéo</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="578"/>
         <source>&amp;Report an Issue...</source>
         <translation>&amp;Signaler un problème...</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="582"/>
         <source>&amp;Refine Search...</source>
         <translation>&amp;Affiner la recherche...</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="594"/>
         <source>More...</source>
         <translation>Plus…</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="597"/>
         <source>&amp;Related Videos</source>
         <translation>Vidéos &amp;Relatives</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="599"/>
         <source>Watch videos related to the current one</source>
         <translation>Regarder des vidéos relatives à la vidéo courante</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="605"/>
         <source>Open in &amp;Browser...</source>
         <translation>Ouvrir dans le &amp;navigateur ...</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="612"/>
-        <source>&amp;Love %1? Rate it!</source>
-        <translation>&amp;Aimer %1? Notez-le !</translation>
+        <source>Restricted Mode</source>
+        <translation>Mode restreint</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="633"/>
-        <source>&amp;Application</source>
-        <translation>&amp;Application</translation>
+        <source>Hide videos that may contain inappropriate content</source>
+        <translation>Masquer les vidéos qui peuvent contenir un contenu inapproprié</translation>
+    </message>
+    <message>
+        <source>&amp;Love %1? Rate it!</source>
+        <translation>&amp;Aimer %1? Notez-le !</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="618"/>
         <source>Buy %1...</source>
         <translation>Acheter %1 …</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="647"/>
+        <source>&amp;Application</source>
+        <translation>&amp;Application</translation>
+    </message>
+    <message>
         <source>&amp;Playback</source>
         <translation>&amp;Lecture</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="661"/>
         <source>&amp;Playlist</source>
         <translation>&amp;Liste de lecture</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="670"/>
         <source>&amp;Video</source>
         <translation>&amp;Vidéo</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="686"/>
-        <source>&amp;View</source>
-        <translation>&amp;Vue</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="695"/>
         <source>&amp;Share</source>
         <translation>&amp;Partager</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="709"/>
+        <source>&amp;View</source>
+        <translation>&amp;Vue</translation>
+    </message>
+    <message>
         <source>&amp;Help</source>
         <translation>&amp;Aide</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="751"/>
         <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="1021"/>
-        <location filename="src/mainwindow.cpp" line="1027"/>
+        <source>Choose your content location</source>
+        <translation>Choisissez l&apos;emplacement de votre contenu</translation>
+    </message>
+    <message>
         <source>Opening %1</source>
         <translation>Ouverture de %1</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1080"/>
         <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="1081"/>
         <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="1086"/>
         <source>Close and cancel download</source>
         <translation>Fermer et annuler le téléchargement</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1087"/>
         <source>Wait for download to finish</source>
         <translation>Attendez la fin du téléchargement</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1158"/>
-        <source>&amp;Loading...</source>
-        <translation>&amp;Chargement...</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="1264"/>
-        <source>Leave &amp;Full Screen</source>
-        <translation>Quitter le &amp;mode plein écran</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="1718"/>
-        <source>%1 version %2 is now available.</source>
-        <translation>%1 version %2 est maintenant disponible</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="1722"/>
-        <source>Remind me later</source>
-        <translation>Me rappeler plus tard</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="1723"/>
-        <source>Update</source>
-        <translation>Mettre à jour</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="1127"/>
         <source>Error: %1</source>
         <translation>Erreur : %1</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="300"/>
-        <source>P&amp;revious</source>
-        <translation>P&amp;récédent</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="301"/>
-        <source>Go back to the previous track</source>
-        <translation>Aller à la piste précédente</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="335"/>
-        <source>&amp;Compact Mode</source>
-        <translation>&amp;Mode compact</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="348"/>
-        <source>Open the &amp;YouTube Page</source>
-        <translation>Ouvrir la page &amp;Youtube</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="355"/>
-        <source>Copy the YouTube &amp;Link</source>
-        <translation>Copier le &amp;lien Youtube</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="362"/>
-        <source>Copy the Video Stream &amp;URL</source>
-        <translation>Copier l&apos;&amp;URL du flux vidéo </translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="369"/>
-        <source>Find Video &amp;Parts</source>
-        <translation>Trouver les &amp;parties de la vidéo</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="397"/>
-        <source>&amp;Clear Recent Searches</source>
-        <translation>&amp;Effacer les recherches récentes </translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="421"/>
-        <source>Make a &amp;Donation</source>
-        <translation>Faire un &amp;Don</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="483"/>
-        <source>&amp;Manually Start Playing</source>
-        <translation>&amp;</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="484"/>
-        <source>Manually start playing videos</source>
-        <translation>Démarrer manuellement la lecture de vidéos</translation>
+        <source>&amp;Pause</source>
+        <translation>&amp;Pause</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="847"/>
-        <source>Choose your content location</source>
-        <translation>Choisissez l&apos;emplacement de votre contenu</translation>
+        <source>Pause playback</source>
+        <translation>Mettre en pause</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="314"/>
-        <location filename="src/mainwindow.cpp" line="1142"/>
-        <location filename="src/mainwindow.cpp" line="1150"/>
-        <source>&amp;Play</source>
-        <translation>&amp;Jouer</translation>
+        <source>&amp;Loading...</source>
+        <translation>&amp;Chargement...</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="315"/>
-        <location filename="src/mainwindow.cpp" line="1143"/>
-        <location filename="src/mainwindow.cpp" line="1151"/>
-        <source>Resume playback</source>
-        <translation>Relancer la lecture</translation>
+        <source>Leave &amp;Full Screen</source>
+        <translation>Quitter le &amp;mode plein écran</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1437"/>
         <source>Remaining time: %1</source>
         <translation>Temps restant : %1</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1528"/>
         <source>Volume at %1%</source>
         <translation>Volume à %1</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1534"/>
         <source>Volume is muted</source>
         <translation>Volume actif</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1537"/>
         <source>Volume is unmuted</source>
         <translation>Volume inactif</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1548"/>
         <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="1595"/>
         <source>Your privacy is now safe</source>
         <translation>Votre confidentialité est maintenant respectée</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1610"/>
         <source>Downloads complete</source>
         <translation>Téléchargements terminés</translation>
     </message>
+    <message>
+        <source>%1 version %2 is now available.</source>
+        <translation>%1 version %2 est maintenant disponible</translation>
+    </message>
+    <message>
+        <source>Remind me later</source>
+        <translation>Me rappeler plus tard</translation>
+    </message>
+    <message>
+        <source>Update</source>
+        <translation>Mettre à jour</translation>
+    </message>
 </context>
 <context>
     <name>MediaView</name>
     <message>
-        <location filename="src/mediaview.cpp" line="702"/>
         <source>You can now paste the YouTube link into another application</source>
         <translation>Vous pouvez maintenant copier l&apos;adresse Youtube dans une autre application</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="710"/>
         <source>You can now paste the video stream URL into another application</source>
         <translation>Vous pouvez maintenant coller l&apos;adresse du flux vidéo dans une autre application</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="711"/>
         <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="800"/>
         <source>This is just the demo version of %1.</source>
         <translation>C&apos;est juste la version démo de %1.</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="801"/>
         <source>It allows you to test the application and see if it works for you.</source>
         <translation>Cela vous permet de tester l&apos;application et voir si cela fonctionne pour vous.</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="833"/>
+        <source>Get the full version</source>
+        <translation>Obtenir la version complète</translation>
+    </message>
+    <message>
         <source>Continue</source>
         <translation>Continuer</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="988"/>
+        <source>Downloading %1</source>
+        <translation>%1 Téléchargement</translation>
+    </message>
+    <message>
         <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="1001"/>
         <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="1003"/>
         <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="1096"/>
         <source>Sent from %1</source>
         <translation>Envoyé par %1</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="1128"/>
         <source>Unsubscribe from %1</source>
         <translation>Se désabonner de %1</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="1132"/>
         <source>Subscribe to %1</source>
         <translation>S&apos;abonner à %1</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="1166"/>
         <source>Unsubscribed from %1</source>
         <translation>Se désabonner de %1</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="1169"/>
         <source>Subscribed to %1</source>
         <translation>S&apos;abonner à %1</translation>
     </message>
-    <message>
-        <location filename="src/mediaview.cpp" line="808"/>
-        <source>Get the full version</source>
-        <translation>Obtenir la version complète</translation>
-    </message>
-    <message>
-        <location filename="src/mediaview.cpp" line="847"/>
-        <source>Downloading %1</source>
-        <translation>%1 Téléchargement</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>Une nouvelle version 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>%1 %2 est maintenant disponible. Vous avez %3.</translation>
     </message>
     <message>
-        <location filename="local/src/updatedialog.cpp" line="33"/>
         <source>Would you like to download it now?</source>
         <translation>Voulez-vous la télécharger maintenant ?</translation>
     </message>
     <message>
-        <location filename="local/src/updatedialog.cpp" line="39"/>
         <source>Skip This Version</source>
         <translation>Sauter cette version</translation>
     </message>
     <message>
-        <location filename="local/src/updatedialog.cpp" line="43"/>
         <source>Remind Me Later</source>
         <translation>Me le rappeler plus tard</translation>
     </message>
     <message>
-        <location filename="local/src/updatedialog.cpp" line="47"/>
         <source>Install Update</source>
         <translation>Installer la mise à jour</translation>
     </message>
 <context>
     <name>PasteLineEdit</name>
     <message>
-        <location filename="local/src/pastelineedit.cpp" line="6"/>
         <source>Paste</source>
         <translation>Coller</translation>
     </message>
 <context>
     <name>PlaylistItemDelegate</name>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="209"/>
         <source>%1 views</source>
         <translation>%1 vues</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="309"/>
         <source>%1 of %2 (%3) — %4</source>
         <translation>%1 de %2 (%3) — %4</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="316"/>
         <source>Preparing</source>
         <translation>Préparation</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="318"/>
         <source>Failed</source>
         <translation>Échec</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="320"/>
         <source>Completed</source>
         <translation>Terminé</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="322"/>
         <source>Stopped</source>
         <translation>Arrêté</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="358"/>
         <source>Stop downloading</source>
         <translation>Arrêter le téléchargement</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="368"/>
         <source>Show in %1</source>
         <translation>Montrer dans %1</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="370"/>
         <source>Open parent folder</source>
         <translation>Ouvrir le dossier parent</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="379"/>
         <source>Restart downloading</source>
         <translation>Redémarrer le téléchargement</translation>
     </message>
 <context>
     <name>PlaylistModel</name>
     <message>
-        <location filename="src/playlistmodel.cpp" line="70"/>
         <source>Searching...</source>
         <translation>Recherche en cours…</translation>
     </message>
     <message>
-        <location filename="src/playlistmodel.cpp" line="71"/>
         <source>Show %1 More</source>
         <translation>Afficher %1 de plus</translation>
     </message>
     <message>
-        <location filename="src/playlistmodel.cpp" line="72"/>
         <source>No videos</source>
         <translation>Pas de vidéos</translation>
     </message>
     <message>
-        <location filename="src/playlistmodel.cpp" line="73"/>
         <source>No more videos</source>
         <translation>Il n&apos;y a plus de vidéos</translation>
     </message>
 <context>
     <name>RefineSearchWidget</name>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="49"/>
         <source>Sort by</source>
         <translation>Trier par</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="53"/>
         <source>Relevance</source>
         <translation>Pertinence</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="54"/>
-        <location filename="src/refinesearchwidget.cpp" line="69"/>
         <source>Date</source>
         <translation>Date</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="55"/>
         <source>View Count</source>
         <translation>Nombre de vues</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="56"/>
         <source>Rating</source>
         <translation>Note</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="73"/>
         <source>Anytime</source>
         <translation>N&apos;importe quand</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="74"/>
         <source>Today</source>
         <translation>Aujourd&apos;hui</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="75"/>
         <source>7 Days</source>
         <translation>7 jours</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="76"/>
         <source>30 Days</source>
         <translation>30 jours</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="89"/>
         <source>Duration</source>
         <translation>Durée</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="93"/>
-        <location filename="src/refinesearchwidget.cpp" line="119"/>
         <source>All</source>
         <translation>Tous</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="94"/>
         <source>Short</source>
         <translation>Court</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="95"/>
         <source>Medium</source>
         <translation>Moyen</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="96"/>
         <source>Long</source>
         <translation>Long</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="99"/>
         <source>Less than 4 minutes</source>
         <translation>Inférieur à 4 minutes</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="100"/>
         <source>Between 4 and 20 minutes</source>
         <translation>Entre 4 et 20 minutes</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="101"/>
         <source>Longer than 20 minutes</source>
         <translation>Plus long que 20 minutes</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="115"/>
         <source>Quality</source>
         <translation>Qualité</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="120"/>
         <source>High Definition</source>
         <translation>Haute définition</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="123"/>
         <source>720p or higher</source>
         <translation>720p ou plus</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="136"/>
         <source>Done</source>
         <translation>Terminer</translation>
     </message>
 <context>
     <name>RegionsView</name>
     <message>
-        <location filename="src/regionsview.cpp" line="39"/>
         <source>Done</source>
         <translation>Terminé</translation>
     </message>
 <context>
     <name>SearchLineEdit</name>
     <message>
-        <location filename="src/searchlineedit.cpp" line="55"/>
         <source>Search</source>
         <translation>Chercher</translation>
     </message>
 <context>
     <name>SearchView</name>
     <message>
-        <location filename="src/searchview.cpp" line="83"/>
         <source>Welcome to &lt;a href=&apos;%1&apos;&gt;%2&lt;/a&gt;,</source>
         <translation>Bienvenue sur  &lt;a href=&apos;%1&apos;&gt;%2&lt;/a&gt;,</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="200"/>
-        <source>Get the full version</source>
-        <translation>Obtenir la version complète</translation>
-    </message>
-    <message>
-        <location filename="src/searchview.cpp" line="110"/>
         <source>Enter</source>
         <extracomment>&quot;Enter&quot;, as in &quot;type&quot;. The whole phrase says: &quot;Enter a keyword to start watching videos&quot;</extracomment>
         <translation>Entrer</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="117"/>
         <source>a keyword</source>
         <translation>un mot-clé</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="118"/>
         <source>a channel</source>
         <translation>une chaîne</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="125"/>
         <source>to start watching videos.</source>
         <translation>pour commencer à regarder des vidéos.</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="156"/>
         <source>Watch</source>
         <translation>Regarder</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="174"/>
         <source>Recent keywords</source>
         <translation>Derniers mots-clés</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="186"/>
         <source>Recent channels</source>
         <translation>Chaînes récentes</translation>
     </message>
+    <message>
+        <source>Get the full version</source>
+        <translation>Obtenir la version complète</translation>
+    </message>
 </context>
 <context>
     <name>SidebarHeader</name>
     <message>
-        <location filename="src/sidebarheader.cpp" line="38"/>
-        <location filename="src/sidebarheader.cpp" line="45"/>
         <source>&amp;Back</source>
         <translation>&amp;Retour</translation>
     </message>
     <message>
-        <location filename="src/sidebarheader.cpp" line="76"/>
         <source>Forward to %1</source>
         <translation>Continuer à %1</translation>
     </message>
     <message>
-        <location filename="src/sidebarheader.cpp" line="89"/>
         <source>Back to %1</source>
         <translation>Revenir à %1</translation>
     </message>
 <context>
     <name>SidebarWidget</name>
     <message>
-        <location filename="src/sidebarwidget.cpp" line="68"/>
         <source>Refine Search</source>
         <translation>Affiner la recherche</translation>
     </message>
     <message>
-        <location filename="src/sidebarwidget.cpp" line="167"/>
         <source>Did you mean: %1</source>
         <translation>Vouliez-vous dire : %1</translation>
     </message>
 <context>
     <name>SnapshotSettings</name>
     <message>
-        <location filename="src/snapshotsettings.cpp" line="47"/>
         <source>Change location...</source>
         <translation>Changer d&apos;emplacement...</translation>
     </message>
     <message>
-        <location filename="src/snapshotsettings.cpp" line="64"/>
         <source>Snapshot saved to %1</source>
         <translation>Instantané sauvé dans %1</translation>
     </message>
     <message>
-        <location filename="src/snapshotsettings.cpp" line="117"/>
         <source>Snapshots location changed.</source>
         <translation>Emplacement de instantanés changé.</translation>
     </message>
 <context>
     <name>StandardFeedsView</name>
     <message>
-        <location filename="src/standardfeedsview.cpp" line="107"/>
         <source>Most Popular</source>
         <translation>Les plus populaires</translation>
     </message>
 </context>
+<context>
+    <name>UpdateDialog</name>
+    <message>
+        <source>Downloading update...</source>
+        <translation>Téléchargement de la mise à jour...</translation>
+    </message>
+    <message>
+        <source>Downloading %1...</source>
+        <translation>Téléchargement de %1...</translation>
+    </message>
+</context>
 <context>
     <name>Video</name>
     <message>
-        <location filename="src/video.cpp" line="287"/>
         <source>Cannot get video stream for %1</source>
         <translation>Impossible d&apos;obtenir le flux vidéo de %1</translation>
     </message>
-    <message>
-        <location filename="src/video.cpp" line="292"/>
-        <source>Network error: %1 for %2</source>
-        <translation>Erreur réseau : %1 pour %2</translation>
-    </message>
 </context>
 <context>
     <name>YTRegions</name>
     <message>
-        <location filename="src/ytregions.cpp" line="28"/>
         <source>Algeria</source>
         <translation>Algérie</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="29"/>
         <source>Argentina</source>
         <translation>Argentine</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="30"/>
         <source>Australia</source>
         <translation>Australie</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="31"/>
         <source>Belgium</source>
         <translation>Belgique</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="32"/>
         <source>Brazil</source>
         <translation>Brésil</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="33"/>
         <source>Canada</source>
         <translation>Canada</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="34"/>
         <source>Chile</source>
         <translation>Chili</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="35"/>
         <source>Colombia</source>
         <translation>Colombie</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="36"/>
         <source>Czech Republic</source>
         <translation>République Tchèque</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="37"/>
         <source>Egypt</source>
         <translation>Égypte</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="38"/>
         <source>France</source>
         <translation>France</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="39"/>
         <source>Germany</source>
         <translation>Allemagne</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="40"/>
         <source>Ghana</source>
         <translation>Ghana</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="41"/>
         <source>Greece</source>
         <translation>Grèce</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="42"/>
         <source>Hong Kong</source>
         <translation>Hong Kong</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="43"/>
         <source>Hungary</source>
         <translation>Hongrie</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="44"/>
         <source>India</source>
         <translation>Inde</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="45"/>
         <source>Indonesia</source>
         <translation>Indonésie</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="46"/>
         <source>Ireland</source>
         <translation>Irelande</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="47"/>
         <source>Israel</source>
         <translation>Israël</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="48"/>
         <source>Italy</source>
         <translation>Italie</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="49"/>
         <source>Japan</source>
         <translation>Japon</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="50"/>
         <source>Jordan</source>
         <translation>Jordanie</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="51"/>
         <source>Kenya</source>
         <translation>Kenya</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="52"/>
         <source>Malaysia</source>
         <translation>Malaisie</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="53"/>
         <source>Mexico</source>
         <translation>Mexique</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="54"/>
         <source>Morocco</source>
         <translation>Maroc</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="55"/>
         <source>Netherlands</source>
         <translation>Pays-Bas</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="56"/>
         <source>New Zealand</source>
         <translation>Nouvelle Zélande</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="57"/>
         <source>Nigeria</source>
         <translation>Nigeria</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="58"/>
         <source>Peru</source>
         <translation>Pérou</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="59"/>
         <source>Philippines</source>
         <translation>Philippines</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="60"/>
         <source>Poland</source>
         <translation>Pologne</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="61"/>
         <source>Russia</source>
         <translation>Russie</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="62"/>
         <source>Saudi Arabia</source>
         <translation>Arabie Saoudite</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="63"/>
         <source>Singapore</source>
         <translation>Singapour</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="64"/>
         <source>South Africa</source>
         <translation>Afrique du Sud</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="65"/>
         <source>South Korea</source>
         <translation>Corée du Sud</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="66"/>
         <source>Spain</source>
         <translation>Espagne</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="67"/>
         <source>Sweden</source>
         <translation>Suède</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="68"/>
         <source>Taiwan</source>
         <translation>Taïwan</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="69"/>
         <source>Tunisia</source>
         <translation>Tunisie</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="70"/>
         <source>Turkey</source>
         <translation>Turquie</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="71"/>
         <source>Uganda</source>
         <translation>Ouganda</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="72"/>
         <source>United Arab Emirates</source>
         <translation>Émirats Arabes Unis</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="73"/>
         <source>United Kingdom</source>
         <translation>Royaume Uni</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="74"/>
         <source>Yemen</source>
         <translation>Yémen</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="148"/>
         <source>Worldwide</source>
         <translation>Monde entier</translation>
     </message>
index 7d91ba7c815cf3b1b3542e20a8ee32b7e64e60e8..ae4941f78fcda4f5dc85c90f00e65b353b4b57cf 100644 (file)
@@ -2,67 +2,42 @@
 <context>
     <name>AboutView</name>
     <message>
-        <location filename="src/aboutview.cpp" line="58"/>
         <source>There&apos;s life outside the browser!</source>
         <translation>Existe vida máis aló do navegador!</translation>
     </message>
     <message>
-        <location filename="src/aboutview.cpp" line="59"/>
         <source>Version %1</source>
         <translation>Versión %1</translation>
     </message>
     <message>
-        <location filename="src/aboutview.cpp" line="64"/>
         <source>Licensed to: %1</source>
         <translation>Baixo licenza por: %1</translation>
     </message>
     <message>
-        <location filename="src/aboutview.cpp" line="68"/>
         <source>%1 is Free Software but its development takes precious time.</source>
         <translation>%1 é Software libre, mais o seu desenvolvemento leva un tempo precioso.</translation>
     </message>
     <message>
-        <location filename="src/aboutview.cpp" line="69"/>
         <source>Please &lt;a href=&apos;%1&apos;&gt;donate&lt;/a&gt; to support the continued development of %2.</source>
         <translation>Faga unha &lt;a href=&apos;%1&apos;&gt;doazón&lt;/a&gt; para axudar na continuación do desenvolvemento de %2.</translation>
     </message>
     <message>
-        <location filename="src/aboutview.cpp" line="73"/>
-        <source>You may want to try my other apps as well:</source>
-        <translation>Pode querer probar tamén outros aplicativos meus:</translation>
-    </message>
-    <message>
-        <location filename="src/aboutview.cpp" line="76"/>
-        <source>%1, a YouTube music player</source>
-        <translation>%1, un reprodutor de música de YouTube</translation>
-    </message>
-    <message>
-        <location filename="src/aboutview.cpp" line="80"/>
-        <source>%1, a music player</source>
-        <translation>%1, un reprodutor de música</translation>
-    </message>
-    <message>
-        <location filename="src/aboutview.cpp" line="86"/>
         <source>Translate %1 to your native language using %2</source>
         <translation>Traducir %1 ao seu idioma empregando %2</translation>
     </message>
     <message>
-        <location filename="src/aboutview.cpp" line="91"/>
         <source>Icon designed by %1.</source>
         <translation>Icona deseñada por %1.</translation>
     </message>
     <message>
-        <location filename="src/aboutview.cpp" line="95"/>
         <source>Released under the &lt;a href=&apos;%1&apos;&gt;GNU General Public License&lt;/a&gt;</source>
         <translation>Publicado baixo a &lt;a href=&apos;%1&apos;&gt;Licenza pública Xeral GNU&lt;/a&gt;</translation>
     </message>
     <message>
-        <location filename="src/aboutview.cpp" line="110"/>
         <source>&amp;Close</source>
         <translation>&amp;Pechar</translation>
     </message>
     <message>
-        <location filename="src/aboutview.h" line="40"/>
         <source>About</source>
         <translation>Sobre</translation>
     </message>
 <context>
     <name>ActivationDialog</name>
     <message>
-        <location filename="local/src/activationdialog.cpp" line="17"/>
         <source>Enter your License Details</source>
         <translation>Introduce os detalles da túa licenza</translation>
     </message>
     <message>
-        <location filename="local/src/activationdialog.cpp" line="29"/>
         <source>&amp;Email:</source>
         <translation>&amp;Correo electrónico:</translation>
     </message>
     <message>
-        <location filename="local/src/activationdialog.cpp" line="35"/>
         <source>&amp;Code:</source>
         <translation>&amp;Código:</translation>
     </message>
 <context>
     <name>ActivationView</name>
     <message>
-        <location filename="local/src/activationview.cpp" line="47"/>
         <source>Please license %1</source>
         <translation>Licenza %1</translation>
     </message>
     <message>
-        <location filename="local/src/activationview.cpp" line="51"/>
         <source>This demo has expired.</source>
         <translation>Esta demo caducou.</translation>
     </message>
     <message>
-        <location filename="local/src/activationview.cpp" line="53"/>
         <source>The full version allows you to watch videos without interruptions.</source>
-        <oldsource>The full version allows you to download videos longer than %1 minutes and to watch videos without interruptions.</oldsource>
         <translation>A versión completa permite ver os vídeos sen interrupcións.</translation>
     </message>
     <message>
-        <location filename="local/src/activationview.cpp" line="55"/>
         <source>Without a license, the application will expire in %1 days.</source>
         <translation>Sen licenza o aplicativo expira en %1 días.</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>Ao comprar a versión completa, tamén vai apoiar o traballo arreo que puxen en crear %1.</translation>
     </message>
     <message>
-        <location filename="local/src/activationview.cpp" line="70"/>
         <source>Use Demo</source>
         <translation>Usar a demostración</translation>
     </message>
     <message>
-        <location filename="local/src/activationview.cpp" line="77"/>
         <source>Enter License</source>
         <translation>Introducir a licenza</translation>
     </message>
     <message>
-        <location filename="local/src/activationview.cpp" line="85"/>
         <source>Buy License</source>
         <translation>Comprar a licenza</translation>
     </message>
 </context>
+<context>
+    <name>AppWidget</name>
+    <message>
+        <source>Download</source>
+        <translation type="unfinished"/>
+    </message>
+</context>
 <context>
     <name>ChannelAggregator</name>
     <message>
-        <location filename="src/channelaggregator.cpp" line="183"/>
         <source>By %1</source>
         <translation>Por %1</translation>
     </message>
     <message numerus="yes">
-        <location filename="src/channelaggregator.cpp" line="185"/>
         <source>You have %n new video(s)</source>
         <translation type="unfinished"><numerusform></numerusform><numerusform></numerusform></translation>
     </message>
 <context>
     <name>ChannelItemDelegate</name>
     <message>
-        <location filename="src/channelitemdelegate.cpp" line="67"/>
         <source>All Videos</source>
         <translation>Todos os vídeos</translation>
     </message>
     <message>
-        <location filename="src/channelitemdelegate.cpp" line="85"/>
         <source>Unwatched Videos</source>
         <translation>Vídeos non vistos</translation>
     </message>
 <context>
     <name>ChannelView</name>
     <message>
-        <location filename="src/channelview.cpp" line="151"/>
-        <source>Mark all as watched</source>
-        <translation>Marcar todos como vistos</translation>
-    </message>
-    <message>
-        <location filename="src/channelview.cpp" line="159"/>
-        <source>Show Updated</source>
-        <translation>Amosar a actualización</translation>
-    </message>
-    <message>
-        <location filename="src/channelview.cpp" line="103"/>
         <source>Name</source>
         <translation>Nome</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="110"/>
         <source>Last Updated</source>
         <translation>Última actualización</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="117"/>
         <source>Last Added</source>
         <translation>Último engadido</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="124"/>
         <source>Last Watched</source>
         <translation>Último visto</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="131"/>
         <source>Most Watched</source>
         <translation>Máis vistos</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="139"/>
         <source>Sort by</source>
         <translation>Ordenar por</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="222"/>
+        <source>Mark all as watched</source>
+        <translation>Marcar todos como vistos</translation>
+    </message>
+    <message>
+        <source>Show Updated</source>
+        <translation>Amosar a actualización</translation>
+    </message>
+    <message>
         <source>All Videos</source>
         <translation>Todos os vídeos</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="226"/>
         <source>Unwatched Videos</source>
         <translation>Vídeos non vistos</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="244"/>
         <source>Mark as Watched</source>
         <translation>Marcar como visto</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="257"/>
         <source>Unsubscribe</source>
         <translation>Darse de baixa</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="270"/>
         <source>There are no updated subscriptions at this time.</source>
         <translation>Neste momento non ten subscricións de actualización.</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="272"/>
         <source>You have no subscriptions. Use the star symbol to subscribe to channels.</source>
         <translation>Non ten subscricións. Utilice o símbolo da estrela para subscribirse ás canles.</translation>
     </message>
 <context>
     <name>ClearButton</name>
     <message>
-        <location filename="src/exlineedit.cpp" line="6"/>
         <source>Clear</source>
         <translation>Limpar</translation>
     </message>
 <context>
     <name>DataUtils</name>
     <message>
-        <location filename="src/datautils.cpp" line="88"/>
         <source>Just now</source>
         <translation type="unfinished"/>
     </message>
     <message numerus="yes">
-        <location filename="src/datautils.cpp" line="90"/>
-        <source>%n minute(s) ago</source>
-        <translation type="unfinished"><numerusform></numerusform><numerusform></numerusform></translation>
-    </message>
-    <message numerus="yes">
-        <location filename="src/datautils.cpp" line="92"/>
         <source>%n hour(s) ago</source>
         <translation type="unfinished"><numerusform></numerusform><numerusform></numerusform></translation>
     </message>
     <message numerus="yes">
-        <location filename="src/datautils.cpp" line="94"/>
         <source>%n day(s) ago</source>
         <translation type="unfinished"><numerusform></numerusform><numerusform></numerusform></translation>
     </message>
     <message numerus="yes">
-        <location filename="src/datautils.cpp" line="96"/>
         <source>%n weeks(s) ago</source>
         <translation type="unfinished"><numerusform></numerusform><numerusform></numerusform></translation>
     </message>
     <message numerus="yes">
-        <location filename="src/datautils.cpp" line="98"/>
         <source>%n month(s) ago</source>
         <translation type="unfinished"><numerusform></numerusform><numerusform></numerusform></translation>
     </message>
 <context>
     <name>DownloadItem</name>
     <message>
-        <location filename="src/downloaditem.cpp" line="406"/>
         <source>bytes</source>
         <translation>bytes</translation>
     </message>
     <message>
-        <location filename="src/downloaditem.cpp" line="409"/>
         <source>KB</source>
         <translation>KB</translation>
     </message>
     <message>
-        <location filename="src/downloaditem.cpp" line="412"/>
         <source>MB</source>
         <translation>MB</translation>
     </message>
     <message>
-        <location filename="src/downloaditem.cpp" line="421"/>
         <source>bytes/sec</source>
         <translation>bytes/seg</translation>
     </message>
     <message>
-        <location filename="src/downloaditem.cpp" line="424"/>
         <source>KB/sec</source>
         <translation>KB/seg</translation>
     </message>
     <message>
-        <location filename="src/downloaditem.cpp" line="427"/>
         <source>MB/sec</source>
         <translation>MB/seg</translation>
     </message>
     <message>
-        <location filename="src/downloaditem.cpp" line="433"/>
         <source>seconds</source>
         <translation>segundos</translation>
     </message>
     <message>
-        <location filename="src/downloaditem.cpp" line="436"/>
         <source>minutes</source>
         <translation>minutos</translation>
     </message>
     <message>
-        <location filename="src/downloaditem.cpp" line="439"/>
         <source>%4 %5 remaining</source>
         <translation>%4 %5 restantes</translation>
     </message>
 <context>
     <name>DownloadManager</name>
     <message>
-        <location filename="src/downloadmanager.cpp" line="77"/>
         <source>This is just the demo version of %1.</source>
         <translation>Isto é só a versión demo de %1.</translation>
     </message>
     <message>
-        <location filename="src/downloadmanager.cpp" line="79"/>
         <source>It can only download videos shorter than %1 minutes so you can test the download functionality.</source>
         <translation>Só se poden descargar vídeos curtos de menos de %1 minutos para que poida probar a utilidade de descargas.</translation>
     </message>
     <message>
-        <location filename="src/downloadmanager.cpp" line="85"/>
         <source>Continue</source>
         <translation>Continuar</translation>
     </message>
     <message>
-        <location filename="src/downloadmanager.cpp" line="86"/>
         <source>Get the full version</source>
         <translation>Obter a versión completa</translation>
     </message>
     <message>
-        <location filename="src/downloadmanager.cpp" line="157"/>
         <source>%1 downloaded in %2</source>
         <translation>%1 descargado en %2</translation>
     </message>
     <message>
-        <location filename="src/downloadmanager.cpp" line="160"/>
         <source>Download finished</source>
         <translation>Rematou a descarga</translation>
     </message>
     <message numerus="yes">
-        <location filename="src/downloadmanager.cpp" line="165"/>
         <source>%n Download(s)</source>
         <translation type="unfinished"><numerusform></numerusform><numerusform></numerusform></translation>
     </message>
 <context>
     <name>DownloadSettings</name>
     <message>
-        <location filename="src/downloadsettings.cpp" line="36"/>
         <source>Change location...</source>
         <translation>Cambiar a localización...</translation>
     </message>
     <message>
-        <location filename="src/downloadsettings.cpp" line="69"/>
         <source>Choose the download location</source>
         <translation>Escolla a localización da descarga</translation>
     </message>
     <message>
-        <location filename="src/downloadsettings.cpp" line="81"/>
         <source>Download location changed.</source>
         <translation>Cambiada a localización da descarga.</translation>
     </message>
     <message>
-        <location filename="src/downloadsettings.cpp" line="83"/>
         <source>Current downloads will still go in the previous location.</source>
         <translation>A descarga actual aínda se fai na localización anterior.</translation>
     </message>
     <message>
-        <location filename="src/downloadsettings.cpp" line="94"/>
         <source>Downloading to: %1</source>
         <translation>Descargando en: %1</translation>
     </message>
 <context>
     <name>DownloadView</name>
     <message>
-        <location filename="src/downloadview.cpp" line="38"/>
-        <location filename="src/downloadview.h" line="45"/>
         <source>Downloads</source>
         <translation>Descargas</translation>
     </message>
 </context>
-<context>
-    <name>DownloadWidget</name>
-    <message>
-        <location filename="local/src/updatedialog.cpp" line="60"/>
-        <source>Downloading update...</source>
-        <translation>Descargando a actualización...</translation>
-    </message>
-</context>
 <context>
     <name>Extra</name>
     <message>
-        <location filename="local/src/extra.cpp" line="251"/>
         <source>The executable file has been tempered with, maybe by a virus.</source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="local/src/extra.cpp" line="252"/>
         <source>%1 will not run. Try installing again.</source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="local/src/extra.cpp" line="253"/>
         <source>Quit</source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="local/src/extra.cpp" line="254"/>
         <source>Reinstall</source>
         <translation type="unfinished"/>
     </message>
 <context>
     <name>GlobalShortcuts</name>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="36"/>
         <source>Play</source>
         <translation>Reproducir</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="37"/>
         <source>Pause</source>
         <translation>Deter</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="38"/>
         <source>Play/Pause</source>
         <translation>Reproducir/deter</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="39"/>
         <source>Stop</source>
         <translation>Parar</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="40"/>
         <source>Stop playing after current track</source>
         <translation>Parar a reprodución despois da pista actual</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="41"/>
         <source>Next track</source>
         <translation>Seguinte pista</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="42"/>
         <source>Previous track</source>
         <translation>Pista anterior</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="43"/>
         <source>Increase volume</source>
         <translation>Aumentar volume</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="44"/>
         <source>Decrease volume</source>
         <translation>Diminuír volume</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="45"/>
         <source>Mute</source>
         <translation>Silenciar</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="46"/>
         <source>Seek forward</source>
         <translation>Buscar cara adiante</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="47"/>
         <source>Seek backward</source>
         <translation>Buscar cara atrás</translation>
     </message>
 <context>
     <name>HomeView</name>
     <message>
-        <location filename="src/homeview.cpp" line="58"/>
         <source>Search</source>
         <translation>Buscar</translation>
     </message>
     <message>
-        <location filename="src/homeview.cpp" line="60"/>
         <source>Find videos and channels by keyword</source>
         <translation>Atopar vídeos e canles por palabra clave</translation>
     </message>
     <message>
-        <location filename="src/homeview.cpp" line="65"/>
         <source>Browse</source>
         <translation>Examinar</translation>
     </message>
     <message>
-        <location filename="src/homeview.cpp" line="67"/>
         <source>Browse videos by category</source>
         <translation>Examinar vídeos por categoría</translation>
     </message>
     <message>
-        <location filename="src/homeview.cpp" line="71"/>
         <source>Subscriptions</source>
         <translation>Subscricións</translation>
     </message>
     <message>
-        <location filename="src/homeview.cpp" line="73"/>
         <source>Channel subscriptions</source>
         <translation>Subscricións a canles</translation>
     </message>
     <message>
-        <location filename="src/homeview.h" line="44"/>
         <source>Make yourself comfortable</source>
         <translation>Síntase cómodo</translation>
     </message>
 <context>
     <name>LoadingWidget</name>
     <message>
-        <location filename="src/loadingwidget.cpp" line="125"/>
         <source>Error</source>
         <translation>Erro</translation>
     </message>
 <context>
     <name>MainWindow</name>
     <message>
-        <location filename="src/mainwindow.cpp" line="291"/>
+        <source>&amp;Window</source>
+        <translation>&amp;Xanela</translation>
+    </message>
+    <message>
+        <source>&amp;Minimize</source>
+        <translation>&amp;Minimizar</translation>
+    </message>
+    <message>
         <source>&amp;Stop</source>
         <translation>&amp;Parar</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="292"/>
         <source>Stop playback and go back to the search view</source>
         <translation>Parara a reprodución e volver á vista de busca</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="307"/>
+        <source>P&amp;revious</source>
+        <translation>A&amp;nterior</translation>
+    </message>
+    <message>
+        <source>Go back to the previous track</source>
+        <translation>Ir á pista anterior</translation>
+    </message>
+    <message>
         <source>S&amp;kip</source>
         <translation>&amp;Saltar</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="308"/>
         <source>Skip to the next video</source>
         <translation>Saltar ao seguinte vídeo</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1134"/>
-        <source>&amp;Pause</source>
-        <translation>&amp;Deter</translation>
+        <source>&amp;Play</source>
+        <translation>&amp;Reproducir</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1135"/>
-        <source>Pause playback</source>
-        <translation>Deter a reprodución</translation>
+        <source>Resume playback</source>
+        <translation>Continuar a reprodución</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="321"/>
         <source>&amp;Full Screen</source>
         <translation>&amp;Pantalla completa</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="322"/>
         <source>Go full screen</source>
         <translation>Ir á pantalla completa</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="336"/>
+        <source>&amp;Compact Mode</source>
+        <translation>Modo &amp;compacto</translation>
+    </message>
+    <message>
         <source>Hide the playlist and the toolbar</source>
         <translation>Agochar a lista de reprodución e a barra de tarefas</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="349"/>
+        <source>Open the &amp;YouTube Page</source>
+        <translation>Abrir a páxina de &amp;YouTube</translation>
+    </message>
+    <message>
         <source>Go to the YouTube video page and pause playback</source>
         <translation>Ir á páxina de vídeos YouTube e por en pausa a reprodución</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="356"/>
+        <source>Copy the YouTube &amp;Link</source>
+        <translation>Copiar a &amp;ligazón de YouTube</translation>
+    </message>
+    <message>
         <source>Copy the current video YouTube link to the clipboard</source>
         <translation>Copiar a ligazón actual de vídeo de YouTube no portapapeis</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="363"/>
+        <source>Copy the Video Stream &amp;URL</source>
+        <translation>Copiar o &amp;URL do fluxo de vídeo</translation>
+    </message>
+    <message>
         <source>Copy the current video stream URL to the clipboard</source>
         <translation>Copiar o URL actual do fluxo de vídeo no portapapeis</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="370"/>
+        <source>Find Video &amp;Parts</source>
+        <translation>Atopar &amp;partes de vídeos</translation>
+    </message>
+    <message>
         <source>Find other video parts hopefully in the right order</source>
         <translation>Buscar pezas doutro vídeo agardando sexan na orde correcta</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="376"/>
         <source>&amp;Remove</source>
         <translation>&amp;Retirar</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="377"/>
         <source>Remove the selected videos from the playlist</source>
         <translation>Retirar os vídeos seleccionados da lista de reprodución</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="383"/>
         <source>Move &amp;Up</source>
         <translation>Mover cara &amp;arriba</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="384"/>
         <source>Move up the selected videos in the playlist</source>
         <translation>Mover cara arriba os vídeos seleccionados na lista de reprodución</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="390"/>
         <source>Move &amp;Down</source>
         <translation>Mover cara a&amp;baixo</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="391"/>
         <source>Move down the selected videos in the playlist</source>
         <translation>Mover cara abaixo os vídeos seleccionados na lista de reprodución</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="402"/>
+        <source>&amp;Clear Recent Searches</source>
+        <translation>&amp;Limpar as buscas recentes</translation>
+    </message>
+    <message>
         <source>Clear the search history. Cannot be undone.</source>
         <translation>Limpar o historial de buscas. Non se pode desfacer.</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="407"/>
         <source>&amp;Quit</source>
         <translation>&amp;Saír</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="410"/>
         <source>Bye</source>
         <translation>Deica logo</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="414"/>
         <source>&amp;Website</source>
         <translation>Sitio &amp;web</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="416"/>
         <source>%1 on the Web</source>
         <translation>%1 na web</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="422"/>
+        <source>Make a &amp;Donation</source>
+        <translation>Facer unha &amp;doazón</translation>
+    </message>
+    <message>
         <source>Please support the continued development of %1</source>
         <translation>Por favor apoie o desenvolvemento continuo de %1</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="427"/>
         <source>&amp;About</source>
         <translation>&amp;Sobre</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="429"/>
         <source>Info about %1</source>
         <translation>Información acerca de %1</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="437"/>
         <source>Search</source>
         <translation>Buscar</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="456"/>
         <source>Mute volume</source>
         <translation>Silenciar o volume</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="490"/>
-        <location filename="src/mainwindow.cpp" line="1609"/>
+        <source>&amp;Manually Start Playing</source>
+        <translation>Comezar a reprodución &amp;manualmente</translation>
+    </message>
+    <message>
+        <source>Manually start playing videos</source>
+        <translation>Comezar manualmente a reprodución dos vídeos</translation>
+    </message>
+    <message>
         <source>&amp;Downloads</source>
         <translation>&amp;Descargas</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="491"/>
         <source>Show details about video downloads</source>
         <translation>Mostrar os detalles sobre as descargas de vídeo</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="499"/>
         <source>&amp;Download</source>
         <translation>&amp;Descarga</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="500"/>
         <source>Download the current video</source>
         <translation>Descargando o vídeo actual</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="510"/>
         <source>Take &amp;Snapshot</source>
         <translation>Facer unha &amp;captura</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="517"/>
         <source>&amp;Subscribe to Channel</source>
         <translation>&amp;Subscribirse á canle</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="525"/>
         <source>Share the current video using %1</source>
         <translation>Compartir o vídeo actual empregando %1</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="545"/>
         <source>&amp;Email</source>
         <translation>&amp;Correo-e</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="546"/>
         <source>Email</source>
         <translation>Correo-e</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="551"/>
         <source>&amp;Close</source>
         <translation>&amp;Pechar</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="561"/>
         <source>&amp;Float on Top</source>
         <translation>&amp;Flotante e arriba</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="566"/>
         <source>&amp;Adjust Window Size</source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="571"/>
         <source>&amp;Stop After This Video</source>
         <translation>&amp;Deter despois deste vídeo</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="578"/>
         <source>&amp;Report an Issue...</source>
         <translation>&amp;Informar dun erro...</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="582"/>
         <source>&amp;Refine Search...</source>
         <translation>&amp;Afinar a busca...</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="594"/>
         <source>More...</source>
         <translation>Máis...</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="597"/>
         <source>&amp;Related Videos</source>
         <translation>Vídeos &amp;relacionados</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="599"/>
         <source>Watch videos related to the current one</source>
         <translation>Ver vídeos relacionados co actual</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="605"/>
         <source>Open in &amp;Browser...</source>
         <translation>Abrir no &amp;navegador</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="612"/>
-        <source>&amp;Love %1? Rate it!</source>
-        <translation>&amp;Gustoulle %1? Cualifíqueo!</translation>
+        <source>Restricted Mode</source>
+        <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="633"/>
-        <source>&amp;Application</source>
-        <translation>&amp;Aplicativo</translation>
+        <source>Hide videos that may contain inappropriate content</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <source>&amp;Love %1? Rate it!</source>
+        <translation>&amp;Gustoulle %1? Cualifíqueo!</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="618"/>
         <source>Buy %1...</source>
         <translation>Mercar %1...</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="647"/>
+        <source>&amp;Application</source>
+        <translation>&amp;Aplicativo</translation>
+    </message>
+    <message>
         <source>&amp;Playback</source>
         <translation>&amp;Reproducir</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="661"/>
         <source>&amp;Playlist</source>
         <translation>&amp;Lista de reprodución</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="670"/>
         <source>&amp;Video</source>
         <translation>&amp;Vídeo</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="686"/>
-        <source>&amp;View</source>
-        <translation>&amp;Ver</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="695"/>
         <source>&amp;Share</source>
         <translation>&amp;Compartir</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="709"/>
+        <source>&amp;View</source>
+        <translation>&amp;Ver</translation>
+    </message>
+    <message>
         <source>&amp;Help</source>
         <translation>A&amp;xuda</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="751"/>
         <source>Press %1 to raise the volume, %2 to lower it</source>
         <translation>Prema %1 para aumentar o volume, %2 para diminuílo</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1021"/>
-        <location filename="src/mainwindow.cpp" line="1027"/>
+        <source>Choose your content location</source>
+        <translation>Escolla a localización do seu contido</translation>
+    </message>
+    <message>
         <source>Opening %1</source>
         <translation>Abrindo %1</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1080"/>
         <source>Do you want to exit %1 with a download in progress?</source>
         <translation>Desexa saír de %1 cunha descarga en proceso?</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1081"/>
         <source>If you close %1 now, this download will be cancelled.</source>
         <translation>Se pecha %1 agora, esta descarga vai seren cancelada.</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1086"/>
         <source>Close and cancel download</source>
         <translation>Pechar e cancelar a descarga</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1087"/>
         <source>Wait for download to finish</source>
         <translation>Agardar a que remate a descarga</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1158"/>
-        <source>&amp;Loading...</source>
-        <translation type="unfinished"/>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="1264"/>
-        <source>Leave &amp;Full Screen</source>
-        <translation>Abandonar a &amp;pantalla completa</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="1718"/>
-        <source>%1 version %2 is now available.</source>
-        <translation>%1 versión %2 xa está dispoñíbel.</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="1722"/>
-        <source>Remind me later</source>
-        <translation>Lembrar máis adiante</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="1723"/>
-        <source>Update</source>
-        <translation>Actualizar</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="1127"/>
         <source>Error: %1</source>
         <translation>Produciuse un erro: %1</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="300"/>
-        <source>P&amp;revious</source>
-        <translation>A&amp;nterior</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="301"/>
-        <source>Go back to the previous track</source>
-        <translation>Ir á pista anterior</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="335"/>
-        <source>&amp;Compact Mode</source>
-        <translation>Modo &amp;compacto</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="348"/>
-        <source>Open the &amp;YouTube Page</source>
-        <translation>Abrir a páxina de &amp;YouTube</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="355"/>
-        <source>Copy the YouTube &amp;Link</source>
-        <translation>Copiar a &amp;ligazón de YouTube</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="362"/>
-        <source>Copy the Video Stream &amp;URL</source>
-        <translation>Copiar o &amp;URL do fluxo de vídeo</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="369"/>
-        <source>Find Video &amp;Parts</source>
-        <translation>Atopar &amp;partes de vídeos</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="397"/>
-        <source>&amp;Clear Recent Searches</source>
-        <translation>&amp;Limpar as buscas recentes</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="421"/>
-        <source>Make a &amp;Donation</source>
-        <translation>Facer unha &amp;doazón</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="483"/>
-        <source>&amp;Manually Start Playing</source>
-        <translation>Comezar a reprodución &amp;manualmente</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="484"/>
-        <source>Manually start playing videos</source>
-        <translation>Comezar manualmente a reprodución dos vídeos</translation>
+        <source>&amp;Pause</source>
+        <translation>&amp;Deter</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="847"/>
-        <source>Choose your content location</source>
-        <translation>Escolla a localización do seu contido</translation>
+        <source>Pause playback</source>
+        <translation>Deter a reprodución</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="314"/>
-        <location filename="src/mainwindow.cpp" line="1142"/>
-        <location filename="src/mainwindow.cpp" line="1150"/>
-        <source>&amp;Play</source>
-        <translation>&amp;Reproducir</translation>
+        <source>&amp;Loading...</source>
+        <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="315"/>
-        <location filename="src/mainwindow.cpp" line="1143"/>
-        <location filename="src/mainwindow.cpp" line="1151"/>
-        <source>Resume playback</source>
-        <translation>Continuar a reprodución</translation>
+        <source>Leave &amp;Full Screen</source>
+        <translation>Abandonar a &amp;pantalla completa</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1437"/>
         <source>Remaining time: %1</source>
         <translation>Tempo restante: %1</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1528"/>
         <source>Volume at %1%</source>
         <translation>Volume ao %1%</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1534"/>
         <source>Volume is muted</source>
         <translation>O volume está silenciado</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1537"/>
         <source>Volume is unmuted</source>
         <translation>O volume non está silenciado</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1548"/>
         <source>Maximum video definition set to %1</source>
         <translation>Resolución máxima de vídeo fixada en %1</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1595"/>
         <source>Your privacy is now safe</source>
         <translation>A súa intimidade agora está segura</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1610"/>
         <source>Downloads complete</source>
         <translation>Descargas completadas</translation>
     </message>
+    <message>
+        <source>%1 version %2 is now available.</source>
+        <translation>%1 versión %2 xa está dispoñíbel.</translation>
+    </message>
+    <message>
+        <source>Remind me later</source>
+        <translation>Lembrar máis adiante</translation>
+    </message>
+    <message>
+        <source>Update</source>
+        <translation>Actualizar</translation>
+    </message>
 </context>
 <context>
     <name>MediaView</name>
     <message>
-        <location filename="src/mediaview.cpp" line="702"/>
         <source>You can now paste the YouTube link into another application</source>
         <translation>Agora pode pegar a ligazón de YouTube noutro aplicativo</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="710"/>
         <source>You can now paste the video stream URL into another application</source>
         <translation>Agora pode pegar o URL do fluxo de vídeo noutro aplicativo</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="711"/>
         <source>The link will be valid only for a limited time.</source>
         <translation>A ligazón ten validez só por un tempo limitado.</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="800"/>
         <source>This is just the demo version of %1.</source>
         <translation>Isto é só a versión demo de %1.</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="801"/>
         <source>It allows you to test the application and see if it works for you.</source>
         <translation>Permítelle probar o aplicativo e comprobar se vai ao seu xeito.</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="833"/>
+        <source>Get the full version</source>
+        <translation>Obter a versión completa</translation>
+    </message>
+    <message>
         <source>Continue</source>
         <translation>Continuar</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="988"/>
+        <source>Downloading %1</source>
+        <translation>Descargando %1</translation>
+    </message>
+    <message>
         <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="1001"/>
         <source>part</source>
         <comment>This is for video parts, as in 'Cool video - part 1'</comment>
         <translation>peza</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="1003"/>
         <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="1096"/>
         <source>Sent from %1</source>
         <translation>Enviado desde %1</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="1128"/>
         <source>Unsubscribe from %1</source>
         <translation>Darse de baixa de %1</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="1132"/>
         <source>Subscribe to %1</source>
         <translation>Subscribirse a %1</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="1166"/>
         <source>Unsubscribed from %1</source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="1169"/>
         <source>Subscribed to %1</source>
         <translation type="unfinished"/>
     </message>
-    <message>
-        <location filename="src/mediaview.cpp" line="808"/>
-        <source>Get the full version</source>
-        <translation>Obter a versión completa</translation>
-    </message>
-    <message>
-        <location filename="src/mediaview.cpp" line="847"/>
-        <source>Downloading %1</source>
-        <translation>Descargando %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>Hai unha nova versión de %1 dispoñible!</translation>
     </message>
     <message>
-        <location filename="local/src/updatedialog.cpp" line="28"/>
         <source>%1 %2 is now available. You have %3.</source>
         <translation>%1 %2 está agora dispoñible. Tes %3.</translation>
     </message>
     <message>
-        <location filename="local/src/updatedialog.cpp" line="33"/>
         <source>Would you like to download it now?</source>
         <translation>Queres descargala agora?</translation>
     </message>
     <message>
-        <location filename="local/src/updatedialog.cpp" line="39"/>
         <source>Skip This Version</source>
         <translation>Saltar esta versión</translation>
     </message>
     <message>
-        <location filename="local/src/updatedialog.cpp" line="43"/>
         <source>Remind Me Later</source>
         <translation>Acórdamo máis adiante</translation>
     </message>
     <message>
-        <location filename="local/src/updatedialog.cpp" line="47"/>
         <source>Install Update</source>
         <translation>Instalar a actualización</translation>
     </message>
 <context>
     <name>PasteLineEdit</name>
     <message>
-        <location filename="local/src/pastelineedit.cpp" line="6"/>
         <source>Paste</source>
         <translation>Pegar</translation>
     </message>
 <context>
     <name>PlaylistItemDelegate</name>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="209"/>
         <source>%1 views</source>
         <translation>%1 vistas</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="309"/>
         <source>%1 of %2 (%3) — %4</source>
         <translation>%1 de %2 (%3) — %4</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="316"/>
         <source>Preparing</source>
         <translation>Preparando</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="318"/>
         <source>Failed</source>
         <translation>Produciuse un fallo</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="320"/>
         <source>Completed</source>
         <translation>Completada</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="322"/>
         <source>Stopped</source>
         <translation>Detida</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="358"/>
         <source>Stop downloading</source>
         <translation>Deter a descarga</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="368"/>
         <source>Show in %1</source>
         <translation>Mostrar en %1</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="370"/>
         <source>Open parent folder</source>
         <translation>Abrir o cartafol pai</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="379"/>
         <source>Restart downloading</source>
         <translation>Reiniciar a descarga</translation>
     </message>
 <context>
     <name>PlaylistModel</name>
     <message>
-        <location filename="src/playlistmodel.cpp" line="70"/>
         <source>Searching...</source>
         <translation>Buscando...</translation>
     </message>
     <message>
-        <location filename="src/playlistmodel.cpp" line="71"/>
         <source>Show %1 More</source>
         <translation>Mostrar %1 máis</translation>
     </message>
     <message>
-        <location filename="src/playlistmodel.cpp" line="72"/>
         <source>No videos</source>
         <translation>Non hai vídeos</translation>
     </message>
     <message>
-        <location filename="src/playlistmodel.cpp" line="73"/>
         <source>No more videos</source>
         <translation>Non hai máis vídeos</translation>
     </message>
 <context>
     <name>RefineSearchWidget</name>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="49"/>
         <source>Sort by</source>
         <translation>Ordenar por</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="53"/>
         <source>Relevance</source>
         <translation>Relevancia</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="54"/>
-        <location filename="src/refinesearchwidget.cpp" line="69"/>
         <source>Date</source>
         <translation>Data</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="55"/>
         <source>View Count</source>
         <translation>Contador de vistas</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="56"/>
         <source>Rating</source>
         <translation>Cualificación</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="73"/>
         <source>Anytime</source>
         <translation>Calquera momento</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="74"/>
         <source>Today</source>
         <translation>Hoxe</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="75"/>
         <source>7 Days</source>
         <translation>7 días</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="76"/>
         <source>30 Days</source>
         <translation>30 días</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="89"/>
         <source>Duration</source>
         <translation>Duración</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="93"/>
-        <location filename="src/refinesearchwidget.cpp" line="119"/>
         <source>All</source>
         <translation>Todo</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="94"/>
         <source>Short</source>
         <translation>Curto</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="95"/>
         <source>Medium</source>
         <translation>Medio</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="96"/>
         <source>Long</source>
         <translation>Longo</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="99"/>
         <source>Less than 4 minutes</source>
         <translation>Menos de 4 minutos</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="100"/>
         <source>Between 4 and 20 minutes</source>
         <translation>Entre 4 e 20 minutos</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="101"/>
         <source>Longer than 20 minutes</source>
         <translation>Máis de 20 minutos</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="115"/>
         <source>Quality</source>
         <translation>Calidade</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="120"/>
         <source>High Definition</source>
         <translation>Alta definición</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="123"/>
         <source>720p or higher</source>
         <translation>720p ou máis</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="136"/>
         <source>Done</source>
         <translation>Feito</translation>
     </message>
 <context>
     <name>RegionsView</name>
     <message>
-        <location filename="src/regionsview.cpp" line="39"/>
         <source>Done</source>
         <translation>Feito</translation>
     </message>
 <context>
     <name>SearchLineEdit</name>
     <message>
-        <location filename="src/searchlineedit.cpp" line="55"/>
         <source>Search</source>
         <translation>Buscar</translation>
     </message>
 <context>
     <name>SearchView</name>
     <message>
-        <location filename="src/searchview.cpp" line="83"/>
         <source>Welcome to &lt;a href=&apos;%1&apos;&gt;%2&lt;/a&gt;,</source>
         <translation>Benvido a &lt;a href=&apos;%1&apos;&gt;%2&lt;/a,</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="200"/>
-        <source>Get the full version</source>
-        <translation>Obter a versión completa</translation>
-    </message>
-    <message>
-        <location filename="src/searchview.cpp" line="110"/>
         <source>Enter</source>
         <extracomment>&quot;Enter&quot;, as in &quot;type&quot;. The whole phrase says: &quot;Enter a keyword to start watching videos&quot;</extracomment>
         <translation>Introduza</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="117"/>
         <source>a keyword</source>
         <translation>unha palabra clave</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="118"/>
         <source>a channel</source>
         <translation>unha canle</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="125"/>
         <source>to start watching videos.</source>
         <translation>para comezar a ver vídeos.</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="156"/>
         <source>Watch</source>
         <translation>Ver</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="174"/>
         <source>Recent keywords</source>
         <translation>Palabra clave recente</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="186"/>
         <source>Recent channels</source>
         <translation>Canles recentes</translation>
     </message>
+    <message>
+        <source>Get the full version</source>
+        <translation>Obter a versión completa</translation>
+    </message>
 </context>
 <context>
     <name>SidebarHeader</name>
     <message>
-        <location filename="src/sidebarheader.cpp" line="38"/>
-        <location filename="src/sidebarheader.cpp" line="45"/>
         <source>&amp;Back</source>
         <translation>&amp;Atrás</translation>
     </message>
     <message>
-        <location filename="src/sidebarheader.cpp" line="76"/>
         <source>Forward to %1</source>
         <translation>Ir a %1</translation>
     </message>
     <message>
-        <location filename="src/sidebarheader.cpp" line="89"/>
         <source>Back to %1</source>
         <translation>Volver a %1</translation>
     </message>
 <context>
     <name>SidebarWidget</name>
     <message>
-        <location filename="src/sidebarwidget.cpp" line="68"/>
         <source>Refine Search</source>
         <translation>Afinar a busca</translation>
     </message>
     <message>
-        <location filename="src/sidebarwidget.cpp" line="167"/>
         <source>Did you mean: %1</source>
         <translation>Quizás quixo dicir: %1</translation>
     </message>
 <context>
     <name>SnapshotSettings</name>
     <message>
-        <location filename="src/snapshotsettings.cpp" line="47"/>
         <source>Change location...</source>
         <translation>Cambiar a localización...</translation>
     </message>
     <message>
-        <location filename="src/snapshotsettings.cpp" line="64"/>
         <source>Snapshot saved to %1</source>
         <translation>Captura gardada en %1</translation>
     </message>
     <message>
-        <location filename="src/snapshotsettings.cpp" line="117"/>
         <source>Snapshots location changed.</source>
         <translation>Cambiada a localización da captura.</translation>
     </message>
 <context>
     <name>StandardFeedsView</name>
     <message>
-        <location filename="src/standardfeedsview.cpp" line="107"/>
         <source>Most Popular</source>
         <translation>Máis popular</translation>
     </message>
 </context>
+<context>
+    <name>UpdateDialog</name>
+    <message>
+        <source>Downloading update...</source>
+        <translation>Descargando a actualización...</translation>
+    </message>
+    <message>
+        <source>Downloading %1...</source>
+        <translation type="unfinished"/>
+    </message>
+</context>
 <context>
     <name>Video</name>
     <message>
-        <location filename="src/video.cpp" line="287"/>
         <source>Cannot get video stream for %1</source>
         <translation>Non é posíbel obter o fluxo de vídeo de %1</translation>
     </message>
-    <message>
-        <location filename="src/video.cpp" line="292"/>
-        <source>Network error: %1 for %2</source>
-        <translation>Produciuse un erro na rede: %1 por %2</translation>
-    </message>
 </context>
 <context>
     <name>YTRegions</name>
     <message>
-        <location filename="src/ytregions.cpp" line="28"/>
         <source>Algeria</source>
         <translation>Alxeria</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="29"/>
         <source>Argentina</source>
         <translation>Arxentina</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="30"/>
         <source>Australia</source>
         <translation>Australia</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="31"/>
         <source>Belgium</source>
         <translation>Bélxica</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="32"/>
         <source>Brazil</source>
         <translation>Brasil</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="33"/>
         <source>Canada</source>
         <translation>Canada</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="34"/>
         <source>Chile</source>
         <translation>Chile</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="35"/>
         <source>Colombia</source>
         <translation>Colombia</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="36"/>
         <source>Czech Republic</source>
         <translation>República Checa</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="37"/>
         <source>Egypt</source>
         <translation>Exipto</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="38"/>
         <source>France</source>
         <translation>Francia</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="39"/>
         <source>Germany</source>
         <translation>Alemania</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="40"/>
         <source>Ghana</source>
         <translation>Ghana</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="41"/>
         <source>Greece</source>
         <translation>Grecia</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="42"/>
         <source>Hong Kong</source>
         <translation>Hong Kong</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="43"/>
         <source>Hungary</source>
         <translation>Hungría</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="44"/>
         <source>India</source>
         <translation>India</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="45"/>
         <source>Indonesia</source>
         <translation>Indonesia</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="46"/>
         <source>Ireland</source>
         <translation>Irlanda</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="47"/>
         <source>Israel</source>
         <translation>Israel</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="48"/>
         <source>Italy</source>
         <translation>Italia</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="49"/>
         <source>Japan</source>
         <translation>Xapón</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="50"/>
         <source>Jordan</source>
         <translation>Xordania</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="51"/>
         <source>Kenya</source>
         <translation>Quenia</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="52"/>
         <source>Malaysia</source>
         <translation>Malaisia</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="53"/>
         <source>Mexico</source>
         <translation>México</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="54"/>
         <source>Morocco</source>
         <translation>Marrocos</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="55"/>
         <source>Netherlands</source>
         <translation>Holanda</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="56"/>
         <source>New Zealand</source>
         <translation>Nova Celandia</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="57"/>
         <source>Nigeria</source>
         <translation>Nixeria</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="58"/>
         <source>Peru</source>
         <translation>Perú</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="59"/>
         <source>Philippines</source>
         <translation>Filipinas</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="60"/>
         <source>Poland</source>
         <translation>Polonia</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="61"/>
         <source>Russia</source>
         <translation>Rusia</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="62"/>
         <source>Saudi Arabia</source>
         <translation>Arabia Saudí</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="63"/>
         <source>Singapore</source>
         <translation>Singapur</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="64"/>
         <source>South Africa</source>
         <translation>Suráfrica</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="65"/>
         <source>South Korea</source>
         <translation>Corea do Sur</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="66"/>
         <source>Spain</source>
         <translation>España</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="67"/>
         <source>Sweden</source>
         <translation>Suecia</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="68"/>
         <source>Taiwan</source>
         <translation>Taiwan</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="69"/>
         <source>Tunisia</source>
         <translation>Tunisia</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="70"/>
         <source>Turkey</source>
         <translation>Turquía</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="71"/>
         <source>Uganda</source>
         <translation>Uganda</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="72"/>
         <source>United Arab Emirates</source>
         <translation>Emiratos Árabes Unidos</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="73"/>
         <source>United Kingdom</source>
         <translation>Reino Unido</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="74"/>
         <source>Yemen</source>
         <translation>Iemen</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="148"/>
         <source>Worldwide</source>
         <translation>Todo o mundo</translation>
     </message>
index 484cce080f5e71ffb24ee3cfa3f0c228a7d74115..9dfd6114275cd67cac95003e438bbd3b8d6761b8 100644 (file)
@@ -2,67 +2,42 @@
 <context>
     <name>AboutView</name>
     <message>
-        <location filename="src/aboutview.cpp" line="58"/>
         <source>There&apos;s life outside the browser!</source>
         <translation>יש חיים מחוץ לדפדפן!</translation>
     </message>
     <message>
-        <location filename="src/aboutview.cpp" line="59"/>
         <source>Version %1</source>
         <translation>גרסה %1</translation>
     </message>
     <message>
-        <location filename="src/aboutview.cpp" line="64"/>
         <source>Licensed to: %1</source>
         <translation>הרישוי לטובת: %1</translation>
     </message>
     <message>
-        <location filename="src/aboutview.cpp" line="68"/>
         <source>%1 is Free Software but its development takes precious time.</source>
         <translation>%1 הנה תכנה חופשית אך פיתוחה לוקח המון זמן יקר.</translation>
     </message>
     <message>
-        <location filename="src/aboutview.cpp" line="69"/>
         <source>Please &lt;a href=&apos;%1&apos;&gt;donate&lt;/a&gt; to support the continued development of %2.</source>
         <translation>אנא &lt;a href=&apos;%1&apos;&gt;תרמו&lt;/a&gt; כדי לתמוך בהמשך הפיתוח של %2.</translation>
     </message>
     <message>
-        <location filename="src/aboutview.cpp" line="73"/>
-        <source>You may want to try my other apps as well:</source>
-        <translation>מומלץ לנסות להשתמש בשאר היישומים שלי:</translation>
-    </message>
-    <message>
-        <location filename="src/aboutview.cpp" line="76"/>
-        <source>%1, a YouTube music player</source>
-        <translation>%1, נגן מוזיקה מיוטיוב</translation>
-    </message>
-    <message>
-        <location filename="src/aboutview.cpp" line="80"/>
-        <source>%1, a music player</source>
-        <translation>%1, נגן מוזיקה</translation>
-    </message>
-    <message>
-        <location filename="src/aboutview.cpp" line="86"/>
         <source>Translate %1 to your native language using %2</source>
         <translation>ניתן לתרגם את %1 לשפת אמך באמצעות %2</translation>
     </message>
     <message>
-        <location filename="src/aboutview.cpp" line="91"/>
         <source>Icon designed by %1.</source>
         <translation>הסמל עוצב על ידי %1.</translation>
     </message>
     <message>
-        <location filename="src/aboutview.cpp" line="95"/>
         <source>Released under the &lt;a href=&apos;%1&apos;&gt;GNU General Public License&lt;/a&gt;</source>
         <translation>התכנה שוחררה תחת תנאי &lt;a href=&apos;%1&apos;&gt;הרישיון הציבורי הכללי של GNU&lt;/a&gt;</translation>
     </message>
     <message>
-        <location filename="src/aboutview.cpp" line="110"/>
         <source>&amp;Close</source>
         <translation>&amp;סגירה</translation>
     </message>
     <message>
-        <location filename="src/aboutview.h" line="40"/>
         <source>About</source>
         <translation>אודות</translation>
     </message>
 <context>
     <name>ActivationDialog</name>
     <message>
-        <location filename="local/src/activationdialog.cpp" line="17"/>
         <source>Enter your License Details</source>
         <translation>נא להזין את פרטי הרישוי שלך</translation>
     </message>
     <message>
-        <location filename="local/src/activationdialog.cpp" line="29"/>
         <source>&amp;Email:</source>
         <translation>&amp;דוא״ל:</translation>
     </message>
     <message>
-        <location filename="local/src/activationdialog.cpp" line="35"/>
         <source>&amp;Code:</source>
         <translation>&amp;קוד:</translation>
     </message>
 <context>
     <name>ActivationView</name>
     <message>
-        <location filename="local/src/activationview.cpp" line="47"/>
         <source>Please license %1</source>
         <translation>נא לרכוש את %1</translation>
     </message>
     <message>
-        <location filename="local/src/activationview.cpp" line="51"/>
         <source>This demo has expired.</source>
         <translation>גרסת הדגמה זו פגה.</translation>
     </message>
     <message>
-        <location filename="local/src/activationview.cpp" line="53"/>
         <source>The full version allows you to watch videos without interruptions.</source>
-        <oldsource>The full version allows you to download videos longer than %1 minutes and to watch videos without interruptions.</oldsource>
         <translation>הגירסה המלאה מאפשרת לך לצפות בסרטון ללא הפרעות.</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>
     </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>
     </message>
     <message>
-        <location filename="local/src/activationview.cpp" line="70"/>
         <source>Use Demo</source>
         <translation>שימוש בהדגמה</translation>
     </message>
     <message>
-        <location filename="local/src/activationview.cpp" line="77"/>
         <source>Enter License</source>
         <translation>הזנת רישיון</translation>
     </message>
     <message>
-        <location filename="local/src/activationview.cpp" line="85"/>
         <source>Buy License</source>
         <translation>רכישת רישיון</translation>
     </message>
 </context>
+<context>
+    <name>AppWidget</name>
+    <message>
+        <source>Download</source>
+        <translation type="unfinished"/>
+    </message>
+</context>
 <context>
     <name>ChannelAggregator</name>
     <message>
-        <location filename="src/channelaggregator.cpp" line="183"/>
         <source>By %1</source>
         <translation>על ידי %1</translation>
     </message>
     <message numerus="yes">
-        <location filename="src/channelaggregator.cpp" line="185"/>
         <source>You have %n new video(s)</source>
         <translation type="unfinished"><numerusform></numerusform><numerusform></numerusform></translation>
     </message>
 <context>
     <name>ChannelItemDelegate</name>
     <message>
-        <location filename="src/channelitemdelegate.cpp" line="67"/>
         <source>All Videos</source>
         <translation>כל הסרטונים</translation>
     </message>
     <message>
-        <location filename="src/channelitemdelegate.cpp" line="85"/>
         <source>Unwatched Videos</source>
         <translation>סרטונים שלא נצפו</translation>
     </message>
 <context>
     <name>ChannelView</name>
     <message>
-        <location filename="src/channelview.cpp" line="151"/>
-        <source>Mark all as watched</source>
-        <translation>סמנו את כולם כנצפו</translation>
-    </message>
-    <message>
-        <location filename="src/channelview.cpp" line="159"/>
-        <source>Show Updated</source>
-        <translation>הצג עדכונים</translation>
-    </message>
-    <message>
-        <location filename="src/channelview.cpp" line="103"/>
         <source>Name</source>
         <translation>שם</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="110"/>
         <source>Last Updated</source>
         <translation>עודכן לאחרונה</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="117"/>
         <source>Last Added</source>
         <translation>נוסף לאחרונה</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="124"/>
         <source>Last Watched</source>
         <translation>נצפה לאחרונה</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="131"/>
         <source>Most Watched</source>
         <translation>נצפה ביותר</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="139"/>
         <source>Sort by</source>
         <translation>מיין לפי</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="222"/>
+        <source>Mark all as watched</source>
+        <translation>סמנו את כולם כנצפו</translation>
+    </message>
+    <message>
+        <source>Show Updated</source>
+        <translation>הצג עדכונים</translation>
+    </message>
+    <message>
         <source>All Videos</source>
         <translation>כל הסרטונים</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="226"/>
         <source>Unwatched Videos</source>
         <translation>סרטונים שלא נצפו</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="244"/>
         <source>Mark as Watched</source>
         <translation>סמן כנצפה</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="257"/>
         <source>Unsubscribe</source>
         <translation>בטל מינוי</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="270"/>
         <source>There are no updated subscriptions at this time.</source>
         <translation>אין עדכונים בערוצים שאתה מנוי עליהם כרגע.</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="272"/>
         <source>You have no subscriptions. Use the star symbol to subscribe to channels.</source>
         <translation>אין לך מנויים. השתמש בסמל הכוכב על מנת להיות מנוי לערוצים.</translation>
     </message>
 <context>
     <name>ClearButton</name>
     <message>
-        <location filename="src/exlineedit.cpp" line="6"/>
         <source>Clear</source>
         <translation>מחיקה</translation>
     </message>
 <context>
     <name>DataUtils</name>
     <message>
-        <location filename="src/datautils.cpp" line="88"/>
         <source>Just now</source>
         <translation type="unfinished"/>
     </message>
     <message numerus="yes">
-        <location filename="src/datautils.cpp" line="90"/>
-        <source>%n minute(s) ago</source>
-        <translation type="unfinished"><numerusform></numerusform><numerusform></numerusform></translation>
-    </message>
-    <message numerus="yes">
-        <location filename="src/datautils.cpp" line="92"/>
         <source>%n hour(s) ago</source>
         <translation type="unfinished"><numerusform></numerusform><numerusform></numerusform></translation>
     </message>
     <message numerus="yes">
-        <location filename="src/datautils.cpp" line="94"/>
         <source>%n day(s) ago</source>
         <translation type="unfinished"><numerusform></numerusform><numerusform></numerusform></translation>
     </message>
     <message numerus="yes">
-        <location filename="src/datautils.cpp" line="96"/>
         <source>%n weeks(s) ago</source>
         <translation type="unfinished"><numerusform></numerusform><numerusform></numerusform></translation>
     </message>
     <message numerus="yes">
-        <location filename="src/datautils.cpp" line="98"/>
         <source>%n month(s) ago</source>
         <translation type="unfinished"><numerusform></numerusform><numerusform></numerusform></translation>
     </message>
 <context>
     <name>DownloadItem</name>
     <message>
-        <location filename="src/downloaditem.cpp" line="406"/>
         <source>bytes</source>
         <translation>בתים</translation>
     </message>
     <message>
-        <location filename="src/downloaditem.cpp" line="409"/>
         <source>KB</source>
         <translation>ק״ב</translation>
     </message>
     <message>
-        <location filename="src/downloaditem.cpp" line="412"/>
         <source>MB</source>
         <translation>מ״ב</translation>
     </message>
     <message>
-        <location filename="src/downloaditem.cpp" line="421"/>
         <source>bytes/sec</source>
         <translation>בתים/שנייה</translation>
     </message>
     <message>
-        <location filename="src/downloaditem.cpp" line="424"/>
         <source>KB/sec</source>
         <translation>ק״ב/שנייה</translation>
     </message>
     <message>
-        <location filename="src/downloaditem.cpp" line="427"/>
         <source>MB/sec</source>
         <translation>מ״ב/שנייה</translation>
     </message>
     <message>
-        <location filename="src/downloaditem.cpp" line="433"/>
         <source>seconds</source>
         <translation>שניות</translation>
     </message>
     <message>
-        <location filename="src/downloaditem.cpp" line="436"/>
         <source>minutes</source>
         <translation>דקות</translation>
     </message>
     <message>
-        <location filename="src/downloaditem.cpp" line="439"/>
         <source>%4 %5 remaining</source>
         <translation>%4 %5 נותרו</translation>
     </message>
 <context>
     <name>DownloadManager</name>
     <message>
-        <location filename="src/downloadmanager.cpp" line="77"/>
         <source>This is just the demo version of %1.</source>
         <translation>זוהי רק גרסת ההדגמה של %1.</translation>
     </message>
     <message>
-        <location filename="src/downloadmanager.cpp" line="79"/>
         <source>It can only download videos shorter than %1 minutes so you can test the download functionality.</source>
         <translation>באמצעות גרסה זו ניתן להוריד קטעי וידאו שאורכם אינו עולה על %1 דקות כדי שתהיה באפשרותך לבחור את אפשרות ההורדה.</translation>
     </message>
     <message>
-        <location filename="src/downloadmanager.cpp" line="85"/>
         <source>Continue</source>
         <translation>המשך</translation>
     </message>
     <message>
-        <location filename="src/downloadmanager.cpp" line="86"/>
         <source>Get the full version</source>
         <translation>קבלת הגרסה המלאה</translation>
     </message>
     <message>
-        <location filename="src/downloadmanager.cpp" line="157"/>
         <source>%1 downloaded in %2</source>
         <translation>%1 התקבל במהירות של %2</translation>
     </message>
     <message>
-        <location filename="src/downloadmanager.cpp" line="160"/>
         <source>Download finished</source>
         <translation>ההורדה הושלמה</translation>
     </message>
     <message numerus="yes">
-        <location filename="src/downloadmanager.cpp" line="165"/>
         <source>%n Download(s)</source>
         <translation type="unfinished"><numerusform></numerusform><numerusform></numerusform></translation>
     </message>
 <context>
     <name>DownloadSettings</name>
     <message>
-        <location filename="src/downloadsettings.cpp" line="36"/>
         <source>Change location...</source>
         <translation>שינוי המיקום...</translation>
     </message>
     <message>
-        <location filename="src/downloadsettings.cpp" line="69"/>
         <source>Choose the download location</source>
         <translation>נא לבחור את מיקום ההורדה</translation>
     </message>
     <message>
-        <location filename="src/downloadsettings.cpp" line="81"/>
         <source>Download location changed.</source>
         <translation>מיקום ההורדה השתנה.</translation>
     </message>
     <message>
-        <location filename="src/downloadsettings.cpp" line="83"/>
         <source>Current downloads will still go in the previous location.</source>
         <translation>ההורדה הנוכחית עדיין תישמר במיקום הקודם.</translation>
     </message>
     <message>
-        <location filename="src/downloadsettings.cpp" line="94"/>
         <source>Downloading to: %1</source>
         <translation>מתבצעת הורדה אל: %1</translation>
     </message>
 <context>
     <name>DownloadView</name>
     <message>
-        <location filename="src/downloadview.cpp" line="38"/>
-        <location filename="src/downloadview.h" line="45"/>
         <source>Downloads</source>
         <translation>הורדות</translation>
     </message>
 </context>
-<context>
-    <name>DownloadWidget</name>
-    <message>
-        <location filename="local/src/updatedialog.cpp" line="60"/>
-        <source>Downloading update...</source>
-        <translation>העדכון מתקבל...</translation>
-    </message>
-</context>
 <context>
     <name>Extra</name>
     <message>
-        <location filename="local/src/extra.cpp" line="251"/>
         <source>The executable file has been tempered with, maybe by a virus.</source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="local/src/extra.cpp" line="252"/>
         <source>%1 will not run. Try installing again.</source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="local/src/extra.cpp" line="253"/>
         <source>Quit</source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="local/src/extra.cpp" line="254"/>
         <source>Reinstall</source>
         <translation type="unfinished"/>
     </message>
 <context>
     <name>GlobalShortcuts</name>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="36"/>
         <source>Play</source>
         <translation>נגינה</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="37"/>
         <source>Pause</source>
         <translation>השהיה</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="38"/>
         <source>Play/Pause</source>
         <translation>נגינה/השהיה</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="39"/>
         <source>Stop</source>
         <translation>עצירה</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="40"/>
         <source>Stop playing after current track</source>
         <translation>עצירת הנגינה לאחר הרצועה הנוכחית</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="41"/>
         <source>Next track</source>
         <translation>הרצועה הבאה</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="42"/>
         <source>Previous track</source>
         <translation>הרצועה קודמת</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="43"/>
         <source>Increase volume</source>
         <translation>הגברת עצמת השמע</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="44"/>
         <source>Decrease volume</source>
         <translation>הנמכת עצמת השמע</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="45"/>
         <source>Mute</source>
         <translation>השתקה</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="46"/>
         <source>Seek forward</source>
         <translation>סריקה קדימה</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="47"/>
         <source>Seek backward</source>
         <translation>סריקה אחורה</translation>
     </message>
 <context>
     <name>HomeView</name>
     <message>
-        <location filename="src/homeview.cpp" line="58"/>
         <source>Search</source>
         <translation>חיפוש</translation>
     </message>
     <message>
-        <location filename="src/homeview.cpp" line="60"/>
         <source>Find videos and channels by keyword</source>
         <translation>חיפוש סרטוני וידאו וערוצים לפי מילת מפתח</translation>
     </message>
     <message>
-        <location filename="src/homeview.cpp" line="65"/>
         <source>Browse</source>
         <translation>עיון</translation>
     </message>
     <message>
-        <location filename="src/homeview.cpp" line="67"/>
         <source>Browse videos by category</source>
         <translation>עיון בקטעי וידאו לפי קטגוריה</translation>
     </message>
     <message>
-        <location filename="src/homeview.cpp" line="71"/>
         <source>Subscriptions</source>
         <translation>מנויים</translation>
     </message>
     <message>
-        <location filename="src/homeview.cpp" line="73"/>
         <source>Channel subscriptions</source>
         <translation>מנויים בערוצים</translation>
     </message>
     <message>
-        <location filename="src/homeview.h" line="44"/>
         <source>Make yourself comfortable</source>
         <translation>שבו בניחותא</translation>
     </message>
 <context>
     <name>LoadingWidget</name>
     <message>
-        <location filename="src/loadingwidget.cpp" line="125"/>
         <source>Error</source>
         <translation>שגיאה</translation>
     </message>
 <context>
     <name>MainWindow</name>
     <message>
-        <location filename="src/mainwindow.cpp" line="291"/>
+        <source>&amp;Window</source>
+        <translation>&amp;חלון</translation>
+    </message>
+    <message>
+        <source>&amp;Minimize</source>
+        <translation>מ&amp;זעור</translation>
+    </message>
+    <message>
         <source>&amp;Stop</source>
         <translation>&amp;עצירה</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="292"/>
         <source>Stop playback and go back to the search view</source>
         <translation>עצירת הנגינה וחזרה אל תצוגת החיפוש</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="307"/>
+        <source>P&amp;revious</source>
+        <translation>ה&amp;קודם</translation>
+    </message>
+    <message>
+        <source>Go back to the previous track</source>
+        <translation>חזרה לרצועה הקודמת</translation>
+    </message>
+    <message>
         <source>S&amp;kip</source>
         <translation>&amp;דילוג</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="308"/>
         <source>Skip to the next video</source>
         <translation>דילוג אל הסרטון הבא</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1134"/>
-        <source>&amp;Pause</source>
-        <translation>ה&amp;שהיה</translation>
+        <source>&amp;Play</source>
+        <translation>&amp;נגינה</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1135"/>
-        <source>Pause playback</source>
-        <translation>השהיית הנגינה</translation>
+        <source>Resume playback</source>
+        <translation>המשך הנגינה</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="321"/>
         <source>&amp;Full Screen</source>
         <translation>&amp;מסך מלא</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="322"/>
         <source>Go full screen</source>
         <translation>מעבר למסך מלא</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="336"/>
+        <source>&amp;Compact Mode</source>
+        <translation>מ&amp;צב חסכוני</translation>
+    </message>
+    <message>
         <source>Hide the playlist and the toolbar</source>
         <translation>הסתרת רשימת ההשמעה וסרגל הכלים</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="349"/>
+        <source>Open the &amp;YouTube Page</source>
+        <translation>פתיחת העמוד ב&amp;יוטיוב</translation>
+    </message>
+    <message>
         <source>Go to the YouTube video page and pause playback</source>
         <translation>מעבר לעמוד הווידאו ב־YouTube והשהיית הנגינה.</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="356"/>
+        <source>Copy the YouTube &amp;Link</source>
+        <translation>העתקת ה&amp;קישור ליוטיוב</translation>
+    </message>
+    <message>
         <source>Copy the current video YouTube link to the clipboard</source>
         <translation>העתקת הקישור אל הווידאו הנוכחי אל לוח הגזירים</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="363"/>
+        <source>Copy the Video Stream &amp;URL</source>
+        <translation>העתקת כתובת ת&amp;זרים הווידאו</translation>
+    </message>
+    <message>
         <source>Copy the current video stream URL to the clipboard</source>
         <translation>העתקת כתובת תזרים הווידאו אל לוח הגזירים</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="370"/>
+        <source>Find Video &amp;Parts</source>
+        <translation>חיפוש ק&amp;טעי וידאו</translation>
+    </message>
+    <message>
         <source>Find other video parts hopefully in the right order</source>
         <translation>חיפוש חלקים אחרים בתקווה שהם בסדר הנכון</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="376"/>
         <source>&amp;Remove</source>
         <translation>ה&amp;סרה</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="377"/>
         <source>Remove the selected videos from the playlist</source>
         <translation>הסרת הסרטונים הנבחרים מרשימת ההשמעה</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="383"/>
         <source>Move &amp;Up</source>
         <translation>הזזה מ&amp;מעלה</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="384"/>
         <source>Move up the selected videos in the playlist</source>
         <translation>הזזת הסרטונים הנבחרים במעלה רשימת ההשמעה</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="390"/>
         <source>Move &amp;Down</source>
         <translation>הזזה מ&amp;טה</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="391"/>
         <source>Move down the selected videos in the playlist</source>
         <translation>הזזת הסרטונים הנבחרים במורד רשימת ההשמעה</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="402"/>
+        <source>&amp;Clear Recent Searches</source>
+        <translation>&amp;ניקוי החיפושים האחרונים</translation>
+    </message>
+    <message>
         <source>Clear the search history. Cannot be undone.</source>
         <translation>מחיקת היסטוריית החיפוש. לא ניתן לבטל</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="407"/>
         <source>&amp;Quit</source>
         <translation>י&amp;ציאה</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="410"/>
         <source>Bye</source>
         <translation>להתראות</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="414"/>
         <source>&amp;Website</source>
         <translation>&amp;אתר האינטרנט</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="416"/>
         <source>%1 on the Web</source>
         <translation>%1 באינטרנט</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="422"/>
+        <source>Make a &amp;Donation</source>
+        <translation>&amp;תרמו</translation>
+    </message>
+    <message>
         <source>Please support the continued development of %1</source>
         <translation>אנא תמכו בהמשך הפיתוח של %1</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="427"/>
         <source>&amp;About</source>
         <translation>&amp;על אודות</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="429"/>
         <source>Info about %1</source>
         <translation>מידע אודות %1</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="437"/>
         <source>Search</source>
         <translation>חיפוש</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="456"/>
         <source>Mute volume</source>
         <translation>השתקת השמע</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="490"/>
-        <location filename="src/mainwindow.cpp" line="1609"/>
+        <source>&amp;Manually Start Playing</source>
+        <translation>התחלת נגינה י&amp;דנית</translation>
+    </message>
+    <message>
+        <source>Manually start playing videos</source>
+        <translation>התחלה ידנית בנגינת קטעי הווידאו</translation>
+    </message>
+    <message>
         <source>&amp;Downloads</source>
         <translation>הו&amp;רדות</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="491"/>
         <source>Show details about video downloads</source>
         <translation>הצגת פרטים על אודות הורדות וידאו</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="499"/>
         <source>&amp;Download</source>
         <translation>הו&amp;רדה</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="500"/>
         <source>Download the current video</source>
         <translation>הורדת סרטון הווידאו הנוכחי</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="510"/>
         <source>Take &amp;Snapshot</source>
         <translation>קח צילום מסך</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="517"/>
         <source>&amp;Subscribe to Channel</source>
         <translation>הרשם כמנוי לערוץ</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="525"/>
         <source>Share the current video using %1</source>
         <translation>שיתוף הווידאו הנוכחי באמצעות %1</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="545"/>
         <source>&amp;Email</source>
         <translation>&amp;דוא״ל</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="546"/>
         <source>Email</source>
         <translation>דוא״ל</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="551"/>
         <source>&amp;Close</source>
         <translation>&amp;סגירה</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="561"/>
         <source>&amp;Float on Top</source>
         <translation>&amp;ציפה מלמעלה</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="566"/>
         <source>&amp;Adjust Window Size</source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="571"/>
         <source>&amp;Stop After This Video</source>
         <translation>ל&amp;עצור לאחר וידאו זה</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="578"/>
         <source>&amp;Report an Issue...</source>
         <translation>&amp;דיווח על תקלה...</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="582"/>
         <source>&amp;Refine Search...</source>
         <translation>&amp;שיפור החיפוש...</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="594"/>
         <source>More...</source>
         <translation>עוד...</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="597"/>
         <source>&amp;Related Videos</source>
         <translation>סרטונים דומים</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="599"/>
         <source>Watch videos related to the current one</source>
         <translation>צפה בסרטונים הדומים לסרטון זה</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="605"/>
         <source>Open in &amp;Browser...</source>
         <translation>פתח בדפדפן</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="612"/>
-        <source>&amp;Love %1? Rate it!</source>
-        <translation>&amp;אוהב את %1? דרג אותו!</translation>
+        <source>Restricted Mode</source>
+        <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="633"/>
-        <source>&amp;Application</source>
-        <translation>&amp;יישום</translation>
+        <source>Hide videos that may contain inappropriate content</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <source>&amp;Love %1? Rate it!</source>
+        <translation>&amp;אוהב את %1? דרג אותו!</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="618"/>
         <source>Buy %1...</source>
         <translation>רכישת %1...</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="647"/>
+        <source>&amp;Application</source>
+        <translation>&amp;יישום</translation>
+    </message>
+    <message>
         <source>&amp;Playback</source>
         <translation>נ&amp;גינה</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="661"/>
         <source>&amp;Playlist</source>
         <translation>&amp;רשימת השמעה</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="670"/>
         <source>&amp;Video</source>
         <translation>&amp;וידאו</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="686"/>
-        <source>&amp;View</source>
-        <translation>&amp;צפייה</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="695"/>
         <source>&amp;Share</source>
         <translation>&amp;שיתוף</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="709"/>
+        <source>&amp;View</source>
+        <translation>&amp;צפייה</translation>
+    </message>
+    <message>
         <source>&amp;Help</source>
         <translation>&amp;עזרה</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="751"/>
         <source>Press %1 to raise the volume, %2 to lower it</source>
         <translation>ניתן ללחוץ על %1 כדי להגביר את עצמת השמע, %2 כדי להנמיך אותה</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1021"/>
-        <location filename="src/mainwindow.cpp" line="1027"/>
+        <source>Choose your content location</source>
+        <translation>בחר את המיקום הנוכחי שלך</translation>
+    </message>
+    <message>
         <source>Opening %1</source>
         <translation>%1 נפתח</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1080"/>
         <source>Do you want to exit %1 with a download in progress?</source>
         <translation>האם ברצונך לצאת מ־%1 כאשר ישנה הורדה פעילה?</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1081"/>
         <source>If you close %1 now, this download will be cancelled.</source>
         <translation>אם %1 ייסגר כעת, הורדה זו תבוטל.</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1086"/>
         <source>Close and cancel download</source>
         <translation>סגירה וביטול ההורדה</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1087"/>
         <source>Wait for download to finish</source>
         <translation>יש להמתין לסיום ההורדה</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1158"/>
-        <source>&amp;Loading...</source>
-        <translation type="unfinished"/>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="1264"/>
-        <source>Leave &amp;Full Screen</source>
-        <translation>יציאה ממ&amp;סך מלא</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="1718"/>
-        <source>%1 version %2 is now available.</source>
-        <translation>%1 בגרסה %2 זמין כעת.</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="1722"/>
-        <source>Remind me later</source>
-        <translation>להזכיר לי מאוחר יותר</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="1723"/>
-        <source>Update</source>
-        <translation>עדכון</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="1127"/>
         <source>Error: %1</source>
         <translation>שגיאה: %1</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="300"/>
-        <source>P&amp;revious</source>
-        <translation>ה&amp;קודם</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="301"/>
-        <source>Go back to the previous track</source>
-        <translation>חזרה לרצועה הקודמת</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="335"/>
-        <source>&amp;Compact Mode</source>
-        <translation>מ&amp;צב חסכוני</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="348"/>
-        <source>Open the &amp;YouTube Page</source>
-        <translation>פתיחת העמוד ב&amp;יוטיוב</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="355"/>
-        <source>Copy the YouTube &amp;Link</source>
-        <translation>העתקת ה&amp;קישור ליוטיוב</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="362"/>
-        <source>Copy the Video Stream &amp;URL</source>
-        <translation>העתקת כתובת ת&amp;זרים הווידאו</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="369"/>
-        <source>Find Video &amp;Parts</source>
-        <translation>חיפוש ק&amp;טעי וידאו</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="397"/>
-        <source>&amp;Clear Recent Searches</source>
-        <translation>&amp;ניקוי החיפושים האחרונים</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="421"/>
-        <source>Make a &amp;Donation</source>
-        <translation>&amp;תרמו</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="483"/>
-        <source>&amp;Manually Start Playing</source>
-        <translation>התחלת נגינה י&amp;דנית</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="484"/>
-        <source>Manually start playing videos</source>
-        <translation>התחלה ידנית בנגינת קטעי הווידאו</translation>
+        <source>&amp;Pause</source>
+        <translation>ה&amp;שהיה</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="847"/>
-        <source>Choose your content location</source>
-        <translation>בחר את המיקום הנוכחי שלך</translation>
+        <source>Pause playback</source>
+        <translation>השהיית הנגינה</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="314"/>
-        <location filename="src/mainwindow.cpp" line="1142"/>
-        <location filename="src/mainwindow.cpp" line="1150"/>
-        <source>&amp;Play</source>
-        <translation>&amp;נגינה</translation>
+        <source>&amp;Loading...</source>
+        <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="315"/>
-        <location filename="src/mainwindow.cpp" line="1143"/>
-        <location filename="src/mainwindow.cpp" line="1151"/>
-        <source>Resume playback</source>
-        <translation>המשך הנגינה</translation>
+        <source>Leave &amp;Full Screen</source>
+        <translation>יציאה ממ&amp;סך מלא</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1437"/>
         <source>Remaining time: %1</source>
         <translation>הזמן הנותר: %1</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1528"/>
         <source>Volume at %1%</source>
         <translation>עצמת השמע היא %1%</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1534"/>
         <source>Volume is muted</source>
         <translation>השמע מושתק</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1537"/>
         <source>Volume is unmuted</source>
         <translation>השמע אינו מושתק</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1548"/>
         <source>Maximum video definition set to %1</source>
         <translation>איכות הנגינה המירבית מוגדרת ל־%1</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1595"/>
         <source>Your privacy is now safe</source>
         <translation>פרטיותך מוגנת כעת.</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1610"/>
         <source>Downloads complete</source>
         <translation>ההורדות הושלמו</translation>
     </message>
+    <message>
+        <source>%1 version %2 is now available.</source>
+        <translation>%1 בגרסה %2 זמין כעת.</translation>
+    </message>
+    <message>
+        <source>Remind me later</source>
+        <translation>להזכיר לי מאוחר יותר</translation>
+    </message>
+    <message>
+        <source>Update</source>
+        <translation>עדכון</translation>
+    </message>
 </context>
 <context>
     <name>MediaView</name>
     <message>
-        <location filename="src/mediaview.cpp" line="702"/>
         <source>You can now paste the YouTube link into another application</source>
         <translation>כעת ניתן להדביק את קישור ה־YouTube שלכם ביישום אחר</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="710"/>
         <source>You can now paste the video stream URL into another application</source>
         <translation>כעת ניתן להדביק את כתובת תזרים הווידאו ליישום אחר</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="711"/>
         <source>The link will be valid only for a limited time.</source>
         <translation>הקישור יהיה תקף לזמן מוגבל בלבד.</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="800"/>
         <source>This is just the demo version of %1.</source>
         <translation>זוהי רק גרסת ההדגמה של %1.</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="801"/>
         <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="833"/>
+        <source>Get the full version</source>
+        <translation>קבלת הגרסה המלאה</translation>
+    </message>
+    <message>
         <source>Continue</source>
         <translation>המשך</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="988"/>
+        <source>Downloading %1</source>
+        <translation>%1 מתקבל</translation>
+    </message>
+    <message>
         <source>of</source>
         <comment>Used in video parts, as in '2 of 3'</comment>
         <translation>מתוך</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="1001"/>
         <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="1003"/>
         <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="1096"/>
         <source>Sent from %1</source>
         <translation>נשלח דרך %1</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="1128"/>
         <source>Unsubscribe from %1</source>
         <translation>בטל מנוי מ %1</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="1132"/>
         <source>Subscribe to %1</source>
         <translation>מנוי ל %1</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="1166"/>
         <source>Unsubscribed from %1</source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="1169"/>
         <source>Subscribed to %1</source>
         <translation type="unfinished"/>
     </message>
-    <message>
-        <location filename="src/mediaview.cpp" line="808"/>
-        <source>Get the full version</source>
-        <translation>קבלת הגרסה המלאה</translation>
-    </message>
-    <message>
-        <location filename="src/mediaview.cpp" line="847"/>
-        <source>Downloading %1</source>
-        <translation>%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>גירסה חדשה של  %1 זמינה להורדה!</translation>
     </message>
     <message>
-        <location filename="local/src/updatedialog.cpp" line="28"/>
         <source>%1 %2 is now available. You have %3.</source>
         <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>האם ברצונך להוריד זאת כעת?</translation>
     </message>
     <message>
-        <location filename="local/src/updatedialog.cpp" line="39"/>
         <source>Skip This Version</source>
         <translation>התעלמות מגרסה זו</translation>
     </message>
     <message>
-        <location filename="local/src/updatedialog.cpp" line="43"/>
         <source>Remind Me Later</source>
         <translation>להזכיר לי מאוחר יותר</translation>
     </message>
     <message>
-        <location filename="local/src/updatedialog.cpp" line="47"/>
         <source>Install Update</source>
         <translation>התקנת עדכון</translation>
     </message>
 <context>
     <name>PasteLineEdit</name>
     <message>
-        <location filename="local/src/pastelineedit.cpp" line="6"/>
         <source>Paste</source>
         <translation>הדבקה</translation>
     </message>
 <context>
     <name>PlaylistItemDelegate</name>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="209"/>
         <source>%1 views</source>
         <translation>%1 צפיות</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="309"/>
         <source>%1 of %2 (%3) — %4</source>
         <translation>%1 מתוך %2 (%3) — %4</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="316"/>
         <source>Preparing</source>
         <translation>מתכונן</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="318"/>
         <source>Failed</source>
         <translation>נכשל</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="320"/>
         <source>Completed</source>
         <translation>הושלם</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="322"/>
         <source>Stopped</source>
         <translation>הופסק</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="358"/>
         <source>Stop downloading</source>
         <translation>עצור הורדות</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="368"/>
         <source>Show in %1</source>
         <translation>הצג ב %1</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="370"/>
         <source>Open parent folder</source>
         <translation>פתח תיקיית מקור</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="379"/>
         <source>Restart downloading</source>
         <translation>התחל הורדות מחדש</translation>
     </message>
 <context>
     <name>PlaylistModel</name>
     <message>
-        <location filename="src/playlistmodel.cpp" line="70"/>
         <source>Searching...</source>
         <translation>בהליכי חיפוש...</translation>
     </message>
     <message>
-        <location filename="src/playlistmodel.cpp" line="71"/>
         <source>Show %1 More</source>
         <translation>הצגת %1 נוספים</translation>
     </message>
     <message>
-        <location filename="src/playlistmodel.cpp" line="72"/>
         <source>No videos</source>
         <translation>אין סרטונים</translation>
     </message>
     <message>
-        <location filename="src/playlistmodel.cpp" line="73"/>
         <source>No more videos</source>
         <translation>אין עוד סרטונים</translation>
     </message>
 <context>
     <name>RefineSearchWidget</name>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="49"/>
         <source>Sort by</source>
         <translation>סידור לפי</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="53"/>
         <source>Relevance</source>
         <translation>רלוונטיות</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="54"/>
-        <location filename="src/refinesearchwidget.cpp" line="69"/>
         <source>Date</source>
         <translation>תאריך</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="55"/>
         <source>View Count</source>
         <translation>מונה צפיות</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="56"/>
         <source>Rating</source>
         <translation>דירוג</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="73"/>
         <source>Anytime</source>
         <translation>בכל זמן שהוא</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="74"/>
         <source>Today</source>
         <translation>היום</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="75"/>
         <source>7 Days</source>
         <translation>7 ימים</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="76"/>
         <source>30 Days</source>
         <translation>30 ימים</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="89"/>
         <source>Duration</source>
         <translation>משך</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="93"/>
-        <location filename="src/refinesearchwidget.cpp" line="119"/>
         <source>All</source>
         <translation>הכול</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="94"/>
         <source>Short</source>
         <translation>קצר</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="95"/>
         <source>Medium</source>
         <translation>בינוני</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="96"/>
         <source>Long</source>
         <translation>ארוך</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="99"/>
         <source>Less than 4 minutes</source>
         <translation>פחות מ־4 דקות</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="100"/>
         <source>Between 4 and 20 minutes</source>
         <translation>בין 4 ל־20 דקות</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="101"/>
         <source>Longer than 20 minutes</source>
         <translation>למעלה מ־20 דקות</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="115"/>
         <source>Quality</source>
         <translation>איכות</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="120"/>
         <source>High Definition</source>
         <translation>אבחנה גבוהה (HD)</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="123"/>
         <source>720p or higher</source>
         <translation>720p ומעלה</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="136"/>
         <source>Done</source>
         <translation>הסתיים</translation>
     </message>
 <context>
     <name>RegionsView</name>
     <message>
-        <location filename="src/regionsview.cpp" line="39"/>
         <source>Done</source>
         <translation>הסתיים</translation>
     </message>
 <context>
     <name>SearchLineEdit</name>
     <message>
-        <location filename="src/searchlineedit.cpp" line="55"/>
         <source>Search</source>
         <translation>חיפוש</translation>
     </message>
 <context>
     <name>SearchView</name>
     <message>
-        <location filename="src/searchview.cpp" line="83"/>
         <source>Welcome to &lt;a href=&apos;%1&apos;&gt;%2&lt;/a&gt;,</source>
         <translation>ברוך בואך אל &lt;a href=&apos;%1&apos;&gt;%2&lt;/a&gt;,</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="200"/>
-        <source>Get the full version</source>
-        <translation>קבלת הגרסה המלאה</translation>
-    </message>
-    <message>
-        <location filename="src/searchview.cpp" line="110"/>
         <source>Enter</source>
         <extracomment>&quot;Enter&quot;, as in &quot;type&quot;. The whole phrase says: &quot;Enter a keyword to start watching videos&quot;</extracomment>
         <translation>הזנה</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="117"/>
         <source>a keyword</source>
         <translation>מילת מפתח</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="118"/>
         <source>a channel</source>
         <translation>ערוץ</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="125"/>
         <source>to start watching videos.</source>
         <translation>כדי להתחיל לצפות בסרטונים.</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="156"/>
         <source>Watch</source>
         <translation>צפייה</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="174"/>
         <source>Recent keywords</source>
         <translation>מילות מפתח אחרונות</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="186"/>
         <source>Recent channels</source>
         <translation>ערוצים אחרונים</translation>
     </message>
+    <message>
+        <source>Get the full version</source>
+        <translation>קבלת הגרסה המלאה</translation>
+    </message>
 </context>
 <context>
     <name>SidebarHeader</name>
     <message>
-        <location filename="src/sidebarheader.cpp" line="38"/>
-        <location filename="src/sidebarheader.cpp" line="45"/>
         <source>&amp;Back</source>
         <translation>הקודם</translation>
     </message>
     <message>
-        <location filename="src/sidebarheader.cpp" line="76"/>
         <source>Forward to %1</source>
         <translation>העבר אל %1</translation>
     </message>
     <message>
-        <location filename="src/sidebarheader.cpp" line="89"/>
         <source>Back to %1</source>
         <translation>חזור אל %1</translation>
     </message>
 <context>
     <name>SidebarWidget</name>
     <message>
-        <location filename="src/sidebarwidget.cpp" line="68"/>
         <source>Refine Search</source>
         <translation>שיפור החיפוש</translation>
     </message>
     <message>
-        <location filename="src/sidebarwidget.cpp" line="167"/>
         <source>Did you mean: %1</source>
         <translation>האם כוונתך הייתה: %1</translation>
     </message>
 <context>
     <name>SnapshotSettings</name>
     <message>
-        <location filename="src/snapshotsettings.cpp" line="47"/>
         <source>Change location...</source>
         <translation>שינוי המיקום...</translation>
     </message>
     <message>
-        <location filename="src/snapshotsettings.cpp" line="64"/>
         <source>Snapshot saved to %1</source>
         <translation>צילום מסך נשמר ב %1</translation>
     </message>
     <message>
-        <location filename="src/snapshotsettings.cpp" line="117"/>
         <source>Snapshots location changed.</source>
         <translation>מיקום צילומי מסך שונה.</translation>
     </message>
 <context>
     <name>StandardFeedsView</name>
     <message>
-        <location filename="src/standardfeedsview.cpp" line="107"/>
         <source>Most Popular</source>
         <translation>הכי פופולאריים</translation>
     </message>
 </context>
+<context>
+    <name>UpdateDialog</name>
+    <message>
+        <source>Downloading update...</source>
+        <translation>העדכון מתקבל...</translation>
+    </message>
+    <message>
+        <source>Downloading %1...</source>
+        <translation type="unfinished"/>
+    </message>
+</context>
 <context>
     <name>Video</name>
     <message>
-        <location filename="src/video.cpp" line="287"/>
         <source>Cannot get video stream for %1</source>
         <translation>לא ניתן לקבל את תזרים הווידאו עבור %1</translation>
     </message>
-    <message>
-        <location filename="src/video.cpp" line="292"/>
-        <source>Network error: %1 for %2</source>
-        <translation>שגיאת רשת: %1 עבור %2</translation>
-    </message>
 </context>
 <context>
     <name>YTRegions</name>
     <message>
-        <location filename="src/ytregions.cpp" line="28"/>
         <source>Algeria</source>
         <translation>אלג׳יר</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="29"/>
         <source>Argentina</source>
         <translation>ארגנטינה</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="30"/>
         <source>Australia</source>
         <translation>אוסטרליה</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="31"/>
         <source>Belgium</source>
         <translation>בלגיה</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="32"/>
         <source>Brazil</source>
         <translation>ברזיל</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="33"/>
         <source>Canada</source>
         <translation>קנדה</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="34"/>
         <source>Chile</source>
         <translation>צ׳ילה</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="35"/>
         <source>Colombia</source>
         <translation>קולומביה</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="36"/>
         <source>Czech Republic</source>
         <translation>הרפובליקה הצ׳כית</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="37"/>
         <source>Egypt</source>
         <translation>מצריים</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="38"/>
         <source>France</source>
         <translation>צרפת</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="39"/>
         <source>Germany</source>
         <translation>גרמניה</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="40"/>
         <source>Ghana</source>
         <translation>גאנה</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="41"/>
         <source>Greece</source>
         <translation>יוון</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="42"/>
         <source>Hong Kong</source>
         <translation>הונג קונג</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="43"/>
         <source>Hungary</source>
         <translation>הונגריה</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="44"/>
         <source>India</source>
         <translation>הודו</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="45"/>
         <source>Indonesia</source>
         <translation>אינדונזיה</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="46"/>
         <source>Ireland</source>
         <translation>אירלנד</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="47"/>
         <source>Israel</source>
         <translation>ישראל</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="48"/>
         <source>Italy</source>
         <translation>איטליה</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="49"/>
         <source>Japan</source>
         <translation>יפן</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="50"/>
         <source>Jordan</source>
         <translation>ירדן</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="51"/>
         <source>Kenya</source>
         <translation>קניה</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="52"/>
         <source>Malaysia</source>
         <translation>מלזיה</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="53"/>
         <source>Mexico</source>
         <translation>מקסיקו</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="54"/>
         <source>Morocco</source>
         <translation>מרוקו</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="55"/>
         <source>Netherlands</source>
         <translation>הולנד</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="56"/>
         <source>New Zealand</source>
         <translation>ניו זילנד</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="57"/>
         <source>Nigeria</source>
         <translation>ניגריה</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="58"/>
         <source>Peru</source>
         <translation>פרו</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="59"/>
         <source>Philippines</source>
         <translation>הפיליפינים</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="60"/>
         <source>Poland</source>
         <translation>פולין</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="61"/>
         <source>Russia</source>
         <translation>רוסיה</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="62"/>
         <source>Saudi Arabia</source>
         <translation>ערב הסעודית</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="63"/>
         <source>Singapore</source>
         <translation>סינגפור</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="64"/>
         <source>South Africa</source>
         <translation>דרום אפריקה</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="65"/>
         <source>South Korea</source>
         <translation>דרום קוריאה</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="66"/>
         <source>Spain</source>
         <translation>ספרד</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="67"/>
         <source>Sweden</source>
         <translation>שבדיה</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="68"/>
         <source>Taiwan</source>
         <translation>טאיואן</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="69"/>
         <source>Tunisia</source>
         <translation>תוניס</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="70"/>
         <source>Turkey</source>
         <translation>טורקיה</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="71"/>
         <source>Uganda</source>
         <translation>אוגנדה</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="72"/>
         <source>United Arab Emirates</source>
         <translation>איחוד נסיכויות ערב</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="73"/>
         <source>United Kingdom</source>
         <translation>הממלכה המאוחדת/אנגליה</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="74"/>
         <source>Yemen</source>
         <translation>תימן</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="148"/>
         <source>Worldwide</source>
         <translation>כל העולם</translation>
     </message>
index f13d40ead93cd707cfb240b8ce4b56c13f84765e..0ef5015c2f3276126f2836b00b9457d3430bc13b 100644 (file)
@@ -2,67 +2,42 @@
 <context>
     <name>AboutView</name>
     <message>
-        <location filename="src/aboutview.cpp" line="58"/>
         <source>There&apos;s life outside the browser!</source>
         <translation>Život postoji i van browsera!</translation>
     </message>
     <message>
-        <location filename="src/aboutview.cpp" line="59"/>
         <source>Version %1</source>
         <translation>Verzija %1</translation>
     </message>
     <message>
-        <location filename="src/aboutview.cpp" line="64"/>
         <source>Licensed to: %1</source>
         <translation>Licencirano na: %1</translation>
     </message>
     <message>
-        <location filename="src/aboutview.cpp" line="68"/>
         <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="69"/>
         <source>Please &lt;a href=&apos;%1&apos;&gt;donate&lt;/a&gt; to support the continued development of %2.</source>
         <translation>Vaša &lt;a href=&apos;%1&apos;&gt;donacija&lt;/a&gt; će pomoći daljnjem razvoju %2.</translation>
     </message>
     <message>
-        <location filename="src/aboutview.cpp" line="73"/>
-        <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="76"/>
-        <source>%1, a YouTube music player</source>
-        <translation>%1, YouTube glazbeni reproduktor</translation>
-    </message>
-    <message>
-        <location filename="src/aboutview.cpp" line="80"/>
-        <source>%1, a music player</source>
-        <translation>%1, reproduktor glazbe</translation>
-    </message>
-    <message>
-        <location filename="src/aboutview.cpp" line="86"/>
         <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="91"/>
         <source>Icon designed by %1.</source>
         <translation>Dizajn ikone %1.</translation>
     </message>
     <message>
-        <location filename="src/aboutview.cpp" line="95"/>
         <source>Released under the &lt;a href=&apos;%1&apos;&gt;GNU General Public License&lt;/a&gt;</source>
         <translation>Izdano pod &lt;a href=&apos;%1&apos;&gt;GNU General Public License&lt;/a&gt;</translation>
     </message>
     <message>
-        <location filename="src/aboutview.cpp" line="110"/>
         <source>&amp;Close</source>
         <translation>&amp;Zatvori</translation>
     </message>
     <message>
-        <location filename="src/aboutview.h" line="40"/>
         <source>About</source>
         <translation>O programu</translation>
     </message>
 <context>
     <name>ActivationDialog</name>
     <message>
-        <location filename="local/src/activationdialog.cpp" line="17"/>
         <source>Enter your License Details</source>
         <translation>Unesite pojedinosti za licencu</translation>
     </message>
     <message>
-        <location filename="local/src/activationdialog.cpp" line="29"/>
         <source>&amp;Email:</source>
         <translation>&amp;E-pošta:</translation>
     </message>
     <message>
-        <location filename="local/src/activationdialog.cpp" line="35"/>
         <source>&amp;Code:</source>
         <translation>&amp;Kod:</translation>
     </message>
 <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 probna verzija je istekla.</translation>
     </message>
     <message>
-        <location filename="local/src/activationview.cpp" line="53"/>
         <source>The full version allows you to watch videos without interruptions.</source>
-        <oldsource>The full version allows you to download videos longer than %1 minutes and to watch videos without interruptions.</oldsource>
         <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>Bez licence, ovaj će program isteći za %1 dana</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>Kupnjom pune verzije podržati ćete i naporan rad uložen u izradu %1.</translation>
     </message>
     <message>
-        <location filename="local/src/activationview.cpp" line="70"/>
         <source>Use Demo</source>
         <translation>Koristi probnu verziju.</translation>
     </message>
     <message>
-        <location filename="local/src/activationview.cpp" line="77"/>
         <source>Enter License</source>
         <translation>Unesi licencu</translation>
     </message>
     <message>
-        <location filename="local/src/activationview.cpp" line="85"/>
         <source>Buy License</source>
         <translation>Kupi licencu</translation>
     </message>
 </context>
+<context>
+    <name>AppWidget</name>
+    <message>
+        <source>Download</source>
+        <translation type="unfinished"/>
+    </message>
+</context>
 <context>
     <name>ChannelAggregator</name>
     <message>
-        <location filename="src/channelaggregator.cpp" line="183"/>
         <source>By %1</source>
         <translation>Od %1</translation>
     </message>
     <message numerus="yes">
-        <location filename="src/channelaggregator.cpp" line="185"/>
         <source>You have %n new video(s)</source>
         <translation type="unfinished"><numerusform></numerusform><numerusform></numerusform><numerusform></numerusform></translation>
     </message>
 <context>
     <name>ChannelItemDelegate</name>
     <message>
-        <location filename="src/channelitemdelegate.cpp" line="67"/>
         <source>All Videos</source>
         <translation>Svi videozapisi</translation>
     </message>
     <message>
-        <location filename="src/channelitemdelegate.cpp" line="85"/>
         <source>Unwatched Videos</source>
         <translation>Ne pregledani videozapisi</translation>
     </message>
 <context>
     <name>ChannelView</name>
     <message>
-        <location filename="src/channelview.cpp" line="151"/>
-        <source>Mark all as watched</source>
-        <translation>Označi sve kao pogledano</translation>
-    </message>
-    <message>
-        <location filename="src/channelview.cpp" line="159"/>
-        <source>Show Updated</source>
-        <translation>Prikaži ažurirano</translation>
-    </message>
-    <message>
-        <location filename="src/channelview.cpp" line="103"/>
         <source>Name</source>
         <translation>Ime</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="110"/>
         <source>Last Updated</source>
         <translation>Posljednje ažurirano</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="117"/>
         <source>Last Added</source>
         <translation>Posljednje dodano</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="124"/>
         <source>Last Watched</source>
         <translation>Posljednje gledano</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="131"/>
         <source>Most Watched</source>
         <translation>Najviše gledano</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="139"/>
         <source>Sort by</source>
         <translation>Sortiraj po</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="222"/>
+        <source>Mark all as watched</source>
+        <translation>Označi sve kao pogledano</translation>
+    </message>
+    <message>
+        <source>Show Updated</source>
+        <translation>Prikaži ažurirano</translation>
+    </message>
+    <message>
         <source>All Videos</source>
         <translation>Svi videozapisi</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="226"/>
         <source>Unwatched Videos</source>
         <translation>Nepregledani videozapisi</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="244"/>
         <source>Mark as Watched</source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="257"/>
         <source>Unsubscribe</source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="270"/>
         <source>There are no updated subscriptions at this time.</source>
         <translation>Trenutno nema dostupnih ažuriranja pretplata</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="272"/>
         <source>You have no subscriptions. Use the star symbol to subscribe to channels.</source>
         <translation>Niste pretplaćeni na ni jedan kanal. Za pretplatu kliknite na zvijezdicu.</translation>
     </message>
 <context>
     <name>ClearButton</name>
     <message>
-        <location filename="src/exlineedit.cpp" line="6"/>
         <source>Clear</source>
         <translation>Obriši</translation>
     </message>
 <context>
     <name>DataUtils</name>
     <message>
-        <location filename="src/datautils.cpp" line="88"/>
         <source>Just now</source>
         <translation type="unfinished"/>
     </message>
     <message numerus="yes">
-        <location filename="src/datautils.cpp" line="90"/>
-        <source>%n minute(s) ago</source>
-        <translation type="unfinished"><numerusform></numerusform><numerusform></numerusform><numerusform></numerusform></translation>
-    </message>
-    <message numerus="yes">
-        <location filename="src/datautils.cpp" line="92"/>
         <source>%n hour(s) ago</source>
         <translation type="unfinished"><numerusform></numerusform><numerusform></numerusform><numerusform></numerusform></translation>
     </message>
     <message numerus="yes">
-        <location filename="src/datautils.cpp" line="94"/>
         <source>%n day(s) ago</source>
         <translation type="unfinished"><numerusform></numerusform><numerusform></numerusform><numerusform></numerusform></translation>
     </message>
     <message numerus="yes">
-        <location filename="src/datautils.cpp" line="96"/>
         <source>%n weeks(s) ago</source>
         <translation type="unfinished"><numerusform></numerusform><numerusform></numerusform><numerusform></numerusform></translation>
     </message>
     <message numerus="yes">
-        <location filename="src/datautils.cpp" line="98"/>
         <source>%n month(s) ago</source>
         <translation type="unfinished"><numerusform></numerusform><numerusform></numerusform><numerusform></numerusform></translation>
     </message>
 <context>
     <name>DownloadItem</name>
     <message>
-        <location filename="src/downloaditem.cpp" line="406"/>
         <source>bytes</source>
         <translation>bajtova</translation>
     </message>
     <message>
-        <location filename="src/downloaditem.cpp" line="409"/>
         <source>KB</source>
         <translation>KB</translation>
     </message>
     <message>
-        <location filename="src/downloaditem.cpp" line="412"/>
         <source>MB</source>
         <translation>MB</translation>
     </message>
     <message>
-        <location filename="src/downloaditem.cpp" line="421"/>
         <source>bytes/sec</source>
         <translation>bajtova/sec</translation>
     </message>
     <message>
-        <location filename="src/downloaditem.cpp" line="424"/>
         <source>KB/sec</source>
         <translation>KB/sec</translation>
     </message>
     <message>
-        <location filename="src/downloaditem.cpp" line="427"/>
         <source>MB/sec</source>
         <translation>MB/sec</translation>
     </message>
     <message>
-        <location filename="src/downloaditem.cpp" line="433"/>
         <source>seconds</source>
         <translation>sekundi</translation>
     </message>
     <message>
-        <location filename="src/downloaditem.cpp" line="436"/>
         <source>minutes</source>
         <translation>minuta</translation>
     </message>
     <message>
-        <location filename="src/downloaditem.cpp" line="439"/>
         <source>%4 %5 remaining</source>
         <translation>%4 %5 preostalo</translation>
     </message>
 <context>
     <name>DownloadManager</name>
     <message>
-        <location filename="src/downloadmanager.cpp" line="77"/>
         <source>This is just the demo version of %1.</source>
         <translation>Ovo je samo probna  verzija %1.</translation>
     </message>
     <message>
-        <location filename="src/downloadmanager.cpp" line="79"/>
         <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="85"/>
         <source>Continue</source>
         <translation>Nastavi</translation>
     </message>
     <message>
-        <location filename="src/downloadmanager.cpp" line="86"/>
         <source>Get the full version</source>
         <translation>Preuzmi punu verziju</translation>
     </message>
     <message>
-        <location filename="src/downloadmanager.cpp" line="157"/>
         <source>%1 downloaded in %2</source>
         <translation>%1 preuzet u %2</translation>
     </message>
     <message>
-        <location filename="src/downloadmanager.cpp" line="160"/>
         <source>Download finished</source>
         <translation>Preuzimanje završeno</translation>
     </message>
     <message numerus="yes">
-        <location filename="src/downloadmanager.cpp" line="165"/>
         <source>%n Download(s)</source>
         <translation type="unfinished"><numerusform></numerusform><numerusform></numerusform><numerusform></numerusform></translation>
     </message>
 <context>
     <name>DownloadSettings</name>
     <message>
-        <location filename="src/downloadsettings.cpp" line="36"/>
         <source>Change location...</source>
         <translation>Promijeni odredište preuzimanja...</translation>
     </message>
     <message>
-        <location filename="src/downloadsettings.cpp" line="69"/>
         <source>Choose the download location</source>
         <translation>Odaberi odredište preuzimanja</translation>
     </message>
     <message>
-        <location filename="src/downloadsettings.cpp" line="81"/>
         <source>Download location changed.</source>
         <translation>Odredište preuzimanja promijenjeno.</translation>
     </message>
     <message>
-        <location filename="src/downloadsettings.cpp" line="83"/>
         <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="94"/>
         <source>Downloading to: %1</source>
         <translation>Preuzimam u: %1</translation>
     </message>
 <context>
     <name>DownloadView</name>
     <message>
-        <location filename="src/downloadview.cpp" line="38"/>
-        <location filename="src/downloadview.h" line="45"/>
         <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>Preuzimam ažuriranja...</translation>
-    </message>
-</context>
 <context>
     <name>Extra</name>
     <message>
-        <location filename="local/src/extra.cpp" line="251"/>
         <source>The executable file has been tempered with, maybe by a virus.</source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="local/src/extra.cpp" line="252"/>
         <source>%1 will not run. Try installing again.</source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="local/src/extra.cpp" line="253"/>
         <source>Quit</source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="local/src/extra.cpp" line="254"/>
         <source>Reinstall</source>
         <translation type="unfinished"/>
     </message>
 <context>
     <name>GlobalShortcuts</name>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="36"/>
         <source>Play</source>
         <translation>Pokreni</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="37"/>
         <source>Pause</source>
         <translation>Pauza</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="38"/>
         <source>Play/Pause</source>
         <translation>Pokreni/Pauza</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="39"/>
         <source>Stop</source>
         <translation>Stani</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="40"/>
         <source>Stop playing after current track</source>
         <translation>Stani nakon trenutne stvari.</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="41"/>
         <source>Next track</source>
         <translation>Slijedeća</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="42"/>
         <source>Previous track</source>
         <translation>Prethodna</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="43"/>
         <source>Increase volume</source>
         <translation>Pojačaj zvuk</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="44"/>
         <source>Decrease volume</source>
         <translation>Stišaj zvuk</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="45"/>
         <source>Mute</source>
         <translation>Nijemo</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="46"/>
         <source>Seek forward</source>
         <translation>Premotaj naprijed</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="47"/>
         <source>Seek backward</source>
         <translation>Premotaj nazad</translation>
     </message>
 <context>
     <name>HomeView</name>
     <message>
-        <location filename="src/homeview.cpp" line="58"/>
         <source>Search</source>
         <translation>Traži</translation>
     </message>
     <message>
-        <location filename="src/homeview.cpp" line="60"/>
         <source>Find videos and channels by keyword</source>
         <translation>Pretraga videozapisa i kanala po ključnoj riječi</translation>
     </message>
     <message>
-        <location filename="src/homeview.cpp" line="65"/>
         <source>Browse</source>
         <translation>Pretraga</translation>
     </message>
     <message>
-        <location filename="src/homeview.cpp" line="67"/>
         <source>Browse videos by category</source>
         <translation>Pretraga videozapisa po kategoriji</translation>
     </message>
     <message>
-        <location filename="src/homeview.cpp" line="71"/>
         <source>Subscriptions</source>
         <translation>Pretplate</translation>
     </message>
     <message>
-        <location filename="src/homeview.cpp" line="73"/>
         <source>Channel subscriptions</source>
         <translation>Pretplatnički kanali</translation>
     </message>
     <message>
-        <location filename="src/homeview.h" line="44"/>
         <source>Make yourself comfortable</source>
         <translation>Udobno se smjestite</translation>
     </message>
 <context>
     <name>LoadingWidget</name>
     <message>
-        <location filename="src/loadingwidget.cpp" line="125"/>
         <source>Error</source>
         <translation>Greška</translation>
     </message>
 <context>
     <name>MainWindow</name>
     <message>
-        <location filename="src/mainwindow.cpp" line="291"/>
+        <source>&amp;Window</source>
+        <translation>&amp;Prozor</translation>
+    </message>
+    <message>
+        <source>&amp;Minimize</source>
+        <translation>&amp;Smanji</translation>
+    </message>
+    <message>
         <source>&amp;Stop</source>
         <translation>&amp;Zaustavi</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="292"/>
         <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="307"/>
+        <source>P&amp;revious</source>
+        <translation>P&amp;rethodni</translation>
+    </message>
+    <message>
+        <source>Go back to the previous track</source>
+        <translation>Idi nazad na prethodnu pjesmu</translation>
+    </message>
+    <message>
         <source>S&amp;kip</source>
         <translation>&amp;Preskoči</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="308"/>
         <source>Skip to the next video</source>
         <translation>Preskoči na slijedeći videozapis</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1134"/>
-        <source>&amp;Pause</source>
-        <translation>&amp;Pauza</translation>
+        <source>&amp;Play</source>
+        <translation>&amp;Sviraj</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1135"/>
-        <source>Pause playback</source>
-        <translation>Pauziraj</translation>
+        <source>Resume playback</source>
+        <translation>&amp;Nastavi sviranje</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="321"/>
         <source>&amp;Full Screen</source>
         <translation>&amp;Cijeli ekran</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="322"/>
         <source>Go full screen</source>
         <translation>Prikaži preko cijelog ekrana</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="336"/>
+        <source>&amp;Compact Mode</source>
+        <translation>&amp;Kompaktni mod</translation>
+    </message>
+    <message>
         <source>Hide the playlist and the toolbar</source>
         <translation>Sakrij play listu i alatnu traku</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="349"/>
+        <source>Open the &amp;YouTube Page</source>
+        <translation>Otvori &amp;YouTube stranicu</translation>
+    </message>
+    <message>
         <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="356"/>
+        <source>Copy the YouTube &amp;Link</source>
+        <translation>Kopiraj YouTube &amp;link</translation>
+    </message>
+    <message>
         <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="363"/>
+        <source>Copy the Video Stream &amp;URL</source>
+        <translation>Kopiraj &amp;URL video streama</translation>
+    </message>
+    <message>
         <source>Copy the current video stream URL to the clipboard</source>
         <translation>Kopiraj &amp;URL trenutnog video streama u clipboard</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="370"/>
+        <source>Find Video &amp;Parts</source>
+        <translation>Nađi &amp;dijelove videa</translation>
+    </message>
+    <message>
         <source>Find other video parts hopefully in the right order</source>
         <translation>Nađi ostale dijelove videa, nadam se u pravom redoslijedu</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="376"/>
         <source>&amp;Remove</source>
         <translation>&amp;Ukloni</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="377"/>
         <source>Remove the selected videos from the playlist</source>
         <translation>Ukloni odabrane videozapise iz play liste</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="383"/>
         <source>Move &amp;Up</source>
         <translation>Pomakni &amp;gore</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="384"/>
         <source>Move up the selected videos in the playlist</source>
         <translation>Pomakni gore označene videozapise u play listi</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="390"/>
         <source>Move &amp;Down</source>
         <translation>Pomakni &amp;dolje</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="391"/>
         <source>Move down the selected videos in the playlist</source>
         <translation>Pomakni dolje označene videozapise u play listi</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="402"/>
+        <source>&amp;Clear Recent Searches</source>
+        <translation>&amp;Izbriši nedavne pretrage</translation>
+    </message>
+    <message>
         <source>Clear the search history. Cannot be undone.</source>
         <translation>Očisti povijest pretraga. Ne može se poništiti.</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="407"/>
         <source>&amp;Quit</source>
         <translation>&amp;Kraj</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="410"/>
         <source>Bye</source>
         <translation>Doviđenja</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="414"/>
         <source>&amp;Website</source>
         <translation>&amp;Web stranice</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="416"/>
         <source>%1 on the Web</source>
         <translation>%1 na webu</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="422"/>
+        <source>Make a &amp;Donation</source>
+        <translation>Izvrši &amp;donaciju</translation>
+    </message>
+    <message>
         <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="427"/>
         <source>&amp;About</source>
         <translation>&amp;O programu</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="429"/>
         <source>Info about %1</source>
         <translation>Informacije o %1</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="437"/>
         <source>Search</source>
         <translation>Traži</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="456"/>
         <source>Mute volume</source>
         <translation>Utišaj zvuk</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="490"/>
-        <location filename="src/mainwindow.cpp" line="1609"/>
+        <source>&amp;Manually Start Playing</source>
+        <translation>&amp;Ručno pokreni reprodukciju</translation>
+    </message>
+    <message>
+        <source>Manually start playing videos</source>
+        <translation>Ručno pokreni reprodukciju videa</translation>
+    </message>
+    <message>
         <source>&amp;Downloads</source>
         <translation>&amp;Preuzimanja</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="491"/>
         <source>Show details about video downloads</source>
         <translation>Pokaži informacije o preuzimanjima videa</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="499"/>
         <source>&amp;Download</source>
         <translation>&amp;Preuzimanje</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="500"/>
         <source>Download the current video</source>
         <translation>Preuzmi trenutni video</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="510"/>
         <source>Take &amp;Snapshot</source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="517"/>
         <source>&amp;Subscribe to Channel</source>
         <translation>&amp; Pretplata na Kanal</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="525"/>
         <source>Share the current video using %1</source>
         <translation>Podijeli trenutni video koristeći %1</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="545"/>
         <source>&amp;Email</source>
         <translation>&amp;Email</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="546"/>
         <source>Email</source>
         <translation>E-pošta</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="551"/>
         <source>&amp;Close</source>
         <translation>&amp;Zatvori</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="561"/>
         <source>&amp;Float on Top</source>
         <translation>&amp;Budi na vrhu</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="566"/>
         <source>&amp;Adjust Window Size</source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="571"/>
         <source>&amp;Stop After This Video</source>
         <translation>&amp;Stani nakon ovog videa</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="578"/>
         <source>&amp;Report an Issue...</source>
         <translation>&amp;Prijavi problem</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="582"/>
         <source>&amp;Refine Search...</source>
         <translation>&amp;Suzi pretragu</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="594"/>
         <source>More...</source>
         <translation>Više...</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="597"/>
         <source>&amp;Related Videos</source>
         <translation>Sličan videosadržaj</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="599"/>
         <source>Watch videos related to the current one</source>
         <translation>Pogledajte video sadržaj sličan ovome</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="605"/>
         <source>Open in &amp;Browser...</source>
         <translation>Otvori u pretraživaču...</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="612"/>
-        <source>&amp;Love %1? Rate it!</source>
+        <source>Restricted Mode</source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="633"/>
-        <source>&amp;Application</source>
-        <translation>&amp;Program</translation>
+        <source>Hide videos that may contain inappropriate content</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <source>&amp;Love %1? Rate it!</source>
+        <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="618"/>
         <source>Buy %1...</source>
         <translation>Kupi %1</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="647"/>
+        <source>&amp;Application</source>
+        <translation>&amp;Program</translation>
+    </message>
+    <message>
         <source>&amp;Playback</source>
         <translation>&amp;Sviraj</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="661"/>
         <source>&amp;Playlist</source>
         <translation>&amp;Play lista</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="670"/>
         <source>&amp;Video</source>
         <translation>&amp;Video</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="686"/>
-        <source>&amp;View</source>
-        <translation>&amp;Pregled</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="695"/>
         <source>&amp;Share</source>
         <translation>&amp;Podijeli</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="709"/>
+        <source>&amp;View</source>
+        <translation>&amp;Pregled</translation>
+    </message>
+    <message>
         <source>&amp;Help</source>
         <translation>&amp;Pomoć</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="751"/>
         <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="1021"/>
-        <location filename="src/mainwindow.cpp" line="1027"/>
+        <source>Choose your content location</source>
+        <translation>Odaberi lokaciju sadržaja</translation>
+    </message>
+    <message>
         <source>Opening %1</source>
         <translation>Otvaram %1</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1080"/>
         <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="1081"/>
         <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="1086"/>
         <source>Close and cancel download</source>
         <translation>Zatvori i poništi preuzimanje</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1087"/>
         <source>Wait for download to finish</source>
         <translation>Pričekaj da završi preuzimanje</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1158"/>
-        <source>&amp;Loading...</source>
-        <translation type="unfinished"/>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="1264"/>
-        <source>Leave &amp;Full Screen</source>
-        <translation>Izađi iz &amp;Cijelog ekrana</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="1718"/>
-        <source>%1 version %2 is now available.</source>
-        <translation>%1 verzija %2 je dostupna.</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="1722"/>
-        <source>Remind me later</source>
-        <translation>Podsjeti me kasnije</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="1723"/>
-        <source>Update</source>
-        <translation>Ažuriraj</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="1127"/>
         <source>Error: %1</source>
         <translation>Greška: %1</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="300"/>
-        <source>P&amp;revious</source>
-        <translation>P&amp;rethodni</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="301"/>
-        <source>Go back to the previous track</source>
-        <translation>Idi nazad na prethodnu pjesmu</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="335"/>
-        <source>&amp;Compact Mode</source>
-        <translation>&amp;Kompaktni mod</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="348"/>
-        <source>Open the &amp;YouTube Page</source>
-        <translation>Otvori &amp;YouTube stranicu</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="355"/>
-        <source>Copy the YouTube &amp;Link</source>
-        <translation>Kopiraj YouTube &amp;link</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="362"/>
-        <source>Copy the Video Stream &amp;URL</source>
-        <translation>Kopiraj &amp;URL video streama</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="369"/>
-        <source>Find Video &amp;Parts</source>
-        <translation>Nađi &amp;dijelove videa</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="397"/>
-        <source>&amp;Clear Recent Searches</source>
-        <translation>&amp;Izbriši nedavne pretrage</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="421"/>
-        <source>Make a &amp;Donation</source>
-        <translation>Izvrši &amp;donaciju</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="483"/>
-        <source>&amp;Manually Start Playing</source>
-        <translation>&amp;Ručno pokreni reprodukciju</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="484"/>
-        <source>Manually start playing videos</source>
-        <translation>Ručno pokreni reprodukciju videa</translation>
+        <source>&amp;Pause</source>
+        <translation>&amp;Pauza</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="847"/>
-        <source>Choose your content location</source>
-        <translation>Odaberi lokaciju sadržaja</translation>
+        <source>Pause playback</source>
+        <translation>Pauziraj</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="314"/>
-        <location filename="src/mainwindow.cpp" line="1142"/>
-        <location filename="src/mainwindow.cpp" line="1150"/>
-        <source>&amp;Play</source>
-        <translation>&amp;Sviraj</translation>
+        <source>&amp;Loading...</source>
+        <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="315"/>
-        <location filename="src/mainwindow.cpp" line="1143"/>
-        <location filename="src/mainwindow.cpp" line="1151"/>
-        <source>Resume playback</source>
-        <translation>&amp;Nastavi sviranje</translation>
+        <source>Leave &amp;Full Screen</source>
+        <translation>Izađi iz &amp;Cijelog ekrana</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1437"/>
         <source>Remaining time: %1</source>
         <translation>Preostalo vrijeme: %1</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1528"/>
         <source>Volume at %1%</source>
         <translation>Glasnoća na %1%</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1534"/>
         <source>Volume is muted</source>
         <translation>Zvuk je ugašen</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1537"/>
         <source>Volume is unmuted</source>
         <translation>Zvuk je upaljen</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1548"/>
         <source>Maximum video definition set to %1</source>
         <translation>Maksimalna video rezolucija postavljena na %1</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1595"/>
         <source>Your privacy is now safe</source>
         <translation>Vaša privatnost je sada sigurna</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1610"/>
         <source>Downloads complete</source>
         <translation>Preuzimanja završena</translation>
     </message>
+    <message>
+        <source>%1 version %2 is now available.</source>
+        <translation>%1 verzija %2 je dostupna.</translation>
+    </message>
+    <message>
+        <source>Remind me later</source>
+        <translation>Podsjeti me kasnije</translation>
+    </message>
+    <message>
+        <source>Update</source>
+        <translation>Ažuriraj</translation>
+    </message>
 </context>
 <context>
     <name>MediaView</name>
     <message>
-        <location filename="src/mediaview.cpp" line="702"/>
         <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="710"/>
         <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="711"/>
         <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="800"/>
         <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="801"/>
         <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="833"/>
+        <source>Get the full version</source>
+        <translation>Preuzmi punu verziju</translation>
+    </message>
+    <message>
         <source>Continue</source>
         <translation>Nastavi</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="988"/>
+        <source>Downloading %1</source>
+        <translation>Preuzimam %1</translation>
+    </message>
+    <message>
         <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="1001"/>
         <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="1003"/>
         <source>episode</source>
         <comment>This is for video parts, as in 'Cool series - episode 1'</comment>
         <translation>nastavak</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="1096"/>
         <source>Sent from %1</source>
         <translation>Poslano sa %1</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="1128"/>
         <source>Unsubscribe from %1</source>
         <translation>Odjava sa %1</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="1132"/>
         <source>Subscribe to %1</source>
         <translation>Pretplata na %1</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="1166"/>
         <source>Unsubscribed from %1</source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="1169"/>
         <source>Subscribed to %1</source>
         <translation type="unfinished"/>
     </message>
-    <message>
-        <location filename="src/mediaview.cpp" line="808"/>
-        <source>Get the full version</source>
-        <translation>Preuzmi punu verziju</translation>
-    </message>
-    <message>
-        <location filename="src/mediaview.cpp" line="847"/>
-        <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>Dostupna je nova verzija %1</translation>
     </message>
     <message>
-        <location filename="local/src/updatedialog.cpp" line="28"/>
         <source>%1 %2 is now available. You have %3.</source>
         <translation>%1 %2 verzija je sad dostupna. Vi imate %3.</translation>
     </message>
     <message>
-        <location filename="local/src/updatedialog.cpp" line="33"/>
         <source>Would you like to download it now?</source>
         <translation>Želite li sada započeti preuzimanje?</translation>
     </message>
     <message>
-        <location filename="local/src/updatedialog.cpp" line="39"/>
         <source>Skip This Version</source>
         <translation>preskoči ovu verziju</translation>
     </message>
     <message>
-        <location filename="local/src/updatedialog.cpp" line="43"/>
         <source>Remind Me Later</source>
         <translation>Podsjeti me kasnije</translation>
     </message>
     <message>
-        <location filename="local/src/updatedialog.cpp" line="47"/>
         <source>Install Update</source>
         <translation>Instaliraj ažuriranja</translation>
     </message>
 <context>
     <name>PasteLineEdit</name>
     <message>
-        <location filename="local/src/pastelineedit.cpp" line="6"/>
         <source>Paste</source>
         <translation>Zalijepi</translation>
     </message>
 <context>
     <name>PlaylistItemDelegate</name>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="209"/>
         <source>%1 views</source>
         <translation>%1 pregleda</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="309"/>
         <source>%1 of %2 (%3) — %4</source>
         <translation>%1 od %2 (%3) - %4</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="316"/>
         <source>Preparing</source>
         <translation>Pripremam</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="318"/>
         <source>Failed</source>
         <translation>Nije izvršeno</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="320"/>
         <source>Completed</source>
         <translation>Dovršeno</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="322"/>
         <source>Stopped</source>
         <translation>Zaustavljeno</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="358"/>
         <source>Stop downloading</source>
         <translation>Zaustavi preuzimanje</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="368"/>
         <source>Show in %1</source>
         <translation>Prikaži u %1</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="370"/>
         <source>Open parent folder</source>
         <translation>Otvori nadmapu</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="379"/>
         <source>Restart downloading</source>
         <translation>Ponovno pokreni preuzimanje</translation>
     </message>
 <context>
     <name>PlaylistModel</name>
     <message>
-        <location filename="src/playlistmodel.cpp" line="70"/>
         <source>Searching...</source>
         <translation>Pretražujem...</translation>
     </message>
     <message>
-        <location filename="src/playlistmodel.cpp" line="71"/>
         <source>Show %1 More</source>
         <translation>Prikaži %1 više</translation>
     </message>
     <message>
-        <location filename="src/playlistmodel.cpp" line="72"/>
         <source>No videos</source>
         <translation>Nema videozapisa</translation>
     </message>
     <message>
-        <location filename="src/playlistmodel.cpp" line="73"/>
         <source>No more videos</source>
         <translation>Nema više videozapisa</translation>
     </message>
 <context>
     <name>RefineSearchWidget</name>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="49"/>
         <source>Sort by</source>
         <translation>Sortiraj po</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="53"/>
         <source>Relevance</source>
         <translation>Relevantnost</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="54"/>
-        <location filename="src/refinesearchwidget.cpp" line="69"/>
         <source>Date</source>
         <translation>Datum</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="55"/>
         <source>View Count</source>
         <translation>Broj pregleda</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="56"/>
         <source>Rating</source>
         <translation>Ocjena</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="73"/>
         <source>Anytime</source>
         <translation>Bilo kada</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="74"/>
         <source>Today</source>
         <translation>Danas</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="75"/>
         <source>7 Days</source>
         <translation>7 dana</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="76"/>
         <source>30 Days</source>
         <translation>30 dana</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="89"/>
         <source>Duration</source>
         <translation>Trajanje</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="93"/>
-        <location filename="src/refinesearchwidget.cpp" line="119"/>
         <source>All</source>
         <translation>Sve</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="94"/>
         <source>Short</source>
         <translation>Kratko</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="95"/>
         <source>Medium</source>
         <translation>Srednje</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="96"/>
         <source>Long</source>
         <translation>Dugo</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="99"/>
         <source>Less than 4 minutes</source>
         <translation>Kraće od 4 minute</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="100"/>
         <source>Between 4 and 20 minutes</source>
         <translation>Između 4 i 20 minuta</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="101"/>
         <source>Longer than 20 minutes</source>
         <translation>Duže od 20 minuta</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="115"/>
         <source>Quality</source>
         <translation>Kvaliteta</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="120"/>
         <source>High Definition</source>
         <translation>Visoka razlučivost</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="123"/>
         <source>720p or higher</source>
         <translation>720p ili više</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="136"/>
         <source>Done</source>
         <translation>Gotovo</translation>
     </message>
 <context>
     <name>RegionsView</name>
     <message>
-        <location filename="src/regionsview.cpp" line="39"/>
         <source>Done</source>
         <translation>Gotovo</translation>
     </message>
 <context>
     <name>SearchLineEdit</name>
     <message>
-        <location filename="src/searchlineedit.cpp" line="55"/>
         <source>Search</source>
         <translation>Traži</translation>
     </message>
 <context>
     <name>SearchView</name>
     <message>
-        <location filename="src/searchview.cpp" line="83"/>
         <source>Welcome to &lt;a href=&apos;%1&apos;&gt;%2&lt;/a&gt;,</source>
         <translation>Dobrodošli u &lt;a href=&apos;%1&apos;&gt;%2&lt;/a&gt;,</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="200"/>
-        <source>Get the full version</source>
-        <translation>Preuzmi punu verziju</translation>
-    </message>
-    <message>
-        <location filename="src/searchview.cpp" line="110"/>
         <source>Enter</source>
         <extracomment>&quot;Enter&quot;, as in &quot;type&quot;. The whole phrase says: &quot;Enter a keyword to start watching videos&quot;</extracomment>
         <translation>Unesi</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="117"/>
         <source>a keyword</source>
         <translation>ključna riječ</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="118"/>
         <source>a channel</source>
         <translation>kanal</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="125"/>
         <source>to start watching videos.</source>
         <translation>da počnete gledati video.</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="156"/>
         <source>Watch</source>
         <translation>Gledaj</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="174"/>
         <source>Recent keywords</source>
         <translation>Nedavne ključne riječi</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="186"/>
         <source>Recent channels</source>
         <translation>Nedavni kanali</translation>
     </message>
+    <message>
+        <source>Get the full version</source>
+        <translation>Preuzmi punu verziju</translation>
+    </message>
 </context>
 <context>
     <name>SidebarHeader</name>
     <message>
-        <location filename="src/sidebarheader.cpp" line="38"/>
-        <location filename="src/sidebarheader.cpp" line="45"/>
         <source>&amp;Back</source>
         <translation>&amp;Nazad</translation>
     </message>
     <message>
-        <location filename="src/sidebarheader.cpp" line="76"/>
         <source>Forward to %1</source>
         <translation>Naprijed na %1</translation>
     </message>
     <message>
-        <location filename="src/sidebarheader.cpp" line="89"/>
         <source>Back to %1</source>
         <translation>Natrag na %1</translation>
     </message>
 <context>
     <name>SidebarWidget</name>
     <message>
-        <location filename="src/sidebarwidget.cpp" line="68"/>
         <source>Refine Search</source>
         <translation>Suzi pretragu</translation>
     </message>
     <message>
-        <location filename="src/sidebarwidget.cpp" line="167"/>
         <source>Did you mean: %1</source>
         <translation>Dali ste mislili: %1</translation>
     </message>
 <context>
     <name>SnapshotSettings</name>
     <message>
-        <location filename="src/snapshotsettings.cpp" line="47"/>
         <source>Change location...</source>
         <translation>Promijeni odredište preuzimanja...</translation>
     </message>
     <message>
-        <location filename="src/snapshotsettings.cpp" line="64"/>
         <source>Snapshot saved to %1</source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="src/snapshotsettings.cpp" line="117"/>
         <source>Snapshots location changed.</source>
         <translation type="unfinished"/>
     </message>
 <context>
     <name>StandardFeedsView</name>
     <message>
-        <location filename="src/standardfeedsview.cpp" line="107"/>
         <source>Most Popular</source>
         <translation>Najpopularnije</translation>
     </message>
 </context>
+<context>
+    <name>UpdateDialog</name>
+    <message>
+        <source>Downloading update...</source>
+        <translation>Preuzimam ažuriranja...</translation>
+    </message>
+    <message>
+        <source>Downloading %1...</source>
+        <translation type="unfinished"/>
+    </message>
+</context>
 <context>
     <name>Video</name>
     <message>
-        <location filename="src/video.cpp" line="287"/>
         <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="292"/>
-        <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="28"/>
         <source>Algeria</source>
         <translation>Algeria</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="29"/>
         <source>Argentina</source>
         <translation>Argentina</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="30"/>
         <source>Australia</source>
         <translation>Australia</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="31"/>
         <source>Belgium</source>
         <translation>Belgija</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="32"/>
         <source>Brazil</source>
         <translation>Brazil</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="33"/>
         <source>Canada</source>
         <translation>Kanada</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="34"/>
         <source>Chile</source>
         <translation>Čile</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="35"/>
         <source>Colombia</source>
         <translation>Kolumbija</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="36"/>
         <source>Czech Republic</source>
         <translation>Češka Republika</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="37"/>
         <source>Egypt</source>
         <translation>Egipat</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="38"/>
         <source>France</source>
         <translation>Francuska</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="39"/>
         <source>Germany</source>
         <translation>Njemačka</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="40"/>
         <source>Ghana</source>
         <translation>Gana</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="41"/>
         <source>Greece</source>
         <translation>Grčka</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="42"/>
         <source>Hong Kong</source>
         <translation>Hong Kong</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="43"/>
         <source>Hungary</source>
         <translation>Mađarska</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="44"/>
         <source>India</source>
         <translation>Indija</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="45"/>
         <source>Indonesia</source>
         <translation>Indonezija</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="46"/>
         <source>Ireland</source>
         <translation>Irska</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="47"/>
         <source>Israel</source>
         <translation>Izrael</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="48"/>
         <source>Italy</source>
         <translation>Italija</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="49"/>
         <source>Japan</source>
         <translation>Japan</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="50"/>
         <source>Jordan</source>
         <translation>Jordan</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="51"/>
         <source>Kenya</source>
         <translation>Kenija</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="52"/>
         <source>Malaysia</source>
         <translation>Malezija</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="53"/>
         <source>Mexico</source>
         <translation>Meksiko</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="54"/>
         <source>Morocco</source>
         <translation>Maroko</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="55"/>
         <source>Netherlands</source>
         <translation>Nizozemska</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="56"/>
         <source>New Zealand</source>
         <translation>Novi Zeland</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="57"/>
         <source>Nigeria</source>
         <translation>Nigerija</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="58"/>
         <source>Peru</source>
         <translation>Peru</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="59"/>
         <source>Philippines</source>
         <translation>Filipini</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="60"/>
         <source>Poland</source>
         <translation>Poljska</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="61"/>
         <source>Russia</source>
         <translation>Rusija</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="62"/>
         <source>Saudi Arabia</source>
         <translation>Saudijska Arabija</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="63"/>
         <source>Singapore</source>
         <translation>Singapur</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="64"/>
         <source>South Africa</source>
         <translation>Sjeverna Afrika</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="65"/>
         <source>South Korea</source>
         <translation>Sjeverna Koreja</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="66"/>
         <source>Spain</source>
         <translation>Španjolska</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="67"/>
         <source>Sweden</source>
         <translation>Švedska</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="68"/>
         <source>Taiwan</source>
         <translation>Tajvan</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="69"/>
         <source>Tunisia</source>
         <translation>Tunis</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="70"/>
         <source>Turkey</source>
         <translation>Turska</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="71"/>
         <source>Uganda</source>
         <translation>Uganda</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="72"/>
         <source>United Arab Emirates</source>
         <translation>Ujedinjeni Arapski Emirati</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="73"/>
         <source>United Kingdom</source>
         <translation>Ujedinjeno Kraljevstvo</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="74"/>
         <source>Yemen</source>
         <translation>Jemen</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="148"/>
         <source>Worldwide</source>
         <translation>Širom svijeta</translation>
     </message>
index 2109ebf2f97859d2f947fb97b830c3397db28f87..46e53e9db227733a529802e2b57ebd08404ae0f6 100644 (file)
@@ -2,67 +2,42 @@
 <context>
     <name>AboutView</name>
     <message>
-        <location filename="src/aboutview.cpp" line="58"/>
         <source>There&apos;s life outside the browser!</source>
         <translation>Van élet a böngészőn kívül.</translation>
     </message>
     <message>
-        <location filename="src/aboutview.cpp" line="59"/>
         <source>Version %1</source>
         <translation>Verzió: %1</translation>
     </message>
     <message>
-        <location filename="src/aboutview.cpp" line="64"/>
         <source>Licensed to: %1</source>
         <translation>Licensz tulajdonosa: %1</translation>
     </message>
     <message>
-        <location filename="src/aboutview.cpp" line="68"/>
         <source>%1 is Free Software but its development takes precious time.</source>
         <translation>A %1 szabad szoftver, de a fejlesztése értékes időt emészt fel.</translation>
     </message>
     <message>
-        <location filename="src/aboutview.cpp" line="69"/>
         <source>Please &lt;a href=&apos;%1&apos;&gt;donate&lt;/a&gt; to support the continued development of %2.</source>
         <translation>&lt;a href=&apos;%1&apos;&gt;Adakozással&lt;/a&gt; támogassa a %2 program folyamatos fejlesztését.</translation>
     </message>
     <message>
-        <location filename="src/aboutview.cpp" line="73"/>
-        <source>You may want to try my other apps as well:</source>
-        <translation>Ki szeretne próbálni a többi alkalmazásaimat is?</translation>
-    </message>
-    <message>
-        <location filename="src/aboutview.cpp" line="76"/>
-        <source>%1, a YouTube music player</source>
-        <translation>%1, a YouTube zenelejátszó</translation>
-    </message>
-    <message>
-        <location filename="src/aboutview.cpp" line="80"/>
-        <source>%1, a music player</source>
-        <translation>%1, zenelejátszó</translation>
-    </message>
-    <message>
-        <location filename="src/aboutview.cpp" line="86"/>
         <source>Translate %1 to your native language using %2</source>
         <translation>Fordítsa le a %1 programot az anyanyelvére a következővel: %2</translation>
     </message>
     <message>
-        <location filename="src/aboutview.cpp" line="91"/>
         <source>Icon designed by %1.</source>
         <translation>Ikon tervezője: %1</translation>
     </message>
     <message>
-        <location filename="src/aboutview.cpp" line="95"/>
         <source>Released under the &lt;a href=&apos;%1&apos;&gt;GNU General Public License&lt;/a&gt;</source>
         <translation>A &lt;a href=&apos;%1&apos;&gt;GNU General Public licenccel&lt;/a&gt; megjelentetve</translation>
     </message>
     <message>
-        <location filename="src/aboutview.cpp" line="110"/>
         <source>&amp;Close</source>
         <translation>&amp;Bezárás</translation>
     </message>
     <message>
-        <location filename="src/aboutview.h" line="40"/>
         <source>About</source>
         <translation>Névjegy</translation>
     </message>
 <context>
     <name>ActivationDialog</name>
     <message>
-        <location filename="local/src/activationdialog.cpp" line="17"/>
         <source>Enter your License Details</source>
         <translation>Liszenszadatok megadása</translation>
     </message>
     <message>
-        <location filename="local/src/activationdialog.cpp" line="29"/>
         <source>&amp;Email:</source>
         <translation>&amp;Email:</translation>
     </message>
     <message>
-        <location filename="local/src/activationdialog.cpp" line="35"/>
         <source>&amp;Code:</source>
         <translation>&amp;Kód</translation>
     </message>
 <context>
     <name>ActivationView</name>
     <message>
-        <location filename="local/src/activationview.cpp" line="47"/>
         <source>Please license %1</source>
         <translation>Szerezzen licencet a %1 programhoz</translation>
     </message>
     <message>
-        <location filename="local/src/activationview.cpp" line="51"/>
         <source>This demo has expired.</source>
         <translation>A demó változat lejárt.</translation>
     </message>
     <message>
-        <location filename="local/src/activationview.cpp" line="53"/>
         <source>The full version allows you to watch videos without interruptions.</source>
-        <oldsource>The full version allows you to download videos longer than %1 minutes and to watch videos without interruptions.</oldsource>
         <translation>A teljes verzió lehetőséget nyújt a videók megszakítás nélküli lejátszására.</translation>
     </message>
     <message>
-        <location filename="local/src/activationview.cpp" line="55"/>
         <source>Without a license, the application will expire in %1 days.</source>
         <translation>Licenc nélkül, a program %1 nap múlva lejár.</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>A teljes verzió megvásárlásával a %1 programba fektetett munkámat is támogatja.</translation>
     </message>
     <message>
-        <location filename="local/src/activationview.cpp" line="70"/>
         <source>Use Demo</source>
         <translation>Demó használata</translation>
     </message>
     <message>
-        <location filename="local/src/activationview.cpp" line="77"/>
         <source>Enter License</source>
         <translation>Liszensz begépelése</translation>
     </message>
     <message>
-        <location filename="local/src/activationview.cpp" line="85"/>
         <source>Buy License</source>
         <translation>Liszensz megvásárlása</translation>
     </message>
 </context>
+<context>
+    <name>AppWidget</name>
+    <message>
+        <source>Download</source>
+        <translation type="unfinished"/>
+    </message>
+</context>
 <context>
     <name>ChannelAggregator</name>
     <message>
-        <location filename="src/channelaggregator.cpp" line="183"/>
         <source>By %1</source>
         <translation>%1 által</translation>
     </message>
     <message numerus="yes">
-        <location filename="src/channelaggregator.cpp" line="185"/>
         <source>You have %n new video(s)</source>
-        <translation><numerusform>%n új videód van</numerusform><numerusform>%n új videód van</numerusform></translation>
+        <translation type="unfinished"><numerusform></numerusform><numerusform></numerusform></translation>
     </message>
 </context>
 <context>
     <name>ChannelItemDelegate</name>
     <message>
-        <location filename="src/channelitemdelegate.cpp" line="67"/>
         <source>All Videos</source>
         <translation>Összes videó</translation>
     </message>
     <message>
-        <location filename="src/channelitemdelegate.cpp" line="85"/>
         <source>Unwatched Videos</source>
         <translation>Megnézetlen videók</translation>
     </message>
 <context>
     <name>ChannelView</name>
     <message>
-        <location filename="src/channelview.cpp" line="151"/>
-        <source>Mark all as watched</source>
-        <translation>Mind megjelölése megnézettként</translation>
-    </message>
-    <message>
-        <location filename="src/channelview.cpp" line="159"/>
-        <source>Show Updated</source>
-        <translation>Frissítések mutatása</translation>
-    </message>
-    <message>
-        <location filename="src/channelview.cpp" line="103"/>
         <source>Name</source>
         <translation>Név</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="110"/>
         <source>Last Updated</source>
         <translation>Utoljára frissítve</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="117"/>
         <source>Last Added</source>
         <translation>Utoljára hozzáadva</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="124"/>
         <source>Last Watched</source>
         <translation>Utoljára megnézve</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="131"/>
         <source>Most Watched</source>
         <translation>Legtöbbször megnézett</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="139"/>
         <source>Sort by</source>
         <translation>Rendezés</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="222"/>
+        <source>Mark all as watched</source>
+        <translation>Mind megjelölése megnézettként</translation>
+    </message>
+    <message>
+        <source>Show Updated</source>
+        <translation>Frissítések mutatása</translation>
+    </message>
+    <message>
         <source>All Videos</source>
         <translation>Összes videó</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="226"/>
         <source>Unwatched Videos</source>
         <translation>Megnézetlen videók</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="244"/>
         <source>Mark as Watched</source>
         <translation>Megjelölés megnézettként</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="257"/>
         <source>Unsubscribe</source>
         <translation>Leiratkozás</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="270"/>
         <source>There are no updated subscriptions at this time.</source>
         <translation>Nincs frissítés a feliratkozott csatornákon.</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="272"/>
         <source>You have no subscriptions. Use the star symbol to subscribe to channels.</source>
         <translation>Nincsenek feliratkozások. A csillag szimbólumot kell használni a csatornákra való feliratkozáshoz.</translation>
     </message>
 <context>
     <name>ClearButton</name>
     <message>
-        <location filename="src/exlineedit.cpp" line="6"/>
         <source>Clear</source>
         <translation>Törlés</translation>
     </message>
 <context>
     <name>DataUtils</name>
     <message>
-        <location filename="src/datautils.cpp" line="88"/>
         <source>Just now</source>
         <translation>Épp most</translation>
     </message>
     <message numerus="yes">
-        <location filename="src/datautils.cpp" line="90"/>
-        <source>%n minute(s) ago</source>
-        <translation><numerusform>%n perccel ezelőtt</numerusform><numerusform>%n perccel ezelőtt</numerusform></translation>
-    </message>
-    <message numerus="yes">
-        <location filename="src/datautils.cpp" line="92"/>
         <source>%n hour(s) ago</source>
-        <translation><numerusform>%n órával ezelőtt</numerusform><numerusform>%n órával ezelőtt</numerusform></translation>
+        <translation type="unfinished"><numerusform></numerusform><numerusform></numerusform></translation>
     </message>
     <message numerus="yes">
-        <location filename="src/datautils.cpp" line="94"/>
         <source>%n day(s) ago</source>
-        <translation><numerusform>%n napja</numerusform><numerusform>%n napja</numerusform></translation>
+        <translation type="unfinished"><numerusform></numerusform><numerusform></numerusform></translation>
     </message>
     <message numerus="yes">
-        <location filename="src/datautils.cpp" line="96"/>
         <source>%n weeks(s) ago</source>
-        <translation><numerusform>%n hete</numerusform><numerusform>%n hete</numerusform></translation>
+        <translation type="unfinished"><numerusform></numerusform><numerusform></numerusform></translation>
     </message>
     <message numerus="yes">
-        <location filename="src/datautils.cpp" line="98"/>
         <source>%n month(s) ago</source>
-        <translation><numerusform>%n hónapja</numerusform><numerusform>%n hónapja</numerusform></translation>
+        <translation type="unfinished"><numerusform></numerusform><numerusform></numerusform></translation>
     </message>
 </context>
 <context>
     <name>DownloadItem</name>
     <message>
-        <location filename="src/downloaditem.cpp" line="406"/>
         <source>bytes</source>
         <translation>bájt</translation>
     </message>
     <message>
-        <location filename="src/downloaditem.cpp" line="409"/>
         <source>KB</source>
         <translation>KB</translation>
     </message>
     <message>
-        <location filename="src/downloaditem.cpp" line="412"/>
         <source>MB</source>
         <translation>MB</translation>
     </message>
     <message>
-        <location filename="src/downloaditem.cpp" line="421"/>
         <source>bytes/sec</source>
         <translation>bájt/mp</translation>
     </message>
     <message>
-        <location filename="src/downloaditem.cpp" line="424"/>
         <source>KB/sec</source>
         <translation>KB/mp</translation>
     </message>
     <message>
-        <location filename="src/downloaditem.cpp" line="427"/>
         <source>MB/sec</source>
         <translation>MB/mp</translation>
     </message>
     <message>
-        <location filename="src/downloaditem.cpp" line="433"/>
         <source>seconds</source>
         <translation>másodperc</translation>
     </message>
     <message>
-        <location filename="src/downloaditem.cpp" line="436"/>
         <source>minutes</source>
         <translation>perc</translation>
     </message>
     <message>
-        <location filename="src/downloaditem.cpp" line="439"/>
         <source>%4 %5 remaining</source>
         <translation>Hátralévő idő: %4 %5</translation>
     </message>
 <context>
     <name>DownloadManager</name>
     <message>
-        <location filename="src/downloadmanager.cpp" line="77"/>
         <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/downloadmanager.cpp" line="79"/>
         <source>It can only download videos shorter than %1 minutes so you can test the download functionality.</source>
         <translation>Csak %1 percnél rövidebb videók tölthetők le vele a letöltési funkciók teszteléséhez.</translation>
     </message>
     <message>
-        <location filename="src/downloadmanager.cpp" line="85"/>
         <source>Continue</source>
         <translation>Folytatás</translation>
     </message>
     <message>
-        <location filename="src/downloadmanager.cpp" line="86"/>
         <source>Get the full version</source>
         <translation>Teljes verzió beszerzése</translation>
     </message>
     <message>
-        <location filename="src/downloadmanager.cpp" line="157"/>
         <source>%1 downloaded in %2</source>
         <translation>%1 letöltve ide: %2</translation>
     </message>
     <message>
-        <location filename="src/downloadmanager.cpp" line="160"/>
         <source>Download finished</source>
         <translation>Letöltés befejezve</translation>
     </message>
     <message numerus="yes">
-        <location filename="src/downloadmanager.cpp" line="165"/>
         <source>%n Download(s)</source>
-        <translation><numerusform>%n Letöltés(ek)</numerusform><numerusform>%n Letöltés(ek)</numerusform></translation>
+        <translation type="unfinished"><numerusform></numerusform><numerusform></numerusform></translation>
     </message>
 </context>
 <context>
     <name>DownloadSettings</name>
     <message>
-        <location filename="src/downloadsettings.cpp" line="36"/>
         <source>Change location...</source>
         <translation>Hely módosítása...</translation>
     </message>
     <message>
-        <location filename="src/downloadsettings.cpp" line="69"/>
         <source>Choose the download location</source>
         <translation>Letöltés helyének kiválasztása</translation>
     </message>
     <message>
-        <location filename="src/downloadsettings.cpp" line="81"/>
         <source>Download location changed.</source>
         <translation>A letöltés helye megváltozott.</translation>
     </message>
     <message>
-        <location filename="src/downloadsettings.cpp" line="83"/>
         <source>Current downloads will still go in the previous location.</source>
         <translation>A folyamatban lévő letöltések még a régebbi helyre kerülnek.</translation>
     </message>
     <message>
-        <location filename="src/downloadsettings.cpp" line="94"/>
         <source>Downloading to: %1</source>
         <translation>Letöltés ide: %1</translation>
     </message>
 <context>
     <name>DownloadView</name>
     <message>
-        <location filename="src/downloadview.cpp" line="38"/>
-        <location filename="src/downloadview.h" line="45"/>
         <source>Downloads</source>
         <translation>Letöltések</translation>
     </message>
 </context>
-<context>
-    <name>DownloadWidget</name>
-    <message>
-        <location filename="local/src/updatedialog.cpp" line="60"/>
-        <source>Downloading update...</source>
-        <translation>Frissítés letöltése...</translation>
-    </message>
-</context>
 <context>
     <name>Extra</name>
     <message>
-        <location filename="local/src/extra.cpp" line="251"/>
         <source>The executable file has been tempered with, maybe by a virus.</source>
         <translation>A futtatandó fájl módosítva lett, lehetséges hogy egy vírus által.</translation>
     </message>
     <message>
-        <location filename="local/src/extra.cpp" line="252"/>
         <source>%1 will not run. Try installing again.</source>
         <translation>%1 nem fog futni. Próbáld újratelepíteni.</translation>
     </message>
     <message>
-        <location filename="local/src/extra.cpp" line="253"/>
         <source>Quit</source>
         <translation>Kilépés</translation>
     </message>
     <message>
-        <location filename="local/src/extra.cpp" line="254"/>
         <source>Reinstall</source>
         <translation>Újratelepítés</translation>
     </message>
 <context>
     <name>GlobalShortcuts</name>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="36"/>
         <source>Play</source>
         <translation>Lejátszás</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="37"/>
         <source>Pause</source>
         <translation>Megállítás</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="38"/>
         <source>Play/Pause</source>
         <translation>Lejátszás/megállítás</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="39"/>
         <source>Stop</source>
         <translation>Leállítás</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="40"/>
         <source>Stop playing after current track</source>
         <translation>Lejátszás befejezése az aktuális szám után</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="41"/>
         <source>Next track</source>
         <translation>Következő szám</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="42"/>
         <source>Previous track</source>
         <translation>Előző szám</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="43"/>
         <source>Increase volume</source>
         <translation>Hangerő növelése</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="44"/>
         <source>Decrease volume</source>
         <translation>Hangerő csökkentése</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="45"/>
         <source>Mute</source>
         <translation>Némítás</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="46"/>
         <source>Seek forward</source>
         <translation>Ugrás előre</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="47"/>
         <source>Seek backward</source>
         <translation>Ugrás vissza</translation>
     </message>
 <context>
     <name>HomeView</name>
     <message>
-        <location filename="src/homeview.cpp" line="58"/>
         <source>Search</source>
         <translation>Keresés</translation>
     </message>
     <message>
-        <location filename="src/homeview.cpp" line="60"/>
         <source>Find videos and channels by keyword</source>
         <translation>Videók és csatornák keresése kulcsszó alapján</translation>
     </message>
     <message>
-        <location filename="src/homeview.cpp" line="65"/>
         <source>Browse</source>
         <translation>Keresés</translation>
     </message>
     <message>
-        <location filename="src/homeview.cpp" line="67"/>
         <source>Browse videos by category</source>
         <translation>Videók keresése kategória szerint</translation>
     </message>
     <message>
-        <location filename="src/homeview.cpp" line="71"/>
         <source>Subscriptions</source>
         <translation>Feliratkozások</translation>
     </message>
     <message>
-        <location filename="src/homeview.cpp" line="73"/>
         <source>Channel subscriptions</source>
         <translation>Csatorna-feliratkozások</translation>
     </message>
     <message>
-        <location filename="src/homeview.h" line="44"/>
         <source>Make yourself comfortable</source>
         <translation>Helyezze kényelembe magát</translation>
     </message>
 <context>
     <name>LoadingWidget</name>
     <message>
-        <location filename="src/loadingwidget.cpp" line="125"/>
         <source>Error</source>
         <translation>Hiba</translation>
     </message>
 <context>
     <name>MainWindow</name>
     <message>
-        <location filename="src/mainwindow.cpp" line="291"/>
+        <source>&amp;Window</source>
+        <translation>&amp;Ablak</translation>
+    </message>
+    <message>
+        <source>&amp;Minimize</source>
+        <translation>&amp;Minimalizálás</translation>
+    </message>
+    <message>
         <source>&amp;Stop</source>
         <translation>&amp;Leállítás</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="292"/>
         <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="307"/>
+        <source>P&amp;revious</source>
+        <translation>&amp;Előző</translation>
+    </message>
+    <message>
+        <source>Go back to the previous track</source>
+        <translation>Ugrás az előző számra</translation>
+    </message>
+    <message>
         <source>S&amp;kip</source>
         <translation>U&amp;grás</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="308"/>
         <source>Skip to the next video</source>
         <translation>Ugrás a következő videóra</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1134"/>
-        <source>&amp;Pause</source>
-        <translation>&amp;Megállítás</translation>
+        <source>&amp;Play</source>
+        <translation>&amp;Lejátszás</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1135"/>
-        <source>Pause playback</source>
-        <translation>Lejátszás megállítása</translation>
+        <source>Resume playback</source>
+        <translation>Lejátszás folytatása</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="321"/>
         <source>&amp;Full Screen</source>
         <translation>&amp;Teljes képernyő</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="322"/>
         <source>Go full screen</source>
         <translation>Teljes képernyőre váltás</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="336"/>
+        <source>&amp;Compact Mode</source>
+        <translation>&amp;Kompaktmód</translation>
+    </message>
+    <message>
         <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="349"/>
+        <source>Open the &amp;YouTube Page</source>
+        <translation>&amp;YouTube oldal megnyitása</translation>
+    </message>
+    <message>
         <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="356"/>
+        <source>Copy the YouTube &amp;Link</source>
+        <translation>YouTube &amp;hivatkozás másolása</translation>
+    </message>
+    <message>
         <source>Copy the current video YouTube link to the clipboard</source>
         <translation>Az aktuális videó Youtube &amp;hivatkozásának másolása a vágólapra</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="363"/>
+        <source>Copy the Video Stream &amp;URL</source>
+        <translation>&amp;Videó-URL másolása</translation>
+    </message>
+    <message>
         <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="370"/>
+        <source>Find Video &amp;Parts</source>
+        <translation>További videó&amp;részletek keresése</translation>
+    </message>
+    <message>
         <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="376"/>
         <source>&amp;Remove</source>
         <translation>&amp;Eltávolítás</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="377"/>
         <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="383"/>
         <source>Move &amp;Up</source>
         <translation>Mozgatás &amp;felfelé</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="384"/>
         <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="390"/>
         <source>Move &amp;Down</source>
         <translation>Mozgatás &amp;lefelé</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="391"/>
         <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="402"/>
+        <source>&amp;Clear Recent Searches</source>
+        <translation>&amp;Legutóbbi keresések törlése</translation>
+    </message>
+    <message>
         <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="407"/>
         <source>&amp;Quit</source>
         <translation>&amp;Kilépés</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="410"/>
         <source>Bye</source>
         <translation>Viszlát</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="414"/>
         <source>&amp;Website</source>
         <translation>&amp;Webhely</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="416"/>
         <source>%1 on the Web</source>
         <translation>%1 a weben</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="422"/>
+        <source>Make a &amp;Donation</source>
+        <translation>&amp;Támogasd</translation>
+    </message>
+    <message>
         <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="427"/>
         <source>&amp;About</source>
         <translation>&amp;Névjegy</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="429"/>
         <source>Info about %1</source>
         <translation>Információ a %1 programról</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="437"/>
         <source>Search</source>
         <translation>Keresés</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="456"/>
         <source>Mute volume</source>
         <translation>Hangerő némítása</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="490"/>
-        <location filename="src/mainwindow.cpp" line="1609"/>
+        <source>&amp;Manually Start Playing</source>
+        <translation>&amp;Manuális lejátszás</translation>
+    </message>
+    <message>
+        <source>Manually start playing videos</source>
+        <translation>Videók lejátszása manuális indítással</translation>
+    </message>
+    <message>
         <source>&amp;Downloads</source>
         <translation>&amp;Letöltések</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="491"/>
         <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="499"/>
         <source>&amp;Download</source>
         <translation>&amp;Letöltés</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="500"/>
         <source>Download the current video</source>
         <translation>Aktuális videó letöltése</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="510"/>
         <source>Take &amp;Snapshot</source>
         <translation>&amp;Snapshot készítése</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="517"/>
         <source>&amp;Subscribe to Channel</source>
         <translation>&amp;Subscribe a csatornára</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="525"/>
         <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="545"/>
         <source>&amp;Email</source>
         <translation>&amp;Email</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="546"/>
         <source>Email</source>
         <translation>Email</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="551"/>
         <source>&amp;Close</source>
         <translation>&amp;Bezárás</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="561"/>
         <source>&amp;Float on Top</source>
         <translation>&amp;Többi ablak fölött</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="566"/>
         <source>&amp;Adjust Window Size</source>
         <translation>&amp;Ablak méretének beállítása</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="571"/>
         <source>&amp;Stop After This Video</source>
         <translation>&amp;Videó után leállítás</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="578"/>
         <source>&amp;Report an Issue...</source>
         <translation>&amp;Hiba bejelentése</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="582"/>
         <source>&amp;Refine Search...</source>
         <translation>&amp;Keresés pontosítása</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="594"/>
         <source>More...</source>
         <translation>Továbbiak...</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="597"/>
         <source>&amp;Related Videos</source>
         <translation>&amp;Kapcsolódó videók</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="599"/>
         <source>Watch videos related to the current one</source>
         <translation>A jelenlegihez kapcsolódó videók megtekintése</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="605"/>
         <source>Open in &amp;Browser...</source>
         <translation>Megtekintés a következővel:</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="612"/>
-        <source>&amp;Love %1? Rate it!</source>
-        <translation>&amp;Love %1? Értékeld!</translation>
+        <source>Restricted Mode</source>
+        <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="633"/>
-        <source>&amp;Application</source>
-        <translation>&amp;Alkalmazás</translation>
+        <source>Hide videos that may contain inappropriate content</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <source>&amp;Love %1? Rate it!</source>
+        <translation>&amp;Love %1? Értékeld!</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="618"/>
         <source>Buy %1...</source>
         <translation>%1 megvásárlása...</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="647"/>
+        <source>&amp;Application</source>
+        <translation>&amp;Alkalmazás</translation>
+    </message>
+    <message>
         <source>&amp;Playback</source>
         <translation>&amp;Lejátszás</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="661"/>
         <source>&amp;Playlist</source>
         <translation>&amp;Lejátszási lista</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="670"/>
         <source>&amp;Video</source>
         <translation>&amp;Videó</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="686"/>
-        <source>&amp;View</source>
-        <translation>&amp;Megtekintés</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="695"/>
         <source>&amp;Share</source>
         <translation>&amp;Megosztás</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="709"/>
+        <source>&amp;View</source>
+        <translation>&amp;Megtekintés</translation>
+    </message>
+    <message>
         <source>&amp;Help</source>
         <translation>&amp;Súgó</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="751"/>
         <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="1021"/>
-        <location filename="src/mainwindow.cpp" line="1027"/>
+        <source>Choose your content location</source>
+        <translation>Válaszd ki a jelenlegi tartózkodási helyed</translation>
+    </message>
+    <message>
         <source>Opening %1</source>
         <translation>%1 megnyitása</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1080"/>
         <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="1081"/>
         <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="1086"/>
         <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="1087"/>
         <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="1158"/>
-        <source>&amp;Loading...</source>
-        <translation>&amp;Betöltés</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="1264"/>
-        <source>Leave &amp;Full Screen</source>
-        <translation>Kilépés a &amp;teljes képernyős módból</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="1718"/>
-        <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="1722"/>
-        <source>Remind me later</source>
-        <translation>Figyelmeztetés később</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="1723"/>
-        <source>Update</source>
-        <translation>Frissítés</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="1127"/>
         <source>Error: %1</source>
         <translation>Hiba: %1</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="300"/>
-        <source>P&amp;revious</source>
-        <translation>&amp;Előző</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="301"/>
-        <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="335"/>
-        <source>&amp;Compact Mode</source>
-        <translation>&amp;Kompaktmód</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="348"/>
-        <source>Open the &amp;YouTube Page</source>
-        <translation>&amp;YouTube oldal megnyitása</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="355"/>
-        <source>Copy the YouTube &amp;Link</source>
-        <translation>YouTube &amp;hivatkozás másolása</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="362"/>
-        <source>Copy the Video Stream &amp;URL</source>
-        <translation>&amp;Videó-URL másolása</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="369"/>
-        <source>Find Video &amp;Parts</source>
-        <translation>További videó&amp;részletek keresése</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="397"/>
-        <source>&amp;Clear Recent Searches</source>
-        <translation>&amp;Legutóbbi keresések törlése</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="421"/>
-        <source>Make a &amp;Donation</source>
-        <translation>&amp;Támogasd</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="483"/>
-        <source>&amp;Manually Start Playing</source>
-        <translation>&amp;Manuális lejátszás</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="484"/>
-        <source>Manually start playing videos</source>
-        <translation>Videók lejátszása manuális indítással</translation>
+        <source>&amp;Pause</source>
+        <translation>&amp;Megállítás</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="847"/>
-        <source>Choose your content location</source>
-        <translation>Válaszd ki a jelenlegi tartózkodási helyed</translation>
+        <source>Pause playback</source>
+        <translation>Lejátszás megállítása</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="314"/>
-        <location filename="src/mainwindow.cpp" line="1142"/>
-        <location filename="src/mainwindow.cpp" line="1150"/>
-        <source>&amp;Play</source>
-        <translation>&amp;Lejátszás</translation>
+        <source>&amp;Loading...</source>
+        <translation>&amp;Betöltés</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="315"/>
-        <location filename="src/mainwindow.cpp" line="1143"/>
-        <location filename="src/mainwindow.cpp" line="1151"/>
-        <source>Resume playback</source>
-        <translation>Lejátszás folytatása</translation>
+        <source>Leave &amp;Full Screen</source>
+        <translation>Kilépés a &amp;teljes képernyős módból</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1437"/>
         <source>Remaining time: %1</source>
         <translation>Hátralévő idő: %1</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1528"/>
         <source>Volume at %1%</source>
         <translation>Hangerő: %1%</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1534"/>
         <source>Volume is muted</source>
         <translation>Hangerő némítva</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1537"/>
         <source>Volume is unmuted</source>
         <translation>Hangerő némítása feloldva</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1548"/>
         <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="1595"/>
         <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="1610"/>
         <source>Downloads complete</source>
         <translation>A letöltések befejeződtek</translation>
     </message>
+    <message>
+        <source>%1 version %2 is now available.</source>
+        <translation>A %1 program %2 verziója elérhető.</translation>
+    </message>
+    <message>
+        <source>Remind me later</source>
+        <translation>Figyelmeztetés később</translation>
+    </message>
+    <message>
+        <source>Update</source>
+        <translation>Frissítés</translation>
+    </message>
 </context>
 <context>
     <name>MediaView</name>
     <message>
-        <location filename="src/mediaview.cpp" line="702"/>
         <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="710"/>
         <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="711"/>
         <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="800"/>
         <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="801"/>
         <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="833"/>
+        <source>Get the full version</source>
+        <translation>Teljes verzió beszerzése</translation>
+    </message>
+    <message>
         <source>Continue</source>
         <translation>Folytatás</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="988"/>
+        <source>Downloading %1</source>
+        <translation>Letöltés: %1</translation>
+    </message>
+    <message>
         <source>of</source>
         <comment>Used in video parts, as in '2 of 3'</comment>
         <translation> - </translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="1001"/>
         <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="1003"/>
         <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="1096"/>
         <source>Sent from %1</source>
         <translation>A %1 programból küldve</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="1128"/>
         <source>Unsubscribe from %1</source>
         <translation>Leiratkozás az alábbi csatornáról: %1</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="1132"/>
         <source>Subscribe to %1</source>
         <translation>Feliratkozás az alábbi csatornára: %1</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="1166"/>
         <source>Unsubscribed from %1</source>
         <translation>Leiratkozva %1-ról/ről.</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="1169"/>
         <source>Subscribed to %1</source>
         <translation>Feliratkozva %1-ra</translation>
     </message>
-    <message>
-        <location filename="src/mediaview.cpp" line="808"/>
-        <source>Get the full version</source>
-        <translation>Teljes verzió beszerzése</translation>
-    </message>
-    <message>
-        <location filename="src/mediaview.cpp" line="847"/>
-        <source>Downloading %1</source>
-        <translation>Letöltés: %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>%1 új verziója elérhető!</translation>
     </message>
     <message>
-        <location filename="local/src/updatedialog.cpp" line="28"/>
         <source>%1 %2 is now available. You have %3.</source>
         <translation>A %1 program %2 verziója elérhető. Neked %3 van.</translation>
     </message>
     <message>
-        <location filename="local/src/updatedialog.cpp" line="33"/>
         <source>Would you like to download it now?</source>
         <translation>Szeretné letölteni most?</translation>
     </message>
     <message>
-        <location filename="local/src/updatedialog.cpp" line="39"/>
         <source>Skip This Version</source>
         <translation>Verzió átugrása</translation>
     </message>
     <message>
-        <location filename="local/src/updatedialog.cpp" line="43"/>
         <source>Remind Me Later</source>
         <translation>Emlékeztessen később</translation>
     </message>
     <message>
-        <location filename="local/src/updatedialog.cpp" line="47"/>
         <source>Install Update</source>
         <translation>Frissítés telepitése</translation>
     </message>
 <context>
     <name>PasteLineEdit</name>
     <message>
-        <location filename="local/src/pastelineedit.cpp" line="6"/>
         <source>Paste</source>
         <translation>Beillesztés</translation>
     </message>
 <context>
     <name>PlaylistItemDelegate</name>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="209"/>
         <source>%1 views</source>
         <translation>%1 néző</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="309"/>
         <source>%1 of %2 (%3) — %4</source>
         <translation>%1 %2 közül (%3) — %4</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="316"/>
         <source>Preparing</source>
         <translation>Előkészítés</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="318"/>
         <source>Failed</source>
         <translation>Hiba</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="320"/>
         <source>Completed</source>
         <translation>Sikeres befejezés</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="322"/>
         <source>Stopped</source>
         <translation>Leállítva</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="358"/>
         <source>Stop downloading</source>
         <translation>Letöltés leállítása </translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="368"/>
         <source>Show in %1</source>
         <translation>Megjelenítés a következőben: %1</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="370"/>
         <source>Open parent folder</source>
         <translation>Szülőmappa megnyitása</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="379"/>
         <source>Restart downloading</source>
         <translation>Letöltés újraindítása </translation>
     </message>
 <context>
     <name>PlaylistModel</name>
     <message>
-        <location filename="src/playlistmodel.cpp" line="70"/>
         <source>Searching...</source>
         <translation>Keresés...</translation>
     </message>
     <message>
-        <location filename="src/playlistmodel.cpp" line="71"/>
         <source>Show %1 More</source>
         <translation>További %1 elem megjelenítése</translation>
     </message>
     <message>
-        <location filename="src/playlistmodel.cpp" line="72"/>
         <source>No videos</source>
         <translation>Nincsenek videók</translation>
     </message>
     <message>
-        <location filename="src/playlistmodel.cpp" line="73"/>
         <source>No more videos</source>
         <translation>Nincs több videó </translation>
     </message>
 <context>
     <name>RefineSearchWidget</name>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="49"/>
         <source>Sort by</source>
         <translation>Rendezés</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="53"/>
         <source>Relevance</source>
         <translation>Relevancia</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="54"/>
-        <location filename="src/refinesearchwidget.cpp" line="69"/>
         <source>Date</source>
         <translation>Dátum</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="55"/>
         <source>View Count</source>
         <translation>Megtekintések száma</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="56"/>
         <source>Rating</source>
         <translation>Értékelés</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="73"/>
         <source>Anytime</source>
         <translation>Bármikor</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="74"/>
         <source>Today</source>
         <translation>Ma</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="75"/>
         <source>7 Days</source>
         <translation>7 napja</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="76"/>
         <source>30 Days</source>
         <translation>30 napja</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="89"/>
         <source>Duration</source>
         <translation>Időtartam</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="93"/>
-        <location filename="src/refinesearchwidget.cpp" line="119"/>
         <source>All</source>
         <translation>Összes</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="94"/>
         <source>Short</source>
         <translation>Rövid</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="95"/>
         <source>Medium</source>
         <translation>Közepes</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="96"/>
         <source>Long</source>
         <translation>Hosszú</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="99"/>
         <source>Less than 4 minutes</source>
         <translation>Rövidebb, mint 4 perc</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="100"/>
         <source>Between 4 and 20 minutes</source>
         <translation>4 perc és 20 perc között</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="101"/>
         <source>Longer than 20 minutes</source>
         <translation>Hosszabb, mint 20 perc</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="115"/>
         <source>Quality</source>
         <translation>Minőség</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="120"/>
         <source>High Definition</source>
         <translation>Nagyfelbontású</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="123"/>
         <source>720p or higher</source>
         <translation>720p vagy nagyobb</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="136"/>
         <source>Done</source>
         <translation>Kész</translation>
     </message>
 <context>
     <name>RegionsView</name>
     <message>
-        <location filename="src/regionsview.cpp" line="39"/>
         <source>Done</source>
         <translation>Kész</translation>
     </message>
 <context>
     <name>SearchLineEdit</name>
     <message>
-        <location filename="src/searchlineedit.cpp" line="55"/>
         <source>Search</source>
         <translation>Keresés</translation>
     </message>
 <context>
     <name>SearchView</name>
     <message>
-        <location filename="src/searchview.cpp" line="83"/>
         <source>Welcome to &lt;a href=&apos;%1&apos;&gt;%2&lt;/a&gt;,</source>
         <translation>Üdvözli a &lt;a href=&apos;%1&apos;&gt;%2&lt;/a&gt; program,</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="200"/>
-        <source>Get the full version</source>
-        <translation>Teljes verzió beszerzése</translation>
-    </message>
-    <message>
-        <location filename="src/searchview.cpp" line="110"/>
         <source>Enter</source>
         <extracomment>&quot;Enter&quot;, as in &quot;type&quot;. The whole phrase says: &quot;Enter a keyword to start watching videos&quot;</extracomment>
         <translation>Írjon be</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="117"/>
         <source>a keyword</source>
         <translation>egy kulcsszót</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="118"/>
         <source>a channel</source>
         <translation>egy csatornát</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="125"/>
         <source>to start watching videos.</source>
         <translation>a videók megtekintéséhez.</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="156"/>
         <source>Watch</source>
         <translation>Megtekintés</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="174"/>
         <source>Recent keywords</source>
         <translation>Legutóbbi kulcsszavak</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="186"/>
         <source>Recent channels</source>
         <translation>Legutóbbi csatornák</translation>
     </message>
+    <message>
+        <source>Get the full version</source>
+        <translation>Teljes verzió beszerzése</translation>
+    </message>
 </context>
 <context>
     <name>SidebarHeader</name>
     <message>
-        <location filename="src/sidebarheader.cpp" line="38"/>
-        <location filename="src/sidebarheader.cpp" line="45"/>
         <source>&amp;Back</source>
         <translation>&amp;Vissza</translation>
     </message>
     <message>
-        <location filename="src/sidebarheader.cpp" line="76"/>
         <source>Forward to %1</source>
         <translation>Tovább a %1-re</translation>
     </message>
     <message>
-        <location filename="src/sidebarheader.cpp" line="89"/>
         <source>Back to %1</source>
         <translation>Vissza a %1-re</translation>
     </message>
 <context>
     <name>SidebarWidget</name>
     <message>
-        <location filename="src/sidebarwidget.cpp" line="68"/>
         <source>Refine Search</source>
         <translation>Keresés finomítása</translation>
     </message>
     <message>
-        <location filename="src/sidebarwidget.cpp" line="167"/>
         <source>Did you mean: %1</source>
         <translation>Így értette: %1?</translation>
     </message>
 <context>
     <name>SnapshotSettings</name>
     <message>
-        <location filename="src/snapshotsettings.cpp" line="47"/>
         <source>Change location...</source>
         <translation>Hely módosítása...</translation>
     </message>
     <message>
-        <location filename="src/snapshotsettings.cpp" line="64"/>
         <source>Snapshot saved to %1</source>
         <translation>Pillanatkép mentve a %1 helyre</translation>
     </message>
     <message>
-        <location filename="src/snapshotsettings.cpp" line="117"/>
         <source>Snapshots location changed.</source>
         <translation>A pillanatképek mentési helye megváltozott.</translation>
     </message>
 <context>
     <name>StandardFeedsView</name>
     <message>
-        <location filename="src/standardfeedsview.cpp" line="107"/>
         <source>Most Popular</source>
         <translation>Legnépszerübb</translation>
     </message>
 </context>
+<context>
+    <name>UpdateDialog</name>
+    <message>
+        <source>Downloading update...</source>
+        <translation>Frissítés letöltése...</translation>
+    </message>
+    <message>
+        <source>Downloading %1...</source>
+        <translation type="unfinished"/>
+    </message>
+</context>
 <context>
     <name>Video</name>
     <message>
-        <location filename="src/video.cpp" line="287"/>
         <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="292"/>
-        <source>Network error: %1 for %2</source>
-        <translation>Hálózati hiba: %1 a következőhöz: %2</translation>
-    </message>
 </context>
 <context>
     <name>YTRegions</name>
     <message>
-        <location filename="src/ytregions.cpp" line="28"/>
         <source>Algeria</source>
         <translation>Algéria</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="29"/>
         <source>Argentina</source>
         <translation>Argentína </translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="30"/>
         <source>Australia</source>
         <translation>Ausztrália</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="31"/>
         <source>Belgium</source>
         <translation>Belgium</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="32"/>
         <source>Brazil</source>
         <translation>Brazília </translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="33"/>
         <source>Canada</source>
         <translation>Kanada</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="34"/>
         <source>Chile</source>
         <translation>Chile</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="35"/>
         <source>Colombia</source>
         <translation>Kolumbia</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="36"/>
         <source>Czech Republic</source>
         <translation>Cseh Köztársaság</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="37"/>
         <source>Egypt</source>
         <translation>Egyiptom</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="38"/>
         <source>France</source>
         <translation>Franciaország</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="39"/>
         <source>Germany</source>
         <translation>Németország</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="40"/>
         <source>Ghana</source>
         <translation>Ghána</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="41"/>
         <source>Greece</source>
         <translation>Görögország</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="42"/>
         <source>Hong Kong</source>
         <translation>Hong Kong</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="43"/>
         <source>Hungary</source>
         <translation>Magyarország</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="44"/>
         <source>India</source>
         <translation>India</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="45"/>
         <source>Indonesia</source>
         <translation>Indonézia</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="46"/>
         <source>Ireland</source>
         <translation>Írország</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="47"/>
         <source>Israel</source>
         <translation>Izrael </translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="48"/>
         <source>Italy</source>
         <translation>Olaszország</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="49"/>
         <source>Japan</source>
         <translation>Japán</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="50"/>
         <source>Jordan</source>
         <translation>Jordánia</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="51"/>
         <source>Kenya</source>
         <translation>Kenya</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="52"/>
         <source>Malaysia</source>
         <translation>Malájzia</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="53"/>
         <source>Mexico</source>
         <translation>Mexikó </translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="54"/>
         <source>Morocco</source>
         <translation>Marokkó</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="55"/>
         <source>Netherlands</source>
         <translation>Hollandia</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="56"/>
         <source>New Zealand</source>
         <translation>Új Zéland</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="57"/>
         <source>Nigeria</source>
         <translation>Nigéria</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="58"/>
         <source>Peru</source>
         <translation>Peru</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="59"/>
         <source>Philippines</source>
         <translation>Fülöp-szigetek</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="60"/>
         <source>Poland</source>
         <translation>Lengyelország</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="61"/>
         <source>Russia</source>
         <translation>Oroszország</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="62"/>
         <source>Saudi Arabia</source>
         <translation>Szaúd-Arábia</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="63"/>
         <source>Singapore</source>
         <translation>Szingapúr</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="64"/>
         <source>South Africa</source>
         <translation>Dél Afrika</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="65"/>
         <source>South Korea</source>
         <translation>Dél Korea</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="66"/>
         <source>Spain</source>
         <translation>Spanyolország</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="67"/>
         <source>Sweden</source>
         <translation>Svédország</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="68"/>
         <source>Taiwan</source>
         <translation>Tajvan</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="69"/>
         <source>Tunisia</source>
         <translation>Tunézia</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="70"/>
         <source>Turkey</source>
         <translation>Törökország</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="71"/>
         <source>Uganda</source>
         <translation>Uganda</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="72"/>
         <source>United Arab Emirates</source>
         <translation>Egyesült Arab Emirségek</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="73"/>
         <source>United Kingdom</source>
         <translation>Nagy Britannia</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="74"/>
         <source>Yemen</source>
         <translation>Jemen</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="148"/>
         <source>Worldwide</source>
         <translation>Világszerte</translation>
     </message>
diff --git a/locale/ia.ts b/locale/ia.ts
deleted file mode 100644 (file)
index 4f0bd16..0000000
+++ /dev/null
@@ -1,1686 +0,0 @@
-<?xml version="1.0" ?><!DOCTYPE TS><TS language="ia" version="2.1">
-<context>
-    <name>AboutView</name>
-    <message>
-        <location filename="src/aboutview.cpp" line="58"/>
-        <source>There&apos;s life outside the browser!</source>
-        <translation>Il ha vita foras del navigator!</translation>
-    </message>
-    <message>
-        <location filename="src/aboutview.cpp" line="59"/>
-        <source>Version %1</source>
-        <translation>Version %1</translation>
-    </message>
-    <message>
-        <location filename="src/aboutview.cpp" line="64"/>
-        <source>Licensed to: %1</source>
-        <translation type="unfinished"/>
-    </message>
-    <message>
-        <location filename="src/aboutview.cpp" line="68"/>
-        <source>%1 is Free Software but its development takes precious time.</source>
-        <translation>%1 es software libere ma su developpamento require un tempore preciose.</translation>
-    </message>
-    <message>
-        <location filename="src/aboutview.cpp" line="69"/>
-        <source>Please &lt;a href=&apos;%1&apos;&gt;donate&lt;/a&gt; to support the continued development of %2.</source>
-        <translation>&lt;a href=&apos;%1&apos;&gt;Dona&lt;/a&gt;, per favor, pro supportar le developpamento continue de %2.</translation>
-    </message>
-    <message>
-        <location filename="src/aboutview.cpp" line="73"/>
-        <source>You may want to try my other apps as well:</source>
-        <translation>Tu pote tamben voler essayar mi altere applicationes</translation>
-    </message>
-    <message>
-        <location filename="src/aboutview.cpp" line="76"/>
-        <source>%1, a YouTube music player</source>
-        <translation>%1, un reproductor de musica de YouTube</translation>
-    </message>
-    <message>
-        <location filename="src/aboutview.cpp" line="80"/>
-        <source>%1, a music player</source>
-        <translation>%1, un sonator de musica</translation>
-    </message>
-    <message>
-        <location filename="src/aboutview.cpp" line="86"/>
-        <source>Translate %1 to your native language using %2</source>
-        <translation>Traduce %1 in tu lingua materne per usar %2</translation>
-    </message>
-    <message>
-        <location filename="src/aboutview.cpp" line="91"/>
-        <source>Icon designed by %1.</source>
-        <translation>Icone designate per %1.</translation>
-    </message>
-    <message>
-        <location filename="src/aboutview.cpp" line="95"/>
-        <source>Released under the &lt;a href=&apos;%1&apos;&gt;GNU General Public License&lt;/a&gt;</source>
-        <translation>Liberate sub le &lt;a href=&apos;%1&apos;&gt;GNU General Public License&lt;/a&gt;</translation>
-    </message>
-    <message>
-        <location filename="src/aboutview.cpp" line="110"/>
-        <source>&amp;Close</source>
-        <translation>&amp;Clauder</translation>
-    </message>
-    <message>
-        <location filename="src/aboutview.h" line="40"/>
-        <source>About</source>
-        <translation>Super</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>&amp;Email:</source>
-        <translation>&amp;E-posta</translation>
-    </message>
-    <message>
-        <location filename="local/src/activationdialog.cpp" line="35"/>
-        <source>&amp;Code:</source>
-        <translation>&amp;Codice</translation>
-    </message>
-</context>
-<context>
-    <name>ActivationView</name>
-    <message>
-        <location filename="local/src/activationview.cpp" line="47"/>
-        <source>Please license %1</source>
-        <translation>Per favor, licentia %1</translation>
-    </message>
-    <message>
-        <location filename="local/src/activationview.cpp" line="51"/>
-        <source>This demo has expired.</source>
-        <translation>Iste demo ha expirate</translation>
-    </message>
-    <message>
-        <location filename="local/src/activationview.cpp" line="53"/>
-        <source>The full version allows you to watch videos without interruptions.</source>
-        <oldsource>The full version allows you to download videos longer than %1 minutes and to watch videos without interruptions.</oldsource>
-        <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>Al comprar le version complete, tu va supportar tamben le dur labor que io habeva pro crear %1.</translation>
-    </message>
-    <message>
-        <location filename="local/src/activationview.cpp" line="70"/>
-        <source>Use Demo</source>
-        <translation>Usar 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>ChannelAggregator</name>
-    <message>
-        <location filename="src/channelaggregator.cpp" line="183"/>
-        <source>By %1</source>
-        <translation type="unfinished"/>
-    </message>
-    <message numerus="yes">
-        <location filename="src/channelaggregator.cpp" line="185"/>
-        <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="67"/>
-        <source>All Videos</source>
-        <translation>Tote le videos</translation>
-    </message>
-    <message>
-        <location filename="src/channelitemdelegate.cpp" line="85"/>
-        <source>Unwatched Videos</source>
-        <translation type="unfinished"/>
-    </message>
-</context>
-<context>
-    <name>ChannelView</name>
-    <message>
-        <location filename="src/channelview.cpp" line="151"/>
-        <source>Mark all as watched</source>
-        <translation type="unfinished"/>
-    </message>
-    <message>
-        <location filename="src/channelview.cpp" line="159"/>
-        <source>Show Updated</source>
-        <translation type="unfinished"/>
-    </message>
-    <message>
-        <location filename="src/channelview.cpp" line="103"/>
-        <source>Name</source>
-        <translation>Nomine</translation>
-    </message>
-    <message>
-        <location filename="src/channelview.cpp" line="110"/>
-        <source>Last Updated</source>
-        <translation type="unfinished"/>
-    </message>
-    <message>
-        <location filename="src/channelview.cpp" line="117"/>
-        <source>Last Added</source>
-        <translation type="unfinished"/>
-    </message>
-    <message>
-        <location filename="src/channelview.cpp" line="124"/>
-        <source>Last Watched</source>
-        <translation type="unfinished"/>
-    </message>
-    <message>
-        <location filename="src/channelview.cpp" line="131"/>
-        <source>Most Watched</source>
-        <translation type="unfinished"/>
-    </message>
-    <message>
-        <location filename="src/channelview.cpp" line="139"/>
-        <source>Sort by</source>
-        <translation>Ordinar per</translation>
-    </message>
-    <message>
-        <location filename="src/channelview.cpp" line="222"/>
-        <source>All Videos</source>
-        <translation>Tote le videos</translation>
-    </message>
-    <message>
-        <location filename="src/channelview.cpp" line="226"/>
-        <source>Unwatched Videos</source>
-        <translation type="unfinished"/>
-    </message>
-    <message>
-        <location filename="src/channelview.cpp" line="244"/>
-        <source>Mark as Watched</source>
-        <translation type="unfinished"/>
-    </message>
-    <message>
-        <location filename="src/channelview.cpp" line="257"/>
-        <source>Unsubscribe</source>
-        <translation type="unfinished"/>
-    </message>
-    <message>
-        <location filename="src/channelview.cpp" line="270"/>
-        <source>There are no updated subscriptions at this time.</source>
-        <translation type="unfinished"/>
-    </message>
-    <message>
-        <location filename="src/channelview.cpp" line="272"/>
-        <source>You have no subscriptions. Use the star symbol to subscribe to channels.</source>
-        <translation type="unfinished"/>
-    </message>
-</context>
-<context>
-    <name>ClearButton</name>
-    <message>
-        <location filename="src/exlineedit.cpp" line="6"/>
-        <source>Clear</source>
-        <translation>Mundar</translation>
-    </message>
-</context>
-<context>
-    <name>DataUtils</name>
-    <message>
-        <location filename="src/datautils.cpp" line="88"/>
-        <source>Just now</source>
-        <translation type="unfinished"/>
-    </message>
-    <message numerus="yes">
-        <location filename="src/datautils.cpp" line="90"/>
-        <source>%n minute(s) ago</source>
-        <translation type="unfinished"><numerusform></numerusform><numerusform></numerusform></translation>
-    </message>
-    <message numerus="yes">
-        <location filename="src/datautils.cpp" line="92"/>
-        <source>%n hour(s) ago</source>
-        <translation type="unfinished"><numerusform></numerusform><numerusform></numerusform></translation>
-    </message>
-    <message numerus="yes">
-        <location filename="src/datautils.cpp" line="94"/>
-        <source>%n day(s) ago</source>
-        <translation type="unfinished"><numerusform></numerusform><numerusform></numerusform></translation>
-    </message>
-    <message numerus="yes">
-        <location filename="src/datautils.cpp" line="96"/>
-        <source>%n weeks(s) ago</source>
-        <translation type="unfinished"><numerusform></numerusform><numerusform></numerusform></translation>
-    </message>
-    <message numerus="yes">
-        <location filename="src/datautils.cpp" line="98"/>
-        <source>%n month(s) ago</source>
-        <translation type="unfinished"><numerusform></numerusform><numerusform></numerusform></translation>
-    </message>
-</context>
-<context>
-    <name>DownloadItem</name>
-    <message>
-        <location filename="src/downloaditem.cpp" line="406"/>
-        <source>bytes</source>
-        <translation>bytes</translation>
-    </message>
-    <message>
-        <location filename="src/downloaditem.cpp" line="409"/>
-        <source>KB</source>
-        <translation>KB</translation>
-    </message>
-    <message>
-        <location filename="src/downloaditem.cpp" line="412"/>
-        <source>MB</source>
-        <translation>MB</translation>
-    </message>
-    <message>
-        <location filename="src/downloaditem.cpp" line="421"/>
-        <source>bytes/sec</source>
-        <translation>bytes/sec</translation>
-    </message>
-    <message>
-        <location filename="src/downloaditem.cpp" line="424"/>
-        <source>KB/sec</source>
-        <translation>KB/sec</translation>
-    </message>
-    <message>
-        <location filename="src/downloaditem.cpp" line="427"/>
-        <source>MB/sec</source>
-        <translation>MB/sec</translation>
-    </message>
-    <message>
-        <location filename="src/downloaditem.cpp" line="433"/>
-        <source>seconds</source>
-        <translation>secundas</translation>
-    </message>
-    <message>
-        <location filename="src/downloaditem.cpp" line="436"/>
-        <source>minutes</source>
-        <translation>minutas</translation>
-    </message>
-    <message>
-        <location filename="src/downloaditem.cpp" line="439"/>
-        <source>%4 %5 remaining</source>
-        <translation>%4 %5 restante</translation>
-    </message>
-</context>
-<context>
-    <name>DownloadManager</name>
-    <message>
-        <location filename="src/downloadmanager.cpp" line="77"/>
-        <source>This is just the demo version of %1.</source>
-        <translation>Iste es solmente le version demo de %1.</translation>
-    </message>
-    <message>
-        <location filename="src/downloadmanager.cpp" line="79"/>
-        <source>It can only download videos shorter than %1 minutes so you can test the download functionality.</source>
-        <translation>Il solmente es possibile discargar videos plus curte que %1 minutas pro que assi tu pote testar le functionalitate de discarga.</translation>
-    </message>
-    <message>
-        <location filename="src/downloadmanager.cpp" line="85"/>
-        <source>Continue</source>
-        <translation>Continuar</translation>
-    </message>
-    <message>
-        <location filename="src/downloadmanager.cpp" line="86"/>
-        <source>Get the full version</source>
-        <translation>Obtener le version complete</translation>
-    </message>
-    <message>
-        <location filename="src/downloadmanager.cpp" line="157"/>
-        <source>%1 downloaded in %2</source>
-        <translation>%1 discargate in %2</translation>
-    </message>
-    <message>
-        <location filename="src/downloadmanager.cpp" line="160"/>
-        <source>Download finished</source>
-        <translation>Discarga terminate</translation>
-    </message>
-    <message numerus="yes">
-        <location filename="src/downloadmanager.cpp" line="165"/>
-        <source>%n Download(s)</source>
-        <translation type="unfinished"><numerusform></numerusform><numerusform></numerusform></translation>
-    </message>
-</context>
-<context>
-    <name>DownloadSettings</name>
-    <message>
-        <location filename="src/downloadsettings.cpp" line="36"/>
-        <source>Change location...</source>
-        <translation>Cambia le localisation...</translation>
-    </message>
-    <message>
-        <location filename="src/downloadsettings.cpp" line="69"/>
-        <source>Choose the download location</source>
-        <translation>Selige le localisation de discarga</translation>
-    </message>
-    <message>
-        <location filename="src/downloadsettings.cpp" line="81"/>
-        <source>Download location changed.</source>
-        <translation>Le localisation de discarga esseva cambiate.</translation>
-    </message>
-    <message>
-        <location filename="src/downloadsettings.cpp" line="83"/>
-        <source>Current downloads will still go in the previous location.</source>
-        <translation>Le discargas actual va ancora al previe localisation.</translation>
-    </message>
-    <message>
-        <location filename="src/downloadsettings.cpp" line="94"/>
-        <source>Downloading to: %1</source>
-        <translation>A discargar a: %1</translation>
-    </message>
-</context>
-<context>
-    <name>DownloadView</name>
-    <message>
-        <location filename="src/downloadview.cpp" line="38"/>
-        <location filename="src/downloadview.h" line="45"/>
-        <source>Downloads</source>
-        <translation>Discargas</translation>
-    </message>
-</context>
-<context>
-    <name>DownloadWidget</name>
-    <message>
-        <location filename="local/src/updatedialog.cpp" line="60"/>
-        <source>Downloading update...</source>
-        <translation>Discargante actualisation...</translation>
-    </message>
-</context>
-<context>
-    <name>Extra</name>
-    <message>
-        <location filename="local/src/extra.cpp" line="251"/>
-        <source>The executable file has been tempered with, maybe by a virus.</source>
-        <translation type="unfinished"/>
-    </message>
-    <message>
-        <location filename="local/src/extra.cpp" line="252"/>
-        <source>%1 will not run. Try installing again.</source>
-        <translation type="unfinished"/>
-    </message>
-    <message>
-        <location filename="local/src/extra.cpp" line="253"/>
-        <source>Quit</source>
-        <translation type="unfinished"/>
-    </message>
-    <message>
-        <location filename="local/src/extra.cpp" line="254"/>
-        <source>Reinstall</source>
-        <translation type="unfinished"/>
-    </message>
-</context>
-<context>
-    <name>GlobalShortcuts</name>
-    <message>
-        <location filename="src/globalshortcuts.cpp" line="36"/>
-        <source>Play</source>
-        <translation>Reproducer</translation>
-    </message>
-    <message>
-        <location filename="src/globalshortcuts.cpp" line="37"/>
-        <source>Pause</source>
-        <translation>Pausa</translation>
-    </message>
-    <message>
-        <location filename="src/globalshortcuts.cpp" line="38"/>
-        <source>Play/Pause</source>
-        <translation>Reproducer/Pausa</translation>
-    </message>
-    <message>
-        <location filename="src/globalshortcuts.cpp" line="39"/>
-        <source>Stop</source>
-        <translation>Stop</translation>
-    </message>
-    <message>
-        <location filename="src/globalshortcuts.cpp" line="40"/>
-        <source>Stop playing after current track</source>
-        <translation>Stoppar le reproduction post le pista actual</translation>
-    </message>
-    <message>
-        <location filename="src/globalshortcuts.cpp" line="41"/>
-        <source>Next track</source>
-        <translation>Proxime pista</translation>
-    </message>
-    <message>
-        <location filename="src/globalshortcuts.cpp" line="42"/>
-        <source>Previous track</source>
-        <translation>Previe pista</translation>
-    </message>
-    <message>
-        <location filename="src/globalshortcuts.cpp" line="43"/>
-        <source>Increase volume</source>
-        <translation>Augmentar le sono</translation>
-    </message>
-    <message>
-        <location filename="src/globalshortcuts.cpp" line="44"/>
-        <source>Decrease volume</source>
-        <translation>Diminuer le sono</translation>
-    </message>
-    <message>
-        <location filename="src/globalshortcuts.cpp" line="45"/>
-        <source>Mute</source>
-        <translation>Mute</translation>
-    </message>
-    <message>
-        <location filename="src/globalshortcuts.cpp" line="46"/>
-        <source>Seek forward</source>
-        <translation>Cerca in avante</translation>
-    </message>
-    <message>
-        <location filename="src/globalshortcuts.cpp" line="47"/>
-        <source>Seek backward</source>
-        <translation>Cerca retro</translation>
-    </message>
-</context>
-<context>
-    <name>HomeView</name>
-    <message>
-        <location filename="src/homeview.cpp" line="58"/>
-        <source>Search</source>
-        <translation>Cercar</translation>
-    </message>
-    <message>
-        <location filename="src/homeview.cpp" line="60"/>
-        <source>Find videos and channels by keyword</source>
-        <translation type="unfinished"/>
-    </message>
-    <message>
-        <location filename="src/homeview.cpp" line="65"/>
-        <source>Browse</source>
-        <translation type="unfinished"/>
-    </message>
-    <message>
-        <location filename="src/homeview.cpp" line="67"/>
-        <source>Browse videos by category</source>
-        <translation type="unfinished"/>
-    </message>
-    <message>
-        <location filename="src/homeview.cpp" line="71"/>
-        <source>Subscriptions</source>
-        <translation type="unfinished"/>
-    </message>
-    <message>
-        <location filename="src/homeview.cpp" line="73"/>
-        <source>Channel subscriptions</source>
-        <translation type="unfinished"/>
-    </message>
-    <message>
-        <location filename="src/homeview.h" line="44"/>
-        <source>Make yourself comfortable</source>
-        <translation type="unfinished"/>
-    </message>
-</context>
-<context>
-    <name>LoadingWidget</name>
-    <message>
-        <location filename="src/loadingwidget.cpp" line="125"/>
-        <source>Error</source>
-        <translation>Error</translation>
-    </message>
-</context>
-<context>
-    <name>MainWindow</name>
-    <message>
-        <location filename="src/mainwindow.cpp" line="291"/>
-        <source>&amp;Stop</source>
-        <translation>&amp;Stop</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="292"/>
-        <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="307"/>
-        <source>S&amp;kip</source>
-        <translation>S&amp;altar</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="308"/>
-        <source>Skip to the next video</source>
-        <translation>Saltar al proxime video</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="1134"/>
-        <source>&amp;Pause</source>
-        <translation>&amp;Pausa</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="1135"/>
-        <source>Pause playback</source>
-        <translation>Pausar le reproduction</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="321"/>
-        <source>&amp;Full Screen</source>
-        <translation>&amp;Schermo plen</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="322"/>
-        <source>Go full screen</source>
-        <translation>Vader a schermo plen</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="336"/>
-        <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="349"/>
-        <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="356"/>
-        <source>Copy the current video YouTube link to the clipboard</source>
-        <translation>Copiar le actual &amp;ligamine de video YouTube al area de transferentia</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="363"/>
-        <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="370"/>
-        <source>Find other video parts hopefully in the right order</source>
-        <translation type="unfinished"/>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="376"/>
-        <source>&amp;Remove</source>
-        <translation>&amp;Remover</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="377"/>
-        <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="383"/>
-        <source>Move &amp;Up</source>
-        <translation>Mover in &amp;alto</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="384"/>
-        <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="390"/>
-        <source>Move &amp;Down</source>
-        <translation>Mover a &amp;basso</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="391"/>
-        <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="402"/>
-        <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="407"/>
-        <source>&amp;Quit</source>
-        <translation>&amp;Quitar</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="410"/>
-        <source>Bye</source>
-        <translation>Adeo</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="414"/>
-        <source>&amp;Website</source>
-        <translation>Sito &amp;web</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="416"/>
-        <source>%1 on the Web</source>
-        <translation>%1 in le web</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="422"/>
-        <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="427"/>
-        <source>&amp;About</source>
-        <translation>&amp;Super</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="429"/>
-        <source>Info about %1</source>
-        <translation>Info super %1</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="437"/>
-        <source>Search</source>
-        <translation>Cercar</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="456"/>
-        <source>Mute volume</source>
-        <translation>Sin sono</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="490"/>
-        <location filename="src/mainwindow.cpp" line="1609"/>
-        <source>&amp;Downloads</source>
-        <translation>&amp;Discargas</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="491"/>
-        <source>Show details about video downloads</source>
-        <translation>Monstrar detalios super le discargas de videos</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="499"/>
-        <source>&amp;Download</source>
-        <translation>&amp;Discarga</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="500"/>
-        <source>Download the current video</source>
-        <translation>Discarga le video actual</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="510"/>
-        <source>Take &amp;Snapshot</source>
-        <translation type="unfinished"/>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="517"/>
-        <source>&amp;Subscribe to Channel</source>
-        <translation type="unfinished"/>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="525"/>
-        <source>Share the current video using %1</source>
-        <translation>Compartir le video currente usante %1</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="545"/>
-        <source>&amp;Email</source>
-        <translation>&amp;E-posta</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="546"/>
-        <source>Email</source>
-        <translation>E-posta</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="551"/>
-        <source>&amp;Close</source>
-        <translation>&amp;Clauder</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="561"/>
-        <source>&amp;Float on Top</source>
-        <translation>&amp;Flottar in alto</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="566"/>
-        <source>&amp;Adjust Window Size</source>
-        <translation type="unfinished"/>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="571"/>
-        <source>&amp;Stop After This Video</source>
-        <translation>&amp;Stoppar depost de iste video</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="578"/>
-        <source>&amp;Report an Issue...</source>
-        <translation>&amp;Reportar un problema...</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="582"/>
-        <source>&amp;Refine Search...</source>
-        <translation>&amp;Affinar le cerca...</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="594"/>
-        <source>More...</source>
-        <translation>Plus...</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="597"/>
-        <source>&amp;Related Videos</source>
-        <translation type="unfinished"/>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="599"/>
-        <source>Watch videos related to the current one</source>
-        <translation type="unfinished"/>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="605"/>
-        <source>Open in &amp;Browser...</source>
-        <translation type="unfinished"/>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="612"/>
-        <source>&amp;Love %1? Rate it!</source>
-        <translation type="unfinished"/>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="633"/>
-        <source>&amp;Application</source>
-        <translation>&amp;Application</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="618"/>
-        <source>Buy %1...</source>
-        <translation>Comprar %1...</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="647"/>
-        <source>&amp;Playback</source>
-        <translation>&amp;Reproduction</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="661"/>
-        <source>&amp;Playlist</source>
-        <translation>Lista de re&amp;production</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="670"/>
-        <source>&amp;Video</source>
-        <translation>&amp;Video</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="686"/>
-        <source>&amp;View</source>
-        <translation>&amp;Vider</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="695"/>
-        <source>&amp;Share</source>
-        <translation>&amp;Compartir</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="709"/>
-        <source>&amp;Help</source>
-        <translation>&amp;Adjuta</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="751"/>
-        <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="1021"/>
-        <location filename="src/mainwindow.cpp" line="1027"/>
-        <source>Opening %1</source>
-        <translation>A aperir %1</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="1080"/>
-        <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="1081"/>
-        <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="1086"/>
-        <source>Close and cancel download</source>
-        <translation>Claude e cancella le discarga</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="1087"/>
-        <source>Wait for download to finish</source>
-        <translation>Attende que le discarga fini</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="1158"/>
-        <source>&amp;Loading...</source>
-        <translation type="unfinished"/>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="1264"/>
-        <source>Leave &amp;Full Screen</source>
-        <translation>Quita le &amp;schermo plen</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="1718"/>
-        <source>%1 version %2 is now available.</source>
-        <translation>%1 version %2 es ora disponibile.</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="1722"/>
-        <source>Remind me later</source>
-        <translation>Rememora me plus tarde</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="1723"/>
-        <source>Update</source>
-        <translation>Actualisar</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="1127"/>
-        <source>Error: %1</source>
-        <translation>Error: %1</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="300"/>
-        <source>P&amp;revious</source>
-        <translation>P&amp;revie</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="301"/>
-        <source>Go back to the previous track</source>
-        <translation>Retroceder al tracia previe</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="335"/>
-        <source>&amp;Compact Mode</source>
-        <translation>&amp;Modo compacte</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="348"/>
-        <source>Open the &amp;YouTube Page</source>
-        <translation>Aperir le pagina de &amp;YouTube</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="355"/>
-        <source>Copy the YouTube &amp;Link</source>
-        <translation>Copiar le &amp;ligamine de YouTube</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="362"/>
-        <source>Copy the Video Stream &amp;URL</source>
-        <translation>Copiar le &amp;URL de fluxo de video</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="369"/>
-        <source>Find Video &amp;Parts</source>
-        <translation>Cercar &amp;partes de video</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="397"/>
-        <source>&amp;Clear Recent Searches</source>
-        <translation>&amp;Mundar le recercas recente</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="421"/>
-        <source>Make a &amp;Donation</source>
-        <translation>Face un &amp;donation</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="483"/>
-        <source>&amp;Manually Start Playing</source>
-        <translation>Initiar le reproduction &amp;manualmente</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="484"/>
-        <source>Manually start playing videos</source>
-        <translation>Initiar manualmente le reproduction de videos</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="847"/>
-        <source>Choose your content location</source>
-        <translation>Selige le loco de contento</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="314"/>
-        <location filename="src/mainwindow.cpp" line="1142"/>
-        <location filename="src/mainwindow.cpp" line="1150"/>
-        <source>&amp;Play</source>
-        <translation>Re&amp;producer</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="315"/>
-        <location filename="src/mainwindow.cpp" line="1143"/>
-        <location filename="src/mainwindow.cpp" line="1151"/>
-        <source>Resume playback</source>
-        <translation>Resumer reproduction</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="1437"/>
-        <source>Remaining time: %1</source>
-        <translation>Tempore restante: %1</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="1528"/>
-        <source>Volume at %1%</source>
-        <translation>Volumine a %1%</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="1534"/>
-        <source>Volume is muted</source>
-        <translation>Sin sono</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="1537"/>
-        <source>Volume is unmuted</source>
-        <translation>Con sono</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="1548"/>
-        <source>Maximum video definition set to %1</source>
-        <translation>Definition maxime de video: %1</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="1595"/>
-        <source>Your privacy is now safe</source>
-        <translation>Ora tu intimitate es secur </translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="1610"/>
-        <source>Downloads complete</source>
-        <translation>Discargas complete</translation>
-    </message>
-</context>
-<context>
-    <name>MediaView</name>
-    <message>
-        <location filename="src/mediaview.cpp" line="702"/>
-        <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="710"/>
-        <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="711"/>
-        <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="800"/>
-        <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="801"/>
-        <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="833"/>
-        <source>Continue</source>
-        <translation>Continuar</translation>
-    </message>
-    <message>
-        <location filename="src/mediaview.cpp" line="988"/>
-        <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="1001"/>
-        <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="1003"/>
-        <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="1096"/>
-        <source>Sent from %1</source>
-        <translation>Inviate ab %1</translation>
-    </message>
-    <message>
-        <location filename="src/mediaview.cpp" line="1128"/>
-        <source>Unsubscribe from %1</source>
-        <translation type="unfinished"/>
-    </message>
-    <message>
-        <location filename="src/mediaview.cpp" line="1132"/>
-        <source>Subscribe to %1</source>
-        <translation type="unfinished"/>
-    </message>
-    <message>
-        <location filename="src/mediaview.cpp" line="1166"/>
-        <source>Unsubscribed from %1</source>
-        <translation type="unfinished"/>
-    </message>
-    <message>
-        <location filename="src/mediaview.cpp" line="1169"/>
-        <source>Subscribed to %1</source>
-        <translation type="unfinished"/>
-    </message>
-    <message>
-        <location filename="src/mediaview.cpp" line="808"/>
-        <source>Get the full version</source>
-        <translation>Procura le version complete</translation>
-    </message>
-    <message>
-        <location filename="src/mediaview.cpp" line="847"/>
-        <source>Downloading %1</source>
-        <translation>A discargar %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>Un nove version de %1 es disponibile!</translation>
-    </message>
-    <message>
-        <location filename="local/src/updatedialog.cpp" line="28"/>
-        <source>%1 %2 is now available. You have %3.</source>
-        <translation>%1 %2 ora es disponibile. Tu ha %3.</translation>
-    </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>Rememora me plus tarde</translation>
-    </message>
-    <message>
-        <location filename="local/src/updatedialog.cpp" line="47"/>
-        <source>Install Update</source>
-        <translation>Installar actualisation</translation>
-    </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="209"/>
-        <source>%1 views</source>
-        <translation>%1 visualisationes</translation>
-    </message>
-    <message>
-        <location filename="src/playlistitemdelegate.cpp" line="309"/>
-        <source>%1 of %2 (%3) — %4</source>
-        <translation type="unfinished"/>
-    </message>
-    <message>
-        <location filename="src/playlistitemdelegate.cpp" line="316"/>
-        <source>Preparing</source>
-        <translation type="unfinished"/>
-    </message>
-    <message>
-        <location filename="src/playlistitemdelegate.cpp" line="318"/>
-        <source>Failed</source>
-        <translation>Fallite</translation>
-    </message>
-    <message>
-        <location filename="src/playlistitemdelegate.cpp" line="320"/>
-        <source>Completed</source>
-        <translation>Completate</translation>
-    </message>
-    <message>
-        <location filename="src/playlistitemdelegate.cpp" line="322"/>
-        <source>Stopped</source>
-        <translation type="unfinished"/>
-    </message>
-    <message>
-        <location filename="src/playlistitemdelegate.cpp" line="358"/>
-        <source>Stop downloading</source>
-        <translation>Stoppar le discarga</translation>
-    </message>
-    <message>
-        <location filename="src/playlistitemdelegate.cpp" line="368"/>
-        <source>Show in %1</source>
-        <translation>Monstrar in %1</translation>
-    </message>
-    <message>
-        <location filename="src/playlistitemdelegate.cpp" line="370"/>
-        <source>Open parent folder</source>
-        <translation type="unfinished"/>
-    </message>
-    <message>
-        <location filename="src/playlistitemdelegate.cpp" line="379"/>
-        <source>Restart downloading</source>
-        <translation>Recomenciar le discarga</translation>
-    </message>
-</context>
-<context>
-    <name>PlaylistModel</name>
-    <message>
-        <location filename="src/playlistmodel.cpp" line="70"/>
-        <source>Searching...</source>
-        <translation>A cercar...</translation>
-    </message>
-    <message>
-        <location filename="src/playlistmodel.cpp" line="71"/>
-        <source>Show %1 More</source>
-        <translation>Monstrar %1 plus</translation>
-    </message>
-    <message>
-        <location filename="src/playlistmodel.cpp" line="72"/>
-        <source>No videos</source>
-        <translation>Nulle video</translation>
-    </message>
-    <message>
-        <location filename="src/playlistmodel.cpp" line="73"/>
-        <source>No more videos</source>
-        <translation>In non ha plus de videos</translation>
-    </message>
-</context>
-<context>
-    <name>RefineSearchWidget</name>
-    <message>
-        <location filename="src/refinesearchwidget.cpp" line="49"/>
-        <source>Sort by</source>
-        <translation>Ordinar per</translation>
-    </message>
-    <message>
-        <location filename="src/refinesearchwidget.cpp" line="53"/>
-        <source>Relevance</source>
-        <translation type="unfinished"/>
-    </message>
-    <message>
-        <location filename="src/refinesearchwidget.cpp" line="54"/>
-        <location filename="src/refinesearchwidget.cpp" line="69"/>
-        <source>Date</source>
-        <translation>Data</translation>
-    </message>
-    <message>
-        <location filename="src/refinesearchwidget.cpp" line="55"/>
-        <source>View Count</source>
-        <translation>Vider le contator</translation>
-    </message>
-    <message>
-        <location filename="src/refinesearchwidget.cpp" line="56"/>
-        <source>Rating</source>
-        <translation type="unfinished"/>
-    </message>
-    <message>
-        <location filename="src/refinesearchwidget.cpp" line="73"/>
-        <source>Anytime</source>
-        <translation type="unfinished"/>
-    </message>
-    <message>
-        <location filename="src/refinesearchwidget.cpp" line="74"/>
-        <source>Today</source>
-        <translation>Hodie</translation>
-    </message>
-    <message>
-        <location filename="src/refinesearchwidget.cpp" line="75"/>
-        <source>7 Days</source>
-        <translation>7 dies</translation>
-    </message>
-    <message>
-        <location filename="src/refinesearchwidget.cpp" line="76"/>
-        <source>30 Days</source>
-        <translation>30 dies</translation>
-    </message>
-    <message>
-        <location filename="src/refinesearchwidget.cpp" line="89"/>
-        <source>Duration</source>
-        <translation>Duration</translation>
-    </message>
-    <message>
-        <location filename="src/refinesearchwidget.cpp" line="93"/>
-        <location filename="src/refinesearchwidget.cpp" line="119"/>
-        <source>All</source>
-        <translation>Omne</translation>
-    </message>
-    <message>
-        <location filename="src/refinesearchwidget.cpp" line="94"/>
-        <source>Short</source>
-        <translation>Curte</translation>
-    </message>
-    <message>
-        <location filename="src/refinesearchwidget.cpp" line="95"/>
-        <source>Medium</source>
-        <translation>Medie</translation>
-    </message>
-    <message>
-        <location filename="src/refinesearchwidget.cpp" line="96"/>
-        <source>Long</source>
-        <translation>Longe</translation>
-    </message>
-    <message>
-        <location filename="src/refinesearchwidget.cpp" line="99"/>
-        <source>Less than 4 minutes</source>
-        <translation>Minus de 4 minutas</translation>
-    </message>
-    <message>
-        <location filename="src/refinesearchwidget.cpp" line="100"/>
-        <source>Between 4 and 20 minutes</source>
-        <translation>Inter 4 e 20 minutas</translation>
-    </message>
-    <message>
-        <location filename="src/refinesearchwidget.cpp" line="101"/>
-        <source>Longer than 20 minutes</source>
-        <translation>Plus de 20 minutas</translation>
-    </message>
-    <message>
-        <location filename="src/refinesearchwidget.cpp" line="115"/>
-        <source>Quality</source>
-        <translation>Qualitate</translation>
-    </message>
-    <message>
-        <location filename="src/refinesearchwidget.cpp" line="120"/>
-        <source>High Definition</source>
-        <translation>Alte definition</translation>
-    </message>
-    <message>
-        <location filename="src/refinesearchwidget.cpp" line="123"/>
-        <source>720p or higher</source>
-        <translation>720p o plus</translation>
-    </message>
-    <message>
-        <location filename="src/refinesearchwidget.cpp" line="136"/>
-        <source>Done</source>
-        <translation>Facite</translation>
-    </message>
-</context>
-<context>
-    <name>RegionsView</name>
-    <message>
-        <location filename="src/regionsview.cpp" line="39"/>
-        <source>Done</source>
-        <translation>Facite</translation>
-    </message>
-</context>
-<context>
-    <name>SearchLineEdit</name>
-    <message>
-        <location filename="src/searchlineedit.cpp" line="55"/>
-        <source>Search</source>
-        <translation>Cercar</translation>
-    </message>
-</context>
-<context>
-    <name>SearchView</name>
-    <message>
-        <location filename="src/searchview.cpp" line="83"/>
-        <source>Welcome to &lt;a href=&apos;%1&apos;&gt;%2&lt;/a&gt;,</source>
-        <translation>Benvenite a &lt;a href=&apos;%1&apos;&gt;%2&lt;/a&gt;,</translation>
-    </message>
-    <message>
-        <location filename="src/searchview.cpp" line="200"/>
-        <source>Get the full version</source>
-        <translation>Procura le version complete</translation>
-    </message>
-    <message>
-        <location filename="src/searchview.cpp" line="110"/>
-        <source>Enter</source>
-        <extracomment>&quot;Enter&quot;, as in &quot;type&quot;. The whole phrase says: &quot;Enter a keyword to start watching videos&quot;</extracomment>
-        <translation>Scriber</translation>
-    </message>
-    <message>
-        <location filename="src/searchview.cpp" line="117"/>
-        <source>a keyword</source>
-        <translation>una parola clave</translation>
-    </message>
-    <message>
-        <location filename="src/searchview.cpp" line="118"/>
-        <source>a channel</source>
-        <translation>un canal</translation>
-    </message>
-    <message>
-        <location filename="src/searchview.cpp" line="125"/>
-        <source>to start watching videos.</source>
-        <translation>pro comenciar a reguardar le videos.</translation>
-    </message>
-    <message>
-        <location filename="src/searchview.cpp" line="156"/>
-        <source>Watch</source>
-        <translation>Reguardar</translation>
-    </message>
-    <message>
-        <location filename="src/searchview.cpp" line="174"/>
-        <source>Recent keywords</source>
-        <translation>Parolas-clave recente</translation>
-    </message>
-    <message>
-        <location filename="src/searchview.cpp" line="186"/>
-        <source>Recent channels</source>
-        <translation>Canales recente</translation>
-    </message>
-</context>
-<context>
-    <name>SidebarHeader</name>
-    <message>
-        <location filename="src/sidebarheader.cpp" line="38"/>
-        <location filename="src/sidebarheader.cpp" line="45"/>
-        <source>&amp;Back</source>
-        <translation>&amp;Retro</translation>
-    </message>
-    <message>
-        <location filename="src/sidebarheader.cpp" line="76"/>
-        <source>Forward to %1</source>
-        <translation type="unfinished"/>
-    </message>
-    <message>
-        <location filename="src/sidebarheader.cpp" line="89"/>
-        <source>Back to %1</source>
-        <translation type="unfinished"/>
-    </message>
-</context>
-<context>
-    <name>SidebarWidget</name>
-    <message>
-        <location filename="src/sidebarwidget.cpp" line="68"/>
-        <source>Refine Search</source>
-        <translation>Affinar le cerca</translation>
-    </message>
-    <message>
-        <location filename="src/sidebarwidget.cpp" line="167"/>
-        <source>Did you mean: %1</source>
-        <translation>Tu voleva dicer: %1</translation>
-    </message>
-</context>
-<context>
-    <name>SnapshotSettings</name>
-    <message>
-        <location filename="src/snapshotsettings.cpp" line="47"/>
-        <source>Change location...</source>
-        <translation>Cambia le localisation...</translation>
-    </message>
-    <message>
-        <location filename="src/snapshotsettings.cpp" line="64"/>
-        <source>Snapshot saved to %1</source>
-        <translation type="unfinished"/>
-    </message>
-    <message>
-        <location filename="src/snapshotsettings.cpp" line="117"/>
-        <source>Snapshots location changed.</source>
-        <translation type="unfinished"/>
-    </message>
-</context>
-<context>
-    <name>StandardFeedsView</name>
-    <message>
-        <location filename="src/standardfeedsview.cpp" line="107"/>
-        <source>Most Popular</source>
-        <translation type="unfinished"/>
-    </message>
-</context>
-<context>
-    <name>Video</name>
-    <message>
-        <location filename="src/video.cpp" line="287"/>
-        <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="292"/>
-        <source>Network error: %1 for %2</source>
-        <translation>Error de rete: %1 pro %2</translation>
-    </message>
-</context>
-<context>
-    <name>YTRegions</name>
-    <message>
-        <location filename="src/ytregions.cpp" line="28"/>
-        <source>Algeria</source>
-        <translation type="unfinished"/>
-    </message>
-    <message>
-        <location filename="src/ytregions.cpp" line="29"/>
-        <source>Argentina</source>
-        <translation type="unfinished"/>
-    </message>
-    <message>
-        <location filename="src/ytregions.cpp" line="30"/>
-        <source>Australia</source>
-        <translation type="unfinished"/>
-    </message>
-    <message>
-        <location filename="src/ytregions.cpp" line="31"/>
-        <source>Belgium</source>
-        <translation type="unfinished"/>
-    </message>
-    <message>
-        <location filename="src/ytregions.cpp" line="32"/>
-        <source>Brazil</source>
-        <translation type="unfinished"/>
-    </message>
-    <message>
-        <location filename="src/ytregions.cpp" line="33"/>
-        <source>Canada</source>
-        <translation type="unfinished"/>
-    </message>
-    <message>
-        <location filename="src/ytregions.cpp" line="34"/>
-        <source>Chile</source>
-        <translation type="unfinished"/>
-    </message>
-    <message>
-        <location filename="src/ytregions.cpp" line="35"/>
-        <source>Colombia</source>
-        <translation type="unfinished"/>
-    </message>
-    <message>
-        <location filename="src/ytregions.cpp" line="36"/>
-        <source>Czech Republic</source>
-        <translation type="unfinished"/>
-    </message>
-    <message>
-        <location filename="src/ytregions.cpp" line="37"/>
-        <source>Egypt</source>
-        <translation type="unfinished"/>
-    </message>
-    <message>
-        <location filename="src/ytregions.cpp" line="38"/>
-        <source>France</source>
-        <translation type="unfinished"/>
-    </message>
-    <message>
-        <location filename="src/ytregions.cpp" line="39"/>
-        <source>Germany</source>
-        <translation type="unfinished"/>
-    </message>
-    <message>
-        <location filename="src/ytregions.cpp" line="40"/>
-        <source>Ghana</source>
-        <translation type="unfinished"/>
-    </message>
-    <message>
-        <location filename="src/ytregions.cpp" line="41"/>
-        <source>Greece</source>
-        <translation type="unfinished"/>
-    </message>
-    <message>
-        <location filename="src/ytregions.cpp" line="42"/>
-        <source>Hong Kong</source>
-        <translation type="unfinished"/>
-    </message>
-    <message>
-        <location filename="src/ytregions.cpp" line="43"/>
-        <source>Hungary</source>
-        <translation type="unfinished"/>
-    </message>
-    <message>
-        <location filename="src/ytregions.cpp" line="44"/>
-        <source>India</source>
-        <translation type="unfinished"/>
-    </message>
-    <message>
-        <location filename="src/ytregions.cpp" line="45"/>
-        <source>Indonesia</source>
-        <translation type="unfinished"/>
-    </message>
-    <message>
-        <location filename="src/ytregions.cpp" line="46"/>
-        <source>Ireland</source>
-        <translation type="unfinished"/>
-    </message>
-    <message>
-        <location filename="src/ytregions.cpp" line="47"/>
-        <source>Israel</source>
-        <translation type="unfinished"/>
-    </message>
-    <message>
-        <location filename="src/ytregions.cpp" line="48"/>
-        <source>Italy</source>
-        <translation type="unfinished"/>
-    </message>
-    <message>
-        <location filename="src/ytregions.cpp" line="49"/>
-        <source>Japan</source>
-        <translation type="unfinished"/>
-    </message>
-    <message>
-        <location filename="src/ytregions.cpp" line="50"/>
-        <source>Jordan</source>
-        <translation type="unfinished"/>
-    </message>
-    <message>
-        <location filename="src/ytregions.cpp" line="51"/>
-        <source>Kenya</source>
-        <translation type="unfinished"/>
-    </message>
-    <message>
-        <location filename="src/ytregions.cpp" line="52"/>
-        <source>Malaysia</source>
-        <translation type="unfinished"/>
-    </message>
-    <message>
-        <location filename="src/ytregions.cpp" line="53"/>
-        <source>Mexico</source>
-        <translation type="unfinished"/>
-    </message>
-    <message>
-        <location filename="src/ytregions.cpp" line="54"/>
-        <source>Morocco</source>
-        <translation type="unfinished"/>
-    </message>
-    <message>
-        <location filename="src/ytregions.cpp" line="55"/>
-        <source>Netherlands</source>
-        <translation type="unfinished"/>
-    </message>
-    <message>
-        <location filename="src/ytregions.cpp" line="56"/>
-        <source>New Zealand</source>
-        <translation type="unfinished"/>
-    </message>
-    <message>
-        <location filename="src/ytregions.cpp" line="57"/>
-        <source>Nigeria</source>
-        <translation type="unfinished"/>
-    </message>
-    <message>
-        <location filename="src/ytregions.cpp" line="58"/>
-        <source>Peru</source>
-        <translation type="unfinished"/>
-    </message>
-    <message>
-        <location filename="src/ytregions.cpp" line="59"/>
-        <source>Philippines</source>
-        <translation type="unfinished"/>
-    </message>
-    <message>
-        <location filename="src/ytregions.cpp" line="60"/>
-        <source>Poland</source>
-        <translation type="unfinished"/>
-    </message>
-    <message>
-        <location filename="src/ytregions.cpp" line="61"/>
-        <source>Russia</source>
-        <translation type="unfinished"/>
-    </message>
-    <message>
-        <location filename="src/ytregions.cpp" line="62"/>
-        <source>Saudi Arabia</source>
-        <translation type="unfinished"/>
-    </message>
-    <message>
-        <location filename="src/ytregions.cpp" line="63"/>
-        <source>Singapore</source>
-        <translation type="unfinished"/>
-    </message>
-    <message>
-        <location filename="src/ytregions.cpp" line="64"/>
-        <source>South Africa</source>
-        <translation type="unfinished"/>
-    </message>
-    <message>
-        <location filename="src/ytregions.cpp" line="65"/>
-        <source>South Korea</source>
-        <translation type="unfinished"/>
-    </message>
-    <message>
-        <location filename="src/ytregions.cpp" line="66"/>
-        <source>Spain</source>
-        <translation type="unfinished"/>
-    </message>
-    <message>
-        <location filename="src/ytregions.cpp" line="67"/>
-        <source>Sweden</source>
-        <translation type="unfinished"/>
-    </message>
-    <message>
-        <location filename="src/ytregions.cpp" line="68"/>
-        <source>Taiwan</source>
-        <translation type="unfinished"/>
-    </message>
-    <message>
-        <location filename="src/ytregions.cpp" line="69"/>
-        <source>Tunisia</source>
-        <translation type="unfinished"/>
-    </message>
-    <message>
-        <location filename="src/ytregions.cpp" line="70"/>
-        <source>Turkey</source>
-        <translation type="unfinished"/>
-    </message>
-    <message>
-        <location filename="src/ytregions.cpp" line="71"/>
-        <source>Uganda</source>
-        <translation type="unfinished"/>
-    </message>
-    <message>
-        <location filename="src/ytregions.cpp" line="72"/>
-        <source>United Arab Emirates</source>
-        <translation type="unfinished"/>
-    </message>
-    <message>
-        <location filename="src/ytregions.cpp" line="73"/>
-        <source>United Kingdom</source>
-        <translation type="unfinished"/>
-    </message>
-    <message>
-        <location filename="src/ytregions.cpp" line="74"/>
-        <source>Yemen</source>
-        <translation type="unfinished"/>
-    </message>
-    <message>
-        <location filename="src/ytregions.cpp" line="148"/>
-        <source>Worldwide</source>
-        <translation>Tote le mundo</translation>
-    </message>
-</context>
-</TS>
\ No newline at end of file
index f10b9f38a4a302e88e9de42c0cbe1597e07749cb..9daf0b843e2eda3cab76262e4e889b77d1b9647f 100644 (file)
@@ -2,67 +2,42 @@
 <context>
     <name>AboutView</name>
     <message>
-        <location filename="src/aboutview.cpp" line="58"/>
         <source>There&apos;s life outside the browser!</source>
         <translation>Ada kehidupan diluar browser!</translation>
     </message>
     <message>
-        <location filename="src/aboutview.cpp" line="59"/>
         <source>Version %1</source>
-        <translation>Version %1</translation>
+        <translation>Versi %1</translation>
     </message>
     <message>
-        <location filename="src/aboutview.cpp" line="64"/>
         <source>Licensed to: %1</source>
         <translation>Dilisensikan kepada: %1</translation>
     </message>
     <message>
-        <location filename="src/aboutview.cpp" line="68"/>
         <source>%1 is Free Software but its development takes precious time.</source>
-        <translation>%1 is Free Software but its development takes precious time.</translation>
+        <translation>%1 adalah aplikasi gratis, akan tetapi pengembangannya membutuhkan waktu yang cukup berharga.</translation>
     </message>
     <message>
-        <location filename="src/aboutview.cpp" line="69"/>
         <source>Please &lt;a href=&apos;%1&apos;&gt;donate&lt;/a&gt; to support the continued development of %2.</source>
-        <translation>Silahkan &lt;a href=&apos;%1&apos;&gt;donate&lt;/a&gt; untuk mendukung kelanjutan pangembangannya dari %2.</translation>
+        <translation>Silahkan &lt;a href=&apos;%1&apos;&gt;berdonasi&lt;/a&gt; untuk mendukung kelanjutan pangembangan dari %2.</translation>
     </message>
     <message>
-        <location filename="src/aboutview.cpp" line="73"/>
-        <source>You may want to try my other apps as well:</source>
-        <translation>Anda mungkin ingin untuk mencoba aplikasiku yang lainnya:</translation>
-    </message>
-    <message>
-        <location filename="src/aboutview.cpp" line="76"/>
-        <source>%1, a YouTube music player</source>
-        <translation>%1, suatu pemutar musik YouTube</translation>
-    </message>
-    <message>
-        <location filename="src/aboutview.cpp" line="80"/>
-        <source>%1, a music player</source>
-        <translation>%1, suatu pemutar musik</translation>
-    </message>
-    <message>
-        <location filename="src/aboutview.cpp" line="86"/>
         <source>Translate %1 to your native language using %2</source>
-        <translation>Terjemahkan %1 ke bahasa aslimu gunakan %2</translation>
+        <translation>Terjemahkan %1 ke bahasa aslimu dengan menggunakan %2</translation>
     </message>
     <message>
-        <location filename="src/aboutview.cpp" line="91"/>
         <source>Icon designed by %1.</source>
         <translation>Desain ikon oleh %1.</translation>
     </message>
     <message>
-        <location filename="src/aboutview.cpp" line="95"/>
         <source>Released under the &lt;a href=&apos;%1&apos;&gt;GNU General Public License&lt;/a&gt;</source>
         <translation>Dirilis dibawah the &lt;a href=&apos;%1&apos;&gt;GNU General Public License&lt;/a&gt;</translation>
     </message>
     <message>
-        <location filename="src/aboutview.cpp" line="110"/>
         <source>&amp;Close</source>
         <translation>&amp;Tutup</translation>
     </message>
     <message>
-        <location filename="src/aboutview.h" line="40"/>
         <source>About</source>
         <translation>Tentang</translation>
     </message>
 <context>
     <name>ActivationDialog</name>
     <message>
-        <location filename="local/src/activationdialog.cpp" line="17"/>
         <source>Enter your License Details</source>
-        <translation>Masukkan detail Lisensi anda</translation>
+        <translation>Masukkan detail lisensi Anda</translation>
     </message>
     <message>
-        <location filename="local/src/activationdialog.cpp" line="29"/>
         <source>&amp;Email:</source>
         <translation>&amp;Email:</translation>
     </message>
     <message>
-        <location filename="local/src/activationdialog.cpp" line="35"/>
         <source>&amp;Code:</source>
         <translation>&amp;Code:</translation>
     </message>
 <context>
     <name>ActivationView</name>
     <message>
-        <location filename="local/src/activationview.cpp" line="47"/>
         <source>Please license %1</source>
         <translation>Silahkan lisensi %1</translation>
     </message>
     <message>
-        <location filename="local/src/activationview.cpp" line="51"/>
         <source>This demo has expired.</source>
         <translation>Demo ini telah Habis.</translation>
     </message>
     <message>
-        <location filename="local/src/activationview.cpp" line="53"/>
         <source>The full version allows you to watch videos without interruptions.</source>
-        <oldsource>The full version allows you to download videos longer than %1 minutes and to watch videos without interruptions.</oldsource>
         <translation>Anda dapat melihat video tanpa gangguan dengan menggunakan versi penuh</translation>
     </message>
     <message>
-        <location filename="local/src/activationview.cpp" line="55"/>
         <source>Without a license, the application will expire in %1 days.</source>
         <translation>Tanpa lisensi, aplikasi akan kadaluarsa dalam %1 hari.</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>Dengan membeli versi penuh, Anda akan mendapatkan dukungan kerjakeras Saya letakkan kedalam keasi %1.</translation>
     </message>
     <message>
-        <location filename="local/src/activationview.cpp" line="70"/>
         <source>Use Demo</source>
         <translation>Gunakan Demo</translation>
     </message>
     <message>
-        <location filename="local/src/activationview.cpp" line="77"/>
         <source>Enter License</source>
         <translation>Masukkan Lisensi</translation>
     </message>
     <message>
-        <location filename="local/src/activationview.cpp" line="85"/>
         <source>Buy License</source>
         <translation>Beli Lisensi</translation>
     </message>
 </context>
+<context>
+    <name>AppWidget</name>
+    <message>
+        <source>Download</source>
+        <translation>Unduh</translation>
+    </message>
+</context>
 <context>
     <name>ChannelAggregator</name>
     <message>
-        <location filename="src/channelaggregator.cpp" line="183"/>
         <source>By %1</source>
         <translation>Oleh %1</translation>
     </message>
     <message numerus="yes">
-        <location filename="src/channelaggregator.cpp" line="185"/>
         <source>You have %n new video(s)</source>
         <translation type="unfinished"><numerusform></numerusform></translation>
     </message>
 <context>
     <name>ChannelItemDelegate</name>
     <message>
-        <location filename="src/channelitemdelegate.cpp" line="67"/>
         <source>All Videos</source>
         <translation>Semua video</translation>
     </message>
     <message>
-        <location filename="src/channelitemdelegate.cpp" line="85"/>
         <source>Unwatched Videos</source>
         <translation>Video belum dilihat</translation>
     </message>
 <context>
     <name>ChannelView</name>
     <message>
-        <location filename="src/channelview.cpp" line="151"/>
-        <source>Mark all as watched</source>
-        <translation>Tandai sudah dilihat</translation>
-    </message>
-    <message>
-        <location filename="src/channelview.cpp" line="159"/>
-        <source>Show Updated</source>
-        <translation>Acara Terbarui</translation>
-    </message>
-    <message>
-        <location filename="src/channelview.cpp" line="103"/>
         <source>Name</source>
         <translation>Nama</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="110"/>
         <source>Last Updated</source>
         <translation>Diperbarui terakhir kali</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="117"/>
         <source>Last Added</source>
         <translation>Ditambahkan terakhir kali</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="124"/>
         <source>Last Watched</source>
         <translation>Dilihat terakhir kali</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="131"/>
         <source>Most Watched</source>
         <translation>Paling sering dilihat</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="139"/>
         <source>Sort by</source>
         <translation>Urutkan berdasar</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="222"/>
+        <source>Mark all as watched</source>
+        <translation>Tandai sudah dilihat</translation>
+    </message>
+    <message>
+        <source>Show Updated</source>
+        <translation>Acara Terbarui</translation>
+    </message>
+    <message>
         <source>All Videos</source>
         <translation>Semua video</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="226"/>
         <source>Unwatched Videos</source>
         <translation>Video belum dilihat</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="244"/>
         <source>Mark as Watched</source>
         <translation>Tandai sudah dilihat</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="257"/>
         <source>Unsubscribe</source>
         <translation>Berhenti berlangganan</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="270"/>
         <source>There are no updated subscriptions at this time.</source>
         <translation>Tidak ada langganan yang diperbarui saat ini</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="272"/>
         <source>You have no subscriptions. Use the star symbol to subscribe to channels.</source>
         <translation>Anda tidak punya langganan. Gunakan simbol bintang untuk berlangganan ke saluran.</translation>
     </message>
 <context>
     <name>ClearButton</name>
     <message>
-        <location filename="src/exlineedit.cpp" line="6"/>
         <source>Clear</source>
         <translation>Bersih</translation>
     </message>
 <context>
     <name>DataUtils</name>
     <message>
-        <location filename="src/datautils.cpp" line="88"/>
         <source>Just now</source>
-        <translation type="unfinished"/>
+        <translation>Baru saja</translation>
     </message>
     <message numerus="yes">
-        <location filename="src/datautils.cpp" line="90"/>
-        <source>%n minute(s) ago</source>
-        <translation type="unfinished"><numerusform></numerusform></translation>
-    </message>
-    <message numerus="yes">
-        <location filename="src/datautils.cpp" line="92"/>
         <source>%n hour(s) ago</source>
         <translation type="unfinished"><numerusform></numerusform></translation>
     </message>
     <message numerus="yes">
-        <location filename="src/datautils.cpp" line="94"/>
         <source>%n day(s) ago</source>
         <translation type="unfinished"><numerusform></numerusform></translation>
     </message>
     <message numerus="yes">
-        <location filename="src/datautils.cpp" line="96"/>
         <source>%n weeks(s) ago</source>
         <translation type="unfinished"><numerusform></numerusform></translation>
     </message>
     <message numerus="yes">
-        <location filename="src/datautils.cpp" line="98"/>
         <source>%n month(s) ago</source>
         <translation type="unfinished"><numerusform></numerusform></translation>
     </message>
 <context>
     <name>DownloadItem</name>
     <message>
-        <location filename="src/downloaditem.cpp" line="406"/>
         <source>bytes</source>
         <translation>bit</translation>
     </message>
     <message>
-        <location filename="src/downloaditem.cpp" line="409"/>
         <source>KB</source>
         <translation>KB</translation>
     </message>
     <message>
-        <location filename="src/downloaditem.cpp" line="412"/>
         <source>MB</source>
         <translation>MB</translation>
     </message>
     <message>
-        <location filename="src/downloaditem.cpp" line="421"/>
         <source>bytes/sec</source>
         <translation>bit/dtk</translation>
     </message>
     <message>
-        <location filename="src/downloaditem.cpp" line="424"/>
         <source>KB/sec</source>
         <translation>KB/detik</translation>
     </message>
     <message>
-        <location filename="src/downloaditem.cpp" line="427"/>
         <source>MB/sec</source>
         <translation>MB/sec</translation>
     </message>
     <message>
-        <location filename="src/downloaditem.cpp" line="433"/>
         <source>seconds</source>
         <translation>detik</translation>
     </message>
     <message>
-        <location filename="src/downloaditem.cpp" line="436"/>
         <source>minutes</source>
         <translation>menit</translation>
     </message>
     <message>
-        <location filename="src/downloaditem.cpp" line="439"/>
         <source>%4 %5 remaining</source>
         <translation>%4 %5 sisanya</translation>
     </message>
 <context>
     <name>DownloadManager</name>
     <message>
-        <location filename="src/downloadmanager.cpp" line="77"/>
         <source>This is just the demo version of %1.</source>
         <translation>Ini adalah hanya versi demo dari %1.</translation>
     </message>
     <message>
-        <location filename="src/downloadmanager.cpp" line="79"/>
         <source>It can only download videos shorter than %1 minutes so you can test the download functionality.</source>
         <translation>Itu bisanya hanya download video yang pendek daripada %1 menit sehingga kamu bisa menguji fungsinya downloadnya.</translation>
     </message>
     <message>
-        <location filename="src/downloadmanager.cpp" line="85"/>
         <source>Continue</source>
         <translation>Teruskan</translation>
     </message>
     <message>
-        <location filename="src/downloadmanager.cpp" line="86"/>
         <source>Get the full version</source>
         <translation>Dapatkan versi komplitnya</translation>
     </message>
     <message>
-        <location filename="src/downloadmanager.cpp" line="157"/>
         <source>%1 downloaded in %2</source>
         <translation>%1 diunduh dalam %2</translation>
     </message>
     <message>
-        <location filename="src/downloadmanager.cpp" line="160"/>
         <source>Download finished</source>
         <translation>Unduhan selesai</translation>
     </message>
     <message numerus="yes">
-        <location filename="src/downloadmanager.cpp" line="165"/>
         <source>%n Download(s)</source>
         <translation type="unfinished"><numerusform></numerusform></translation>
     </message>
 <context>
     <name>DownloadSettings</name>
     <message>
-        <location filename="src/downloadsettings.cpp" line="36"/>
         <source>Change location...</source>
         <translation>Ganti lokasi...</translation>
     </message>
     <message>
-        <location filename="src/downloadsettings.cpp" line="69"/>
         <source>Choose the download location</source>
         <translation>Pilihlah lokasi unduhan</translation>
     </message>
     <message>
-        <location filename="src/downloadsettings.cpp" line="81"/>
         <source>Download location changed.</source>
         <translation>Merubah lokasi unduhan.</translation>
     </message>
     <message>
-        <location filename="src/downloadsettings.cpp" line="83"/>
         <source>Current downloads will still go in the previous location.</source>
         <translation>Unduhan saat ini masih ingin pergi di lokasi sebelumnya.</translation>
     </message>
     <message>
-        <location filename="src/downloadsettings.cpp" line="94"/>
         <source>Downloading to: %1</source>
         <translation>Unduhan ke: %1</translation>
     </message>
 <context>
     <name>DownloadView</name>
     <message>
-        <location filename="src/downloadview.cpp" line="38"/>
-        <location filename="src/downloadview.h" line="45"/>
         <source>Downloads</source>
         <translation>Unduhan</translation>
     </message>
 </context>
-<context>
-    <name>DownloadWidget</name>
-    <message>
-        <location filename="local/src/updatedialog.cpp" line="60"/>
-        <source>Downloading update...</source>
-        <translation>Mengunduh pembaruan...</translation>
-    </message>
-</context>
 <context>
     <name>Extra</name>
     <message>
-        <location filename="local/src/extra.cpp" line="251"/>
         <source>The executable file has been tempered with, maybe by a virus.</source>
-        <translation type="unfinished"/>
+        <translation>arsip exe telah dimodifikasi, mungkin oleh virus</translation>
     </message>
     <message>
-        <location filename="local/src/extra.cpp" line="252"/>
         <source>%1 will not run. Try installing again.</source>
-        <translation type="unfinished"/>
+        <translation>%1 tidak akan berjalan. Coba instal ulang</translation>
     </message>
     <message>
-        <location filename="local/src/extra.cpp" line="253"/>
         <source>Quit</source>
-        <translation type="unfinished"/>
+        <translation>Keluar</translation>
     </message>
     <message>
-        <location filename="local/src/extra.cpp" line="254"/>
         <source>Reinstall</source>
-        <translation type="unfinished"/>
+        <translation>Instal ulang</translation>
     </message>
 </context>
 <context>
     <name>GlobalShortcuts</name>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="36"/>
         <source>Play</source>
         <translation>Play</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="37"/>
         <source>Pause</source>
         <translation>Pause</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="38"/>
         <source>Play/Pause</source>
         <translation>Mainkan/Jeda</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="39"/>
         <source>Stop</source>
         <translation>Stop</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="40"/>
         <source>Stop playing after current track</source>
         <translation>Stop playing after current track</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="41"/>
         <source>Next track</source>
         <translation>Next track</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="42"/>
         <source>Previous track</source>
         <translation>Previous track</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="43"/>
         <source>Increase volume</source>
         <translation>Increase volume</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="44"/>
         <source>Decrease volume</source>
         <translation>Decrease volume</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="45"/>
         <source>Mute</source>
         <translation>Mute</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="46"/>
         <source>Seek forward</source>
         <translation>Seek forward</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="47"/>
         <source>Seek backward</source>
         <translation>Seek backward</translation>
     </message>
 <context>
     <name>HomeView</name>
     <message>
-        <location filename="src/homeview.cpp" line="58"/>
         <source>Search</source>
         <translation>Search</translation>
     </message>
     <message>
-        <location filename="src/homeview.cpp" line="60"/>
         <source>Find videos and channels by keyword</source>
         <translation>Cari video dan saluran berdasar kata kunci</translation>
     </message>
     <message>
-        <location filename="src/homeview.cpp" line="65"/>
         <source>Browse</source>
         <translation>Ramban</translation>
     </message>
     <message>
-        <location filename="src/homeview.cpp" line="67"/>
         <source>Browse videos by category</source>
         <translation>Ramban video berdasar kategori</translation>
     </message>
     <message>
-        <location filename="src/homeview.cpp" line="71"/>
         <source>Subscriptions</source>
         <translation>Langganan</translation>
     </message>
     <message>
-        <location filename="src/homeview.cpp" line="73"/>
         <source>Channel subscriptions</source>
         <translation>Saluran langganan</translation>
     </message>
     <message>
-        <location filename="src/homeview.h" line="44"/>
         <source>Make yourself comfortable</source>
         <translation>Buat senyaman mungkin</translation>
     </message>
 <context>
     <name>LoadingWidget</name>
     <message>
-        <location filename="src/loadingwidget.cpp" line="125"/>
         <source>Error</source>
         <translation>Gangguan</translation>
     </message>
 <context>
     <name>MainWindow</name>
     <message>
-        <location filename="src/mainwindow.cpp" line="291"/>
+        <source>&amp;Window</source>
+        <translation>&amp;Jendela</translation>
+    </message>
+    <message>
+        <source>&amp;Minimize</source>
+        <translation>&amp;Minimkan</translation>
+    </message>
+    <message>
         <source>&amp;Stop</source>
         <translation>&amp;Stop</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="292"/>
         <source>Stop playback and go back to the search view</source>
         <translation>Stop playback and go back to the search view</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="307"/>
+        <source>P&amp;revious</source>
+        <translation>S&amp;ebelumnya</translation>
+    </message>
+    <message>
+        <source>Go back to the previous track</source>
+        <translation>Kembali lagi ke trek sebelumnya</translation>
+    </message>
+    <message>
         <source>S&amp;kip</source>
         <translation>S&amp;kip</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="308"/>
         <source>Skip to the next video</source>
         <translation>Skip to the next video</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1134"/>
-        <source>&amp;Pause</source>
-        <translation>&amp;Pause</translation>
+        <source>&amp;Play</source>
+        <translation>&amp;Play</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1135"/>
-        <source>Pause playback</source>
-        <translation>Pause playback</translation>
+        <source>Resume playback</source>
+        <translation>Resume playback</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="321"/>
         <source>&amp;Full Screen</source>
         <translation>&amp;Full Screen</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="322"/>
         <source>Go full screen</source>
         <translation>Go full screen</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="336"/>
+        <source>&amp;Compact Mode</source>
+        <translation>&amp;Model kompak</translation>
+    </message>
+    <message>
         <source>Hide the playlist and the toolbar</source>
         <translation>Hide the playlist and the toolbar</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="349"/>
+        <source>Open the &amp;YouTube Page</source>
+        <translation>Buka &amp;Halaman YouTube</translation>
+    </message>
+    <message>
         <source>Go to the YouTube video page and pause playback</source>
         <translation>Pergi ke halaman video YouTube dan jeda pemutaran</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="356"/>
+        <source>Copy the YouTube &amp;Link</source>
+        <translation>Salin YouTube &amp;Pintasan</translation>
+    </message>
+    <message>
         <source>Copy the current video YouTube link to the clipboard</source>
         <translation>Copy the current video YouTube link to the clipboard</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="363"/>
+        <source>Copy the Video Stream &amp;URL</source>
+        <translation>Salin &amp;URL Stream video</translation>
+    </message>
+    <message>
         <source>Copy the current video stream URL to the clipboard</source>
         <translation>Copy the current video stream URL to the clipboard</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="370"/>
+        <source>Find Video &amp;Parts</source>
+        <translation>Mencari Video &amp;Perkakas</translation>
+    </message>
+    <message>
         <source>Find other video parts hopefully in the right order</source>
         <translation>Mencari bagian-bagian video yang lainnya diharapkan dalam pesanan yang benar</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="376"/>
         <source>&amp;Remove</source>
         <translation>&amp;Remove</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="377"/>
         <source>Remove the selected videos from the playlist</source>
         <translation>Remove the selected videos from the playlist</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="383"/>
         <source>Move &amp;Up</source>
         <translation>Move &amp;Up</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="384"/>
         <source>Move up the selected videos in the playlist</source>
         <translation>Gerakkan ke atas video yang dipilih dalam daftar-main</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="390"/>
         <source>Move &amp;Down</source>
         <translation>Move &amp;Down</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="391"/>
         <source>Move down the selected videos in the playlist</source>
         <translation>Gerakkan ke bawah video yang dipilih dalam daftar-main</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="402"/>
+        <source>&amp;Clear Recent Searches</source>
+        <translation>&amp;Bersihkan Jejak Pencarian</translation>
+    </message>
+    <message>
         <source>Clear the search history. Cannot be undone.</source>
         <translation>Menghapus sejarah pencarian. Tidak bisa dikembalikan.</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="407"/>
         <source>&amp;Quit</source>
         <translation>&amp;Cabut</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="410"/>
         <source>Bye</source>
         <translation>Selamat tinggal</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="414"/>
         <source>&amp;Website</source>
         <translation>&amp;Situs web</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="416"/>
         <source>%1 on the Web</source>
         <translation>%1 pada Web</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="422"/>
+        <source>Make a &amp;Donation</source>
+        <translation>Buat &amp;Sumbangan</translation>
+    </message>
+    <message>
         <source>Please support the continued development of %1</source>
         <translation>Please support the continued development of %1</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="427"/>
         <source>&amp;About</source>
         <translation>&amp;Tentang</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="429"/>
         <source>Info about %1</source>
         <translation>Info Tentang %1</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="437"/>
         <source>Search</source>
         <translation>Search</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="456"/>
         <source>Mute volume</source>
         <translation>Bisukan volume</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="490"/>
-        <location filename="src/mainwindow.cpp" line="1609"/>
+        <source>&amp;Manually Start Playing</source>
+        <translation>&amp;Mulai Memainkan secara Manual</translation>
+    </message>
+    <message>
+        <source>Manually start playing videos</source>
+        <translation>Mulai memainkan video secara manual</translation>
+    </message>
+    <message>
         <source>&amp;Downloads</source>
         <translation>&amp;Unduhan-unduhan</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="491"/>
         <source>Show details about video downloads</source>
         <translation>Tampilkan detail tentang unduhan-unduhan video</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="499"/>
         <source>&amp;Download</source>
         <translation>&amp;Unduhan</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="500"/>
         <source>Download the current video</source>
         <translation>Unduhan-unduhan video saat ini</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="510"/>
         <source>Take &amp;Snapshot</source>
         <translation>Ambil Tangkapan Layar</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="517"/>
         <source>&amp;Subscribe to Channel</source>
         <translation>&amp;Berlangganan ke Saluran</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="525"/>
         <source>Share the current video using %1</source>
         <translation>Berbagi video saat ini gunakan %1</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="545"/>
         <source>&amp;Email</source>
         <translation>&amp;Surat</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="546"/>
         <source>Email</source>
         <translation>Surat</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="551"/>
         <source>&amp;Close</source>
         <translation>&amp;Tutup</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="561"/>
         <source>&amp;Float on Top</source>
         <translation>&amp;Mengambang ke puncak</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="566"/>
         <source>&amp;Adjust Window Size</source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="571"/>
         <source>&amp;Stop After This Video</source>
         <translation>&amp;berhenti setelah video ini</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="578"/>
         <source>&amp;Report an Issue...</source>
         <translation>&amp;Laporkan masalah...</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="582"/>
         <source>&amp;Refine Search...</source>
         <translation>&amp;Perbaiki pencarian...</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="594"/>
         <source>More...</source>
         <translation>Lebih lanjut...</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="597"/>
         <source>&amp;Related Videos</source>
         <translation>&amp;Video berhubungan</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="599"/>
         <source>Watch videos related to the current one</source>
         <translation>Lihat video berkaitan dengan yang sekarang</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="605"/>
         <source>Open in &amp;Browser...</source>
         <translation>Buka di &amp;Peramban</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="612"/>
-        <source>&amp;Love %1? Rate it!</source>
-        <translation>&amp;Love %1? Beri Nilai!</translation>
+        <source>Restricted Mode</source>
+        <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="633"/>
-        <source>&amp;Application</source>
-        <translation>&amp;Application</translation>
+        <source>Hide videos that may contain inappropriate content</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <source>&amp;Love %1? Rate it!</source>
+        <translation>&amp;Love %1? Beri Nilai!</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="618"/>
         <source>Buy %1...</source>
         <translation>Beli %1...</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="647"/>
+        <source>&amp;Application</source>
+        <translation>&amp;Application</translation>
+    </message>
+    <message>
         <source>&amp;Playback</source>
         <translation>&amp;Putarbalik</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="661"/>
         <source>&amp;Playlist</source>
         <translation>&amp;Daftar-Main</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="670"/>
         <source>&amp;Video</source>
         <translation>&amp;Video</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="686"/>
-        <source>&amp;View</source>
-        <translation>&amp;Tampak</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="695"/>
         <source>&amp;Share</source>
         <translation>&amp;Berbagi</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="709"/>
+        <source>&amp;View</source>
+        <translation>&amp;Tampak</translation>
+    </message>
+    <message>
         <source>&amp;Help</source>
         <translation>&amp;Help</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="751"/>
         <source>Press %1 to raise the volume, %2 to lower it</source>
         <translation>Tekan %1 untuk menambahkan volume, %2 untuk merendahkan itu</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1021"/>
-        <location filename="src/mainwindow.cpp" line="1027"/>
+        <source>Choose your content location</source>
+        <translation>Pilih lokasi konten</translation>
+    </message>
+    <message>
         <source>Opening %1</source>
         <translation>Membuka %1</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1080"/>
         <source>Do you want to exit %1 with a download in progress?</source>
         <translation>Do you want to exit %1 with a download in progress?</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1081"/>
         <source>If you close %1 now, this download will be cancelled.</source>
         <translation>Jika Anda menutup %1 sekarang, unduhan ini akan dibatalkan.</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1086"/>
         <source>Close and cancel download</source>
         <translation>Tutup dan membatalkan unduhan</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1087"/>
         <source>Wait for download to finish</source>
         <translation>Menunggu unduhannya selesai</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1158"/>
-        <source>&amp;Loading...</source>
-        <translation type="unfinished"/>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="1264"/>
-        <source>Leave &amp;Full Screen</source>
-        <translation>Tinggalkan &amp;Layar Penuh</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="1718"/>
-        <source>%1 version %2 is now available.</source>
-        <translation>%1 versi %2 sekarang telah tersedia.</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="1722"/>
-        <source>Remind me later</source>
-        <translation>Beritahu saya lagi nanti</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="1723"/>
-        <source>Update</source>
-        <translation>Pembaruan data</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="1127"/>
         <source>Error: %1</source>
         <translation>Error: %1</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="300"/>
-        <source>P&amp;revious</source>
-        <translation>S&amp;ebelumnya</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="301"/>
-        <source>Go back to the previous track</source>
-        <translation>Kembali lagi ke trek sebelumnya</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="335"/>
-        <source>&amp;Compact Mode</source>
-        <translation>&amp;Model kompak</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="348"/>
-        <source>Open the &amp;YouTube Page</source>
-        <translation>Buka &amp;Halaman YouTube</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="355"/>
-        <source>Copy the YouTube &amp;Link</source>
-        <translation>Salin YouTube &amp;Pintasan</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="362"/>
-        <source>Copy the Video Stream &amp;URL</source>
-        <translation>Salin &amp;URL Stream video</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="369"/>
-        <source>Find Video &amp;Parts</source>
-        <translation>Mencari Video &amp;Perkakas</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="397"/>
-        <source>&amp;Clear Recent Searches</source>
-        <translation>&amp;Bersihkan Jejak Pencarian</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="421"/>
-        <source>Make a &amp;Donation</source>
-        <translation>Buat &amp;Sumbangan</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="483"/>
-        <source>&amp;Manually Start Playing</source>
-        <translation>&amp;Mulai Memainkan secara Manual</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="484"/>
-        <source>Manually start playing videos</source>
-        <translation>Mulai memainkan video secara manual</translation>
+        <source>&amp;Pause</source>
+        <translation>&amp;Pause</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="847"/>
-        <source>Choose your content location</source>
-        <translation>Pilih lokasi konten</translation>
+        <source>Pause playback</source>
+        <translation>Pause playback</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="314"/>
-        <location filename="src/mainwindow.cpp" line="1142"/>
-        <location filename="src/mainwindow.cpp" line="1150"/>
-        <source>&amp;Play</source>
-        <translation>&amp;Play</translation>
+        <source>&amp;Loading...</source>
+        <translation>&amp;Memuat...</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="315"/>
-        <location filename="src/mainwindow.cpp" line="1143"/>
-        <location filename="src/mainwindow.cpp" line="1151"/>
-        <source>Resume playback</source>
-        <translation>Resume playback</translation>
+        <source>Leave &amp;Full Screen</source>
+        <translation>Tinggalkan &amp;Layar Penuh</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1437"/>
         <source>Remaining time: %1</source>
         <translation>Sisanya waktu: %1</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1528"/>
         <source>Volume at %1%</source>
         <translation>Volume at %1%</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1534"/>
         <source>Volume is muted</source>
         <translation>Volumenya adalah bisu</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1537"/>
         <source>Volume is unmuted</source>
         <translation>Volumenya tidak bisu</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1548"/>
         <source>Maximum video definition set to %1</source>
         <translation>Maksimumnya definisi video set ke %1</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1595"/>
         <source>Your privacy is now safe</source>
         <translation>Privasimu adalah aman sekarang</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1610"/>
         <source>Downloads complete</source>
         <translation>Unduhan-unduhan komplit</translation>
     </message>
+    <message>
+        <source>%1 version %2 is now available.</source>
+        <translation>%1 versi %2 sekarang telah tersedia.</translation>
+    </message>
+    <message>
+        <source>Remind me later</source>
+        <translation>Beritahu saya lagi nanti</translation>
+    </message>
+    <message>
+        <source>Update</source>
+        <translation>Pembaruan data</translation>
+    </message>
 </context>
 <context>
     <name>MediaView</name>
     <message>
-        <location filename="src/mediaview.cpp" line="702"/>
         <source>You can now paste the YouTube link into another application</source>
         <translation>Sekarang Anda dapat paste link YouTube ke dalam aplikasi yang lain</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="710"/>
         <source>You can now paste the video stream URL into another application</source>
         <translation>You can now paste the video stream URL into another application</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="711"/>
         <source>The link will be valid only for a limited time.</source>
         <translation>Link akan berlaku hanya untuk waktu yang terbatas.</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="800"/>
         <source>This is just the demo version of %1.</source>
         <translation>This is just the demo version of %1.</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="801"/>
         <source>It allows you to test the application and see if it works for you.</source>
         <translation>Ini memungkinkan Anda untuk menguji aplikasi dan melihat apakah ia bekerja untuk Anda.</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="833"/>
+        <source>Get the full version</source>
+        <translation>Get the full version</translation>
+    </message>
+    <message>
         <source>Continue</source>
         <translation>Continue</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="988"/>
+        <source>Downloading %1</source>
+        <translation>Downloading %1</translation>
+    </message>
+    <message>
         <source>of</source>
         <comment>Used in video parts, as in '2 of 3'</comment>
         <translation>dari</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="1001"/>
         <source>part</source>
         <comment>This is for video parts, as in 'Cool video - part 1'</comment>
         <translation>bagian</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="1003"/>
         <source>episode</source>
         <comment>This is for video parts, as in 'Cool series - episode 1'</comment>
         <translation>babak bagian</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="1096"/>
         <source>Sent from %1</source>
         <translation>Dikirim dari %1</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="1128"/>
         <source>Unsubscribe from %1</source>
         <translation>Berhenti berlangganan dari %1</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="1132"/>
         <source>Subscribe to %1</source>
         <translation>Berlangganan ke %1</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="1166"/>
         <source>Unsubscribed from %1</source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="1169"/>
         <source>Subscribed to %1</source>
         <translation type="unfinished"/>
     </message>
-    <message>
-        <location filename="src/mediaview.cpp" line="808"/>
-        <source>Get the full version</source>
-        <translation>Get the full version</translation>
-    </message>
-    <message>
-        <location filename="src/mediaview.cpp" line="847"/>
-        <source>Downloading %1</source>
-        <translation>Downloading %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>Versi baru dari %1 tersedia</translation>
     </message>
     <message>
-        <location filename="local/src/updatedialog.cpp" line="28"/>
         <source>%1 %2 is now available. You have %3.</source>
         <translation>%1 %2 tersedia. Kamu punya %3</translation>
     </message>
     <message>
-        <location filename="local/src/updatedialog.cpp" line="33"/>
         <source>Would you like to download it now?</source>
         <translation>Apakah kamu ingin mengunduhnya sekarang?</translation>
     </message>
     <message>
-        <location filename="local/src/updatedialog.cpp" line="39"/>
         <source>Skip This Version</source>
         <translation>Lewati versi ini</translation>
     </message>
     <message>
-        <location filename="local/src/updatedialog.cpp" line="43"/>
         <source>Remind Me Later</source>
         <translation>Ingatkan nanti</translation>
     </message>
     <message>
-        <location filename="local/src/updatedialog.cpp" line="47"/>
         <source>Install Update</source>
         <translation>Install pembaruan</translation>
     </message>
 <context>
     <name>PasteLineEdit</name>
     <message>
-        <location filename="local/src/pastelineedit.cpp" line="6"/>
         <source>Paste</source>
         <translation>Tempel</translation>
     </message>
 <context>
     <name>PlaylistItemDelegate</name>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="209"/>
         <source>%1 views</source>
         <translation>%1 tampilan</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="309"/>
         <source>%1 of %2 (%3) — %4</source>
         <translation>%1 dari %2 (%3) --- %4</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="316"/>
         <source>Preparing</source>
         <translation>Mempersiapkan</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="318"/>
         <source>Failed</source>
         <translation>Gagal</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="320"/>
         <source>Completed</source>
         <translation>Selesai</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="322"/>
         <source>Stopped</source>
         <translation>Berhenti</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="358"/>
         <source>Stop downloading</source>
         <translation>Berhenti mengunduh</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="368"/>
         <source>Show in %1</source>
         <translation>Perlihatkan pada %1</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="370"/>
         <source>Open parent folder</source>
         <translation>Buka folder utama</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="379"/>
         <source>Restart downloading</source>
         <translation>Mulai ulang pengunduhan</translation>
     </message>
 <context>
     <name>PlaylistModel</name>
     <message>
-        <location filename="src/playlistmodel.cpp" line="70"/>
         <source>Searching...</source>
         <translation>Sedang mencari...</translation>
     </message>
     <message>
-        <location filename="src/playlistmodel.cpp" line="71"/>
         <source>Show %1 More</source>
         <translation>Tampilkan lebih banyak %1</translation>
     </message>
     <message>
-        <location filename="src/playlistmodel.cpp" line="72"/>
         <source>No videos</source>
         <translation>Bukan video</translation>
     </message>
     <message>
-        <location filename="src/playlistmodel.cpp" line="73"/>
         <source>No more videos</source>
         <translation>Tidak ada videos lagi</translation>
     </message>
 <context>
     <name>RefineSearchWidget</name>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="49"/>
         <source>Sort by</source>
         <translation>Urutkan berdasar</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="53"/>
         <source>Relevance</source>
         <translation>Relevansi</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="54"/>
-        <location filename="src/refinesearchwidget.cpp" line="69"/>
         <source>Date</source>
         <translation>Tanggal</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="55"/>
         <source>View Count</source>
         <translation>Jumlah tayang</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="56"/>
         <source>Rating</source>
         <translation>Rating</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="73"/>
         <source>Anytime</source>
         <translation>Kapanpun</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="74"/>
         <source>Today</source>
         <translation>Hari ini</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="75"/>
         <source>7 Days</source>
         <translation>7 Hari</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="76"/>
         <source>30 Days</source>
         <translation>30 Hari</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="89"/>
         <source>Duration</source>
         <translation>Durasi</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="93"/>
-        <location filename="src/refinesearchwidget.cpp" line="119"/>
         <source>All</source>
         <translation>Semua</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="94"/>
         <source>Short</source>
         <translation>Pendek</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="95"/>
         <source>Medium</source>
         <translation>Sedang</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="96"/>
         <source>Long</source>
         <translation>Panjang</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="99"/>
         <source>Less than 4 minutes</source>
         <translation>Kurang dari 4 menit</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="100"/>
         <source>Between 4 and 20 minutes</source>
         <translation>Antara 4 sampai 20 menit</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="101"/>
         <source>Longer than 20 minutes</source>
         <translation>Lebih dari 20 menit</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="115"/>
         <source>Quality</source>
         <translation>Kualitas</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="120"/>
         <source>High Definition</source>
         <translation>HD</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="123"/>
         <source>720p or higher</source>
         <translation>720p atau lebih</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="136"/>
         <source>Done</source>
         <translation>Selesai</translation>
     </message>
 <context>
     <name>RegionsView</name>
     <message>
-        <location filename="src/regionsview.cpp" line="39"/>
         <source>Done</source>
         <translation>Selesai</translation>
     </message>
 <context>
     <name>SearchLineEdit</name>
     <message>
-        <location filename="src/searchlineedit.cpp" line="55"/>
         <source>Search</source>
         <translation>Search</translation>
     </message>
 <context>
     <name>SearchView</name>
     <message>
-        <location filename="src/searchview.cpp" line="83"/>
         <source>Welcome to &lt;a href=&apos;%1&apos;&gt;%2&lt;/a&gt;,</source>
         <translation>Selamat datang ke &lt;a href=&apos;%1&apos;&gt;%2&lt;/a&gt;,</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="200"/>
-        <source>Get the full version</source>
-        <translation>Get the full version</translation>
-    </message>
-    <message>
-        <location filename="src/searchview.cpp" line="110"/>
         <source>Enter</source>
         <extracomment>&quot;Enter&quot;, as in &quot;type&quot;. The whole phrase says: &quot;Enter a keyword to start watching videos&quot;</extracomment>
         <translation>Masukkan</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="117"/>
         <source>a keyword</source>
         <translation>sebuah kata kunci</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="118"/>
         <source>a channel</source>
         <translation>a channel</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="125"/>
         <source>to start watching videos.</source>
         <translation>to start watching videos.</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="156"/>
         <source>Watch</source>
         <translation>Watch</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="174"/>
         <source>Recent keywords</source>
         <translation>Recent keywords</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="186"/>
         <source>Recent channels</source>
         <translation>Saluran-saluran saat ini</translation>
     </message>
+    <message>
+        <source>Get the full version</source>
+        <translation>Get the full version</translation>
+    </message>
 </context>
 <context>
     <name>SidebarHeader</name>
     <message>
-        <location filename="src/sidebarheader.cpp" line="38"/>
-        <location filename="src/sidebarheader.cpp" line="45"/>
         <source>&amp;Back</source>
         <translation>&amp;Kembali</translation>
     </message>
     <message>
-        <location filename="src/sidebarheader.cpp" line="76"/>
         <source>Forward to %1</source>
         <translation>Maju sampai %1</translation>
     </message>
     <message>
-        <location filename="src/sidebarheader.cpp" line="89"/>
         <source>Back to %1</source>
         <translation>Kembali ke %1</translation>
     </message>
 <context>
     <name>SidebarWidget</name>
     <message>
-        <location filename="src/sidebarwidget.cpp" line="68"/>
         <source>Refine Search</source>
         <translation>Perbarui pencarian</translation>
     </message>
     <message>
-        <location filename="src/sidebarwidget.cpp" line="167"/>
         <source>Did you mean: %1</source>
         <translation>Apakah maksud kamu: %1</translation>
     </message>
 <context>
     <name>SnapshotSettings</name>
     <message>
-        <location filename="src/snapshotsettings.cpp" line="47"/>
         <source>Change location...</source>
         <translation>Ganti lokasi...</translation>
     </message>
     <message>
-        <location filename="src/snapshotsettings.cpp" line="64"/>
         <source>Snapshot saved to %1</source>
         <translation>Tangkapan Layar disimpan sebagai %1</translation>
     </message>
     <message>
-        <location filename="src/snapshotsettings.cpp" line="117"/>
         <source>Snapshots location changed.</source>
         <translation>Lokasi tangkapan layar diubah</translation>
     </message>
 <context>
     <name>StandardFeedsView</name>
     <message>
-        <location filename="src/standardfeedsview.cpp" line="107"/>
         <source>Most Popular</source>
         <translation>Paling populer</translation>
     </message>
 </context>
 <context>
-    <name>Video</name>
+    <name>UpdateDialog</name>
     <message>
-        <location filename="src/video.cpp" line="287"/>
-        <source>Cannot get video stream for %1</source>
-        <translation>Cannot get video stream for %1</translation>
+        <source>Downloading update...</source>
+        <translation>Mengunduh pembaruan...</translation>
     </message>
     <message>
-        <location filename="src/video.cpp" line="292"/>
-        <source>Network error: %1 for %2</source>
-        <translation>Jaringan sedang error: %1 untuk %2</translation>
+        <source>Downloading %1...</source>
+        <translation>Mengunduh %1...</translation>
+    </message>
+</context>
+<context>
+    <name>Video</name>
+    <message>
+        <source>Cannot get video stream for %1</source>
+        <translation>Tidak bisa mendapatkan video stream untuk %1</translation>
     </message>
 </context>
 <context>
     <name>YTRegions</name>
     <message>
-        <location filename="src/ytregions.cpp" line="28"/>
         <source>Algeria</source>
         <translation>Algeria</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="29"/>
         <source>Argentina</source>
         <translation>Argentina</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="30"/>
         <source>Australia</source>
         <translation>Australia</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="31"/>
         <source>Belgium</source>
         <translation>Belgia</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="32"/>
         <source>Brazil</source>
         <translation>Brazil</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="33"/>
         <source>Canada</source>
         <translation>Kanada</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="34"/>
         <source>Chile</source>
         <translation>Chile</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="35"/>
         <source>Colombia</source>
         <translation>Kolombia</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="36"/>
         <source>Czech Republic</source>
-        <translation>Republick Chechnya</translation>
+        <translation>Republik Chechnya</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="37"/>
         <source>Egypt</source>
         <translation>Mesir</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="38"/>
         <source>France</source>
         <translation>Prancis</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="39"/>
         <source>Germany</source>
         <translation>Jerman</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="40"/>
         <source>Ghana</source>
         <translation>Ghana</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="41"/>
         <source>Greece</source>
         <translation>Yunani</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="42"/>
         <source>Hong Kong</source>
         <translation>Hongkong</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="43"/>
         <source>Hungary</source>
         <translation>Hungaria</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="44"/>
         <source>India</source>
         <translation>India</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="45"/>
         <source>Indonesia</source>
         <translation>Indonesia</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="46"/>
         <source>Ireland</source>
         <translation>Irlandia</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="47"/>
         <source>Israel</source>
         <translation>Israel</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="48"/>
         <source>Italy</source>
         <translation>Italia</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="49"/>
         <source>Japan</source>
         <translation>Jepang</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="50"/>
         <source>Jordan</source>
         <translation>Yordania</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="51"/>
         <source>Kenya</source>
         <translation>Kenya</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="52"/>
         <source>Malaysia</source>
         <translation>Malaysia</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="53"/>
         <source>Mexico</source>
         <translation>Meksiko</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="54"/>
         <source>Morocco</source>
         <translation>Maroko</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="55"/>
         <source>Netherlands</source>
         <translation>Belanda</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="56"/>
         <source>New Zealand</source>
         <translation>Selandia Baru</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="57"/>
         <source>Nigeria</source>
         <translation>Nigeria</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="58"/>
         <source>Peru</source>
         <translation>Peru</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="59"/>
         <source>Philippines</source>
         <translation>Filipina</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="60"/>
         <source>Poland</source>
         <translation>Polandia</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="61"/>
         <source>Russia</source>
         <translation>Rusia</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="62"/>
         <source>Saudi Arabia</source>
         <translation>Arab Saudi</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="63"/>
         <source>Singapore</source>
         <translation>Singapura</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="64"/>
         <source>South Africa</source>
         <translation>Afrika Selatan</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="65"/>
         <source>South Korea</source>
         <translation>Korea Selatan</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="66"/>
         <source>Spain</source>
         <translation>Spanyol</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="67"/>
         <source>Sweden</source>
         <translation>Swedia</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="68"/>
         <source>Taiwan</source>
         <translation>Taiwan</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="69"/>
         <source>Tunisia</source>
         <translation>Tunisia</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="70"/>
         <source>Turkey</source>
         <translation>Turki</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="71"/>
         <source>Uganda</source>
         <translation>Uganda</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="72"/>
         <source>United Arab Emirates</source>
         <translation>Uni Emirat Arab</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="73"/>
         <source>United Kingdom</source>
-        <translation>Inggirs</translation>
+        <translation>Inggris</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="74"/>
         <source>Yemen</source>
         <translation>Yaman</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="148"/>
         <source>Worldwide</source>
         <translation>Dunia</translation>
     </message>
index 0d9b729542027e437891e3801e392814f0861e75..8625647c799fed44985f34df598f8a5a61da08d0 100644 (file)
@@ -2,67 +2,42 @@
 <context>
     <name>AboutView</name>
     <message>
-        <location filename="src/aboutview.cpp" line="58"/>
         <source>There&apos;s life outside the browser!</source>
         <translation>C&apos;è vita fuori del browser!</translation>
     </message>
     <message>
-        <location filename="src/aboutview.cpp" line="59"/>
         <source>Version %1</source>
         <translation>Versione %1</translation>
     </message>
     <message>
-        <location filename="src/aboutview.cpp" line="64"/>
         <source>Licensed to: %1</source>
         <translation>Licenziato a: %1</translation>
     </message>
     <message>
-        <location filename="src/aboutview.cpp" line="68"/>
         <source>%1 is Free Software but its development takes precious time.</source>
         <translation>%1 è Software Libero ma il suo sviluppo richiede tempo prezioso.</translation>
     </message>
     <message>
-        <location filename="src/aboutview.cpp" line="69"/>
         <source>Please &lt;a href=&apos;%1&apos;&gt;donate&lt;/a&gt; to support the continued development of %2.</source>
         <translation>&lt;a href=&quot;%1&quot;&gt;Fai una donazione&lt;/a&gt; per aiutare lo sviluppo di %2.</translation>
     </message>
     <message>
-        <location filename="src/aboutview.cpp" line="73"/>
-        <source>You may want to try my other apps as well:</source>
-        <translation>Prova anche le mie altre applicazioni:</translation>
-    </message>
-    <message>
-        <location filename="src/aboutview.cpp" line="76"/>
-        <source>%1, a YouTube music player</source>
-        <translation>%1, un player musicale per YouTube</translation>
-    </message>
-    <message>
-        <location filename="src/aboutview.cpp" line="80"/>
-        <source>%1, a music player</source>
-        <translation>%1, un player musicale</translation>
-    </message>
-    <message>
-        <location filename="src/aboutview.cpp" line="86"/>
         <source>Translate %1 to your native language using %2</source>
         <translation>Traduci %1 nella tua lingua usando %2</translation>
     </message>
     <message>
-        <location filename="src/aboutview.cpp" line="91"/>
         <source>Icon designed by %1.</source>
         <translation>Icona disegnata da %1.</translation>
     </message>
     <message>
-        <location filename="src/aboutview.cpp" line="95"/>
         <source>Released under the &lt;a href=&apos;%1&apos;&gt;GNU General Public License&lt;/a&gt;</source>
         <translation>Rilasciato sotto licenza &lt;a href=&quot;%1&quot;&gt;GNU General Public License&lt;/a&gt;</translation>
     </message>
     <message>
-        <location filename="src/aboutview.cpp" line="110"/>
         <source>&amp;Close</source>
         <translation>&amp;Chiudi</translation>
     </message>
     <message>
-        <location filename="src/aboutview.h" line="40"/>
         <source>About</source>
         <translation>Informazioni</translation>
     </message>
 <context>
     <name>ActivationDialog</name>
     <message>
-        <location filename="local/src/activationdialog.cpp" line="17"/>
         <source>Enter your License Details</source>
         <translation>Inserisci i dati della tua licenza:</translation>
     </message>
     <message>
-        <location filename="local/src/activationdialog.cpp" line="29"/>
         <source>&amp;Email:</source>
         <translation>&amp;Email:</translation>
     </message>
     <message>
-        <location filename="local/src/activationdialog.cpp" line="35"/>
         <source>&amp;Code:</source>
         <translation>&amp;Codice:</translation>
     </message>
 <context>
     <name>ActivationView</name>
     <message>
-        <location filename="local/src/activationview.cpp" line="47"/>
         <source>Please license %1</source>
         <translation>Compra %1</translation>
     </message>
     <message>
-        <location filename="local/src/activationview.cpp" line="51"/>
         <source>This demo has expired.</source>
         <translation>Questa demo è scaduta.</translation>
     </message>
     <message>
-        <location filename="local/src/activationview.cpp" line="53"/>
         <source>The full version allows you to watch videos without interruptions.</source>
-        <oldsource>The full version allows you to download videos longer than %1 minutes and to watch videos without interruptions.</oldsource>
         <translation>La versione completa ti permette di guardare i video senza interruzioni.</translation>
     </message>
     <message>
-        <location filename="local/src/activationview.cpp" line="55"/>
         <source>Without a license, the application will expire in %1 days.</source>
         <translation>Senza una licenza, l&apos;applicazione scadrà in %1 giorni.</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>Acquistando la versione completa, supporterai anche il lavoro che ho fatto per creare %1.</translation>
     </message>
     <message>
-        <location filename="local/src/activationview.cpp" line="70"/>
         <source>Use Demo</source>
         <translation>Usa la demo</translation>
     </message>
     <message>
-        <location filename="local/src/activationview.cpp" line="77"/>
         <source>Enter License</source>
         <translation>Inserisci la tua licenza</translation>
     </message>
     <message>
-        <location filename="local/src/activationview.cpp" line="85"/>
         <source>Buy License</source>
         <translation>Compra una licenza</translation>
     </message>
 </context>
+<context>
+    <name>AppWidget</name>
+    <message>
+        <source>Download</source>
+        <translation>Scarica</translation>
+    </message>
+</context>
 <context>
     <name>ChannelAggregator</name>
     <message>
-        <location filename="src/channelaggregator.cpp" line="183"/>
         <source>By %1</source>
         <translation>Di %1</translation>
     </message>
     <message numerus="yes">
-        <location filename="src/channelaggregator.cpp" line="185"/>
         <source>You have %n new video(s)</source>
-        <translation><numerusform>C&apos;è un nuovo video</numerusform><numerusform>Ci sono %n nuovi video</numerusform></translation>
+        <translation type="unfinished"><numerusform></numerusform><numerusform></numerusform></translation>
     </message>
 </context>
 <context>
     <name>ChannelItemDelegate</name>
     <message>
-        <location filename="src/channelitemdelegate.cpp" line="67"/>
         <source>All Videos</source>
         <translation>Tutti i video</translation>
     </message>
     <message>
-        <location filename="src/channelitemdelegate.cpp" line="85"/>
         <source>Unwatched Videos</source>
         <translation>Video non visti</translation>
     </message>
 <context>
     <name>ChannelView</name>
     <message>
-        <location filename="src/channelview.cpp" line="151"/>
-        <source>Mark all as watched</source>
-        <translation>Segna tutti come già visti</translation>
-    </message>
-    <message>
-        <location filename="src/channelview.cpp" line="159"/>
-        <source>Show Updated</source>
-        <translation>Mostra aggiornati</translation>
-    </message>
-    <message>
-        <location filename="src/channelview.cpp" line="103"/>
         <source>Name</source>
         <translation>Nome</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="110"/>
         <source>Last Updated</source>
         <translation>Aggiornamento</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="117"/>
         <source>Last Added</source>
         <translation>Iscrizione</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="124"/>
         <source>Last Watched</source>
         <translation>Visione</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="131"/>
         <source>Most Watched</source>
         <translation>Più visti</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="139"/>
         <source>Sort by</source>
         <translation>Ordina per</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="222"/>
+        <source>Mark all as watched</source>
+        <translation>Segna tutti come già visti</translation>
+    </message>
+    <message>
+        <source>Show Updated</source>
+        <translation>Mostra aggiornati</translation>
+    </message>
+    <message>
         <source>All Videos</source>
         <translation>Tutti i video</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="226"/>
         <source>Unwatched Videos</source>
         <translation>Video non visti</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="244"/>
         <source>Mark as Watched</source>
         <translation>Segna come già visto</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="257"/>
         <source>Unsubscribe</source>
         <translation>Annulla iscrizione</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="270"/>
         <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="272"/>
         <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>
     <name>ClearButton</name>
     <message>
-        <location filename="src/exlineedit.cpp" line="6"/>
         <source>Clear</source>
         <translation>Cancella</translation>
     </message>
 <context>
     <name>DataUtils</name>
     <message>
-        <location filename="src/datautils.cpp" line="88"/>
         <source>Just now</source>
         <translation>Poco fa</translation>
     </message>
     <message numerus="yes">
-        <location filename="src/datautils.cpp" line="90"/>
-        <source>%n minute(s) ago</source>
-        <translation><numerusform>Un minuto fa</numerusform><numerusform>%n minuti fa</numerusform></translation>
-    </message>
-    <message numerus="yes">
-        <location filename="src/datautils.cpp" line="92"/>
         <source>%n hour(s) ago</source>
-        <translation><numerusform>Un&apos;ora fa</numerusform><numerusform>%n ore fa</numerusform></translation>
+        <translation type="unfinished"><numerusform></numerusform><numerusform></numerusform></translation>
     </message>
     <message numerus="yes">
-        <location filename="src/datautils.cpp" line="94"/>
         <source>%n day(s) ago</source>
-        <translation><numerusform>Ieri</numerusform><numerusform>%n giorni fa</numerusform></translation>
+        <translation type="unfinished"><numerusform></numerusform><numerusform></numerusform></translation>
     </message>
     <message numerus="yes">
-        <location filename="src/datautils.cpp" line="96"/>
         <source>%n weeks(s) ago</source>
-        <translation><numerusform>Una settimana fa</numerusform><numerusform>%n settimane fa</numerusform></translation>
+        <translation type="unfinished"><numerusform></numerusform><numerusform></numerusform></translation>
     </message>
     <message numerus="yes">
-        <location filename="src/datautils.cpp" line="98"/>
         <source>%n month(s) ago</source>
-        <translation><numerusform>Un mese fa</numerusform><numerusform>%n mesi fa</numerusform></translation>
+        <translation type="unfinished"><numerusform></numerusform><numerusform></numerusform></translation>
     </message>
 </context>
 <context>
     <name>DownloadItem</name>
     <message>
-        <location filename="src/downloaditem.cpp" line="406"/>
         <source>bytes</source>
         <translation>bytes</translation>
     </message>
     <message>
-        <location filename="src/downloaditem.cpp" line="409"/>
         <source>KB</source>
         <translation>KB</translation>
     </message>
     <message>
-        <location filename="src/downloaditem.cpp" line="412"/>
         <source>MB</source>
         <translation>MB</translation>
     </message>
     <message>
-        <location filename="src/downloaditem.cpp" line="421"/>
         <source>bytes/sec</source>
         <translation>bytes/sec</translation>
     </message>
     <message>
-        <location filename="src/downloaditem.cpp" line="424"/>
         <source>KB/sec</source>
         <translation>KB/sec</translation>
     </message>
     <message>
-        <location filename="src/downloaditem.cpp" line="427"/>
         <source>MB/sec</source>
         <translation>MB/sec</translation>
     </message>
     <message>
-        <location filename="src/downloaditem.cpp" line="433"/>
         <source>seconds</source>
         <translation>secondi</translation>
     </message>
     <message>
-        <location filename="src/downloaditem.cpp" line="436"/>
         <source>minutes</source>
         <translation>minuti</translation>
     </message>
     <message>
-        <location filename="src/downloaditem.cpp" line="439"/>
         <source>%4 %5 remaining</source>
         <translation>%4 %5 al termine</translation>
     </message>
 <context>
     <name>DownloadManager</name>
     <message>
-        <location filename="src/downloadmanager.cpp" line="77"/>
         <source>This is just the demo version of %1.</source>
         <translation>Questa è solo la versione demo di %1.</translation>
     </message>
     <message>
-        <location filename="src/downloadmanager.cpp" line="79"/>
         <source>It can only download videos shorter than %1 minutes so you can test the download functionality.</source>
         <translation>Puoi scaricare solo video più corti di %1 minuti, così puoi testare la funzionalità dei download.</translation>
     </message>
     <message>
-        <location filename="src/downloadmanager.cpp" line="85"/>
         <source>Continue</source>
         <translation>Continua</translation>
     </message>
     <message>
-        <location filename="src/downloadmanager.cpp" line="86"/>
         <source>Get the full version</source>
         <translation>Compra la versione completa</translation>
     </message>
     <message>
-        <location filename="src/downloadmanager.cpp" line="157"/>
         <source>%1 downloaded in %2</source>
         <translation>%1 scaricato in %2</translation>
     </message>
     <message>
-        <location filename="src/downloadmanager.cpp" line="160"/>
         <source>Download finished</source>
         <translation>Download completato</translation>
     </message>
     <message numerus="yes">
-        <location filename="src/downloadmanager.cpp" line="165"/>
         <source>%n Download(s)</source>
-        <translation><numerusform>Un download</numerusform><numerusform>%n download</numerusform></translation>
+        <translation type="unfinished"><numerusform></numerusform><numerusform></numerusform></translation>
     </message>
 </context>
 <context>
     <name>DownloadSettings</name>
     <message>
-        <location filename="src/downloadsettings.cpp" line="36"/>
         <source>Change location...</source>
         <translation>Cambia destinazione...</translation>
     </message>
     <message>
-        <location filename="src/downloadsettings.cpp" line="69"/>
         <source>Choose the download location</source>
         <translation>Scegli la destinazione dei download</translation>
     </message>
     <message>
-        <location filename="src/downloadsettings.cpp" line="81"/>
         <source>Download location changed.</source>
         <translation>La destinazione dei download è cambiata.</translation>
     </message>
     <message>
-        <location filename="src/downloadsettings.cpp" line="83"/>
         <source>Current downloads will still go in the previous location.</source>
         <translation>I download già in corso andranno comunque nella destinazione precedente.</translation>
     </message>
     <message>
-        <location filename="src/downloadsettings.cpp" line="94"/>
         <source>Downloading to: %1</source>
         <translation>Scarica in: %1</translation>
     </message>
 <context>
     <name>DownloadView</name>
     <message>
-        <location filename="src/downloadview.cpp" line="38"/>
-        <location filename="src/downloadview.h" line="45"/>
         <source>Downloads</source>
         <translation>Download</translation>
     </message>
 </context>
-<context>
-    <name>DownloadWidget</name>
-    <message>
-        <location filename="local/src/updatedialog.cpp" line="60"/>
-        <source>Downloading update...</source>
-        <translation>Download dell&apos;aggiornamento in corso...</translation>
-    </message>
-</context>
 <context>
     <name>Extra</name>
     <message>
-        <location filename="local/src/extra.cpp" line="251"/>
         <source>The executable file has been tempered with, maybe by a virus.</source>
         <translation>L&apos;eseguibile è stato modificato, forse da un virus.</translation>
     </message>
     <message>
-        <location filename="local/src/extra.cpp" line="252"/>
         <source>%1 will not run. Try installing again.</source>
         <translation>%1 non continuerà. Prova ad installarlo di nuovo.</translation>
     </message>
     <message>
-        <location filename="local/src/extra.cpp" line="253"/>
         <source>Quit</source>
         <translation>Esci</translation>
     </message>
     <message>
-        <location filename="local/src/extra.cpp" line="254"/>
         <source>Reinstall</source>
         <translation>Reinstalla</translation>
     </message>
 <context>
     <name>GlobalShortcuts</name>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="36"/>
         <source>Play</source>
         <translation>Play</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="37"/>
         <source>Pause</source>
         <translation>Pausa</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="38"/>
         <source>Play/Pause</source>
         <translation>Play/Pausa</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="39"/>
         <source>Stop</source>
         <translation>Stop</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="40"/>
         <source>Stop playing after current track</source>
         <translation>Ferma al termine del video corrente</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="41"/>
         <source>Next track</source>
         <translation>Prossima traccia</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="42"/>
         <source>Previous track</source>
         <translation>Traccia precedente</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="43"/>
         <source>Increase volume</source>
         <translation>Aumenta il volume</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="44"/>
         <source>Decrease volume</source>
         <translation>Diminuisci il volume</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="45"/>
         <source>Mute</source>
         <translation>Senza audio</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="46"/>
         <source>Seek forward</source>
         <translation>Salta in avanti</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="47"/>
         <source>Seek backward</source>
         <translation>Salta indietro</translation>
     </message>
 <context>
     <name>HomeView</name>
     <message>
-        <location filename="src/homeview.cpp" line="58"/>
         <source>Search</source>
         <translation>Ricerca</translation>
     </message>
     <message>
-        <location filename="src/homeview.cpp" line="60"/>
         <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="65"/>
         <source>Browse</source>
         <translation>Sfoglia</translation>
     </message>
     <message>
-        <location filename="src/homeview.cpp" line="67"/>
         <source>Browse videos by category</source>
         <translation>Sfoglia i video per categoria</translation>
     </message>
     <message>
-        <location filename="src/homeview.cpp" line="71"/>
         <source>Subscriptions</source>
         <translation>Iscrizioni</translation>
     </message>
     <message>
-        <location filename="src/homeview.cpp" line="73"/>
         <source>Channel subscriptions</source>
         <translation>Iscrizioni ai canali</translation>
     </message>
     <message>
-        <location filename="src/homeview.h" line="44"/>
         <source>Make yourself comfortable</source>
         <translation>Mettiti comodo</translation>
     </message>
 <context>
     <name>LoadingWidget</name>
     <message>
-        <location filename="src/loadingwidget.cpp" line="125"/>
         <source>Error</source>
         <translation>Errore</translation>
     </message>
 <context>
     <name>MainWindow</name>
     <message>
-        <location filename="src/mainwindow.cpp" line="291"/>
+        <source>&amp;Window</source>
+        <translation>&amp;Finestra</translation>
+    </message>
+    <message>
+        <source>&amp;Minimize</source>
+        <translation>&amp;Contrai</translation>
+    </message>
+    <message>
         <source>&amp;Stop</source>
         <translation>&amp;Ferma</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="292"/>
         <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="307"/>
+        <source>P&amp;revious</source>
+        <translation>P&amp;recedente</translation>
+    </message>
+    <message>
+        <source>Go back to the previous track</source>
+        <translation>Torna alla traccia precedente</translation>
+    </message>
+    <message>
         <source>S&amp;kip</source>
         <translation>&amp;Salta</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="308"/>
         <source>Skip to the next video</source>
         <translation>Salta al prossimo video</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1134"/>
-        <source>&amp;Pause</source>
-        <translation>&amp;Pausa</translation>
+        <source>&amp;Play</source>
+        <translation>&amp;Play</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1135"/>
-        <source>Pause playback</source>
-        <translation>Metti in pausa</translation>
+        <source>Resume playback</source>
+        <translation>Continua</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="321"/>
         <source>&amp;Full Screen</source>
         <translation>&amp;Schermo intero</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="322"/>
         <source>Go full screen</source>
         <translation>Vai in modalità schermo intero</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="336"/>
+        <source>&amp;Compact Mode</source>
+        <translation>Modalità &amp;compatta</translation>
+    </message>
+    <message>
         <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="349"/>
+        <source>Open the &amp;YouTube Page</source>
+        <translation>Apri la pagina di &amp;YouTube</translation>
+    </message>
+    <message>
         <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="356"/>
+        <source>Copy the YouTube &amp;Link</source>
+        <translation>Copia il &amp;link a YouTube</translation>
+    </message>
+    <message>
         <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="363"/>
+        <source>Copy the Video Stream &amp;URL</source>
+        <translation>Copia la &amp;URL dello stream video</translation>
+    </message>
+    <message>
         <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="370"/>
+        <source>Find Video &amp;Parts</source>
+        <translation>Trova le &amp;parti del video</translation>
+    </message>
+    <message>
         <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="376"/>
         <source>&amp;Remove</source>
         <translation>&amp;Elimina</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="377"/>
         <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="383"/>
         <source>Move &amp;Up</source>
         <translation>Sposta &amp;sopra</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="384"/>
         <source>Move up the selected videos in the playlist</source>
         <translation>Sposta video selezionati verso l&apos;alto</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="390"/>
         <source>Move &amp;Down</source>
         <translation>Sposta so&amp;tto</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="391"/>
         <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="402"/>
+        <source>&amp;Clear Recent Searches</source>
+        <translation>&amp;Cancella le ultime ricerche</translation>
+    </message>
+    <message>
         <source>Clear the search history. Cannot be undone.</source>
         <translation>Cancella le ultime ricerche. L&apos;azione non potrà essere annullata.</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="407"/>
         <source>&amp;Quit</source>
         <translation>&amp;Esci</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="410"/>
         <source>Bye</source>
         <translation>Ciao</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="414"/>
         <source>&amp;Website</source>
         <translation>Sito &amp;web</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="416"/>
         <source>%1 on the Web</source>
         <translation>%1 sul Web</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="422"/>
+        <source>Make a &amp;Donation</source>
+        <translation>Fai una &amp;donazione</translation>
+    </message>
+    <message>
         <source>Please support the continued development of %1</source>
         <translation>Supporta lo sviluppo di %1</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="427"/>
         <source>&amp;About</source>
         <translation>&amp;Informazioni</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="429"/>
         <source>Info about %1</source>
         <translation>Informazioni su %1</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="437"/>
         <source>Search</source>
         <translation>Cerca</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="456"/>
         <source>Mute volume</source>
         <translation>Disattiva l&apos;audio</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="490"/>
-        <location filename="src/mainwindow.cpp" line="1609"/>
+        <source>&amp;Manually Start Playing</source>
+        <translation>Riproduzione &amp;manuale</translation>
+    </message>
+    <message>
+        <source>Manually start playing videos</source>
+        <translation>Inizia a riprodurre i video manualmente</translation>
+    </message>
+    <message>
         <source>&amp;Downloads</source>
         <translation>&amp;Download</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="491"/>
         <source>Show details about video downloads</source>
         <translation>Mostra informazioni sui download</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="499"/>
         <source>&amp;Download</source>
         <translation>&amp;Download</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="500"/>
         <source>Download the current video</source>
         <translation>Scarica il video corrente</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="510"/>
         <source>Take &amp;Snapshot</source>
         <translation>Scatta &amp;istantanea</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="517"/>
         <source>&amp;Subscribe to Channel</source>
         <translation>&amp;Iscriviti al canale</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="525"/>
         <source>Share the current video using %1</source>
         <translation>Condividi il video corrente usando %1</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="545"/>
         <source>&amp;Email</source>
         <translation>&amp;Email</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="546"/>
         <source>Email</source>
         <translation>Email</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="551"/>
         <source>&amp;Close</source>
         <translation>&amp;Chiudi</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="561"/>
         <source>&amp;Float on Top</source>
         <translation>&amp;Fluttua in alto</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="566"/>
         <source>&amp;Adjust Window Size</source>
         <translation>&amp;Adatta le dimensioni della finestra</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="571"/>
         <source>&amp;Stop After This Video</source>
         <translation>&amp;Ferma dopo questo video</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="578"/>
         <source>&amp;Report an Issue...</source>
         <translation>&amp;Segnala un problema...</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="582"/>
         <source>&amp;Refine Search...</source>
         <translation>&amp;Raffina la ricerca...</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="594"/>
         <source>More...</source>
         <translation>Altro...</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="597"/>
         <source>&amp;Related Videos</source>
         <translation>Video &amp;correlati</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="599"/>
         <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="605"/>
         <source>Open in &amp;Browser...</source>
         <translation>Apri nel &amp;browser...</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="612"/>
-        <source>&amp;Love %1? Rate it!</source>
-        <translation>Ti piace %1?</translation>
+        <source>Restricted Mode</source>
+        <translation>Modalità con restrizioni</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="633"/>
-        <source>&amp;Application</source>
-        <translation>&amp;Applicazione</translation>
+        <source>Hide videos that may contain inappropriate content</source>
+        <translation>Nascondi contenuti inappropriati</translation>
+    </message>
+    <message>
+        <source>&amp;Love %1? Rate it!</source>
+        <translation>Ti piace %1?</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="618"/>
         <source>Buy %1...</source>
         <translation>Compra %1...</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="647"/>
+        <source>&amp;Application</source>
+        <translation>&amp;Applicazione</translation>
+    </message>
+    <message>
         <source>&amp;Playback</source>
         <translation>&amp;Riproduzione</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="661"/>
         <source>&amp;Playlist</source>
         <translation>&amp;Playlist</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="670"/>
         <source>&amp;Video</source>
         <translation>&amp;Video</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="686"/>
-        <source>&amp;View</source>
-        <translation>&amp;Visualizza</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="695"/>
         <source>&amp;Share</source>
         <translation>&amp;Condividi</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="709"/>
+        <source>&amp;View</source>
+        <translation>&amp;Visualizza</translation>
+    </message>
+    <message>
         <source>&amp;Help</source>
         <translation>&amp;Aiuto</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="751"/>
         <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="1021"/>
-        <location filename="src/mainwindow.cpp" line="1027"/>
+        <source>Choose your content location</source>
+        <translation>Scegli la località dei contenuti</translation>
+    </message>
+    <message>
         <source>Opening %1</source>
         <translation>Apertura di %1</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1080"/>
         <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="1081"/>
         <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="1086"/>
         <source>Close and cancel download</source>
         <translation>Chiudi e annulla i download</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1087"/>
         <source>Wait for download to finish</source>
         <translation>Aspetta che i download siano completi</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1158"/>
-        <source>&amp;Loading...</source>
-        <translation>&amp;Caricamento...</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="1264"/>
-        <source>Leave &amp;Full Screen</source>
-        <translation>Lascia lo &amp;schermo intero</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="1718"/>
-        <source>%1 version %2 is now available.</source>
-        <translation>E&apos; disponibile %1 versione %2</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="1722"/>
-        <source>Remind me later</source>
-        <translation>Ricordamelo più tardi</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="1723"/>
-        <source>Update</source>
-        <translation>Aggiorna</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="1127"/>
         <source>Error: %1</source>
         <translation>Errore: %1</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="300"/>
-        <source>P&amp;revious</source>
-        <translation>P&amp;recedente</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="301"/>
-        <source>Go back to the previous track</source>
-        <translation>Torna alla traccia precedente</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="335"/>
-        <source>&amp;Compact Mode</source>
-        <translation>Modalità &amp;compatta</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="348"/>
-        <source>Open the &amp;YouTube Page</source>
-        <translation>Apri la pagina di &amp;YouTube</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="355"/>
-        <source>Copy the YouTube &amp;Link</source>
-        <translation>Copia il &amp;link a YouTube</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="362"/>
-        <source>Copy the Video Stream &amp;URL</source>
-        <translation>Copia la &amp;URL dello stream video</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="369"/>
-        <source>Find Video &amp;Parts</source>
-        <translation>Trova le &amp;parti del video</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="397"/>
-        <source>&amp;Clear Recent Searches</source>
-        <translation>&amp;Cancella le ultime ricerche</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="421"/>
-        <source>Make a &amp;Donation</source>
-        <translation>Fai una &amp;donazione</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="483"/>
-        <source>&amp;Manually Start Playing</source>
-        <translation>Riproduzione &amp;manuale</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="484"/>
-        <source>Manually start playing videos</source>
-        <translation>Inizia a riprodurre i video manualmente</translation>
+        <source>&amp;Pause</source>
+        <translation>&amp;Pausa</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="847"/>
-        <source>Choose your content location</source>
-        <translation>Scegli la località dei contenuti</translation>
+        <source>Pause playback</source>
+        <translation>Metti in pausa</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="314"/>
-        <location filename="src/mainwindow.cpp" line="1142"/>
-        <location filename="src/mainwindow.cpp" line="1150"/>
-        <source>&amp;Play</source>
-        <translation>&amp;Play</translation>
+        <source>&amp;Loading...</source>
+        <translation>&amp;Caricamento...</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="315"/>
-        <location filename="src/mainwindow.cpp" line="1143"/>
-        <location filename="src/mainwindow.cpp" line="1151"/>
-        <source>Resume playback</source>
-        <translation>Continua</translation>
+        <source>Leave &amp;Full Screen</source>
+        <translation>Lascia lo &amp;schermo intero</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1437"/>
         <source>Remaining time: %1</source>
         <translation>Tempo rimanente: %1</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1528"/>
         <source>Volume at %1%</source>
         <translation>Volume al %1%</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1534"/>
         <source>Volume is muted</source>
         <translation>Audio disattivato</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1537"/>
         <source>Volume is unmuted</source>
         <translation>Audio attivato</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1548"/>
         <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="1595"/>
         <source>Your privacy is now safe</source>
         <translation>La tua privacy è al sicuro</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1610"/>
         <source>Downloads complete</source>
         <translation>I download sono completi</translation>
     </message>
+    <message>
+        <source>%1 version %2 is now available.</source>
+        <translation>E&apos; disponibile %1 versione %2</translation>
+    </message>
+    <message>
+        <source>Remind me later</source>
+        <translation>Ricordamelo più tardi</translation>
+    </message>
+    <message>
+        <source>Update</source>
+        <translation>Aggiorna</translation>
+    </message>
 </context>
 <context>
     <name>MediaView</name>
     <message>
-        <location filename="src/mediaview.cpp" line="702"/>
         <source>You can now paste the YouTube link into another application</source>
         <translation>Ora puoi incollare il link a YouTube in un&apos;altra applicazione</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="710"/>
         <source>You can now paste the video stream URL into another application</source>
         <translation>Ora puoi incollare la URL dello stream in un&apos;altra applicazione</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="711"/>
         <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="800"/>
         <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="801"/>
         <source>It allows you to test the application and see if it works for you.</source>
         <translation>Ti permette di testare l&apos;applicazione e verificare che funzioni sul tuo computer.</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="833"/>
+        <source>Get the full version</source>
+        <translation>Compra la versione completa</translation>
+    </message>
+    <message>
         <source>Continue</source>
         <translation>Continua</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="988"/>
+        <source>Downloading %1</source>
+        <translation>Scarica in: %1</translation>
+    </message>
+    <message>
         <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="1001"/>
         <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="1003"/>
         <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="1096"/>
         <source>Sent from %1</source>
         <translation>Inviato da %1</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="1128"/>
         <source>Unsubscribe from %1</source>
         <translation>Annulla iscrizione a %1</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="1132"/>
         <source>Subscribe to %1</source>
         <translation>Iscriviti a %1</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="1166"/>
         <source>Unsubscribed from %1</source>
         <translation>Iscrizione a %1 annullata</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="1169"/>
         <source>Subscribed to %1</source>
         <translation>Iscritto a %1</translation>
     </message>
-    <message>
-        <location filename="src/mediaview.cpp" line="808"/>
-        <source>Get the full version</source>
-        <translation>Compra la versione completa</translation>
-    </message>
-    <message>
-        <location filename="src/mediaview.cpp" line="847"/>
-        <source>Downloading %1</source>
-        <translation>Scarica in: %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>Una nuova versione di %1 è disponibile!</translation>
     </message>
     <message>
-        <location filename="local/src/updatedialog.cpp" line="28"/>
         <source>%1 %2 is now available. You have %3.</source>
         <translation>%1 %2 è ora disponibile. Tu hai la %3.</translation>
     </message>
     <message>
-        <location filename="local/src/updatedialog.cpp" line="33"/>
         <source>Would you like to download it now?</source>
         <translation>Vuoi scaricare ora?</translation>
     </message>
     <message>
-        <location filename="local/src/updatedialog.cpp" line="39"/>
         <source>Skip This Version</source>
         <translation>Salta questa versione</translation>
     </message>
     <message>
-        <location filename="local/src/updatedialog.cpp" line="43"/>
         <source>Remind Me Later</source>
         <translation>Ricordamelo più tardi</translation>
     </message>
     <message>
-        <location filename="local/src/updatedialog.cpp" line="47"/>
         <source>Install Update</source>
         <translation>Installa aggiornamento</translation>
     </message>
 <context>
     <name>PasteLineEdit</name>
     <message>
-        <location filename="local/src/pastelineedit.cpp" line="6"/>
         <source>Paste</source>
         <translation>Incolla</translation>
     </message>
 <context>
     <name>PlaylistItemDelegate</name>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="209"/>
         <source>%1 views</source>
         <translation>%1 visualizzazioni</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="309"/>
         <source>%1 of %2 (%3) — %4</source>
         <translation>%1 di %2 (%3) — %4</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="316"/>
         <source>Preparing</source>
         <translation>In preparazione</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="318"/>
         <source>Failed</source>
         <translation>Fallito</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="320"/>
         <source>Completed</source>
         <translation>Completato</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="322"/>
         <source>Stopped</source>
         <translation>Fermo</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="358"/>
         <source>Stop downloading</source>
         <translation>Interrompi il download</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="368"/>
         <source>Show in %1</source>
         <translation>Mostra nel %1</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="370"/>
         <source>Open parent folder</source>
         <translation>Mostra nella cartella</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="379"/>
         <source>Restart downloading</source>
         <translation>Prova a scaricare di nuovo</translation>
     </message>
 <context>
     <name>PlaylistModel</name>
     <message>
-        <location filename="src/playlistmodel.cpp" line="70"/>
         <source>Searching...</source>
         <translation>Ricerca...</translation>
     </message>
     <message>
-        <location filename="src/playlistmodel.cpp" line="71"/>
         <source>Show %1 More</source>
         <translation>Mostra altri %1</translation>
     </message>
     <message>
-        <location filename="src/playlistmodel.cpp" line="72"/>
         <source>No videos</source>
         <translation>Nessun video</translation>
     </message>
     <message>
-        <location filename="src/playlistmodel.cpp" line="73"/>
         <source>No more videos</source>
         <translation>Nessun altro video</translation>
     </message>
 <context>
     <name>RefineSearchWidget</name>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="49"/>
         <source>Sort by</source>
         <translation>Ordina per</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="53"/>
         <source>Relevance</source>
         <translation>Pertinenza</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="54"/>
-        <location filename="src/refinesearchwidget.cpp" line="69"/>
         <source>Date</source>
         <translation>Data</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="55"/>
         <source>View Count</source>
         <translation>Visualizzazioni</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="56"/>
         <source>Rating</source>
         <translation>Voto</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="73"/>
         <source>Anytime</source>
         <translation>Qualsiasi</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="74"/>
         <source>Today</source>
         <translation>Oggi</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="75"/>
         <source>7 Days</source>
         <translation>7 giorni</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="76"/>
         <source>30 Days</source>
         <translation>30 giorni</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="89"/>
         <source>Duration</source>
         <translation>Durata</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="93"/>
-        <location filename="src/refinesearchwidget.cpp" line="119"/>
         <source>All</source>
         <translation>Tutti</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="94"/>
         <source>Short</source>
         <translation>Breve</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="95"/>
         <source>Medium</source>
         <translation>Media</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="96"/>
         <source>Long</source>
         <translation>Lunga</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="99"/>
         <source>Less than 4 minutes</source>
         <translation>Meno di 4 minuti</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="100"/>
         <source>Between 4 and 20 minutes</source>
         <translation>Tra i 4 e i 20 minuti</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="101"/>
         <source>Longer than 20 minutes</source>
         <translation>Oltre i 20 minuti</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="115"/>
         <source>Quality</source>
         <translation>Qualità</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="120"/>
         <source>High Definition</source>
         <translation>Alta definizione</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="123"/>
         <source>720p or higher</source>
         <translation>720p o maggiore</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="136"/>
         <source>Done</source>
         <translation>Fatto</translation>
     </message>
 <context>
     <name>RegionsView</name>
     <message>
-        <location filename="src/regionsview.cpp" line="39"/>
         <source>Done</source>
         <translation>Fatto</translation>
     </message>
 <context>
     <name>SearchLineEdit</name>
     <message>
-        <location filename="src/searchlineedit.cpp" line="55"/>
         <source>Search</source>
         <translation>Cerca</translation>
     </message>
 <context>
     <name>SearchView</name>
     <message>
-        <location filename="src/searchview.cpp" line="83"/>
         <source>Welcome to &lt;a href=&apos;%1&apos;&gt;%2&lt;/a&gt;,</source>
         <translation>Benvenuto su &lt;a href=&quot;%1&quot;&gt;%2&lt;/a&gt;,</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="200"/>
-        <source>Get the full version</source>
-        <translation>Compra la versione completa</translation>
-    </message>
-    <message>
-        <location filename="src/searchview.cpp" line="110"/>
         <source>Enter</source>
         <extracomment>&quot;Enter&quot;, as in &quot;type&quot;. The whole phrase says: &quot;Enter a keyword to start watching videos&quot;</extracomment>
         <translation>Scrivi</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="117"/>
         <source>a keyword</source>
         <translation>una parola chiave</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="118"/>
         <source>a channel</source>
         <translation>un canale</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="125"/>
         <source>to start watching videos.</source>
         <translation>per iniziare a guardare i video.</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="156"/>
         <source>Watch</source>
         <translation>Guarda</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="174"/>
         <source>Recent keywords</source>
         <translation>Ultime ricerche</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="186"/>
         <source>Recent channels</source>
         <translation>Ultimi canali</translation>
     </message>
+    <message>
+        <source>Get the full version</source>
+        <translation>Compra la versione completa</translation>
+    </message>
 </context>
 <context>
     <name>SidebarHeader</name>
     <message>
-        <location filename="src/sidebarheader.cpp" line="38"/>
-        <location filename="src/sidebarheader.cpp" line="45"/>
         <source>&amp;Back</source>
         <translation>&amp;Indietro</translation>
     </message>
     <message>
-        <location filename="src/sidebarheader.cpp" line="76"/>
         <source>Forward to %1</source>
         <translation>Avanza a %1</translation>
     </message>
     <message>
-        <location filename="src/sidebarheader.cpp" line="89"/>
         <source>Back to %1</source>
         <translation>Torna a %1</translation>
     </message>
 <context>
     <name>SidebarWidget</name>
     <message>
-        <location filename="src/sidebarwidget.cpp" line="68"/>
         <source>Refine Search</source>
         <translation>Raffina la ricerca</translation>
     </message>
     <message>
-        <location filename="src/sidebarwidget.cpp" line="167"/>
         <source>Did you mean: %1</source>
         <translation>Forse cercavi: %1</translation>
     </message>
 <context>
     <name>SnapshotSettings</name>
     <message>
-        <location filename="src/snapshotsettings.cpp" line="47"/>
         <source>Change location...</source>
         <translation>Cambia destinazione...</translation>
     </message>
     <message>
-        <location filename="src/snapshotsettings.cpp" line="64"/>
         <source>Snapshot saved to %1</source>
         <translation>Istantanea salvata in %1</translation>
     </message>
     <message>
-        <location filename="src/snapshotsettings.cpp" line="117"/>
         <source>Snapshots location changed.</source>
         <translation>La destinazione delle istantanee è cambiata.</translation>
     </message>
 <context>
     <name>StandardFeedsView</name>
     <message>
-        <location filename="src/standardfeedsview.cpp" line="107"/>
         <source>Most Popular</source>
         <translation>Più popolari</translation>
     </message>
 </context>
+<context>
+    <name>UpdateDialog</name>
+    <message>
+        <source>Downloading update...</source>
+        <translation>Download dell&apos;aggiornamento in corso...</translation>
+    </message>
+    <message>
+        <source>Downloading %1...</source>
+        <translation>Download di %1</translation>
+    </message>
+</context>
 <context>
     <name>Video</name>
     <message>
-        <location filename="src/video.cpp" line="287"/>
         <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="292"/>
-        <source>Network error: %1 for %2</source>
-        <translation>Errore di rete: %1 per %2</translation>
-    </message>
 </context>
 <context>
     <name>YTRegions</name>
     <message>
-        <location filename="src/ytregions.cpp" line="28"/>
         <source>Algeria</source>
         <translation>Algeria</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="29"/>
         <source>Argentina</source>
         <translation>Argentina</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="30"/>
         <source>Australia</source>
         <translation>Australia</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="31"/>
         <source>Belgium</source>
         <translation>Belgio</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="32"/>
         <source>Brazil</source>
         <translation>Brasile</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="33"/>
         <source>Canada</source>
         <translation>Canada</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="34"/>
         <source>Chile</source>
         <translation>Cile</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="35"/>
         <source>Colombia</source>
         <translation>Colombia</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="36"/>
         <source>Czech Republic</source>
         <translation>Repubblica Ceca</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="37"/>
         <source>Egypt</source>
         <translation>Egitto</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="38"/>
         <source>France</source>
         <translation>Francia</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="39"/>
         <source>Germany</source>
         <translation>Germania</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="40"/>
         <source>Ghana</source>
         <translation>Ghana</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="41"/>
         <source>Greece</source>
         <translation>Grecia</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="42"/>
         <source>Hong Kong</source>
         <translation>Hong Kong</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="43"/>
         <source>Hungary</source>
         <translation>Ungheria</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="44"/>
         <source>India</source>
         <translation>India</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="45"/>
         <source>Indonesia</source>
         <translation>Indonesia</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="46"/>
         <source>Ireland</source>
         <translation>Irlanda</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="47"/>
         <source>Israel</source>
         <translation>Israele</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="48"/>
         <source>Italy</source>
         <translation>Italia</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="49"/>
         <source>Japan</source>
         <translation>Giappone</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="50"/>
         <source>Jordan</source>
         <translation>Giordania</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="51"/>
         <source>Kenya</source>
         <translation>Kenya</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="52"/>
         <source>Malaysia</source>
         <translation>Malaysia</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="53"/>
         <source>Mexico</source>
         <translation>Messico</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="54"/>
         <source>Morocco</source>
         <translation>Marocco</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="55"/>
         <source>Netherlands</source>
         <translation>Olanda</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="56"/>
         <source>New Zealand</source>
         <translation>Nuova Zelanda</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="57"/>
         <source>Nigeria</source>
         <translation>Nigeria</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="58"/>
         <source>Peru</source>
         <translation>Perù</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="59"/>
         <source>Philippines</source>
         <translation>Filippine</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="60"/>
         <source>Poland</source>
         <translation>Polonia</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="61"/>
         <source>Russia</source>
         <translation>Russia</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="62"/>
         <source>Saudi Arabia</source>
         <translation>Arabia Saudita</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="63"/>
         <source>Singapore</source>
         <translation>Singapore</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="64"/>
         <source>South Africa</source>
         <translation>Sudafrica</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="65"/>
         <source>South Korea</source>
         <translation>Corea del Sud</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="66"/>
         <source>Spain</source>
         <translation>Spagna</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="67"/>
         <source>Sweden</source>
         <translation>Svezia</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="68"/>
         <source>Taiwan</source>
         <translation>Taiwan</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="69"/>
         <source>Tunisia</source>
         <translation>Tunisia</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="70"/>
         <source>Turkey</source>
         <translation>Turchia</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="71"/>
         <source>Uganda</source>
         <translation>Uganda</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="72"/>
         <source>United Arab Emirates</source>
         <translation>Emirati Arabi Uniti</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="73"/>
         <source>United Kingdom</source>
         <translation>Regno Unito</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="74"/>
         <source>Yemen</source>
         <translation>Yemen</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="148"/>
         <source>Worldwide</source>
         <translation>Tutto il mondo</translation>
     </message>
index 4509e282657c20ccc93abe080bbda23adcf64095..40a6fc7a41a5dd90d413a46ddd2a6daa49cf9d2f 100644 (file)
@@ -2,67 +2,42 @@
 <context>
     <name>AboutView</name>
     <message>
-        <location filename="src/aboutview.cpp" line="58"/>
         <source>There&apos;s life outside the browser!</source>
         <translation>Webブラウザなしでも大丈夫!</translation>
     </message>
     <message>
-        <location filename="src/aboutview.cpp" line="59"/>
         <source>Version %1</source>
         <translation>バージョン %1</translation>
     </message>
     <message>
-        <location filename="src/aboutview.cpp" line="64"/>
         <source>Licensed to: %1</source>
         <translation>ライセンス: 1</translation>
     </message>
     <message>
-        <location filename="src/aboutview.cpp" line="68"/>
         <source>%1 is Free Software but its development takes precious time.</source>
         <translation>%1はフリーソフトウェアですが、開発には貴重な時間が費やされています。</translation>
     </message>
     <message>
-        <location filename="src/aboutview.cpp" line="69"/>
         <source>Please &lt;a href=&apos;%1&apos;&gt;donate&lt;/a&gt; to support the continued development of %2.</source>
         <translation>継続的な開発を&lt;a href=&apos;%1&apos;&gt;支援する&lt;/a&gt;には%2に寄付してください。</translation>
     </message>
     <message>
-        <location filename="src/aboutview.cpp" line="73"/>
-        <source>You may want to try my other apps as well:</source>
-        <translation>私が作成した他のアプリケーションはこちら:</translation>
-    </message>
-    <message>
-        <location filename="src/aboutview.cpp" line="76"/>
-        <source>%1, a YouTube music player</source>
-        <translation>%1はYoutube音楽プレイヤーです</translation>
-    </message>
-    <message>
-        <location filename="src/aboutview.cpp" line="80"/>
-        <source>%1, a music player</source>
-        <translation>%1は音楽プレイヤーです</translation>
-    </message>
-    <message>
-        <location filename="src/aboutview.cpp" line="86"/>
         <source>Translate %1 to your native language using %2</source>
         <translation>%2を使って、%1をあなたの言語に翻訳してください</translation>
     </message>
     <message>
-        <location filename="src/aboutview.cpp" line="91"/>
         <source>Icon designed by %1.</source>
         <translation>アイコンは%1さんのデザインです。</translation>
     </message>
     <message>
-        <location filename="src/aboutview.cpp" line="95"/>
         <source>Released under the &lt;a href=&apos;%1&apos;&gt;GNU General Public License&lt;/a&gt;</source>
         <translation>&lt;a href=&apos;%1&apos;&gt;GNU General Public License&lt;/a&gt;で配布されます</translation>
     </message>
     <message>
-        <location filename="src/aboutview.cpp" line="110"/>
         <source>&amp;Close</source>
         <translation>閉じる(&amp;C)</translation>
     </message>
     <message>
-        <location filename="src/aboutview.h" line="40"/>
         <source>About</source>
         <translation>Minitubeについて</translation>
     </message>
 <context>
     <name>ActivationDialog</name>
     <message>
-        <location filename="local/src/activationdialog.cpp" line="17"/>
         <source>Enter your License Details</source>
         <translation>ライセンスコードを入力してください</translation>
     </message>
     <message>
-        <location filename="local/src/activationdialog.cpp" line="29"/>
         <source>&amp;Email:</source>
         <translation>メール(&amp;E):</translation>
     </message>
     <message>
-        <location filename="local/src/activationdialog.cpp" line="35"/>
         <source>&amp;Code:</source>
         <translation>コード(&amp;C):</translation>
     </message>
 <context>
     <name>ActivationView</name>
     <message>
-        <location filename="local/src/activationview.cpp" line="47"/>
         <source>Please license %1</source>
         <translation>%1のライセンスを取得してください</translation>
     </message>
     <message>
-        <location filename="local/src/activationview.cpp" line="51"/>
         <source>This demo has expired.</source>
         <translation>試用版の期限が切れました。</translation>
     </message>
     <message>
-        <location filename="local/src/activationview.cpp" line="53"/>
         <source>The full version allows you to watch videos without interruptions.</source>
-        <oldsource>The full version allows you to download videos longer than %1 minutes and to watch videos without interruptions.</oldsource>
         <translation>製品版では、快適に動画を視聴することができます。</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>
     </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>
     </message>
     <message>
-        <location filename="local/src/activationview.cpp" line="70"/>
         <source>Use Demo</source>
         <translation>試用版を使用</translation>
     </message>
     <message>
-        <location filename="local/src/activationview.cpp" line="77"/>
         <source>Enter License</source>
         <translation>ライセンスを入力</translation>
     </message>
     <message>
-        <location filename="local/src/activationview.cpp" line="85"/>
         <source>Buy License</source>
         <translation>ライセンスを購入</translation>
     </message>
 </context>
+<context>
+    <name>AppWidget</name>
+    <message>
+        <source>Download</source>
+        <translation type="unfinished"/>
+    </message>
+</context>
 <context>
     <name>ChannelAggregator</name>
     <message>
-        <location filename="src/channelaggregator.cpp" line="183"/>
         <source>By %1</source>
         <translation>%1による</translation>
     </message>
     <message numerus="yes">
-        <location filename="src/channelaggregator.cpp" line="185"/>
         <source>You have %n new video(s)</source>
-        <translation><numerusform>%n件の新しい動画があります</numerusform></translation>
+        <translation type="unfinished"><numerusform></numerusform></translation>
     </message>
 </context>
 <context>
     <name>ChannelItemDelegate</name>
     <message>
-        <location filename="src/channelitemdelegate.cpp" line="67"/>
         <source>All Videos</source>
         <translation>すべてのチャンネル</translation>
     </message>
     <message>
-        <location filename="src/channelitemdelegate.cpp" line="85"/>
         <source>Unwatched Videos</source>
         <translation>未視聴の動画</translation>
     </message>
 <context>
     <name>ChannelView</name>
     <message>
-        <location filename="src/channelview.cpp" line="151"/>
-        <source>Mark all as watched</source>
-        <translation>視聴済みの動画をマーク</translation>
-    </message>
-    <message>
-        <location filename="src/channelview.cpp" line="159"/>
-        <source>Show Updated</source>
-        <translation>動画の更新を確認</translation>
-    </message>
-    <message>
-        <location filename="src/channelview.cpp" line="103"/>
         <source>Name</source>
         <translation>名前順</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="110"/>
         <source>Last Updated</source>
         <translation>更新日が新しい順</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="117"/>
         <source>Last Added</source>
         <translation>購読日が新しい順</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="124"/>
         <source>Last Watched</source>
         <translation>視聴日が新しい順</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="131"/>
         <source>Most Watched</source>
         <translation>視聴回数が多い順</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="139"/>
         <source>Sort by</source>
         <translation>並び替え</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="222"/>
+        <source>Mark all as watched</source>
+        <translation>視聴済みの動画をマーク</translation>
+    </message>
+    <message>
+        <source>Show Updated</source>
+        <translation>動画の更新を確認</translation>
+    </message>
+    <message>
         <source>All Videos</source>
         <translation>全ての動画</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="226"/>
         <source>Unwatched Videos</source>
         <translation>未視聴の動画</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="244"/>
         <source>Mark as Watched</source>
         <translation>見たものをマーク</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="257"/>
         <source>Unsubscribe</source>
         <translation>購読を解除</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="270"/>
         <source>There are no updated subscriptions at this time.</source>
         <translation>購読したチャンネルに更新はありません。</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="272"/>
         <source>You have no subscriptions. Use the star symbol to subscribe to channels.</source>
         <translation>購読済みのものがありません。チャンネルを購読するには星マークをクリックします。</translation>
     </message>
 <context>
     <name>ClearButton</name>
     <message>
-        <location filename="src/exlineedit.cpp" line="6"/>
         <source>Clear</source>
         <translation>クリア</translation>
     </message>
 <context>
     <name>DataUtils</name>
     <message>
-        <location filename="src/datautils.cpp" line="88"/>
         <source>Just now</source>
         <translation>たった今</translation>
     </message>
     <message numerus="yes">
-        <location filename="src/datautils.cpp" line="90"/>
-        <source>%n minute(s) ago</source>
-        <translation><numerusform>%n分前</numerusform></translation>
-    </message>
-    <message numerus="yes">
-        <location filename="src/datautils.cpp" line="92"/>
         <source>%n hour(s) ago</source>
-        <translation><numerusform>%n時間前</numerusform></translation>
+        <translation type="unfinished"><numerusform></numerusform></translation>
     </message>
     <message numerus="yes">
-        <location filename="src/datautils.cpp" line="94"/>
         <source>%n day(s) ago</source>
-        <translation><numerusform>%n日前</numerusform></translation>
+        <translation type="unfinished"><numerusform></numerusform></translation>
     </message>
     <message numerus="yes">
-        <location filename="src/datautils.cpp" line="96"/>
         <source>%n weeks(s) ago</source>
-        <translation><numerusform>%n週間前</numerusform></translation>
+        <translation type="unfinished"><numerusform></numerusform></translation>
     </message>
     <message numerus="yes">
-        <location filename="src/datautils.cpp" line="98"/>
         <source>%n month(s) ago</source>
-        <translation><numerusform>%nヶ月前</numerusform></translation>
+        <translation type="unfinished"><numerusform></numerusform></translation>
     </message>
 </context>
 <context>
     <name>DownloadItem</name>
     <message>
-        <location filename="src/downloaditem.cpp" line="406"/>
         <source>bytes</source>
         <translation>Bytes</translation>
     </message>
     <message>
-        <location filename="src/downloaditem.cpp" line="409"/>
         <source>KB</source>
         <translation>KB</translation>
     </message>
     <message>
-        <location filename="src/downloaditem.cpp" line="412"/>
         <source>MB</source>
         <translation>MB</translation>
     </message>
     <message>
-        <location filename="src/downloaditem.cpp" line="421"/>
         <source>bytes/sec</source>
         <translation>bytes/秒</translation>
     </message>
     <message>
-        <location filename="src/downloaditem.cpp" line="424"/>
         <source>KB/sec</source>
         <translation>KB/秒</translation>
     </message>
     <message>
-        <location filename="src/downloaditem.cpp" line="427"/>
         <source>MB/sec</source>
         <translation>MB/秒</translation>
     </message>
     <message>
-        <location filename="src/downloaditem.cpp" line="433"/>
         <source>seconds</source>
         <translation>秒</translation>
     </message>
     <message>
-        <location filename="src/downloaditem.cpp" line="436"/>
         <source>minutes</source>
         <translation>分</translation>
     </message>
     <message>
-        <location filename="src/downloaditem.cpp" line="439"/>
         <source>%4 %5 remaining</source>
         <translation>残り %4 %5</translation>
     </message>
 <context>
     <name>DownloadManager</name>
     <message>
-        <location filename="src/downloadmanager.cpp" line="77"/>
         <source>This is just the demo version of %1.</source>
         <translation>これは%1 の試用版です。</translation>
     </message>
     <message>
-        <location filename="src/downloadmanager.cpp" line="79"/>
         <source>It can only download videos shorter than %1 minutes so you can test the download functionality.</source>
         <translation>動画を%1分程度でダウンロードできる機能を試すことができます。</translation>
     </message>
     <message>
-        <location filename="src/downloadmanager.cpp" line="85"/>
         <source>Continue</source>
         <translation>続ける</translation>
     </message>
     <message>
-        <location filename="src/downloadmanager.cpp" line="86"/>
         <source>Get the full version</source>
         <translation>製品版を入手する</translation>
     </message>
     <message>
-        <location filename="src/downloadmanager.cpp" line="157"/>
         <source>%1 downloaded in %2</source>
         <translation>%1を%2にダウンロード中</translation>
     </message>
     <message>
-        <location filename="src/downloadmanager.cpp" line="160"/>
         <source>Download finished</source>
         <translation>ダウンロード完了</translation>
     </message>
     <message numerus="yes">
-        <location filename="src/downloadmanager.cpp" line="165"/>
         <source>%n Download(s)</source>
-        <translation><numerusform>%n件のダウンロード</numerusform></translation>
+        <translation type="unfinished"><numerusform></numerusform></translation>
     </message>
 </context>
 <context>
     <name>DownloadSettings</name>
     <message>
-        <location filename="src/downloadsettings.cpp" line="36"/>
         <source>Change location...</source>
         <translation>場所を変更...</translation>
     </message>
     <message>
-        <location filename="src/downloadsettings.cpp" line="69"/>
         <source>Choose the download location</source>
         <translation>ダウンロード場所を選択</translation>
     </message>
     <message>
-        <location filename="src/downloadsettings.cpp" line="81"/>
         <source>Download location changed.</source>
         <translation>ダウンロード場所を変更しました。</translation>
     </message>
     <message>
-        <location filename="src/downloadsettings.cpp" line="83"/>
         <source>Current downloads will still go in the previous location.</source>
         <translation>現在ダウンロードしているファイルは移動されます。</translation>
     </message>
     <message>
-        <location filename="src/downloadsettings.cpp" line="94"/>
         <source>Downloading to: %1</source>
         <translation>%1にダウンロード中</translation>
     </message>
 <context>
     <name>DownloadView</name>
     <message>
-        <location filename="src/downloadview.cpp" line="38"/>
-        <location filename="src/downloadview.h" line="45"/>
         <source>Downloads</source>
         <translation>ダウンロード</translation>
     </message>
 </context>
-<context>
-    <name>DownloadWidget</name>
-    <message>
-        <location filename="local/src/updatedialog.cpp" line="60"/>
-        <source>Downloading update...</source>
-        <translation>アップデートをダウンロード中...</translation>
-    </message>
-</context>
 <context>
     <name>Extra</name>
     <message>
-        <location filename="local/src/extra.cpp" line="251"/>
         <source>The executable file has been tempered with, maybe by a virus.</source>
         <translation>実行ファイルがウイルスによって置き換えられた可能性があります。</translation>
     </message>
     <message>
-        <location filename="local/src/extra.cpp" line="252"/>
         <source>%1 will not run. Try installing again.</source>
         <translation>%1は実行されません。再インストールしてください。</translation>
     </message>
     <message>
-        <location filename="local/src/extra.cpp" line="253"/>
         <source>Quit</source>
         <translation>終了</translation>
     </message>
     <message>
-        <location filename="local/src/extra.cpp" line="254"/>
         <source>Reinstall</source>
         <translation>再インストール</translation>
     </message>
 <context>
     <name>GlobalShortcuts</name>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="36"/>
         <source>Play</source>
         <translation>再生</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="37"/>
         <source>Pause</source>
         <translation>一時停止</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="38"/>
         <source>Play/Pause</source>
         <translation>再生/一時停止</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="39"/>
         <source>Stop</source>
         <translation>停止</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="40"/>
         <source>Stop playing after current track</source>
         <translation>現在の曲が終わったら停止</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="41"/>
         <source>Next track</source>
         <translation>次の曲</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="42"/>
         <source>Previous track</source>
         <translation>前の曲</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="43"/>
         <source>Increase volume</source>
         <translation>音量を上げる</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="44"/>
         <source>Decrease volume</source>
         <translation>音量を下げる</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="45"/>
         <source>Mute</source>
         <translation>ミュート</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="46"/>
         <source>Seek forward</source>
         <translation>後方へ</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="47"/>
         <source>Seek backward</source>
         <translation>前方へ</translation>
     </message>
 <context>
     <name>HomeView</name>
     <message>
-        <location filename="src/homeview.cpp" line="58"/>
         <source>Search</source>
         <translation>検索</translation>
     </message>
     <message>
-        <location filename="src/homeview.cpp" line="60"/>
         <source>Find videos and channels by keyword</source>
         <translation>キーワードで動画とチャンネルを検索します</translation>
     </message>
     <message>
-        <location filename="src/homeview.cpp" line="65"/>
         <source>Browse</source>
         <translation>カテゴリ</translation>
     </message>
     <message>
-        <location filename="src/homeview.cpp" line="67"/>
         <source>Browse videos by category</source>
         <translation>カテゴリ別に動画を参照します</translation>
     </message>
     <message>
-        <location filename="src/homeview.cpp" line="71"/>
         <source>Subscriptions</source>
         <translation>購読</translation>
     </message>
     <message>
-        <location filename="src/homeview.cpp" line="73"/>
         <source>Channel subscriptions</source>
         <translation>購読したチャンネルを視聴します</translation>
     </message>
     <message>
-        <location filename="src/homeview.h" line="44"/>
         <source>Make yourself comfortable</source>
         <translation>さあリラックスしましょう</translation>
     </message>
 <context>
     <name>LoadingWidget</name>
     <message>
-        <location filename="src/loadingwidget.cpp" line="125"/>
         <source>Error</source>
         <translation>エラー</translation>
     </message>
 <context>
     <name>MainWindow</name>
     <message>
-        <location filename="src/mainwindow.cpp" line="291"/>
+        <source>&amp;Window</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <source>&amp;Minimize</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
         <source>&amp;Stop</source>
         <translation>再生停止(&amp;S)</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="292"/>
         <source>Stop playback and go back to the search view</source>
         <translation>再生を停止し、検索画面に戻ります</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="307"/>
+        <source>P&amp;revious</source>
+        <translation>前へ(&amp;R)</translation>
+    </message>
+    <message>
+        <source>Go back to the previous track</source>
+        <translation>前の動画へ戻ります</translation>
+    </message>
+    <message>
         <source>S&amp;kip</source>
         <translation>次へ(&amp;k)</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="308"/>
         <source>Skip to the next video</source>
         <translation>次の動画へ進みます</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1134"/>
-        <source>&amp;Pause</source>
-        <translation>一時停止(&amp;P)</translation>
+        <source>&amp;Play</source>
+        <translation>再生(&amp;P)</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1135"/>
-        <source>Pause playback</source>
-        <translation>再生を一時停止します</translation>
+        <source>Resume playback</source>
+        <translation>再生を再開します</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="321"/>
         <source>&amp;Full Screen</source>
         <translation>フルスクリーンモード(&amp;F)</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="322"/>
         <source>Go full screen</source>
         <translation>フルスクリーンモードで再生します</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="336"/>
+        <source>&amp;Compact Mode</source>
+        <translation>コンパクトモード(&amp;C)</translation>
+    </message>
+    <message>
         <source>Hide the playlist and the toolbar</source>
         <translation>プレイリストとツールバーを隠します</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="349"/>
+        <source>Open the &amp;YouTube Page</source>
+        <translation>YouTubeのページを開く(&amp;Y)</translation>
+    </message>
+    <message>
         <source>Go to the YouTube video page and pause playback</source>
         <translation>一時停止してYouTubeのページを開きます</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="356"/>
+        <source>Copy the YouTube &amp;Link</source>
+        <translation>YouTubeへのリンクをコピー(&amp;L)</translation>
+    </message>
+    <message>
         <source>Copy the current video YouTube link to the clipboard</source>
         <translation>この動画のYouTubeページへのリンクをコピーします</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="363"/>
+        <source>Copy the Video Stream &amp;URL</source>
+        <translation>動画のURLをコピー(&amp;U)</translation>
+    </message>
+    <message>
         <source>Copy the current video stream URL to the clipboard</source>
         <translation>現在の動画のURLをコピーします</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="370"/>
+        <source>Find Video &amp;Parts</source>
+        <translation>他のパートを探す(&amp;P)</translation>
+    </message>
+    <message>
         <source>Find other video parts hopefully in the right order</source>
         <translation>この動画の他のパートを検索します</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="376"/>
         <source>&amp;Remove</source>
         <translation>削除(&amp;R)</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="377"/>
         <source>Remove the selected videos from the playlist</source>
         <translation>プレイリストから選択した動画を削除します</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="383"/>
         <source>Move &amp;Up</source>
         <translation>上へ(&amp;U)</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="384"/>
         <source>Move up the selected videos in the playlist</source>
         <translation>選択した動画をプレイリスト内で上へ移動させます</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="390"/>
         <source>Move &amp;Down</source>
         <translation>下へ(&amp;D)</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="391"/>
         <source>Move down the selected videos in the playlist</source>
         <translation>選択した動画をプレイリスト内で下へ移動させます</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="402"/>
+        <source>&amp;Clear Recent Searches</source>
+        <translation>検索履歴を消去(&amp;C)</translation>
+    </message>
+    <message>
         <source>Clear the search history. Cannot be undone.</source>
         <translation>検索履歴を消去します。取り消しは出来ません。</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="407"/>
         <source>&amp;Quit</source>
         <translation>終了(&amp;Q)</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="410"/>
         <source>Bye</source>
         <translation>Minitubeを終了します</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="414"/>
         <source>&amp;Website</source>
         <translation>ウェブサイト(&amp;W)</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="416"/>
         <source>%1 on the Web</source>
         <translation>%1のウェブサイトを開きます</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="422"/>
+        <source>Make a &amp;Donation</source>
+        <translation>寄付する(&amp;D)</translation>
+    </message>
+    <message>
         <source>Please support the continued development of %1</source>
         <translation>寄付して%1の開発を助けます</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="427"/>
         <source>&amp;About</source>
         <translation>Minitubeについて(&amp;A)</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="429"/>
         <source>Info about %1</source>
         <translation>%1について</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="437"/>
         <source>Search</source>
         <translation>動画を検索します</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="456"/>
         <source>Mute volume</source>
         <translation>ミュートにします</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="490"/>
-        <location filename="src/mainwindow.cpp" line="1609"/>
+        <source>&amp;Manually Start Playing</source>
+        <translation>手動で再生(&amp;M)</translation>
+    </message>
+    <message>
+        <source>Manually start playing videos</source>
+        <translation>動画の自動再生をしない</translation>
+    </message>
+    <message>
         <source>&amp;Downloads</source>
         <translation>ダウンロード(&amp;D)</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="491"/>
         <source>Show details about video downloads</source>
         <translation>動画のダウンロードについての詳細を表示</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="499"/>
         <source>&amp;Download</source>
         <translation>ダウンロード(&amp;D)</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="500"/>
         <source>Download the current video</source>
         <translation>現在の動画をダウンロード</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="510"/>
         <source>Take &amp;Snapshot</source>
         <translation>スナップショットを撮る(&amp;S)</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="517"/>
         <source>&amp;Subscribe to Channel</source>
         <translation>チャンネル購読(&amp;S)</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="525"/>
         <source>Share the current video using %1</source>
         <translation>現在の動画を%1で共有します</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="545"/>
         <source>&amp;Email</source>
         <translation>メール(&amp;E)</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="546"/>
         <source>Email</source>
         <translation>メール</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="551"/>
         <source>&amp;Close</source>
         <translation>閉じる(&amp;C)</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="561"/>
         <source>&amp;Float on Top</source>
         <translation>最前面に表示(&amp;F)</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="566"/>
         <source>&amp;Adjust Window Size</source>
         <translation>&amp;ウィンドウの大きさを調節</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="571"/>
         <source>&amp;Stop After This Video</source>
         <translation>再生終了後に停止(&amp;S)</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="578"/>
         <source>&amp;Report an Issue...</source>
         <translation>問題点を報告する(&amp;R)</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="582"/>
         <source>&amp;Refine Search...</source>
         <translation>絞り込み検索(&amp;R)</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="594"/>
         <source>More...</source>
         <translation>その他...</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="597"/>
         <source>&amp;Related Videos</source>
         <translation>関連動画(&amp;R)</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="599"/>
         <source>Watch videos related to the current one</source>
         <translation>関連動画を検索します</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="605"/>
         <source>Open in &amp;Browser...</source>
         <translation>ブラウザで見る(&amp;B)</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="612"/>
-        <source>&amp;Love %1? Rate it!</source>
-        <translation>%1を評価(&amp;L)</translation>
+        <source>Restricted Mode</source>
+        <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="633"/>
-        <source>&amp;Application</source>
-        <translation>アプリケーション(&amp;A)</translation>
+        <source>Hide videos that may contain inappropriate content</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <source>&amp;Love %1? Rate it!</source>
+        <translation>%1を評価(&amp;L)</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="618"/>
         <source>Buy %1...</source>
         <translation>%1を購入する</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="647"/>
+        <source>&amp;Application</source>
+        <translation>アプリケーション(&amp;A)</translation>
+    </message>
+    <message>
         <source>&amp;Playback</source>
         <translation>再生(&amp;P)</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="661"/>
         <source>&amp;Playlist</source>
         <translation>プレイリスト(&amp;P)</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="670"/>
         <source>&amp;Video</source>
         <translation>動画(&amp;V)</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="686"/>
-        <source>&amp;View</source>
-        <translation>表示(&amp;V)</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="695"/>
         <source>&amp;Share</source>
         <translation>共有(&amp;S)</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="709"/>
+        <source>&amp;View</source>
+        <translation>表示(&amp;V)</translation>
+    </message>
+    <message>
         <source>&amp;Help</source>
         <translation>ヘルプ(&amp;H)</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="751"/>
         <source>Press %1 to raise the volume, %2 to lower it</source>
         <translation>音量を上げるには%1を、下げるには%2を押します</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1021"/>
-        <location filename="src/mainwindow.cpp" line="1027"/>
+        <source>Choose your content location</source>
+        <translation>コンテンツの地域を選択</translation>
+    </message>
+    <message>
         <source>Opening %1</source>
         <translation>%1を開いています</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1080"/>
         <source>Do you want to exit %1 with a download in progress?</source>
         <translation>進行中の%1のダウンロードを停止しますか?</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1081"/>
         <source>If you close %1 now, this download will be cancelled.</source>
         <translation>あなたは今%1を停止した場合は、このダウンロードはキャンセルされます。</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1086"/>
         <source>Close and cancel download</source>
         <translation>閉じてダウンロードをキャンセル</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1087"/>
         <source>Wait for download to finish</source>
         <translation>ダウンロードが完了するまでお待ちください</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1158"/>
-        <source>&amp;Loading...</source>
-        <translation>&amp;読込中...</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="1264"/>
-        <source>Leave &amp;Full Screen</source>
-        <translation>フルスクリーンモードを終了する(&amp;F)</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="1718"/>
-        <source>%1 version %2 is now available.</source>
-        <translation>%1 バージョン %2 が利用可能です。</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="1722"/>
-        <source>Remind me later</source>
-        <translation>あとで通知する</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="1723"/>
-        <source>Update</source>
-        <translation>更新</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="1127"/>
         <source>Error: %1</source>
         <translation>エラー: %1</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="300"/>
-        <source>P&amp;revious</source>
-        <translation>前へ(&amp;R)</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="301"/>
-        <source>Go back to the previous track</source>
-        <translation>前の動画へ戻ります</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="335"/>
-        <source>&amp;Compact Mode</source>
-        <translation>コンパクトモード(&amp;C)</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="348"/>
-        <source>Open the &amp;YouTube Page</source>
-        <translation>YouTubeのページを開く(&amp;Y)</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="355"/>
-        <source>Copy the YouTube &amp;Link</source>
-        <translation>YouTubeへのリンクをコピー(&amp;L)</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="362"/>
-        <source>Copy the Video Stream &amp;URL</source>
-        <translation>動画のURLをコピー(&amp;U)</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="369"/>
-        <source>Find Video &amp;Parts</source>
-        <translation>他のパートを探す(&amp;P)</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="397"/>
-        <source>&amp;Clear Recent Searches</source>
-        <translation>検索履歴を消去(&amp;C)</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="421"/>
-        <source>Make a &amp;Donation</source>
-        <translation>寄付する(&amp;D)</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="483"/>
-        <source>&amp;Manually Start Playing</source>
-        <translation>手動で再生(&amp;M)</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="484"/>
-        <source>Manually start playing videos</source>
-        <translation>動画の自動再生をしない</translation>
+        <source>&amp;Pause</source>
+        <translation>一時停止(&amp;P)</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="847"/>
-        <source>Choose your content location</source>
-        <translation>コンテンツの地域を選択</translation>
+        <source>Pause playback</source>
+        <translation>再生を一時停止します</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="314"/>
-        <location filename="src/mainwindow.cpp" line="1142"/>
-        <location filename="src/mainwindow.cpp" line="1150"/>
-        <source>&amp;Play</source>
-        <translation>再生(&amp;P)</translation>
+        <source>&amp;Loading...</source>
+        <translation>&amp;読込中...</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="315"/>
-        <location filename="src/mainwindow.cpp" line="1143"/>
-        <location filename="src/mainwindow.cpp" line="1151"/>
-        <source>Resume playback</source>
-        <translation>再生を再開します</translation>
+        <source>Leave &amp;Full Screen</source>
+        <translation>フルスクリーンモードを終了する(&amp;F)</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1437"/>
         <source>Remaining time: %1</source>
         <translation>残り時間: %1</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1528"/>
         <source>Volume at %1%</source>
         <translation>ボリューム%1%</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1534"/>
         <source>Volume is muted</source>
         <translation>ミュートにしました</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1537"/>
         <source>Volume is unmuted</source>
         <translation>ミュートを解除しました</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1548"/>
         <source>Maximum video definition set to %1</source>
         <translation>最大画質を%1に設定する</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1595"/>
         <source>Your privacy is now safe</source>
         <translation>プライバシーは保護されています</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1610"/>
         <source>Downloads complete</source>
         <translation>ダウンロード完了</translation>
     </message>
+    <message>
+        <source>%1 version %2 is now available.</source>
+        <translation>%1 バージョン %2 が利用可能です。</translation>
+    </message>
+    <message>
+        <source>Remind me later</source>
+        <translation>あとで通知する</translation>
+    </message>
+    <message>
+        <source>Update</source>
+        <translation>更新</translation>
+    </message>
 </context>
 <context>
     <name>MediaView</name>
     <message>
-        <location filename="src/mediaview.cpp" line="702"/>
         <source>You can now paste the YouTube link into another application</source>
         <translation>YouTube のリンクを別のアプリケーションに貼り付けることができます</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="710"/>
         <source>You can now paste the video stream URL into another application</source>
         <translation>他のアプリケーションに動画のURLを貼り付けることができます</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="711"/>
         <source>The link will be valid only for a limited time.</source>
         <translation>リンクは制限時間内のみ有効です。</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="800"/>
         <source>This is just the demo version of %1.</source>
         <translation>これは%1 の試用版です。</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="801"/>
         <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="833"/>
+        <source>Get the full version</source>
+        <translation>製品版を入手する</translation>
+    </message>
+    <message>
         <source>Continue</source>
         <translation>続ける</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="988"/>
+        <source>Downloading %1</source>
+        <translation>%1をダウンロード中</translation>
+    </message>
+    <message>
         <source>of</source>
         <comment>Used in video parts, as in '2 of 3'</comment>
         <translation>から</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="1001"/>
         <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="1003"/>
         <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="1096"/>
         <source>Sent from %1</source>
         <translation>%1に送る</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="1128"/>
         <source>Unsubscribe from %1</source>
         <translation>%1の購読を解除する</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="1132"/>
         <source>Subscribe to %1</source>
         <translation>%1を購読する</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="1166"/>
         <source>Unsubscribed from %1</source>
         <translation>%1の購読を解除しました</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="1169"/>
         <source>Subscribed to %1</source>
         <translation>%1を購読しました</translation>
     </message>
-    <message>
-        <location filename="src/mediaview.cpp" line="808"/>
-        <source>Get the full version</source>
-        <translation>製品版を入手する</translation>
-    </message>
-    <message>
-        <location filename="src/mediaview.cpp" line="847"/>
-        <source>Downloading %1</source>
-        <translation>%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>新しいバージョンの%1があります!</translation>
     </message>
     <message>
-        <location filename="local/src/updatedialog.cpp" line="28"/>
         <source>%1 %2 is now available. You have %3.</source>
         <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>今すぐダウンロードしますか?</translation>
     </message>
     <message>
-        <location filename="local/src/updatedialog.cpp" line="39"/>
         <source>Skip This Version</source>
         <translation>このバージョンをスキップ</translation>
     </message>
     <message>
-        <location filename="local/src/updatedialog.cpp" line="43"/>
         <source>Remind Me Later</source>
         <translation>後で通知</translation>
     </message>
     <message>
-        <location filename="local/src/updatedialog.cpp" line="47"/>
         <source>Install Update</source>
         <translation>アップデートする</translation>
     </message>
 <context>
     <name>PasteLineEdit</name>
     <message>
-        <location filename="local/src/pastelineedit.cpp" line="6"/>
         <source>Paste</source>
         <translation>貼り付け</translation>
     </message>
 <context>
     <name>PlaylistItemDelegate</name>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="209"/>
         <source>%1 views</source>
         <translation>%1回 閲覧</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="309"/>
         <source>%1 of %2 (%3) — %4</source>
         <translation>%1は%2(%3)%4</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="316"/>
         <source>Preparing</source>
         <translation>準備中</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="318"/>
         <source>Failed</source>
         <translation>失敗</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="320"/>
         <source>Completed</source>
         <translation>完了</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="322"/>
         <source>Stopped</source>
         <translation>停止</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="358"/>
         <source>Stop downloading</source>
         <translation>ダウンロードを停止</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="368"/>
         <source>Show in %1</source>
         <translation>%1を表示</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="370"/>
         <source>Open parent folder</source>
         <translation>親フォルダーを開く</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="379"/>
         <source>Restart downloading</source>
         <translation>ダウンロード再開</translation>
     </message>
 <context>
     <name>PlaylistModel</name>
     <message>
-        <location filename="src/playlistmodel.cpp" line="70"/>
         <source>Searching...</source>
         <translation>検索中...</translation>
     </message>
     <message>
-        <location filename="src/playlistmodel.cpp" line="71"/>
         <source>Show %1 More</source>
         <translation>さらに%1件表示</translation>
     </message>
     <message>
-        <location filename="src/playlistmodel.cpp" line="72"/>
         <source>No videos</source>
         <translation>見つかりませんでした</translation>
     </message>
     <message>
-        <location filename="src/playlistmodel.cpp" line="73"/>
         <source>No more videos</source>
         <translation>見つかりませんでした</translation>
     </message>
 <context>
     <name>RefineSearchWidget</name>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="49"/>
         <source>Sort by</source>
         <translation>並び順</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="53"/>
         <source>Relevance</source>
         <translation>関連性</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="54"/>
-        <location filename="src/refinesearchwidget.cpp" line="69"/>
         <source>Date</source>
         <translation>日付</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="55"/>
         <source>View Count</source>
         <translation>閲覧回数</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="56"/>
         <source>Rating</source>
         <translation>評価</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="73"/>
         <source>Anytime</source>
         <translation>すべて</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="74"/>
         <source>Today</source>
         <translation>今日</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="75"/>
         <source>7 Days</source>
         <translation>一週間以内</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="76"/>
         <source>30 Days</source>
         <translation>1ヶ月以内</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="89"/>
         <source>Duration</source>
         <translation>再生時間</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="93"/>
-        <location filename="src/refinesearchwidget.cpp" line="119"/>
         <source>All</source>
         <translation>すべて</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="94"/>
         <source>Short</source>
         <translation>短い</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="95"/>
         <source>Medium</source>
         <translation>普通</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="96"/>
         <source>Long</source>
         <translation>長い</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="99"/>
         <source>Less than 4 minutes</source>
         <translation>4分以下</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="100"/>
         <source>Between 4 and 20 minutes</source>
         <translation>4~20分</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="101"/>
         <source>Longer than 20 minutes</source>
         <translation>20分超</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="115"/>
         <source>Quality</source>
         <translation>画質</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="120"/>
         <source>High Definition</source>
         <translation>高画質</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="123"/>
         <source>720p or higher</source>
         <translation>720pまたは最高画質</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="136"/>
         <source>Done</source>
         <translation>完了</translation>
     </message>
 <context>
     <name>RegionsView</name>
     <message>
-        <location filename="src/regionsview.cpp" line="39"/>
         <source>Done</source>
         <translation>完了</translation>
     </message>
 <context>
     <name>SearchLineEdit</name>
     <message>
-        <location filename="src/searchlineedit.cpp" line="55"/>
         <source>Search</source>
         <translation>検索</translation>
     </message>
 <context>
     <name>SearchView</name>
     <message>
-        <location filename="src/searchview.cpp" line="83"/>
         <source>Welcome to &lt;a href=&apos;%1&apos;&gt;%2&lt;/a&gt;,</source>
         <translation>ようこそ&lt;a href=&apos;%1&apos;&gt;%2&lt;/a&gt;へ</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="200"/>
-        <source>Get the full version</source>
-        <translation>製品版を入手する</translation>
-    </message>
-    <message>
-        <location filename="src/searchview.cpp" line="110"/>
         <source>Enter</source>
         <extracomment>&quot;Enter&quot;, as in &quot;type&quot;. The whole phrase says: &quot;Enter a keyword to start watching videos&quot;</extracomment>
         <translation>キーワードを入力して</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="117"/>
         <source>a keyword</source>
         <translation>動画</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="118"/>
         <source>a channel</source>
         <translation>チャンネル</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="125"/>
         <source>to start watching videos.</source>
         <translation>を検索する。</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="156"/>
         <source>Watch</source>
         <translation>検索</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="174"/>
         <source>Recent keywords</source>
         <translation>最近検索したキーワード</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="186"/>
         <source>Recent channels</source>
         <translation>最近のチャンネル</translation>
     </message>
+    <message>
+        <source>Get the full version</source>
+        <translation>製品版を入手する</translation>
+    </message>
 </context>
 <context>
     <name>SidebarHeader</name>
     <message>
-        <location filename="src/sidebarheader.cpp" line="38"/>
-        <location filename="src/sidebarheader.cpp" line="45"/>
         <source>&amp;Back</source>
         <translation>戻る(&amp;B)</translation>
     </message>
     <message>
-        <location filename="src/sidebarheader.cpp" line="76"/>
         <source>Forward to %1</source>
         <translation>%1 に進む</translation>
     </message>
     <message>
-        <location filename="src/sidebarheader.cpp" line="89"/>
         <source>Back to %1</source>
         <translation>%1 に戻る</translation>
     </message>
 <context>
     <name>SidebarWidget</name>
     <message>
-        <location filename="src/sidebarwidget.cpp" line="68"/>
         <source>Refine Search</source>
         <translation>絞り込み検索</translation>
     </message>
     <message>
-        <location filename="src/sidebarwidget.cpp" line="167"/>
         <source>Did you mean: %1</source>
         <translation>もしかして: %1</translation>
     </message>
 <context>
     <name>SnapshotSettings</name>
     <message>
-        <location filename="src/snapshotsettings.cpp" line="47"/>
         <source>Change location...</source>
         <translation>場所を変更...</translation>
     </message>
     <message>
-        <location filename="src/snapshotsettings.cpp" line="64"/>
         <source>Snapshot saved to %1</source>
         <translation>%1にスナップショットを保存しました</translation>
     </message>
     <message>
-        <location filename="src/snapshotsettings.cpp" line="117"/>
         <source>Snapshots location changed.</source>
         <translation>スナップショットの場所を変更しました。</translation>
     </message>
 <context>
     <name>StandardFeedsView</name>
     <message>
-        <location filename="src/standardfeedsview.cpp" line="107"/>
         <source>Most Popular</source>
         <translation>とても人気</translation>
     </message>
 </context>
+<context>
+    <name>UpdateDialog</name>
+    <message>
+        <source>Downloading update...</source>
+        <translation>アップデートをダウンロード中...</translation>
+    </message>
+    <message>
+        <source>Downloading %1...</source>
+        <translation type="unfinished"/>
+    </message>
+</context>
 <context>
     <name>Video</name>
     <message>
-        <location filename="src/video.cpp" line="287"/>
         <source>Cannot get video stream for %1</source>
         <translation>%1の動画を取得できませんでした</translation>
     </message>
-    <message>
-        <location filename="src/video.cpp" line="292"/>
-        <source>Network error: %1 for %2</source>
-        <translation>ネットワークエラー: %1から%2へのアクセスにてエラー</translation>
-    </message>
 </context>
 <context>
     <name>YTRegions</name>
     <message>
-        <location filename="src/ytregions.cpp" line="28"/>
         <source>Algeria</source>
         <translation>アルジェリア</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="29"/>
         <source>Argentina</source>
         <translation>アルゼンチン</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="30"/>
         <source>Australia</source>
         <translation>オーストラリア</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="31"/>
         <source>Belgium</source>
         <translation>ベルギー</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="32"/>
         <source>Brazil</source>
         <translation>ブラジル</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="33"/>
         <source>Canada</source>
         <translation>カナダ</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="34"/>
         <source>Chile</source>
         <translation>チリ</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="35"/>
         <source>Colombia</source>
         <translation>コロンビア</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="36"/>
         <source>Czech Republic</source>
         <translation>チェコ共和国</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="37"/>
         <source>Egypt</source>
         <translation>エジプト</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="38"/>
         <source>France</source>
         <translation>フランス</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="39"/>
         <source>Germany</source>
         <translation>ドイツ</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="40"/>
         <source>Ghana</source>
         <translation>ガーナ</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="41"/>
         <source>Greece</source>
         <translation>ギリシャ</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="42"/>
         <source>Hong Kong</source>
         <translation>香港</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="43"/>
         <source>Hungary</source>
         <translation>ハンガリー</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="44"/>
         <source>India</source>
         <translation>インド</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="45"/>
         <source>Indonesia</source>
         <translation>インドネシア</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="46"/>
         <source>Ireland</source>
         <translation>アイルランド</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="47"/>
         <source>Israel</source>
         <translation>イスラエル</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="48"/>
         <source>Italy</source>
         <translation>イタリア</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="49"/>
         <source>Japan</source>
         <translation>日本</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="50"/>
         <source>Jordan</source>
         <translation>ヨルダン</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="51"/>
         <source>Kenya</source>
         <translation>ケニア</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="52"/>
         <source>Malaysia</source>
         <translation>マレーシア</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="53"/>
         <source>Mexico</source>
         <translation>メキシコ</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="54"/>
         <source>Morocco</source>
         <translation>モロッコ</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="55"/>
         <source>Netherlands</source>
         <translation>オランダ</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="56"/>
         <source>New Zealand</source>
         <translation>ニュージーランド</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="57"/>
         <source>Nigeria</source>
         <translation>ナイジェリア</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="58"/>
         <source>Peru</source>
         <translation>ペルー</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="59"/>
         <source>Philippines</source>
         <translation>フィリピン</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="60"/>
         <source>Poland</source>
         <translation>ポーランド</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="61"/>
         <source>Russia</source>
         <translation>ロシア</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="62"/>
         <source>Saudi Arabia</source>
         <translation>サウジアラビア</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="63"/>
         <source>Singapore</source>
         <translation>シンガポール</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="64"/>
         <source>South Africa</source>
         <translation>南アフリカ</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="65"/>
         <source>South Korea</source>
         <translation>韓国</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="66"/>
         <source>Spain</source>
         <translation>スペイン</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="67"/>
         <source>Sweden</source>
         <translation>スウェーデン</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="68"/>
         <source>Taiwan</source>
         <translation>台湾</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="69"/>
         <source>Tunisia</source>
         <translation>チュニジア</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="70"/>
         <source>Turkey</source>
         <translation>トルコ</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="71"/>
         <source>Uganda</source>
         <translation>ウガンダ</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="72"/>
         <source>United Arab Emirates</source>
         <translation>アラブ首長国連邦</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="73"/>
         <source>United Kingdom</source>
         <translation>イギリス</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="74"/>
         <source>Yemen</source>
         <translation>イエメン</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="148"/>
         <source>Worldwide</source>
         <translation>全世界</translation>
     </message>
index 62c7deee66fd9a850d3716b85477d546fe542aa1..87ec5f94dbbeb67c2a9e0b5fcdb790119eaa765a 100644 (file)
@@ -2,67 +2,42 @@
 <context>
     <name>AboutView</name>
     <message>
-        <location filename="src/aboutview.cpp" line="58"/>
         <source>There&apos;s life outside the browser!</source>
         <translation>브라우저 바깥에 생활이 존재 합니다!</translation>
     </message>
     <message>
-        <location filename="src/aboutview.cpp" line="59"/>
         <source>Version %1</source>
         <translation>버전 %1</translation>
     </message>
     <message>
-        <location filename="src/aboutview.cpp" line="64"/>
         <source>Licensed to: %1</source>
         <translation>라이센스 소유자: %1</translation>
     </message>
     <message>
-        <location filename="src/aboutview.cpp" line="68"/>
         <source>%1 is Free Software but its development takes precious time.</source>
         <translation>%1는 무료 프로그램이지만 개발에는 시간과 노력이 소요 됩니다.</translation>
     </message>
     <message>
-        <location filename="src/aboutview.cpp" line="69"/>
         <source>Please &lt;a href=&apos;%1&apos;&gt;donate&lt;/a&gt; to support the continued development of %2.</source>
         <translation>%2의 계속된 개발을 위해  &lt;a href=&apos;%1&apos;&gt;기부&lt;/a&gt;룰 해주요...</translation>
     </message>
     <message>
-        <location filename="src/aboutview.cpp" line="73"/>
-        <source>You may want to try my other apps as well:</source>
-        <translation>저희의 다른 프로그램도 사용해 보세요&quot;</translation>
-    </message>
-    <message>
-        <location filename="src/aboutview.cpp" line="76"/>
-        <source>%1, a YouTube music player</source>
-        <translation>%1, 유튜브 음악 재생기.</translation>
-    </message>
-    <message>
-        <location filename="src/aboutview.cpp" line="80"/>
-        <source>%1, a music player</source>
-        <translation>%1 음악 재생기</translation>
-    </message>
-    <message>
-        <location filename="src/aboutview.cpp" line="86"/>
         <source>Translate %1 to your native language using %2</source>
         <translation>%2을(를) 사용해서 %1를 사용자의 언어로 번역 하세요.</translation>
     </message>
     <message>
-        <location filename="src/aboutview.cpp" line="91"/>
         <source>Icon designed by %1.</source>
         <translation>아이콘 디자인: %1</translation>
     </message>
     <message>
-        <location filename="src/aboutview.cpp" line="95"/>
         <source>Released under the &lt;a href=&apos;%1&apos;&gt;GNU General Public License&lt;/a&gt;</source>
         <translation>&lt;a href=&apos;%1&apos;&gt;GNU General Public License&lt;/a&gt;하에 배포 됩니다.</translation>
     </message>
     <message>
-        <location filename="src/aboutview.cpp" line="110"/>
         <source>&amp;Close</source>
         <translation>닫기(&amp;C)</translation>
     </message>
     <message>
-        <location filename="src/aboutview.h" line="40"/>
         <source>About</source>
         <translation>프로그램 정보</translation>
     </message>
 <context>
     <name>ActivationDialog</name>
     <message>
-        <location filename="local/src/activationdialog.cpp" line="17"/>
         <source>Enter your License Details</source>
         <translation>라이센스 정보 입력</translation>
     </message>
     <message>
-        <location filename="local/src/activationdialog.cpp" line="29"/>
         <source>&amp;Email:</source>
         <translation>Email(&amp;E)</translation>
     </message>
     <message>
-        <location filename="local/src/activationdialog.cpp" line="35"/>
         <source>&amp;Code:</source>
         <translation>코드(&amp;C)</translation>
     </message>
 <context>
     <name>ActivationView</name>
     <message>
-        <location filename="local/src/activationview.cpp" line="47"/>
         <source>Please license %1</source>
         <translation>%1을(를) 구입 하세요</translation>
     </message>
     <message>
-        <location filename="local/src/activationview.cpp" line="51"/>
         <source>This demo has expired.</source>
         <translation>데모 만료!</translation>
     </message>
     <message>
-        <location filename="local/src/activationview.cpp" line="53"/>
         <source>The full version allows you to watch videos without interruptions.</source>
-        <oldsource>The full version allows you to download videos longer than %1 minutes and to watch videos without interruptions.</oldsource>
         <translation>구입 버전은 방해받지 않고 비디오를 감상 할수 있습니다.</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>
     </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>
     </message>
     <message>
-        <location filename="local/src/activationview.cpp" line="70"/>
         <source>Use Demo</source>
         <translation>데모 사용</translation>
     </message>
     <message>
-        <location filename="local/src/activationview.cpp" line="77"/>
         <source>Enter License</source>
         <translation>라이센스 입력</translation>
     </message>
     <message>
-        <location filename="local/src/activationview.cpp" line="85"/>
         <source>Buy License</source>
         <translation>라이센스 구입</translation>
     </message>
 </context>
+<context>
+    <name>AppWidget</name>
+    <message>
+        <source>Download</source>
+        <translation type="unfinished"/>
+    </message>
+</context>
 <context>
     <name>ChannelAggregator</name>
     <message>
-        <location filename="src/channelaggregator.cpp" line="183"/>
         <source>By %1</source>
         <translation>By %1</translation>
     </message>
     <message numerus="yes">
-        <location filename="src/channelaggregator.cpp" line="185"/>
         <source>You have %n new video(s)</source>
         <translation type="unfinished"><numerusform></numerusform></translation>
     </message>
 <context>
     <name>ChannelItemDelegate</name>
     <message>
-        <location filename="src/channelitemdelegate.cpp" line="67"/>
         <source>All Videos</source>
         <translation>모든 비디오</translation>
     </message>
     <message>
-        <location filename="src/channelitemdelegate.cpp" line="85"/>
         <source>Unwatched Videos</source>
         <translation>안 본 비디오</translation>
     </message>
 <context>
     <name>ChannelView</name>
     <message>
-        <location filename="src/channelview.cpp" line="151"/>
-        <source>Mark all as watched</source>
-        <translation>모두 본 걸로 표시</translation>
-    </message>
-    <message>
-        <location filename="src/channelview.cpp" line="159"/>
-        <source>Show Updated</source>
-        <translation>업데이트 표시</translation>
-    </message>
-    <message>
-        <location filename="src/channelview.cpp" line="103"/>
         <source>Name</source>
         <translation>이름</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="110"/>
         <source>Last Updated</source>
         <translation>마지막 업데이트</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="117"/>
         <source>Last Added</source>
         <translation>마지막 추가</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="124"/>
         <source>Last Watched</source>
         <translation>마지막 시청</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="131"/>
         <source>Most Watched</source>
         <translation>가장 많이 시청</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="139"/>
         <source>Sort by</source>
         <translation>정렬</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="222"/>
+        <source>Mark all as watched</source>
+        <translation>모두 본 걸로 표시</translation>
+    </message>
+    <message>
+        <source>Show Updated</source>
+        <translation>업데이트 표시</translation>
+    </message>
+    <message>
         <source>All Videos</source>
         <translation>모든 비디오</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="226"/>
         <source>Unwatched Videos</source>
         <translation>안 본 비디오</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="244"/>
         <source>Mark as Watched</source>
         <translation>본 비디오로 마크</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="257"/>
         <source>Unsubscribe</source>
         <translation>구독 취소</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="270"/>
         <source>There are no updated subscriptions at this time.</source>
         <translation>현재 업데이트된 구독이 없습니다.</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="272"/>
         <source>You have no subscriptions. Use the star symbol to subscribe to channels.</source>
         <translation>구독 항목이 없습니다. 채널을 구독 하려면 별 아이콘을 사용 하세요.</translation>
     </message>
 <context>
     <name>ClearButton</name>
     <message>
-        <location filename="src/exlineedit.cpp" line="6"/>
         <source>Clear</source>
         <translation>지우기</translation>
     </message>
 <context>
     <name>DataUtils</name>
     <message>
-        <location filename="src/datautils.cpp" line="88"/>
         <source>Just now</source>
         <translation type="unfinished"/>
     </message>
     <message numerus="yes">
-        <location filename="src/datautils.cpp" line="90"/>
-        <source>%n minute(s) ago</source>
-        <translation type="unfinished"><numerusform></numerusform></translation>
-    </message>
-    <message numerus="yes">
-        <location filename="src/datautils.cpp" line="92"/>
         <source>%n hour(s) ago</source>
         <translation type="unfinished"><numerusform></numerusform></translation>
     </message>
     <message numerus="yes">
-        <location filename="src/datautils.cpp" line="94"/>
         <source>%n day(s) ago</source>
         <translation type="unfinished"><numerusform></numerusform></translation>
     </message>
     <message numerus="yes">
-        <location filename="src/datautils.cpp" line="96"/>
         <source>%n weeks(s) ago</source>
         <translation type="unfinished"><numerusform></numerusform></translation>
     </message>
     <message numerus="yes">
-        <location filename="src/datautils.cpp" line="98"/>
         <source>%n month(s) ago</source>
         <translation type="unfinished"><numerusform></numerusform></translation>
     </message>
 <context>
     <name>DownloadItem</name>
     <message>
-        <location filename="src/downloaditem.cpp" line="406"/>
         <source>bytes</source>
         <translation>바이트</translation>
     </message>
     <message>
-        <location filename="src/downloaditem.cpp" line="409"/>
         <source>KB</source>
         <translation>KB</translation>
     </message>
     <message>
-        <location filename="src/downloaditem.cpp" line="412"/>
         <source>MB</source>
         <translation>MB</translation>
     </message>
     <message>
-        <location filename="src/downloaditem.cpp" line="421"/>
         <source>bytes/sec</source>
         <translation>바이트/초</translation>
     </message>
     <message>
-        <location filename="src/downloaditem.cpp" line="424"/>
         <source>KB/sec</source>
         <translation>KB/초</translation>
     </message>
     <message>
-        <location filename="src/downloaditem.cpp" line="427"/>
         <source>MB/sec</source>
         <translation>MB/초</translation>
     </message>
     <message>
-        <location filename="src/downloaditem.cpp" line="433"/>
         <source>seconds</source>
         <translation>초</translation>
     </message>
     <message>
-        <location filename="src/downloaditem.cpp" line="436"/>
         <source>minutes</source>
         <translation>분</translation>
     </message>
     <message>
-        <location filename="src/downloaditem.cpp" line="439"/>
         <source>%4 %5 remaining</source>
         <translation>%4 %5 남음</translation>
     </message>
 <context>
     <name>DownloadManager</name>
     <message>
-        <location filename="src/downloadmanager.cpp" line="77"/>
         <source>This is just the demo version of %1.</source>
         <translation>%1의 데모 버전 입니다.</translation>
     </message>
     <message>
-        <location filename="src/downloadmanager.cpp" line="79"/>
         <source>It can only download videos shorter than %1 minutes so you can test the download functionality.</source>
         <translation>사용자가 다운로드 기능을 테스트 할수 있도록 %1보다 짧은 비디오만 다운로드 됩니다.</translation>
     </message>
     <message>
-        <location filename="src/downloadmanager.cpp" line="85"/>
         <source>Continue</source>
         <translation>계속</translation>
     </message>
     <message>
-        <location filename="src/downloadmanager.cpp" line="86"/>
         <source>Get the full version</source>
         <translation>풀 버전 구입</translation>
     </message>
     <message>
-        <location filename="src/downloadmanager.cpp" line="157"/>
         <source>%1 downloaded in %2</source>
         <translation>%1 downloaded in %2</translation>
     </message>
     <message>
-        <location filename="src/downloadmanager.cpp" line="160"/>
         <source>Download finished</source>
         <translation>다운로드 완료</translation>
     </message>
     <message numerus="yes">
-        <location filename="src/downloadmanager.cpp" line="165"/>
         <source>%n Download(s)</source>
         <translation type="unfinished"><numerusform></numerusform></translation>
     </message>
 <context>
     <name>DownloadSettings</name>
     <message>
-        <location filename="src/downloadsettings.cpp" line="36"/>
         <source>Change location...</source>
         <translation>위치 변경...</translation>
     </message>
     <message>
-        <location filename="src/downloadsettings.cpp" line="69"/>
         <source>Choose the download location</source>
         <translation>다운로드 위치 선택</translation>
     </message>
     <message>
-        <location filename="src/downloadsettings.cpp" line="81"/>
         <source>Download location changed.</source>
         <translation>다운로드 위치 변경됨</translation>
     </message>
     <message>
-        <location filename="src/downloadsettings.cpp" line="83"/>
         <source>Current downloads will still go in the previous location.</source>
         <translation>현재 다운로드는 이전 위치에 저장 됩니다.</translation>
     </message>
     <message>
-        <location filename="src/downloadsettings.cpp" line="94"/>
         <source>Downloading to: %1</source>
         <translation>다운로드 위치: %1</translation>
     </message>
 <context>
     <name>DownloadView</name>
     <message>
-        <location filename="src/downloadview.cpp" line="38"/>
-        <location filename="src/downloadview.h" line="45"/>
         <source>Downloads</source>
         <translation>다운로드</translation>
     </message>
 </context>
-<context>
-    <name>DownloadWidget</name>
-    <message>
-        <location filename="local/src/updatedialog.cpp" line="60"/>
-        <source>Downloading update...</source>
-        <translation>업데이트 다운로드...</translation>
-    </message>
-</context>
 <context>
     <name>Extra</name>
     <message>
-        <location filename="local/src/extra.cpp" line="251"/>
         <source>The executable file has been tempered with, maybe by a virus.</source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="local/src/extra.cpp" line="252"/>
         <source>%1 will not run. Try installing again.</source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="local/src/extra.cpp" line="253"/>
         <source>Quit</source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="local/src/extra.cpp" line="254"/>
         <source>Reinstall</source>
         <translation type="unfinished"/>
     </message>
 <context>
     <name>GlobalShortcuts</name>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="36"/>
         <source>Play</source>
         <translation>재생</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="37"/>
         <source>Pause</source>
         <translation>일시정지</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="38"/>
         <source>Play/Pause</source>
         <translation>재생/일시정지</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="39"/>
         <source>Stop</source>
         <translation>정지</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="40"/>
         <source>Stop playing after current track</source>
         <translation>현재 트랙 이후 정지</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="41"/>
         <source>Next track</source>
         <translation>다음 트랙</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="42"/>
         <source>Previous track</source>
         <translation>이전 트랙</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="43"/>
         <source>Increase volume</source>
         <translation>볼륨 키우기</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="44"/>
         <source>Decrease volume</source>
         <translation>볼륨 줄이기</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="45"/>
         <source>Mute</source>
         <translation>무음</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="46"/>
         <source>Seek forward</source>
         <translation>앞으로찾기</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="47"/>
         <source>Seek backward</source>
         <translation>뒤로찾기</translation>
     </message>
 <context>
     <name>HomeView</name>
     <message>
-        <location filename="src/homeview.cpp" line="58"/>
         <source>Search</source>
         <translation>검색</translation>
     </message>
     <message>
-        <location filename="src/homeview.cpp" line="60"/>
         <source>Find videos and channels by keyword</source>
         <translation>키워드로 비디오 채널 검색</translation>
     </message>
     <message>
-        <location filename="src/homeview.cpp" line="65"/>
         <source>Browse</source>
         <translation>탐색</translation>
     </message>
     <message>
-        <location filename="src/homeview.cpp" line="67"/>
         <source>Browse videos by category</source>
         <translation>카테고리로 비디오 탐색</translation>
     </message>
     <message>
-        <location filename="src/homeview.cpp" line="71"/>
         <source>Subscriptions</source>
         <translation>구독</translation>
     </message>
     <message>
-        <location filename="src/homeview.cpp" line="73"/>
         <source>Channel subscriptions</source>
         <translation>채널 구독</translation>
     </message>
     <message>
-        <location filename="src/homeview.h" line="44"/>
         <source>Make yourself comfortable</source>
         <translation>편안하게 하세요.</translation>
     </message>
 <context>
     <name>LoadingWidget</name>
     <message>
-        <location filename="src/loadingwidget.cpp" line="125"/>
         <source>Error</source>
         <translation>에러</translation>
     </message>
 <context>
     <name>MainWindow</name>
     <message>
-        <location filename="src/mainwindow.cpp" line="291"/>
+        <source>&amp;Window</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <source>&amp;Minimize</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
         <source>&amp;Stop</source>
         <translation>정지(&amp;S)</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="292"/>
         <source>Stop playback and go back to the search view</source>
         <translation>재생을 멈추고 검색 보기로 이동</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="307"/>
+        <source>P&amp;revious</source>
+        <translation>이전(&amp;R)</translation>
+    </message>
+    <message>
+        <source>Go back to the previous track</source>
+        <translation>이전트랙으로 이동</translation>
+    </message>
+    <message>
         <source>S&amp;kip</source>
         <translation>건너뛰기(&amp;K)</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="308"/>
         <source>Skip to the next video</source>
         <translation>다음 비디오로 건너뛰기</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1134"/>
-        <source>&amp;Pause</source>
-        <translation>일시정지(&amp;P)</translation>
+        <source>&amp;Play</source>
+        <translation>재생(&amp;P)</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1135"/>
-        <source>Pause playback</source>
-        <translation>재생 일시정지</translation>
+        <source>Resume playback</source>
+        <translation>재생 이어하기</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="321"/>
         <source>&amp;Full Screen</source>
         <translation>전체 화면(&amp;F)</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="322"/>
         <source>Go full screen</source>
         <translation>전체화면 보기</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="336"/>
+        <source>&amp;Compact Mode</source>
+        <translation>컴팩트 모드(&amp;C)</translation>
+    </message>
+    <message>
         <source>Hide the playlist and the toolbar</source>
         <translation>도구 모음과 재생 목록 숨기기</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="349"/>
+        <source>Open the &amp;YouTube Page</source>
+        <translation>YouTube 페이지 열기(&amp;Y)</translation>
+    </message>
+    <message>
         <source>Go to the YouTube video page and pause playback</source>
         <translation>재생을 멈추고 YouTube 비디오페이지로 이동</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="356"/>
+        <source>Copy the YouTube &amp;Link</source>
+        <translation>YouTube 링크 복사(&amp;L)</translation>
+    </message>
+    <message>
         <source>Copy the current video YouTube link to the clipboard</source>
         <translation>현재 비디오의 YouTube링크를 클립보드에 복사</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="363"/>
+        <source>Copy the Video Stream &amp;URL</source>
+        <translation>비디오 스트림 URL을 복사(&amp;U)</translation>
+    </message>
+    <message>
         <source>Copy the current video stream URL to the clipboard</source>
         <translation>현재 비디오 스트림 URL을 클립보드에 복사</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="370"/>
+        <source>Find Video &amp;Parts</source>
+        <translation>비디오 부분 찾기(&amp;P)</translation>
+    </message>
+    <message>
         <source>Find other video parts hopefully in the right order</source>
         <translation>연결된 다른 비디오 조각을 가능한한 올바른 순서로 찾기</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="376"/>
         <source>&amp;Remove</source>
         <translation>제거(&amp;R)</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="377"/>
         <source>Remove the selected videos from the playlist</source>
         <translation>재생 목록에서 현재 비디오 제거</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="383"/>
         <source>Move &amp;Up</source>
         <translation>위로 이동(&amp;U)</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="384"/>
         <source>Move up the selected videos in the playlist</source>
         <translation>재생 목록에서 선택된 비디오의 위 항목으로 이동</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="390"/>
         <source>Move &amp;Down</source>
         <translation>아래로이동(&amp;D)</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="391"/>
         <source>Move down the selected videos in the playlist</source>
         <translation>재생 목록에서 선택된 비디오의 아래 항목으로 이동</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="402"/>
+        <source>&amp;Clear Recent Searches</source>
+        <translation>최근 검색 지우기(&amp;C)</translation>
+    </message>
+    <message>
         <source>Clear the search history. Cannot be undone.</source>
         <translation>검색했던 목록 지우기. 되돌릴수 없음.</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="407"/>
         <source>&amp;Quit</source>
         <translation>종료(&amp;Q)</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="410"/>
         <source>Bye</source>
         <translation>안녕...</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="414"/>
         <source>&amp;Website</source>
         <translation>웹사이트(&amp;W)</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="416"/>
         <source>%1 on the Web</source>
         <translation>%1의 웹사이트</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="422"/>
+        <source>Make a &amp;Donation</source>
+        <translation>기부하기(&amp;D)</translation>
+    </message>
+    <message>
         <source>Please support the continued development of %1</source>
         <translation>%1의 계속되는 개발을 도와 주세요.</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="427"/>
         <source>&amp;About</source>
         <translation>프로그램 정보(&amp;A)</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="429"/>
         <source>Info about %1</source>
         <translation>%1의 정보</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="437"/>
         <source>Search</source>
         <translation>검색</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="456"/>
         <source>Mute volume</source>
         <translation>볼륨 소거</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="490"/>
-        <location filename="src/mainwindow.cpp" line="1609"/>
+        <source>&amp;Manually Start Playing</source>
+        <translation>수동으로 재생 시작(&amp;M)</translation>
+    </message>
+    <message>
+        <source>Manually start playing videos</source>
+        <translation>수동으로 비디오 재생 시작 하기</translation>
+    </message>
+    <message>
         <source>&amp;Downloads</source>
         <translation>다운로드(&amp;D)</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="491"/>
         <source>Show details about video downloads</source>
         <translation>비디오 다운로드에 대한 자세한 정보 표시</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="499"/>
         <source>&amp;Download</source>
         <translation>다운로드(&amp;D)</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="500"/>
         <source>Download the current video</source>
         <translation>현재 비디오 다운로드</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="510"/>
         <source>Take &amp;Snapshot</source>
         <translation>스냅샷 찍기(&amp;S)</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="517"/>
         <source>&amp;Subscribe to Channel</source>
         <translation>채널 구독(&amp;S)</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="525"/>
         <source>Share the current video using %1</source>
         <translation>%1을(를) 사용해서 현재 비디오 공유</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="545"/>
         <source>&amp;Email</source>
         <translation>Email(&amp;E)</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="546"/>
         <source>Email</source>
         <translation>Email</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="551"/>
         <source>&amp;Close</source>
         <translation>닫기(&amp;C)</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="561"/>
         <source>&amp;Float on Top</source>
         <translation>위에 떠있기(&amp;F)</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="566"/>
         <source>&amp;Adjust Window Size</source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="571"/>
         <source>&amp;Stop After This Video</source>
         <translation>이 비디오 재생 후 정지(&amp;S)</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="578"/>
         <source>&amp;Report an Issue...</source>
         <translation>문제점 보고...(&amp;R)</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="582"/>
         <source>&amp;Refine Search...</source>
         <translation>검색 재정의(&amp;R)...</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="594"/>
         <source>More...</source>
         <translation>추가정보...</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="597"/>
         <source>&amp;Related Videos</source>
         <translation>관련된 비디오...(&amp;R)</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="599"/>
         <source>Watch videos related to the current one</source>
         <translation>현재 비디오와 관련된 비디오 보기</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="605"/>
         <source>Open in &amp;Browser...</source>
         <translation>브라우저에서 열기(&amp;B)...</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="612"/>
-        <source>&amp;Love %1? Rate it!</source>
-        <translation>%1를 좋아하시나요? 평점을 주세요!</translation>
+        <source>Restricted Mode</source>
+        <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="633"/>
-        <source>&amp;Application</source>
-        <translation>어플리케이션(&amp;A)</translation>
+        <source>Hide videos that may contain inappropriate content</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <source>&amp;Love %1? Rate it!</source>
+        <translation>%1를 좋아하시나요? 평점을 주세요!</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="618"/>
         <source>Buy %1...</source>
         <translation>%1 구입...</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="647"/>
+        <source>&amp;Application</source>
+        <translation>어플리케이션(&amp;A)</translation>
+    </message>
+    <message>
         <source>&amp;Playback</source>
         <translation>재생(&amp;P)</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="661"/>
         <source>&amp;Playlist</source>
         <translation>재생 목록(&amp;P)</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="670"/>
         <source>&amp;Video</source>
         <translation>비디오(&amp;V)</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="686"/>
-        <source>&amp;View</source>
-        <translation>보기(&amp;V)</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="695"/>
         <source>&amp;Share</source>
         <translation>공유(&amp;S)</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="709"/>
+        <source>&amp;View</source>
+        <translation>보기(&amp;V)</translation>
+    </message>
+    <message>
         <source>&amp;Help</source>
         <translation>도움말(&amp;H)</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="751"/>
         <source>Press %1 to raise the volume, %2 to lower it</source>
         <translation>%1을(를) 눌러 볼륨 증가 , %2을(를) 눌러 볼륨 감소</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1021"/>
-        <location filename="src/mainwindow.cpp" line="1027"/>
+        <source>Choose your content location</source>
+        <translation>콘텐츠 위치 선택</translation>
+    </message>
+    <message>
         <source>Opening %1</source>
         <translation>%1 열기</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1080"/>
         <source>Do you want to exit %1 with a download in progress?</source>
         <translation>다운로드가 진행 중인데 %1을(를) 종료 할까요?</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1081"/>
         <source>If you close %1 now, this download will be cancelled.</source>
         <translation>%1를 지금 종료하면, 다운로드는 취소 됩니다.</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1086"/>
         <source>Close and cancel download</source>
         <translation>다운로드 취소하고 종료</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1087"/>
         <source>Wait for download to finish</source>
         <translation>다운로드 끝날때 까지 대기</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1158"/>
-        <source>&amp;Loading...</source>
-        <translation type="unfinished"/>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="1264"/>
-        <source>Leave &amp;Full Screen</source>
-        <translation>전체 화면 나가기(&amp;F)</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="1718"/>
-        <source>%1 version %2 is now available.</source>
-        <translation>%1 version %2이(가) 사용 가능 합니다.</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="1722"/>
-        <source>Remind me later</source>
-        <translation>다음에 알리기</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="1723"/>
-        <source>Update</source>
-        <translation>업데이트</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="1127"/>
         <source>Error: %1</source>
         <translation>에러: %1</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="300"/>
-        <source>P&amp;revious</source>
-        <translation>이전(&amp;R)</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="301"/>
-        <source>Go back to the previous track</source>
-        <translation>이전트랙으로 이동</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="335"/>
-        <source>&amp;Compact Mode</source>
-        <translation>컴팩트 모드(&amp;C)</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="348"/>
-        <source>Open the &amp;YouTube Page</source>
-        <translation>YouTube 페이지 열기(&amp;Y)</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="355"/>
-        <source>Copy the YouTube &amp;Link</source>
-        <translation>YouTube 링크 복사(&amp;L)</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="362"/>
-        <source>Copy the Video Stream &amp;URL</source>
-        <translation>비디오 스트림 URL을 복사(&amp;U)</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="369"/>
-        <source>Find Video &amp;Parts</source>
-        <translation>비디오 부분 찾기(&amp;P)</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="397"/>
-        <source>&amp;Clear Recent Searches</source>
-        <translation>최근 검색 지우기(&amp;C)</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="421"/>
-        <source>Make a &amp;Donation</source>
-        <translation>기부하기(&amp;D)</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="483"/>
-        <source>&amp;Manually Start Playing</source>
-        <translation>수동으로 재생 시작(&amp;M)</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="484"/>
-        <source>Manually start playing videos</source>
-        <translation>수동으로 비디오 재생 시작 하기</translation>
+        <source>&amp;Pause</source>
+        <translation>일시정지(&amp;P)</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="847"/>
-        <source>Choose your content location</source>
-        <translation>콘텐츠 위치 선택</translation>
+        <source>Pause playback</source>
+        <translation>재생 일시정지</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="314"/>
-        <location filename="src/mainwindow.cpp" line="1142"/>
-        <location filename="src/mainwindow.cpp" line="1150"/>
-        <source>&amp;Play</source>
-        <translation>재생(&amp;P)</translation>
+        <source>&amp;Loading...</source>
+        <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="315"/>
-        <location filename="src/mainwindow.cpp" line="1143"/>
-        <location filename="src/mainwindow.cpp" line="1151"/>
-        <source>Resume playback</source>
-        <translation>재생 이어하기</translation>
+        <source>Leave &amp;Full Screen</source>
+        <translation>전체 화면 나가기(&amp;F)</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1437"/>
         <source>Remaining time: %1</source>
         <translation>남은 시간: %1</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1528"/>
         <source>Volume at %1%</source>
         <translation>볼륨 %1%</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1534"/>
         <source>Volume is muted</source>
         <translation>볼륨 소거됨</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1537"/>
         <source>Volume is unmuted</source>
         <translation>볼륨 소거 해제됨</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1548"/>
         <source>Maximum video definition set to %1</source>
         <translation>최대 비디오 해상도가 %1(으)로 설정됨</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1595"/>
         <source>Your privacy is now safe</source>
         <translation>이제 개인 정보가 안전 합니다.</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1610"/>
         <source>Downloads complete</source>
         <translation>다운로드 완료</translation>
     </message>
+    <message>
+        <source>%1 version %2 is now available.</source>
+        <translation>%1 version %2이(가) 사용 가능 합니다.</translation>
+    </message>
+    <message>
+        <source>Remind me later</source>
+        <translation>다음에 알리기</translation>
+    </message>
+    <message>
+        <source>Update</source>
+        <translation>업데이트</translation>
+    </message>
 </context>
 <context>
     <name>MediaView</name>
     <message>
-        <location filename="src/mediaview.cpp" line="702"/>
         <source>You can now paste the YouTube link into another application</source>
         <translation>이제 YouTube 링크를 다른프로그램에 붙여 넣을수 있습니다.</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="710"/>
         <source>You can now paste the video stream URL into another application</source>
         <translation>이제 비디오 스트림 URL을 다른프로그램에 붙여 넣을수 있습니다.</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="711"/>
         <source>The link will be valid only for a limited time.</source>
         <translation>해당 링크는 제한된 시간 동안만 유효 합니다.</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="800"/>
         <source>This is just the demo version of %1.</source>
         <translation>%1의 데모 버전 입니다.%1의 데모 버전 입니다.</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="801"/>
         <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="833"/>
+        <source>Get the full version</source>
+        <translation>풀 버전 구입</translation>
+    </message>
+    <message>
         <source>Continue</source>
         <translation>계속</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="988"/>
+        <source>Downloading %1</source>
+        <translation>%1 다운로드</translation>
+    </message>
+    <message>
         <source>of</source>
         <comment>Used in video parts, as in '2 of 3'</comment>
         <translation>/</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="1001"/>
         <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="1003"/>
         <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="1096"/>
         <source>Sent from %1</source>
         <translation>%1에서 전송됨</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="1128"/>
         <source>Unsubscribe from %1</source>
         <translation>%1 구독 해제</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="1132"/>
         <source>Subscribe to %1</source>
         <translation>%1 구독</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="1166"/>
         <source>Unsubscribed from %1</source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="1169"/>
         <source>Subscribed to %1</source>
         <translation type="unfinished"/>
     </message>
-    <message>
-        <location filename="src/mediaview.cpp" line="808"/>
-        <source>Get the full version</source>
-        <translation>풀 버전 구입</translation>
-    </message>
-    <message>
-        <location filename="src/mediaview.cpp" line="847"/>
-        <source>Downloading %1</source>
-        <translation>%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>%1의 새 버전이 존재 합니다!</translation>
     </message>
     <message>
-        <location filename="local/src/updatedialog.cpp" line="28"/>
         <source>%1 %2 is now available. You have %3.</source>
         <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>지금 다운로드 할까요?</translation>
     </message>
     <message>
-        <location filename="local/src/updatedialog.cpp" line="39"/>
         <source>Skip This Version</source>
         <translation>이 버전 건너뛰기</translation>
     </message>
     <message>
-        <location filename="local/src/updatedialog.cpp" line="43"/>
         <source>Remind Me Later</source>
         <translation>다음에 알리기</translation>
     </message>
     <message>
-        <location filename="local/src/updatedialog.cpp" line="47"/>
         <source>Install Update</source>
         <translation>업데이트 설치</translation>
     </message>
 <context>
     <name>PasteLineEdit</name>
     <message>
-        <location filename="local/src/pastelineedit.cpp" line="6"/>
         <source>Paste</source>
         <translation>붙여넣기</translation>
     </message>
 <context>
     <name>PlaylistItemDelegate</name>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="209"/>
         <source>%1 views</source>
         <translation>%1 views</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="309"/>
         <source>%1 of %2 (%3) — %4</source>
         <translation>%1 of %2 (%3) — %4</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="316"/>
         <source>Preparing</source>
         <translation>준비</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="318"/>
         <source>Failed</source>
         <translation>실패</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="320"/>
         <source>Completed</source>
         <translation>끝남</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="322"/>
         <source>Stopped</source>
         <translation>중지됨</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="358"/>
         <source>Stop downloading</source>
         <translation>다운로드 중지</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="368"/>
         <source>Show in %1</source>
         <translation>%1에서 보기</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="370"/>
         <source>Open parent folder</source>
         <translation>부모 폴더 열기</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="379"/>
         <source>Restart downloading</source>
         <translation>다운로드 재시작</translation>
     </message>
 <context>
     <name>PlaylistModel</name>
     <message>
-        <location filename="src/playlistmodel.cpp" line="70"/>
         <source>Searching...</source>
         <translation>검색중...</translation>
     </message>
     <message>
-        <location filename="src/playlistmodel.cpp" line="71"/>
         <source>Show %1 More</source>
         <translation>%1 추가 보기</translation>
     </message>
     <message>
-        <location filename="src/playlistmodel.cpp" line="72"/>
         <source>No videos</source>
         <translation>비디오없음</translation>
     </message>
     <message>
-        <location filename="src/playlistmodel.cpp" line="73"/>
         <source>No more videos</source>
         <translation>더 이상 비디오 없음</translation>
     </message>
 <context>
     <name>RefineSearchWidget</name>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="49"/>
         <source>Sort by</source>
         <translation>정렬</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="53"/>
         <source>Relevance</source>
         <translation>관련성</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="54"/>
-        <location filename="src/refinesearchwidget.cpp" line="69"/>
         <source>Date</source>
         <translation>날짜</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="55"/>
         <source>View Count</source>
         <translation>재생 횟수</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="56"/>
         <source>Rating</source>
         <translation>점수</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="73"/>
         <source>Anytime</source>
         <translation>언제나</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="74"/>
         <source>Today</source>
         <translation>오늘</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="75"/>
         <source>7 Days</source>
         <translation>7일</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="76"/>
         <source>30 Days</source>
         <translation>30일</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="89"/>
         <source>Duration</source>
         <translation>기간</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="93"/>
-        <location filename="src/refinesearchwidget.cpp" line="119"/>
         <source>All</source>
         <translation>모두</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="94"/>
         <source>Short</source>
         <translation>짧음</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="95"/>
         <source>Medium</source>
         <translation>중간</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="96"/>
         <source>Long</source>
         <translation>김</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="99"/>
         <source>Less than 4 minutes</source>
         <translation>4분 이하</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="100"/>
         <source>Between 4 and 20 minutes</source>
         <translation>4 ~ 20분 사이</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="101"/>
         <source>Longer than 20 minutes</source>
         <translation>20분 이상</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="115"/>
         <source>Quality</source>
         <translation>품질</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="120"/>
         <source>High Definition</source>
         <translation>HD</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="123"/>
         <source>720p or higher</source>
         <translation>720p 이상</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="136"/>
         <source>Done</source>
         <translation>마침</translation>
     </message>
 <context>
     <name>RegionsView</name>
     <message>
-        <location filename="src/regionsview.cpp" line="39"/>
         <source>Done</source>
         <translation>마침</translation>
     </message>
 <context>
     <name>SearchLineEdit</name>
     <message>
-        <location filename="src/searchlineedit.cpp" line="55"/>
         <source>Search</source>
         <translation>검색</translation>
     </message>
 <context>
     <name>SearchView</name>
     <message>
-        <location filename="src/searchview.cpp" line="83"/>
         <source>Welcome to &lt;a href=&apos;%1&apos;&gt;%2&lt;/a&gt;,</source>
         <translation>&lt;a href=&apos;%1&apos;&gt;%2&lt;/a&gt;에 오신걸 환영 합니다!</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="200"/>
-        <source>Get the full version</source>
-        <translation>풀 버전 구입</translation>
-    </message>
-    <message>
-        <location filename="src/searchview.cpp" line="110"/>
         <source>Enter</source>
         <extracomment>&quot;Enter&quot;, as in &quot;type&quot;. The whole phrase says: &quot;Enter a keyword to start watching videos&quot;</extracomment>
         <translation>언터</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="117"/>
         <source>a keyword</source>
         <translation>키워드</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="118"/>
         <source>a channel</source>
         <translation>채널</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="125"/>
         <source>to start watching videos.</source>
         <translation>비디오 보기 시작</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="156"/>
         <source>Watch</source>
         <translation>감상</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="174"/>
         <source>Recent keywords</source>
         <translation>최근 키워드</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="186"/>
         <source>Recent channels</source>
         <translation>최근 채널</translation>
     </message>
+    <message>
+        <source>Get the full version</source>
+        <translation>풀 버전 구입</translation>
+    </message>
 </context>
 <context>
     <name>SidebarHeader</name>
     <message>
-        <location filename="src/sidebarheader.cpp" line="38"/>
-        <location filename="src/sidebarheader.cpp" line="45"/>
         <source>&amp;Back</source>
         <translation>뒤로(&amp;B)</translation>
     </message>
     <message>
-        <location filename="src/sidebarheader.cpp" line="76"/>
         <source>Forward to %1</source>
         <translation>%1(으)로 이동</translation>
     </message>
     <message>
-        <location filename="src/sidebarheader.cpp" line="89"/>
         <source>Back to %1</source>
         <translation>%1(으)로 이동</translation>
     </message>
 <context>
     <name>SidebarWidget</name>
     <message>
-        <location filename="src/sidebarwidget.cpp" line="68"/>
         <source>Refine Search</source>
         <translation>검색 재정의</translation>
     </message>
     <message>
-        <location filename="src/sidebarwidget.cpp" line="167"/>
         <source>Did you mean: %1</source>
         <translation>원했던 단어: %1</translation>
     </message>
 <context>
     <name>SnapshotSettings</name>
     <message>
-        <location filename="src/snapshotsettings.cpp" line="47"/>
         <source>Change location...</source>
         <translation>위치 변경...</translation>
     </message>
     <message>
-        <location filename="src/snapshotsettings.cpp" line="64"/>
         <source>Snapshot saved to %1</source>
         <translation>%1에 스냅샷 저장됨</translation>
     </message>
     <message>
-        <location filename="src/snapshotsettings.cpp" line="117"/>
         <source>Snapshots location changed.</source>
         <translation>스냅샷 위치 변경됨</translation>
     </message>
 <context>
     <name>StandardFeedsView</name>
     <message>
-        <location filename="src/standardfeedsview.cpp" line="107"/>
         <source>Most Popular</source>
         <translation>가장 유명</translation>
     </message>
 </context>
+<context>
+    <name>UpdateDialog</name>
+    <message>
+        <source>Downloading update...</source>
+        <translation>업데이트 다운로드...</translation>
+    </message>
+    <message>
+        <source>Downloading %1...</source>
+        <translation type="unfinished"/>
+    </message>
+</context>
 <context>
     <name>Video</name>
     <message>
-        <location filename="src/video.cpp" line="287"/>
         <source>Cannot get video stream for %1</source>
         <translation>%1의 비디오 가져올수 없음</translation>
     </message>
-    <message>
-        <location filename="src/video.cpp" line="292"/>
-        <source>Network error: %1 for %2</source>
-        <translation>네트워크에러: %1 for %2</translation>
-    </message>
 </context>
 <context>
     <name>YTRegions</name>
     <message>
-        <location filename="src/ytregions.cpp" line="28"/>
         <source>Algeria</source>
         <translation>알제리아</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="29"/>
         <source>Argentina</source>
         <translation>아르헨티나</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="30"/>
         <source>Australia</source>
         <translation>오스트레일리아</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="31"/>
         <source>Belgium</source>
         <translation>벨기에</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="32"/>
         <source>Brazil</source>
         <translation>브라질</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="33"/>
         <source>Canada</source>
         <translation>캐나다</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="34"/>
         <source>Chile</source>
         <translation>칠레</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="35"/>
         <source>Colombia</source>
         <translation>콜롬비아</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="36"/>
         <source>Czech Republic</source>
         <translation>체코</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="37"/>
         <source>Egypt</source>
         <translation>이집트</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="38"/>
         <source>France</source>
         <translation>프랑스</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="39"/>
         <source>Germany</source>
         <translation>독일</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="40"/>
         <source>Ghana</source>
         <translation>가나</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="41"/>
         <source>Greece</source>
         <translation>그리스</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="42"/>
         <source>Hong Kong</source>
         <translation>홍콩</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="43"/>
         <source>Hungary</source>
         <translation>헝가리</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="44"/>
         <source>India</source>
         <translation>인디아</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="45"/>
         <source>Indonesia</source>
         <translation>인도네시아</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="46"/>
         <source>Ireland</source>
         <translation>아일랜드</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="47"/>
         <source>Israel</source>
         <translation>이스라엘</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="48"/>
         <source>Italy</source>
         <translation>이탈리아</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="49"/>
         <source>Japan</source>
         <translation>일본</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="50"/>
         <source>Jordan</source>
         <translation>조단</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="51"/>
         <source>Kenya</source>
         <translation>케냐</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="52"/>
         <source>Malaysia</source>
         <translation>말레이시아</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="53"/>
         <source>Mexico</source>
         <translation>멕시코</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="54"/>
         <source>Morocco</source>
         <translation>모로코</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="55"/>
         <source>Netherlands</source>
         <translation>네델란드</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="56"/>
         <source>New Zealand</source>
         <translation>뉴질랜드</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="57"/>
         <source>Nigeria</source>
         <translation>나이제리아</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="58"/>
         <source>Peru</source>
         <translation>페루</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="59"/>
         <source>Philippines</source>
         <translation>필리핀</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="60"/>
         <source>Poland</source>
         <translation>폴란드</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="61"/>
         <source>Russia</source>
         <translation>러시아</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="62"/>
         <source>Saudi Arabia</source>
         <translation>사우디 아라비아</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="63"/>
         <source>Singapore</source>
         <translation>싱가포르</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="64"/>
         <source>South Africa</source>
         <translation>사우스 아프리카</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="65"/>
         <source>South Korea</source>
         <translation>대한민국</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="66"/>
         <source>Spain</source>
         <translation>스페인</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="67"/>
         <source>Sweden</source>
         <translation>스웨덴</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="68"/>
         <source>Taiwan</source>
         <translation>대만</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="69"/>
         <source>Tunisia</source>
         <translation>투니시아</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="70"/>
         <source>Turkey</source>
         <translation>터키</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="71"/>
         <source>Uganda</source>
         <translation>우간다</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="72"/>
         <source>United Arab Emirates</source>
         <translation>아랍에메레이트</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="73"/>
         <source>United Kingdom</source>
         <translation>영국</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="74"/>
         <source>Yemen</source>
         <translation>예멘</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="148"/>
         <source>Worldwide</source>
         <translation>전세계적</translation>
     </message>
index 239728c3665fad6e8d23dc9442e366e3a8c6b95f..e379eef3bc0dad6242223a87c3d081bd3462877d 100644 (file)
@@ -2,67 +2,42 @@
 <context>
     <name>AboutView</name>
     <message>
-        <location filename="src/aboutview.cpp" line="58"/>
         <source>There&apos;s life outside the browser!</source>
         <translation>Браузердин тышында да өмүр бар!</translation>
     </message>
     <message>
-        <location filename="src/aboutview.cpp" line="59"/>
         <source>Version %1</source>
         <translation>Нуска %1</translation>
     </message>
     <message>
-        <location filename="src/aboutview.cpp" line="64"/>
         <source>Licensed to: %1</source>
         <translation>Лицензиянын ээси: %1</translation>
     </message>
     <message>
-        <location filename="src/aboutview.cpp" line="68"/>
         <source>%1 is Free Software but its development takes precious time.</source>
         <translation>%1 — бекер программалык жабдык, бирок анын иштетүүсү көп убагымды алат.</translation>
     </message>
     <message>
-        <location filename="src/aboutview.cpp" line="69"/>
         <source>Please &lt;a href=&apos;%1&apos;&gt;donate&lt;/a&gt; to support the continued development of %2.</source>
         <translation>%2&apos;га &lt;a href=&apos;%1&apos;&gt;тартуу кылып&lt;/a&gt; мындан аркы иштетүүсүн колдоп бериңиз.</translation>
     </message>
     <message>
-        <location filename="src/aboutview.cpp" line="73"/>
-        <source>You may want to try my other apps as well:</source>
-        <translation>Башка тиркемелеримди да карап көрсөңүз болот:</translation>
-    </message>
-    <message>
-        <location filename="src/aboutview.cpp" line="76"/>
-        <source>%1, a YouTube music player</source>
-        <translation>%1, YouTube&apos;дун музыка ойноткучу</translation>
-    </message>
-    <message>
-        <location filename="src/aboutview.cpp" line="80"/>
-        <source>%1, a music player</source>
-        <translation>%1, музыка ойноткучу</translation>
-    </message>
-    <message>
-        <location filename="src/aboutview.cpp" line="86"/>
         <source>Translate %1 to your native language using %2</source>
         <translation>%2 аркылуу %1&apos;ду өз эне тилиңизге которуңуз</translation>
     </message>
     <message>
-        <location filename="src/aboutview.cpp" line="91"/>
         <source>Icon designed by %1.</source>
         <translation>Иконканын автору %1.</translation>
     </message>
     <message>
-        <location filename="src/aboutview.cpp" line="95"/>
         <source>Released under the &lt;a href=&apos;%1&apos;&gt;GNU General Public License&lt;/a&gt;</source>
         <translation>&lt;a href=&apos;%1&apos;&gt;GNU General Public License&lt;/a&gt; шартында чыгарылган</translation>
     </message>
     <message>
-        <location filename="src/aboutview.cpp" line="110"/>
         <source>&amp;Close</source>
         <translation>&amp;Жабуу</translation>
     </message>
     <message>
-        <location filename="src/aboutview.h" line="40"/>
         <source>About</source>
         <translation>Программа тууралуу</translation>
     </message>
 <context>
     <name>ActivationDialog</name>
     <message>
-        <location filename="local/src/activationdialog.cpp" line="17"/>
         <source>Enter your License Details</source>
         <translation>Лицензиялык маалыматтарыңызды киргизиңиз</translation>
     </message>
     <message>
-        <location filename="local/src/activationdialog.cpp" line="29"/>
         <source>&amp;Email:</source>
         <translation>&amp;Эл. почта:</translation>
     </message>
     <message>
-        <location filename="local/src/activationdialog.cpp" line="35"/>
         <source>&amp;Code:</source>
         <translation>&amp;Код:</translation>
     </message>
 <context>
     <name>ActivationView</name>
     <message>
-        <location filename="local/src/activationview.cpp" line="47"/>
         <source>Please license %1</source>
         <translation>%1 лицензиялап алыңыз</translation>
     </message>
     <message>
-        <location filename="local/src/activationview.cpp" line="51"/>
         <source>This demo has expired.</source>
         <translation>Демострациялоо мөөнөтү бүттү.</translation>
     </message>
     <message>
-        <location filename="local/src/activationview.cpp" line="53"/>
         <source>The full version allows you to watch videos without interruptions.</source>
-        <oldsource>The full version allows you to download videos longer than %1 minutes and to watch videos without interruptions.</oldsource>
         <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>Лицензиясыз болгондуктан, тиркеменин мөөнөтү %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>
     </message>
     <message>
-        <location filename="local/src/activationview.cpp" line="70"/>
         <source>Use Demo</source>
         <translation>Демону колдонуу</translation>
     </message>
     <message>
-        <location filename="local/src/activationview.cpp" line="77"/>
         <source>Enter License</source>
         <translation>Лицензияны киргизиңиз</translation>
     </message>
     <message>
-        <location filename="local/src/activationview.cpp" line="85"/>
         <source>Buy License</source>
         <translation>Лицензияны сатып алуу</translation>
     </message>
 </context>
+<context>
+    <name>AppWidget</name>
+    <message>
+        <source>Download</source>
+        <translation type="unfinished"/>
+    </message>
+</context>
 <context>
     <name>ChannelAggregator</name>
     <message>
-        <location filename="src/channelaggregator.cpp" line="183"/>
         <source>By %1</source>
         <translation>%1 тарабынан</translation>
     </message>
     <message numerus="yes">
-        <location filename="src/channelaggregator.cpp" line="185"/>
         <source>You have %n new video(s)</source>
         <translation type="unfinished"><numerusform></numerusform></translation>
     </message>
 <context>
     <name>ChannelItemDelegate</name>
     <message>
-        <location filename="src/channelitemdelegate.cpp" line="67"/>
         <source>All Videos</source>
         <translation>Бардык видеолор</translation>
     </message>
     <message>
-        <location filename="src/channelitemdelegate.cpp" line="85"/>
         <source>Unwatched Videos</source>
         <translation>Көрүлбөгөн видеолор</translation>
     </message>
 <context>
     <name>ChannelView</name>
     <message>
-        <location filename="src/channelview.cpp" line="151"/>
-        <source>Mark all as watched</source>
-        <translation>Баарын көрүлдү деп белгилөө</translation>
-    </message>
-    <message>
-        <location filename="src/channelview.cpp" line="159"/>
-        <source>Show Updated</source>
-        <translation>Жаңыланганын көрсөтүү</translation>
-    </message>
-    <message>
-        <location filename="src/channelview.cpp" line="103"/>
         <source>Name</source>
         <translation>Аты</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="110"/>
         <source>Last Updated</source>
         <translation>Соңку жаңылангандар</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="117"/>
         <source>Last Added</source>
         <translation>Соңку кошулгандар</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="124"/>
         <source>Last Watched</source>
         <translation>Соңку көрүлгөндөр</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="131"/>
         <source>Most Watched</source>
         <translation>Эң көп көрүлгөндөр</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="139"/>
         <source>Sort by</source>
         <translation>Сорттоо</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="222"/>
+        <source>Mark all as watched</source>
+        <translation>Баарын көрүлдү деп белгилөө</translation>
+    </message>
+    <message>
+        <source>Show Updated</source>
+        <translation>Жаңыланганын көрсөтүү</translation>
+    </message>
+    <message>
         <source>All Videos</source>
         <translation>Бардык видеолор</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="226"/>
         <source>Unwatched Videos</source>
         <translation>Көрүлбөгөн видеолор</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="244"/>
         <source>Mark as Watched</source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="257"/>
         <source>Unsubscribe</source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="270"/>
         <source>There are no updated subscriptions at this time.</source>
         <translation>Учурда жаңыланган жазылуулар жок.</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="272"/>
         <source>You have no subscriptions. Use the star symbol to subscribe to channels.</source>
         <translation>Сизде жазылуулар жок. Каналдарга жазылуу үчүн жылдызча символун колдонуңуз.</translation>
     </message>
 <context>
     <name>ClearButton</name>
     <message>
-        <location filename="src/exlineedit.cpp" line="6"/>
         <source>Clear</source>
         <translation>Тазалоо</translation>
     </message>
 <context>
     <name>DataUtils</name>
     <message>
-        <location filename="src/datautils.cpp" line="88"/>
         <source>Just now</source>
         <translation type="unfinished"/>
     </message>
     <message numerus="yes">
-        <location filename="src/datautils.cpp" line="90"/>
-        <source>%n minute(s) ago</source>
-        <translation type="unfinished"><numerusform></numerusform></translation>
-    </message>
-    <message numerus="yes">
-        <location filename="src/datautils.cpp" line="92"/>
         <source>%n hour(s) ago</source>
         <translation type="unfinished"><numerusform></numerusform></translation>
     </message>
     <message numerus="yes">
-        <location filename="src/datautils.cpp" line="94"/>
         <source>%n day(s) ago</source>
         <translation type="unfinished"><numerusform></numerusform></translation>
     </message>
     <message numerus="yes">
-        <location filename="src/datautils.cpp" line="96"/>
         <source>%n weeks(s) ago</source>
         <translation type="unfinished"><numerusform></numerusform></translation>
     </message>
     <message numerus="yes">
-        <location filename="src/datautils.cpp" line="98"/>
         <source>%n month(s) ago</source>
         <translation type="unfinished"><numerusform></numerusform></translation>
     </message>
 <context>
     <name>DownloadItem</name>
     <message>
-        <location filename="src/downloaditem.cpp" line="406"/>
         <source>bytes</source>
         <translation>байт</translation>
     </message>
     <message>
-        <location filename="src/downloaditem.cpp" line="409"/>
         <source>KB</source>
         <translation>КБ</translation>
     </message>
     <message>
-        <location filename="src/downloaditem.cpp" line="412"/>
         <source>MB</source>
         <translation>МБ</translation>
     </message>
     <message>
-        <location filename="src/downloaditem.cpp" line="421"/>
         <source>bytes/sec</source>
         <translation>байт/сек</translation>
     </message>
     <message>
-        <location filename="src/downloaditem.cpp" line="424"/>
         <source>KB/sec</source>
         <translation>КБ/сек</translation>
     </message>
     <message>
-        <location filename="src/downloaditem.cpp" line="427"/>
         <source>MB/sec</source>
         <translation>МБ/сек</translation>
     </message>
     <message>
-        <location filename="src/downloaditem.cpp" line="433"/>
         <source>seconds</source>
         <translation>секунда</translation>
     </message>
     <message>
-        <location filename="src/downloaditem.cpp" line="436"/>
         <source>minutes</source>
         <translation>минута</translation>
     </message>
     <message>
-        <location filename="src/downloaditem.cpp" line="439"/>
         <source>%4 %5 remaining</source>
         <translation>%4 %5 калды</translation>
     </message>
 <context>
     <name>DownloadManager</name>
     <message>
-        <location filename="src/downloadmanager.cpp" line="77"/>
         <source>This is just the demo version of %1.</source>
         <translation>Бул жөн эле %1&apos;дун демо-версиясы.</translation>
     </message>
     <message>
-        <location filename="src/downloadmanager.cpp" line="79"/>
         <source>It can only download videos shorter than %1 minutes so you can test the download functionality.</source>
         <translation>Жүктөө функционалдуулугун текшерүү үчүн, бул %1 минутадан кыскараак видеолорду гана жүктөп бере алат.</translation>
     </message>
     <message>
-        <location filename="src/downloadmanager.cpp" line="85"/>
         <source>Continue</source>
         <translation>Улантуу</translation>
     </message>
     <message>
-        <location filename="src/downloadmanager.cpp" line="86"/>
         <source>Get the full version</source>
         <translation>Толук жоромолун алуу</translation>
     </message>
     <message>
-        <location filename="src/downloadmanager.cpp" line="157"/>
         <source>%1 downloaded in %2</source>
         <translation>%2 жерине %1 файлы жүктөлдү</translation>
     </message>
     <message>
-        <location filename="src/downloadmanager.cpp" line="160"/>
         <source>Download finished</source>
         <translation>Жүктөп алуу аякталды</translation>
     </message>
     <message numerus="yes">
-        <location filename="src/downloadmanager.cpp" line="165"/>
         <source>%n Download(s)</source>
         <translation type="unfinished"><numerusform></numerusform></translation>
     </message>
 <context>
     <name>DownloadSettings</name>
     <message>
-        <location filename="src/downloadsettings.cpp" line="36"/>
         <source>Change location...</source>
         <translation>Жайгашкан жерин өзгөртүү...</translation>
     </message>
     <message>
-        <location filename="src/downloadsettings.cpp" line="69"/>
         <source>Choose the download location</source>
         <translation>Жүктөп алуу жерин тандоо</translation>
     </message>
     <message>
-        <location filename="src/downloadsettings.cpp" line="81"/>
         <source>Download location changed.</source>
         <translation>Жүктөп алуу жери өзгөртүлдү.</translation>
     </message>
     <message>
-        <location filename="src/downloadsettings.cpp" line="83"/>
         <source>Current downloads will still go in the previous location.</source>
         <translation>Кезекте жүктөлүп жаткандар мурунку жерге сакталат.</translation>
     </message>
     <message>
-        <location filename="src/downloadsettings.cpp" line="94"/>
         <source>Downloading to: %1</source>
         <translation>%1 папкасына жүктөлүүдө</translation>
     </message>
 <context>
     <name>DownloadView</name>
     <message>
-        <location filename="src/downloadview.cpp" line="38"/>
-        <location filename="src/downloadview.h" line="45"/>
         <source>Downloads</source>
         <translation>Жүктөөлөр</translation>
     </message>
 </context>
-<context>
-    <name>DownloadWidget</name>
-    <message>
-        <location filename="local/src/updatedialog.cpp" line="60"/>
-        <source>Downloading update...</source>
-        <translation>Жаңылоо жүктөлүүдө...</translation>
-    </message>
-</context>
 <context>
     <name>Extra</name>
     <message>
-        <location filename="local/src/extra.cpp" line="251"/>
         <source>The executable file has been tempered with, maybe by a virus.</source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="local/src/extra.cpp" line="252"/>
         <source>%1 will not run. Try installing again.</source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="local/src/extra.cpp" line="253"/>
         <source>Quit</source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="local/src/extra.cpp" line="254"/>
         <source>Reinstall</source>
         <translation type="unfinished"/>
     </message>
 <context>
     <name>GlobalShortcuts</name>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="36"/>
         <source>Play</source>
         <translation>Ойнотуу</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="37"/>
         <source>Pause</source>
         <translation>Бир азга токтотуу</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="38"/>
         <source>Play/Pause</source>
         <translation>Ойнотуу/Бир азга токтотуу</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="39"/>
         <source>Stop</source>
         <translation>Токтотуу</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="40"/>
         <source>Stop playing after current track</source>
         <translation>Кезектеги жолчодон кийин ойнотууну токтотуу</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="41"/>
         <source>Next track</source>
         <translation>Кийинки жолчо</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="42"/>
         <source>Previous track</source>
         <translation>Мурунку жолчо</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="43"/>
         <source>Increase volume</source>
         <translation>Көлөмүн чоңойтуу</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="44"/>
         <source>Decrease volume</source>
         <translation>Көлөмүн азайтуу</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="45"/>
         <source>Mute</source>
         <translation>Үнүн өчүрүү</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="46"/>
         <source>Seek forward</source>
         <translation>Алга түрүү</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="47"/>
         <source>Seek backward</source>
         <translation>Артка түрүү</translation>
     </message>
 <context>
     <name>HomeView</name>
     <message>
-        <location filename="src/homeview.cpp" line="58"/>
         <source>Search</source>
         <translation>Издөө</translation>
     </message>
     <message>
-        <location filename="src/homeview.cpp" line="60"/>
         <source>Find videos and channels by keyword</source>
         <translation>Ачкыч сөз менен видеолорду жана каналдарды табыңыз</translation>
     </message>
     <message>
-        <location filename="src/homeview.cpp" line="65"/>
         <source>Browse</source>
         <translation>Сереп</translation>
     </message>
     <message>
-        <location filename="src/homeview.cpp" line="67"/>
         <source>Browse videos by category</source>
         <translation>Видеолорду категориясы боюнча кароо</translation>
     </message>
     <message>
-        <location filename="src/homeview.cpp" line="71"/>
         <source>Subscriptions</source>
         <translation>Жазылуулар</translation>
     </message>
     <message>
-        <location filename="src/homeview.cpp" line="73"/>
         <source>Channel subscriptions</source>
         <translation>Канал жазылуулары</translation>
     </message>
     <message>
-        <location filename="src/homeview.h" line="44"/>
         <source>Make yourself comfortable</source>
         <translation>Өз үйүңүздөгүдөй болуңуз</translation>
     </message>
 <context>
     <name>LoadingWidget</name>
     <message>
-        <location filename="src/loadingwidget.cpp" line="125"/>
         <source>Error</source>
         <translation>Ката</translation>
     </message>
 <context>
     <name>MainWindow</name>
     <message>
-        <location filename="src/mainwindow.cpp" line="291"/>
+        <source>&amp;Window</source>
+        <translation>&amp;Терезе</translation>
+    </message>
+    <message>
+        <source>&amp;Minimize</source>
+        <translation>&amp;Түрүү</translation>
+    </message>
+    <message>
         <source>&amp;Stop</source>
         <translation>&amp;Токтотуу</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="292"/>
         <source>Stop playback and go back to the search view</source>
         <translation>Ойнотууну токтотуп издөө көрүнүшүнө кайтуу</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="307"/>
+        <source>P&amp;revious</source>
+        <translation>&amp;Мурунку</translation>
+    </message>
+    <message>
+        <source>Go back to the previous track</source>
+        <translation>Мурунку жолчого кайтуу</translation>
+    </message>
+    <message>
         <source>S&amp;kip</source>
         <translation>Ө&amp;ткөрүү</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="308"/>
         <source>Skip to the next video</source>
         <translation>Кийинки видеого өтүү</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1134"/>
-        <source>&amp;Pause</source>
-        <translation>&amp;Бир азга токтотуу</translation>
+        <source>&amp;Play</source>
+        <translation>&amp;Ойнотуу</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1135"/>
-        <source>Pause playback</source>
-        <translation>Ойнотууну бир азга токтотуу</translation>
+        <source>Resume playback</source>
+        <translation>Ойнотууну улантуу</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="321"/>
         <source>&amp;Full Screen</source>
         <translation>&amp;Толук экран</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="322"/>
         <source>Go full screen</source>
         <translation>Толук экранга өтүү</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="336"/>
+        <source>&amp;Compact Mode</source>
+        <translation>&amp;Тыгыз режим</translation>
+    </message>
+    <message>
         <source>Hide the playlist and the toolbar</source>
         <translation>Ойнотуу тизмесин жана аспап панелин жашыруу</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="349"/>
+        <source>Open the &amp;YouTube Page</source>
+        <translation>&amp;YouTube барагын ачуу</translation>
+    </message>
+    <message>
         <source>Go to the YouTube video page and pause playback</source>
         <translation>Видеонун YouTube барагына өтүү жана ойнотууну бир азга токтотуу</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="356"/>
+        <source>Copy the YouTube &amp;Link</source>
+        <translation>YouTube &amp;шилтемесин көчүрүү</translation>
+    </message>
+    <message>
         <source>Copy the current video YouTube link to the clipboard</source>
         <translation>Кезектеги видеонун YouTube шилтемесин алмашуу буферине көчүрүү</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="363"/>
+        <source>Copy the Video Stream &amp;URL</source>
+        <translation>Видео агымдын &amp;шилтемесин көчүрүү</translation>
+    </message>
+    <message>
         <source>Copy the current video stream URL to the clipboard</source>
         <translation>Кезектеги видео агымдын дарегин алмашуу буферине көчүрүү</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="370"/>
+        <source>Find Video &amp;Parts</source>
+        <translation>Видео&amp;фрагменттерди табуу</translation>
+    </message>
+    <message>
         <source>Find other video parts hopefully in the right order</source>
         <translation>Видеонун башка бөлүктөрүн үмүт кылып туура ирети менен табуу</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="376"/>
         <source>&amp;Remove</source>
         <translation>Ө&amp;чүрүү</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="377"/>
         <source>Remove the selected videos from the playlist</source>
         <translation>Ойнотуу тизмесиндеги тандалган видеолорду өчүрүү</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="383"/>
         <source>Move &amp;Up</source>
         <translation>Ө&amp;йдө</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="384"/>
         <source>Move up the selected videos in the playlist</source>
         <translation>Ойнотуу тизмесиндеги тандалган видеолорду өйдө жылдыруу</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="390"/>
         <source>Move &amp;Down</source>
         <translation>&amp;Ылдый</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="391"/>
         <source>Move down the selected videos in the playlist</source>
         <translation>Ойнотуу тизмесиндеги тандалган видеолорду ылдый жылдыруу</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="402"/>
+        <source>&amp;Clear Recent Searches</source>
+        <translation>Соңку издөөлөрдү &amp;тазалоо</translation>
+    </message>
+    <message>
         <source>Clear the search history. Cannot be undone.</source>
         <translation>Издөө тарыхын тазалоо. Өзгөртүүлөр кайталанбас.</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="407"/>
         <source>&amp;Quit</source>
         <translation>&amp;Чыгуу</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="410"/>
         <source>Bye</source>
         <translation>Кош болуңуз</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="414"/>
         <source>&amp;Website</source>
         <translation>&amp;Веб-сайт</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="416"/>
         <source>%1 on the Web</source>
         <translation>%1 интернетте</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="422"/>
+        <source>Make a &amp;Donation</source>
+        <translation>&amp;Тартуу кылуу</translation>
+    </message>
+    <message>
         <source>Please support the continued development of %1</source>
         <translation>%1&apos;дун мындан аркы иштетүүсүн колдоп бериңиз</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="427"/>
         <source>&amp;About</source>
         <translation>Программа &amp;жөнүндө</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="429"/>
         <source>Info about %1</source>
         <translation>%1 жөнүндө маалымат</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="437"/>
         <source>Search</source>
         <translation>Издөө</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="456"/>
         <source>Mute volume</source>
         <translation>Үндү өчүрүү</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="490"/>
-        <location filename="src/mainwindow.cpp" line="1609"/>
+        <source>&amp;Manually Start Playing</source>
+        <translation>Ойнотууну &amp;кол менен баштатуу</translation>
+    </message>
+    <message>
+        <source>Manually start playing videos</source>
+        <translation>Видео ойнотууну кол менен баштатуу</translation>
+    </message>
+    <message>
         <source>&amp;Downloads</source>
         <translation>&amp;Жүктөөлөр</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="491"/>
         <source>Show details about video downloads</source>
         <translation>Видео жүктөөлөрү жөнүндө кошумча маалымат көрсөтүү</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="499"/>
         <source>&amp;Download</source>
         <translation>&amp;Жүктөп алуу</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="500"/>
         <source>Download the current video</source>
         <translation>Кезектеги видеону жүктөп алуу</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="510"/>
         <source>Take &amp;Snapshot</source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="517"/>
         <source>&amp;Subscribe to Channel</source>
         <translation>Каналга &amp;жазылуу</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="525"/>
         <source>Share the current video using %1</source>
         <translation>Учурдагы видеону %1 аркылуу бөлүшүү</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="545"/>
         <source>&amp;Email</source>
         <translation>&amp;Эл. почта</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="546"/>
         <source>Email</source>
         <translation>Эл. почта</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="551"/>
         <source>&amp;Close</source>
         <translation>&amp;Жабуу</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="561"/>
         <source>&amp;Float on Top</source>
         <translation>Үстүнөн &amp;калкытуу</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="566"/>
         <source>&amp;Adjust Window Size</source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="571"/>
         <source>&amp;Stop After This Video</source>
         <translation>Бул видеодон кийин &amp;токтотуу</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="578"/>
         <source>&amp;Report an Issue...</source>
         <translation>Катаны &amp;маалымдоо...</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="582"/>
         <source>&amp;Refine Search...</source>
         <translation>Издөөнү &amp;тактоо...</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="594"/>
         <source>More...</source>
         <translation>Дагы...</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="597"/>
         <source>&amp;Related Videos</source>
         <translation>&amp;Байланыштуу видеолор</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="599"/>
         <source>Watch videos related to the current one</source>
         <translation>Кезектегиге байланыштуу видеону көрүү</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="605"/>
         <source>Open in &amp;Browser...</source>
         <translation>&amp;Браузерден ачуу...</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="612"/>
-        <source>&amp;Love %1? Rate it!</source>
+        <source>Restricted Mode</source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="633"/>
-        <source>&amp;Application</source>
-        <translation>&amp;Тиркеме</translation>
+        <source>Hide videos that may contain inappropriate content</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <source>&amp;Love %1? Rate it!</source>
+        <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="618"/>
         <source>Buy %1...</source>
         <translation>%1&apos;ду сатып алуу...</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="647"/>
+        <source>&amp;Application</source>
+        <translation>&amp;Тиркеме</translation>
+    </message>
+    <message>
         <source>&amp;Playback</source>
         <translation>&amp;Ойнотуу</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="661"/>
         <source>&amp;Playlist</source>
         <translation>Ойнотуу &amp;тизмеси</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="670"/>
         <source>&amp;Video</source>
         <translation>&amp;Видео</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="686"/>
-        <source>&amp;View</source>
-        <translation>&amp;Көрүнүш</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="695"/>
         <source>&amp;Share</source>
         <translation>&amp;Бөлүшүү</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="709"/>
+        <source>&amp;View</source>
+        <translation>&amp;Көрүнүш</translation>
+    </message>
+    <message>
         <source>&amp;Help</source>
         <translation>&amp;Жардам</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="751"/>
         <source>Press %1 to raise the volume, %2 to lower it</source>
         <translation>Көлөмүн чоңойтуу үчүн %1 комбинациясын басыңыз, кичирейтүү үчүн %2</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1021"/>
-        <location filename="src/mainwindow.cpp" line="1027"/>
+        <source>Choose your content location</source>
+        <translation>Мазмундун жайгашкан жерин тандаңыз</translation>
+    </message>
+    <message>
         <source>Opening %1</source>
         <translation>%1 ачылууда</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1080"/>
         <source>Do you want to exit %1 with a download in progress?</source>
         <translation>Жүктөп алуу болуп жаткан кезде %1&apos;дан чыгууну каалайсызбы?</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1081"/>
         <source>If you close %1 now, this download will be cancelled.</source>
         <translation>Эгер сиз %1&apos;ду азыр жапсаңыз, бул жүктөө жокко чыгарылат.</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1086"/>
         <source>Close and cancel download</source>
         <translation>Жабуу жана жүктөөнү жокко чыгаруу</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1087"/>
         <source>Wait for download to finish</source>
         <translation>Жүктөп алуунун аяктоосун күтүү</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1158"/>
-        <source>&amp;Loading...</source>
-        <translation type="unfinished"/>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="1264"/>
-        <source>Leave &amp;Full Screen</source>
-        <translation>&amp;Толук экрандан чыгуу</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="1718"/>
-        <source>%1 version %2 is now available.</source>
-        <translation>%1 версия %2 азыр жеткиликтүү.</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="1722"/>
-        <source>Remind me later</source>
-        <translation>Кечирээк эске салуу</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="1723"/>
-        <source>Update</source>
-        <translation>Жаңылоо</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="1127"/>
         <source>Error: %1</source>
         <translation>Ката: %1</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="300"/>
-        <source>P&amp;revious</source>
-        <translation>&amp;Мурунку</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="301"/>
-        <source>Go back to the previous track</source>
-        <translation>Мурунку жолчого кайтуу</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="335"/>
-        <source>&amp;Compact Mode</source>
-        <translation>&amp;Тыгыз режим</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="348"/>
-        <source>Open the &amp;YouTube Page</source>
-        <translation>&amp;YouTube барагын ачуу</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="355"/>
-        <source>Copy the YouTube &amp;Link</source>
-        <translation>YouTube &amp;шилтемесин көчүрүү</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="362"/>
-        <source>Copy the Video Stream &amp;URL</source>
-        <translation>Видео агымдын &amp;шилтемесин көчүрүү</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="369"/>
-        <source>Find Video &amp;Parts</source>
-        <translation>Видео&amp;фрагменттерди табуу</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="397"/>
-        <source>&amp;Clear Recent Searches</source>
-        <translation>Соңку издөөлөрдү &amp;тазалоо</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="421"/>
-        <source>Make a &amp;Donation</source>
-        <translation>&amp;Тартуу кылуу</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="483"/>
-        <source>&amp;Manually Start Playing</source>
-        <translation>Ойнотууну &amp;кол менен баштатуу</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="484"/>
-        <source>Manually start playing videos</source>
-        <translation>Видео ойнотууну кол менен баштатуу</translation>
+        <source>&amp;Pause</source>
+        <translation>&amp;Бир азга токтотуу</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="847"/>
-        <source>Choose your content location</source>
-        <translation>Мазмундун жайгашкан жерин тандаңыз</translation>
+        <source>Pause playback</source>
+        <translation>Ойнотууну бир азга токтотуу</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="314"/>
-        <location filename="src/mainwindow.cpp" line="1142"/>
-        <location filename="src/mainwindow.cpp" line="1150"/>
-        <source>&amp;Play</source>
-        <translation>&amp;Ойнотуу</translation>
+        <source>&amp;Loading...</source>
+        <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="315"/>
-        <location filename="src/mainwindow.cpp" line="1143"/>
-        <location filename="src/mainwindow.cpp" line="1151"/>
-        <source>Resume playback</source>
-        <translation>Ойнотууну улантуу</translation>
+        <source>Leave &amp;Full Screen</source>
+        <translation>&amp;Толук экрандан чыгуу</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1437"/>
         <source>Remaining time: %1</source>
         <translation>Калган убагы: %1</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1528"/>
         <source>Volume at %1%</source>
         <translation>Көлөмү %1%</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1534"/>
         <source>Volume is muted</source>
         <translation>Үнү өчүрүлдү</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1537"/>
         <source>Volume is unmuted</source>
         <translation>Үнү күйгүзүлдү</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1548"/>
         <source>Maximum video definition set to %1</source>
         <translation>Видеонун жогорку чечими: %1</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1595"/>
         <source>Your privacy is now safe</source>
         <translation>Жашырындуулугуңуз камсыздалды</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1610"/>
         <source>Downloads complete</source>
         <translation>Жүктөлөр аякталды</translation>
     </message>
+    <message>
+        <source>%1 version %2 is now available.</source>
+        <translation>%1 версия %2 азыр жеткиликтүү.</translation>
+    </message>
+    <message>
+        <source>Remind me later</source>
+        <translation>Кечирээк эске салуу</translation>
+    </message>
+    <message>
+        <source>Update</source>
+        <translation>Жаңылоо</translation>
+    </message>
 </context>
 <context>
     <name>MediaView</name>
     <message>
-        <location filename="src/mediaview.cpp" line="702"/>
         <source>You can now paste the YouTube link into another application</source>
         <translation>YouTube&apos;дун дарегин эми башка тиркемеге койсоңуз болот</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="710"/>
         <source>You can now paste the video stream URL into another application</source>
         <translation>Видео агымдын дарегин эми башка тиркемеге койсоңуз болот</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="711"/>
         <source>The link will be valid only for a limited time.</source>
         <translation>Чакан убакытка чейин гана шилтеме анык болот.</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="800"/>
         <source>This is just the demo version of %1.</source>
         <translation>Бул жөн эле %1&apos;дун демо-версиясы.</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="801"/>
         <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="833"/>
+        <source>Get the full version</source>
+        <translation>Толук версиясын алуу</translation>
+    </message>
+    <message>
         <source>Continue</source>
         <translation>Улантуу</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="988"/>
+        <source>Downloading %1</source>
+        <translation>%1 жүктөп алынууда</translation>
+    </message>
+    <message>
         <source>of</source>
         <comment>Used in video parts, as in '2 of 3'</comment>
         <translation>/</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="1001"/>
         <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="1003"/>
         <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="1096"/>
         <source>Sent from %1</source>
         <translation>%1 жеринен жөнөтүү</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="1128"/>
         <source>Unsubscribe from %1</source>
         <translation>%1 каналындагы жазылуудан чыгуу</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="1132"/>
         <source>Subscribe to %1</source>
         <translation>%1 каналына жазылуу</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="1166"/>
         <source>Unsubscribed from %1</source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="1169"/>
         <source>Subscribed to %1</source>
         <translation type="unfinished"/>
     </message>
-    <message>
-        <location filename="src/mediaview.cpp" line="808"/>
-        <source>Get the full version</source>
-        <translation>Толук версиясын алуу</translation>
-    </message>
-    <message>
-        <location filename="src/mediaview.cpp" line="847"/>
-        <source>Downloading %1</source>
-        <translation>%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>%1&apos;дун жаңы версиясы жеткиликтүү!</translation>
     </message>
     <message>
-        <location filename="local/src/updatedialog.cpp" line="28"/>
         <source>%1 %2 is now available. You have %3.</source>
         <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>Азыр жүктөп алгыңыз келеби?</translation>
     </message>
     <message>
-        <location filename="local/src/updatedialog.cpp" line="39"/>
         <source>Skip This Version</source>
         <translation>Бул версияны өткөрүү</translation>
     </message>
     <message>
-        <location filename="local/src/updatedialog.cpp" line="43"/>
         <source>Remind Me Later</source>
         <translation>Кечирээк эске салдыруу</translation>
     </message>
     <message>
-        <location filename="local/src/updatedialog.cpp" line="47"/>
         <source>Install Update</source>
         <translation>Жаңылоону орнотуу</translation>
     </message>
 <context>
     <name>PasteLineEdit</name>
     <message>
-        <location filename="local/src/pastelineedit.cpp" line="6"/>
         <source>Paste</source>
         <translation>Коюу</translation>
     </message>
 <context>
     <name>PlaylistItemDelegate</name>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="209"/>
         <source>%1 views</source>
         <translation>%1 көрүү</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="309"/>
         <source>%1 of %2 (%3) — %4</source>
         <translation>%1 / %2 (%3) — %4</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="316"/>
         <source>Preparing</source>
         <translation>Даярдалууда</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="318"/>
         <source>Failed</source>
         <translation>Ката</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="320"/>
         <source>Completed</source>
         <translation>Аякталды</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="322"/>
         <source>Stopped</source>
         <translation>Токтотулду</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="358"/>
         <source>Stop downloading</source>
         <translation>Жүктөп алууну токтотуу</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="368"/>
         <source>Show in %1</source>
         <translation>%1 жеринен көрсөтүү</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="370"/>
         <source>Open parent folder</source>
         <translation>Ата-эне каталогун ачуу</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="379"/>
         <source>Restart downloading</source>
         <translation>Жүктөп алууну кайтадан жүргүзүү</translation>
     </message>
 <context>
     <name>PlaylistModel</name>
     <message>
-        <location filename="src/playlistmodel.cpp" line="70"/>
         <source>Searching...</source>
         <translation>Изделүүдө...</translation>
     </message>
     <message>
-        <location filename="src/playlistmodel.cpp" line="71"/>
         <source>Show %1 More</source>
         <translation>Дагы %1 видеону көрсөтүү</translation>
     </message>
     <message>
-        <location filename="src/playlistmodel.cpp" line="72"/>
         <source>No videos</source>
         <translation>Видеолор жок</translation>
     </message>
     <message>
-        <location filename="src/playlistmodel.cpp" line="73"/>
         <source>No more videos</source>
         <translation>Дагы видеолор жок</translation>
     </message>
 <context>
     <name>RefineSearchWidget</name>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="49"/>
         <source>Sort by</source>
         <translation>Сорттоо</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="53"/>
         <source>Relevance</source>
         <translation>Релеванттуулук</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="54"/>
-        <location filename="src/refinesearchwidget.cpp" line="69"/>
         <source>Date</source>
         <translation>Дата</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="55"/>
         <source>View Count</source>
         <translation>Көрүү саны</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="56"/>
         <source>Rating</source>
         <translation>Рейтинг</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="73"/>
         <source>Anytime</source>
         <translation>Каалаган убакта</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="74"/>
         <source>Today</source>
         <translation>Бүгүн</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="75"/>
         <source>7 Days</source>
         <translation>7 күн</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="76"/>
         <source>30 Days</source>
         <translation>30 күн</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="89"/>
         <source>Duration</source>
         <translation>Узактык</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="93"/>
-        <location filename="src/refinesearchwidget.cpp" line="119"/>
         <source>All</source>
         <translation>Баары</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="94"/>
         <source>Short</source>
         <translation>Кыска</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="95"/>
         <source>Medium</source>
         <translation>Орточо</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="96"/>
         <source>Long</source>
         <translation>Узак</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="99"/>
         <source>Less than 4 minutes</source>
         <translation>4 минутадан кыскараак</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="100"/>
         <source>Between 4 and 20 minutes</source>
         <translation>4 менен 20 минутанын арасынан</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="101"/>
         <source>Longer than 20 minutes</source>
         <translation>20 минутадан узагыраак</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="115"/>
         <source>Quality</source>
         <translation>Сапат</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="120"/>
         <source>High Definition</source>
         <translation>Жогорку чечим</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="123"/>
         <source>720p or higher</source>
         <translation>720p же жогору</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="136"/>
         <source>Done</source>
         <translation>Даяр</translation>
     </message>
 <context>
     <name>RegionsView</name>
     <message>
-        <location filename="src/regionsview.cpp" line="39"/>
         <source>Done</source>
         <translation>Даяр</translation>
     </message>
 <context>
     <name>SearchLineEdit</name>
     <message>
-        <location filename="src/searchlineedit.cpp" line="55"/>
         <source>Search</source>
         <translation>Издөө</translation>
     </message>
 <context>
     <name>SearchView</name>
     <message>
-        <location filename="src/searchview.cpp" line="83"/>
         <source>Welcome to &lt;a href=&apos;%1&apos;&gt;%2&lt;/a&gt;,</source>
         <translation>&lt;a href=&apos;%1&apos;&gt;%2&lt;/a&gt;&apos;га кош келиңиз,</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="200"/>
-        <source>Get the full version</source>
-        <translation>Толук версиясын сатып алуу</translation>
-    </message>
-    <message>
-        <location filename="src/searchview.cpp" line="110"/>
         <source>Enter</source>
         <extracomment>&quot;Enter&quot;, as in &quot;type&quot;. The whole phrase says: &quot;Enter a keyword to start watching videos&quot;</extracomment>
         <translation>Видеолорду</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="117"/>
         <source>a keyword</source>
         <translation>ачкыч сөз</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="118"/>
         <source>a channel</source>
         <translation>канал</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="125"/>
         <source>to start watching videos.</source>
         <translation>менен табып көрүү.</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="156"/>
         <source>Watch</source>
         <translation>Көрүү</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="174"/>
         <source>Recent keywords</source>
         <translation>Соңку ачкыч сөздөр</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="186"/>
         <source>Recent channels</source>
         <translation>Соңку каналдар</translation>
     </message>
+    <message>
+        <source>Get the full version</source>
+        <translation>Толук версиясын сатып алуу</translation>
+    </message>
 </context>
 <context>
     <name>SidebarHeader</name>
     <message>
-        <location filename="src/sidebarheader.cpp" line="38"/>
-        <location filename="src/sidebarheader.cpp" line="45"/>
         <source>&amp;Back</source>
         <translation>&amp;Артка</translation>
     </message>
     <message>
-        <location filename="src/sidebarheader.cpp" line="76"/>
         <source>Forward to %1</source>
         <translation>%1 алга</translation>
     </message>
     <message>
-        <location filename="src/sidebarheader.cpp" line="89"/>
         <source>Back to %1</source>
         <translation>%1 видеосуна кайтуу</translation>
     </message>
 <context>
     <name>SidebarWidget</name>
     <message>
-        <location filename="src/sidebarwidget.cpp" line="68"/>
         <source>Refine Search</source>
         <translation>Издөөнү тактоо</translation>
     </message>
     <message>
-        <location filename="src/sidebarwidget.cpp" line="167"/>
         <source>Did you mean: %1</source>
         <translation>Бул эмеспи: %1</translation>
     </message>
 <context>
     <name>SnapshotSettings</name>
     <message>
-        <location filename="src/snapshotsettings.cpp" line="47"/>
         <source>Change location...</source>
         <translation>Жайгашкан жерин өзгөртүү...</translation>
     </message>
     <message>
-        <location filename="src/snapshotsettings.cpp" line="64"/>
         <source>Snapshot saved to %1</source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="src/snapshotsettings.cpp" line="117"/>
         <source>Snapshots location changed.</source>
         <translation type="unfinished"/>
     </message>
 <context>
     <name>StandardFeedsView</name>
     <message>
-        <location filename="src/standardfeedsview.cpp" line="107"/>
         <source>Most Popular</source>
         <translation>Эң популярдуу</translation>
     </message>
 </context>
+<context>
+    <name>UpdateDialog</name>
+    <message>
+        <source>Downloading update...</source>
+        <translation>Жаңылоолор жүктөп алынууда...</translation>
+    </message>
+    <message>
+        <source>Downloading %1...</source>
+        <translation type="unfinished"/>
+    </message>
+</context>
 <context>
     <name>Video</name>
     <message>
-        <location filename="src/video.cpp" line="287"/>
         <source>Cannot get video stream for %1</source>
         <translation>%1 үчүн видео агымын алуу мүмкүн эмес</translation>
     </message>
-    <message>
-        <location filename="src/video.cpp" line="292"/>
-        <source>Network error: %1 for %2</source>
-        <translation>Тармак катасы: %1 %2 үчүн</translation>
-    </message>
 </context>
 <context>
     <name>YTRegions</name>
     <message>
-        <location filename="src/ytregions.cpp" line="28"/>
         <source>Algeria</source>
         <translation>Алжир</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="29"/>
         <source>Argentina</source>
         <translation>Аргентина</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="30"/>
         <source>Australia</source>
         <translation>Австралия</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="31"/>
         <source>Belgium</source>
         <translation>Белгия</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="32"/>
         <source>Brazil</source>
         <translation>Бразилия</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="33"/>
         <source>Canada</source>
         <translation>Канада</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="34"/>
         <source>Chile</source>
         <translation>Чили</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="35"/>
         <source>Colombia</source>
         <translation>Колумбия</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="36"/>
         <source>Czech Republic</source>
         <translation>Чехия</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="37"/>
         <source>Egypt</source>
         <translation>Египт</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="38"/>
         <source>France</source>
         <translation>Франция</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="39"/>
         <source>Germany</source>
         <translation>Германия</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="40"/>
         <source>Ghana</source>
         <translation>Гана</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="41"/>
         <source>Greece</source>
         <translation>Греция</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="42"/>
         <source>Hong Kong</source>
         <translation>Гонконг</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="43"/>
         <source>Hungary</source>
         <translation>Венгрия</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="44"/>
         <source>India</source>
         <translation>Индия</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="45"/>
         <source>Indonesia</source>
         <translation>Индонезия</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="46"/>
         <source>Ireland</source>
         <translation>Ирландия</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="47"/>
         <source>Israel</source>
         <translation>Израиль</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="48"/>
         <source>Italy</source>
         <translation>Италия</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="49"/>
         <source>Japan</source>
         <translation>Япония</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="50"/>
         <source>Jordan</source>
         <translation>Иордан</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="51"/>
         <source>Kenya</source>
         <translation>Кения</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="52"/>
         <source>Malaysia</source>
         <translation>Малайзия</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="53"/>
         <source>Mexico</source>
         <translation>Мексика</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="54"/>
         <source>Morocco</source>
         <translation>Марокко</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="55"/>
         <source>Netherlands</source>
         <translation>Нидерланддар</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="56"/>
         <source>New Zealand</source>
         <translation>Жаңы Зеландия</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="57"/>
         <source>Nigeria</source>
         <translation>Нигерия</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="58"/>
         <source>Peru</source>
         <translation>Перу</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="59"/>
         <source>Philippines</source>
         <translation>Филиппиндер</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="60"/>
         <source>Poland</source>
         <translation>Польша</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="61"/>
         <source>Russia</source>
         <translation>Орусия</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="62"/>
         <source>Saudi Arabia</source>
         <translation>Сауд Аравиясы</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="63"/>
         <source>Singapore</source>
         <translation>Сингапур</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="64"/>
         <source>South Africa</source>
         <translation>Түштүк Африка</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="65"/>
         <source>South Korea</source>
         <translation>Түштүк Корея</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="66"/>
         <source>Spain</source>
         <translation>Испания</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="67"/>
         <source>Sweden</source>
         <translation>Швеция</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="68"/>
         <source>Taiwan</source>
         <translation>Тайвань</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="69"/>
         <source>Tunisia</source>
         <translation>Тунис</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="70"/>
         <source>Turkey</source>
         <translation>Түркия</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="71"/>
         <source>Uganda</source>
         <translation>Уганда</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="72"/>
         <source>United Arab Emirates</source>
         <translation>Бириккен Араб Эмираттары</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="73"/>
         <source>United Kingdom</source>
         <translation>Улуу Британия</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="74"/>
         <source>Yemen</source>
         <translation>Йемен</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="148"/>
         <source>Worldwide</source>
         <translation>Бүткүл дүйнө</translation>
     </message>
index eabed02543db989e5ed2c65bfd3943f42a0b2ca1..edf92820463eadfe5781e2a2e4889f325785d929 100644 (file)
@@ -5,7 +5,7 @@ DEPENDPATH += $$PWD
 VPATH += $$PWD
 
 # ls -1 *.ts | tr '\n' ' '
-TRANSLATIONS += ar.ts ast.ts be.ts bg_BG.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 es_MX.ts fi.ts fi_FI.ts fr.ts gl.ts he_IL.ts hr.ts hu.ts ia.ts id.ts it.ts ja_JP.ts ko_KR.ts ky.ts ms_MY.ts nb.ts nl.ts nn.ts pl.ts pl_PL.ts pt.ts pt_BR.ts ro.ts ru.ts sk.ts sl.ts sq.ts sv_SE.ts th.ts tr.ts uk.ts uk_UA.ts vi.ts zh_CN.ts zh_TW.ts 
+TRANSLATIONS += ar.ts ast.ts be.ts bg_BG.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 es_MX.ts fi.ts fi_FI.ts fr.ts gl.ts he_IL.ts hr.ts hu.ts id.ts it.ts ja_JP.ts ko_KR.ts ky.ts ms_MY.ts nb.ts nl.ts nn.ts pl.ts pl_PL.ts pt.ts pt_BR.ts ro.ts ru.ts sk.ts sl.ts sq.ts sr.ts sv_SE.ts th.ts tr.ts uk.ts uk_UA.ts vi.ts zh_CN.ts zh_TW.ts 
 isEmpty(QMAKE_LRELEASE) {
     win32:QMAKE_LRELEASE = $$[QT_INSTALL_BINS]\lrelease.exe
     else:QMAKE_LRELEASE = $$[QT_INSTALL_BINS]/lrelease
index 51a5cdd0a960566bed61e77f6e5a3414c8b1b287..0aa3a61f4fb0bdd93bbf674e60521d79191418d1 100644 (file)
@@ -2,67 +2,42 @@
 <context>
     <name>AboutView</name>
     <message>
-        <location filename="src/aboutview.cpp" line="58"/>
         <source>There&apos;s life outside the browser!</source>
         <translation>There&apos;s life outside the browser!</translation>
     </message>
     <message>
-        <location filename="src/aboutview.cpp" line="59"/>
         <source>Version %1</source>
         <translation>Versi %1</translation>
     </message>
     <message>
-        <location filename="src/aboutview.cpp" line="64"/>
         <source>Licensed to: %1</source>
         <translation>Dilesenkan kepada: %1</translation>
     </message>
     <message>
-        <location filename="src/aboutview.cpp" line="68"/>
         <source>%1 is Free Software but its development takes precious time.</source>
         <translation>%1 merupakan Perisian Bebas tetapi pembangunannya mengambil masa yang berharga.</translation>
     </message>
     <message>
-        <location filename="src/aboutview.cpp" line="69"/>
         <source>Please &lt;a href=&apos;%1&apos;&gt;donate&lt;/a&gt; to support the continued development of %2.</source>
         <translation>Sila &lt;a href=&apos;%1&apos;&gt;beri sumbangan&lt;/a&gt; untuk menyokong pembangunan berterusan %2.</translation>
     </message>
     <message>
-        <location filename="src/aboutview.cpp" line="73"/>
-        <source>You may want to try my other apps as well:</source>
-        <translation>Anda mahu cuba aplikasi saya yang lain:</translation>
-    </message>
-    <message>
-        <location filename="src/aboutview.cpp" line="76"/>
-        <source>%1, a YouTube music player</source>
-        <translation>%1, merupakan pemain muzik YouTube</translation>
-    </message>
-    <message>
-        <location filename="src/aboutview.cpp" line="80"/>
-        <source>%1, a music player</source>
-        <translation>%1, merupakan pemain muzik</translation>
-    </message>
-    <message>
-        <location filename="src/aboutview.cpp" line="86"/>
         <source>Translate %1 to your native language using %2</source>
         <translation>Terjemah %1 kepada bahasa ibunda anda menggunakan %2</translation>
     </message>
     <message>
-        <location filename="src/aboutview.cpp" line="91"/>
         <source>Icon designed by %1.</source>
         <translation>Ikon direka oleh %1.</translation>
     </message>
     <message>
-        <location filename="src/aboutview.cpp" line="95"/>
         <source>Released under the &lt;a href=&apos;%1&apos;&gt;GNU General Public License&lt;/a&gt;</source>
         <translation>Dikeluarkan dibawah &lt;a href=&apos;%1&apos;&gt;Lesen Awam Am GNU&lt;/a&gt;</translation>
     </message>
     <message>
-        <location filename="src/aboutview.cpp" line="110"/>
         <source>&amp;Close</source>
         <translation>%Tutup</translation>
     </message>
     <message>
-        <location filename="src/aboutview.h" line="40"/>
         <source>About</source>
         <translation>Perihal</translation>
     </message>
 <context>
     <name>ActivationDialog</name>
     <message>
-        <location filename="local/src/activationdialog.cpp" line="17"/>
         <source>Enter your License Details</source>
         <translation>Masukkan Perincian Lesen anda</translation>
     </message>
     <message>
-        <location filename="local/src/activationdialog.cpp" line="29"/>
         <source>&amp;Email:</source>
         <translation>&amp;Emel:</translation>
     </message>
     <message>
-        <location filename="local/src/activationdialog.cpp" line="35"/>
         <source>&amp;Code:</source>
         <translation>&amp;Kod:</translation>
     </message>
 <context>
     <name>ActivationView</name>
     <message>
-        <location filename="local/src/activationview.cpp" line="47"/>
         <source>Please license %1</source>
         <translation>Sila lesenkan %1</translation>
     </message>
     <message>
-        <location filename="local/src/activationview.cpp" line="51"/>
         <source>This demo has expired.</source>
         <translation>Demo ini telah tamat tempoh.</translation>
     </message>
     <message>
-        <location filename="local/src/activationview.cpp" line="53"/>
         <source>The full version allows you to watch videos without interruptions.</source>
-        <oldsource>The full version allows you to download videos longer than %1 minutes and to watch videos without interruptions.</oldsource>
         <translation>Versi penuh membolehkan anda tonton video tanpa gangguan.</translation>
     </message>
     <message>
-        <location filename="local/src/activationview.cpp" line="55"/>
         <source>Without a license, the application will expire in %1 days.</source>
         <translation>Tanpa lesen, aplikasi akan luput dalam tempoh %1 hari.</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>Dengan pembelian versi penuh, anda akan menyokong hasil kerja yang saya lakukan ketika menghasilkan %1.</translation>
     </message>
     <message>
-        <location filename="local/src/activationview.cpp" line="70"/>
         <source>Use Demo</source>
         <translation>Guna Demo</translation>
     </message>
     <message>
-        <location filename="local/src/activationview.cpp" line="77"/>
         <source>Enter License</source>
         <translation>Masukkan Lesen</translation>
     </message>
     <message>
-        <location filename="local/src/activationview.cpp" line="85"/>
         <source>Buy License</source>
         <translation>Beli Lesen</translation>
     </message>
 </context>
+<context>
+    <name>AppWidget</name>
+    <message>
+        <source>Download</source>
+        <translation>Muat Turun</translation>
+    </message>
+</context>
 <context>
     <name>ChannelAggregator</name>
     <message>
-        <location filename="src/channelaggregator.cpp" line="183"/>
         <source>By %1</source>
         <translation>Oleh %1</translation>
     </message>
     <message numerus="yes">
-        <location filename="src/channelaggregator.cpp" line="185"/>
         <source>You have %n new video(s)</source>
         <translation type="unfinished"><numerusform></numerusform></translation>
     </message>
 <context>
     <name>ChannelItemDelegate</name>
     <message>
-        <location filename="src/channelitemdelegate.cpp" line="67"/>
         <source>All Videos</source>
         <translation>Semua Video</translation>
     </message>
     <message>
-        <location filename="src/channelitemdelegate.cpp" line="85"/>
         <source>Unwatched Videos</source>
         <translation>Video Tidak Ditonton</translation>
     </message>
 <context>
     <name>ChannelView</name>
     <message>
-        <location filename="src/channelview.cpp" line="151"/>
-        <source>Mark all as watched</source>
-        <translation>Tanda semua sebagai ditonton</translation>
-    </message>
-    <message>
-        <location filename="src/channelview.cpp" line="159"/>
-        <source>Show Updated</source>
-        <translation>Papar Dikemaskini</translation>
-    </message>
-    <message>
-        <location filename="src/channelview.cpp" line="103"/>
         <source>Name</source>
         <translation>Nama</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="110"/>
         <source>Last Updated</source>
         <translation>Terakhir Dikemaskini</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="117"/>
         <source>Last Added</source>
         <translation>Terakhir Ditambah</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="124"/>
         <source>Last Watched</source>
         <translation>Terakhir Ditonton</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="131"/>
         <source>Most Watched</source>
         <translation>Paling Banyak Ditonton</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="139"/>
         <source>Sort by</source>
         <translation>Isih mengikut</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="222"/>
+        <source>Mark all as watched</source>
+        <translation>Tanda semua sebagai ditonton</translation>
+    </message>
+    <message>
+        <source>Show Updated</source>
+        <translation>Papar Dikemaskini</translation>
+    </message>
+    <message>
         <source>All Videos</source>
         <translation>Semua Video</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="226"/>
         <source>Unwatched Videos</source>
         <translation>Video Tidak Ditonton</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="244"/>
         <source>Mark as Watched</source>
         <translation>Tanda sebagai Ditonton</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="257"/>
         <source>Unsubscribe</source>
         <translation>Nyahlanggan</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="270"/>
         <source>There are no updated subscriptions at this time.</source>
         <translation>Tiada langganan dikemaskini buat masa ini.</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="272"/>
         <source>You have no subscriptions. Use the star symbol to subscribe to channels.</source>
         <translation>Anda tidak mempunyai langganan. Gunakan simbol bintang untuk melanggan saluran.</translation>
     </message>
 <context>
     <name>ClearButton</name>
     <message>
-        <location filename="src/exlineedit.cpp" line="6"/>
         <source>Clear</source>
         <translation>Kosongkan</translation>
     </message>
 <context>
     <name>DataUtils</name>
     <message>
-        <location filename="src/datautils.cpp" line="88"/>
         <source>Just now</source>
-        <translation type="unfinished"/>
+        <translation>Baru masuk</translation>
     </message>
     <message numerus="yes">
-        <location filename="src/datautils.cpp" line="90"/>
-        <source>%n minute(s) ago</source>
-        <translation type="unfinished"><numerusform></numerusform></translation>
-    </message>
-    <message numerus="yes">
-        <location filename="src/datautils.cpp" line="92"/>
         <source>%n hour(s) ago</source>
         <translation type="unfinished"><numerusform></numerusform></translation>
     </message>
     <message numerus="yes">
-        <location filename="src/datautils.cpp" line="94"/>
         <source>%n day(s) ago</source>
         <translation type="unfinished"><numerusform></numerusform></translation>
     </message>
     <message numerus="yes">
-        <location filename="src/datautils.cpp" line="96"/>
         <source>%n weeks(s) ago</source>
         <translation type="unfinished"><numerusform></numerusform></translation>
     </message>
     <message numerus="yes">
-        <location filename="src/datautils.cpp" line="98"/>
         <source>%n month(s) ago</source>
         <translation type="unfinished"><numerusform></numerusform></translation>
     </message>
 <context>
     <name>DownloadItem</name>
     <message>
-        <location filename="src/downloaditem.cpp" line="406"/>
         <source>bytes</source>
         <translation>bait</translation>
     </message>
     <message>
-        <location filename="src/downloaditem.cpp" line="409"/>
         <source>KB</source>
         <translation>KB</translation>
     </message>
     <message>
-        <location filename="src/downloaditem.cpp" line="412"/>
         <source>MB</source>
         <translation>MB</translation>
     </message>
     <message>
-        <location filename="src/downloaditem.cpp" line="421"/>
         <source>bytes/sec</source>
         <translation>bait/saat</translation>
     </message>
     <message>
-        <location filename="src/downloaditem.cpp" line="424"/>
         <source>KB/sec</source>
         <translation>KB/saat</translation>
     </message>
     <message>
-        <location filename="src/downloaditem.cpp" line="427"/>
         <source>MB/sec</source>
         <translation>MB/saat</translation>
     </message>
     <message>
-        <location filename="src/downloaditem.cpp" line="433"/>
         <source>seconds</source>
         <translation>saat</translation>
     </message>
     <message>
-        <location filename="src/downloaditem.cpp" line="436"/>
         <source>minutes</source>
         <translation>minit</translation>
     </message>
     <message>
-        <location filename="src/downloaditem.cpp" line="439"/>
         <source>%4 %5 remaining</source>
         <translation>%4 %5 berbaki</translation>
     </message>
 <context>
     <name>DownloadManager</name>
     <message>
-        <location filename="src/downloadmanager.cpp" line="77"/>
         <source>This is just the demo version of %1.</source>
         <translation>Ini hanyalah versi demo %1.</translation>
     </message>
     <message>
-        <location filename="src/downloadmanager.cpp" line="79"/>
         <source>It can only download videos shorter than %1 minutes so you can test the download functionality.</source>
         <translation>Ia hanya boleh muat turun video kurang daripada %1 minit supaya anda boleh menguji kefungsian muat turunnya.</translation>
     </message>
     <message>
-        <location filename="src/downloadmanager.cpp" line="85"/>
         <source>Continue</source>
         <translation>Teruskan</translation>
     </message>
     <message>
-        <location filename="src/downloadmanager.cpp" line="86"/>
         <source>Get the full version</source>
         <translation>Dapatkan versi penuh</translation>
     </message>
     <message>
-        <location filename="src/downloadmanager.cpp" line="157"/>
         <source>%1 downloaded in %2</source>
         <translation>%1 dimuat turun dalam %2</translation>
     </message>
     <message>
-        <location filename="src/downloadmanager.cpp" line="160"/>
         <source>Download finished</source>
         <translation>Muat turun selesai</translation>
     </message>
     <message numerus="yes">
-        <location filename="src/downloadmanager.cpp" line="165"/>
         <source>%n Download(s)</source>
         <translation type="unfinished"><numerusform></numerusform></translation>
     </message>
 <context>
     <name>DownloadSettings</name>
     <message>
-        <location filename="src/downloadsettings.cpp" line="36"/>
         <source>Change location...</source>
         <translation>Ubah lokasi...</translation>
     </message>
     <message>
-        <location filename="src/downloadsettings.cpp" line="69"/>
         <source>Choose the download location</source>
         <translation>Pilih lokasi muat turun</translation>
     </message>
     <message>
-        <location filename="src/downloadsettings.cpp" line="81"/>
         <source>Download location changed.</source>
         <translation>Lokasi muat turun berubah.</translation>
     </message>
     <message>
-        <location filename="src/downloadsettings.cpp" line="83"/>
         <source>Current downloads will still go in the previous location.</source>
         <translation>Muat turun semasa masih lagi berjalan pada lokasi terdahulu.</translation>
     </message>
     <message>
-        <location filename="src/downloadsettings.cpp" line="94"/>
         <source>Downloading to: %1</source>
         <translation>Memuat turun ke: %1</translation>
     </message>
 <context>
     <name>DownloadView</name>
     <message>
-        <location filename="src/downloadview.cpp" line="38"/>
-        <location filename="src/downloadview.h" line="45"/>
         <source>Downloads</source>
         <translation>Muat turun</translation>
     </message>
 </context>
-<context>
-    <name>DownloadWidget</name>
-    <message>
-        <location filename="local/src/updatedialog.cpp" line="60"/>
-        <source>Downloading update...</source>
-        <translation>Memuat turun kemaskini...</translation>
-    </message>
-</context>
 <context>
     <name>Extra</name>
     <message>
-        <location filename="local/src/extra.cpp" line="251"/>
         <source>The executable file has been tempered with, maybe by a virus.</source>
-        <translation type="unfinished"/>
+        <translation>Fail bolehlaku telah diusik, mungkin berpunca dari virus.</translation>
     </message>
     <message>
-        <location filename="local/src/extra.cpp" line="252"/>
         <source>%1 will not run. Try installing again.</source>
-        <translation type="unfinished"/>
+        <translation>%1 tidak akan dijalankan. Cuba memasang sekali lagi.</translation>
     </message>
     <message>
-        <location filename="local/src/extra.cpp" line="253"/>
         <source>Quit</source>
-        <translation type="unfinished"/>
+        <translation>Keluar</translation>
     </message>
     <message>
-        <location filename="local/src/extra.cpp" line="254"/>
         <source>Reinstall</source>
-        <translation type="unfinished"/>
+        <translation>Pasang semula</translation>
     </message>
 </context>
 <context>
     <name>GlobalShortcuts</name>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="36"/>
         <source>Play</source>
         <translation>Main</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="37"/>
         <source>Pause</source>
         <translation>Jeda</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="38"/>
         <source>Play/Pause</source>
         <translation>Main/Jeda</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="39"/>
         <source>Stop</source>
         <translation>Henti</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="40"/>
         <source>Stop playing after current track</source>
         <translation>Henti main selepas trek semasa</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="41"/>
         <source>Next track</source>
         <translation>Trek berikutnya</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="42"/>
         <source>Previous track</source>
         <translation>Trek terdahulu</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="43"/>
         <source>Increase volume</source>
         <translation>Tingkatkan volum</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="44"/>
         <source>Decrease volume</source>
         <translation>Rendahkan volum</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="45"/>
         <source>Mute</source>
         <translation>Senyap</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="46"/>
         <source>Seek forward</source>
         <translation>Jangkau kehadapan</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="47"/>
         <source>Seek backward</source>
         <translation>Jangkau mengundur</translation>
     </message>
 <context>
     <name>HomeView</name>
     <message>
-        <location filename="src/homeview.cpp" line="58"/>
         <source>Search</source>
         <translation>Gelintar</translation>
     </message>
     <message>
-        <location filename="src/homeview.cpp" line="60"/>
         <source>Find videos and channels by keyword</source>
         <translation>Cari video dan saluran mengikut kata kunci</translation>
     </message>
     <message>
-        <location filename="src/homeview.cpp" line="65"/>
         <source>Browse</source>
         <translation>Layar</translation>
     </message>
     <message>
-        <location filename="src/homeview.cpp" line="67"/>
         <source>Browse videos by category</source>
         <translation>Layar video mengikut kategori</translation>
     </message>
     <message>
-        <location filename="src/homeview.cpp" line="71"/>
         <source>Subscriptions</source>
         <translation>Langganan</translation>
     </message>
     <message>
-        <location filename="src/homeview.cpp" line="73"/>
         <source>Channel subscriptions</source>
         <translation>Langganan saluran</translation>
     </message>
     <message>
-        <location filename="src/homeview.h" line="44"/>
         <source>Make yourself comfortable</source>
         <translation>Sila guna mengikut keselesaan anda</translation>
     </message>
 <context>
     <name>LoadingWidget</name>
     <message>
-        <location filename="src/loadingwidget.cpp" line="125"/>
         <source>Error</source>
         <translation>Ralat</translation>
     </message>
 <context>
     <name>MainWindow</name>
     <message>
-        <location filename="src/mainwindow.cpp" line="291"/>
+        <source>&amp;Window</source>
+        <translation>&amp;Tetingkap</translation>
+    </message>
+    <message>
+        <source>&amp;Minimize</source>
+        <translation>&amp;Minimum</translation>
+    </message>
+    <message>
         <source>&amp;Stop</source>
         <translation>&amp;Henti</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="292"/>
         <source>Stop playback and go back to the search view</source>
         <translation>Henti main balik dan kembali ke paparan gelintar</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="307"/>
+        <source>P&amp;revious</source>
+        <translation>Te&amp;rdahulu</translation>
+    </message>
+    <message>
+        <source>Go back to the previous track</source>
+        <translation>Pergi kembali ke trek terdahulu</translation>
+    </message>
+    <message>
         <source>S&amp;kip</source>
         <translation>Lang&amp;kau</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="308"/>
         <source>Skip to the next video</source>
         <translation>Langkau ke video berikutnya</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1134"/>
-        <source>&amp;Pause</source>
-        <translation>&amp;Jeda</translation>
+        <source>&amp;Play</source>
+        <translation>&amp;Main</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1135"/>
-        <source>Pause playback</source>
-        <translation>Jeda main balik</translation>
+        <source>Resume playback</source>
+        <translation>Sambung semula main balik</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="321"/>
         <source>&amp;Full Screen</source>
         <translation>Skrin &amp;Penuh</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="322"/>
         <source>Go full screen</source>
         <translation>Pergi ke skrin penuh</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="336"/>
+        <source>&amp;Compact Mode</source>
+        <translation>Mod Pa&amp;dat</translation>
+    </message>
+    <message>
         <source>Hide the playlist and the toolbar</source>
         <translation>Sembunyi senarai main dan palang alat</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="349"/>
+        <source>Open the &amp;YouTube Page</source>
+        <translation>Buka Halaman &amp;YouTube</translation>
+    </message>
+    <message>
         <source>Go to the YouTube video page and pause playback</source>
         <translation>Pergi ke halaman video YouTube dan jedakan main balik</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="356"/>
+        <source>Copy the YouTube &amp;Link</source>
+        <translation>Salin Pa&amp;utan YouTube</translation>
+    </message>
+    <message>
         <source>Copy the current video YouTube link to the clipboard</source>
         <translation>Salin pautan YouTube semasa ke papan keratan</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="363"/>
+        <source>Copy the Video Stream &amp;URL</source>
+        <translation>Salin &amp;URL Strim Video</translation>
+    </message>
+    <message>
         <source>Copy the current video stream URL to the clipboard</source>
         <translation>Salin URL strim video semasa ke papan keratan</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="370"/>
+        <source>Find Video &amp;Parts</source>
+        <translation>Cari Ba&amp;hagian Video</translation>
+    </message>
+    <message>
         <source>Find other video parts hopefully in the right order</source>
         <translation>Cari bahagian video lain yang diharapkan dalam tertib yang betul</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="376"/>
         <source>&amp;Remove</source>
         <translation>&amp;Buang</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="377"/>
         <source>Remove the selected videos from the playlist</source>
         <translation>Buang video terpilih dari senarai main</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="383"/>
         <source>Move &amp;Up</source>
         <translation>Alih Ke &amp;Atas</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="384"/>
         <source>Move up the selected videos in the playlist</source>
         <translation>Alih video terpilih ke atas di dalam senarai main</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="390"/>
         <source>Move &amp;Down</source>
         <translation>Alih Ke &amp;Bawah</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="391"/>
         <source>Move down the selected videos in the playlist</source>
         <translation>Alih video terpilih ke bawah dalam senarai main</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="402"/>
+        <source>&amp;Clear Recent Searches</source>
+        <translation>K&amp;osongkan Gelintar Baru-baru Ini</translation>
+    </message>
+    <message>
         <source>Clear the search history. Cannot be undone.</source>
         <translation>Kosongkan sejarah gelintar. Tidak dapat patah balik.</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="407"/>
         <source>&amp;Quit</source>
         <translation>&amp;Keluar</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="410"/>
         <source>Bye</source>
         <translation>Selamat Tinggal</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="414"/>
         <source>&amp;Website</source>
         <translation>Laman Sesa&amp;wang</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="416"/>
         <source>%1 on the Web</source>
         <translation>%1 pada Sesawang</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="422"/>
+        <source>Make a &amp;Donation</source>
+        <translation>Beri S&amp;umbangan</translation>
+    </message>
+    <message>
         <source>Please support the continued development of %1</source>
         <translation>Sila beri sokongan pada pembangunan berterusan %1</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="427"/>
         <source>&amp;About</source>
         <translation>Perih&amp;al</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="429"/>
         <source>Info about %1</source>
         <translation>Maklumat mengenai %1</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="437"/>
         <source>Search</source>
         <translation>Gelintar</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="456"/>
         <source>Mute volume</source>
         <translation>Senyapkan volum</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="490"/>
-        <location filename="src/mainwindow.cpp" line="1609"/>
+        <source>&amp;Manually Start Playing</source>
+        <translation>Mula Main Secara &amp;Manual</translation>
+    </message>
+    <message>
+        <source>Manually start playing videos</source>
+        <translation>Mula memainkan video secara manual</translation>
+    </message>
+    <message>
         <source>&amp;Downloads</source>
         <translation>Muat T&amp;urun</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="491"/>
         <source>Show details about video downloads</source>
         <translation>Papar perincian mengenai muat turun video</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="499"/>
         <source>&amp;Download</source>
         <translation>Muat T&amp;urun</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="500"/>
         <source>Download the current video</source>
         <translation>Muat turun video semasa</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="510"/>
         <source>Take &amp;Snapshot</source>
         <translation>Ambil &amp;Cekupan Skrin</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="517"/>
         <source>&amp;Subscribe to Channel</source>
         <translation>&amp;Langgan ke Saluran</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="525"/>
         <source>Share the current video using %1</source>
         <translation>Kongsi video semasa menggunakan %1</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="545"/>
         <source>&amp;Email</source>
         <translation>&amp;Emel</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="546"/>
         <source>Email</source>
         <translation>Emel</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="551"/>
         <source>&amp;Close</source>
         <translation>&amp;Tutup</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="561"/>
         <source>&amp;Float on Top</source>
         <translation>Te&amp;rapung Diatas</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="566"/>
         <source>&amp;Adjust Window Size</source>
-        <translation type="unfinished"/>
+        <translation>&amp;Laras Saiz Tetingkap</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="571"/>
         <source>&amp;Stop After This Video</source>
         <translation>&amp;Henti Selepas Video Ini</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="578"/>
         <source>&amp;Report an Issue...</source>
         <translation>&amp;Laporkan Masalah...</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="582"/>
         <source>&amp;Refine Search...</source>
         <translation>Pe&amp;rhalusi Gelintar...</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="594"/>
         <source>More...</source>
         <translation>Lagi...</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="597"/>
         <source>&amp;Related Videos</source>
         <translation>Video Be&amp;rkaitan</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="599"/>
         <source>Watch videos related to the current one</source>
         <translation>Tonton video berkaitan dengan video semasa</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="605"/>
         <source>Open in &amp;Browser...</source>
         <translation>Buka dalam Pela&amp;yar...</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="612"/>
-        <source>&amp;Love %1? Rate it!</source>
-        <translation>&amp;Suka %1? Beri penarafan!</translation>
+        <source>Restricted Mode</source>
+        <translation>Mod Terhad</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="633"/>
-        <source>&amp;Application</source>
-        <translation>&amp;Aplikasi</translation>
+        <source>Hide videos that may contain inappropriate content</source>
+        <translation>Sembunyi video yang mengandungi kandungan tidak senonoh</translation>
+    </message>
+    <message>
+        <source>&amp;Love %1? Rate it!</source>
+        <translation>&amp;Suka %1? Beri penarafan!</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="618"/>
         <source>Buy %1...</source>
         <translation>Beli %1...</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="647"/>
+        <source>&amp;Application</source>
+        <translation>&amp;Aplikasi</translation>
+    </message>
+    <message>
         <source>&amp;Playback</source>
         <translation>&amp;Main Balik</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="661"/>
         <source>&amp;Playlist</source>
         <translation>Se&amp;narai Main</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="670"/>
         <source>&amp;Video</source>
         <translation>&amp;Video</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="686"/>
-        <source>&amp;View</source>
-        <translation>&amp;Papar</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="695"/>
         <source>&amp;Share</source>
         <translation>K&amp;ongsi</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="709"/>
+        <source>&amp;View</source>
+        <translation>&amp;Papar</translation>
+    </message>
+    <message>
         <source>&amp;Help</source>
         <translation>&amp;Bantuan</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="751"/>
         <source>Press %1 to raise the volume, %2 to lower it</source>
         <translation>Tekan %1 untuk tingkatkan volum, %2 untuk rendahkannya</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1021"/>
-        <location filename="src/mainwindow.cpp" line="1027"/>
+        <source>Choose your content location</source>
+        <translation>Pilih lokasi kandungan anda</translation>
+    </message>
+    <message>
         <source>Opening %1</source>
         <translation>Membuka %1</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1080"/>
         <source>Do you want to exit %1 with a download in progress?</source>
         <translation>Anda hendak keluar dari %1 dengan muat turun masih berjalan?</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1081"/>
         <source>If you close %1 now, this download will be cancelled.</source>
         <translation>Jika anda tutup %1 sekarang, muat turun ini akan dibatalkan.</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1086"/>
         <source>Close and cancel download</source>
         <translation>Tutup dan batalkan muat turun</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1087"/>
         <source>Wait for download to finish</source>
         <translation>Tunggu sehingga muat turun selesai</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1158"/>
-        <source>&amp;Loading...</source>
-        <translation type="unfinished"/>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="1264"/>
-        <source>Leave &amp;Full Screen</source>
-        <translation>Tinggalkan Skrin P&amp;enuh</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="1718"/>
-        <source>%1 version %2 is now available.</source>
-        <translation>%1 versi %2 kini sudah tersedia.</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="1722"/>
-        <source>Remind me later</source>
-        <translation>Maklum saya kemudian</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="1723"/>
-        <source>Update</source>
-        <translation>Kemaskini</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="1127"/>
         <source>Error: %1</source>
         <translation>Ralat: %1</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="300"/>
-        <source>P&amp;revious</source>
-        <translation>Te&amp;rdahulu</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="301"/>
-        <source>Go back to the previous track</source>
-        <translation>Pergi kembali ke trek terdahulu</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="335"/>
-        <source>&amp;Compact Mode</source>
-        <translation>Mod Pa&amp;dat</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="348"/>
-        <source>Open the &amp;YouTube Page</source>
-        <translation>Buka Halaman &amp;YouTube</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="355"/>
-        <source>Copy the YouTube &amp;Link</source>
-        <translation>Salin Pa&amp;utan YouTube</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="362"/>
-        <source>Copy the Video Stream &amp;URL</source>
-        <translation>Salin &amp;URL Strim Video</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="369"/>
-        <source>Find Video &amp;Parts</source>
-        <translation>Cari Ba&amp;hagian Video</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="397"/>
-        <source>&amp;Clear Recent Searches</source>
-        <translation>K&amp;osongkan Gelintar Baru-baru Ini</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="421"/>
-        <source>Make a &amp;Donation</source>
-        <translation>Beri S&amp;umbangan</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="483"/>
-        <source>&amp;Manually Start Playing</source>
-        <translation>Mula Main Secara &amp;Manual</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="484"/>
-        <source>Manually start playing videos</source>
-        <translation>Mula memainkan video secara manual</translation>
+        <source>&amp;Pause</source>
+        <translation>&amp;Jeda</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="847"/>
-        <source>Choose your content location</source>
-        <translation>Pilih lokasi kandungan anda</translation>
+        <source>Pause playback</source>
+        <translation>Jeda main balik</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="314"/>
-        <location filename="src/mainwindow.cpp" line="1142"/>
-        <location filename="src/mainwindow.cpp" line="1150"/>
-        <source>&amp;Play</source>
-        <translation>&amp;Main</translation>
+        <source>&amp;Loading...</source>
+        <translation>&amp;Memuatkan...</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="315"/>
-        <location filename="src/mainwindow.cpp" line="1143"/>
-        <location filename="src/mainwindow.cpp" line="1151"/>
-        <source>Resume playback</source>
-        <translation>Sambung semula main balik</translation>
+        <source>Leave &amp;Full Screen</source>
+        <translation>Tinggalkan Skrin P&amp;enuh</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1437"/>
         <source>Remaining time: %1</source>
         <translation>Masa berbaki: %1</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1528"/>
         <source>Volume at %1%</source>
         <translation>Volum pada %1%</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1534"/>
         <source>Volume is muted</source>
         <translation>Volum disenyapkan</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1537"/>
         <source>Volume is unmuted</source>
         <translation>Volum disuarakan</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1548"/>
         <source>Maximum video definition set to %1</source>
         <translation>Definasi video maksimum ditetapkan ke %1</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1595"/>
         <source>Your privacy is now safe</source>
         <translation>Kerahsiaan anda kini selamat</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1610"/>
         <source>Downloads complete</source>
         <translation>Muat turun selesai</translation>
     </message>
+    <message>
+        <source>%1 version %2 is now available.</source>
+        <translation>%1 versi %2 kini sudah tersedia.</translation>
+    </message>
+    <message>
+        <source>Remind me later</source>
+        <translation>Maklum saya kemudian</translation>
+    </message>
+    <message>
+        <source>Update</source>
+        <translation>Kemaskini</translation>
+    </message>
 </context>
 <context>
     <name>MediaView</name>
     <message>
-        <location filename="src/mediaview.cpp" line="702"/>
         <source>You can now paste the YouTube link into another application</source>
         <translation>Anda kini boleh menampal pautan YouTube ke dalam aplikasi lain</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="710"/>
         <source>You can now paste the video stream URL into another application</source>
         <translation>Anda kini boleh menampal pautan strim video ke dalam aplikasi lain</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="711"/>
         <source>The link will be valid only for a limited time.</source>
         <translation>Pautan hanya sah untuk masa yang terhad.</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="800"/>
         <source>This is just the demo version of %1.</source>
         <translation>Ini hanyalah versi demo %1.</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="801"/>
         <source>It allows you to test the application and see if it works for you.</source>
         <translation>Ia membolehkan anda uji aplikasi dan lihat jika ia berfungsi untuk anda.</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="833"/>
+        <source>Get the full version</source>
+        <translation>Dapatkan versi penuh</translation>
+    </message>
+    <message>
         <source>Continue</source>
         <translation>Teruskan</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="988"/>
+        <source>Downloading %1</source>
+        <translation>Memuat turun %1</translation>
+    </message>
+    <message>
         <source>of</source>
         <comment>Used in video parts, as in '2 of 3'</comment>
         <translation>dari</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="1001"/>
         <source>part</source>
         <comment>This is for video parts, as in 'Cool video - part 1'</comment>
         <translation>bahagian</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="1003"/>
         <source>episode</source>
         <comment>This is for video parts, as in 'Cool series - episode 1'</comment>
         <translation>episod</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="1096"/>
         <source>Sent from %1</source>
         <translation>Dihantar daripada %1</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="1128"/>
         <source>Unsubscribe from %1</source>
         <translation>Buang langganan dari %1</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="1132"/>
         <source>Subscribe to %1</source>
         <translation>Langgan ke %1</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="1166"/>
         <source>Unsubscribed from %1</source>
-        <translation type="unfinished"/>
+        <translation>Nyahlanggan daripada %1</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="1169"/>
         <source>Subscribed to %1</source>
-        <translation type="unfinished"/>
-    </message>
-    <message>
-        <location filename="src/mediaview.cpp" line="808"/>
-        <source>Get the full version</source>
-        <translation>Dapatkan versi penuh</translation>
-    </message>
-    <message>
-        <location filename="src/mediaview.cpp" line="847"/>
-        <source>Downloading %1</source>
-        <translation>Memuat turun %1</translation>
+        <translation>Langgan kepada %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>Versi baru %1 tersedia!</translation>
     </message>
     <message>
-        <location filename="local/src/updatedialog.cpp" line="28"/>
         <source>%1 %2 is now available. You have %3.</source>
         <translation>%1 %2 kini tersedia. Anda mempunyai %3.</translation>
     </message>
     <message>
-        <location filename="local/src/updatedialog.cpp" line="33"/>
         <source>Would you like to download it now?</source>
         <translation>Anda hendak muat turun ia sekarang?</translation>
     </message>
     <message>
-        <location filename="local/src/updatedialog.cpp" line="39"/>
         <source>Skip This Version</source>
         <translation>Langkau Versi Ini</translation>
     </message>
     <message>
-        <location filename="local/src/updatedialog.cpp" line="43"/>
         <source>Remind Me Later</source>
         <translation>Maklum Saya Kemudian</translation>
     </message>
     <message>
-        <location filename="local/src/updatedialog.cpp" line="47"/>
         <source>Install Update</source>
         <translation>Pasang Kemaskini</translation>
     </message>
 <context>
     <name>PasteLineEdit</name>
     <message>
-        <location filename="local/src/pastelineedit.cpp" line="6"/>
         <source>Paste</source>
         <translation>Tampal</translation>
     </message>
 <context>
     <name>PlaylistItemDelegate</name>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="209"/>
         <source>%1 views</source>
         <translation>ditonton %1 kali</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="309"/>
         <source>%1 of %2 (%3) — %4</source>
         <translation>%1 daripada %2 (%3) — %4</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="316"/>
         <source>Preparing</source>
         <translation>Menyediakan</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="318"/>
         <source>Failed</source>
         <translation>Gagal</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="320"/>
         <source>Completed</source>
         <translation>Selesai</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="322"/>
         <source>Stopped</source>
         <translation>Dihentikan</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="358"/>
         <source>Stop downloading</source>
         <translation>Henti memuat turun</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="368"/>
         <source>Show in %1</source>
         <translation>Papar dalam %1</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="370"/>
         <source>Open parent folder</source>
         <translation>Buka folder induk</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="379"/>
         <source>Restart downloading</source>
         <translation>Mulakan semula memuat turun</translation>
     </message>
 <context>
     <name>PlaylistModel</name>
     <message>
-        <location filename="src/playlistmodel.cpp" line="70"/>
         <source>Searching...</source>
         <translation>Menggelintar...</translation>
     </message>
     <message>
-        <location filename="src/playlistmodel.cpp" line="71"/>
         <source>Show %1 More</source>
         <translation>Papar %1 Lagi</translation>
     </message>
     <message>
-        <location filename="src/playlistmodel.cpp" line="72"/>
         <source>No videos</source>
         <translation>Tiada video</translation>
     </message>
     <message>
-        <location filename="src/playlistmodel.cpp" line="73"/>
         <source>No more videos</source>
         <translation>Tiada lagi video</translation>
     </message>
 <context>
     <name>RefineSearchWidget</name>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="49"/>
         <source>Sort by</source>
         <translation>Isih mengikut</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="53"/>
         <source>Relevance</source>
         <translation>Kaitan</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="54"/>
-        <location filename="src/refinesearchwidget.cpp" line="69"/>
         <source>Date</source>
         <translation>Tarikh</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="55"/>
         <source>View Count</source>
         <translation>Kiraan Papar</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="56"/>
         <source>Rating</source>
         <translation>Penarafan</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="73"/>
         <source>Anytime</source>
         <translation>Bila-bila Masa</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="74"/>
         <source>Today</source>
         <translation>Hari Ini</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="75"/>
         <source>7 Days</source>
         <translation>7 Hari</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="76"/>
         <source>30 Days</source>
         <translation>30 Hari</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="89"/>
         <source>Duration</source>
         <translation>Jangkamasa</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="93"/>
-        <location filename="src/refinesearchwidget.cpp" line="119"/>
         <source>All</source>
         <translation>Semua</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="94"/>
         <source>Short</source>
         <translation>Pendek</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="95"/>
         <source>Medium</source>
         <translation>Sederhana</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="96"/>
         <source>Long</source>
         <translation>Panjang</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="99"/>
         <source>Less than 4 minutes</source>
         <translation>Kurang dari 4 minit</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="100"/>
         <source>Between 4 and 20 minutes</source>
         <translation>Diantara 4 hingga 20 minit</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="101"/>
         <source>Longer than 20 minutes</source>
         <translation>Lebih panjang dari 20 minit</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="115"/>
         <source>Quality</source>
         <translation>Kualiti</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="120"/>
         <source>High Definition</source>
         <translation>Definasi Tinggi</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="123"/>
         <source>720p or higher</source>
         <translation>720p atau lebih tinggi</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="136"/>
         <source>Done</source>
         <translation>Selesai</translation>
     </message>
 <context>
     <name>RegionsView</name>
     <message>
-        <location filename="src/regionsview.cpp" line="39"/>
         <source>Done</source>
         <translation>Selesai</translation>
     </message>
 <context>
     <name>SearchLineEdit</name>
     <message>
-        <location filename="src/searchlineedit.cpp" line="55"/>
         <source>Search</source>
         <translation>Gelintar</translation>
     </message>
 <context>
     <name>SearchView</name>
     <message>
-        <location filename="src/searchview.cpp" line="83"/>
         <source>Welcome to &lt;a href=&apos;%1&apos;&gt;%2&lt;/a&gt;,</source>
         <translation>Selamat datang ke &lt;a href=&apos;%1&apos;&gt;%2&lt;/a&gt;,</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="200"/>
-        <source>Get the full version</source>
-        <translation>Dapatkan versi penuh</translation>
-    </message>
-    <message>
-        <location filename="src/searchview.cpp" line="110"/>
         <source>Enter</source>
         <extracomment>&quot;Enter&quot;, as in &quot;type&quot;. The whole phrase says: &quot;Enter a keyword to start watching videos&quot;</extracomment>
         <translation>Masukkan</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="117"/>
         <source>a keyword</source>
         <translation>kata kunci</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="118"/>
         <source>a channel</source>
         <translation>saluran</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="125"/>
         <source>to start watching videos.</source>
         <translation>untuk menonton video.</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="156"/>
         <source>Watch</source>
         <translation>Tonton</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="174"/>
         <source>Recent keywords</source>
         <translation>Kata kunci baru-baru ini</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="186"/>
         <source>Recent channels</source>
         <translation>Saluran baru-baru ini</translation>
     </message>
+    <message>
+        <source>Get the full version</source>
+        <translation>Dapatkan versi penuh</translation>
+    </message>
 </context>
 <context>
     <name>SidebarHeader</name>
     <message>
-        <location filename="src/sidebarheader.cpp" line="38"/>
-        <location filename="src/sidebarheader.cpp" line="45"/>
         <source>&amp;Back</source>
         <translation>&amp;Undur</translation>
     </message>
     <message>
-        <location filename="src/sidebarheader.cpp" line="76"/>
         <source>Forward to %1</source>
         <translation>Maju ke %1</translation>
     </message>
     <message>
-        <location filename="src/sidebarheader.cpp" line="89"/>
         <source>Back to %1</source>
         <translation>Undur ke %1</translation>
     </message>
 <context>
     <name>SidebarWidget</name>
     <message>
-        <location filename="src/sidebarwidget.cpp" line="68"/>
         <source>Refine Search</source>
         <translation>Perhalusi Gelintar</translation>
     </message>
     <message>
-        <location filename="src/sidebarwidget.cpp" line="167"/>
         <source>Did you mean: %1</source>
         <translation>Adakah anda maksudkan: %1</translation>
     </message>
 <context>
     <name>SnapshotSettings</name>
     <message>
-        <location filename="src/snapshotsettings.cpp" line="47"/>
         <source>Change location...</source>
         <translation>Ubah lokasi...</translation>
     </message>
     <message>
-        <location filename="src/snapshotsettings.cpp" line="64"/>
         <source>Snapshot saved to %1</source>
         <translation>Cekupan skrin disimpan ke dalam %1</translation>
     </message>
     <message>
-        <location filename="src/snapshotsettings.cpp" line="117"/>
         <source>Snapshots location changed.</source>
         <translation>Lokasi cekupan skrin berubah.</translation>
     </message>
 <context>
     <name>StandardFeedsView</name>
     <message>
-        <location filename="src/standardfeedsview.cpp" line="107"/>
         <source>Most Popular</source>
         <translation>Paling Popular</translation>
     </message>
 </context>
+<context>
+    <name>UpdateDialog</name>
+    <message>
+        <source>Downloading update...</source>
+        <translation>Memuat turun kemaskini...</translation>
+    </message>
+    <message>
+        <source>Downloading %1...</source>
+        <translation>Memuat turun %1...</translation>
+    </message>
+</context>
 <context>
     <name>Video</name>
     <message>
-        <location filename="src/video.cpp" line="287"/>
         <source>Cannot get video stream for %1</source>
         <translation>Tidak dapat strim video untuk %1</translation>
     </message>
-    <message>
-        <location filename="src/video.cpp" line="292"/>
-        <source>Network error: %1 for %2</source>
-        <translation>Ralat rangkaian: %1 untuk %2</translation>
-    </message>
 </context>
 <context>
     <name>YTRegions</name>
     <message>
-        <location filename="src/ytregions.cpp" line="28"/>
         <source>Algeria</source>
         <translation>Algeria</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="29"/>
         <source>Argentina</source>
         <translation>Argentina</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="30"/>
         <source>Australia</source>
         <translation>Australia</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="31"/>
         <source>Belgium</source>
         <translation>Belgium</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="32"/>
         <source>Brazil</source>
         <translation>Brazil</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="33"/>
         <source>Canada</source>
         <translation>Canada</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="34"/>
         <source>Chile</source>
         <translation>Chile</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="35"/>
         <source>Colombia</source>
         <translation>Colombia</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="36"/>
         <source>Czech Republic</source>
         <translation>Republik Czech</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="37"/>
         <source>Egypt</source>
         <translation>Mesir</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="38"/>
         <source>France</source>
         <translation>Perancis</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="39"/>
         <source>Germany</source>
         <translation>Jerman</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="40"/>
         <source>Ghana</source>
         <translation>Ghana</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="41"/>
         <source>Greece</source>
         <translation>Yunani</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="42"/>
         <source>Hong Kong</source>
         <translation>Hong Kong</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="43"/>
         <source>Hungary</source>
         <translation>Hungary</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="44"/>
         <source>India</source>
         <translation>India</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="45"/>
         <source>Indonesia</source>
         <translation>Indonesia</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="46"/>
         <source>Ireland</source>
         <translation>Ireland</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="47"/>
         <source>Israel</source>
         <translation>Israel</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="48"/>
         <source>Italy</source>
         <translation>Itali</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="49"/>
         <source>Japan</source>
         <translation>Jepun</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="50"/>
         <source>Jordan</source>
         <translation>Jordan</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="51"/>
         <source>Kenya</source>
         <translation>Kenya</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="52"/>
         <source>Malaysia</source>
         <translation>Malaysia</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="53"/>
         <source>Mexico</source>
         <translation>Mexico</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="54"/>
         <source>Morocco</source>
         <translation>Maghribi</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="55"/>
         <source>Netherlands</source>
         <translation>Belanda</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="56"/>
         <source>New Zealand</source>
         <translation>New Zealand</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="57"/>
         <source>Nigeria</source>
         <translation>Nigeria</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="58"/>
         <source>Peru</source>
         <translation>Peru</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="59"/>
         <source>Philippines</source>
         <translation>Filipina</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="60"/>
         <source>Poland</source>
         <translation>Poland</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="61"/>
         <source>Russia</source>
         <translation>Rusia</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="62"/>
         <source>Saudi Arabia</source>
         <translation>Arab Saudi</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="63"/>
         <source>Singapore</source>
         <translation>Singapura</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="64"/>
         <source>South Africa</source>
         <translation>Afrika Selatan</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="65"/>
         <source>South Korea</source>
         <translation>Korea Selatan</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="66"/>
         <source>Spain</source>
         <translation>Sepanyol</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="67"/>
         <source>Sweden</source>
         <translation>Sweden</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="68"/>
         <source>Taiwan</source>
         <translation>Taiwan</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="69"/>
         <source>Tunisia</source>
         <translation>Tunisia</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="70"/>
         <source>Turkey</source>
         <translation>Turki</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="71"/>
         <source>Uganda</source>
         <translation>Uganda</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="72"/>
         <source>United Arab Emirates</source>
         <translation>Emiriah Arab Bersatu</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="73"/>
         <source>United Kingdom</source>
         <translation>United Kingdom</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="74"/>
         <source>Yemen</source>
         <translation>Yaman</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="148"/>
         <source>Worldwide</source>
         <translation>Seluruh Dunia</translation>
     </message>
index b16c2eb5421977ce1f9945e69930769fdfa3dca7..8e6ae678133dbab68b5577bec4149d2a9be37df0 100644 (file)
@@ -2,67 +2,42 @@
 <context>
     <name>AboutView</name>
     <message>
-        <location filename="src/aboutview.cpp" line="58"/>
         <source>There&apos;s life outside the browser!</source>
         <translation>Det finnes et liv utenfor nettleseren!</translation>
     </message>
     <message>
-        <location filename="src/aboutview.cpp" line="59"/>
         <source>Version %1</source>
         <translation>Versjon %1</translation>
     </message>
     <message>
-        <location filename="src/aboutview.cpp" line="64"/>
         <source>Licensed to: %1</source>
         <translation>Lisensiert til: %1</translation>
     </message>
     <message>
-        <location filename="src/aboutview.cpp" line="68"/>
         <source>%1 is Free Software but its development takes precious time.</source>
-        <translation>%1 er fri programvare, men utviklingen tar dyrebar tid.</translation>
+        <translation>%1 er fri programvare, men utviklingen tar dyrbar tid.</translation>
     </message>
     <message>
-        <location filename="src/aboutview.cpp" line="69"/>
         <source>Please &lt;a href=&apos;%1&apos;&gt;donate&lt;/a&gt; to support the continued development of %2.</source>
-        <translation>Vennligst &lt;a href=&apos;%1&apos;&gt;doner&lt;/a&gt; for og støtte videre utvikling av %2.</translation>
+        <translation>Vennligst &lt;a href=&apos;%1&apos;&gt;donér&lt;/a&gt; for å støtte videre utvikling av %2.</translation>
     </message>
     <message>
-        <location filename="src/aboutview.cpp" line="73"/>
-        <source>You may want to try my other apps as well:</source>
-        <translation>Du vil kanskje prøve mine andre programmer også:</translation>
-    </message>
-    <message>
-        <location filename="src/aboutview.cpp" line="76"/>
-        <source>%1, a YouTube music player</source>
-        <translation>%1, en musikkspiller for YouTube</translation>
-    </message>
-    <message>
-        <location filename="src/aboutview.cpp" line="80"/>
-        <source>%1, a music player</source>
-        <translation>%1, en musikkspiller</translation>
-    </message>
-    <message>
-        <location filename="src/aboutview.cpp" line="86"/>
         <source>Translate %1 to your native language using %2</source>
         <translation>Oversett %1 til ditt morsmål ved hjelp av %2</translation>
     </message>
     <message>
-        <location filename="src/aboutview.cpp" line="91"/>
         <source>Icon designed by %1.</source>
         <translation>Ikonet er designet av %1.</translation>
     </message>
     <message>
-        <location filename="src/aboutview.cpp" line="95"/>
         <source>Released under the &lt;a href=&apos;%1&apos;&gt;GNU General Public License&lt;/a&gt;</source>
         <translation>Utgitt under &lt;a href=&apos;%1&apos;&gt;GNU General Public License&lt;/a&gt;</translation>
     </message>
     <message>
-        <location filename="src/aboutview.cpp" line="110"/>
         <source>&amp;Close</source>
-        <translation>&amp;Steng</translation>
+        <translation>&amp;Avslutt</translation>
     </message>
     <message>
-        <location filename="src/aboutview.h" line="40"/>
         <source>About</source>
         <translation>Om</translation>
     </message>
 <context>
     <name>ActivationDialog</name>
     <message>
-        <location filename="local/src/activationdialog.cpp" line="17"/>
         <source>Enter your License Details</source>
-        <translation>Angi lisensdetaljer</translation>
+        <translation>Skriv inn lisensdetaljer</translation>
     </message>
     <message>
-        <location filename="local/src/activationdialog.cpp" line="29"/>
         <source>&amp;Email:</source>
         <translation>&amp;E-post:</translation>
     </message>
     <message>
-        <location filename="local/src/activationdialog.cpp" line="35"/>
         <source>&amp;Code:</source>
         <translation>&amp;Kode:</translation>
     </message>
 <context>
     <name>ActivationView</name>
     <message>
-        <location filename="local/src/activationview.cpp" line="47"/>
         <source>Please license %1</source>
         <translation>Vennligst lisensier %1</translation>
     </message>
     <message>
-        <location filename="local/src/activationview.cpp" line="51"/>
         <source>This demo has expired.</source>
         <translation>Demoen er utløpt.</translation>
     </message>
     <message>
-        <location filename="local/src/activationview.cpp" line="53"/>
         <source>The full version allows you to watch videos without interruptions.</source>
-        <oldsource>The full version allows you to download videos longer than %1 minutes and to watch videos without interruptions.</oldsource>
-        <translation type="unfinished"/>
+        <translation>Den fulle versjonen tillater deg å se videoer uten avbrudd.</translation>
     </message>
     <message>
-        <location filename="local/src/activationview.cpp" line="55"/>
         <source>Without a license, the application will expire in %1 days.</source>
-        <translation>Uten lisens, vil programmet utløper i %1 dager.</translation>
+        <translation>Uten lisens, vil programmet utløpe om %1 dager.</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>Ved å kjøpe fullversjonen, støtter du det harde arbeidet som ble lagt inn i å skape %1.</translation>
     </message>
     <message>
-        <location filename="local/src/activationview.cpp" line="70"/>
         <source>Use Demo</source>
         <translation>Bruk demoen</translation>
     </message>
     <message>
-        <location filename="local/src/activationview.cpp" line="77"/>
         <source>Enter License</source>
         <translation>Angi Lisens</translation>
     </message>
     <message>
-        <location filename="local/src/activationview.cpp" line="85"/>
         <source>Buy License</source>
         <translation>Kjøp Lisens</translation>
     </message>
 </context>
+<context>
+    <name>AppWidget</name>
+    <message>
+        <source>Download</source>
+        <translation>Last ned</translation>
+    </message>
+</context>
 <context>
     <name>ChannelAggregator</name>
     <message>
-        <location filename="src/channelaggregator.cpp" line="183"/>
         <source>By %1</source>
-        <translation type="unfinished"/>
+        <translation>Ved %1</translation>
     </message>
     <message numerus="yes">
-        <location filename="src/channelaggregator.cpp" line="185"/>
         <source>You have %n new video(s)</source>
         <translation type="unfinished"><numerusform></numerusform><numerusform></numerusform></translation>
     </message>
 <context>
     <name>ChannelItemDelegate</name>
     <message>
-        <location filename="src/channelitemdelegate.cpp" line="67"/>
         <source>All Videos</source>
-        <translation type="unfinished"/>
+        <translation>Alle Videoer</translation>
     </message>
     <message>
-        <location filename="src/channelitemdelegate.cpp" line="85"/>
         <source>Unwatched Videos</source>
-        <translation type="unfinished"/>
+        <translation>Usette Videoer</translation>
     </message>
 </context>
 <context>
     <name>ChannelView</name>
     <message>
-        <location filename="src/channelview.cpp" line="151"/>
-        <source>Mark all as watched</source>
-        <translation type="unfinished"/>
-    </message>
-    <message>
-        <location filename="src/channelview.cpp" line="159"/>
-        <source>Show Updated</source>
-        <translation type="unfinished"/>
-    </message>
-    <message>
-        <location filename="src/channelview.cpp" line="103"/>
         <source>Name</source>
-        <translation type="unfinished"/>
+        <translation>Navn</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="110"/>
         <source>Last Updated</source>
-        <translation type="unfinished"/>
+        <translation>Sist Oppdatert</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="117"/>
         <source>Last Added</source>
-        <translation type="unfinished"/>
+        <translation>Sist Lagt Til</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="124"/>
         <source>Last Watched</source>
-        <translation type="unfinished"/>
+        <translation>Sist Sett</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="131"/>
         <source>Most Watched</source>
-        <translation type="unfinished"/>
+        <translation>Mest Sett</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="139"/>
         <source>Sort by</source>
         <translation>Sorter etter</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="222"/>
+        <source>Mark all as watched</source>
+        <translation>Marker alle som sett</translation>
+    </message>
+    <message>
+        <source>Show Updated</source>
+        <translation>Program Oppdatert</translation>
+    </message>
+    <message>
         <source>All Videos</source>
-        <translation type="unfinished"/>
+        <translation>Alle Videoer</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="226"/>
         <source>Unwatched Videos</source>
-        <translation type="unfinished"/>
+        <translation>Usette Videoer</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="244"/>
         <source>Mark as Watched</source>
-        <translation type="unfinished"/>
+        <translation>Marker som Sett</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="257"/>
         <source>Unsubscribe</source>
-        <translation type="unfinished"/>
+        <translation>Avslutte Abonnement</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="270"/>
         <source>There are no updated subscriptions at this time.</source>
-        <translation type="unfinished"/>
+        <translation>Det er ingen oppdaterte abonnement for øyeblikket</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="272"/>
         <source>You have no subscriptions. Use the star symbol to subscribe to channels.</source>
-        <translation type="unfinished"/>
+        <translation>Du har ingen abonnement. Bruk stjernesymbolet for å abonnemere på kanaler.</translation>
     </message>
 </context>
 <context>
     <name>ClearButton</name>
     <message>
-        <location filename="src/exlineedit.cpp" line="6"/>
         <source>Clear</source>
         <translation>Nullstill</translation>
     </message>
 <context>
     <name>DataUtils</name>
     <message>
-        <location filename="src/datautils.cpp" line="88"/>
         <source>Just now</source>
-        <translation type="unfinished"/>
+        <translation>Akkurat nå</translation>
     </message>
     <message numerus="yes">
-        <location filename="src/datautils.cpp" line="90"/>
-        <source>%n minute(s) ago</source>
-        <translation type="unfinished"><numerusform></numerusform><numerusform></numerusform></translation>
-    </message>
-    <message numerus="yes">
-        <location filename="src/datautils.cpp" line="92"/>
         <source>%n hour(s) ago</source>
         <translation type="unfinished"><numerusform></numerusform><numerusform></numerusform></translation>
     </message>
     <message numerus="yes">
-        <location filename="src/datautils.cpp" line="94"/>
         <source>%n day(s) ago</source>
         <translation type="unfinished"><numerusform></numerusform><numerusform></numerusform></translation>
     </message>
     <message numerus="yes">
-        <location filename="src/datautils.cpp" line="96"/>
         <source>%n weeks(s) ago</source>
         <translation type="unfinished"><numerusform></numerusform><numerusform></numerusform></translation>
     </message>
     <message numerus="yes">
-        <location filename="src/datautils.cpp" line="98"/>
         <source>%n month(s) ago</source>
         <translation type="unfinished"><numerusform></numerusform><numerusform></numerusform></translation>
     </message>
 <context>
     <name>DownloadItem</name>
     <message>
-        <location filename="src/downloaditem.cpp" line="406"/>
         <source>bytes</source>
         <translation>bytes</translation>
     </message>
     <message>
-        <location filename="src/downloaditem.cpp" line="409"/>
         <source>KB</source>
         <translation>KB</translation>
     </message>
     <message>
-        <location filename="src/downloaditem.cpp" line="412"/>
         <source>MB</source>
         <translation>MB</translation>
     </message>
     <message>
-        <location filename="src/downloaditem.cpp" line="421"/>
         <source>bytes/sec</source>
         <translation>bytes/sek</translation>
     </message>
     <message>
-        <location filename="src/downloaditem.cpp" line="424"/>
         <source>KB/sec</source>
         <translation>KB/sek</translation>
     </message>
     <message>
-        <location filename="src/downloaditem.cpp" line="427"/>
         <source>MB/sec</source>
         <translation>MB/sek</translation>
     </message>
     <message>
-        <location filename="src/downloaditem.cpp" line="433"/>
         <source>seconds</source>
         <translation>sekunder</translation>
     </message>
     <message>
-        <location filename="src/downloaditem.cpp" line="436"/>
         <source>minutes</source>
         <translation>minutter</translation>
     </message>
     <message>
-        <location filename="src/downloaditem.cpp" line="439"/>
         <source>%4 %5 remaining</source>
         <translation>%4 %5 gjenstår</translation>
     </message>
 <context>
     <name>DownloadManager</name>
     <message>
-        <location filename="src/downloadmanager.cpp" line="77"/>
         <source>This is just the demo version of %1.</source>
         <translation>Dette er kun demo-versjonen av %1.</translation>
     </message>
     <message>
-        <location filename="src/downloadmanager.cpp" line="79"/>
         <source>It can only download videos shorter than %1 minutes so you can test the download functionality.</source>
         <translation>Den kan kun laste ned videoer på under %1 minutter, for at du skal kunne prøve ut nedlastingsfunksjonen.</translation>
     </message>
     <message>
-        <location filename="src/downloadmanager.cpp" line="85"/>
         <source>Continue</source>
         <translation>Fortsett</translation>
     </message>
     <message>
-        <location filename="src/downloadmanager.cpp" line="86"/>
         <source>Get the full version</source>
         <translation>Kjøp fullversjonen</translation>
     </message>
     <message>
-        <location filename="src/downloadmanager.cpp" line="157"/>
         <source>%1 downloaded in %2</source>
-        <translation>%1 nedlastet i %2</translation>
+        <translation>%1 nedlastet  %2</translation>
     </message>
     <message>
-        <location filename="src/downloadmanager.cpp" line="160"/>
         <source>Download finished</source>
         <translation>Nedlastingen ferdig</translation>
     </message>
     <message numerus="yes">
-        <location filename="src/downloadmanager.cpp" line="165"/>
         <source>%n Download(s)</source>
         <translation type="unfinished"><numerusform></numerusform><numerusform></numerusform></translation>
     </message>
 <context>
     <name>DownloadSettings</name>
     <message>
-        <location filename="src/downloadsettings.cpp" line="36"/>
         <source>Change location...</source>
         <translation>Endre sted ...</translation>
     </message>
     <message>
-        <location filename="src/downloadsettings.cpp" line="69"/>
         <source>Choose the download location</source>
         <translation>Velg nedlastingsmappe</translation>
     </message>
     <message>
-        <location filename="src/downloadsettings.cpp" line="81"/>
         <source>Download location changed.</source>
         <translation>Nedlastingsmappe endret.</translation>
     </message>
     <message>
-        <location filename="src/downloadsettings.cpp" line="83"/>
         <source>Current downloads will still go in the previous location.</source>
         <translation>Pågående nedlastinger vil bli lagret i den forrige mappen.</translation>
     </message>
     <message>
-        <location filename="src/downloadsettings.cpp" line="94"/>
         <source>Downloading to: %1</source>
         <translation>Laster ned til: %1</translation>
     </message>
 <context>
     <name>DownloadView</name>
     <message>
-        <location filename="src/downloadview.cpp" line="38"/>
-        <location filename="src/downloadview.h" line="45"/>
         <source>Downloads</source>
         <translation>Nedlastinger</translation>
     </message>
 </context>
-<context>
-    <name>DownloadWidget</name>
-    <message>
-        <location filename="local/src/updatedialog.cpp" line="60"/>
-        <source>Downloading update...</source>
-        <translation>Laster ned oppdatering...</translation>
-    </message>
-</context>
 <context>
     <name>Extra</name>
     <message>
-        <location filename="local/src/extra.cpp" line="251"/>
         <source>The executable file has been tempered with, maybe by a virus.</source>
-        <translation type="unfinished"/>
+        <translation>Den kjørbare filen er infisert, muligens med et virus.</translation>
     </message>
     <message>
-        <location filename="local/src/extra.cpp" line="252"/>
         <source>%1 will not run. Try installing again.</source>
-        <translation type="unfinished"/>
+        <translation>%1 vil ikke kjøre. Prøv å installere igjen.</translation>
     </message>
     <message>
-        <location filename="local/src/extra.cpp" line="253"/>
         <source>Quit</source>
-        <translation type="unfinished"/>
+        <translation>Avslutt</translation>
     </message>
     <message>
-        <location filename="local/src/extra.cpp" line="254"/>
         <source>Reinstall</source>
-        <translation type="unfinished"/>
+        <translation>Installer på nytt</translation>
     </message>
 </context>
 <context>
     <name>GlobalShortcuts</name>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="36"/>
         <source>Play</source>
         <translation>Spill av</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="37"/>
         <source>Pause</source>
         <translation>Pause</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="38"/>
         <source>Play/Pause</source>
         <translation>Spill av/Pause</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="39"/>
         <source>Stop</source>
         <translation>Stopp</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="40"/>
         <source>Stop playing after current track</source>
         <translation>Stopp avspilling etter denne videoen.</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="41"/>
         <source>Next track</source>
         <translation>Neste video</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="42"/>
         <source>Previous track</source>
         <translation>Forrige video</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="43"/>
         <source>Increase volume</source>
         <translation>Øk lydvolumet</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="44"/>
         <source>Decrease volume</source>
         <translation>Senk lydvolumet</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="45"/>
         <source>Mute</source>
         <translation>Lydløs</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="46"/>
         <source>Seek forward</source>
         <translation>Søk forover</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="47"/>
         <source>Seek backward</source>
         <translation>Søk bakover</translation>
     </message>
 <context>
     <name>HomeView</name>
     <message>
-        <location filename="src/homeview.cpp" line="58"/>
         <source>Search</source>
         <translation>Søk</translation>
     </message>
     <message>
-        <location filename="src/homeview.cpp" line="60"/>
         <source>Find videos and channels by keyword</source>
         <translation>Finn videoer og kanaler med søkeord</translation>
     </message>
     <message>
-        <location filename="src/homeview.cpp" line="65"/>
         <source>Browse</source>
         <translation>Bla gjennom</translation>
     </message>
     <message>
-        <location filename="src/homeview.cpp" line="67"/>
         <source>Browse videos by category</source>
         <translation>Bla gjennom videoer etter kategori</translation>
     </message>
     <message>
-        <location filename="src/homeview.cpp" line="71"/>
         <source>Subscriptions</source>
-        <translation type="unfinished"/>
+        <translation>Abonnement</translation>
     </message>
     <message>
-        <location filename="src/homeview.cpp" line="73"/>
         <source>Channel subscriptions</source>
-        <translation type="unfinished"/>
+        <translation>Kanalabonnementer</translation>
     </message>
     <message>
-        <location filename="src/homeview.h" line="44"/>
         <source>Make yourself comfortable</source>
-        <translation>Gjøre deg komfortabel</translation>
+        <translation>Gjør deg komfortabel</translation>
     </message>
 </context>
 <context>
     <name>LoadingWidget</name>
     <message>
-        <location filename="src/loadingwidget.cpp" line="125"/>
         <source>Error</source>
         <translation>Feil</translation>
     </message>
 <context>
     <name>MainWindow</name>
     <message>
-        <location filename="src/mainwindow.cpp" line="291"/>
+        <source>&amp;Window</source>
+        <translation>&amp;Vindu</translation>
+    </message>
+    <message>
+        <source>&amp;Minimize</source>
+        <translation>&amp;Minimer</translation>
+    </message>
+    <message>
         <source>&amp;Stop</source>
         <translation>&amp;Stopp</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="292"/>
         <source>Stop playback and go back to the search view</source>
         <translation>Stopp avspilling og gå tilbake til søkevisningen</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="307"/>
+        <source>P&amp;revious</source>
+        <translation>&amp;Forrige</translation>
+    </message>
+    <message>
+        <source>Go back to the previous track</source>
+        <translation>Gå til forrige spor</translation>
+    </message>
+    <message>
         <source>S&amp;kip</source>
         <translation>&amp;Hopp over</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="308"/>
         <source>Skip to the next video</source>
         <translation>Hopp til neste video</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1134"/>
-        <source>&amp;Pause</source>
-        <translation>&amp;Pause</translation>
+        <source>&amp;Play</source>
+        <translation>&amp;Spill av</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1135"/>
-        <source>Pause playback</source>
-        <translation>Sett avspilling på pause</translation>
+        <source>Resume playback</source>
+        <translation>Gjenoppta avspilling</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="321"/>
         <source>&amp;Full Screen</source>
         <translation>&amp;Fullskjerm</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="322"/>
         <source>Go full screen</source>
         <translation>Fullskjermsvisning</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="336"/>
+        <source>&amp;Compact Mode</source>
+        <translation>&amp;Kompakt modus</translation>
+    </message>
+    <message>
         <source>Hide the playlist and the toolbar</source>
         <translation>Gjem spillelista og verktøylinja</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="349"/>
+        <source>Open the &amp;YouTube Page</source>
+        <translation>Åpne siden på &amp;YouTube</translation>
+    </message>
+    <message>
         <source>Go to the YouTube video page and pause playback</source>
         <translation>Gå til YouTube video siden og pause avspillingen</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="356"/>
+        <source>Copy the YouTube &amp;Link</source>
+        <translation>Kopier &amp;lenken til YouTube</translation>
+    </message>
+    <message>
         <source>Copy the current video YouTube link to the clipboard</source>
         <translation>Kopier denne YouTube video linken til utklippstavle</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="363"/>
+        <source>Copy the Video Stream &amp;URL</source>
+        <translation>Kopier &amp;URL-en til videostrømmen</translation>
+    </message>
+    <message>
         <source>Copy the current video stream URL to the clipboard</source>
         <translation>Kopier denne video stream URL til utklippstavle</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="370"/>
+        <source>Find Video &amp;Parts</source>
+        <translation>Finn &amp;deler av videoen</translation>
+    </message>
+    <message>
         <source>Find other video parts hopefully in the right order</source>
         <translation>Finn andre videosegment, forhåpentligvis i rett rekkefølge</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="376"/>
         <source>&amp;Remove</source>
         <translation>&amp;Fjern</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="377"/>
         <source>Remove the selected videos from the playlist</source>
         <translation>Fjern valgte videoer fra spillelista</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="383"/>
         <source>Move &amp;Up</source>
         <translation>Flytt &amp;opp</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="384"/>
         <source>Move up the selected videos in the playlist</source>
         <translation>Flytt opp valgte videoer i spillelista</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="390"/>
         <source>Move &amp;Down</source>
         <translation>Flytt &amp;Ned</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="391"/>
         <source>Move down the selected videos in the playlist</source>
         <translation>Flytt ned valgte videoer i spillelista</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="402"/>
+        <source>&amp;Clear Recent Searches</source>
+        <translation>T&amp;øm siste søk</translation>
+    </message>
+    <message>
         <source>Clear the search history. Cannot be undone.</source>
         <translation>Fjern all søkehistorie. Kan ikke angres.</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="407"/>
         <source>&amp;Quit</source>
         <translation>&amp;Avslutt</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="410"/>
         <source>Bye</source>
         <translation>Farvel</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="414"/>
         <source>&amp;Website</source>
         <translation>&amp;Nettsted</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="416"/>
         <source>%1 on the Web</source>
         <translation>%1 på internett</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="422"/>
+        <source>Make a &amp;Donation</source>
+        <translation>Gi en &amp;donasjon</translation>
+    </message>
+    <message>
         <source>Please support the continued development of %1</source>
         <translation>Vi håper du kan bidra til å fortsette arbeidet med utvikling av %1</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="427"/>
         <source>&amp;About</source>
         <translation>&amp;Om</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="429"/>
         <source>Info about %1</source>
         <translation>Informasjon om %1</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="437"/>
         <source>Search</source>
         <translation>Søk</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="456"/>
         <source>Mute volume</source>
         <translation>Lydløs</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="490"/>
-        <location filename="src/mainwindow.cpp" line="1609"/>
+        <source>&amp;Manually Start Playing</source>
+        <translation>Start avspillingen &amp;manuelt</translation>
+    </message>
+    <message>
+        <source>Manually start playing videos</source>
+        <translation>Spill av videoer manuelt</translation>
+    </message>
+    <message>
         <source>&amp;Downloads</source>
         <translation>&amp;Nedlastinger</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="491"/>
         <source>Show details about video downloads</source>
         <translation>Vis detaljer om nedlasting av video</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="499"/>
         <source>&amp;Download</source>
         <translation>&amp;Nedlasting</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="500"/>
         <source>Download the current video</source>
         <translation>Last ned denne videoen</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="510"/>
         <source>Take &amp;Snapshot</source>
-        <translation type="unfinished"/>
+        <translation>Ta &amp;Skjermdump</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="517"/>
         <source>&amp;Subscribe to Channel</source>
-        <translation type="unfinished"/>
+        <translation>&amp;Abonner på Kanal</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="525"/>
         <source>Share the current video using %1</source>
         <translation>Del denne videoen med %1</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="545"/>
         <source>&amp;Email</source>
-        <translation>&amp;Epost</translation>
+        <translation>&amp;E-post</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="546"/>
         <source>Email</source>
-        <translation>Epost</translation>
+        <translation>E-post</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="551"/>
         <source>&amp;Close</source>
         <translation>&amp;Steng</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="561"/>
         <source>&amp;Float on Top</source>
         <translation>&amp;Vis over andre</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="566"/>
         <source>&amp;Adjust Window Size</source>
-        <translation type="unfinished"/>
+        <translation>&amp;Tilpass Vindusstørrelse</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="571"/>
         <source>&amp;Stop After This Video</source>
         <translation>&amp;Stopp etter denne videoen</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="578"/>
         <source>&amp;Report an Issue...</source>
         <translation>&amp;Rapporter et Problem</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="582"/>
         <source>&amp;Refine Search...</source>
         <translation>&amp;Detaljert søk...</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="594"/>
         <source>More...</source>
         <translation>Mer...</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="597"/>
         <source>&amp;Related Videos</source>
         <translation>&amp;Relaterte Videoer</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="599"/>
         <source>Watch videos related to the current one</source>
         <translation>Se videoer relatert til den nåværende</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="605"/>
         <source>Open in &amp;Browser...</source>
-        <translation type="unfinished"/>
+        <translation>Åpne i &amp;Nettleser</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="612"/>
-        <source>&amp;Love %1? Rate it!</source>
-        <translation type="unfinished"/>
+        <source>Restricted Mode</source>
+        <translation>Begrenset Modus</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="633"/>
-        <source>&amp;Application</source>
-        <translation>Applikasjon</translation>
+        <source>Hide videos that may contain inappropriate content</source>
+        <translation>Skjul videoer som kan inneholde upassende innhold</translation>
+    </message>
+    <message>
+        <source>&amp;Love %1? Rate it!</source>
+        <translation>&amp;Liker du %1? Ranger den!</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="618"/>
         <source>Buy %1...</source>
         <translation>Kjøp %1 …</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="647"/>
+        <source>&amp;Application</source>
+        <translation>Applikasjon</translation>
+    </message>
+    <message>
         <source>&amp;Playback</source>
         <translation>&amp;Avspilling</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="661"/>
         <source>&amp;Playlist</source>
         <translation>&amp;Spilleliste</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="670"/>
         <source>&amp;Video</source>
         <translation>&amp;Video</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="686"/>
-        <source>&amp;View</source>
-        <translation>&amp;Visning</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="695"/>
         <source>&amp;Share</source>
         <translation>&amp;Del</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="709"/>
+        <source>&amp;View</source>
+        <translation>&amp;Visning</translation>
+    </message>
+    <message>
         <source>&amp;Help</source>
         <translation>&amp;Hjelp</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="751"/>
         <source>Press %1 to raise the volume, %2 to lower it</source>
         <translation>Trykk på %1 for å øke lydvolumet, %2 for å senke</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1021"/>
-        <location filename="src/mainwindow.cpp" line="1027"/>
+        <source>Choose your content location</source>
+        <translation>Velg innholdsplassering</translation>
+    </message>
+    <message>
         <source>Opening %1</source>
         <translation>Åpner %1</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1080"/>
         <source>Do you want to exit %1 with a download in progress?</source>
         <translation>Vil du avslutte %1 mens nedlastinger pågår?</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1081"/>
         <source>If you close %1 now, this download will be cancelled.</source>
-        <translation>Vis du stenger %1 nå, vil nedlastingen bli avbrutt</translation>
+        <translation>Hvis du stenger %1 nå, vil nedlastingen bli avbrutt</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1086"/>
         <source>Close and cancel download</source>
         <translation>Steng og avbryt nedlastingen </translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1087"/>
         <source>Wait for download to finish</source>
         <translation>Vent mens nedlastingen fullføres</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1158"/>
-        <source>&amp;Loading...</source>
-        <translation type="unfinished"/>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="1264"/>
-        <source>Leave &amp;Full Screen</source>
-        <translation>Forlat &amp;Full Skjerm</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="1718"/>
-        <source>%1 version %2 is now available.</source>
-        <translation>Versjon %2 av %1 er nå tilgjengelig.</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="1722"/>
-        <source>Remind me later</source>
-        <translation>Minn meg på det senere</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="1723"/>
-        <source>Update</source>
-        <translation>Oppdater</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="1127"/>
         <source>Error: %1</source>
         <translation>Feil: %1</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="300"/>
-        <source>P&amp;revious</source>
-        <translation>&amp;Forrige</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="301"/>
-        <source>Go back to the previous track</source>
-        <translation>Gå til forrige spor</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="335"/>
-        <source>&amp;Compact Mode</source>
-        <translation>&amp;Kompakt modus</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="348"/>
-        <source>Open the &amp;YouTube Page</source>
-        <translation>Åpne siden på &amp;YouTube</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="355"/>
-        <source>Copy the YouTube &amp;Link</source>
-        <translation>Kopier &amp;lenken til YouTube</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="362"/>
-        <source>Copy the Video Stream &amp;URL</source>
-        <translation>Kopier &amp;URL-en til videostrømmen</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="369"/>
-        <source>Find Video &amp;Parts</source>
-        <translation>Finn &amp;deler av videoen</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="397"/>
-        <source>&amp;Clear Recent Searches</source>
-        <translation>T&amp;øm siste søk</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="421"/>
-        <source>Make a &amp;Donation</source>
-        <translation>Gi en &amp;donasjon</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="483"/>
-        <source>&amp;Manually Start Playing</source>
-        <translation>Start avspillingen &amp;manuelt</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="484"/>
-        <source>Manually start playing videos</source>
-        <translation>Spill av videoer manuelt</translation>
+        <source>&amp;Pause</source>
+        <translation>&amp;Pause</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="847"/>
-        <source>Choose your content location</source>
-        <translation>Velg innholdsplassering</translation>
+        <source>Pause playback</source>
+        <translation>Sett avspilling på pause</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="314"/>
-        <location filename="src/mainwindow.cpp" line="1142"/>
-        <location filename="src/mainwindow.cpp" line="1150"/>
-        <source>&amp;Play</source>
-        <translation>&amp;Spill av</translation>
+        <source>&amp;Loading...</source>
+        <translation>&amp;Laster...</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="315"/>
-        <location filename="src/mainwindow.cpp" line="1143"/>
-        <location filename="src/mainwindow.cpp" line="1151"/>
-        <source>Resume playback</source>
-        <translation>Gjenoppta avspilling</translation>
+        <source>Leave &amp;Full Screen</source>
+        <translation>Forlat &amp;Fullskjerm</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1437"/>
         <source>Remaining time: %1</source>
         <translation>Gjenstående tid: %1</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1528"/>
         <source>Volume at %1%</source>
         <translation>Volum %1%</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1534"/>
         <source>Volume is muted</source>
         <translation>Lydløst er på</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1537"/>
         <source>Volume is unmuted</source>
         <translation>Lydløst er av</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1548"/>
         <source>Maximum video definition set to %1</source>
-        <translation>Maksimum video definisjon innstilling til %1</translation>
+        <translation>Maksimal videodefinisjon satt til %1</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1595"/>
         <source>Your privacy is now safe</source>
-        <translation>Ditt privatliv er nå sikkert</translation>
+        <translation>Ditt personvern er nå sikkert</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1610"/>
         <source>Downloads complete</source>
         <translation>Nedlastinger fullført</translation>
     </message>
+    <message>
+        <source>%1 version %2 is now available.</source>
+        <translation>Versjon %2 av %1 er nå tilgjengelig.</translation>
+    </message>
+    <message>
+        <source>Remind me later</source>
+        <translation>Minn meg på det senere</translation>
+    </message>
+    <message>
+        <source>Update</source>
+        <translation>Oppdater</translation>
+    </message>
 </context>
 <context>
     <name>MediaView</name>
     <message>
-        <location filename="src/mediaview.cpp" line="702"/>
         <source>You can now paste the YouTube link into another application</source>
         <translation>Du kan nå lime inn YouTube linken i et annet program</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="710"/>
         <source>You can now paste the video stream URL into another application</source>
-        <translation>Du kan nå lime inn video stream URL i et annet applikasjon</translation>
+        <translation>Du kan nå lime inn video stream URL i en annen applikasjon</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="711"/>
         <source>The link will be valid only for a limited time.</source>
         <translation>Denne linken vil kun være gyldig i en begrenset tid.</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="800"/>
         <source>This is just the demo version of %1.</source>
         <translation>Dette er kun demoversjonen av %1.</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="801"/>
         <source>It allows you to test the application and see if it works for you.</source>
         <translation>Dette gir deg muligheten til å prøve ut applikasjonen og se om du den er noe for deg.</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="833"/>
+        <source>Get the full version</source>
+        <translation>Kjøp fullversjonen</translation>
+    </message>
+    <message>
         <source>Continue</source>
         <translation>Fortsett</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="988"/>
+        <source>Downloading %1</source>
+        <translation>Nedlasting %1</translation>
+    </message>
+    <message>
         <source>of</source>
         <comment>Used in video parts, as in '2 of 3'</comment>
         <translation>av</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="1001"/>
         <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="1003"/>
         <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="1096"/>
         <source>Sent from %1</source>
         <translation>Sent fra %1</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="1128"/>
         <source>Unsubscribe from %1</source>
-        <translation type="unfinished"/>
+        <translation>Meld deg ut fra %1</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="1132"/>
         <source>Subscribe to %1</source>
-        <translation type="unfinished"/>
+        <translation>Abonnér på %1</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="1166"/>
         <source>Unsubscribed from %1</source>
-        <translation type="unfinished"/>
+        <translation>Du er utmeldt fra %1</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="1169"/>
         <source>Subscribed to %1</source>
-        <translation type="unfinished"/>
-    </message>
-    <message>
-        <location filename="src/mediaview.cpp" line="808"/>
-        <source>Get the full version</source>
-        <translation>Kjøp fullversjonen</translation>
-    </message>
-    <message>
-        <location filename="src/mediaview.cpp" line="847"/>
-        <source>Downloading %1</source>
-        <translation>Nedlasting %1</translation>
+        <translation>Abonnert på %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>En ny versjon av %1 er tilgjengelig!</translation>
     </message>
     <message>
-        <location filename="local/src/updatedialog.cpp" line="28"/>
         <source>%1 %2 is now available. You have %3.</source>
         <translation>%1 %2 er nå tilgjengelig. Du har %3.</translation>
     </message>
     <message>
-        <location filename="local/src/updatedialog.cpp" line="33"/>
         <source>Would you like to download it now?</source>
         <translation>Vil du last den ned nå?</translation>
     </message>
     <message>
-        <location filename="local/src/updatedialog.cpp" line="39"/>
         <source>Skip This Version</source>
         <translation>Hopp Over Denne Versjonen</translation>
     </message>
     <message>
-        <location filename="local/src/updatedialog.cpp" line="43"/>
         <source>Remind Me Later</source>
-        <translation>Minn Meg Senere</translation>
+        <translation>Minn meg på det senere</translation>
     </message>
     <message>
-        <location filename="local/src/updatedialog.cpp" line="47"/>
         <source>Install Update</source>
         <translation>Installer Oppdatering</translation>
     </message>
 <context>
     <name>PasteLineEdit</name>
     <message>
-        <location filename="local/src/pastelineedit.cpp" line="6"/>
         <source>Paste</source>
-        <translation>Lim</translation>
+        <translation>Lim inn</translation>
     </message>
 </context>
 <context>
     <name>PlaylistItemDelegate</name>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="209"/>
         <source>%1 views</source>
         <translation>%1 visninger</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="309"/>
         <source>%1 of %2 (%3) — %4</source>
         <translation>%1 av %2 (%3) — %4</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="316"/>
         <source>Preparing</source>
         <translation>Forbereder</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="318"/>
         <source>Failed</source>
         <translation>Mislykket</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="320"/>
         <source>Completed</source>
         <translation>Fullført</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="322"/>
         <source>Stopped</source>
         <translation>Stoppet</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="358"/>
         <source>Stop downloading</source>
-        <translation>Stoppe nedlastingen</translation>
+        <translation>Stopp nedlastingen</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="368"/>
         <source>Show in %1</source>
         <translation>Vis i %1</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="370"/>
         <source>Open parent folder</source>
-        <translation>Åpen foreldre mappe</translation>
+        <translation>Åpen den overordnede mappen</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="379"/>
         <source>Restart downloading</source>
-        <translation>Omstart nedlasting</translation>
+        <translation>Start nedlastning på nytt</translation>
     </message>
 </context>
 <context>
     <name>PlaylistModel</name>
     <message>
-        <location filename="src/playlistmodel.cpp" line="70"/>
         <source>Searching...</source>
         <translation>Søker...</translation>
     </message>
     <message>
-        <location filename="src/playlistmodel.cpp" line="71"/>
         <source>Show %1 More</source>
         <translation>Vis %1 Mer</translation>
     </message>
     <message>
-        <location filename="src/playlistmodel.cpp" line="72"/>
         <source>No videos</source>
         <translation>Ingen videoer</translation>
     </message>
     <message>
-        <location filename="src/playlistmodel.cpp" line="73"/>
         <source>No more videos</source>
         <translation>Ingen flere videoer</translation>
     </message>
 <context>
     <name>RefineSearchWidget</name>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="49"/>
         <source>Sort by</source>
         <translation>Sorter etter</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="53"/>
         <source>Relevance</source>
-        <translation>Relevans</translation>
+        <translation>Relevanse</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="54"/>
-        <location filename="src/refinesearchwidget.cpp" line="69"/>
         <source>Date</source>
         <translation>Dato</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="55"/>
         <source>View Count</source>
         <translation>Antall ganger sett</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="56"/>
         <source>Rating</source>
         <translation>Vurdering</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="73"/>
         <source>Anytime</source>
         <translation>Når som helst</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="74"/>
         <source>Today</source>
         <translation>I dag</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="75"/>
         <source>7 Days</source>
         <translation>7 Dager</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="76"/>
         <source>30 Days</source>
         <translation>30 Dager</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="89"/>
         <source>Duration</source>
         <translation>Varighet</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="93"/>
-        <location filename="src/refinesearchwidget.cpp" line="119"/>
         <source>All</source>
         <translation>Alle</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="94"/>
         <source>Short</source>
         <translation>Kort</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="95"/>
         <source>Medium</source>
         <translation>Medium</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="96"/>
         <source>Long</source>
         <translation>Lange</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="99"/>
         <source>Less than 4 minutes</source>
         <translation>Mindre enn 4 minutter</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="100"/>
         <source>Between 4 and 20 minutes</source>
         <translation>Mellom 4 og 20 minutter</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="101"/>
         <source>Longer than 20 minutes</source>
-        <translation>Lenger en 20 minutter</translation>
+        <translation>Lengre enn 20 minutter</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="115"/>
         <source>Quality</source>
         <translation>Kvalitet</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="120"/>
         <source>High Definition</source>
         <translation>Høy Definisjon</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="123"/>
         <source>720p or higher</source>
-        <translation>720p eller høyer</translation>
+        <translation>720p eller høyere</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="136"/>
         <source>Done</source>
         <translation>Ferdig</translation>
     </message>
 <context>
     <name>RegionsView</name>
     <message>
-        <location filename="src/regionsview.cpp" line="39"/>
         <source>Done</source>
         <translation>Ferdig</translation>
     </message>
 <context>
     <name>SearchLineEdit</name>
     <message>
-        <location filename="src/searchlineedit.cpp" line="55"/>
         <source>Search</source>
         <translation>Søk</translation>
     </message>
 <context>
     <name>SearchView</name>
     <message>
-        <location filename="src/searchview.cpp" line="83"/>
         <source>Welcome to &lt;a href=&apos;%1&apos;&gt;%2&lt;/a&gt;,</source>
         <translation>Velkommen til &lt;a href=&apos;%1&apos;&gt;%2&lt;/a&gt;,</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="200"/>
-        <source>Get the full version</source>
-        <translation>Kjøpfullversjon</translation>
-    </message>
-    <message>
-        <location filename="src/searchview.cpp" line="110"/>
         <source>Enter</source>
         <extracomment>&quot;Enter&quot;, as in &quot;type&quot;. The whole phrase says: &quot;Enter a keyword to start watching videos&quot;</extracomment>
         <translation>Skriv</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="117"/>
         <source>a keyword</source>
         <translation>ett nøkkelord</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="118"/>
         <source>a channel</source>
         <translation>en kanal</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="125"/>
         <source>to start watching videos.</source>
         <translation>for å begynne avspilling av video</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="156"/>
         <source>Watch</source>
         <translation>Se</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="174"/>
         <source>Recent keywords</source>
-        <translation>Seneste søkeord</translation>
+        <translation>Nylige søkeord</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="186"/>
         <source>Recent channels</source>
-        <translation>Seneste kanaler</translation>
+        <translation>Nylige kanaler</translation>
+    </message>
+    <message>
+        <source>Get the full version</source>
+        <translation>Kjøp fullversjon</translation>
     </message>
 </context>
 <context>
     <name>SidebarHeader</name>
     <message>
-        <location filename="src/sidebarheader.cpp" line="38"/>
-        <location filename="src/sidebarheader.cpp" line="45"/>
         <source>&amp;Back</source>
         <translation>&amp;Tilbake</translation>
     </message>
     <message>
-        <location filename="src/sidebarheader.cpp" line="76"/>
         <source>Forward to %1</source>
         <translation>Fremover til %1</translation>
     </message>
     <message>
-        <location filename="src/sidebarheader.cpp" line="89"/>
         <source>Back to %1</source>
         <translation>Tilbake til %1</translation>
     </message>
 <context>
     <name>SidebarWidget</name>
     <message>
-        <location filename="src/sidebarwidget.cpp" line="68"/>
         <source>Refine Search</source>
         <translation>Detaljert søk</translation>
     </message>
     <message>
-        <location filename="src/sidebarwidget.cpp" line="167"/>
         <source>Did you mean: %1</source>
         <translation>Mente du: %1</translation>
     </message>
 <context>
     <name>SnapshotSettings</name>
     <message>
-        <location filename="src/snapshotsettings.cpp" line="47"/>
         <source>Change location...</source>
         <translation>Endre sted ...</translation>
     </message>
     <message>
-        <location filename="src/snapshotsettings.cpp" line="64"/>
         <source>Snapshot saved to %1</source>
-        <translation type="unfinished"/>
+        <translation>Skjermdump lagret på %1</translation>
     </message>
     <message>
-        <location filename="src/snapshotsettings.cpp" line="117"/>
         <source>Snapshots location changed.</source>
-        <translation type="unfinished"/>
+        <translation>Plassering av øyeblikksbilder er endret.</translation>
     </message>
 </context>
 <context>
     <name>StandardFeedsView</name>
     <message>
-        <location filename="src/standardfeedsview.cpp" line="107"/>
         <source>Most Popular</source>
         <translation>Mest Populære</translation>
     </message>
 </context>
+<context>
+    <name>UpdateDialog</name>
+    <message>
+        <source>Downloading update...</source>
+        <translation>Laster ned oppdatering...</translation>
+    </message>
+    <message>
+        <source>Downloading %1...</source>
+        <translation>Laster ned %1...</translation>
+    </message>
+</context>
 <context>
     <name>Video</name>
     <message>
-        <location filename="src/video.cpp" line="287"/>
         <source>Cannot get video stream for %1</source>
         <translation>Kan ikke hente mediastrøm for %1</translation>
     </message>
-    <message>
-        <location filename="src/video.cpp" line="292"/>
-        <source>Network error: %1 for %2</source>
-        <translation>Feil på nettverk: %1 for %2</translation>
-    </message>
 </context>
 <context>
     <name>YTRegions</name>
     <message>
-        <location filename="src/ytregions.cpp" line="28"/>
         <source>Algeria</source>
         <translation>Algerie</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="29"/>
         <source>Argentina</source>
         <translation>Argentina</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="30"/>
         <source>Australia</source>
         <translation>Australia</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="31"/>
         <source>Belgium</source>
         <translation>Belgia</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="32"/>
         <source>Brazil</source>
         <translation>Brasil</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="33"/>
         <source>Canada</source>
         <translation>Canada</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="34"/>
         <source>Chile</source>
         <translation>Chile</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="35"/>
         <source>Colombia</source>
         <translation>Colombia</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="36"/>
         <source>Czech Republic</source>
-        <translation>Czech Republic</translation>
+        <translation>Den Tsjekkiske Republikk</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="37"/>
         <source>Egypt</source>
         <translation>Egypt</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="38"/>
         <source>France</source>
-        <translation>France</translation>
+        <translation>Frankrike</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="39"/>
         <source>Germany</source>
         <translation>Tyskland</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="40"/>
         <source>Ghana</source>
         <translation>Ghana</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="41"/>
         <source>Greece</source>
         <translation>Hellas</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="42"/>
         <source>Hong Kong</source>
         <translation>Hong Kong</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="43"/>
         <source>Hungary</source>
-        <translation>Hungary</translation>
+        <translation>Ungarn</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="44"/>
         <source>India</source>
         <translation>India</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="45"/>
         <source>Indonesia</source>
         <translation>Indonesia</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="46"/>
         <source>Ireland</source>
         <translation>Irland</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="47"/>
         <source>Israel</source>
         <translation>Israel</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="48"/>
         <source>Italy</source>
         <translation>Italia</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="49"/>
         <source>Japan</source>
         <translation>Japan</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="50"/>
         <source>Jordan</source>
         <translation>Jordan</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="51"/>
         <source>Kenya</source>
         <translation>Kenya</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="52"/>
         <source>Malaysia</source>
         <translation>Malaysia</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="53"/>
         <source>Mexico</source>
         <translation>Mexico</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="54"/>
         <source>Morocco</source>
         <translation>Marokko</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="55"/>
         <source>Netherlands</source>
         <translation>Nederland</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="56"/>
         <source>New Zealand</source>
         <translation>New Zealand</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="57"/>
         <source>Nigeria</source>
         <translation>Nigeria</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="58"/>
         <source>Peru</source>
         <translation>Peru</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="59"/>
         <source>Philippines</source>
         <translation>Filippinene</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="60"/>
         <source>Poland</source>
         <translation>Polen</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="61"/>
         <source>Russia</source>
         <translation>Russland</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="62"/>
         <source>Saudi Arabia</source>
         <translation>Saudi Arabia</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="63"/>
         <source>Singapore</source>
         <translation>Singapore</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="64"/>
         <source>South Africa</source>
         <translation>Sør Africa</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="65"/>
         <source>South Korea</source>
         <translation>Sør Korea</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="66"/>
         <source>Spain</source>
         <translation>Spania</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="67"/>
         <source>Sweden</source>
         <translation>Sverige</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="68"/>
         <source>Taiwan</source>
         <translation>Taiwan</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="69"/>
         <source>Tunisia</source>
         <translation>Tunisia</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="70"/>
         <source>Turkey</source>
         <translation>Tyrkia</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="71"/>
         <source>Uganda</source>
         <translation>Uganda</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="72"/>
         <source>United Arab Emirates</source>
         <translation>De Forente Arabiske Emirater</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="73"/>
         <source>United Kingdom</source>
         <translation>Storbritannia</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="74"/>
         <source>Yemen</source>
         <translation>Yemen</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="148"/>
         <source>Worldwide</source>
-        <translation>Over heile verda</translation>
+        <translation>Over hele verden</translation>
     </message>
 </context>
 </TS>
\ No newline at end of file
index efd2de18c8f3b7cea35e2bce28cace2b45fab62e..f4666af15cd1454f52f3737720691c5613992b30 100644 (file)
@@ -2,67 +2,42 @@
 <context>
     <name>AboutView</name>
     <message>
-        <location filename="src/aboutview.cpp" line="58"/>
         <source>There&apos;s life outside the browser!</source>
         <translation>Er is leven buiten de browser!</translation>
     </message>
     <message>
-        <location filename="src/aboutview.cpp" line="59"/>
         <source>Version %1</source>
         <translation>Versie %1</translation>
     </message>
     <message>
-        <location filename="src/aboutview.cpp" line="64"/>
         <source>Licensed to: %1</source>
         <translation>Gelicenseerd aan: %1</translation>
     </message>
     <message>
-        <location filename="src/aboutview.cpp" line="68"/>
         <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="69"/>
         <source>Please &lt;a href=&apos;%1&apos;&gt;donate&lt;/a&gt; to support the continued development of %2.</source>
         <translation>&lt;a href=&apos;%1&apos;&gt;Doneer&lt;/a&gt; om bij te dragen aan de verdere ontwikkeling van %2.</translation>
     </message>
     <message>
-        <location filename="src/aboutview.cpp" line="73"/>
-        <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="76"/>
-        <source>%1, a YouTube music player</source>
-        <translation>%1, een YouTube-muziekspeler</translation>
-    </message>
-    <message>
-        <location filename="src/aboutview.cpp" line="80"/>
-        <source>%1, a music player</source>
-        <translation>%1, een muziekspeler</translation>
-    </message>
-    <message>
-        <location filename="src/aboutview.cpp" line="86"/>
         <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="91"/>
         <source>Icon designed by %1.</source>
         <translation>Pictogram ontworpen door %1.</translation>
     </message>
     <message>
-        <location filename="src/aboutview.cpp" line="95"/>
         <source>Released under the &lt;a href=&apos;%1&apos;&gt;GNU General Public License&lt;/a&gt;</source>
         <translation>Uitgebracht onder de &lt;a href=&apos;%1&apos;&gt;GNU General Public License&lt;/a&gt;</translation>
     </message>
     <message>
-        <location filename="src/aboutview.cpp" line="110"/>
         <source>&amp;Close</source>
         <translation>&amp;Sluiten</translation>
     </message>
     <message>
-        <location filename="src/aboutview.h" line="40"/>
         <source>About</source>
         <translation>Over</translation>
     </message>
 <context>
     <name>ActivationDialog</name>
     <message>
-        <location filename="local/src/activationdialog.cpp" line="17"/>
         <source>Enter your License Details</source>
         <translation>Vul uw licentie-details in</translation>
     </message>
     <message>
-        <location filename="local/src/activationdialog.cpp" line="29"/>
         <source>&amp;Email:</source>
         <translation>&amp;E-mailadres:</translation>
     </message>
     <message>
-        <location filename="local/src/activationdialog.cpp" line="35"/>
         <source>&amp;Code:</source>
         <translation>&amp;Code:</translation>
     </message>
 <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 watch videos without interruptions.</source>
-        <oldsource>The full version allows you to download videos longer than %1 minutes and to watch videos without interruptions.</oldsource>
         <translation>De volledige versie stelt u in staat om video&apos;s te bekijken zonder onderbrekingen.</translation>
     </message>
     <message>
-        <location filename="local/src/activationview.cpp" line="55"/>
         <source>Without a license, the application will expire in %1 days.</source>
         <translation>Zonder een licentie zal deze applicatie vervallen in %1 dagen.</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>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>Vul licentie in</translation>
     </message>
     <message>
-        <location filename="local/src/activationview.cpp" line="85"/>
         <source>Buy License</source>
         <translation>Koop licentie</translation>
     </message>
 </context>
+<context>
+    <name>AppWidget</name>
+    <message>
+        <source>Download</source>
+        <translation type="unfinished"/>
+    </message>
+</context>
 <context>
     <name>ChannelAggregator</name>
     <message>
-        <location filename="src/channelaggregator.cpp" line="183"/>
         <source>By %1</source>
         <translation>D.m.v. %1</translation>
     </message>
     <message numerus="yes">
-        <location filename="src/channelaggregator.cpp" line="185"/>
         <source>You have %n new video(s)</source>
         <translation type="unfinished"><numerusform></numerusform><numerusform></numerusform></translation>
     </message>
 <context>
     <name>ChannelItemDelegate</name>
     <message>
-        <location filename="src/channelitemdelegate.cpp" line="67"/>
         <source>All Videos</source>
         <translation>Alle video&apos;s</translation>
     </message>
     <message>
-        <location filename="src/channelitemdelegate.cpp" line="85"/>
         <source>Unwatched Videos</source>
         <translation>Niet-bekeken video&apos;s</translation>
     </message>
 <context>
     <name>ChannelView</name>
     <message>
-        <location filename="src/channelview.cpp" line="151"/>
-        <source>Mark all as watched</source>
-        <translation>Markeer alles als bekeken</translation>
-    </message>
-    <message>
-        <location filename="src/channelview.cpp" line="159"/>
-        <source>Show Updated</source>
-        <translation>Toon bijgewerkte</translation>
-    </message>
-    <message>
-        <location filename="src/channelview.cpp" line="103"/>
         <source>Name</source>
         <translation>Naam</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="110"/>
         <source>Last Updated</source>
         <translation>Laatst bijgewerkt</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="117"/>
         <source>Last Added</source>
         <translation>Laatst toegevoegd</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="124"/>
         <source>Last Watched</source>
         <translation>Laatst bekeken</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="131"/>
         <source>Most Watched</source>
         <translation>Vaakst bekeken</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="139"/>
         <source>Sort by</source>
         <translation>Sorteer op</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="222"/>
+        <source>Mark all as watched</source>
+        <translation>Markeer alles als bekeken</translation>
+    </message>
+    <message>
+        <source>Show Updated</source>
+        <translation>Toon bijgewerkte</translation>
+    </message>
+    <message>
         <source>All Videos</source>
         <translation>Alle video&apos;s</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="226"/>
         <source>Unwatched Videos</source>
         <translation>Niet-bekeken video&apos;s</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="244"/>
         <source>Mark as Watched</source>
         <translation>Markeren als bekeken</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="257"/>
         <source>Unsubscribe</source>
         <translation>Abonnement opzeggen</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="270"/>
         <source>There are no updated subscriptions at this time.</source>
         <translation>Er zijn op dit moment geen bijgewerkte abonnementen.</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="272"/>
         <source>You have no subscriptions. Use the star symbol to subscribe to channels.</source>
         <translation>U heeft geen abonnementen. Gebruik het ster-symbool om te abonneren op kanalen.</translation>
     </message>
 <context>
     <name>ClearButton</name>
     <message>
-        <location filename="src/exlineedit.cpp" line="6"/>
         <source>Clear</source>
         <translation>Wis</translation>
     </message>
 <context>
     <name>DataUtils</name>
     <message>
-        <location filename="src/datautils.cpp" line="88"/>
         <source>Just now</source>
         <translation>Zojuist</translation>
     </message>
     <message numerus="yes">
-        <location filename="src/datautils.cpp" line="90"/>
-        <source>%n minute(s) ago</source>
-        <translation><numerusform>%n minuten geleden</numerusform><numerusform>%n minuten geleden</numerusform></translation>
-    </message>
-    <message numerus="yes">
-        <location filename="src/datautils.cpp" line="92"/>
         <source>%n hour(s) ago</source>
-        <translation><numerusform>%n uur geleden</numerusform><numerusform>%n uur geleden</numerusform></translation>
+        <translation type="unfinished"><numerusform></numerusform><numerusform></numerusform></translation>
     </message>
     <message numerus="yes">
-        <location filename="src/datautils.cpp" line="94"/>
         <source>%n day(s) ago</source>
         <translation type="unfinished"><numerusform></numerusform><numerusform></numerusform></translation>
     </message>
     <message numerus="yes">
-        <location filename="src/datautils.cpp" line="96"/>
         <source>%n weeks(s) ago</source>
         <translation type="unfinished"><numerusform></numerusform><numerusform></numerusform></translation>
     </message>
     <message numerus="yes">
-        <location filename="src/datautils.cpp" line="98"/>
         <source>%n month(s) ago</source>
         <translation type="unfinished"><numerusform></numerusform><numerusform></numerusform></translation>
     </message>
 <context>
     <name>DownloadItem</name>
     <message>
-        <location filename="src/downloaditem.cpp" line="406"/>
         <source>bytes</source>
         <translation>bytes</translation>
     </message>
     <message>
-        <location filename="src/downloaditem.cpp" line="409"/>
         <source>KB</source>
         <translation>KB</translation>
     </message>
     <message>
-        <location filename="src/downloaditem.cpp" line="412"/>
         <source>MB</source>
         <translation>MB</translation>
     </message>
     <message>
-        <location filename="src/downloaditem.cpp" line="421"/>
         <source>bytes/sec</source>
         <translation>bytes/sec</translation>
     </message>
     <message>
-        <location filename="src/downloaditem.cpp" line="424"/>
         <source>KB/sec</source>
         <translation>KB/sec</translation>
     </message>
     <message>
-        <location filename="src/downloaditem.cpp" line="427"/>
         <source>MB/sec</source>
         <translation>MB/sec</translation>
     </message>
     <message>
-        <location filename="src/downloaditem.cpp" line="433"/>
         <source>seconds</source>
         <translation>seconden</translation>
     </message>
     <message>
-        <location filename="src/downloaditem.cpp" line="436"/>
         <source>minutes</source>
         <translation>minuten</translation>
     </message>
     <message>
-        <location filename="src/downloaditem.cpp" line="439"/>
         <source>%4 %5 remaining</source>
         <translation>%4 %5 resterend</translation>
     </message>
 <context>
     <name>DownloadManager</name>
     <message>
-        <location filename="src/downloadmanager.cpp" line="77"/>
         <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="79"/>
         <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="85"/>
         <source>Continue</source>
         <translation>Ga door</translation>
     </message>
     <message>
-        <location filename="src/downloadmanager.cpp" line="86"/>
         <source>Get the full version</source>
         <translation>Verkrijg de volledige versie</translation>
     </message>
     <message>
-        <location filename="src/downloadmanager.cpp" line="157"/>
         <source>%1 downloaded in %2</source>
         <translation>%1 gedownload in %2</translation>
     </message>
     <message>
-        <location filename="src/downloadmanager.cpp" line="160"/>
         <source>Download finished</source>
         <translation>Download greed</translation>
     </message>
     <message numerus="yes">
-        <location filename="src/downloadmanager.cpp" line="165"/>
         <source>%n Download(s)</source>
         <translation type="unfinished"><numerusform></numerusform><numerusform></numerusform></translation>
     </message>
 <context>
     <name>DownloadSettings</name>
     <message>
-        <location filename="src/downloadsettings.cpp" line="36"/>
         <source>Change location...</source>
         <translation>Verander locatie...</translation>
     </message>
     <message>
-        <location filename="src/downloadsettings.cpp" line="69"/>
         <source>Choose the download location</source>
         <translation>Kies de downloadlocatie</translation>
     </message>
     <message>
-        <location filename="src/downloadsettings.cpp" line="81"/>
         <source>Download location changed.</source>
         <translation>Downloadlocatie aangepast.</translation>
     </message>
     <message>
-        <location filename="src/downloadsettings.cpp" line="83"/>
         <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="94"/>
         <source>Downloading to: %1</source>
         <translation>Downloaden naar:%1</translation>
     </message>
 <context>
     <name>DownloadView</name>
     <message>
-        <location filename="src/downloadview.cpp" line="38"/>
-        <location filename="src/downloadview.h" line="45"/>
         <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>Bezig met downloaden van update...</translation>
-    </message>
-</context>
 <context>
     <name>Extra</name>
     <message>
-        <location filename="local/src/extra.cpp" line="251"/>
         <source>The executable file has been tempered with, maybe by a virus.</source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="local/src/extra.cpp" line="252"/>
         <source>%1 will not run. Try installing again.</source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="local/src/extra.cpp" line="253"/>
         <source>Quit</source>
         <translation>Stoppen</translation>
     </message>
     <message>
-        <location filename="local/src/extra.cpp" line="254"/>
         <source>Reinstall</source>
         <translation>Herinstalleren</translation>
     </message>
 <context>
     <name>GlobalShortcuts</name>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="36"/>
         <source>Play</source>
         <translation>Speel af</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="37"/>
         <source>Pause</source>
         <translation>Pauzeer</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="38"/>
         <source>Play/Pause</source>
         <translation>Speel af/Pauzeer</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="39"/>
         <source>Stop</source>
         <translation>Stop</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="40"/>
         <source>Stop playing after current track</source>
         <translation>Stop afspelen na huidig nummer</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="41"/>
         <source>Next track</source>
         <translation>Volgend nummer</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="42"/>
         <source>Previous track</source>
         <translation>Vorig nummer</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="43"/>
         <source>Increase volume</source>
         <translation>Verhoog volume</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="44"/>
         <source>Decrease volume</source>
         <translation>Verlaag volume</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="45"/>
         <source>Mute</source>
         <translation>Demp</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="46"/>
         <source>Seek forward</source>
         <translation>Spoel naar voren</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="47"/>
         <source>Seek backward</source>
         <translation>Spoel naar achteren</translation>
     </message>
 <context>
     <name>HomeView</name>
     <message>
-        <location filename="src/homeview.cpp" line="58"/>
         <source>Search</source>
         <translation>Zoek</translation>
     </message>
     <message>
-        <location filename="src/homeview.cpp" line="60"/>
         <source>Find videos and channels by keyword</source>
         <translation>Vind video&apos;s en kanalen d.m.v. sleutelwoord</translation>
     </message>
     <message>
-        <location filename="src/homeview.cpp" line="65"/>
         <source>Browse</source>
         <translation>Blader</translation>
     </message>
     <message>
-        <location filename="src/homeview.cpp" line="67"/>
         <source>Browse videos by category</source>
         <translation>Blader video&apos;s d.m.v. categorie</translation>
     </message>
     <message>
-        <location filename="src/homeview.cpp" line="71"/>
         <source>Subscriptions</source>
         <translation>Abonnementen</translation>
     </message>
     <message>
-        <location filename="src/homeview.cpp" line="73"/>
         <source>Channel subscriptions</source>
         <translation>Kanaal-abonnementen</translation>
     </message>
     <message>
-        <location filename="src/homeview.h" line="44"/>
         <source>Make yourself comfortable</source>
         <translation>Maak het u zelf gemakkelijk</translation>
     </message>
 <context>
     <name>LoadingWidget</name>
     <message>
-        <location filename="src/loadingwidget.cpp" line="125"/>
         <source>Error</source>
         <translation>Fout</translation>
     </message>
 <context>
     <name>MainWindow</name>
     <message>
-        <location filename="src/mainwindow.cpp" line="291"/>
+        <source>&amp;Window</source>
+        <translation>&amp;Venster</translation>
+    </message>
+    <message>
+        <source>&amp;Minimize</source>
+        <translation>&amp;Minimaliseer</translation>
+    </message>
+    <message>
         <source>&amp;Stop</source>
         <translation>&amp;Stop</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="292"/>
         <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="307"/>
+        <source>P&amp;revious</source>
+        <translation>V&amp;orige</translation>
+    </message>
+    <message>
+        <source>Go back to the previous track</source>
+        <translation>Ga terug naar het vorige nummer</translation>
+    </message>
+    <message>
         <source>S&amp;kip</source>
         <translation>&amp;Sla over</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="308"/>
         <source>Skip to the next video</source>
         <translation>Spoel door naar de volgende vieo</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1134"/>
-        <source>&amp;Pause</source>
-        <translation>&amp;Pauzeer</translation>
+        <source>&amp;Play</source>
+        <translation>&amp;Speel af</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1135"/>
-        <source>Pause playback</source>
-        <translation>Pauzeer afspelen</translation>
+        <source>Resume playback</source>
+        <translation>Hervat afspelen</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="321"/>
         <source>&amp;Full Screen</source>
         <translation>&amp;Volledig scherm</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="322"/>
         <source>Go full screen</source>
         <translation>Schakel over naar Volledig scherm</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="336"/>
+        <source>&amp;Compact Mode</source>
+        <translation>&amp;Compacte modus</translation>
+    </message>
+    <message>
         <source>Hide the playlist and the toolbar</source>
         <translation>Verberg de afspeellijst en de werkbalk</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="349"/>
+        <source>Open the &amp;YouTube Page</source>
+        <translation>Open de &amp;Youtube-pagina</translation>
+    </message>
+    <message>
         <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="356"/>
+        <source>Copy the YouTube &amp;Link</source>
+        <translation>Kopieer de YouTube-&amp;link</translation>
+    </message>
+    <message>
         <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="363"/>
+        <source>Copy the Video Stream &amp;URL</source>
+        <translation>Kopieer de videostream-&amp;URL</translation>
+    </message>
+    <message>
         <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="370"/>
+        <source>Find Video &amp;Parts</source>
+        <translation>Vind video&amp;fragmenten</translation>
+    </message>
+    <message>
         <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="376"/>
         <source>&amp;Remove</source>
         <translation>&amp;Verwijder</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="377"/>
         <source>Remove the selected videos from the playlist</source>
         <translation>Verwijder de geselecteerde video&apos;s uit de afspeellijst</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="383"/>
         <source>Move &amp;Up</source>
         <translation>Verplaats &amp;omhoog</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="384"/>
         <source>Move up the selected videos in the playlist</source>
         <translation>Verplaats de geselecteerde video&apos;s in de afspeellijst naar boven</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="390"/>
         <source>Move &amp;Down</source>
         <translation>Verplaats &amp;omlaag</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="391"/>
         <source>Move down the selected videos in the playlist</source>
         <translation>Verplaats de geselecteerde video&apos;s in de afspeelijst naar beneden</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="402"/>
+        <source>&amp;Clear Recent Searches</source>
+        <translation>&amp;Wis recente zoekopdrachten</translation>
+    </message>
+    <message>
         <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="407"/>
         <source>&amp;Quit</source>
         <translation>&amp;Sluit af</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="410"/>
         <source>Bye</source>
         <translation>Tot ziens</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="414"/>
         <source>&amp;Website</source>
         <translation>&amp;Website</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="416"/>
         <source>%1 on the Web</source>
         <translation>%1 op het internet</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="422"/>
+        <source>Make a &amp;Donation</source>
+        <translation>Geef een &amp;donatie</translation>
+    </message>
+    <message>
         <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="427"/>
         <source>&amp;About</source>
         <translation>&amp;Over</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="429"/>
         <source>Info about %1</source>
         <translation>Informatie over %1</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="437"/>
         <source>Search</source>
         <translation>Zoek</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="456"/>
         <source>Mute volume</source>
         <translation>Demp volume</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="490"/>
-        <location filename="src/mainwindow.cpp" line="1609"/>
+        <source>&amp;Manually Start Playing</source>
+        <translation>&amp;Speel handmatig af</translation>
+    </message>
+    <message>
+        <source>Manually start playing videos</source>
+        <translation>Speel handmatig video&apos;s af</translation>
+    </message>
+    <message>
         <source>&amp;Downloads</source>
         <translation>&amp;Downloads</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="491"/>
         <source>Show details about video downloads</source>
         <translation>Geef details weer van videodownloads</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="499"/>
         <source>&amp;Download</source>
         <translation>&amp;Download</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="500"/>
         <source>Download the current video</source>
         <translation>Download de huidige video</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="510"/>
         <source>Take &amp;Snapshot</source>
         <translation>Screenshot &amp;nemen</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="517"/>
         <source>&amp;Subscribe to Channel</source>
         <translation>&amp;Abonneer op kanaal</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="525"/>
         <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="545"/>
         <source>&amp;Email</source>
         <translation>&amp;E-mail</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="546"/>
         <source>Email</source>
         <translation>E-mail</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="551"/>
         <source>&amp;Close</source>
         <translation>&amp;Sluit</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="561"/>
         <source>&amp;Float on Top</source>
         <translation>&amp;Zweef erboven</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="566"/>
         <source>&amp;Adjust Window Size</source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="571"/>
         <source>&amp;Stop After This Video</source>
         <translation>&amp;Stop na deze video</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="578"/>
         <source>&amp;Report an Issue...</source>
         <translation>&amp;Rapporteer een Probleem...</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="582"/>
         <source>&amp;Refine Search...</source>
         <translation>&amp;Verfijn Zoekopdracht...</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="594"/>
         <source>More...</source>
         <translation>Meer...</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="597"/>
         <source>&amp;Related Videos</source>
         <translation>&amp;Gerelateerde video&apos;s</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="599"/>
         <source>Watch videos related to the current one</source>
         <translation>Bekijk video&apos;s gerelateerd aan de huidige</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="605"/>
         <source>Open in &amp;Browser...</source>
         <translation>Open in &amp;browser...</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="612"/>
-        <source>&amp;Love %1? Rate it!</source>
-        <translation>Vindt u %1 te &amp;gek? Waardeer het!</translation>
+        <source>Restricted Mode</source>
+        <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="633"/>
-        <source>&amp;Application</source>
-        <translation>&amp;Programma</translation>
+        <source>Hide videos that may contain inappropriate content</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <source>&amp;Love %1? Rate it!</source>
+        <translation>Vindt u %1 te &amp;gek? Waardeer het!</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="618"/>
         <source>Buy %1...</source>
         <translation>Koop %1...</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="647"/>
+        <source>&amp;Application</source>
+        <translation>&amp;Programma</translation>
+    </message>
+    <message>
         <source>&amp;Playback</source>
         <translation>&amp;Afspeelopties</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="661"/>
         <source>&amp;Playlist</source>
         <translation>&amp;Afspeellijst</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="670"/>
         <source>&amp;Video</source>
         <translation>&amp;Video</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="686"/>
-        <source>&amp;View</source>
-        <translation>&amp;Weergave</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="695"/>
         <source>&amp;Share</source>
         <translation>&amp;Deel</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="709"/>
+        <source>&amp;View</source>
+        <translation>&amp;Weergave</translation>
+    </message>
+    <message>
         <source>&amp;Help</source>
         <translation>&amp;Help</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="751"/>
         <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="1021"/>
-        <location filename="src/mainwindow.cpp" line="1027"/>
+        <source>Choose your content location</source>
+        <translation>Kies uw inhoudslocatie</translation>
+    </message>
+    <message>
         <source>Opening %1</source>
         <translation>Bezig met openen van %1</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1080"/>
         <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="1081"/>
         <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="1086"/>
         <source>Close and cancel download</source>
         <translation>Sluit en annuleer het downloaden</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1087"/>
         <source>Wait for download to finish</source>
         <translation>Wacht tot het downloaden is voltooid</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1158"/>
-        <source>&amp;Loading...</source>
-        <translation type="unfinished"/>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="1264"/>
-        <source>Leave &amp;Full Screen</source>
-        <translation>Verlaat &amp;volledig scherm</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="1718"/>
-        <source>%1 version %2 is now available.</source>
-        <translation>%1 versie %2 nu beschikbaar.</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="1722"/>
-        <source>Remind me later</source>
-        <translation>Herinner mij later</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="1723"/>
-        <source>Update</source>
-        <translation>Werk bij</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="1127"/>
         <source>Error: %1</source>
         <translation>Fout: %1</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="300"/>
-        <source>P&amp;revious</source>
-        <translation>V&amp;orige</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="301"/>
-        <source>Go back to the previous track</source>
-        <translation>Ga terug naar het vorige nummer</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="335"/>
-        <source>&amp;Compact Mode</source>
-        <translation>&amp;Compacte modus</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="348"/>
-        <source>Open the &amp;YouTube Page</source>
-        <translation>Open de &amp;Youtube-pagina</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="355"/>
-        <source>Copy the YouTube &amp;Link</source>
-        <translation>Kopieer de YouTube-&amp;link</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="362"/>
-        <source>Copy the Video Stream &amp;URL</source>
-        <translation>Kopieer de videostream-&amp;URL</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="369"/>
-        <source>Find Video &amp;Parts</source>
-        <translation>Vind video&amp;fragmenten</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="397"/>
-        <source>&amp;Clear Recent Searches</source>
-        <translation>&amp;Wis recente zoekopdrachten</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="421"/>
-        <source>Make a &amp;Donation</source>
-        <translation>Geef een &amp;donatie</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="483"/>
-        <source>&amp;Manually Start Playing</source>
-        <translation>&amp;Speel handmatig af</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="484"/>
-        <source>Manually start playing videos</source>
-        <translation>Speel handmatig video&apos;s af</translation>
+        <source>&amp;Pause</source>
+        <translation>&amp;Pauzeer</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="847"/>
-        <source>Choose your content location</source>
-        <translation>Kies uw inhoudslocatie</translation>
+        <source>Pause playback</source>
+        <translation>Pauzeer afspelen</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="314"/>
-        <location filename="src/mainwindow.cpp" line="1142"/>
-        <location filename="src/mainwindow.cpp" line="1150"/>
-        <source>&amp;Play</source>
-        <translation>&amp;Speel af</translation>
+        <source>&amp;Loading...</source>
+        <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="315"/>
-        <location filename="src/mainwindow.cpp" line="1143"/>
-        <location filename="src/mainwindow.cpp" line="1151"/>
-        <source>Resume playback</source>
-        <translation>Hervat afspelen</translation>
+        <source>Leave &amp;Full Screen</source>
+        <translation>Verlaat &amp;volledig scherm</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1437"/>
         <source>Remaining time: %1</source>
         <translation>Resterende tijd: %1</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1528"/>
         <source>Volume at %1%</source>
         <translation>Volume op %1%</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1534"/>
         <source>Volume is muted</source>
         <translation>Volume is gedempt</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1537"/>
         <source>Volume is unmuted</source>
         <translation>Volume is niet gedempt</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1548"/>
         <source>Maximum video definition set to %1</source>
         <translation>Maximale videokwaliteit staat op %1</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1595"/>
         <source>Your privacy is now safe</source>
         <translation>Uw privacy is nu gewaarborgd</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1610"/>
         <source>Downloads complete</source>
         <translation>Downloads afgerond</translation>
     </message>
+    <message>
+        <source>%1 version %2 is now available.</source>
+        <translation>%1 versie %2 nu beschikbaar.</translation>
+    </message>
+    <message>
+        <source>Remind me later</source>
+        <translation>Herinner mij later</translation>
+    </message>
+    <message>
+        <source>Update</source>
+        <translation>Werk bij</translation>
+    </message>
 </context>
 <context>
     <name>MediaView</name>
     <message>
-        <location filename="src/mediaview.cpp" line="702"/>
         <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="710"/>
         <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="711"/>
         <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="800"/>
         <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="801"/>
         <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="833"/>
+        <source>Get the full version</source>
+        <translation>Verkrijg de volledige versie</translation>
+    </message>
+    <message>
         <source>Continue</source>
         <translation>Ga door</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="988"/>
+        <source>Downloading %1</source>
+        <translation>Bezig met downloaden van %1</translation>
+    </message>
+    <message>
         <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="1001"/>
         <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="1003"/>
         <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="1096"/>
         <source>Sent from %1</source>
         <translation>Verstuurd vanaf %1</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="1128"/>
         <source>Unsubscribe from %1</source>
         <translation>Zeg abonnement op van %1</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="1132"/>
         <source>Subscribe to %1</source>
         <translation>Abonneer op %1</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="1166"/>
         <source>Unsubscribed from %1</source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="1169"/>
         <source>Subscribed to %1</source>
         <translation type="unfinished"/>
     </message>
-    <message>
-        <location filename="src/mediaview.cpp" line="808"/>
-        <source>Get the full version</source>
-        <translation>Verkrijg de volledige versie</translation>
-    </message>
-    <message>
-        <location filename="src/mediaview.cpp" line="847"/>
-        <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>Een nieuwe versie van %1 is beschikbaar!</translation>
     </message>
     <message>
-        <location filename="local/src/updatedialog.cpp" line="28"/>
         <source>%1 %2 is now available. You have %3.</source>
         <translation>%1 %2 is nu beschikbaar. U heeft %3.</translation>
     </message>
     <message>
-        <location filename="local/src/updatedialog.cpp" line="33"/>
         <source>Would you like to download it now?</source>
         <translation>Wilt u deze nu downloaden?</translation>
     </message>
     <message>
-        <location filename="local/src/updatedialog.cpp" line="39"/>
         <source>Skip This Version</source>
         <translation>Sla deze versie over</translation>
     </message>
     <message>
-        <location filename="local/src/updatedialog.cpp" line="43"/>
         <source>Remind Me Later</source>
         <translation>Herinner me later</translation>
     </message>
     <message>
-        <location filename="local/src/updatedialog.cpp" line="47"/>
         <source>Install Update</source>
         <translation>Installeer update</translation>
     </message>
 <context>
     <name>PasteLineEdit</name>
     <message>
-        <location filename="local/src/pastelineedit.cpp" line="6"/>
         <source>Paste</source>
         <translation>Plakken</translation>
     </message>
 <context>
     <name>PlaylistItemDelegate</name>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="209"/>
         <source>%1 views</source>
         <translation>%1 bekeken</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="309"/>
         <source>%1 of %2 (%3) — %4</source>
         <translation>%1 van %2 (%3) — %4</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="316"/>
         <source>Preparing</source>
         <translation>Aan het voorbereiden</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="318"/>
         <source>Failed</source>
         <translation>Mislukt</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="320"/>
         <source>Completed</source>
         <translation>Voltooid</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="322"/>
         <source>Stopped</source>
         <translation>Gestopt</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="358"/>
         <source>Stop downloading</source>
         <translation>Stop het downloaden</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="368"/>
         <source>Show in %1</source>
         <translation>Toon in %1</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="370"/>
         <source>Open parent folder</source>
         <translation>Open oudermap</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="379"/>
         <source>Restart downloading</source>
         <translation>Herstart het downloaden</translation>
     </message>
 <context>
     <name>PlaylistModel</name>
     <message>
-        <location filename="src/playlistmodel.cpp" line="70"/>
         <source>Searching...</source>
         <translation>Bezig met zoeken...</translation>
     </message>
     <message>
-        <location filename="src/playlistmodel.cpp" line="71"/>
         <source>Show %1 More</source>
         <translation>Toon %1 meer</translation>
     </message>
     <message>
-        <location filename="src/playlistmodel.cpp" line="72"/>
         <source>No videos</source>
         <translation>Geen video&apos;s</translation>
     </message>
     <message>
-        <location filename="src/playlistmodel.cpp" line="73"/>
         <source>No more videos</source>
         <translation>Geen video&apos;s meer</translation>
     </message>
 <context>
     <name>RefineSearchWidget</name>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="49"/>
         <source>Sort by</source>
         <translation>Sorteer op</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="53"/>
         <source>Relevance</source>
         <translation>Relevantie</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="54"/>
-        <location filename="src/refinesearchwidget.cpp" line="69"/>
         <source>Date</source>
         <translation>Datum</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="55"/>
         <source>View Count</source>
         <translation>Weergaven</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="56"/>
         <source>Rating</source>
         <translation>Waardering</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="73"/>
         <source>Anytime</source>
         <translation>Elke Periode</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="74"/>
         <source>Today</source>
         <translation>Vandaag</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="75"/>
         <source>7 Days</source>
         <translation>7 Dagen</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="76"/>
         <source>30 Days</source>
         <translation>30 Dagen</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="89"/>
         <source>Duration</source>
         <translation>Duur</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="93"/>
-        <location filename="src/refinesearchwidget.cpp" line="119"/>
         <source>All</source>
         <translation>Alles</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="94"/>
         <source>Short</source>
         <translation>Kort</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="95"/>
         <source>Medium</source>
         <translation>Gemiddeld</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="96"/>
         <source>Long</source>
         <translation>Lang</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="99"/>
         <source>Less than 4 minutes</source>
         <translation>Minder dan 4 minuten</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="100"/>
         <source>Between 4 and 20 minutes</source>
         <translation>Tussen 4 en 20 minuten</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="101"/>
         <source>Longer than 20 minutes</source>
         <translation>Langer dan 20 minuten</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="115"/>
         <source>Quality</source>
         <translation>Kwaliteit</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="120"/>
         <source>High Definition</source>
         <translation>HD Resolutie </translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="123"/>
         <source>720p or higher</source>
         <translation>720p of hover</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="136"/>
         <source>Done</source>
         <translation>Klaar</translation>
     </message>
 <context>
     <name>RegionsView</name>
     <message>
-        <location filename="src/regionsview.cpp" line="39"/>
         <source>Done</source>
         <translation>Klaar</translation>
     </message>
 <context>
     <name>SearchLineEdit</name>
     <message>
-        <location filename="src/searchlineedit.cpp" line="55"/>
         <source>Search</source>
         <translation>Zoek</translation>
     </message>
 <context>
     <name>SearchView</name>
     <message>
-        <location filename="src/searchview.cpp" line="83"/>
         <source>Welcome to &lt;a href=&apos;%1&apos;&gt;%2&lt;/a&gt;,</source>
         <translation>Welkom bij &lt;a href=&apos;%1&apos;&gt;%2&lt;/a&gt;,</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="200"/>
-        <source>Get the full version</source>
-        <translation>Verkrijg de volledige versie</translation>
-    </message>
-    <message>
-        <location filename="src/searchview.cpp" line="110"/>
         <source>Enter</source>
         <extracomment>&quot;Enter&quot;, as in &quot;type&quot;. The whole phrase says: &quot;Enter a keyword to start watching videos&quot;</extracomment>
         <translation>Typ</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="117"/>
         <source>a keyword</source>
         <translation>een zoekwoord</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="118"/>
         <source>a channel</source>
         <translation>een kanaal</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="125"/>
         <source>to start watching videos.</source>
         <translation>om te beginnen met het bekijken van video&apos;s.</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="156"/>
         <source>Watch</source>
         <translation>Bekijk</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="174"/>
         <source>Recent keywords</source>
         <translation>Recente zoekwoorden</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="186"/>
         <source>Recent channels</source>
         <translation>Recente kanalen</translation>
     </message>
+    <message>
+        <source>Get the full version</source>
+        <translation>Verkrijg de volledige versie</translation>
+    </message>
 </context>
 <context>
     <name>SidebarHeader</name>
     <message>
-        <location filename="src/sidebarheader.cpp" line="38"/>
-        <location filename="src/sidebarheader.cpp" line="45"/>
         <source>&amp;Back</source>
         <translation>&amp;Terug</translation>
     </message>
     <message>
-        <location filename="src/sidebarheader.cpp" line="76"/>
         <source>Forward to %1</source>
         <translation>Spoel vooruit naar %1</translation>
     </message>
     <message>
-        <location filename="src/sidebarheader.cpp" line="89"/>
         <source>Back to %1</source>
         <translation>Spoel terug naar %1</translation>
     </message>
 <context>
     <name>SidebarWidget</name>
     <message>
-        <location filename="src/sidebarwidget.cpp" line="68"/>
         <source>Refine Search</source>
         <translation>Verfijn Zoekopdracht</translation>
     </message>
     <message>
-        <location filename="src/sidebarwidget.cpp" line="167"/>
         <source>Did you mean: %1</source>
         <translation>Bedoelde je: %1</translation>
     </message>
 <context>
     <name>SnapshotSettings</name>
     <message>
-        <location filename="src/snapshotsettings.cpp" line="47"/>
         <source>Change location...</source>
         <translation>Verander locatie...</translation>
     </message>
     <message>
-        <location filename="src/snapshotsettings.cpp" line="64"/>
         <source>Snapshot saved to %1</source>
         <translation>Screenshot opgeslagen in %1</translation>
     </message>
     <message>
-        <location filename="src/snapshotsettings.cpp" line="117"/>
         <source>Snapshots location changed.</source>
         <translation>Screenshots-locatie veranderd.</translation>
     </message>
 <context>
     <name>StandardFeedsView</name>
     <message>
-        <location filename="src/standardfeedsview.cpp" line="107"/>
         <source>Most Popular</source>
         <translation>Meest populair</translation>
     </message>
 </context>
+<context>
+    <name>UpdateDialog</name>
+    <message>
+        <source>Downloading update...</source>
+        <translation>Bezig met downloaden van update...</translation>
+    </message>
+    <message>
+        <source>Downloading %1...</source>
+        <translation type="unfinished"/>
+    </message>
+</context>
 <context>
     <name>Video</name>
     <message>
-        <location filename="src/video.cpp" line="287"/>
         <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="292"/>
-        <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="28"/>
         <source>Algeria</source>
         <translation>Algerije</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="29"/>
         <source>Argentina</source>
         <translation>Argentinië</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="30"/>
         <source>Australia</source>
         <translation>Australië</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="31"/>
         <source>Belgium</source>
         <translation>België</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="32"/>
         <source>Brazil</source>
         <translation>Brazilië</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="33"/>
         <source>Canada</source>
         <translation>Canada</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="34"/>
         <source>Chile</source>
         <translation>Chili</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="35"/>
         <source>Colombia</source>
         <translation>Colombia</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="36"/>
         <source>Czech Republic</source>
         <translation>Tsjechië</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="37"/>
         <source>Egypt</source>
         <translation>Egypte</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="38"/>
         <source>France</source>
         <translation>Frankrijk</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="39"/>
         <source>Germany</source>
         <translation>Duitsland</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="40"/>
         <source>Ghana</source>
         <translation>Ghana</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="41"/>
         <source>Greece</source>
         <translation>Griekenland</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="42"/>
         <source>Hong Kong</source>
         <translation>Hong Kong</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="43"/>
         <source>Hungary</source>
         <translation>Hongarije</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="44"/>
         <source>India</source>
         <translation>India</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="45"/>
         <source>Indonesia</source>
         <translation>Indonesië</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="46"/>
         <source>Ireland</source>
         <translation>Ierland</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="47"/>
         <source>Israel</source>
         <translation>Israël</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="48"/>
         <source>Italy</source>
         <translation>Italië</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="49"/>
         <source>Japan</source>
         <translation>Japan</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="50"/>
         <source>Jordan</source>
         <translation>Jordanië</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="51"/>
         <source>Kenya</source>
         <translation>Kenia</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="52"/>
         <source>Malaysia</source>
         <translation>Maleisië</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="53"/>
         <source>Mexico</source>
         <translation>Mexico</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="54"/>
         <source>Morocco</source>
         <translation>Marokko</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="55"/>
         <source>Netherlands</source>
         <translation>Nederland</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="56"/>
         <source>New Zealand</source>
         <translation>Nieuw-Zeeland</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="57"/>
         <source>Nigeria</source>
         <translation>Nigeria</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="58"/>
         <source>Peru</source>
         <translation>Peru</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="59"/>
         <source>Philippines</source>
         <translation>Filipijnen</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="60"/>
         <source>Poland</source>
         <translation>Polen</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="61"/>
         <source>Russia</source>
         <translation>Rusland</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="62"/>
         <source>Saudi Arabia</source>
         <translation>Saoedi-Arabië</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="63"/>
         <source>Singapore</source>
         <translation>Singapore</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="64"/>
         <source>South Africa</source>
         <translation>Zuid-Afrika</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="65"/>
         <source>South Korea</source>
         <translation>Zuid-Korea</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="66"/>
         <source>Spain</source>
         <translation>Spanje</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="67"/>
         <source>Sweden</source>
         <translation>Zweden</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="68"/>
         <source>Taiwan</source>
         <translation>Taiwan</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="69"/>
         <source>Tunisia</source>
         <translation>Tunesië</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="70"/>
         <source>Turkey</source>
         <translation>Turkije</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="71"/>
         <source>Uganda</source>
         <translation>Oeganda</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="72"/>
         <source>United Arab Emirates</source>
         <translation>Verenigde Emiraten</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="73"/>
         <source>United Kingdom</source>
         <translation>Verenigd Koninkrijk</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="74"/>
         <source>Yemen</source>
         <translation>Jemen</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="148"/>
         <source>Worldwide</source>
         <translation>Wereldwijd</translation>
     </message>
index 9171a27ea73df46edeeb3c7f2ebd8a5deeba3325..94c5c64ce1e24c4b56b87ad19bf11ded41e065df 100644 (file)
@@ -2,67 +2,42 @@
 <context>
     <name>AboutView</name>
     <message>
-        <location filename="src/aboutview.cpp" line="58"/>
         <source>There&apos;s life outside the browser!</source>
         <translation>Det finst eit liv utanfor nettlesaren!</translation>
     </message>
     <message>
-        <location filename="src/aboutview.cpp" line="59"/>
         <source>Version %1</source>
         <translation>Versjon %1</translation>
     </message>
     <message>
-        <location filename="src/aboutview.cpp" line="64"/>
         <source>Licensed to: %1</source>
         <translation>Lisensiert til: %1</translation>
     </message>
     <message>
-        <location filename="src/aboutview.cpp" line="68"/>
         <source>%1 is Free Software but its development takes precious time.</source>
         <translation>%1 er fri programvare, men utviklinga tek dyrebar tid.</translation>
     </message>
     <message>
-        <location filename="src/aboutview.cpp" line="69"/>
         <source>Please &lt;a href=&apos;%1&apos;&gt;donate&lt;/a&gt; to support the continued development of %2.</source>
         <translation>Ver venleg og &lt;a href=&apos;%1&apos;&gt;doner&lt;/a&gt; for å støtta vidare utvikling av %2.</translation>
     </message>
     <message>
-        <location filename="src/aboutview.cpp" line="73"/>
-        <source>You may want to try my other apps as well:</source>
-        <translation>Du er kanskje interessert i å prøva dei andre programma mine:</translation>
-    </message>
-    <message>
-        <location filename="src/aboutview.cpp" line="76"/>
-        <source>%1, a YouTube music player</source>
-        <translation>%1, ein musikkspelar for YouTube</translation>
-    </message>
-    <message>
-        <location filename="src/aboutview.cpp" line="80"/>
-        <source>%1, a music player</source>
-        <translation>%1, ein musikkspelar</translation>
-    </message>
-    <message>
-        <location filename="src/aboutview.cpp" line="86"/>
         <source>Translate %1 to your native language using %2</source>
         <translation>Omset %1 til morsmålet ditt med %2</translation>
     </message>
     <message>
-        <location filename="src/aboutview.cpp" line="91"/>
         <source>Icon designed by %1.</source>
         <translation>Ikonet er utforma av %1.</translation>
     </message>
     <message>
-        <location filename="src/aboutview.cpp" line="95"/>
         <source>Released under the &lt;a href=&apos;%1&apos;&gt;GNU General Public License&lt;/a&gt;</source>
         <translation>Utgjeve under &lt;a href=&apos;%1&apos;&gt;GNU General Public License&lt;/a&gt;</translation>
     </message>
     <message>
-        <location filename="src/aboutview.cpp" line="110"/>
         <source>&amp;Close</source>
         <translation>&amp;Lukk</translation>
     </message>
     <message>
-        <location filename="src/aboutview.h" line="40"/>
         <source>About</source>
         <translation>Om</translation>
     </message>
 <context>
     <name>ActivationDialog</name>
     <message>
-        <location filename="local/src/activationdialog.cpp" line="17"/>
         <source>Enter your License Details</source>
         <translation>Skriv inn lisensinformasjonen din</translation>
     </message>
     <message>
-        <location filename="local/src/activationdialog.cpp" line="29"/>
         <source>&amp;Email:</source>
         <translation>&amp;E-post:</translation>
     </message>
     <message>
-        <location filename="local/src/activationdialog.cpp" line="35"/>
         <source>&amp;Code:</source>
         <translation>&amp;Kode:</translation>
     </message>
 <context>
     <name>ActivationView</name>
     <message>
-        <location filename="local/src/activationview.cpp" line="47"/>
         <source>Please license %1</source>
         <translation>Ver venleg og lisensier %1</translation>
     </message>
     <message>
-        <location filename="local/src/activationview.cpp" line="51"/>
         <source>This demo has expired.</source>
         <translation>Demoen har laupt ut.</translation>
     </message>
     <message>
-        <location filename="local/src/activationview.cpp" line="53"/>
         <source>The full version allows you to watch videos without interruptions.</source>
-        <oldsource>The full version allows you to download videos longer than %1 minutes and to watch videos without interruptions.</oldsource>
         <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>Utan ein lisens vil programmet gå ut på dato om %1 dagar.</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>Ved å kjøpa den fullstendige utgåva, støttar du arbeidet lagt inn i å skapa %1.</translation>
     </message>
     <message>
-        <location filename="local/src/activationview.cpp" line="70"/>
         <source>Use Demo</source>
         <translation>Bruk demoen</translation>
     </message>
     <message>
-        <location filename="local/src/activationview.cpp" line="77"/>
         <source>Enter License</source>
         <translation>Skriv inn lisens</translation>
     </message>
     <message>
-        <location filename="local/src/activationview.cpp" line="85"/>
         <source>Buy License</source>
         <translation>Kjøp lisens</translation>
     </message>
 </context>
+<context>
+    <name>AppWidget</name>
+    <message>
+        <source>Download</source>
+        <translation type="unfinished"/>
+    </message>
+</context>
 <context>
     <name>ChannelAggregator</name>
     <message>
-        <location filename="src/channelaggregator.cpp" line="183"/>
         <source>By %1</source>
         <translation>Etter %1</translation>
     </message>
     <message numerus="yes">
-        <location filename="src/channelaggregator.cpp" line="185"/>
         <source>You have %n new video(s)</source>
         <translation type="unfinished"><numerusform></numerusform><numerusform></numerusform></translation>
     </message>
 <context>
     <name>ChannelItemDelegate</name>
     <message>
-        <location filename="src/channelitemdelegate.cpp" line="67"/>
         <source>All Videos</source>
         <translation>Alle videoar</translation>
     </message>
     <message>
-        <location filename="src/channelitemdelegate.cpp" line="85"/>
         <source>Unwatched Videos</source>
         <translation>Usette videoar</translation>
     </message>
 <context>
     <name>ChannelView</name>
     <message>
-        <location filename="src/channelview.cpp" line="151"/>
-        <source>Mark all as watched</source>
-        <translation>Merk alle som sett</translation>
-    </message>
-    <message>
-        <location filename="src/channelview.cpp" line="159"/>
-        <source>Show Updated</source>
-        <translation>Vis oppdaterte</translation>
-    </message>
-    <message>
-        <location filename="src/channelview.cpp" line="103"/>
         <source>Name</source>
         <translation>Namn</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="110"/>
         <source>Last Updated</source>
         <translation>Sist oppdatert</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="117"/>
         <source>Last Added</source>
         <translation>Sist lagt til</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="124"/>
         <source>Last Watched</source>
         <translation>Sist sett</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="131"/>
         <source>Most Watched</source>
         <translation>Mest sett</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="139"/>
         <source>Sort by</source>
         <translation>Sorter etter</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="222"/>
+        <source>Mark all as watched</source>
+        <translation>Merk alle som sett</translation>
+    </message>
+    <message>
+        <source>Show Updated</source>
+        <translation>Vis oppdaterte</translation>
+    </message>
+    <message>
         <source>All Videos</source>
         <translation>Alle videoar</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="226"/>
         <source>Unwatched Videos</source>
         <translation>Usette videoar</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="244"/>
         <source>Mark as Watched</source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="257"/>
         <source>Unsubscribe</source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="270"/>
         <source>There are no updated subscriptions at this time.</source>
         <translation>Ingen oppdaterte tingingar enno.</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="272"/>
         <source>You have no subscriptions. Use the star symbol to subscribe to channels.</source>
         <translation>Du har ingen tingingar. Bruk stjernesymbolet for å tinga kanalar.</translation>
     </message>
 <context>
     <name>ClearButton</name>
     <message>
-        <location filename="src/exlineedit.cpp" line="6"/>
         <source>Clear</source>
         <translation>Nullstill</translation>
     </message>
 <context>
     <name>DataUtils</name>
     <message>
-        <location filename="src/datautils.cpp" line="88"/>
         <source>Just now</source>
         <translation type="unfinished"/>
     </message>
     <message numerus="yes">
-        <location filename="src/datautils.cpp" line="90"/>
-        <source>%n minute(s) ago</source>
-        <translation type="unfinished"><numerusform></numerusform><numerusform></numerusform></translation>
-    </message>
-    <message numerus="yes">
-        <location filename="src/datautils.cpp" line="92"/>
         <source>%n hour(s) ago</source>
         <translation type="unfinished"><numerusform></numerusform><numerusform></numerusform></translation>
     </message>
     <message numerus="yes">
-        <location filename="src/datautils.cpp" line="94"/>
         <source>%n day(s) ago</source>
         <translation type="unfinished"><numerusform></numerusform><numerusform></numerusform></translation>
     </message>
     <message numerus="yes">
-        <location filename="src/datautils.cpp" line="96"/>
         <source>%n weeks(s) ago</source>
         <translation type="unfinished"><numerusform></numerusform><numerusform></numerusform></translation>
     </message>
     <message numerus="yes">
-        <location filename="src/datautils.cpp" line="98"/>
         <source>%n month(s) ago</source>
         <translation type="unfinished"><numerusform></numerusform><numerusform></numerusform></translation>
     </message>
 <context>
     <name>DownloadItem</name>
     <message>
-        <location filename="src/downloaditem.cpp" line="406"/>
         <source>bytes</source>
         <translation>byte</translation>
     </message>
     <message>
-        <location filename="src/downloaditem.cpp" line="409"/>
         <source>KB</source>
         <translation>KB</translation>
     </message>
     <message>
-        <location filename="src/downloaditem.cpp" line="412"/>
         <source>MB</source>
         <translation>MB</translation>
     </message>
     <message>
-        <location filename="src/downloaditem.cpp" line="421"/>
         <source>bytes/sec</source>
         <translation>byte/sek</translation>
     </message>
     <message>
-        <location filename="src/downloaditem.cpp" line="424"/>
         <source>KB/sec</source>
         <translation>KB/sek</translation>
     </message>
     <message>
-        <location filename="src/downloaditem.cpp" line="427"/>
         <source>MB/sec</source>
         <translation>MB/sek</translation>
     </message>
     <message>
-        <location filename="src/downloaditem.cpp" line="433"/>
         <source>seconds</source>
         <translation>sekund</translation>
     </message>
     <message>
-        <location filename="src/downloaditem.cpp" line="436"/>
         <source>minutes</source>
         <translation>minutt</translation>
     </message>
     <message>
-        <location filename="src/downloaditem.cpp" line="439"/>
         <source>%4 %5 remaining</source>
         <translation>%4 %5 gjenstår</translation>
     </message>
 <context>
     <name>DownloadManager</name>
     <message>
-        <location filename="src/downloadmanager.cpp" line="77"/>
         <source>This is just the demo version of %1.</source>
         <translation>Dette er berre demoutgåva av %1.</translation>
     </message>
     <message>
-        <location filename="src/downloadmanager.cpp" line="79"/>
         <source>It can only download videos shorter than %1 minutes so you can test the download functionality.</source>
         <translation>Han kan berre lasta ned videoar på under %1 minutt, for at du skal kunna prøva ut nedlastingsfunksjonen.</translation>
     </message>
     <message>
-        <location filename="src/downloadmanager.cpp" line="85"/>
         <source>Continue</source>
         <translation>Hald fram</translation>
     </message>
     <message>
-        <location filename="src/downloadmanager.cpp" line="86"/>
         <source>Get the full version</source>
         <translation>Kjøp fullversjonen</translation>
     </message>
     <message>
-        <location filename="src/downloadmanager.cpp" line="157"/>
         <source>%1 downloaded in %2</source>
         <translation>%1 lasta ned på %2</translation>
     </message>
     <message>
-        <location filename="src/downloadmanager.cpp" line="160"/>
         <source>Download finished</source>
         <translation>Nedlasting ferdig</translation>
     </message>
     <message numerus="yes">
-        <location filename="src/downloadmanager.cpp" line="165"/>
         <source>%n Download(s)</source>
         <translation type="unfinished"><numerusform></numerusform><numerusform></numerusform></translation>
     </message>
 <context>
     <name>DownloadSettings</name>
     <message>
-        <location filename="src/downloadsettings.cpp" line="36"/>
         <source>Change location...</source>
         <translation>Endra stad …</translation>
     </message>
     <message>
-        <location filename="src/downloadsettings.cpp" line="69"/>
         <source>Choose the download location</source>
         <translation>Vel nedlastingsmappe</translation>
     </message>
     <message>
-        <location filename="src/downloadsettings.cpp" line="81"/>
         <source>Download location changed.</source>
         <translation>Nedlastingsmappe endra.</translation>
     </message>
     <message>
-        <location filename="src/downloadsettings.cpp" line="83"/>
         <source>Current downloads will still go in the previous location.</source>
         <translation>Nedlastingar som er i gong vil likevel lagrast i den førre mappa.</translation>
     </message>
     <message>
-        <location filename="src/downloadsettings.cpp" line="94"/>
         <source>Downloading to: %1</source>
         <translation>Lastar ned til: %1</translation>
     </message>
 <context>
     <name>DownloadView</name>
     <message>
-        <location filename="src/downloadview.cpp" line="38"/>
-        <location filename="src/downloadview.h" line="45"/>
         <source>Downloads</source>
         <translation>Nedlastingar</translation>
     </message>
 </context>
-<context>
-    <name>DownloadWidget</name>
-    <message>
-        <location filename="local/src/updatedialog.cpp" line="60"/>
-        <source>Downloading update...</source>
-        <translation>Lastar ned oppdatering …</translation>
-    </message>
-</context>
 <context>
     <name>Extra</name>
     <message>
-        <location filename="local/src/extra.cpp" line="251"/>
         <source>The executable file has been tempered with, maybe by a virus.</source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="local/src/extra.cpp" line="252"/>
         <source>%1 will not run. Try installing again.</source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="local/src/extra.cpp" line="253"/>
         <source>Quit</source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="local/src/extra.cpp" line="254"/>
         <source>Reinstall</source>
         <translation type="unfinished"/>
     </message>
 <context>
     <name>GlobalShortcuts</name>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="36"/>
         <source>Play</source>
         <translation>Spel av</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="37"/>
         <source>Pause</source>
         <translation>Pause</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="38"/>
         <source>Play/Pause</source>
         <translation>Spel av/pause</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="39"/>
         <source>Stop</source>
         <translation>Stopp</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="40"/>
         <source>Stop playing after current track</source>
         <translation>Stopp avspelinga etter denne videoen</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="41"/>
         <source>Next track</source>
         <translation>Neste video</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="42"/>
         <source>Previous track</source>
         <translation>Førre video</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="43"/>
         <source>Increase volume</source>
         <translation>Auk lydvolumet</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="44"/>
         <source>Decrease volume</source>
         <translation>Senk lydvolumet</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="45"/>
         <source>Mute</source>
         <translation>Lydlaus</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="46"/>
         <source>Seek forward</source>
         <translation>Søk framover</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="47"/>
         <source>Seek backward</source>
         <translation>Søk bakover</translation>
     </message>
 <context>
     <name>HomeView</name>
     <message>
-        <location filename="src/homeview.cpp" line="58"/>
         <source>Search</source>
         <translation>Søk</translation>
     </message>
     <message>
-        <location filename="src/homeview.cpp" line="60"/>
         <source>Find videos and channels by keyword</source>
         <translation>Finn videoar og kanalar med nøkkelord</translation>
     </message>
     <message>
-        <location filename="src/homeview.cpp" line="65"/>
         <source>Browse</source>
         <translation>Bla gjennom</translation>
     </message>
     <message>
-        <location filename="src/homeview.cpp" line="67"/>
         <source>Browse videos by category</source>
         <translation>Bla gjennom videoar etter kategory</translation>
     </message>
     <message>
-        <location filename="src/homeview.cpp" line="71"/>
         <source>Subscriptions</source>
         <translation>Tingingar</translation>
     </message>
     <message>
-        <location filename="src/homeview.cpp" line="73"/>
         <source>Channel subscriptions</source>
         <translation>Kanaltingingar</translation>
     </message>
     <message>
-        <location filename="src/homeview.h" line="44"/>
         <source>Make yourself comfortable</source>
         <translation>Gjer deg sjølv komfortabel</translation>
     </message>
 <context>
     <name>LoadingWidget</name>
     <message>
-        <location filename="src/loadingwidget.cpp" line="125"/>
         <source>Error</source>
         <translation>Feil</translation>
     </message>
 <context>
     <name>MainWindow</name>
     <message>
-        <location filename="src/mainwindow.cpp" line="291"/>
+        <source>&amp;Window</source>
+        <translation>&amp;Vindauge</translation>
+    </message>
+    <message>
+        <source>&amp;Minimize</source>
+        <translation>&amp;Minimer</translation>
+    </message>
+    <message>
         <source>&amp;Stop</source>
         <translation>&amp;Stopp</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="292"/>
         <source>Stop playback and go back to the search view</source>
         <translation>Stoppar avspeling og går tilbake til søkjevisinga</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="307"/>
+        <source>P&amp;revious</source>
+        <translation>&amp;Førre</translation>
+    </message>
+    <message>
+        <source>Go back to the previous track</source>
+        <translation>Gå til førre spor</translation>
+    </message>
+    <message>
         <source>S&amp;kip</source>
         <translation>&amp;Hopp over</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="308"/>
         <source>Skip to the next video</source>
         <translation>Hopp til neste video</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1134"/>
-        <source>&amp;Pause</source>
-        <translation>&amp;Pause</translation>
+        <source>&amp;Play</source>
+        <translation>&amp;Spel av</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1135"/>
-        <source>Pause playback</source>
-        <translation>Set avspeling på pause</translation>
+        <source>Resume playback</source>
+        <translation>Gjenoppta avspeling</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="321"/>
         <source>&amp;Full Screen</source>
         <translation>&amp;Fullskjerm</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="322"/>
         <source>Go full screen</source>
         <translation>Fullskjermvising</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="336"/>
+        <source>&amp;Compact Mode</source>
+        <translation>&amp;Kompakt modus</translation>
+    </message>
+    <message>
         <source>Hide the playlist and the toolbar</source>
         <translation>Gøym spelelista og verktøylinja</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="349"/>
+        <source>Open the &amp;YouTube Page</source>
+        <translation>Opna &amp;YouTube-sida</translation>
+    </message>
+    <message>
         <source>Go to the YouTube video page and pause playback</source>
         <translation>Gå til video-sida på YouTube og set avspelinga på pause</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="356"/>
+        <source>Copy the YouTube &amp;Link</source>
+        <translation>Kopier YouTube-&amp;lenkja</translation>
+    </message>
+    <message>
         <source>Copy the current video YouTube link to the clipboard</source>
         <translation>Kopier denne YouTube video-lenkja til utklippstavla</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="363"/>
+        <source>Copy the Video Stream &amp;URL</source>
+        <translation>Kopier &amp;URL-en til videostraumen</translation>
+    </message>
+    <message>
         <source>Copy the current video stream URL to the clipboard</source>
         <translation>Kopier denne videostraumlenkja til utklippstavla</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="370"/>
+        <source>Find Video &amp;Parts</source>
+        <translation>Finn &amp;delane av videoen</translation>
+    </message>
+    <message>
         <source>Find other video parts hopefully in the right order</source>
         <translation>Finn andre deler av videoen, vonleg i rett følgje</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="376"/>
         <source>&amp;Remove</source>
         <translation>&amp;Fjern</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="377"/>
         <source>Remove the selected videos from the playlist</source>
         <translation>Fjern valde videoar frå spelelista</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="383"/>
         <source>Move &amp;Up</source>
         <translation>Flytt &amp;opp</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="384"/>
         <source>Move up the selected videos in the playlist</source>
         <translation>Flytt opp valde videoar i spelelista</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="390"/>
         <source>Move &amp;Down</source>
         <translation>Flytt &amp;ned</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="391"/>
         <source>Move down the selected videos in the playlist</source>
         <translation>Flytt ned valde videoar i spelelista</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="402"/>
+        <source>&amp;Clear Recent Searches</source>
+        <translation>&amp;Tøm siste søk</translation>
+    </message>
+    <message>
         <source>Clear the search history. Cannot be undone.</source>
         <translation>Fjern all søkjehistorie. Kan ikkje angrast.</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="407"/>
         <source>&amp;Quit</source>
         <translation>&amp;Avslutt</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="410"/>
         <source>Bye</source>
         <translation>Farvel</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="414"/>
         <source>&amp;Website</source>
         <translation>&amp;Nettstad</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="416"/>
         <source>%1 on the Web</source>
         <translation>%1 på internett</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="422"/>
+        <source>Make a &amp;Donation</source>
+        <translation>&amp;Doner</translation>
+    </message>
+    <message>
         <source>Please support the continued development of %1</source>
         <translation>Vi håpar du kan bidra til vidare utvikling av %1</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="427"/>
         <source>&amp;About</source>
         <translation>&amp;Om</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="429"/>
         <source>Info about %1</source>
         <translation>Informasjon om %1</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="437"/>
         <source>Search</source>
         <translation>Søk</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="456"/>
         <source>Mute volume</source>
         <translation>Lydlaus</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="490"/>
-        <location filename="src/mainwindow.cpp" line="1609"/>
+        <source>&amp;Manually Start Playing</source>
+        <translation>Start avspelinga &amp;manuelt</translation>
+    </message>
+    <message>
+        <source>Manually start playing videos</source>
+        <translation>Spel av videoar manuelt</translation>
+    </message>
+    <message>
         <source>&amp;Downloads</source>
         <translation>&amp;Nedlastingar</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="491"/>
         <source>Show details about video downloads</source>
         <translation>Vis detaljar om videonedlasting</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="499"/>
         <source>&amp;Download</source>
         <translation>&amp;Nedlasting</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="500"/>
         <source>Download the current video</source>
         <translation>Last ned denne videoen</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="510"/>
         <source>Take &amp;Snapshot</source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="517"/>
         <source>&amp;Subscribe to Channel</source>
         <translation>&amp;Ting kanal</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="525"/>
         <source>Share the current video using %1</source>
         <translation>Del denne videoen med %1</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="545"/>
         <source>&amp;Email</source>
         <translation>&amp;Epost</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="546"/>
         <source>Email</source>
         <translation>Epost</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="551"/>
         <source>&amp;Close</source>
         <translation>&amp;Steng</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="561"/>
         <source>&amp;Float on Top</source>
         <translation>&amp;Vis over andre</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="566"/>
         <source>&amp;Adjust Window Size</source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="571"/>
         <source>&amp;Stop After This Video</source>
         <translation>&amp;Stopp etter denne videoen</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="578"/>
         <source>&amp;Report an Issue...</source>
         <translation>&amp;Meld frå om feil …</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="582"/>
         <source>&amp;Refine Search...</source>
         <translation>&amp;Raffiner søk …</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="594"/>
         <source>More...</source>
         <translation>Meir …</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="597"/>
         <source>&amp;Related Videos</source>
         <translation>&amp;Liknande videoar</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="599"/>
         <source>Watch videos related to the current one</source>
         <translation>Sjå videoar som liknar på denne</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="605"/>
         <source>Open in &amp;Browser...</source>
         <translation>Opna i &amp;nettlesaren …</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="612"/>
-        <source>&amp;Love %1? Rate it!</source>
+        <source>Restricted Mode</source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="633"/>
-        <source>&amp;Application</source>
-        <translation>&amp;Program</translation>
+        <source>Hide videos that may contain inappropriate content</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <source>&amp;Love %1? Rate it!</source>
+        <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="618"/>
         <source>Buy %1...</source>
         <translation>Kjøp %1 …</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="647"/>
+        <source>&amp;Application</source>
+        <translation>&amp;Program</translation>
+    </message>
+    <message>
         <source>&amp;Playback</source>
         <translation>&amp;Avspeling</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="661"/>
         <source>&amp;Playlist</source>
         <translation>&amp;Speleliste</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="670"/>
         <source>&amp;Video</source>
         <translation>&amp;Video</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="686"/>
-        <source>&amp;View</source>
-        <translation>&amp;Vising</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="695"/>
         <source>&amp;Share</source>
         <translation>&amp;Del</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="709"/>
+        <source>&amp;View</source>
+        <translation>&amp;Vising</translation>
+    </message>
+    <message>
         <source>&amp;Help</source>
         <translation>&amp;Hjelp</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="751"/>
         <source>Press %1 to raise the volume, %2 to lower it</source>
         <translation>Trykk på %1 for å auka lydvolumet, %2 for å senka</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1021"/>
-        <location filename="src/mainwindow.cpp" line="1027"/>
+        <source>Choose your content location</source>
+        <translation>Vel stad for innhald</translation>
+    </message>
+    <message>
         <source>Opening %1</source>
         <translation>Opnar %1</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1080"/>
         <source>Do you want to exit %1 with a download in progress?</source>
         <translation>Vil du avslutta %1 medan ei nedlasting er i gang?</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1081"/>
         <source>If you close %1 now, this download will be cancelled.</source>
         <translation>Vis du stenger %1 no, vil nedlastinga avbrytast</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1086"/>
         <source>Close and cancel download</source>
         <translation>Steng og avbryt nedlastinga</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1087"/>
         <source>Wait for download to finish</source>
         <translation>Vent medan nedlastinga vert fullførd</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1158"/>
-        <source>&amp;Loading...</source>
-        <translation type="unfinished"/>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="1264"/>
-        <source>Leave &amp;Full Screen</source>
-        <translation>Forlat &amp;fullskjerm</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="1718"/>
-        <source>%1 version %2 is now available.</source>
-        <translation>Versjon %2 av %1 er no tilgjengeleg.</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="1722"/>
-        <source>Remind me later</source>
-        <translation>Minn meg på det seinare</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="1723"/>
-        <source>Update</source>
-        <translation>Oppdater</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="1127"/>
         <source>Error: %1</source>
         <translation>Feil: %1</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="300"/>
-        <source>P&amp;revious</source>
-        <translation>&amp;Førre</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="301"/>
-        <source>Go back to the previous track</source>
-        <translation>Gå til førre spor</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="335"/>
-        <source>&amp;Compact Mode</source>
-        <translation>&amp;Kompakt modus</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="348"/>
-        <source>Open the &amp;YouTube Page</source>
-        <translation>Opna &amp;YouTube-sida</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="355"/>
-        <source>Copy the YouTube &amp;Link</source>
-        <translation>Kopier YouTube-&amp;lenkja</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="362"/>
-        <source>Copy the Video Stream &amp;URL</source>
-        <translation>Kopier &amp;URL-en til videostraumen</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="369"/>
-        <source>Find Video &amp;Parts</source>
-        <translation>Finn &amp;delane av videoen</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="397"/>
-        <source>&amp;Clear Recent Searches</source>
-        <translation>&amp;Tøm siste søk</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="421"/>
-        <source>Make a &amp;Donation</source>
-        <translation>&amp;Doner</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="483"/>
-        <source>&amp;Manually Start Playing</source>
-        <translation>Start avspelinga &amp;manuelt</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="484"/>
-        <source>Manually start playing videos</source>
-        <translation>Spel av videoar manuelt</translation>
+        <source>&amp;Pause</source>
+        <translation>&amp;Pause</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="847"/>
-        <source>Choose your content location</source>
-        <translation>Vel stad for innhald</translation>
+        <source>Pause playback</source>
+        <translation>Set avspeling på pause</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="314"/>
-        <location filename="src/mainwindow.cpp" line="1142"/>
-        <location filename="src/mainwindow.cpp" line="1150"/>
-        <source>&amp;Play</source>
-        <translation>&amp;Spel av</translation>
+        <source>&amp;Loading...</source>
+        <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="315"/>
-        <location filename="src/mainwindow.cpp" line="1143"/>
-        <location filename="src/mainwindow.cpp" line="1151"/>
-        <source>Resume playback</source>
-        <translation>Gjenoppta avspeling</translation>
+        <source>Leave &amp;Full Screen</source>
+        <translation>Forlat &amp;fullskjerm</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1437"/>
         <source>Remaining time: %1</source>
         <translation>Tid igjen: %1</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1528"/>
         <source>Volume at %1%</source>
         <translation>Volum %1%</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1534"/>
         <source>Volume is muted</source>
         <translation>Lydlaust er på</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1537"/>
         <source>Volume is unmuted</source>
         <translation>Lydlaust er av</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1548"/>
         <source>Maximum video definition set to %1</source>
         <translation>Maksimum videodefinisjon sett til %1</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1595"/>
         <source>Your privacy is now safe</source>
         <translation>Privatlivet ditt er no sikkert</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1610"/>
         <source>Downloads complete</source>
         <translation>Nedlastingar fullførde</translation>
     </message>
+    <message>
+        <source>%1 version %2 is now available.</source>
+        <translation>Versjon %2 av %1 er no tilgjengeleg.</translation>
+    </message>
+    <message>
+        <source>Remind me later</source>
+        <translation>Minn meg på det seinare</translation>
+    </message>
+    <message>
+        <source>Update</source>
+        <translation>Oppdater</translation>
+    </message>
 </context>
 <context>
     <name>MediaView</name>
     <message>
-        <location filename="src/mediaview.cpp" line="702"/>
         <source>You can now paste the YouTube link into another application</source>
         <translation>Du kan no lima inn YouTube-lenkja i eit anna program</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="710"/>
         <source>You can now paste the video stream URL into another application</source>
         <translation>Du kan no lima inn videostraumlenkja i eit anna program</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="711"/>
         <source>The link will be valid only for a limited time.</source>
         <translation>Denne lenkja vil berre vera gyldig i ei avgrensa tid.</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="800"/>
         <source>This is just the demo version of %1.</source>
         <translation>Dette er berre demoutgåva av %1.</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="801"/>
         <source>It allows you to test the application and see if it works for you.</source>
         <translation>Dette lèt prøva ut programmet og sjå om det er noko for deg.</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="833"/>
+        <source>Get the full version</source>
+        <translation>Kjøp fullversjonen</translation>
+    </message>
+    <message>
         <source>Continue</source>
         <translation>Hald fram</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="988"/>
+        <source>Downloading %1</source>
+        <translation>Lastar ned %1</translation>
+    </message>
+    <message>
         <source>of</source>
         <comment>Used in video parts, as in '2 of 3'</comment>
         <translation>av</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="1001"/>
         <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="1003"/>
         <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="1096"/>
         <source>Sent from %1</source>
         <translation>Send frå %1</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="1128"/>
         <source>Unsubscribe from %1</source>
         <translation>Slutt å tinga %1</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="1132"/>
         <source>Subscribe to %1</source>
         <translation>Ting %1</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="1166"/>
         <source>Unsubscribed from %1</source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="1169"/>
         <source>Subscribed to %1</source>
         <translation type="unfinished"/>
     </message>
-    <message>
-        <location filename="src/mediaview.cpp" line="808"/>
-        <source>Get the full version</source>
-        <translation>Kjøp fullversjonen</translation>
-    </message>
-    <message>
-        <location filename="src/mediaview.cpp" line="847"/>
-        <source>Downloading %1</source>
-        <translation>Lastar ned %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>Ny utgåve av %1 tilgjengeleg!</translation>
     </message>
     <message>
-        <location filename="local/src/updatedialog.cpp" line="28"/>
         <source>%1 %2 is now available. You have %3.</source>
         <translation>%1 %2 er no tilgjengeleg. Du har %3.</translation>
     </message>
     <message>
-        <location filename="local/src/updatedialog.cpp" line="33"/>
         <source>Would you like to download it now?</source>
         <translation>Vil du lasta ned no?</translation>
     </message>
     <message>
-        <location filename="local/src/updatedialog.cpp" line="39"/>
         <source>Skip This Version</source>
         <translation>Hopp over denne utgåva</translation>
     </message>
     <message>
-        <location filename="local/src/updatedialog.cpp" line="43"/>
         <source>Remind Me Later</source>
         <translation>Minn på meg seinare</translation>
     </message>
     <message>
-        <location filename="local/src/updatedialog.cpp" line="47"/>
         <source>Install Update</source>
         <translation>Installer oppdatering</translation>
     </message>
 <context>
     <name>PasteLineEdit</name>
     <message>
-        <location filename="local/src/pastelineedit.cpp" line="6"/>
         <source>Paste</source>
         <translation>Lim inn</translation>
     </message>
 <context>
     <name>PlaylistItemDelegate</name>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="209"/>
         <source>%1 views</source>
         <translation>%1 visingar</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="309"/>
         <source>%1 of %2 (%3) — %4</source>
         <translation>%1 av %2 (%3) — %4</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="316"/>
         <source>Preparing</source>
         <translation>Gjer klar</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="318"/>
         <source>Failed</source>
         <translation>Feil</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="320"/>
         <source>Completed</source>
         <translation>Ferdig</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="322"/>
         <source>Stopped</source>
         <translation>Stoppa</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="358"/>
         <source>Stop downloading</source>
         <translation>Avbryt nedlasting</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="368"/>
         <source>Show in %1</source>
         <translation>Vis i %1</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="370"/>
         <source>Open parent folder</source>
         <translation>Opna foreldermappe</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="379"/>
         <source>Restart downloading</source>
         <translation>Start nedlasting på nytt</translation>
     </message>
 <context>
     <name>PlaylistModel</name>
     <message>
-        <location filename="src/playlistmodel.cpp" line="70"/>
         <source>Searching...</source>
         <translation>Søkjer …</translation>
     </message>
     <message>
-        <location filename="src/playlistmodel.cpp" line="71"/>
         <source>Show %1 More</source>
         <translation>Vis %1 til</translation>
     </message>
     <message>
-        <location filename="src/playlistmodel.cpp" line="72"/>
         <source>No videos</source>
         <translation>Ingen videoar</translation>
     </message>
     <message>
-        <location filename="src/playlistmodel.cpp" line="73"/>
         <source>No more videos</source>
         <translation>Ingen fleire videoar</translation>
     </message>
 <context>
     <name>RefineSearchWidget</name>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="49"/>
         <source>Sort by</source>
         <translation>Sorter etter</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="53"/>
         <source>Relevance</source>
         <translation>Relevans</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="54"/>
-        <location filename="src/refinesearchwidget.cpp" line="69"/>
         <source>Date</source>
         <translation>Dato</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="55"/>
         <source>View Count</source>
         <translation>Vis kor mange</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="56"/>
         <source>Rating</source>
         <translation>Rangering</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="73"/>
         <source>Anytime</source>
         <translation>Når som helst</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="74"/>
         <source>Today</source>
         <translation>I dag</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="75"/>
         <source>7 Days</source>
         <translation>7 dagar</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="76"/>
         <source>30 Days</source>
         <translation>30 dagar</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="89"/>
         <source>Duration</source>
         <translation>Varigskap</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="93"/>
-        <location filename="src/refinesearchwidget.cpp" line="119"/>
         <source>All</source>
         <translation>Alle</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="94"/>
         <source>Short</source>
         <translation>Kort</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="95"/>
         <source>Medium</source>
         <translation>Middels</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="96"/>
         <source>Long</source>
         <translation>Lang</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="99"/>
         <source>Less than 4 minutes</source>
         <translation>Mindre enn 4 minutt</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="100"/>
         <source>Between 4 and 20 minutes</source>
         <translation>Mellom 4 og 20 minutt</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="101"/>
         <source>Longer than 20 minutes</source>
         <translation>Meir enn 20 minutt</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="115"/>
         <source>Quality</source>
         <translation>Kvalitet</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="120"/>
         <source>High Definition</source>
         <translation>Høy oppløysing</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="123"/>
         <source>720p or higher</source>
         <translation>720p eller høgare</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="136"/>
         <source>Done</source>
         <translation>Ferdig</translation>
     </message>
 <context>
     <name>RegionsView</name>
     <message>
-        <location filename="src/regionsview.cpp" line="39"/>
         <source>Done</source>
         <translation>Ferdig</translation>
     </message>
 <context>
     <name>SearchLineEdit</name>
     <message>
-        <location filename="src/searchlineedit.cpp" line="55"/>
         <source>Search</source>
         <translation>Søk</translation>
     </message>
 <context>
     <name>SearchView</name>
     <message>
-        <location filename="src/searchview.cpp" line="83"/>
         <source>Welcome to &lt;a href=&apos;%1&apos;&gt;%2&lt;/a&gt;,</source>
         <translation>Velkomen til &lt;a href=&apos;%1&apos;&gt;%2&lt;/a&gt;,</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="200"/>
-        <source>Get the full version</source>
-        <translation>Kjøpfullversjonen</translation>
-    </message>
-    <message>
-        <location filename="src/searchview.cpp" line="110"/>
         <source>Enter</source>
         <extracomment>&quot;Enter&quot;, as in &quot;type&quot;. The whole phrase says: &quot;Enter a keyword to start watching videos&quot;</extracomment>
         <translation>Skriv</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="117"/>
         <source>a keyword</source>
         <translation>eit nøkkelord</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="118"/>
         <source>a channel</source>
         <translation>ein kanal</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="125"/>
         <source>to start watching videos.</source>
         <translation>for å å sjå videoar.</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="156"/>
         <source>Watch</source>
         <translation>Snurr film</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="174"/>
         <source>Recent keywords</source>
         <translation>Siste søkjeord</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="186"/>
         <source>Recent channels</source>
         <translation>Siste kanalar</translation>
     </message>
+    <message>
+        <source>Get the full version</source>
+        <translation>Kjøpfullversjonen</translation>
+    </message>
 </context>
 <context>
     <name>SidebarHeader</name>
     <message>
-        <location filename="src/sidebarheader.cpp" line="38"/>
-        <location filename="src/sidebarheader.cpp" line="45"/>
         <source>&amp;Back</source>
         <translation>&amp;Tilbake</translation>
     </message>
     <message>
-        <location filename="src/sidebarheader.cpp" line="76"/>
         <source>Forward to %1</source>
         <translation>Fram til %1</translation>
     </message>
     <message>
-        <location filename="src/sidebarheader.cpp" line="89"/>
         <source>Back to %1</source>
         <translation>Tilbake til %1</translation>
     </message>
 <context>
     <name>SidebarWidget</name>
     <message>
-        <location filename="src/sidebarwidget.cpp" line="68"/>
         <source>Refine Search</source>
         <translation>Forbetra søket</translation>
     </message>
     <message>
-        <location filename="src/sidebarwidget.cpp" line="167"/>
         <source>Did you mean: %1</source>
         <translation>Meinte du: %1</translation>
     </message>
 <context>
     <name>SnapshotSettings</name>
     <message>
-        <location filename="src/snapshotsettings.cpp" line="47"/>
         <source>Change location...</source>
         <translation>Endra stad …</translation>
     </message>
     <message>
-        <location filename="src/snapshotsettings.cpp" line="64"/>
         <source>Snapshot saved to %1</source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="src/snapshotsettings.cpp" line="117"/>
         <source>Snapshots location changed.</source>
         <translation type="unfinished"/>
     </message>
 <context>
     <name>StandardFeedsView</name>
     <message>
-        <location filename="src/standardfeedsview.cpp" line="107"/>
         <source>Most Popular</source>
         <translation>Mest populære</translation>
     </message>
 </context>
+<context>
+    <name>UpdateDialog</name>
+    <message>
+        <source>Downloading update...</source>
+        <translation>Lastar ned oppdatering …</translation>
+    </message>
+    <message>
+        <source>Downloading %1...</source>
+        <translation type="unfinished"/>
+    </message>
+</context>
 <context>
     <name>Video</name>
     <message>
-        <location filename="src/video.cpp" line="287"/>
         <source>Cannot get video stream for %1</source>
         <translation>Kan ikkje henta videostraumen til %1</translation>
     </message>
-    <message>
-        <location filename="src/video.cpp" line="292"/>
-        <source>Network error: %1 for %2</source>
-        <translation>Feil på nettverket: %1 for %2</translation>
-    </message>
 </context>
 <context>
     <name>YTRegions</name>
     <message>
-        <location filename="src/ytregions.cpp" line="28"/>
         <source>Algeria</source>
         <translation>Algerie</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="29"/>
         <source>Argentina</source>
         <translation>Argentina</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="30"/>
         <source>Australia</source>
         <translation>Australia</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="31"/>
         <source>Belgium</source>
         <translation>Belgia</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="32"/>
         <source>Brazil</source>
         <translation>Brasil</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="33"/>
         <source>Canada</source>
         <translation>Kanada</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="34"/>
         <source>Chile</source>
         <translation>Chile</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="35"/>
         <source>Colombia</source>
         <translation>Kolombia</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="36"/>
         <source>Czech Republic</source>
         <translation>Tsjekkia</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="37"/>
         <source>Egypt</source>
         <translation>Egypt</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="38"/>
         <source>France</source>
         <translation>Frankrike</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="39"/>
         <source>Germany</source>
         <translation>Tyskland</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="40"/>
         <source>Ghana</source>
         <translation>Ghana</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="41"/>
         <source>Greece</source>
         <translation>Hellas</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="42"/>
         <source>Hong Kong</source>
         <translation>Hong Kong</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="43"/>
         <source>Hungary</source>
         <translation>Ungarn</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="44"/>
         <source>India</source>
         <translation>India</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="45"/>
         <source>Indonesia</source>
         <translation>Indonesia</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="46"/>
         <source>Ireland</source>
         <translation>Irland</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="47"/>
         <source>Israel</source>
         <translation>Israel</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="48"/>
         <source>Italy</source>
         <translation>Italia</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="49"/>
         <source>Japan</source>
         <translation>Japan</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="50"/>
         <source>Jordan</source>
         <translation>Jordan</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="51"/>
         <source>Kenya</source>
         <translation>Kenya</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="52"/>
         <source>Malaysia</source>
         <translation>Malaysia</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="53"/>
         <source>Mexico</source>
         <translation>Mexico</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="54"/>
         <source>Morocco</source>
         <translation>Marocco</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="55"/>
         <source>Netherlands</source>
         <translation>Nederland</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="56"/>
         <source>New Zealand</source>
         <translation>Ny-Zealand</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="57"/>
         <source>Nigeria</source>
         <translation>Nigeria</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="58"/>
         <source>Peru</source>
         <translation>Peru</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="59"/>
         <source>Philippines</source>
         <translation>Filippinane</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="60"/>
         <source>Poland</source>
         <translation>Polen</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="61"/>
         <source>Russia</source>
         <translation>Russland</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="62"/>
         <source>Saudi Arabia</source>
         <translation>Saudi-Arabia</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="63"/>
         <source>Singapore</source>
         <translation>Singapore</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="64"/>
         <source>South Africa</source>
         <translation>Sør-Afrika</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="65"/>
         <source>South Korea</source>
         <translation>Sør-Korea</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="66"/>
         <source>Spain</source>
         <translation>Spania</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="67"/>
         <source>Sweden</source>
         <translation>Sverige</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="68"/>
         <source>Taiwan</source>
         <translation>Taiwan</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="69"/>
         <source>Tunisia</source>
         <translation>Tunisia</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="70"/>
         <source>Turkey</source>
         <translation>Tyrkia</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="71"/>
         <source>Uganda</source>
         <translation>Uganda</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="72"/>
         <source>United Arab Emirates</source>
         <translation>Sameinte Arabiske Emiratar</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="73"/>
         <source>United Kingdom</source>
         <translation>Storbritannia</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="74"/>
         <source>Yemen</source>
         <translation>Jemen</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="148"/>
         <source>Worldwide</source>
         <translation>Heile verda</translation>
     </message>
index fabed05f7713dd8043a6e261dc81529d917e5988..6b1aac803ca8e93f411a33299b27b96f80b0d24c 100644 (file)
@@ -2,67 +2,42 @@
 <context>
     <name>AboutView</name>
     <message>
-        <location filename="src/aboutview.cpp" line="58"/>
         <source>There&apos;s life outside the browser!</source>
         <translation>Istnieje życie poza przeglądarką!</translation>
     </message>
     <message>
-        <location filename="src/aboutview.cpp" line="59"/>
         <source>Version %1</source>
         <translation>Wersja %1</translation>
     </message>
     <message>
-        <location filename="src/aboutview.cpp" line="64"/>
         <source>Licensed to: %1</source>
         <translation>Licencjonowane dla: %1</translation>
     </message>
     <message>
-        <location filename="src/aboutview.cpp" line="68"/>
         <source>%1 is Free Software but its development takes precious time.</source>
         <translation>%1 jest wolnym oprogramowaniem, ale jego rozwój pochłania cenny czas.</translation>
     </message>
     <message>
-        <location filename="src/aboutview.cpp" line="69"/>
         <source>Please &lt;a href=&apos;%1&apos;&gt;donate&lt;/a&gt; to support the continued development of %2.</source>
         <translation>Proszę &lt;a href=&apos;%1&apos;&gt;wesprzyj nas darowizną&lt;/a&gt; żebyśmy mogli ciągle rozwijać %2.</translation>
     </message>
     <message>
-        <location filename="src/aboutview.cpp" line="73"/>
-        <source>You may want to try my other apps as well:</source>
-        <translation>Być może chciałbyś wypróbować moje inne aplikacje:</translation>
-    </message>
-    <message>
-        <location filename="src/aboutview.cpp" line="76"/>
-        <source>%1, a YouTube music player</source>
-        <translation>%1, odtwarzacz muzyki YouTube</translation>
-    </message>
-    <message>
-        <location filename="src/aboutview.cpp" line="80"/>
-        <source>%1, a music player</source>
-        <translation>%1, odtwarzacz muzyki</translation>
-    </message>
-    <message>
-        <location filename="src/aboutview.cpp" line="86"/>
         <source>Translate %1 to your native language using %2</source>
         <translation>Przetłumacz %1 na swój język używając %2</translation>
     </message>
     <message>
-        <location filename="src/aboutview.cpp" line="91"/>
         <source>Icon designed by %1.</source>
         <translation>Ikony zaprojektowane przez %1.</translation>
     </message>
     <message>
-        <location filename="src/aboutview.cpp" line="95"/>
         <source>Released under the &lt;a href=&apos;%1&apos;&gt;GNU General Public License&lt;/a&gt;</source>
         <translation>Wydane na licencji&lt;a href=&apos;%1&apos;&gt;GNU General Public License&lt;/a&gt;</translation>
     </message>
     <message>
-        <location filename="src/aboutview.cpp" line="110"/>
         <source>&amp;Close</source>
         <translation>&amp;Zamknij</translation>
     </message>
     <message>
-        <location filename="src/aboutview.h" line="40"/>
         <source>About</source>
         <translation>O programie</translation>
     </message>
 <context>
     <name>ActivationDialog</name>
     <message>
-        <location filename="local/src/activationdialog.cpp" line="17"/>
         <source>Enter your License Details</source>
         <translation>Wpisz szczegóły Twojej licencji</translation>
     </message>
     <message>
-        <location filename="local/src/activationdialog.cpp" line="29"/>
         <source>&amp;Email:</source>
         <translation>&amp;Email:</translation>
     </message>
     <message>
-        <location filename="local/src/activationdialog.cpp" line="35"/>
         <source>&amp;Code:</source>
         <translation>&amp;Kod:</translation>
     </message>
 <context>
     <name>ActivationView</name>
     <message>
-        <location filename="local/src/activationview.cpp" line="47"/>
         <source>Please license %1</source>
         <translation>Proszę kupić licencję %1</translation>
     </message>
     <message>
-        <location filename="local/src/activationview.cpp" line="51"/>
         <source>This demo has expired.</source>
         <translation>Okres wersji demo został zakończony.</translation>
     </message>
     <message>
-        <location filename="local/src/activationview.cpp" line="53"/>
         <source>The full version allows you to watch videos without interruptions.</source>
-        <oldsource>The full version allows you to download videos longer than %1 minutes and to watch videos without interruptions.</oldsource>
         <translation>Pełna wersja pozwoli Ci oglądać filmy bez przerw.</translation>
     </message>
     <message>
-        <location filename="local/src/activationview.cpp" line="55"/>
         <source>Without a license, the application will expire in %1 days.</source>
         <translation>Bez licencji ta aplikacja wygaśnie za %1 dni.</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>Przez zakup pełnej wersji wesprzesz również ciężką pracę, którą włożyłem w stworzenie %1.</translation>
     </message>
     <message>
-        <location filename="local/src/activationview.cpp" line="70"/>
         <source>Use Demo</source>
         <translation>Użyj wersji demo</translation>
     </message>
     <message>
-        <location filename="local/src/activationview.cpp" line="77"/>
         <source>Enter License</source>
         <translation>Wprowadź Licencję</translation>
     </message>
     <message>
-        <location filename="local/src/activationview.cpp" line="85"/>
         <source>Buy License</source>
         <translation>Kup Licencję</translation>
     </message>
 </context>
+<context>
+    <name>AppWidget</name>
+    <message>
+        <source>Download</source>
+        <translation>Pobierz</translation>
+    </message>
+</context>
 <context>
     <name>ChannelAggregator</name>
     <message>
-        <location filename="src/channelaggregator.cpp" line="183"/>
         <source>By %1</source>
         <translation>Przez %1</translation>
     </message>
     <message numerus="yes">
-        <location filename="src/channelaggregator.cpp" line="185"/>
         <source>You have %n new video(s)</source>
-        <translation><numerusform>Masz %n nowy film</numerusform><numerusform>Masz %n nowe filmy</numerusform><numerusform>Masz %n nowych filmów</numerusform></translation>
+        <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="67"/>
         <source>All Videos</source>
         <translation>Wszystkie filmy </translation>
     </message>
     <message>
-        <location filename="src/channelitemdelegate.cpp" line="85"/>
         <source>Unwatched Videos</source>
         <translation>Nieobejrzane filmy </translation>
     </message>
 <context>
     <name>ChannelView</name>
     <message>
-        <location filename="src/channelview.cpp" line="151"/>
-        <source>Mark all as watched</source>
-        <translation>Oznacz wszystkie jako obejrzane</translation>
-    </message>
-    <message>
-        <location filename="src/channelview.cpp" line="159"/>
-        <source>Show Updated</source>
-        <translation>Pokaż nowości</translation>
-    </message>
-    <message>
-        <location filename="src/channelview.cpp" line="103"/>
         <source>Name</source>
         <translation>Nazwa</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="110"/>
         <source>Last Updated</source>
         <translation>Ostatnio zaktualizowane</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="117"/>
         <source>Last Added</source>
         <translation>Ostatnio dodane </translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="124"/>
         <source>Last Watched</source>
         <translation>Ostatnio oglądane </translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="131"/>
         <source>Most Watched</source>
         <translation>Najczęściej oglądane </translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="139"/>
         <source>Sort by</source>
         <translation>Sortuj według</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="222"/>
+        <source>Mark all as watched</source>
+        <translation>Oznacz wszystkie jako obejrzane</translation>
+    </message>
+    <message>
+        <source>Show Updated</source>
+        <translation>Pokaż nowości</translation>
+    </message>
+    <message>
         <source>All Videos</source>
         <translation>Wszystkie filmy </translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="226"/>
         <source>Unwatched Videos</source>
         <translation>Nieobejrzane filmy  </translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="244"/>
         <source>Mark as Watched</source>
         <translation>Oznacz jako obejrzane</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="257"/>
         <source>Unsubscribe</source>
         <translation>Anuluj subskrypcję</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="270"/>
         <source>There are no updated subscriptions at this time.</source>
         <translation>Obecnie nie ma żadnych aktualizacji subskrypcji.</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="272"/>
         <source>You have no subscriptions. Use the star symbol to subscribe to channels.</source>
         <translation>Nie masz żadnych subskrypcji. Użyj symbolu gwiazdy do subskrybowania kanałów. </translation>
     </message>
 <context>
     <name>ClearButton</name>
     <message>
-        <location filename="src/exlineedit.cpp" line="6"/>
         <source>Clear</source>
         <translation>Wyczyść</translation>
     </message>
 <context>
     <name>DataUtils</name>
     <message>
-        <location filename="src/datautils.cpp" line="88"/>
         <source>Just now</source>
         <translation>Przed chwilą</translation>
     </message>
     <message numerus="yes">
-        <location filename="src/datautils.cpp" line="90"/>
-        <source>%n minute(s) ago</source>
-        <translation><numerusform>Minutę temu</numerusform><numerusform>%n minuty temu</numerusform><numerusform>%n minut temu</numerusform></translation>
-    </message>
-    <message numerus="yes">
-        <location filename="src/datautils.cpp" line="92"/>
         <source>%n hour(s) ago</source>
-        <translation><numerusform>Godzinę temu</numerusform><numerusform>%n godziny temu</numerusform><numerusform>%n godzin temu</numerusform></translation>
+        <translation type="unfinished"><numerusform></numerusform><numerusform></numerusform><numerusform></numerusform><numerusform></numerusform></translation>
     </message>
     <message numerus="yes">
-        <location filename="src/datautils.cpp" line="94"/>
         <source>%n day(s) ago</source>
-        <translation><numerusform>Wczoraj</numerusform><numerusform>%n dni temu</numerusform><numerusform>%n dni temu</numerusform></translation>
+        <translation type="unfinished"><numerusform></numerusform><numerusform></numerusform><numerusform></numerusform><numerusform></numerusform></translation>
     </message>
     <message numerus="yes">
-        <location filename="src/datautils.cpp" line="96"/>
         <source>%n weeks(s) ago</source>
-        <translation><numerusform>Tydzień temu</numerusform><numerusform>%n tygodnie temu</numerusform><numerusform>%n tygodni temu</numerusform></translation>
+        <translation type="unfinished"><numerusform></numerusform><numerusform></numerusform><numerusform></numerusform><numerusform></numerusform></translation>
     </message>
     <message numerus="yes">
-        <location filename="src/datautils.cpp" line="98"/>
         <source>%n month(s) ago</source>
-        <translation><numerusform>W poprzednim miesiącu</numerusform><numerusform>%n miesiące temu</numerusform><numerusform>%n miesiący temu</numerusform></translation>
+        <translation type="unfinished"><numerusform></numerusform><numerusform></numerusform><numerusform></numerusform><numerusform></numerusform></translation>
     </message>
 </context>
 <context>
     <name>DownloadItem</name>
     <message>
-        <location filename="src/downloaditem.cpp" line="406"/>
         <source>bytes</source>
         <translation>bajty</translation>
     </message>
     <message>
-        <location filename="src/downloaditem.cpp" line="409"/>
         <source>KB</source>
         <translation>KB</translation>
     </message>
     <message>
-        <location filename="src/downloaditem.cpp" line="412"/>
         <source>MB</source>
         <translation>MB</translation>
     </message>
     <message>
-        <location filename="src/downloaditem.cpp" line="421"/>
         <source>bytes/sec</source>
         <translation>bajtów/sekundę</translation>
     </message>
     <message>
-        <location filename="src/downloaditem.cpp" line="424"/>
         <source>KB/sec</source>
         <translation>KB/sek</translation>
     </message>
     <message>
-        <location filename="src/downloaditem.cpp" line="427"/>
         <source>MB/sec</source>
         <translation>MB/sek</translation>
     </message>
     <message>
-        <location filename="src/downloaditem.cpp" line="433"/>
         <source>seconds</source>
         <translation>sekund</translation>
     </message>
     <message>
-        <location filename="src/downloaditem.cpp" line="436"/>
         <source>minutes</source>
         <translation>minut</translation>
     </message>
     <message>
-        <location filename="src/downloaditem.cpp" line="439"/>
         <source>%4 %5 remaining</source>
         <translation>%4 %5 pozostało do końca</translation>
     </message>
 <context>
     <name>DownloadManager</name>
     <message>
-        <location filename="src/downloadmanager.cpp" line="77"/>
         <source>This is just the demo version of %1.</source>
         <translation>To jest jedynie wersja demonstracyjna %1.</translation>
     </message>
     <message>
-        <location filename="src/downloadmanager.cpp" line="79"/>
         <source>It can only download videos shorter than %1 minutes so you can test the download functionality.</source>
         <translation>Funkcja testowa - można pobierać filmy krótsze niż %1 minut.</translation>
     </message>
     <message>
-        <location filename="src/downloadmanager.cpp" line="85"/>
         <source>Continue</source>
         <translation>Kontynuuj</translation>
     </message>
     <message>
-        <location filename="src/downloadmanager.cpp" line="86"/>
         <source>Get the full version</source>
         <translation>Pobierz pełną wersję</translation>
     </message>
     <message>
-        <location filename="src/downloadmanager.cpp" line="157"/>
         <source>%1 downloaded in %2</source>
         <translation>%1 pobrane w %2</translation>
     </message>
     <message>
-        <location filename="src/downloadmanager.cpp" line="160"/>
         <source>Download finished</source>
         <translation>Pobieranie ukończone</translation>
     </message>
     <message numerus="yes">
-        <location filename="src/downloadmanager.cpp" line="165"/>
         <source>%n Download(s)</source>
-        <translation><numerusform>Pobieranie</numerusform><numerusform>%n pobierane</numerusform><numerusform>%n pobieranych</numerusform></translation>
+        <translation type="unfinished"><numerusform></numerusform><numerusform></numerusform><numerusform></numerusform><numerusform></numerusform></translation>
     </message>
 </context>
 <context>
     <name>DownloadSettings</name>
     <message>
-        <location filename="src/downloadsettings.cpp" line="36"/>
         <source>Change location...</source>
         <translation>Zmień katalog pobierania...</translation>
     </message>
     <message>
-        <location filename="src/downloadsettings.cpp" line="69"/>
         <source>Choose the download location</source>
         <translation>Wybierz katalog pobierania</translation>
     </message>
     <message>
-        <location filename="src/downloadsettings.cpp" line="81"/>
         <source>Download location changed.</source>
         <translation>Katalog pobierania został zmieniony.</translation>
     </message>
     <message>
-        <location filename="src/downloadsettings.cpp" line="83"/>
         <source>Current downloads will still go in the previous location.</source>
         <translation>Aktualnie pobierane pliki zostaną we wcześniejszym katalogu pobierania.</translation>
     </message>
     <message>
-        <location filename="src/downloadsettings.cpp" line="94"/>
         <source>Downloading to: %1</source>
         <translation>Pobierane do: %1</translation>
     </message>
 <context>
     <name>DownloadView</name>
     <message>
-        <location filename="src/downloadview.cpp" line="38"/>
-        <location filename="src/downloadview.h" line="45"/>
         <source>Downloads</source>
         <translation>Pobrane pliki</translation>
     </message>
 </context>
-<context>
-    <name>DownloadWidget</name>
-    <message>
-        <location filename="local/src/updatedialog.cpp" line="60"/>
-        <source>Downloading update...</source>
-        <translation>Ściąganie aktualizacji...</translation>
-    </message>
-</context>
 <context>
     <name>Extra</name>
     <message>
-        <location filename="local/src/extra.cpp" line="251"/>
         <source>The executable file has been tempered with, maybe by a virus.</source>
         <translation>Plik wykonywalny został naruszony, być może przez wirusa</translation>
     </message>
     <message>
-        <location filename="local/src/extra.cpp" line="252"/>
         <source>%1 will not run. Try installing again.</source>
         <translation>Nie można uruchomić %1. Spróbuj zainstalować ponownie.</translation>
     </message>
     <message>
-        <location filename="local/src/extra.cpp" line="253"/>
         <source>Quit</source>
         <translation>Wyjdź</translation>
     </message>
     <message>
-        <location filename="local/src/extra.cpp" line="254"/>
         <source>Reinstall</source>
         <translation>Zainstaluj ponownie</translation>
     </message>
 <context>
     <name>GlobalShortcuts</name>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="36"/>
         <source>Play</source>
         <translation>Odtwarzaj</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="37"/>
         <source>Pause</source>
         <translation>Pauza</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="38"/>
         <source>Play/Pause</source>
         <translation>Odtwarzaj/Wstrzymaj</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="39"/>
         <source>Stop</source>
         <translation>Zatrzymaj</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="40"/>
         <source>Stop playing after current track</source>
         <translation>Zatrzymaj odtwarzanie po tej ścieżce</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="41"/>
         <source>Next track</source>
         <translation>Następny</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="42"/>
         <source>Previous track</source>
         <translation>Poprzedni</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="43"/>
         <source>Increase volume</source>
         <translation>Głośniej</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="44"/>
         <source>Decrease volume</source>
         <translation>Ciszej</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="45"/>
         <source>Mute</source>
         <translation>Wycisz</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="46"/>
         <source>Seek forward</source>
         <translation>Przewiń w przód</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="47"/>
         <source>Seek backward</source>
         <translation>Przewiń w tył</translation>
     </message>
 <context>
     <name>HomeView</name>
     <message>
-        <location filename="src/homeview.cpp" line="58"/>
         <source>Search</source>
         <translation>Szukaj</translation>
     </message>
     <message>
-        <location filename="src/homeview.cpp" line="60"/>
         <source>Find videos and channels by keyword</source>
         <translation>Znajdź filmy i kanały według słów kluczowych </translation>
     </message>
     <message>
-        <location filename="src/homeview.cpp" line="65"/>
         <source>Browse</source>
         <translation>Przeglądaj</translation>
     </message>
     <message>
-        <location filename="src/homeview.cpp" line="67"/>
         <source>Browse videos by category</source>
         <translation>Przeglądaj wideo według kategorii</translation>
     </message>
     <message>
-        <location filename="src/homeview.cpp" line="71"/>
         <source>Subscriptions</source>
         <translation>Subskrypcje </translation>
     </message>
     <message>
-        <location filename="src/homeview.cpp" line="73"/>
         <source>Channel subscriptions</source>
         <translation>Subskrypcje kanału</translation>
     </message>
     <message>
-        <location filename="src/homeview.h" line="44"/>
         <source>Make yourself comfortable</source>
         <translation>Poczuj się komfortowo</translation>
     </message>
 <context>
     <name>LoadingWidget</name>
     <message>
-        <location filename="src/loadingwidget.cpp" line="125"/>
         <source>Error</source>
         <translation>Błąd</translation>
     </message>
 <context>
     <name>MainWindow</name>
     <message>
-        <location filename="src/mainwindow.cpp" line="291"/>
+        <source>&amp;Window</source>
+        <translation>&amp;Okno</translation>
+    </message>
+    <message>
+        <source>&amp;Minimize</source>
+        <translation>&amp;Minimalizuj</translation>
+    </message>
+    <message>
         <source>&amp;Stop</source>
         <translation>&amp;Zatrzymaj</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="292"/>
         <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="307"/>
+        <source>P&amp;revious</source>
+        <translation>Pop&amp;rzedni</translation>
+    </message>
+    <message>
+        <source>Go back to the previous track</source>
+        <translation>Powrót do poprzedniego utworu</translation>
+    </message>
+    <message>
         <source>S&amp;kip</source>
         <translation>Prze&amp;skocz dalej</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="308"/>
         <source>Skip to the next video</source>
         <translation>Skocz do następnego pliku wideo</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1134"/>
-        <source>&amp;Pause</source>
-        <translation>&amp;Pauza</translation>
+        <source>&amp;Play</source>
+        <translation>&amp;Odtwarzaj</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1135"/>
-        <source>Pause playback</source>
-        <translation>Wstrzymaj odtwarzanie</translation>
+        <source>Resume playback</source>
+        <translation>Kontynuuj odtwarzanie</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="321"/>
         <source>&amp;Full Screen</source>
         <translation>Pełny ekran (&amp;F)</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="322"/>
         <source>Go full screen</source>
         <translation>Przełącz na pełny ekran</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="336"/>
+        <source>&amp;Compact Mode</source>
+        <translation>&amp;Tryb kompaktowy </translation>
+    </message>
+    <message>
         <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="349"/>
+        <source>Open the &amp;YouTube Page</source>
+        <translation>Otwórz na &amp;Youtube</translation>
+    </message>
+    <message>
         <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="356"/>
+        <source>Copy the YouTube &amp;Link</source>
+        <translation>Kopiuj &amp;link do filmu na YouTube</translation>
+    </message>
+    <message>
         <source>Copy the current video YouTube link to the clipboard</source>
         <translation>Kopiuj adres YouTube aktualnie odtwarzanego wideo do schowka</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="363"/>
+        <source>Copy the Video Stream &amp;URL</source>
+        <translation>Kopiuj adres &amp;URL strumienia wideo</translation>
+    </message>
+    <message>
         <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="370"/>
+        <source>Find Video &amp;Parts</source>
+        <translation>Znajdź wszystkie części &amp;filmu</translation>
+    </message>
+    <message>
         <source>Find other video parts hopefully in the right order</source>
         <translation>Spróbuj znaleźć inne części wideo w odpowiedniej kolejności</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="376"/>
         <source>&amp;Remove</source>
         <translation>Usuń (&amp;D)</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="377"/>
         <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="383"/>
         <source>Move &amp;Up</source>
         <translation>Przenieś &amp;Wyżej</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="384"/>
         <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="390"/>
         <source>Move &amp;Down</source>
         <translation>Przenieś &amp;Niżej</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="391"/>
         <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="402"/>
+        <source>&amp;Clear Recent Searches</source>
+        <translation>Wy&amp;czyść Ostatnie Poszukiwania</translation>
+    </message>
+    <message>
         <source>Clear the search history. Cannot be undone.</source>
         <translation>Wyczyść historię wyszukiwania. NIEODWRACALNIE.</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="407"/>
         <source>&amp;Quit</source>
         <translation>Wyjdź (&amp;Q)</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="410"/>
         <source>Bye</source>
         <translation>Żegnaj</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="414"/>
         <source>&amp;Website</source>
         <translation>Strona domowa projektu (&amp;W)</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="416"/>
         <source>%1 on the Web</source>
         <translation>%1 w sieci</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="422"/>
+        <source>Make a &amp;Donation</source>
+        <translation>Przekaż &amp;darowiznę</translation>
+    </message>
+    <message>
         <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="427"/>
         <source>&amp;About</source>
         <translation>O programie (&amp;A)</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="429"/>
         <source>Info about %1</source>
         <translation>Informacje o %1</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="437"/>
         <source>Search</source>
         <translation>Szukaj</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="456"/>
         <source>Mute volume</source>
         <translation>Wycisz</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="490"/>
-        <location filename="src/mainwindow.cpp" line="1609"/>
+        <source>&amp;Manually Start Playing</source>
+        <translation>&amp;Ręczne uruchamianie odtwarzania </translation>
+    </message>
+    <message>
+        <source>Manually start playing videos</source>
+        <translation>Ręcznie uruchamia odtwarzanie filmów</translation>
+    </message>
+    <message>
         <source>&amp;Downloads</source>
         <translation>&amp;Pobrane</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="491"/>
         <source>Show details about video downloads</source>
         <translation>Pokaż szczegóły o pobranych plikach</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="499"/>
         <source>&amp;Download</source>
         <translation>&amp;Pobierz</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="500"/>
         <source>Download the current video</source>
         <translation>Pobierz aktualny plik</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="510"/>
         <source>Take &amp;Snapshot</source>
         <translation>Zrób &amp;migawkę</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="517"/>
         <source>&amp;Subscribe to Channel</source>
         <translation>&amp;Subskrybuj kanał</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="525"/>
         <source>Share the current video using %1</source>
         <translation>Udostępnij to wideo używając %1</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="545"/>
         <source>&amp;Email</source>
         <translation>&amp;E-mail</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="546"/>
         <source>Email</source>
         <translation>E-mail</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="551"/>
         <source>&amp;Close</source>
         <translation>&amp;Zamknij</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="561"/>
         <source>&amp;Float on Top</source>
         <translation>&amp;Zawsze na wierzchu </translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="566"/>
         <source>&amp;Adjust Window Size</source>
         <translation>Dostosuj wielkość okn&amp;a</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="571"/>
         <source>&amp;Stop After This Video</source>
         <translation>Zatrzymaj odtwarzanie, po obejrzeniu tego filmu  </translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="578"/>
         <source>&amp;Report an Issue...</source>
         <translation>&amp;Zgłoś problem...</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="582"/>
         <source>&amp;Refine Search...</source>
         <translation>Opcje wyszukiwania (&amp;R)</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="594"/>
         <source>More...</source>
         <translation>Więcej...</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="597"/>
         <source>&amp;Related Videos</source>
         <translation>&amp;Podobne filmy</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="599"/>
         <source>Watch videos related to the current one</source>
         <translation>Oglądaj filmy podobne do tego</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="605"/>
         <source>Open in &amp;Browser...</source>
         <translation>Otwórz w &amp;przeglądarce ...  </translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="612"/>
-        <source>&amp;Love %1? Rate it!</source>
-        <translation>&amp;Kochasz %1? Oceń to!</translation>
+        <source>Restricted Mode</source>
+        <translation>Tryb zastrzeżony</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="633"/>
-        <source>&amp;Application</source>
-        <translation>&amp;Aplikacje</translation>
+        <source>Hide videos that may contain inappropriate content</source>
+        <translation>Ukryj filmy mogące zawierać nieodpowiednie treści</translation>
+    </message>
+    <message>
+        <source>&amp;Love %1? Rate it!</source>
+        <translation>&amp;Kochasz %1? Oceń to!</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="618"/>
         <source>Buy %1...</source>
         <translation>Kup %1...</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="647"/>
+        <source>&amp;Application</source>
+        <translation>&amp;Aplikacje</translation>
+    </message>
+    <message>
         <source>&amp;Playback</source>
         <translation>&amp;Odtwarzanie</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="661"/>
         <source>&amp;Playlist</source>
         <translation>&amp;Lista odtwarzania</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="670"/>
         <source>&amp;Video</source>
         <translation>&amp;Wideo</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="686"/>
-        <source>&amp;View</source>
-        <translation>&amp;Widok</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="695"/>
         <source>&amp;Share</source>
         <translation>Udo&amp;stępnij</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="709"/>
+        <source>&amp;View</source>
+        <translation>&amp;Widok</translation>
+    </message>
+    <message>
         <source>&amp;Help</source>
         <translation>&amp;Pomoc</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="751"/>
         <source>Press %1 to raise the volume, %2 to lower it</source>
         <translation>Wciśnij %1 żeby zwiększyć głośność, %2 żeby zmiejszyć głośność</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1021"/>
-        <location filename="src/mainwindow.cpp" line="1027"/>
+        <source>Choose your content location</source>
+        <translation>Wybierz lokalizację treści </translation>
+    </message>
+    <message>
         <source>Opening %1</source>
         <translation>Otwieranie %1</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1080"/>
         <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="1081"/>
         <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="1086"/>
         <source>Close and cancel download</source>
         <translation>Zamknij i anuluj pobieranie</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1087"/>
         <source>Wait for download to finish</source>
         <translation>Poczekaj na zakończenie pobierania</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1158"/>
-        <source>&amp;Loading...</source>
-        <translation>Wczytywanie...</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="1264"/>
-        <source>Leave &amp;Full Screen</source>
-        <translation>Opuść &amp;tryb pełnoekranowy</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="1718"/>
-        <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="1722"/>
-        <source>Remind me later</source>
-        <translation>Przypomnij mi później</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="1723"/>
-        <source>Update</source>
-        <translation>Aktualizuj</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="1127"/>
         <source>Error: %1</source>
         <translation>Błąd %1</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="300"/>
-        <source>P&amp;revious</source>
-        <translation>Pop&amp;rzedni</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="301"/>
-        <source>Go back to the previous track</source>
-        <translation>Powrót do poprzedniego utworu</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="335"/>
-        <source>&amp;Compact Mode</source>
-        <translation>&amp;Tryb kompaktowy </translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="348"/>
-        <source>Open the &amp;YouTube Page</source>
-        <translation>Otwórz na &amp;Youtube</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="355"/>
-        <source>Copy the YouTube &amp;Link</source>
-        <translation>Kopiuj &amp;link do filmu na YouTube</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="362"/>
-        <source>Copy the Video Stream &amp;URL</source>
-        <translation>Kopiuj adres &amp;URL strumienia wideo</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="369"/>
-        <source>Find Video &amp;Parts</source>
-        <translation>Znajdź wszystkie części &amp;filmu</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="397"/>
-        <source>&amp;Clear Recent Searches</source>
-        <translation>Wy&amp;czyść Ostatnie Poszukiwania</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="421"/>
-        <source>Make a &amp;Donation</source>
-        <translation>Przekaż &amp;darowiznę</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="483"/>
-        <source>&amp;Manually Start Playing</source>
-        <translation>&amp;Ręczne uruchamianie odtwarzania </translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="484"/>
-        <source>Manually start playing videos</source>
-        <translation>Ręcznie uruchamia odtwarzanie filmów</translation>
+        <source>&amp;Pause</source>
+        <translation>&amp;Pauza</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="847"/>
-        <source>Choose your content location</source>
-        <translation>Wybierz lokalizację treści </translation>
+        <source>Pause playback</source>
+        <translation>Wstrzymaj odtwarzanie</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="314"/>
-        <location filename="src/mainwindow.cpp" line="1142"/>
-        <location filename="src/mainwindow.cpp" line="1150"/>
-        <source>&amp;Play</source>
-        <translation>&amp;Odtwarzaj</translation>
+        <source>&amp;Loading...</source>
+        <translation>Wczytywanie...</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="315"/>
-        <location filename="src/mainwindow.cpp" line="1143"/>
-        <location filename="src/mainwindow.cpp" line="1151"/>
-        <source>Resume playback</source>
-        <translation>Kontynuuj odtwarzanie</translation>
+        <source>Leave &amp;Full Screen</source>
+        <translation>Opuść &amp;tryb pełnoekranowy</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1437"/>
         <source>Remaining time: %1</source>
         <translation>Pozostały czas %1</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1528"/>
         <source>Volume at %1%</source>
         <translation>Głośność na %1%</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1534"/>
         <source>Volume is muted</source>
         <translation>Dźwięk jest wyciszony</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1537"/>
         <source>Volume is unmuted</source>
         <translation>Przywrócono dźwięk</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1548"/>
         <source>Maximum video definition set to %1</source>
         <translation>Maksymalna rozdzielczość wideo ustawiona na %1</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1595"/>
         <source>Your privacy is now safe</source>
         <translation>Twoja prywatność jest teraz bezpieczna</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1610"/>
         <source>Downloads complete</source>
         <translation>Pobieranie ukończone</translation>
     </message>
+    <message>
+        <source>%1 version %2 is now available.</source>
+        <translation>%1 wersja %2 jest teraz dostępna.</translation>
+    </message>
+    <message>
+        <source>Remind me later</source>
+        <translation>Przypomnij mi później</translation>
+    </message>
+    <message>
+        <source>Update</source>
+        <translation>Aktualizuj</translation>
+    </message>
 </context>
 <context>
     <name>MediaView</name>
     <message>
-        <location filename="src/mediaview.cpp" line="702"/>
         <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="710"/>
         <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="711"/>
         <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="800"/>
         <source>This is just the demo version of %1.</source>
         <translation>To jest jedynie wersja demonstracyjna %1.</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="801"/>
         <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="833"/>
+        <source>Get the full version</source>
+        <translation>Uzyskaj pełną wersję</translation>
+    </message>
+    <message>
         <source>Continue</source>
         <translation>Kontynuuj</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="988"/>
+        <source>Downloading %1</source>
+        <translation>Pobieranie %1</translation>
+    </message>
+    <message>
         <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="1001"/>
         <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="1003"/>
         <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="1096"/>
         <source>Sent from %1</source>
         <translation>Wysłano z %1</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="1128"/>
         <source>Unsubscribe from %1</source>
         <translation>Anuluj subskrypcje %1</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="1132"/>
         <source>Subscribe to %1</source>
         <translation>Subskrybuj %1</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="1166"/>
         <source>Unsubscribed from %1</source>
         <translation>Zakończono subskrypcję %1</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="1169"/>
         <source>Subscribed to %1</source>
         <translation>Rozpoczęto subskrypcję %1</translation>
     </message>
-    <message>
-        <location filename="src/mediaview.cpp" line="808"/>
-        <source>Get the full version</source>
-        <translation>Uzyskaj pełną wersję</translation>
-    </message>
-    <message>
-        <location filename="src/mediaview.cpp" line="847"/>
-        <source>Downloading %1</source>
-        <translation>Pobieranie %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>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>%1 %2 jest już dostępny, Ty masz %3.</translation>
     </message>
     <message>
-        <location filename="local/src/updatedialog.cpp" line="33"/>
         <source>Would you like to download it now?</source>
         <translation>Czy chcesz to teraz pobrać?</translation>
     </message>
     <message>
-        <location filename="local/src/updatedialog.cpp" line="39"/>
         <source>Skip This Version</source>
         <translation>Pomiń tą wersję</translation>
     </message>
     <message>
-        <location filename="local/src/updatedialog.cpp" line="43"/>
         <source>Remind Me Later</source>
         <translation>Przypomnij mi później</translation>
     </message>
     <message>
-        <location filename="local/src/updatedialog.cpp" line="47"/>
         <source>Install Update</source>
         <translation>Zainstaluj aktualizację</translation>
     </message>
 <context>
     <name>PasteLineEdit</name>
     <message>
-        <location filename="local/src/pastelineedit.cpp" line="6"/>
         <source>Paste</source>
         <translation>Wklej</translation>
     </message>
 <context>
     <name>PlaylistItemDelegate</name>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="209"/>
         <source>%1 views</source>
         <translation>Wyświetleń: %1</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="309"/>
         <source>%1 of %2 (%3) — %4</source>
         <translation>%1 z %2 (%3) — %4</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="316"/>
         <source>Preparing</source>
         <translation>Przegotowuję</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="318"/>
         <source>Failed</source>
         <translation>Niepowodzenie</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="320"/>
         <source>Completed</source>
         <translation>Zakończone</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="322"/>
         <source>Stopped</source>
         <translation>Zatrzymano</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="358"/>
         <source>Stop downloading</source>
         <translation>Zatrzymaj pobieranie</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="368"/>
         <source>Show in %1</source>
         <translation>Pokaż w %1</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="370"/>
         <source>Open parent folder</source>
         <translation>Otwórz folder nadrzędny </translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="379"/>
         <source>Restart downloading</source>
         <translation>Pobierz od nowa</translation>
     </message>
 <context>
     <name>PlaylistModel</name>
     <message>
-        <location filename="src/playlistmodel.cpp" line="70"/>
         <source>Searching...</source>
         <translation>Wyszukiwanie ...</translation>
     </message>
     <message>
-        <location filename="src/playlistmodel.cpp" line="71"/>
         <source>Show %1 More</source>
         <translation>Pokaż kolejne %1</translation>
     </message>
     <message>
-        <location filename="src/playlistmodel.cpp" line="72"/>
         <source>No videos</source>
         <translation>Brak wideo</translation>
     </message>
     <message>
-        <location filename="src/playlistmodel.cpp" line="73"/>
         <source>No more videos</source>
         <translation>Nie ma więcej wideo</translation>
     </message>
 <context>
     <name>RefineSearchWidget</name>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="49"/>
         <source>Sort by</source>
         <translation>Sortuj według</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="53"/>
         <source>Relevance</source>
         <translation>Trafność</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="54"/>
-        <location filename="src/refinesearchwidget.cpp" line="69"/>
         <source>Date</source>
         <translation>Daty</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="55"/>
         <source>View Count</source>
         <translation>Ilość wyświetleń </translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="56"/>
         <source>Rating</source>
         <translation>Oceny </translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="73"/>
         <source>Anytime</source>
         <translation>Kiedykolwiek</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="74"/>
         <source>Today</source>
         <translation>Dzisiaj</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="75"/>
         <source>7 Days</source>
         <translation>7 Dni</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="76"/>
         <source>30 Days</source>
         <translation>30 Dni</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="89"/>
         <source>Duration</source>
         <translation>Czas trwania </translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="93"/>
-        <location filename="src/refinesearchwidget.cpp" line="119"/>
         <source>All</source>
         <translation>Wszystko</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="94"/>
         <source>Short</source>
         <translation>Krótkie</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="95"/>
         <source>Medium</source>
         <translation>Średnie</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="96"/>
         <source>Long</source>
         <translation>Długie</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="99"/>
         <source>Less than 4 minutes</source>
         <translation>Krótsze niż 4 minuty</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="100"/>
         <source>Between 4 and 20 minutes</source>
         <translation>Pomiędzy 4 a 20 minutami</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="101"/>
         <source>Longer than 20 minutes</source>
         <translation>Dłuższe niż 20 minut</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="115"/>
         <source>Quality</source>
         <translation>Jakość</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="120"/>
         <source>High Definition</source>
         <translation>Wysoka rozdzielczość </translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="123"/>
         <source>720p or higher</source>
         <translation>720p lub lepsza</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="136"/>
         <source>Done</source>
         <translation>Ukończono</translation>
     </message>
 <context>
     <name>RegionsView</name>
     <message>
-        <location filename="src/regionsview.cpp" line="39"/>
         <source>Done</source>
         <translation>Ukończono</translation>
     </message>
 <context>
     <name>SearchLineEdit</name>
     <message>
-        <location filename="src/searchlineedit.cpp" line="55"/>
         <source>Search</source>
         <translation>Szukaj</translation>
     </message>
 <context>
     <name>SearchView</name>
     <message>
-        <location filename="src/searchview.cpp" line="83"/>
         <source>Welcome to &lt;a href=&apos;%1&apos;&gt;%2&lt;/a&gt;,</source>
         <translation>Witaj w &lt;a href=&apos;%1&apos;&gt;%2&lt;/a&gt;,</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="200"/>
-        <source>Get the full version</source>
-        <translation>Uzyskaj pełną wersję</translation>
-    </message>
-    <message>
-        <location filename="src/searchview.cpp" line="110"/>
         <source>Enter</source>
         <extracomment>&quot;Enter&quot;, as in &quot;type&quot;. The whole phrase says: &quot;Enter a keyword to start watching videos&quot;</extracomment>
         <translation>Zatwierdź</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="117"/>
         <source>a keyword</source>
         <translation>słowo kluczowe</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="118"/>
         <source>a channel</source>
         <translation>kanał</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="125"/>
         <source>to start watching videos.</source>
         <translation>aby rozpocząć oglądanie</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="156"/>
         <source>Watch</source>
         <translation>Oglądaj</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="174"/>
         <source>Recent keywords</source>
         <translation>Ostatnio szukane</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="186"/>
         <source>Recent channels</source>
         <translation>Odwiedzone kanały</translation>
     </message>
+    <message>
+        <source>Get the full version</source>
+        <translation>Uzyskaj pełną wersję</translation>
+    </message>
 </context>
 <context>
     <name>SidebarHeader</name>
     <message>
-        <location filename="src/sidebarheader.cpp" line="38"/>
-        <location filename="src/sidebarheader.cpp" line="45"/>
         <source>&amp;Back</source>
         <translation>&amp;Wstecz</translation>
     </message>
     <message>
-        <location filename="src/sidebarheader.cpp" line="76"/>
         <source>Forward to %1</source>
         <translation>Przewiń do %1</translation>
     </message>
     <message>
-        <location filename="src/sidebarheader.cpp" line="89"/>
         <source>Back to %1</source>
         <translation>Cofnij do %1</translation>
     </message>
 <context>
     <name>SidebarWidget</name>
     <message>
-        <location filename="src/sidebarwidget.cpp" line="68"/>
         <source>Refine Search</source>
         <translation>Opcje wyszukiwania  </translation>
     </message>
     <message>
-        <location filename="src/sidebarwidget.cpp" line="167"/>
         <source>Did you mean: %1</source>
         <translation>Czy chodziło o: %1</translation>
     </message>
 <context>
     <name>SnapshotSettings</name>
     <message>
-        <location filename="src/snapshotsettings.cpp" line="47"/>
         <source>Change location...</source>
         <translation>Zmień katalog pobierania...</translation>
     </message>
     <message>
-        <location filename="src/snapshotsettings.cpp" line="64"/>
         <source>Snapshot saved to %1</source>
         <translation>Migawka została zapisana do %1</translation>
     </message>
     <message>
-        <location filename="src/snapshotsettings.cpp" line="117"/>
         <source>Snapshots location changed.</source>
         <translation>Katalog zapisu migawek został zmieniony.</translation>
     </message>
 <context>
     <name>StandardFeedsView</name>
     <message>
-        <location filename="src/standardfeedsview.cpp" line="107"/>
         <source>Most Popular</source>
         <translation>Najpopularniejsze </translation>
     </message>
 </context>
+<context>
+    <name>UpdateDialog</name>
+    <message>
+        <source>Downloading update...</source>
+        <translation>Ściąganie aktualizacji...</translation>
+    </message>
+    <message>
+        <source>Downloading %1...</source>
+        <translation>Pobieranie %1...</translation>
+    </message>
+</context>
 <context>
     <name>Video</name>
     <message>
-        <location filename="src/video.cpp" line="287"/>
         <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="292"/>
-        <source>Network error: %1 for %2</source>
-        <translation>Błąd sieci: %1 for %2</translation>
-    </message>
 </context>
 <context>
     <name>YTRegions</name>
     <message>
-        <location filename="src/ytregions.cpp" line="28"/>
         <source>Algeria</source>
         <translation>Algieria</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="29"/>
         <source>Argentina</source>
         <translation>Argentyna</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="30"/>
         <source>Australia</source>
         <translation>Australia</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="31"/>
         <source>Belgium</source>
         <translation>Belgia</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="32"/>
         <source>Brazil</source>
         <translation>Brazylia</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="33"/>
         <source>Canada</source>
         <translation>Kanada</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="34"/>
         <source>Chile</source>
         <translation>Chile</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="35"/>
         <source>Colombia</source>
         <translation>Kolumbia</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="36"/>
         <source>Czech Republic</source>
         <translation>Czechy</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="37"/>
         <source>Egypt</source>
         <translation>Egipt</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="38"/>
         <source>France</source>
         <translation>Francja</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="39"/>
         <source>Germany</source>
         <translation>Niemcy</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="40"/>
         <source>Ghana</source>
         <translation>Ghana </translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="41"/>
         <source>Greece</source>
         <translation>Grecja</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="42"/>
         <source>Hong Kong</source>
         <translation>Hong Kong</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="43"/>
         <source>Hungary</source>
         <translation>Węgry</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="44"/>
         <source>India</source>
         <translation>Indie</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="45"/>
         <source>Indonesia</source>
         <translation>Indonezja</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="46"/>
         <source>Ireland</source>
         <translation>Irlandia</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="47"/>
         <source>Israel</source>
         <translation>Izrael</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="48"/>
         <source>Italy</source>
         <translation>Włochy</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="49"/>
         <source>Japan</source>
         <translation>Japonia</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="50"/>
         <source>Jordan</source>
         <translation>Jordania </translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="51"/>
         <source>Kenya</source>
         <translation>Kenia</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="52"/>
         <source>Malaysia</source>
         <translation>Malezja</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="53"/>
         <source>Mexico</source>
         <translation>Meksyk</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="54"/>
         <source>Morocco</source>
         <translation>Maroko</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="55"/>
         <source>Netherlands</source>
         <translation>Holandia</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="56"/>
         <source>New Zealand</source>
         <translation>Nowa Zelandia</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="57"/>
         <source>Nigeria</source>
         <translation>Nigeria</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="58"/>
         <source>Peru</source>
         <translation>Peru</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="59"/>
         <source>Philippines</source>
         <translation>Filipiny</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="60"/>
         <source>Poland</source>
         <translation>Polska</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="61"/>
         <source>Russia</source>
         <translation>Rosja</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="62"/>
         <source>Saudi Arabia</source>
         <translation>Arabia Saudyjska</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="63"/>
         <source>Singapore</source>
         <translation>Singapur</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="64"/>
         <source>South Africa</source>
         <translation>Południowa Afryka</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="65"/>
         <source>South Korea</source>
         <translation>Południowa Korea</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="66"/>
         <source>Spain</source>
         <translation>Hiszpania</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="67"/>
         <source>Sweden</source>
         <translation>Szwecja</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="68"/>
         <source>Taiwan</source>
         <translation>Tajwan</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="69"/>
         <source>Tunisia</source>
         <translation>Tunezja</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="70"/>
         <source>Turkey</source>
         <translation>Turcja</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="71"/>
         <source>Uganda</source>
         <translation>Uganda</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="72"/>
         <source>United Arab Emirates</source>
         <translation>Emiraty Arabskie </translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="73"/>
         <source>United Kingdom</source>
         <translation>Wielka Brytania </translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="74"/>
         <source>Yemen</source>
         <translation>Jemen</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="148"/>
         <source>Worldwide</source>
         <translation>Ogólnoświatowy</translation>
     </message>
index 55099657459c00be79fb070a168322c38e188f0d..f541c976b9c9b63dc4580341e359f18a0e453aeb 100644 (file)
@@ -2,67 +2,42 @@
 <context>
     <name>AboutView</name>
     <message>
-        <location filename="src/aboutview.cpp" line="58"/>
         <source>There&apos;s life outside the browser!</source>
         <translation>Życie istnieje też poza przeglądarką!</translation>
     </message>
     <message>
-        <location filename="src/aboutview.cpp" line="59"/>
         <source>Version %1</source>
         <translation>Wersja %1</translation>
     </message>
     <message>
-        <location filename="src/aboutview.cpp" line="64"/>
         <source>Licensed to: %1</source>
         <translation>Licencjonowane dla: %1</translation>
     </message>
     <message>
-        <location filename="src/aboutview.cpp" line="68"/>
         <source>%1 is Free Software but its development takes precious time.</source>
         <translation>%1 jest darmowym oprogramowaniem, ale jego stworzenie też wymaga cennego czasu.</translation>
     </message>
     <message>
-        <location filename="src/aboutview.cpp" line="69"/>
         <source>Please &lt;a href=&apos;%1&apos;&gt;donate&lt;/a&gt; to support the continued development of %2.</source>
         <translation>Proszę o &lt;a href=&apos;%1&apos;&gt;dotacje&lt;/a&gt; dla dalszego rozwoju %2.</translation>
     </message>
     <message>
-        <location filename="src/aboutview.cpp" line="73"/>
-        <source>You may want to try my other apps as well:</source>
-        <translation>Może chcesz wypróbować inne moje aplikacje:</translation>
-    </message>
-    <message>
-        <location filename="src/aboutview.cpp" line="76"/>
-        <source>%1, a YouTube music player</source>
-        <translation>%1, odtwarzacz muzyki z YouTube&apos;a</translation>
-    </message>
-    <message>
-        <location filename="src/aboutview.cpp" line="80"/>
-        <source>%1, a music player</source>
-        <translation>%1, odtwarzacz muzyki</translation>
-    </message>
-    <message>
-        <location filename="src/aboutview.cpp" line="86"/>
         <source>Translate %1 to your native language using %2</source>
         <translation>Przetłumacz %1 na swój język używając %2</translation>
     </message>
     <message>
-        <location filename="src/aboutview.cpp" line="91"/>
         <source>Icon designed by %1.</source>
         <translation>Ikony zaprojektowane przez %1.</translation>
     </message>
     <message>
-        <location filename="src/aboutview.cpp" line="95"/>
         <source>Released under the &lt;a href=&apos;%1&apos;&gt;GNU General Public License&lt;/a&gt;</source>
         <translation>Wydane na licencji&lt;a href=&apos;%1&apos;&gt;GNU General Public License&lt;/a&gt;</translation>
     </message>
     <message>
-        <location filename="src/aboutview.cpp" line="110"/>
         <source>&amp;Close</source>
         <translation>&amp;Zamknij</translation>
     </message>
     <message>
-        <location filename="src/aboutview.h" line="40"/>
         <source>About</source>
         <translation>O programie</translation>
     </message>
 <context>
     <name>ActivationDialog</name>
     <message>
-        <location filename="local/src/activationdialog.cpp" line="17"/>
         <source>Enter your License Details</source>
         <translation>Podaj szczegóły twojej licencji</translation>
     </message>
     <message>
-        <location filename="local/src/activationdialog.cpp" line="29"/>
         <source>&amp;Email:</source>
         <translation>Adres &amp;Email:</translation>
     </message>
     <message>
-        <location filename="local/src/activationdialog.cpp" line="35"/>
         <source>&amp;Code:</source>
         <translation>&amp;Kod:</translation>
     </message>
 <context>
     <name>ActivationView</name>
     <message>
-        <location filename="local/src/activationview.cpp" line="47"/>
         <source>Please license %1</source>
         <translation>Proszę kup licencję %1</translation>
     </message>
     <message>
-        <location filename="local/src/activationview.cpp" line="51"/>
         <source>This demo has expired.</source>
         <translation>To demo wygasło.</translation>
     </message>
     <message>
-        <location filename="local/src/activationview.cpp" line="53"/>
         <source>The full version allows you to watch videos without interruptions.</source>
-        <oldsource>The full version allows you to download videos longer than %1 minutes and to watch videos without interruptions.</oldsource>
-        <translation type="unfinished"/>
+        <translation>Pełna wersja pozwala na oglądanie filmów bez przeszkód.</translation>
     </message>
     <message>
-        <location filename="local/src/activationview.cpp" line="55"/>
         <source>Without a license, the application will expire in %1 days.</source>
         <translation>Bez licencji, program wygaśnie za %1 dni.</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>Kupując pełną wersję, wspieraż także ciężką pracę, jaką włożyłem w stworzenie %1.</translation>
     </message>
     <message>
-        <location filename="local/src/activationview.cpp" line="70"/>
         <source>Use Demo</source>
         <translation>Uruchom w trybie demonstracyjnym</translation>
     </message>
     <message>
-        <location filename="local/src/activationview.cpp" line="77"/>
         <source>Enter License</source>
         <translation>Wprowadź dane licencji</translation>
     </message>
     <message>
-        <location filename="local/src/activationview.cpp" line="85"/>
         <source>Buy License</source>
         <translation>Kup licencję</translation>
     </message>
 </context>
+<context>
+    <name>AppWidget</name>
+    <message>
+        <source>Download</source>
+        <translation>Pobierz</translation>
+    </message>
+</context>
 <context>
     <name>ChannelAggregator</name>
     <message>
-        <location filename="src/channelaggregator.cpp" line="183"/>
         <source>By %1</source>
-        <translation type="unfinished"/>
+        <translation>Autor: %1</translation>
     </message>
     <message numerus="yes">
-        <location filename="src/channelaggregator.cpp" line="185"/>
         <source>You have %n new video(s)</source>
-        <translation type="unfinished"><numerusform></numerusform><numerusform></numerusform><numerusform></numerusform></translation>
+        <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="67"/>
         <source>All Videos</source>
         <translation>Wszystkie filmy</translation>
     </message>
     <message>
-        <location filename="src/channelitemdelegate.cpp" line="85"/>
         <source>Unwatched Videos</source>
         <translation>Nieobejrzane filmy</translation>
     </message>
 <context>
     <name>ChannelView</name>
     <message>
-        <location filename="src/channelview.cpp" line="151"/>
-        <source>Mark all as watched</source>
-        <translation>Oznacz wszystkie jako obserwowane</translation>
-    </message>
-    <message>
-        <location filename="src/channelview.cpp" line="159"/>
-        <source>Show Updated</source>
-        <translation>Pokaż zaktualizowane</translation>
-    </message>
-    <message>
-        <location filename="src/channelview.cpp" line="103"/>
         <source>Name</source>
         <translation>Nazwa</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="110"/>
         <source>Last Updated</source>
         <translation>Ostatnio Zaktualizowane</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="117"/>
         <source>Last Added</source>
         <translation>Ostatnio Dodane</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="124"/>
         <source>Last Watched</source>
         <translation>Ostatnio Zaobserwowane</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="131"/>
         <source>Most Watched</source>
         <translation>Najczęściej Obserwowane</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="139"/>
         <source>Sort by</source>
         <translation>Sortuj według</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="222"/>
+        <source>Mark all as watched</source>
+        <translation>Oznacz wszystkie jako obserwowane</translation>
+    </message>
+    <message>
+        <source>Show Updated</source>
+        <translation>Pokaż zaktualizowane</translation>
+    </message>
+    <message>
         <source>All Videos</source>
         <translation>Wszystkie filmy</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="226"/>
         <source>Unwatched Videos</source>
         <translation>Nieobejrzane filmy</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="244"/>
         <source>Mark as Watched</source>
-        <translation type="unfinished"/>
+        <translation>Oznacz jako obejrzane</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="257"/>
         <source>Unsubscribe</source>
-        <translation type="unfinished"/>
+        <translation>Przestań subskrybować</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="270"/>
         <source>There are no updated subscriptions at this time.</source>
         <translation>Brak zaktualizowanych subskrypcji. </translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="272"/>
         <source>You have no subscriptions. Use the star symbol to subscribe to channels.</source>
-        <translation type="unfinished"/>
+        <translation>Nie masz żadnej subskrypcji. Użyj symbolu gwiazdki, aby subskrybować kanały.</translation>
     </message>
 </context>
 <context>
     <name>ClearButton</name>
     <message>
-        <location filename="src/exlineedit.cpp" line="6"/>
         <source>Clear</source>
         <translation>Wyczyść</translation>
     </message>
 <context>
     <name>DataUtils</name>
     <message>
-        <location filename="src/datautils.cpp" line="88"/>
         <source>Just now</source>
-        <translation type="unfinished"/>
+        <translation>Przed chwilą</translation>
     </message>
     <message numerus="yes">
-        <location filename="src/datautils.cpp" line="90"/>
-        <source>%n minute(s) ago</source>
-        <translation type="unfinished"><numerusform></numerusform><numerusform></numerusform><numerusform></numerusform></translation>
-    </message>
-    <message numerus="yes">
-        <location filename="src/datautils.cpp" line="92"/>
         <source>%n hour(s) ago</source>
-        <translation type="unfinished"><numerusform></numerusform><numerusform></numerusform><numerusform></numerusform></translation>
+        <translation type="unfinished"><numerusform></numerusform><numerusform></numerusform><numerusform></numerusform><numerusform></numerusform></translation>
     </message>
     <message numerus="yes">
-        <location filename="src/datautils.cpp" line="94"/>
         <source>%n day(s) ago</source>
-        <translation type="unfinished"><numerusform></numerusform><numerusform></numerusform><numerusform></numerusform></translation>
+        <translation type="unfinished"><numerusform></numerusform><numerusform></numerusform><numerusform></numerusform><numerusform></numerusform></translation>
     </message>
     <message numerus="yes">
-        <location filename="src/datautils.cpp" line="96"/>
         <source>%n weeks(s) ago</source>
-        <translation type="unfinished"><numerusform></numerusform><numerusform></numerusform><numerusform></numerusform></translation>
+        <translation type="unfinished"><numerusform></numerusform><numerusform></numerusform><numerusform></numerusform><numerusform></numerusform></translation>
     </message>
     <message numerus="yes">
-        <location filename="src/datautils.cpp" line="98"/>
         <source>%n month(s) ago</source>
-        <translation type="unfinished"><numerusform></numerusform><numerusform></numerusform><numerusform></numerusform></translation>
+        <translation type="unfinished"><numerusform></numerusform><numerusform></numerusform><numerusform></numerusform><numerusform></numerusform></translation>
     </message>
 </context>
 <context>
     <name>DownloadItem</name>
     <message>
-        <location filename="src/downloaditem.cpp" line="406"/>
         <source>bytes</source>
         <translation>B</translation>
     </message>
     <message>
-        <location filename="src/downloaditem.cpp" line="409"/>
         <source>KB</source>
         <translation>KB</translation>
     </message>
     <message>
-        <location filename="src/downloaditem.cpp" line="412"/>
         <source>MB</source>
         <translation>MB</translation>
     </message>
     <message>
-        <location filename="src/downloaditem.cpp" line="421"/>
         <source>bytes/sec</source>
         <translation>B/s</translation>
     </message>
     <message>
-        <location filename="src/downloaditem.cpp" line="424"/>
         <source>KB/sec</source>
         <translation>KB/s</translation>
     </message>
     <message>
-        <location filename="src/downloaditem.cpp" line="427"/>
         <source>MB/sec</source>
         <translation>MB/s</translation>
     </message>
     <message>
-        <location filename="src/downloaditem.cpp" line="433"/>
         <source>seconds</source>
         <translation>sek.</translation>
     </message>
     <message>
-        <location filename="src/downloaditem.cpp" line="436"/>
         <source>minutes</source>
         <translation>min.</translation>
     </message>
     <message>
-        <location filename="src/downloaditem.cpp" line="439"/>
         <source>%4 %5 remaining</source>
         <translation>pozostało %4 %5</translation>
     </message>
 <context>
     <name>DownloadManager</name>
     <message>
-        <location filename="src/downloadmanager.cpp" line="77"/>
         <source>This is just the demo version of %1.</source>
         <translation>To jest tylko wersja demo %1.</translation>
     </message>
     <message>
-        <location filename="src/downloadmanager.cpp" line="79"/>
         <source>It can only download videos shorter than %1 minutes so you can test the download functionality.</source>
         <translation>Może pobierać jedynie filmy krótsze niż %1 minut, dla przetestowania funkcji pobierania.</translation>
     </message>
     <message>
-        <location filename="src/downloadmanager.cpp" line="85"/>
         <source>Continue</source>
         <translation>Dalej</translation>
     </message>
     <message>
-        <location filename="src/downloadmanager.cpp" line="86"/>
         <source>Get the full version</source>
         <translation>Pobierz pełną wersję</translation>
     </message>
     <message>
-        <location filename="src/downloadmanager.cpp" line="157"/>
         <source>%1 downloaded in %2</source>
         <translation>%1 ściągnięte w %2</translation>
     </message>
     <message>
-        <location filename="src/downloadmanager.cpp" line="160"/>
         <source>Download finished</source>
         <translation>Ściąganie zakończone</translation>
     </message>
     <message numerus="yes">
-        <location filename="src/downloadmanager.cpp" line="165"/>
         <source>%n Download(s)</source>
-        <translation type="unfinished"><numerusform></numerusform><numerusform></numerusform><numerusform></numerusform></translation>
+        <translation type="unfinished"><numerusform></numerusform><numerusform></numerusform><numerusform></numerusform><numerusform></numerusform></translation>
     </message>
 </context>
 <context>
     <name>DownloadSettings</name>
     <message>
-        <location filename="src/downloadsettings.cpp" line="36"/>
         <source>Change location...</source>
         <translation>Zmień katalog pobierania...</translation>
     </message>
     <message>
-        <location filename="src/downloadsettings.cpp" line="69"/>
         <source>Choose the download location</source>
         <translation>Wybierz katalog pobierania</translation>
     </message>
     <message>
-        <location filename="src/downloadsettings.cpp" line="81"/>
         <source>Download location changed.</source>
         <translation>Katalog pobierania został zmieniony.</translation>
     </message>
     <message>
-        <location filename="src/downloadsettings.cpp" line="83"/>
         <source>Current downloads will still go in the previous location.</source>
         <translation>Aktualnie pobierane pliki zostaną we wcześniejszym katalogu pobierania.</translation>
     </message>
     <message>
-        <location filename="src/downloadsettings.cpp" line="94"/>
         <source>Downloading to: %1</source>
         <translation>Pobierane do: %1</translation>
     </message>
 <context>
     <name>DownloadView</name>
     <message>
-        <location filename="src/downloadview.cpp" line="38"/>
-        <location filename="src/downloadview.h" line="45"/>
         <source>Downloads</source>
         <translation>Pobrane pliki</translation>
     </message>
 </context>
-<context>
-    <name>DownloadWidget</name>
-    <message>
-        <location filename="local/src/updatedialog.cpp" line="60"/>
-        <source>Downloading update...</source>
-        <translation>Pobieranie aktualizacji...</translation>
-    </message>
-</context>
 <context>
     <name>Extra</name>
     <message>
-        <location filename="local/src/extra.cpp" line="251"/>
         <source>The executable file has been tempered with, maybe by a virus.</source>
-        <translation type="unfinished"/>
+        <translation>Plik uruchomieniowy został utemperowany prawdopodobnie przez wirusa.</translation>
     </message>
     <message>
-        <location filename="local/src/extra.cpp" line="252"/>
         <source>%1 will not run. Try installing again.</source>
-        <translation type="unfinished"/>
+        <translation>%1 nie zostanie uruchomione. Spróbuj zainstalować go ponownie.</translation>
     </message>
     <message>
-        <location filename="local/src/extra.cpp" line="253"/>
         <source>Quit</source>
-        <translation type="unfinished"/>
+        <translation>Wyjdź</translation>
     </message>
     <message>
-        <location filename="local/src/extra.cpp" line="254"/>
         <source>Reinstall</source>
-        <translation type="unfinished"/>
+        <translation>Zainstaluj ponownie</translation>
     </message>
 </context>
 <context>
     <name>GlobalShortcuts</name>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="36"/>
         <source>Play</source>
         <translation>Graj</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="37"/>
         <source>Pause</source>
         <translation>Wstrzymaj</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="38"/>
         <source>Play/Pause</source>
         <translation>Graj/Wstrzymaj</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="39"/>
         <source>Stop</source>
         <translation>Stop (przerwij)</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="40"/>
         <source>Stop playing after current track</source>
         <translation>Zatrzymaj odtwarzanie po tej ścieżce</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="41"/>
         <source>Next track</source>
         <translation>Następna ścieżka</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="42"/>
         <source>Previous track</source>
         <translation>Poprzednia ścieżka</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="43"/>
         <source>Increase volume</source>
         <translation>Głośniej</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="44"/>
         <source>Decrease volume</source>
         <translation>Ciszej</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="45"/>
         <source>Mute</source>
         <translation>Wycisz</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="46"/>
         <source>Seek forward</source>
         <translation>Przewiń w przód</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="47"/>
         <source>Seek backward</source>
         <translation>Przewiń do tyłu</translation>
     </message>
 <context>
     <name>HomeView</name>
     <message>
-        <location filename="src/homeview.cpp" line="58"/>
         <source>Search</source>
         <translation>Szukaj</translation>
     </message>
     <message>
-        <location filename="src/homeview.cpp" line="60"/>
         <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="65"/>
         <source>Browse</source>
         <translation>Przeglądaj</translation>
     </message>
     <message>
-        <location filename="src/homeview.cpp" line="67"/>
         <source>Browse videos by category</source>
         <translation>Przeglądaj filmy po kategorii</translation>
     </message>
     <message>
-        <location filename="src/homeview.cpp" line="71"/>
         <source>Subscriptions</source>
         <translation>Subskrypcje</translation>
     </message>
     <message>
-        <location filename="src/homeview.cpp" line="73"/>
         <source>Channel subscriptions</source>
-        <translation type="unfinished"/>
+        <translation>Subskrypcje kanałów</translation>
     </message>
     <message>
-        <location filename="src/homeview.h" line="44"/>
         <source>Make yourself comfortable</source>
         <translation>Rozgość się</translation>
     </message>
 <context>
     <name>LoadingWidget</name>
     <message>
-        <location filename="src/loadingwidget.cpp" line="125"/>
         <source>Error</source>
         <translation>Błąd</translation>
     </message>
 <context>
     <name>MainWindow</name>
     <message>
-        <location filename="src/mainwindow.cpp" line="291"/>
+        <source>&amp;Window</source>
+        <translation>&amp;Okno</translation>
+    </message>
+    <message>
+        <source>&amp;Minimize</source>
+        <translation>&amp;Minimalizuj</translation>
+    </message>
+    <message>
         <source>&amp;Stop</source>
         <translation>&amp;Zatrzymaj</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="292"/>
         <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="307"/>
+        <source>P&amp;revious</source>
+        <translation>P&amp;oprzedni</translation>
+    </message>
+    <message>
+        <source>Go back to the previous track</source>
+        <translation>Wróć do poprzedniej ścieżki</translation>
+    </message>
+    <message>
         <source>S&amp;kip</source>
         <translation>Prze&amp;skocz dalej</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="308"/>
         <source>Skip to the next video</source>
         <translation>Przejdź do następnego pliku wideo</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1134"/>
-        <source>&amp;Pause</source>
-        <translation>&amp;Pauza</translation>
+        <source>&amp;Play</source>
+        <translation>&amp;Graj</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1135"/>
-        <source>Pause playback</source>
-        <translation>Wstrzymaj odtwarzanie</translation>
+        <source>Resume playback</source>
+        <translation>Przywróć odtwarzanie</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="321"/>
         <source>&amp;Full Screen</source>
         <translation>&amp;Pełny ekran</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="322"/>
         <source>Go full screen</source>
         <translation>Przełącz na pełny ekran</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="336"/>
+        <source>&amp;Compact Mode</source>
+        <translation>&amp;Tryb kompaktowy</translation>
+    </message>
+    <message>
         <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="349"/>
+        <source>Open the &amp;YouTube Page</source>
+        <translation>Otwórz stronę &amp;YouTube</translation>
+    </message>
+    <message>
         <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="356"/>
+        <source>Copy the YouTube &amp;Link</source>
+        <translation>Skopiuj &amp;link do strony Youtube</translation>
+    </message>
+    <message>
         <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="363"/>
+        <source>Copy the Video Stream &amp;URL</source>
+        <translation>Skopiuj &amp;URL strumienia wideo</translation>
+    </message>
+    <message>
         <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="370"/>
+        <source>Find Video &amp;Parts</source>
+        <translation>Znajdź części filmu</translation>
+    </message>
+    <message>
         <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="376"/>
         <source>&amp;Remove</source>
         <translation>&amp;Usuń</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="377"/>
         <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="383"/>
         <source>Move &amp;Up</source>
         <translation>Przesuń w &amp;Górę</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="384"/>
         <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="390"/>
         <source>Move &amp;Down</source>
         <translation>Przesuń w &amp;Dół</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="391"/>
         <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="402"/>
+        <source>&amp;Clear Recent Searches</source>
+        <translation>&amp;Wyczyść ostatnie wyszukiwania</translation>
+    </message>
+    <message>
         <source>Clear the search history. Cannot be undone.</source>
         <translation>Czyści historię wyszukiwania. Nieodwracalnie.</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="407"/>
         <source>&amp;Quit</source>
         <translation>&amp;Weź to wyłącz</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="410"/>
         <source>Bye</source>
         <translation>Narciarz</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="414"/>
         <source>&amp;Website</source>
         <translation>&amp;Wyświetl stronę</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="416"/>
         <source>%1 on the Web</source>
         <translation>%1 on the Web</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="422"/>
+        <source>Make a &amp;Donation</source>
+        <translation>Przekaż &amp;dotację</translation>
+    </message>
+    <message>
         <source>Please support the continued development of %1</source>
         <translation>Wesprzyj dalszy rozwój %1</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="427"/>
         <source>&amp;About</source>
         <translation>O &amp;Programie</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="429"/>
         <source>Info about %1</source>
         <translation>Informacje o %1</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="437"/>
         <source>Search</source>
         <translation>Szukaj</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="456"/>
         <source>Mute volume</source>
         <translation>Wycisz</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="490"/>
-        <location filename="src/mainwindow.cpp" line="1609"/>
+        <source>&amp;Manually Start Playing</source>
+        <translation>&amp;Ręczne rozpoczynanie odtwarzania</translation>
+    </message>
+    <message>
+        <source>Manually start playing videos</source>
+        <translation>Ręcznie odtwarzaj filmy</translation>
+    </message>
+    <message>
         <source>&amp;Downloads</source>
         <translation>&amp;Pobrane</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="491"/>
         <source>Show details about video downloads</source>
         <translation>Pokaż szczegóły o pobranych plikach</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="499"/>
         <source>&amp;Download</source>
         <translation>&amp;Pobierz</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="500"/>
         <source>Download the current video</source>
         <translation>Pobierz aktualny plik</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="510"/>
         <source>Take &amp;Snapshot</source>
-        <translation type="unfinished"/>
+        <translation>Wykonaj &amp;migawkę</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="517"/>
         <source>&amp;Subscribe to Channel</source>
         <translation>&amp;Subskrybuj kanał</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="525"/>
         <source>Share the current video using %1</source>
         <translation>Podziel się tym filmem przez %1</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="545"/>
         <source>&amp;Email</source>
         <translation>&amp;E-mail</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="546"/>
         <source>Email</source>
         <translation>e-mail</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="551"/>
         <source>&amp;Close</source>
         <translation>&amp;Zamknij</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="561"/>
         <source>&amp;Float on Top</source>
         <translation>&amp;Ustaw na wierzchu</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="566"/>
         <source>&amp;Adjust Window Size</source>
-        <translation type="unfinished"/>
+        <translation>&amp;Dopasuj rozmiar okna</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="571"/>
         <source>&amp;Stop After This Video</source>
         <translation>&amp;Zatrzymaj  po tym filmie</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="578"/>
         <source>&amp;Report an Issue...</source>
         <translation>Zgłoś problem...</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="582"/>
         <source>&amp;Refine Search...</source>
         <translation>&amp;Zawęź wyszukiwanie...</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="594"/>
         <source>More...</source>
         <translation>Więcej...</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="597"/>
         <source>&amp;Related Videos</source>
         <translation>Powiązane filmy</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="599"/>
         <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="605"/>
         <source>Open in &amp;Browser...</source>
-        <translation type="unfinished"/>
+        <translation>Otwórz w &amp;przeglądarce...</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="612"/>
-        <source>&amp;Love %1? Rate it!</source>
-        <translation>Uwie&amp;lbiasz %1? Oceń to!</translation>
+        <source>Restricted Mode</source>
+        <translation>Tryb zastrzeżony</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="633"/>
-        <source>&amp;Application</source>
-        <translation>&amp;Aplikacja</translation>
+        <source>Hide videos that may contain inappropriate content</source>
+        <translation>Ukryj filmy mogące zawierać nieodpowiednie treści</translation>
+    </message>
+    <message>
+        <source>&amp;Love %1? Rate it!</source>
+        <translation>Uwie&amp;lbiasz %1? Oceń to!</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="618"/>
         <source>Buy %1...</source>
         <translation>Kup%1</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="647"/>
+        <source>&amp;Application</source>
+        <translation>&amp;Aplikacja</translation>
+    </message>
+    <message>
         <source>&amp;Playback</source>
         <translation>&amp;Odtwarzanie</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="661"/>
         <source>&amp;Playlist</source>
         <translation>&amp;Lista odtwarzania</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="670"/>
         <source>&amp;Video</source>
         <translation>&amp;Wideo</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="686"/>
-        <source>&amp;View</source>
-        <translation>&amp;Widok</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="695"/>
         <source>&amp;Share</source>
         <translation>&amp;Podziel się</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="709"/>
+        <source>&amp;View</source>
+        <translation>&amp;Widok</translation>
+    </message>
+    <message>
         <source>&amp;Help</source>
         <translation>&amp;Halp znaczy pomoc</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="751"/>
         <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="1021"/>
-        <location filename="src/mainwindow.cpp" line="1027"/>
+        <source>Choose your content location</source>
+        <translation>Wybierz swoją lokalizację</translation>
+    </message>
+    <message>
         <source>Opening %1</source>
         <translation>Otwieranie %1</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1080"/>
         <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="1081"/>
         <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="1086"/>
         <source>Close and cancel download</source>
         <translation>Zamnij i anuluj pobieranie</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1087"/>
         <source>Wait for download to finish</source>
         <translation>Poczekaj na zakończenie pobierania</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1158"/>
-        <source>&amp;Loading...</source>
-        <translation type="unfinished"/>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="1264"/>
-        <source>Leave &amp;Full Screen</source>
-        <translation>Opuść pełny ekran (&amp;F)</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="1718"/>
-        <source>%1 version %2 is now available.</source>
-        <translation>Wersja %1 %2 jest dostępna</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="1722"/>
-        <source>Remind me later</source>
-        <translation>Przypomnij później</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="1723"/>
-        <source>Update</source>
-        <translation>Zaktualizuj</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="1127"/>
         <source>Error: %1</source>
         <translation>Błąd %1</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="300"/>
-        <source>P&amp;revious</source>
-        <translation>P&amp;oprzedni</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="301"/>
-        <source>Go back to the previous track</source>
-        <translation>Wróć do poprzedniej ścieżki</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="335"/>
-        <source>&amp;Compact Mode</source>
-        <translation>&amp;Tryb kompaktowy</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="348"/>
-        <source>Open the &amp;YouTube Page</source>
-        <translation>Otwórz stronę &amp;YouTube</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="355"/>
-        <source>Copy the YouTube &amp;Link</source>
-        <translation>Skopiuj &amp;link do strony Youtube</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="362"/>
-        <source>Copy the Video Stream &amp;URL</source>
-        <translation>Skopiuj &amp;URL strumienia wideo</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="369"/>
-        <source>Find Video &amp;Parts</source>
-        <translation>Znajdź części filmu</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="397"/>
-        <source>&amp;Clear Recent Searches</source>
-        <translation>&amp;Wyczyść ostatnie wyszukiwania</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="421"/>
-        <source>Make a &amp;Donation</source>
-        <translation>Przekaż &amp;dotację</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="483"/>
-        <source>&amp;Manually Start Playing</source>
-        <translation>&amp;Ręczne rozpoczynanie odtwarzania</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="484"/>
-        <source>Manually start playing videos</source>
-        <translation>Ręcznie odtwarzaj filmy</translation>
+        <source>&amp;Pause</source>
+        <translation>&amp;Pauza</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="847"/>
-        <source>Choose your content location</source>
-        <translation>Wybierz swoją lokalizację</translation>
+        <source>Pause playback</source>
+        <translation>Wstrzymaj odtwarzanie</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="314"/>
-        <location filename="src/mainwindow.cpp" line="1142"/>
-        <location filename="src/mainwindow.cpp" line="1150"/>
-        <source>&amp;Play</source>
-        <translation>&amp;Graj</translation>
+        <source>&amp;Loading...</source>
+        <translation>&amp;Wczytywanie...</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="315"/>
-        <location filename="src/mainwindow.cpp" line="1143"/>
-        <location filename="src/mainwindow.cpp" line="1151"/>
-        <source>Resume playback</source>
-        <translation>Przywróć odtwarzanie</translation>
+        <source>Leave &amp;Full Screen</source>
+        <translation>Opuść pełny ekran (&amp;F)</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1437"/>
         <source>Remaining time: %1</source>
         <translation>Pozostały czas: %1</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1528"/>
         <source>Volume at %1%</source>
         <translation>Głośność: %1%</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1534"/>
         <source>Volume is muted</source>
         <translation>Dźwięk wyciszony</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1537"/>
         <source>Volume is unmuted</source>
         <translation>Dźwięk przywrócony</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1548"/>
         <source>Maximum video definition set to %1</source>
         <translation>Maksymalna rozdzielczość wideo ustawiona na %1</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1595"/>
         <source>Your privacy is now safe</source>
         <translation>Twoja prywatność jest już bezpieczna</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1610"/>
         <source>Downloads complete</source>
         <translation>Pobieranie ukończone</translation>
     </message>
+    <message>
+        <source>%1 version %2 is now available.</source>
+        <translation>Wersja %1 %2 jest dostępna</translation>
+    </message>
+    <message>
+        <source>Remind me later</source>
+        <translation>Przypomnij później</translation>
+    </message>
+    <message>
+        <source>Update</source>
+        <translation>Zaktualizuj</translation>
+    </message>
 </context>
 <context>
     <name>MediaView</name>
     <message>
-        <location filename="src/mediaview.cpp" line="702"/>
         <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="710"/>
         <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="711"/>
         <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="800"/>
         <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="801"/>
         <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="833"/>
+        <source>Get the full version</source>
+        <translation>Zdobądź pełną wersję</translation>
+    </message>
+    <message>
         <source>Continue</source>
         <translation>Dalej</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="988"/>
+        <source>Downloading %1</source>
+        <translation>Pobieranie %1</translation>
+    </message>
+    <message>
         <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="1001"/>
         <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="1003"/>
         <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="1096"/>
         <source>Sent from %1</source>
         <translation>Przesłane od %1</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="1128"/>
         <source>Unsubscribe from %1</source>
         <translation>Usuń subskrypcje %1</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="1132"/>
         <source>Subscribe to %1</source>
         <translation>Subskrybuj %1</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="1166"/>
         <source>Unsubscribed from %1</source>
-        <translation type="unfinished"/>
+        <translation>Zaprzestano subskrybować %1</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="1169"/>
         <source>Subscribed to %1</source>
-        <translation type="unfinished"/>
-    </message>
-    <message>
-        <location filename="src/mediaview.cpp" line="808"/>
-        <source>Get the full version</source>
-        <translation>Zdobądź pełną wersję</translation>
-    </message>
-    <message>
-        <location filename="src/mediaview.cpp" line="847"/>
-        <source>Downloading %1</source>
-        <translation>Pobieranie %1</translation>
+        <translation>Zaczęto subskrypcję %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>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>%1 %2 jest dostępna. Aktualnie posiadasz %3.</translation>
     </message>
     <message>
-        <location filename="local/src/updatedialog.cpp" line="33"/>
         <source>Would you like to download it now?</source>
         <translation>Chcesz pobrać teraz?</translation>
     </message>
     <message>
-        <location filename="local/src/updatedialog.cpp" line="39"/>
         <source>Skip This Version</source>
         <translation>Pomiń tą wersję</translation>
     </message>
     <message>
-        <location filename="local/src/updatedialog.cpp" line="43"/>
         <source>Remind Me Later</source>
         <translation>Przypomnij mi później</translation>
     </message>
     <message>
-        <location filename="local/src/updatedialog.cpp" line="47"/>
         <source>Install Update</source>
         <translation>Instaluj aktualizację</translation>
     </message>
 <context>
     <name>PasteLineEdit</name>
     <message>
-        <location filename="local/src/pastelineedit.cpp" line="6"/>
         <source>Paste</source>
         <translation>Wklej</translation>
     </message>
 <context>
     <name>PlaylistItemDelegate</name>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="209"/>
         <source>%1 views</source>
         <translation>%1widziany</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="309"/>
         <source>%1 of %2 (%3) — %4</source>
         <translation>%1 z %2 (%3) — %4</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="316"/>
         <source>Preparing</source>
         <translation>Przygotowywanie</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="318"/>
         <source>Failed</source>
         <translation>Niepowodzenie</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="320"/>
         <source>Completed</source>
         <translation>Ukończone</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="322"/>
         <source>Stopped</source>
         <translation>Zatrzymano</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="358"/>
         <source>Stop downloading</source>
         <translation>Przerwij pobieranie</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="368"/>
         <source>Show in %1</source>
         <translation>Pokaż w %1</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="370"/>
         <source>Open parent folder</source>
         <translation>Otwórz katalog nadrzędny</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="379"/>
         <source>Restart downloading</source>
         <translation>Pobierz ponownie</translation>
     </message>
 <context>
     <name>PlaylistModel</name>
     <message>
-        <location filename="src/playlistmodel.cpp" line="70"/>
         <source>Searching...</source>
         <translation>Szukanie...</translation>
     </message>
     <message>
-        <location filename="src/playlistmodel.cpp" line="71"/>
         <source>Show %1 More</source>
         <translation>Pokaż kolejne %1</translation>
     </message>
     <message>
-        <location filename="src/playlistmodel.cpp" line="72"/>
         <source>No videos</source>
         <translation>Brak filmów</translation>
     </message>
     <message>
-        <location filename="src/playlistmodel.cpp" line="73"/>
         <source>No more videos</source>
         <translation>Nie ma więcej filmów</translation>
     </message>
 <context>
     <name>RefineSearchWidget</name>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="49"/>
         <source>Sort by</source>
         <translation>Sortuj według</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="53"/>
         <source>Relevance</source>
         <translation>Trafność</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="54"/>
-        <location filename="src/refinesearchwidget.cpp" line="69"/>
         <source>Date</source>
         <translation>Data</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="55"/>
         <source>View Count</source>
         <translation>Wyświetlenia</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="56"/>
         <source>Rating</source>
         <translation>Ocena</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="73"/>
         <source>Anytime</source>
         <translation>Kiedykolwiek</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="74"/>
         <source>Today</source>
         <translation>Dzisiaj</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="75"/>
         <source>7 Days</source>
         <translation>7 dni</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="76"/>
         <source>30 Days</source>
         <translation>30 dni</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="89"/>
         <source>Duration</source>
         <translation>Czas trwania</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="93"/>
-        <location filename="src/refinesearchwidget.cpp" line="119"/>
         <source>All</source>
         <translation>Wszystkie</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="94"/>
         <source>Short</source>
         <translation>Krótkie</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="95"/>
         <source>Medium</source>
         <translation>Średnie</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="96"/>
         <source>Long</source>
         <translation>Długie</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="99"/>
         <source>Less than 4 minutes</source>
         <translation>Krótsze niż 4 minuty</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="100"/>
         <source>Between 4 and 20 minutes</source>
         <translation>Pomiędzy 4 a 20 minut</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="101"/>
         <source>Longer than 20 minutes</source>
         <translation>Dłuższe niż 20 minut</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="115"/>
         <source>Quality</source>
         <translation>Jakość</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="120"/>
         <source>High Definition</source>
         <translation>Jakość HD</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="123"/>
         <source>720p or higher</source>
         <translation>720p lub wyższa</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="136"/>
         <source>Done</source>
         <translation>Zrobione</translation>
     </message>
 <context>
     <name>RegionsView</name>
     <message>
-        <location filename="src/regionsview.cpp" line="39"/>
         <source>Done</source>
         <translation>Zrobione</translation>
     </message>
 <context>
     <name>SearchLineEdit</name>
     <message>
-        <location filename="src/searchlineedit.cpp" line="55"/>
         <source>Search</source>
         <translation>Szukaj</translation>
     </message>
 <context>
     <name>SearchView</name>
     <message>
-        <location filename="src/searchview.cpp" line="83"/>
         <source>Welcome to &lt;a href=&apos;%1&apos;&gt;%2&lt;/a&gt;,</source>
         <translation>Witaj w &lt;a href=&apos;%1&apos;&gt;%2&lt;/a&gt;,</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="200"/>
-        <source>Get the full version</source>
-        <translation>Pobierz pełną wersję</translation>
-    </message>
-    <message>
-        <location filename="src/searchview.cpp" line="110"/>
         <source>Enter</source>
         <extracomment>&quot;Enter&quot;, as in &quot;type&quot;. The whole phrase says: &quot;Enter a keyword to start watching videos&quot;</extracomment>
         <translation>Zatwierdź</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="117"/>
         <source>a keyword</source>
         <translation>słowo kluczowe</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="118"/>
         <source>a channel</source>
         <translation>kanał</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="125"/>
         <source>to start watching videos.</source>
         <translation>aby rozpocząć oglądanie</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="156"/>
         <source>Watch</source>
         <translation>Oglądaj</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="174"/>
         <source>Recent keywords</source>
         <translation>Ostatnie wyszukiwania</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="186"/>
         <source>Recent channels</source>
         <translation>Ostatnie kanały</translation>
     </message>
+    <message>
+        <source>Get the full version</source>
+        <translation>Pobierz pełną wersję</translation>
+    </message>
 </context>
 <context>
     <name>SidebarHeader</name>
     <message>
-        <location filename="src/sidebarheader.cpp" line="38"/>
-        <location filename="src/sidebarheader.cpp" line="45"/>
         <source>&amp;Back</source>
         <translation>&amp;Wstecz</translation>
     </message>
     <message>
-        <location filename="src/sidebarheader.cpp" line="76"/>
         <source>Forward to %1</source>
         <translation>Idź do %1</translation>
     </message>
     <message>
-        <location filename="src/sidebarheader.cpp" line="89"/>
         <source>Back to %1</source>
         <translation>Powróć do %1</translation>
     </message>
 <context>
     <name>SidebarWidget</name>
     <message>
-        <location filename="src/sidebarwidget.cpp" line="68"/>
         <source>Refine Search</source>
         <translation>Zawęź wyszukiwanie</translation>
     </message>
     <message>
-        <location filename="src/sidebarwidget.cpp" line="167"/>
         <source>Did you mean: %1</source>
         <translation>Masz na myśli: %1</translation>
     </message>
 <context>
     <name>SnapshotSettings</name>
     <message>
-        <location filename="src/snapshotsettings.cpp" line="47"/>
         <source>Change location...</source>
         <translation>Zmień katalog pobierania...</translation>
     </message>
     <message>
-        <location filename="src/snapshotsettings.cpp" line="64"/>
         <source>Snapshot saved to %1</source>
-        <translation type="unfinished"/>
+        <translation>Migawka zapisana do %1</translation>
     </message>
     <message>
-        <location filename="src/snapshotsettings.cpp" line="117"/>
         <source>Snapshots location changed.</source>
-        <translation type="unfinished"/>
+        <translation>Zmieniono katalog zapisywania migawek.</translation>
     </message>
 </context>
 <context>
     <name>StandardFeedsView</name>
     <message>
-        <location filename="src/standardfeedsview.cpp" line="107"/>
         <source>Most Popular</source>
         <translation>Najpopularniejsze</translation>
     </message>
 </context>
+<context>
+    <name>UpdateDialog</name>
+    <message>
+        <source>Downloading update...</source>
+        <translation>Pobieranie aktualizacji...</translation>
+    </message>
+    <message>
+        <source>Downloading %1...</source>
+        <translation>Pobieranie %1...</translation>
+    </message>
+</context>
 <context>
     <name>Video</name>
     <message>
-        <location filename="src/video.cpp" line="287"/>
         <source>Cannot get video stream for %1</source>
         <translation>Strumieniowanie %1 nie powiodło się</translation>
     </message>
-    <message>
-        <location filename="src/video.cpp" line="292"/>
-        <source>Network error: %1 for %2</source>
-        <translation>Błąd sieci: %1 dla %2</translation>
-    </message>
 </context>
 <context>
     <name>YTRegions</name>
     <message>
-        <location filename="src/ytregions.cpp" line="28"/>
         <source>Algeria</source>
         <translation>Algieria</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="29"/>
         <source>Argentina</source>
         <translation>Argentyna</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="30"/>
         <source>Australia</source>
         <translation>Australia</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="31"/>
         <source>Belgium</source>
         <translation>Belgia</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="32"/>
         <source>Brazil</source>
         <translation>Brazylia</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="33"/>
         <source>Canada</source>
         <translation>Kanada</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="34"/>
         <source>Chile</source>
         <translation>Chile</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="35"/>
         <source>Colombia</source>
         <translation>Kolumbia</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="36"/>
         <source>Czech Republic</source>
         <translation>Czechy</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="37"/>
         <source>Egypt</source>
         <translation>Egipt</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="38"/>
         <source>France</source>
         <translation>Francja</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="39"/>
         <source>Germany</source>
         <translation>Niemcy</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="40"/>
         <source>Ghana</source>
         <translation>Ghana</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="41"/>
         <source>Greece</source>
         <translation>Grecja</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="42"/>
         <source>Hong Kong</source>
         <translation>Hong Kong</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="43"/>
         <source>Hungary</source>
         <translation>Węgry</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="44"/>
         <source>India</source>
         <translation>Indie</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="45"/>
         <source>Indonesia</source>
         <translation>Indonezja</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="46"/>
         <source>Ireland</source>
         <translation>Irlandia</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="47"/>
         <source>Israel</source>
         <translation>Izrael</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="48"/>
         <source>Italy</source>
         <translation>Włochy</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="49"/>
         <source>Japan</source>
         <translation>Japonia</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="50"/>
         <source>Jordan</source>
         <translation>Jordania</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="51"/>
         <source>Kenya</source>
         <translation>Kenia</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="52"/>
         <source>Malaysia</source>
         <translation>Malezja</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="53"/>
         <source>Mexico</source>
         <translation>Meksyk</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="54"/>
         <source>Morocco</source>
         <translation>Maroko</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="55"/>
         <source>Netherlands</source>
         <translation>Holandia</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="56"/>
         <source>New Zealand</source>
         <translation>Nowa Zelandia</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="57"/>
         <source>Nigeria</source>
         <translation>Nigeria</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="58"/>
         <source>Peru</source>
         <translation>Peru</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="59"/>
         <source>Philippines</source>
         <translation>Filipiny</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="60"/>
         <source>Poland</source>
         <translation>Polska</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="61"/>
         <source>Russia</source>
         <translation>Rosja</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="62"/>
         <source>Saudi Arabia</source>
         <translation>Arabia Saudyjska</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="63"/>
         <source>Singapore</source>
         <translation>Singapur</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="64"/>
         <source>South Africa</source>
         <translation>Południowa Afryka</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="65"/>
         <source>South Korea</source>
         <translation>Korea Południowa</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="66"/>
         <source>Spain</source>
         <translation>Hiszpania</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="67"/>
         <source>Sweden</source>
         <translation>Szwecja</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="68"/>
         <source>Taiwan</source>
         <translation>Tajwan</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="69"/>
         <source>Tunisia</source>
         <translation>Tunezja</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="70"/>
         <source>Turkey</source>
         <translation>Turcja</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="71"/>
         <source>Uganda</source>
         <translation>Uganda</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="72"/>
         <source>United Arab Emirates</source>
         <translation>Zjednoczone Emiraty Arabskie</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="73"/>
         <source>United Kingdom</source>
         <translation>Wielka Brytania</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="74"/>
         <source>Yemen</source>
         <translation>Jemen</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="148"/>
         <source>Worldwide</source>
         <translation>Ogólnoświatowy</translation>
     </message>
index b3e8dd17c14b76f6bd0e5fefd9b7a3166367537b..8cd19c12938937c20923262f6fee9e442a993b74 100644 (file)
@@ -2,67 +2,42 @@
 <context>
     <name>AboutView</name>
     <message>
-        <location filename="src/aboutview.cpp" line="58"/>
         <source>There&apos;s life outside the browser!</source>
         <translation>Existe vida para além do navegador!</translation>
     </message>
     <message>
-        <location filename="src/aboutview.cpp" line="59"/>
         <source>Version %1</source>
         <translation>Versão %1</translation>
     </message>
     <message>
-        <location filename="src/aboutview.cpp" line="64"/>
         <source>Licensed to: %1</source>
         <translation>Licenciado a: %1</translation>
     </message>
     <message>
-        <location filename="src/aboutview.cpp" line="68"/>
         <source>%1 is Free Software but its development takes precious time.</source>
         <translation>%1 é um programa livre mas o seu desenvolvimento ocupa tempo precioso.</translation>
     </message>
     <message>
-        <location filename="src/aboutview.cpp" line="69"/>
         <source>Please &lt;a href=&apos;%1&apos;&gt;donate&lt;/a&gt; to support the continued development of %2.</source>
         <translation>Efetue um&lt;a href=&apos;%1&apos;&gt;donativo&lt;/a&gt; para ajudar no desenvolvimento do %2.</translation>
     </message>
     <message>
-        <location filename="src/aboutview.cpp" line="73"/>
-        <source>You may want to try my other apps as well:</source>
-        <translation>Também pode experimentar as minhas outras aplicações:</translation>
-    </message>
-    <message>
-        <location filename="src/aboutview.cpp" line="76"/>
-        <source>%1, a YouTube music player</source>
-        <translation>%1, um leitor de música YouTube</translation>
-    </message>
-    <message>
-        <location filename="src/aboutview.cpp" line="80"/>
-        <source>%1, a music player</source>
-        <translation>%1, um reprodutor de músicas</translation>
-    </message>
-    <message>
-        <location filename="src/aboutview.cpp" line="86"/>
         <source>Translate %1 to your native language using %2</source>
         <translation>Ajude a traduzir o %1 através do %2</translation>
     </message>
     <message>
-        <location filename="src/aboutview.cpp" line="91"/>
         <source>Icon designed by %1.</source>
         <translation>Ícone criado por %1.</translation>
     </message>
     <message>
-        <location filename="src/aboutview.cpp" line="95"/>
         <source>Released under the &lt;a href=&apos;%1&apos;&gt;GNU General Public License&lt;/a&gt;</source>
         <translation>Disponibilizado nos ternmos da &lt;a href=&apos;&quot;%1&apos;&gt;GNU General Public License&lt;/a&gt;</translation>
     </message>
     <message>
-        <location filename="src/aboutview.cpp" line="110"/>
         <source>&amp;Close</source>
         <translation>Fe&amp;char</translation>
     </message>
     <message>
-        <location filename="src/aboutview.h" line="40"/>
         <source>About</source>
         <translation>Sobre</translation>
     </message>
 <context>
     <name>ActivationDialog</name>
     <message>
-        <location filename="local/src/activationdialog.cpp" line="17"/>
         <source>Enter your License Details</source>
         <translation>Introduza os detalhes da licença</translation>
     </message>
     <message>
-        <location filename="local/src/activationdialog.cpp" line="29"/>
         <source>&amp;Email:</source>
         <translation>&amp;Endereço eletrónico:</translation>
     </message>
     <message>
-        <location filename="local/src/activationdialog.cpp" line="35"/>
         <source>&amp;Code:</source>
         <translation>&amp;Código:</translation>
     </message>
 <context>
     <name>ActivationView</name>
     <message>
-        <location filename="local/src/activationview.cpp" line="47"/>
         <source>Please license %1</source>
         <translation>Por favor licencie o %1</translation>
     </message>
     <message>
-        <location filename="local/src/activationview.cpp" line="51"/>
         <source>This demo has expired.</source>
         <translation>Esta demo expirou.</translation>
     </message>
     <message>
-        <location filename="local/src/activationview.cpp" line="53"/>
         <source>The full version allows you to watch videos without interruptions.</source>
-        <oldsource>The full version allows you to download videos longer than %1 minutes and to watch videos without interruptions.</oldsource>
         <translation>A versão compreta permite-lhe ver vídeos 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>Sem uma licença, esta apliacação expirará em %1 dias.</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>Ao comprar a versão completa, estará a ajudar no desenvolvimento do %1.</translation>
     </message>
     <message>
-        <location filename="local/src/activationview.cpp" line="70"/>
         <source>Use Demo</source>
         <translation>Utilizar demo</translation>
     </message>
     <message>
-        <location filename="local/src/activationview.cpp" line="77"/>
         <source>Enter License</source>
         <translation>Introduzir licença</translation>
     </message>
     <message>
-        <location filename="local/src/activationview.cpp" line="85"/>
         <source>Buy License</source>
         <translation>Comprar licença</translation>
     </message>
 </context>
+<context>
+    <name>AppWidget</name>
+    <message>
+        <source>Download</source>
+        <translation type="unfinished"/>
+    </message>
+</context>
 <context>
     <name>ChannelAggregator</name>
     <message>
-        <location filename="src/channelaggregator.cpp" line="183"/>
         <source>By %1</source>
         <translation>De %1</translation>
     </message>
     <message numerus="yes">
-        <location filename="src/channelaggregator.cpp" line="185"/>
         <source>You have %n new video(s)</source>
         <translation type="unfinished"><numerusform></numerusform><numerusform></numerusform></translation>
     </message>
 <context>
     <name>ChannelItemDelegate</name>
     <message>
-        <location filename="src/channelitemdelegate.cpp" line="67"/>
         <source>All Videos</source>
         <translation>Todos os vídeos</translation>
     </message>
     <message>
-        <location filename="src/channelitemdelegate.cpp" line="85"/>
         <source>Unwatched Videos</source>
         <translation>Vídeos não vistos</translation>
     </message>
 <context>
     <name>ChannelView</name>
     <message>
-        <location filename="src/channelview.cpp" line="151"/>
-        <source>Mark all as watched</source>
-        <translation>Marcar como visto</translation>
-    </message>
-    <message>
-        <location filename="src/channelview.cpp" line="159"/>
-        <source>Show Updated</source>
-        <translation>Mostrar atualizados</translation>
-    </message>
-    <message>
-        <location filename="src/channelview.cpp" line="103"/>
         <source>Name</source>
         <translation>Nome</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="110"/>
         <source>Last Updated</source>
         <translation>Última atualização</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="117"/>
         <source>Last Added</source>
         <translation>Última adição</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="124"/>
         <source>Last Watched</source>
         <translation>Últimos vistos</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="131"/>
         <source>Most Watched</source>
         <translation>Mais vistos</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="139"/>
         <source>Sort by</source>
         <translation>Ordenar por</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="222"/>
+        <source>Mark all as watched</source>
+        <translation>Marcar como visto</translation>
+    </message>
+    <message>
+        <source>Show Updated</source>
+        <translation>Mostrar atualizados</translation>
+    </message>
+    <message>
         <source>All Videos</source>
         <translation>Todos os vídeos</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="226"/>
         <source>Unwatched Videos</source>
         <translation>Vídeos não vistos</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="244"/>
         <source>Mark as Watched</source>
         <translation>Marcar como visto</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="257"/>
         <source>Unsubscribe</source>
         <translation>Cancelar subscrição</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="270"/>
         <source>There are no updated subscriptions at this time.</source>
         <translation>Não existem atualizações de subscrições.</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="272"/>
         <source>You have no subscriptions. Use the star symbol to subscribe to channels.</source>
         <translation>Ainda não possui subscrições. Utilize a estrela para subscrever os canais.</translation>
     </message>
 <context>
     <name>ClearButton</name>
     <message>
-        <location filename="src/exlineedit.cpp" line="6"/>
         <source>Clear</source>
         <translation>Limpar</translation>
     </message>
 <context>
     <name>DataUtils</name>
     <message>
-        <location filename="src/datautils.cpp" line="88"/>
         <source>Just now</source>
         <translation>Agora mesmo</translation>
     </message>
     <message numerus="yes">
-        <location filename="src/datautils.cpp" line="90"/>
-        <source>%n minute(s) ago</source>
-        <translation type="unfinished"><numerusform></numerusform><numerusform></numerusform></translation>
-    </message>
-    <message numerus="yes">
-        <location filename="src/datautils.cpp" line="92"/>
         <source>%n hour(s) ago</source>
         <translation type="unfinished"><numerusform></numerusform><numerusform></numerusform></translation>
     </message>
     <message numerus="yes">
-        <location filename="src/datautils.cpp" line="94"/>
         <source>%n day(s) ago</source>
         <translation type="unfinished"><numerusform></numerusform><numerusform></numerusform></translation>
     </message>
     <message numerus="yes">
-        <location filename="src/datautils.cpp" line="96"/>
         <source>%n weeks(s) ago</source>
         <translation type="unfinished"><numerusform></numerusform><numerusform></numerusform></translation>
     </message>
     <message numerus="yes">
-        <location filename="src/datautils.cpp" line="98"/>
         <source>%n month(s) ago</source>
         <translation type="unfinished"><numerusform></numerusform><numerusform></numerusform></translation>
     </message>
 <context>
     <name>DownloadItem</name>
     <message>
-        <location filename="src/downloaditem.cpp" line="406"/>
         <source>bytes</source>
         <translation>bytes</translation>
     </message>
     <message>
-        <location filename="src/downloaditem.cpp" line="409"/>
         <source>KB</source>
         <translation>KB</translation>
     </message>
     <message>
-        <location filename="src/downloaditem.cpp" line="412"/>
         <source>MB</source>
         <translation>MB</translation>
     </message>
     <message>
-        <location filename="src/downloaditem.cpp" line="421"/>
         <source>bytes/sec</source>
         <translation>bytes/seg</translation>
     </message>
     <message>
-        <location filename="src/downloaditem.cpp" line="424"/>
         <source>KB/sec</source>
         <translation>KB/seg</translation>
     </message>
     <message>
-        <location filename="src/downloaditem.cpp" line="427"/>
         <source>MB/sec</source>
         <translation>MB/seg</translation>
     </message>
     <message>
-        <location filename="src/downloaditem.cpp" line="433"/>
         <source>seconds</source>
         <translation>segundos</translation>
     </message>
     <message>
-        <location filename="src/downloaditem.cpp" line="436"/>
         <source>minutes</source>
         <translation>minutos</translation>
     </message>
     <message>
-        <location filename="src/downloaditem.cpp" line="439"/>
         <source>%4 %5 remaining</source>
         <translation>%4 %5 restante</translation>
     </message>
 <context>
     <name>DownloadManager</name>
     <message>
-        <location filename="src/downloadmanager.cpp" line="77"/>
         <source>This is just the demo version of %1.</source>
         <translation>Esta é uma versão de demonstração do %1.</translation>
     </message>
     <message>
-        <location filename="src/downloadmanager.cpp" line="79"/>
         <source>It can only download videos shorter than %1 minutes so you can test the download functionality.</source>
         <translation>Apenas pode transferir vídeos mais curtos que %1 minuto(s) de forma a testar a funcionalidade de transferência.</translation>
     </message>
     <message>
-        <location filename="src/downloadmanager.cpp" line="85"/>
         <source>Continue</source>
         <translation>Continuar</translation>
     </message>
     <message>
-        <location filename="src/downloadmanager.cpp" line="86"/>
         <source>Get the full version</source>
         <translation>Obter a versão completa</translation>
     </message>
     <message>
-        <location filename="src/downloadmanager.cpp" line="157"/>
         <source>%1 downloaded in %2</source>
         <translation>%1 transferência em %2</translation>
     </message>
     <message>
-        <location filename="src/downloadmanager.cpp" line="160"/>
         <source>Download finished</source>
         <translation>Transferência terminada</translation>
     </message>
     <message numerus="yes">
-        <location filename="src/downloadmanager.cpp" line="165"/>
         <source>%n Download(s)</source>
         <translation type="unfinished"><numerusform></numerusform><numerusform></numerusform></translation>
     </message>
 <context>
     <name>DownloadSettings</name>
     <message>
-        <location filename="src/downloadsettings.cpp" line="36"/>
         <source>Change location...</source>
         <translation>Mudar localização...</translation>
     </message>
     <message>
-        <location filename="src/downloadsettings.cpp" line="69"/>
         <source>Choose the download location</source>
         <translation>Escolha a localização da transferência</translation>
     </message>
     <message>
-        <location filename="src/downloadsettings.cpp" line="81"/>
         <source>Download location changed.</source>
         <translation>Localização alterada.</translation>
     </message>
     <message>
-        <location filename="src/downloadsettings.cpp" line="83"/>
         <source>Current downloads will still go in the previous location.</source>
         <translation>As transferências atuais serão colocadas na localização anterior.</translation>
     </message>
     <message>
-        <location filename="src/downloadsettings.cpp" line="94"/>
         <source>Downloading to: %1</source>
         <translation>Transferência em: %1</translation>
     </message>
 <context>
     <name>DownloadView</name>
     <message>
-        <location filename="src/downloadview.cpp" line="38"/>
-        <location filename="src/downloadview.h" line="45"/>
         <source>Downloads</source>
         <translation>Transferências</translation>
     </message>
 </context>
-<context>
-    <name>DownloadWidget</name>
-    <message>
-        <location filename="local/src/updatedialog.cpp" line="60"/>
-        <source>Downloading update...</source>
-        <translation>Transferência da atualizaçao...</translation>
-    </message>
-</context>
 <context>
     <name>Extra</name>
     <message>
-        <location filename="local/src/extra.cpp" line="251"/>
         <source>The executable file has been tempered with, maybe by a virus.</source>
         <translation>O arquivo executável foi temperada com, talvez por um vírus.</translation>
     </message>
     <message>
-        <location filename="local/src/extra.cpp" line="252"/>
         <source>%1 will not run. Try installing again.</source>
         <translation>%1 não será executado. Tente instalar novamente.</translation>
     </message>
     <message>
-        <location filename="local/src/extra.cpp" line="253"/>
         <source>Quit</source>
         <translation>Sair</translation>
     </message>
     <message>
-        <location filename="local/src/extra.cpp" line="254"/>
         <source>Reinstall</source>
         <translation>Reinstalar</translation>
     </message>
 <context>
     <name>GlobalShortcuts</name>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="36"/>
         <source>Play</source>
         <translation>Reproduzir</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="37"/>
         <source>Pause</source>
         <translation>Pausa</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="38"/>
         <source>Play/Pause</source>
         <translation>Reproduzir/Pausa</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="39"/>
         <source>Stop</source>
         <translation>Parar</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="40"/>
         <source>Stop playing after current track</source>
         <translation>Parar reprodução após a faixa atual</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="41"/>
         <source>Next track</source>
         <translation>Próxima faixa</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="42"/>
         <source>Previous track</source>
         <translation>Faixa anterior</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="43"/>
         <source>Increase volume</source>
         <translation>Aumentar volume</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="44"/>
         <source>Decrease volume</source>
         <translation>Diminuir volume</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="45"/>
         <source>Mute</source>
         <translation>Silenciar</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="46"/>
         <source>Seek forward</source>
         <translation>Avançar</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="47"/>
         <source>Seek backward</source>
         <translation>Recuar</translation>
     </message>
 <context>
     <name>HomeView</name>
     <message>
-        <location filename="src/homeview.cpp" line="58"/>
         <source>Search</source>
         <translation>Procurar</translation>
     </message>
     <message>
-        <location filename="src/homeview.cpp" line="60"/>
         <source>Find videos and channels by keyword</source>
         <translation>Localizar vídeos de canais por palavra-chave</translation>
     </message>
     <message>
-        <location filename="src/homeview.cpp" line="65"/>
         <source>Browse</source>
         <translation>Explorar</translation>
     </message>
     <message>
-        <location filename="src/homeview.cpp" line="67"/>
         <source>Browse videos by category</source>
         <translation>Explorar vídeos por categoria</translation>
     </message>
     <message>
-        <location filename="src/homeview.cpp" line="71"/>
         <source>Subscriptions</source>
         <translation>Subscrições</translation>
     </message>
     <message>
-        <location filename="src/homeview.cpp" line="73"/>
         <source>Channel subscriptions</source>
         <translation>Subscrições de canais</translation>
     </message>
     <message>
-        <location filename="src/homeview.h" line="44"/>
         <source>Make yourself comfortable</source>
         <translation>Ponha-se confortável</translation>
     </message>
 <context>
     <name>LoadingWidget</name>
     <message>
-        <location filename="src/loadingwidget.cpp" line="125"/>
         <source>Error</source>
         <translation>Erro</translation>
     </message>
 <context>
     <name>MainWindow</name>
     <message>
-        <location filename="src/mainwindow.cpp" line="291"/>
+        <source>&amp;Window</source>
+        <translation>&amp;Janela</translation>
+    </message>
+    <message>
+        <source>&amp;Minimize</source>
+        <translation>&amp;Minimizar</translation>
+    </message>
+    <message>
         <source>&amp;Stop</source>
         <translation>Para&amp;r</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="292"/>
         <source>Stop playback and go back to the search view</source>
         <translation>Parar reprodução e voltar à vista de procura</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="307"/>
+        <source>P&amp;revious</source>
+        <translation>&amp;Anterior</translation>
+    </message>
+    <message>
+        <source>Go back to the previous track</source>
+        <translation>Ir para a faixa anterior</translation>
+    </message>
+    <message>
         <source>S&amp;kip</source>
         <translation>I&amp;gnorar</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="308"/>
         <source>Skip to the next video</source>
         <translation>Ir para o próximo vídeo</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1134"/>
-        <source>&amp;Pause</source>
-        <translation>&amp;Pausa</translation>
+        <source>&amp;Play</source>
+        <translation>Re&amp;produzir</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1135"/>
-        <source>Pause playback</source>
-        <translation>Pausar reprodução</translation>
+        <source>Resume playback</source>
+        <translation>Retomar reprodução</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="321"/>
         <source>&amp;Full Screen</source>
         <translation>&amp;Ecrã completo</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="322"/>
         <source>Go full screen</source>
         <translation>Modo de ecrã completo</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="336"/>
+        <source>&amp;Compact Mode</source>
+        <translation>Modo &amp;compacto</translation>
+    </message>
+    <message>
         <source>Hide the playlist and the toolbar</source>
         <translation>Ocultar lista de reprodução e barra de ferramentas</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="349"/>
+        <source>Open the &amp;YouTube Page</source>
+        <translation>Abrir a página &amp;YouTube</translation>
+    </message>
+    <message>
         <source>Go to the YouTube video page and pause playback</source>
         <translation>Ir para a página do Youtube e parar a reprodução</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="356"/>
+        <source>Copy the YouTube &amp;Link</source>
+        <translation>Copiar &amp;ligação do YouTube</translation>
+    </message>
+    <message>
         <source>Copy the current video YouTube link to the clipboard</source>
         <translation>Copiar ligação do atual vídeo Youtube para a área de transferência</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="363"/>
+        <source>Copy the Video Stream &amp;URL</source>
+        <translation>Copiar &amp;URL da emissão</translation>
+    </message>
+    <message>
         <source>Copy the current video stream URL to the clipboard</source>
         <translation>Copiar URL da emissão atual para a área de transferência</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="370"/>
+        <source>Find Video &amp;Parts</source>
+        <translation>Localizar &amp;partes do vídeo</translation>
+    </message>
+    <message>
         <source>Find other video parts hopefully in the right order</source>
         <translation>Localizar outras partes do vídeo pela ordem correta</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="376"/>
         <source>&amp;Remove</source>
         <translation>&amp;Remover</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="377"/>
         <source>Remove the selected videos from the playlist</source>
         <translation>Remover os vídeos selecionados da lista de reprodução</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="383"/>
         <source>Move &amp;Up</source>
         <translation>Mover para &amp;cima</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="384"/>
         <source>Move up the selected videos in the playlist</source>
         <translation>Mover para cima os vídeos selecionados</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="390"/>
         <source>Move &amp;Down</source>
         <translation>Mover para &amp;baixo</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="391"/>
         <source>Move down the selected videos in the playlist</source>
         <translation>Mover para baixo os vídeos selecionados</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="402"/>
+        <source>&amp;Clear Recent Searches</source>
+        <translation>Limpar procuras re&amp;centes</translation>
+    </message>
+    <message>
         <source>Clear the search history. Cannot be undone.</source>
         <translation>Limpar histório de procura. Não pode ser anulado.</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="407"/>
         <source>&amp;Quit</source>
         <translation>&amp;Sair</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="410"/>
         <source>Bye</source>
         <translation>Adeus</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="414"/>
         <source>&amp;Website</source>
         <translation>Sítio &amp;web</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="416"/>
         <source>%1 on the Web</source>
         <translation>%1 na web</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="422"/>
+        <source>Make a &amp;Donation</source>
+        <translation>Efetuar &amp;donativo</translation>
+    </message>
+    <message>
         <source>Please support the continued development of %1</source>
         <translation>Por favor ajude no desenvolvimento do %1</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="427"/>
         <source>&amp;About</source>
         <translation>&amp;Sobre</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="429"/>
         <source>Info about %1</source>
         <translation>Informações de %1</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="437"/>
         <source>Search</source>
         <translation>Procura</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="456"/>
         <source>Mute volume</source>
         <translation>Silenciar</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="490"/>
-        <location filename="src/mainwindow.cpp" line="1609"/>
+        <source>&amp;Manually Start Playing</source>
+        <translation>Iniciar reprodução &amp;manualmente</translation>
+    </message>
+    <message>
+        <source>Manually start playing videos</source>
+        <translation>Iniciar reprodução de vídeos manualmente</translation>
+    </message>
+    <message>
         <source>&amp;Downloads</source>
         <translation>&amp;Transferências</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="491"/>
         <source>Show details about video downloads</source>
         <translation>Mostar detalhes sobre a transferência de vídeos</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="499"/>
         <source>&amp;Download</source>
         <translation>&amp;Transferência</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="500"/>
         <source>Download the current video</source>
         <translation>Transferir o vídeo atual</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="510"/>
         <source>Take &amp;Snapshot</source>
         <translation>Take &amp;Snapshot</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="517"/>
         <source>&amp;Subscribe to Channel</source>
         <translation>&amp;Subscrever o canal</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="525"/>
         <source>Share the current video using %1</source>
         <translation>Partilhar o atual vídeo através do %1</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="545"/>
         <source>&amp;Email</source>
         <translation>&amp;Endereço eletrónico</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="546"/>
         <source>Email</source>
         <translation>Endereço eletrónico</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="551"/>
         <source>&amp;Close</source>
         <translation>Fe&amp;char</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="561"/>
         <source>&amp;Float on Top</source>
         <translation>&amp;Flutuante na frente</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="566"/>
         <source>&amp;Adjust Window Size</source>
         <translation>&amp;Ajuste o tamanho da janela</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="571"/>
         <source>&amp;Stop After This Video</source>
         <translation>Parar após es&amp;te vídeo</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="578"/>
         <source>&amp;Report an Issue...</source>
         <translation>&amp;Reportar um erro...</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="582"/>
         <source>&amp;Refine Search...</source>
         <translation>Melhorar proc&amp;ura...</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="594"/>
         <source>More...</source>
         <translation>Mais...</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="597"/>
         <source>&amp;Related Videos</source>
         <translation>Vídeos &amp;relacionados</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="599"/>
         <source>Watch videos related to the current one</source>
         <translation>Ver vídeos relacionados com o atual</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="605"/>
         <source>Open in &amp;Browser...</source>
         <translation>A&amp;brir no navegador...</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="612"/>
-        <source>&amp;Love %1? Rate it!</source>
-        <translation>&amp;Gosta? %1? Avalie!</translation>
+        <source>Restricted Mode</source>
+        <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="633"/>
-        <source>&amp;Application</source>
-        <translation>&amp;Aplicação</translation>
+        <source>Hide videos that may contain inappropriate content</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <source>&amp;Love %1? Rate it!</source>
+        <translation>&amp;Gosta? %1? Avalie!</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="618"/>
         <source>Buy %1...</source>
         <translation>Comprar %1...</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="647"/>
+        <source>&amp;Application</source>
+        <translation>&amp;Aplicação</translation>
+    </message>
+    <message>
         <source>&amp;Playback</source>
         <translation>Reprod&amp;ução</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="661"/>
         <source>&amp;Playlist</source>
         <translation>Lista de re&amp;produção</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="670"/>
         <source>&amp;Video</source>
         <translation>Víd&amp;eo</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="686"/>
-        <source>&amp;View</source>
-        <translation>&amp;Ver</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="695"/>
         <source>&amp;Share</source>
         <translation>Partil&amp;har</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="709"/>
+        <source>&amp;View</source>
+        <translation>&amp;Ver</translation>
+    </message>
+    <message>
         <source>&amp;Help</source>
         <translation>Aj&amp;uda</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="751"/>
         <source>Press %1 to raise the volume, %2 to lower it</source>
         <translation>Prima %1 para aumentar o volume, %2 para o reduzir</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1021"/>
-        <location filename="src/mainwindow.cpp" line="1027"/>
+        <source>Choose your content location</source>
+        <translation>Escolha a localização do conteúdo</translation>
+    </message>
+    <message>
         <source>Opening %1</source>
         <translation>A abrir %1</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1080"/>
         <source>Do you want to exit %1 with a download in progress?</source>
         <translation>Deseja sair do %1 com uma transferência ativa?</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1081"/>
         <source>If you close %1 now, this download will be cancelled.</source>
         <translation>Se fechar o %1, a transferência irá ser cancelada.</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1086"/>
         <source>Close and cancel download</source>
         <translation>Fechar e cancelar transferência</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1087"/>
         <source>Wait for download to finish</source>
         <translation>Esperar pelo fim da transferência</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1158"/>
-        <source>&amp;Loading...</source>
-        <translation>&amp;Carregando...</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="1264"/>
-        <source>Leave &amp;Full Screen</source>
-        <translation>Sair do modo de &amp;ecrã completo</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="1718"/>
-        <source>%1 version %2 is now available.</source>
-        <translation>Está disponível o %1 %2.</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="1722"/>
-        <source>Remind me later</source>
-        <translation>Lembrar mais tarde</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="1723"/>
-        <source>Update</source>
-        <translation>Atualizar</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="1127"/>
         <source>Error: %1</source>
         <translation>Erro:%1</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="300"/>
-        <source>P&amp;revious</source>
-        <translation>&amp;Anterior</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="301"/>
-        <source>Go back to the previous track</source>
-        <translation>Ir para a faixa anterior</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="335"/>
-        <source>&amp;Compact Mode</source>
-        <translation>Modo &amp;compacto</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="348"/>
-        <source>Open the &amp;YouTube Page</source>
-        <translation>Abrir a página &amp;YouTube</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="355"/>
-        <source>Copy the YouTube &amp;Link</source>
-        <translation>Copiar &amp;ligação do YouTube</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="362"/>
-        <source>Copy the Video Stream &amp;URL</source>
-        <translation>Copiar &amp;URL da emissão</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="369"/>
-        <source>Find Video &amp;Parts</source>
-        <translation>Localizar &amp;partes do vídeo</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="397"/>
-        <source>&amp;Clear Recent Searches</source>
-        <translation>Limpar procuras re&amp;centes</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="421"/>
-        <source>Make a &amp;Donation</source>
-        <translation>Efetuar &amp;donativo</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="483"/>
-        <source>&amp;Manually Start Playing</source>
-        <translation>Iniciar reprodução &amp;manualmente</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="484"/>
-        <source>Manually start playing videos</source>
-        <translation>Iniciar reprodução de vídeos manualmente</translation>
+        <source>&amp;Pause</source>
+        <translation>&amp;Pausa</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="847"/>
-        <source>Choose your content location</source>
-        <translation>Escolha a localização do conteúdo</translation>
+        <source>Pause playback</source>
+        <translation>Pausar reprodução</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="314"/>
-        <location filename="src/mainwindow.cpp" line="1142"/>
-        <location filename="src/mainwindow.cpp" line="1150"/>
-        <source>&amp;Play</source>
-        <translation>Re&amp;produzir</translation>
+        <source>&amp;Loading...</source>
+        <translation>&amp;Carregando...</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="315"/>
-        <location filename="src/mainwindow.cpp" line="1143"/>
-        <location filename="src/mainwindow.cpp" line="1151"/>
-        <source>Resume playback</source>
-        <translation>Retomar reprodução</translation>
+        <source>Leave &amp;Full Screen</source>
+        <translation>Sair do modo de &amp;ecrã completo</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1437"/>
         <source>Remaining time: %1</source>
         <translation>Tempo restante:%1</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1528"/>
         <source>Volume at %1%</source>
         <translation>Volume:%1%</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1534"/>
         <source>Volume is muted</source>
         <translation>Volume nulo</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1537"/>
         <source>Volume is unmuted</source>
         <translation>Volume restaurado</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1548"/>
         <source>Maximum video definition set to %1</source>
         <translation>Definição máxima do vídeo definida para %1</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1595"/>
         <source>Your privacy is now safe</source>
         <translation>A sua privacidade está agora assegurada</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1610"/>
         <source>Downloads complete</source>
         <translation>Transferências terminadas</translation>
     </message>
+    <message>
+        <source>%1 version %2 is now available.</source>
+        <translation>Está disponível o %1 %2.</translation>
+    </message>
+    <message>
+        <source>Remind me later</source>
+        <translation>Lembrar mais tarde</translation>
+    </message>
+    <message>
+        <source>Update</source>
+        <translation>Atualizar</translation>
+    </message>
 </context>
 <context>
     <name>MediaView</name>
     <message>
-        <location filename="src/mediaview.cpp" line="702"/>
         <source>You can now paste the YouTube link into another application</source>
         <translation>Agora pode colar a ligação YouTube em qualquer outra aplicação</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="710"/>
         <source>You can now paste the video stream URL into another application</source>
         <translation>Agora pode colar o URL do vídeo em qualquer outra aplicação</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="711"/>
         <source>The link will be valid only for a limited time.</source>
         <translation>A ligação será válida por tempo limitado.</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="800"/>
         <source>This is just the demo version of %1.</source>
         <translation>Esta é uma versão de demonstração do %1.</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="801"/>
         <source>It allows you to test the application and see if it works for you.</source>
         <translation>Permite-lhe testar ea aplicação e verificar se é do seu agrado.</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="833"/>
+        <source>Get the full version</source>
+        <translation>Obter a versão completa</translation>
+    </message>
+    <message>
         <source>Continue</source>
         <translation>Continuar</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="988"/>
+        <source>Downloading %1</source>
+        <translation>Transferência: %1</translation>
+    </message>
+    <message>
         <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="1001"/>
         <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="1003"/>
         <source>episode</source>
         <comment>This is for video parts, as in 'Cool series - episode 1'</comment>
         <translation>episódio</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="1096"/>
         <source>Sent from %1</source>
         <translation>Enviado de %1</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="1128"/>
         <source>Unsubscribe from %1</source>
         <translation>Cancelar subscrição de %1</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="1132"/>
         <source>Subscribe to %1</source>
         <translation>Subscrever %1</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="1166"/>
         <source>Unsubscribed from %1</source>
         <translation>Não subscrito de %1</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="1169"/>
         <source>Subscribed to %1</source>
         <translation>Subscrito %1</translation>
     </message>
-    <message>
-        <location filename="src/mediaview.cpp" line="808"/>
-        <source>Get the full version</source>
-        <translation>Obter a versão completa</translation>
-    </message>
-    <message>
-        <location filename="src/mediaview.cpp" line="847"/>
-        <source>Downloading %1</source>
-        <translation>Transferência: %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>Está disponível uma nova versão do %1!</translation>
     </message>
     <message>
-        <location filename="local/src/updatedialog.cpp" line="28"/>
         <source>%1 %2 is now available. You have %3.</source>
         <translation>O %1 %2 está disponível. A sua versão é a %3.</translation>
     </message>
     <message>
-        <location filename="local/src/updatedialog.cpp" line="33"/>
         <source>Would you like to download it now?</source>
         <translation>Gostaria de transferir a nova versão?</translation>
     </message>
     <message>
-        <location filename="local/src/updatedialog.cpp" line="39"/>
         <source>Skip This Version</source>
         <translation>Ignorar esta versão</translation>
     </message>
     <message>
-        <location filename="local/src/updatedialog.cpp" line="43"/>
         <source>Remind Me Later</source>
         <translation>Lembrar mais tarde</translation>
     </message>
     <message>
-        <location filename="local/src/updatedialog.cpp" line="47"/>
         <source>Install Update</source>
         <translation>Instalar atualização</translation>
     </message>
 <context>
     <name>PasteLineEdit</name>
     <message>
-        <location filename="local/src/pastelineedit.cpp" line="6"/>
         <source>Paste</source>
         <translation>Colar</translation>
     </message>
 <context>
     <name>PlaylistItemDelegate</name>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="209"/>
         <source>%1 views</source>
         <translation>%1 visualizações</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="309"/>
         <source>%1 of %2 (%3) — %4</source>
         <translation>%1 de %2 (%3) — %4</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="316"/>
         <source>Preparing</source>
         <translation>Preparação</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="318"/>
         <source>Failed</source>
         <translation>Falha</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="320"/>
         <source>Completed</source>
         <translation>Terminado</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="322"/>
         <source>Stopped</source>
         <translation>Parado</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="358"/>
         <source>Stop downloading</source>
         <translation>Parar transferência</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="368"/>
         <source>Show in %1</source>
         <translation>Mostrar em %1</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="370"/>
         <source>Open parent folder</source>
         <translation>Abrir pasta respetiva</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="379"/>
         <source>Restart downloading</source>
         <translation>Reiniciar transferência</translation>
     </message>
 <context>
     <name>PlaylistModel</name>
     <message>
-        <location filename="src/playlistmodel.cpp" line="70"/>
         <source>Searching...</source>
         <translation>Procura...</translation>
     </message>
     <message>
-        <location filename="src/playlistmodel.cpp" line="71"/>
         <source>Show %1 More</source>
         <translation>Mostrar mais %1</translation>
     </message>
     <message>
-        <location filename="src/playlistmodel.cpp" line="72"/>
         <source>No videos</source>
         <translation>Nenhum vídeo</translation>
     </message>
     <message>
-        <location filename="src/playlistmodel.cpp" line="73"/>
         <source>No more videos</source>
         <translation>Sem mais vídeos</translation>
     </message>
 <context>
     <name>RefineSearchWidget</name>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="49"/>
         <source>Sort by</source>
         <translation>Ordenar por</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="53"/>
         <source>Relevance</source>
         <translation>Relevância</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="54"/>
-        <location filename="src/refinesearchwidget.cpp" line="69"/>
         <source>Date</source>
         <translation>Data</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="55"/>
         <source>View Count</source>
         <translation>Visualizações</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="56"/>
         <source>Rating</source>
         <translation>Avaliação</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="73"/>
         <source>Anytime</source>
         <translation>Sempre</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="74"/>
         <source>Today</source>
         <translation>Hoje</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="75"/>
         <source>7 Days</source>
         <translation>7 dias</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="76"/>
         <source>30 Days</source>
         <translation>30 dias</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="89"/>
         <source>Duration</source>
         <translation>Duração</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="93"/>
-        <location filename="src/refinesearchwidget.cpp" line="119"/>
         <source>All</source>
         <translation>Todos</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="94"/>
         <source>Short</source>
         <translation>Curtos</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="95"/>
         <source>Medium</source>
         <translation>Normais</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="96"/>
         <source>Long</source>
         <translation>Longos</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="99"/>
         <source>Less than 4 minutes</source>
         <translation>Menos de 4 minutos</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="100"/>
         <source>Between 4 and 20 minutes</source>
         <translation>Entre 4 e 20 minutos</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="101"/>
         <source>Longer than 20 minutes</source>
         <translation>Mais do que 20 minutos</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="115"/>
         <source>Quality</source>
         <translation>Qualidade</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="120"/>
         <source>High Definition</source>
         <translation>Alta definição</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="123"/>
         <source>720p or higher</source>
         <translation>720p ou mais</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="136"/>
         <source>Done</source>
         <translation>Terminado</translation>
     </message>
 <context>
     <name>RegionsView</name>
     <message>
-        <location filename="src/regionsview.cpp" line="39"/>
         <source>Done</source>
         <translation>Terminado</translation>
     </message>
 <context>
     <name>SearchLineEdit</name>
     <message>
-        <location filename="src/searchlineedit.cpp" line="55"/>
         <source>Search</source>
         <translation>Procura</translation>
     </message>
 <context>
     <name>SearchView</name>
     <message>
-        <location filename="src/searchview.cpp" line="83"/>
         <source>Welcome to &lt;a href=&apos;%1&apos;&gt;%2&lt;/a&gt;,</source>
         <translation>Bem-vindo ao &lt;a href=&apos;%1&apos;&gt;%2&lt;/a&gt;</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="200"/>
-        <source>Get the full version</source>
-        <translation>Obter a versão completa</translation>
-    </message>
-    <message>
-        <location filename="src/searchview.cpp" line="110"/>
         <source>Enter</source>
         <extracomment>&quot;Enter&quot;, as in &quot;type&quot;. The whole phrase says: &quot;Enter a keyword to start watching videos&quot;</extracomment>
         <translation>Introduza</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="117"/>
         <source>a keyword</source>
         <translation>uma palavra-chave</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="118"/>
         <source>a channel</source>
         <translation>um canal</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="125"/>
         <source>to start watching videos.</source>
         <translation>para começar a visualizar os vídeos.</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="156"/>
         <source>Watch</source>
         <translation>Ver</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="174"/>
         <source>Recent keywords</source>
         <translation>Palavras-chave recentes</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="186"/>
         <source>Recent channels</source>
         <translation>Canais recentes</translation>
     </message>
+    <message>
+        <source>Get the full version</source>
+        <translation>Obter a versão completa</translation>
+    </message>
 </context>
 <context>
     <name>SidebarHeader</name>
     <message>
-        <location filename="src/sidebarheader.cpp" line="38"/>
-        <location filename="src/sidebarheader.cpp" line="45"/>
         <source>&amp;Back</source>
         <translation>&amp;Recuar</translation>
     </message>
     <message>
-        <location filename="src/sidebarheader.cpp" line="76"/>
         <source>Forward to %1</source>
         <translation>Avançar para %1</translation>
     </message>
     <message>
-        <location filename="src/sidebarheader.cpp" line="89"/>
         <source>Back to %1</source>
         <translation>Recuar para %1</translation>
     </message>
 <context>
     <name>SidebarWidget</name>
     <message>
-        <location filename="src/sidebarwidget.cpp" line="68"/>
         <source>Refine Search</source>
         <translation>Melhorar procura</translation>
     </message>
     <message>
-        <location filename="src/sidebarwidget.cpp" line="167"/>
         <source>Did you mean: %1</source>
         <translation>Será que queria dizer: %1</translation>
     </message>
 <context>
     <name>SnapshotSettings</name>
     <message>
-        <location filename="src/snapshotsettings.cpp" line="47"/>
         <source>Change location...</source>
         <translation>Mudar localização...</translation>
     </message>
     <message>
-        <location filename="src/snapshotsettings.cpp" line="64"/>
         <source>Snapshot saved to %1</source>
         <translation>Snapshot guardado em %1</translation>
     </message>
     <message>
-        <location filename="src/snapshotsettings.cpp" line="117"/>
         <source>Snapshots location changed.</source>
         <translation>Localização dos snapshots alterada.</translation>
     </message>
 <context>
     <name>StandardFeedsView</name>
     <message>
-        <location filename="src/standardfeedsview.cpp" line="107"/>
         <source>Most Popular</source>
         <translation>Mais populares</translation>
     </message>
 </context>
+<context>
+    <name>UpdateDialog</name>
+    <message>
+        <source>Downloading update...</source>
+        <translation>Transferência da atualizaçao...</translation>
+    </message>
+    <message>
+        <source>Downloading %1...</source>
+        <translation type="unfinished"/>
+    </message>
+</context>
 <context>
     <name>Video</name>
     <message>
-        <location filename="src/video.cpp" line="287"/>
         <source>Cannot get video stream for %1</source>
         <translation>Não é possível obter a emissão de %1</translation>
     </message>
-    <message>
-        <location filename="src/video.cpp" line="292"/>
-        <source>Network error: %1 for %2</source>
-        <translation>Erro de rede: %1 para %2</translation>
-    </message>
 </context>
 <context>
     <name>YTRegions</name>
     <message>
-        <location filename="src/ytregions.cpp" line="28"/>
         <source>Algeria</source>
         <translation>Argélia</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="29"/>
         <source>Argentina</source>
         <translation>Argentina</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="30"/>
         <source>Australia</source>
         <translation>Austrália</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="31"/>
         <source>Belgium</source>
         <translation>Bélgica</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="32"/>
         <source>Brazil</source>
         <translation>Brasil</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="33"/>
         <source>Canada</source>
         <translation>Canadá</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="34"/>
         <source>Chile</source>
         <translation>Chile</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="35"/>
         <source>Colombia</source>
         <translation>Colômbia</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="36"/>
         <source>Czech Republic</source>
         <translation>República Checa</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="37"/>
         <source>Egypt</source>
         <translation>Egito</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="38"/>
         <source>France</source>
         <translation>França</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="39"/>
         <source>Germany</source>
         <translation>Alemanha</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="40"/>
         <source>Ghana</source>
         <translation>Gana</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="41"/>
         <source>Greece</source>
         <translation>Grécia</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="42"/>
         <source>Hong Kong</source>
         <translation>Hong Kong</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="43"/>
         <source>Hungary</source>
         <translation>Húngria</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="44"/>
         <source>India</source>
         <translation>Índia</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="45"/>
         <source>Indonesia</source>
         <translation>Indonésia</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="46"/>
         <source>Ireland</source>
         <translation>Irlanda</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="47"/>
         <source>Israel</source>
         <translation>Israel</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="48"/>
         <source>Italy</source>
         <translation>Itália</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="49"/>
         <source>Japan</source>
         <translation>Japão</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="50"/>
         <source>Jordan</source>
         <translation>Jordânia</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="51"/>
         <source>Kenya</source>
         <translation>Quénia</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="52"/>
         <source>Malaysia</source>
         <translation>Malásia</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="53"/>
         <source>Mexico</source>
         <translation>México</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="54"/>
         <source>Morocco</source>
         <translation>Marrocos</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="55"/>
         <source>Netherlands</source>
         <translation>Países Baixos</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="56"/>
         <source>New Zealand</source>
         <translation>Nova Zelândia</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="57"/>
         <source>Nigeria</source>
         <translation>Nigéria</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="58"/>
         <source>Peru</source>
         <translation>Peru</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="59"/>
         <source>Philippines</source>
         <translation>Filipinas</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="60"/>
         <source>Poland</source>
         <translation>Polónia</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="61"/>
         <source>Russia</source>
         <translation>Rússia</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="62"/>
         <source>Saudi Arabia</source>
         <translation>Arábia Saudita</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="63"/>
         <source>Singapore</source>
         <translation>Singapura</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="64"/>
         <source>South Africa</source>
         <translation>África do Sul</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="65"/>
         <source>South Korea</source>
         <translation>Coreia do Sul</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="66"/>
         <source>Spain</source>
         <translation>Espanha</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="67"/>
         <source>Sweden</source>
         <translation>Suécia</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="68"/>
         <source>Taiwan</source>
         <translation>Taiwan</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="69"/>
         <source>Tunisia</source>
         <translation>Tunísia</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="70"/>
         <source>Turkey</source>
         <translation>Turquia</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="71"/>
         <source>Uganda</source>
         <translation>Uganda</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="72"/>
         <source>United Arab Emirates</source>
         <translation>Emirados Árabes Unidos</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="73"/>
         <source>United Kingdom</source>
         <translation>Reino Unido</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="74"/>
         <source>Yemen</source>
         <translation>Íémen</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="148"/>
         <source>Worldwide</source>
         <translation>Global</translation>
     </message>
index 03da0c72999d3efa0edc7d505a7b5f7e23595cb1..589af55839f4d803002b194f36b2462ea6709b85 100644 (file)
@@ -2,67 +2,42 @@
 <context>
     <name>AboutView</name>
     <message>
-        <location filename="src/aboutview.cpp" line="58"/>
         <source>There&apos;s life outside the browser!</source>
         <translation>Há vida fora do navegador!</translation>
     </message>
     <message>
-        <location filename="src/aboutview.cpp" line="59"/>
         <source>Version %1</source>
         <translation>Versão %1</translation>
     </message>
     <message>
-        <location filename="src/aboutview.cpp" line="64"/>
         <source>Licensed to: %1</source>
         <translation>Licenciado para: %1</translation>
     </message>
     <message>
-        <location filename="src/aboutview.cpp" line="68"/>
         <source>%1 is Free Software but its development takes precious time.</source>
         <translation>%1 é um Software Livre, mas seu desenvolvimento toma um tempo precioso.</translation>
     </message>
     <message>
-        <location filename="src/aboutview.cpp" line="69"/>
         <source>Please &lt;a href=&apos;%1&apos;&gt;donate&lt;/a&gt; to support the continued development of %2.</source>
         <translation>Por favor &lt;a href=&apos;%1&apos;&gt;doe&lt;/a&gt; para apoiar o desenvolvimento continuado de %2.</translation>
     </message>
     <message>
-        <location filename="src/aboutview.cpp" line="73"/>
-        <source>You may want to try my other apps as well:</source>
-        <translation>Você pode querer tentar os meus outros aplicativos também:</translation>
-    </message>
-    <message>
-        <location filename="src/aboutview.cpp" line="76"/>
-        <source>%1, a YouTube music player</source>
-        <translation>%1, um tocador de música para YouTube</translation>
-    </message>
-    <message>
-        <location filename="src/aboutview.cpp" line="80"/>
-        <source>%1, a music player</source>
-        <translation>%1, um tocador de música</translation>
-    </message>
-    <message>
-        <location filename="src/aboutview.cpp" line="86"/>
         <source>Translate %1 to your native language using %2</source>
         <translation>Traduza %1 para seu idioma nativo usando %2</translation>
     </message>
     <message>
-        <location filename="src/aboutview.cpp" line="91"/>
         <source>Icon designed by %1.</source>
         <translation>Ícone desenhado por %1.</translation>
     </message>
     <message>
-        <location filename="src/aboutview.cpp" line="95"/>
         <source>Released under the &lt;a href=&apos;%1&apos;&gt;GNU General Public License&lt;/a&gt;</source>
         <translation>Lançado sob a &lt;a href=&apos;%1&apos;&gt;Licença Pública Geral GNU&lt;/a&gt;</translation>
     </message>
     <message>
-        <location filename="src/aboutview.cpp" line="110"/>
         <source>&amp;Close</source>
         <translation>&amp;Fechar</translation>
     </message>
     <message>
-        <location filename="src/aboutview.h" line="40"/>
         <source>About</source>
         <translation>Sobre</translation>
     </message>
 <context>
     <name>ActivationDialog</name>
     <message>
-        <location filename="local/src/activationdialog.cpp" line="17"/>
         <source>Enter your License Details</source>
         <translation>Insira os Detalhes da Licença</translation>
     </message>
     <message>
-        <location filename="local/src/activationdialog.cpp" line="29"/>
         <source>&amp;Email:</source>
         <translation>&amp;E-mail:</translation>
     </message>
     <message>
-        <location filename="local/src/activationdialog.cpp" line="35"/>
         <source>&amp;Code:</source>
         <translation>&amp;Código:</translation>
     </message>
 <context>
     <name>ActivationView</name>
     <message>
-        <location filename="local/src/activationview.cpp" line="47"/>
         <source>Please license %1</source>
         <translation>Por favor, licencie %1</translation>
     </message>
     <message>
-        <location filename="local/src/activationview.cpp" line="51"/>
         <source>This demo has expired.</source>
         <translation>Esta demonstração expirou.</translation>
     </message>
     <message>
-        <location filename="local/src/activationview.cpp" line="53"/>
         <source>The full version allows you to watch videos without interruptions.</source>
-        <oldsource>The full version allows you to download videos longer than %1 minutes and to watch videos without interruptions.</oldsource>
         <translation>A versão completa permite que você assista vídeos 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>Sem licença, a aplicação irá expirar em %1 dias.</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>Ao comprar a versão completa, você também apoiará o trabalho duro que eu dediquei ao criar %1.</translation>
     </message>
     <message>
-        <location filename="local/src/activationview.cpp" line="70"/>
         <source>Use Demo</source>
         <translation>Usar Demonstração</translation>
     </message>
     <message>
-        <location filename="local/src/activationview.cpp" line="77"/>
         <source>Enter License</source>
         <translation>Inserir Licença</translation>
     </message>
     <message>
-        <location filename="local/src/activationview.cpp" line="85"/>
         <source>Buy License</source>
         <translation>Adquirir Licença</translation>
     </message>
 </context>
+<context>
+    <name>AppWidget</name>
+    <message>
+        <source>Download</source>
+        <translation>Download</translation>
+    </message>
+</context>
 <context>
     <name>ChannelAggregator</name>
     <message>
-        <location filename="src/channelaggregator.cpp" line="183"/>
         <source>By %1</source>
         <translation>Por %1</translation>
     </message>
     <message numerus="yes">
-        <location filename="src/channelaggregator.cpp" line="185"/>
         <source>You have %n new video(s)</source>
         <translation type="unfinished"><numerusform></numerusform><numerusform></numerusform></translation>
     </message>
 <context>
     <name>ChannelItemDelegate</name>
     <message>
-        <location filename="src/channelitemdelegate.cpp" line="67"/>
         <source>All Videos</source>
         <translation>Todos Os Vídeos</translation>
     </message>
     <message>
-        <location filename="src/channelitemdelegate.cpp" line="85"/>
         <source>Unwatched Videos</source>
         <translation>Vídeos Não Assistidos</translation>
     </message>
 <context>
     <name>ChannelView</name>
     <message>
-        <location filename="src/channelview.cpp" line="151"/>
-        <source>Mark all as watched</source>
-        <translation>Marcar tudo como assistido</translation>
-    </message>
-    <message>
-        <location filename="src/channelview.cpp" line="159"/>
-        <source>Show Updated</source>
-        <translation>Mostrar Atualização</translation>
-    </message>
-    <message>
-        <location filename="src/channelview.cpp" line="103"/>
         <source>Name</source>
         <translation>Nome</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="110"/>
         <source>Last Updated</source>
         <translation>Última Atualização</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="117"/>
         <source>Last Added</source>
         <translation>Último Adicionado</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="124"/>
         <source>Last Watched</source>
         <translation>Último Assistido</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="131"/>
         <source>Most Watched</source>
         <translation>Mais Assistidos</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="139"/>
         <source>Sort by</source>
         <translation>Ordenar por</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="222"/>
+        <source>Mark all as watched</source>
+        <translation>Marcar tudo como assistido</translation>
+    </message>
+    <message>
+        <source>Show Updated</source>
+        <translation>Mostrar Atualização</translation>
+    </message>
+    <message>
         <source>All Videos</source>
         <translation>Todos Os Vídeos</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="226"/>
         <source>Unwatched Videos</source>
         <translation>Vídeos Não Assistidos</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="244"/>
         <source>Mark as Watched</source>
         <translation>Marcar como Assistido</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="257"/>
         <source>Unsubscribe</source>
         <translation>Cancelar assinatura</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="270"/>
         <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="272"/>
         <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>
     <name>ClearButton</name>
     <message>
-        <location filename="src/exlineedit.cpp" line="6"/>
         <source>Clear</source>
         <translation>Limpar</translation>
     </message>
 <context>
     <name>DataUtils</name>
     <message>
-        <location filename="src/datautils.cpp" line="88"/>
         <source>Just now</source>
-        <translation type="unfinished"/>
+        <translation>Neste exato momento</translation>
     </message>
     <message numerus="yes">
-        <location filename="src/datautils.cpp" line="90"/>
-        <source>%n minute(s) ago</source>
-        <translation type="unfinished"><numerusform></numerusform><numerusform></numerusform></translation>
-    </message>
-    <message numerus="yes">
-        <location filename="src/datautils.cpp" line="92"/>
         <source>%n hour(s) ago</source>
         <translation type="unfinished"><numerusform></numerusform><numerusform></numerusform></translation>
     </message>
     <message numerus="yes">
-        <location filename="src/datautils.cpp" line="94"/>
         <source>%n day(s) ago</source>
         <translation type="unfinished"><numerusform></numerusform><numerusform></numerusform></translation>
     </message>
     <message numerus="yes">
-        <location filename="src/datautils.cpp" line="96"/>
         <source>%n weeks(s) ago</source>
         <translation type="unfinished"><numerusform></numerusform><numerusform></numerusform></translation>
     </message>
     <message numerus="yes">
-        <location filename="src/datautils.cpp" line="98"/>
         <source>%n month(s) ago</source>
         <translation type="unfinished"><numerusform></numerusform><numerusform></numerusform></translation>
     </message>
 <context>
     <name>DownloadItem</name>
     <message>
-        <location filename="src/downloaditem.cpp" line="406"/>
         <source>bytes</source>
         <translation>bytes</translation>
     </message>
     <message>
-        <location filename="src/downloaditem.cpp" line="409"/>
         <source>KB</source>
         <translation>KB</translation>
     </message>
     <message>
-        <location filename="src/downloaditem.cpp" line="412"/>
         <source>MB</source>
         <translation>MB</translation>
     </message>
     <message>
-        <location filename="src/downloaditem.cpp" line="421"/>
         <source>bytes/sec</source>
         <translation>bytes/seg</translation>
     </message>
     <message>
-        <location filename="src/downloaditem.cpp" line="424"/>
         <source>KB/sec</source>
         <translation>KB/seg</translation>
     </message>
     <message>
-        <location filename="src/downloaditem.cpp" line="427"/>
         <source>MB/sec</source>
         <translation>MB/seg</translation>
     </message>
     <message>
-        <location filename="src/downloaditem.cpp" line="433"/>
         <source>seconds</source>
         <translation>segundos</translation>
     </message>
     <message>
-        <location filename="src/downloaditem.cpp" line="436"/>
         <source>minutes</source>
         <translation>minutos</translation>
     </message>
     <message>
-        <location filename="src/downloaditem.cpp" line="439"/>
         <source>%4 %5 remaining</source>
         <translation>%4 %5 restantes</translation>
     </message>
 <context>
     <name>DownloadManager</name>
     <message>
-        <location filename="src/downloadmanager.cpp" line="77"/>
         <source>This is just the demo version of %1.</source>
         <translation>Esta é apenas a versão demonstração de %1.</translation>
     </message>
     <message>
-        <location filename="src/downloadmanager.cpp" line="79"/>
         <source>It can only download videos shorter than %1 minutes so you can test the download functionality.</source>
         <translation>Só pode fazer download de vídeos menores que %1 minutos para que você possa testar a funcionalidade de download.</translation>
     </message>
     <message>
-        <location filename="src/downloadmanager.cpp" line="85"/>
         <source>Continue</source>
         <translation>Continuar</translation>
     </message>
     <message>
-        <location filename="src/downloadmanager.cpp" line="86"/>
         <source>Get the full version</source>
         <translation>Obter a versão completa</translation>
     </message>
     <message>
-        <location filename="src/downloadmanager.cpp" line="157"/>
         <source>%1 downloaded in %2</source>
         <translation>%1 baixados em %2</translation>
     </message>
     <message>
-        <location filename="src/downloadmanager.cpp" line="160"/>
         <source>Download finished</source>
         <translation>Download terminou</translation>
     </message>
     <message numerus="yes">
-        <location filename="src/downloadmanager.cpp" line="165"/>
         <source>%n Download(s)</source>
         <translation type="unfinished"><numerusform></numerusform><numerusform></numerusform></translation>
     </message>
 <context>
     <name>DownloadSettings</name>
     <message>
-        <location filename="src/downloadsettings.cpp" line="36"/>
         <source>Change location...</source>
         <translation>Alterar local...</translation>
     </message>
     <message>
-        <location filename="src/downloadsettings.cpp" line="69"/>
         <source>Choose the download location</source>
         <translation>Escolha o local de download</translation>
     </message>
     <message>
-        <location filename="src/downloadsettings.cpp" line="81"/>
         <source>Download location changed.</source>
         <translation>Local de download alterado.</translation>
     </message>
     <message>
-        <location filename="src/downloadsettings.cpp" line="83"/>
         <source>Current downloads will still go in the previous location.</source>
         <translation>Downloads atuais ainda irão para o local anterior.</translation>
     </message>
     <message>
-        <location filename="src/downloadsettings.cpp" line="94"/>
         <source>Downloading to: %1</source>
         <translation>Baixando para: %1</translation>
     </message>
 <context>
     <name>DownloadView</name>
     <message>
-        <location filename="src/downloadview.cpp" line="38"/>
-        <location filename="src/downloadview.h" line="45"/>
         <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>Baixando atualização...</translation>
-    </message>
-</context>
 <context>
     <name>Extra</name>
     <message>
-        <location filename="local/src/extra.cpp" line="251"/>
         <source>The executable file has been tempered with, maybe by a virus.</source>
-        <translation type="unfinished"/>
+        <translation>O arquivo executavel foi alterado, talvez por um virus.</translation>
     </message>
     <message>
-        <location filename="local/src/extra.cpp" line="252"/>
         <source>%1 will not run. Try installing again.</source>
-        <translation type="unfinished"/>
+        <translation>%1 não vai funcionar. Tente instalar novamente.</translation>
     </message>
     <message>
-        <location filename="local/src/extra.cpp" line="253"/>
         <source>Quit</source>
-        <translation type="unfinished"/>
+        <translation>Sair</translation>
     </message>
     <message>
-        <location filename="local/src/extra.cpp" line="254"/>
         <source>Reinstall</source>
-        <translation type="unfinished"/>
+        <translation>Reinstale</translation>
     </message>
 </context>
 <context>
     <name>GlobalShortcuts</name>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="36"/>
         <source>Play</source>
         <translation>Reproduzir</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="37"/>
         <source>Pause</source>
         <translation>Pausar</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="38"/>
         <source>Play/Pause</source>
         <translation>Reproduzir/Pausar</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="39"/>
         <source>Stop</source>
         <translation>Parar</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="40"/>
         <source>Stop playing after current track</source>
         <translation>Parar reprodução após a faixa atual</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="41"/>
         <source>Next track</source>
         <translation>Próxima faixa</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="42"/>
         <source>Previous track</source>
         <translation>Faixa anterior</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="43"/>
         <source>Increase volume</source>
         <translation>Aumentar volume</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="44"/>
         <source>Decrease volume</source>
         <translation>Diminuir volume</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="45"/>
         <source>Mute</source>
         <translation>Mudo</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="46"/>
         <source>Seek forward</source>
         <translation>Avançar</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="47"/>
         <source>Seek backward</source>
         <translation>Voltar</translation>
     </message>
 <context>
     <name>HomeView</name>
     <message>
-        <location filename="src/homeview.cpp" line="58"/>
         <source>Search</source>
         <translation>Pesquisar</translation>
     </message>
     <message>
-        <location filename="src/homeview.cpp" line="60"/>
         <source>Find videos and channels by keyword</source>
         <translation>Encontrar vídeos e canais por palavra-chave</translation>
     </message>
     <message>
-        <location filename="src/homeview.cpp" line="65"/>
         <source>Browse</source>
         <translation>Procurar</translation>
     </message>
     <message>
-        <location filename="src/homeview.cpp" line="67"/>
         <source>Browse videos by category</source>
         <translation>Procurar vídeos por categoria</translation>
     </message>
     <message>
-        <location filename="src/homeview.cpp" line="71"/>
         <source>Subscriptions</source>
         <translation>Assinados</translation>
     </message>
     <message>
-        <location filename="src/homeview.cpp" line="73"/>
         <source>Channel subscriptions</source>
         <translation>Canais assinados</translation>
     </message>
     <message>
-        <location filename="src/homeview.h" line="44"/>
         <source>Make yourself comfortable</source>
         <translation>Sinta-se confortável</translation>
     </message>
 <context>
     <name>LoadingWidget</name>
     <message>
-        <location filename="src/loadingwidget.cpp" line="125"/>
         <source>Error</source>
         <translation>Erro</translation>
     </message>
 <context>
     <name>MainWindow</name>
     <message>
-        <location filename="src/mainwindow.cpp" line="291"/>
+        <source>&amp;Window</source>
+        <translation>&amp;Janela</translation>
+    </message>
+    <message>
+        <source>&amp;Minimize</source>
+        <translation>&amp;Minimizar</translation>
+    </message>
+    <message>
         <source>&amp;Stop</source>
         <translation>&amp;Parar</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="292"/>
         <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="307"/>
+        <source>P&amp;revious</source>
+        <translation>Ante&amp;rior</translation>
+    </message>
+    <message>
+        <source>Go back to the previous track</source>
+        <translation>Ir para a faixa anterior</translation>
+    </message>
+    <message>
         <source>S&amp;kip</source>
         <translation>Pu&amp;lar</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="308"/>
         <source>Skip to the next video</source>
         <translation>Pular para o próximo vídeo</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1134"/>
-        <source>&amp;Pause</source>
-        <translation>&amp;Pausar</translation>
+        <source>&amp;Play</source>
+        <translation>&amp;Reproduzir</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1135"/>
-        <source>Pause playback</source>
-        <translation>Pausar a reprodução</translation>
+        <source>Resume playback</source>
+        <translation>Continuar reprodução</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="321"/>
         <source>&amp;Full Screen</source>
         <translation>&amp;Tela Cheia</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="322"/>
         <source>Go full screen</source>
         <translation>Ir para a tela cheia</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="336"/>
+        <source>&amp;Compact Mode</source>
+        <translation>Modo &amp;Compacto</translation>
+    </message>
+    <message>
         <source>Hide the playlist and the toolbar</source>
         <translation>Ocultar a lista de reprodução e a barra de ferramentas</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="349"/>
+        <source>Open the &amp;YouTube Page</source>
+        <translation>Abrir a Página do &amp;YouTube</translation>
+    </message>
+    <message>
         <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="356"/>
+        <source>Copy the YouTube &amp;Link</source>
+        <translation>Copiar o &amp;Link do YouTube</translation>
+    </message>
+    <message>
         <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="363"/>
+        <source>Copy the Video Stream &amp;URL</source>
+        <translation>Copiar a &amp;URL de Stream de Vídeo</translation>
+    </message>
+    <message>
         <source>Copy the current video stream URL to the clipboard</source>
         <translation>Copiar a URL do stream de vídeo atual para a área de transferência</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="370"/>
+        <source>Find Video &amp;Parts</source>
+        <translation>Localizar &amp;Partes Do Vídeo</translation>
+    </message>
+    <message>
         <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="376"/>
         <source>&amp;Remove</source>
         <translation>&amp;Remover</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="377"/>
         <source>Remove the selected videos from the playlist</source>
         <translation>Remover os vídeos selecionados da lista de reprodução</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="383"/>
         <source>Move &amp;Up</source>
         <translation>Mover Para &amp;Cima</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="384"/>
         <source>Move up the selected videos in the playlist</source>
         <translation>Mover para cima os vídeos selecionados na lista de reprodução</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="390"/>
         <source>Move &amp;Down</source>
         <translation>Mover Para &amp;Baixo</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="391"/>
         <source>Move down the selected videos in the playlist</source>
         <translation>Mover para baixo os vídeos selecionados na lista de reprodução</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="402"/>
+        <source>&amp;Clear Recent Searches</source>
+        <translation>&amp;Limpar Buscas Recentes</translation>
+    </message>
+    <message>
         <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="407"/>
         <source>&amp;Quit</source>
         <translation>&amp;Sair</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="410"/>
         <source>Bye</source>
         <translation>Tchau</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="414"/>
         <source>&amp;Website</source>
         <translation>Si&amp;te</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="416"/>
         <source>%1 on the Web</source>
         <translation>%1 na Web</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="422"/>
+        <source>Make a &amp;Donation</source>
+        <translation>Faça uma &amp;Doação</translation>
+    </message>
+    <message>
         <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="427"/>
         <source>&amp;About</source>
         <translation>&amp;Sobre</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="429"/>
         <source>Info about %1</source>
         <translation>Informações sobre %1</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="437"/>
         <source>Search</source>
         <translation>Pesquisar</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="456"/>
         <source>Mute volume</source>
         <translation>Volume mudo</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="490"/>
-        <location filename="src/mainwindow.cpp" line="1609"/>
+        <source>&amp;Manually Start Playing</source>
+        <translation>Iniciar &amp;Manualmente A Reprodução</translation>
+    </message>
+    <message>
+        <source>Manually start playing videos</source>
+        <translation>Iniciar manualmente a reprodução de vídeos</translation>
+    </message>
+    <message>
         <source>&amp;Downloads</source>
         <translation>&amp;Downloads</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="491"/>
         <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="499"/>
         <source>&amp;Download</source>
         <translation>&amp;Download</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="500"/>
         <source>Download the current video</source>
         <translation>Baixar o vídeo atual</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="510"/>
         <source>Take &amp;Snapshot</source>
         <translation>&amp;Salvar Captura De Tela</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="517"/>
         <source>&amp;Subscribe to Channel</source>
         <translation>A&amp;ssinar um Canal</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="525"/>
         <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="545"/>
         <source>&amp;Email</source>
         <translation>&amp;E-mail</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="546"/>
         <source>Email</source>
         <translation>E-mail</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="551"/>
         <source>&amp;Close</source>
         <translation>&amp;Fechar</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="561"/>
         <source>&amp;Float on Top</source>
         <translation>&amp;Sempre Acima</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="566"/>
         <source>&amp;Adjust Window Size</source>
-        <translation type="unfinished"/>
+        <translation>&amp;Ajuste o tamanho da janela</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="571"/>
         <source>&amp;Stop After This Video</source>
         <translation>&amp;Parar Após Este Vídeo</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="578"/>
         <source>&amp;Report an Issue...</source>
         <translation>&amp;Relatar um problema...</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="582"/>
         <source>&amp;Refine Search...</source>
         <translation>&amp;Refinar Pesquisa...</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="594"/>
         <source>More...</source>
         <translation>Mais...</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="597"/>
         <source>&amp;Related Videos</source>
         <translation>Vídeos &amp;Relacionados</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="599"/>
         <source>Watch videos related to the current one</source>
         <translation>Assistir vídeos relacionados com o atual</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="605"/>
         <source>Open in &amp;Browser...</source>
         <translation>Abrir no &amp;Navegador...</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="612"/>
-        <source>&amp;Love %1? Rate it!</source>
-        <translation>&amp;Gosta do %1? Avalie-o!</translation>
+        <source>Restricted Mode</source>
+        <translation>Modo Restrito</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="633"/>
-        <source>&amp;Application</source>
-        <translation>&amp;Aplicação</translation>
+        <source>Hide videos that may contain inappropriate content</source>
+        <translation>Ocultar vídeos com conteúdo inapropriado</translation>
+    </message>
+    <message>
+        <source>&amp;Love %1? Rate it!</source>
+        <translation>&amp;Gosta do %1? Avalie-o!</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="618"/>
         <source>Buy %1...</source>
         <translation>Adquirir %1...</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="647"/>
+        <source>&amp;Application</source>
+        <translation>&amp;Aplicação</translation>
+    </message>
+    <message>
         <source>&amp;Playback</source>
         <translation>&amp;Reprodução</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="661"/>
         <source>&amp;Playlist</source>
         <translation>Lista de &amp;Reprodução</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="670"/>
         <source>&amp;Video</source>
         <translation>&amp;Vídeo</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="686"/>
-        <source>&amp;View</source>
-        <translation>&amp;Visualizar</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="695"/>
         <source>&amp;Share</source>
         <translation>&amp;Compartilhar</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="709"/>
+        <source>&amp;View</source>
+        <translation>&amp;Visualizar</translation>
+    </message>
+    <message>
         <source>&amp;Help</source>
         <translation>&amp;Ajuda</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="751"/>
         <source>Press %1 to raise the volume, %2 to lower it</source>
         <translation>Pressione %1 para aumentar o volume, %2 para diminuí-lo</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1021"/>
-        <location filename="src/mainwindow.cpp" line="1027"/>
+        <source>Choose your content location</source>
+        <translation>Escolher seu conteúdo local</translation>
+    </message>
+    <message>
         <source>Opening %1</source>
         <translation>Abrindo %1</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1080"/>
         <source>Do you want to exit %1 with a download in progress?</source>
         <translation>Você deseja sair de %1 com um download em curso?</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1081"/>
         <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="1086"/>
         <source>Close and cancel download</source>
         <translation>Fechar e cancelar download</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1087"/>
         <source>Wait for download to finish</source>
         <translation>Aguardar o download terminar</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1158"/>
-        <source>&amp;Loading...</source>
-        <translation type="unfinished"/>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="1264"/>
-        <source>Leave &amp;Full Screen</source>
-        <translation>Deixar Em &amp;Tela Cheia</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="1718"/>
-        <source>%1 version %2 is now available.</source>
-        <translation>%1 versão %2 já está disponível.</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="1722"/>
-        <source>Remind me later</source>
-        <translation>Lembrar mais tarde</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="1723"/>
-        <source>Update</source>
-        <translation>Atualizar</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="1127"/>
         <source>Error: %1</source>
         <translation>Erro: %1</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="300"/>
-        <source>P&amp;revious</source>
-        <translation>Ante&amp;rior</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="301"/>
-        <source>Go back to the previous track</source>
-        <translation>Ir para a faixa anterior</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="335"/>
-        <source>&amp;Compact Mode</source>
-        <translation>Modo &amp;Compacto</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="348"/>
-        <source>Open the &amp;YouTube Page</source>
-        <translation>Abrir a Página do &amp;YouTube</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="355"/>
-        <source>Copy the YouTube &amp;Link</source>
-        <translation>Copiar o &amp;Link do YouTube</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="362"/>
-        <source>Copy the Video Stream &amp;URL</source>
-        <translation>Copiar a &amp;URL de Stream de Vídeo</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="369"/>
-        <source>Find Video &amp;Parts</source>
-        <translation>Localizar &amp;Partes Do Vídeo</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="397"/>
-        <source>&amp;Clear Recent Searches</source>
-        <translation>&amp;Limpar Buscas Recentes</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="421"/>
-        <source>Make a &amp;Donation</source>
-        <translation>Faça uma &amp;Doação</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="483"/>
-        <source>&amp;Manually Start Playing</source>
-        <translation>Iniciar &amp;Manualmente A Reprodução</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="484"/>
-        <source>Manually start playing videos</source>
-        <translation>Iniciar manualmente a reprodução de vídeos</translation>
+        <source>&amp;Pause</source>
+        <translation>&amp;Pausar</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="847"/>
-        <source>Choose your content location</source>
-        <translation>Escolher seu conteúdo local</translation>
+        <source>Pause playback</source>
+        <translation>Pausar a reprodução</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="314"/>
-        <location filename="src/mainwindow.cpp" line="1142"/>
-        <location filename="src/mainwindow.cpp" line="1150"/>
-        <source>&amp;Play</source>
-        <translation>&amp;Reproduzir</translation>
+        <source>&amp;Loading...</source>
+        <translation>&amp;Carregando</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="315"/>
-        <location filename="src/mainwindow.cpp" line="1143"/>
-        <location filename="src/mainwindow.cpp" line="1151"/>
-        <source>Resume playback</source>
-        <translation>Continuar reprodução</translation>
+        <source>Leave &amp;Full Screen</source>
+        <translation>Deixar Em &amp;Tela Cheia</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1437"/>
         <source>Remaining time: %1</source>
         <translation>Tempo restante: %1</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1528"/>
         <source>Volume at %1%</source>
         <translation>Volume em %1%</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1534"/>
         <source>Volume is muted</source>
         <translation>Volume está mudo</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1537"/>
         <source>Volume is unmuted</source>
         <translation>Volume não está mudo</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1548"/>
         <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="1595"/>
         <source>Your privacy is now safe</source>
         <translation>A sua privacidade está segura agora</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1610"/>
         <source>Downloads complete</source>
         <translation>Downloads finalizados</translation>
     </message>
+    <message>
+        <source>%1 version %2 is now available.</source>
+        <translation>%1 versão %2 já está disponível.</translation>
+    </message>
+    <message>
+        <source>Remind me later</source>
+        <translation>Lembrar mais tarde</translation>
+    </message>
+    <message>
+        <source>Update</source>
+        <translation>Atualizar</translation>
+    </message>
 </context>
 <context>
     <name>MediaView</name>
     <message>
-        <location filename="src/mediaview.cpp" line="702"/>
         <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="710"/>
         <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="711"/>
         <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="800"/>
         <source>This is just the demo version of %1.</source>
         <translation>Esta é apenas a versão demonstração de %1.</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="801"/>
         <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="833"/>
+        <source>Get the full version</source>
+        <translation>Obter a versão completa</translation>
+    </message>
+    <message>
         <source>Continue</source>
         <translation>Continuar</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="988"/>
+        <source>Downloading %1</source>
+        <translation>Baixando %1</translation>
+    </message>
+    <message>
         <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="1001"/>
         <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="1003"/>
         <source>episode</source>
         <comment>This is for video parts, as in 'Cool series - episode 1'</comment>
         <translation>episódio</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="1096"/>
         <source>Sent from %1</source>
         <translation>Envido de %1</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="1128"/>
         <source>Unsubscribe from %1</source>
         <translation>Cancelar a assinatura de %1</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="1132"/>
         <source>Subscribe to %1</source>
         <translation>Assinar %1</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="1166"/>
         <source>Unsubscribed from %1</source>
-        <translation type="unfinished"/>
+        <translation>Desinscrito de %1</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="1169"/>
         <source>Subscribed to %1</source>
-        <translation type="unfinished"/>
-    </message>
-    <message>
-        <location filename="src/mediaview.cpp" line="808"/>
-        <source>Get the full version</source>
-        <translation>Obter a versão completa</translation>
-    </message>
-    <message>
-        <location filename="src/mediaview.cpp" line="847"/>
-        <source>Downloading %1</source>
-        <translation>Baixando %1</translation>
+        <translation>Inscrito em %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>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>%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>Gostaria de fazer o download agora?</translation>
     </message>
     <message>
-        <location filename="local/src/updatedialog.cpp" line="39"/>
         <source>Skip This Version</source>
         <translation>Pular Esta Versão</translation>
     </message>
     <message>
-        <location filename="local/src/updatedialog.cpp" line="43"/>
         <source>Remind Me Later</source>
         <translation>Me Lembre Mais Tarde</translation>
     </message>
     <message>
-        <location filename="local/src/updatedialog.cpp" line="47"/>
         <source>Install Update</source>
         <translation>Instalar Atualização</translation>
     </message>
 <context>
     <name>PasteLineEdit</name>
     <message>
-        <location filename="local/src/pastelineedit.cpp" line="6"/>
         <source>Paste</source>
         <translation>Colar</translation>
     </message>
 <context>
     <name>PlaylistItemDelegate</name>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="209"/>
         <source>%1 views</source>
         <translation>%1 visualizações</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="309"/>
         <source>%1 of %2 (%3) — %4</source>
         <translation>%1 de %2 (%3) — %4</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="316"/>
         <source>Preparing</source>
         <translation>Preparando</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="318"/>
         <source>Failed</source>
         <translation>Falhou</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="320"/>
         <source>Completed</source>
         <translation>Finalizado</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="322"/>
         <source>Stopped</source>
         <translation>Parado</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="358"/>
         <source>Stop downloading</source>
         <translation>Parar download</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="368"/>
         <source>Show in %1</source>
         <translation>Mostrar em %1</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="370"/>
         <source>Open parent folder</source>
         <translation>Abrir pasta pai</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="379"/>
         <source>Restart downloading</source>
         <translation>Reiniciar download</translation>
     </message>
 <context>
     <name>PlaylistModel</name>
     <message>
-        <location filename="src/playlistmodel.cpp" line="70"/>
         <source>Searching...</source>
         <translation>Pesquisando...</translation>
     </message>
     <message>
-        <location filename="src/playlistmodel.cpp" line="71"/>
         <source>Show %1 More</source>
         <translation>Mostrar Mais %1</translation>
     </message>
     <message>
-        <location filename="src/playlistmodel.cpp" line="72"/>
         <source>No videos</source>
         <translation>Sem vídeos</translation>
     </message>
     <message>
-        <location filename="src/playlistmodel.cpp" line="73"/>
         <source>No more videos</source>
         <translation>Não há mais vídeos</translation>
     </message>
 <context>
     <name>RefineSearchWidget</name>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="49"/>
         <source>Sort by</source>
         <translation>Ordenar por</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="53"/>
         <source>Relevance</source>
         <translation>Relevância</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="54"/>
-        <location filename="src/refinesearchwidget.cpp" line="69"/>
         <source>Date</source>
         <translation>Data</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="55"/>
         <source>View Count</source>
         <translation>Número De Visualizações</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="56"/>
         <source>Rating</source>
         <translation>Avaliação</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="73"/>
         <source>Anytime</source>
         <translation>Sempre</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="74"/>
         <source>Today</source>
         <translation>Hoje</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="75"/>
         <source>7 Days</source>
         <translation>7 Dias</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="76"/>
         <source>30 Days</source>
         <translation>30 Dias</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="89"/>
         <source>Duration</source>
         <translation>Duração</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="93"/>
-        <location filename="src/refinesearchwidget.cpp" line="119"/>
         <source>All</source>
         <translation>Todos</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="94"/>
         <source>Short</source>
         <translation>Breve</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="95"/>
         <source>Medium</source>
         <translation>Médio</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="96"/>
         <source>Long</source>
         <translation>Longo</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="99"/>
         <source>Less than 4 minutes</source>
         <translation>Menos de 4 minutos</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="100"/>
         <source>Between 4 and 20 minutes</source>
         <translation>Entre 4 e 20 minutos</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="101"/>
         <source>Longer than 20 minutes</source>
         <translation>Mais de 20 minutos</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="115"/>
         <source>Quality</source>
         <translation>Qualidade</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="120"/>
         <source>High Definition</source>
         <translation>Alta Definição</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="123"/>
         <source>720p or higher</source>
         <translation>720p ou superior</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="136"/>
         <source>Done</source>
         <translation>Feito</translation>
     </message>
 <context>
     <name>RegionsView</name>
     <message>
-        <location filename="src/regionsview.cpp" line="39"/>
         <source>Done</source>
         <translation>Feito</translation>
     </message>
 <context>
     <name>SearchLineEdit</name>
     <message>
-        <location filename="src/searchlineedit.cpp" line="55"/>
         <source>Search</source>
         <translation>Pesquisar</translation>
     </message>
 <context>
     <name>SearchView</name>
     <message>
-        <location filename="src/searchview.cpp" line="83"/>
         <source>Welcome to &lt;a href=&apos;%1&apos;&gt;%2&lt;/a&gt;,</source>
         <translation>Bem-vindo ao &lt;a href=&apos;%1&apos;&gt;%2&lt;/a&gt;,</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="200"/>
-        <source>Get the full version</source>
-        <translation>Obter a versão completa</translation>
-    </message>
-    <message>
-        <location filename="src/searchview.cpp" line="110"/>
         <source>Enter</source>
         <extracomment>&quot;Enter&quot;, as in &quot;type&quot;. The whole phrase says: &quot;Enter a keyword to start watching videos&quot;</extracomment>
         <translation>Digite</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="117"/>
         <source>a keyword</source>
         <translation>uma palavra-chave</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="118"/>
         <source>a channel</source>
         <translation>um canal</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="125"/>
         <source>to start watching videos.</source>
         <translation>para começar a assistir vídeos.</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="156"/>
         <source>Watch</source>
         <translation>Assistir</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="174"/>
         <source>Recent keywords</source>
         <translation>Palavra-chave recente</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="186"/>
         <source>Recent channels</source>
         <translation>Canais recentes</translation>
     </message>
+    <message>
+        <source>Get the full version</source>
+        <translation>Obter a versão completa</translation>
+    </message>
 </context>
 <context>
     <name>SidebarHeader</name>
     <message>
-        <location filename="src/sidebarheader.cpp" line="38"/>
-        <location filename="src/sidebarheader.cpp" line="45"/>
         <source>&amp;Back</source>
         <translation>&amp;Voltar</translation>
     </message>
     <message>
-        <location filename="src/sidebarheader.cpp" line="76"/>
         <source>Forward to %1</source>
         <translation>Avançar para %1</translation>
     </message>
     <message>
-        <location filename="src/sidebarheader.cpp" line="89"/>
         <source>Back to %1</source>
         <translation>Voltar para %1</translation>
     </message>
 <context>
     <name>SidebarWidget</name>
     <message>
-        <location filename="src/sidebarwidget.cpp" line="68"/>
         <source>Refine Search</source>
         <translation>Refinar Pesquisa</translation>
     </message>
     <message>
-        <location filename="src/sidebarwidget.cpp" line="167"/>
         <source>Did you mean: %1</source>
         <translation>Você quis dizer: %1</translation>
     </message>
 <context>
     <name>SnapshotSettings</name>
     <message>
-        <location filename="src/snapshotsettings.cpp" line="47"/>
         <source>Change location...</source>
         <translation>Alterar local...</translation>
     </message>
     <message>
-        <location filename="src/snapshotsettings.cpp" line="64"/>
         <source>Snapshot saved to %1</source>
         <translation>Captura de tela salva em %1</translation>
     </message>
     <message>
-        <location filename="src/snapshotsettings.cpp" line="117"/>
         <source>Snapshots location changed.</source>
         <translation>Local de capturas de tela alterado.</translation>
     </message>
 <context>
     <name>StandardFeedsView</name>
     <message>
-        <location filename="src/standardfeedsview.cpp" line="107"/>
         <source>Most Popular</source>
         <translation>Mais Popular</translation>
     </message>
 </context>
+<context>
+    <name>UpdateDialog</name>
+    <message>
+        <source>Downloading update...</source>
+        <translation>Baixando atualização...</translation>
+    </message>
+    <message>
+        <source>Downloading %1...</source>
+        <translation>Baixando %1...</translation>
+    </message>
+</context>
 <context>
     <name>Video</name>
     <message>
-        <location filename="src/video.cpp" line="287"/>
         <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="292"/>
-        <source>Network error: %1 for %2</source>
-        <translation>Erro na rede: %1 para %2</translation>
-    </message>
 </context>
 <context>
     <name>YTRegions</name>
     <message>
-        <location filename="src/ytregions.cpp" line="28"/>
         <source>Algeria</source>
         <translation>Argélia</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="29"/>
         <source>Argentina</source>
         <translation>Argentina</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="30"/>
         <source>Australia</source>
         <translation>Austrália</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="31"/>
         <source>Belgium</source>
         <translation>Bélgica</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="32"/>
         <source>Brazil</source>
         <translation>Brasil</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="33"/>
         <source>Canada</source>
         <translation>Canadá</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="34"/>
         <source>Chile</source>
         <translation>Chile</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="35"/>
         <source>Colombia</source>
         <translation>Colômbia</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="36"/>
         <source>Czech Republic</source>
         <translation>República Tcheca</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="37"/>
         <source>Egypt</source>
         <translation>Egito</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="38"/>
         <source>France</source>
         <translation>França</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="39"/>
         <source>Germany</source>
         <translation>Alemanha</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="40"/>
         <source>Ghana</source>
         <translation>Gana</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="41"/>
         <source>Greece</source>
         <translation>Grécia</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="42"/>
         <source>Hong Kong</source>
         <translation>Hong Kong</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="43"/>
         <source>Hungary</source>
         <translation>Hungria</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="44"/>
         <source>India</source>
         <translation>Índia</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="45"/>
         <source>Indonesia</source>
         <translation>Indonésia</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="46"/>
         <source>Ireland</source>
         <translation>Irlanda</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="47"/>
         <source>Israel</source>
         <translation>Israel</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="48"/>
         <source>Italy</source>
         <translation>Itália</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="49"/>
         <source>Japan</source>
         <translation>Japão</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="50"/>
         <source>Jordan</source>
         <translation>Jordânia</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="51"/>
         <source>Kenya</source>
         <translation>Quênia</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="52"/>
         <source>Malaysia</source>
         <translation>Malásia</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="53"/>
         <source>Mexico</source>
         <translation>México</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="54"/>
         <source>Morocco</source>
         <translation>Marrocos</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="55"/>
         <source>Netherlands</source>
         <translation>Holanda</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="56"/>
         <source>New Zealand</source>
         <translation>Nova Zelândia</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="57"/>
         <source>Nigeria</source>
         <translation>Nigéria</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="58"/>
         <source>Peru</source>
         <translation>Peru</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="59"/>
         <source>Philippines</source>
         <translation>Filipinas</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="60"/>
         <source>Poland</source>
         <translation>Polônia</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="61"/>
         <source>Russia</source>
         <translation>Rússia</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="62"/>
         <source>Saudi Arabia</source>
         <translation>Arábia Saudita</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="63"/>
         <source>Singapore</source>
         <translation>Singapura</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="64"/>
         <source>South Africa</source>
         <translation>África do Sul</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="65"/>
         <source>South Korea</source>
         <translation>Coréia do Sul</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="66"/>
         <source>Spain</source>
         <translation>Espanha</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="67"/>
         <source>Sweden</source>
         <translation>Suécia</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="68"/>
         <source>Taiwan</source>
         <translation>Taiwan</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="69"/>
         <source>Tunisia</source>
         <translation>Tunísia</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="70"/>
         <source>Turkey</source>
         <translation>Turquia</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="71"/>
         <source>Uganda</source>
         <translation>Uganda</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="72"/>
         <source>United Arab Emirates</source>
         <translation>Emirados Árabes Unidos</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="73"/>
         <source>United Kingdom</source>
         <translation>Reino Unido</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="74"/>
         <source>Yemen</source>
         <translation>Iémen</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="148"/>
         <source>Worldwide</source>
         <translation>Mundial</translation>
     </message>
index e0d0c724e168b9353c4aff2688c0ad90d0513be1..fd0155c00fa241daa6e193d5e6c66d9abd1f9dbf 100644 (file)
@@ -2,67 +2,42 @@
 <context>
     <name>AboutView</name>
     <message>
-        <location filename="src/aboutview.cpp" line="58"/>
         <source>There&apos;s life outside the browser!</source>
         <translation>Există viață dincolo de browser!</translation>
     </message>
     <message>
-        <location filename="src/aboutview.cpp" line="59"/>
         <source>Version %1</source>
         <translation>Versiunea %1</translation>
     </message>
     <message>
-        <location filename="src/aboutview.cpp" line="64"/>
         <source>Licensed to: %1</source>
         <translation>Licențiat la %1</translation>
     </message>
     <message>
-        <location filename="src/aboutview.cpp" line="68"/>
         <source>%1 is Free Software but its development takes precious time.</source>
         <translation>%1 este un program gratuit, dar dezvoltarea acestuia necesită timp prețios.</translation>
     </message>
     <message>
-        <location filename="src/aboutview.cpp" line="69"/>
         <source>Please &lt;a href=&apos;%1&apos;&gt;donate&lt;/a&gt; to support the continued development of %2.</source>
         <translation>Te rog &lt;a href=&apos;%1&apos;&gt;donează&lt;/a&gt; pentru a sprijini dezvoltarea în continuare a %2.</translation>
     </message>
     <message>
-        <location filename="src/aboutview.cpp" line="73"/>
-        <source>You may want to try my other apps as well:</source>
-        <translation>Poate doriți să încercați și celelalte aplicații ale mele:</translation>
-    </message>
-    <message>
-        <location filename="src/aboutview.cpp" line="76"/>
-        <source>%1, a YouTube music player</source>
-        <translation>%1, un player muzical pentru YouTube</translation>
-    </message>
-    <message>
-        <location filename="src/aboutview.cpp" line="80"/>
-        <source>%1, a music player</source>
-        <translation>%1, un player muzical</translation>
-    </message>
-    <message>
-        <location filename="src/aboutview.cpp" line="86"/>
         <source>Translate %1 to your native language using %2</source>
         <translation>Tradu %1 în limba proprie folosind %2</translation>
     </message>
     <message>
-        <location filename="src/aboutview.cpp" line="91"/>
         <source>Icon designed by %1.</source>
         <translation>Iconița a fost concepută de %1.</translation>
     </message>
     <message>
-        <location filename="src/aboutview.cpp" line="95"/>
         <source>Released under the &lt;a href=&apos;%1&apos;&gt;GNU General Public License&lt;/a&gt;</source>
         <translation>Oferit sub &lt;a href=&apos;%1&apos;&gt;Licența Publică Generală GNU&lt;/a&gt;</translation>
     </message>
     <message>
-        <location filename="src/aboutview.cpp" line="110"/>
         <source>&amp;Close</source>
         <translation>În&amp;chide</translation>
     </message>
     <message>
-        <location filename="src/aboutview.h" line="40"/>
         <source>About</source>
         <translation>Despre</translation>
     </message>
 <context>
     <name>ActivationDialog</name>
     <message>
-        <location filename="local/src/activationdialog.cpp" line="17"/>
         <source>Enter your License Details</source>
         <translation>Introdu detaliile licenței tale</translation>
     </message>
     <message>
-        <location filename="local/src/activationdialog.cpp" line="29"/>
         <source>&amp;Email:</source>
         <translation>&amp;Email:</translation>
     </message>
     <message>
-        <location filename="local/src/activationdialog.cpp" line="35"/>
         <source>&amp;Code:</source>
         <translation>&amp;Cod:</translation>
     </message>
 <context>
     <name>ActivationView</name>
     <message>
-        <location filename="local/src/activationview.cpp" line="47"/>
         <source>Please license %1</source>
         <translation>Licențiați %1</translation>
     </message>
     <message>
-        <location filename="local/src/activationview.cpp" line="51"/>
         <source>This demo has expired.</source>
         <translation>Această versiune demo a expirat.</translation>
     </message>
     <message>
-        <location filename="local/src/activationview.cpp" line="53"/>
         <source>The full version allows you to watch videos without interruptions.</source>
-        <oldsource>The full version allows you to download videos longer than %1 minutes and to watch videos without interruptions.</oldsource>
         <translation>Versiunea nerestricționată vă permite să urmăriți clipurile video fără întreruperi.</translation>
     </message>
     <message>
-        <location filename="local/src/activationview.cpp" line="55"/>
         <source>Without a license, the application will expire in %1 days.</source>
         <translation>Fără licență, aplicația va expira în %1 zile.</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>Cumpărând versiunea integrală îmi sprijini efortul depus pentru crearea %1.</translation>
     </message>
     <message>
-        <location filename="local/src/activationview.cpp" line="70"/>
         <source>Use Demo</source>
         <translation>Folosește Demo</translation>
     </message>
     <message>
-        <location filename="local/src/activationview.cpp" line="77"/>
         <source>Enter License</source>
         <translation>Introdu Licența</translation>
     </message>
     <message>
-        <location filename="local/src/activationview.cpp" line="85"/>
         <source>Buy License</source>
         <translation>Cumpără Licență</translation>
     </message>
 </context>
+<context>
+    <name>AppWidget</name>
+    <message>
+        <source>Download</source>
+        <translation type="unfinished"/>
+    </message>
+</context>
 <context>
     <name>ChannelAggregator</name>
     <message>
-        <location filename="src/channelaggregator.cpp" line="183"/>
         <source>By %1</source>
         <translation>De %1</translation>
     </message>
     <message numerus="yes">
-        <location filename="src/channelaggregator.cpp" line="185"/>
         <source>You have %n new video(s)</source>
         <translation type="unfinished"><numerusform></numerusform><numerusform></numerusform><numerusform></numerusform></translation>
     </message>
 <context>
     <name>ChannelItemDelegate</name>
     <message>
-        <location filename="src/channelitemdelegate.cpp" line="67"/>
         <source>All Videos</source>
         <translation>Toate videoclipurile</translation>
     </message>
     <message>
-        <location filename="src/channelitemdelegate.cpp" line="85"/>
         <source>Unwatched Videos</source>
         <translation>Videoclipuri pe care nu le-ai vazut</translation>
     </message>
 <context>
     <name>ChannelView</name>
     <message>
-        <location filename="src/channelview.cpp" line="151"/>
-        <source>Mark all as watched</source>
-        <translation>Marcheaza tot ca vazut</translation>
-    </message>
-    <message>
-        <location filename="src/channelview.cpp" line="159"/>
-        <source>Show Updated</source>
-        <translation>Arata actualizeazările</translation>
-    </message>
-    <message>
-        <location filename="src/channelview.cpp" line="103"/>
         <source>Name</source>
         <translation>Nume</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="110"/>
         <source>Last Updated</source>
         <translation>Ultimele actualizări</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="117"/>
         <source>Last Added</source>
         <translation>Ultimele adaugate</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="124"/>
         <source>Last Watched</source>
         <translation>Ultimele vazute</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="131"/>
         <source>Most Watched</source>
         <translation>Cele mai vazute</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="139"/>
         <source>Sort by</source>
         <translation>Sortează după</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="222"/>
+        <source>Mark all as watched</source>
+        <translation>Marcheaza tot ca vazut</translation>
+    </message>
+    <message>
+        <source>Show Updated</source>
+        <translation>Arata actualizeazările</translation>
+    </message>
+    <message>
         <source>All Videos</source>
         <translation>Toate videoclipurile</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="226"/>
         <source>Unwatched Videos</source>
         <translation>Videoclipuri pe care nu le-ai vazut</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="244"/>
         <source>Mark as Watched</source>
         <translation>Marcat ca vizualizat</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="257"/>
         <source>Unsubscribe</source>
         <translation>Dezabonează</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="270"/>
         <source>There are no updated subscriptions at this time.</source>
         <translation>Nici unul din canalele la care esti abonat nu are actualizari momentan.</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="272"/>
         <source>You have no subscriptions. Use the star symbol to subscribe to channels.</source>
         <translation>Nu esti abonat la nimic. Ca sa te abonezi la canale, foloseste simbolul stea.</translation>
     </message>
 <context>
     <name>ClearButton</name>
     <message>
-        <location filename="src/exlineedit.cpp" line="6"/>
         <source>Clear</source>
         <translation>Șterge</translation>
     </message>
 <context>
     <name>DataUtils</name>
     <message>
-        <location filename="src/datautils.cpp" line="88"/>
         <source>Just now</source>
         <translation>Doar acum</translation>
     </message>
     <message numerus="yes">
-        <location filename="src/datautils.cpp" line="90"/>
-        <source>%n minute(s) ago</source>
-        <translation type="unfinished"><numerusform></numerusform><numerusform></numerusform><numerusform></numerusform></translation>
-    </message>
-    <message numerus="yes">
-        <location filename="src/datautils.cpp" line="92"/>
         <source>%n hour(s) ago</source>
         <translation type="unfinished"><numerusform></numerusform><numerusform></numerusform><numerusform></numerusform></translation>
     </message>
     <message numerus="yes">
-        <location filename="src/datautils.cpp" line="94"/>
         <source>%n day(s) ago</source>
         <translation type="unfinished"><numerusform></numerusform><numerusform></numerusform><numerusform></numerusform></translation>
     </message>
     <message numerus="yes">
-        <location filename="src/datautils.cpp" line="96"/>
         <source>%n weeks(s) ago</source>
         <translation type="unfinished"><numerusform></numerusform><numerusform></numerusform><numerusform></numerusform></translation>
     </message>
     <message numerus="yes">
-        <location filename="src/datautils.cpp" line="98"/>
         <source>%n month(s) ago</source>
         <translation type="unfinished"><numerusform></numerusform><numerusform></numerusform><numerusform></numerusform></translation>
     </message>
 <context>
     <name>DownloadItem</name>
     <message>
-        <location filename="src/downloaditem.cpp" line="406"/>
         <source>bytes</source>
         <translation>bytes</translation>
     </message>
     <message>
-        <location filename="src/downloaditem.cpp" line="409"/>
         <source>KB</source>
         <translation>KB</translation>
     </message>
     <message>
-        <location filename="src/downloaditem.cpp" line="412"/>
         <source>MB</source>
         <translation>MB</translation>
     </message>
     <message>
-        <location filename="src/downloaditem.cpp" line="421"/>
         <source>bytes/sec</source>
         <translation>bytes/sec</translation>
     </message>
     <message>
-        <location filename="src/downloaditem.cpp" line="424"/>
         <source>KB/sec</source>
         <translation>KB/sec</translation>
     </message>
     <message>
-        <location filename="src/downloaditem.cpp" line="427"/>
         <source>MB/sec</source>
         <translation>MB/sec</translation>
     </message>
     <message>
-        <location filename="src/downloaditem.cpp" line="433"/>
         <source>seconds</source>
         <translation>secunde</translation>
     </message>
     <message>
-        <location filename="src/downloaditem.cpp" line="436"/>
         <source>minutes</source>
         <translation>minute</translation>
     </message>
     <message>
-        <location filename="src/downloaditem.cpp" line="439"/>
         <source>%4 %5 remaining</source>
         <translation>%4 %5 rămase</translation>
     </message>
 <context>
     <name>DownloadManager</name>
     <message>
-        <location filename="src/downloadmanager.cpp" line="77"/>
         <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/downloadmanager.cpp" line="79"/>
         <source>It can only download videos shorter than %1 minutes so you can test the download functionality.</source>
         <translation>Poate să descarce doar videoclipurile mai mici de %1 minute astfel încât să puteți testa funcționalitatea de descărcare.</translation>
     </message>
     <message>
-        <location filename="src/downloadmanager.cpp" line="85"/>
         <source>Continue</source>
         <translation>Continuă</translation>
     </message>
     <message>
-        <location filename="src/downloadmanager.cpp" line="86"/>
         <source>Get the full version</source>
         <translation>ObțineIa versiunea integrală</translation>
     </message>
     <message>
-        <location filename="src/downloadmanager.cpp" line="157"/>
         <source>%1 downloaded in %2</source>
         <translation>%1 descărcat în %2</translation>
     </message>
     <message>
-        <location filename="src/downloadmanager.cpp" line="160"/>
         <source>Download finished</source>
         <translation>Descărcare terminată</translation>
     </message>
     <message numerus="yes">
-        <location filename="src/downloadmanager.cpp" line="165"/>
         <source>%n Download(s)</source>
         <translation type="unfinished"><numerusform></numerusform><numerusform></numerusform><numerusform></numerusform></translation>
     </message>
 <context>
     <name>DownloadSettings</name>
     <message>
-        <location filename="src/downloadsettings.cpp" line="36"/>
         <source>Change location...</source>
         <translation>Schimbă locația...</translation>
     </message>
     <message>
-        <location filename="src/downloadsettings.cpp" line="69"/>
         <source>Choose the download location</source>
         <translation>Alege locația de descărcare</translation>
     </message>
     <message>
-        <location filename="src/downloadsettings.cpp" line="81"/>
         <source>Download location changed.</source>
         <translation>Locația de descărcare a fost schimbată.</translation>
     </message>
     <message>
-        <location filename="src/downloadsettings.cpp" line="83"/>
         <source>Current downloads will still go in the previous location.</source>
         <translation>Fişierele în curs de descărcare vor fi salvate în locația anterioară.</translation>
     </message>
     <message>
-        <location filename="src/downloadsettings.cpp" line="94"/>
         <source>Downloading to: %1</source>
         <translation>Descărcare în: %1</translation>
     </message>
 <context>
     <name>DownloadView</name>
     <message>
-        <location filename="src/downloadview.cpp" line="38"/>
-        <location filename="src/downloadview.h" line="45"/>
         <source>Downloads</source>
         <translation>Descărcări</translation>
     </message>
 </context>
-<context>
-    <name>DownloadWidget</name>
-    <message>
-        <location filename="local/src/updatedialog.cpp" line="60"/>
-        <source>Downloading update...</source>
-        <translation>Descărcare actualizări...</translation>
-    </message>
-</context>
 <context>
     <name>Extra</name>
     <message>
-        <location filename="local/src/extra.cpp" line="251"/>
         <source>The executable file has been tempered with, maybe by a virus.</source>
         <translation>Fișierul executabil a fost infestat cu un virus.</translation>
     </message>
     <message>
-        <location filename="local/src/extra.cpp" line="252"/>
         <source>%1 will not run. Try installing again.</source>
         <translation>%1 nu va rula. Încercați să-l instalați din nou.</translation>
     </message>
     <message>
-        <location filename="local/src/extra.cpp" line="253"/>
         <source>Quit</source>
         <translation>Termină</translation>
     </message>
     <message>
-        <location filename="local/src/extra.cpp" line="254"/>
         <source>Reinstall</source>
         <translation>Reinstalare</translation>
     </message>
 <context>
     <name>GlobalShortcuts</name>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="36"/>
         <source>Play</source>
         <translation>Redare</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="37"/>
         <source>Pause</source>
         <translation>Pauză</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="38"/>
         <source>Play/Pause</source>
         <translation>Redare/Pauză</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="39"/>
         <source>Stop</source>
         <translation>Stop</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="40"/>
         <source>Stop playing after current track</source>
         <translation>Opreşte redarea după piesa curentă</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="41"/>
         <source>Next track</source>
         <translation>Piesa următoare</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="42"/>
         <source>Previous track</source>
         <translation>Piesa anterioară</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="43"/>
         <source>Increase volume</source>
         <translation>Creștere volumul</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="44"/>
         <source>Decrease volume</source>
         <translation>Descreștere volumul</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="45"/>
         <source>Mute</source>
         <translation>Mut</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="46"/>
         <source>Seek forward</source>
         <translation>Caută înainte</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="47"/>
         <source>Seek backward</source>
         <translation>Caută înapoi</translation>
     </message>
 <context>
     <name>HomeView</name>
     <message>
-        <location filename="src/homeview.cpp" line="58"/>
         <source>Search</source>
         <translation>Caută</translation>
     </message>
     <message>
-        <location filename="src/homeview.cpp" line="60"/>
         <source>Find videos and channels by keyword</source>
         <translation>Videoclipuri complete şi canale după cuvinte cheie</translation>
     </message>
     <message>
-        <location filename="src/homeview.cpp" line="65"/>
         <source>Browse</source>
         <translation>Rasfoieste</translation>
     </message>
     <message>
-        <location filename="src/homeview.cpp" line="67"/>
         <source>Browse videos by category</source>
         <translation>Uita-te la videoclipuri pe categori</translation>
     </message>
     <message>
-        <location filename="src/homeview.cpp" line="71"/>
         <source>Subscriptions</source>
         <translation>Abonamente</translation>
     </message>
     <message>
-        <location filename="src/homeview.cpp" line="73"/>
         <source>Channel subscriptions</source>
         <translation>Canale la care esti abonat</translation>
     </message>
     <message>
-        <location filename="src/homeview.h" line="44"/>
         <source>Make yourself comfortable</source>
         <translation>Fa-te confortabil</translation>
     </message>
 <context>
     <name>LoadingWidget</name>
     <message>
-        <location filename="src/loadingwidget.cpp" line="125"/>
         <source>Error</source>
         <translation>Eroare</translation>
     </message>
 <context>
     <name>MainWindow</name>
     <message>
-        <location filename="src/mainwindow.cpp" line="291"/>
+        <source>&amp;Window</source>
+        <translation>&amp;Fereastră</translation>
+    </message>
+    <message>
+        <source>&amp;Minimize</source>
+        <translation>&amp;Minimizează</translation>
+    </message>
+    <message>
         <source>&amp;Stop</source>
         <translation>&amp;Stop</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="292"/>
         <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="307"/>
+        <source>P&amp;revious</source>
+        <translation>&amp;Anterioare</translation>
+    </message>
+    <message>
+        <source>Go back to the previous track</source>
+        <translation>Mergi înapoi la piesa precedentă</translation>
+    </message>
+    <message>
         <source>S&amp;kip</source>
         <translation>O&amp;mite</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="308"/>
         <source>Skip to the next video</source>
         <translation>Treci la videoclipul următor</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1134"/>
-        <source>&amp;Pause</source>
-        <translation>&amp;Pauză</translation>
+        <source>&amp;Play</source>
+        <translation>&amp;Redare</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1135"/>
-        <source>Pause playback</source>
-        <translation>Pune redarea pe pauză</translation>
+        <source>Resume playback</source>
+        <translation>Rezumă redarea videoclipului</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="321"/>
         <source>&amp;Full Screen</source>
         <translation>Ec&amp;ran complet</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="322"/>
         <source>Go full screen</source>
         <translation>Vizualizează pe tot ecranul</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="336"/>
+        <source>&amp;Compact Mode</source>
+        <translation>Modul &amp;Compact</translation>
+    </message>
+    <message>
         <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="349"/>
+        <source>Open the &amp;YouTube Page</source>
+        <translation>Deschide Pagina &amp;YouTube</translation>
+    </message>
+    <message>
         <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="356"/>
+        <source>Copy the YouTube &amp;Link</source>
+        <translation>Copiază &amp;adresa videoclipului YouTube</translation>
+    </message>
+    <message>
         <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="363"/>
+        <source>Copy the Video Stream &amp;URL</source>
+        <translation>Copiază adresa &amp;fluxului video</translation>
+    </message>
+    <message>
         <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="370"/>
+        <source>Find Video &amp;Parts</source>
+        <translation>Caută &amp;Părți ale Videoclipului</translation>
+    </message>
+    <message>
         <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="376"/>
         <source>&amp;Remove</source>
         <translation>Ș&amp;terge</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="377"/>
         <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="383"/>
         <source>Move &amp;Up</source>
         <translation>Mută în &amp;sus</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="384"/>
         <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="390"/>
         <source>Move &amp;Down</source>
         <translation>Mută în &amp;jos</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="391"/>
         <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="402"/>
+        <source>&amp;Clear Recent Searches</source>
+        <translation>Șt&amp;erge Căutările Recente</translation>
+    </message>
+    <message>
         <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="407"/>
         <source>&amp;Quit</source>
         <translation>&amp;Ieșire</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="410"/>
         <source>Bye</source>
         <translation>La revedere</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="414"/>
         <source>&amp;Website</source>
         <translation>Site &amp;Web</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="416"/>
         <source>%1 on the Web</source>
         <translation>%1 pe Web</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="422"/>
+        <source>Make a &amp;Donation</source>
+        <translation>Fă o &amp;Donație</translation>
+    </message>
+    <message>
         <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="427"/>
         <source>&amp;About</source>
         <translation>&amp;Despre</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="429"/>
         <source>Info about %1</source>
         <translation>Informații despre %1</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="437"/>
         <source>Search</source>
         <translation>Căutare</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="456"/>
         <source>Mute volume</source>
         <translation>Oprire sunet</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="490"/>
-        <location filename="src/mainwindow.cpp" line="1609"/>
+        <source>&amp;Manually Start Playing</source>
+        <translation>Pornește Redarea &amp;Manual</translation>
+    </message>
+    <message>
+        <source>Manually start playing videos</source>
+        <translation>Pornește redarea videoclipurilor manual</translation>
+    </message>
+    <message>
         <source>&amp;Downloads</source>
         <translation>&amp;Descărcări</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="491"/>
         <source>Show details about video downloads</source>
         <translation>Arată detalii despre descărcările video</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="499"/>
         <source>&amp;Download</source>
         <translation>&amp;Descărcare</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="500"/>
         <source>Download the current video</source>
         <translation>Descarcă videoclipul curent</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="510"/>
         <source>Take &amp;Snapshot</source>
         <translation>Fă &amp;captură de ecran</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="517"/>
         <source>&amp;Subscribe to Channel</source>
         <translation>&amp;Aboneza-te la canal</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="525"/>
         <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="545"/>
         <source>&amp;Email</source>
         <translation>&amp;Email</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="546"/>
         <source>Email</source>
         <translation>Email</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="551"/>
         <source>&amp;Close</source>
         <translation>În&amp;chide</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="561"/>
         <source>&amp;Float on Top</source>
         <translation>&amp;Detașează</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="566"/>
         <source>&amp;Adjust Window Size</source>
         <translation>&amp;Ajustați dimensiunea ferestrei</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="571"/>
         <source>&amp;Stop After This Video</source>
         <translation>&amp;Oprește După Acest Videoclip</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="578"/>
         <source>&amp;Report an Issue...</source>
         <translation>&amp;Raportează o problemă...</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="582"/>
         <source>&amp;Refine Search...</source>
         <translation>&amp;Căutare rafinată...</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="594"/>
         <source>More...</source>
         <translation>Mai multe...</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="597"/>
         <source>&amp;Related Videos</source>
         <translation>&amp;Videoclipuri asemanatoare</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="599"/>
         <source>Watch videos related to the current one</source>
         <translation>Uita-te la videoclipuri similare cu cel curent</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="605"/>
         <source>Open in &amp;Browser...</source>
         <translation>Deschide in &amp;Navigatorul web...</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="612"/>
-        <source>&amp;Love %1? Rate it!</source>
-        <translation>&amp;Vă place %1? Evaluați-l!</translation>
+        <source>Restricted Mode</source>
+        <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="633"/>
-        <source>&amp;Application</source>
-        <translation>&amp;Aplicație</translation>
+        <source>Hide videos that may contain inappropriate content</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <source>&amp;Love %1? Rate it!</source>
+        <translation>&amp;Vă place %1? Evaluați-l!</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="618"/>
         <source>Buy %1...</source>
         <translation>Cumpără %1...</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="647"/>
+        <source>&amp;Application</source>
+        <translation>&amp;Aplicație</translation>
+    </message>
+    <message>
         <source>&amp;Playback</source>
         <translation>&amp;Redare</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="661"/>
         <source>&amp;Playlist</source>
         <translation>&amp;Listă de redare</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="670"/>
         <source>&amp;Video</source>
         <translation>&amp;Video</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="686"/>
-        <source>&amp;View</source>
-        <translation>Vi&amp;zualizare</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="695"/>
         <source>&amp;Share</source>
         <translation>Î&amp;mpărtășește</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="709"/>
+        <source>&amp;View</source>
+        <translation>Vi&amp;zualizare</translation>
+    </message>
+    <message>
         <source>&amp;Help</source>
         <translation>&amp;Ajutor</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="751"/>
         <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="1021"/>
-        <location filename="src/mainwindow.cpp" line="1027"/>
+        <source>Choose your content location</source>
+        <translation>Alege localizarea continutului</translation>
+    </message>
+    <message>
         <source>Opening %1</source>
         <translation>Deschidere %1</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1080"/>
         <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="1081"/>
         <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="1086"/>
         <source>Close and cancel download</source>
         <translation>Închide și anulează descărcarea</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1087"/>
         <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="1158"/>
-        <source>&amp;Loading...</source>
-        <translation>&amp;Se încarcă...</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="1264"/>
-        <source>Leave &amp;Full Screen</source>
-        <translation>Ieși din Ec&amp;ran Complet</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="1718"/>
-        <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="1722"/>
-        <source>Remind me later</source>
-        <translation>Reamintește-mi mai târziu</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="1723"/>
-        <source>Update</source>
-        <translation>Actualizează</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="1127"/>
         <source>Error: %1</source>
         <translation>Eroare: %1</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="300"/>
-        <source>P&amp;revious</source>
-        <translation>&amp;Anterioare</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="301"/>
-        <source>Go back to the previous track</source>
-        <translation>Mergi înapoi la piesa precedentă</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="335"/>
-        <source>&amp;Compact Mode</source>
-        <translation>Modul &amp;Compact</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="348"/>
-        <source>Open the &amp;YouTube Page</source>
-        <translation>Deschide Pagina &amp;YouTube</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="355"/>
-        <source>Copy the YouTube &amp;Link</source>
-        <translation>Copiază &amp;adresa videoclipului YouTube</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="362"/>
-        <source>Copy the Video Stream &amp;URL</source>
-        <translation>Copiază adresa &amp;fluxului video</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="369"/>
-        <source>Find Video &amp;Parts</source>
-        <translation>Caută &amp;Părți ale Videoclipului</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="397"/>
-        <source>&amp;Clear Recent Searches</source>
-        <translation>Șt&amp;erge Căutările Recente</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="421"/>
-        <source>Make a &amp;Donation</source>
-        <translation>Fă o &amp;Donație</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="483"/>
-        <source>&amp;Manually Start Playing</source>
-        <translation>Pornește Redarea &amp;Manual</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="484"/>
-        <source>Manually start playing videos</source>
-        <translation>Pornește redarea videoclipurilor manual</translation>
+        <source>&amp;Pause</source>
+        <translation>&amp;Pauză</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="847"/>
-        <source>Choose your content location</source>
-        <translation>Alege localizarea continutului</translation>
+        <source>Pause playback</source>
+        <translation>Pune redarea pe pauză</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="314"/>
-        <location filename="src/mainwindow.cpp" line="1142"/>
-        <location filename="src/mainwindow.cpp" line="1150"/>
-        <source>&amp;Play</source>
-        <translation>&amp;Redare</translation>
+        <source>&amp;Loading...</source>
+        <translation>&amp;Se încarcă...</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="315"/>
-        <location filename="src/mainwindow.cpp" line="1143"/>
-        <location filename="src/mainwindow.cpp" line="1151"/>
-        <source>Resume playback</source>
-        <translation>Rezumă redarea videoclipului</translation>
+        <source>Leave &amp;Full Screen</source>
+        <translation>Ieși din Ec&amp;ran Complet</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1437"/>
         <source>Remaining time: %1</source>
         <translation>Timp rămas : %1</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1528"/>
         <source>Volume at %1%</source>
         <translation>Volum %1</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1534"/>
         <source>Volume is muted</source>
         <translation>Sunetul este oprit</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1537"/>
         <source>Volume is unmuted</source>
         <translation>Sunetul este pornit</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1548"/>
         <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="1595"/>
         <source>Your privacy is now safe</source>
         <translation>Intimitatea dumneavoastră este acum în siguranță</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1610"/>
         <source>Downloads complete</source>
         <translation>Descărcări complete</translation>
     </message>
+    <message>
+        <source>%1 version %2 is now available.</source>
+        <translation>Versiunea %1 a %2 este acum disponibilă.</translation>
+    </message>
+    <message>
+        <source>Remind me later</source>
+        <translation>Reamintește-mi mai târziu</translation>
+    </message>
+    <message>
+        <source>Update</source>
+        <translation>Actualizează</translation>
+    </message>
 </context>
 <context>
     <name>MediaView</name>
     <message>
-        <location filename="src/mediaview.cpp" line="702"/>
         <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="710"/>
         <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="711"/>
         <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="800"/>
         <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="801"/>
         <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="833"/>
+        <source>Get the full version</source>
+        <translation>Obține versiunea integrală</translation>
+    </message>
+    <message>
         <source>Continue</source>
         <translation>Continuă</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="988"/>
+        <source>Downloading %1</source>
+        <translation>Descărcare %1</translation>
+    </message>
+    <message>
         <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="1001"/>
         <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="1003"/>
         <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="1096"/>
         <source>Sent from %1</source>
         <translation>Trimis din %1</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="1128"/>
         <source>Unsubscribe from %1</source>
         <translation>Dezaboneaza-te de la %1</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="1132"/>
         <source>Subscribe to %1</source>
         <translation>Aboneaza-te de la %1</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="1166"/>
         <source>Unsubscribed from %1</source>
         <translation>Dezabonează-te de la %1</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="1169"/>
         <source>Subscribed to %1</source>
         <translation>Abonează-te la %1</translation>
     </message>
-    <message>
-        <location filename="src/mediaview.cpp" line="808"/>
-        <source>Get the full version</source>
-        <translation>Obține versiunea integrală</translation>
-    </message>
-    <message>
-        <location filename="src/mediaview.cpp" line="847"/>
-        <source>Downloading %1</source>
-        <translation>Descărcare %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>O nouă versiune %1 este disponibilă!</translation>
     </message>
     <message>
-        <location filename="local/src/updatedialog.cpp" line="28"/>
         <source>%1 %2 is now available. You have %3.</source>
         <translation>%1 %2 este acum disponibilă. Tu ai %3.</translation>
     </message>
     <message>
-        <location filename="local/src/updatedialog.cpp" line="33"/>
         <source>Would you like to download it now?</source>
         <translation>Dorești descărcarea ei acum?</translation>
     </message>
     <message>
-        <location filename="local/src/updatedialog.cpp" line="39"/>
         <source>Skip This Version</source>
         <translation>Renunță la Această Versiune</translation>
     </message>
     <message>
-        <location filename="local/src/updatedialog.cpp" line="43"/>
         <source>Remind Me Later</source>
         <translation>Amintește-mi Mai Târziu</translation>
     </message>
     <message>
-        <location filename="local/src/updatedialog.cpp" line="47"/>
         <source>Install Update</source>
         <translation>Instalează Actualizări</translation>
     </message>
 <context>
     <name>PasteLineEdit</name>
     <message>
-        <location filename="local/src/pastelineedit.cpp" line="6"/>
         <source>Paste</source>
         <translation>Adaugă</translation>
     </message>
 <context>
     <name>PlaylistItemDelegate</name>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="209"/>
         <source>%1 views</source>
         <translation>%1 vizionări</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="309"/>
         <source>%1 of %2 (%3) — %4</source>
         <translation>%1 din %2 (%3) — %4</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="316"/>
         <source>Preparing</source>
         <translation>Se pregateste</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="318"/>
         <source>Failed</source>
         <translation>Eșec</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="320"/>
         <source>Completed</source>
         <translation>Terminat</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="322"/>
         <source>Stopped</source>
         <translation>Oprit</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="358"/>
         <source>Stop downloading</source>
         <translation>Oprește descărcarea</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="368"/>
         <source>Show in %1</source>
         <translation>Arată în %1</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="370"/>
         <source>Open parent folder</source>
         <translation>Deschide directorul părinte</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="379"/>
         <source>Restart downloading</source>
         <translation>Reporneste descărcarea</translation>
     </message>
 <context>
     <name>PlaylistModel</name>
     <message>
-        <location filename="src/playlistmodel.cpp" line="70"/>
         <source>Searching...</source>
         <translation>Căutare...</translation>
     </message>
     <message>
-        <location filename="src/playlistmodel.cpp" line="71"/>
         <source>Show %1 More</source>
         <translation>Afișează încă %1</translation>
     </message>
     <message>
-        <location filename="src/playlistmodel.cpp" line="72"/>
         <source>No videos</source>
         <translation>Nici un videoclip</translation>
     </message>
     <message>
-        <location filename="src/playlistmodel.cpp" line="73"/>
         <source>No more videos</source>
         <translation>Nu mai sunt videoclipuri</translation>
     </message>
 <context>
     <name>RefineSearchWidget</name>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="49"/>
         <source>Sort by</source>
         <translation>Sortează după</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="53"/>
         <source>Relevance</source>
         <translation>Relevanță</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="54"/>
-        <location filename="src/refinesearchwidget.cpp" line="69"/>
         <source>Date</source>
         <translation>Dată</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="55"/>
         <source>View Count</source>
         <translation>Vizualizări</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="56"/>
         <source>Rating</source>
         <translation>Evaluare</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="73"/>
         <source>Anytime</source>
         <translation>Oricând</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="74"/>
         <source>Today</source>
         <translation>Astăzi</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="75"/>
         <source>7 Days</source>
         <translation>7 Zile</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="76"/>
         <source>30 Days</source>
         <translation>30 Zile</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="89"/>
         <source>Duration</source>
         <translation>Durată</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="93"/>
-        <location filename="src/refinesearchwidget.cpp" line="119"/>
         <source>All</source>
         <translation>Toate</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="94"/>
         <source>Short</source>
         <translation>Scurt</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="95"/>
         <source>Medium</source>
         <translation>Mediu</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="96"/>
         <source>Long</source>
         <translation>Lung</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="99"/>
         <source>Less than 4 minutes</source>
         <translation>Mai scurt de 4 minute</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="100"/>
         <source>Between 4 and 20 minutes</source>
         <translation>Între 4 și 20 minute</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="101"/>
         <source>Longer than 20 minutes</source>
         <translation>Mai lung de 20 minute</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="115"/>
         <source>Quality</source>
         <translation>Calitate</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="120"/>
         <source>High Definition</source>
         <translation>Înaltă Definiție HD</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="123"/>
         <source>720p or higher</source>
         <translation>720p sau definiție mai mare</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="136"/>
         <source>Done</source>
         <translation>Terminat</translation>
     </message>
 <context>
     <name>RegionsView</name>
     <message>
-        <location filename="src/regionsview.cpp" line="39"/>
         <source>Done</source>
         <translation>Terminat</translation>
     </message>
 <context>
     <name>SearchLineEdit</name>
     <message>
-        <location filename="src/searchlineedit.cpp" line="55"/>
         <source>Search</source>
         <translation>Caută</translation>
     </message>
 <context>
     <name>SearchView</name>
     <message>
-        <location filename="src/searchview.cpp" line="83"/>
         <source>Welcome to &lt;a href=&apos;%1&apos;&gt;%2&lt;/a&gt;,</source>
         <translation>Bine ați venit la &lt;a href=&apos;%1&apos;&gt;%2&lt;/a&gt;,</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="200"/>
-        <source>Get the full version</source>
-        <translation>Obține versiunea integrală</translation>
-    </message>
-    <message>
-        <location filename="src/searchview.cpp" line="110"/>
         <source>Enter</source>
         <extracomment>&quot;Enter&quot;, as in &quot;type&quot;. The whole phrase says: &quot;Enter a keyword to start watching videos&quot;</extracomment>
         <translation>Introduceți</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="117"/>
         <source>a keyword</source>
         <translation>un cuvânt cheie</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="118"/>
         <source>a channel</source>
         <translation>un canal</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="125"/>
         <source>to start watching videos.</source>
         <translation>pentru a începe să vizionați videoclipuri.</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="156"/>
         <source>Watch</source>
         <translation>Urmărește</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="174"/>
         <source>Recent keywords</source>
         <translation>Căutări recente</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="186"/>
         <source>Recent channels</source>
         <translation>Canale recente</translation>
     </message>
+    <message>
+        <source>Get the full version</source>
+        <translation>Obține versiunea integrală</translation>
+    </message>
 </context>
 <context>
     <name>SidebarHeader</name>
     <message>
-        <location filename="src/sidebarheader.cpp" line="38"/>
-        <location filename="src/sidebarheader.cpp" line="45"/>
         <source>&amp;Back</source>
         <translation>Î&amp;napoi</translation>
     </message>
     <message>
-        <location filename="src/sidebarheader.cpp" line="76"/>
         <source>Forward to %1</source>
         <translation>Avanseaza la %1</translation>
     </message>
     <message>
-        <location filename="src/sidebarheader.cpp" line="89"/>
         <source>Back to %1</source>
         <translation>Inapoi la %1</translation>
     </message>
 <context>
     <name>SidebarWidget</name>
     <message>
-        <location filename="src/sidebarwidget.cpp" line="68"/>
         <source>Refine Search</source>
         <translation>Căutare Rafinată</translation>
     </message>
     <message>
-        <location filename="src/sidebarwidget.cpp" line="167"/>
         <source>Did you mean: %1</source>
         <translation>Ai vrut să spui: %1</translation>
     </message>
 <context>
     <name>SnapshotSettings</name>
     <message>
-        <location filename="src/snapshotsettings.cpp" line="47"/>
         <source>Change location...</source>
         <translation>Schimbă locația...</translation>
     </message>
     <message>
-        <location filename="src/snapshotsettings.cpp" line="64"/>
         <source>Snapshot saved to %1</source>
         <translation>Captură de ecran salvată la %1</translation>
     </message>
     <message>
-        <location filename="src/snapshotsettings.cpp" line="117"/>
         <source>Snapshots location changed.</source>
         <translation type="unfinished"/>
     </message>
 <context>
     <name>StandardFeedsView</name>
     <message>
-        <location filename="src/standardfeedsview.cpp" line="107"/>
         <source>Most Popular</source>
         <translation>Cel mai popular</translation>
     </message>
 </context>
+<context>
+    <name>UpdateDialog</name>
+    <message>
+        <source>Downloading update...</source>
+        <translation>Descărcare actualizări...</translation>
+    </message>
+    <message>
+        <source>Downloading %1...</source>
+        <translation type="unfinished"/>
+    </message>
+</context>
 <context>
     <name>Video</name>
     <message>
-        <location filename="src/video.cpp" line="287"/>
         <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="292"/>
-        <source>Network error: %1 for %2</source>
-        <translation>Eroare reţea: %1 pentru %2</translation>
-    </message>
 </context>
 <context>
     <name>YTRegions</name>
     <message>
-        <location filename="src/ytregions.cpp" line="28"/>
         <source>Algeria</source>
         <translation>Algeria</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="29"/>
         <source>Argentina</source>
         <translation>Argentina</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="30"/>
         <source>Australia</source>
         <translation>Australia</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="31"/>
         <source>Belgium</source>
         <translation>Belgia</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="32"/>
         <source>Brazil</source>
         <translation>Brazilia</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="33"/>
         <source>Canada</source>
         <translation>Canada</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="34"/>
         <source>Chile</source>
         <translation>Chile</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="35"/>
         <source>Colombia</source>
         <translation>Columbia</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="36"/>
         <source>Czech Republic</source>
         <translation>Cehia</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="37"/>
         <source>Egypt</source>
         <translation>Egipt</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="38"/>
         <source>France</source>
         <translation>Franta</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="39"/>
         <source>Germany</source>
         <translation>Germania</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="40"/>
         <source>Ghana</source>
         <translation>Ghana</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="41"/>
         <source>Greece</source>
         <translation>Grecia</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="42"/>
         <source>Hong Kong</source>
         <translation>Hong Kong</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="43"/>
         <source>Hungary</source>
         <translation>Ungaria</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="44"/>
         <source>India</source>
         <translation>India</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="45"/>
         <source>Indonesia</source>
         <translation>Indonesia</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="46"/>
         <source>Ireland</source>
         <translation>Irlanda</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="47"/>
         <source>Israel</source>
         <translation>Israel</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="48"/>
         <source>Italy</source>
         <translation>Italia</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="49"/>
         <source>Japan</source>
         <translation>Japonia</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="50"/>
         <source>Jordan</source>
         <translation>Iordania</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="51"/>
         <source>Kenya</source>
         <translation>Kenya</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="52"/>
         <source>Malaysia</source>
         <translation>Malaezia</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="53"/>
         <source>Mexico</source>
         <translation>Mexic</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="54"/>
         <source>Morocco</source>
         <translation>Maroc</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="55"/>
         <source>Netherlands</source>
         <translation>Olanda</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="56"/>
         <source>New Zealand</source>
         <translation>Noua Zeelanda</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="57"/>
         <source>Nigeria</source>
         <translation>Nigeria</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="58"/>
         <source>Peru</source>
         <translation>Peru</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="59"/>
         <source>Philippines</source>
         <translation>Filipine</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="60"/>
         <source>Poland</source>
         <translation>Polonia</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="61"/>
         <source>Russia</source>
         <translation>Rusia</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="62"/>
         <source>Saudi Arabia</source>
         <translation>Arabia Saudita</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="63"/>
         <source>Singapore</source>
         <translation>Singapore</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="64"/>
         <source>South Africa</source>
         <translation>Africa de Sud</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="65"/>
         <source>South Korea</source>
         <translation>Coreea de Sud</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="66"/>
         <source>Spain</source>
         <translation>Spania</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="67"/>
         <source>Sweden</source>
         <translation>Suedia</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="68"/>
         <source>Taiwan</source>
         <translation>Taiwan</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="69"/>
         <source>Tunisia</source>
         <translation>Tunisia</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="70"/>
         <source>Turkey</source>
         <translation>Turcia</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="71"/>
         <source>Uganda</source>
         <translation>Uganda</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="72"/>
         <source>United Arab Emirates</source>
         <translation>Emiratele Arabe Unite</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="73"/>
         <source>United Kingdom</source>
         <translation>Marea Britanie</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="74"/>
         <source>Yemen</source>
         <translation>Yemen</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="148"/>
         <source>Worldwide</source>
         <translation>Global</translation>
     </message>
index da60d181431bc666b3549cb0de3e2ea10f862be9..a810188e6c80de052613b103c2017fe628ef48e8 100644 (file)
@@ -2,67 +2,42 @@
 <context>
     <name>AboutView</name>
     <message>
-        <location filename="src/aboutview.cpp" line="58"/>
         <source>There&apos;s life outside the browser!</source>
         <translation>Жизнь вне браузера!</translation>
     </message>
     <message>
-        <location filename="src/aboutview.cpp" line="59"/>
         <source>Version %1</source>
         <translation>Версия %1</translation>
     </message>
     <message>
-        <location filename="src/aboutview.cpp" line="64"/>
         <source>Licensed to: %1</source>
         <translation>Зарегистрирована на: %1</translation>
     </message>
     <message>
-        <location filename="src/aboutview.cpp" line="68"/>
         <source>%1 is Free Software but its development takes precious time.</source>
         <translation>%1 - свободное ПО, но его разработка отнимает драгоценное время.</translation>
     </message>
     <message>
-        <location filename="src/aboutview.cpp" line="69"/>
         <source>Please &lt;a href=&apos;%1&apos;&gt;donate&lt;/a&gt; to support the continued development of %2.</source>
         <translation>Пожалуйста, &lt;a href=&apos;%1&apos;&gt;поддержите&lt;/a&gt; дальнейшую разработку %2.</translation>
     </message>
     <message>
-        <location filename="src/aboutview.cpp" line="73"/>
-        <source>You may want to try my other apps as well:</source>
-        <translation>Вы также можете попробовать другие мои приложения:</translation>
-    </message>
-    <message>
-        <location filename="src/aboutview.cpp" line="76"/>
-        <source>%1, a YouTube music player</source>
-        <translation>%1, плеер музыки c YouTube </translation>
-    </message>
-    <message>
-        <location filename="src/aboutview.cpp" line="80"/>
-        <source>%1, a music player</source>
-        <translation>%1, музыкальный плеер</translation>
-    </message>
-    <message>
-        <location filename="src/aboutview.cpp" line="86"/>
         <source>Translate %1 to your native language using %2</source>
         <translation>Перевести %1 на ваш родной язык с помощью %2</translation>
     </message>
     <message>
-        <location filename="src/aboutview.cpp" line="91"/>
         <source>Icon designed by %1.</source>
         <translation>Автор значка %1.</translation>
     </message>
     <message>
-        <location filename="src/aboutview.cpp" line="95"/>
         <source>Released under the &lt;a href=&apos;%1&apos;&gt;GNU General Public License&lt;/a&gt;</source>
         <translation>Выпущено на условиях &lt;a href=&apos;%1&apos;&gt;GNU General Public License&lt;/a&gt;</translation>
     </message>
     <message>
-        <location filename="src/aboutview.cpp" line="110"/>
         <source>&amp;Close</source>
         <translation>&amp;Закрыть</translation>
     </message>
     <message>
-        <location filename="src/aboutview.h" line="40"/>
         <source>About</source>
         <translation>О программе</translation>
     </message>
 <context>
     <name>ActivationDialog</name>
     <message>
-        <location filename="local/src/activationdialog.cpp" line="17"/>
         <source>Enter your License Details</source>
         <translation>Введите ваши детали лицензии</translation>
     </message>
     <message>
-        <location filename="local/src/activationdialog.cpp" line="29"/>
         <source>&amp;Email:</source>
         <translation>&amp;Email:</translation>
     </message>
     <message>
-        <location filename="local/src/activationdialog.cpp" line="35"/>
         <source>&amp;Code:</source>
         <translation>&amp;Код:</translation>
     </message>
 <context>
     <name>ActivationView</name>
     <message>
-        <location filename="local/src/activationview.cpp" line="47"/>
         <source>Please license %1</source>
         <translation>  
 Лицензия %1</translation>
     </message>
     <message>
-        <location filename="local/src/activationview.cpp" line="51"/>
         <source>This demo has expired.</source>
         <translation>Демонстрационный период истек.</translation>
     </message>
     <message>
-        <location filename="local/src/activationview.cpp" line="53"/>
         <source>The full version allows you to watch videos without interruptions.</source>
-        <oldsource>The full version allows you to download videos longer than %1 minutes and to watch videos without interruptions.</oldsource>
         <translation>Полная версия позволит смотреть видео без пауз.</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>
     </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>
     </message>
     <message>
-        <location filename="local/src/activationview.cpp" line="70"/>
         <source>Use Demo</source>
         <translation>Использовать демо версию</translation>
     </message>
     <message>
-        <location filename="local/src/activationview.cpp" line="77"/>
         <source>Enter License</source>
         <translation>Ввести лицензию</translation>
     </message>
     <message>
-        <location filename="local/src/activationview.cpp" line="85"/>
         <source>Buy License</source>
         <translation>Купить лицензию</translation>
     </message>
 </context>
+<context>
+    <name>AppWidget</name>
+    <message>
+        <source>Download</source>
+        <translation>Загрузить</translation>
+    </message>
+</context>
 <context>
     <name>ChannelAggregator</name>
     <message>
-        <location filename="src/channelaggregator.cpp" line="183"/>
         <source>By %1</source>
         <translation>От %1</translation>
     </message>
     <message numerus="yes">
-        <location filename="src/channelaggregator.cpp" line="185"/>
         <source>You have %n new video(s)</source>
-        <translation><numerusform>У вас %n новое видео</numerusform><numerusform>У вас %n новых видео</numerusform><numerusform>У вас %n новых видео</numerusform><numerusform>У вас %n новых видео</numerusform></translation>
+        <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="67"/>
         <source>All Videos</source>
         <translation>Все видео</translation>
     </message>
     <message>
-        <location filename="src/channelitemdelegate.cpp" line="85"/>
         <source>Unwatched Videos</source>
         <translation>Не просмотренное видео</translation>
     </message>
 <context>
     <name>ChannelView</name>
     <message>
-        <location filename="src/channelview.cpp" line="151"/>
-        <source>Mark all as watched</source>
-        <translation>Отметить все как просмотренное</translation>
-    </message>
-    <message>
-        <location filename="src/channelview.cpp" line="159"/>
-        <source>Show Updated</source>
-        <translation>Показать обновленные</translation>
-    </message>
-    <message>
-        <location filename="src/channelview.cpp" line="103"/>
         <source>Name</source>
         <translation>Название</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="110"/>
         <source>Last Updated</source>
         <translation>Недавно обновленные</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="117"/>
         <source>Last Added</source>
         <translation>Недавно добавленные</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="124"/>
         <source>Last Watched</source>
         <translation>Недавно просмотренные</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="131"/>
         <source>Most Watched</source>
         <translation>Наиболее просматриваемые</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="139"/>
         <source>Sort by</source>
         <translation>Сортировать по</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="222"/>
+        <source>Mark all as watched</source>
+        <translation>Отметить все как просмотренное</translation>
+    </message>
+    <message>
+        <source>Show Updated</source>
+        <translation>Показать обновленные</translation>
+    </message>
+    <message>
         <source>All Videos</source>
         <translation>Все видео</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="226"/>
         <source>Unwatched Videos</source>
         <translation>Не просмотренное видео</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="244"/>
         <source>Mark as Watched</source>
         <translation>Отметить как Просмотренное.</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="257"/>
         <source>Unsubscribe</source>
         <translation>Отписаться</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="270"/>
         <source>There are no updated subscriptions at this time.</source>
         <translation>В настоящее время нет обновлений подписок.</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="272"/>
         <source>You have no subscriptions. Use the star symbol to subscribe to channels.</source>
         <translation>У вас нет подписок. Используйте символ звездочки чтобы подписаться на каналы.</translation>
     </message>
 <context>
     <name>ClearButton</name>
     <message>
-        <location filename="src/exlineedit.cpp" line="6"/>
         <source>Clear</source>
         <translation>Очистить</translation>
     </message>
 <context>
     <name>DataUtils</name>
     <message>
-        <location filename="src/datautils.cpp" line="88"/>
         <source>Just now</source>
         <translation>Только что</translation>
     </message>
     <message numerus="yes">
-        <location filename="src/datautils.cpp" line="90"/>
-        <source>%n minute(s) ago</source>
-        <translation><numerusform>%n минуту назад</numerusform><numerusform>%n минуты назад</numerusform><numerusform>%n минут назад</numerusform><numerusform>%n минут(-у,-ы) назад</numerusform></translation>
-    </message>
-    <message numerus="yes">
-        <location filename="src/datautils.cpp" line="92"/>
         <source>%n hour(s) ago</source>
-        <translation><numerusform>%n час назад</numerusform><numerusform>%n часа назад</numerusform><numerusform>%n часов назад</numerusform><numerusform>%n час(-а,-ов) назад</numerusform></translation>
+        <translation type="unfinished"><numerusform></numerusform><numerusform></numerusform><numerusform></numerusform><numerusform></numerusform></translation>
     </message>
     <message numerus="yes">
-        <location filename="src/datautils.cpp" line="94"/>
         <source>%n day(s) ago</source>
-        <translation><numerusform>%n день назад</numerusform><numerusform>%n дня назад</numerusform><numerusform>%n дней назад</numerusform><numerusform>%n день(-ней,-ня) назад</numerusform></translation>
+        <translation type="unfinished"><numerusform></numerusform><numerusform></numerusform><numerusform></numerusform><numerusform></numerusform></translation>
     </message>
     <message numerus="yes">
-        <location filename="src/datautils.cpp" line="96"/>
         <source>%n weeks(s) ago</source>
-        <translation><numerusform>%n неделю назад</numerusform><numerusform>%n недели назад</numerusform><numerusform>%n недель назад</numerusform><numerusform>%n неделю(-ли,-ль) назад</numerusform></translation>
+        <translation type="unfinished"><numerusform></numerusform><numerusform></numerusform><numerusform></numerusform><numerusform></numerusform></translation>
     </message>
     <message numerus="yes">
-        <location filename="src/datautils.cpp" line="98"/>
         <source>%n month(s) ago</source>
-        <translation><numerusform>%n месяц назад</numerusform><numerusform>%n месяца назад</numerusform><numerusform>%n месяцев назад</numerusform><numerusform>%n месяц(-а,-ев) назад</numerusform></translation>
+        <translation type="unfinished"><numerusform></numerusform><numerusform></numerusform><numerusform></numerusform><numerusform></numerusform></translation>
     </message>
 </context>
 <context>
     <name>DownloadItem</name>
     <message>
-        <location filename="src/downloaditem.cpp" line="406"/>
         <source>bytes</source>
         <translation>байт</translation>
     </message>
     <message>
-        <location filename="src/downloaditem.cpp" line="409"/>
         <source>KB</source>
         <translation>Кбайт</translation>
     </message>
     <message>
-        <location filename="src/downloaditem.cpp" line="412"/>
         <source>MB</source>
         <translation>Мбайт</translation>
     </message>
     <message>
-        <location filename="src/downloaditem.cpp" line="421"/>
         <source>bytes/sec</source>
         <translation>байт/сек</translation>
     </message>
     <message>
-        <location filename="src/downloaditem.cpp" line="424"/>
         <source>KB/sec</source>
         <translation>Кбайт/сек</translation>
     </message>
     <message>
-        <location filename="src/downloaditem.cpp" line="427"/>
         <source>MB/sec</source>
         <translation>Мбайт/сек</translation>
     </message>
     <message>
-        <location filename="src/downloaditem.cpp" line="433"/>
         <source>seconds</source>
         <translation>секунд</translation>
     </message>
     <message>
-        <location filename="src/downloaditem.cpp" line="436"/>
         <source>minutes</source>
         <translation>минут</translation>
     </message>
     <message>
-        <location filename="src/downloaditem.cpp" line="439"/>
         <source>%4 %5 remaining</source>
         <translation>осталось %4 %5</translation>
     </message>
 <context>
     <name>DownloadManager</name>
     <message>
-        <location filename="src/downloadmanager.cpp" line="77"/>
         <source>This is just the demo version of %1.</source>
         <translation>Это всего лишь демо версия %1.</translation>
     </message>
     <message>
-        <location filename="src/downloadmanager.cpp" line="79"/>
         <source>It can only download videos shorter than %1 minutes so you can test the download functionality.</source>
         <translation>Можно загружать только видео не длиннее %1 минут, для проверки функциональности загрузчика. </translation>
     </message>
     <message>
-        <location filename="src/downloadmanager.cpp" line="85"/>
         <source>Continue</source>
         <translation>Продолжить</translation>
     </message>
     <message>
-        <location filename="src/downloadmanager.cpp" line="86"/>
         <source>Get the full version</source>
         <translation>Получить полную версию</translation>
     </message>
     <message>
-        <location filename="src/downloadmanager.cpp" line="157"/>
         <source>%1 downloaded in %2</source>
         <translation>%1 загружен в %2</translation>
     </message>
     <message>
-        <location filename="src/downloadmanager.cpp" line="160"/>
         <source>Download finished</source>
         <translation>Загрузка завершена</translation>
     </message>
     <message numerus="yes">
-        <location filename="src/downloadmanager.cpp" line="165"/>
         <source>%n Download(s)</source>
-        <translation><numerusform>Скачано %n раз</numerusform><numerusform>Скачано %n раза</numerusform><numerusform>Скачано %n раз</numerusform><numerusform>Скачано %n раз(-а)</numerusform></translation>
+        <translation type="unfinished"><numerusform></numerusform><numerusform></numerusform><numerusform></numerusform><numerusform></numerusform></translation>
     </message>
 </context>
 <context>
     <name>DownloadSettings</name>
     <message>
-        <location filename="src/downloadsettings.cpp" line="36"/>
         <source>Change location...</source>
         <translation>Изменить путь...</translation>
     </message>
     <message>
-        <location filename="src/downloadsettings.cpp" line="69"/>
         <source>Choose the download location</source>
         <translation>Выбрать путь загрузки</translation>
     </message>
     <message>
-        <location filename="src/downloadsettings.cpp" line="81"/>
         <source>Download location changed.</source>
         <translation>Путь для загружаемых файлов изменён.</translation>
     </message>
     <message>
-        <location filename="src/downloadsettings.cpp" line="83"/>
         <source>Current downloads will still go in the previous location.</source>
         <translation>Файлы, загружаемые в данный момент будут сохранены по прежнему адресу.</translation>
     </message>
     <message>
-        <location filename="src/downloadsettings.cpp" line="94"/>
         <source>Downloading to: %1</source>
         <translation>Файлы загружаются в %1</translation>
     </message>
 <context>
     <name>DownloadView</name>
     <message>
-        <location filename="src/downloadview.cpp" line="38"/>
-        <location filename="src/downloadview.h" line="45"/>
         <source>Downloads</source>
         <translation>Загрузки</translation>
     </message>
 </context>
-<context>
-    <name>DownloadWidget</name>
-    <message>
-        <location filename="local/src/updatedialog.cpp" line="60"/>
-        <source>Downloading update...</source>
-        <translation>Загрузка обновления....</translation>
-    </message>
-</context>
 <context>
     <name>Extra</name>
     <message>
-        <location filename="local/src/extra.cpp" line="251"/>
         <source>The executable file has been tempered with, maybe by a virus.</source>
-        <translation type="unfinished"/>
+        <translation>Исполняемый файл был изменен, возможно вирусом.</translation>
     </message>
     <message>
-        <location filename="local/src/extra.cpp" line="252"/>
         <source>%1 will not run. Try installing again.</source>
         <translation>%1 не запущено. Попробуйте установить ещё раз.</translation>
     </message>
     <message>
-        <location filename="local/src/extra.cpp" line="253"/>
         <source>Quit</source>
         <translation>Выйти</translation>
     </message>
     <message>
-        <location filename="local/src/extra.cpp" line="254"/>
         <source>Reinstall</source>
         <translation>Переустановить</translation>
     </message>
 <context>
     <name>GlobalShortcuts</name>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="36"/>
         <source>Play</source>
         <translation>Воспроизведение</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="37"/>
         <source>Pause</source>
         <translation>Пауза</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="38"/>
         <source>Play/Pause</source>
         <translation>Воспр./Пауза</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="39"/>
         <source>Stop</source>
         <translation>Стоп</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="40"/>
         <source>Stop playing after current track</source>
         <translation>Стоп после этого клипа</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="41"/>
         <source>Next track</source>
         <translation>След. клип</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="42"/>
         <source>Previous track</source>
         <translation>Пред. клип</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="43"/>
         <source>Increase volume</source>
         <translation>Громче</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="44"/>
         <source>Decrease volume</source>
         <translation>Тише</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="45"/>
         <source>Mute</source>
         <translation>Заглушить</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="46"/>
         <source>Seek forward</source>
         <translation>Перемотать вперед</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="47"/>
         <source>Seek backward</source>
         <translation>Перемотать назад</translation>
     </message>
 <context>
     <name>HomeView</name>
     <message>
-        <location filename="src/homeview.cpp" line="58"/>
         <source>Search</source>
         <translation>Поиск</translation>
     </message>
     <message>
-        <location filename="src/homeview.cpp" line="60"/>
         <source>Find videos and channels by keyword</source>
         <translation>Поиск видео и каналов по запросу</translation>
     </message>
     <message>
-        <location filename="src/homeview.cpp" line="65"/>
         <source>Browse</source>
         <translation>Смотреть</translation>
     </message>
     <message>
-        <location filename="src/homeview.cpp" line="67"/>
         <source>Browse videos by category</source>
         <translation>Смотреть видео по категориям</translation>
     </message>
     <message>
-        <location filename="src/homeview.cpp" line="71"/>
         <source>Subscriptions</source>
         <translation>Подписки</translation>
     </message>
     <message>
-        <location filename="src/homeview.cpp" line="73"/>
         <source>Channel subscriptions</source>
         <translation>Подписки на каналы</translation>
     </message>
     <message>
-        <location filename="src/homeview.h" line="44"/>
         <source>Make yourself comfortable</source>
         <translation>Чувствуйте себя как дома</translation>
     </message>
 <context>
     <name>LoadingWidget</name>
     <message>
-        <location filename="src/loadingwidget.cpp" line="125"/>
         <source>Error</source>
         <translation>Ошибка</translation>
     </message>
 <context>
     <name>MainWindow</name>
     <message>
-        <location filename="src/mainwindow.cpp" line="291"/>
+        <source>&amp;Window</source>
+        <translation>&amp;Окно</translation>
+    </message>
+    <message>
+        <source>&amp;Minimize</source>
+        <translation>&amp;Свернуть</translation>
+    </message>
+    <message>
         <source>&amp;Stop</source>
         <translation>&amp;Остановить</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="292"/>
         <source>Stop playback and go back to the search view</source>
         <translation>Остановить воспроизведение и вернуться к поиску</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="307"/>
+        <source>P&amp;revious</source>
+        <translation>Пр&amp;едыдущий</translation>
+    </message>
+    <message>
+        <source>Go back to the previous track</source>
+        <translation>Вернуться к предыдущему треку</translation>
+    </message>
+    <message>
         <source>S&amp;kip</source>
         <translation>П&amp;ропустить</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="308"/>
         <source>Skip to the next video</source>
         <translation>Перейти к следующему клипу</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1134"/>
-        <source>&amp;Pause</source>
-        <translation>&amp;Пауза</translation>
+        <source>&amp;Play</source>
+        <translation>Пр&amp;оиграть</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1135"/>
-        <source>Pause playback</source>
-        <translation>Приостановить воспроизведение</translation>
+        <source>Resume playback</source>
+        <translation>Продолжить воспроизведение</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="321"/>
         <source>&amp;Full Screen</source>
         <translation>&amp;На весь экран</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="322"/>
         <source>Go full screen</source>
         <translation>Полноэкранное воспроизведение</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="336"/>
+        <source>&amp;Compact Mode</source>
+        <translation>Компак&amp;тный режим</translation>
+    </message>
+    <message>
         <source>Hide the playlist and the toolbar</source>
         <translation>Скрыть список воспроизведения и панель инструментов</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="349"/>
+        <source>Open the &amp;YouTube Page</source>
+        <translation>От&amp;крыть страницу YouTube</translation>
+    </message>
+    <message>
         <source>Go to the YouTube video page and pause playback</source>
         <translation>Приостановить воспроизведение и перейти на страницу видео в YouTube</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="356"/>
+        <source>Copy the YouTube &amp;Link</source>
+        <translation>Копировать &amp;ссылку на YouTube</translation>
+    </message>
+    <message>
         <source>Copy the current video YouTube link to the clipboard</source>
         <translation>Скопировать ссылку текущего клипа YouTube в буфер обмена</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="363"/>
+        <source>Copy the Video Stream &amp;URL</source>
+        <translation>Копировать ссылку на в&amp;идео поток</translation>
+    </message>
+    <message>
         <source>Copy the current video stream URL to the clipboard</source>
         <translation>Скопировать адрес текущего видео потока в буфер обмена</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="370"/>
+        <source>Find Video &amp;Parts</source>
+        <translation>Найти &amp;фрагменты видео</translation>
+    </message>
+    <message>
         <source>Find other video parts hopefully in the right order</source>
         <translation>Найти другие части видео, надеюсь, в правильном порядке</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="376"/>
         <source>&amp;Remove</source>
         <translation>&amp;Удалить</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="377"/>
         <source>Remove the selected videos from the playlist</source>
         <translation>Удалить выбранные клипы из списка воспроизведения</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="383"/>
         <source>Move &amp;Up</source>
         <translation>В&amp;верх</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="384"/>
         <source>Move up the selected videos in the playlist</source>
         <translation>Переместить выбранные видеоклипы вверх в списке воспроизведения</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="390"/>
         <source>Move &amp;Down</source>
         <translation>В&amp;низ</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="391"/>
         <source>Move down the selected videos in the playlist</source>
         <translation>Переместить выбранные видеоклипы вниз в списке воспроизведения</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="402"/>
+        <source>&amp;Clear Recent Searches</source>
+        <translation>О&amp;чистить последние поисковые запросы</translation>
+    </message>
+    <message>
         <source>Clear the search history. Cannot be undone.</source>
         <translation>Очистить историю запросов. Изменения необратимы.</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="407"/>
         <source>&amp;Quit</source>
         <translation>&amp;Выход</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="410"/>
         <source>Bye</source>
         <translation>Пока</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="414"/>
         <source>&amp;Website</source>
         <translation>&amp;Домашняя страница</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="416"/>
         <source>%1 on the Web</source>
         <translation>%1 в интернете</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="422"/>
+        <source>Make a &amp;Donation</source>
+        <translation>Сд&amp;елать пожертвование</translation>
+    </message>
+    <message>
         <source>Please support the continued development of %1</source>
         <translation>Поддержите дальнейшую разработку %1</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="427"/>
         <source>&amp;About</source>
         <translation>&amp;О программе</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="429"/>
         <source>Info about %1</source>
         <translation>Сведения о %1</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="437"/>
         <source>Search</source>
         <translation>Поиск</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="456"/>
         <source>Mute volume</source>
         <translation>Выключить звук</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="490"/>
-        <location filename="src/mainwindow.cpp" line="1609"/>
+        <source>&amp;Manually Start Playing</source>
+        <translation>&amp;Начать проигрывание вручную</translation>
+    </message>
+    <message>
+        <source>Manually start playing videos</source>
+        <translation>Начать проигрывание видео вручную</translation>
+    </message>
+    <message>
         <source>&amp;Downloads</source>
         <translation>Загрузки</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="491"/>
         <source>Show details about video downloads</source>
         <translation>Показать подробности о загрузках видео</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="499"/>
         <source>&amp;Download</source>
         <translation>Загрузить</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="500"/>
         <source>Download the current video</source>
         <translation>Загрузить проигрываемый файл</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="510"/>
         <source>Take &amp;Snapshot</source>
         <translation>Сделать скриншот</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="517"/>
         <source>&amp;Subscribe to Channel</source>
         <translation>Подписаться на канал</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="525"/>
         <source>Share the current video using %1</source>
         <translation>Поделиться текущим видео с помощью %1</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="545"/>
         <source>&amp;Email</source>
         <translation>&amp;Email</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="546"/>
         <source>Email</source>
         <translation>Email</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="551"/>
         <source>&amp;Close</source>
         <translation>&amp;Закрыть</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="561"/>
         <source>&amp;Float on Top</source>
         <translation>&amp;Поверх всех окон</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="566"/>
         <source>&amp;Adjust Window Size</source>
         <translation>&amp;Подстраивать размер окна</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="571"/>
         <source>&amp;Stop After This Video</source>
         <translation>Ост&amp;ановить после этого видео</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="578"/>
         <source>&amp;Report an Issue...</source>
         <translation>Соо&amp;бщить об ошибке</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="582"/>
         <source>&amp;Refine Search...</source>
         <translation>&amp;Уточнить поиск...</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="594"/>
         <source>More...</source>
         <translation>Больше...</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="597"/>
         <source>&amp;Related Videos</source>
         <translation>По&amp;хожее видео</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="599"/>
         <source>Watch videos related to the current one</source>
         <translation>Смотреть видео, связанные с текущим</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="605"/>
         <source>Open in &amp;Browser...</source>
         <translation>Открыть в &amp;браузере...</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="612"/>
-        <source>&amp;Love %1? Rate it!</source>
-        <translation>&amp;Нравится %1? Оцени!</translation>
+        <source>Restricted Mode</source>
+        <translation>Безопасный режим</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="633"/>
-        <source>&amp;Application</source>
-        <translation>Пр&amp;иложение</translation>
+        <source>Hide videos that may contain inappropriate content</source>
+        <translation>Скрыть видео, содержащие недопустимый контент </translation>
+    </message>
+    <message>
+        <source>&amp;Love %1? Rate it!</source>
+        <translation>&amp;Нравится %1? Оцени!</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="618"/>
         <source>Buy %1...</source>
         <translation>Купить %1...</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="647"/>
+        <source>&amp;Application</source>
+        <translation>Пр&amp;иложение</translation>
+    </message>
+    <message>
         <source>&amp;Playback</source>
         <translation>&amp;Воспроизведение</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="661"/>
         <source>&amp;Playlist</source>
         <translation>&amp;Список воспроизведения</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="670"/>
         <source>&amp;Video</source>
         <translation>&amp;Видео</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="686"/>
-        <source>&amp;View</source>
-        <translation>&amp;Просмотр</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="695"/>
         <source>&amp;Share</source>
         <translation>&amp;Поделиться</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="709"/>
+        <source>&amp;View</source>
+        <translation>&amp;Просмотр</translation>
+    </message>
+    <message>
         <source>&amp;Help</source>
         <translation>Спр&amp;авка</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="751"/>
         <source>Press %1 to raise the volume, %2 to lower it</source>
         <translation>Нажмите %1 для увеличения громкости и %2 для уменьшения</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1021"/>
-        <location filename="src/mainwindow.cpp" line="1027"/>
+        <source>Choose your content location</source>
+        <translation>Выберите ваше расположение</translation>
+    </message>
+    <message>
         <source>Opening %1</source>
         <translation>Открытие %1</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1080"/>
         <source>Do you want to exit %1 with a download in progress?</source>
         <translation>Вы действительно хотите закрыть %1 в то время, как загружаются файлы?</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1081"/>
         <source>If you close %1 now, this download will be cancelled.</source>
         <translation>Если вы закроете %1 прямо сейчас, текущие загрузки будут отменены.</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1086"/>
         <source>Close and cancel download</source>
         <translation>Выйти отменив загрузки</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1087"/>
         <source>Wait for download to finish</source>
         <translation>Подождать завершения загрузок</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1158"/>
-        <source>&amp;Loading...</source>
-        <translation>&amp;Загрузка...</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="1264"/>
-        <source>Leave &amp;Full Screen</source>
-        <translation>Покинуть п&amp;олноэкранный режим</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="1718"/>
-        <source>%1 version %2 is now available.</source>
-        <translation>%1 версия %2 теперь доступна.</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="1722"/>
-        <source>Remind me later</source>
-        <translation>Напомнить позже</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="1723"/>
-        <source>Update</source>
-        <translation>Обновление</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="1127"/>
         <source>Error: %1</source>
         <translation>Ошибка: %1</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="300"/>
-        <source>P&amp;revious</source>
-        <translation>Пр&amp;едыдущий</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="301"/>
-        <source>Go back to the previous track</source>
-        <translation>Вернуться к предыдущему треку</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="335"/>
-        <source>&amp;Compact Mode</source>
-        <translation>Компак&amp;тный режим</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="348"/>
-        <source>Open the &amp;YouTube Page</source>
-        <translation>От&amp;крыть страницу YouTube</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="355"/>
-        <source>Copy the YouTube &amp;Link</source>
-        <translation>Копировать &amp;ссылку на YouTube</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="362"/>
-        <source>Copy the Video Stream &amp;URL</source>
-        <translation>Копировать ссылку на в&amp;идео поток</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="369"/>
-        <source>Find Video &amp;Parts</source>
-        <translation>Найти &amp;фрагменты видео</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="397"/>
-        <source>&amp;Clear Recent Searches</source>
-        <translation>О&amp;чистить последние поисковые запросы</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="421"/>
-        <source>Make a &amp;Donation</source>
-        <translation>Сд&amp;елать пожертвование</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="483"/>
-        <source>&amp;Manually Start Playing</source>
-        <translation>&amp;Начать проигрывание вручную</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="484"/>
-        <source>Manually start playing videos</source>
-        <translation>Начать проигрывание видео вручную</translation>
+        <source>&amp;Pause</source>
+        <translation>&amp;Пауза</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="847"/>
-        <source>Choose your content location</source>
-        <translation>Выберите ваше расположение</translation>
+        <source>Pause playback</source>
+        <translation>Приостановить воспроизведение</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="314"/>
-        <location filename="src/mainwindow.cpp" line="1142"/>
-        <location filename="src/mainwindow.cpp" line="1150"/>
-        <source>&amp;Play</source>
-        <translation>Пр&amp;оиграть</translation>
+        <source>&amp;Loading...</source>
+        <translation>&amp;Загрузка...</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="315"/>
-        <location filename="src/mainwindow.cpp" line="1143"/>
-        <location filename="src/mainwindow.cpp" line="1151"/>
-        <source>Resume playback</source>
-        <translation>Продолжить воспроизведение</translation>
+        <source>Leave &amp;Full Screen</source>
+        <translation>Покинуть п&amp;олноэкранный режим</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1437"/>
         <source>Remaining time: %1</source>
         <translation>Осталось: %1</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1528"/>
         <source>Volume at %1%</source>
         <translation>Громкость %1%</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1534"/>
         <source>Volume is muted</source>
         <translation>Звук выключен</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1537"/>
         <source>Volume is unmuted</source>
         <translation>Звук включен</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1548"/>
         <source>Maximum video definition set to %1</source>
         <translation>Максимальное разрешение видео: %1</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1595"/>
         <source>Your privacy is now safe</source>
         <translation>Конфиденциальность обеспечена</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1610"/>
         <source>Downloads complete</source>
         <translation>Загрузка завершена</translation>
     </message>
+    <message>
+        <source>%1 version %2 is now available.</source>
+        <translation>%1 версия %2 теперь доступна.</translation>
+    </message>
+    <message>
+        <source>Remind me later</source>
+        <translation>Напомнить позже</translation>
+    </message>
+    <message>
+        <source>Update</source>
+        <translation>Обновление</translation>
+    </message>
 </context>
 <context>
     <name>MediaView</name>
     <message>
-        <location filename="src/mediaview.cpp" line="702"/>
         <source>You can now paste the YouTube link into another application</source>
         <translation>Теперь можно вставить адрес YouTube в другое приложение</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="710"/>
         <source>You can now paste the video stream URL into another application</source>
         <translation>Теперь можно вставить адрес видео потока в другое приложение</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="711"/>
         <source>The link will be valid only for a limited time.</source>
         <translation>Адрес будет существовать ограниченное время.</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="800"/>
         <source>This is just the demo version of %1.</source>
         <translation>Данная программа является демо-версией %1.</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="801"/>
         <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="833"/>
+        <source>Get the full version</source>
+        <translation>Купить полную версию</translation>
+    </message>
+    <message>
         <source>Continue</source>
         <translation>Продолжить</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="988"/>
+        <source>Downloading %1</source>
+        <translation>Загружаю %1</translation>
+    </message>
+    <message>
         <source>of</source>
         <comment>Used in video parts, as in '2 of 3'</comment>
         <translation>из</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="1001"/>
         <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="1003"/>
         <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="1096"/>
         <source>Sent from %1</source>
         <translation>Отправить из %1</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="1128"/>
         <source>Unsubscribe from %1</source>
         <translation>Отписаться от %1</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="1132"/>
         <source>Subscribe to %1</source>
         <translation>Подписаться на %1</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="1166"/>
         <source>Unsubscribed from %1</source>
         <translation>Отписаны от %1</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="1169"/>
         <source>Subscribed to %1</source>
         <translation>Подписаны на %1</translation>
     </message>
-    <message>
-        <location filename="src/mediaview.cpp" line="808"/>
-        <source>Get the full version</source>
-        <translation>Купить полную версию</translation>
-    </message>
-    <message>
-        <location filename="src/mediaview.cpp" line="847"/>
-        <source>Downloading %1</source>
-        <translation>Загружаю %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>Новая версия приложения %1 уже доступна!</translation>
     </message>
     <message>
-        <location filename="local/src/updatedialog.cpp" line="28"/>
         <source>%1 %2 is now available. You have %3.</source>
         <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>Хотите загрузить сейчас?</translation>
     </message>
     <message>
-        <location filename="local/src/updatedialog.cpp" line="39"/>
         <source>Skip This Version</source>
         <translation>Пропустить эту версию</translation>
     </message>
     <message>
-        <location filename="local/src/updatedialog.cpp" line="43"/>
         <source>Remind Me Later</source>
         <translation>Напомнить позже</translation>
     </message>
     <message>
-        <location filename="local/src/updatedialog.cpp" line="47"/>
         <source>Install Update</source>
         <translation>Установить обновление</translation>
     </message>
 <context>
     <name>PasteLineEdit</name>
     <message>
-        <location filename="local/src/pastelineedit.cpp" line="6"/>
         <source>Paste</source>
         <translation>Вставить</translation>
     </message>
 <context>
     <name>PlaylistItemDelegate</name>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="209"/>
         <source>%1 views</source>
         <translation>%1 просмотров</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="309"/>
         <source>%1 of %2 (%3) — %4</source>
         <translation>%1 из %2 (%3) — %4</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="316"/>
         <source>Preparing</source>
         <translation>Подготовка</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="318"/>
         <source>Failed</source>
         <translation>Ошибка</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="320"/>
         <source>Completed</source>
         <translation>Завершено</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="322"/>
         <source>Stopped</source>
         <translation>Остановлено</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="358"/>
         <source>Stop downloading</source>
         <translation>Отмена загрузки</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="368"/>
         <source>Show in %1</source>
         <translation>Показать в %1</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="370"/>
         <source>Open parent folder</source>
         <translation>Открыть родительский каталог</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="379"/>
         <source>Restart downloading</source>
         <translation>Перезапустить загрузку</translation>
     </message>
 <context>
     <name>PlaylistModel</name>
     <message>
-        <location filename="src/playlistmodel.cpp" line="70"/>
         <source>Searching...</source>
         <translation>Идет поиск...</translation>
     </message>
     <message>
-        <location filename="src/playlistmodel.cpp" line="71"/>
         <source>Show %1 More</source>
         <translation>Показать ещё %1</translation>
     </message>
     <message>
-        <location filename="src/playlistmodel.cpp" line="72"/>
         <source>No videos</source>
         <translation>Нет видео</translation>
     </message>
     <message>
-        <location filename="src/playlistmodel.cpp" line="73"/>
         <source>No more videos</source>
         <translation>Нет больше видео</translation>
     </message>
 <context>
     <name>RefineSearchWidget</name>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="49"/>
         <source>Sort by</source>
         <translation>Сортировать по</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="53"/>
         <source>Relevance</source>
         <translation>Релевантность</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="54"/>
-        <location filename="src/refinesearchwidget.cpp" line="69"/>
         <source>Date</source>
         <translation>Дата</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="55"/>
         <source>View Count</source>
         <translation>Кол-во просмотров</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="56"/>
         <source>Rating</source>
         <translation>Рейтинг</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="73"/>
         <source>Anytime</source>
         <translation>В любое время</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="74"/>
         <source>Today</source>
         <translation>Сегодня</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="75"/>
         <source>7 Days</source>
         <translation>7 дней</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="76"/>
         <source>30 Days</source>
         <translation>30 дней</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="89"/>
         <source>Duration</source>
         <translation>Продолжительность</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="93"/>
-        <location filename="src/refinesearchwidget.cpp" line="119"/>
         <source>All</source>
         <translation>Все</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="94"/>
         <source>Short</source>
         <translation>Короткие</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="95"/>
         <source>Medium</source>
         <translation>Средние</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="96"/>
         <source>Long</source>
         <translation>Длинные</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="99"/>
         <source>Less than 4 minutes</source>
         <translation>Короче чем 4 минуты</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="100"/>
         <source>Between 4 and 20 minutes</source>
         <translation>Между 4 и 20 минутами</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="101"/>
         <source>Longer than 20 minutes</source>
         <translation>Дольше чем 20 минут</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="115"/>
         <source>Quality</source>
         <translation>Качество</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="120"/>
         <source>High Definition</source>
         <translation>Высокое разрешение</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="123"/>
         <source>720p or higher</source>
         <translation>720p или больше</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="136"/>
         <source>Done</source>
         <translation>Готово</translation>
     </message>
 <context>
     <name>RegionsView</name>
     <message>
-        <location filename="src/regionsview.cpp" line="39"/>
         <source>Done</source>
         <translation>Готово</translation>
     </message>
 <context>
     <name>SearchLineEdit</name>
     <message>
-        <location filename="src/searchlineedit.cpp" line="55"/>
         <source>Search</source>
         <translation>Поиск</translation>
     </message>
 <context>
     <name>SearchView</name>
     <message>
-        <location filename="src/searchview.cpp" line="83"/>
         <source>Welcome to &lt;a href=&apos;%1&apos;&gt;%2&lt;/a&gt;,</source>
         <translation>Добро пожаловать в &lt;a href=&apos;%1&apos;&gt;%2&lt;/a&gt;,</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="200"/>
-        <source>Get the full version</source>
-        <translation>Купить полную версию</translation>
-    </message>
-    <message>
-        <location filename="src/searchview.cpp" line="110"/>
         <source>Enter</source>
         <extracomment>&quot;Enter&quot;, as in &quot;type&quot;. The whole phrase says: &quot;Enter a keyword to start watching videos&quot;</extracomment>
         <translation>Введите</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="117"/>
         <source>a keyword</source>
         <translation>запрос</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="118"/>
         <source>a channel</source>
         <translation>канал</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="125"/>
         <source>to start watching videos.</source>
         <translation>чтобы начать просмотр.</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="156"/>
         <source>Watch</source>
         <translation>Смотреть</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="174"/>
         <source>Recent keywords</source>
         <translation>Последние запросы</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="186"/>
         <source>Recent channels</source>
         <translation>Последние каналы</translation>
     </message>
+    <message>
+        <source>Get the full version</source>
+        <translation>Купить полную версию</translation>
+    </message>
 </context>
 <context>
     <name>SidebarHeader</name>
     <message>
-        <location filename="src/sidebarheader.cpp" line="38"/>
-        <location filename="src/sidebarheader.cpp" line="45"/>
         <source>&amp;Back</source>
         <translation>Н&amp;азад</translation>
     </message>
     <message>
-        <location filename="src/sidebarheader.cpp" line="76"/>
         <source>Forward to %1</source>
         <translation>Вперед к %1</translation>
     </message>
     <message>
-        <location filename="src/sidebarheader.cpp" line="89"/>
         <source>Back to %1</source>
         <translation>Назад к %1</translation>
     </message>
 <context>
     <name>SidebarWidget</name>
     <message>
-        <location filename="src/sidebarwidget.cpp" line="68"/>
         <source>Refine Search</source>
         <translation>Уточнить поиск</translation>
     </message>
     <message>
-        <location filename="src/sidebarwidget.cpp" line="167"/>
         <source>Did you mean: %1</source>
         <translation>Возможно вы имели в виду: %1</translation>
     </message>
 <context>
     <name>SnapshotSettings</name>
     <message>
-        <location filename="src/snapshotsettings.cpp" line="47"/>
         <source>Change location...</source>
         <translation>Изменить путь...</translation>
     </message>
     <message>
-        <location filename="src/snapshotsettings.cpp" line="64"/>
         <source>Snapshot saved to %1</source>
         <translation>Скриншот сохранён в %1</translation>
     </message>
     <message>
-        <location filename="src/snapshotsettings.cpp" line="117"/>
         <source>Snapshots location changed.</source>
         <translation>Директория для скриншотов изменена</translation>
     </message>
 <context>
     <name>StandardFeedsView</name>
     <message>
-        <location filename="src/standardfeedsview.cpp" line="107"/>
         <source>Most Popular</source>
         <translation>Самые популярные</translation>
     </message>
 </context>
+<context>
+    <name>UpdateDialog</name>
+    <message>
+        <source>Downloading update...</source>
+        <translation>Загрузка обновления....</translation>
+    </message>
+    <message>
+        <source>Downloading %1...</source>
+        <translation>Загрузка %1...</translation>
+    </message>
+</context>
 <context>
     <name>Video</name>
     <message>
-        <location filename="src/video.cpp" line="287"/>
         <source>Cannot get video stream for %1</source>
         <translation>Не удалось получить видео поток для %1</translation>
     </message>
-    <message>
-        <location filename="src/video.cpp" line="292"/>
-        <source>Network error: %1 for %2</source>
-        <translation>Ошибка сети: %1 на %2</translation>
-    </message>
 </context>
 <context>
     <name>YTRegions</name>
     <message>
-        <location filename="src/ytregions.cpp" line="28"/>
         <source>Algeria</source>
         <translation>Алжир</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="29"/>
         <source>Argentina</source>
         <translation>Аргентина</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="30"/>
         <source>Australia</source>
         <translation>Австралия</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="31"/>
         <source>Belgium</source>
         <translation>Бельгия</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="32"/>
         <source>Brazil</source>
         <translation>Бразилия</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="33"/>
         <source>Canada</source>
         <translation>Канада</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="34"/>
         <source>Chile</source>
         <translation>Чили</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="35"/>
         <source>Colombia</source>
         <translation>Колумбия</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="36"/>
         <source>Czech Republic</source>
         <translation>Чехия</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="37"/>
         <source>Egypt</source>
         <translation>Египет</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="38"/>
         <source>France</source>
         <translation>Франция</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="39"/>
         <source>Germany</source>
         <translation>Германия</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="40"/>
         <source>Ghana</source>
         <translation>Гана</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="41"/>
         <source>Greece</source>
         <translation>Греция</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="42"/>
         <source>Hong Kong</source>
         <translation>Гонконг</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="43"/>
         <source>Hungary</source>
         <translation>Венгрия</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="44"/>
         <source>India</source>
         <translation>Индия</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="45"/>
         <source>Indonesia</source>
         <translation>Индонезия</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="46"/>
         <source>Ireland</source>
         <translation>Ирландия</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="47"/>
         <source>Israel</source>
         <translation>Израиль</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="48"/>
         <source>Italy</source>
         <translation>Италия</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="49"/>
         <source>Japan</source>
         <translation>Япония</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="50"/>
         <source>Jordan</source>
         <translation>Иордания</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="51"/>
         <source>Kenya</source>
         <translation>Кения</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="52"/>
         <source>Malaysia</source>
         <translation>Малайзия</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="53"/>
         <source>Mexico</source>
         <translation>Мексика</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="54"/>
         <source>Morocco</source>
         <translation>Марокко</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="55"/>
         <source>Netherlands</source>
         <translation>Нидерланды</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="56"/>
         <source>New Zealand</source>
         <translation>Новая Зеландия</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="57"/>
         <source>Nigeria</source>
         <translation>Нигерия</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="58"/>
         <source>Peru</source>
         <translation>Перу</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="59"/>
         <source>Philippines</source>
         <translation>Филиппины</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="60"/>
         <source>Poland</source>
         <translation>Польша</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="61"/>
         <source>Russia</source>
         <translation>Россия</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="62"/>
         <source>Saudi Arabia</source>
         <translation>Саудовская Аравия</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="63"/>
         <source>Singapore</source>
         <translation>Сингапур</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="64"/>
         <source>South Africa</source>
         <translation>Южно-Африканская Республика</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="65"/>
         <source>South Korea</source>
         <translation>Республика Корея</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="66"/>
         <source>Spain</source>
         <translation>Испания</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="67"/>
         <source>Sweden</source>
         <translation>Швеция</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="68"/>
         <source>Taiwan</source>
         <translation>Тайвань</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="69"/>
         <source>Tunisia</source>
         <translation>Тунис</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="70"/>
         <source>Turkey</source>
         <translation>Турция</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="71"/>
         <source>Uganda</source>
         <translation>Уганда</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="72"/>
         <source>United Arab Emirates</source>
         <translation>Объединённые Арабские Эмираты</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="73"/>
         <source>United Kingdom</source>
         <translation>Великобритания</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="74"/>
         <source>Yemen</source>
         <translation>Йемен</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="148"/>
         <source>Worldwide</source>
         <translation>Во всем мире</translation>
     </message>
index 3bcaa897f9440a4b9758b438eb31307cfa85919a..d393d1b25226b9bbeab6a70a99162c931dd410f3 100644 (file)
@@ -2,67 +2,42 @@
 <context>
     <name>AboutView</name>
     <message>
-        <location filename="src/aboutview.cpp" line="58"/>
         <source>There&apos;s life outside the browser!</source>
         <translation>Ešte stále existuje život aj mimo prehliadač!</translation>
     </message>
     <message>
-        <location filename="src/aboutview.cpp" line="59"/>
         <source>Version %1</source>
         <translation>Verzia %1</translation>
     </message>
     <message>
-        <location filename="src/aboutview.cpp" line="64"/>
         <source>Licensed to: %1</source>
         <translation>Licencované pre: %1</translation>
     </message>
     <message>
-        <location filename="src/aboutview.cpp" line="68"/>
         <source>%1 is Free Software but its development takes precious time.</source>
         <translation>%1 je plne slobodným softvérom, ktorého vývoj si však žiada značnú dávku času.</translation>
     </message>
     <message>
-        <location filename="src/aboutview.cpp" line="69"/>
         <source>Please &lt;a href=&apos;%1&apos;&gt;donate&lt;/a&gt; to support the continued development of %2.</source>
         <translation>Preto prosím o akúkoľvek finančnú &lt;a href=&apos;%1&apos;&gt;podporu&lt;/a&gt;  pri pokračujúcom vývoji %2.</translation>
     </message>
     <message>
-        <location filename="src/aboutview.cpp" line="73"/>
-        <source>You may want to try my other apps as well:</source>
-        <translation>Je možné, že ťa zaujmú aj moje ostatné aplikácie:</translation>
-    </message>
-    <message>
-        <location filename="src/aboutview.cpp" line="76"/>
-        <source>%1, a YouTube music player</source>
-        <translation>%1, prehrávač YouTube muziky</translation>
-    </message>
-    <message>
-        <location filename="src/aboutview.cpp" line="80"/>
-        <source>%1, a music player</source>
-        <translation>%1, kvalitný hudobný prehrávač</translation>
-    </message>
-    <message>
-        <location filename="src/aboutview.cpp" line="86"/>
         <source>Translate %1 to your native language using %2</source>
         <translation>Prelož %1 do svojho materinského jazyka cez %2</translation>
     </message>
     <message>
-        <location filename="src/aboutview.cpp" line="91"/>
         <source>Icon designed by %1.</source>
         <translation>Ikonu nadizajnoval %1.</translation>
     </message>
     <message>
-        <location filename="src/aboutview.cpp" line="95"/>
         <source>Released under the &lt;a href=&apos;%1&apos;&gt;GNU General Public License&lt;/a&gt;</source>
         <translation>Vydané pod &lt;a href=&apos;%1&apos;&gt;GNU General Public License&lt;/a&gt;</translation>
     </message>
     <message>
-        <location filename="src/aboutview.cpp" line="110"/>
         <source>&amp;Close</source>
         <translation>&amp;Zatvoriť</translation>
     </message>
     <message>
-        <location filename="src/aboutview.h" line="40"/>
         <source>About</source>
         <translation>O projekte</translation>
     </message>
 <context>
     <name>ActivationDialog</name>
     <message>
-        <location filename="local/src/activationdialog.cpp" line="17"/>
         <source>Enter your License Details</source>
         <translation>Vlož svoje licenčné detaily</translation>
     </message>
     <message>
-        <location filename="local/src/activationdialog.cpp" line="29"/>
         <source>&amp;Email:</source>
         <translation>&amp;E-mail:</translation>
     </message>
     <message>
-        <location filename="local/src/activationdialog.cpp" line="35"/>
         <source>&amp;Code:</source>
         <translation>&amp;Kód:</translation>
     </message>
 <context>
     <name>ActivationView</name>
     <message>
-        <location filename="local/src/activationview.cpp" line="47"/>
         <source>Please license %1</source>
         <translation>Prosím licencujte %1</translation>
     </message>
     <message>
-        <location filename="local/src/activationview.cpp" line="51"/>
         <source>This demo has expired.</source>
         <translation>Demoverzia expirovala.</translation>
     </message>
     <message>
-        <location filename="local/src/activationview.cpp" line="53"/>
         <source>The full version allows you to watch videos without interruptions.</source>
-        <oldsource>The full version allows you to download videos longer than %1 minutes and to watch videos without interruptions.</oldsource>
-        <translation type="unfinished"/>
+        <translation>Plná verzia vám umožňuje pozerať videá bez prerušení.</translation>
     </message>
     <message>
-        <location filename="local/src/activationview.cpp" line="55"/>
         <source>Without a license, the application will expire in %1 days.</source>
         <translation>Aplikácia bez licencie expiruje za %1 dní.</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>Zakúpením plnej verzie tiež podporíš vynaložené úsilie pri tvorbe %1.</translation>
     </message>
     <message>
-        <location filename="local/src/activationview.cpp" line="70"/>
         <source>Use Demo</source>
         <translation>Použiť demo</translation>
     </message>
     <message>
-        <location filename="local/src/activationview.cpp" line="77"/>
         <source>Enter License</source>
         <translation>Vložiť licenciu</translation>
     </message>
     <message>
-        <location filename="local/src/activationview.cpp" line="85"/>
         <source>Buy License</source>
         <translation>Zakúpiť licenciu</translation>
     </message>
 </context>
+<context>
+    <name>AppWidget</name>
+    <message>
+        <source>Download</source>
+        <translation type="unfinished"/>
+    </message>
+</context>
 <context>
     <name>ChannelAggregator</name>
     <message>
-        <location filename="src/channelaggregator.cpp" line="183"/>
         <source>By %1</source>
         <translation>Od %1</translation>
     </message>
     <message numerus="yes">
-        <location filename="src/channelaggregator.cpp" line="185"/>
         <source>You have %n new video(s)</source>
         <translation type="unfinished"><numerusform></numerusform><numerusform></numerusform><numerusform></numerusform></translation>
     </message>
 <context>
     <name>ChannelItemDelegate</name>
     <message>
-        <location filename="src/channelitemdelegate.cpp" line="67"/>
         <source>All Videos</source>
         <translation>Všetky videá</translation>
     </message>
     <message>
-        <location filename="src/channelitemdelegate.cpp" line="85"/>
         <source>Unwatched Videos</source>
         <translation>Neprezreté videá</translation>
     </message>
 <context>
     <name>ChannelView</name>
     <message>
-        <location filename="src/channelview.cpp" line="151"/>
-        <source>Mark all as watched</source>
-        <translation>Označiť všetky ako zhliadnuté</translation>
-    </message>
-    <message>
-        <location filename="src/channelview.cpp" line="159"/>
-        <source>Show Updated</source>
-        <translation>Zobraziť aktualizované</translation>
-    </message>
-    <message>
-        <location filename="src/channelview.cpp" line="103"/>
         <source>Name</source>
         <translation>Meno</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="110"/>
         <source>Last Updated</source>
         <translation>Naposledy aktualizované</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="117"/>
         <source>Last Added</source>
         <translation>Naposledy pridané</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="124"/>
         <source>Last Watched</source>
         <translation>Naposledy prezerané</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="131"/>
         <source>Most Watched</source>
         <translation>Najviac prezerané</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="139"/>
         <source>Sort by</source>
         <translation>Zoradiť podľa</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="222"/>
+        <source>Mark all as watched</source>
+        <translation>Označiť všetky ako zhliadnuté</translation>
+    </message>
+    <message>
+        <source>Show Updated</source>
+        <translation>Zobraziť aktualizované</translation>
+    </message>
+    <message>
         <source>All Videos</source>
         <translation>Všetky videá</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="226"/>
         <source>Unwatched Videos</source>
         <translation>Neprezreté videá</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="244"/>
         <source>Mark as Watched</source>
-        <translation type="unfinished"/>
+        <translation>Označiť ako už videné</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="257"/>
         <source>Unsubscribe</source>
-        <translation type="unfinished"/>
+        <translation>Zrušiť odber</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="270"/>
         <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="272"/>
         <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>
     <name>ClearButton</name>
     <message>
-        <location filename="src/exlineedit.cpp" line="6"/>
         <source>Clear</source>
         <translation>Vyčisiť</translation>
     </message>
 <context>
     <name>DataUtils</name>
     <message>
-        <location filename="src/datautils.cpp" line="88"/>
         <source>Just now</source>
-        <translation type="unfinished"/>
+        <translation>Práve teraz</translation>
     </message>
     <message numerus="yes">
-        <location filename="src/datautils.cpp" line="90"/>
-        <source>%n minute(s) ago</source>
-        <translation type="unfinished"><numerusform></numerusform><numerusform></numerusform><numerusform></numerusform></translation>
-    </message>
-    <message numerus="yes">
-        <location filename="src/datautils.cpp" line="92"/>
         <source>%n hour(s) ago</source>
         <translation type="unfinished"><numerusform></numerusform><numerusform></numerusform><numerusform></numerusform></translation>
     </message>
     <message numerus="yes">
-        <location filename="src/datautils.cpp" line="94"/>
         <source>%n day(s) ago</source>
         <translation type="unfinished"><numerusform></numerusform><numerusform></numerusform><numerusform></numerusform></translation>
     </message>
     <message numerus="yes">
-        <location filename="src/datautils.cpp" line="96"/>
         <source>%n weeks(s) ago</source>
         <translation type="unfinished"><numerusform></numerusform><numerusform></numerusform><numerusform></numerusform></translation>
     </message>
     <message numerus="yes">
-        <location filename="src/datautils.cpp" line="98"/>
         <source>%n month(s) ago</source>
         <translation type="unfinished"><numerusform></numerusform><numerusform></numerusform><numerusform></numerusform></translation>
     </message>
 <context>
     <name>DownloadItem</name>
     <message>
-        <location filename="src/downloaditem.cpp" line="406"/>
         <source>bytes</source>
         <translation>bajtov</translation>
     </message>
     <message>
-        <location filename="src/downloaditem.cpp" line="409"/>
         <source>KB</source>
         <translation>KB</translation>
     </message>
     <message>
-        <location filename="src/downloaditem.cpp" line="412"/>
         <source>MB</source>
         <translation>MB</translation>
     </message>
     <message>
-        <location filename="src/downloaditem.cpp" line="421"/>
         <source>bytes/sec</source>
         <translation>bajtov/sek</translation>
     </message>
     <message>
-        <location filename="src/downloaditem.cpp" line="424"/>
         <source>KB/sec</source>
         <translation>KB/sek</translation>
     </message>
     <message>
-        <location filename="src/downloaditem.cpp" line="427"/>
         <source>MB/sec</source>
         <translation>MB/sek</translation>
     </message>
     <message>
-        <location filename="src/downloaditem.cpp" line="433"/>
         <source>seconds</source>
         <translation>sekúnd</translation>
     </message>
     <message>
-        <location filename="src/downloaditem.cpp" line="436"/>
         <source>minutes</source>
         <translation>minút</translation>
     </message>
     <message>
-        <location filename="src/downloaditem.cpp" line="439"/>
         <source>%4 %5 remaining</source>
         <translation>zostáva %4 %5</translation>
     </message>
 <context>
     <name>DownloadManager</name>
     <message>
-        <location filename="src/downloadmanager.cpp" line="77"/>
         <source>This is just the demo version of %1.</source>
         <translation>Ide o demoverziu %1.</translation>
     </message>
     <message>
-        <location filename="src/downloadmanager.cpp" line="79"/>
         <source>It can only download videos shorter than %1 minutes so you can test the download functionality.</source>
         <translation>Umožní ti stiahnuť iba videý kratšie ako %1 minút, takže aspoň môžeš otestovať túto funkcionalitu.</translation>
     </message>
     <message>
-        <location filename="src/downloadmanager.cpp" line="85"/>
         <source>Continue</source>
         <translation>Pokračuj</translation>
     </message>
     <message>
-        <location filename="src/downloadmanager.cpp" line="86"/>
         <source>Get the full version</source>
         <translation>Získať plnú verziu</translation>
     </message>
     <message>
-        <location filename="src/downloadmanager.cpp" line="157"/>
         <source>%1 downloaded in %2</source>
         <translation>%1 stiahnuté za %2</translation>
     </message>
     <message>
-        <location filename="src/downloadmanager.cpp" line="160"/>
         <source>Download finished</source>
         <translation>Sťahovanie ukončené.</translation>
     </message>
     <message numerus="yes">
-        <location filename="src/downloadmanager.cpp" line="165"/>
         <source>%n Download(s)</source>
         <translation type="unfinished"><numerusform></numerusform><numerusform></numerusform><numerusform></numerusform></translation>
     </message>
 <context>
     <name>DownloadSettings</name>
     <message>
-        <location filename="src/downloadsettings.cpp" line="36"/>
         <source>Change location...</source>
         <translation>Zmeniť umiestnenie...</translation>
     </message>
     <message>
-        <location filename="src/downloadsettings.cpp" line="69"/>
         <source>Choose the download location</source>
         <translation>Zmeniť umiestnenie sťahovaní</translation>
     </message>
     <message>
-        <location filename="src/downloadsettings.cpp" line="81"/>
         <source>Download location changed.</source>
         <translation>Umiestnenie sťahovaní zmenené.</translation>
     </message>
     <message>
-        <location filename="src/downloadsettings.cpp" line="83"/>
         <source>Current downloads will still go in the previous location.</source>
         <translation>Aktuálne sťahovania sa uložia ešte na predchádzajúcom umiestnení.</translation>
     </message>
     <message>
-        <location filename="src/downloadsettings.cpp" line="94"/>
         <source>Downloading to: %1</source>
         <translation>Sťahujem do: %1</translation>
     </message>
 <context>
     <name>DownloadView</name>
     <message>
-        <location filename="src/downloadview.cpp" line="38"/>
-        <location filename="src/downloadview.h" line="45"/>
         <source>Downloads</source>
         <translation>Sťahovania</translation>
     </message>
 </context>
-<context>
-    <name>DownloadWidget</name>
-    <message>
-        <location filename="local/src/updatedialog.cpp" line="60"/>
-        <source>Downloading update...</source>
-        <translation>Sťahujem aktualizáciu...</translation>
-    </message>
-</context>
 <context>
     <name>Extra</name>
     <message>
-        <location filename="local/src/extra.cpp" line="251"/>
         <source>The executable file has been tempered with, maybe by a virus.</source>
-        <translation type="unfinished"/>
+        <translation>Spustiteľný súbor bol pravdepodobne upravený vírusom.</translation>
     </message>
     <message>
-        <location filename="local/src/extra.cpp" line="252"/>
         <source>%1 will not run. Try installing again.</source>
-        <translation type="unfinished"/>
+        <translation>%1 sa nespustí. Skúste inštalovať znova.</translation>
     </message>
     <message>
-        <location filename="local/src/extra.cpp" line="253"/>
         <source>Quit</source>
-        <translation type="unfinished"/>
+        <translation>Ukončiť</translation>
     </message>
     <message>
-        <location filename="local/src/extra.cpp" line="254"/>
         <source>Reinstall</source>
-        <translation type="unfinished"/>
+        <translation>Preinštalovať</translation>
     </message>
 </context>
 <context>
     <name>GlobalShortcuts</name>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="36"/>
         <source>Play</source>
         <translation>Prehrať</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="37"/>
         <source>Pause</source>
         <translation>Pozastaviť</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="38"/>
         <source>Play/Pause</source>
         <translation>Prehrať/Pozastaviť</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="39"/>
         <source>Stop</source>
         <translation>Zastaviť</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="40"/>
         <source>Stop playing after current track</source>
         <translation>Zastav hranie po aktuálnom videu</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="41"/>
         <source>Next track</source>
         <translation>Nasledovné video</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="42"/>
         <source>Previous track</source>
         <translation>Predošlé video</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="43"/>
         <source>Increase volume</source>
         <translation>Zvýšiť hlasitosť</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="44"/>
         <source>Decrease volume</source>
         <translation>Znížiť hlasitosť</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="45"/>
         <source>Mute</source>
         <translation>Stlmiť</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="46"/>
         <source>Seek forward</source>
         <translation>Pretočiť vpred</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="47"/>
         <source>Seek backward</source>
         <translation>Pretočiť vzad</translation>
     </message>
 <context>
     <name>HomeView</name>
     <message>
-        <location filename="src/homeview.cpp" line="58"/>
         <source>Search</source>
         <translation>Hľadať</translation>
     </message>
     <message>
-        <location filename="src/homeview.cpp" line="60"/>
         <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="65"/>
         <source>Browse</source>
         <translation>Prehliadať</translation>
     </message>
     <message>
-        <location filename="src/homeview.cpp" line="67"/>
         <source>Browse videos by category</source>
         <translation>Prehliadať videá podľa kategórie</translation>
     </message>
     <message>
-        <location filename="src/homeview.cpp" line="71"/>
         <source>Subscriptions</source>
         <translation>Subskripcie</translation>
     </message>
     <message>
-        <location filename="src/homeview.cpp" line="73"/>
         <source>Channel subscriptions</source>
         <translation>Odber kanálov</translation>
     </message>
     <message>
-        <location filename="src/homeview.h" line="44"/>
         <source>Make yourself comfortable</source>
         <translation>Daj sa do pohody</translation>
     </message>
 <context>
     <name>LoadingWidget</name>
     <message>
-        <location filename="src/loadingwidget.cpp" line="125"/>
         <source>Error</source>
         <translation>Chyba</translation>
     </message>
 <context>
     <name>MainWindow</name>
     <message>
-        <location filename="src/mainwindow.cpp" line="291"/>
+        <source>&amp;Window</source>
+        <translation>&amp;Okno</translation>
+    </message>
+    <message>
+        <source>&amp;Minimize</source>
+        <translation>&amp;Minimalizovať</translation>
+    </message>
+    <message>
         <source>&amp;Stop</source>
         <translation>&amp;Zastaviť</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="292"/>
         <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="307"/>
+        <source>P&amp;revious</source>
+        <translation>&amp;Predošlé</translation>
+    </message>
+    <message>
+        <source>Go back to the previous track</source>
+        <translation>Ísť na predošlé video</translation>
+    </message>
+    <message>
         <source>S&amp;kip</source>
         <translation>&amp;Preskočiť</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="308"/>
         <source>Skip to the next video</source>
         <translation>Preskočiť na nasledovné video</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1134"/>
-        <source>&amp;Pause</source>
-        <translation>&amp;Pozasaviť</translation>
+        <source>&amp;Play</source>
+        <translation>&amp;Prehrať</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1135"/>
-        <source>Pause playback</source>
-        <translation>Pozastaviť prehrávanie</translation>
+        <source>Resume playback</source>
+        <translation>Obnoviť prehrávanie</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="321"/>
         <source>&amp;Full Screen</source>
         <translation>&amp;Celá obrazovka</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="322"/>
         <source>Go full screen</source>
         <translation>Na celú obrazovku</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="336"/>
+        <source>&amp;Compact Mode</source>
+        <translation>&amp;Kompaktný mód</translation>
+    </message>
+    <message>
         <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="349"/>
+        <source>Open the &amp;YouTube Page</source>
+        <translation>Otvoriť &amp;YouTube stránku</translation>
+    </message>
+    <message>
         <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="356"/>
+        <source>Copy the YouTube &amp;Link</source>
+        <translation>Kopírovať &amp;odkaz z YouTube</translation>
+    </message>
+    <message>
         <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="363"/>
+        <source>Copy the Video Stream &amp;URL</source>
+        <translation>Kopírovať &amp;URL video streamu</translation>
+    </message>
+    <message>
         <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="370"/>
+        <source>Find Video &amp;Parts</source>
+        <translation>Nájsť zvyšné relevantné &amp;časti</translation>
+    </message>
+    <message>
         <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="376"/>
         <source>&amp;Remove</source>
         <translation>&amp;Odstrániť</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="377"/>
         <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="383"/>
         <source>Move &amp;Up</source>
         <translation>Presunúť &amp;nahor</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="384"/>
         <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="390"/>
         <source>Move &amp;Down</source>
         <translation>Presunúť &amp;nadol</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="391"/>
         <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="402"/>
+        <source>&amp;Clear Recent Searches</source>
+        <translation>&amp;Vyčistiť zoznam posledných hľadaní</translation>
+    </message>
+    <message>
         <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="407"/>
         <source>&amp;Quit</source>
         <translation>&amp;Ukončiť</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="410"/>
         <source>Bye</source>
         <translation>Maj sa</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="414"/>
         <source>&amp;Website</source>
         <translation>&amp;Domovská stránka</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="416"/>
         <source>%1 on the Web</source>
         <translation>%1 na Internete</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="422"/>
+        <source>Make a &amp;Donation</source>
+        <translation>Finančne &amp;podporiť</translation>
+    </message>
+    <message>
         <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="427"/>
         <source>&amp;About</source>
         <translation>&amp;O projekte</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="429"/>
         <source>Info about %1</source>
         <translation>Informácie o %1</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="437"/>
         <source>Search</source>
         <translation>Hľadať</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="456"/>
         <source>Mute volume</source>
         <translation>Stlmiť hlasitosť</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="490"/>
-        <location filename="src/mainwindow.cpp" line="1609"/>
+        <source>&amp;Manually Start Playing</source>
+        <translation>&amp;Manuálne prehrávanie</translation>
+    </message>
+    <message>
+        <source>Manually start playing videos</source>
+        <translation>Koniec manuálneho prehrávania</translation>
+    </message>
+    <message>
         <source>&amp;Downloads</source>
         <translation>&amp;Sťahovania</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="491"/>
         <source>Show details about video downloads</source>
         <translation>Zobraziť detaily o sťahovaní</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="499"/>
         <source>&amp;Download</source>
         <translation>&amp;Stiahnuť</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="500"/>
         <source>Download the current video</source>
         <translation>Stiahnuť aktuálne video</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="510"/>
         <source>Take &amp;Snapshot</source>
-        <translation type="unfinished"/>
+        <translation>&amp;Snímka obrazovky</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="517"/>
         <source>&amp;Subscribe to Channel</source>
         <translation>&amp;Odoberať daný kanál</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="525"/>
         <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="545"/>
         <source>&amp;Email</source>
         <translation>&amp;E-mail</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="546"/>
         <source>Email</source>
         <translation>E-mailová adresa</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="551"/>
         <source>&amp;Close</source>
         <translation>&amp;Zatvoriť</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="561"/>
         <source>&amp;Float on Top</source>
         <translation>&amp;Vždy na vrchu</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="566"/>
         <source>&amp;Adjust Window Size</source>
-        <translation type="unfinished"/>
+        <translation>&amp;Upraviť veľkosť okna</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="571"/>
         <source>&amp;Stop After This Video</source>
         <translation>&amp;Zastav po tomto videu</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="578"/>
         <source>&amp;Report an Issue...</source>
         <translation>&amp;Nahlásiť problém...</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="582"/>
         <source>&amp;Refine Search...</source>
         <translation>&amp;Upraviť kritériá hľadania...</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="594"/>
         <source>More...</source>
         <translation>Viac...</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="597"/>
         <source>&amp;Related Videos</source>
         <translation>&amp;Pridružené vidá</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="599"/>
         <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="605"/>
         <source>Open in &amp;Browser...</source>
         <translation>Otvoriť v prehliadači...</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="612"/>
-        <source>&amp;Love %1? Rate it!</source>
+        <source>Restricted Mode</source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="633"/>
-        <source>&amp;Application</source>
-        <translation>&amp;Aplikácia</translation>
+        <source>Hide videos that may contain inappropriate content</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <source>&amp;Love %1? Rate it!</source>
+        <translation>%Páči sa vám %1? ohodnoťte ho!</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="618"/>
         <source>Buy %1...</source>
         <translation>Zakúpiť %1...</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="647"/>
+        <source>&amp;Application</source>
+        <translation>&amp;Aplikácia</translation>
+    </message>
+    <message>
         <source>&amp;Playback</source>
         <translation>&amp;Prehrávanie</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="661"/>
         <source>&amp;Playlist</source>
         <translation>&amp;Playlist</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="670"/>
         <source>&amp;Video</source>
         <translation>&amp;Video</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="686"/>
-        <source>&amp;View</source>
-        <translation>&amp;Zobrazenie</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="695"/>
         <source>&amp;Share</source>
         <translation>&amp;Zdieľanie</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="709"/>
+        <source>&amp;View</source>
+        <translation>&amp;Zobrazenie</translation>
+    </message>
+    <message>
         <source>&amp;Help</source>
         <translation>&amp;Nápoveda</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="751"/>
         <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="1021"/>
-        <location filename="src/mainwindow.cpp" line="1027"/>
+        <source>Choose your content location</source>
+        <translation>Vybrať svoju obsahovú lokáciu</translation>
+    </message>
+    <message>
         <source>Opening %1</source>
         <translation>Otváram %1</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1080"/>
         <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="1081"/>
         <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="1086"/>
         <source>Close and cancel download</source>
         <translation>Zatvoriť a zrušiť sťahovanie</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1087"/>
         <source>Wait for download to finish</source>
         <translation>Počkať kým skončí sťahovanie</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1158"/>
-        <source>&amp;Loading...</source>
-        <translation type="unfinished"/>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="1264"/>
-        <source>Leave &amp;Full Screen</source>
-        <translation>Opustiť režim &amp;celej obrazovky</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="1718"/>
-        <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="1722"/>
-        <source>Remind me later</source>
-        <translation>Pripomenúť neskôr</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="1723"/>
-        <source>Update</source>
-        <translation>Aktualizácia</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="1127"/>
         <source>Error: %1</source>
         <translation>Chyba: %1</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="300"/>
-        <source>P&amp;revious</source>
-        <translation>&amp;Predošlé</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="301"/>
-        <source>Go back to the previous track</source>
-        <translation>Ísť na predošlé video</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="335"/>
-        <source>&amp;Compact Mode</source>
-        <translation>&amp;Kompaktný mód</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="348"/>
-        <source>Open the &amp;YouTube Page</source>
-        <translation>Otvoriť &amp;YouTube stránku</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="355"/>
-        <source>Copy the YouTube &amp;Link</source>
-        <translation>Kopírovať &amp;odkaz z YouTube</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="362"/>
-        <source>Copy the Video Stream &amp;URL</source>
-        <translation>Kopírovať &amp;URL video streamu</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="369"/>
-        <source>Find Video &amp;Parts</source>
-        <translation>Nájsť zvyšné relevantné &amp;časti</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="397"/>
-        <source>&amp;Clear Recent Searches</source>
-        <translation>&amp;Vyčistiť zoznam posledných hľadaní</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="421"/>
-        <source>Make a &amp;Donation</source>
-        <translation>Finančne &amp;podporiť</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="483"/>
-        <source>&amp;Manually Start Playing</source>
-        <translation>&amp;Manuálne prehrávanie</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="484"/>
-        <source>Manually start playing videos</source>
-        <translation>Koniec manuálneho prehrávania</translation>
+        <source>&amp;Pause</source>
+        <translation>&amp;Pozasaviť</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="847"/>
-        <source>Choose your content location</source>
-        <translation>Vybrať svoju obsahovú lokáciu</translation>
+        <source>Pause playback</source>
+        <translation>Pozastaviť prehrávanie</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="314"/>
-        <location filename="src/mainwindow.cpp" line="1142"/>
-        <location filename="src/mainwindow.cpp" line="1150"/>
-        <source>&amp;Play</source>
-        <translation>&amp;Prehrať</translation>
+        <source>&amp;Loading...</source>
+        <translation>&amp;Načítava sa...</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="315"/>
-        <location filename="src/mainwindow.cpp" line="1143"/>
-        <location filename="src/mainwindow.cpp" line="1151"/>
-        <source>Resume playback</source>
-        <translation>Obnoviť prehrávanie</translation>
+        <source>Leave &amp;Full Screen</source>
+        <translation>Opustiť režim &amp;celej obrazovky</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1437"/>
         <source>Remaining time: %1</source>
         <translation>Zostávajúci čas: %1</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1528"/>
         <source>Volume at %1%</source>
         <translation>Hlasitosť na %1%</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1534"/>
         <source>Volume is muted</source>
         <translation>Hlasitosť stlmená</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1537"/>
         <source>Volume is unmuted</source>
         <translation>Hlasitosť nie je stlmená</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1548"/>
         <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="1595"/>
         <source>Your privacy is now safe</source>
         <translation>Nemaj obavy o súkromie</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1610"/>
         <source>Downloads complete</source>
         <translation>Sťahovanie kompletné</translation>
     </message>
+    <message>
+        <source>%1 version %2 is now available.</source>
+        <translation>%1 verzie %2 je k dispozícii.</translation>
+    </message>
+    <message>
+        <source>Remind me later</source>
+        <translation>Pripomenúť neskôr</translation>
+    </message>
+    <message>
+        <source>Update</source>
+        <translation>Aktualizácia</translation>
+    </message>
 </context>
 <context>
     <name>MediaView</name>
     <message>
-        <location filename="src/mediaview.cpp" line="702"/>
         <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="710"/>
         <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="711"/>
         <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="800"/>
         <source>This is just the demo version of %1.</source>
         <translation>Ide o demoverziu %1.</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="801"/>
         <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="833"/>
+        <source>Get the full version</source>
+        <translation>Získať plnú verziu</translation>
+    </message>
+    <message>
         <source>Continue</source>
         <translation>Pokračuj</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="988"/>
+        <source>Downloading %1</source>
+        <translation>Sťahujem %1.</translation>
+    </message>
+    <message>
         <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="1001"/>
         <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="1003"/>
         <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="1096"/>
         <source>Sent from %1</source>
         <translation>Odoslané z %1</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="1128"/>
         <source>Unsubscribe from %1</source>
         <translation>Zrušiť odber z %1</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="1132"/>
         <source>Subscribe to %1</source>
         <translation>Odoberať z %1</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="1166"/>
         <source>Unsubscribed from %1</source>
-        <translation type="unfinished"/>
+        <translation>Bol zrušený odber kanála %1</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="1169"/>
         <source>Subscribed to %1</source>
-        <translation type="unfinished"/>
-    </message>
-    <message>
-        <location filename="src/mediaview.cpp" line="808"/>
-        <source>Get the full version</source>
-        <translation>Získať plnú verziu</translation>
-    </message>
-    <message>
-        <location filename="src/mediaview.cpp" line="847"/>
-        <source>Downloading %1</source>
-        <translation>Sťahujem %1.</translation>
+        <translation>Odoberáte kanál %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>Nová verzia %1 je práve dostupná!</translation>
     </message>
     <message>
-        <location filename="local/src/updatedialog.cpp" line="28"/>
         <source>%1 %2 is now available. You have %3.</source>
         <translation>%1 %2 je práve dostupná. Máš %3.</translation>
     </message>
     <message>
-        <location filename="local/src/updatedialog.cpp" line="33"/>
         <source>Would you like to download it now?</source>
         <translation>Chceš ju stiahnuť?</translation>
     </message>
     <message>
-        <location filename="local/src/updatedialog.cpp" line="39"/>
         <source>Skip This Version</source>
         <translation>Preskočiť túto verziu</translation>
     </message>
     <message>
-        <location filename="local/src/updatedialog.cpp" line="43"/>
         <source>Remind Me Later</source>
         <translation>Pripomenúť mi neskôr</translation>
     </message>
     <message>
-        <location filename="local/src/updatedialog.cpp" line="47"/>
         <source>Install Update</source>
         <translation>Nainštalovať aktualizáciu</translation>
     </message>
 <context>
     <name>PasteLineEdit</name>
     <message>
-        <location filename="local/src/pastelineedit.cpp" line="6"/>
         <source>Paste</source>
         <translation>Vložiť</translation>
     </message>
 <context>
     <name>PlaylistItemDelegate</name>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="209"/>
         <source>%1 views</source>
         <translation>%1 prezretí</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="309"/>
         <source>%1 of %2 (%3) — %4</source>
         <translation>%1 z %2 (%3) — %4</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="316"/>
         <source>Preparing</source>
         <translation>Pripravujem</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="318"/>
         <source>Failed</source>
         <translation>Zlyhané</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="320"/>
         <source>Completed</source>
         <translation>Úspešné</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="322"/>
         <source>Stopped</source>
         <translation>Zastavené</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="358"/>
         <source>Stop downloading</source>
         <translation>Zastav sťahovanie</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="368"/>
         <source>Show in %1</source>
         <translation>Zobraz v %1</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="370"/>
         <source>Open parent folder</source>
         <translation>Otvor nadradený adresár</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="379"/>
         <source>Restart downloading</source>
         <translation>Opakuj sťahovanie</translation>
     </message>
 <context>
     <name>PlaylistModel</name>
     <message>
-        <location filename="src/playlistmodel.cpp" line="70"/>
         <source>Searching...</source>
         <translation>Hľadám...</translation>
     </message>
     <message>
-        <location filename="src/playlistmodel.cpp" line="71"/>
         <source>Show %1 More</source>
         <translation>Zobraz %1 viac</translation>
     </message>
     <message>
-        <location filename="src/playlistmodel.cpp" line="72"/>
         <source>No videos</source>
         <translation>Žiadne videá</translation>
     </message>
     <message>
-        <location filename="src/playlistmodel.cpp" line="73"/>
         <source>No more videos</source>
         <translation>Niet viac videí</translation>
     </message>
 <context>
     <name>RefineSearchWidget</name>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="49"/>
         <source>Sort by</source>
         <translation>Zoradiť podľa</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="53"/>
         <source>Relevance</source>
         <translation>Relevancia</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="54"/>
-        <location filename="src/refinesearchwidget.cpp" line="69"/>
         <source>Date</source>
         <translation>Dátum</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="55"/>
         <source>View Count</source>
         <translation>Počet zhliadnutí</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="56"/>
         <source>Rating</source>
         <translation>Hodnotenie</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="73"/>
         <source>Anytime</source>
         <translation>Kedykoľvek</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="74"/>
         <source>Today</source>
         <translation>Dnes</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="75"/>
         <source>7 Days</source>
         <translation>7 dní</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="76"/>
         <source>30 Days</source>
         <translation>30 dní</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="89"/>
         <source>Duration</source>
         <translation>Dĺžka</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="93"/>
-        <location filename="src/refinesearchwidget.cpp" line="119"/>
         <source>All</source>
         <translation>Všetko</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="94"/>
         <source>Short</source>
         <translation>Krátky</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="95"/>
         <source>Medium</source>
         <translation>Stredný</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="96"/>
         <source>Long</source>
         <translation>Dlhý</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="99"/>
         <source>Less than 4 minutes</source>
         <translation>Menej ako 4 minúty</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="100"/>
         <source>Between 4 and 20 minutes</source>
         <translation>Medzi 4 a 20 minútami</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="101"/>
         <source>Longer than 20 minutes</source>
         <translation>Viac ako 20 minút</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="115"/>
         <source>Quality</source>
         <translation>Kvalita</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="120"/>
         <source>High Definition</source>
         <translation>Vysoké rozlíšenie</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="123"/>
         <source>720p or higher</source>
         <translation>720p alebo vyššie</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="136"/>
         <source>Done</source>
         <translation>Hotovo</translation>
     </message>
 <context>
     <name>RegionsView</name>
     <message>
-        <location filename="src/regionsview.cpp" line="39"/>
         <source>Done</source>
         <translation>Hotovo</translation>
     </message>
 <context>
     <name>SearchLineEdit</name>
     <message>
-        <location filename="src/searchlineedit.cpp" line="55"/>
         <source>Search</source>
         <translation>Hľadať</translation>
     </message>
 <context>
     <name>SearchView</name>
     <message>
-        <location filename="src/searchview.cpp" line="83"/>
         <source>Welcome to &lt;a href=&apos;%1&apos;&gt;%2&lt;/a&gt;,</source>
         <translation>Vitaj v aplikácii &lt;a href=&apos;%1&gt;%2&lt;/a&gt;,</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="200"/>
-        <source>Get the full version</source>
-        <translation>Získať plnú verziu</translation>
-    </message>
-    <message>
-        <location filename="src/searchview.cpp" line="110"/>
         <source>Enter</source>
         <extracomment>&quot;Enter&quot;, as in &quot;type&quot;. The whole phrase says: &quot;Enter a keyword to start watching videos&quot;</extracomment>
         <translation>Vlož</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="117"/>
         <source>a keyword</source>
         <translation>kľúčové slovo</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="118"/>
         <source>a channel</source>
         <translation>názov kanálu</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="125"/>
         <source>to start watching videos.</source>
         <translation>pre spustenie sledovania.</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="156"/>
         <source>Watch</source>
         <translation>Pozerať</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="174"/>
         <source>Recent keywords</source>
         <translation>Posledné kľúčové slová</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="186"/>
         <source>Recent channels</source>
         <translation>Posledné kanály</translation>
     </message>
+    <message>
+        <source>Get the full version</source>
+        <translation>Získať plnú verziu</translation>
+    </message>
 </context>
 <context>
     <name>SidebarHeader</name>
     <message>
-        <location filename="src/sidebarheader.cpp" line="38"/>
-        <location filename="src/sidebarheader.cpp" line="45"/>
         <source>&amp;Back</source>
         <translation>&amp;Späť</translation>
     </message>
     <message>
-        <location filename="src/sidebarheader.cpp" line="76"/>
         <source>Forward to %1</source>
         <translation>Vpred k %1</translation>
     </message>
     <message>
-        <location filename="src/sidebarheader.cpp" line="89"/>
         <source>Back to %1</source>
         <translation>Späť k %1</translation>
     </message>
 <context>
     <name>SidebarWidget</name>
     <message>
-        <location filename="src/sidebarwidget.cpp" line="68"/>
         <source>Refine Search</source>
         <translation>Upraviť kritériá hľadania</translation>
     </message>
     <message>
-        <location filename="src/sidebarwidget.cpp" line="167"/>
         <source>Did you mean: %1</source>
         <translation>Mali ste na mysli: %1</translation>
     </message>
 <context>
     <name>SnapshotSettings</name>
     <message>
-        <location filename="src/snapshotsettings.cpp" line="47"/>
         <source>Change location...</source>
         <translation>Zmeniť umiestnenie...</translation>
     </message>
     <message>
-        <location filename="src/snapshotsettings.cpp" line="64"/>
         <source>Snapshot saved to %1</source>
-        <translation type="unfinished"/>
+        <translation>Snímka obrazovky uložená v %1</translation>
     </message>
     <message>
-        <location filename="src/snapshotsettings.cpp" line="117"/>
         <source>Snapshots location changed.</source>
-        <translation type="unfinished"/>
+        <translation>Úložisko snímok obrazovky zmenené.</translation>
     </message>
 </context>
 <context>
     <name>StandardFeedsView</name>
     <message>
-        <location filename="src/standardfeedsview.cpp" line="107"/>
         <source>Most Popular</source>
         <translation>Najpopulárnejšie</translation>
     </message>
 </context>
+<context>
+    <name>UpdateDialog</name>
+    <message>
+        <source>Downloading update...</source>
+        <translation>Sťahujem aktualizáciu...</translation>
+    </message>
+    <message>
+        <source>Downloading %1...</source>
+        <translation type="unfinished"/>
+    </message>
+</context>
 <context>
     <name>Video</name>
     <message>
-        <location filename="src/video.cpp" line="287"/>
         <source>Cannot get video stream for %1</source>
         <translation>Nedostupný video stream pre %1</translation>
     </message>
-    <message>
-        <location filename="src/video.cpp" line="292"/>
-        <source>Network error: %1 for %2</source>
-        <translation>Chyba siete: %1 pre %2</translation>
-    </message>
 </context>
 <context>
     <name>YTRegions</name>
     <message>
-        <location filename="src/ytregions.cpp" line="28"/>
         <source>Algeria</source>
         <translation>Alžirsko</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="29"/>
         <source>Argentina</source>
         <translation>Argentína</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="30"/>
         <source>Australia</source>
         <translation>Austrália</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="31"/>
         <source>Belgium</source>
         <translation>Belgicko</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="32"/>
         <source>Brazil</source>
         <translation>Brazília</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="33"/>
         <source>Canada</source>
         <translation>Kanada</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="34"/>
         <source>Chile</source>
         <translation>Čile</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="35"/>
         <source>Colombia</source>
         <translation>Kolumbia</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="36"/>
         <source>Czech Republic</source>
         <translation>Česká Republika</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="37"/>
         <source>Egypt</source>
         <translation>Egypt</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="38"/>
         <source>France</source>
         <translation>Francúzsko</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="39"/>
         <source>Germany</source>
         <translation>Nemecko</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="40"/>
         <source>Ghana</source>
         <translation>Ghana</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="41"/>
         <source>Greece</source>
         <translation>Grécko</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="42"/>
         <source>Hong Kong</source>
         <translation>Hong Kong</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="43"/>
         <source>Hungary</source>
         <translation>Maďarsko</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="44"/>
         <source>India</source>
         <translation>India</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="45"/>
         <source>Indonesia</source>
         <translation>Indonézia</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="46"/>
         <source>Ireland</source>
         <translation>Írsko</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="47"/>
         <source>Israel</source>
         <translation>Izrael</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="48"/>
         <source>Italy</source>
         <translation>Taliansko</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="49"/>
         <source>Japan</source>
         <translation>Japonsko</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="50"/>
         <source>Jordan</source>
         <translation>Jordánsko</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="51"/>
         <source>Kenya</source>
         <translation>Keňa</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="52"/>
         <source>Malaysia</source>
         <translation>Malajzia</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="53"/>
         <source>Mexico</source>
         <translation>Mexiko</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="54"/>
         <source>Morocco</source>
         <translation>Maroko</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="55"/>
         <source>Netherlands</source>
         <translation>Holandsko</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="56"/>
         <source>New Zealand</source>
         <translation>Nový Zéland</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="57"/>
         <source>Nigeria</source>
         <translation>Nigéria</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="58"/>
         <source>Peru</source>
         <translation>Peru</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="59"/>
         <source>Philippines</source>
         <translation>Filipíny</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="60"/>
         <source>Poland</source>
         <translation>Poľsko</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="61"/>
         <source>Russia</source>
         <translation>Rusko</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="62"/>
         <source>Saudi Arabia</source>
         <translation>Saudská Arábia</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="63"/>
         <source>Singapore</source>
         <translation>Singapur</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="64"/>
         <source>South Africa</source>
         <translation>Južná Afrika</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="65"/>
         <source>South Korea</source>
         <translation>Južná Kórea</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="66"/>
         <source>Spain</source>
         <translation>Španielsko</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="67"/>
         <source>Sweden</source>
         <translation>Švédsko</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="68"/>
         <source>Taiwan</source>
         <translation>Taiwan</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="69"/>
         <source>Tunisia</source>
         <translation>Tunisko</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="70"/>
         <source>Turkey</source>
         <translation>Turecko</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="71"/>
         <source>Uganda</source>
         <translation>Uganda</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="72"/>
         <source>United Arab Emirates</source>
         <translation>Spojené Arabské Emiráty</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="73"/>
         <source>United Kingdom</source>
         <translation>Veľká Británia</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="74"/>
         <source>Yemen</source>
         <translation>Jemen</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="148"/>
         <source>Worldwide</source>
         <translation>Celosvetovo</translation>
     </message>
index f6a92ddfba96abf1976da0e455e076e563edface..bfa3343260d29c3f4c398258404f8ea0c99ae6fa 100644 (file)
@@ -2,67 +2,42 @@
 <context>
     <name>AboutView</name>
     <message>
-        <location filename="src/aboutview.cpp" line="58"/>
         <source>There&apos;s life outside the browser!</source>
         <translation>Zunaj brskalnika je življenje!</translation>
     </message>
     <message>
-        <location filename="src/aboutview.cpp" line="59"/>
         <source>Version %1</source>
         <translation>Različica %1</translation>
     </message>
     <message>
-        <location filename="src/aboutview.cpp" line="64"/>
         <source>Licensed to: %1</source>
-        <translation type="unfinished"/>
+        <translation>Licenca pripada: %1</translation>
     </message>
     <message>
-        <location filename="src/aboutview.cpp" line="68"/>
         <source>%1 is Free Software but its development takes precious time.</source>
         <translation>%1 je prosta programska oprema, a njen razvoj zahteva dragocen čas.</translation>
     </message>
     <message>
-        <location filename="src/aboutview.cpp" line="69"/>
         <source>Please &lt;a href=&apos;%1&apos;&gt;donate&lt;/a&gt; to support the continued development of %2.</source>
         <translation>&lt;a href=&apos;%1&apos;&gt;Darujte prosim&lt;/a&gt; za podporo stalnemu razvoju %2.</translation>
     </message>
     <message>
-        <location filename="src/aboutview.cpp" line="73"/>
-        <source>You may want to try my other apps as well:</source>
-        <translation>Morda želite preizkusiti še ostale aplikacije:</translation>
-    </message>
-    <message>
-        <location filename="src/aboutview.cpp" line="76"/>
-        <source>%1, a YouTube music player</source>
-        <translation>%1, YouTube glasbeni predvajalnik</translation>
-    </message>
-    <message>
-        <location filename="src/aboutview.cpp" line="80"/>
-        <source>%1, a music player</source>
-        <translation>%1, glasbeni predvajalnik</translation>
-    </message>
-    <message>
-        <location filename="src/aboutview.cpp" line="86"/>
         <source>Translate %1 to your native language using %2</source>
         <translation>Prevedite %1 v vaš jezik z uporabo programa %2</translation>
     </message>
     <message>
-        <location filename="src/aboutview.cpp" line="91"/>
         <source>Icon designed by %1.</source>
         <translation>Ikone je izrisal %1.</translation>
     </message>
     <message>
-        <location filename="src/aboutview.cpp" line="95"/>
         <source>Released under the &lt;a href=&apos;%1&apos;&gt;GNU General Public License&lt;/a&gt;</source>
         <translation>Izdano na podlagi licence &lt;a href=&apos;%1&apos;&gt;GNU General Public License&lt;/a&gt;</translation>
     </message>
     <message>
-        <location filename="src/aboutview.cpp" line="110"/>
         <source>&amp;Close</source>
         <translation>&amp;Zapri</translation>
     </message>
     <message>
-        <location filename="src/aboutview.h" line="40"/>
         <source>About</source>
         <translation>O programu</translation>
     </message>
 <context>
     <name>ActivationDialog</name>
     <message>
-        <location filename="local/src/activationdialog.cpp" line="17"/>
         <source>Enter your License Details</source>
-        <translation type="unfinished"/>
+        <translation>Vnesite svoje licenčne podatke</translation>
     </message>
     <message>
-        <location filename="local/src/activationdialog.cpp" line="29"/>
         <source>&amp;Email:</source>
         <translation>&amp;E-pošta</translation>
     </message>
     <message>
-        <location filename="local/src/activationdialog.cpp" line="35"/>
         <source>&amp;Code:</source>
         <translation>&amp;Koda:</translation>
     </message>
 <context>
     <name>ActivationView</name>
     <message>
-        <location filename="local/src/activationview.cpp" line="47"/>
         <source>Please license %1</source>
         <translation>Kupite prosim licenco %1</translation>
     </message>
     <message>
-        <location filename="local/src/activationview.cpp" line="51"/>
         <source>This demo has expired.</source>
         <translation>Različica demo je potekla.</translation>
     </message>
     <message>
-        <location filename="local/src/activationview.cpp" line="53"/>
         <source>The full version allows you to watch videos without interruptions.</source>
-        <oldsource>The full version allows you to download videos longer than %1 minutes and to watch videos without interruptions.</oldsource>
-        <translation type="unfinished"/>
+        <translation>Polna verzija vam omogoča ogled posnetkov 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>Brez licence bo uporabnost aplikacije potekla čez %1 dni.</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>Z nakupom polne različice, boste podprli veliko truda, ki sem ga vložil v %1.</translation>
     </message>
     <message>
-        <location filename="local/src/activationview.cpp" line="70"/>
         <source>Use Demo</source>
         <translation>Uporabi demo</translation>
     </message>
     <message>
-        <location filename="local/src/activationview.cpp" line="77"/>
         <source>Enter License</source>
         <translation>Vpis licence</translation>
     </message>
     <message>
-        <location filename="local/src/activationview.cpp" line="85"/>
         <source>Buy License</source>
         <translation>Kupite licenco</translation>
     </message>
 </context>
+<context>
+    <name>AppWidget</name>
+    <message>
+        <source>Download</source>
+        <translation type="unfinished"/>
+    </message>
+</context>
 <context>
     <name>ChannelAggregator</name>
     <message>
-        <location filename="src/channelaggregator.cpp" line="183"/>
         <source>By %1</source>
-        <translation type="unfinished"/>
+        <translation>Za %1</translation>
     </message>
     <message numerus="yes">
-        <location filename="src/channelaggregator.cpp" line="185"/>
         <source>You have %n new video(s)</source>
         <translation type="unfinished"><numerusform></numerusform><numerusform></numerusform><numerusform></numerusform><numerusform></numerusform></translation>
     </message>
 <context>
     <name>ChannelItemDelegate</name>
     <message>
-        <location filename="src/channelitemdelegate.cpp" line="67"/>
         <source>All Videos</source>
         <translation>Vsi videoposnetki</translation>
     </message>
     <message>
-        <location filename="src/channelitemdelegate.cpp" line="85"/>
         <source>Unwatched Videos</source>
-        <translation type="unfinished"/>
+        <translation>Neogledani posnetki</translation>
     </message>
 </context>
 <context>
     <name>ChannelView</name>
     <message>
-        <location filename="src/channelview.cpp" line="151"/>
-        <source>Mark all as watched</source>
-        <translation>Označi vse za pregledane</translation>
-    </message>
-    <message>
-        <location filename="src/channelview.cpp" line="159"/>
-        <source>Show Updated</source>
-        <translation>Pokaži posodobitve</translation>
-    </message>
-    <message>
-        <location filename="src/channelview.cpp" line="103"/>
         <source>Name</source>
         <translation>Naziv</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="110"/>
         <source>Last Updated</source>
         <translation>Nazadnje posodobljeno</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="117"/>
         <source>Last Added</source>
         <translation>Nazadnje dodano</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="124"/>
         <source>Last Watched</source>
         <translation>Nazadnje gledano</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="131"/>
         <source>Most Watched</source>
         <translation>Največkrat gledano</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="139"/>
         <source>Sort by</source>
         <translation>Razvrsti glede na</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="222"/>
+        <source>Mark all as watched</source>
+        <translation>Označi vse za pregledane</translation>
+    </message>
+    <message>
+        <source>Show Updated</source>
+        <translation>Pokaži posodobitve</translation>
+    </message>
+    <message>
         <source>All Videos</source>
         <translation>Vsi videoposnetki</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="226"/>
         <source>Unwatched Videos</source>
-        <translation type="unfinished"/>
+        <translation>Neogledani posnetki</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="244"/>
         <source>Mark as Watched</source>
-        <translation type="unfinished"/>
+        <translation>Označite kot ogledano</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="257"/>
         <source>Unsubscribe</source>
-        <translation type="unfinished"/>
+        <translation>Odjavite se</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="270"/>
         <source>There are no updated subscriptions at this time.</source>
-        <translation type="unfinished"/>
+        <translation>Za zdaj ni nobenih novih posnetkov, na katere ste prijavljeni</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="272"/>
         <source>You have no subscriptions. Use the star symbol to subscribe to channels.</source>
-        <translation type="unfinished"/>
+        <translation>Nimate naročnin. Uporabite zvezdo da se naročite na kanale.</translation>
     </message>
 </context>
 <context>
     <name>ClearButton</name>
     <message>
-        <location filename="src/exlineedit.cpp" line="6"/>
         <source>Clear</source>
         <translation>Počisti</translation>
     </message>
 <context>
     <name>DataUtils</name>
     <message>
-        <location filename="src/datautils.cpp" line="88"/>
         <source>Just now</source>
-        <translation type="unfinished"/>
+        <translation>Ravnokar</translation>
     </message>
     <message numerus="yes">
-        <location filename="src/datautils.cpp" line="90"/>
-        <source>%n minute(s) ago</source>
-        <translation type="unfinished"><numerusform></numerusform><numerusform></numerusform><numerusform></numerusform><numerusform></numerusform></translation>
-    </message>
-    <message numerus="yes">
-        <location filename="src/datautils.cpp" line="92"/>
         <source>%n hour(s) ago</source>
         <translation type="unfinished"><numerusform></numerusform><numerusform></numerusform><numerusform></numerusform><numerusform></numerusform></translation>
     </message>
     <message numerus="yes">
-        <location filename="src/datautils.cpp" line="94"/>
         <source>%n day(s) ago</source>
         <translation type="unfinished"><numerusform></numerusform><numerusform></numerusform><numerusform></numerusform><numerusform></numerusform></translation>
     </message>
     <message numerus="yes">
-        <location filename="src/datautils.cpp" line="96"/>
         <source>%n weeks(s) ago</source>
         <translation type="unfinished"><numerusform></numerusform><numerusform></numerusform><numerusform></numerusform><numerusform></numerusform></translation>
     </message>
     <message numerus="yes">
-        <location filename="src/datautils.cpp" line="98"/>
         <source>%n month(s) ago</source>
         <translation type="unfinished"><numerusform></numerusform><numerusform></numerusform><numerusform></numerusform><numerusform></numerusform></translation>
     </message>
 <context>
     <name>DownloadItem</name>
     <message>
-        <location filename="src/downloaditem.cpp" line="406"/>
         <source>bytes</source>
         <translation>bajtov</translation>
     </message>
     <message>
-        <location filename="src/downloaditem.cpp" line="409"/>
         <source>KB</source>
         <translation>kB</translation>
     </message>
     <message>
-        <location filename="src/downloaditem.cpp" line="412"/>
         <source>MB</source>
         <translation>MB</translation>
     </message>
     <message>
-        <location filename="src/downloaditem.cpp" line="421"/>
         <source>bytes/sec</source>
         <translation>byte/s</translation>
     </message>
     <message>
-        <location filename="src/downloaditem.cpp" line="424"/>
         <source>KB/sec</source>
         <translation>kB/s</translation>
     </message>
     <message>
-        <location filename="src/downloaditem.cpp" line="427"/>
         <source>MB/sec</source>
         <translation>MB/s</translation>
     </message>
     <message>
-        <location filename="src/downloaditem.cpp" line="433"/>
         <source>seconds</source>
         <translation>sekund</translation>
     </message>
     <message>
-        <location filename="src/downloaditem.cpp" line="436"/>
         <source>minutes</source>
         <translation>minut</translation>
     </message>
     <message>
-        <location filename="src/downloaditem.cpp" line="439"/>
         <source>%4 %5 remaining</source>
         <translation>%4 %5 ostaja</translation>
     </message>
 <context>
     <name>DownloadManager</name>
     <message>
-        <location filename="src/downloadmanager.cpp" line="77"/>
         <source>This is just the demo version of %1.</source>
         <translation>To je samo preizkusna različica programa %1.</translation>
     </message>
     <message>
-        <location filename="src/downloadmanager.cpp" line="79"/>
         <source>It can only download videos shorter than %1 minutes so you can test the download functionality.</source>
         <translation>Prenese lahko samo posnetke krajše od %1 minut, da lahko preverite delovanje funkcije prenosa.</translation>
     </message>
     <message>
-        <location filename="src/downloadmanager.cpp" line="85"/>
         <source>Continue</source>
         <translation>Nadaljuj</translation>
     </message>
     <message>
-        <location filename="src/downloadmanager.cpp" line="86"/>
         <source>Get the full version</source>
         <translation>Pridobi popolno različico</translation>
     </message>
     <message>
-        <location filename="src/downloadmanager.cpp" line="157"/>
         <source>%1 downloaded in %2</source>
         <translation>%1 preneseno v %2</translation>
     </message>
     <message>
-        <location filename="src/downloadmanager.cpp" line="160"/>
         <source>Download finished</source>
         <translation>Prenos končan</translation>
     </message>
     <message numerus="yes">
-        <location filename="src/downloadmanager.cpp" line="165"/>
         <source>%n Download(s)</source>
         <translation type="unfinished"><numerusform></numerusform><numerusform></numerusform><numerusform></numerusform><numerusform></numerusform></translation>
     </message>
 <context>
     <name>DownloadSettings</name>
     <message>
-        <location filename="src/downloadsettings.cpp" line="36"/>
         <source>Change location...</source>
         <translation>Sprememba mesta ...</translation>
     </message>
     <message>
-        <location filename="src/downloadsettings.cpp" line="69"/>
         <source>Choose the download location</source>
         <translation>Izberite mesto prenosa</translation>
     </message>
     <message>
-        <location filename="src/downloadsettings.cpp" line="81"/>
         <source>Download location changed.</source>
         <translation>Spremenili ste mesto prenosa.</translation>
     </message>
     <message>
-        <location filename="src/downloadsettings.cpp" line="83"/>
         <source>Current downloads will still go in the previous location.</source>
         <translation>Trenutni prenosi bodo še vedno šli v prejšnje mesto.</translation>
     </message>
     <message>
-        <location filename="src/downloadsettings.cpp" line="94"/>
         <source>Downloading to: %1</source>
         <translation>Prenos v: %1</translation>
     </message>
 <context>
     <name>DownloadView</name>
     <message>
-        <location filename="src/downloadview.cpp" line="38"/>
-        <location filename="src/downloadview.h" line="45"/>
         <source>Downloads</source>
         <translation>Prenosi</translation>
     </message>
 </context>
-<context>
-    <name>DownloadWidget</name>
-    <message>
-        <location filename="local/src/updatedialog.cpp" line="60"/>
-        <source>Downloading update...</source>
-        <translation>Prenos posodobitve ...</translation>
-    </message>
-</context>
 <context>
     <name>Extra</name>
     <message>
-        <location filename="local/src/extra.cpp" line="251"/>
         <source>The executable file has been tempered with, maybe by a virus.</source>
-        <translation type="unfinished"/>
+        <translation>Nekdo je ponaredil namestitveno datoteko, najverjetneje virus</translation>
     </message>
     <message>
-        <location filename="local/src/extra.cpp" line="252"/>
         <source>%1 will not run. Try installing again.</source>
-        <translation type="unfinished"/>
+        <translation>%1 ni bilo mogoče zagnati. Poskusite še enkrat.</translation>
     </message>
     <message>
-        <location filename="local/src/extra.cpp" line="253"/>
         <source>Quit</source>
-        <translation type="unfinished"/>
+        <translation>Zapri</translation>
     </message>
     <message>
-        <location filename="local/src/extra.cpp" line="254"/>
         <source>Reinstall</source>
-        <translation type="unfinished"/>
+        <translation>Ponovno namesti</translation>
     </message>
 </context>
 <context>
     <name>GlobalShortcuts</name>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="36"/>
         <source>Play</source>
         <translation>Predvajaj</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="37"/>
         <source>Pause</source>
         <translation>Pavza</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="38"/>
         <source>Play/Pause</source>
         <translation>Predvajaj/Pavza</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="39"/>
         <source>Stop</source>
         <translation>Ustavi</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="40"/>
         <source>Stop playing after current track</source>
         <translation>Ustavi predvajanje po trenutnem posnetku</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="41"/>
         <source>Next track</source>
         <translation>Naslednji posnetek</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="42"/>
         <source>Previous track</source>
         <translation>Prejšnji posnetek</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="43"/>
         <source>Increase volume</source>
         <translation>Povečaj glasnost</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="44"/>
         <source>Decrease volume</source>
         <translation>Zmanjšaj glasnost</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="45"/>
         <source>Mute</source>
         <translation>Nemo</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="46"/>
         <source>Seek forward</source>
         <translation>Išči naprej</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="47"/>
         <source>Seek backward</source>
         <translation>Išči nazaj</translation>
     </message>
 <context>
     <name>HomeView</name>
     <message>
-        <location filename="src/homeview.cpp" line="58"/>
         <source>Search</source>
         <translation>Išči</translation>
     </message>
     <message>
-        <location filename="src/homeview.cpp" line="60"/>
         <source>Find videos and channels by keyword</source>
         <translation>Išči posnetke in kanale po ključnih besedah</translation>
     </message>
     <message>
-        <location filename="src/homeview.cpp" line="65"/>
         <source>Browse</source>
         <translation>Brskaj</translation>
     </message>
     <message>
-        <location filename="src/homeview.cpp" line="67"/>
         <source>Browse videos by category</source>
-        <translation type="unfinished"/>
+        <translation>Brskaj posnetke po kategoriji</translation>
     </message>
     <message>
-        <location filename="src/homeview.cpp" line="71"/>
         <source>Subscriptions</source>
         <translation>Naročnine</translation>
     </message>
     <message>
-        <location filename="src/homeview.cpp" line="73"/>
         <source>Channel subscriptions</source>
         <translation>Naročanje kanalov</translation>
     </message>
     <message>
-        <location filename="src/homeview.h" line="44"/>
         <source>Make yourself comfortable</source>
         <translation>Udobno se namestite</translation>
     </message>
 <context>
     <name>LoadingWidget</name>
     <message>
-        <location filename="src/loadingwidget.cpp" line="125"/>
         <source>Error</source>
         <translation>Napaka</translation>
     </message>
 <context>
     <name>MainWindow</name>
     <message>
-        <location filename="src/mainwindow.cpp" line="291"/>
+        <source>&amp;Window</source>
+        <translation>&amp;Okno</translation>
+    </message>
+    <message>
+        <source>&amp;Minimize</source>
+        <translation>Po&amp;manjšaj</translation>
+    </message>
+    <message>
         <source>&amp;Stop</source>
         <translation>U&amp;stavi</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="292"/>
         <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="307"/>
+        <source>P&amp;revious</source>
+        <translation>P&amp;redhodna</translation>
+    </message>
+    <message>
+        <source>Go back to the previous track</source>
+        <translation>Predhodna sled</translation>
+    </message>
+    <message>
         <source>S&amp;kip</source>
         <translation>Pres&amp;koči</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="308"/>
         <source>Skip to the next video</source>
         <translation>Skoči na naslednji video</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1134"/>
-        <source>&amp;Pause</source>
-        <translation>&amp;Pavza</translation>
+        <source>&amp;Play</source>
+        <translation>&amp;Predvajaj</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1135"/>
-        <source>Pause playback</source>
-        <translation>Premor v predvajanju</translation>
+        <source>Resume playback</source>
+        <translation>Nadaljuj s predvajanjem</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="321"/>
         <source>&amp;Full Screen</source>
         <translation>&amp;Celozaslonski način</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="322"/>
         <source>Go full screen</source>
         <translation>Gre v celozaslonski način</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="336"/>
+        <source>&amp;Compact Mode</source>
+        <translation>Strnjen način</translation>
+    </message>
+    <message>
         <source>Hide the playlist and the toolbar</source>
         <translation>Skrije predvajalni seznam in orodno vrstico</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="349"/>
+        <source>Open the &amp;YouTube Page</source>
+        <translation>Odpri stran &amp;Youtube</translation>
+    </message>
+    <message>
         <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="356"/>
+        <source>Copy the YouTube &amp;Link</source>
+        <translation>Kopiraj povezavo Youtube</translation>
+    </message>
+    <message>
         <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="363"/>
+        <source>Copy the Video Stream &amp;URL</source>
+        <translation>Kopiraj &amp;URL toka video</translation>
+    </message>
+    <message>
         <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="370"/>
+        <source>Find Video &amp;Parts</source>
+        <translation>&amp;Poišči ostale dele posnetka</translation>
+    </message>
+    <message>
         <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="376"/>
         <source>&amp;Remove</source>
         <translation>Odst&amp;rani</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="377"/>
         <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="383"/>
         <source>Move &amp;Up</source>
         <translation>Premakni &amp;gor</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="384"/>
         <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="390"/>
         <source>Move &amp;Down</source>
         <translation>Premakni &amp;dol</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="391"/>
         <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="402"/>
+        <source>&amp;Clear Recent Searches</source>
+        <translation>Počisti nedavna iskanja</translation>
+    </message>
+    <message>
         <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="407"/>
         <source>&amp;Quit</source>
         <translation>&amp;Zapri</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="410"/>
         <source>Bye</source>
         <translation>Nasvidenje</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="414"/>
         <source>&amp;Website</source>
         <translation>&amp;Spletno mesto</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="416"/>
         <source>%1 on the Web</source>
         <translation>%1 na spletu</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="422"/>
+        <source>Make a &amp;Donation</source>
+        <translation>Pošlji &amp;donacijo</translation>
+    </message>
+    <message>
         <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="427"/>
         <source>&amp;About</source>
         <translation>&amp;O programu</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="429"/>
         <source>Info about %1</source>
         <translation>Informacije o %1</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="437"/>
         <source>Search</source>
         <translation>Išči</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="456"/>
         <source>Mute volume</source>
         <translation>Nemo</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="490"/>
-        <location filename="src/mainwindow.cpp" line="1609"/>
+        <source>&amp;Manually Start Playing</source>
+        <translation>Ročno začni predvajanje</translation>
+    </message>
+    <message>
+        <source>Manually start playing videos</source>
+        <translation>Prični z ročnim predvajanjem posnetkov</translation>
+    </message>
+    <message>
         <source>&amp;Downloads</source>
         <translation>Pre&amp;nosi</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="491"/>
         <source>Show details about video downloads</source>
         <translation>Pokaže podrobnosti o prenosih posnetkov</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="499"/>
         <source>&amp;Download</source>
         <translation>Pre&amp;nesi</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="500"/>
         <source>Download the current video</source>
         <translation>Prenese trenutni posnetek</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="510"/>
         <source>Take &amp;Snapshot</source>
-        <translation type="unfinished"/>
+        <translation>Vzemi &amp; Naredi Sliko</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="517"/>
         <source>&amp;Subscribe to Channel</source>
-        <translation type="unfinished"/>
+        <translation>&amp;Prijavi se na kanal</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="525"/>
         <source>Share the current video using %1</source>
         <translation>Deli trenutni posnetek preko %1 </translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="545"/>
         <source>&amp;Email</source>
         <translation>&amp;E-pošta</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="546"/>
         <source>Email</source>
         <translation>E-pošte</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="551"/>
         <source>&amp;Close</source>
         <translation>&amp;Zapri</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="561"/>
         <source>&amp;Float on Top</source>
         <translation>Lebdeče na vrhu</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="566"/>
         <source>&amp;Adjust Window Size</source>
-        <translation type="unfinished"/>
+        <translation>&amp;Prilagodi velikost okna</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="571"/>
         <source>&amp;Stop After This Video</source>
         <translation>U&amp;stavi za tem posnetkom</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="578"/>
         <source>&amp;Report an Issue...</source>
         <translation>P&amp;rijavi napako ...</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="582"/>
         <source>&amp;Refine Search...</source>
         <translation>&amp;Izboljšaj iskanje ...</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="594"/>
         <source>More...</source>
         <translation>Več ...</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="597"/>
         <source>&amp;Related Videos</source>
-        <translation type="unfinished"/>
+        <translation>&amp;Povezani posnetki</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="599"/>
         <source>Watch videos related to the current one</source>
-        <translation type="unfinished"/>
+        <translation>Glej posnetke, povezane s sedanjim</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="605"/>
         <source>Open in &amp;Browser...</source>
         <translation>Odpri v &amp;Brskalniku...</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="612"/>
-        <source>&amp;Love %1? Rate it!</source>
+        <source>Restricted Mode</source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="633"/>
-        <source>&amp;Application</source>
-        <translation>&amp;Aplikacija</translation>
+        <source>Hide videos that may contain inappropriate content</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <source>&amp;Love %1? Rate it!</source>
+        <translation>&amp;Vam je všeč %1? Oceni!</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="618"/>
         <source>Buy %1...</source>
         <translation>Kupi %1 ...</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="647"/>
+        <source>&amp;Application</source>
+        <translation>&amp;Aplikacija</translation>
+    </message>
+    <message>
         <source>&amp;Playback</source>
         <translation>&amp;Predvajanje</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="661"/>
         <source>&amp;Playlist</source>
         <translation>&amp;Predvajalni seznam</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="670"/>
         <source>&amp;Video</source>
         <translation>&amp;Video</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="686"/>
-        <source>&amp;View</source>
-        <translation>&amp;Pogled</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="695"/>
         <source>&amp;Share</source>
         <translation>&amp;Deli</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="709"/>
+        <source>&amp;View</source>
+        <translation>&amp;Pogled</translation>
+    </message>
+    <message>
         <source>&amp;Help</source>
         <translation>P&amp;omoč</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="751"/>
         <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="1021"/>
-        <location filename="src/mainwindow.cpp" line="1027"/>
+        <source>Choose your content location</source>
+        <translation>Izberi mesto za vsebino</translation>
+    </message>
+    <message>
         <source>Opening %1</source>
         <translation>Odpiranje %1</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1080"/>
         <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="1081"/>
         <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="1086"/>
         <source>Close and cancel download</source>
         <translation>Zapri in prekliči prenos</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1087"/>
         <source>Wait for download to finish</source>
         <translation>Počakaj, da konča prenos.</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1158"/>
-        <source>&amp;Loading...</source>
-        <translation type="unfinished"/>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="1264"/>
-        <source>Leave &amp;Full Screen</source>
-        <translation>Zapusti celozaslonski način</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="1718"/>
-        <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="1722"/>
-        <source>Remind me later</source>
-        <translation>Opozori me kasneje</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="1723"/>
-        <source>Update</source>
-        <translation>Posodobitev</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="1127"/>
         <source>Error: %1</source>
         <translation>Napaka: %1</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="300"/>
-        <source>P&amp;revious</source>
-        <translation>P&amp;redhodna</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="301"/>
-        <source>Go back to the previous track</source>
-        <translation>Predhodna sled</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="335"/>
-        <source>&amp;Compact Mode</source>
-        <translation>Strnjen način</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="348"/>
-        <source>Open the &amp;YouTube Page</source>
-        <translation>Odpri stran &amp;Youtube</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="355"/>
-        <source>Copy the YouTube &amp;Link</source>
-        <translation>Kopiraj povezavo Youtube</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="362"/>
-        <source>Copy the Video Stream &amp;URL</source>
-        <translation>Kopiraj &amp;URL toka video</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="369"/>
-        <source>Find Video &amp;Parts</source>
-        <translation>&amp;Poišči ostale dele posnetka</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="397"/>
-        <source>&amp;Clear Recent Searches</source>
-        <translation>Počisti nedavna iskanja</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="421"/>
-        <source>Make a &amp;Donation</source>
-        <translation>Pošlji &amp;donacijo</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="483"/>
-        <source>&amp;Manually Start Playing</source>
-        <translation>Ročno začni predvajanje</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="484"/>
-        <source>Manually start playing videos</source>
-        <translation>Prični z ročnim predvajanjem posnetkov</translation>
+        <source>&amp;Pause</source>
+        <translation>&amp;Pavza</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="847"/>
-        <source>Choose your content location</source>
-        <translation type="unfinished"/>
+        <source>Pause playback</source>
+        <translation>Premor v predvajanju</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="314"/>
-        <location filename="src/mainwindow.cpp" line="1142"/>
-        <location filename="src/mainwindow.cpp" line="1150"/>
-        <source>&amp;Play</source>
-        <translation>&amp;Predvajaj</translation>
+        <source>&amp;Loading...</source>
+        <translation>&amp;Nalaganje</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="315"/>
-        <location filename="src/mainwindow.cpp" line="1143"/>
-        <location filename="src/mainwindow.cpp" line="1151"/>
-        <source>Resume playback</source>
-        <translation>Nadaljuj s predvajanjem</translation>
+        <source>Leave &amp;Full Screen</source>
+        <translation>Zapusti celozaslonski način</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1437"/>
         <source>Remaining time: %1</source>
         <translation>Preostali čas: %1</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1528"/>
         <source>Volume at %1%</source>
         <translation>Glasnost %1%</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1534"/>
         <source>Volume is muted</source>
         <translation>Glasnost je utišana</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1537"/>
         <source>Volume is unmuted</source>
         <translation>Glasnost je povrnjena</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1548"/>
         <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="1595"/>
         <source>Your privacy is now safe</source>
         <translation>Vaša zasebnost je zdaj varna</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1610"/>
         <source>Downloads complete</source>
         <translation>Prenosi so končani</translation>
     </message>
+    <message>
+        <source>%1 version %2 is now available.</source>
+        <translation>Na voljo je %1 različica %2.</translation>
+    </message>
+    <message>
+        <source>Remind me later</source>
+        <translation>Opozori me kasneje</translation>
+    </message>
+    <message>
+        <source>Update</source>
+        <translation>Posodobitev</translation>
+    </message>
 </context>
 <context>
     <name>MediaView</name>
     <message>
-        <location filename="src/mediaview.cpp" line="702"/>
         <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="710"/>
         <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="711"/>
         <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="800"/>
         <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="801"/>
         <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="833"/>
+        <source>Get the full version</source>
+        <translation>Pridobi celotno različico</translation>
+    </message>
+    <message>
         <source>Continue</source>
         <translation>Nadaljuj</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="988"/>
+        <source>Downloading %1</source>
+        <translation>Prenašanje %1</translation>
+    </message>
+    <message>
         <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="1001"/>
         <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="1003"/>
         <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="1096"/>
         <source>Sent from %1</source>
         <translation>Poslano iz %1</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="1128"/>
         <source>Unsubscribe from %1</source>
-        <translation type="unfinished"/>
+        <translation>Odjavite se od %1</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="1132"/>
         <source>Subscribe to %1</source>
         <translation>Naroči se na %1</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="1166"/>
         <source>Unsubscribed from %1</source>
-        <translation type="unfinished"/>
+        <translation>Odjavljeni od %1</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="1169"/>
         <source>Subscribed to %1</source>
-        <translation type="unfinished"/>
-    </message>
-    <message>
-        <location filename="src/mediaview.cpp" line="808"/>
-        <source>Get the full version</source>
-        <translation>Pridobi celotno različico</translation>
-    </message>
-    <message>
-        <location filename="src/mediaview.cpp" line="847"/>
-        <source>Downloading %1</source>
-        <translation>Prenašanje %1</translation>
+        <translation>Prijavljeni ste na %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"/>
+        <translation>Nova različica %1 je na voljo!</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 je sedaj na voljo. Vi imate %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>Bi jo radi prenesli sedaj?</translation>
     </message>
     <message>
-        <location filename="local/src/updatedialog.cpp" line="39"/>
         <source>Skip This Version</source>
-        <translation type="unfinished"/>
+        <translation>Preskočite to verzijo</translation>
     </message>
     <message>
-        <location filename="local/src/updatedialog.cpp" line="43"/>
         <source>Remind Me Later</source>
-        <translation type="unfinished"/>
+        <translation>Opomni me kasneje</translation>
     </message>
     <message>
-        <location filename="local/src/updatedialog.cpp" line="47"/>
         <source>Install Update</source>
         <translation>Namesti posodobitev</translation>
     </message>
 <context>
     <name>PasteLineEdit</name>
     <message>
-        <location filename="local/src/pastelineedit.cpp" line="6"/>
         <source>Paste</source>
         <translation>Prilepi</translation>
     </message>
 <context>
     <name>PlaylistItemDelegate</name>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="209"/>
         <source>%1 views</source>
         <translation>%1 predvajanj</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="309"/>
         <source>%1 of %2 (%3) — %4</source>
         <translation>%1 od %2 (%3) — %4</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="316"/>
         <source>Preparing</source>
         <translation>V pripravi</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="318"/>
         <source>Failed</source>
-        <translation type="unfinished"/>
+        <translation>Neuspešno</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="320"/>
         <source>Completed</source>
-        <translation type="unfinished"/>
+        <translation>Dokončano</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="322"/>
         <source>Stopped</source>
-        <translation type="unfinished"/>
+        <translation>Ustavljeno</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="358"/>
         <source>Stop downloading</source>
-        <translation type="unfinished"/>
+        <translation>Ustavi prenos</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="368"/>
         <source>Show in %1</source>
-        <translation type="unfinished"/>
+        <translation>Pokaži v %1</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="370"/>
         <source>Open parent folder</source>
-        <translation type="unfinished"/>
+        <translation>Odpri nadrejeno mapo</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="379"/>
         <source>Restart downloading</source>
-        <translation type="unfinished"/>
+        <translation>Ponovno prenesi</translation>
     </message>
 </context>
 <context>
     <name>PlaylistModel</name>
     <message>
-        <location filename="src/playlistmodel.cpp" line="70"/>
         <source>Searching...</source>
         <translation>Iskanje ...</translation>
     </message>
     <message>
-        <location filename="src/playlistmodel.cpp" line="71"/>
         <source>Show %1 More</source>
-        <translation type="unfinished"/>
+        <translation>Pokaži %1 več</translation>
     </message>
     <message>
-        <location filename="src/playlistmodel.cpp" line="72"/>
         <source>No videos</source>
         <translation>Nobenega videa</translation>
     </message>
     <message>
-        <location filename="src/playlistmodel.cpp" line="73"/>
         <source>No more videos</source>
-        <translation type="unfinished"/>
+        <translation>Nobenega videa več</translation>
     </message>
 </context>
 <context>
     <name>RefineSearchWidget</name>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="49"/>
         <source>Sort by</source>
         <translation>Razvrsti glede na</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="53"/>
         <source>Relevance</source>
         <translation>Ustreznost</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="54"/>
-        <location filename="src/refinesearchwidget.cpp" line="69"/>
         <source>Date</source>
         <translation>Datum</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="55"/>
         <source>View Count</source>
         <translation>Število ogledov</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="56"/>
         <source>Rating</source>
         <translation>Oceno</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="73"/>
         <source>Anytime</source>
         <translation>Kadarkoli</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="74"/>
         <source>Today</source>
         <translation>Danes</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="75"/>
         <source>7 Days</source>
         <translation>7 dni</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="76"/>
         <source>30 Days</source>
         <translation>30 dni</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="89"/>
         <source>Duration</source>
         <translation>Trajanje</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="93"/>
-        <location filename="src/refinesearchwidget.cpp" line="119"/>
         <source>All</source>
         <translation>Vse</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="94"/>
         <source>Short</source>
         <translation>Kratko</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="95"/>
         <source>Medium</source>
         <translation>Srednje</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="96"/>
         <source>Long</source>
         <translation>Dolgo</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="99"/>
         <source>Less than 4 minutes</source>
         <translation>Manj kot 4 minute</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="100"/>
         <source>Between 4 and 20 minutes</source>
         <translation>Med 4. in 20. minutami</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="101"/>
         <source>Longer than 20 minutes</source>
         <translation>Daljše kot 20 minut</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="115"/>
         <source>Quality</source>
         <translation>Kvaliteta</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="120"/>
         <source>High Definition</source>
         <translation>Visoka ločljivost</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="123"/>
         <source>720p or higher</source>
         <translation>720p in višje</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="136"/>
         <source>Done</source>
         <translation>Narejeno</translation>
     </message>
 <context>
     <name>RegionsView</name>
     <message>
-        <location filename="src/regionsview.cpp" line="39"/>
         <source>Done</source>
-        <translation type="unfinished"/>
+        <translation>Končano</translation>
     </message>
 </context>
 <context>
     <name>SearchLineEdit</name>
     <message>
-        <location filename="src/searchlineedit.cpp" line="55"/>
         <source>Search</source>
         <translation>Išči</translation>
     </message>
 <context>
     <name>SearchView</name>
     <message>
-        <location filename="src/searchview.cpp" line="83"/>
         <source>Welcome to &lt;a href=&apos;%1&apos;&gt;%2&lt;/a&gt;,</source>
         <translation>Pozdravljeni v &lt;a href=&apos;%1&apos;&gt;%2&lt;/a&gt;,</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="200"/>
-        <source>Get the full version</source>
-        <translation>Pridobi celotno različico</translation>
-    </message>
-    <message>
-        <location filename="src/searchview.cpp" line="110"/>
         <source>Enter</source>
         <extracomment>&quot;Enter&quot;, as in &quot;type&quot;. The whole phrase says: &quot;Enter a keyword to start watching videos&quot;</extracomment>
         <translation>Vnesite</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="117"/>
         <source>a keyword</source>
         <translation>ključno besedo</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="118"/>
         <source>a channel</source>
         <translation>kanal</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="125"/>
         <source>to start watching videos.</source>
         <translation>in začnite gledati posnetke.</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="156"/>
         <source>Watch</source>
         <translation>Glejte</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="174"/>
         <source>Recent keywords</source>
         <translation>Nedavne ključne besede</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="186"/>
         <source>Recent channels</source>
         <translation>Nedavni kanali</translation>
     </message>
+    <message>
+        <source>Get the full version</source>
+        <translation>Pridobi celotno različico</translation>
+    </message>
 </context>
 <context>
     <name>SidebarHeader</name>
     <message>
-        <location filename="src/sidebarheader.cpp" line="38"/>
-        <location filename="src/sidebarheader.cpp" line="45"/>
         <source>&amp;Back</source>
         <translation>Na&amp;zaj</translation>
     </message>
     <message>
-        <location filename="src/sidebarheader.cpp" line="76"/>
         <source>Forward to %1</source>
-        <translation type="unfinished"/>
+        <translation>Naprej na %1</translation>
     </message>
     <message>
-        <location filename="src/sidebarheader.cpp" line="89"/>
         <source>Back to %1</source>
-        <translation type="unfinished"/>
+        <translation>Nazaj na %1</translation>
     </message>
 </context>
 <context>
     <name>SidebarWidget</name>
     <message>
-        <location filename="src/sidebarwidget.cpp" line="68"/>
         <source>Refine Search</source>
         <translation>Izboljšaj iskanje</translation>
     </message>
     <message>
-        <location filename="src/sidebarwidget.cpp" line="167"/>
         <source>Did you mean: %1</source>
         <translation>Ali ste mogoče mislili: %1</translation>
     </message>
 <context>
     <name>SnapshotSettings</name>
     <message>
-        <location filename="src/snapshotsettings.cpp" line="47"/>
         <source>Change location...</source>
         <translation>Sprememba mesta ...</translation>
     </message>
     <message>
-        <location filename="src/snapshotsettings.cpp" line="64"/>
         <source>Snapshot saved to %1</source>
-        <translation type="unfinished"/>
+        <translation>Posnetek slike shranjen v %1</translation>
     </message>
     <message>
-        <location filename="src/snapshotsettings.cpp" line="117"/>
         <source>Snapshots location changed.</source>
-        <translation type="unfinished"/>
+        <translation>Lokacija slik spremenjena</translation>
     </message>
 </context>
 <context>
     <name>StandardFeedsView</name>
     <message>
-        <location filename="src/standardfeedsview.cpp" line="107"/>
         <source>Most Popular</source>
         <translation>Najbolj popularno</translation>
     </message>
 </context>
+<context>
+    <name>UpdateDialog</name>
+    <message>
+        <source>Downloading update...</source>
+        <translation>Prenos posodobitve ...</translation>
+    </message>
+    <message>
+        <source>Downloading %1...</source>
+        <translation type="unfinished"/>
+    </message>
+</context>
 <context>
     <name>Video</name>
     <message>
-        <location filename="src/video.cpp" line="287"/>
         <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="292"/>
-        <source>Network error: %1 for %2</source>
-        <translation>Napaka omrežja: %1 od %2</translation>
-    </message>
 </context>
 <context>
     <name>YTRegions</name>
     <message>
-        <location filename="src/ytregions.cpp" line="28"/>
         <source>Algeria</source>
         <translation>Alžirija</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="29"/>
         <source>Argentina</source>
         <translation>Argentina</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="30"/>
         <source>Australia</source>
         <translation>Avstralija</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="31"/>
         <source>Belgium</source>
         <translation>Belgija</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="32"/>
         <source>Brazil</source>
         <translation>Brazilija</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="33"/>
         <source>Canada</source>
         <translation>Kanada</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="34"/>
         <source>Chile</source>
         <translation>Čile</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="35"/>
         <source>Colombia</source>
         <translation>Kolumbija</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="36"/>
         <source>Czech Republic</source>
         <translation>Češka republika</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="37"/>
         <source>Egypt</source>
         <translation>Egipt</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="38"/>
         <source>France</source>
         <translation>Francija</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="39"/>
         <source>Germany</source>
         <translation>Nemčija</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="40"/>
         <source>Ghana</source>
         <translation>Gana</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="41"/>
         <source>Greece</source>
         <translation>Grčija</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="42"/>
         <source>Hong Kong</source>
         <translation>Hong Kong</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="43"/>
         <source>Hungary</source>
         <translation>Madžarska</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="44"/>
         <source>India</source>
         <translation>Indija</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="45"/>
         <source>Indonesia</source>
         <translation>Indonezija</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="46"/>
         <source>Ireland</source>
         <translation>Irska</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="47"/>
         <source>Israel</source>
         <translation>Izrael</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="48"/>
         <source>Italy</source>
         <translation>Italija</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="49"/>
         <source>Japan</source>
         <translation>Japonska</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="50"/>
         <source>Jordan</source>
         <translation>Jordanija</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="51"/>
         <source>Kenya</source>
         <translation>Kenija</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="52"/>
         <source>Malaysia</source>
         <translation>Malezija</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="53"/>
         <source>Mexico</source>
         <translation>Mehika</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="54"/>
         <source>Morocco</source>
         <translation>Maroko</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="55"/>
         <source>Netherlands</source>
         <translation>Nizozemska</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="56"/>
         <source>New Zealand</source>
         <translation>Nova Zelandija</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="57"/>
         <source>Nigeria</source>
         <translation>Nigerija</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="58"/>
         <source>Peru</source>
         <translation>Peru</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="59"/>
         <source>Philippines</source>
         <translation>Filipini</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="60"/>
         <source>Poland</source>
         <translation>Poljska</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="61"/>
         <source>Russia</source>
         <translation>Rusija</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="62"/>
         <source>Saudi Arabia</source>
         <translation>Savdska Arabija</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="63"/>
         <source>Singapore</source>
         <translation>Singapur</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="64"/>
         <source>South Africa</source>
         <translation>Južna Afrika</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="65"/>
         <source>South Korea</source>
         <translation>Južna Koreja</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="66"/>
         <source>Spain</source>
         <translation>Španija</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="67"/>
         <source>Sweden</source>
         <translation>Švedska</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="68"/>
         <source>Taiwan</source>
         <translation>Tajvan</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="69"/>
         <source>Tunisia</source>
         <translation>Tunizija</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="70"/>
         <source>Turkey</source>
         <translation>Turčija</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="71"/>
         <source>Uganda</source>
         <translation>Uganda</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="72"/>
         <source>United Arab Emirates</source>
         <translation>Združeni arabski emirati</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="73"/>
         <source>United Kingdom</source>
         <translation>Združeno kraljestvo</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="74"/>
         <source>Yemen</source>
         <translation>Jemen</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="148"/>
         <source>Worldwide</source>
         <translation>Svetovno</translation>
     </message>
index dac728b960b49c7553881db84aeffce6de14439b..02f56b3c693f039044460b196d6acd94787bbc5d 100644 (file)
@@ -2,68 +2,43 @@
 <context>
     <name>AboutView</name>
     <message>
-        <location filename="src/aboutview.cpp" line="58"/>
         <source>There&apos;s life outside the browser!</source>
         <translation>Ka jete edhe jashte Shfletuesit te Internetit
 </translation>
     </message>
     <message>
-        <location filename="src/aboutview.cpp" line="59"/>
         <source>Version %1</source>
         <translation>Version %1</translation>
     </message>
     <message>
-        <location filename="src/aboutview.cpp" line="64"/>
         <source>Licensed to: %1</source>
         <translation>Licencuar te: %1</translation>
     </message>
     <message>
-        <location filename="src/aboutview.cpp" line="68"/>
         <source>%1 is Free Software but its development takes precious time.</source>
         <translation>%1 Eshte Program i Lire por Programuesit te tij i merr kohe te qmueshme</translation>
     </message>
     <message>
-        <location filename="src/aboutview.cpp" line="69"/>
         <source>Please &lt;a href=&apos;%1&apos;&gt;donate&lt;/a&gt; to support the continued development of %2.</source>
         <translation>Ju lutem &lt;a href=&quot;%1&quot;&gt; dhuroni&lt;/a&gt; qe te perkrahni vazhdimin e ndertimit te %2.</translation>
     </message>
     <message>
-        <location filename="src/aboutview.cpp" line="73"/>
-        <source>You may want to try my other apps as well:</source>
-        <translation>Do te deshironit qe te provoni edhe programet e tjera te mia</translation>
-    </message>
-    <message>
-        <location filename="src/aboutview.cpp" line="76"/>
-        <source>%1, a YouTube music player</source>
-        <translation>%1 , Luajtes i muzikes per YouTube</translation>
-    </message>
-    <message>
-        <location filename="src/aboutview.cpp" line="80"/>
-        <source>%1, a music player</source>
-        <translation>%1 , Luajtes i muzikes</translation>
-    </message>
-    <message>
-        <location filename="src/aboutview.cpp" line="86"/>
         <source>Translate %1 to your native language using %2</source>
         <translation>Perkthe %1 ne gjuhen e tuaj ame duke perdorur %2</translation>
     </message>
     <message>
-        <location filename="src/aboutview.cpp" line="91"/>
         <source>Icon designed by %1.</source>
         <translation>Dizajnimi i ikones u be nga %1</translation>
     </message>
     <message>
-        <location filename="src/aboutview.cpp" line="95"/>
         <source>Released under the &lt;a href=&apos;%1&apos;&gt;GNU General Public License&lt;/a&gt;</source>
         <translation>Leshuar nen &lt;a href=&quot;%1&quot;&gt; GNU Licanca Publike Gjenerale&lt;/a&gt;</translation>
     </message>
     <message>
-        <location filename="src/aboutview.cpp" line="110"/>
         <source>&amp;Close</source>
         <translation> Afer</translation>
     </message>
     <message>
-        <location filename="src/aboutview.h" line="40"/>
         <source>About</source>
         <translation>Afersisht</translation>
     </message>
 <context>
     <name>ActivationDialog</name>
     <message>
-        <location filename="local/src/activationdialog.cpp" line="17"/>
         <source>Enter your License Details</source>
         <translation>Jepni detajet rreth licences</translation>
     </message>
     <message>
-        <location filename="local/src/activationdialog.cpp" line="29"/>
         <source>&amp;Email:</source>
         <translation>&amp;Email:</translation>
     </message>
     <message>
-        <location filename="local/src/activationdialog.cpp" line="35"/>
         <source>&amp;Code:</source>
         <translation>&amp;Shifër:</translation>
     </message>
 <context>
     <name>ActivationView</name>
     <message>
-        <location filename="local/src/activationview.cpp" line="47"/>
         <source>Please license %1</source>
         <translation>Ju lutem licenconi %1</translation>
     </message>
     <message>
-        <location filename="local/src/activationview.cpp" line="51"/>
         <source>This demo has expired.</source>
         <translation>Versioni demostrues ka perfunduar</translation>
     </message>
     <message>
-        <location filename="local/src/activationview.cpp" line="53"/>
         <source>The full version allows you to watch videos without interruptions.</source>
-        <oldsource>The full version allows you to download videos longer than %1 minutes and to watch videos without interruptions.</oldsource>
         <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>Pa licenc programmit do ti mbaron afati ne %1 ditë</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>Duke bler versionin e plot , ju gjithashtu do te perkrahni punen e mundimshme qe kam ber per krijimin %1.</translation>
     </message>
     <message>
-        <location filename="local/src/activationview.cpp" line="70"/>
         <source>Use Demo</source>
         <translation>Perdorni verionin demostrues</translation>
     </message>
     <message>
-        <location filename="local/src/activationview.cpp" line="77"/>
         <source>Enter License</source>
         <translation>Jepni licencën</translation>
     </message>
     <message>
-        <location filename="local/src/activationview.cpp" line="85"/>
         <source>Buy License</source>
         <translation>Blini licencë</translation>
     </message>
 </context>
+<context>
+    <name>AppWidget</name>
+    <message>
+        <source>Download</source>
+        <translation type="unfinished"/>
+    </message>
+</context>
 <context>
     <name>ChannelAggregator</name>
     <message>
-        <location filename="src/channelaggregator.cpp" line="183"/>
         <source>By %1</source>
         <translation>Nga %1</translation>
     </message>
     <message numerus="yes">
-        <location filename="src/channelaggregator.cpp" line="185"/>
         <source>You have %n new video(s)</source>
         <translation type="unfinished"><numerusform></numerusform><numerusform></numerusform></translation>
     </message>
 <context>
     <name>ChannelItemDelegate</name>
     <message>
-        <location filename="src/channelitemdelegate.cpp" line="67"/>
         <source>All Videos</source>
         <translation>T&apos;gjitha videot</translation>
     </message>
     <message>
-        <location filename="src/channelitemdelegate.cpp" line="85"/>
         <source>Unwatched Videos</source>
         <translation>Videot e pa shikuara</translation>
     </message>
 <context>
     <name>ChannelView</name>
     <message>
-        <location filename="src/channelview.cpp" line="151"/>
-        <source>Mark all as watched</source>
-        <translation>Shëno të gjitha si të shikuara</translation>
-    </message>
-    <message>
-        <location filename="src/channelview.cpp" line="159"/>
-        <source>Show Updated</source>
-        <translation>Shfaq arrnimin</translation>
-    </message>
-    <message>
-        <location filename="src/channelview.cpp" line="103"/>
         <source>Name</source>
         <translation>Emri</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="110"/>
         <source>Last Updated</source>
         <translation>Arrnimi i fundit</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="117"/>
         <source>Last Added</source>
         <translation>Shtimi i dundit</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="124"/>
         <source>Last Watched</source>
         <translation>Shtimi i fundit</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="131"/>
         <source>Most Watched</source>
         <translation>Me e shikuara</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="139"/>
         <source>Sort by</source>
         <translation>Rendit sipas</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="222"/>
+        <source>Mark all as watched</source>
+        <translation>Shëno të gjitha si të shikuara</translation>
+    </message>
+    <message>
+        <source>Show Updated</source>
+        <translation>Shfaq arrnimin</translation>
+    </message>
+    <message>
         <source>All Videos</source>
         <translation>T&apos;gjitha videot</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="226"/>
         <source>Unwatched Videos</source>
         <translation>Videot e pa shikuara</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="244"/>
         <source>Mark as Watched</source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="257"/>
         <source>Unsubscribe</source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="270"/>
         <source>There are no updated subscriptions at this time.</source>
         <translation>Nuk ka abonime të freskuar për momentin</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="272"/>
         <source>You have no subscriptions. Use the star symbol to subscribe to channels.</source>
         <translation>Nuk keni abonime . Perdor simbolin yll për tu abonuar te kanalet</translation>
     </message>
 <context>
     <name>ClearButton</name>
     <message>
-        <location filename="src/exlineedit.cpp" line="6"/>
         <source>Clear</source>
         <translation>Paster</translation>
     </message>
 <context>
     <name>DataUtils</name>
     <message>
-        <location filename="src/datautils.cpp" line="88"/>
         <source>Just now</source>
         <translation type="unfinished"/>
     </message>
     <message numerus="yes">
-        <location filename="src/datautils.cpp" line="90"/>
-        <source>%n minute(s) ago</source>
-        <translation type="unfinished"><numerusform></numerusform><numerusform></numerusform></translation>
-    </message>
-    <message numerus="yes">
-        <location filename="src/datautils.cpp" line="92"/>
         <source>%n hour(s) ago</source>
         <translation type="unfinished"><numerusform></numerusform><numerusform></numerusform></translation>
     </message>
     <message numerus="yes">
-        <location filename="src/datautils.cpp" line="94"/>
         <source>%n day(s) ago</source>
         <translation type="unfinished"><numerusform></numerusform><numerusform></numerusform></translation>
     </message>
     <message numerus="yes">
-        <location filename="src/datautils.cpp" line="96"/>
         <source>%n weeks(s) ago</source>
         <translation type="unfinished"><numerusform></numerusform><numerusform></numerusform></translation>
     </message>
     <message numerus="yes">
-        <location filename="src/datautils.cpp" line="98"/>
         <source>%n month(s) ago</source>
         <translation type="unfinished"><numerusform></numerusform><numerusform></numerusform></translation>
     </message>
 <context>
     <name>DownloadItem</name>
     <message>
-        <location filename="src/downloaditem.cpp" line="406"/>
         <source>bytes</source>
         <translation>Bajts</translation>
     </message>
     <message>
-        <location filename="src/downloaditem.cpp" line="409"/>
         <source>KB</source>
         <translation>KB</translation>
     </message>
     <message>
-        <location filename="src/downloaditem.cpp" line="412"/>
         <source>MB</source>
         <translation>MB</translation>
     </message>
     <message>
-        <location filename="src/downloaditem.cpp" line="421"/>
         <source>bytes/sec</source>
         <translation>Bajts/Sekond</translation>
     </message>
     <message>
-        <location filename="src/downloaditem.cpp" line="424"/>
         <source>KB/sec</source>
         <translation>KB/Sekond</translation>
     </message>
     <message>
-        <location filename="src/downloaditem.cpp" line="427"/>
         <source>MB/sec</source>
         <translation>MB/Sekond</translation>
     </message>
     <message>
-        <location filename="src/downloaditem.cpp" line="433"/>
         <source>seconds</source>
         <translation>Sekonda</translation>
     </message>
     <message>
-        <location filename="src/downloaditem.cpp" line="436"/>
         <source>minutes</source>
         <translation>Minuta</translation>
     </message>
     <message>
-        <location filename="src/downloaditem.cpp" line="439"/>
         <source>%4 %5 remaining</source>
         <translation>%4 %5 Mbetet</translation>
     </message>
 <context>
     <name>DownloadManager</name>
     <message>
-        <location filename="src/downloadmanager.cpp" line="77"/>
         <source>This is just the demo version of %1.</source>
         <translation>Ky eshte vetem version per demonstrim i %1</translation>
     </message>
     <message>
-        <location filename="src/downloadmanager.cpp" line="79"/>
         <source>It can only download videos shorter than %1 minutes so you can test the download functionality.</source>
         <translation>Mund te shkarkoj vetem video me te shkurta se %1 minut ne menyr qe te testoni funksionimin e shkarkuesit. </translation>
     </message>
     <message>
-        <location filename="src/downloadmanager.cpp" line="85"/>
         <source>Continue</source>
         <translation>Vazhdon</translation>
     </message>
     <message>
-        <location filename="src/downloadmanager.cpp" line="86"/>
         <source>Get the full version</source>
         <translation>Merrni versionin e plote</translation>
     </message>
     <message>
-        <location filename="src/downloadmanager.cpp" line="157"/>
         <source>%1 downloaded in %2</source>
         <translation>%1 shkarkuar në %2</translation>
     </message>
     <message>
-        <location filename="src/downloadmanager.cpp" line="160"/>
         <source>Download finished</source>
         <translation>Shkarkimi ka përfunduar</translation>
     </message>
     <message numerus="yes">
-        <location filename="src/downloadmanager.cpp" line="165"/>
         <source>%n Download(s)</source>
         <translation type="unfinished"><numerusform></numerusform><numerusform></numerusform></translation>
     </message>
 <context>
     <name>DownloadSettings</name>
     <message>
-        <location filename="src/downloadsettings.cpp" line="36"/>
         <source>Change location...</source>
         <translation>Ndrysho lokacionin</translation>
     </message>
     <message>
-        <location filename="src/downloadsettings.cpp" line="69"/>
         <source>Choose the download location</source>
         <translation>Zghidhni lokacionin e shkarkimeve</translation>
     </message>
     <message>
-        <location filename="src/downloadsettings.cpp" line="81"/>
         <source>Download location changed.</source>
         <translation>Lokacioni i shkarkimeve u ndryshua.</translation>
     </message>
     <message>
-        <location filename="src/downloadsettings.cpp" line="83"/>
         <source>Current downloads will still go in the previous location.</source>
         <translation>Shkarkimet e tanishme ende do te ruhen ne lokacionin e meparshem te shkarkimeve.</translation>
     </message>
     <message>
-        <location filename="src/downloadsettings.cpp" line="94"/>
         <source>Downloading to: %1</source>
         <translation>Duke shkarkuar ne : %1</translation>
     </message>
 <context>
     <name>DownloadView</name>
     <message>
-        <location filename="src/downloadview.cpp" line="38"/>
-        <location filename="src/downloadview.h" line="45"/>
         <source>Downloads</source>
         <translation>Shkarkimet</translation>
     </message>
 </context>
-<context>
-    <name>DownloadWidget</name>
-    <message>
-        <location filename="local/src/updatedialog.cpp" line="60"/>
-        <source>Downloading update...</source>
-        <translation>Duke shkarkuar përditësimet</translation>
-    </message>
-</context>
 <context>
     <name>Extra</name>
     <message>
-        <location filename="local/src/extra.cpp" line="251"/>
         <source>The executable file has been tempered with, maybe by a virus.</source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="local/src/extra.cpp" line="252"/>
         <source>%1 will not run. Try installing again.</source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="local/src/extra.cpp" line="253"/>
         <source>Quit</source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="local/src/extra.cpp" line="254"/>
         <source>Reinstall</source>
         <translation type="unfinished"/>
     </message>
 <context>
     <name>GlobalShortcuts</name>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="36"/>
         <source>Play</source>
         <translation>Luaje</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="37"/>
         <source>Pause</source>
         <translation>Pushim</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="38"/>
         <source>Play/Pause</source>
         <translation>Luaje/Pushim</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="39"/>
         <source>Stop</source>
         <translation>Ndaloje</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="40"/>
         <source>Stop playing after current track</source>
         <translation>Ndaloje se luajturi pas kenges aktuale</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="41"/>
         <source>Next track</source>
         <translation>Kenga e ardhshme</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="42"/>
         <source>Previous track</source>
         <translation>Kenga e meparshme</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="43"/>
         <source>Increase volume</source>
         <translation>Rrite zerin</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="44"/>
         <source>Decrease volume</source>
         <translation>Ule zerin</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="45"/>
         <source>Mute</source>
         <translation>Pa ze</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="46"/>
         <source>Seek forward</source>
         <translation>Kerko perpara</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="47"/>
         <source>Seek backward</source>
         <translation>Kerko prapa</translation>
     </message>
 <context>
     <name>HomeView</name>
     <message>
-        <location filename="src/homeview.cpp" line="58"/>
         <source>Search</source>
         <translation>Kerkim</translation>
     </message>
     <message>
-        <location filename="src/homeview.cpp" line="60"/>
         <source>Find videos and channels by keyword</source>
         <translation>Gjeni videot dhe kanalet me fjalët kyqe</translation>
     </message>
     <message>
-        <location filename="src/homeview.cpp" line="65"/>
         <source>Browse</source>
         <translation>Shfleto</translation>
     </message>
     <message>
-        <location filename="src/homeview.cpp" line="67"/>
         <source>Browse videos by category</source>
         <translation>Shfleto videot sipas kategoris</translation>
     </message>
     <message>
-        <location filename="src/homeview.cpp" line="71"/>
         <source>Subscriptions</source>
         <translation>Abonimet</translation>
     </message>
     <message>
-        <location filename="src/homeview.cpp" line="73"/>
         <source>Channel subscriptions</source>
         <translation>Kanalet e abonuara</translation>
     </message>
     <message>
-        <location filename="src/homeview.h" line="44"/>
         <source>Make yourself comfortable</source>
         <translation>Rehatoni veten</translation>
     </message>
 <context>
     <name>LoadingWidget</name>
     <message>
-        <location filename="src/loadingwidget.cpp" line="125"/>
         <source>Error</source>
         <translation>Gabim</translation>
     </message>
 <context>
     <name>MainWindow</name>
     <message>
-        <location filename="src/mainwindow.cpp" line="291"/>
+        <source>&amp;Window</source>
+        <translation>&amp;Dritare</translation>
+    </message>
+    <message>
+        <source>&amp;Minimize</source>
+        <translation>&amp; Minimizoje</translation>
+    </message>
+    <message>
         <source>&amp;Stop</source>
         <translation>Ndaloje</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="292"/>
         <source>Stop playback and go back to the search view</source>
         <translation>Ndaloje rishikimin dhe kthehu prapa te pamje e kerkimit</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="307"/>
+        <source>P&amp;revious</source>
+        <translation>Mehershme</translation>
+    </message>
+    <message>
+        <source>Go back to the previous track</source>
+        <translation>Kthehu prapa te kenga e kaluar</translation>
+    </message>
+    <message>
         <source>S&amp;kip</source>
         <translation>Kaperce</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="308"/>
         <source>Skip to the next video</source>
         <translation>Kaperce te video e ardhshme</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1134"/>
-        <source>&amp;Pause</source>
-        <translation>Pushoje</translation>
+        <source>&amp;Play</source>
+        <translation>Luaj</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1135"/>
-        <source>Pause playback</source>
-        <translation>Pushoje rishikimin</translation>
+        <source>Resume playback</source>
+        <translation>Rinis rishikimin</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="321"/>
         <source>&amp;Full Screen</source>
         <translation>Ekran te plote</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="322"/>
         <source>Go full screen</source>
         <translation>Kalo ne ekran te plot</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="336"/>
+        <source>&amp;Compact Mode</source>
+        <translation>Ne mod kompakte</translation>
+    </message>
+    <message>
         <source>Hide the playlist and the toolbar</source>
         <translation>Fshih listen e videove dhe shiritin e veglave</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="349"/>
+        <source>Open the &amp;YouTube Page</source>
+        <translation>Hap faqen &amp; e Youtube </translation>
+    </message>
+    <message>
         <source>Go to the YouTube video page and pause playback</source>
         <translation>Kalo ne faqen e videove te YouTube dhe pushoje rishikimin</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="356"/>
+        <source>Copy the YouTube &amp;Link</source>
+        <translation>Kopjo linkun nga YouTube</translation>
+    </message>
+    <message>
         <source>Copy the current video YouTube link to the clipboard</source>
         <translation>Kopjoje linkun e videos se tanishme ne tabelen e ngjitjes</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="363"/>
+        <source>Copy the Video Stream &amp;URL</source>
+        <translation>Kopjo rrjedhen e videos &amp; URL</translation>
+    </message>
+    <message>
         <source>Copy the current video stream URL to the clipboard</source>
         <translation>Kopjoje URL e rrjedhes se videos aktuale  ne tabelen e ngjitjes</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="370"/>
+        <source>Find Video &amp;Parts</source>
+        <translation>Gjej videot &amp; Pjeset</translation>
+    </message>
+    <message>
         <source>Find other video parts hopefully in the right order</source>
         <translation>Gjeni pjes te tjera te videove ne rednin e duhur</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="376"/>
         <source>&amp;Remove</source>
         <translation>Largo</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="377"/>
         <source>Remove the selected videos from the playlist</source>
         <translation>Largoje videon e zgjedhur nga lista e luajtjes</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="383"/>
         <source>Move &amp;Up</source>
         <translation>Leviz lart</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="384"/>
         <source>Move up the selected videos in the playlist</source>
         <translation>Levize lart videon e zgjedhur ne listen e luajtjes</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="390"/>
         <source>Move &amp;Down</source>
         <translation>Leviz posht</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="391"/>
         <source>Move down the selected videos in the playlist</source>
         <translation>Levize posht videon e zghedhur ne listen e luajtjes</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="402"/>
+        <source>&amp;Clear Recent Searches</source>
+        <translation>Pastro kerkimet e me parshme</translation>
+    </message>
+    <message>
         <source>Clear the search history. Cannot be undone.</source>
         <translation>Pastro historin e kerkimeve . Nuk mund te zhbehet</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="407"/>
         <source>&amp;Quit</source>
         <translation>Lëre</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="410"/>
         <source>Bye</source>
         <translation>Mireupafshim</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="414"/>
         <source>&amp;Website</source>
         <translation>Adrese interneti</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="416"/>
         <source>%1 on the Web</source>
         <translation>%1 ne Web</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="422"/>
+        <source>Make a &amp;Donation</source>
+        <translation>Beni nje donacion</translation>
+    </message>
+    <message>
         <source>Please support the continued development of %1</source>
         <translation>Ju lutem perkrahni vazhdimin e ndertimit te %1</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="427"/>
         <source>&amp;About</source>
         <translation>Rreth</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="429"/>
         <source>Info about %1</source>
         <translation>Informata rreth %1</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="437"/>
         <source>Search</source>
         <translation>Kerkim</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="456"/>
         <source>Mute volume</source>
         <translation>Hesht zerin</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="490"/>
-        <location filename="src/mainwindow.cpp" line="1609"/>
+        <source>&amp;Manually Start Playing</source>
+        <translation>Fillo luajtjen manualisht</translation>
+    </message>
+    <message>
+        <source>Manually start playing videos</source>
+        <translation>Manualisht fillo luajtjen e videove</translation>
+    </message>
+    <message>
         <source>&amp;Downloads</source>
         <translation>Shkarkimet</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="491"/>
         <source>Show details about video downloads</source>
         <translation>Trego detajet rreth videove te shkarkuara</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="499"/>
         <source>&amp;Download</source>
         <translation>Shkarko</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="500"/>
         <source>Download the current video</source>
         <translation>Shkarko videon e tanishme</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="510"/>
         <source>Take &amp;Snapshot</source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="517"/>
         <source>&amp;Subscribe to Channel</source>
         <translation>&amp; Abonohu në Kanal</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="525"/>
         <source>Share the current video using %1</source>
         <translation>Shperndaj videon aktuale duke perdorur %1</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="545"/>
         <source>&amp;Email</source>
         <translation>% Email</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="546"/>
         <source>Email</source>
         <translation>Email</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="551"/>
         <source>&amp;Close</source>
         <translation> Afer</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="561"/>
         <source>&amp;Float on Top</source>
         <translation>&amp;Nxjerr ne Krye</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="566"/>
         <source>&amp;Adjust Window Size</source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="571"/>
         <source>&amp;Stop After This Video</source>
         <translation>&amp;Ndalo pas kesaj video</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="578"/>
         <source>&amp;Report an Issue...</source>
         <translation>%Raportoni një problem...</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="582"/>
         <source>&amp;Refine Search...</source>
         <translation>%Përpuno kërkimin....</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="594"/>
         <source>More...</source>
         <translation>Më shum....</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="597"/>
         <source>&amp;Related Videos</source>
         <translation>&amp;Videot e afërme</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="599"/>
         <source>Watch videos related to the current one</source>
         <translation>Shiko videot që jan të aferta me videon aktuale</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="605"/>
         <source>Open in &amp;Browser...</source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="612"/>
-        <source>&amp;Love %1? Rate it!</source>
+        <source>Restricted Mode</source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="633"/>
-        <source>&amp;Application</source>
-        <translation>Aplikacion</translation>
+        <source>Hide videos that may contain inappropriate content</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <source>&amp;Love %1? Rate it!</source>
+        <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="618"/>
         <source>Buy %1...</source>
         <translation>Blej %1....</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="647"/>
+        <source>&amp;Application</source>
+        <translation>Aplikacion</translation>
+    </message>
+    <message>
         <source>&amp;Playback</source>
         <translation>&amp;Ridegjim</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="661"/>
         <source>&amp;Playlist</source>
         <translation>Lista e luajtjes</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="670"/>
         <source>&amp;Video</source>
         <translation>Video</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="686"/>
-        <source>&amp;View</source>
-        <translation>&amp;Shiko</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="695"/>
         <source>&amp;Share</source>
         <translation>&amp;Shperndaje</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="709"/>
+        <source>&amp;View</source>
+        <translation>&amp;Shiko</translation>
+    </message>
+    <message>
         <source>&amp;Help</source>
         <translation>Ndihma</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="751"/>
         <source>Press %1 to raise the volume, %2 to lower it</source>
         <translation>Shtyp %1 qe te rrisni zerin , shtyp %2 qe ta ulni zerin</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1021"/>
-        <location filename="src/mainwindow.cpp" line="1027"/>
+        <source>Choose your content location</source>
+        <translation>Zgjidhni përmbajtjen e mjedisit tuaj</translation>
+    </message>
+    <message>
         <source>Opening %1</source>
         <translation>Duke hapur %1</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1080"/>
         <source>Do you want to exit %1 with a download in progress?</source>
         <translation>Deshironi te dilni %1 me nje shkarkim ne prapavij?</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1081"/>
         <source>If you close %1 now, this download will be cancelled.</source>
         <translation>Nese e mbyllni %1 tani , ky shkarkim do te nderpritet.</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1086"/>
         <source>Close and cancel download</source>
         <translation>Mbyll dhe ndalo shkarkimin</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1087"/>
         <source>Wait for download to finish</source>
         <translation>Prisni per shkarkimin qe te mbaroj</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1158"/>
-        <source>&amp;Loading...</source>
-        <translation type="unfinished"/>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="1264"/>
-        <source>Leave &amp;Full Screen</source>
-        <translation>Largohu &amp; Ekran te plote</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="1718"/>
-        <source>%1 version %2 is now available.</source>
-        <translation>%1 versioni %2 eshte i gatshem</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="1722"/>
-        <source>Remind me later</source>
-        <translation>Me rikujto me von</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="1723"/>
-        <source>Update</source>
-        <translation>Arrnim</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="1127"/>
         <source>Error: %1</source>
         <translation>Gabim:%1</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="300"/>
-        <source>P&amp;revious</source>
-        <translation>Mehershme</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="301"/>
-        <source>Go back to the previous track</source>
-        <translation>Kthehu prapa te kenga e kaluar</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="335"/>
-        <source>&amp;Compact Mode</source>
-        <translation>Ne mod kompakte</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="348"/>
-        <source>Open the &amp;YouTube Page</source>
-        <translation>Hap faqen &amp; e Youtube </translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="355"/>
-        <source>Copy the YouTube &amp;Link</source>
-        <translation>Kopjo linkun nga YouTube</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="362"/>
-        <source>Copy the Video Stream &amp;URL</source>
-        <translation>Kopjo rrjedhen e videos &amp; URL</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="369"/>
-        <source>Find Video &amp;Parts</source>
-        <translation>Gjej videot &amp; Pjeset</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="397"/>
-        <source>&amp;Clear Recent Searches</source>
-        <translation>Pastro kerkimet e me parshme</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="421"/>
-        <source>Make a &amp;Donation</source>
-        <translation>Beni nje donacion</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="483"/>
-        <source>&amp;Manually Start Playing</source>
-        <translation>Fillo luajtjen manualisht</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="484"/>
-        <source>Manually start playing videos</source>
-        <translation>Manualisht fillo luajtjen e videove</translation>
+        <source>&amp;Pause</source>
+        <translation>Pushoje</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="847"/>
-        <source>Choose your content location</source>
-        <translation>Zgjidhni përmbajtjen e mjedisit tuaj</translation>
+        <source>Pause playback</source>
+        <translation>Pushoje rishikimin</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="314"/>
-        <location filename="src/mainwindow.cpp" line="1142"/>
-        <location filename="src/mainwindow.cpp" line="1150"/>
-        <source>&amp;Play</source>
-        <translation>Luaj</translation>
+        <source>&amp;Loading...</source>
+        <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="315"/>
-        <location filename="src/mainwindow.cpp" line="1143"/>
-        <location filename="src/mainwindow.cpp" line="1151"/>
-        <source>Resume playback</source>
-        <translation>Rinis rishikimin</translation>
+        <source>Leave &amp;Full Screen</source>
+        <translation>Largohu &amp; Ekran te plote</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1437"/>
         <source>Remaining time: %1</source>
         <translation>Koha e mbetur:%1</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1528"/>
         <source>Volume at %1%</source>
         <translation>Zeri ne %1%</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1534"/>
         <source>Volume is muted</source>
         <translation>Zeri eshte heshtur</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1537"/>
         <source>Volume is unmuted</source>
         <translation>Zeri eshte leshuar</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1548"/>
         <source>Maximum video definition set to %1</source>
         <translation>Maksimumi i definicionit te videos eshte vendosur ne %1</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1595"/>
         <source>Your privacy is now safe</source>
         <translation>Privatsia juaj tani eshte e sigurt</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1610"/>
         <source>Downloads complete</source>
         <translation>Shkarkimet jan kompletuar</translation>
     </message>
+    <message>
+        <source>%1 version %2 is now available.</source>
+        <translation>%1 versioni %2 eshte i gatshem</translation>
+    </message>
+    <message>
+        <source>Remind me later</source>
+        <translation>Me rikujto me von</translation>
+    </message>
+    <message>
+        <source>Update</source>
+        <translation>Arrnim</translation>
+    </message>
 </context>
 <context>
     <name>MediaView</name>
     <message>
-        <location filename="src/mediaview.cpp" line="702"/>
         <source>You can now paste the YouTube link into another application</source>
         <translation>Tani ju mund te ngjitni YouTube linqe ne nje tjeter program</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="710"/>
         <source>You can now paste the video stream URL into another application</source>
         <translation>Tani ju mund te ngjitni rrdhjedhen e YouTube URL ne nje tjeter program</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="711"/>
         <source>The link will be valid only for a limited time.</source>
         <translation>Linku do te jet i vlefshem per nje kohe te kufizuar</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="800"/>
         <source>This is just the demo version of %1.</source>
         <translation>Ky eshte version vetem per demonstrim i %1.</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="801"/>
         <source>It allows you to test the application and see if it works for you.</source>
         <translation>Ju lejon qe te provoni programin dhe te shifni se a funksionon per ju .</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="833"/>
+        <source>Get the full version</source>
+        <translation>Merrni versionin e plote</translation>
+    </message>
+    <message>
         <source>Continue</source>
         <translation>Vazhdim</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="988"/>
+        <source>Downloading %1</source>
+        <translation>Duke shkarkuar %1</translation>
+    </message>
+    <message>
         <source>of</source>
         <comment>Used in video parts, as in '2 of 3'</comment>
         <translation>I</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="1001"/>
         <source>part</source>
         <comment>This is for video parts, as in 'Cool video - part 1'</comment>
         <translation>Pjas</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="1003"/>
         <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="1096"/>
         <source>Sent from %1</source>
         <translation>Derguar nga %1</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="1128"/>
         <source>Unsubscribe from %1</source>
         <translation>Q&apos;abonohu nga %1</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="1132"/>
         <source>Subscribe to %1</source>
         <translation>Abonohu në %1</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="1166"/>
         <source>Unsubscribed from %1</source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="1169"/>
         <source>Subscribed to %1</source>
         <translation type="unfinished"/>
     </message>
-    <message>
-        <location filename="src/mediaview.cpp" line="808"/>
-        <source>Get the full version</source>
-        <translation>Merrni versionin e plote</translation>
-    </message>
-    <message>
-        <location filename="src/mediaview.cpp" line="847"/>
-        <source>Downloading %1</source>
-        <translation>Duke shkarkuar %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>Një version i %1 është i gatshëm</translation>
     </message>
     <message>
-        <location filename="local/src/updatedialog.cpp" line="28"/>
         <source>%1 %2 is now available. You have %3.</source>
         <translation>%1 %2 është i gatshëm . Ju keni %3.</translation>
     </message>
     <message>
-        <location filename="local/src/updatedialog.cpp" line="33"/>
         <source>Would you like to download it now?</source>
         <translation>Dëshiron që ta shkarkoni tani?</translation>
     </message>
     <message>
-        <location filename="local/src/updatedialog.cpp" line="39"/>
         <source>Skip This Version</source>
         <translation>Kalo këtë version</translation>
     </message>
     <message>
-        <location filename="local/src/updatedialog.cpp" line="43"/>
         <source>Remind Me Later</source>
         <translation>Ma rikujtoni më vonë</translation>
     </message>
     <message>
-        <location filename="local/src/updatedialog.cpp" line="47"/>
         <source>Install Update</source>
         <translation>Instalo Përditësimet</translation>
     </message>
 <context>
     <name>PasteLineEdit</name>
     <message>
-        <location filename="local/src/pastelineedit.cpp" line="6"/>
         <source>Paste</source>
         <translation>Ngjit</translation>
     </message>
 <context>
     <name>PlaylistItemDelegate</name>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="209"/>
         <source>%1 views</source>
         <translation>%1 e shikimeve</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="309"/>
         <source>%1 of %2 (%3) — %4</source>
         <translation>%1 e %2 (%3)--%4</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="316"/>
         <source>Preparing</source>
         <translation>Duke pregaditur</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="318"/>
         <source>Failed</source>
         <translation>Dështoi</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="320"/>
         <source>Completed</source>
         <translation>Përfunduat</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="322"/>
         <source>Stopped</source>
         <translation>Ndaluar</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="358"/>
         <source>Stop downloading</source>
         <translation>Ndalo shkarkimin</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="368"/>
         <source>Show in %1</source>
         <translation>Shfaq në %1</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="370"/>
         <source>Open parent folder</source>
         <translation>Hap dosjen e burimit</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="379"/>
         <source>Restart downloading</source>
         <translation>Rifillo shkarkimin</translation>
     </message>
 <context>
     <name>PlaylistModel</name>
     <message>
-        <location filename="src/playlistmodel.cpp" line="70"/>
         <source>Searching...</source>
         <translation>Duke kerkuar</translation>
     </message>
     <message>
-        <location filename="src/playlistmodel.cpp" line="71"/>
         <source>Show %1 More</source>
         <translation>Shfaq %1 më shumë</translation>
     </message>
     <message>
-        <location filename="src/playlistmodel.cpp" line="72"/>
         <source>No videos</source>
         <translation>Nuk ka video</translation>
     </message>
     <message>
-        <location filename="src/playlistmodel.cpp" line="73"/>
         <source>No more videos</source>
         <translation>Nuk ka me video tjera</translation>
     </message>
 <context>
     <name>RefineSearchWidget</name>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="49"/>
         <source>Sort by</source>
         <translation>Rendit sipas</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="53"/>
         <source>Relevance</source>
         <translation>Përkatësi</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="54"/>
-        <location filename="src/refinesearchwidget.cpp" line="69"/>
         <source>Date</source>
         <translation>Datë</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="55"/>
         <source>View Count</source>
         <translation>Shiko Llogarit</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="56"/>
         <source>Rating</source>
         <translation>Klafifikom</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="73"/>
         <source>Anytime</source>
         <translation>Në qdo kohë</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="74"/>
         <source>Today</source>
         <translation>Sot</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="75"/>
         <source>7 Days</source>
         <translation>7 dit</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="76"/>
         <source>30 Days</source>
         <translation>30 dit</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="89"/>
         <source>Duration</source>
         <translation>Kohëzgjatja</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="93"/>
-        <location filename="src/refinesearchwidget.cpp" line="119"/>
         <source>All</source>
         <translation>Gjithë</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="94"/>
         <source>Short</source>
         <translation>Shkurt</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="95"/>
         <source>Medium</source>
         <translation>Mesatar</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="96"/>
         <source>Long</source>
         <translation>I gjatë</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="99"/>
         <source>Less than 4 minutes</source>
         <translation>Më pak se 4 minuta</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="100"/>
         <source>Between 4 and 20 minutes</source>
         <translation>Mes 4 dhe 20 minutash</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="101"/>
         <source>Longer than 20 minutes</source>
         <translation>Më gjat se 20 minuta</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="115"/>
         <source>Quality</source>
         <translation>Kualiteti</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="120"/>
         <source>High Definition</source>
         <translation>Definicion i lartë</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="123"/>
         <source>720p or higher</source>
         <translation>720p ose më i lartë</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="136"/>
         <source>Done</source>
         <translation>Kry</translation>
     </message>
 <context>
     <name>RegionsView</name>
     <message>
-        <location filename="src/regionsview.cpp" line="39"/>
         <source>Done</source>
         <translation>Kry</translation>
     </message>
 <context>
     <name>SearchLineEdit</name>
     <message>
-        <location filename="src/searchlineedit.cpp" line="55"/>
         <source>Search</source>
         <translation>Kerkim</translation>
     </message>
 <context>
     <name>SearchView</name>
     <message>
-        <location filename="src/searchview.cpp" line="83"/>
         <source>Welcome to &lt;a href=&apos;%1&apos;&gt;%2&lt;/a&gt;,</source>
         <translation>Mire se erdhet ne &lt;h href=&quot;%1&quot;&gt;%2&lt;/a&gt;,</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="200"/>
-        <source>Get the full version</source>
-        <translation>Merrni versionin e plote</translation>
-    </message>
-    <message>
-        <location filename="src/searchview.cpp" line="110"/>
         <source>Enter</source>
         <extracomment>&quot;Enter&quot;, as in &quot;type&quot;. The whole phrase says: &quot;Enter a keyword to start watching videos&quot;</extracomment>
         <translation>Hyr</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="117"/>
         <source>a keyword</source>
         <translation>Nje fjal kyqe</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="118"/>
         <source>a channel</source>
         <translation>Nje kanal </translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="125"/>
         <source>to start watching videos.</source>
         <translation>Per te filluar shikimin e videove.</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="156"/>
         <source>Watch</source>
         <translation>Shiko</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="174"/>
         <source>Recent keywords</source>
         <translation>Fjalit kyqe te fundit</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="186"/>
         <source>Recent channels</source>
         <translation>Kanali i fundit</translation>
     </message>
+    <message>
+        <source>Get the full version</source>
+        <translation>Merrni versionin e plote</translation>
+    </message>
 </context>
 <context>
     <name>SidebarHeader</name>
     <message>
-        <location filename="src/sidebarheader.cpp" line="38"/>
-        <location filename="src/sidebarheader.cpp" line="45"/>
         <source>&amp;Back</source>
         <translation>Prapa</translation>
     </message>
     <message>
-        <location filename="src/sidebarheader.cpp" line="76"/>
         <source>Forward to %1</source>
         <translation>Përpara në %1</translation>
     </message>
     <message>
-        <location filename="src/sidebarheader.cpp" line="89"/>
         <source>Back to %1</source>
         <translation>Prapa në %1</translation>
     </message>
 <context>
     <name>SidebarWidget</name>
     <message>
-        <location filename="src/sidebarwidget.cpp" line="68"/>
         <source>Refine Search</source>
         <translation>Rafino kërkimin</translation>
     </message>
     <message>
-        <location filename="src/sidebarwidget.cpp" line="167"/>
         <source>Did you mean: %1</source>
         <translation>Menduat:%1</translation>
     </message>
 <context>
     <name>SnapshotSettings</name>
     <message>
-        <location filename="src/snapshotsettings.cpp" line="47"/>
         <source>Change location...</source>
         <translation>Ndrysho lokacionin</translation>
     </message>
     <message>
-        <location filename="src/snapshotsettings.cpp" line="64"/>
         <source>Snapshot saved to %1</source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="src/snapshotsettings.cpp" line="117"/>
         <source>Snapshots location changed.</source>
         <translation type="unfinished"/>
     </message>
 <context>
     <name>StandardFeedsView</name>
     <message>
-        <location filename="src/standardfeedsview.cpp" line="107"/>
         <source>Most Popular</source>
         <translation>Me i përhapuri</translation>
     </message>
 </context>
+<context>
+    <name>UpdateDialog</name>
+    <message>
+        <source>Downloading update...</source>
+        <translation>Duke shkarkuar përditësimet</translation>
+    </message>
+    <message>
+        <source>Downloading %1...</source>
+        <translation type="unfinished"/>
+    </message>
+</context>
 <context>
     <name>Video</name>
     <message>
-        <location filename="src/video.cpp" line="287"/>
         <source>Cannot get video stream for %1</source>
         <translation>Nuk mund te merr rrjedhen e videos per %1</translation>
     </message>
-    <message>
-        <location filename="src/video.cpp" line="292"/>
-        <source>Network error: %1 for %2</source>
-        <translation>Gabim rrjeti:%1 per %2</translation>
-    </message>
 </context>
 <context>
     <name>YTRegions</name>
     <message>
-        <location filename="src/ytregions.cpp" line="28"/>
         <source>Algeria</source>
         <translation>Algjeria</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="29"/>
         <source>Argentina</source>
         <translation>Argjentina</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="30"/>
         <source>Australia</source>
         <translation>Australia</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="31"/>
         <source>Belgium</source>
         <translation>Belgjika</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="32"/>
         <source>Brazil</source>
         <translation>Brazil</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="33"/>
         <source>Canada</source>
         <translation>Kanadë</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="34"/>
         <source>Chile</source>
         <translation>Kili</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="35"/>
         <source>Colombia</source>
         <translation>Kolumbia</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="36"/>
         <source>Czech Republic</source>
         <translation>Republika Qeke</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="37"/>
         <source>Egypt</source>
         <translation>Egjipt</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="38"/>
         <source>France</source>
         <translation>Francë</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="39"/>
         <source>Germany</source>
         <translation>Gjermani</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="40"/>
         <source>Ghana</source>
         <translation>Gana</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="41"/>
         <source>Greece</source>
         <translation>Greqi</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="42"/>
         <source>Hong Kong</source>
         <translation>Hong Kong</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="43"/>
         <source>Hungary</source>
         <translation>Hungari</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="44"/>
         <source>India</source>
         <translation>Indi</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="45"/>
         <source>Indonesia</source>
         <translation>Indonesia</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="46"/>
         <source>Ireland</source>
         <translation>Irland</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="47"/>
         <source>Israel</source>
         <translation>Izrael</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="48"/>
         <source>Italy</source>
         <translation>Itali</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="49"/>
         <source>Japan</source>
         <translation>Japoni</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="50"/>
         <source>Jordan</source>
         <translation>Jordani</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="51"/>
         <source>Kenya</source>
         <translation>Kenia</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="52"/>
         <source>Malaysia</source>
         <translation>Malejzia</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="53"/>
         <source>Mexico</source>
         <translation>Meksik</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="54"/>
         <source>Morocco</source>
         <translation>Maroko</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="55"/>
         <source>Netherlands</source>
         <translation>Hollandë</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="56"/>
         <source>New Zealand</source>
         <translation>Zelanda e re</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="57"/>
         <source>Nigeria</source>
         <translation>Nigeri</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="58"/>
         <source>Peru</source>
         <translation>Peru</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="59"/>
         <source>Philippines</source>
         <translation>Filipinet</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="60"/>
         <source>Poland</source>
         <translation>Poloni</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="61"/>
         <source>Russia</source>
         <translation>Rusi</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="62"/>
         <source>Saudi Arabia</source>
         <translation>Arabia Saudite</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="63"/>
         <source>Singapore</source>
         <translation>Singapor</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="64"/>
         <source>South Africa</source>
         <translation>Afrika Jugore</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="65"/>
         <source>South Korea</source>
         <translation>Korea Jugore</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="66"/>
         <source>Spain</source>
         <translation>Spanjë</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="67"/>
         <source>Sweden</source>
         <translation>Suedi</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="68"/>
         <source>Taiwan</source>
         <translation>Tajvan</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="69"/>
         <source>Tunisia</source>
         <translation>Tunisi</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="70"/>
         <source>Turkey</source>
         <translation>Turki</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="71"/>
         <source>Uganda</source>
         <translation>Uganda</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="72"/>
         <source>United Arab Emirates</source>
         <translation>Emirated e Bashkuara Arabe</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="73"/>
         <source>United Kingdom</source>
         <translation>Mretëria e Bashkuar</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="74"/>
         <source>Yemen</source>
         <translation>Jemen</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="148"/>
         <source>Worldwide</source>
         <translation>Mbar Bota</translation>
     </message>
diff --git a/locale/sr.ts b/locale/sr.ts
new file mode 100644 (file)
index 0000000..8663b60
--- /dev/null
@@ -0,0 +1,1368 @@
+<?xml version="1.0" ?><!DOCTYPE TS><TS language="sr" version="2.1">
+<context>
+    <name>AboutView</name>
+    <message>
+        <source>There&apos;s life outside the browser!</source>
+        <translation>Може и без веб прегледача!</translation>
+    </message>
+    <message>
+        <source>Version %1</source>
+        <translation>Верзија %1</translation>
+    </message>
+    <message>
+        <source>Licensed to: %1</source>
+        <translation>Лиценцирано на: %1</translation>
+    </message>
+    <message>
+        <source>%1 is Free Software but its development takes precious time.</source>
+        <translation>%1 је слободан софтвер, али његов развој одузма драгоцено време.</translation>
+    </message>
+    <message>
+        <source>Please &lt;a href=&apos;%1&apos;&gt;donate&lt;/a&gt; to support the continued development of %2.</source>
+        <translation>Молимо да &lt;a href=&apos;%1&apos;&gt;донацијама&lt;/a&gt; подржите развој програма %2.</translation>
+    </message>
+    <message>
+        <source>Translate %1 to your native language using %2</source>
+        <translation>Преведите %1 на ваш матерњи језик помоћу %2</translation>
+    </message>
+    <message>
+        <source>Icon designed by %1.</source>
+        <translation>Иконицу дизајниро %1.</translation>
+    </message>
+    <message>
+        <source>Released under the &lt;a href=&apos;%1&apos;&gt;GNU General Public License&lt;/a&gt;</source>
+        <translation>Под &lt;a href=&apos;%1&apos;&gt;Гнуовом Општом Јавном Лиценцом</translation>
+    </message>
+    <message>
+        <source>&amp;Close</source>
+        <translation>&amp;Затвори</translation>
+    </message>
+    <message>
+        <source>About</source>
+        <translation>О програму</translation>
+    </message>
+</context>
+<context>
+    <name>ActivationDialog</name>
+    <message>
+        <source>Enter your License Details</source>
+        <translation>Унесите детаље ваше лиценце</translation>
+    </message>
+    <message>
+        <source>&amp;Email:</source>
+        <translation>&amp;Е-пошта:</translation>
+    </message>
+    <message>
+        <source>&amp;Code:</source>
+        <translation>&amp;Кôд:</translation>
+    </message>
+</context>
+<context>
+    <name>ActivationView</name>
+    <message>
+        <source>Please license %1</source>
+        <translation>Молимо да купите %1</translation>
+    </message>
+    <message>
+        <source>This demo has expired.</source>
+        <translation>Показна верзија је истекла.</translation>
+    </message>
+    <message>
+        <source>The full version allows you to watch videos without interruptions.</source>
+        <translation>Пуна верзија Вам дозвољава да гледате видео снимке без прекидања.</translation>
+    </message>
+    <message>
+        <source>Without a license, the application will expire in %1 days.</source>
+        <translation>Без лиценце програм ће истећи за %1 дан(а).</translation>
+    </message>
+    <message>
+        <source>By purchasing the full version, you will also support the hard work I put into creating %1.</source>
+        <translation>Куповином пуне верзије ћете уједно и подржати мој рад на програму %1.</translation>
+    </message>
+    <message>
+        <source>Use Demo</source>
+        <translation>Користи показну верзију</translation>
+    </message>
+    <message>
+        <source>Enter License</source>
+        <translation>Унесите лиценцу</translation>
+    </message>
+    <message>
+        <source>Buy License</source>
+        <translation>Купите лиценцу</translation>
+    </message>
+</context>
+<context>
+    <name>AppWidget</name>
+    <message>
+        <source>Download</source>
+        <translation type="unfinished"/>
+    </message>
+</context>
+<context>
+    <name>ChannelAggregator</name>
+    <message>
+        <source>By %1</source>
+        <translation>За %1</translation>
+    </message>
+    <message numerus="yes">
+        <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>
+        <source>All Videos</source>
+        <translation>Сви видеи</translation>
+    </message>
+    <message>
+        <source>Unwatched Videos</source>
+        <translation>Непрегледани снимци</translation>
+    </message>
+</context>
+<context>
+    <name>ChannelView</name>
+    <message>
+        <source>Name</source>
+        <translation>имену</translation>
+    </message>
+    <message>
+        <source>Last Updated</source>
+        <translation>Задње ажурирано</translation>
+    </message>
+    <message>
+        <source>Last Added</source>
+        <translation>Задње додато</translation>
+    </message>
+    <message>
+        <source>Last Watched</source>
+        <translation>Задње гледано</translation>
+    </message>
+    <message>
+        <source>Most Watched</source>
+        <translation>Највише гледано</translation>
+    </message>
+    <message>
+        <source>Sort by</source>
+        <translation>Поређај по</translation>
+    </message>
+    <message>
+        <source>Mark all as watched</source>
+        <translation>Означи све као прегледано</translation>
+    </message>
+    <message>
+        <source>Show Updated</source>
+        <translation>Прикажи ажурирано</translation>
+    </message>
+    <message>
+        <source>All Videos</source>
+        <translation>Сви видеи</translation>
+    </message>
+    <message>
+        <source>Unwatched Videos</source>
+        <translation>Непрегледани снимци</translation>
+    </message>
+    <message>
+        <source>Mark as Watched</source>
+        <translation>Означи као погледано</translation>
+    </message>
+    <message>
+        <source>Unsubscribe</source>
+        <translation>Ун-претплати се</translation>
+    </message>
+    <message>
+        <source>There are no updated subscriptions at this time.</source>
+        <translation>Нема ажурираних субскрипција тренутно</translation>
+    </message>
+    <message>
+        <source>You have no subscriptions. Use the star symbol to subscribe to channels.</source>
+        <translation>Немате претплате. Користи звезду да се претплатиш.</translation>
+    </message>
+</context>
+<context>
+    <name>ClearButton</name>
+    <message>
+        <source>Clear</source>
+        <translation>Очисти</translation>
+    </message>
+</context>
+<context>
+    <name>DataUtils</name>
+    <message>
+        <source>Just now</source>
+        <translation>Сада</translation>
+    </message>
+    <message numerus="yes">
+        <source>%n hour(s) ago</source>
+        <translation type="unfinished"><numerusform></numerusform><numerusform></numerusform><numerusform></numerusform></translation>
+    </message>
+    <message numerus="yes">
+        <source>%n day(s) ago</source>
+        <translation type="unfinished"><numerusform></numerusform><numerusform></numerusform><numerusform></numerusform></translation>
+    </message>
+    <message numerus="yes">
+        <source>%n weeks(s) ago</source>
+        <translation type="unfinished"><numerusform></numerusform><numerusform></numerusform><numerusform></numerusform></translation>
+    </message>
+    <message numerus="yes">
+        <source>%n month(s) ago</source>
+        <translation type="unfinished"><numerusform></numerusform><numerusform></numerusform><numerusform></numerusform></translation>
+    </message>
+</context>
+<context>
+    <name>DownloadItem</name>
+    <message>
+        <source>bytes</source>
+        <translation>бајтова</translation>
+    </message>
+    <message>
+        <source>KB</source>
+        <translation>KB</translation>
+    </message>
+    <message>
+        <source>MB</source>
+        <translation>MB</translation>
+    </message>
+    <message>
+        <source>bytes/sec</source>
+        <translation>b/s</translation>
+    </message>
+    <message>
+        <source>KB/sec</source>
+        <translation>KB/s</translation>
+    </message>
+    <message>
+        <source>MB/sec</source>
+        <translation>MB/s</translation>
+    </message>
+    <message>
+        <source>seconds</source>
+        <translation>секунди</translation>
+    </message>
+    <message>
+        <source>minutes</source>
+        <translation>минута</translation>
+    </message>
+    <message>
+        <source>%4 %5 remaining</source>
+        <translation>%4 %5 преостаје</translation>
+    </message>
+</context>
+<context>
+    <name>DownloadManager</name>
+    <message>
+        <source>This is just the demo version of %1.</source>
+        <translation>Ово је тек демо верзија  %1.</translation>
+    </message>
+    <message>
+        <source>It can only download videos shorter than %1 minutes so you can test the download functionality.</source>
+        <translation>Може преузети само снимке краће од %1 минута тако да можете испробати употребљивост преузимања.</translation>
+    </message>
+    <message>
+        <source>Continue</source>
+        <translation>Настави</translation>
+    </message>
+    <message>
+        <source>Get the full version</source>
+        <translation>Преузмите пуну верзију</translation>
+    </message>
+    <message>
+        <source>%1 downloaded in %2</source>
+        <translation>%1 преузето у %2</translation>
+    </message>
+    <message>
+        <source>Download finished</source>
+        <translation>Преузимање завршено</translation>
+    </message>
+    <message numerus="yes">
+        <source>%n Download(s)</source>
+        <translation type="unfinished"><numerusform></numerusform><numerusform></numerusform><numerusform></numerusform></translation>
+    </message>
+</context>
+<context>
+    <name>DownloadSettings</name>
+    <message>
+        <source>Change location...</source>
+        <translation>Промените локацију...</translation>
+    </message>
+    <message>
+        <source>Choose the download location</source>
+        <translation>Изаберите локацију преузимања</translation>
+    </message>
+    <message>
+        <source>Download location changed.</source>
+        <translation>Локација преузимања је промењена.</translation>
+    </message>
+    <message>
+        <source>Current downloads will still go in the previous location.</source>
+        <translation>Тренутна преузимања ће се наставити са претходне локације.</translation>
+    </message>
+    <message>
+        <source>Downloading to: %1</source>
+        <translation>Преузимам у: %1</translation>
+    </message>
+</context>
+<context>
+    <name>DownloadView</name>
+    <message>
+        <source>Downloads</source>
+        <translation>Преузимања</translation>
+    </message>
+</context>
+<context>
+    <name>Extra</name>
+    <message>
+        <source>The executable file has been tempered with, maybe by a virus.</source>
+        <translation>Извршни фајл је уништен</translation>
+    </message>
+    <message>
+        <source>%1 will not run. Try installing again.</source>
+        <translation>%1 неће да се покрене. Пробај ре-инсталирати</translation>
+    </message>
+    <message>
+        <source>Quit</source>
+        <translation>Одустани</translation>
+    </message>
+    <message>
+        <source>Reinstall</source>
+        <translation>Ре-инсталирај</translation>
+    </message>
+</context>
+<context>
+    <name>GlobalShortcuts</name>
+    <message>
+        <source>Play</source>
+        <translation>Пусти</translation>
+    </message>
+    <message>
+        <source>Pause</source>
+        <translation>Паузирај</translation>
+    </message>
+    <message>
+        <source>Play/Pause</source>
+        <translation>Пусти или паузирај</translation>
+    </message>
+    <message>
+        <source>Stop</source>
+        <translation>Заустави</translation>
+    </message>
+    <message>
+        <source>Stop playing after current track</source>
+        <translation>Заустави пуштање након тренутне стазе</translation>
+    </message>
+    <message>
+        <source>Next track</source>
+        <translation>Следећа стаза</translation>
+    </message>
+    <message>
+        <source>Previous track</source>
+        <translation>Претходна стаза</translation>
+    </message>
+    <message>
+        <source>Increase volume</source>
+        <translation>Појачај</translation>
+    </message>
+    <message>
+        <source>Decrease volume</source>
+        <translation>Утишај</translation>
+    </message>
+    <message>
+        <source>Mute</source>
+        <translation>Искључи тон</translation>
+    </message>
+    <message>
+        <source>Seek forward</source>
+        <translation>Премотај унапред</translation>
+    </message>
+    <message>
+        <source>Seek backward</source>
+        <translation>Премотај уназад</translation>
+    </message>
+</context>
+<context>
+    <name>HomeView</name>
+    <message>
+        <source>Search</source>
+        <translation>Претрага</translation>
+    </message>
+    <message>
+        <source>Find videos and channels by keyword</source>
+        <translation>Претражи снимке и канале речју</translation>
+    </message>
+    <message>
+        <source>Browse</source>
+        <translation>Претражи</translation>
+    </message>
+    <message>
+        <source>Browse videos by category</source>
+        <translation>Претражи снимке по категорији</translation>
+    </message>
+    <message>
+        <source>Subscriptions</source>
+        <translation>Претплате</translation>
+    </message>
+    <message>
+        <source>Channel subscriptions</source>
+        <translation>Претплате канала</translation>
+    </message>
+    <message>
+        <source>Make yourself comfortable</source>
+        <translation>Раскомотите се</translation>
+    </message>
+</context>
+<context>
+    <name>LoadingWidget</name>
+    <message>
+        <source>Error</source>
+        <translation>Грешка</translation>
+    </message>
+</context>
+<context>
+    <name>MainWindow</name>
+    <message>
+        <source>&amp;Window</source>
+        <translation>&amp;Прозор</translation>
+    </message>
+    <message>
+        <source>&amp;Minimize</source>
+        <translation>&amp;Минимизуј</translation>
+    </message>
+    <message>
+        <source>&amp;Stop</source>
+        <translation>&amp;Заустави</translation>
+    </message>
+    <message>
+        <source>Stop playback and go back to the search view</source>
+        <translation>Зауставља пуштање и враћа се на приказ претраге</translation>
+    </message>
+    <message>
+        <source>P&amp;revious</source>
+        <translation>П&amp;ретходни</translation>
+    </message>
+    <message>
+        <source>Go back to the previous track</source>
+        <translation>Иде на претходну нумеру</translation>
+    </message>
+    <message>
+        <source>S&amp;kip</source>
+        <translation>Прес&amp;кочи</translation>
+    </message>
+    <message>
+        <source>Skip to the next video</source>
+        <translation>Пушта следећи снимак</translation>
+    </message>
+    <message>
+        <source>&amp;Play</source>
+        <translation>&amp;Пусти</translation>
+    </message>
+    <message>
+        <source>Resume playback</source>
+        <translation>Настави пуштање</translation>
+    </message>
+    <message>
+        <source>&amp;Full Screen</source>
+        <translation>&amp;Целоекрански приказ</translation>
+    </message>
+    <message>
+        <source>Go full screen</source>
+        <translation>Прелази у целоекрански приказ</translation>
+    </message>
+    <message>
+        <source>&amp;Compact Mode</source>
+        <translation>&amp;Компактан режим</translation>
+    </message>
+    <message>
+        <source>Hide the playlist and the toolbar</source>
+        <translation>Скрива плејлисту и траке алатки</translation>
+    </message>
+    <message>
+        <source>Open the &amp;YouTube Page</source>
+        <translation>Отвори страницу на &amp;Јутјубу</translation>
+    </message>
+    <message>
+        <source>Go to the YouTube video page and pause playback</source>
+        <translation>Паузира пуштање и одлази на страницу на Јутјубу</translation>
+    </message>
+    <message>
+        <source>Copy the YouTube &amp;Link</source>
+        <translation>Копирај &amp;везу са Јутјуба</translation>
+    </message>
+    <message>
+        <source>Copy the current video YouTube link to the clipboard</source>
+        <translation>Копира Јутјуб везу тренутног видеау у клипборд</translation>
+    </message>
+    <message>
+        <source>Copy the Video Stream &amp;URL</source>
+        <translation>Копирај &amp;УРЛ видео тока</translation>
+    </message>
+    <message>
+        <source>Copy the current video stream URL to the clipboard</source>
+        <translation>Копирај УРЛ тренутног видео тока у клипборд</translation>
+    </message>
+    <message>
+        <source>Find Video &amp;Parts</source>
+        <translation>Нађи &amp;делове видеа</translation>
+    </message>
+    <message>
+        <source>Find other video parts hopefully in the right order</source>
+        <translation>Нађи остале делове видеа, можда и у исправном редоследу</translation>
+    </message>
+    <message>
+        <source>&amp;Remove</source>
+        <translation>&amp;Уклони</translation>
+    </message>
+    <message>
+        <source>Remove the selected videos from the playlist</source>
+        <translation>Уклања изабране снимке из плејлисте</translation>
+    </message>
+    <message>
+        <source>Move &amp;Up</source>
+        <translation>Помери на&amp;више</translation>
+    </message>
+    <message>
+        <source>Move up the selected videos in the playlist</source>
+        <translation>Помера изабране снимке навише у плејлисти</translation>
+    </message>
+    <message>
+        <source>Move &amp;Down</source>
+        <translation>Помери на&amp;ниже</translation>
+    </message>
+    <message>
+        <source>Move down the selected videos in the playlist</source>
+        <translation>Помера изабаране снимке наниже у плејлити</translation>
+    </message>
+    <message>
+        <source>&amp;Clear Recent Searches</source>
+        <translation>&amp;Очисти недавне претраге</translation>
+    </message>
+    <message>
+        <source>Clear the search history. Cannot be undone.</source>
+        <translation>Уклања историјат претраге. Не може се опозвати.</translation>
+    </message>
+    <message>
+        <source>&amp;Quit</source>
+        <translation>&amp;Напусти</translation>
+    </message>
+    <message>
+        <source>Bye</source>
+        <translation>Ћао</translation>
+    </message>
+    <message>
+        <source>&amp;Website</source>
+        <translation>&amp;Веб сајт</translation>
+    </message>
+    <message>
+        <source>%1 on the Web</source>
+        <translation>%1 на вебу</translation>
+    </message>
+    <message>
+        <source>Make a &amp;Donation</source>
+        <translation>&amp;Донирајте</translation>
+    </message>
+    <message>
+        <source>Please support the continued development of %1</source>
+        <translation>Молимо да подржите даљи развој програма %1</translation>
+    </message>
+    <message>
+        <source>&amp;About</source>
+        <translation>&amp;О програму</translation>
+    </message>
+    <message>
+        <source>Info about %1</source>
+        <translation>Подаци о програму %1</translation>
+    </message>
+    <message>
+        <source>Search</source>
+        <translation>Претрага</translation>
+    </message>
+    <message>
+        <source>Mute volume</source>
+        <translation>Искључи тон</translation>
+    </message>
+    <message>
+        <source>&amp;Manually Start Playing</source>
+        <translation>&amp;Ручно покретање пуштања</translation>
+    </message>
+    <message>
+        <source>Manually start playing videos</source>
+        <translation>Пуштање видеа се покреће ручно</translation>
+    </message>
+    <message>
+        <source>&amp;Downloads</source>
+        <translation>&amp;Преузимања</translation>
+    </message>
+    <message>
+        <source>Show details about video downloads</source>
+        <translation>Приказује детаље о преузетим видео снимцима</translation>
+    </message>
+    <message>
+        <source>&amp;Download</source>
+        <translation>&amp;Преузми</translation>
+    </message>
+    <message>
+        <source>Download the current video</source>
+        <translation>Преузима тренутни видео</translation>
+    </message>
+    <message>
+        <source>Take &amp;Snapshot</source>
+        <translation>Узми &amp;Слику</translation>
+    </message>
+    <message>
+        <source>&amp;Subscribe to Channel</source>
+        <translation>&amp;Претплати се на Канал</translation>
+    </message>
+    <message>
+        <source>Share the current video using %1</source>
+        <translation>Дели тренутни видео путем %1 </translation>
+    </message>
+    <message>
+        <source>&amp;Email</source>
+        <translation>&amp;Е-пошта</translation>
+    </message>
+    <message>
+        <source>Email</source>
+        <translation>Е-пошта</translation>
+    </message>
+    <message>
+        <source>&amp;Close</source>
+        <translation>&amp;Затвори</translation>
+    </message>
+    <message>
+        <source>&amp;Float on Top</source>
+        <translation>&amp;Флутај на врху</translation>
+    </message>
+    <message>
+        <source>&amp;Adjust Window Size</source>
+        <translation>&amp;Прилагоди величину прозора</translation>
+    </message>
+    <message>
+        <source>&amp;Stop After This Video</source>
+        <translation>Зау&amp;стави након овог видеа</translation>
+    </message>
+    <message>
+        <source>&amp;Report an Issue...</source>
+        <translation>Пријави &amp;грешку...</translation>
+    </message>
+    <message>
+        <source>&amp;Refine Search...</source>
+        <translation>&amp;Преуреди претрагу...</translation>
+    </message>
+    <message>
+        <source>More...</source>
+        <translation>Још</translation>
+    </message>
+    <message>
+        <source>&amp;Related Videos</source>
+        <translation>&amp;Сродни снимци</translation>
+    </message>
+    <message>
+        <source>Watch videos related to the current one</source>
+        <translation>Гледај снимке сродне тренутном</translation>
+    </message>
+    <message>
+        <source>Open in &amp;Browser...</source>
+        <translation>Отвори у &amp;Претраживачу...</translation>
+    </message>
+    <message>
+        <source>Restricted Mode</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <source>Hide videos that may contain inappropriate content</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <source>&amp;Love %1? Rate it!</source>
+        <translation>&amp;Обожавате %1? Оцените!</translation>
+    </message>
+    <message>
+        <source>Buy %1...</source>
+        <translation>Купите %1....</translation>
+    </message>
+    <message>
+        <source>&amp;Application</source>
+        <translation>&amp;Програм</translation>
+    </message>
+    <message>
+        <source>&amp;Playback</source>
+        <translation>&amp;Пуштање</translation>
+    </message>
+    <message>
+        <source>&amp;Playlist</source>
+        <translation>&amp;Плејлиста</translation>
+    </message>
+    <message>
+        <source>&amp;Video</source>
+        <translation>&amp;Видео</translation>
+    </message>
+    <message>
+        <source>&amp;Share</source>
+        <translation>&amp;Дељење</translation>
+    </message>
+    <message>
+        <source>&amp;View</source>
+        <translation>&amp;Приказ</translation>
+    </message>
+    <message>
+        <source>&amp;Help</source>
+        <translation>&amp;Помоћ</translation>
+    </message>
+    <message>
+        <source>Press %1 to raise the volume, %2 to lower it</source>
+        <translation>Притисните %1 да би појачали, односно %2 да би утишали тон</translation>
+    </message>
+    <message>
+        <source>Choose your content location</source>
+        <translation>Одабери локацију тога</translation>
+    </message>
+    <message>
+        <source>Opening %1</source>
+        <translation>Отварам %1</translation>
+    </message>
+    <message>
+        <source>Do you want to exit %1 with a download in progress?</source>
+        <translation>Желите ли а напустите %1 током активног преузимања?</translation>
+    </message>
+    <message>
+        <source>If you close %1 now, this download will be cancelled.</source>
+        <translation>Уколико затворите %1 сада ово преузимање ћњ бити отказано.</translation>
+    </message>
+    <message>
+        <source>Close and cancel download</source>
+        <translation>Затвори и откажи преузимање</translation>
+    </message>
+    <message>
+        <source>Wait for download to finish</source>
+        <translation>Сачекајте да се преузимање заврши</translation>
+    </message>
+    <message>
+        <source>Error: %1</source>
+        <translation>Грешка:%1</translation>
+    </message>
+    <message>
+        <source>&amp;Pause</source>
+        <translation>&amp;Паузирај</translation>
+    </message>
+    <message>
+        <source>Pause playback</source>
+        <translation>Паузира пуштање</translation>
+    </message>
+    <message>
+        <source>&amp;Loading...</source>
+        <translation>&amp;Учитавање...</translation>
+    </message>
+    <message>
+        <source>Leave &amp;Full Screen</source>
+        <translation>Напусти &amp;цео екран</translation>
+    </message>
+    <message>
+        <source>Remaining time: %1</source>
+        <translation>Преостало време: %1</translation>
+    </message>
+    <message>
+        <source>Volume at %1%</source>
+        <translation>Јачина тона %1%</translation>
+    </message>
+    <message>
+        <source>Volume is muted</source>
+        <translation>Тон је искључен</translation>
+    </message>
+    <message>
+        <source>Volume is unmuted</source>
+        <translation>Тон  је поново укључен</translation>
+    </message>
+    <message>
+        <source>Maximum video definition set to %1</source>
+        <translation>Максимална дефиниција видеа је постављена на  %1</translation>
+    </message>
+    <message>
+        <source>Your privacy is now safe</source>
+        <translation>Ваша приватност је сада осигурана</translation>
+    </message>
+    <message>
+        <source>Downloads complete</source>
+        <translation>Преузимања су завршена</translation>
+    </message>
+    <message>
+        <source>%1 version %2 is now available.</source>
+        <translation>Доступан је %1 верзије %2.</translation>
+    </message>
+    <message>
+        <source>Remind me later</source>
+        <translation>Подести ме касније</translation>
+    </message>
+    <message>
+        <source>Update</source>
+        <translation>Ажурирај</translation>
+    </message>
+</context>
+<context>
+    <name>MediaView</name>
+    <message>
+        <source>You can now paste the YouTube link into another application</source>
+        <translation>Сад можете налепити везу са Јутјуба у други програм</translation>
+    </message>
+    <message>
+        <source>You can now paste the video stream URL into another application</source>
+        <translation>Сад можете УРЛ видео тока налепити у други програм</translation>
+    </message>
+    <message>
+        <source>The link will be valid only for a limited time.</source>
+        <translation>Веза је исправна само одређено време.</translation>
+    </message>
+    <message>
+        <source>This is just the demo version of %1.</source>
+        <translation>Ово је тек демо верзија %1.</translation>
+    </message>
+    <message>
+        <source>It allows you to test the application and see if it works for you.</source>
+        <translation>Омогућава вам да испробате програм и увидите да ли вам одговара.</translation>
+    </message>
+    <message>
+        <source>Get the full version</source>
+        <translation>Преузмите пуну верзију</translation>
+    </message>
+    <message>
+        <source>Continue</source>
+        <translation>Настави</translation>
+    </message>
+    <message>
+        <source>Downloading %1</source>
+        <translation>преузимам %1</translation>
+    </message>
+    <message>
+        <source>of</source>
+        <comment>Used in video parts, as in '2 of 3'</comment>
+        <translation>од</translation>
+    </message>
+    <message>
+        <source>part</source>
+        <comment>This is for video parts, as in 'Cool video - part 1'</comment>
+        <translation>део</translation>
+    </message>
+    <message>
+        <source>episode</source>
+        <comment>This is for video parts, as in 'Cool series - episode 1'</comment>
+        <translation>епизода</translation>
+    </message>
+    <message>
+        <source>Sent from %1</source>
+        <translation>Послато са %1</translation>
+    </message>
+    <message>
+        <source>Unsubscribe from %1</source>
+        <translation>Ун-претплати се од %1</translation>
+    </message>
+    <message>
+        <source>Subscribe to %1</source>
+        <translation>Претплати се на %1</translation>
+    </message>
+    <message>
+        <source>Unsubscribed from %1</source>
+        <translation>Ун-претплаћен од %1</translation>
+    </message>
+    <message>
+        <source>Subscribed to %1</source>
+        <translation>Претплаћен на %1</translation>
+    </message>
+</context>
+<context>
+    <name>MessageWidget</name>
+    <message>
+        <source>A new version of %1 is available!</source>
+        <translation>Ново издање %1 је доступно!</translation>
+    </message>
+    <message>
+        <source>%1 %2 is now available. You have %3.</source>
+        <translation>%1 %2 је доступан! Код вас је %3.</translation>
+    </message>
+    <message>
+        <source>Would you like to download it now?</source>
+        <translation>Желите ли да га преузмете одмах?</translation>
+    </message>
+    <message>
+        <source>Skip This Version</source>
+        <translation>Прескочи</translation>
+    </message>
+    <message>
+        <source>Remind Me Later</source>
+        <translation>Касније</translation>
+    </message>
+    <message>
+        <source>Install Update</source>
+        <translation>Инсталирај</translation>
+    </message>
+</context>
+<context>
+    <name>PasteLineEdit</name>
+    <message>
+        <source>Paste</source>
+        <translation>Налепи</translation>
+    </message>
+</context>
+<context>
+    <name>PlaylistItemDelegate</name>
+    <message>
+        <source>%1 views</source>
+        <translation>%1 прегледа</translation>
+    </message>
+    <message>
+        <source>%1 of %2 (%3) — %4</source>
+        <translation>%1 од %2 (%3) — %4</translation>
+    </message>
+    <message>
+        <source>Preparing</source>
+        <translation>Припремам</translation>
+    </message>
+    <message>
+        <source>Failed</source>
+        <translation>Неуспех</translation>
+    </message>
+    <message>
+        <source>Completed</source>
+        <translation>Завршено</translation>
+    </message>
+    <message>
+        <source>Stopped</source>
+        <translation>Заустављено</translation>
+    </message>
+    <message>
+        <source>Stop downloading</source>
+        <translation>Заустави преузимање</translation>
+    </message>
+    <message>
+        <source>Show in %1</source>
+        <translation>Прикажи у %1</translation>
+    </message>
+    <message>
+        <source>Open parent folder</source>
+        <translation>Отвори недавни фолдер</translation>
+    </message>
+    <message>
+        <source>Restart downloading</source>
+        <translation>Рестартуј преузимање</translation>
+    </message>
+</context>
+<context>
+    <name>PlaylistModel</name>
+    <message>
+        <source>Searching...</source>
+        <translation>Тражим...</translation>
+    </message>
+    <message>
+        <source>Show %1 More</source>
+        <translation>Прикажи још %1</translation>
+    </message>
+    <message>
+        <source>No videos</source>
+        <translation>Нема снимака</translation>
+    </message>
+    <message>
+        <source>No more videos</source>
+        <translation>Нема других снимака</translation>
+    </message>
+</context>
+<context>
+    <name>RefineSearchWidget</name>
+    <message>
+        <source>Sort by</source>
+        <translation>Поређај по</translation>
+    </message>
+    <message>
+        <source>Relevance</source>
+        <translation>Потребно</translation>
+    </message>
+    <message>
+        <source>Date</source>
+        <translation>Датум</translation>
+    </message>
+    <message>
+        <source>View Count</source>
+        <translation>Види број</translation>
+    </message>
+    <message>
+        <source>Rating</source>
+        <translation>Оцењивање</translation>
+    </message>
+    <message>
+        <source>Anytime</source>
+        <translation>Било кад</translation>
+    </message>
+    <message>
+        <source>Today</source>
+        <translation>Данас</translation>
+    </message>
+    <message>
+        <source>7 Days</source>
+        <translation>7 Дана</translation>
+    </message>
+    <message>
+        <source>30 Days</source>
+        <translation>30 Дана</translation>
+    </message>
+    <message>
+        <source>Duration</source>
+        <translation>Трајање</translation>
+    </message>
+    <message>
+        <source>All</source>
+        <translation>Све</translation>
+    </message>
+    <message>
+        <source>Short</source>
+        <translation>Кратко</translation>
+    </message>
+    <message>
+        <source>Medium</source>
+        <translation>Средње</translation>
+    </message>
+    <message>
+        <source>Long</source>
+        <translation>Дуго</translation>
+    </message>
+    <message>
+        <source>Less than 4 minutes</source>
+        <translation>Мање од 4 минуте</translation>
+    </message>
+    <message>
+        <source>Between 4 and 20 minutes</source>
+        <translation>Између 4 и 20 минута</translation>
+    </message>
+    <message>
+        <source>Longer than 20 minutes</source>
+        <translation>Дуже од 20 минута</translation>
+    </message>
+    <message>
+        <source>Quality</source>
+        <translation>Квалитет</translation>
+    </message>
+    <message>
+        <source>High Definition</source>
+        <translation>Високо Дефинисано</translation>
+    </message>
+    <message>
+        <source>720p or higher</source>
+        <translation>720p или више</translation>
+    </message>
+    <message>
+        <source>Done</source>
+        <translation>Довршено</translation>
+    </message>
+</context>
+<context>
+    <name>RegionsView</name>
+    <message>
+        <source>Done</source>
+        <translation>Довршено</translation>
+    </message>
+</context>
+<context>
+    <name>SearchLineEdit</name>
+    <message>
+        <source>Search</source>
+        <translation>Претрага</translation>
+    </message>
+</context>
+<context>
+    <name>SearchView</name>
+    <message>
+        <source>Welcome to &lt;a href=&apos;%1&apos;&gt;%2&lt;/a&gt;,</source>
+        <translation>Добродошли у &lt;a href=&apos;%1&apos;&gt;%2&lt;/a&gt;,</translation>
+    </message>
+    <message>
+        <source>Enter</source>
+        <extracomment>&quot;Enter&quot;, as in &quot;type&quot;. The whole phrase says: &quot;Enter a keyword to start watching videos&quot;</extracomment>
+        <translation>унесите</translation>
+    </message>
+    <message>
+        <source>a keyword</source>
+        <translation>кључну реч</translation>
+    </message>
+    <message>
+        <source>a channel</source>
+        <translation>канал</translation>
+    </message>
+    <message>
+        <source>to start watching videos.</source>
+        <translation>да би започели преглед видео снимака.</translation>
+    </message>
+    <message>
+        <source>Watch</source>
+        <translation>Гледај</translation>
+    </message>
+    <message>
+        <source>Recent keywords</source>
+        <translation>Недавни кључне речи</translation>
+    </message>
+    <message>
+        <source>Recent channels</source>
+        <translation>Недавни канали</translation>
+    </message>
+    <message>
+        <source>Get the full version</source>
+        <translation>Преузмите пуну верзију</translation>
+    </message>
+</context>
+<context>
+    <name>SidebarHeader</name>
+    <message>
+        <source>&amp;Back</source>
+        <translation>&amp;Назад</translation>
+    </message>
+    <message>
+        <source>Forward to %1</source>
+        <translation>Напред до %1</translation>
+    </message>
+    <message>
+        <source>Back to %1</source>
+        <translation>Назад до %1</translation>
+    </message>
+</context>
+<context>
+    <name>SidebarWidget</name>
+    <message>
+        <source>Refine Search</source>
+        <translation>Преуреди претрагу</translation>
+    </message>
+    <message>
+        <source>Did you mean: %1</source>
+        <translation>Да ли сте мислили: %1</translation>
+    </message>
+</context>
+<context>
+    <name>SnapshotSettings</name>
+    <message>
+        <source>Change location...</source>
+        <translation>Промените локацију...</translation>
+    </message>
+    <message>
+        <source>Snapshot saved to %1</source>
+        <translation>Слике сачуване у %1</translation>
+    </message>
+    <message>
+        <source>Snapshots location changed.</source>
+        <translation>Локација слика је промењена</translation>
+    </message>
+</context>
+<context>
+    <name>StandardFeedsView</name>
+    <message>
+        <source>Most Popular</source>
+        <translation>Најпопуларније</translation>
+    </message>
+</context>
+<context>
+    <name>UpdateDialog</name>
+    <message>
+        <source>Downloading update...</source>
+        <translation>Преузимам надоградњу... </translation>
+    </message>
+    <message>
+        <source>Downloading %1...</source>
+        <translation type="unfinished"/>
+    </message>
+</context>
+<context>
+    <name>Video</name>
+    <message>
+        <source>Cannot get video stream for %1</source>
+        <translation>не могу да добавим видео ток за %1</translation>
+    </message>
+</context>
+<context>
+    <name>YTRegions</name>
+    <message>
+        <source>Algeria</source>
+        <translation>Алжир</translation>
+    </message>
+    <message>
+        <source>Argentina</source>
+        <translation>Аргентина</translation>
+    </message>
+    <message>
+        <source>Australia</source>
+        <translation>Аустралија</translation>
+    </message>
+    <message>
+        <source>Belgium</source>
+        <translation>Белгија</translation>
+    </message>
+    <message>
+        <source>Brazil</source>
+        <translation>Бразил</translation>
+    </message>
+    <message>
+        <source>Canada</source>
+        <translation>Канада</translation>
+    </message>
+    <message>
+        <source>Chile</source>
+        <translation>Чиле</translation>
+    </message>
+    <message>
+        <source>Colombia</source>
+        <translation>Колумбија</translation>
+    </message>
+    <message>
+        <source>Czech Republic</source>
+        <translation>Чешка Република</translation>
+    </message>
+    <message>
+        <source>Egypt</source>
+        <translation>Египт</translation>
+    </message>
+    <message>
+        <source>France</source>
+        <translation>Француска</translation>
+    </message>
+    <message>
+        <source>Germany</source>
+        <translation>Немачка</translation>
+    </message>
+    <message>
+        <source>Ghana</source>
+        <translation>Гана</translation>
+    </message>
+    <message>
+        <source>Greece</source>
+        <translation>Грчка</translation>
+    </message>
+    <message>
+        <source>Hong Kong</source>
+        <translation>Хонг Конг</translation>
+    </message>
+    <message>
+        <source>Hungary</source>
+        <translation>Мађарска</translation>
+    </message>
+    <message>
+        <source>India</source>
+        <translation>Индија</translation>
+    </message>
+    <message>
+        <source>Indonesia</source>
+        <translation>Индонезија</translation>
+    </message>
+    <message>
+        <source>Ireland</source>
+        <translation>Ирска</translation>
+    </message>
+    <message>
+        <source>Israel</source>
+        <translation>Израел</translation>
+    </message>
+    <message>
+        <source>Italy</source>
+        <translation>Италија</translation>
+    </message>
+    <message>
+        <source>Japan</source>
+        <translation>Јапан</translation>
+    </message>
+    <message>
+        <source>Jordan</source>
+        <translation>Јордан</translation>
+    </message>
+    <message>
+        <source>Kenya</source>
+        <translation>Кенија</translation>
+    </message>
+    <message>
+        <source>Malaysia</source>
+        <translation>Малезија</translation>
+    </message>
+    <message>
+        <source>Mexico</source>
+        <translation>Мексико</translation>
+    </message>
+    <message>
+        <source>Morocco</source>
+        <translation>Мароко</translation>
+    </message>
+    <message>
+        <source>Netherlands</source>
+        <translation>Холандија</translation>
+    </message>
+    <message>
+        <source>New Zealand</source>
+        <translation>Нови Зеланд</translation>
+    </message>
+    <message>
+        <source>Nigeria</source>
+        <translation>Нигерија</translation>
+    </message>
+    <message>
+        <source>Peru</source>
+        <translation>Перу</translation>
+    </message>
+    <message>
+        <source>Philippines</source>
+        <translation>Филипини</translation>
+    </message>
+    <message>
+        <source>Poland</source>
+        <translation>Пољска</translation>
+    </message>
+    <message>
+        <source>Russia</source>
+        <translation>Русија</translation>
+    </message>
+    <message>
+        <source>Saudi Arabia</source>
+        <translation>Саудијска Арабија</translation>
+    </message>
+    <message>
+        <source>Singapore</source>
+        <translation>Сингапур</translation>
+    </message>
+    <message>
+        <source>South Africa</source>
+        <translation>Северна Африка</translation>
+    </message>
+    <message>
+        <source>South Korea</source>
+        <translation>Северна Кореја</translation>
+    </message>
+    <message>
+        <source>Spain</source>
+        <translation>Шпанија</translation>
+    </message>
+    <message>
+        <source>Sweden</source>
+        <translation>Шведска</translation>
+    </message>
+    <message>
+        <source>Taiwan</source>
+        <translation>Тајван</translation>
+    </message>
+    <message>
+        <source>Tunisia</source>
+        <translation>Тунис</translation>
+    </message>
+    <message>
+        <source>Turkey</source>
+        <translation>Турска</translation>
+    </message>
+    <message>
+        <source>Uganda</source>
+        <translation>Уганда</translation>
+    </message>
+    <message>
+        <source>United Arab Emirates</source>
+        <translation>Уједињени Арапски Епирати</translation>
+    </message>
+    <message>
+        <source>United Kingdom</source>
+        <translation>Уједињено Краљевство</translation>
+    </message>
+    <message>
+        <source>Yemen</source>
+        <translation>Јемен</translation>
+    </message>
+    <message>
+        <source>Worldwide</source>
+        <translation>Широм света</translation>
+    </message>
+</context>
+</TS>
\ No newline at end of file
index e56d5b95cbe0ef2221e73a1a745e87c1bff63d39..b581eb3506d4503e9ffe94c78406629759df46ad 100644 (file)
@@ -2,67 +2,42 @@
 <context>
     <name>AboutView</name>
     <message>
-        <location filename="src/aboutview.cpp" line="58"/>
         <source>There&apos;s life outside the browser!</source>
         <translation>Det finns ett liv utanför webbläsaren!</translation>
     </message>
     <message>
-        <location filename="src/aboutview.cpp" line="59"/>
         <source>Version %1</source>
         <translation>Version %1</translation>
     </message>
     <message>
-        <location filename="src/aboutview.cpp" line="64"/>
         <source>Licensed to: %1</source>
         <translation>Licensierad till: %1</translation>
     </message>
     <message>
-        <location filename="src/aboutview.cpp" line="68"/>
         <source>%1 is Free Software but its development takes precious time.</source>
         <translation>%1 är fri programvara men utvecklingen tar värdefull tid.</translation>
     </message>
     <message>
-        <location filename="src/aboutview.cpp" line="69"/>
         <source>Please &lt;a href=&apos;%1&apos;&gt;donate&lt;/a&gt; to support the continued development of %2.</source>
         <translation>Vänligen &lt;a href=&apos;%1&apos;&gt; donera&lt;/a&gt; för att stödja den fortsatta utvecklingen utav %2</translation>
     </message>
     <message>
-        <location filename="src/aboutview.cpp" line="73"/>
-        <source>You may want to try my other apps as well:</source>
-        <translation>Du kan gärna prova mina andra program också:</translation>
-    </message>
-    <message>
-        <location filename="src/aboutview.cpp" line="76"/>
-        <source>%1, a YouTube music player</source>
-        <translation>%1, en YouTube-musikspelare</translation>
-    </message>
-    <message>
-        <location filename="src/aboutview.cpp" line="80"/>
-        <source>%1, a music player</source>
-        <translation>%1, en musikspelare</translation>
-    </message>
-    <message>
-        <location filename="src/aboutview.cpp" line="86"/>
         <source>Translate %1 to your native language using %2</source>
         <translation>Översätt %1 till ditt modersmål med %2</translation>
     </message>
     <message>
-        <location filename="src/aboutview.cpp" line="91"/>
         <source>Icon designed by %1.</source>
         <translation>Ikon designad av %1</translation>
     </message>
     <message>
-        <location filename="src/aboutview.cpp" line="95"/>
         <source>Released under the &lt;a href=&apos;%1&apos;&gt;GNU General Public License&lt;/a&gt;</source>
         <translation>Släppt under &lt;a href=&apos;%1&apos;&gt;GNU General Public License&lt;/a&gt;</translation>
     </message>
     <message>
-        <location filename="src/aboutview.cpp" line="110"/>
         <source>&amp;Close</source>
         <translation>&amp;Stäng</translation>
     </message>
     <message>
-        <location filename="src/aboutview.h" line="40"/>
         <source>About</source>
         <translation>Om</translation>
     </message>
 <context>
     <name>ActivationDialog</name>
     <message>
-        <location filename="local/src/activationdialog.cpp" line="17"/>
         <source>Enter your License Details</source>
         <translation>Ange dina Licensdetaljer</translation>
     </message>
     <message>
-        <location filename="local/src/activationdialog.cpp" line="29"/>
         <source>&amp;Email:</source>
         <translation>&amp;E-post:</translation>
     </message>
     <message>
-        <location filename="local/src/activationdialog.cpp" line="35"/>
         <source>&amp;Code:</source>
         <translation>&amp;Nyckel:</translation>
     </message>
 <context>
     <name>ActivationView</name>
     <message>
-        <location filename="local/src/activationview.cpp" line="47"/>
         <source>Please license %1</source>
         <translation>Vänligen licensiera %1</translation>
     </message>
     <message>
-        <location filename="local/src/activationview.cpp" line="51"/>
         <source>This demo has expired.</source>
         <translation>Denna demo har utgått.</translation>
     </message>
     <message>
-        <location filename="local/src/activationview.cpp" line="53"/>
         <source>The full version allows you to watch videos without interruptions.</source>
-        <oldsource>The full version allows you to download videos longer than %1 minutes and to watch videos without interruptions.</oldsource>
         <translation>Den fulla versionen tillåter dig att kolla på videoklipp utan avbrott.</translation>
     </message>
     <message>
-        <location filename="local/src/activationview.cpp" line="55"/>
         <source>Without a license, the application will expire in %1 days.</source>
         <translation>Utan en licens kommer programmet att upphöra inom %1 dagar.</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>Genom att köpa fullversionen kommer du också att stödja mitt hårda arbete jag gör med %1.</translation>
     </message>
     <message>
-        <location filename="local/src/activationview.cpp" line="70"/>
         <source>Use Demo</source>
         <translation>Använd demo</translation>
     </message>
     <message>
-        <location filename="local/src/activationview.cpp" line="77"/>
         <source>Enter License</source>
         <translation>Ange Licens</translation>
     </message>
     <message>
-        <location filename="local/src/activationview.cpp" line="85"/>
         <source>Buy License</source>
         <translation>Köp licens</translation>
     </message>
 </context>
+<context>
+    <name>AppWidget</name>
+    <message>
+        <source>Download</source>
+        <translation type="unfinished"/>
+    </message>
+</context>
 <context>
     <name>ChannelAggregator</name>
     <message>
-        <location filename="src/channelaggregator.cpp" line="183"/>
         <source>By %1</source>
         <translation>Av %1</translation>
     </message>
     <message numerus="yes">
-        <location filename="src/channelaggregator.cpp" line="185"/>
         <source>You have %n new video(s)</source>
-        <translation><numerusform>Du har %n nytt videoklipp</numerusform><numerusform>Du har %n nya videoklipp</numerusform></translation>
+        <translation type="unfinished"><numerusform></numerusform><numerusform></numerusform></translation>
     </message>
 </context>
 <context>
     <name>ChannelItemDelegate</name>
     <message>
-        <location filename="src/channelitemdelegate.cpp" line="67"/>
         <source>All Videos</source>
         <translation>Alla Videor</translation>
     </message>
     <message>
-        <location filename="src/channelitemdelegate.cpp" line="85"/>
         <source>Unwatched Videos</source>
         <translation>Osedda Videor</translation>
     </message>
 <context>
     <name>ChannelView</name>
     <message>
-        <location filename="src/channelview.cpp" line="151"/>
-        <source>Mark all as watched</source>
-        <translation>Markera alla som sedda</translation>
-    </message>
-    <message>
-        <location filename="src/channelview.cpp" line="159"/>
-        <source>Show Updated</source>
-        <translation>Visa Uppdaterat</translation>
-    </message>
-    <message>
-        <location filename="src/channelview.cpp" line="103"/>
         <source>Name</source>
         <translation>Namn</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="110"/>
         <source>Last Updated</source>
         <translation>Senast Uppdaterade</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="117"/>
         <source>Last Added</source>
         <translation>Senast Tillagda</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="124"/>
         <source>Last Watched</source>
         <translation>Senast Sedda</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="131"/>
         <source>Most Watched</source>
         <translation>Mest Sedda</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="139"/>
         <source>Sort by</source>
         <translation>Sortera enligt</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="222"/>
+        <source>Mark all as watched</source>
+        <translation>Markera alla som sedda</translation>
+    </message>
+    <message>
+        <source>Show Updated</source>
+        <translation>Visa Uppdaterat</translation>
+    </message>
+    <message>
         <source>All Videos</source>
         <translation>Alla Videor</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="226"/>
         <source>Unwatched Videos</source>
         <translation>Osedda Videor</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="244"/>
         <source>Mark as Watched</source>
         <translation>Markera som Sedd</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="257"/>
         <source>Unsubscribe</source>
         <translation>Avprenumerera</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="270"/>
         <source>There are no updated subscriptions at this time.</source>
         <translation>Det finns inga uppdaterade prenumerationer just nu.</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="272"/>
         <source>You have no subscriptions. Use the star symbol to subscribe to channels.</source>
         <translation>Du har inga prenumerationer. Använd stjärnsymbolen för att prenumerera på kanaler.</translation>
     </message>
 <context>
     <name>ClearButton</name>
     <message>
-        <location filename="src/exlineedit.cpp" line="6"/>
         <source>Clear</source>
         <translation>Rensa</translation>
     </message>
 <context>
     <name>DataUtils</name>
     <message>
-        <location filename="src/datautils.cpp" line="88"/>
         <source>Just now</source>
         <translation>Just nu</translation>
     </message>
     <message numerus="yes">
-        <location filename="src/datautils.cpp" line="90"/>
-        <source>%n minute(s) ago</source>
-        <translation><numerusform>%n minut(er) sen</numerusform><numerusform>%n minut(er) sen</numerusform></translation>
-    </message>
-    <message numerus="yes">
-        <location filename="src/datautils.cpp" line="92"/>
         <source>%n hour(s) ago</source>
-        <translation><numerusform>%n timme sen</numerusform><numerusform>%n timmar sen</numerusform></translation>
+        <translation type="unfinished"><numerusform></numerusform><numerusform></numerusform></translation>
     </message>
     <message numerus="yes">
-        <location filename="src/datautils.cpp" line="94"/>
         <source>%n day(s) ago</source>
-        <translation><numerusform>%n dag(ar) sen</numerusform><numerusform>%n dag(ar) sen</numerusform></translation>
+        <translation type="unfinished"><numerusform></numerusform><numerusform></numerusform></translation>
     </message>
     <message numerus="yes">
-        <location filename="src/datautils.cpp" line="96"/>
         <source>%n weeks(s) ago</source>
-        <translation><numerusform>%n vecka sen</numerusform><numerusform>%n veckor sen</numerusform></translation>
+        <translation type="unfinished"><numerusform></numerusform><numerusform></numerusform></translation>
     </message>
     <message numerus="yes">
-        <location filename="src/datautils.cpp" line="98"/>
         <source>%n month(s) ago</source>
-        <translation><numerusform>%n månad(er) sen</numerusform><numerusform>%n månad(er) sen</numerusform></translation>
+        <translation type="unfinished"><numerusform></numerusform><numerusform></numerusform></translation>
     </message>
 </context>
 <context>
     <name>DownloadItem</name>
     <message>
-        <location filename="src/downloaditem.cpp" line="406"/>
         <source>bytes</source>
         <translation>byte</translation>
     </message>
     <message>
-        <location filename="src/downloaditem.cpp" line="409"/>
         <source>KB</source>
         <translation>KB</translation>
     </message>
     <message>
-        <location filename="src/downloaditem.cpp" line="412"/>
         <source>MB</source>
         <translation>MB</translation>
     </message>
     <message>
-        <location filename="src/downloaditem.cpp" line="421"/>
         <source>bytes/sec</source>
         <translation>byte / sekund</translation>
     </message>
     <message>
-        <location filename="src/downloaditem.cpp" line="424"/>
         <source>KB/sec</source>
         <translation>KB / sekund</translation>
     </message>
     <message>
-        <location filename="src/downloaditem.cpp" line="427"/>
         <source>MB/sec</source>
         <translation>MB / sekund</translation>
     </message>
     <message>
-        <location filename="src/downloaditem.cpp" line="433"/>
         <source>seconds</source>
         <translation>sekunder</translation>
     </message>
     <message>
-        <location filename="src/downloaditem.cpp" line="436"/>
         <source>minutes</source>
         <translation>minuter</translation>
     </message>
     <message>
-        <location filename="src/downloaditem.cpp" line="439"/>
         <source>%4 %5 remaining</source>
         <translation>%4 %5 återstår</translation>
     </message>
 <context>
     <name>DownloadManager</name>
     <message>
-        <location filename="src/downloadmanager.cpp" line="77"/>
         <source>This is just the demo version of %1.</source>
         <translation>Detta är bara en demoversion av %1.</translation>
     </message>
     <message>
-        <location filename="src/downloadmanager.cpp" line="79"/>
         <source>It can only download videos shorter than %1 minutes so you can test the download functionality.</source>
         <translation>Den kan bara ladda ner filmer kortare än %1 minuter så att du kan testa ladda-ned funktionen.</translation>
     </message>
     <message>
-        <location filename="src/downloadmanager.cpp" line="85"/>
         <source>Continue</source>
         <translation>Fortsätt</translation>
     </message>
     <message>
-        <location filename="src/downloadmanager.cpp" line="86"/>
         <source>Get the full version</source>
         <translation>Skaffa den fullständiga versionen</translation>
     </message>
     <message>
-        <location filename="src/downloadmanager.cpp" line="157"/>
         <source>%1 downloaded in %2</source>
         <translation>%1 nedladdad i %2</translation>
     </message>
     <message>
-        <location filename="src/downloadmanager.cpp" line="160"/>
         <source>Download finished</source>
         <translation>Nedladdning klar</translation>
     </message>
     <message numerus="yes">
-        <location filename="src/downloadmanager.cpp" line="165"/>
         <source>%n Download(s)</source>
-        <translation><numerusform>%n Nedladning (ar)</numerusform><numerusform>%n Nedladning (ar)</numerusform></translation>
+        <translation type="unfinished"><numerusform></numerusform><numerusform></numerusform></translation>
     </message>
 </context>
 <context>
     <name>DownloadSettings</name>
     <message>
-        <location filename="src/downloadsettings.cpp" line="36"/>
         <source>Change location...</source>
         <translation>Byt plats ...</translation>
     </message>
     <message>
-        <location filename="src/downloadsettings.cpp" line="69"/>
         <source>Choose the download location</source>
         <translation>Välj hämtningsplats</translation>
     </message>
     <message>
-        <location filename="src/downloadsettings.cpp" line="81"/>
         <source>Download location changed.</source>
         <translation>Hämtningsplatsen har ändrats.</translation>
     </message>
     <message>
-        <location filename="src/downloadsettings.cpp" line="83"/>
         <source>Current downloads will still go in the previous location.</source>
         <translation>Aktuella nedladdningar kommer fortfarande att hamna i den tidigare hämtningsplatsen.</translation>
     </message>
     <message>
-        <location filename="src/downloadsettings.cpp" line="94"/>
         <source>Downloading to: %1</source>
         <translation>Hämtar till: %1</translation>
     </message>
 <context>
     <name>DownloadView</name>
     <message>
-        <location filename="src/downloadview.cpp" line="38"/>
-        <location filename="src/downloadview.h" line="45"/>
         <source>Downloads</source>
         <translation>Nedladdningar</translation>
     </message>
 </context>
-<context>
-    <name>DownloadWidget</name>
-    <message>
-        <location filename="local/src/updatedialog.cpp" line="60"/>
-        <source>Downloading update...</source>
-        <translation>Laddar ner uppdatering...</translation>
-    </message>
-</context>
 <context>
     <name>Extra</name>
     <message>
-        <location filename="local/src/extra.cpp" line="251"/>
         <source>The executable file has been tempered with, maybe by a virus.</source>
         <translation>Den körbara filen har blivit manipulerad, kanske ett virus.</translation>
     </message>
     <message>
-        <location filename="local/src/extra.cpp" line="252"/>
         <source>%1 will not run. Try installing again.</source>
         <translation>%1 kan inte köras. Testa att ominstallera.</translation>
     </message>
     <message>
-        <location filename="local/src/extra.cpp" line="253"/>
         <source>Quit</source>
         <translation>Stäng</translation>
     </message>
     <message>
-        <location filename="local/src/extra.cpp" line="254"/>
         <source>Reinstall</source>
         <translation>Ominstallera</translation>
     </message>
 <context>
     <name>GlobalShortcuts</name>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="36"/>
         <source>Play</source>
         <translation>Spela</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="37"/>
         <source>Pause</source>
         <translation>Pausa</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="38"/>
         <source>Play/Pause</source>
         <translation>Spela / Pausa</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="39"/>
         <source>Stop</source>
         <translation>Stoppa</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="40"/>
         <source>Stop playing after current track</source>
         <translation>Sluta spela efter nuvarande spår</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="41"/>
         <source>Next track</source>
         <translation>Nästa spår</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="42"/>
         <source>Previous track</source>
         <translation>Föregående spår</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="43"/>
         <source>Increase volume</source>
         <translation>Öka volymen</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="44"/>
         <source>Decrease volume</source>
         <translation>Minska volymen</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="45"/>
         <source>Mute</source>
         <translation>Mute</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="46"/>
         <source>Seek forward</source>
         <translation>Sök framåt</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="47"/>
         <source>Seek backward</source>
         <translation>Sök bakåt</translation>
     </message>
 <context>
     <name>HomeView</name>
     <message>
-        <location filename="src/homeview.cpp" line="58"/>
         <source>Search</source>
         <translation>Sök</translation>
     </message>
     <message>
-        <location filename="src/homeview.cpp" line="60"/>
         <source>Find videos and channels by keyword</source>
         <translation>Hitta videor och kanaler genom ett nyckelord</translation>
     </message>
     <message>
-        <location filename="src/homeview.cpp" line="65"/>
         <source>Browse</source>
         <translation>Sök</translation>
     </message>
     <message>
-        <location filename="src/homeview.cpp" line="67"/>
         <source>Browse videos by category</source>
         <translation>Sök videor enligt kategori</translation>
     </message>
     <message>
-        <location filename="src/homeview.cpp" line="71"/>
         <source>Subscriptions</source>
         <translation>Prenumerationer</translation>
     </message>
     <message>
-        <location filename="src/homeview.cpp" line="73"/>
         <source>Channel subscriptions</source>
         <translation>Kanalprenumerationer</translation>
     </message>
     <message>
-        <location filename="src/homeview.h" line="44"/>
         <source>Make yourself comfortable</source>
         <translation>Gör det bekvämt för dig</translation>
     </message>
 <context>
     <name>LoadingWidget</name>
     <message>
-        <location filename="src/loadingwidget.cpp" line="125"/>
         <source>Error</source>
         <translation>Fel</translation>
     </message>
 <context>
     <name>MainWindow</name>
     <message>
-        <location filename="src/mainwindow.cpp" line="291"/>
+        <source>&amp;Window</source>
+        <translation>&amp;Fönster</translation>
+    </message>
+    <message>
+        <source>&amp;Minimize</source>
+        <translation>&amp;Minimera</translation>
+    </message>
+    <message>
         <source>&amp;Stop</source>
         <translation>&amp;Stopp</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="292"/>
         <source>Stop playback and go back to the search view</source>
         <translation>Stoppa uppspelningen och gå tillbaka till Sökvyn</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="307"/>
+        <source>P&amp;revious</source>
+        <translation>Fö&amp;regående</translation>
+    </message>
+    <message>
+        <source>Go back to the previous track</source>
+        <translation>Gå tillbaka till föregående spår</translation>
+    </message>
+    <message>
         <source>S&amp;kip</source>
         <translation>H&amp;oppa</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="308"/>
         <source>Skip to the next video</source>
         <translation>Hoppa till nästa video</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1134"/>
-        <source>&amp;Pause</source>
-        <translation>&amp;Pausa</translation>
+        <source>&amp;Play</source>
+        <translation>&amp;Spela</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1135"/>
-        <source>Pause playback</source>
-        <translation>Pausa uppspelning</translation>
+        <source>Resume playback</source>
+        <translation>Återuppta uppspelning</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="321"/>
         <source>&amp;Full Screen</source>
         <translation>&amp;Helskärm</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="322"/>
         <source>Go full screen</source>
         <translation>Använd helskärm</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="336"/>
+        <source>&amp;Compact Mode</source>
+        <translation>Kompakt läge</translation>
+    </message>
+    <message>
         <source>Hide the playlist and the toolbar</source>
         <translation>Dölj spellistan och verktygsfältet</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="349"/>
+        <source>Open the &amp;YouTube Page</source>
+        <translation>Öppna &amp;YouTube-sidan</translation>
+    </message>
+    <message>
         <source>Go to the YouTube video page and pause playback</source>
         <translation>Gå till YouTube-video-sidan och pausa uppspelning</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="356"/>
+        <source>Copy the YouTube &amp;Link</source>
+        <translation>Kopiera YouTube-&amp;Länk</translation>
+    </message>
+    <message>
         <source>Copy the current video YouTube link to the clipboard</source>
         <translation>Kopiera den aktuella YouTube-video-länken till urklipp</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="363"/>
+        <source>Copy the Video Stream &amp;URL</source>
+        <translation>Kopiera videoströmmens &amp;URL</translation>
+    </message>
+    <message>
         <source>Copy the current video stream URL to the clipboard</source>
         <translation>Kopiera den nuvarande videoströmmens URL till urklipp</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="370"/>
+        <source>Find Video &amp;Parts</source>
+        <translation>Hitta Videodelar</translation>
+    </message>
+    <message>
         <source>Find other video parts hopefully in the right order</source>
         <translation>Hitta andra videodelar förhoppningsvis i rätt ordning</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="376"/>
         <source>&amp;Remove</source>
         <translation>&amp;Ta bort</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="377"/>
         <source>Remove the selected videos from the playlist</source>
         <translation>Ta bort de markerade videoklippen från spellistan</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="383"/>
         <source>Move &amp;Up</source>
         <translation>Flytta &amp;upp</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="384"/>
         <source>Move up the selected videos in the playlist</source>
         <translation>Flytta upp de markerade videoklippen i spellistan</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="390"/>
         <source>Move &amp;Down</source>
         <translation>Flytta &amp;nedåt</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="391"/>
         <source>Move down the selected videos in the playlist</source>
         <translation>Flytta ner de markerade videoklippen i spellistan</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="402"/>
+        <source>&amp;Clear Recent Searches</source>
+        <translation>&amp;Rensa Senaste Sökningar</translation>
+    </message>
+    <message>
         <source>Clear the search history. Cannot be undone.</source>
         <translation>Rensa sökhistorik. Kan inte ångras.</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="407"/>
         <source>&amp;Quit</source>
         <translation>&amp;Avsluta</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="410"/>
         <source>Bye</source>
         <translation>Hej då</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="414"/>
         <source>&amp;Website</source>
         <translation>&amp;Webbsida</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="416"/>
         <source>%1 on the Web</source>
         <translation>%1 på webben</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="422"/>
+        <source>Make a &amp;Donation</source>
+        <translation>Gör en &amp;Donation</translation>
+    </message>
+    <message>
         <source>Please support the continued development of %1</source>
         <translation>Vänligen stöd den fortsatta utvecklingen av %1</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="427"/>
         <source>&amp;About</source>
         <translation>&amp;Om</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="429"/>
         <source>Info about %1</source>
         <translation>Info om %1</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="437"/>
         <source>Search</source>
         <translation>Sök</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="456"/>
         <source>Mute volume</source>
         <translation>Volym av</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="490"/>
-        <location filename="src/mainwindow.cpp" line="1609"/>
+        <source>&amp;Manually Start Playing</source>
+        <translation>Starta Spela &amp;Manuellt</translation>
+    </message>
+    <message>
+        <source>Manually start playing videos</source>
+        <translation>Starta Spela Videos Manuellt</translation>
+    </message>
+    <message>
         <source>&amp;Downloads</source>
         <translation>&amp;Nedladdningar</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="491"/>
         <source>Show details about video downloads</source>
         <translation>Visa detaljer om videonedladdningar</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="499"/>
         <source>&amp;Download</source>
         <translation>&amp;Ladda ner</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="500"/>
         <source>Download the current video</source>
         <translation>Ladda ner den aktuella videon</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="510"/>
         <source>Take &amp;Snapshot</source>
         <translation>Ta &amp;Skärmbild</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="517"/>
         <source>&amp;Subscribe to Channel</source>
         <translation>&amp;Prenumerera på Kanalen</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="525"/>
         <source>Share the current video using %1</source>
         <translation>Dela nuvarande video med %1</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="545"/>
         <source>&amp;Email</source>
         <translation>&amp;E-post</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="546"/>
         <source>Email</source>
         <translation>E-post</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="551"/>
         <source>&amp;Close</source>
         <translation>&amp;Stäng</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="561"/>
         <source>&amp;Float on Top</source>
         <translation>&amp;Flyt ovanpå</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="566"/>
         <source>&amp;Adjust Window Size</source>
         <translation>&amp;Justera Fönster Storleken</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="571"/>
         <source>&amp;Stop After This Video</source>
         <translation>&amp;Stoppa efter denna video</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="578"/>
         <source>&amp;Report an Issue...</source>
         <translation>&amp;Rapportera ett problem...</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="582"/>
         <source>&amp;Refine Search...</source>
         <translation>&amp;Förfinad sökning...</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="594"/>
         <source>More...</source>
         <translation>Mer...</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="597"/>
         <source>&amp;Related Videos</source>
         <translation>&amp;Relaterade Videor</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="599"/>
         <source>Watch videos related to the current one</source>
         <translation>Visa videor relaterade till den nuvarande</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="605"/>
         <source>Open in &amp;Browser...</source>
         <translation>Öppna i &amp;Webbläsare</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="612"/>
-        <source>&amp;Love %1? Rate it!</source>
-        <translation>&amp;Älskar du %1? Betygsätt den!</translation>
+        <source>Restricted Mode</source>
+        <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="633"/>
-        <source>&amp;Application</source>
-        <translation>&amp;Applikation</translation>
+        <source>Hide videos that may contain inappropriate content</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <source>&amp;Love %1? Rate it!</source>
+        <translation>&amp;Älskar du %1? Betygsätt den!</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="618"/>
         <source>Buy %1...</source>
         <translation>Köp %1...</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="647"/>
+        <source>&amp;Application</source>
+        <translation>&amp;Applikation</translation>
+    </message>
+    <message>
         <source>&amp;Playback</source>
         <translation>&amp;Uppspelning</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="661"/>
         <source>&amp;Playlist</source>
         <translation>&amp;Spellista</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="670"/>
         <source>&amp;Video</source>
         <translation>&amp;Video</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="686"/>
-        <source>&amp;View</source>
-        <translation>&amp;Vy</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="695"/>
         <source>&amp;Share</source>
         <translation>&amp;Dela</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="709"/>
+        <source>&amp;View</source>
+        <translation>&amp;Vy</translation>
+    </message>
+    <message>
         <source>&amp;Help</source>
         <translation>&amp;Hjälp</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="751"/>
         <source>Press %1 to raise the volume, %2 to lower it</source>
         <translation>Tryck på %1 för att öka volymen, %2 för att sänka den</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1021"/>
-        <location filename="src/mainwindow.cpp" line="1027"/>
+        <source>Choose your content location</source>
+        <translation>Välj plats för din volym</translation>
+    </message>
+    <message>
         <source>Opening %1</source>
         <translation>Öppnar %1</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1080"/>
         <source>Do you want to exit %1 with a download in progress?</source>
         <translation>Vill du avsluta %1 med en nedladdning igång?</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1081"/>
         <source>If you close %1 now, this download will be cancelled.</source>
         <translation>Om du stänger %1 nu, avbryts nedladdningen.</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1086"/>
         <source>Close and cancel download</source>
         <translation>Stäng och avbryt nedladdning</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1087"/>
         <source>Wait for download to finish</source>
         <translation>Vänta på att nedladdning blir klar</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1158"/>
-        <source>&amp;Loading...</source>
-        <translation>&amp;Laddar...</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="1264"/>
-        <source>Leave &amp;Full Screen</source>
-        <translation>Lämna &amp;Helskärm</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="1718"/>
-        <source>%1 version %2 is now available.</source>
-        <translation>%1 version %2 är nu tillgänglig</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="1722"/>
-        <source>Remind me later</source>
-        <translation>Påminn mig senare</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="1723"/>
-        <source>Update</source>
-        <translation>Uppdatera</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="1127"/>
         <source>Error: %1</source>
         <translation>Fel: %1</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="300"/>
-        <source>P&amp;revious</source>
-        <translation>Fö&amp;regående</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="301"/>
-        <source>Go back to the previous track</source>
-        <translation>Gå tillbaka till föregående spår</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="335"/>
-        <source>&amp;Compact Mode</source>
-        <translation>Kompakt läge</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="348"/>
-        <source>Open the &amp;YouTube Page</source>
-        <translation>Öppna &amp;YouTube-sidan</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="355"/>
-        <source>Copy the YouTube &amp;Link</source>
-        <translation>Kopiera YouTube-&amp;Länk</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="362"/>
-        <source>Copy the Video Stream &amp;URL</source>
-        <translation>Kopiera videoströmmens &amp;URL</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="369"/>
-        <source>Find Video &amp;Parts</source>
-        <translation>Hitta Videodelar</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="397"/>
-        <source>&amp;Clear Recent Searches</source>
-        <translation>&amp;Rensa Senaste Sökningar</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="421"/>
-        <source>Make a &amp;Donation</source>
-        <translation>Gör en &amp;Donation</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="483"/>
-        <source>&amp;Manually Start Playing</source>
-        <translation>Starta Spela &amp;Manuellt</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="484"/>
-        <source>Manually start playing videos</source>
-        <translation>Starta Spela Videos Manuellt</translation>
+        <source>&amp;Pause</source>
+        <translation>&amp;Pausa</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="847"/>
-        <source>Choose your content location</source>
-        <translation>Välj plats för din volym</translation>
+        <source>Pause playback</source>
+        <translation>Pausa uppspelning</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="314"/>
-        <location filename="src/mainwindow.cpp" line="1142"/>
-        <location filename="src/mainwindow.cpp" line="1150"/>
-        <source>&amp;Play</source>
-        <translation>&amp;Spela</translation>
+        <source>&amp;Loading...</source>
+        <translation>&amp;Laddar...</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="315"/>
-        <location filename="src/mainwindow.cpp" line="1143"/>
-        <location filename="src/mainwindow.cpp" line="1151"/>
-        <source>Resume playback</source>
-        <translation>Återuppta uppspelning</translation>
+        <source>Leave &amp;Full Screen</source>
+        <translation>Lämna &amp;Helskärm</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1437"/>
         <source>Remaining time: %1</source>
         <translation>Återstående tid: %1</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1528"/>
         <source>Volume at %1%</source>
         <translation>Volym %1%</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1534"/>
         <source>Volume is muted</source>
         <translation>Ljudet är avstängt</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1537"/>
         <source>Volume is unmuted</source>
         <translation>Volymen är på</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1548"/>
         <source>Maximum video definition set to %1</source>
         <translation>Högsta videoupplösning är satt till %1</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1595"/>
         <source>Your privacy is now safe</source>
         <translation>Din integritet är nu säker</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1610"/>
         <source>Downloads complete</source>
         <translation>Nedladdningar klara</translation>
     </message>
+    <message>
+        <source>%1 version %2 is now available.</source>
+        <translation>%1 version %2 är nu tillgänglig</translation>
+    </message>
+    <message>
+        <source>Remind me later</source>
+        <translation>Påminn mig senare</translation>
+    </message>
+    <message>
+        <source>Update</source>
+        <translation>Uppdatera</translation>
+    </message>
 </context>
 <context>
     <name>MediaView</name>
     <message>
-        <location filename="src/mediaview.cpp" line="702"/>
         <source>You can now paste the YouTube link into another application</source>
         <translation>Nu kan du klistra in YouTube-länken i ett annat program</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="710"/>
         <source>You can now paste the video stream URL into another application</source>
         <translation>Du kan nu klistra in videoströmmens webbadress i ett annat program</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="711"/>
         <source>The link will be valid only for a limited time.</source>
         <translation>Länken kommer att gälla endast under en begränsad tid.</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="800"/>
         <source>This is just the demo version of %1.</source>
         <translation>Detta är bara en demoversion av %1.</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="801"/>
         <source>It allows you to test the application and see if it works for you.</source>
         <translation>Den tillåter dig att testa programmet och se om det fungerar för dig.</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="833"/>
+        <source>Get the full version</source>
+        <translation>Skaffa den fullständiga versionen</translation>
+    </message>
+    <message>
         <source>Continue</source>
         <translation>Fortsätt</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="988"/>
+        <source>Downloading %1</source>
+        <translation>Hämtar %1</translation>
+    </message>
+    <message>
         <source>of</source>
         <comment>Used in video parts, as in '2 of 3'</comment>
         <translation>av</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="1001"/>
         <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="1003"/>
         <source>episode</source>
         <comment>This is for video parts, as in 'Cool series - episode 1'</comment>
         <translation>avsnitt</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="1096"/>
         <source>Sent from %1</source>
         <translation>Skickad från %1</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="1128"/>
         <source>Unsubscribe from %1</source>
         <translation>Avbryt prenumeration från %1</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="1132"/>
         <source>Subscribe to %1</source>
         <translation>Prenumerera på %1</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="1166"/>
         <source>Unsubscribed from %1</source>
         <translation>Prenumeration avbruten från %1</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="1169"/>
         <source>Subscribed to %1</source>
         <translation>Prenumererad på %1</translation>
     </message>
-    <message>
-        <location filename="src/mediaview.cpp" line="808"/>
-        <source>Get the full version</source>
-        <translation>Skaffa den fullständiga versionen</translation>
-    </message>
-    <message>
-        <location filename="src/mediaview.cpp" line="847"/>
-        <source>Downloading %1</source>
-        <translation>Hämtar %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>En ny version av %1 Finns tillgänglig!</translation>
     </message>
     <message>
-        <location filename="local/src/updatedialog.cpp" line="28"/>
         <source>%1 %2 is now available. You have %3.</source>
         <translation>%1 %2 är nu tillgänglig. Du har %3.</translation>
     </message>
     <message>
-        <location filename="local/src/updatedialog.cpp" line="33"/>
         <source>Would you like to download it now?</source>
         <translation>Vill du ladda ner den nu?</translation>
     </message>
     <message>
-        <location filename="local/src/updatedialog.cpp" line="39"/>
         <source>Skip This Version</source>
         <translation>Hoppa Över Denna Version</translation>
     </message>
     <message>
-        <location filename="local/src/updatedialog.cpp" line="43"/>
         <source>Remind Me Later</source>
         <translation>Påminn mig senare</translation>
     </message>
     <message>
-        <location filename="local/src/updatedialog.cpp" line="47"/>
         <source>Install Update</source>
         <translation>Uppdatera</translation>
     </message>
 <context>
     <name>PasteLineEdit</name>
     <message>
-        <location filename="local/src/pastelineedit.cpp" line="6"/>
         <source>Paste</source>
         <translation>Klistra in</translation>
     </message>
 <context>
     <name>PlaylistItemDelegate</name>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="209"/>
         <source>%1 views</source>
         <translation>%1 visningar</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="309"/>
         <source>%1 of %2 (%3) — %4</source>
         <translation>%1 av %2 (%3) — %4</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="316"/>
         <source>Preparing</source>
         <translation>Förbereder</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="318"/>
         <source>Failed</source>
         <translation>Misslyckades</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="320"/>
         <source>Completed</source>
         <translation>Färdig</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="322"/>
         <source>Stopped</source>
         <translation>Stoppad</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="358"/>
         <source>Stop downloading</source>
         <translation>Stoppa nedladdning</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="368"/>
         <source>Show in %1</source>
         <translation>Visa i %1</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="370"/>
         <source>Open parent folder</source>
         <translation>Öppna ursprungsmappen</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="379"/>
         <source>Restart downloading</source>
         <translation>Starta om nedladdning</translation>
     </message>
 <context>
     <name>PlaylistModel</name>
     <message>
-        <location filename="src/playlistmodel.cpp" line="70"/>
         <source>Searching...</source>
         <translation>Söker...</translation>
     </message>
     <message>
-        <location filename="src/playlistmodel.cpp" line="71"/>
         <source>Show %1 More</source>
         <translation>Visa %1 Till</translation>
     </message>
     <message>
-        <location filename="src/playlistmodel.cpp" line="72"/>
         <source>No videos</source>
         <translation>Inga videos</translation>
     </message>
     <message>
-        <location filename="src/playlistmodel.cpp" line="73"/>
         <source>No more videos</source>
         <translation>Inga fler videor</translation>
     </message>
 <context>
     <name>RefineSearchWidget</name>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="49"/>
         <source>Sort by</source>
         <translation>Sortera enligt</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="53"/>
         <source>Relevance</source>
         <translation>Relevans</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="54"/>
-        <location filename="src/refinesearchwidget.cpp" line="69"/>
         <source>Date</source>
         <translation>Datum</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="55"/>
         <source>View Count</source>
         <translation>Mest sedda</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="56"/>
         <source>Rating</source>
         <translation>Betyg</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="73"/>
         <source>Anytime</source>
         <translation>När som helst</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="74"/>
         <source>Today</source>
         <translation>Idag</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="75"/>
         <source>7 Days</source>
         <translation>7 dagar</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="76"/>
         <source>30 Days</source>
         <translation>30 dagar</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="89"/>
         <source>Duration</source>
         <translation>Längd</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="93"/>
-        <location filename="src/refinesearchwidget.cpp" line="119"/>
         <source>All</source>
         <translation>Alla</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="94"/>
         <source>Short</source>
         <translation>Kort</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="95"/>
         <source>Medium</source>
         <translation>Mellan</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="96"/>
         <source>Long</source>
         <translation>Lång</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="99"/>
         <source>Less than 4 minutes</source>
         <translation>Kortare än 4 minuter</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="100"/>
         <source>Between 4 and 20 minutes</source>
         <translation>Mellan 4 och 20 minuter</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="101"/>
         <source>Longer than 20 minutes</source>
         <translation>Längre än 20 minuter</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="115"/>
         <source>Quality</source>
         <translation>Kvalitet</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="120"/>
         <source>High Definition</source>
         <translation>Hög Upplösning</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="123"/>
         <source>720p or higher</source>
         <translation>720p eller högre</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="136"/>
         <source>Done</source>
         <translation>Färdig</translation>
     </message>
 <context>
     <name>RegionsView</name>
     <message>
-        <location filename="src/regionsview.cpp" line="39"/>
         <source>Done</source>
         <translation>Färdig</translation>
     </message>
 <context>
     <name>SearchLineEdit</name>
     <message>
-        <location filename="src/searchlineedit.cpp" line="55"/>
         <source>Search</source>
         <translation>Sök</translation>
     </message>
 <context>
     <name>SearchView</name>
     <message>
-        <location filename="src/searchview.cpp" line="83"/>
         <source>Welcome to &lt;a href=&apos;%1&apos;&gt;%2&lt;/a&gt;,</source>
         <translation>Välkommen till &lt;a href=&apos;%1&apos;&gt;%2&lt;/a&gt;,</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="200"/>
-        <source>Get the full version</source>
-        <translation>Skaffa den kompletta versionen</translation>
-    </message>
-    <message>
-        <location filename="src/searchview.cpp" line="110"/>
         <source>Enter</source>
         <extracomment>&quot;Enter&quot;, as in &quot;type&quot;. The whole phrase says: &quot;Enter a keyword to start watching videos&quot;</extracomment>
         <translation>Ange</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="117"/>
         <source>a keyword</source>
         <translation>ett sökord</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="118"/>
         <source>a channel</source>
         <translation>en kanal</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="125"/>
         <source>to start watching videos.</source>
         <translation>för att börja titta på video.</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="156"/>
         <source>Watch</source>
         <translation>Titta</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="174"/>
         <source>Recent keywords</source>
         <translation>Senaste sökord</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="186"/>
         <source>Recent channels</source>
         <translation>Senaste kanaler</translation>
     </message>
+    <message>
+        <source>Get the full version</source>
+        <translation>Skaffa den kompletta versionen</translation>
+    </message>
 </context>
 <context>
     <name>SidebarHeader</name>
     <message>
-        <location filename="src/sidebarheader.cpp" line="38"/>
-        <location filename="src/sidebarheader.cpp" line="45"/>
         <source>&amp;Back</source>
         <translation>&amp;Tillbaka</translation>
     </message>
     <message>
-        <location filename="src/sidebarheader.cpp" line="76"/>
         <source>Forward to %1</source>
         <translation>Framåt till %1</translation>
     </message>
     <message>
-        <location filename="src/sidebarheader.cpp" line="89"/>
         <source>Back to %1</source>
         <translation>Tillbaka till %1</translation>
     </message>
 <context>
     <name>SidebarWidget</name>
     <message>
-        <location filename="src/sidebarwidget.cpp" line="68"/>
         <source>Refine Search</source>
         <translation>Förfinad sökning</translation>
     </message>
     <message>
-        <location filename="src/sidebarwidget.cpp" line="167"/>
         <source>Did you mean: %1</source>
         <translation>Menade du: %1</translation>
     </message>
 <context>
     <name>SnapshotSettings</name>
     <message>
-        <location filename="src/snapshotsettings.cpp" line="47"/>
         <source>Change location...</source>
         <translation>Byt plats ...</translation>
     </message>
     <message>
-        <location filename="src/snapshotsettings.cpp" line="64"/>
         <source>Snapshot saved to %1</source>
         <translation>Skärmbild sparad till %1</translation>
     </message>
     <message>
-        <location filename="src/snapshotsettings.cpp" line="117"/>
         <source>Snapshots location changed.</source>
         <translation>Plats för sparade skärmbilder ändrades.</translation>
     </message>
 <context>
     <name>StandardFeedsView</name>
     <message>
-        <location filename="src/standardfeedsview.cpp" line="107"/>
         <source>Most Popular</source>
         <translation>Mest Populär</translation>
     </message>
 </context>
+<context>
+    <name>UpdateDialog</name>
+    <message>
+        <source>Downloading update...</source>
+        <translation>Laddar ner uppdatering...</translation>
+    </message>
+    <message>
+        <source>Downloading %1...</source>
+        <translation type="unfinished"/>
+    </message>
+</context>
 <context>
     <name>Video</name>
     <message>
-        <location filename="src/video.cpp" line="287"/>
         <source>Cannot get video stream for %1</source>
         <translation>Kan inte få videoström för %1</translation>
     </message>
-    <message>
-        <location filename="src/video.cpp" line="292"/>
-        <source>Network error: %1 for %2</source>
-        <translation>Nätverksfel: %1 för %2</translation>
-    </message>
 </context>
 <context>
     <name>YTRegions</name>
     <message>
-        <location filename="src/ytregions.cpp" line="28"/>
         <source>Algeria</source>
         <translation>Algeriet</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="29"/>
         <source>Argentina</source>
         <translation>Argentina</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="30"/>
         <source>Australia</source>
         <translation>Australien</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="31"/>
         <source>Belgium</source>
         <translation>Belgien</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="32"/>
         <source>Brazil</source>
         <translation>Brasilien</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="33"/>
         <source>Canada</source>
         <translation>Kanada</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="34"/>
         <source>Chile</source>
         <translation>Chile</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="35"/>
         <source>Colombia</source>
         <translation>Colombia</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="36"/>
         <source>Czech Republic</source>
         <translation>Tjeckiska Republiken</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="37"/>
         <source>Egypt</source>
         <translation>Egypten</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="38"/>
         <source>France</source>
         <translation>Frankrike</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="39"/>
         <source>Germany</source>
         <translation>Tyskland</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="40"/>
         <source>Ghana</source>
         <translation>Ghana</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="41"/>
         <source>Greece</source>
         <translation>Grekland</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="42"/>
         <source>Hong Kong</source>
         <translation>Hongkong</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="43"/>
         <source>Hungary</source>
         <translation>Ungern</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="44"/>
         <source>India</source>
         <translation>Indien</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="45"/>
         <source>Indonesia</source>
         <translation>Indonesien</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="46"/>
         <source>Ireland</source>
         <translation>Irland</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="47"/>
         <source>Israel</source>
         <translation>Israel</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="48"/>
         <source>Italy</source>
         <translation>Italien</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="49"/>
         <source>Japan</source>
         <translation>Japan</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="50"/>
         <source>Jordan</source>
         <translation>Jordanien</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="51"/>
         <source>Kenya</source>
         <translation>Kenya</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="52"/>
         <source>Malaysia</source>
         <translation>Malaysia</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="53"/>
         <source>Mexico</source>
         <translation>Mexiko</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="54"/>
         <source>Morocco</source>
         <translation>Marocko</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="55"/>
         <source>Netherlands</source>
         <translation>Nederländerna</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="56"/>
         <source>New Zealand</source>
         <translation>Nya Zeeland</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="57"/>
         <source>Nigeria</source>
         <translation>Nigeria</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="58"/>
         <source>Peru</source>
         <translation>Peru</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="59"/>
         <source>Philippines</source>
         <translation>Filippinerna</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="60"/>
         <source>Poland</source>
         <translation>Polen</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="61"/>
         <source>Russia</source>
         <translation>Ryssland</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="62"/>
         <source>Saudi Arabia</source>
         <translation>Saudiarabien</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="63"/>
         <source>Singapore</source>
         <translation>Singapore</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="64"/>
         <source>South Africa</source>
         <translation>Sydafrika</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="65"/>
         <source>South Korea</source>
         <translation>Sydkorea</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="66"/>
         <source>Spain</source>
         <translation>Spanien</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="67"/>
         <source>Sweden</source>
         <translation>Sverige</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="68"/>
         <source>Taiwan</source>
         <translation>Taiwan</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="69"/>
         <source>Tunisia</source>
         <translation>Tunisien</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="70"/>
         <source>Turkey</source>
         <translation>Turkiet</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="71"/>
         <source>Uganda</source>
         <translation>Uganda</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="72"/>
         <source>United Arab Emirates</source>
         <translation>Förenade Arabemiraten</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="73"/>
         <source>United Kingdom</source>
         <translation>Storbritannien</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="74"/>
         <source>Yemen</source>
         <translation>Jemen</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="148"/>
         <source>Worldwide</source>
         <translation>Från Hela Världen</translation>
     </message>
index 7c89b9def10ba2b85128a145a306baeb799722f2..99814e2ca805ddfb2d770a9c0bd1c0d80bc83f70 100644 (file)
@@ -2,67 +2,42 @@
 <context>
     <name>AboutView</name>
     <message>
-        <location filename="src/aboutview.cpp" line="58"/>
         <source>There&apos;s life outside the browser!</source>
         <translation>มีชีวิตนอกเบราว์เซอร์!</translation>
     </message>
     <message>
-        <location filename="src/aboutview.cpp" line="59"/>
         <source>Version %1</source>
         <translation>เวอร์ชั่น %1</translation>
     </message>
     <message>
-        <location filename="src/aboutview.cpp" line="64"/>
         <source>Licensed to: %1</source>
         <translation>ถูกลงทะเบียนสู่: %1</translation>
     </message>
     <message>
-        <location filename="src/aboutview.cpp" line="68"/>
         <source>%1 is Free Software but its development takes precious time.</source>
         <translation>%1 เป็นโปรแกรมฟรีแต่การพัฒนามันจะต้องใช้เวลาเป็นอย่างมาก</translation>
     </message>
     <message>
-        <location filename="src/aboutview.cpp" line="69"/>
         <source>Please &lt;a href=&apos;%1&apos;&gt;donate&lt;/a&gt; to support the continued development of %2.</source>
         <translation>กรุณา &lt;a href=&apos;%1&apos;&gt;บริจาค&lt;/a&gt; เพื่อสนับสนุนการพัฒนาโปรแกรม %2 ต่อไป</translation>
     </message>
     <message>
-        <location filename="src/aboutview.cpp" line="73"/>
-        <source>You may want to try my other apps as well:</source>
-        <translation>คุณอาจอยากลองใช้แอปพลิเคชั่นอื่นของฉันเช่นกัน:</translation>
-    </message>
-    <message>
-        <location filename="src/aboutview.cpp" line="76"/>
-        <source>%1, a YouTube music player</source>
-        <translation>%1, เครื่องเล่นดนตรี YouTube</translation>
-    </message>
-    <message>
-        <location filename="src/aboutview.cpp" line="80"/>
-        <source>%1, a music player</source>
-        <translation>%1, เครื่องเล่นดนตรี</translation>
-    </message>
-    <message>
-        <location filename="src/aboutview.cpp" line="86"/>
         <source>Translate %1 to your native language using %2</source>
         <translation>แปล %1 สุ่ภาษาของคุณโดยใช้ %2</translation>
     </message>
     <message>
-        <location filename="src/aboutview.cpp" line="91"/>
         <source>Icon designed by %1.</source>
         <translation>ออกแบบไอคอนโดย %1</translation>
     </message>
     <message>
-        <location filename="src/aboutview.cpp" line="95"/>
         <source>Released under the &lt;a href=&apos;%1&apos;&gt;GNU General Public License&lt;/a&gt;</source>
         <translation>ปล่อยเผยแพร่ภายใต้ &lt;a href=&apos;%1&apos;&gt;GNU General Public License&lt;/a&gt;</translation>
     </message>
     <message>
-        <location filename="src/aboutview.cpp" line="110"/>
         <source>&amp;Close</source>
         <translation>&amp;ปิด</translation>
     </message>
     <message>
-        <location filename="src/aboutview.h" line="40"/>
         <source>About</source>
         <translation>เกี่ยวกับ</translation>
     </message>
 <context>
     <name>ActivationDialog</name>
     <message>
-        <location filename="local/src/activationdialog.cpp" line="17"/>
         <source>Enter your License Details</source>
         <translation>กรอกรายละเอียดใบอนุญาตของคุณ</translation>
     </message>
     <message>
-        <location filename="local/src/activationdialog.cpp" line="29"/>
         <source>&amp;Email:</source>
         <translation>&amp;อีเมล:</translation>
     </message>
     <message>
-        <location filename="local/src/activationdialog.cpp" line="35"/>
         <source>&amp;Code:</source>
         <translation>&amp;รหัส:</translation>
     </message>
 <context>
     <name>ActivationView</name>
     <message>
-        <location filename="local/src/activationview.cpp" line="47"/>
         <source>Please license %1</source>
         <translation>โปรดซื้อใบอนุญาต %1</translation>
     </message>
     <message>
-        <location filename="local/src/activationview.cpp" line="51"/>
         <source>This demo has expired.</source>
         <translation>ชุดทดลองใช้หมดอายุแล้ว</translation>
     </message>
     <message>
-        <location filename="local/src/activationview.cpp" line="53"/>
         <source>The full version allows you to watch videos without interruptions.</source>
-        <oldsource>The full version allows you to download videos longer than %1 minutes and to watch videos without interruptions.</oldsource>
         <translation>เวอร์ชั่นเต็มจะอนุญาตให้คุณรับชมวิดีโอโดยไม่ถูกขัดจังหวะ</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>
     </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>
     </message>
     <message>
-        <location filename="local/src/activationview.cpp" line="70"/>
         <source>Use Demo</source>
         <translation>ใช้ชุดทดลอง</translation>
     </message>
     <message>
-        <location filename="local/src/activationview.cpp" line="77"/>
         <source>Enter License</source>
         <translation>กรอกใบอนุญาต</translation>
     </message>
     <message>
-        <location filename="local/src/activationview.cpp" line="85"/>
         <source>Buy License</source>
         <translation>ซื้อใบอนุญาต</translation>
     </message>
 </context>
+<context>
+    <name>AppWidget</name>
+    <message>
+        <source>Download</source>
+        <translation type="unfinished"/>
+    </message>
+</context>
 <context>
     <name>ChannelAggregator</name>
     <message>
-        <location filename="src/channelaggregator.cpp" line="183"/>
         <source>By %1</source>
         <translation>โดย %1</translation>
     </message>
     <message numerus="yes">
-        <location filename="src/channelaggregator.cpp" line="185"/>
         <source>You have %n new video(s)</source>
         <translation type="unfinished"><numerusform></numerusform></translation>
     </message>
 <context>
     <name>ChannelItemDelegate</name>
     <message>
-        <location filename="src/channelitemdelegate.cpp" line="67"/>
         <source>All Videos</source>
         <translation>วิดีโอทั้งหมด</translation>
     </message>
     <message>
-        <location filename="src/channelitemdelegate.cpp" line="85"/>
         <source>Unwatched Videos</source>
         <translation>วิดีโอที่ไม่ได้รับชม</translation>
     </message>
 <context>
     <name>ChannelView</name>
     <message>
-        <location filename="src/channelview.cpp" line="151"/>
-        <source>Mark all as watched</source>
-        <translation>หมายเหตุทั้งหมดว่ารับชมแล้ว</translation>
-    </message>
-    <message>
-        <location filename="src/channelview.cpp" line="159"/>
-        <source>Show Updated</source>
-        <translation>แสดงอัพเดต</translation>
-    </message>
-    <message>
-        <location filename="src/channelview.cpp" line="103"/>
         <source>Name</source>
         <translation>ชื่อ</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="110"/>
         <source>Last Updated</source>
         <translation>ถูกอัพเดตล่าสุด</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="117"/>
         <source>Last Added</source>
         <translation>ถูกเพิ่มล่าสุด</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="124"/>
         <source>Last Watched</source>
         <translation>ถูกรับชมล่าสุด</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="131"/>
         <source>Most Watched</source>
         <translation>ถูกรับชมมากที่สุด</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="139"/>
         <source>Sort by</source>
         <translation>เรียงตาม</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="222"/>
+        <source>Mark all as watched</source>
+        <translation>หมายเหตุทั้งหมดว่ารับชมแล้ว</translation>
+    </message>
+    <message>
+        <source>Show Updated</source>
+        <translation>แสดงอัพเดต</translation>
+    </message>
+    <message>
         <source>All Videos</source>
         <translation>วิดีโอทั้งหมด</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="226"/>
         <source>Unwatched Videos</source>
         <translation>วิดีโอที่ไม่ได้รับชม</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="244"/>
         <source>Mark as Watched</source>
         <translation>หมายเหตุว่ารับชมแล้ว</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="257"/>
         <source>Unsubscribe</source>
         <translation>เลิกสมัครติดตาม</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="270"/>
         <source>There are no updated subscriptions at this time.</source>
         <translation>ไม่มีการสมัครติดตามที่อัพเดต ณ เวลานี้</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="272"/>
         <source>You have no subscriptions. Use the star symbol to subscribe to channels.</source>
         <translation>คุณไม่มีการสมัครติดตาม ใช้สัญลักษณ์ดาวเพื่อสมัครติดตามช่อง</translation>
     </message>
 <context>
     <name>ClearButton</name>
     <message>
-        <location filename="src/exlineedit.cpp" line="6"/>
         <source>Clear</source>
         <translation>ล้าง</translation>
     </message>
 <context>
     <name>DataUtils</name>
     <message>
-        <location filename="src/datautils.cpp" line="88"/>
         <source>Just now</source>
         <translation type="unfinished"/>
     </message>
     <message numerus="yes">
-        <location filename="src/datautils.cpp" line="90"/>
-        <source>%n minute(s) ago</source>
-        <translation type="unfinished"><numerusform></numerusform></translation>
-    </message>
-    <message numerus="yes">
-        <location filename="src/datautils.cpp" line="92"/>
         <source>%n hour(s) ago</source>
         <translation type="unfinished"><numerusform></numerusform></translation>
     </message>
     <message numerus="yes">
-        <location filename="src/datautils.cpp" line="94"/>
         <source>%n day(s) ago</source>
         <translation type="unfinished"><numerusform></numerusform></translation>
     </message>
     <message numerus="yes">
-        <location filename="src/datautils.cpp" line="96"/>
         <source>%n weeks(s) ago</source>
         <translation type="unfinished"><numerusform></numerusform></translation>
     </message>
     <message numerus="yes">
-        <location filename="src/datautils.cpp" line="98"/>
         <source>%n month(s) ago</source>
         <translation type="unfinished"><numerusform></numerusform></translation>
     </message>
 <context>
     <name>DownloadItem</name>
     <message>
-        <location filename="src/downloaditem.cpp" line="406"/>
         <source>bytes</source>
         <translation>bytes</translation>
     </message>
     <message>
-        <location filename="src/downloaditem.cpp" line="409"/>
         <source>KB</source>
         <translation>KB</translation>
     </message>
     <message>
-        <location filename="src/downloaditem.cpp" line="412"/>
         <source>MB</source>
         <translation>MB</translation>
     </message>
     <message>
-        <location filename="src/downloaditem.cpp" line="421"/>
         <source>bytes/sec</source>
         <translation>bytes/sec</translation>
     </message>
     <message>
-        <location filename="src/downloaditem.cpp" line="424"/>
         <source>KB/sec</source>
         <translation>KB/sec</translation>
     </message>
     <message>
-        <location filename="src/downloaditem.cpp" line="427"/>
         <source>MB/sec</source>
         <translation>MB/sec</translation>
     </message>
     <message>
-        <location filename="src/downloaditem.cpp" line="433"/>
         <source>seconds</source>
         <translation>วินาที</translation>
     </message>
     <message>
-        <location filename="src/downloaditem.cpp" line="436"/>
         <source>minutes</source>
         <translation>นาที</translation>
     </message>
     <message>
-        <location filename="src/downloaditem.cpp" line="439"/>
         <source>%4 %5 remaining</source>
         <translation>%4 %5 ที่เหลืออยู่</translation>
     </message>
 <context>
     <name>DownloadManager</name>
     <message>
-        <location filename="src/downloadmanager.cpp" line="77"/>
         <source>This is just the demo version of %1.</source>
         <translation>นี้เป็นแค่เวอร์ชั่นทดลองใช้ของ %1</translation>
     </message>
     <message>
-        <location filename="src/downloadmanager.cpp" line="79"/>
         <source>It can only download videos shorter than %1 minutes so you can test the download functionality.</source>
         <translation>สามารถดาวน์โหลดวิดึโอส้ันๆกว่า %1 นาที เพื่อทดสอบฟังชั่นดาวน์โหลด</translation>
     </message>
     <message>
-        <location filename="src/downloadmanager.cpp" line="85"/>
         <source>Continue</source>
         <translation>ต่อไป</translation>
     </message>
     <message>
-        <location filename="src/downloadmanager.cpp" line="86"/>
         <source>Get the full version</source>
         <translation>รับเวอร์ชั่นเต็ม</translation>
     </message>
     <message>
-        <location filename="src/downloadmanager.cpp" line="157"/>
         <source>%1 downloaded in %2</source>
         <translation>%1 ถูกดาวน์โหลดใน %2</translation>
     </message>
     <message>
-        <location filename="src/downloadmanager.cpp" line="160"/>
         <source>Download finished</source>
         <translation>ดาวน์โหลดเสร็จสิ้น</translation>
     </message>
     <message numerus="yes">
-        <location filename="src/downloadmanager.cpp" line="165"/>
         <source>%n Download(s)</source>
         <translation type="unfinished"><numerusform></numerusform></translation>
     </message>
 <context>
     <name>DownloadSettings</name>
     <message>
-        <location filename="src/downloadsettings.cpp" line="36"/>
         <source>Change location...</source>
         <translation>เปลี่ยนที่ตั้ง...</translation>
     </message>
     <message>
-        <location filename="src/downloadsettings.cpp" line="69"/>
         <source>Choose the download location</source>
         <translation>เลือกที่ตั้งการดาวน์โหลด</translation>
     </message>
     <message>
-        <location filename="src/downloadsettings.cpp" line="81"/>
         <source>Download location changed.</source>
         <translation>ที่ตั้งการดาวน์โหลดถูกเปลี่ยน</translation>
     </message>
     <message>
-        <location filename="src/downloadsettings.cpp" line="83"/>
         <source>Current downloads will still go in the previous location.</source>
         <translation>การดาวน์โหลดปัจจุบันจะยังคงไปสู่ที่ตั้งก่อนหน้านี้</translation>
     </message>
     <message>
-        <location filename="src/downloadsettings.cpp" line="94"/>
         <source>Downloading to: %1</source>
         <translation>กำลังดาวน์โหลดสู่: %1</translation>
     </message>
 <context>
     <name>DownloadView</name>
     <message>
-        <location filename="src/downloadview.cpp" line="38"/>
-        <location filename="src/downloadview.h" line="45"/>
         <source>Downloads</source>
         <translation>ดาวน์โหลด</translation>
     </message>
 </context>
-<context>
-    <name>DownloadWidget</name>
-    <message>
-        <location filename="local/src/updatedialog.cpp" line="60"/>
-        <source>Downloading update...</source>
-        <translation>กำลังดาวน์โหลดอัพเดต...</translation>
-    </message>
-</context>
 <context>
     <name>Extra</name>
     <message>
-        <location filename="local/src/extra.cpp" line="251"/>
         <source>The executable file has been tempered with, maybe by a virus.</source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="local/src/extra.cpp" line="252"/>
         <source>%1 will not run. Try installing again.</source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="local/src/extra.cpp" line="253"/>
         <source>Quit</source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="local/src/extra.cpp" line="254"/>
         <source>Reinstall</source>
         <translation type="unfinished"/>
     </message>
 <context>
     <name>GlobalShortcuts</name>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="36"/>
         <source>Play</source>
         <translation>เล่น</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="37"/>
         <source>Pause</source>
         <translation>พัก</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="38"/>
         <source>Play/Pause</source>
         <translation>เล่น/พัก</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="39"/>
         <source>Stop</source>
         <translation>หยุด</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="40"/>
         <source>Stop playing after current track</source>
         <translation>หยุดเล่นหลังจากแทร็คปัจจุบัน</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="41"/>
         <source>Next track</source>
         <translation>แทร็คต่อไป</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="42"/>
         <source>Previous track</source>
         <translation>แทร็คก่อนหน้า</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="43"/>
         <source>Increase volume</source>
         <translation>เพิ่มความดัง</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="44"/>
         <source>Decrease volume</source>
         <translation>ลดความดัง</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="45"/>
         <source>Mute</source>
         <translation>เงียบ</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="46"/>
         <source>Seek forward</source>
         <translation>หาเดินหน้า</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="47"/>
         <source>Seek backward</source>
         <translation>หาย้อนกลับ</translation>
     </message>
 <context>
     <name>HomeView</name>
     <message>
-        <location filename="src/homeview.cpp" line="58"/>
         <source>Search</source>
         <translation>ค้นหา</translation>
     </message>
     <message>
-        <location filename="src/homeview.cpp" line="60"/>
         <source>Find videos and channels by keyword</source>
         <translation>ค้นหาวิดีโอและช่องโดยใช้คำสำคัญ</translation>
     </message>
     <message>
-        <location filename="src/homeview.cpp" line="65"/>
         <source>Browse</source>
         <translation>เรียกดู</translation>
     </message>
     <message>
-        <location filename="src/homeview.cpp" line="67"/>
         <source>Browse videos by category</source>
         <translation>เรียกดูวิดีโอตามหมวดหมู่</translation>
     </message>
     <message>
-        <location filename="src/homeview.cpp" line="71"/>
         <source>Subscriptions</source>
         <translation>การสมัครติดตาม</translation>
     </message>
     <message>
-        <location filename="src/homeview.cpp" line="73"/>
         <source>Channel subscriptions</source>
         <translation>การสมัครติดตามช่อง</translation>
     </message>
     <message>
-        <location filename="src/homeview.h" line="44"/>
         <source>Make yourself comfortable</source>
         <translation>ทำตัวเองให้สบาย</translation>
     </message>
 <context>
     <name>LoadingWidget</name>
     <message>
-        <location filename="src/loadingwidget.cpp" line="125"/>
         <source>Error</source>
         <translation>ผิดพลาด</translation>
     </message>
 <context>
     <name>MainWindow</name>
     <message>
-        <location filename="src/mainwindow.cpp" line="291"/>
+        <source>&amp;Window</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <source>&amp;Minimize</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
         <source>&amp;Stop</source>
         <translation>&amp;หยุด</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="292"/>
         <source>Stop playback and go back to the search view</source>
         <translation>หยุดเล่นและกลับสู่มุมมองการค้นหา</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="307"/>
+        <source>P&amp;revious</source>
+        <translation>&amp;ก่อนหน้า</translation>
+    </message>
+    <message>
+        <source>Go back to the previous track</source>
+        <translation>กลับไปที่แทร็คก่อนหน้า</translation>
+    </message>
+    <message>
         <source>S&amp;kip</source>
         <translation>&amp;ข้าม</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="308"/>
         <source>Skip to the next video</source>
         <translation>ข้ามสู่วิดีโอถัดไปไป</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1134"/>
-        <source>&amp;Pause</source>
-        <translation>&amp;พัก</translation>
+        <source>&amp;Play</source>
+        <translation>เ&amp;ล่น</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1135"/>
-        <source>Pause playback</source>
-        <translation>พักการเล่น</translation>
+        <source>Resume playback</source>
+        <translation>เล่นต่อจากเดิม</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="321"/>
         <source>&amp;Full Screen</source>
         <translation>เ&amp;ต็มจอ</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="322"/>
         <source>Go full screen</source>
         <translation>ทำให้เต็มจอ</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="336"/>
+        <source>&amp;Compact Mode</source>
+        <translation>โหมด&amp;กะทัดรัด</translation>
+    </message>
+    <message>
         <source>Hide the playlist and the toolbar</source>
         <translation>ซ่อนบัญชีการเล่นและแถบเครื่องมือ</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="349"/>
+        <source>Open the &amp;YouTube Page</source>
+        <translation>เ&amp;ปิดหน้า Youtube</translation>
+    </message>
+    <message>
         <source>Go to the YouTube video page and pause playback</source>
         <translation>ไปที่หน้าวิดีโอ YouTube และพักการเล่น</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="356"/>
+        <source>Copy the YouTube &amp;Link</source>
+        <translation>คัดลอก&amp;ลิงค์ Youtube</translation>
+    </message>
+    <message>
         <source>Copy the current video YouTube link to the clipboard</source>
         <translation>คัดลอกลิงค์วิดีโอ YouTube ในปัจจุบันไปยังคลิปบอร์ด</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="363"/>
+        <source>Copy the Video Stream &amp;URL</source>
+        <translation>คัดลอก &amp;URL ของกระแสวิดีโอ</translation>
+    </message>
+    <message>
         <source>Copy the current video stream URL to the clipboard</source>
         <translation>คัดลอก URL กระแสวิดีโอปัจจุบันสู่คลิปบอร์ด</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="370"/>
+        <source>Find Video &amp;Parts</source>
+        <translation>ค้นหา&amp;ตอนของวิดีโอ</translation>
+    </message>
+    <message>
         <source>Find other video parts hopefully in the right order</source>
         <translation>ค้นหาตอนอื่นๆของวิดีโอ โดยหวังตามลำดับที่ถูกต้อง</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="376"/>
         <source>&amp;Remove</source>
         <translation>&amp;ลบออก</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="377"/>
         <source>Remove the selected videos from the playlist</source>
         <translation>ลบวิดีโอที่เลือกออกจากบัญชีการเล่น</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="383"/>
         <source>Move &amp;Up</source>
         <translation>ย้าย&amp;ขึ้น</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="384"/>
         <source>Move up the selected videos in the playlist</source>
         <translation>เลื่อนวิดีโอที่เลือกขึ้นบน ในบัญชีการเล่น</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="390"/>
         <source>Move &amp;Down</source>
         <translation>ย้าย&amp;ลง</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="391"/>
         <source>Move down the selected videos in the playlist</source>
         <translation>เลื่อนวิดีโอที่เลือกลงล่าง ในบัญชีการเล่น</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="402"/>
+        <source>&amp;Clear Recent Searches</source>
+        <translation>&amp;ล้างการค้นหาเมื่อเร็วๆนี้</translation>
+    </message>
+    <message>
         <source>Clear the search history. Cannot be undone.</source>
         <translation>การล้างประวัติการค้นหา ไม่สามารถเลิกทำได้</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="407"/>
         <source>&amp;Quit</source>
         <translation>&amp;ออก</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="410"/>
         <source>Bye</source>
         <translation>ลาก่อน</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="414"/>
         <source>&amp;Website</source>
         <translation>เ&amp;ว็บไซต์</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="416"/>
         <source>%1 on the Web</source>
         <translation>%1 บนเว็บ</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="422"/>
+        <source>Make a &amp;Donation</source>
+        <translation>ทำการ&amp;บริจาค</translation>
+    </message>
+    <message>
         <source>Please support the continued development of %1</source>
         <translation>กรุณาสนับสนุนการพัฒนาอย่างต่อเนื่องของ %1</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="427"/>
         <source>&amp;About</source>
         <translation>&amp;เกี่ยวกับ</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="429"/>
         <source>Info about %1</source>
         <translation>ข้อมูลเกี่ยวกับ %1</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="437"/>
         <source>Search</source>
         <translation>ค้นหา</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="456"/>
         <source>Mute volume</source>
         <translation>เงียบเสียง</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="490"/>
-        <location filename="src/mainwindow.cpp" line="1609"/>
+        <source>&amp;Manually Start Playing</source>
+        <translation>เ&amp;ริ่มการเล่นด้วยตนเอง</translation>
+    </message>
+    <message>
+        <source>Manually start playing videos</source>
+        <translation>เริ่มการเล่นวิดีโอด้วยตนเอง</translation>
+    </message>
+    <message>
         <source>&amp;Downloads</source>
         <translation>&amp;ดาวน์โหลด</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="491"/>
         <source>Show details about video downloads</source>
         <translation>แสดงข้อมูลของวิดีโอที่ดาวน์โหลด</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="499"/>
         <source>&amp;Download</source>
         <translation>&amp;ดาวน์โหลด</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="500"/>
         <source>Download the current video</source>
         <translation>ดาวน์โหลดวิดีโอปัจจุบัน</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="510"/>
         <source>Take &amp;Snapshot</source>
         <translation>&amp;ถ่ายภาพ</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="517"/>
         <source>&amp;Subscribe to Channel</source>
         <translation>&amp;สมัครติดตามช่อง</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="525"/>
         <source>Share the current video using %1</source>
         <translation>แชร์วิดีโอปัจจุบันโดยใช้ %1</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="545"/>
         <source>&amp;Email</source>
         <translation>&amp;อีเมล</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="546"/>
         <source>Email</source>
         <translation>อีเมล</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="551"/>
         <source>&amp;Close</source>
         <translation>&amp;ปิด</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="561"/>
         <source>&amp;Float on Top</source>
         <translation>&amp;วางอยู่บนสุด</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="566"/>
         <source>&amp;Adjust Window Size</source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="571"/>
         <source>&amp;Stop After This Video</source>
         <translation>&amp;หยุดหลังจากวิดีโอนี้</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="578"/>
         <source>&amp;Report an Issue...</source>
         <translation>&amp;รายงานปัญหา...</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="582"/>
         <source>&amp;Refine Search...</source>
         <translation>&amp;ค้นหาโดยละเอียด...</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="594"/>
         <source>More...</source>
         <translation>เพิ่มเติม...</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="597"/>
         <source>&amp;Related Videos</source>
         <translation>&amp;วิดีโอที่เกี่ยวข้อง</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="599"/>
         <source>Watch videos related to the current one</source>
         <translation>รับชมวิดีโอที่เกี่ยวข้องกับรายการปัจจุบัน</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="605"/>
         <source>Open in &amp;Browser...</source>
         <translation>เปิดในเ&amp;บราว์เซอร์...</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="612"/>
-        <source>&amp;Love %1? Rate it!</source>
-        <translation>&amp;ชอบ %1 มั้ย? ให้คะแนนมันหน่อย!</translation>
+        <source>Restricted Mode</source>
+        <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="633"/>
-        <source>&amp;Application</source>
-        <translation>&amp;แอปพลิเคชั่น</translation>
+        <source>Hide videos that may contain inappropriate content</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <source>&amp;Love %1? Rate it!</source>
+        <translation>&amp;ชอบ %1 มั้ย? ให้คะแนนมันหน่อย!</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="618"/>
         <source>Buy %1...</source>
         <translation>ซื้อ %1...</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="647"/>
+        <source>&amp;Application</source>
+        <translation>&amp;แอปพลิเคชั่น</translation>
+    </message>
+    <message>
         <source>&amp;Playback</source>
         <translation>การเ&amp;ล่น</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="661"/>
         <source>&amp;Playlist</source>
         <translation>&amp;บัญชีการเล่น</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="670"/>
         <source>&amp;Video</source>
         <translation>&amp;วิดีโอ</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="686"/>
-        <source>&amp;View</source>
-        <translation>&amp;มุมมอง</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="695"/>
         <source>&amp;Share</source>
         <translation>แ&amp;บ่งปัน</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="709"/>
+        <source>&amp;View</source>
+        <translation>&amp;มุมมอง</translation>
+    </message>
+    <message>
         <source>&amp;Help</source>
         <translation>&amp;ช่วยเหลือ</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="751"/>
         <source>Press %1 to raise the volume, %2 to lower it</source>
         <translation>กด %1 เพื่อเพิ่มเสียง กด %2 เพื่อลดเสียง</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1021"/>
-        <location filename="src/mainwindow.cpp" line="1027"/>
+        <source>Choose your content location</source>
+        <translation>เลือกที่ตั้งเนื้อหาของคุณ</translation>
+    </message>
+    <message>
         <source>Opening %1</source>
         <translation>กำลังเปิด %1</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1080"/>
         <source>Do you want to exit %1 with a download in progress?</source>
         <translation>คุณจะออกจาก %1 โดยที่การดาวน์โหลดกำลังดำเนินอยู่หรือ?</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1081"/>
         <source>If you close %1 now, this download will be cancelled.</source>
         <translation>ถ้าคุณปิด %1 ตอนนี้ การดาวน์โหลดจะถูกยกเลิก</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1086"/>
         <source>Close and cancel download</source>
         <translation>ปิดและยกเลิกการดาวน์โหลด</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1087"/>
         <source>Wait for download to finish</source>
         <translation>รอให้ดาวน์โหลดเสร็จ</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1158"/>
-        <source>&amp;Loading...</source>
-        <translation type="unfinished"/>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="1264"/>
-        <source>Leave &amp;Full Screen</source>
-        <translation>ออกจากแบบเ&amp;ต็มจอ</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="1718"/>
-        <source>%1 version %2 is now available.</source>
-        <translation>%1 เวอร์ชั่น %2 ตอนนี้มีพร้อมใช้</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="1722"/>
-        <source>Remind me later</source>
-        <translation>แจ้งฉันภายหลัง</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="1723"/>
-        <source>Update</source>
-        <translation>อัพเดต</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="1127"/>
         <source>Error: %1</source>
         <translation>ผิดพลาด: %1</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="300"/>
-        <source>P&amp;revious</source>
-        <translation>&amp;ก่อนหน้า</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="301"/>
-        <source>Go back to the previous track</source>
-        <translation>กลับไปที่แทร็คก่อนหน้า</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="335"/>
-        <source>&amp;Compact Mode</source>
-        <translation>โหมด&amp;กะทัดรัด</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="348"/>
-        <source>Open the &amp;YouTube Page</source>
-        <translation>เ&amp;ปิดหน้า Youtube</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="355"/>
-        <source>Copy the YouTube &amp;Link</source>
-        <translation>คัดลอก&amp;ลิงค์ Youtube</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="362"/>
-        <source>Copy the Video Stream &amp;URL</source>
-        <translation>คัดลอก &amp;URL ของกระแสวิดีโอ</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="369"/>
-        <source>Find Video &amp;Parts</source>
-        <translation>ค้นหา&amp;ตอนของวิดีโอ</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="397"/>
-        <source>&amp;Clear Recent Searches</source>
-        <translation>&amp;ล้างการค้นหาเมื่อเร็วๆนี้</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="421"/>
-        <source>Make a &amp;Donation</source>
-        <translation>ทำการ&amp;บริจาค</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="483"/>
-        <source>&amp;Manually Start Playing</source>
-        <translation>เ&amp;ริ่มการเล่นด้วยตนเอง</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="484"/>
-        <source>Manually start playing videos</source>
-        <translation>เริ่มการเล่นวิดีโอด้วยตนเอง</translation>
+        <source>&amp;Pause</source>
+        <translation>&amp;พัก</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="847"/>
-        <source>Choose your content location</source>
-        <translation>เลือกที่ตั้งเนื้อหาของคุณ</translation>
+        <source>Pause playback</source>
+        <translation>พักการเล่น</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="314"/>
-        <location filename="src/mainwindow.cpp" line="1142"/>
-        <location filename="src/mainwindow.cpp" line="1150"/>
-        <source>&amp;Play</source>
-        <translation>เ&amp;ล่น</translation>
+        <source>&amp;Loading...</source>
+        <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="315"/>
-        <location filename="src/mainwindow.cpp" line="1143"/>
-        <location filename="src/mainwindow.cpp" line="1151"/>
-        <source>Resume playback</source>
-        <translation>เล่นต่อจากเดิม</translation>
+        <source>Leave &amp;Full Screen</source>
+        <translation>ออกจากแบบเ&amp;ต็มจอ</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1437"/>
         <source>Remaining time: %1</source>
         <translation>เวลาที่เหลือ: %1</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1528"/>
         <source>Volume at %1%</source>
         <translation>ความดังเสียงที่ %1%</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1534"/>
         <source>Volume is muted</source>
         <translation>เสียงถูกปิด</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1537"/>
         <source>Volume is unmuted</source>
         <translation>เสียงถูกเปิด</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1548"/>
         <source>Maximum video definition set to %1</source>
         <translation>ใช้วิดีโอความละเอียดสูงสุด %1</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1595"/>
         <source>Your privacy is now safe</source>
         <translation>ความเป็นส่วนตัวของคุณขณะนี้ปลอดภัย</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1610"/>
         <source>Downloads complete</source>
         <translation>ดาวน์โหลดเสร็จ</translation>
     </message>
+    <message>
+        <source>%1 version %2 is now available.</source>
+        <translation>%1 เวอร์ชั่น %2 ตอนนี้มีพร้อมใช้</translation>
+    </message>
+    <message>
+        <source>Remind me later</source>
+        <translation>แจ้งฉันภายหลัง</translation>
+    </message>
+    <message>
+        <source>Update</source>
+        <translation>อัพเดต</translation>
+    </message>
 </context>
 <context>
     <name>MediaView</name>
     <message>
-        <location filename="src/mediaview.cpp" line="702"/>
         <source>You can now paste the YouTube link into another application</source>
         <translation>ตอนนี้คุณสามารถวางลิงค์ของ YouTube ในแอปพลิเคชั่นอื่นได้</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="710"/>
         <source>You can now paste the video stream URL into another application</source>
         <translation>ตอนนี้คุณสามารถวาง URL ของกระแสวิดีโอลงในแอปพลิเคชั่นอื่นได้</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="711"/>
         <source>The link will be valid only for a limited time.</source>
         <translation>ลิงค์จะใช้ได้ในระยะเวลาที่จำกัดเท่านั้น</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="800"/>
         <source>This is just the demo version of %1.</source>
         <translation>นี้เป็นแค่เวอร์ชั่นทดลองใช้ %1.</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="801"/>
         <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="833"/>
+        <source>Get the full version</source>
+        <translation>ทำให้เป็นเวอร์ชั่นเต็ม</translation>
+    </message>
+    <message>
         <source>Continue</source>
         <translation>ต่อไป</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="988"/>
+        <source>Downloading %1</source>
+        <translation>กำลังดาวน์โหลด %1</translation>
+    </message>
+    <message>
         <source>of</source>
         <comment>Used in video parts, as in '2 of 3'</comment>
         <translation>จาก</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="1001"/>
         <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="1003"/>
         <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="1096"/>
         <source>Sent from %1</source>
         <translation>ถูกส่งจาก %1</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="1128"/>
         <source>Unsubscribe from %1</source>
         <translation>เลิกสมัครติดตามจาก %1</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="1132"/>
         <source>Subscribe to %1</source>
         <translation>สมัครติดตามสู่ %1</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="1166"/>
         <source>Unsubscribed from %1</source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="1169"/>
         <source>Subscribed to %1</source>
         <translation type="unfinished"/>
     </message>
-    <message>
-        <location filename="src/mediaview.cpp" line="808"/>
-        <source>Get the full version</source>
-        <translation>ทำให้เป็นเวอร์ชั่นเต็ม</translation>
-    </message>
-    <message>
-        <location filename="src/mediaview.cpp" line="847"/>
-        <source>Downloading %1</source>
-        <translation>กำลังดาวน์โหลด %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>เวอร์ชั่นใหม่ของ %1 มีพร้อมแล้ว!</translation>
     </message>
     <message>
-        <location filename="local/src/updatedialog.cpp" line="28"/>
         <source>%1 %2 is now available. You have %3.</source>
         <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>คุณอยากจะดาวน์โหลดตอนนี้หรือไม่?</translation>
     </message>
     <message>
-        <location filename="local/src/updatedialog.cpp" line="39"/>
         <source>Skip This Version</source>
         <translation>ข้ามเวอร์ชั่นนี้</translation>
     </message>
     <message>
-        <location filename="local/src/updatedialog.cpp" line="43"/>
         <source>Remind Me Later</source>
         <translation>แจ้งฉันภายหลัง</translation>
     </message>
     <message>
-        <location filename="local/src/updatedialog.cpp" line="47"/>
         <source>Install Update</source>
         <translation>ติดตั้งอัพเดต</translation>
     </message>
 <context>
     <name>PasteLineEdit</name>
     <message>
-        <location filename="local/src/pastelineedit.cpp" line="6"/>
         <source>Paste</source>
         <translation>วาง</translation>
     </message>
 <context>
     <name>PlaylistItemDelegate</name>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="209"/>
         <source>%1 views</source>
         <translation>ดู %1 ครั้ง </translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="309"/>
         <source>%1 of %2 (%3) — %4</source>
         <translation>%1 ของ %2 (%3) — %4</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="316"/>
         <source>Preparing</source>
         <translation>กำลังเตรียม</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="318"/>
         <source>Failed</source>
         <translation>ล้มเหลว</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="320"/>
         <source>Completed</source>
         <translation>เสร็จสมบูรณ์</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="322"/>
         <source>Stopped</source>
         <translation>ถูกหยุด</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="358"/>
         <source>Stop downloading</source>
         <translation>หยุดการดาวน์โหลด</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="368"/>
         <source>Show in %1</source>
         <translation>แสดงใน %1</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="370"/>
         <source>Open parent folder</source>
         <translation>เปิดโฟลเดอร์แม่</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="379"/>
         <source>Restart downloading</source>
         <translation>เริ่มดาวน์โหลดใหม่</translation>
     </message>
 <context>
     <name>PlaylistModel</name>
     <message>
-        <location filename="src/playlistmodel.cpp" line="70"/>
         <source>Searching...</source>
         <translation>กำลังค้นหา...</translation>
     </message>
     <message>
-        <location filename="src/playlistmodel.cpp" line="71"/>
         <source>Show %1 More</source>
         <translation>แสดง %1 เพิ่มเติม</translation>
     </message>
     <message>
-        <location filename="src/playlistmodel.cpp" line="72"/>
         <source>No videos</source>
         <translation>ไม่มีวิดีโอ</translation>
     </message>
     <message>
-        <location filename="src/playlistmodel.cpp" line="73"/>
         <source>No more videos</source>
         <translation>ไม่มีวิดีโอเพิ่มเติม</translation>
     </message>
 <context>
     <name>RefineSearchWidget</name>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="49"/>
         <source>Sort by</source>
         <translation>เรียงตาม</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="53"/>
         <source>Relevance</source>
         <translation>ความเกี่ยวข้อง</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="54"/>
-        <location filename="src/refinesearchwidget.cpp" line="69"/>
         <source>Date</source>
         <translation>วันที่</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="55"/>
         <source>View Count</source>
         <translation>จำนวนการดู</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="56"/>
         <source>Rating</source>
         <translation>คะแนน</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="73"/>
         <source>Anytime</source>
         <translation>เวลาใดๆ</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="74"/>
         <source>Today</source>
         <translation>วันนี้</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="75"/>
         <source>7 Days</source>
         <translation>7 วัน</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="76"/>
         <source>30 Days</source>
         <translation>30 วัน</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="89"/>
         <source>Duration</source>
         <translation>ระยะเวลา</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="93"/>
-        <location filename="src/refinesearchwidget.cpp" line="119"/>
         <source>All</source>
         <translation>ทั้งหมด</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="94"/>
         <source>Short</source>
         <translation>สั้น</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="95"/>
         <source>Medium</source>
         <translation>ปานกลาง</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="96"/>
         <source>Long</source>
         <translation>ยาว</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="99"/>
         <source>Less than 4 minutes</source>
         <translation>น้อยกว่า 4 นาที</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="100"/>
         <source>Between 4 and 20 minutes</source>
         <translation>ระหว่าง 4 ถึง 20 นาที</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="101"/>
         <source>Longer than 20 minutes</source>
         <translation>ยาวกว่า 20 นาที</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="115"/>
         <source>Quality</source>
         <translation>คุณภาพ</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="120"/>
         <source>High Definition</source>
         <translation>ความละเอียดสูง</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="123"/>
         <source>720p or higher</source>
         <translation>720p หรือสูงกว่า</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="136"/>
         <source>Done</source>
         <translation>เสร็จแล้ว</translation>
     </message>
 <context>
     <name>RegionsView</name>
     <message>
-        <location filename="src/regionsview.cpp" line="39"/>
         <source>Done</source>
         <translation>เสร็จแล้ว</translation>
     </message>
 <context>
     <name>SearchLineEdit</name>
     <message>
-        <location filename="src/searchlineedit.cpp" line="55"/>
         <source>Search</source>
         <translation>ค้นหา</translation>
     </message>
 <context>
     <name>SearchView</name>
     <message>
-        <location filename="src/searchview.cpp" line="83"/>
         <source>Welcome to &lt;a href=&apos;%1&apos;&gt;%2&lt;/a&gt;,</source>
         <translation>ยินดีต้อนรับสู่ &lt;a href=&apos;%1&apos;&gt;%2&lt;/a&gt;,</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="200"/>
-        <source>Get the full version</source>
-        <translation>ซื้อเวอร์ชั่นเต็ม</translation>
-    </message>
-    <message>
-        <location filename="src/searchview.cpp" line="110"/>
         <source>Enter</source>
         <extracomment>&quot;Enter&quot;, as in &quot;type&quot;. The whole phrase says: &quot;Enter a keyword to start watching videos&quot;</extracomment>
         <translation>ตกลง</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="117"/>
         <source>a keyword</source>
         <translation>คำสำคัญ</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="118"/>
         <source>a channel</source>
         <translation>ช่อง</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="125"/>
         <source>to start watching videos.</source>
         <translation>เพื่อเริ่มรับชมวิดีโอ</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="156"/>
         <source>Watch</source>
         <translation>รับชม</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="174"/>
         <source>Recent keywords</source>
         <translation>คำสำคัญเมื่อเร็วๆนี้</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="186"/>
         <source>Recent channels</source>
         <translation>ช่องเมื่อเร็วๆนี้</translation>
     </message>
+    <message>
+        <source>Get the full version</source>
+        <translation>ซื้อเวอร์ชั่นเต็ม</translation>
+    </message>
 </context>
 <context>
     <name>SidebarHeader</name>
     <message>
-        <location filename="src/sidebarheader.cpp" line="38"/>
-        <location filename="src/sidebarheader.cpp" line="45"/>
         <source>&amp;Back</source>
         <translation>&amp;กลับ</translation>
     </message>
     <message>
-        <location filename="src/sidebarheader.cpp" line="76"/>
         <source>Forward to %1</source>
         <translation>เดินหน้าสู่ %1</translation>
     </message>
     <message>
-        <location filename="src/sidebarheader.cpp" line="89"/>
         <source>Back to %1</source>
         <translation>กลับสู่ %1</translation>
     </message>
 <context>
     <name>SidebarWidget</name>
     <message>
-        <location filename="src/sidebarwidget.cpp" line="68"/>
         <source>Refine Search</source>
         <translation>ค้นหาโดยละเอียด</translation>
     </message>
     <message>
-        <location filename="src/sidebarwidget.cpp" line="167"/>
         <source>Did you mean: %1</source>
         <translation>หรือคุณหมายถึง: %1</translation>
     </message>
 <context>
     <name>SnapshotSettings</name>
     <message>
-        <location filename="src/snapshotsettings.cpp" line="47"/>
         <source>Change location...</source>
         <translation>เปลี่ยนที่บันทึก</translation>
     </message>
     <message>
-        <location filename="src/snapshotsettings.cpp" line="64"/>
         <source>Snapshot saved to %1</source>
         <translation>ภาพถ่ายถูกบันทึกสู่ %1</translation>
     </message>
     <message>
-        <location filename="src/snapshotsettings.cpp" line="117"/>
         <source>Snapshots location changed.</source>
         <translation>ที่ตั้งของภาพถ่ายถูกเปลี่ยน</translation>
     </message>
 <context>
     <name>StandardFeedsView</name>
     <message>
-        <location filename="src/standardfeedsview.cpp" line="107"/>
         <source>Most Popular</source>
         <translation>ยอดนิยม</translation>
     </message>
 </context>
+<context>
+    <name>UpdateDialog</name>
+    <message>
+        <source>Downloading update...</source>
+        <translation>กำลังดาวน์โหลดอัพเดต...</translation>
+    </message>
+    <message>
+        <source>Downloading %1...</source>
+        <translation type="unfinished"/>
+    </message>
+</context>
 <context>
     <name>Video</name>
     <message>
-        <location filename="src/video.cpp" line="287"/>
         <source>Cannot get video stream for %1</source>
         <translation>ไม่สามารถรับกระแสวิดีโอของ %1</translation>
     </message>
-    <message>
-        <location filename="src/video.cpp" line="292"/>
-        <source>Network error: %1 for %2</source>
-        <translation>เครือข่ายขัดข้อง: %1 สำหรับ %2</translation>
-    </message>
 </context>
 <context>
     <name>YTRegions</name>
     <message>
-        <location filename="src/ytregions.cpp" line="28"/>
         <source>Algeria</source>
         <translation>แอลจีเรีย</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="29"/>
         <source>Argentina</source>
         <translation>อาร์เจนติน่า</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="30"/>
         <source>Australia</source>
         <translation>ออสเตรเลีย</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="31"/>
         <source>Belgium</source>
         <translation>เบลเยี่ยม</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="32"/>
         <source>Brazil</source>
         <translation>บราซิล</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="33"/>
         <source>Canada</source>
         <translation>แคนาดา</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="34"/>
         <source>Chile</source>
         <translation>ชิลี</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="35"/>
         <source>Colombia</source>
         <translation>โคลอมเบีย</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="36"/>
         <source>Czech Republic</source>
         <translation>เชค, สาธารณรัฐ</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="37"/>
         <source>Egypt</source>
         <translation>อียิปต์</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="38"/>
         <source>France</source>
         <translation>ฝรั่งเศส</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="39"/>
         <source>Germany</source>
         <translation>เยอรมนี</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="40"/>
         <source>Ghana</source>
         <translation>กาน่า</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="41"/>
         <source>Greece</source>
         <translation>กรีซ</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="42"/>
         <source>Hong Kong</source>
         <translation>ฮ่องกง</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="43"/>
         <source>Hungary</source>
         <translation>ฮังการี่</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="44"/>
         <source>India</source>
         <translation>อินเดีย</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="45"/>
         <source>Indonesia</source>
         <translation>อินโดนีเซีย</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="46"/>
         <source>Ireland</source>
         <translation>ไอร์แลนด์</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="47"/>
         <source>Israel</source>
         <translation>อิสราเอล</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="48"/>
         <source>Italy</source>
         <translation>อิตาลี่</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="49"/>
         <source>Japan</source>
         <translation>ญี่ปุ่น</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="50"/>
         <source>Jordan</source>
         <translation>จอร์แดน</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="51"/>
         <source>Kenya</source>
         <translation>เคนย่า</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="52"/>
         <source>Malaysia</source>
         <translation>มาเลเซีย</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="53"/>
         <source>Mexico</source>
         <translation>เม็กซิโก</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="54"/>
         <source>Morocco</source>
         <translation>โมร็อกโก</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="55"/>
         <source>Netherlands</source>
         <translation>เนเธอร์แลนด์</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="56"/>
         <source>New Zealand</source>
         <translation>นิวซีแลนด์</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="57"/>
         <source>Nigeria</source>
         <translation>ไนจีเรีย</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="58"/>
         <source>Peru</source>
         <translation>เปรู</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="59"/>
         <source>Philippines</source>
         <translation>ฟิลิปปินส์</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="60"/>
         <source>Poland</source>
         <translation>โปแลนด์</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="61"/>
         <source>Russia</source>
         <translation>รัสเซีย</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="62"/>
         <source>Saudi Arabia</source>
         <translation>ซาอุดิอาระเบีย</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="63"/>
         <source>Singapore</source>
         <translation>สิงคโปร์</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="64"/>
         <source>South Africa</source>
         <translation>อาฟริกาใต้</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="65"/>
         <source>South Korea</source>
         <translation>เกาหลีใต้</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="66"/>
         <source>Spain</source>
         <translation>สเปน</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="67"/>
         <source>Sweden</source>
         <translation>สวีเดน</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="68"/>
         <source>Taiwan</source>
         <translation>ไต้หวัน</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="69"/>
         <source>Tunisia</source>
         <translation>ตูนิเซีย</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="70"/>
         <source>Turkey</source>
         <translation>ตุรกี</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="71"/>
         <source>Uganda</source>
         <translation>ยูกันดา</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="72"/>
         <source>United Arab Emirates</source>
         <translation>สหรัฐอาหรับเอมิเรสต์</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="73"/>
         <source>United Kingdom</source>
         <translation>สหราชอาณาจักร</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="74"/>
         <source>Yemen</source>
         <translation>เยเมน</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="148"/>
         <source>Worldwide</source>
         <translation>ทั่วโลก</translation>
     </message>
index a8edc5d5df4f3947fcc89a675d1c1e410e9e4b4e..d2f44624df0759ffa4804dcaa8a0f95bd47d99e9 100644 (file)
@@ -2,67 +2,42 @@
 <context>
     <name>AboutView</name>
     <message>
-        <location filename="src/aboutview.cpp" line="58"/>
         <source>There&apos;s life outside the browser!</source>
         <translation>Tarayıcının dışındaki yaşam!</translation>
     </message>
     <message>
-        <location filename="src/aboutview.cpp" line="59"/>
         <source>Version %1</source>
         <translation>Sürüm %1</translation>
     </message>
     <message>
-        <location filename="src/aboutview.cpp" line="64"/>
         <source>Licensed to: %1</source>
         <translation>%1 için lisanslanmıştır</translation>
     </message>
     <message>
-        <location filename="src/aboutview.cpp" line="68"/>
         <source>%1 is Free Software but its development takes precious time.</source>
         <translation>%1 özgür yazılımdır ama geliştirmek değerli zaman alır.</translation>
     </message>
     <message>
-        <location filename="src/aboutview.cpp" line="69"/>
         <source>Please &lt;a href=&apos;%1&apos;&gt;donate&lt;/a&gt; to support the continued development of %2.</source>
         <translation>Lütfen %2 geliştirilmesinin devam etmesi için &lt;a href=&apos;%1&apos;&gt;bağış&lt;/a&gt; yapın.</translation>
     </message>
     <message>
-        <location filename="src/aboutview.cpp" line="73"/>
-        <source>You may want to try my other apps as well:</source>
-        <translation>Bunun yanında diğer uygulamalarımı da denemek isteyebilirsiniz:</translation>
-    </message>
-    <message>
-        <location filename="src/aboutview.cpp" line="76"/>
-        <source>%1, a YouTube music player</source>
-        <translation>%1, YouTube müzik oynatıcı</translation>
-    </message>
-    <message>
-        <location filename="src/aboutview.cpp" line="80"/>
-        <source>%1, a music player</source>
-        <translation>%1, bir müzik çalar</translation>
-    </message>
-    <message>
-        <location filename="src/aboutview.cpp" line="86"/>
         <source>Translate %1 to your native language using %2</source>
         <translation>%1&apos;i, %2 kullanarak kendi dilinize çevirin</translation>
     </message>
     <message>
-        <location filename="src/aboutview.cpp" line="91"/>
         <source>Icon designed by %1.</source>
         <translation>Simge %1 tarafından tasarlandı.</translation>
     </message>
     <message>
-        <location filename="src/aboutview.cpp" line="95"/>
         <source>Released under the &lt;a href=&apos;%1&apos;&gt;GNU General Public License&lt;/a&gt;</source>
         <translation>&lt;a href=&apos;%1&apos;&gt;GNU Genel Kamu Lisansı&lt;/a&gt; ile yayınlanmıştır</translation>
     </message>
     <message>
-        <location filename="src/aboutview.cpp" line="110"/>
         <source>&amp;Close</source>
         <translation>Kapat (&amp;C)</translation>
     </message>
     <message>
-        <location filename="src/aboutview.h" line="40"/>
         <source>About</source>
         <translation>Hakkında</translation>
     </message>
 <context>
     <name>ActivationDialog</name>
     <message>
-        <location filename="local/src/activationdialog.cpp" line="17"/>
         <source>Enter your License Details</source>
         <translation>Lisans bilgilerini girin</translation>
     </message>
     <message>
-        <location filename="local/src/activationdialog.cpp" line="29"/>
         <source>&amp;Email:</source>
         <translation>&amp;Eposta:</translation>
     </message>
     <message>
-        <location filename="local/src/activationdialog.cpp" line="35"/>
         <source>&amp;Code:</source>
         <translation>Kod:</translation>
     </message>
 <context>
     <name>ActivationView</name>
     <message>
-        <location filename="local/src/activationview.cpp" line="47"/>
         <source>Please license %1</source>
         <translation>Lütfen lisans %1</translation>
     </message>
     <message>
-        <location filename="local/src/activationview.cpp" line="51"/>
         <source>This demo has expired.</source>
         <translation>Deneme süresi bitti.</translation>
     </message>
     <message>
-        <location filename="local/src/activationview.cpp" line="53"/>
         <source>The full version allows you to watch videos without interruptions.</source>
-        <oldsource>The full version allows you to download videos longer than %1 minutes and to watch videos without interruptions.</oldsource>
         <translation>Tam sürüm, videoları duraklamadan izlemenizi sağlar.</translation>
     </message>
     <message>
-        <location filename="local/src/activationview.cpp" line="55"/>
         <source>Without a license, the application will expire in %1 days.</source>
         <translation>Lisans olmazsa, uygulama süresi %1 gün içinde dolacaktır.</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>Tam sürümü alarak, aynı zamanda %1 yaratmamdaki üstün çabamı destekleyebilirsiniz.</translation>
     </message>
     <message>
-        <location filename="local/src/activationview.cpp" line="70"/>
         <source>Use Demo</source>
         <translation>Demo kullan</translation>
     </message>
     <message>
-        <location filename="local/src/activationview.cpp" line="77"/>
         <source>Enter License</source>
         <translation>Lisans Girin</translation>
     </message>
     <message>
-        <location filename="local/src/activationview.cpp" line="85"/>
         <source>Buy License</source>
         <translation>Lisans Al</translation>
     </message>
 </context>
+<context>
+    <name>AppWidget</name>
+    <message>
+        <source>Download</source>
+        <translation>İndir</translation>
+    </message>
+</context>
 <context>
     <name>ChannelAggregator</name>
     <message>
-        <location filename="src/channelaggregator.cpp" line="183"/>
         <source>By %1</source>
         <translation>%1 tarafından</translation>
     </message>
     <message numerus="yes">
-        <location filename="src/channelaggregator.cpp" line="185"/>
         <source>You have %n new video(s)</source>
-        <translation><numerusform>%n yeni video(lar) mevcut</numerusform><numerusform>%n yeni video(lar) mevcut</numerusform></translation>
+        <translation type="unfinished"><numerusform></numerusform><numerusform></numerusform></translation>
     </message>
 </context>
 <context>
     <name>ChannelItemDelegate</name>
     <message>
-        <location filename="src/channelitemdelegate.cpp" line="67"/>
         <source>All Videos</source>
         <translation>Tüm Videolar</translation>
     </message>
     <message>
-        <location filename="src/channelitemdelegate.cpp" line="85"/>
         <source>Unwatched Videos</source>
         <translation>İzlenmemiş Videolar</translation>
     </message>
 <context>
     <name>ChannelView</name>
     <message>
-        <location filename="src/channelview.cpp" line="151"/>
-        <source>Mark all as watched</source>
-        <translation>Tümünü izlendi işaretle</translation>
-    </message>
-    <message>
-        <location filename="src/channelview.cpp" line="159"/>
-        <source>Show Updated</source>
-        <translation>Güncellenenleri Göster</translation>
-    </message>
-    <message>
-        <location filename="src/channelview.cpp" line="103"/>
         <source>Name</source>
         <translation>İsim</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="110"/>
         <source>Last Updated</source>
         <translation>Son Güncellenen</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="117"/>
         <source>Last Added</source>
         <translation>Son Eklenen</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="124"/>
         <source>Last Watched</source>
         <translation>Son İzlenen</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="131"/>
         <source>Most Watched</source>
         <translation>En Çok İzlenen</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="139"/>
         <source>Sort by</source>
         <translation>Sırala</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="222"/>
+        <source>Mark all as watched</source>
+        <translation>Tümünü izlendi işaretle</translation>
+    </message>
+    <message>
+        <source>Show Updated</source>
+        <translation>Güncellenenleri Göster</translation>
+    </message>
+    <message>
         <source>All Videos</source>
         <translation>Tüm Videolar</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="226"/>
         <source>Unwatched Videos</source>
         <translation>İzlenmemiş Videolar</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="244"/>
         <source>Mark as Watched</source>
         <translation>İzlendi olarak İşaretle</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="257"/>
         <source>Unsubscribe</source>
         <translation>Aboneliği Kaldır</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="270"/>
         <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="272"/>
         <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>
     <name>ClearButton</name>
     <message>
-        <location filename="src/exlineedit.cpp" line="6"/>
         <source>Clear</source>
         <translation>Temizle</translation>
     </message>
 <context>
     <name>DataUtils</name>
     <message>
-        <location filename="src/datautils.cpp" line="88"/>
         <source>Just now</source>
         <translation>Şuanda</translation>
     </message>
     <message numerus="yes">
-        <location filename="src/datautils.cpp" line="90"/>
-        <source>%n minute(s) ago</source>
-        <translation><numerusform>&amp;n dakika önce()</numerusform><numerusform>&amp;n dakika önce()</numerusform></translation>
-    </message>
-    <message numerus="yes">
-        <location filename="src/datautils.cpp" line="92"/>
         <source>%n hour(s) ago</source>
-        <translation><numerusform>&amp;n saat önce()</numerusform><numerusform>&amp;n saat önce()</numerusform></translation>
+        <translation type="unfinished"><numerusform></numerusform><numerusform></numerusform></translation>
     </message>
     <message numerus="yes">
-        <location filename="src/datautils.cpp" line="94"/>
         <source>%n day(s) ago</source>
-        <translation><numerusform>&amp;n gün önce()</numerusform><numerusform>&amp;n gün önce()</numerusform></translation>
+        <translation type="unfinished"><numerusform></numerusform><numerusform></numerusform></translation>
     </message>
     <message numerus="yes">
-        <location filename="src/datautils.cpp" line="96"/>
         <source>%n weeks(s) ago</source>
-        <translation><numerusform>&amp;n hafta önce()</numerusform><numerusform>&amp;n hafta önce()</numerusform></translation>
+        <translation type="unfinished"><numerusform></numerusform><numerusform></numerusform></translation>
     </message>
     <message numerus="yes">
-        <location filename="src/datautils.cpp" line="98"/>
         <source>%n month(s) ago</source>
-        <translation><numerusform>&amp;n ay önce()</numerusform><numerusform>&amp;n ay önce()</numerusform></translation>
+        <translation type="unfinished"><numerusform></numerusform><numerusform></numerusform></translation>
     </message>
 </context>
 <context>
     <name>DownloadItem</name>
     <message>
-        <location filename="src/downloaditem.cpp" line="406"/>
         <source>bytes</source>
         <translation>byte</translation>
     </message>
     <message>
-        <location filename="src/downloaditem.cpp" line="409"/>
         <source>KB</source>
         <translation>KB</translation>
     </message>
     <message>
-        <location filename="src/downloaditem.cpp" line="412"/>
         <source>MB</source>
         <translation>MB</translation>
     </message>
     <message>
-        <location filename="src/downloaditem.cpp" line="421"/>
         <source>bytes/sec</source>
         <translation>byte/san</translation>
     </message>
     <message>
-        <location filename="src/downloaditem.cpp" line="424"/>
         <source>KB/sec</source>
         <translation>KB/san</translation>
     </message>
     <message>
-        <location filename="src/downloaditem.cpp" line="427"/>
         <source>MB/sec</source>
         <translation>MB/san</translation>
     </message>
     <message>
-        <location filename="src/downloaditem.cpp" line="433"/>
         <source>seconds</source>
         <translation>saniye</translation>
     </message>
     <message>
-        <location filename="src/downloaditem.cpp" line="436"/>
         <source>minutes</source>
         <translation>dakika</translation>
     </message>
     <message>
-        <location filename="src/downloaditem.cpp" line="439"/>
         <source>%4 %5 remaining</source>
         <translation>%4 %5 kaldı</translation>
     </message>
 <context>
     <name>DownloadManager</name>
     <message>
-        <location filename="src/downloadmanager.cpp" line="77"/>
         <source>This is just the demo version of %1.</source>
         <translation>Bu sadece %&apos;in demo sürümüdür.</translation>
     </message>
     <message>
-        <location filename="src/downloadmanager.cpp" line="79"/>
         <source>It can only download videos shorter than %1 minutes so you can test the download functionality.</source>
         <translation>Bu sadece %1 dakikadan kısa videoları indirebilir, indirme özelliğini böylece test edebilirsiniz.</translation>
     </message>
     <message>
-        <location filename="src/downloadmanager.cpp" line="85"/>
         <source>Continue</source>
         <translation>Devam</translation>
     </message>
     <message>
-        <location filename="src/downloadmanager.cpp" line="86"/>
         <source>Get the full version</source>
         <translation>Tam sürüme geç</translation>
     </message>
     <message>
-        <location filename="src/downloadmanager.cpp" line="157"/>
         <source>%1 downloaded in %2</source>
         <translation>%2 de %1 indirildi</translation>
     </message>
     <message>
-        <location filename="src/downloadmanager.cpp" line="160"/>
         <source>Download finished</source>
         <translation>İndirme tamamlandı.</translation>
     </message>
     <message numerus="yes">
-        <location filename="src/downloadmanager.cpp" line="165"/>
         <source>%n Download(s)</source>
-        <translation><numerusform>&amp;n İndirme(ler)</numerusform><numerusform>&amp;n İndirme(ler)</numerusform></translation>
+        <translation type="unfinished"><numerusform></numerusform><numerusform></numerusform></translation>
     </message>
 </context>
 <context>
     <name>DownloadSettings</name>
     <message>
-        <location filename="src/downloadsettings.cpp" line="36"/>
         <source>Change location...</source>
         <translation>Konumu değiştir...</translation>
     </message>
     <message>
-        <location filename="src/downloadsettings.cpp" line="69"/>
         <source>Choose the download location</source>
         <translation>İndirme konumunu seçin</translation>
     </message>
     <message>
-        <location filename="src/downloadsettings.cpp" line="81"/>
         <source>Download location changed.</source>
         <translation>İndirme konumu değişti</translation>
     </message>
     <message>
-        <location filename="src/downloadsettings.cpp" line="83"/>
         <source>Current downloads will still go in the previous location.</source>
         <translation>Mevcut indirmeler önceki konumda devam edecek</translation>
     </message>
     <message>
-        <location filename="src/downloadsettings.cpp" line="94"/>
         <source>Downloading to: %1</source>
         <translation>İndiriliyor: %1</translation>
     </message>
 <context>
     <name>DownloadView</name>
     <message>
-        <location filename="src/downloadview.cpp" line="38"/>
-        <location filename="src/downloadview.h" line="45"/>
         <source>Downloads</source>
         <translation>İndirmeler</translation>
     </message>
 </context>
-<context>
-    <name>DownloadWidget</name>
-    <message>
-        <location filename="local/src/updatedialog.cpp" line="60"/>
-        <source>Downloading update...</source>
-        <translation>Güncelleme indiriliyor...</translation>
-    </message>
-</context>
 <context>
     <name>Extra</name>
     <message>
-        <location filename="local/src/extra.cpp" line="251"/>
         <source>The executable file has been tempered with, maybe by a virus.</source>
         <translation>Çalıştırılabilir dosya belki virüs tarafından hasar görmüş olabilir.</translation>
     </message>
     <message>
-        <location filename="local/src/extra.cpp" line="252"/>
         <source>%1 will not run. Try installing again.</source>
         <translation>%1 çalıştırılamıyor. Tekrar yüklemeyi deneyin.</translation>
     </message>
     <message>
-        <location filename="local/src/extra.cpp" line="253"/>
         <source>Quit</source>
         <translation>Çık</translation>
     </message>
     <message>
-        <location filename="local/src/extra.cpp" line="254"/>
         <source>Reinstall</source>
         <translation>Yeniden yükle</translation>
     </message>
 <context>
     <name>GlobalShortcuts</name>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="36"/>
         <source>Play</source>
         <translation>Oynat</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="37"/>
         <source>Pause</source>
         <translation>Bekle</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="38"/>
         <source>Play/Pause</source>
         <translation>Oynat/Bekle</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="39"/>
         <source>Stop</source>
         <translation>Dur</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="40"/>
         <source>Stop playing after current track</source>
         <translation>Şimdiki videodan sonra oynatmayı durdur</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="41"/>
         <source>Next track</source>
         <translation>Sonraki video</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="42"/>
         <source>Previous track</source>
         <translation>Önceki video</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="43"/>
         <source>Increase volume</source>
         <translation>Sesi arttır</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="44"/>
         <source>Decrease volume</source>
         <translation>Sesi azalt</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="45"/>
         <source>Mute</source>
         <translation>Sessiz</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="46"/>
         <source>Seek forward</source>
         <translation>İleri sar</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="47"/>
         <source>Seek backward</source>
         <translation>Geri sar</translation>
     </message>
 <context>
     <name>HomeView</name>
     <message>
-        <location filename="src/homeview.cpp" line="58"/>
         <source>Search</source>
         <translation>Arama</translation>
     </message>
     <message>
-        <location filename="src/homeview.cpp" line="60"/>
         <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="65"/>
         <source>Browse</source>
         <translation>Gözat</translation>
     </message>
     <message>
-        <location filename="src/homeview.cpp" line="67"/>
         <source>Browse videos by category</source>
         <translation>Kategoriye göre videoları gözat</translation>
     </message>
     <message>
-        <location filename="src/homeview.cpp" line="71"/>
         <source>Subscriptions</source>
         <translation>Abonelikler</translation>
     </message>
     <message>
-        <location filename="src/homeview.cpp" line="73"/>
         <source>Channel subscriptions</source>
         <translation>Kanal abonelikleri</translation>
     </message>
     <message>
-        <location filename="src/homeview.h" line="44"/>
         <source>Make yourself comfortable</source>
         <translation>Kendinizi rahat hissedin</translation>
     </message>
 <context>
     <name>LoadingWidget</name>
     <message>
-        <location filename="src/loadingwidget.cpp" line="125"/>
         <source>Error</source>
         <translation>Hata</translation>
     </message>
 <context>
     <name>MainWindow</name>
     <message>
-        <location filename="src/mainwindow.cpp" line="291"/>
+        <source>&amp;Window</source>
+        <translation>Pencere</translation>
+    </message>
+    <message>
+        <source>&amp;Minimize</source>
+        <translation>Küçült</translation>
+    </message>
+    <message>
         <source>&amp;Stop</source>
         <translation>Dur (&amp;S)</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="292"/>
         <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="307"/>
+        <source>P&amp;revious</source>
+        <translation>Önceki</translation>
+    </message>
+    <message>
+        <source>Go back to the previous track</source>
+        <translation>Bir önceki parçaya geri dön</translation>
+    </message>
+    <message>
         <source>S&amp;kip</source>
         <translation>&amp;Atla</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="308"/>
         <source>Skip to the next video</source>
         <translation>Sonraki videoya atla</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1134"/>
-        <source>&amp;Pause</source>
-        <translation>&amp;Bekle</translation>
+        <source>&amp;Play</source>
+        <translation>&amp;Oynat</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1135"/>
-        <source>Pause playback</source>
-        <translation>Oynatmayı beklet</translation>
+        <source>Resume playback</source>
+        <translation>Oynatmaya devam et</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="321"/>
         <source>&amp;Full Screen</source>
         <translation>&amp;Tam ekran</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="322"/>
         <source>Go full screen</source>
         <translation>Tam ekran görünümü</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="336"/>
+        <source>&amp;Compact Mode</source>
+        <translation>Kü&amp;cültümüş Ekran</translation>
+    </message>
+    <message>
         <source>Hide the playlist and the toolbar</source>
         <translation>Listeyi ve araç çubuğunu gizle</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="349"/>
+        <source>Open the &amp;YouTube Page</source>
+        <translation>&amp;YouTube Sayfasını Aç</translation>
+    </message>
+    <message>
         <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="356"/>
+        <source>Copy the YouTube &amp;Link</source>
+        <translation>YouTube &amp;Linkini Kopyala</translation>
+    </message>
+    <message>
         <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="363"/>
+        <source>Copy the Video Stream &amp;URL</source>
+        <translation>Video &amp;URL&apos;sini Kopyala</translation>
+    </message>
+    <message>
         <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="370"/>
+        <source>Find Video &amp;Parts</source>
+        <translation>Video Bölümlerini Bul</translation>
+    </message>
+    <message>
         <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="376"/>
         <source>&amp;Remove</source>
         <translation>&amp;Kaldır</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="377"/>
         <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="383"/>
         <source>Move &amp;Up</source>
         <translation>Y&amp;ukarı taşı</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="384"/>
         <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="390"/>
         <source>Move &amp;Down</source>
         <translation>A&amp;şağı taşı</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="391"/>
         <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="402"/>
+        <source>&amp;Clear Recent Searches</source>
+        <translation>Son Aramaları Temizle</translation>
+    </message>
+    <message>
         <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="407"/>
         <source>&amp;Quit</source>
         <translation>&amp;Çık</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="410"/>
         <source>Bye</source>
         <translation>Gülegüle</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="414"/>
         <source>&amp;Website</source>
         <translation>&amp;Website</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="416"/>
         <source>%1 on the Web</source>
         <translation>%1 İnternette</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="422"/>
+        <source>Make a &amp;Donation</source>
+        <translation>Bağış Yap</translation>
+    </message>
+    <message>
         <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="427"/>
         <source>&amp;About</source>
         <translation>&amp;Hakkında</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="429"/>
         <source>Info about %1</source>
         <translation>%1 Hakkında</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="437"/>
         <source>Search</source>
         <translation>Ara</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="456"/>
         <source>Mute volume</source>
         <translation>Sesi kes</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="490"/>
-        <location filename="src/mainwindow.cpp" line="1609"/>
+        <source>&amp;Manually Start Playing</source>
+        <translation>&amp;Manuel Olarak Çalmaya Başla</translation>
+    </message>
+    <message>
+        <source>Manually start playing videos</source>
+        <translation>Videoları manuel olarak çalmaya başla</translation>
+    </message>
+    <message>
         <source>&amp;Downloads</source>
         <translation>&amp;İndirmeler</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="491"/>
         <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="499"/>
         <source>&amp;Download</source>
         <translation>&amp;İndir</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="500"/>
         <source>Download the current video</source>
         <translation>Geçerli videoyu indir</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="510"/>
         <source>Take &amp;Snapshot</source>
         <translation>&amp;Ekran Görüntüsü Al</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="517"/>
         <source>&amp;Subscribe to Channel</source>
         <translation>Kanala Abone Ol (&amp;S)</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="525"/>
         <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="545"/>
         <source>&amp;Email</source>
         <translation>&amp;Eposta</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="546"/>
         <source>Email</source>
         <translation>Eposta</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="551"/>
         <source>&amp;Close</source>
         <translation>&amp;Kapat</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="561"/>
         <source>&amp;Float on Top</source>
         <translation>Üstte Sabitle</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="566"/>
         <source>&amp;Adjust Window Size</source>
         <translation>&amp;Pencere Boyutunu Ayarla</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="571"/>
         <source>&amp;Stop After This Video</source>
         <translation>Bu Videodan &amp;Sonra Durdur</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="578"/>
         <source>&amp;Report an Issue...</source>
         <translation>Bir Sorun Bildi&amp;r</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="582"/>
         <source>&amp;Refine Search...</source>
         <translation>A&amp;ramayı Sınırla...</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="594"/>
         <source>More...</source>
         <translation>Dahası...</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="597"/>
         <source>&amp;Related Videos</source>
         <translation>Benze&amp;r Videolar</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="599"/>
         <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="605"/>
         <source>Open in &amp;Browser...</source>
         <translation>&amp;Tarayıcıda aç...</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="612"/>
-        <source>&amp;Love %1? Rate it!</source>
-        <translation>%1 &amp;seviyor musunuz? Değerlendirin!</translation>
+        <source>Restricted Mode</source>
+        <translation>Sınırlı Mod</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="633"/>
-        <source>&amp;Application</source>
-        <translation>&amp;Uygulama</translation>
+        <source>Hide videos that may contain inappropriate content</source>
+        <translation>Uygunsuz içerik içerebilecek videoları gizle</translation>
+    </message>
+    <message>
+        <source>&amp;Love %1? Rate it!</source>
+        <translation>%1 &amp;seviyor musunuz? Değerlendirin!</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="618"/>
         <source>Buy %1...</source>
         <translation>%1 Satın Al...</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="647"/>
+        <source>&amp;Application</source>
+        <translation>&amp;Uygulama</translation>
+    </message>
+    <message>
         <source>&amp;Playback</source>
         <translation>&amp;Çalma</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="661"/>
         <source>&amp;Playlist</source>
         <translation>Oynatma &amp;listesi</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="670"/>
         <source>&amp;Video</source>
         <translation>&amp;Video</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="686"/>
-        <source>&amp;View</source>
-        <translation>&amp;Görünüm</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="695"/>
         <source>&amp;Share</source>
         <translation>Payla&amp;s</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="709"/>
+        <source>&amp;View</source>
+        <translation>&amp;Görünüm</translation>
+    </message>
+    <message>
         <source>&amp;Help</source>
         <translation>Yardı&amp;m</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="751"/>
         <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="1021"/>
-        <location filename="src/mainwindow.cpp" line="1027"/>
+        <source>Choose your content location</source>
+        <translation>Konumunuzu seçin</translation>
+    </message>
+    <message>
         <source>Opening %1</source>
         <translation>%1 Açılıyor</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1080"/>
         <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="1081"/>
         <source>If you close %1 now, this download will be cancelled.</source>
         <translation>Eğer %1&apos;İ şimdi kapatırsanız, bu indirme iptal edilecek.</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1086"/>
         <source>Close and cancel download</source>
         <translation>Kapat ve indirmeyi iptal et</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1087"/>
         <source>Wait for download to finish</source>
         <translation>İndirmenin bitmesini bekle</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1158"/>
-        <source>&amp;Loading...</source>
-        <translation>&amp;Yükleniyor</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="1264"/>
-        <source>Leave &amp;Full Screen</source>
-        <translation>&amp;Tam Ekrandan Çık</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="1718"/>
-        <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="1722"/>
-        <source>Remind me later</source>
-        <translation>Daha sonra hatırlat</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="1723"/>
-        <source>Update</source>
-        <translation>Güncelle</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="1127"/>
         <source>Error: %1</source>
         <translation>Hata: %1</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="300"/>
-        <source>P&amp;revious</source>
-        <translation>Önceki</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="301"/>
-        <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="335"/>
-        <source>&amp;Compact Mode</source>
-        <translation>Kü&amp;cültümüş Ekran</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="348"/>
-        <source>Open the &amp;YouTube Page</source>
-        <translation>&amp;YouTube Sayfasını Aç</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="355"/>
-        <source>Copy the YouTube &amp;Link</source>
-        <translation>YouTube &amp;Linkini Kopyala</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="362"/>
-        <source>Copy the Video Stream &amp;URL</source>
-        <translation>Video &amp;URL&apos;sini Kopyala</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="369"/>
-        <source>Find Video &amp;Parts</source>
-        <translation>Video Bölümlerini Bul</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="397"/>
-        <source>&amp;Clear Recent Searches</source>
-        <translation>Son Aramaları Temizle</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="421"/>
-        <source>Make a &amp;Donation</source>
-        <translation>Bağış Yap</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="483"/>
-        <source>&amp;Manually Start Playing</source>
-        <translation>&amp;Manuel Olarak Çalmaya Başla</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="484"/>
-        <source>Manually start playing videos</source>
-        <translation>Videoları manuel olarak çalmaya başla</translation>
+        <source>&amp;Pause</source>
+        <translation>&amp;Bekle</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="847"/>
-        <source>Choose your content location</source>
-        <translation>Konumunuzu seçin</translation>
+        <source>Pause playback</source>
+        <translation>Oynatmayı beklet</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="314"/>
-        <location filename="src/mainwindow.cpp" line="1142"/>
-        <location filename="src/mainwindow.cpp" line="1150"/>
-        <source>&amp;Play</source>
-        <translation>&amp;Oynat</translation>
+        <source>&amp;Loading...</source>
+        <translation>&amp;Yükleniyor</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="315"/>
-        <location filename="src/mainwindow.cpp" line="1143"/>
-        <location filename="src/mainwindow.cpp" line="1151"/>
-        <source>Resume playback</source>
-        <translation>Oynatmaya devam et</translation>
+        <source>Leave &amp;Full Screen</source>
+        <translation>&amp;Tam Ekrandan Çık</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1437"/>
         <source>Remaining time: %1</source>
         <translation>Kalan zaman: %1</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1528"/>
         <source>Volume at %1%</source>
         <translation>Ses %1%</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1534"/>
         <source>Volume is muted</source>
         <translation>Ses kapandı</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1537"/>
         <source>Volume is unmuted</source>
         <translation>Ses açık</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1548"/>
         <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="1595"/>
         <source>Your privacy is now safe</source>
         <translation>Şimdi gizliliğiniz güvende</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1610"/>
         <source>Downloads complete</source>
         <translation>İndirme tamamlandı</translation>
     </message>
+    <message>
+        <source>%1 version %2 is now available.</source>
+        <translation>%1 sürüm %2 kullanılabilir durumda.</translation>
+    </message>
+    <message>
+        <source>Remind me later</source>
+        <translation>Daha sonra hatırlat</translation>
+    </message>
+    <message>
+        <source>Update</source>
+        <translation>Güncelle</translation>
+    </message>
 </context>
 <context>
     <name>MediaView</name>
     <message>
-        <location filename="src/mediaview.cpp" line="702"/>
         <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="710"/>
         <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="711"/>
         <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="800"/>
         <source>This is just the demo version of %1.</source>
         <translation>Bu sadece %1&apos;in demo sürümüdür.</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="801"/>
         <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="833"/>
+        <source>Get the full version</source>
+        <translation>Tam sürüme geç</translation>
+    </message>
+    <message>
         <source>Continue</source>
         <translation>Devam</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="988"/>
+        <source>Downloading %1</source>
+        <translation>İndiriliyor %1</translation>
+    </message>
+    <message>
         <source>of</source>
         <comment>Used in video parts, as in '2 of 3'</comment>
         <translation>/</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="1001"/>
         <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="1003"/>
         <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="1096"/>
         <source>Sent from %1</source>
         <translation>%1 ile gönderildi</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="1128"/>
         <source>Unsubscribe from %1</source>
         <translation>%1 aboneliğinden çık</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="1132"/>
         <source>Subscribe to %1</source>
         <translation>%1 Abone Ol</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="1166"/>
         <source>Unsubscribed from %1</source>
         <translation>%1 aboneliğinden çık</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="1169"/>
         <source>Subscribed to %1</source>
         <translation>%1 Abone Ol</translation>
     </message>
-    <message>
-        <location filename="src/mediaview.cpp" line="808"/>
-        <source>Get the full version</source>
-        <translation>Tam sürüme geç</translation>
-    </message>
-    <message>
-        <location filename="src/mediaview.cpp" line="847"/>
-        <source>Downloading %1</source>
-        <translation>İndiriliyor %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>%1 e ait yeni sürüm kullanılabilir.</translation>
     </message>
     <message>
-        <location filename="local/src/updatedialog.cpp" line="28"/>
         <source>%1 %2 is now available. You have %3.</source>
         <translation>%1 %2 şimdi kullanılabilir. Siz %3</translation>
     </message>
     <message>
-        <location filename="local/src/updatedialog.cpp" line="33"/>
         <source>Would you like to download it now?</source>
         <translation>Bunu şimdi indirmek istiyor musunuz?</translation>
     </message>
     <message>
-        <location filename="local/src/updatedialog.cpp" line="39"/>
         <source>Skip This Version</source>
         <translation>Bu Sürümü Geç</translation>
     </message>
     <message>
-        <location filename="local/src/updatedialog.cpp" line="43"/>
         <source>Remind Me Later</source>
         <translation>Daha sonra Hatırlat</translation>
     </message>
     <message>
-        <location filename="local/src/updatedialog.cpp" line="47"/>
         <source>Install Update</source>
         <translation>Güncellemeyi Yükle</translation>
     </message>
 <context>
     <name>PasteLineEdit</name>
     <message>
-        <location filename="local/src/pastelineedit.cpp" line="6"/>
         <source>Paste</source>
         <translation>Yapıştır</translation>
     </message>
 <context>
     <name>PlaylistItemDelegate</name>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="209"/>
         <source>%1 views</source>
         <translation>%1 görüntülenme</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="309"/>
         <source>%1 of %2 (%3) — %4</source>
         <translation>%1 of %2 (%3) — %4</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="316"/>
         <source>Preparing</source>
         <translation>Hazırlanıyor</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="318"/>
         <source>Failed</source>
         <translation>Başarısız</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="320"/>
         <source>Completed</source>
         <translation>Tamamlandı</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="322"/>
         <source>Stopped</source>
         <translation>Durduruldu</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="358"/>
         <source>Stop downloading</source>
         <translation>İndirme işlemini durdur</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="368"/>
         <source>Show in %1</source>
         <translation>%1 içinde göster</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="370"/>
         <source>Open parent folder</source>
         <translation>Önceki dizini aç</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="379"/>
         <source>Restart downloading</source>
         <translation>İndirme işlemini yeniden başlat</translation>
     </message>
 <context>
     <name>PlaylistModel</name>
     <message>
-        <location filename="src/playlistmodel.cpp" line="70"/>
         <source>Searching...</source>
         <translation>Aranıyor...</translation>
     </message>
     <message>
-        <location filename="src/playlistmodel.cpp" line="71"/>
         <source>Show %1 More</source>
         <translation>%1 Tane Daha Göster</translation>
     </message>
     <message>
-        <location filename="src/playlistmodel.cpp" line="72"/>
         <source>No videos</source>
         <translation>Video yok</translation>
     </message>
     <message>
-        <location filename="src/playlistmodel.cpp" line="73"/>
         <source>No more videos</source>
         <translation>Daha fazla video yok</translation>
     </message>
 <context>
     <name>RefineSearchWidget</name>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="49"/>
         <source>Sort by</source>
         <translation>Sırala</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="53"/>
         <source>Relevance</source>
         <translation>Alaka</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="54"/>
-        <location filename="src/refinesearchwidget.cpp" line="69"/>
         <source>Date</source>
         <translation>Tarih</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="55"/>
         <source>View Count</source>
         <translation>Hiti Göster</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="56"/>
         <source>Rating</source>
         <translation>Hit</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="73"/>
         <source>Anytime</source>
         <translation>Herhangi bir zaman</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="74"/>
         <source>Today</source>
         <translation>Bugün</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="75"/>
         <source>7 Days</source>
         <translation>7 Gün</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="76"/>
         <source>30 Days</source>
         <translation>30 Gün</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="89"/>
         <source>Duration</source>
         <translation>Süre</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="93"/>
-        <location filename="src/refinesearchwidget.cpp" line="119"/>
         <source>All</source>
         <translation>Hepsi</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="94"/>
         <source>Short</source>
         <translation>Kısa</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="95"/>
         <source>Medium</source>
         <translation>Orta</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="96"/>
         <source>Long</source>
         <translation>Uzun</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="99"/>
         <source>Less than 4 minutes</source>
         <translation>4 dakikadan kısa</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="100"/>
         <source>Between 4 and 20 minutes</source>
         <translation>4 - 20 dakika arası</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="101"/>
         <source>Longer than 20 minutes</source>
         <translation>20 dakikadan uzun</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="115"/>
         <source>Quality</source>
         <translation>Kalite</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="120"/>
         <source>High Definition</source>
         <translation>Yüksek Kalite</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="123"/>
         <source>720p or higher</source>
         <translation>720p veya daha yüksek</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="136"/>
         <source>Done</source>
         <translation>Bitti</translation>
     </message>
 <context>
     <name>RegionsView</name>
     <message>
-        <location filename="src/regionsview.cpp" line="39"/>
         <source>Done</source>
         <translation>Tamamlandı</translation>
     </message>
 <context>
     <name>SearchLineEdit</name>
     <message>
-        <location filename="src/searchlineedit.cpp" line="55"/>
         <source>Search</source>
         <translation>Ara</translation>
     </message>
 <context>
     <name>SearchView</name>
     <message>
-        <location filename="src/searchview.cpp" line="83"/>
         <source>Welcome to &lt;a href=&apos;%1&apos;&gt;%2&lt;/a&gt;,</source>
         <translation>&lt;a href=&apos;%1&apos;&gt;%2&lt;/a&gt;&apos;a Hoşgeldiniz</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="200"/>
-        <source>Get the full version</source>
-        <translation>Tam sürüme geç</translation>
-    </message>
-    <message>
-        <location filename="src/searchview.cpp" line="110"/>
         <source>Enter</source>
         <extracomment>&quot;Enter&quot;, as in &quot;type&quot;. The whole phrase says: &quot;Enter a keyword to start watching videos&quot;</extracomment>
         <translation>Giriş yapın</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="117"/>
         <source>a keyword</source>
         <translation>bir anahtar kelime</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="118"/>
         <source>a channel</source>
         <translation>bir kanal</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="125"/>
         <source>to start watching videos.</source>
         <translation>ve videoları izlemeye başlayın.</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="156"/>
         <source>Watch</source>
         <translation>İzle</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="174"/>
         <source>Recent keywords</source>
         <translation>Son arananlar</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="186"/>
         <source>Recent channels</source>
         <translation>Önceki kanallar</translation>
     </message>
+    <message>
+        <source>Get the full version</source>
+        <translation>Tam sürüme geç</translation>
+    </message>
 </context>
 <context>
     <name>SidebarHeader</name>
     <message>
-        <location filename="src/sidebarheader.cpp" line="38"/>
-        <location filename="src/sidebarheader.cpp" line="45"/>
         <source>&amp;Back</source>
         <translation>Geri</translation>
     </message>
     <message>
-        <location filename="src/sidebarheader.cpp" line="76"/>
         <source>Forward to %1</source>
         <translation>%1 Yönlendir</translation>
     </message>
     <message>
-        <location filename="src/sidebarheader.cpp" line="89"/>
         <source>Back to %1</source>
         <translation>Geri Dön: %1</translation>
     </message>
 <context>
     <name>SidebarWidget</name>
     <message>
-        <location filename="src/sidebarwidget.cpp" line="68"/>
         <source>Refine Search</source>
         <translation>A&amp;ramayı Sınırla</translation>
     </message>
     <message>
-        <location filename="src/sidebarwidget.cpp" line="167"/>
         <source>Did you mean: %1</source>
         <translation>Bunu mu demek istediniz: %1</translation>
     </message>
 <context>
     <name>SnapshotSettings</name>
     <message>
-        <location filename="src/snapshotsettings.cpp" line="47"/>
         <source>Change location...</source>
         <translation>Konumu değiştir...</translation>
     </message>
     <message>
-        <location filename="src/snapshotsettings.cpp" line="64"/>
         <source>Snapshot saved to %1</source>
         <translation>Ekran görüntüsü %1 konumuna kaydedildi</translation>
     </message>
     <message>
-        <location filename="src/snapshotsettings.cpp" line="117"/>
         <source>Snapshots location changed.</source>
         <translation>Ekran görüntüsü konumu değişti.</translation>
     </message>
 <context>
     <name>StandardFeedsView</name>
     <message>
-        <location filename="src/standardfeedsview.cpp" line="107"/>
         <source>Most Popular</source>
         <translation>En popülerler</translation>
     </message>
 </context>
+<context>
+    <name>UpdateDialog</name>
+    <message>
+        <source>Downloading update...</source>
+        <translation>Güncelleme indiriliyor...</translation>
+    </message>
+    <message>
+        <source>Downloading %1...</source>
+        <translation>%1 indiriliyor...</translation>
+    </message>
+</context>
 <context>
     <name>Video</name>
     <message>
-        <location filename="src/video.cpp" line="287"/>
         <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="292"/>
-        <source>Network error: %1 for %2</source>
-        <translation>Ağ hatası: %2 için  %1</translation>
-    </message>
 </context>
 <context>
     <name>YTRegions</name>
     <message>
-        <location filename="src/ytregions.cpp" line="28"/>
         <source>Algeria</source>
         <translation>Cezayir</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="29"/>
         <source>Argentina</source>
         <translation>Arjantin</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="30"/>
         <source>Australia</source>
         <translation>Avustralya</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="31"/>
         <source>Belgium</source>
         <translation>Belçika</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="32"/>
         <source>Brazil</source>
         <translation>Brezilya</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="33"/>
         <source>Canada</source>
         <translation>Kanada</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="34"/>
         <source>Chile</source>
         <translation>Şili</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="35"/>
         <source>Colombia</source>
         <translation>Kolombiya</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="36"/>
         <source>Czech Republic</source>
         <translation>Çek Cumhuriyeti</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="37"/>
         <source>Egypt</source>
         <translation>Mısır</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="38"/>
         <source>France</source>
         <translation>Fransa</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="39"/>
         <source>Germany</source>
         <translation>Almanya</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="40"/>
         <source>Ghana</source>
         <translation>Gana</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="41"/>
         <source>Greece</source>
         <translation>Yunanistan</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="42"/>
         <source>Hong Kong</source>
         <translation>Hong Kong</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="43"/>
         <source>Hungary</source>
         <translation>Macaristan</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="44"/>
         <source>India</source>
         <translation>Hindistan</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="45"/>
         <source>Indonesia</source>
         <translation>Endonezya</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="46"/>
         <source>Ireland</source>
         <translation>İrlanda</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="47"/>
         <source>Israel</source>
         <translation>İsrail</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="48"/>
         <source>Italy</source>
         <translation>İtalya</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="49"/>
         <source>Japan</source>
         <translation>Japonya</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="50"/>
         <source>Jordan</source>
         <translation>Ürdün</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="51"/>
         <source>Kenya</source>
         <translation>Kenya</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="52"/>
         <source>Malaysia</source>
         <translation>Malezya</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="53"/>
         <source>Mexico</source>
         <translation>Meksika</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="54"/>
         <source>Morocco</source>
         <translation>Fas</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="55"/>
         <source>Netherlands</source>
         <translation>Hollanda</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="56"/>
         <source>New Zealand</source>
         <translation>Yeni Zelanda</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="57"/>
         <source>Nigeria</source>
         <translation>Nijerya</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="58"/>
         <source>Peru</source>
         <translation>Peru</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="59"/>
         <source>Philippines</source>
         <translation>Filipinler</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="60"/>
         <source>Poland</source>
         <translation>Polonya</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="61"/>
         <source>Russia</source>
         <translation>Rusya</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="62"/>
         <source>Saudi Arabia</source>
         <translation>Suudi Arabistan</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="63"/>
         <source>Singapore</source>
         <translation>Singapur</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="64"/>
         <source>South Africa</source>
         <translation>Güney Afrika</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="65"/>
         <source>South Korea</source>
         <translation>Güney Kore</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="66"/>
         <source>Spain</source>
         <translation>İspanya</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="67"/>
         <source>Sweden</source>
         <translation>İsviçre</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="68"/>
         <source>Taiwan</source>
         <translation>Tayvan</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="69"/>
         <source>Tunisia</source>
         <translation>Tunus</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="70"/>
         <source>Turkey</source>
         <translation>Türkiye</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="71"/>
         <source>Uganda</source>
         <translation>Uganda</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="72"/>
         <source>United Arab Emirates</source>
         <translation>Birleşik Arap Emirlikleri</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="73"/>
         <source>United Kingdom</source>
         <translation>İngiltere</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="74"/>
         <source>Yemen</source>
         <translation>Yemen</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="148"/>
         <source>Worldwide</source>
         <translation>Dünya Çapında</translation>
     </message>
index 860472008f484015a358981a99d109e4135b82b6..10dae88b8cecde58cf48f4a79ae0ea4af6ce1eb7 100644 (file)
@@ -2,67 +2,42 @@
 <context>
     <name>AboutView</name>
     <message>
-        <location filename="src/aboutview.cpp" line="58"/>
         <source>There&apos;s life outside the browser!</source>
         <translation>За межами оглядача тенет також є життя!</translation>
     </message>
     <message>
-        <location filename="src/aboutview.cpp" line="59"/>
         <source>Version %1</source>
         <translation>Версія %1</translation>
     </message>
     <message>
-        <location filename="src/aboutview.cpp" line="64"/>
         <source>Licensed to: %1</source>
         <translation>Ліцензія належить: %1</translation>
     </message>
     <message>
-        <location filename="src/aboutview.cpp" line="68"/>
         <source>%1 is Free Software but its development takes precious time.</source>
         <translation>%1 — вільне проґрамне забезпечення, але на його розробку було затрачено коштовний час.</translation>
     </message>
     <message>
-        <location filename="src/aboutview.cpp" line="69"/>
         <source>Please &lt;a href=&apos;%1&apos;&gt;donate&lt;/a&gt; to support the continued development of %2.</source>
         <translation>Будь ласка, &lt;a href=&apos;%1&apos;&gt;внесіть пожертву,&lt;/a&gt; аби підтримати подальший розвиток %2.</translation>
     </message>
     <message>
-        <location filename="src/aboutview.cpp" line="73"/>
-        <source>You may want to try my other apps as well:</source>
-        <translation>Спробуйте інші проґрами:</translation>
-    </message>
-    <message>
-        <location filename="src/aboutview.cpp" line="76"/>
-        <source>%1, a YouTube music player</source>
-        <translation>%1, музичний програвач для YouTube </translation>
-    </message>
-    <message>
-        <location filename="src/aboutview.cpp" line="80"/>
-        <source>%1, a music player</source>
-        <translation>%1, музичний програвач</translation>
-    </message>
-    <message>
-        <location filename="src/aboutview.cpp" line="86"/>
         <source>Translate %1 to your native language using %2</source>
         <translation>Перекласти %1 Вашою рідною мовою за допомогою %2</translation>
     </message>
     <message>
-        <location filename="src/aboutview.cpp" line="91"/>
         <source>Icon designed by %1.</source>
         <translation>Розробник піктоґрам %1.</translation>
     </message>
     <message>
-        <location filename="src/aboutview.cpp" line="95"/>
         <source>Released under the &lt;a href=&apos;%1&apos;&gt;GNU General Public License&lt;/a&gt;</source>
         <translation>Випущено за &lt;a href=&apos;%1&apos;&gt;Загальною громадською ліцензією GNU&lt;/a&gt;</translation>
     </message>
     <message>
-        <location filename="src/aboutview.cpp" line="110"/>
         <source>&amp;Close</source>
         <translation>&amp;Закрити</translation>
     </message>
     <message>
-        <location filename="src/aboutview.h" line="40"/>
         <source>About</source>
         <translation>Про проґраму</translation>
     </message>
 <context>
     <name>ActivationDialog</name>
     <message>
-        <location filename="local/src/activationdialog.cpp" line="17"/>
         <source>Enter your License Details</source>
         <translation>Уведіть дані Вашої ліцензії</translation>
     </message>
     <message>
-        <location filename="local/src/activationdialog.cpp" line="29"/>
         <source>&amp;Email:</source>
         <translation>&amp;Email:</translation>
     </message>
     <message>
-        <location filename="local/src/activationdialog.cpp" line="35"/>
         <source>&amp;Code:</source>
         <translation>&amp;Код:</translation>
     </message>
 <context>
     <name>ActivationView</name>
     <message>
-        <location filename="local/src/activationview.cpp" line="47"/>
         <source>Please license %1</source>
         <translation>  
 Ліцензуйте %1</translation>
     </message>
     <message>
-        <location filename="local/src/activationview.cpp" line="51"/>
         <source>This demo has expired.</source>
         <translation>Пробний період вичерпано.</translation>
     </message>
     <message>
-        <location filename="local/src/activationview.cpp" line="53"/>
         <source>The full version allows you to watch videos without interruptions.</source>
-        <oldsource>The full version allows you to download videos longer than %1 minutes and to watch videos without interruptions.</oldsource>
         <translation>Повна версія дозволяє дивитися видиво без перерв.</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>
     </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>
     </message>
     <message>
-        <location filename="local/src/activationview.cpp" line="70"/>
         <source>Use Demo</source>
         <translation>Демонстрація</translation>
     </message>
     <message>
-        <location filename="local/src/activationview.cpp" line="77"/>
         <source>Enter License</source>
         <translation>Увести ліцензію</translation>
     </message>
     <message>
-        <location filename="local/src/activationview.cpp" line="85"/>
         <source>Buy License</source>
         <translation>Придбати ліцензію</translation>
     </message>
 </context>
+<context>
+    <name>AppWidget</name>
+    <message>
+        <source>Download</source>
+        <translation>Завантажити</translation>
+    </message>
+</context>
 <context>
     <name>ChannelAggregator</name>
     <message>
-        <location filename="src/channelaggregator.cpp" line="183"/>
         <source>By %1</source>
         <translation>За %1</translation>
     </message>
     <message numerus="yes">
-        <location filename="src/channelaggregator.cpp" line="185"/>
         <source>You have %n new video(s)</source>
         <translation type="unfinished"><numerusform></numerusform><numerusform></numerusform><numerusform></numerusform></translation>
     </message>
 <context>
     <name>ChannelItemDelegate</name>
     <message>
-        <location filename="src/channelitemdelegate.cpp" line="67"/>
         <source>All Videos</source>
         <translation>Усі видива</translation>
     </message>
     <message>
-        <location filename="src/channelitemdelegate.cpp" line="85"/>
         <source>Unwatched Videos</source>
         <translation>Не переглянуті видива</translation>
     </message>
 <context>
     <name>ChannelView</name>
     <message>
-        <location filename="src/channelview.cpp" line="151"/>
-        <source>Mark all as watched</source>
-        <translation>Позначити все переглянутим</translation>
-    </message>
-    <message>
-        <location filename="src/channelview.cpp" line="159"/>
-        <source>Show Updated</source>
-        <translation>Показати оновлені</translation>
-    </message>
-    <message>
-        <location filename="src/channelview.cpp" line="103"/>
         <source>Name</source>
         <translation>Назва</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="110"/>
         <source>Last Updated</source>
         <translation>Нещодавно оновлені</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="117"/>
         <source>Last Added</source>
         <translation>Нещодавно додані</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="124"/>
         <source>Last Watched</source>
         <translation>Нещодавно переглянуті</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="131"/>
         <source>Most Watched</source>
         <translation>Найбільш переглядаюче</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="139"/>
         <source>Sort by</source>
         <translation>Сортувати за</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="222"/>
+        <source>Mark all as watched</source>
+        <translation>Позначити все переглянутим</translation>
+    </message>
+    <message>
+        <source>Show Updated</source>
+        <translation>Показати оновлені</translation>
+    </message>
+    <message>
         <source>All Videos</source>
         <translation>Усі видива</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="226"/>
         <source>Unwatched Videos</source>
         <translation>Не переглянуті видива</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="244"/>
         <source>Mark as Watched</source>
         <translation>Позначити як переглянуте</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="257"/>
         <source>Unsubscribe</source>
         <translation>Відмовитися від підписки</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="270"/>
         <source>There are no updated subscriptions at this time.</source>
         <translation>Наразі оновлень підписок немає.</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="272"/>
         <source>You have no subscriptions. Use the star symbol to subscribe to channels.</source>
         <translation>У Вас немає підписок. Використовуйте символ зірочки, аби підписуватися на канали.</translation>
     </message>
 <context>
     <name>ClearButton</name>
     <message>
-        <location filename="src/exlineedit.cpp" line="6"/>
         <source>Clear</source>
         <translation>Очистити</translation>
     </message>
 <context>
     <name>DataUtils</name>
     <message>
-        <location filename="src/datautils.cpp" line="88"/>
         <source>Just now</source>
-        <translation type="unfinished"/>
+        <translation>Тільки що</translation>
     </message>
     <message numerus="yes">
-        <location filename="src/datautils.cpp" line="90"/>
-        <source>%n minute(s) ago</source>
-        <translation type="unfinished"><numerusform></numerusform><numerusform></numerusform><numerusform></numerusform></translation>
-    </message>
-    <message numerus="yes">
-        <location filename="src/datautils.cpp" line="92"/>
         <source>%n hour(s) ago</source>
         <translation type="unfinished"><numerusform></numerusform><numerusform></numerusform><numerusform></numerusform></translation>
     </message>
     <message numerus="yes">
-        <location filename="src/datautils.cpp" line="94"/>
         <source>%n day(s) ago</source>
         <translation type="unfinished"><numerusform></numerusform><numerusform></numerusform><numerusform></numerusform></translation>
     </message>
     <message numerus="yes">
-        <location filename="src/datautils.cpp" line="96"/>
         <source>%n weeks(s) ago</source>
         <translation type="unfinished"><numerusform></numerusform><numerusform></numerusform><numerusform></numerusform></translation>
     </message>
     <message numerus="yes">
-        <location filename="src/datautils.cpp" line="98"/>
         <source>%n month(s) ago</source>
         <translation type="unfinished"><numerusform></numerusform><numerusform></numerusform><numerusform></numerusform></translation>
     </message>
 <context>
     <name>DownloadItem</name>
     <message>
-        <location filename="src/downloaditem.cpp" line="406"/>
         <source>bytes</source>
         <translation>байтів</translation>
     </message>
     <message>
-        <location filename="src/downloaditem.cpp" line="409"/>
         <source>KB</source>
         <translation>КБ</translation>
     </message>
     <message>
-        <location filename="src/downloaditem.cpp" line="412"/>
         <source>MB</source>
         <translation>МБ</translation>
     </message>
     <message>
-        <location filename="src/downloaditem.cpp" line="421"/>
         <source>bytes/sec</source>
         <translation>байтів/сек</translation>
     </message>
     <message>
-        <location filename="src/downloaditem.cpp" line="424"/>
         <source>KB/sec</source>
         <translation>КБ/сек</translation>
     </message>
     <message>
-        <location filename="src/downloaditem.cpp" line="427"/>
         <source>MB/sec</source>
         <translation>МБ/сек</translation>
     </message>
     <message>
-        <location filename="src/downloaditem.cpp" line="433"/>
         <source>seconds</source>
         <translation>секунд</translation>
     </message>
     <message>
-        <location filename="src/downloaditem.cpp" line="436"/>
         <source>minutes</source>
         <translation>хвилин</translation>
     </message>
     <message>
-        <location filename="src/downloaditem.cpp" line="439"/>
         <source>%4 %5 remaining</source>
         <translation>залишилося %4 %5</translation>
     </message>
 <context>
     <name>DownloadManager</name>
     <message>
-        <location filename="src/downloadmanager.cpp" line="77"/>
         <source>This is just the demo version of %1.</source>
         <translation>Це демонстраційна версія %1.</translation>
     </message>
     <message>
-        <location filename="src/downloadmanager.cpp" line="79"/>
         <source>It can only download videos shorter than %1 minutes so you can test the download functionality.</source>
         <translation>Із метою тестування, Ви можете завантажити видиво тривалістю до %1 хв. </translation>
     </message>
     <message>
-        <location filename="src/downloadmanager.cpp" line="85"/>
         <source>Continue</source>
         <translation>Продовжити</translation>
     </message>
     <message>
-        <location filename="src/downloadmanager.cpp" line="86"/>
         <source>Get the full version</source>
         <translation>Отримати повну версію</translation>
     </message>
     <message>
-        <location filename="src/downloadmanager.cpp" line="157"/>
         <source>%1 downloaded in %2</source>
         <translation>%1 завантажений до %2</translation>
     </message>
     <message>
-        <location filename="src/downloadmanager.cpp" line="160"/>
         <source>Download finished</source>
         <translation>Завантаження завершено</translation>
     </message>
     <message numerus="yes">
-        <location filename="src/downloadmanager.cpp" line="165"/>
         <source>%n Download(s)</source>
         <translation type="unfinished"><numerusform></numerusform><numerusform></numerusform><numerusform></numerusform></translation>
     </message>
 <context>
     <name>DownloadSettings</name>
     <message>
-        <location filename="src/downloadsettings.cpp" line="36"/>
         <source>Change location...</source>
         <translation>Змінити теку для завантаження...</translation>
     </message>
     <message>
-        <location filename="src/downloadsettings.cpp" line="69"/>
         <source>Choose the download location</source>
         <translation>Оберіть теку для завантаження</translation>
     </message>
     <message>
-        <location filename="src/downloadsettings.cpp" line="81"/>
         <source>Download location changed.</source>
         <translation>Теку завантаження змінено.</translation>
     </message>
     <message>
-        <location filename="src/downloadsettings.cpp" line="83"/>
         <source>Current downloads will still go in the previous location.</source>
         <translation>Поточні завантаження буде, як і раніше, збережено у попередньому місці.</translation>
     </message>
     <message>
-        <location filename="src/downloadsettings.cpp" line="94"/>
         <source>Downloading to: %1</source>
         <translation>Завантажується до %1</translation>
     </message>
 <context>
     <name>DownloadView</name>
     <message>
-        <location filename="src/downloadview.cpp" line="38"/>
-        <location filename="src/downloadview.h" line="45"/>
         <source>Downloads</source>
         <translation>Завантаження</translation>
     </message>
 </context>
-<context>
-    <name>DownloadWidget</name>
-    <message>
-        <location filename="local/src/updatedialog.cpp" line="60"/>
-        <source>Downloading update...</source>
-        <translation>Завантаження оновлення...</translation>
-    </message>
-</context>
 <context>
     <name>Extra</name>
     <message>
-        <location filename="local/src/extra.cpp" line="251"/>
         <source>The executable file has been tempered with, maybe by a virus.</source>
-        <translation type="unfinished"/>
+        <translation>Виконуваний файл було пошкоджено, може бути, вірус.</translation>
     </message>
     <message>
-        <location filename="local/src/extra.cpp" line="252"/>
         <source>%1 will not run. Try installing again.</source>
-        <translation type="unfinished"/>
+        <translation>%1 не запущено. Спробуйте встановити ще раз.</translation>
     </message>
     <message>
-        <location filename="local/src/extra.cpp" line="253"/>
         <source>Quit</source>
         <translation>Вийти</translation>
     </message>
     <message>
-        <location filename="local/src/extra.cpp" line="254"/>
         <source>Reinstall</source>
         <translation>Перевстановити</translation>
     </message>
 <context>
     <name>GlobalShortcuts</name>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="36"/>
         <source>Play</source>
         <translation>Грати</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="37"/>
         <source>Pause</source>
         <translation>Призупинити</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="38"/>
         <source>Play/Pause</source>
         <translation>Грати/Призупинити</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="39"/>
         <source>Stop</source>
         <translation>Зупинити</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="40"/>
         <source>Stop playing after current track</source>
         <translation>Зупинити після завершення поточного</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="41"/>
         <source>Next track</source>
         <translation>Наступний трек</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="42"/>
         <source>Previous track</source>
         <translation>Попередній трек</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="43"/>
         <source>Increase volume</source>
         <translation>Збільшити гучність</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="44"/>
         <source>Decrease volume</source>
         <translation>Зменшити гучність</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="45"/>
         <source>Mute</source>
         <translation>Приглушити</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="46"/>
         <source>Seek forward</source>
         <translation>Перемотати вперед</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="47"/>
         <source>Seek backward</source>
         <translation>Перемотати назад</translation>
     </message>
 <context>
     <name>HomeView</name>
     <message>
-        <location filename="src/homeview.cpp" line="58"/>
         <source>Search</source>
         <translation>Шукати</translation>
     </message>
     <message>
-        <location filename="src/homeview.cpp" line="60"/>
         <source>Find videos and channels by keyword</source>
         <translation>Знайти видива та канали за ключовими словами</translation>
     </message>
     <message>
-        <location filename="src/homeview.cpp" line="65"/>
         <source>Browse</source>
         <translation>Переглянути</translation>
     </message>
     <message>
-        <location filename="src/homeview.cpp" line="67"/>
         <source>Browse videos by category</source>
         <translation>Оглянути видива за катеґоріями</translation>
     </message>
     <message>
-        <location filename="src/homeview.cpp" line="71"/>
         <source>Subscriptions</source>
         <translation>Підписки</translation>
     </message>
     <message>
-        <location filename="src/homeview.cpp" line="73"/>
         <source>Channel subscriptions</source>
         <translation>Підписки на канали</translation>
     </message>
     <message>
-        <location filename="src/homeview.h" line="44"/>
         <source>Make yourself comfortable</source>
         <translation>Влаштовуйтесь якнайзручніше</translation>
     </message>
 <context>
     <name>LoadingWidget</name>
     <message>
-        <location filename="src/loadingwidget.cpp" line="125"/>
         <source>Error</source>
         <translation>Помилка</translation>
     </message>
 <context>
     <name>MainWindow</name>
     <message>
-        <location filename="src/mainwindow.cpp" line="291"/>
+        <source>&amp;Window</source>
+        <translation>&amp;Вікно</translation>
+    </message>
+    <message>
+        <source>&amp;Minimize</source>
+        <translation>&amp;Згорнути</translation>
+    </message>
+    <message>
         <source>&amp;Stop</source>
         <translation>&amp;Зупинити</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="292"/>
         <source>Stop playback and go back to the search view</source>
         <translation>Зупинити відтворення та перейти до вікна пошуку</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="307"/>
+        <source>P&amp;revious</source>
+        <translation>По&amp;передній</translation>
+    </message>
+    <message>
+        <source>Go back to the previous track</source>
+        <translation>Повернутися до попереднього треку</translation>
+    </message>
+    <message>
         <source>S&amp;kip</source>
         <translation>П&amp;ропустити</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="308"/>
         <source>Skip to the next video</source>
         <translation>Перейти до наступного видива</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1134"/>
-        <source>&amp;Pause</source>
-        <translation>&amp;Призупинити</translation>
+        <source>&amp;Play</source>
+        <translation>&amp;Грати</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1135"/>
-        <source>Pause playback</source>
-        <translation>Призупинити відтворення</translation>
+        <source>Resume playback</source>
+        <translation>Відновити відтворення</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="321"/>
         <source>&amp;Full Screen</source>
         <translation>&amp;Повноекранний режим</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="322"/>
         <source>Go full screen</source>
         <translation>Перейти до повноекранного режиму</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="336"/>
+        <source>&amp;Compact Mode</source>
+        <translation>Компак&amp;тний режим</translation>
+    </message>
+    <message>
         <source>Hide the playlist and the toolbar</source>
         <translation>Сховати перелік та панель інструментів</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="349"/>
+        <source>Open the &amp;YouTube Page</source>
+        <translation>Від&amp;крити сторінку YouTube</translation>
+    </message>
+    <message>
         <source>Go to the YouTube video page and pause playback</source>
         <translation>Відкрити сторінку YouTube та призупинити відтворення видива</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="356"/>
+        <source>Copy the YouTube &amp;Link</source>
+        <translation>Копіювати &amp;посилання на YouTube</translation>
+    </message>
+    <message>
         <source>Copy the current video YouTube link to the clipboard</source>
         <translation>Скопіювати YouTube посилання поточного видива до буферу</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="363"/>
+        <source>Copy the Video Stream &amp;URL</source>
+        <translation>Копіювати посилання на ви&amp;диво потік</translation>
+    </message>
+    <message>
         <source>Copy the current video stream URL to the clipboard</source>
         <translation>Скопіювати посилання поточного видива до буферу</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="370"/>
+        <source>Find Video &amp;Parts</source>
+        <translation>Знайти &amp;фраґменти видива</translation>
+    </message>
+    <message>
         <source>Find other video parts hopefully in the right order</source>
         <translation>Знайти інші частини видива, сподіваюся, у правильному порядку</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="376"/>
         <source>&amp;Remove</source>
         <translation>&amp;Вилучити</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="377"/>
         <source>Remove the selected videos from the playlist</source>
         <translation>Вилучити обрані видива з переліку</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="383"/>
         <source>Move &amp;Up</source>
         <translation>До&amp;гори</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="384"/>
         <source>Move up the selected videos in the playlist</source>
         <translation>Перемістити обране видиво догори у переліку</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="390"/>
         <source>Move &amp;Down</source>
         <translation>Дони&amp;зу</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="391"/>
         <source>Move down the selected videos in the playlist</source>
         <translation>Перемістити обране видиво донизу в переліку</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="402"/>
+        <source>&amp;Clear Recent Searches</source>
+        <translation>О&amp;чистити останні пошукові запити</translation>
+    </message>
+    <message>
         <source>Clear the search history. Cannot be undone.</source>
         <translation>Очистити історію пошуку (зміни незворотні).</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="407"/>
         <source>&amp;Quit</source>
         <translation>&amp;Вийти</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="410"/>
         <source>Bye</source>
         <translation>Бувайте</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="414"/>
         <source>&amp;Website</source>
         <translation>&amp;Веб-сайт</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="416"/>
         <source>%1 on the Web</source>
         <translation>%1 у мережі</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="422"/>
+        <source>Make a &amp;Donation</source>
+        <translation>Підтрима&amp;йте проєкт</translation>
+    </message>
+    <message>
         <source>Please support the continued development of %1</source>
         <translation>Будь ласка, підтримайте подальший розвиток %1</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="427"/>
         <source>&amp;About</source>
         <translation>&amp;Про проґраму</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="429"/>
         <source>Info about %1</source>
         <translation>Інформація про %1</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="437"/>
         <source>Search</source>
         <translation>Шукати</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="456"/>
         <source>Mute volume</source>
         <translation>Приглушити гучність</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="490"/>
-        <location filename="src/mainwindow.cpp" line="1609"/>
+        <source>&amp;Manually Start Playing</source>
+        <translation>&amp;Почати відтворення самотужки</translation>
+    </message>
+    <message>
+        <source>Manually start playing videos</source>
+        <translation>Почати відтворення видива самотужки</translation>
+    </message>
+    <message>
         <source>&amp;Downloads</source>
         <translation>&amp;Завантаження</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="491"/>
         <source>Show details about video downloads</source>
         <translation>Показати деталі про видива, що завантажуються</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="499"/>
         <source>&amp;Download</source>
         <translation>&amp;Завантажити</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="500"/>
         <source>Download the current video</source>
         <translation>Завантажити це видиво</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="510"/>
         <source>Take &amp;Snapshot</source>
         <translation>Зробити &amp;Зняток</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="517"/>
         <source>&amp;Subscribe to Channel</source>
         <translation>&amp;Підписатися на канал</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="525"/>
         <source>Share the current video using %1</source>
         <translation>Поділитися поточним видивом за допомогою %1</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="545"/>
         <source>&amp;Email</source>
         <translation>&amp;Email</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="546"/>
         <source>Email</source>
         <translation>Email</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="551"/>
         <source>&amp;Close</source>
         <translation>&amp;Закрити</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="561"/>
         <source>&amp;Float on Top</source>
         <translation>&amp;Згори всіх вікон</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="566"/>
         <source>&amp;Adjust Window Size</source>
         <translation>&amp;Змінити розмір вікна</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="571"/>
         <source>&amp;Stop After This Video</source>
         <translation>Зу&amp;пинити після цього видиво</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="578"/>
         <source>&amp;Report an Issue...</source>
         <translation>По&amp;відомити про помилку</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="582"/>
         <source>&amp;Refine Search...</source>
         <translation>&amp;Уточнити пошук...</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="594"/>
         <source>More...</source>
         <translation>Більше...</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="597"/>
         <source>&amp;Related Videos</source>
         <translation>Схо&amp;жі видива</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="599"/>
         <source>Watch videos related to the current one</source>
         <translation>Дивитися видива, пов’язані з поточним</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="605"/>
         <source>Open in &amp;Browser...</source>
         <translation>Відкрити в &amp;оглядачі тенет...</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="612"/>
-        <source>&amp;Love %1? Rate it!</source>
-        <translation>&amp;Подобається %1? Оцініть !</translation>
+        <source>Restricted Mode</source>
+        <translation>Обмежений режим</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="633"/>
-        <source>&amp;Application</source>
-        <translation>&amp;Застосунок</translation>
+        <source>Hide videos that may contain inappropriate content</source>
+        <translation>Приховати відео, які можуть містити небажаний контент</translation>
+    </message>
+    <message>
+        <source>&amp;Love %1? Rate it!</source>
+        <translation>&amp;Подобається %1? Оцініть !</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="618"/>
         <source>Buy %1...</source>
         <translation>Придбати %1...</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="647"/>
+        <source>&amp;Application</source>
+        <translation>&amp;Застосунок</translation>
+    </message>
+    <message>
         <source>&amp;Playback</source>
         <translation>&amp;Відтворення</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="661"/>
         <source>&amp;Playlist</source>
         <translation>&amp;Перелік відтворення</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="670"/>
         <source>&amp;Video</source>
         <translation>&amp;Видиво</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="686"/>
-        <source>&amp;View</source>
-        <translation>&amp;Переглянути</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="695"/>
         <source>&amp;Share</source>
         <translation>&amp;Поділитися</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="709"/>
+        <source>&amp;View</source>
+        <translation>&amp;Переглянути</translation>
+    </message>
+    <message>
         <source>&amp;Help</source>
         <translation>&amp;Довідка</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="751"/>
         <source>Press %1 to raise the volume, %2 to lower it</source>
         <translation>Натисніть %1, аби приглушити гучність, та %2, щоб її відновити</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1021"/>
-        <location filename="src/mainwindow.cpp" line="1027"/>
+        <source>Choose your content location</source>
+        <translation>Оберіть своє місцерозташування</translation>
+    </message>
+    <message>
         <source>Opening %1</source>
         <translation>Відкриття %1</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1080"/>
         <source>Do you want to exit %1 with a download in progress?</source>
         <translation>Триває завантаження, бажаєте закрити %1?</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1081"/>
         <source>If you close %1 now, this download will be cancelled.</source>
         <translation>Якщо закрити %1 негайно, усі завантаження буде скасовано.</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1086"/>
         <source>Close and cancel download</source>
         <translation>Скасувати та закрити</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1087"/>
         <source>Wait for download to finish</source>
         <translation>Дочекатися завершення</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1158"/>
-        <source>&amp;Loading...</source>
-        <translation>&amp;Завантажити...</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="1264"/>
-        <source>Leave &amp;Full Screen</source>
-        <translation>Вийти з &amp;повноекранного режиму</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="1718"/>
-        <source>%1 version %2 is now available.</source>
-        <translation>%1 версія %2 доступна.</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="1722"/>
-        <source>Remind me later</source>
-        <translation>Нагадати мені пізніше</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="1723"/>
-        <source>Update</source>
-        <translation>Оновлення</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="1127"/>
         <source>Error: %1</source>
         <translation>Помилка: %1</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="300"/>
-        <source>P&amp;revious</source>
-        <translation>По&amp;передній</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="301"/>
-        <source>Go back to the previous track</source>
-        <translation>Повернутися до попереднього треку</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="335"/>
-        <source>&amp;Compact Mode</source>
-        <translation>Компак&amp;тний режим</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="348"/>
-        <source>Open the &amp;YouTube Page</source>
-        <translation>Від&amp;крити сторінку YouTube</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="355"/>
-        <source>Copy the YouTube &amp;Link</source>
-        <translation>Копіювати &amp;посилання на YouTube</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="362"/>
-        <source>Copy the Video Stream &amp;URL</source>
-        <translation>Копіювати посилання на ви&amp;диво потік</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="369"/>
-        <source>Find Video &amp;Parts</source>
-        <translation>Знайти &amp;фраґменти видива</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="397"/>
-        <source>&amp;Clear Recent Searches</source>
-        <translation>О&amp;чистити останні пошукові запити</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="421"/>
-        <source>Make a &amp;Donation</source>
-        <translation>Підтрима&amp;йте проєкт</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="483"/>
-        <source>&amp;Manually Start Playing</source>
-        <translation>&amp;Почати відтворення самотужки</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="484"/>
-        <source>Manually start playing videos</source>
-        <translation>Почати відтворення видива самотужки</translation>
+        <source>&amp;Pause</source>
+        <translation>&amp;Призупинити</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="847"/>
-        <source>Choose your content location</source>
-        <translation>Оберіть своє місцерозташування</translation>
+        <source>Pause playback</source>
+        <translation>Призупинити відтворення</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="314"/>
-        <location filename="src/mainwindow.cpp" line="1142"/>
-        <location filename="src/mainwindow.cpp" line="1150"/>
-        <source>&amp;Play</source>
-        <translation>&amp;Грати</translation>
+        <source>&amp;Loading...</source>
+        <translation>&amp;Завантажити...</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="315"/>
-        <location filename="src/mainwindow.cpp" line="1143"/>
-        <location filename="src/mainwindow.cpp" line="1151"/>
-        <source>Resume playback</source>
-        <translation>Відновити відтворення</translation>
+        <source>Leave &amp;Full Screen</source>
+        <translation>Вийти з &amp;повноекранного режиму</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1437"/>
         <source>Remaining time: %1</source>
         <translation>Залишилося часу: %1</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1528"/>
         <source>Volume at %1%</source>
         <translation>Гучність %1%</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1534"/>
         <source>Volume is muted</source>
         <translation>Гучність приглушено</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1537"/>
         <source>Volume is unmuted</source>
         <translation>Гучність відновлено</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1548"/>
         <source>Maximum video definition set to %1</source>
         <translation>Режим чіткості видива %1</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1595"/>
         <source>Your privacy is now safe</source>
         <translation>Ваша приватність тепер у безпеці</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1610"/>
         <source>Downloads complete</source>
         <translation>Завантаження завершено</translation>
     </message>
+    <message>
+        <source>%1 version %2 is now available.</source>
+        <translation>%1 версія %2 доступна.</translation>
+    </message>
+    <message>
+        <source>Remind me later</source>
+        <translation>Нагадати мені пізніше</translation>
+    </message>
+    <message>
+        <source>Update</source>
+        <translation>Оновлення</translation>
+    </message>
 </context>
 <context>
     <name>MediaView</name>
     <message>
-        <location filename="src/mediaview.cpp" line="702"/>
         <source>You can now paste the YouTube link into another application</source>
         <translation>Тепер Ви можете використовувати YouTube посилання на видиво у зовнішній проґрамі</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="710"/>
         <source>You can now paste the video stream URL into another application</source>
         <translation>Тепер Ви можете використовувати посилання на видиво у зовнішній проґрамі</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="711"/>
         <source>The link will be valid only for a limited time.</source>
         <translation>Посилання буде дійсне лише протягом обмеженого часу.</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="800"/>
         <source>This is just the demo version of %1.</source>
         <translation>&gt;Це демонстраційна версія %1.</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="801"/>
         <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="833"/>
+        <source>Get the full version</source>
+        <translation>Отримати повну версію</translation>
+    </message>
+    <message>
         <source>Continue</source>
         <translation>Продовжити</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="988"/>
+        <source>Downloading %1</source>
+        <translation>Завантаження %1</translation>
+    </message>
+    <message>
         <source>of</source>
         <comment>Used in video parts, as in '2 of 3'</comment>
         <translation>з</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="1001"/>
         <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="1003"/>
         <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="1096"/>
         <source>Sent from %1</source>
         <translation>Надіслати з %1</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="1128"/>
         <source>Unsubscribe from %1</source>
         <translation>Відписатися %1</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="1132"/>
         <source>Subscribe to %1</source>
         <translation>Підписуватися на %1</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="1166"/>
         <source>Unsubscribed from %1</source>
-        <translation type="unfinished"/>
+        <translation>Відписані від %1</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="1169"/>
         <source>Subscribed to %1</source>
-        <translation type="unfinished"/>
-    </message>
-    <message>
-        <location filename="src/mediaview.cpp" line="808"/>
-        <source>Get the full version</source>
-        <translation>Отримати повну версію</translation>
-    </message>
-    <message>
-        <location filename="src/mediaview.cpp" line="847"/>
-        <source>Downloading %1</source>
-        <translation>Завантаження %1</translation>
+        <translation>Підписані на %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>Доступна нова версія %1!</translation>
     </message>
     <message>
-        <location filename="local/src/updatedialog.cpp" line="28"/>
         <source>%1 %2 is now available. You have %3.</source>
         <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>Бажаєте завантажити це зараз?</translation>
     </message>
     <message>
-        <location filename="local/src/updatedialog.cpp" line="39"/>
         <source>Skip This Version</source>
         <translation>Пропустити цю версію</translation>
     </message>
     <message>
-        <location filename="local/src/updatedialog.cpp" line="43"/>
         <source>Remind Me Later</source>
         <translation>Нагадати пізніше</translation>
     </message>
     <message>
-        <location filename="local/src/updatedialog.cpp" line="47"/>
         <source>Install Update</source>
         <translation>Встановити оновлення</translation>
     </message>
 <context>
     <name>PasteLineEdit</name>
     <message>
-        <location filename="local/src/pastelineedit.cpp" line="6"/>
         <source>Paste</source>
         <translation>Вставити</translation>
     </message>
 <context>
     <name>PlaylistItemDelegate</name>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="209"/>
         <source>%1 views</source>
         <translation>%1 переглядів</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="309"/>
         <source>%1 of %2 (%3) — %4</source>
         <translation>%1 з %2 (%3) — %4</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="316"/>
         <source>Preparing</source>
         <translation>Підготовка</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="318"/>
         <source>Failed</source>
         <translation>Невдача</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="320"/>
         <source>Completed</source>
         <translation>Виконано</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="322"/>
         <source>Stopped</source>
         <translation>Зупинено</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="358"/>
         <source>Stop downloading</source>
         <translation>Зупинити завантаження</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="368"/>
         <source>Show in %1</source>
         <translation>Відтворити у %1</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="370"/>
         <source>Open parent folder</source>
         <translation>Перейти до теки з видивами</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="379"/>
         <source>Restart downloading</source>
         <translation>Завантажити заново</translation>
     </message>
 <context>
     <name>PlaylistModel</name>
     <message>
-        <location filename="src/playlistmodel.cpp" line="70"/>
         <source>Searching...</source>
         <translation>Пошук...</translation>
     </message>
     <message>
-        <location filename="src/playlistmodel.cpp" line="71"/>
         <source>Show %1 More</source>
         <translation>Наступні %1 </translation>
     </message>
     <message>
-        <location filename="src/playlistmodel.cpp" line="72"/>
         <source>No videos</source>
         <translation>Нічого не знайдено</translation>
     </message>
     <message>
-        <location filename="src/playlistmodel.cpp" line="73"/>
         <source>No more videos</source>
         <translation>Більше немає</translation>
     </message>
 <context>
     <name>RefineSearchWidget</name>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="49"/>
         <source>Sort by</source>
         <translation>Сортувати за</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="53"/>
         <source>Relevance</source>
         <translation>Релевантністю</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="54"/>
-        <location filename="src/refinesearchwidget.cpp" line="69"/>
         <source>Date</source>
         <translation>Датою</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="55"/>
         <source>View Count</source>
         <translation>Числом переглядів</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="56"/>
         <source>Rating</source>
         <translation>Рейтинґом</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="73"/>
         <source>Anytime</source>
         <translation>У будь-який час</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="74"/>
         <source>Today</source>
         <translation>Сьогодні</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="75"/>
         <source>7 Days</source>
         <translation>7 днів</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="76"/>
         <source>30 Days</source>
         <translation>30 днів</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="89"/>
         <source>Duration</source>
         <translation>Тривалістю</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="93"/>
-        <location filename="src/refinesearchwidget.cpp" line="119"/>
         <source>All</source>
         <translation>Усі</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="94"/>
         <source>Short</source>
         <translation>Короткі</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="95"/>
         <source>Medium</source>
         <translation>Середні</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="96"/>
         <source>Long</source>
         <translation>Довгі</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="99"/>
         <source>Less than 4 minutes</source>
         <translation>Коротші за 4 хвилини</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="100"/>
         <source>Between 4 and 20 minutes</source>
         <translation>Між 4 та 20 хвилинами</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="101"/>
         <source>Longer than 20 minutes</source>
         <translation>Довші, аніж 20 хвилин</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="115"/>
         <source>Quality</source>
         <translation>Якість</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="120"/>
         <source>High Definition</source>
         <translation>Висока роздільна здатність</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="123"/>
         <source>720p or higher</source>
         <translation>720p або більше</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="136"/>
         <source>Done</source>
         <translation>Готово</translation>
     </message>
 <context>
     <name>RegionsView</name>
     <message>
-        <location filename="src/regionsview.cpp" line="39"/>
         <source>Done</source>
         <translation>Готово</translation>
     </message>
 <context>
     <name>SearchLineEdit</name>
     <message>
-        <location filename="src/searchlineedit.cpp" line="55"/>
         <source>Search</source>
         <translation>Шукати</translation>
     </message>
 <context>
     <name>SearchView</name>
     <message>
-        <location filename="src/searchview.cpp" line="83"/>
         <source>Welcome to &lt;a href=&apos;%1&apos;&gt;%2&lt;/a&gt;,</source>
         <translation>Ласкаво просимо до &lt;a href=&apos;%1&apos;&gt;%2&lt;/a&gt;,</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="200"/>
-        <source>Get the full version</source>
-        <translation>Отримати повну версію</translation>
-    </message>
-    <message>
-        <location filename="src/searchview.cpp" line="110"/>
         <source>Enter</source>
         <extracomment>&quot;Enter&quot;, as in &quot;type&quot;. The whole phrase says: &quot;Enter a keyword to start watching videos&quot;</extracomment>
         <translation>Уведіть</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="117"/>
         <source>a keyword</source>
         <translation>запит</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="118"/>
         <source>a channel</source>
         <translation>канал</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="125"/>
         <source>to start watching videos.</source>
         <translation>аби розпочати перегляд.</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="156"/>
         <source>Watch</source>
         <translation>Дивитися</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="174"/>
         <source>Recent keywords</source>
         <translation>Нещодавній пошук</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="186"/>
         <source>Recent channels</source>
         <translation>Останні канали</translation>
     </message>
+    <message>
+        <source>Get the full version</source>
+        <translation>Отримати повну версію</translation>
+    </message>
 </context>
 <context>
     <name>SidebarHeader</name>
     <message>
-        <location filename="src/sidebarheader.cpp" line="38"/>
-        <location filename="src/sidebarheader.cpp" line="45"/>
         <source>&amp;Back</source>
         <translation>Н&amp;азад</translation>
     </message>
     <message>
-        <location filename="src/sidebarheader.cpp" line="76"/>
         <source>Forward to %1</source>
         <translation>Уперед до %1</translation>
     </message>
     <message>
-        <location filename="src/sidebarheader.cpp" line="89"/>
         <source>Back to %1</source>
         <translation>Назад до %1</translation>
     </message>
 <context>
     <name>SidebarWidget</name>
     <message>
-        <location filename="src/sidebarwidget.cpp" line="68"/>
         <source>Refine Search</source>
         <translation>Уточнити пошук</translation>
     </message>
     <message>
-        <location filename="src/sidebarwidget.cpp" line="167"/>
         <source>Did you mean: %1</source>
         <translation>Можливо, Ви мали на увазі: %1</translation>
     </message>
 <context>
     <name>SnapshotSettings</name>
     <message>
-        <location filename="src/snapshotsettings.cpp" line="47"/>
         <source>Change location...</source>
         <translation>Змінити теку для завантаження...</translation>
     </message>
     <message>
-        <location filename="src/snapshotsettings.cpp" line="64"/>
         <source>Snapshot saved to %1</source>
         <translation>Зняток збережено в %1</translation>
     </message>
     <message>
-        <location filename="src/snapshotsettings.cpp" line="117"/>
         <source>Snapshots location changed.</source>
         <translation>Місцезнаходження знятків змінено.</translation>
     </message>
 <context>
     <name>StandardFeedsView</name>
     <message>
-        <location filename="src/standardfeedsview.cpp" line="107"/>
         <source>Most Popular</source>
         <translation>Найпопулярніші</translation>
     </message>
 </context>
+<context>
+    <name>UpdateDialog</name>
+    <message>
+        <source>Downloading update...</source>
+        <translation>Завантаження оновлення...</translation>
+    </message>
+    <message>
+        <source>Downloading %1...</source>
+        <translation>Завантаження %1...</translation>
+    </message>
+</context>
 <context>
     <name>Video</name>
     <message>
-        <location filename="src/video.cpp" line="287"/>
         <source>Cannot get video stream for %1</source>
         <translation>Не вдалося отримати видивопотік для %1</translation>
     </message>
-    <message>
-        <location filename="src/video.cpp" line="292"/>
-        <source>Network error: %1 for %2</source>
-        <translation>Помилка мережі: %1 для %2</translation>
-    </message>
 </context>
 <context>
     <name>YTRegions</name>
     <message>
-        <location filename="src/ytregions.cpp" line="28"/>
         <source>Algeria</source>
         <translation>Алжир</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="29"/>
         <source>Argentina</source>
         <translation>Аргентина</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="30"/>
         <source>Australia</source>
         <translation>Австралія</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="31"/>
         <source>Belgium</source>
         <translation>Бельґія</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="32"/>
         <source>Brazil</source>
         <translation>Бразилія</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="33"/>
         <source>Canada</source>
         <translation>Канада</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="34"/>
         <source>Chile</source>
         <translation>Чилі</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="35"/>
         <source>Colombia</source>
         <translation>Колумбія</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="36"/>
         <source>Czech Republic</source>
         <translation>Чехія</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="37"/>
         <source>Egypt</source>
         <translation>Єгипет</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="38"/>
         <source>France</source>
         <translation>Франція</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="39"/>
         <source>Germany</source>
         <translation>Німеччина</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="40"/>
         <source>Ghana</source>
         <translation>Ґана</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="41"/>
         <source>Greece</source>
         <translation>Ґреція</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="42"/>
         <source>Hong Kong</source>
         <translation>Гонконґ</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="43"/>
         <source>Hungary</source>
         <translation>Угорщина</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="44"/>
         <source>India</source>
         <translation>Індія</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="45"/>
         <source>Indonesia</source>
         <translation>Індонезія</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="46"/>
         <source>Ireland</source>
         <translation>Ірландія</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="47"/>
         <source>Israel</source>
         <translation>Ізраїль</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="48"/>
         <source>Italy</source>
         <translation>Італія</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="49"/>
         <source>Japan</source>
         <translation>Японія</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="50"/>
         <source>Jordan</source>
         <translation>Йорданія</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="51"/>
         <source>Kenya</source>
         <translation>Кенія</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="52"/>
         <source>Malaysia</source>
         <translation>Малайзія</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="53"/>
         <source>Mexico</source>
         <translation>Мексика</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="54"/>
         <source>Morocco</source>
         <translation>Марокко</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="55"/>
         <source>Netherlands</source>
         <translation>Нідерланди</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="56"/>
         <source>New Zealand</source>
         <translation>Нова Зеландія</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="57"/>
         <source>Nigeria</source>
         <translation>Ніґерія</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="58"/>
         <source>Peru</source>
         <translation>Перу</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="59"/>
         <source>Philippines</source>
         <translation>Філіппіни</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="60"/>
         <source>Poland</source>
         <translation>Польща</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="61"/>
         <source>Russia</source>
         <translation>Російська Федерація</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="62"/>
         <source>Saudi Arabia</source>
         <translation>Саудівська Аравія</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="63"/>
         <source>Singapore</source>
         <translation>Синґапур</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="64"/>
         <source>South Africa</source>
         <translation>ПАР</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="65"/>
         <source>South Korea</source>
         <translation>Республіка Корея</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="66"/>
         <source>Spain</source>
         <translation>Іспанія</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="67"/>
         <source>Sweden</source>
         <translation>Швеція</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="68"/>
         <source>Taiwan</source>
         <translation>Тайвань</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="69"/>
         <source>Tunisia</source>
         <translation>Туніс</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="70"/>
         <source>Turkey</source>
         <translation>Туреччина</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="71"/>
         <source>Uganda</source>
         <translation>Уґанда</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="72"/>
         <source>United Arab Emirates</source>
         <translation>ОАЕ</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="73"/>
         <source>United Kingdom</source>
         <translation>Великобританія</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="74"/>
         <source>Yemen</source>
         <translation>Ємен</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="148"/>
         <source>Worldwide</source>
         <translation>Світовий</translation>
     </message>
index 85f04d7038616a16d6771b6ad8a961c359af1d6f..50a6fb7031fd8f12b74eeead0508824bc1b4efc4 100644 (file)
@@ -2,67 +2,42 @@
 <context>
     <name>AboutView</name>
     <message>
-        <location filename="src/aboutview.cpp" line="58"/>
         <source>There&apos;s life outside the browser!</source>
         <translation>За межами оглядача тенет також є життя!</translation>
     </message>
     <message>
-        <location filename="src/aboutview.cpp" line="59"/>
         <source>Version %1</source>
         <translation>Версія %1</translation>
     </message>
     <message>
-        <location filename="src/aboutview.cpp" line="64"/>
         <source>Licensed to: %1</source>
         <translation>Ліцензія належить: %1</translation>
     </message>
     <message>
-        <location filename="src/aboutview.cpp" line="68"/>
         <source>%1 is Free Software but its development takes precious time.</source>
         <translation>%1 — вільне проґрамне забезпечення, але на його розробку було затрачено коштовний час.</translation>
     </message>
     <message>
-        <location filename="src/aboutview.cpp" line="69"/>
         <source>Please &lt;a href=&apos;%1&apos;&gt;donate&lt;/a&gt; to support the continued development of %2.</source>
         <translation>Будь ласка, &lt;a href=&apos;%1&apos;&gt;внесіть пожертву,&lt;/a&gt; аби підтримати подальший розвиток %2.</translation>
     </message>
     <message>
-        <location filename="src/aboutview.cpp" line="73"/>
-        <source>You may want to try my other apps as well:</source>
-        <translation>Спробуйте інші проґрами:</translation>
-    </message>
-    <message>
-        <location filename="src/aboutview.cpp" line="76"/>
-        <source>%1, a YouTube music player</source>
-        <translation>%1, музичний програвач для YouTube </translation>
-    </message>
-    <message>
-        <location filename="src/aboutview.cpp" line="80"/>
-        <source>%1, a music player</source>
-        <translation>%1, музичний програвач</translation>
-    </message>
-    <message>
-        <location filename="src/aboutview.cpp" line="86"/>
         <source>Translate %1 to your native language using %2</source>
         <translation>Перекласти %1 Вашою рідною мовою за допомогою %2</translation>
     </message>
     <message>
-        <location filename="src/aboutview.cpp" line="91"/>
         <source>Icon designed by %1.</source>
         <translation>Розробник піктоґрам %1.</translation>
     </message>
     <message>
-        <location filename="src/aboutview.cpp" line="95"/>
         <source>Released under the &lt;a href=&apos;%1&apos;&gt;GNU General Public License&lt;/a&gt;</source>
         <translation>Випущено за &lt;a href=&apos;%1&apos;&gt;Загальною громадською ліцензією GNU&lt;/a&gt;</translation>
     </message>
     <message>
-        <location filename="src/aboutview.cpp" line="110"/>
         <source>&amp;Close</source>
         <translation>&amp;Закрити</translation>
     </message>
     <message>
-        <location filename="src/aboutview.h" line="40"/>
         <source>About</source>
         <translation>Про проґраму</translation>
     </message>
 <context>
     <name>ActivationDialog</name>
     <message>
-        <location filename="local/src/activationdialog.cpp" line="17"/>
         <source>Enter your License Details</source>
         <translation>Уведіть дані Вашої ліцензії</translation>
     </message>
     <message>
-        <location filename="local/src/activationdialog.cpp" line="29"/>
         <source>&amp;Email:</source>
         <translation>&amp;Email:</translation>
     </message>
     <message>
-        <location filename="local/src/activationdialog.cpp" line="35"/>
         <source>&amp;Code:</source>
         <translation>&amp;Код:</translation>
     </message>
 <context>
     <name>ActivationView</name>
     <message>
-        <location filename="local/src/activationview.cpp" line="47"/>
         <source>Please license %1</source>
         <translation>  
 Ліцензуйте %1</translation>
     </message>
     <message>
-        <location filename="local/src/activationview.cpp" line="51"/>
         <source>This demo has expired.</source>
         <translation>Пробний період вичерпано.</translation>
     </message>
     <message>
-        <location filename="local/src/activationview.cpp" line="53"/>
         <source>The full version allows you to watch videos without interruptions.</source>
-        <oldsource>The full version allows you to download videos longer than %1 minutes and to watch videos without interruptions.</oldsource>
         <translation>Повна версія дозволяє дивитися видиво без перерв.</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>
     </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>
     </message>
     <message>
-        <location filename="local/src/activationview.cpp" line="70"/>
         <source>Use Demo</source>
         <translation>Демонстрація</translation>
     </message>
     <message>
-        <location filename="local/src/activationview.cpp" line="77"/>
         <source>Enter License</source>
         <translation>Увести ліцензію</translation>
     </message>
     <message>
-        <location filename="local/src/activationview.cpp" line="85"/>
         <source>Buy License</source>
         <translation>Придбати ліцензію</translation>
     </message>
 </context>
+<context>
+    <name>AppWidget</name>
+    <message>
+        <source>Download</source>
+        <translation type="unfinished"/>
+    </message>
+</context>
 <context>
     <name>ChannelAggregator</name>
     <message>
-        <location filename="src/channelaggregator.cpp" line="183"/>
         <source>By %1</source>
         <translation>За %1</translation>
     </message>
     <message numerus="yes">
-        <location filename="src/channelaggregator.cpp" line="185"/>
         <source>You have %n new video(s)</source>
         <translation type="unfinished"><numerusform></numerusform><numerusform></numerusform><numerusform></numerusform></translation>
     </message>
 <context>
     <name>ChannelItemDelegate</name>
     <message>
-        <location filename="src/channelitemdelegate.cpp" line="67"/>
         <source>All Videos</source>
         <translation>Усі видива</translation>
     </message>
     <message>
-        <location filename="src/channelitemdelegate.cpp" line="85"/>
         <source>Unwatched Videos</source>
         <translation>Не переглянуті видива</translation>
     </message>
 <context>
     <name>ChannelView</name>
     <message>
-        <location filename="src/channelview.cpp" line="151"/>
-        <source>Mark all as watched</source>
-        <translation>Позначити все переглянутим</translation>
-    </message>
-    <message>
-        <location filename="src/channelview.cpp" line="159"/>
-        <source>Show Updated</source>
-        <translation>Показати оновлені</translation>
-    </message>
-    <message>
-        <location filename="src/channelview.cpp" line="103"/>
         <source>Name</source>
         <translation>Назва</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="110"/>
         <source>Last Updated</source>
         <translation>Нещодавно оновлені</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="117"/>
         <source>Last Added</source>
         <translation>Нещодавно додані</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="124"/>
         <source>Last Watched</source>
         <translation>Нещодавно переглянуті</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="131"/>
         <source>Most Watched</source>
         <translation>Найбільш переглядаюче</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="139"/>
         <source>Sort by</source>
         <translation>Сортувати за</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="222"/>
+        <source>Mark all as watched</source>
+        <translation>Позначити все переглянутим</translation>
+    </message>
+    <message>
+        <source>Show Updated</source>
+        <translation>Показати оновлені</translation>
+    </message>
+    <message>
         <source>All Videos</source>
         <translation>Усі видива</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="226"/>
         <source>Unwatched Videos</source>
         <translation>Не переглянуті видива</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="244"/>
         <source>Mark as Watched</source>
         <translation>Позначити як переглянуте</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="257"/>
         <source>Unsubscribe</source>
         <translation>Відмовитися від підписки</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="270"/>
         <source>There are no updated subscriptions at this time.</source>
         <translation>Наразі оновлень підписок немає.</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="272"/>
         <source>You have no subscriptions. Use the star symbol to subscribe to channels.</source>
         <translation>У Вас немає підписок. Використовуйте символ зірочки, аби підписуватися на канали.</translation>
     </message>
 <context>
     <name>ClearButton</name>
     <message>
-        <location filename="src/exlineedit.cpp" line="6"/>
         <source>Clear</source>
         <translation>Очистити</translation>
     </message>
 <context>
     <name>DataUtils</name>
     <message>
-        <location filename="src/datautils.cpp" line="88"/>
         <source>Just now</source>
-        <translation>Тільки зараз</translation>
-    </message>
-    <message numerus="yes">
-        <location filename="src/datautils.cpp" line="90"/>
-        <source>%n minute(s) ago</source>
-        <translation type="unfinished"><numerusform></numerusform><numerusform></numerusform><numerusform></numerusform></translation>
+        <translation>Тільки що</translation>
     </message>
     <message numerus="yes">
-        <location filename="src/datautils.cpp" line="92"/>
         <source>%n hour(s) ago</source>
         <translation type="unfinished"><numerusform></numerusform><numerusform></numerusform><numerusform></numerusform></translation>
     </message>
     <message numerus="yes">
-        <location filename="src/datautils.cpp" line="94"/>
         <source>%n day(s) ago</source>
         <translation type="unfinished"><numerusform></numerusform><numerusform></numerusform><numerusform></numerusform></translation>
     </message>
     <message numerus="yes">
-        <location filename="src/datautils.cpp" line="96"/>
         <source>%n weeks(s) ago</source>
         <translation type="unfinished"><numerusform></numerusform><numerusform></numerusform><numerusform></numerusform></translation>
     </message>
     <message numerus="yes">
-        <location filename="src/datautils.cpp" line="98"/>
         <source>%n month(s) ago</source>
         <translation type="unfinished"><numerusform></numerusform><numerusform></numerusform><numerusform></numerusform></translation>
     </message>
 <context>
     <name>DownloadItem</name>
     <message>
-        <location filename="src/downloaditem.cpp" line="406"/>
         <source>bytes</source>
         <translation>байтів</translation>
     </message>
     <message>
-        <location filename="src/downloaditem.cpp" line="409"/>
         <source>KB</source>
         <translation>КБ</translation>
     </message>
     <message>
-        <location filename="src/downloaditem.cpp" line="412"/>
         <source>MB</source>
         <translation>МБ</translation>
     </message>
     <message>
-        <location filename="src/downloaditem.cpp" line="421"/>
         <source>bytes/sec</source>
         <translation>байтів/сек</translation>
     </message>
     <message>
-        <location filename="src/downloaditem.cpp" line="424"/>
         <source>KB/sec</source>
         <translation>КБ/сек</translation>
     </message>
     <message>
-        <location filename="src/downloaditem.cpp" line="427"/>
         <source>MB/sec</source>
         <translation>МБ/сек</translation>
     </message>
     <message>
-        <location filename="src/downloaditem.cpp" line="433"/>
         <source>seconds</source>
         <translation>секунд</translation>
     </message>
     <message>
-        <location filename="src/downloaditem.cpp" line="436"/>
         <source>minutes</source>
         <translation>хвилин</translation>
     </message>
     <message>
-        <location filename="src/downloaditem.cpp" line="439"/>
         <source>%4 %5 remaining</source>
         <translation>залишилося %4 %5</translation>
     </message>
 <context>
     <name>DownloadManager</name>
     <message>
-        <location filename="src/downloadmanager.cpp" line="77"/>
         <source>This is just the demo version of %1.</source>
         <translation>Це демонстраційна версія %1.</translation>
     </message>
     <message>
-        <location filename="src/downloadmanager.cpp" line="79"/>
         <source>It can only download videos shorter than %1 minutes so you can test the download functionality.</source>
         <translation>Із метою тестування, Ви можете завантажити видиво тривалістю до %1 хв. </translation>
     </message>
     <message>
-        <location filename="src/downloadmanager.cpp" line="85"/>
         <source>Continue</source>
         <translation>Продовжити</translation>
     </message>
     <message>
-        <location filename="src/downloadmanager.cpp" line="86"/>
         <source>Get the full version</source>
         <translation>Отримати повну версію</translation>
     </message>
     <message>
-        <location filename="src/downloadmanager.cpp" line="157"/>
         <source>%1 downloaded in %2</source>
         <translation>%1 завантажений до %2</translation>
     </message>
     <message>
-        <location filename="src/downloadmanager.cpp" line="160"/>
         <source>Download finished</source>
         <translation>Завантаження завершено</translation>
     </message>
     <message numerus="yes">
-        <location filename="src/downloadmanager.cpp" line="165"/>
         <source>%n Download(s)</source>
         <translation type="unfinished"><numerusform></numerusform><numerusform></numerusform><numerusform></numerusform></translation>
     </message>
 <context>
     <name>DownloadSettings</name>
     <message>
-        <location filename="src/downloadsettings.cpp" line="36"/>
         <source>Change location...</source>
         <translation>Змінити теку для завантаження...</translation>
     </message>
     <message>
-        <location filename="src/downloadsettings.cpp" line="69"/>
         <source>Choose the download location</source>
         <translation>Оберіть теку для завантаження</translation>
     </message>
     <message>
-        <location filename="src/downloadsettings.cpp" line="81"/>
         <source>Download location changed.</source>
         <translation>Теку завантаження змінено.</translation>
     </message>
     <message>
-        <location filename="src/downloadsettings.cpp" line="83"/>
         <source>Current downloads will still go in the previous location.</source>
         <translation>Поточні завантаження буде, як і раніше, збережено у попередньому місці.</translation>
     </message>
     <message>
-        <location filename="src/downloadsettings.cpp" line="94"/>
         <source>Downloading to: %1</source>
         <translation>Завантажується до %1</translation>
     </message>
 <context>
     <name>DownloadView</name>
     <message>
-        <location filename="src/downloadview.cpp" line="38"/>
-        <location filename="src/downloadview.h" line="45"/>
         <source>Downloads</source>
         <translation>Завантаження</translation>
     </message>
 </context>
-<context>
-    <name>DownloadWidget</name>
-    <message>
-        <location filename="local/src/updatedialog.cpp" line="60"/>
-        <source>Downloading update...</source>
-        <translation>Завантаження оновлення...</translation>
-    </message>
-</context>
 <context>
     <name>Extra</name>
     <message>
-        <location filename="local/src/extra.cpp" line="251"/>
         <source>The executable file has been tempered with, maybe by a virus.</source>
-        <translation type="unfinished"/>
+        <translation>Виконуваний файл було пошкоджено, може бути, вірус.</translation>
     </message>
     <message>
-        <location filename="local/src/extra.cpp" line="252"/>
         <source>%1 will not run. Try installing again.</source>
-        <translation>%1 Ð½Ðµ Ð±Ñ\83де Ð¿Ñ\80аÑ\86Ñ\8eваÑ\82и. Ð¡Ð¿Ñ\80обÑ\83йÑ\82е Ð²Ñ\81Ñ\82ановиÑ\82и Ð·Ð°Ð½Ð¾Ð²Ð¾</translation>
+        <translation>%1 Ð½Ðµ Ð·Ð°Ð¿Ñ\83Ñ\89ено. Ð¡Ð¿Ñ\80обÑ\83йÑ\82е Ð²Ñ\81Ñ\82ановиÑ\82и Ñ\89е Ñ\80аз.</translation>
     </message>
     <message>
-        <location filename="local/src/extra.cpp" line="253"/>
         <source>Quit</source>
         <translation>Вийти</translation>
     </message>
     <message>
-        <location filename="local/src/extra.cpp" line="254"/>
         <source>Reinstall</source>
         <translation>Перевстановити</translation>
     </message>
 <context>
     <name>GlobalShortcuts</name>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="36"/>
         <source>Play</source>
         <translation>Грати</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="37"/>
         <source>Pause</source>
         <translation>Призупинити</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="38"/>
         <source>Play/Pause</source>
         <translation>Грати/Призупинити</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="39"/>
         <source>Stop</source>
         <translation>Зупинити</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="40"/>
         <source>Stop playing after current track</source>
         <translation>Зупинити після завершення поточного</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="41"/>
         <source>Next track</source>
         <translation>Наступний трек</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="42"/>
         <source>Previous track</source>
         <translation>Попередній трек</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="43"/>
         <source>Increase volume</source>
         <translation>Збільшити гучність</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="44"/>
         <source>Decrease volume</source>
         <translation>Зменшити гучність</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="45"/>
         <source>Mute</source>
         <translation>Приглушити</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="46"/>
         <source>Seek forward</source>
         <translation>Перемотати вперед</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="47"/>
         <source>Seek backward</source>
         <translation>Перемотати назад</translation>
     </message>
 <context>
     <name>HomeView</name>
     <message>
-        <location filename="src/homeview.cpp" line="58"/>
         <source>Search</source>
         <translation>Шукати</translation>
     </message>
     <message>
-        <location filename="src/homeview.cpp" line="60"/>
         <source>Find videos and channels by keyword</source>
         <translation>Знайти видива та канали за ключовими словами</translation>
     </message>
     <message>
-        <location filename="src/homeview.cpp" line="65"/>
         <source>Browse</source>
         <translation>Переглянути</translation>
     </message>
     <message>
-        <location filename="src/homeview.cpp" line="67"/>
         <source>Browse videos by category</source>
         <translation>Оглянути видива за катеґоріями</translation>
     </message>
     <message>
-        <location filename="src/homeview.cpp" line="71"/>
         <source>Subscriptions</source>
         <translation>Підписки</translation>
     </message>
     <message>
-        <location filename="src/homeview.cpp" line="73"/>
         <source>Channel subscriptions</source>
         <translation>Підписки на канали</translation>
     </message>
     <message>
-        <location filename="src/homeview.h" line="44"/>
         <source>Make yourself comfortable</source>
         <translation>Влаштовуйтесь якнайзручніше</translation>
     </message>
 <context>
     <name>LoadingWidget</name>
     <message>
-        <location filename="src/loadingwidget.cpp" line="125"/>
         <source>Error</source>
         <translation>Помилка</translation>
     </message>
 <context>
     <name>MainWindow</name>
     <message>
-        <location filename="src/mainwindow.cpp" line="291"/>
+        <source>&amp;Window</source>
+        <translation>&amp;Вікно</translation>
+    </message>
+    <message>
+        <source>&amp;Minimize</source>
+        <translation>&amp;Звернути</translation>
+    </message>
+    <message>
         <source>&amp;Stop</source>
         <translation>&amp;Зупинити</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="292"/>
         <source>Stop playback and go back to the search view</source>
         <translation>Зупинити відтворення та перейти до вікна пошуку</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="307"/>
+        <source>P&amp;revious</source>
+        <translation>По&amp;передній</translation>
+    </message>
+    <message>
+        <source>Go back to the previous track</source>
+        <translation>Повернутися до попереднього треку</translation>
+    </message>
+    <message>
         <source>S&amp;kip</source>
         <translation>П&amp;ропустити</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="308"/>
         <source>Skip to the next video</source>
         <translation>Перейти до наступного видива</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1134"/>
-        <source>&amp;Pause</source>
-        <translation>&amp;Призупинити</translation>
+        <source>&amp;Play</source>
+        <translation>&amp;Грати</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1135"/>
-        <source>Pause playback</source>
-        <translation>Призупинити відтворення</translation>
+        <source>Resume playback</source>
+        <translation>Відновити відтворення</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="321"/>
         <source>&amp;Full Screen</source>
         <translation>&amp;Повноекранний режим</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="322"/>
         <source>Go full screen</source>
         <translation>Перейти до повноекранного режиму</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="336"/>
+        <source>&amp;Compact Mode</source>
+        <translation>Компак&amp;тний режим</translation>
+    </message>
+    <message>
         <source>Hide the playlist and the toolbar</source>
         <translation>Сховати перелік та панель інструментів</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="349"/>
+        <source>Open the &amp;YouTube Page</source>
+        <translation>Від&amp;крити сторінку YouTube</translation>
+    </message>
+    <message>
         <source>Go to the YouTube video page and pause playback</source>
         <translation>Відкрити сторінку YouTube та призупинити відтворення видива</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="356"/>
+        <source>Copy the YouTube &amp;Link</source>
+        <translation>Копіювати &amp;посилання на YouTube</translation>
+    </message>
+    <message>
         <source>Copy the current video YouTube link to the clipboard</source>
         <translation>Скопіювати YouTube посилання поточного видива до буферу</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="363"/>
+        <source>Copy the Video Stream &amp;URL</source>
+        <translation>Копіювати посилання на ви&amp;диво потік</translation>
+    </message>
+    <message>
         <source>Copy the current video stream URL to the clipboard</source>
         <translation>Скопіювати посилання поточного видива до буферу</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="370"/>
+        <source>Find Video &amp;Parts</source>
+        <translation>Знайти &amp;фраґменти видива</translation>
+    </message>
+    <message>
         <source>Find other video parts hopefully in the right order</source>
         <translation>Знайти інші частини видива, сподіваюся, у правильному порядку</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="376"/>
         <source>&amp;Remove</source>
         <translation>&amp;Вилучити</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="377"/>
         <source>Remove the selected videos from the playlist</source>
         <translation>Вилучити обрані видива з переліку</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="383"/>
         <source>Move &amp;Up</source>
         <translation>До&amp;гори</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="384"/>
         <source>Move up the selected videos in the playlist</source>
         <translation>Перемістити обране видиво догори у переліку</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="390"/>
         <source>Move &amp;Down</source>
         <translation>Дони&amp;зу</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="391"/>
         <source>Move down the selected videos in the playlist</source>
         <translation>Перемістити обране видиво донизу в переліку</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="402"/>
+        <source>&amp;Clear Recent Searches</source>
+        <translation>О&amp;чистити останні пошукові запити</translation>
+    </message>
+    <message>
         <source>Clear the search history. Cannot be undone.</source>
         <translation>Очистити історію пошуку (зміни незворотні).</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="407"/>
         <source>&amp;Quit</source>
         <translation>&amp;Вийти</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="410"/>
         <source>Bye</source>
         <translation>Бувайте</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="414"/>
         <source>&amp;Website</source>
         <translation>&amp;Веб-сайт</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="416"/>
         <source>%1 on the Web</source>
         <translation>%1 у мережі</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="422"/>
+        <source>Make a &amp;Donation</source>
+        <translation>Підтрима&amp;йте проєкт</translation>
+    </message>
+    <message>
         <source>Please support the continued development of %1</source>
         <translation>Будь ласка, підтримайте подальший розвиток %1</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="427"/>
         <source>&amp;About</source>
         <translation>&amp;Про проґраму</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="429"/>
         <source>Info about %1</source>
         <translation>Інформація про %1</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="437"/>
         <source>Search</source>
         <translation>Шукати</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="456"/>
         <source>Mute volume</source>
         <translation>Приглушити гучність</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="490"/>
-        <location filename="src/mainwindow.cpp" line="1609"/>
+        <source>&amp;Manually Start Playing</source>
+        <translation>&amp;Почати відтворення самотужки</translation>
+    </message>
+    <message>
+        <source>Manually start playing videos</source>
+        <translation>Почати відтворення видива самотужки</translation>
+    </message>
+    <message>
         <source>&amp;Downloads</source>
         <translation>&amp;Завантаження</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="491"/>
         <source>Show details about video downloads</source>
         <translation>Показати деталі про видива, що завантажуються</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="499"/>
         <source>&amp;Download</source>
         <translation>&amp;Завантажити</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="500"/>
         <source>Download the current video</source>
         <translation>Завантажити це видиво</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="510"/>
         <source>Take &amp;Snapshot</source>
         <translation>Зробити &amp;Зняток</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="517"/>
         <source>&amp;Subscribe to Channel</source>
         <translation>&amp;Підписатися на канал</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="525"/>
         <source>Share the current video using %1</source>
         <translation>Поділитися поточним видивом за допомогою %1</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="545"/>
         <source>&amp;Email</source>
         <translation>&amp;Email</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="546"/>
         <source>Email</source>
         <translation>Email</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="551"/>
         <source>&amp;Close</source>
         <translation>&amp;Закрити</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="561"/>
         <source>&amp;Float on Top</source>
         <translation>&amp;Згори всіх вікон</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="566"/>
         <source>&amp;Adjust Window Size</source>
         <translation>&amp;Змінити розмір вікна</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="571"/>
         <source>&amp;Stop After This Video</source>
-        <translation>&amp;Зупинити після цього відео</translation>
+        <translation>Зу&amp;пинити після цього видиво</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="578"/>
         <source>&amp;Report an Issue...</source>
         <translation>По&amp;відомити про помилку</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="582"/>
         <source>&amp;Refine Search...</source>
         <translation>&amp;Уточнити пошук...</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="594"/>
         <source>More...</source>
         <translation>Більше...</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="597"/>
         <source>&amp;Related Videos</source>
-        <translation>&amp;Схожі відео</translation>
+        <translation>Схо&amp;жі видива</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="599"/>
         <source>Watch videos related to the current one</source>
-        <translation>Дивитися відео, пов’язані з поточним</translation>
+        <translation>Дивитися видива, пов’язані з поточним</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="605"/>
         <source>Open in &amp;Browser...</source>
         <translation>Відкрити в &amp;оглядачі тенет...</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="612"/>
-        <source>&amp;Love %1? Rate it!</source>
-        <translation>&amp;Подобається %1? Оцініть !</translation>
+        <source>Restricted Mode</source>
+        <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="633"/>
-        <source>&amp;Application</source>
-        <translation>&amp;Застосунок</translation>
+        <source>Hide videos that may contain inappropriate content</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <source>&amp;Love %1? Rate it!</source>
+        <translation>&amp;Подобається %1? Оцініть !</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="618"/>
         <source>Buy %1...</source>
         <translation>Придбати %1...</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="647"/>
+        <source>&amp;Application</source>
+        <translation>&amp;Застосунок</translation>
+    </message>
+    <message>
         <source>&amp;Playback</source>
         <translation>&amp;Відтворення</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="661"/>
         <source>&amp;Playlist</source>
         <translation>&amp;Перелік відтворення</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="670"/>
         <source>&amp;Video</source>
-        <translation>&amp;Відео</translation>
+        <translation>&amp;Видиво</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="686"/>
-        <source>&amp;View</source>
-        <translation>&amp;Переглянути</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="695"/>
         <source>&amp;Share</source>
         <translation>&amp;Поділитися</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="709"/>
+        <source>&amp;View</source>
+        <translation>&amp;Переглянути</translation>
+    </message>
+    <message>
         <source>&amp;Help</source>
         <translation>&amp;Довідка</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="751"/>
         <source>Press %1 to raise the volume, %2 to lower it</source>
         <translation>Натисніть %1, аби приглушити гучність, та %2, щоб її відновити</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1021"/>
-        <location filename="src/mainwindow.cpp" line="1027"/>
+        <source>Choose your content location</source>
+        <translation>Оберіть своє місцерозташування</translation>
+    </message>
+    <message>
         <source>Opening %1</source>
         <translation>Відкриття %1</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1080"/>
         <source>Do you want to exit %1 with a download in progress?</source>
         <translation>Триває завантаження, бажаєте закрити %1?</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1081"/>
         <source>If you close %1 now, this download will be cancelled.</source>
         <translation>Якщо закрити %1 негайно, усі завантаження буде скасовано.</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1086"/>
         <source>Close and cancel download</source>
         <translation>Скасувати та закрити</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1087"/>
         <source>Wait for download to finish</source>
         <translation>Дочекатися завершення</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1158"/>
-        <source>&amp;Loading...</source>
-        <translation>&amp;Завантаження...</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="1264"/>
-        <source>Leave &amp;Full Screen</source>
-        <translation>Вийти з &amp;повноекранного режиму</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="1718"/>
-        <source>%1 version %2 is now available.</source>
-        <translation>%1 версія %2 доступна.</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="1722"/>
-        <source>Remind me later</source>
-        <translation>Нагадати мені пізніше</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="1723"/>
-        <source>Update</source>
-        <translation>Оновлення</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="1127"/>
         <source>Error: %1</source>
         <translation>Помилка: %1</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="300"/>
-        <source>P&amp;revious</source>
-        <translation>По&amp;передній</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="301"/>
-        <source>Go back to the previous track</source>
-        <translation>Повернутися до попереднього треку</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="335"/>
-        <source>&amp;Compact Mode</source>
-        <translation>Компак&amp;тний режим</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="348"/>
-        <source>Open the &amp;YouTube Page</source>
-        <translation>Від&amp;крити сторінку YouTube</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="355"/>
-        <source>Copy the YouTube &amp;Link</source>
-        <translation>Копіювати &amp;посилання на YouTube</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="362"/>
-        <source>Copy the Video Stream &amp;URL</source>
-        <translation>Копіювати посилання на ві&amp;део-потік</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="369"/>
-        <source>Find Video &amp;Parts</source>
-        <translation>Знайти &amp;фраґменти видива</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="397"/>
-        <source>&amp;Clear Recent Searches</source>
-        <translation>О&amp;чистити останні пошукові запити</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="421"/>
-        <source>Make a &amp;Donation</source>
-        <translation>Підтрима&amp;йте проєкт</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="483"/>
-        <source>&amp;Manually Start Playing</source>
-        <translation>&amp;Почати відтворення самотужки</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="484"/>
-        <source>Manually start playing videos</source>
-        <translation>Почати відтворення видива самотужки</translation>
+        <source>&amp;Pause</source>
+        <translation>&amp;Призупинити</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="847"/>
-        <source>Choose your content location</source>
-        <translation>Оберіть своє місцерозташування</translation>
+        <source>Pause playback</source>
+        <translation>Призупинити відтворення</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="314"/>
-        <location filename="src/mainwindow.cpp" line="1142"/>
-        <location filename="src/mainwindow.cpp" line="1150"/>
-        <source>&amp;Play</source>
-        <translation>&amp;Грати</translation>
+        <source>&amp;Loading...</source>
+        <translation>&amp;Завантажити...</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="315"/>
-        <location filename="src/mainwindow.cpp" line="1143"/>
-        <location filename="src/mainwindow.cpp" line="1151"/>
-        <source>Resume playback</source>
-        <translation>Відновити відтворення</translation>
+        <source>Leave &amp;Full Screen</source>
+        <translation>Вийти з &amp;повноекранного режиму</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1437"/>
         <source>Remaining time: %1</source>
         <translation>Залишилося часу: %1</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1528"/>
         <source>Volume at %1%</source>
         <translation>Гучність %1%</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1534"/>
         <source>Volume is muted</source>
         <translation>Гучність приглушено</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1537"/>
         <source>Volume is unmuted</source>
         <translation>Гучність відновлено</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1548"/>
         <source>Maximum video definition set to %1</source>
         <translation>Режим чіткості видива %1</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1595"/>
         <source>Your privacy is now safe</source>
         <translation>Ваша приватність тепер у безпеці</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1610"/>
         <source>Downloads complete</source>
         <translation>Завантаження завершено</translation>
     </message>
+    <message>
+        <source>%1 version %2 is now available.</source>
+        <translation>%1 версія %2 доступна.</translation>
+    </message>
+    <message>
+        <source>Remind me later</source>
+        <translation>Нагадати мені пізніше</translation>
+    </message>
+    <message>
+        <source>Update</source>
+        <translation>Оновлення</translation>
+    </message>
 </context>
 <context>
     <name>MediaView</name>
     <message>
-        <location filename="src/mediaview.cpp" line="702"/>
         <source>You can now paste the YouTube link into another application</source>
         <translation>Тепер Ви можете використовувати YouTube посилання на видиво у зовнішній проґрамі</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="710"/>
         <source>You can now paste the video stream URL into another application</source>
         <translation>Тепер Ви можете використовувати посилання на видиво у зовнішній проґрамі</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="711"/>
         <source>The link will be valid only for a limited time.</source>
         <translation>Посилання буде дійсне лише протягом обмеженого часу.</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="800"/>
         <source>This is just the demo version of %1.</source>
         <translation>&gt;Це демонстраційна версія %1.</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="801"/>
         <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="833"/>
+        <source>Get the full version</source>
+        <translation>Отримати повну версію</translation>
+    </message>
+    <message>
         <source>Continue</source>
         <translation>Продовжити</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="988"/>
+        <source>Downloading %1</source>
+        <translation>Завантаження %1</translation>
+    </message>
+    <message>
         <source>of</source>
         <comment>Used in video parts, as in '2 of 3'</comment>
         <translation>з</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="1001"/>
         <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="1003"/>
         <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="1096"/>
         <source>Sent from %1</source>
         <translation>Надіслати з %1</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="1128"/>
         <source>Unsubscribe from %1</source>
         <translation>Відписатися %1</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="1132"/>
         <source>Subscribe to %1</source>
         <translation>Підписуватися на %1</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="1166"/>
         <source>Unsubscribed from %1</source>
-        <translation>Ð\9fÑ\96дпиÑ\81ка Ð½Ð° %1 Ð°Ð½Ñ\83лÑ\8cована</translation>
+        <translation>Ð\92Ñ\96дпиÑ\81анÑ\96 Ð²Ñ\96д %1</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="1169"/>
         <source>Subscribed to %1</source>
-        <translation>Підписка на %1 оформлена</translation>
-    </message>
-    <message>
-        <location filename="src/mediaview.cpp" line="808"/>
-        <source>Get the full version</source>
-        <translation>Отримати повну версію</translation>
-    </message>
-    <message>
-        <location filename="src/mediaview.cpp" line="847"/>
-        <source>Downloading %1</source>
-        <translation>Завантаження %1</translation>
+        <translation>Підписані на %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>Доступна нова версія %1!</translation>
     </message>
     <message>
-        <location filename="local/src/updatedialog.cpp" line="28"/>
         <source>%1 %2 is now available. You have %3.</source>
         <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>Бажаєте завантажити це зараз?</translation>
     </message>
     <message>
-        <location filename="local/src/updatedialog.cpp" line="39"/>
         <source>Skip This Version</source>
         <translation>Пропустити цю версію</translation>
     </message>
     <message>
-        <location filename="local/src/updatedialog.cpp" line="43"/>
         <source>Remind Me Later</source>
         <translation>Нагадати пізніше</translation>
     </message>
     <message>
-        <location filename="local/src/updatedialog.cpp" line="47"/>
         <source>Install Update</source>
         <translation>Встановити оновлення</translation>
     </message>
 <context>
     <name>PasteLineEdit</name>
     <message>
-        <location filename="local/src/pastelineedit.cpp" line="6"/>
         <source>Paste</source>
         <translation>Вставити</translation>
     </message>
 <context>
     <name>PlaylistItemDelegate</name>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="209"/>
         <source>%1 views</source>
         <translation>%1 переглядів</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="309"/>
         <source>%1 of %2 (%3) — %4</source>
         <translation>%1 з %2 (%3) — %4</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="316"/>
         <source>Preparing</source>
         <translation>Підготовка</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="318"/>
         <source>Failed</source>
         <translation>Невдача</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="320"/>
         <source>Completed</source>
         <translation>Виконано</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="322"/>
         <source>Stopped</source>
         <translation>Зупинено</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="358"/>
         <source>Stop downloading</source>
         <translation>Зупинити завантаження</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="368"/>
         <source>Show in %1</source>
         <translation>Відтворити у %1</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="370"/>
         <source>Open parent folder</source>
         <translation>Перейти до теки з видивами</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="379"/>
         <source>Restart downloading</source>
         <translation>Завантажити заново</translation>
     </message>
 <context>
     <name>PlaylistModel</name>
     <message>
-        <location filename="src/playlistmodel.cpp" line="70"/>
         <source>Searching...</source>
         <translation>Пошук...</translation>
     </message>
     <message>
-        <location filename="src/playlistmodel.cpp" line="71"/>
         <source>Show %1 More</source>
         <translation>Наступні %1 </translation>
     </message>
     <message>
-        <location filename="src/playlistmodel.cpp" line="72"/>
         <source>No videos</source>
         <translation>Нічого не знайдено</translation>
     </message>
     <message>
-        <location filename="src/playlistmodel.cpp" line="73"/>
         <source>No more videos</source>
         <translation>Більше немає</translation>
     </message>
 <context>
     <name>RefineSearchWidget</name>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="49"/>
         <source>Sort by</source>
         <translation>Сортувати за</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="53"/>
         <source>Relevance</source>
         <translation>Релевантністю</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="54"/>
-        <location filename="src/refinesearchwidget.cpp" line="69"/>
         <source>Date</source>
         <translation>Датою</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="55"/>
         <source>View Count</source>
         <translation>Числом переглядів</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="56"/>
         <source>Rating</source>
         <translation>Рейтинґом</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="73"/>
         <source>Anytime</source>
         <translation>У будь-який час</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="74"/>
         <source>Today</source>
         <translation>Сьогодні</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="75"/>
         <source>7 Days</source>
         <translation>7 днів</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="76"/>
         <source>30 Days</source>
         <translation>30 днів</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="89"/>
         <source>Duration</source>
         <translation>Тривалістю</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="93"/>
-        <location filename="src/refinesearchwidget.cpp" line="119"/>
         <source>All</source>
         <translation>Усі</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="94"/>
         <source>Short</source>
         <translation>Короткі</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="95"/>
         <source>Medium</source>
         <translation>Середні</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="96"/>
         <source>Long</source>
         <translation>Довгі</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="99"/>
         <source>Less than 4 minutes</source>
         <translation>Коротші за 4 хвилини</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="100"/>
         <source>Between 4 and 20 minutes</source>
         <translation>Між 4 та 20 хвилинами</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="101"/>
         <source>Longer than 20 minutes</source>
         <translation>Довші, аніж 20 хвилин</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="115"/>
         <source>Quality</source>
         <translation>Якість</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="120"/>
         <source>High Definition</source>
         <translation>Висока роздільна здатність</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="123"/>
         <source>720p or higher</source>
         <translation>720p або більше</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="136"/>
         <source>Done</source>
         <translation>Готово</translation>
     </message>
 <context>
     <name>RegionsView</name>
     <message>
-        <location filename="src/regionsview.cpp" line="39"/>
         <source>Done</source>
         <translation>Готово</translation>
     </message>
 <context>
     <name>SearchLineEdit</name>
     <message>
-        <location filename="src/searchlineedit.cpp" line="55"/>
         <source>Search</source>
         <translation>Шукати</translation>
     </message>
 <context>
     <name>SearchView</name>
     <message>
-        <location filename="src/searchview.cpp" line="83"/>
         <source>Welcome to &lt;a href=&apos;%1&apos;&gt;%2&lt;/a&gt;,</source>
         <translation>Ласкаво просимо до &lt;a href=&apos;%1&apos;&gt;%2&lt;/a&gt;,</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="200"/>
-        <source>Get the full version</source>
-        <translation>Отримати повну версію</translation>
-    </message>
-    <message>
-        <location filename="src/searchview.cpp" line="110"/>
         <source>Enter</source>
         <extracomment>&quot;Enter&quot;, as in &quot;type&quot;. The whole phrase says: &quot;Enter a keyword to start watching videos&quot;</extracomment>
         <translation>Уведіть</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="117"/>
         <source>a keyword</source>
         <translation>запит</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="118"/>
         <source>a channel</source>
         <translation>канал</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="125"/>
         <source>to start watching videos.</source>
         <translation>аби розпочати перегляд.</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="156"/>
         <source>Watch</source>
         <translation>Дивитися</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="174"/>
         <source>Recent keywords</source>
         <translation>Нещодавній пошук</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="186"/>
         <source>Recent channels</source>
         <translation>Останні канали</translation>
     </message>
+    <message>
+        <source>Get the full version</source>
+        <translation>Отримати повну версію</translation>
+    </message>
 </context>
 <context>
     <name>SidebarHeader</name>
     <message>
-        <location filename="src/sidebarheader.cpp" line="38"/>
-        <location filename="src/sidebarheader.cpp" line="45"/>
         <source>&amp;Back</source>
         <translation>Н&amp;азад</translation>
     </message>
     <message>
-        <location filename="src/sidebarheader.cpp" line="76"/>
         <source>Forward to %1</source>
         <translation>Уперед до %1</translation>
     </message>
     <message>
-        <location filename="src/sidebarheader.cpp" line="89"/>
         <source>Back to %1</source>
         <translation>Назад до %1</translation>
     </message>
 <context>
     <name>SidebarWidget</name>
     <message>
-        <location filename="src/sidebarwidget.cpp" line="68"/>
         <source>Refine Search</source>
         <translation>Уточнити пошук</translation>
     </message>
     <message>
-        <location filename="src/sidebarwidget.cpp" line="167"/>
         <source>Did you mean: %1</source>
         <translation>Можливо, Ви мали на увазі: %1</translation>
     </message>
 <context>
     <name>SnapshotSettings</name>
     <message>
-        <location filename="src/snapshotsettings.cpp" line="47"/>
         <source>Change location...</source>
         <translation>Змінити теку для завантаження...</translation>
     </message>
     <message>
-        <location filename="src/snapshotsettings.cpp" line="64"/>
         <source>Snapshot saved to %1</source>
         <translation>Зняток збережено в %1</translation>
     </message>
     <message>
-        <location filename="src/snapshotsettings.cpp" line="117"/>
         <source>Snapshots location changed.</source>
         <translation>Місцезнаходження знятків змінено.</translation>
     </message>
 <context>
     <name>StandardFeedsView</name>
     <message>
-        <location filename="src/standardfeedsview.cpp" line="107"/>
         <source>Most Popular</source>
         <translation>Найпопулярніші</translation>
     </message>
 </context>
+<context>
+    <name>UpdateDialog</name>
+    <message>
+        <source>Downloading update...</source>
+        <translation>Завантаження оновлення...</translation>
+    </message>
+    <message>
+        <source>Downloading %1...</source>
+        <translation type="unfinished"/>
+    </message>
+</context>
 <context>
     <name>Video</name>
     <message>
-        <location filename="src/video.cpp" line="287"/>
         <source>Cannot get video stream for %1</source>
         <translation>Не вдалося отримати видивопотік для %1</translation>
     </message>
-    <message>
-        <location filename="src/video.cpp" line="292"/>
-        <source>Network error: %1 for %2</source>
-        <translation>Помилка мережі: %1 для %2</translation>
-    </message>
 </context>
 <context>
     <name>YTRegions</name>
     <message>
-        <location filename="src/ytregions.cpp" line="28"/>
         <source>Algeria</source>
         <translation>Алжир</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="29"/>
         <source>Argentina</source>
         <translation>Аргентина</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="30"/>
         <source>Australia</source>
         <translation>Австралія</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="31"/>
         <source>Belgium</source>
         <translation>Бельґія</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="32"/>
         <source>Brazil</source>
         <translation>Бразилія</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="33"/>
         <source>Canada</source>
         <translation>Канада</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="34"/>
         <source>Chile</source>
         <translation>Чилі</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="35"/>
         <source>Colombia</source>
         <translation>Колумбія</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="36"/>
         <source>Czech Republic</source>
         <translation>Чехія</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="37"/>
         <source>Egypt</source>
         <translation>Єгипет</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="38"/>
         <source>France</source>
         <translation>Франція</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="39"/>
         <source>Germany</source>
         <translation>Німеччина</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="40"/>
         <source>Ghana</source>
         <translation>Ґана</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="41"/>
         <source>Greece</source>
         <translation>Ґреція</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="42"/>
         <source>Hong Kong</source>
         <translation>Гонконґ</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="43"/>
         <source>Hungary</source>
         <translation>Угорщина</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="44"/>
         <source>India</source>
         <translation>Індія</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="45"/>
         <source>Indonesia</source>
         <translation>Індонезія</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="46"/>
         <source>Ireland</source>
         <translation>Ірландія</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="47"/>
         <source>Israel</source>
         <translation>Ізраїль</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="48"/>
         <source>Italy</source>
         <translation>Італія</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="49"/>
         <source>Japan</source>
         <translation>Японія</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="50"/>
         <source>Jordan</source>
         <translation>Йорданія</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="51"/>
         <source>Kenya</source>
         <translation>Кенія</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="52"/>
         <source>Malaysia</source>
         <translation>Малайзія</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="53"/>
         <source>Mexico</source>
         <translation>Мексика</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="54"/>
         <source>Morocco</source>
         <translation>Марокко</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="55"/>
         <source>Netherlands</source>
         <translation>Нідерланди</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="56"/>
         <source>New Zealand</source>
         <translation>Нова Зеландія</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="57"/>
         <source>Nigeria</source>
         <translation>Ніґерія</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="58"/>
         <source>Peru</source>
         <translation>Перу</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="59"/>
         <source>Philippines</source>
         <translation>Філіппіни</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="60"/>
         <source>Poland</source>
         <translation>Польща</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="61"/>
         <source>Russia</source>
         <translation>Російська Федерація</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="62"/>
         <source>Saudi Arabia</source>
         <translation>Саудівська Аравія</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="63"/>
         <source>Singapore</source>
         <translation>Синґапур</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="64"/>
         <source>South Africa</source>
         <translation>ПАР</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="65"/>
         <source>South Korea</source>
         <translation>Республіка Корея</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="66"/>
         <source>Spain</source>
         <translation>Іспанія</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="67"/>
         <source>Sweden</source>
         <translation>Швеція</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="68"/>
         <source>Taiwan</source>
         <translation>Тайвань</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="69"/>
         <source>Tunisia</source>
         <translation>Туніс</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="70"/>
         <source>Turkey</source>
         <translation>Туреччина</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="71"/>
         <source>Uganda</source>
         <translation>Уґанда</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="72"/>
         <source>United Arab Emirates</source>
         <translation>ОАЕ</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="73"/>
         <source>United Kingdom</source>
         <translation>Великобританія</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="74"/>
         <source>Yemen</source>
         <translation>Ємен</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="148"/>
         <source>Worldwide</source>
         <translation>Світовий</translation>
     </message>
index 94ca7c7c3a99e99be631cdf73fbca929e68ddf8f..5517eaf6d4baad9dce032221518a886a17357543 100644 (file)
@@ -2,67 +2,42 @@
 <context>
     <name>AboutView</name>
     <message>
-        <location filename="src/aboutview.cpp" line="58"/>
         <source>There&apos;s life outside the browser!</source>
         <translation>Nên nhớ vẫn còn có nhiều điều thú vị hơn bên ngoài trình duyệt này!</translation>
     </message>
     <message>
-        <location filename="src/aboutview.cpp" line="59"/>
         <source>Version %1</source>
         <translation>Phiên bản %1</translation>
     </message>
     <message>
-        <location filename="src/aboutview.cpp" line="64"/>
         <source>Licensed to: %1</source>
         <translation>Giấy phép: %1</translation>
     </message>
     <message>
-        <location filename="src/aboutview.cpp" line="68"/>
         <source>%1 is Free Software but its development takes precious time.</source>
         <translation>%1 là phần mềm miễn phí nhưng quá trình phát triển phần mềm này mất rất nhiều thời gian cũng như tâm sức.</translation>
     </message>
     <message>
-        <location filename="src/aboutview.cpp" line="69"/>
         <source>Please &lt;a href=&apos;%1&apos;&gt;donate&lt;/a&gt; to support the continued development of %2.</source>
         <translation>Xin vui lòng &lt;a href=&apos;%1&apos;&gt;đóng góp về tài chính cho chúng tôi&lt;/a&gt; để hỗ trợ việc phát triển của %2.</translation>
     </message>
     <message>
-        <location filename="src/aboutview.cpp" line="73"/>
-        <source>You may want to try my other apps as well:</source>
-        <translation>Bạn có thể muốn thử các ứng dụng khác của tôi :</translation>
-    </message>
-    <message>
-        <location filename="src/aboutview.cpp" line="76"/>
-        <source>%1, a YouTube music player</source>
-        <translation>%1, là một trình nghe nhạc trên YouTube</translation>
-    </message>
-    <message>
-        <location filename="src/aboutview.cpp" line="80"/>
-        <source>%1, a music player</source>
-        <translation>%1, là một trình phát nhạc</translation>
-    </message>
-    <message>
-        <location filename="src/aboutview.cpp" line="86"/>
         <source>Translate %1 to your native language using %2</source>
         <translation>Chuyển ngữ %1 sang ngôn ngữ của bạn bằng cách sử dụng %2</translation>
     </message>
     <message>
-        <location filename="src/aboutview.cpp" line="91"/>
         <source>Icon designed by %1.</source>
         <translation>Biểu tượng được thiết kế bởi %1.</translation>
     </message>
     <message>
-        <location filename="src/aboutview.cpp" line="95"/>
         <source>Released under the &lt;a href=&apos;%1&apos;&gt;GNU General Public License&lt;/a&gt;</source>
         <translation>Được phát hành với điều khoản của &lt;a href=&apos;%1&apos;&gt;GNU General Public License&lt;/a&gt;</translation>
     </message>
     <message>
-        <location filename="src/aboutview.cpp" line="110"/>
         <source>&amp;Close</source>
         <translation>&amp;Đóng lại</translation>
     </message>
     <message>
-        <location filename="src/aboutview.h" line="40"/>
         <source>About</source>
         <translation>Dịch bởi Phan Anh</translation>
     </message>
 <context>
     <name>ActivationDialog</name>
     <message>
-        <location filename="local/src/activationdialog.cpp" line="17"/>
         <source>Enter your License Details</source>
         <translation>Điền vào chi tiết giấy phép</translation>
     </message>
     <message>
-        <location filename="local/src/activationdialog.cpp" line="29"/>
         <source>&amp;Email:</source>
         <translation>&amp;Email:</translation>
     </message>
     <message>
-        <location filename="local/src/activationdialog.cpp" line="35"/>
         <source>&amp;Code:</source>
         <translation>&amp;Mã:</translation>
     </message>
 <context>
     <name>ActivationView</name>
     <message>
-        <location filename="local/src/activationview.cpp" line="47"/>
         <source>Please license %1</source>
         <translation>Xin giấy phép %1</translation>
     </message>
     <message>
-        <location filename="local/src/activationview.cpp" line="51"/>
         <source>This demo has expired.</source>
         <translation>Phần thử nghiệm này đã hết hạn.</translation>
     </message>
     <message>
-        <location filename="local/src/activationview.cpp" line="53"/>
         <source>The full version allows you to watch videos without interruptions.</source>
-        <oldsource>The full version allows you to download videos longer than %1 minutes and to watch videos without interruptions.</oldsource>
         <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>Nếu không có giấy phép, các ứng dụng sẽ hết hạn trong %1 ngày.</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>Bằng cách mua phiên bản đầy đủ, bạn cũng sẽ hỗ trợ vào quá trình phát triển của phần mềm %1.</translation>
     </message>
     <message>
-        <location filename="local/src/activationview.cpp" line="70"/>
         <source>Use Demo</source>
         <translation>Sử dụng phiên bản dùng thử</translation>
     </message>
     <message>
-        <location filename="local/src/activationview.cpp" line="77"/>
         <source>Enter License</source>
         <translation>Điền vào giấy phép</translation>
     </message>
     <message>
-        <location filename="local/src/activationview.cpp" line="85"/>
         <source>Buy License</source>
         <translation>Mua giấy phép</translation>
     </message>
 </context>
+<context>
+    <name>AppWidget</name>
+    <message>
+        <source>Download</source>
+        <translation type="unfinished"/>
+    </message>
+</context>
 <context>
     <name>ChannelAggregator</name>
     <message>
-        <location filename="src/channelaggregator.cpp" line="183"/>
         <source>By %1</source>
         <translation>Bởi %1</translation>
     </message>
     <message numerus="yes">
-        <location filename="src/channelaggregator.cpp" line="185"/>
         <source>You have %n new video(s)</source>
         <translation type="unfinished"><numerusform></numerusform></translation>
     </message>
 <context>
     <name>ChannelItemDelegate</name>
     <message>
-        <location filename="src/channelitemdelegate.cpp" line="67"/>
         <source>All Videos</source>
         <translation>Video của tôi</translation>
     </message>
     <message>
-        <location filename="src/channelitemdelegate.cpp" line="85"/>
         <source>Unwatched Videos</source>
         <translation>Các video chưa xem</translation>
     </message>
 <context>
     <name>ChannelView</name>
     <message>
-        <location filename="src/channelview.cpp" line="151"/>
-        <source>Mark all as watched</source>
-        <translation>Đánh dấu là đã xem</translation>
-    </message>
-    <message>
-        <location filename="src/channelview.cpp" line="159"/>
-        <source>Show Updated</source>
-        <translation>Hiển thị Cập Nhật</translation>
-    </message>
-    <message>
-        <location filename="src/channelview.cpp" line="103"/>
         <source>Name</source>
         <translation>Tên</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="110"/>
         <source>Last Updated</source>
         <translation>Lần cập nhật cuối</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="117"/>
         <source>Last Added</source>
         <translation>Được thêm vào mới đây</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="124"/>
         <source>Last Watched</source>
         <translation>Mới vừa được xem</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="131"/>
         <source>Most Watched</source>
         <translation>Được xem nhiều nhất</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="139"/>
         <source>Sort by</source>
         <translation>Sắp xếp theo</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="222"/>
+        <source>Mark all as watched</source>
+        <translation>Đánh dấu là đã xem</translation>
+    </message>
+    <message>
+        <source>Show Updated</source>
+        <translation>Hiển thị Cập Nhật</translation>
+    </message>
+    <message>
         <source>All Videos</source>
         <translation>Tất cả các video</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="226"/>
         <source>Unwatched Videos</source>
         <translation>Các video chưa xem</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="244"/>
         <source>Mark as Watched</source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="257"/>
         <source>Unsubscribe</source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="270"/>
         <source>There are no updated subscriptions at this time.</source>
         <translation>Hiện không có phần theo dõi đăng ký nào được cập nhật vào thời điểm này.</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="272"/>
         <source>You have no subscriptions. Use the star symbol to subscribe to channels.</source>
         <translation>Bạn không có phần đăng ký theo dõi nào. Sử dụng biểu tượng ngôi sao để đăng ký theo dõi một kênh nào đó.</translation>
     </message>
 <context>
     <name>ClearButton</name>
     <message>
-        <location filename="src/exlineedit.cpp" line="6"/>
         <source>Clear</source>
         <translation>Dọn dẹp phần nội dung</translation>
     </message>
 <context>
     <name>DataUtils</name>
     <message>
-        <location filename="src/datautils.cpp" line="88"/>
         <source>Just now</source>
         <translation type="unfinished"/>
     </message>
     <message numerus="yes">
-        <location filename="src/datautils.cpp" line="90"/>
-        <source>%n minute(s) ago</source>
-        <translation type="unfinished"><numerusform></numerusform></translation>
-    </message>
-    <message numerus="yes">
-        <location filename="src/datautils.cpp" line="92"/>
         <source>%n hour(s) ago</source>
         <translation type="unfinished"><numerusform></numerusform></translation>
     </message>
     <message numerus="yes">
-        <location filename="src/datautils.cpp" line="94"/>
         <source>%n day(s) ago</source>
         <translation type="unfinished"><numerusform></numerusform></translation>
     </message>
     <message numerus="yes">
-        <location filename="src/datautils.cpp" line="96"/>
         <source>%n weeks(s) ago</source>
         <translation type="unfinished"><numerusform></numerusform></translation>
     </message>
     <message numerus="yes">
-        <location filename="src/datautils.cpp" line="98"/>
         <source>%n month(s) ago</source>
         <translation type="unfinished"><numerusform></numerusform></translation>
     </message>
 <context>
     <name>DownloadItem</name>
     <message>
-        <location filename="src/downloaditem.cpp" line="406"/>
         <source>bytes</source>
         <translation>byte</translation>
     </message>
     <message>
-        <location filename="src/downloaditem.cpp" line="409"/>
         <source>KB</source>
         <translation>KB</translation>
     </message>
     <message>
-        <location filename="src/downloaditem.cpp" line="412"/>
         <source>MB</source>
         <translation>MB</translation>
     </message>
     <message>
-        <location filename="src/downloaditem.cpp" line="421"/>
         <source>bytes/sec</source>
         <translation>byte/giây</translation>
     </message>
     <message>
-        <location filename="src/downloaditem.cpp" line="424"/>
         <source>KB/sec</source>
         <translation>KB/giây</translation>
     </message>
     <message>
-        <location filename="src/downloaditem.cpp" line="427"/>
         <source>MB/sec</source>
         <translation>MB/giây</translation>
     </message>
     <message>
-        <location filename="src/downloaditem.cpp" line="433"/>
         <source>seconds</source>
         <translation>giây</translation>
     </message>
     <message>
-        <location filename="src/downloaditem.cpp" line="436"/>
         <source>minutes</source>
         <translation>phút</translation>
     </message>
     <message>
-        <location filename="src/downloaditem.cpp" line="439"/>
         <source>%4 %5 remaining</source>
         <translation>%4 %5 còn lại</translation>
     </message>
 <context>
     <name>DownloadManager</name>
     <message>
-        <location filename="src/downloadmanager.cpp" line="77"/>
         <source>This is just the demo version of %1.</source>
         <translation>Đây là phiên bản dùng thử của %1.</translation>
     </message>
     <message>
-        <location filename="src/downloadmanager.cpp" line="79"/>
         <source>It can only download videos shorter than %1 minutes so you can test the download functionality.</source>
         <translation>Phần này có thể được tải về các video ngắn hơn %1 phút để bạn có thể thử nghiệm tính năng tải về.</translation>
     </message>
     <message>
-        <location filename="src/downloadmanager.cpp" line="85"/>
         <source>Continue</source>
         <translation>Tiếp tục</translation>
     </message>
     <message>
-        <location filename="src/downloadmanager.cpp" line="86"/>
         <source>Get the full version</source>
         <translation>Nhận phiên bản đầy đủ</translation>
     </message>
     <message>
-        <location filename="src/downloadmanager.cpp" line="157"/>
         <source>%1 downloaded in %2</source>
         <translation>%1 đã tải xuống trong %2</translation>
     </message>
     <message>
-        <location filename="src/downloadmanager.cpp" line="160"/>
         <source>Download finished</source>
         <translation>Tải xuống hoàn tất</translation>
     </message>
     <message numerus="yes">
-        <location filename="src/downloadmanager.cpp" line="165"/>
         <source>%n Download(s)</source>
         <translation type="unfinished"><numerusform></numerusform></translation>
     </message>
 <context>
     <name>DownloadSettings</name>
     <message>
-        <location filename="src/downloadsettings.cpp" line="36"/>
         <source>Change location...</source>
         <translation>Thay đổi vị trí...</translation>
     </message>
     <message>
-        <location filename="src/downloadsettings.cpp" line="69"/>
         <source>Choose the download location</source>
         <translation>Chọn vị trí tải về</translation>
     </message>
     <message>
-        <location filename="src/downloadsettings.cpp" line="81"/>
         <source>Download location changed.</source>
         <translation>Vị trí tải về đã thay đổi.</translation>
     </message>
     <message>
-        <location filename="src/downloadsettings.cpp" line="83"/>
         <source>Current downloads will still go in the previous location.</source>
         <translation>Phần tải về hiện tại sẽ vẫn được lưu vào vị trí trước đó.</translation>
     </message>
     <message>
-        <location filename="src/downloadsettings.cpp" line="94"/>
         <source>Downloading to: %1</source>
         <translation>Đang tải về: %1</translation>
     </message>
 <context>
     <name>DownloadView</name>
     <message>
-        <location filename="src/downloadview.cpp" line="38"/>
-        <location filename="src/downloadview.h" line="45"/>
         <source>Downloads</source>
         <translation>Tải về</translation>
     </message>
 </context>
-<context>
-    <name>DownloadWidget</name>
-    <message>
-        <location filename="local/src/updatedialog.cpp" line="60"/>
-        <source>Downloading update...</source>
-        <translation>Đang tải về phần cập nhật...</translation>
-    </message>
-</context>
 <context>
     <name>Extra</name>
     <message>
-        <location filename="local/src/extra.cpp" line="251"/>
         <source>The executable file has been tempered with, maybe by a virus.</source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="local/src/extra.cpp" line="252"/>
         <source>%1 will not run. Try installing again.</source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="local/src/extra.cpp" line="253"/>
         <source>Quit</source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="local/src/extra.cpp" line="254"/>
         <source>Reinstall</source>
         <translation type="unfinished"/>
     </message>
 <context>
     <name>GlobalShortcuts</name>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="36"/>
         <source>Play</source>
         <translation>Phát</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="37"/>
         <source>Pause</source>
         <translation>Tạm dừng</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="38"/>
         <source>Play/Pause</source>
         <translation>Phát/Tạm dừng</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="39"/>
         <source>Stop</source>
         <translation>Dừng lại</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="40"/>
         <source>Stop playing after current track</source>
         <translation>Dừng phát sau track hiện tại</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="41"/>
         <source>Next track</source>
         <translation>Track tiếp theo</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="42"/>
         <source>Previous track</source>
         <translation>Track trước đó</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="43"/>
         <source>Increase volume</source>
         <translation>Tăng âm lượng</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="44"/>
         <source>Decrease volume</source>
         <translation>Giảm âm lượng</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="45"/>
         <source>Mute</source>
         <translation>Tắt tiếng</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="46"/>
         <source>Seek forward</source>
         <translation>Tiến lên phía trước</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="47"/>
         <source>Seek backward</source>
         <translation>Lùi lại phía sau</translation>
     </message>
 <context>
     <name>HomeView</name>
     <message>
-        <location filename="src/homeview.cpp" line="58"/>
         <source>Search</source>
         <translation>Tìm Kiếm</translation>
     </message>
     <message>
-        <location filename="src/homeview.cpp" line="60"/>
         <source>Find videos and channels by keyword</source>
         <translation>Tìm video và kênh dựa theo từ khóa</translation>
     </message>
     <message>
-        <location filename="src/homeview.cpp" line="65"/>
         <source>Browse</source>
         <translation>Duyệt tìm</translation>
     </message>
     <message>
-        <location filename="src/homeview.cpp" line="67"/>
         <source>Browse videos by category</source>
         <translation>Duyệt tìm video theo thể loại</translation>
     </message>
     <message>
-        <location filename="src/homeview.cpp" line="71"/>
         <source>Subscriptions</source>
         <translation>Đăng ký theo dõi</translation>
     </message>
     <message>
-        <location filename="src/homeview.cpp" line="73"/>
         <source>Channel subscriptions</source>
         <translation>Đăng ký theo dõi kênh</translation>
     </message>
     <message>
-        <location filename="src/homeview.h" line="44"/>
         <source>Make yourself comfortable</source>
         <translation>Tạo sự thoải mái cho chính bạn</translation>
     </message>
 <context>
     <name>LoadingWidget</name>
     <message>
-        <location filename="src/loadingwidget.cpp" line="125"/>
         <source>Error</source>
         <translation>Lỗi</translation>
     </message>
 <context>
     <name>MainWindow</name>
     <message>
-        <location filename="src/mainwindow.cpp" line="291"/>
+        <source>&amp;Window</source>
+        <translation>&amp;Cửa sổ</translation>
+    </message>
+    <message>
+        <source>&amp;Minimize</source>
+        <translation>&amp;Thu nhỏ</translation>
+    </message>
+    <message>
         <source>&amp;Stop</source>
         <translation>&amp;Dừng lại</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="292"/>
         <source>Stop playback and go back to the search view</source>
         <translation>Dừng phát lại và đi đến phần hiển thị tìm kiếm</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="307"/>
+        <source>P&amp;revious</source>
+        <translation>&amp;Trước đó</translation>
+    </message>
+    <message>
+        <source>Go back to the previous track</source>
+        <translation>Quay lại track trước đó</translation>
+    </message>
+    <message>
         <source>S&amp;kip</source>
         <translation>B&amp;ỏ qua</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="308"/>
         <source>Skip to the next video</source>
         <translation>Bỏ qua và truy cập video tiếp theo</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1134"/>
-        <source>&amp;Pause</source>
-        <translation>&amp;Tạm dừng</translation>
+        <source>&amp;Play</source>
+        <translation>&amp;Phát</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1135"/>
-        <source>Pause playback</source>
-        <translation>Tạm dừng phát lại</translation>
+        <source>Resume playback</source>
+        <translation>Khôi phục chế độ phát lại</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="321"/>
         <source>&amp;Full Screen</source>
         <translation>&amp;Toàn màn hình</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="322"/>
         <source>Go full screen</source>
         <translation>Chuyển sang toàn màn hình</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="336"/>
+        <source>&amp;Compact Mode</source>
+        <translation>&amp;Chế độ thu gọn</translation>
+    </message>
+    <message>
         <source>Hide the playlist and the toolbar</source>
         <translation>Ân danh sách phát và thanh công cụ</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="349"/>
+        <source>Open the &amp;YouTube Page</source>
+        <translation>Mở &amp;trang YouTube</translation>
+    </message>
+    <message>
         <source>Go to the YouTube video page and pause playback</source>
         <translation>Truy cập trang video của YouTube và dừng chế độ phát lại</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="356"/>
+        <source>Copy the YouTube &amp;Link</source>
+        <translation>Sao chép liên kết &amp;trên YouTube</translation>
+    </message>
+    <message>
         <source>Copy the current video YouTube link to the clipboard</source>
         <translation>Sao chép đường dẫn đến video hiện tại trên YouTube vào bộ nhớ ảo</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="363"/>
+        <source>Copy the Video Stream &amp;URL</source>
+        <translation>Sao chép luồng dữ liệu &amp;video</translation>
+    </message>
+    <message>
         <source>Copy the current video stream URL to the clipboard</source>
         <translation>Sao chép đường dẫn luồng video hiện tại vào bộ nhớ ảo</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="370"/>
+        <source>Find Video &amp;Parts</source>
+        <translation>Tìm các phần &amp;thuộc video</translation>
+    </message>
+    <message>
         <source>Find other video parts hopefully in the right order</source>
         <translation>Tìm các phần video khác theo đúng trật tự</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="376"/>
         <source>&amp;Remove</source>
         <translation>&amp;Loại bỏ</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="377"/>
         <source>Remove the selected videos from the playlist</source>
         <translation>Loại bỏ các video được chọn khỏi danh sách phát</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="383"/>
         <source>Move &amp;Up</source>
         <translation>Chuyển &amp;lên</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="384"/>
         <source>Move up the selected videos in the playlist</source>
         <translation>Di chuyển các video được chọn trong danh sách phát lên trên</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="390"/>
         <source>Move &amp;Down</source>
         <translation>Chuyển &amp;xuống</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="391"/>
         <source>Move down the selected videos in the playlist</source>
         <translation>Di chuyển các video được chọn trong danh sách phát xuống dưới</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="402"/>
+        <source>&amp;Clear Recent Searches</source>
+        <translation>&amp;Xóa các phần tìm kiếm gần đây</translation>
+    </message>
+    <message>
         <source>Clear the search history. Cannot be undone.</source>
         <translation>Xóa phần lịch sử tìm kiếm. Phần này không thể hoàn tác.</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="407"/>
         <source>&amp;Quit</source>
         <translation>&amp;Thoát</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="410"/>
         <source>Bye</source>
         <translation>Tạm biệt bạn nhé</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="414"/>
         <source>&amp;Website</source>
         <translation>&amp;Website</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="416"/>
         <source>%1 on the Web</source>
         <translation>%1 trên Web</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="422"/>
+        <source>Make a &amp;Donation</source>
+        <translation>Ủng &amp;hộ tài chính</translation>
+    </message>
+    <message>
         <source>Please support the continued development of %1</source>
         <translation>Xin vui lòng hỗ trợ việc phát triển của %1</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="427"/>
         <source>&amp;About</source>
         <translation>&amp;Dịch bởi Phan Anh</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="429"/>
         <source>Info about %1</source>
         <translation>Xem thông tin về %1</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="437"/>
         <source>Search</source>
         <translation>Tìm kiếm</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="456"/>
         <source>Mute volume</source>
         <translation>Tắt tiếng</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="490"/>
-        <location filename="src/mainwindow.cpp" line="1609"/>
+        <source>&amp;Manually Start Playing</source>
+        <translation>&amp;Phát theo lệnh của người dùng</translation>
+    </message>
+    <message>
+        <source>Manually start playing videos</source>
+        <translation>Phát theo lệnh của người dùng</translation>
+    </message>
+    <message>
         <source>&amp;Downloads</source>
         <translation>&amp;Tải về</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="491"/>
         <source>Show details about video downloads</source>
         <translation>Hiển thị thông tin chi tiết về video được tải về</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="499"/>
         <source>&amp;Download</source>
         <translation>&amp;Tải về</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="500"/>
         <source>Download the current video</source>
         <translation>Tải về video hiện tại</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="510"/>
         <source>Take &amp;Snapshot</source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="517"/>
         <source>&amp;Subscribe to Channel</source>
         <translation>&amp; Đăng ký theo dõi kênh</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="525"/>
         <source>Share the current video using %1</source>
         <translation>Chia sẻ video hiện tại bằng cách sử dụng %1</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="545"/>
         <source>&amp;Email</source>
         <translation>&amp;Email:</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="546"/>
         <source>Email</source>
         <translation>Email</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="551"/>
         <source>&amp;Close</source>
         <translation>&amp;Đóng lại</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="561"/>
         <source>&amp;Float on Top</source>
         <translation>&amp;Nổi lên trên cùng</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="566"/>
         <source>&amp;Adjust Window Size</source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="571"/>
         <source>&amp;Stop After This Video</source>
         <translation>&amp;Dừng phát sau video này</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="578"/>
         <source>&amp;Report an Issue...</source>
         <translation>&amp;Báo cáo một vấn đề...</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="582"/>
         <source>&amp;Refine Search...</source>
         <translation>&amp;Lọc tìm kiếm...</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="594"/>
         <source>More...</source>
         <translation>Nhiều hơn...</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="597"/>
         <source>&amp;Related Videos</source>
         <translation>&amp;Video có liên quan</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="599"/>
         <source>Watch videos related to the current one</source>
         <translation>Xem video liên quan đến video này</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="605"/>
         <source>Open in &amp;Browser...</source>
         <translation>Mở trong &amp;trình duyệt...</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="612"/>
-        <source>&amp;Love %1? Rate it!</source>
+        <source>Restricted Mode</source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="633"/>
-        <source>&amp;Application</source>
-        <translation>&amp;Ứng dụng</translation>
+        <source>Hide videos that may contain inappropriate content</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <source>&amp;Love %1? Rate it!</source>
+        <translation>&amp;Yêu thích %1? Hãy đánh giá!</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="618"/>
         <source>Buy %1...</source>
         <translation>Mua %1...</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="647"/>
+        <source>&amp;Application</source>
+        <translation>&amp;Ứng dụng</translation>
+    </message>
+    <message>
         <source>&amp;Playback</source>
         <translation>&amp;Chế độ phát lại</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="661"/>
         <source>&amp;Playlist</source>
         <translation>&amp;Danh sách phát</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="670"/>
         <source>&amp;Video</source>
         <translation>&amp;Video</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="686"/>
-        <source>&amp;View</source>
-        <translation>&amp;Chế độ hiển thị</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="695"/>
         <source>&amp;Share</source>
         <translation>&amp;Chia sẻ</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="709"/>
+        <source>&amp;View</source>
+        <translation>&amp;Chế độ hiển thị</translation>
+    </message>
+    <message>
         <source>&amp;Help</source>
         <translation>&amp;Giúp đỡ</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="751"/>
         <source>Press %1 to raise the volume, %2 to lower it</source>
         <translation>Click vào %1 để tăng âm lượng, %2 để giảm âm lượng xuống</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1021"/>
-        <location filename="src/mainwindow.cpp" line="1027"/>
+        <source>Choose your content location</source>
+        <translation>Chọn vị trí nội dung của bạn</translation>
+    </message>
+    <message>
         <source>Opening %1</source>
         <translation>Đang mở %1</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1080"/>
         <source>Do you want to exit %1 with a download in progress?</source>
         <translation>Bạn có muốn thoát khỏi %1 trong khi vẫn còn một phần tải về còn đang dang dở hay không?</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1081"/>
         <source>If you close %1 now, this download will be cancelled.</source>
         <translation>Nếu bạn đóng lại %1 ngay lúc này, thì các phần tải về còn đang dang dở sẽ bị xóa mất.</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1086"/>
         <source>Close and cancel download</source>
         <translation>Đóng lại và huỷ bỏ việc tải về</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1087"/>
         <source>Wait for download to finish</source>
         <translation>Chờ cho đến khi phần tải về được hoàn tất</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1158"/>
-        <source>&amp;Loading...</source>
-        <translation type="unfinished"/>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="1264"/>
-        <source>Leave &amp;Full Screen</source>
-        <translation>Thoát khỏi &amp;chế độ toàn màn hình</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="1718"/>
-        <source>%1 version %2 is now available.</source>
-        <translation>%1 phiên bản %2 hiện vừa mới được phát hành.</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="1722"/>
-        <source>Remind me later</source>
-        <translation>Thông báo cho tôi sau</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="1723"/>
-        <source>Update</source>
-        <translation>Cập nhật</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="1127"/>
         <source>Error: %1</source>
         <translation>Lỗi: %1</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="300"/>
-        <source>P&amp;revious</source>
-        <translation>&amp;Trước đó</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="301"/>
-        <source>Go back to the previous track</source>
-        <translation>Quay lại track trước đó</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="335"/>
-        <source>&amp;Compact Mode</source>
-        <translation>&amp;Chế độ thu gọn</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="348"/>
-        <source>Open the &amp;YouTube Page</source>
-        <translation>Mở &amp;trang YouTube</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="355"/>
-        <source>Copy the YouTube &amp;Link</source>
-        <translation>Sao chép liên kết &amp;trên YouTube</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="362"/>
-        <source>Copy the Video Stream &amp;URL</source>
-        <translation>Sao chép luồng dữ liệu &amp;video</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="369"/>
-        <source>Find Video &amp;Parts</source>
-        <translation>Tìm các phần &amp;thuộc video</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="397"/>
-        <source>&amp;Clear Recent Searches</source>
-        <translation>&amp;Xóa các phần tìm kiếm gần đây</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="421"/>
-        <source>Make a &amp;Donation</source>
-        <translation>Ủng &amp;hộ tài chính</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="483"/>
-        <source>&amp;Manually Start Playing</source>
-        <translation>&amp;Phát theo lệnh của người dùng</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="484"/>
-        <source>Manually start playing videos</source>
-        <translation>Phát theo lệnh của người dùng</translation>
+        <source>&amp;Pause</source>
+        <translation>&amp;Tạm dừng</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="847"/>
-        <source>Choose your content location</source>
-        <translation>Chọn vị trí nội dung của bạn</translation>
+        <source>Pause playback</source>
+        <translation>Tạm dừng phát lại</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="314"/>
-        <location filename="src/mainwindow.cpp" line="1142"/>
-        <location filename="src/mainwindow.cpp" line="1150"/>
-        <source>&amp;Play</source>
-        <translation>&amp;Phát</translation>
+        <source>&amp;Loading...</source>
+        <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="315"/>
-        <location filename="src/mainwindow.cpp" line="1143"/>
-        <location filename="src/mainwindow.cpp" line="1151"/>
-        <source>Resume playback</source>
-        <translation>Khôi phục chế độ phát lại</translation>
+        <source>Leave &amp;Full Screen</source>
+        <translation>Thoát khỏi &amp;chế độ toàn màn hình</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1437"/>
         <source>Remaining time: %1</source>
         <translation>Thời gian còn lại: %1</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1528"/>
         <source>Volume at %1%</source>
         <translation>Âm lượng ở mức %1%</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1534"/>
         <source>Volume is muted</source>
         <translation>Đã tắt âm lượng</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1537"/>
         <source>Volume is unmuted</source>
         <translation>Đã mở lại âm lượng</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1548"/>
         <source>Maximum video definition set to %1</source>
         <translation>Độ phân giải video được chỉnh thành %1</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1595"/>
         <source>Your privacy is now safe</source>
         <translation>Chế độ riêng tư của bạn hiện đã an toàn</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1610"/>
         <source>Downloads complete</source>
         <translation>Tiến Trình Tải Về Đã Hoàn Tất</translation>
     </message>
+    <message>
+        <source>%1 version %2 is now available.</source>
+        <translation>%1 phiên bản %2 hiện vừa mới được phát hành.</translation>
+    </message>
+    <message>
+        <source>Remind me later</source>
+        <translation>Thông báo cho tôi sau</translation>
+    </message>
+    <message>
+        <source>Update</source>
+        <translation>Cập nhật</translation>
+    </message>
 </context>
 <context>
     <name>MediaView</name>
     <message>
-        <location filename="src/mediaview.cpp" line="702"/>
         <source>You can now paste the YouTube link into another application</source>
         <translation>Bạn có thể dán vào đường liên kết trên YouTube vào một ứng dụng khác</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="710"/>
         <source>You can now paste the video stream URL into another application</source>
         <translation>Bạn có thể dán một đường liên kết của luồng video vào một ứng dụng khác</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="711"/>
         <source>The link will be valid only for a limited time.</source>
         <translation>Liên kết này chỉ hợp lệ trong một khoảng thời gian hạn định.</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="800"/>
         <source>This is just the demo version of %1.</source>
         <translation>Đây chỉ là phần dùng thử của phiên bản %1.</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="801"/>
         <source>It allows you to test the application and see if it works for you.</source>
         <translation>Cho phép bạn thử nghiệm ứng dụng và xét độ hiệu quả của ứng dụng đối với bạn.</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="833"/>
+        <source>Get the full version</source>
+        <translation>Nhận phiên bản đầy đủ</translation>
+    </message>
+    <message>
         <source>Continue</source>
         <translation>Tiếp tục</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="988"/>
+        <source>Downloading %1</source>
+        <translation>Đang tải về %1</translation>
+    </message>
+    <message>
         <source>of</source>
         <comment>Used in video parts, as in '2 of 3'</comment>
         <translation>của</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="1001"/>
         <source>part</source>
         <comment>This is for video parts, as in 'Cool video - part 1'</comment>
         <translation>phần</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="1003"/>
         <source>episode</source>
         <comment>This is for video parts, as in 'Cool series - episode 1'</comment>
         <translation>tập</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="1096"/>
         <source>Sent from %1</source>
         <translation>Được gửi từ %1</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="1128"/>
         <source>Unsubscribe from %1</source>
         <translation>Bỏ theo dõi đăng ký từ %1</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="1132"/>
         <source>Subscribe to %1</source>
         <translation>Đăng ký theo dõi đối với %1</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="1166"/>
         <source>Unsubscribed from %1</source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="1169"/>
         <source>Subscribed to %1</source>
         <translation type="unfinished"/>
     </message>
-    <message>
-        <location filename="src/mediaview.cpp" line="808"/>
-        <source>Get the full version</source>
-        <translation>Nhận phiên bản đầy đủ</translation>
-    </message>
-    <message>
-        <location filename="src/mediaview.cpp" line="847"/>
-        <source>Downloading %1</source>
-        <translation>Đang tải về %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>Hiện đã phát hành một phiên bản mới của %1!</translation>
     </message>
     <message>
-        <location filename="local/src/updatedialog.cpp" line="28"/>
         <source>%1 %2 is now available. You have %3.</source>
         <translation>%1 %2 hiện đã được phát hành. Phiên bản hiện tại bạn đang sở hữu %3.</translation>
     </message>
     <message>
-        <location filename="local/src/updatedialog.cpp" line="33"/>
         <source>Would you like to download it now?</source>
         <translation>Bạn có muốn tải về phần này không?</translation>
     </message>
     <message>
-        <location filename="local/src/updatedialog.cpp" line="39"/>
         <source>Skip This Version</source>
         <translation>Bỏ qua phiên bản này</translation>
     </message>
     <message>
-        <location filename="local/src/updatedialog.cpp" line="43"/>
         <source>Remind Me Later</source>
         <translation>Thông báo cho tôi sau</translation>
     </message>
     <message>
-        <location filename="local/src/updatedialog.cpp" line="47"/>
         <source>Install Update</source>
         <translation>Cài đặt bản cập nhật</translation>
     </message>
 <context>
     <name>PasteLineEdit</name>
     <message>
-        <location filename="local/src/pastelineedit.cpp" line="6"/>
         <source>Paste</source>
         <translation>Dán</translation>
     </message>
 <context>
     <name>PlaylistItemDelegate</name>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="209"/>
         <source>%1 views</source>
         <translation>%1 lượt xem</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="309"/>
         <source>%1 of %2 (%3) — %4</source>
         <translation>%1 của %2 (%3) — %4</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="316"/>
         <source>Preparing</source>
         <translation>Đang chuẩn bị</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="318"/>
         <source>Failed</source>
         <translation>Bị lỗi</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="320"/>
         <source>Completed</source>
         <translation>Đã hoàn tất</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="322"/>
         <source>Stopped</source>
         <translation>Đã dừng lại</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="358"/>
         <source>Stop downloading</source>
         <translation>Dừng tiến trình tải xuống</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="368"/>
         <source>Show in %1</source>
         <translation>Hiển thị trong %1</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="370"/>
         <source>Open parent folder</source>
         <translation>Mở thư mục gốc</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="379"/>
         <source>Restart downloading</source>
         <translation>Bắt đầu lại phần tải về</translation>
     </message>
 <context>
     <name>PlaylistModel</name>
     <message>
-        <location filename="src/playlistmodel.cpp" line="70"/>
         <source>Searching...</source>
         <translation>Đang tìm kiếm...</translation>
     </message>
     <message>
-        <location filename="src/playlistmodel.cpp" line="71"/>
         <source>Show %1 More</source>
         <translation>Hiển thị %1 thêm</translation>
     </message>
     <message>
-        <location filename="src/playlistmodel.cpp" line="72"/>
         <source>No videos</source>
         <translation>Không có video nào</translation>
     </message>
     <message>
-        <location filename="src/playlistmodel.cpp" line="73"/>
         <source>No more videos</source>
         <translation>Không có thêm video nào nữa</translation>
     </message>
 <context>
     <name>RefineSearchWidget</name>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="49"/>
         <source>Sort by</source>
         <translation>Sắp xếp theo</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="53"/>
         <source>Relevance</source>
         <translation>Mức độ liên quan</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="54"/>
-        <location filename="src/refinesearchwidget.cpp" line="69"/>
         <source>Date</source>
         <translation>Ngày tháng</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="55"/>
         <source>View Count</source>
         <translation>Đếm lượt xem</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="56"/>
         <source>Rating</source>
         <translation>Xếp hạng</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="73"/>
         <source>Anytime</source>
         <translation>Bất cứ lúc nào</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="74"/>
         <source>Today</source>
         <translation>Hôm nay</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="75"/>
         <source>7 Days</source>
         <translation>7 Ngày</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="76"/>
         <source>30 Days</source>
         <translation>30 Ngày</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="89"/>
         <source>Duration</source>
         <translation>Độ dài</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="93"/>
-        <location filename="src/refinesearchwidget.cpp" line="119"/>
         <source>All</source>
         <translation>Tất cả</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="94"/>
         <source>Short</source>
         <translation>Ngắn</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="95"/>
         <source>Medium</source>
         <translation>Trung bình</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="96"/>
         <source>Long</source>
         <translation>Dài</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="99"/>
         <source>Less than 4 minutes</source>
         <translation>Ít hơn 4 phút</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="100"/>
         <source>Between 4 and 20 minutes</source>
         <translation>Giữa 4 và 20 phút</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="101"/>
         <source>Longer than 20 minutes</source>
         <translation>Dài hơn 20 phút</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="115"/>
         <source>Quality</source>
         <translation>Chất lượng</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="120"/>
         <source>High Definition</source>
         <translation>Độ phân giải cao</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="123"/>
         <source>720p or higher</source>
         <translation>720p hoặc cao hơn</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="136"/>
         <source>Done</source>
         <translation>Đã hoàn tất</translation>
     </message>
 <context>
     <name>RegionsView</name>
     <message>
-        <location filename="src/regionsview.cpp" line="39"/>
         <source>Done</source>
         <translation>Đã hoàn tất</translation>
     </message>
 <context>
     <name>SearchLineEdit</name>
     <message>
-        <location filename="src/searchlineedit.cpp" line="55"/>
         <source>Search</source>
         <translation>Tìm kiếm</translation>
     </message>
 <context>
     <name>SearchView</name>
     <message>
-        <location filename="src/searchview.cpp" line="83"/>
         <source>Welcome to &lt;a href=&apos;%1&apos;&gt;%2&lt;/a&gt;,</source>
         <translation>Chào mừng đến với &lt;a href=&apos;%1&apos;&gt;%2&lt;/a&gt;,</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="200"/>
-        <source>Get the full version</source>
-        <translation>Nhận phiên bản đầy đủ</translation>
-    </message>
-    <message>
-        <location filename="src/searchview.cpp" line="110"/>
         <source>Enter</source>
         <extracomment>&quot;Enter&quot;, as in &quot;type&quot;. The whole phrase says: &quot;Enter a keyword to start watching videos&quot;</extracomment>
         <translation>Nhập vào</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="117"/>
         <source>a keyword</source>
         <translation>một từ khóa</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="118"/>
         <source>a channel</source>
         <translation>một kênh</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="125"/>
         <source>to start watching videos.</source>
         <translation>để bắt đầu xem các đoạn video.</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="156"/>
         <source>Watch</source>
         <translation>Xem</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="174"/>
         <source>Recent keywords</source>
         <translation>Các từ khóa gần đây</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="186"/>
         <source>Recent channels</source>
         <translation>Các kênh gần đây</translation>
     </message>
+    <message>
+        <source>Get the full version</source>
+        <translation>Nhận phiên bản đầy đủ</translation>
+    </message>
 </context>
 <context>
     <name>SidebarHeader</name>
     <message>
-        <location filename="src/sidebarheader.cpp" line="38"/>
-        <location filename="src/sidebarheader.cpp" line="45"/>
         <source>&amp;Back</source>
         <translation>&amp;Quay lại</translation>
     </message>
     <message>
-        <location filename="src/sidebarheader.cpp" line="76"/>
         <source>Forward to %1</source>
         <translation>Chuyển tới %1</translation>
     </message>
     <message>
-        <location filename="src/sidebarheader.cpp" line="89"/>
         <source>Back to %1</source>
         <translation>Quay lại %1</translation>
     </message>
 <context>
     <name>SidebarWidget</name>
     <message>
-        <location filename="src/sidebarwidget.cpp" line="68"/>
         <source>Refine Search</source>
         <translation>&amp;Lọc tìm kiếm</translation>
     </message>
     <message>
-        <location filename="src/sidebarwidget.cpp" line="167"/>
         <source>Did you mean: %1</source>
         <translation>Ý của bạn là: %1</translation>
     </message>
 <context>
     <name>SnapshotSettings</name>
     <message>
-        <location filename="src/snapshotsettings.cpp" line="47"/>
         <source>Change location...</source>
         <translation>Thay đổi vị trí...</translation>
     </message>
     <message>
-        <location filename="src/snapshotsettings.cpp" line="64"/>
         <source>Snapshot saved to %1</source>
         <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="src/snapshotsettings.cpp" line="117"/>
         <source>Snapshots location changed.</source>
         <translation type="unfinished"/>
     </message>
 <context>
     <name>StandardFeedsView</name>
     <message>
-        <location filename="src/standardfeedsview.cpp" line="107"/>
         <source>Most Popular</source>
         <translation>Phổ biến nhất</translation>
     </message>
 </context>
+<context>
+    <name>UpdateDialog</name>
+    <message>
+        <source>Downloading update...</source>
+        <translation>Đang tải về phần cập nhật...</translation>
+    </message>
+    <message>
+        <source>Downloading %1...</source>
+        <translation type="unfinished"/>
+    </message>
+</context>
 <context>
     <name>Video</name>
     <message>
-        <location filename="src/video.cpp" line="287"/>
         <source>Cannot get video stream for %1</source>
         <translation>Không thể tiếp nhận luồng video từ %1</translation>
     </message>
-    <message>
-        <location filename="src/video.cpp" line="292"/>
-        <source>Network error: %1 for %2</source>
-        <translation>Lỗi mạng: %1 cho %2</translation>
-    </message>
 </context>
 <context>
     <name>YTRegions</name>
     <message>
-        <location filename="src/ytregions.cpp" line="28"/>
         <source>Algeria</source>
         <translation>An-giê-ri</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="29"/>
         <source>Argentina</source>
         <translation>Ác-hen-ti-na</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="30"/>
         <source>Australia</source>
         <translation>Úc</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="31"/>
         <source>Belgium</source>
         <translation>Bỉ</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="32"/>
         <source>Brazil</source>
         <translation>Bra-xin</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="33"/>
         <source>Canada</source>
         <translation>Ca-na-đa</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="34"/>
         <source>Chile</source>
         <translation>Chi-lê</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="35"/>
         <source>Colombia</source>
         <translation>Cô-lôm-bi-a</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="36"/>
         <source>Czech Republic</source>
         <translation>Cộng hòa Séc</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="37"/>
         <source>Egypt</source>
         <translation>Ai-cập</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="38"/>
         <source>France</source>
         <translation>Pháp</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="39"/>
         <source>Germany</source>
         <translation>Đức</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="40"/>
         <source>Ghana</source>
         <translation>Ga-na</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="41"/>
         <source>Greece</source>
         <translation>Hy-lạp</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="42"/>
         <source>Hong Kong</source>
         <translation>Hồng Kông</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="43"/>
         <source>Hungary</source>
         <translation>Hun-ga-ri</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="44"/>
         <source>India</source>
         <translation>Ấn Độ</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="45"/>
         <source>Indonesia</source>
         <translation>In-đô-nê-xi-a</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="46"/>
         <source>Ireland</source>
         <translation>Ai-len</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="47"/>
         <source>Israel</source>
         <translation>Ít-ra-en</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="48"/>
         <source>Italy</source>
         <translation>Ý</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="49"/>
         <source>Japan</source>
         <translation>Nhật Bản</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="50"/>
         <source>Jordan</source>
         <translation>Gi-oa-đan</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="51"/>
         <source>Kenya</source>
         <translation>Ken-ia</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="52"/>
         <source>Malaysia</source>
         <translation>Ma-lay-xi-a</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="53"/>
         <source>Mexico</source>
         <translation>Mê-hi-cô</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="54"/>
         <source>Morocco</source>
         <translation>Ma-rốc</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="55"/>
         <source>Netherlands</source>
         <translation>Hà Lan</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="56"/>
         <source>New Zealand</source>
         <translation>Niu Xi-lân</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="57"/>
         <source>Nigeria</source>
         <translation>Ni-giê-ri-a</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="58"/>
         <source>Peru</source>
         <translation>Pê-ru</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="59"/>
         <source>Philippines</source>
         <translation>Phi-li-pin</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="60"/>
         <source>Poland</source>
         <translation>Ba Lan</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="61"/>
         <source>Russia</source>
         <translation>Nga</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="62"/>
         <source>Saudi Arabia</source>
         <translation>A-rập Xau-đi</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="63"/>
         <source>Singapore</source>
         <translation>Xin-ga-po</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="64"/>
         <source>South Africa</source>
         <translation>Nam Phi</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="65"/>
         <source>South Korea</source>
         <translation>Hàn Quốc</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="66"/>
         <source>Spain</source>
         <translation>Tây Ban Nha</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="67"/>
         <source>Sweden</source>
         <translation>Thuỵ Điển</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="68"/>
         <source>Taiwan</source>
         <translation>Đài Loan</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="69"/>
         <source>Tunisia</source>
         <translation>Tu-ni-xi-a</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="70"/>
         <source>Turkey</source>
         <translation>Thổ Nhĩ Kỳ</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="71"/>
         <source>Uganda</source>
         <translation>U-gan-đa</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="72"/>
         <source>United Arab Emirates</source>
         <translation>Các Tiểu Vương quốc A-rập Thống nhất</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="73"/>
         <source>United Kingdom</source>
         <translation>Vương quốc Anh</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="74"/>
         <source>Yemen</source>
         <translation>De-men</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="148"/>
         <source>Worldwide</source>
         <translation>Toàn thế giới</translation>
     </message>
index e19a3b0ad7ee37c21fca14d7911175cfe40aa57c..36d4e3e56271282e822b5553a1d300af4e2d78b1 100644 (file)
@@ -2,67 +2,42 @@
 <context>
     <name>AboutView</name>
     <message>
-        <location filename="src/aboutview.cpp" line="58"/>
         <source>There&apos;s life outside the browser!</source>
         <translation>浏览器之外,生活亦精彩!</translation>
     </message>
     <message>
-        <location filename="src/aboutview.cpp" line="59"/>
         <source>Version %1</source>
         <translation>版本:%1</translation>
     </message>
     <message>
-        <location filename="src/aboutview.cpp" line="64"/>
         <source>Licensed to: %1</source>
         <translation>遵循协议:%1</translation>
     </message>
     <message>
-        <location filename="src/aboutview.cpp" line="68"/>
         <source>%1 is Free Software but its development takes precious time.</source>
         <translation>%1 是自由软件。其开发也同样要耗用宝贵时间的。</translation>
     </message>
     <message>
-        <location filename="src/aboutview.cpp" line="69"/>
         <source>Please &lt;a href=&apos;%1&apos;&gt;donate&lt;/a&gt; to support the continued development of %2.</source>
         <translation>恭迎您慷慨&lt;a href=&apos;%1&apos;&gt;捐赠&lt;/a&gt;,支持我们继续开发 %2 。</translation>
     </message>
     <message>
-        <location filename="src/aboutview.cpp" line="73"/>
-        <source>You may want to try my other apps as well:</source>
-        <translation>您或许也想尝试我的其他程序:</translation>
-    </message>
-    <message>
-        <location filename="src/aboutview.cpp" line="76"/>
-        <source>%1, a YouTube music player</source>
-        <translation>%1,一个 YouTube 音乐播放器</translation>
-    </message>
-    <message>
-        <location filename="src/aboutview.cpp" line="80"/>
-        <source>%1, a music player</source>
-        <translation>%1,音乐播放器</translation>
-    </message>
-    <message>
-        <location filename="src/aboutview.cpp" line="86"/>
         <source>Translate %1 to your native language using %2</source>
         <translation>使用 %2 将 %1 翻译为您的母语</translation>
     </message>
     <message>
-        <location filename="src/aboutview.cpp" line="91"/>
         <source>Icon designed by %1.</source>
         <translation>图标设计:%1。</translation>
     </message>
     <message>
-        <location filename="src/aboutview.cpp" line="95"/>
         <source>Released under the &lt;a href=&apos;%1&apos;&gt;GNU General Public License&lt;/a&gt;</source>
         <translation>本软件遵循&lt;a href=&apos;%1&apos;&gt;GNU通用公共许可证&lt;/a&gt;予以发布。</translation>
     </message>
     <message>
-        <location filename="src/aboutview.cpp" line="110"/>
         <source>&amp;Close</source>
         <translation>关闭(&amp;C)</translation>
     </message>
     <message>
-        <location filename="src/aboutview.h" line="40"/>
         <source>About</source>
         <translation>关于</translation>
     </message>
 <context>
     <name>ActivationDialog</name>
     <message>
-        <location filename="local/src/activationdialog.cpp" line="17"/>
         <source>Enter your License Details</source>
         <translation>输入您的许可协议详情</translation>
     </message>
     <message>
-        <location filename="local/src/activationdialog.cpp" line="29"/>
         <source>&amp;Email:</source>
         <translation>邮件(&amp;E):</translation>
     </message>
     <message>
-        <location filename="local/src/activationdialog.cpp" line="35"/>
         <source>&amp;Code:</source>
         <translation>激活码(C):</translation>
     </message>
 <context>
     <name>ActivationView</name>
     <message>
-        <location filename="local/src/activationview.cpp" line="47"/>
         <source>Please license %1</source>
         <translation>请购买 %1 授权</translation>
     </message>
     <message>
-        <location filename="local/src/activationview.cpp" line="51"/>
         <source>This demo has expired.</source>
         <translation>该演示版已经过期。</translation>
     </message>
     <message>
-        <location filename="local/src/activationview.cpp" line="53"/>
         <source>The full version allows you to watch videos without interruptions.</source>
-        <oldsource>The full version allows you to download videos longer than %1 minutes and to watch videos without interruptions.</oldsource>
         <translation>完整版本允许你不被中断观看视频</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>
     </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>
     </message>
     <message>
-        <location filename="local/src/activationview.cpp" line="70"/>
         <source>Use Demo</source>
         <translation>使用 Demo</translation>
     </message>
     <message>
-        <location filename="local/src/activationview.cpp" line="77"/>
         <source>Enter License</source>
         <translation>输入许可</translation>
     </message>
     <message>
-        <location filename="local/src/activationview.cpp" line="85"/>
         <source>Buy License</source>
         <translation>购买许可</translation>
     </message>
 </context>
+<context>
+    <name>AppWidget</name>
+    <message>
+        <source>Download</source>
+        <translation>下载</translation>
+    </message>
+</context>
 <context>
     <name>ChannelAggregator</name>
     <message>
-        <location filename="src/channelaggregator.cpp" line="183"/>
         <source>By %1</source>
         <translation>由 %1</translation>
     </message>
     <message numerus="yes">
-        <location filename="src/channelaggregator.cpp" line="185"/>
         <source>You have %n new video(s)</source>
-        <translation><numerusform>您有 %n 个新视频</numerusform></translation>
+        <translation type="unfinished"><numerusform></numerusform></translation>
     </message>
 </context>
 <context>
     <name>ChannelItemDelegate</name>
     <message>
-        <location filename="src/channelitemdelegate.cpp" line="67"/>
         <source>All Videos</source>
         <translation>所有视频</translation>
     </message>
     <message>
-        <location filename="src/channelitemdelegate.cpp" line="85"/>
         <source>Unwatched Videos</source>
         <translation>未观看视频</translation>
     </message>
 <context>
     <name>ChannelView</name>
     <message>
-        <location filename="src/channelview.cpp" line="151"/>
-        <source>Mark all as watched</source>
-        <translation>将所有标记为已观看</translation>
-    </message>
-    <message>
-        <location filename="src/channelview.cpp" line="159"/>
-        <source>Show Updated</source>
-        <translation>显示更新</translation>
-    </message>
-    <message>
-        <location filename="src/channelview.cpp" line="103"/>
         <source>Name</source>
         <translation>姓名</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="110"/>
         <source>Last Updated</source>
         <translation>最后更新</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="117"/>
         <source>Last Added</source>
         <translation>最后添加</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="124"/>
         <source>Last Watched</source>
         <translation>最后观看</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="131"/>
         <source>Most Watched</source>
         <translation>最多观看</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="139"/>
         <source>Sort by</source>
         <translation>排序</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="222"/>
+        <source>Mark all as watched</source>
+        <translation>将所有标记为已观看</translation>
+    </message>
+    <message>
+        <source>Show Updated</source>
+        <translation>显示更新</translation>
+    </message>
+    <message>
         <source>All Videos</source>
         <translation>所有视频</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="226"/>
         <source>Unwatched Videos</source>
         <translation>未观看视频</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="244"/>
         <source>Mark as Watched</source>
         <translation>标记为已观看</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="257"/>
         <source>Unsubscribe</source>
         <translation>取消订阅</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="270"/>
         <source>There are no updated subscriptions at this time.</source>
         <translation>当前没有订阅更新</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="272"/>
         <source>You have no subscriptions. Use the star symbol to subscribe to channels.</source>
         <translation>你没有任何订阅,使用星形符号订阅频道</translation>
     </message>
 <context>
     <name>ClearButton</name>
     <message>
-        <location filename="src/exlineedit.cpp" line="6"/>
         <source>Clear</source>
         <translation>清除</translation>
     </message>
 <context>
     <name>DataUtils</name>
     <message>
-        <location filename="src/datautils.cpp" line="88"/>
         <source>Just now</source>
         <translation>刚刚</translation>
     </message>
     <message numerus="yes">
-        <location filename="src/datautils.cpp" line="90"/>
-        <source>%n minute(s) ago</source>
-        <translation><numerusform>%n 分钟前</numerusform></translation>
-    </message>
-    <message numerus="yes">
-        <location filename="src/datautils.cpp" line="92"/>
         <source>%n hour(s) ago</source>
-        <translation><numerusform>%n 小时前</numerusform></translation>
+        <translation type="unfinished"><numerusform></numerusform></translation>
     </message>
     <message numerus="yes">
-        <location filename="src/datautils.cpp" line="94"/>
         <source>%n day(s) ago</source>
-        <translation><numerusform>%n 天前</numerusform></translation>
+        <translation type="unfinished"><numerusform></numerusform></translation>
     </message>
     <message numerus="yes">
-        <location filename="src/datautils.cpp" line="96"/>
         <source>%n weeks(s) ago</source>
-        <translation><numerusform>%n 周前</numerusform></translation>
+        <translation type="unfinished"><numerusform></numerusform></translation>
     </message>
     <message numerus="yes">
-        <location filename="src/datautils.cpp" line="98"/>
         <source>%n month(s) ago</source>
-        <translation><numerusform>%n 月前</numerusform></translation>
+        <translation type="unfinished"><numerusform></numerusform></translation>
     </message>
 </context>
 <context>
     <name>DownloadItem</name>
     <message>
-        <location filename="src/downloaditem.cpp" line="406"/>
         <source>bytes</source>
         <translation>字节</translation>
     </message>
     <message>
-        <location filename="src/downloaditem.cpp" line="409"/>
         <source>KB</source>
         <translation>千字节</translation>
     </message>
     <message>
-        <location filename="src/downloaditem.cpp" line="412"/>
         <source>MB</source>
         <translation>兆字节</translation>
     </message>
     <message>
-        <location filename="src/downloaditem.cpp" line="421"/>
         <source>bytes/sec</source>
         <translation>字节/秒</translation>
     </message>
     <message>
-        <location filename="src/downloaditem.cpp" line="424"/>
         <source>KB/sec</source>
         <translation>千字节/秒</translation>
     </message>
     <message>
-        <location filename="src/downloaditem.cpp" line="427"/>
         <source>MB/sec</source>
         <translation>兆字节/秒</translation>
     </message>
     <message>
-        <location filename="src/downloaditem.cpp" line="433"/>
         <source>seconds</source>
         <translation>秒</translation>
     </message>
     <message>
-        <location filename="src/downloaditem.cpp" line="436"/>
         <source>minutes</source>
         <translation>分</translation>
     </message>
     <message>
-        <location filename="src/downloaditem.cpp" line="439"/>
         <source>%4 %5 remaining</source>
         <translation>剩余 %4 %5 </translation>
     </message>
 <context>
     <name>DownloadManager</name>
     <message>
-        <location filename="src/downloadmanager.cpp" line="77"/>
         <source>This is just the demo version of %1.</source>
         <translation>这只是 %1 的演示版。</translation>
     </message>
     <message>
-        <location filename="src/downloadmanager.cpp" line="79"/>
         <source>It can only download videos shorter than %1 minutes so you can test the download functionality.</source>
         <translation>本版本只能下载 %1 分钟以下的视频,仅用于测试下载功能。</translation>
     </message>
     <message>
-        <location filename="src/downloadmanager.cpp" line="85"/>
         <source>Continue</source>
         <translation>继续</translation>
     </message>
     <message>
-        <location filename="src/downloadmanager.cpp" line="86"/>
         <source>Get the full version</source>
         <translation>获取完整版</translation>
     </message>
     <message>
-        <location filename="src/downloadmanager.cpp" line="157"/>
         <source>%1 downloaded in %2</source>
         <translation>%1 已下载(%2)</translation>
     </message>
     <message>
-        <location filename="src/downloadmanager.cpp" line="160"/>
         <source>Download finished</source>
         <translation>下载完成</translation>
     </message>
     <message numerus="yes">
-        <location filename="src/downloadmanager.cpp" line="165"/>
         <source>%n Download(s)</source>
-        <translation><numerusform>%n 个下载项</numerusform></translation>
+        <translation type="unfinished"><numerusform></numerusform></translation>
     </message>
 </context>
 <context>
     <name>DownloadSettings</name>
     <message>
-        <location filename="src/downloadsettings.cpp" line="36"/>
         <source>Change location...</source>
         <translation>更改存储位置……</translation>
     </message>
     <message>
-        <location filename="src/downloadsettings.cpp" line="69"/>
         <source>Choose the download location</source>
         <translation>选择下载存储位置</translation>
     </message>
     <message>
-        <location filename="src/downloadsettings.cpp" line="81"/>
         <source>Download location changed.</source>
         <translation>下载存储位置已修改。</translation>
     </message>
     <message>
-        <location filename="src/downloadsettings.cpp" line="83"/>
         <source>Current downloads will still go in the previous location.</source>
         <translation>当前下载仍然保持前一个存储位置。</translation>
     </message>
     <message>
-        <location filename="src/downloadsettings.cpp" line="94"/>
         <source>Downloading to: %1</source>
         <translation>当前下载存储位置:%1</translation>
     </message>
 <context>
     <name>DownloadView</name>
     <message>
-        <location filename="src/downloadview.cpp" line="38"/>
-        <location filename="src/downloadview.h" line="45"/>
         <source>Downloads</source>
         <translation>下载情况</translation>
     </message>
 </context>
-<context>
-    <name>DownloadWidget</name>
-    <message>
-        <location filename="local/src/updatedialog.cpp" line="60"/>
-        <source>Downloading update...</source>
-        <translation>正在下载更新...</translation>
-    </message>
-</context>
 <context>
     <name>Extra</name>
     <message>
-        <location filename="local/src/extra.cpp" line="251"/>
         <source>The executable file has been tempered with, maybe by a virus.</source>
         <translation>可执行文件已经被篡改,或许是病毒感染了</translation>
     </message>
     <message>
-        <location filename="local/src/extra.cpp" line="252"/>
         <source>%1 will not run. Try installing again.</source>
         <translation>%1 将不会被执行,请尝试重装。</translation>
     </message>
     <message>
-        <location filename="local/src/extra.cpp" line="253"/>
         <source>Quit</source>
         <translation>退出</translation>
     </message>
     <message>
-        <location filename="local/src/extra.cpp" line="254"/>
         <source>Reinstall</source>
         <translation>重新安装</translation>
     </message>
 <context>
     <name>GlobalShortcuts</name>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="36"/>
         <source>Play</source>
         <translation>播放</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="37"/>
         <source>Pause</source>
         <translation>暂停</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="38"/>
         <source>Play/Pause</source>
         <translation>播放/暂停</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="39"/>
         <source>Stop</source>
         <translation>停止</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="40"/>
         <source>Stop playing after current track</source>
         <translation>当前轨道后停止播放</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="41"/>
         <source>Next track</source>
         <translation>下一轨道</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="42"/>
         <source>Previous track</source>
         <translation>上一轨道</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="43"/>
         <source>Increase volume</source>
         <translation>增加音量</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="44"/>
         <source>Decrease volume</source>
         <translation>减小音量</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="45"/>
         <source>Mute</source>
         <translation>静音</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="46"/>
         <source>Seek forward</source>
         <translation>向前搜索</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="47"/>
         <source>Seek backward</source>
         <translation>向后搜索</translation>
     </message>
 <context>
     <name>HomeView</name>
     <message>
-        <location filename="src/homeview.cpp" line="58"/>
         <source>Search</source>
         <translation>搜索</translation>
     </message>
     <message>
-        <location filename="src/homeview.cpp" line="60"/>
         <source>Find videos and channels by keyword</source>
         <translation>按关键词查找视频和频道</translation>
     </message>
     <message>
-        <location filename="src/homeview.cpp" line="65"/>
         <source>Browse</source>
         <translation>浏览</translation>
     </message>
     <message>
-        <location filename="src/homeview.cpp" line="67"/>
         <source>Browse videos by category</source>
         <translation>按分类查找视频</translation>
     </message>
     <message>
-        <location filename="src/homeview.cpp" line="71"/>
         <source>Subscriptions</source>
         <translation>订阅</translation>
     </message>
     <message>
-        <location filename="src/homeview.cpp" line="73"/>
         <source>Channel subscriptions</source>
         <translation>频道订阅</translation>
     </message>
     <message>
-        <location filename="src/homeview.h" line="44"/>
         <source>Make yourself comfortable</source>
         <translation>请您尽情享受吧!</translation>
     </message>
 <context>
     <name>LoadingWidget</name>
     <message>
-        <location filename="src/loadingwidget.cpp" line="125"/>
         <source>Error</source>
         <translation>错误</translation>
     </message>
 <context>
     <name>MainWindow</name>
     <message>
-        <location filename="src/mainwindow.cpp" line="291"/>
+        <source>&amp;Window</source>
+        <translation>窗口(&amp;W)</translation>
+    </message>
+    <message>
+        <source>&amp;Minimize</source>
+        <translation>最小化(&amp;M)</translation>
+    </message>
+    <message>
         <source>&amp;Stop</source>
         <translation>停止(&amp;S)</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="292"/>
         <source>Stop playback and go back to the search view</source>
         <translation>停止回放并返回搜索视图</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="307"/>
+        <source>P&amp;revious</source>
+        <translation>上一首(&amp;R)</translation>
+    </message>
+    <message>
+        <source>Go back to the previous track</source>
+        <translation>饭回到上一首音轨</translation>
+    </message>
+    <message>
         <source>S&amp;kip</source>
         <translation>跳过(&amp;k)</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="308"/>
         <source>Skip to the next video</source>
         <translation>跳至下一视频</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1134"/>
-        <source>&amp;Pause</source>
-        <translation>暂停(&amp;P)</translation>
+        <source>&amp;Play</source>
+        <translation>播放(&amp;P)</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1135"/>
-        <source>Pause playback</source>
-        <translation>暂停回放</translation>
+        <source>Resume playback</source>
+        <translation>恢复播放</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="321"/>
         <source>&amp;Full Screen</source>
         <translation>全屏(&amp;F)</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="322"/>
         <source>Go full screen</source>
         <translation>全屏播放</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="336"/>
+        <source>&amp;Compact Mode</source>
+        <translation>紧凑模式(&amp;C)</translation>
+    </message>
+    <message>
         <source>Hide the playlist and the toolbar</source>
         <translation>隐藏播放列表和工具栏</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="349"/>
+        <source>Open the &amp;YouTube Page</source>
+        <translation>打开 YouTube 页面(&amp;Y)</translation>
+    </message>
+    <message>
         <source>Go to the YouTube video page and pause playback</source>
         <translation>打开YouTube视频页面并暂停回放</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="356"/>
+        <source>Copy the YouTube &amp;Link</source>
+        <translation>复制 YouTube 链接(&amp;L)</translation>
+    </message>
+    <message>
         <source>Copy the current video YouTube link to the clipboard</source>
         <translation>复制当前视频的YouTube链接到剪贴板中</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="363"/>
+        <source>Copy the Video Stream &amp;URL</source>
+        <translation>复制视频流 URL</translation>
+    </message>
+    <message>
         <source>Copy the current video stream URL to the clipboard</source>
         <translation>复制当前视频流的URL到剪贴板中</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="370"/>
+        <source>Find Video &amp;Parts</source>
+        <translation>查找视频部分(&amp;P)</translation>
+    </message>
+    <message>
         <source>Find other video parts hopefully in the right order</source>
         <translation>以正确的顺序查找其他视频部分</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="376"/>
         <source>&amp;Remove</source>
         <translation>移除(&amp;R)</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="377"/>
         <source>Remove the selected videos from the playlist</source>
         <translation>从播放列表中移除选定的视频</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="383"/>
         <source>Move &amp;Up</source>
         <translation>上移(&amp;U)</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="384"/>
         <source>Move up the selected videos in the playlist</source>
         <translation>在播放列表中向上移动选定的视频</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="390"/>
         <source>Move &amp;Down</source>
         <translation>下移(&amp;D)</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="391"/>
         <source>Move down the selected videos in the playlist</source>
         <translation>在播放列表中向下移动选定的视频</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="402"/>
+        <source>&amp;Clear Recent Searches</source>
+        <translation>清除最近的搜索(&amp;C)</translation>
+    </message>
+    <message>
         <source>Clear the search history. Cannot be undone.</source>
         <translation>清除搜索历史。注意:清除的历史不可恢复。</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="407"/>
         <source>&amp;Quit</source>
         <translation>退出(&amp;Q)</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="410"/>
         <source>Bye</source>
         <translation>再见</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="414"/>
         <source>&amp;Website</source>
         <translation>网站(&amp;W)</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="416"/>
         <source>%1 on the Web</source>
         <translation>%1在网站上</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="422"/>
+        <source>Make a &amp;Donation</source>
+        <translation>捐助(&amp;D)</translation>
+    </message>
+    <message>
         <source>Please support the continued development of %1</source>
         <translation>请您支持 %1 的继续开发</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="427"/>
         <source>&amp;About</source>
         <translation>关于(&amp;A)</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="429"/>
         <source>Info about %1</source>
         <translation>关于 %1 的信息</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="437"/>
         <source>Search</source>
         <translation>搜索</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="456"/>
         <source>Mute volume</source>
         <translation>静音</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="490"/>
-        <location filename="src/mainwindow.cpp" line="1609"/>
+        <source>&amp;Manually Start Playing</source>
+        <translation>手动开始播放(&amp;M)</translation>
+    </message>
+    <message>
+        <source>Manually start playing videos</source>
+        <translation>手动开始播放视频</translation>
+    </message>
+    <message>
         <source>&amp;Downloads</source>
         <translation>下载(&amp;D)</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="491"/>
         <source>Show details about video downloads</source>
         <translation>显示视频下载详情</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="499"/>
         <source>&amp;Download</source>
         <translation>下载(&amp;D)</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="500"/>
         <source>Download the current video</source>
         <translation>下载当前视频</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="510"/>
         <source>Take &amp;Snapshot</source>
         <translation>截屏 (&amp;s)</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="517"/>
         <source>&amp;Subscribe to Channel</source>
         <translation>订阅频道(&amp;S)</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="525"/>
         <source>Share the current video using %1</source>
         <translation>使用 %1 分享当前视频</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="545"/>
         <source>&amp;Email</source>
         <translation>电子邮件(&amp;E)</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="546"/>
         <source>Email</source>
         <translation>电子邮件</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="551"/>
         <source>&amp;Close</source>
         <translation>关闭(&amp;C)</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="561"/>
         <source>&amp;Float on Top</source>
         <translation>窗口置顶(&amp;F)</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="566"/>
         <source>&amp;Adjust Window Size</source>
         <translation>调整窗口大小(&amp;A)</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="571"/>
         <source>&amp;Stop After This Video</source>
         <translation>该视频后停止播放(&amp;S)</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="578"/>
         <source>&amp;Report an Issue...</source>
         <translation>报告问题&amp;R…</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="582"/>
         <source>&amp;Refine Search...</source>
         <translation>精确搜索(&amp;R)...</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="594"/>
         <source>More...</source>
         <translation>更多...</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="597"/>
         <source>&amp;Related Videos</source>
         <translation>相关视频(&amp;R)</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="599"/>
         <source>Watch videos related to the current one</source>
         <translation>查看与当前视频相关的视频</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="605"/>
         <source>Open in &amp;Browser...</source>
         <translation>在浏览器中打开(&amp;B)</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="612"/>
-        <source>&amp;Love %1? Rate it!</source>
-        <translation>喜欢 %1? 为其评分!</translation>
+        <source>Restricted Mode</source>
+        <translation>受限模式</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="633"/>
-        <source>&amp;Application</source>
-        <translation>应用程序(&amp;A)</translation>
+        <source>Hide videos that may contain inappropriate content</source>
+        <translation>隐藏可能含有不恰当内容的视频</translation>
+    </message>
+    <message>
+        <source>&amp;Love %1? Rate it!</source>
+        <translation>喜欢 %1? 为其评分!</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="618"/>
         <source>Buy %1...</source>
         <translation>购买 %1...</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="647"/>
+        <source>&amp;Application</source>
+        <translation>应用程序(&amp;A)</translation>
+    </message>
+    <message>
         <source>&amp;Playback</source>
         <translation>播放(&amp;P)</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="661"/>
         <source>&amp;Playlist</source>
         <translation>播放列表(&amp;P)</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="670"/>
         <source>&amp;Video</source>
         <translation>视频(&amp;V)</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="686"/>
-        <source>&amp;View</source>
-        <translation>查看(&amp;V)</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="695"/>
         <source>&amp;Share</source>
         <translation>分享(&amp;S)</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="709"/>
+        <source>&amp;View</source>
+        <translation>查看(&amp;V)</translation>
+    </message>
+    <message>
         <source>&amp;Help</source>
         <translation>帮助(&amp;H)</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="751"/>
         <source>Press %1 to raise the volume, %2 to lower it</source>
         <translation>按住 %1 提高音量,%2 降低音量</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1021"/>
-        <location filename="src/mainwindow.cpp" line="1027"/>
+        <source>Choose your content location</source>
+        <translation>选择您的内容位置</translation>
+    </message>
+    <message>
         <source>Opening %1</source>
         <translation>正在打开 %1</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1080"/>
         <source>Do you want to exit %1 with a download in progress?</source>
         <translation>当前还有尚未完成的下载。您确定要退出 %1 吗?</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1081"/>
         <source>If you close %1 now, this download will be cancelled.</source>
         <translation>如果您现在关闭 %1 ,那么本下载将被取消。</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1086"/>
         <source>Close and cancel download</source>
         <translation>关闭并取消下载</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1087"/>
         <source>Wait for download to finish</source>
         <translation>等待下载完成</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1158"/>
-        <source>&amp;Loading...</source>
-        <translation>加载中...(&amp;L)</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="1264"/>
-        <source>Leave &amp;Full Screen</source>
-        <translation>离开全屏模式(&amp;F)</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="1718"/>
-        <source>%1 version %2 is now available.</source>
-        <translation>%1 版本 %2 现在可用。</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="1722"/>
-        <source>Remind me later</source>
-        <translation>稍后提醒我</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="1723"/>
-        <source>Update</source>
-        <translation>更新</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="1127"/>
         <source>Error: %1</source>
         <translation>错误:%1</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="300"/>
-        <source>P&amp;revious</source>
-        <translation>上一首(&amp;R)</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="301"/>
-        <source>Go back to the previous track</source>
-        <translation>饭回到上一首音轨</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="335"/>
-        <source>&amp;Compact Mode</source>
-        <translation>紧凑模式(&amp;C)</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="348"/>
-        <source>Open the &amp;YouTube Page</source>
-        <translation>打开 YouTube 页面(&amp;Y)</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="355"/>
-        <source>Copy the YouTube &amp;Link</source>
-        <translation>复制 YouTube 链接(&amp;L)</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="362"/>
-        <source>Copy the Video Stream &amp;URL</source>
-        <translation>复制视频流 URL</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="369"/>
-        <source>Find Video &amp;Parts</source>
-        <translation>查找视频部分(&amp;P)</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="397"/>
-        <source>&amp;Clear Recent Searches</source>
-        <translation>清除最近的搜索(&amp;C)</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="421"/>
-        <source>Make a &amp;Donation</source>
-        <translation>捐助(&amp;D)</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="483"/>
-        <source>&amp;Manually Start Playing</source>
-        <translation>手动开始播放(&amp;M)</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="484"/>
-        <source>Manually start playing videos</source>
-        <translation>手动开始播放视频</translation>
+        <source>&amp;Pause</source>
+        <translation>暂停(&amp;P)</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="847"/>
-        <source>Choose your content location</source>
-        <translation>选择您的内容位置</translation>
+        <source>Pause playback</source>
+        <translation>暂停回放</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="314"/>
-        <location filename="src/mainwindow.cpp" line="1142"/>
-        <location filename="src/mainwindow.cpp" line="1150"/>
-        <source>&amp;Play</source>
-        <translation>播放(&amp;P)</translation>
+        <source>&amp;Loading...</source>
+        <translation>加载中...(&amp;L)</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="315"/>
-        <location filename="src/mainwindow.cpp" line="1143"/>
-        <location filename="src/mainwindow.cpp" line="1151"/>
-        <source>Resume playback</source>
-        <translation>恢复播放</translation>
+        <source>Leave &amp;Full Screen</source>
+        <translation>离开全屏模式(&amp;F)</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1437"/>
         <source>Remaining time: %1</source>
         <translation>剩余时间:%1</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1528"/>
         <source>Volume at %1%</source>
         <translation>音量:%1%</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1534"/>
         <source>Volume is muted</source>
         <translation>已设为静音</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1537"/>
         <source>Volume is unmuted</source>
         <translation>静音已解除</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1548"/>
         <source>Maximum video definition set to %1</source>
         <translation>最大视频定义设置为%1</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1595"/>
         <source>Your privacy is now safe</source>
         <translation>您的隐私已受保护</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1610"/>
         <source>Downloads complete</source>
         <translation>下载完成</translation>
     </message>
+    <message>
+        <source>%1 version %2 is now available.</source>
+        <translation>%1 版本 %2 现在可用。</translation>
+    </message>
+    <message>
+        <source>Remind me later</source>
+        <translation>稍后提醒我</translation>
+    </message>
+    <message>
+        <source>Update</source>
+        <translation>更新</translation>
+    </message>
 </context>
 <context>
     <name>MediaView</name>
     <message>
-        <location filename="src/mediaview.cpp" line="702"/>
         <source>You can now paste the YouTube link into another application</source>
         <translation>您现在可以把YouTube的链接粘贴到其他应用了</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="710"/>
         <source>You can now paste the video stream URL into another application</source>
         <translation>您现在可以把视频流的链接粘贴到其他应用了</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="711"/>
         <source>The link will be valid only for a limited time.</source>
         <translation>此链接仅能保持短时间的有效性。</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="800"/>
         <source>This is just the demo version of %1.</source>
         <translation>这仅是 %1 的演示版。</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="801"/>
         <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="833"/>
+        <source>Get the full version</source>
+        <translation>获取完整版</translation>
+    </message>
+    <message>
         <source>Continue</source>
         <translation>继续</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="988"/>
+        <source>Downloading %1</source>
+        <translation>正在下载 %1</translation>
+    </message>
+    <message>
         <source>of</source>
         <comment>Used in video parts, as in '2 of 3'</comment>
         <translation>之</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="1001"/>
         <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="1003"/>
         <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="1096"/>
         <source>Sent from %1</source>
         <translation>由 %1 发送</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="1128"/>
         <source>Unsubscribe from %1</source>
         <translation>取消订阅 %1</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="1132"/>
         <source>Subscribe to %1</source>
         <translation>订阅 %1</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="1166"/>
         <source>Unsubscribed from %1</source>
         <translation>从 %1 退订</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="1169"/>
         <source>Subscribed to %1</source>
         <translation>订阅 %1</translation>
     </message>
-    <message>
-        <location filename="src/mediaview.cpp" line="808"/>
-        <source>Get the full version</source>
-        <translation>获取完整版</translation>
-    </message>
-    <message>
-        <location filename="src/mediaview.cpp" line="847"/>
-        <source>Downloading %1</source>
-        <translation>正在下载 %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>发现新版本的 %1 !</translation>
     </message>
     <message>
-        <location filename="local/src/updatedialog.cpp" line="28"/>
         <source>%1 %2 is now available. You have %3.</source>
         <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>您想现在下载吗?</translation>
     </message>
     <message>
-        <location filename="local/src/updatedialog.cpp" line="39"/>
         <source>Skip This Version</source>
         <translation>跳过此版本</translation>
     </message>
     <message>
-        <location filename="local/src/updatedialog.cpp" line="43"/>
         <source>Remind Me Later</source>
         <translation>稍后提醒我</translation>
     </message>
     <message>
-        <location filename="local/src/updatedialog.cpp" line="47"/>
         <source>Install Update</source>
         <translation>安装更新</translation>
     </message>
 <context>
     <name>PasteLineEdit</name>
     <message>
-        <location filename="local/src/pastelineedit.cpp" line="6"/>
         <source>Paste</source>
         <translation>粘贴</translation>
     </message>
 <context>
     <name>PlaylistItemDelegate</name>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="209"/>
         <source>%1 views</source>
         <translation>%1 人次观看</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="309"/>
         <source>%1 of %2 (%3) — %4</source>
         <translation>%1 之 %2 (%3) — %4</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="316"/>
         <source>Preparing</source>
         <translation>准备中</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="318"/>
         <source>Failed</source>
         <translation>已失败</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="320"/>
         <source>Completed</source>
         <translation>已完成</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="322"/>
         <source>Stopped</source>
         <translation>已停止</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="358"/>
         <source>Stop downloading</source>
         <translation>停止下载</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="368"/>
         <source>Show in %1</source>
         <translation>显示到 %1</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="370"/>
         <source>Open parent folder</source>
         <translation>打开上层目录</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="379"/>
         <source>Restart downloading</source>
         <translation>重新下载</translation>
     </message>
 <context>
     <name>PlaylistModel</name>
     <message>
-        <location filename="src/playlistmodel.cpp" line="70"/>
         <source>Searching...</source>
         <translation>搜索中……</translation>
     </message>
     <message>
-        <location filename="src/playlistmodel.cpp" line="71"/>
         <source>Show %1 More</source>
         <translation>再多显示 %1</translation>
     </message>
     <message>
-        <location filename="src/playlistmodel.cpp" line="72"/>
         <source>No videos</source>
         <translation>没有视频</translation>
     </message>
     <message>
-        <location filename="src/playlistmodel.cpp" line="73"/>
         <source>No more videos</source>
         <translation>没有更多视频</translation>
     </message>
 <context>
     <name>RefineSearchWidget</name>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="49"/>
         <source>Sort by</source>
         <translation>排序</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="53"/>
         <source>Relevance</source>
         <translation>相关性</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="54"/>
-        <location filename="src/refinesearchwidget.cpp" line="69"/>
         <source>Date</source>
         <translation>日期</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="55"/>
         <source>View Count</source>
         <translation>查看计数</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="56"/>
         <source>Rating</source>
         <translation>评分</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="73"/>
         <source>Anytime</source>
         <translation>任何时候</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="74"/>
         <source>Today</source>
         <translation>今天</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="75"/>
         <source>7 Days</source>
         <translation>7 天</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="76"/>
         <source>30 Days</source>
         <translation>30 天</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="89"/>
         <source>Duration</source>
         <translation>持续时长</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="93"/>
-        <location filename="src/refinesearchwidget.cpp" line="119"/>
         <source>All</source>
         <translation>全部</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="94"/>
         <source>Short</source>
         <translation>短</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="95"/>
         <source>Medium</source>
         <translation>中等</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="96"/>
         <source>Long</source>
         <translation>长</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="99"/>
         <source>Less than 4 minutes</source>
         <translation>少于 4 分钟</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="100"/>
         <source>Between 4 and 20 minutes</source>
         <translation>4 到 20 分钟之间</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="101"/>
         <source>Longer than 20 minutes</source>
         <translation>长于 20 分钟</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="115"/>
         <source>Quality</source>
         <translation>质量</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="120"/>
         <source>High Definition</source>
         <translation>高分辨率</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="123"/>
         <source>720p or higher</source>
         <translation>720p 或更高</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="136"/>
         <source>Done</source>
         <translation>完成</translation>
     </message>
 <context>
     <name>RegionsView</name>
     <message>
-        <location filename="src/regionsview.cpp" line="39"/>
         <source>Done</source>
         <translation>完成</translation>
     </message>
 <context>
     <name>SearchLineEdit</name>
     <message>
-        <location filename="src/searchlineedit.cpp" line="55"/>
         <source>Search</source>
         <translation>搜索</translation>
     </message>
 <context>
     <name>SearchView</name>
     <message>
-        <location filename="src/searchview.cpp" line="83"/>
         <source>Welcome to &lt;a href=&apos;%1&apos;&gt;%2&lt;/a&gt;,</source>
         <translation>欢迎使用&lt;a href=&apos;%1&apos;&gt;%2&lt;/a&gt;!</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="200"/>
-        <source>Get the full version</source>
-        <translation>获取完整版</translation>
-    </message>
-    <message>
-        <location filename="src/searchview.cpp" line="110"/>
         <source>Enter</source>
         <extracomment>&quot;Enter&quot;, as in &quot;type&quot;. The whole phrase says: &quot;Enter a keyword to start watching videos&quot;</extracomment>
         <translation>输入</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="117"/>
         <source>a keyword</source>
         <translation>关键字</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="118"/>
         <source>a channel</source>
         <translation>频道名称</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="125"/>
         <source>to start watching videos.</source>
         <translation>开始观看视频。</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="156"/>
         <source>Watch</source>
         <translation>观看</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="174"/>
         <source>Recent keywords</source>
         <translation>最近关键字词</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="186"/>
         <source>Recent channels</source>
         <translation>最近频道</translation>
     </message>
+    <message>
+        <source>Get the full version</source>
+        <translation>获取完整版</translation>
+    </message>
 </context>
 <context>
     <name>SidebarHeader</name>
     <message>
-        <location filename="src/sidebarheader.cpp" line="38"/>
-        <location filename="src/sidebarheader.cpp" line="45"/>
         <source>&amp;Back</source>
         <translation>后退(_B)</translation>
     </message>
     <message>
-        <location filename="src/sidebarheader.cpp" line="76"/>
         <source>Forward to %1</source>
         <translation>前进至 %1</translation>
     </message>
     <message>
-        <location filename="src/sidebarheader.cpp" line="89"/>
         <source>Back to %1</source>
         <translation>返回到 %1</translation>
     </message>
 <context>
     <name>SidebarWidget</name>
     <message>
-        <location filename="src/sidebarwidget.cpp" line="68"/>
         <source>Refine Search</source>
         <translation>二次检索</translation>
     </message>
     <message>
-        <location filename="src/sidebarwidget.cpp" line="167"/>
         <source>Did you mean: %1</source>
         <translation>您的意思是:%1</translation>
     </message>
 <context>
     <name>SnapshotSettings</name>
     <message>
-        <location filename="src/snapshotsettings.cpp" line="47"/>
         <source>Change location...</source>
         <translation>更改存储位置……</translation>
     </message>
     <message>
-        <location filename="src/snapshotsettings.cpp" line="64"/>
         <source>Snapshot saved to %1</source>
         <translation>截图已保存到 %1</translation>
     </message>
     <message>
-        <location filename="src/snapshotsettings.cpp" line="117"/>
         <source>Snapshots location changed.</source>
         <translation>截图位置已改变。</translation>
     </message>
 <context>
     <name>StandardFeedsView</name>
     <message>
-        <location filename="src/standardfeedsview.cpp" line="107"/>
         <source>Most Popular</source>
         <translation>最流行</translation>
     </message>
 </context>
+<context>
+    <name>UpdateDialog</name>
+    <message>
+        <source>Downloading update...</source>
+        <translation>正在下载更新...</translation>
+    </message>
+    <message>
+        <source>Downloading %1...</source>
+        <translation>正在下载 %1...</translation>
+    </message>
+</context>
 <context>
     <name>Video</name>
     <message>
-        <location filename="src/video.cpp" line="287"/>
         <source>Cannot get video stream for %1</source>
         <translation>无法获得视频流。可能原因:%1</translation>
     </message>
-    <message>
-        <location filename="src/video.cpp" line="292"/>
-        <source>Network error: %1 for %2</source>
-        <translation>网络错误:%1。可能原因:%2</translation>
-    </message>
 </context>
 <context>
     <name>YTRegions</name>
     <message>
-        <location filename="src/ytregions.cpp" line="28"/>
         <source>Algeria</source>
         <translation>阿尔及利亚</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="29"/>
         <source>Argentina</source>
         <translation>阿根廷</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="30"/>
         <source>Australia</source>
         <translation>澳大利亚</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="31"/>
         <source>Belgium</source>
         <translation>比利时</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="32"/>
         <source>Brazil</source>
         <translation>巴西</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="33"/>
         <source>Canada</source>
         <translation>加拿大</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="34"/>
         <source>Chile</source>
         <translation>智利</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="35"/>
         <source>Colombia</source>
         <translation>哥伦比亚</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="36"/>
         <source>Czech Republic</source>
         <translation>捷克共和国</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="37"/>
         <source>Egypt</source>
         <translation>埃及</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="38"/>
         <source>France</source>
         <translation>法国</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="39"/>
         <source>Germany</source>
         <translation>德国</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="40"/>
         <source>Ghana</source>
         <translation>加纳</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="41"/>
         <source>Greece</source>
         <translation>希腊</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="42"/>
         <source>Hong Kong</source>
         <translation>香港</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="43"/>
         <source>Hungary</source>
         <translation>匈牙利</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="44"/>
         <source>India</source>
         <translation>印度</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="45"/>
         <source>Indonesia</source>
         <translation>印度尼西亚</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="46"/>
         <source>Ireland</source>
         <translation>爱尔兰</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="47"/>
         <source>Israel</source>
         <translation>以色列</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="48"/>
         <source>Italy</source>
         <translation>意大利</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="49"/>
         <source>Japan</source>
         <translation>日本</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="50"/>
         <source>Jordan</source>
         <translation>约旦</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="51"/>
         <source>Kenya</source>
         <translation>肯尼亚</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="52"/>
         <source>Malaysia</source>
         <translation>马来西亚</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="53"/>
         <source>Mexico</source>
         <translation>墨西哥</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="54"/>
         <source>Morocco</source>
         <translation>摩洛哥</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="55"/>
         <source>Netherlands</source>
         <translation>荷兰</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="56"/>
         <source>New Zealand</source>
         <translation>新西兰</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="57"/>
         <source>Nigeria</source>
         <translation>尼日利亚</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="58"/>
         <source>Peru</source>
         <translation>秘鲁</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="59"/>
         <source>Philippines</source>
         <translation>菲律宾</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="60"/>
         <source>Poland</source>
         <translation>波兰</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="61"/>
         <source>Russia</source>
         <translation>俄罗斯</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="62"/>
         <source>Saudi Arabia</source>
         <translation>沙特阿拉伯</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="63"/>
         <source>Singapore</source>
         <translation>新加坡</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="64"/>
         <source>South Africa</source>
         <translation>南非</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="65"/>
         <source>South Korea</source>
         <translation>韩国</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="66"/>
         <source>Spain</source>
         <translation>西班牙</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="67"/>
         <source>Sweden</source>
         <translation>瑞士</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="68"/>
         <source>Taiwan</source>
         <translation>台湾</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="69"/>
         <source>Tunisia</source>
         <translation>突尼斯</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="70"/>
         <source>Turkey</source>
         <translation>土耳其</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="71"/>
         <source>Uganda</source>
         <translation>乌干达</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="72"/>
         <source>United Arab Emirates</source>
         <translation>阿联酋</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="73"/>
         <source>United Kingdom</source>
         <translation>英国</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="74"/>
         <source>Yemen</source>
         <translation>也门</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="148"/>
         <source>Worldwide</source>
         <translation>全球</translation>
     </message>
index f2c7616fb49222f397e9f391e70118cb2ae8f5bf..4e9424e59cc98fa4028d71476300f4ac337bc881 100644 (file)
@@ -2,67 +2,42 @@
 <context>
     <name>AboutView</name>
     <message>
-        <location filename="src/aboutview.cpp" line="58"/>
         <source>There&apos;s life outside the browser!</source>
         <translation>在瀏覽器之外的生活!</translation>
     </message>
     <message>
-        <location filename="src/aboutview.cpp" line="59"/>
         <source>Version %1</source>
         <translation>版本 %1</translation>
     </message>
     <message>
-        <location filename="src/aboutview.cpp" line="64"/>
         <source>Licensed to: %1</source>
         <translation>授權使用:%1</translation>
     </message>
     <message>
-        <location filename="src/aboutview.cpp" line="68"/>
         <source>%1 is Free Software but its development takes precious time.</source>
         <translation>%1 是免費軟體,但其發展需要寶貴的時間。</translation>
     </message>
     <message>
-        <location filename="src/aboutview.cpp" line="69"/>
         <source>Please &lt;a href=&apos;%1&apos;&gt;donate&lt;/a&gt; to support the continued development of %2.</source>
         <translation>請 &lt;a href=&apos;%1&apos;&gt;贊助&lt;/a&gt; 以支持持續發展 %2。</translation>
     </message>
     <message>
-        <location filename="src/aboutview.cpp" line="73"/>
-        <source>You may want to try my other apps as well:</source>
-        <translation>您可能也想嘗試我的其他應用程式:</translation>
-    </message>
-    <message>
-        <location filename="src/aboutview.cpp" line="76"/>
-        <source>%1, a YouTube music player</source>
-        <translation>%1, 一個 YouTube 的音樂播放器</translation>
-    </message>
-    <message>
-        <location filename="src/aboutview.cpp" line="80"/>
-        <source>%1, a music player</source>
-        <translation>%1, 一個音樂播放器</translation>
-    </message>
-    <message>
-        <location filename="src/aboutview.cpp" line="86"/>
         <source>Translate %1 to your native language using %2</source>
         <translation>使用 %2 翻譯 %1 介面成為您的本國語言</translation>
     </message>
     <message>
-        <location filename="src/aboutview.cpp" line="91"/>
         <source>Icon designed by %1.</source>
         <translation>圖示由 %1 所設計。 </translation>
     </message>
     <message>
-        <location filename="src/aboutview.cpp" line="95"/>
         <source>Released under the &lt;a href=&apos;%1&apos;&gt;GNU General Public License&lt;/a&gt;</source>
         <translation>發布在 &lt;a href=&apos;%1&apos;&gt;GNU 通用公共授權條款&lt;/a&gt;之下</translation>
     </message>
     <message>
-        <location filename="src/aboutview.cpp" line="110"/>
         <source>&amp;Close</source>
         <translation>關閉(&amp;C)</translation>
     </message>
     <message>
-        <location filename="src/aboutview.h" line="40"/>
         <source>About</source>
         <translation>關於</translation>
     </message>
 <context>
     <name>ActivationDialog</name>
     <message>
-        <location filename="local/src/activationdialog.cpp" line="17"/>
         <source>Enter your License Details</source>
         <translation>輸入您的使用授權詳細資料</translation>
     </message>
     <message>
-        <location filename="local/src/activationdialog.cpp" line="29"/>
         <source>&amp;Email:</source>
         <translation>電子郵件(&amp;E):</translation>
     </message>
     <message>
-        <location filename="local/src/activationdialog.cpp" line="35"/>
         <source>&amp;Code:</source>
         <translation>授權碼(&amp;C):</translation>
     </message>
 <context>
     <name>ActivationView</name>
     <message>
-        <location filename="local/src/activationview.cpp" line="47"/>
         <source>Please license %1</source>
         <translation>請取得 %1 授權</translation>
     </message>
     <message>
-        <location filename="local/src/activationview.cpp" line="51"/>
         <source>This demo has expired.</source>
         <translation>這個展示版已過期。</translation>
     </message>
     <message>
-        <location filename="local/src/activationview.cpp" line="53"/>
         <source>The full version allows you to watch videos without interruptions.</source>
-        <oldsource>The full version allows you to download videos longer than %1 minutes and to watch videos without interruptions.</oldsource>
         <translation>完整的版本允許您不被中斷地觀看影片。</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>
     </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>
     </message>
     <message>
-        <location filename="local/src/activationview.cpp" line="70"/>
         <source>Use Demo</source>
         <translation>使用展示版</translation>
     </message>
     <message>
-        <location filename="local/src/activationview.cpp" line="77"/>
         <source>Enter License</source>
         <translation>輸入授權</translation>
     </message>
     <message>
-        <location filename="local/src/activationview.cpp" line="85"/>
         <source>Buy License</source>
         <translation>購買授權</translation>
     </message>
 </context>
+<context>
+    <name>AppWidget</name>
+    <message>
+        <source>Download</source>
+        <translation>下載</translation>
+    </message>
+</context>
 <context>
     <name>ChannelAggregator</name>
     <message>
-        <location filename="src/channelaggregator.cpp" line="183"/>
         <source>By %1</source>
         <translation>依 %1</translation>
     </message>
     <message numerus="yes">
-        <location filename="src/channelaggregator.cpp" line="185"/>
         <source>You have %n new video(s)</source>
-        <translation><numerusform>您有 %n 個新的影片</numerusform></translation>
+        <translation type="unfinished"><numerusform></numerusform></translation>
     </message>
 </context>
 <context>
     <name>ChannelItemDelegate</name>
     <message>
-        <location filename="src/channelitemdelegate.cpp" line="67"/>
         <source>All Videos</source>
         <translation>全部影片</translation>
     </message>
     <message>
-        <location filename="src/channelitemdelegate.cpp" line="85"/>
         <source>Unwatched Videos</source>
         <translation>尚未觀看的影片</translation>
     </message>
 <context>
     <name>ChannelView</name>
     <message>
-        <location filename="src/channelview.cpp" line="151"/>
-        <source>Mark all as watched</source>
-        <translation>標記全部為看過的</translation>
-    </message>
-    <message>
-        <location filename="src/channelview.cpp" line="159"/>
-        <source>Show Updated</source>
-        <translation>顯示更新</translation>
-    </message>
-    <message>
-        <location filename="src/channelview.cpp" line="103"/>
         <source>Name</source>
         <translation>名稱</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="110"/>
         <source>Last Updated</source>
         <translation>最近更新的</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="117"/>
         <source>Last Added</source>
         <translation>最近加入的</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="124"/>
         <source>Last Watched</source>
         <translation>最近看過的</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="131"/>
         <source>Most Watched</source>
         <translation>最多觀賞次數</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="139"/>
         <source>Sort by</source>
         <translation>排序根據</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="222"/>
+        <source>Mark all as watched</source>
+        <translation>標記全部為看過的</translation>
+    </message>
+    <message>
+        <source>Show Updated</source>
+        <translation>顯示更新</translation>
+    </message>
+    <message>
         <source>All Videos</source>
         <translation>全部影片</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="226"/>
         <source>Unwatched Videos</source>
         <translation>尚未觀看的影片</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="244"/>
         <source>Mark as Watched</source>
         <translation>標記為已觀看</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="257"/>
         <source>Unsubscribe</source>
         <translation>取消訂閱</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="270"/>
         <source>There are no updated subscriptions at this time.</source>
         <translation>目前沒有更新的訂閱。</translation>
     </message>
     <message>
-        <location filename="src/channelview.cpp" line="272"/>
         <source>You have no subscriptions. Use the star symbol to subscribe to channels.</source>
         <translation>您暫時沒有任何訂閱。使用星星符號訂閱頻道。</translation>
     </message>
 <context>
     <name>ClearButton</name>
     <message>
-        <location filename="src/exlineedit.cpp" line="6"/>
         <source>Clear</source>
         <translation>清除</translation>
     </message>
 <context>
     <name>DataUtils</name>
     <message>
-        <location filename="src/datautils.cpp" line="88"/>
         <source>Just now</source>
         <translation>就是現在</translation>
     </message>
     <message numerus="yes">
-        <location filename="src/datautils.cpp" line="90"/>
-        <source>%n minute(s) ago</source>
-        <translation><numerusform>%n 分鐘前</numerusform></translation>
-    </message>
-    <message numerus="yes">
-        <location filename="src/datautils.cpp" line="92"/>
         <source>%n hour(s) ago</source>
-        <translation><numerusform>%n 小時前</numerusform></translation>
+        <translation type="unfinished"><numerusform></numerusform></translation>
     </message>
     <message numerus="yes">
-        <location filename="src/datautils.cpp" line="94"/>
         <source>%n day(s) ago</source>
-        <translation><numerusform>%n 天前</numerusform></translation>
+        <translation type="unfinished"><numerusform></numerusform></translation>
     </message>
     <message numerus="yes">
-        <location filename="src/datautils.cpp" line="96"/>
         <source>%n weeks(s) ago</source>
-        <translation><numerusform>%n 週前</numerusform></translation>
+        <translation type="unfinished"><numerusform></numerusform></translation>
     </message>
     <message numerus="yes">
-        <location filename="src/datautils.cpp" line="98"/>
         <source>%n month(s) ago</source>
-        <translation><numerusform>%n 個月前</numerusform></translation>
+        <translation type="unfinished"><numerusform></numerusform></translation>
     </message>
 </context>
 <context>
     <name>DownloadItem</name>
     <message>
-        <location filename="src/downloaditem.cpp" line="406"/>
         <source>bytes</source>
         <translation>bytes</translation>
     </message>
     <message>
-        <location filename="src/downloaditem.cpp" line="409"/>
         <source>KB</source>
         <translation>KB</translation>
     </message>
     <message>
-        <location filename="src/downloaditem.cpp" line="412"/>
         <source>MB</source>
         <translation>MB</translation>
     </message>
     <message>
-        <location filename="src/downloaditem.cpp" line="421"/>
         <source>bytes/sec</source>
         <translation>bytes/秒</translation>
     </message>
     <message>
-        <location filename="src/downloaditem.cpp" line="424"/>
         <source>KB/sec</source>
         <translation>KB/秒</translation>
     </message>
     <message>
-        <location filename="src/downloaditem.cpp" line="427"/>
         <source>MB/sec</source>
         <translation>MB/秒</translation>
     </message>
     <message>
-        <location filename="src/downloaditem.cpp" line="433"/>
         <source>seconds</source>
         <translation>秒</translation>
     </message>
     <message>
-        <location filename="src/downloaditem.cpp" line="436"/>
         <source>minutes</source>
         <translation>分</translation>
     </message>
     <message>
-        <location filename="src/downloaditem.cpp" line="439"/>
         <source>%4 %5 remaining</source>
         <translation>剩餘 %4 %5</translation>
     </message>
 <context>
     <name>DownloadManager</name>
     <message>
-        <location filename="src/downloadmanager.cpp" line="77"/>
         <source>This is just the demo version of %1.</source>
         <translation>這僅僅是展示版的  %1。</translation>
     </message>
     <message>
-        <location filename="src/downloadmanager.cpp" line="79"/>
         <source>It can only download videos shorter than %1 minutes so you can test the download functionality.</source>
         <translation>它只能下載影片少於 %1 分鐘,使您可以測試下載功能。</translation>
     </message>
     <message>
-        <location filename="src/downloadmanager.cpp" line="85"/>
         <source>Continue</source>
         <translation>繼續</translation>
     </message>
     <message>
-        <location filename="src/downloadmanager.cpp" line="86"/>
         <source>Get the full version</source>
         <translation>取得完整版</translation>
     </message>
     <message>
-        <location filename="src/downloadmanager.cpp" line="157"/>
         <source>%1 downloaded in %2</source>
         <translation>%1 下載在 %2</translation>
     </message>
     <message>
-        <location filename="src/downloadmanager.cpp" line="160"/>
         <source>Download finished</source>
         <translation>下載完成</translation>
     </message>
     <message numerus="yes">
-        <location filename="src/downloadmanager.cpp" line="165"/>
         <source>%n Download(s)</source>
-        <translation><numerusform>%n 次下載</numerusform></translation>
+        <translation type="unfinished"><numerusform></numerusform></translation>
     </message>
 </context>
 <context>
     <name>DownloadSettings</name>
     <message>
-        <location filename="src/downloadsettings.cpp" line="36"/>
         <source>Change location...</source>
         <translation>變更位置...</translation>
     </message>
     <message>
-        <location filename="src/downloadsettings.cpp" line="69"/>
         <source>Choose the download location</source>
         <translation>選擇下載位置</translation>
     </message>
     <message>
-        <location filename="src/downloadsettings.cpp" line="81"/>
         <source>Download location changed.</source>
         <translation>下載位置已變更。</translation>
     </message>
     <message>
-        <location filename="src/downloadsettings.cpp" line="83"/>
         <source>Current downloads will still go in the previous location.</source>
         <translation>目前的下載仍然會進入先前的位置。</translation>
     </message>
     <message>
-        <location filename="src/downloadsettings.cpp" line="94"/>
         <source>Downloading to: %1</source>
         <translation>下載至:%1</translation>
     </message>
 <context>
     <name>DownloadView</name>
     <message>
-        <location filename="src/downloadview.cpp" line="38"/>
-        <location filename="src/downloadview.h" line="45"/>
         <source>Downloads</source>
         <translation>下載</translation>
     </message>
 </context>
-<context>
-    <name>DownloadWidget</name>
-    <message>
-        <location filename="local/src/updatedialog.cpp" line="60"/>
-        <source>Downloading update...</source>
-        <translation>下載更新中...</translation>
-    </message>
-</context>
 <context>
     <name>Extra</name>
     <message>
-        <location filename="local/src/extra.cpp" line="251"/>
         <source>The executable file has been tempered with, maybe by a virus.</source>
         <translation>可執行檔可能已被病毒竄改。</translation>
     </message>
     <message>
-        <location filename="local/src/extra.cpp" line="252"/>
         <source>%1 will not run. Try installing again.</source>
         <translation>%1 將不會執行。嘗試再次安裝。</translation>
     </message>
     <message>
-        <location filename="local/src/extra.cpp" line="253"/>
         <source>Quit</source>
         <translation>離開</translation>
     </message>
     <message>
-        <location filename="local/src/extra.cpp" line="254"/>
         <source>Reinstall</source>
         <translation>重新安裝</translation>
     </message>
 <context>
     <name>GlobalShortcuts</name>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="36"/>
         <source>Play</source>
         <translation>播放</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="37"/>
         <source>Pause</source>
         <translation>暫停</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="38"/>
         <source>Play/Pause</source>
         <translation>播放/暫停</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="39"/>
         <source>Stop</source>
         <translation>停止</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="40"/>
         <source>Stop playing after current track</source>
         <translation>在目前的曲目之後,停止播放</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="41"/>
         <source>Next track</source>
         <translation>下一首曲目</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="42"/>
         <source>Previous track</source>
         <translation>上一首曲目</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="43"/>
         <source>Increase volume</source>
         <translation>增加音量</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="44"/>
         <source>Decrease volume</source>
         <translation>減少音量</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="45"/>
         <source>Mute</source>
         <translation>靜音</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="46"/>
         <source>Seek forward</source>
         <translation>快轉</translation>
     </message>
     <message>
-        <location filename="src/globalshortcuts.cpp" line="47"/>
         <source>Seek backward</source>
         <translation>倒轉</translation>
     </message>
 <context>
     <name>HomeView</name>
     <message>
-        <location filename="src/homeview.cpp" line="58"/>
         <source>Search</source>
         <translation>搜尋</translation>
     </message>
     <message>
-        <location filename="src/homeview.cpp" line="60"/>
         <source>Find videos and channels by keyword</source>
         <translation>用關鍵字尋找影片和頻道</translation>
     </message>
     <message>
-        <location filename="src/homeview.cpp" line="65"/>
         <source>Browse</source>
         <translation>瀏覽</translation>
     </message>
     <message>
-        <location filename="src/homeview.cpp" line="67"/>
         <source>Browse videos by category</source>
         <translation>按類別瀏覽影片</translation>
     </message>
     <message>
-        <location filename="src/homeview.cpp" line="71"/>
         <source>Subscriptions</source>
         <translation>訂閱</translation>
     </message>
     <message>
-        <location filename="src/homeview.cpp" line="73"/>
         <source>Channel subscriptions</source>
         <translation>頻道訂閱</translation>
     </message>
     <message>
-        <location filename="src/homeview.h" line="44"/>
         <source>Make yourself comfortable</source>
         <translation>您可以盡情享受</translation>
     </message>
 <context>
     <name>LoadingWidget</name>
     <message>
-        <location filename="src/loadingwidget.cpp" line="125"/>
         <source>Error</source>
         <translation>錯誤</translation>
     </message>
 <context>
     <name>MainWindow</name>
     <message>
-        <location filename="src/mainwindow.cpp" line="291"/>
+        <source>&amp;Window</source>
+        <translation>視窗(&amp;W)</translation>
+    </message>
+    <message>
+        <source>&amp;Minimize</source>
+        <translation>最小化(&amp;M)</translation>
+    </message>
+    <message>
         <source>&amp;Stop</source>
         <translation>停止(&amp;S)</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="292"/>
         <source>Stop playback and go back to the search view</source>
         <translation>停止播放並回到搜尋檢視中</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="307"/>
+        <source>P&amp;revious</source>
+        <translation>上一個(&amp;R)</translation>
+    </message>
+    <message>
+        <source>Go back to the previous track</source>
+        <translation>回到上一個影片</translation>
+    </message>
+    <message>
         <source>S&amp;kip</source>
         <translation>下一個(&amp;K)</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="308"/>
         <source>Skip to the next video</source>
         <translation>跳至下一個影片</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1134"/>
-        <source>&amp;Pause</source>
-        <translation>暫停(&amp;P)</translation>
+        <source>&amp;Play</source>
+        <translation>播放(&amp;P)</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1135"/>
-        <source>Pause playback</source>
-        <translation>暫停播放</translation>
+        <source>Resume playback</source>
+        <translation>恢復播放</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="321"/>
         <source>&amp;Full Screen</source>
         <translation>全螢幕(&amp;F)</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="322"/>
         <source>Go full screen</source>
         <translation>切換至全螢幕</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="336"/>
+        <source>&amp;Compact Mode</source>
+        <translation>精簡模式(&amp;C)</translation>
+    </message>
+    <message>
         <source>Hide the playlist and the toolbar</source>
         <translation>隱藏播放清單和工具列</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="349"/>
+        <source>Open the &amp;YouTube Page</source>
+        <translation>開啟 &amp;YouTube 頁面</translation>
+    </message>
+    <message>
         <source>Go to the YouTube video page and pause playback</source>
         <translation>前往 YouTube 影片頁面並且暫停播放</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="356"/>
+        <source>Copy the YouTube &amp;Link</source>
+        <translation>複製 YouTube 的連結(&amp;L)</translation>
+    </message>
+    <message>
         <source>Copy the current video YouTube link to the clipboard</source>
         <translation>複製目前 YouTube 影片的連結到剪貼簿</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="363"/>
+        <source>Copy the Video Stream &amp;URL</source>
+        <translation>複製影片串流網址(&amp;U)</translation>
+    </message>
+    <message>
         <source>Copy the current video stream URL to the clipboard</source>
         <translation>複製目前影片串流網址到剪貼簿</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="370"/>
+        <source>Find Video &amp;Parts</source>
+        <translation>找到其他影片部分(&amp;P)</translation>
+    </message>
+    <message>
         <source>Find other video parts hopefully in the right order</source>
         <translation>希望能以正確的順序找到其他影片部分</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="376"/>
         <source>&amp;Remove</source>
         <translation>移除(&amp;R)</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="377"/>
         <source>Remove the selected videos from the playlist</source>
         <translation>從播放清單中移除所選的影片</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="383"/>
         <source>Move &amp;Up</source>
         <translation>向上移動(&amp;U)</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="384"/>
         <source>Move up the selected videos in the playlist</source>
         <translation>向上移動在播放清單中所選的影片</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="390"/>
         <source>Move &amp;Down</source>
         <translation>向下移動(&amp;D)</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="391"/>
         <source>Move down the selected videos in the playlist</source>
         <translation>向下移動在播放清單中所選的影片</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="402"/>
+        <source>&amp;Clear Recent Searches</source>
+        <translation>清除最近的搜尋(&amp;C)</translation>
+    </message>
+    <message>
         <source>Clear the search history. Cannot be undone.</source>
         <translation>清除搜尋歷史記錄。不能撤消。</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="407"/>
         <source>&amp;Quit</source>
         <translation>結束(&amp;Q)</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="410"/>
         <source>Bye</source>
         <translation>再見</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="414"/>
         <source>&amp;Website</source>
         <translation>網站(&amp;W)</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="416"/>
         <source>%1 on the Web</source>
         <translation>在網絡上的 %1</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="422"/>
+        <source>Make a &amp;Donation</source>
+        <translation>贊助(&amp;D)</translation>
+    </message>
+    <message>
         <source>Please support the continued development of %1</source>
         <translation>請支持持續發展 %1</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="427"/>
         <source>&amp;About</source>
         <translation>關於(&amp;A)</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="429"/>
         <source>Info about %1</source>
         <translation>有關 %1 訊息</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="437"/>
         <source>Search</source>
         <translation>搜尋</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="456"/>
         <source>Mute volume</source>
         <translation>靜音</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="490"/>
-        <location filename="src/mainwindow.cpp" line="1609"/>
+        <source>&amp;Manually Start Playing</source>
+        <translation>手動啟動播放(&amp;M)</translation>
+    </message>
+    <message>
+        <source>Manually start playing videos</source>
+        <translation>手動啟動播放影片</translation>
+    </message>
+    <message>
         <source>&amp;Downloads</source>
         <translation>下載(&amp;D)</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="491"/>
         <source>Show details about video downloads</source>
         <translation>顯示影片下載細節</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="499"/>
         <source>&amp;Download</source>
         <translation>下載(&amp;D)</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="500"/>
         <source>Download the current video</source>
         <translation>下載目前的影片</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="510"/>
         <source>Take &amp;Snapshot</source>
         <translation>拍攝快照(&amp;S)</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="517"/>
         <source>&amp;Subscribe to Channel</source>
         <translation>訂閱頻道(&amp;S)</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="525"/>
         <source>Share the current video using %1</source>
         <translation>分享目前的影片使用 %1</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="545"/>
         <source>&amp;Email</source>
         <translation>電子郵件(&amp;E)</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="546"/>
         <source>Email</source>
         <translation>電子郵件</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="551"/>
         <source>&amp;Close</source>
         <translation>關閉(&amp;C)</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="561"/>
         <source>&amp;Float on Top</source>
         <translation>浮在上面(&amp;F)</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="566"/>
         <source>&amp;Adjust Window Size</source>
         <translation>調整視窗大小 (&amp;A)</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="571"/>
         <source>&amp;Stop After This Video</source>
         <translation>在這個影片播完之後停止(&amp;S)</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="578"/>
         <source>&amp;Report an Issue...</source>
         <translation>回報問題(&amp;R)...</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="582"/>
         <source>&amp;Refine Search...</source>
         <translation>精確搜尋(&amp;R)...</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="594"/>
         <source>More...</source>
         <translation>更多...</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="597"/>
         <source>&amp;Related Videos</source>
         <translation>相關影片(&amp;R)</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="599"/>
         <source>Watch videos related to the current one</source>
         <translation>觀看和目前相關的影片</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="605"/>
         <source>Open in &amp;Browser...</source>
         <translation>在瀏覽器中開啟(&amp;B)...</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="612"/>
-        <source>&amp;Love %1? Rate it!</source>
-        <translation>喜歡 %1 ?為它評分!(&amp;L)</translation>
+        <source>Restricted Mode</source>
+        <translation>限制模式</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="633"/>
-        <source>&amp;Application</source>
-        <translation>應用(&amp;A)</translation>
+        <source>Hide videos that may contain inappropriate content</source>
+        <translation>隱藏可能包含不適當內容的影片</translation>
+    </message>
+    <message>
+        <source>&amp;Love %1? Rate it!</source>
+        <translation>喜歡 %1 ?為它評分!(&amp;L)</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="618"/>
         <source>Buy %1...</source>
         <translation>購買 %1</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="647"/>
+        <source>&amp;Application</source>
+        <translation>應用(&amp;A)</translation>
+    </message>
+    <message>
         <source>&amp;Playback</source>
         <translation>播放(&amp;P)</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="661"/>
         <source>&amp;Playlist</source>
         <translation>播放清單(&amp;P)</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="670"/>
         <source>&amp;Video</source>
         <translation>影片(&amp;V)</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="686"/>
-        <source>&amp;View</source>
-        <translation>檢視(&amp;V)</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="695"/>
         <source>&amp;Share</source>
         <translation>分享(&amp;S)</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="709"/>
+        <source>&amp;View</source>
+        <translation>檢視(&amp;V)</translation>
+    </message>
+    <message>
         <source>&amp;Help</source>
         <translation>幫助(&amp;H)</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="751"/>
         <source>Press %1 to raise the volume, %2 to lower it</source>
         <translation>按 %1 提高音量,%2 降低音量</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1021"/>
-        <location filename="src/mainwindow.cpp" line="1027"/>
+        <source>Choose your content location</source>
+        <translation>選擇您的內容定位</translation>
+    </message>
+    <message>
         <source>Opening %1</source>
         <translation>開啟 %1</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1080"/>
         <source>Do you want to exit %1 with a download in progress?</source>
         <translation>您想要下載正在進行中結束 %1?</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1081"/>
         <source>If you close %1 now, this download will be cancelled.</source>
         <translation>如果現在關閉 %1,下載將被取消。</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1086"/>
         <source>Close and cancel download</source>
         <translation>關閉並取消下載</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1087"/>
         <source>Wait for download to finish</source>
         <translation>等待下載完成</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1158"/>
-        <source>&amp;Loading...</source>
-        <translation>正在載入... (&amp;L)</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="1264"/>
-        <source>Leave &amp;Full Screen</source>
-        <translation>離開全螢幕(&amp;F)</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="1718"/>
-        <source>%1 version %2 is now available.</source>
-        <translation>現在有 %1 版本 %2 可用。</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="1722"/>
-        <source>Remind me later</source>
-        <translation>稍候提醒我</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="1723"/>
-        <source>Update</source>
-        <translation>更新</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="1127"/>
         <source>Error: %1</source>
         <translation>錯誤:%1</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="300"/>
-        <source>P&amp;revious</source>
-        <translation>上一個(&amp;R)</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="301"/>
-        <source>Go back to the previous track</source>
-        <translation>回到上一個影片</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="335"/>
-        <source>&amp;Compact Mode</source>
-        <translation>精簡模式(&amp;C)</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="348"/>
-        <source>Open the &amp;YouTube Page</source>
-        <translation>開啟 &amp;YouTube 頁面</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="355"/>
-        <source>Copy the YouTube &amp;Link</source>
-        <translation>複製 YouTube 的連結(&amp;L)</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="362"/>
-        <source>Copy the Video Stream &amp;URL</source>
-        <translation>複製影片串流網址(&amp;U)</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="369"/>
-        <source>Find Video &amp;Parts</source>
-        <translation>找到其他影片部分(&amp;P)</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="397"/>
-        <source>&amp;Clear Recent Searches</source>
-        <translation>清除最近的搜尋(&amp;C)</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="421"/>
-        <source>Make a &amp;Donation</source>
-        <translation>贊助(&amp;D)</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="483"/>
-        <source>&amp;Manually Start Playing</source>
-        <translation>手動啟動播放(&amp;M)</translation>
-    </message>
-    <message>
-        <location filename="src/mainwindow.cpp" line="484"/>
-        <source>Manually start playing videos</source>
-        <translation>手動啟動播放影片</translation>
+        <source>&amp;Pause</source>
+        <translation>暫停(&amp;P)</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="847"/>
-        <source>Choose your content location</source>
-        <translation>選擇您的內容定位</translation>
+        <source>Pause playback</source>
+        <translation>暫停播放</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="314"/>
-        <location filename="src/mainwindow.cpp" line="1142"/>
-        <location filename="src/mainwindow.cpp" line="1150"/>
-        <source>&amp;Play</source>
-        <translation>播放(&amp;P)</translation>
+        <source>&amp;Loading...</source>
+        <translation>正在載入... (&amp;L)</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="315"/>
-        <location filename="src/mainwindow.cpp" line="1143"/>
-        <location filename="src/mainwindow.cpp" line="1151"/>
-        <source>Resume playback</source>
-        <translation>恢復播放</translation>
+        <source>Leave &amp;Full Screen</source>
+        <translation>離開全螢幕(&amp;F)</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1437"/>
         <source>Remaining time: %1</source>
         <translation>剩餘時間:%1</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1528"/>
         <source>Volume at %1%</source>
         <translation>音量達到 %1%</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1534"/>
         <source>Volume is muted</source>
         <translation>音量處於靜音狀態</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1537"/>
         <source>Volume is unmuted</source>
         <translation>音量處於非靜音狀態</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1548"/>
         <source>Maximum video definition set to %1</source>
         <translation>影片最大解析度設定為 %1</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1595"/>
         <source>Your privacy is now safe</source>
         <translation>您的隱私現在是安全的</translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1610"/>
         <source>Downloads complete</source>
         <translation>下載完成</translation>
     </message>
+    <message>
+        <source>%1 version %2 is now available.</source>
+        <translation>現在有 %1 版本 %2 可用。</translation>
+    </message>
+    <message>
+        <source>Remind me later</source>
+        <translation>稍候提醒我</translation>
+    </message>
+    <message>
+        <source>Update</source>
+        <translation>更新</translation>
+    </message>
 </context>
 <context>
     <name>MediaView</name>
     <message>
-        <location filename="src/mediaview.cpp" line="702"/>
         <source>You can now paste the YouTube link into another application</source>
         <translation>您現在可以貼上 YouTube 的連結到另一個應用程式中</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="710"/>
         <source>You can now paste the video stream URL into another application</source>
         <translation>現在,您可以貼上影片串流網址到其他應用中</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="711"/>
         <source>The link will be valid only for a limited time.</source>
         <translation>這個連結將只在有限的時間內有效。</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="800"/>
         <source>This is just the demo version of %1.</source>
         <translation>這僅僅是展示版的  %1。</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="801"/>
         <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="833"/>
+        <source>Get the full version</source>
+        <translation>取得完整版</translation>
+    </message>
+    <message>
         <source>Continue</source>
         <translation>繼續</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="988"/>
+        <source>Downloading %1</source>
+        <translation>正在下載 %1</translation>
+    </message>
+    <message>
         <source>of</source>
         <comment>Used in video parts, as in '2 of 3'</comment>
         <translation>/</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="1001"/>
         <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="1003"/>
         <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="1096"/>
         <source>Sent from %1</source>
         <translation>從 %1 發送</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="1128"/>
         <source>Unsubscribe from %1</source>
         <translation>取消訂閱 %1</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="1132"/>
         <source>Subscribe to %1</source>
         <translation>訂閱 %1</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="1166"/>
         <source>Unsubscribed from %1</source>
         <translation>從 %1 取消訂閱</translation>
     </message>
     <message>
-        <location filename="src/mediaview.cpp" line="1169"/>
         <source>Subscribed to %1</source>
         <translation>已訂閱 %1</translation>
     </message>
-    <message>
-        <location filename="src/mediaview.cpp" line="808"/>
-        <source>Get the full version</source>
-        <translation>取得完整版</translation>
-    </message>
-    <message>
-        <location filename="src/mediaview.cpp" line="847"/>
-        <source>Downloading %1</source>
-        <translation>正在下載 %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>有新版本的 %1 可用</translation>
     </message>
     <message>
-        <location filename="local/src/updatedialog.cpp" line="28"/>
         <source>%1 %2 is now available. You have %3.</source>
         <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>您想現在就下載嗎?</translation>
     </message>
     <message>
-        <location filename="local/src/updatedialog.cpp" line="39"/>
         <source>Skip This Version</source>
         <translation>跳過此版本</translation>
     </message>
     <message>
-        <location filename="local/src/updatedialog.cpp" line="43"/>
         <source>Remind Me Later</source>
         <translation>稍候提醒我</translation>
     </message>
     <message>
-        <location filename="local/src/updatedialog.cpp" line="47"/>
         <source>Install Update</source>
         <translation>安裝更新</translation>
     </message>
 <context>
     <name>PasteLineEdit</name>
     <message>
-        <location filename="local/src/pastelineedit.cpp" line="6"/>
         <source>Paste</source>
         <translation>貼上</translation>
     </message>
 <context>
     <name>PlaylistItemDelegate</name>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="209"/>
         <source>%1 views</source>
         <translation>瀏覽次數:%1 次</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="309"/>
         <source>%1 of %2 (%3) — %4</source>
         <translation>%1 / %2 (%3) — %4</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="316"/>
         <source>Preparing</source>
         <translation>準備</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="318"/>
         <source>Failed</source>
         <translation>失敗</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="320"/>
         <source>Completed</source>
         <translation>已完成</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="322"/>
         <source>Stopped</source>
         <translation>停止</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="358"/>
         <source>Stop downloading</source>
         <translation>停止下載</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="368"/>
         <source>Show in %1</source>
         <translation>顯示在 %1</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="370"/>
         <source>Open parent folder</source>
         <translation>開啟檔案所在資料夾</translation>
     </message>
     <message>
-        <location filename="src/playlistitemdelegate.cpp" line="379"/>
         <source>Restart downloading</source>
         <translation>重新啟動下載</translation>
     </message>
 <context>
     <name>PlaylistModel</name>
     <message>
-        <location filename="src/playlistmodel.cpp" line="70"/>
         <source>Searching...</source>
         <translation>搜尋中...</translation>
     </message>
     <message>
-        <location filename="src/playlistmodel.cpp" line="71"/>
         <source>Show %1 More</source>
         <translation>顯示再多 %1個影片</translation>
     </message>
     <message>
-        <location filename="src/playlistmodel.cpp" line="72"/>
         <source>No videos</source>
         <translation>沒有影片</translation>
     </message>
     <message>
-        <location filename="src/playlistmodel.cpp" line="73"/>
         <source>No more videos</source>
         <translation>沒有更多的影片</translation>
     </message>
 <context>
     <name>RefineSearchWidget</name>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="49"/>
         <source>Sort by</source>
         <translation>排序根據</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="53"/>
         <source>Relevance</source>
         <translation>相關性</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="54"/>
-        <location filename="src/refinesearchwidget.cpp" line="69"/>
         <source>Date</source>
         <translation>日期</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="55"/>
         <source>View Count</source>
         <translation>觀看次數</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="56"/>
         <source>Rating</source>
         <translation>評價</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="73"/>
         <source>Anytime</source>
         <translation>任何時間</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="74"/>
         <source>Today</source>
         <translation>今天</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="75"/>
         <source>7 Days</source>
         <translation>7天</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="76"/>
         <source>30 Days</source>
         <translation>30天</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="89"/>
         <source>Duration</source>
         <translation>長短</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="93"/>
-        <location filename="src/refinesearchwidget.cpp" line="119"/>
         <source>All</source>
         <translation>所有</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="94"/>
         <source>Short</source>
         <translation>短</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="95"/>
         <source>Medium</source>
         <translation>中</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="96"/>
         <source>Long</source>
         <translation>長</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="99"/>
         <source>Less than 4 minutes</source>
         <translation>不到4分鐘</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="100"/>
         <source>Between 4 and 20 minutes</source>
         <translation>介於4和20分鐘</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="101"/>
         <source>Longer than 20 minutes</source>
         <translation>超過20分鐘</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="115"/>
         <source>Quality</source>
         <translation>品質</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="120"/>
         <source>High Definition</source>
         <translation>高畫質</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="123"/>
         <source>720p or higher</source>
         <translation>720p或更高</translation>
     </message>
     <message>
-        <location filename="src/refinesearchwidget.cpp" line="136"/>
         <source>Done</source>
         <translation>完成</translation>
     </message>
 <context>
     <name>RegionsView</name>
     <message>
-        <location filename="src/regionsview.cpp" line="39"/>
         <source>Done</source>
         <translation>完成</translation>
     </message>
 <context>
     <name>SearchLineEdit</name>
     <message>
-        <location filename="src/searchlineedit.cpp" line="55"/>
         <source>Search</source>
         <translation>搜尋</translation>
     </message>
 <context>
     <name>SearchView</name>
     <message>
-        <location filename="src/searchview.cpp" line="83"/>
         <source>Welcome to &lt;a href=&apos;%1&apos;&gt;%2&lt;/a&gt;,</source>
         <translation>歡迎使用 &lt;a href=&apos;%1&apos;&gt;%2&lt;/a&gt;,</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="200"/>
-        <source>Get the full version</source>
-        <translation>取得完整版</translation>
-    </message>
-    <message>
-        <location filename="src/searchview.cpp" line="110"/>
         <source>Enter</source>
         <extracomment>&quot;Enter&quot;, as in &quot;type&quot;. The whole phrase says: &quot;Enter a keyword to start watching videos&quot;</extracomment>
         <translation>輸入</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="117"/>
         <source>a keyword</source>
         <translation>一個關鍵字</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="118"/>
         <source>a channel</source>
         <translation>一個頻道</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="125"/>
         <source>to start watching videos.</source>
         <translation>以開始觀看影片。</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="156"/>
         <source>Watch</source>
         <translation>觀看</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="174"/>
         <source>Recent keywords</source>
         <translation>最近的關鍵字</translation>
     </message>
     <message>
-        <location filename="src/searchview.cpp" line="186"/>
         <source>Recent channels</source>
         <translation>最近的頻道</translation>
     </message>
+    <message>
+        <source>Get the full version</source>
+        <translation>取得完整版</translation>
+    </message>
 </context>
 <context>
     <name>SidebarHeader</name>
     <message>
-        <location filename="src/sidebarheader.cpp" line="38"/>
-        <location filename="src/sidebarheader.cpp" line="45"/>
         <source>&amp;Back</source>
         <translation>後退(&amp;B)</translation>
     </message>
     <message>
-        <location filename="src/sidebarheader.cpp" line="76"/>
         <source>Forward to %1</source>
         <translation>向前到 %1</translation>
     </message>
     <message>
-        <location filename="src/sidebarheader.cpp" line="89"/>
         <source>Back to %1</source>
         <translation>退後到 %1</translation>
     </message>
 <context>
     <name>SidebarWidget</name>
     <message>
-        <location filename="src/sidebarwidget.cpp" line="68"/>
         <source>Refine Search</source>
         <translation>精確搜尋</translation>
     </message>
     <message>
-        <location filename="src/sidebarwidget.cpp" line="167"/>
         <source>Did you mean: %1</source>
         <translation>您的意思是:%1</translation>
     </message>
 <context>
     <name>SnapshotSettings</name>
     <message>
-        <location filename="src/snapshotsettings.cpp" line="47"/>
         <source>Change location...</source>
         <translation>變更位置...</translation>
     </message>
     <message>
-        <location filename="src/snapshotsettings.cpp" line="64"/>
         <source>Snapshot saved to %1</source>
         <translation>快照已儲存到 %1</translation>
     </message>
     <message>
-        <location filename="src/snapshotsettings.cpp" line="117"/>
         <source>Snapshots location changed.</source>
         <translation>快照位置已改變。</translation>
     </message>
 <context>
     <name>StandardFeedsView</name>
     <message>
-        <location filename="src/standardfeedsview.cpp" line="107"/>
         <source>Most Popular</source>
         <translation>最熱門</translation>
     </message>
 </context>
+<context>
+    <name>UpdateDialog</name>
+    <message>
+        <source>Downloading update...</source>
+        <translation>正在下載更新...</translation>
+    </message>
+    <message>
+        <source>Downloading %1...</source>
+        <translation>正在下載 %1...</translation>
+    </message>
+</context>
 <context>
     <name>Video</name>
     <message>
-        <location filename="src/video.cpp" line="287"/>
         <source>Cannot get video stream for %1</source>
         <translation>無法為 %1 獲得影片串流</translation>
     </message>
-    <message>
-        <location filename="src/video.cpp" line="292"/>
-        <source>Network error: %1 for %2</source>
-        <translation>網路錯誤:%1 為了 %2</translation>
-    </message>
 </context>
 <context>
     <name>YTRegions</name>
     <message>
-        <location filename="src/ytregions.cpp" line="28"/>
         <source>Algeria</source>
         <translation>阿爾及利亞</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="29"/>
         <source>Argentina</source>
         <translation>阿根廷</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="30"/>
         <source>Australia</source>
         <translation>澳大利亞</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="31"/>
         <source>Belgium</source>
         <translation>比利時</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="32"/>
         <source>Brazil</source>
         <translation>巴西</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="33"/>
         <source>Canada</source>
         <translation>加拿大</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="34"/>
         <source>Chile</source>
         <translation>智利</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="35"/>
         <source>Colombia</source>
         <translation>哥倫比亞</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="36"/>
         <source>Czech Republic</source>
         <translation>捷克共和國</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="37"/>
         <source>Egypt</source>
         <translation>埃及</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="38"/>
         <source>France</source>
         <translation>法國</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="39"/>
         <source>Germany</source>
         <translation>德國</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="40"/>
         <source>Ghana</source>
         <translation>加納</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="41"/>
         <source>Greece</source>
         <translation>希臘</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="42"/>
         <source>Hong Kong</source>
         <translation>香港</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="43"/>
         <source>Hungary</source>
         <translation>匈牙利</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="44"/>
         <source>India</source>
         <translation>印度</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="45"/>
         <source>Indonesia</source>
         <translation>印尼</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="46"/>
         <source>Ireland</source>
         <translation>愛爾蘭</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="47"/>
         <source>Israel</source>
         <translation>以色列</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="48"/>
         <source>Italy</source>
         <translation>意大利</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="49"/>
         <source>Japan</source>
         <translation>日本</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="50"/>
         <source>Jordan</source>
         <translation>約旦</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="51"/>
         <source>Kenya</source>
         <translation>肯亞</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="52"/>
         <source>Malaysia</source>
         <translation>馬來西亞</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="53"/>
         <source>Mexico</source>
         <translation>墨西哥</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="54"/>
         <source>Morocco</source>
         <translation>摩洛哥</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="55"/>
         <source>Netherlands</source>
         <translation>荷蘭</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="56"/>
         <source>New Zealand</source>
         <translation>紐西蘭</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="57"/>
         <source>Nigeria</source>
         <translation>奈及利亞</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="58"/>
         <source>Peru</source>
         <translation>秘魯</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="59"/>
         <source>Philippines</source>
         <translation>菲律賓</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="60"/>
         <source>Poland</source>
         <translation>波蘭</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="61"/>
         <source>Russia</source>
         <translation>俄羅斯</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="62"/>
         <source>Saudi Arabia</source>
         <translation>沙烏地阿拉伯</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="63"/>
         <source>Singapore</source>
         <translation>新加坡</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="64"/>
         <source>South Africa</source>
         <translation>南非</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="65"/>
         <source>South Korea</source>
         <translation>南韓</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="66"/>
         <source>Spain</source>
         <translation>西班牙</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="67"/>
         <source>Sweden</source>
         <translation>瑞典</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="68"/>
         <source>Taiwan</source>
         <translation>台灣</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="69"/>
         <source>Tunisia</source>
         <translation>突尼西亞</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="70"/>
         <source>Turkey</source>
         <translation>土耳其</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="71"/>
         <source>Uganda</source>
         <translation>烏干達</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="72"/>
         <source>United Arab Emirates</source>
         <translation>阿拉伯聯合大公國</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="73"/>
         <source>United Kingdom</source>
         <translation>英國</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="74"/>
         <source>Yemen</source>
         <translation>葉門</translation>
     </message>
     <message>
-        <location filename="src/ytregions.cpp" line="148"/>
         <source>Worldwide</source>
         <translation>全世界</translation>
     </message>
diff --git a/minitube.appdata.xml b/minitube.appdata.xml
new file mode 100644 (file)
index 0000000..c6547b6
--- /dev/null
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<application>
+  <id type="desktop">minitube.desktop</id>
+  <metadata_license>CC0-1.0</metadata_license>
+  <license>GPL-3.0+</license>
+  <summary>YouTube app</summary>
+  <description>
+    <p>
+      Minitube is a YouTube desktop application.
+    </p>
+  </description>
+  <url type="homepage">http://flavio.tordini.org/minitube</url>
+  <screenshots>
+    <screenshot type="default">http://flavio.tordini.org/files/minitube/minitube-04.jpg</screenshot>
+    <screenshot>http://flavio.tordini.org/files/minitube/minitube-03.jpg</screenshot>
+    <screenshot>http://flavio.tordini.org/files/minitube/minitube-02.jpg</screenshot>
+    <screenshot>http://flavio.tordini.org/files/minitube/minitube-01.jpg</screenshot>
+  </screenshots>
+</application>
index 42d8808643c44910068dbdfac6cd08478f665608..453cf15f4b30093ec6ee02eb922a44ee165ec174 100644 (file)
@@ -1,6 +1,7 @@
-CONFIG += release
+CONFIG += release c++11
+CONFIG -= rtti exceptions
 TEMPLATE = app
-VERSION = 2.5.2
+VERSION = 2.9
 DEFINES += APP_VERSION="$$VERSION"
 
 APP_NAME = Minitube
@@ -12,7 +13,6 @@ DEFINES += APP_UNIX_NAME="$$APP_UNIX_NAME"
 DEFINES += APP_PHONON
 DEFINES += APP_PHONON_SEEK
 DEFINES += APP_SNAPSHOT
-DEFINES += APP_YT3
 
 message(Building $${APP_NAME} $${VERSION})
 message(Qt $$[QT_VERSION] in $$[QT_INSTALL_PREFIX])
@@ -27,21 +27,18 @@ DEFINES *= QT_STRICT_ITERATORS
 
 TARGET = $${APP_UNIX_NAME}
 
-QT += network sql script
-qt:greaterThan(QT_MAJOR_VERSION, 4) {
-    contains(QT, gui): QT *= widgets
-}
+QT += widgets network sql qml
 
 include(src/qtsingleapplication/qtsingleapplication.pri)
+include(src/http/http.pri)
+include(src/idle/idle.pri)
 
 HEADERS += src/video.h \
     src/searchlineedit.h \
     src/spacer.h \
     src/constants.h \
     src/playlistitemdelegate.h \
-    src/networkaccess.h \
     src/videomimedata.h \
-    src/global.h \
     src/updatechecker.h \
     src/searchparams.h \
     src/minisplitter.h \
@@ -79,7 +76,6 @@ HEADERS += src/video.h \
     src/standardfeedsview.h \
     src/ytregions.h \
     src/ytcategories.h \
-    src/ytfeedreader.h \
     src/ytsuggester.h \
     src/videosourcewidget.h \
     src/regionsview.h \
@@ -104,18 +100,21 @@ HEADERS += src/video.h \
     src/ytchannel.h \
     src/yt3.h \
     src/paginatedvideosource.h \
-    src/compatibility/qurlqueryhelper.h \
-    src/compatibility/pathsservice.h \
     src/searchwidget.h \
     src/exlineedit.h \
-    src/channellistview.h
+    src/channellistview.h \
+    src/httputils.h \
+    src/appwidget.h \
+    src/clickablelabel.h \
+    src/ytvideo.h \
+    src/toolbarmenu.h \
+    src/sharetoolbar.h
 SOURCES += src/main.cpp \
     src/searchlineedit.cpp \
     src/spacer.cpp \
     src/video.cpp \
     src/videomimedata.cpp \
     src/updatechecker.cpp \
-    src/networkaccess.cpp \
     src/searchparams.cpp \
     src/minisplitter.cpp \
     src/loadingwidget.cpp \
@@ -152,7 +151,6 @@ SOURCES += src/main.cpp \
     src/standardfeedsview.cpp \
     src/ytregions.cpp \
     src/ytcategories.cpp \
-    src/ytfeedreader.cpp \
     src/ytsuggester.cpp \
     src/videosourcewidget.cpp \
     src/regionsview.cpp \
@@ -177,9 +175,14 @@ SOURCES += src/main.cpp \
     src/ytchannel.cpp \
     src/yt3.cpp \
     src/paginatedvideosource.cpp \
-    src/compatibility/pathsservice.cpp \
     src/exlineedit.cpp \
-    src/channellistview.cpp
+    src/channellistview.cpp \
+    src/httputils.cpp \
+    src/appwidget.cpp \
+    src/clickablelabel.cpp \
+    src/ytvideo.cpp \
+    src/toolbarmenu.cpp \
+    src/sharetoolbar.cpp
 RESOURCES += resources.qrc
 DESTDIR = build/target/
 OBJECTS_DIR = build/obj/
@@ -195,13 +198,8 @@ include(locale/locale.pri)
 DISTFILES += CHANGES COPYING
 unix:!mac {
     DEFINES += APP_LINUX
-    qt:greaterThan(QT_MAJOR_VERSION, 4) {
-        LIBS += -lphonon4qt5
-        INCLUDEPATH += /usr/include/phonon4qt5
-    } else {
-        QT += phonon
-        INCLUDEPATH += /usr/include/phonon
-    }
+    LIBS += -lphonon4qt5
+    INCLUDEPATH += /usr/include/phonon4qt5
     QT += dbus
     HEADERS += src/gnomeglobalshortcutbackend.h
     SOURCES += src/gnomeglobalshortcutbackend.cpp
@@ -215,6 +213,7 @@ unix:!mac {
         PKGDATADIR=\\\"$$PKGDATADIR\\\"
     INSTALLS += translations \
         desktop \
+        appdata \
         iconsvg \
         icon16 \
         icon22 \
@@ -228,6 +227,8 @@ unix:!mac {
     translations.files += $$DESTDIR/locale
     desktop.path = $$DATADIR/applications
     desktop.files += minitube.desktop
+    appdata.path = $$DATADIR/appdata
+    appdata.files += minitube.appdata.xml
     iconsvg.path = $$DATADIR/icons/hicolor/scalable/apps
     iconsvg.files += data/minitube.svg
     icon16.path = $$DATADIR/icons/hicolor/16x16/apps
@@ -248,6 +249,3 @@ unix:!mac {
     icon512.files += data/512x512/minitube.png
 }
 mac|win32|contains(DEFINES, APP_UBUNTU):include(local/local.pri)
-
-OTHER_FILES += \
-    sounds/snapshot.wav
index d41ca8a47765aceb7f1f0764f7152eb7dd16cc50..76556e843d82b1fa7abab4e0e583562e0c88e3c3 100644 (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>
         <file>sounds/snapshot.wav</file>
         <file>images/app@2x.png</file>
         <file>images/sort@2x.png</file>
         <file>images/unwatched@2x.png</file>
-        <file>images/badge@2x.png</file>
-        <file>images/badge3@2x.png</file>
         <file>images/channels@2x.png</file>
         <file>images/mark-watched@2x.png</file>
         <file>images/show-updated@2x.png</file>
         <file>images/worldwide@2x.png</file>
-        <file>images/badge4@2x.png</file>
         <file>images/refine-search@2x.png</file>
         <file>images/search-duration@2x.png</file>
         <file>images/search-quality@2x.png</file>
         <file>images/search-time@2x.png</file>
         <file>images/search-sortBy@2x.png</file>
+        <file>images/audio-volume-high.png</file>
+        <file>images/audio-volume-high@2x.png</file>
+        <file>images/audio-volume-muted.png</file>
+        <file>images/audio-volume-muted@2x.png</file>
+        <file>images/bookmark-new.png</file>
+        <file>images/bookmark-new@2x.png</file>
+        <file>images/bookmark-new_active.png</file>
+        <file>images/bookmark-new_active@2x.png</file>
+        <file>images/bookmark-remove.png</file>
+        <file>images/bookmark-remove@2x.png</file>
+        <file>images/content-loading.png</file>
+        <file>images/content-loading@2x.png</file>
+        <file>images/document-save.png</file>
+        <file>images/document-save@2x.png</file>
+        <file>images/edit-clear.png</file>
+        <file>images/edit-find.png</file>
+        <file>images/go-next.png</file>
+        <file>images/go-next@2x.png</file>
+        <file>images/go-next_active.png</file>
+        <file>images/go-next_active@2x.png</file>
+        <file>images/go-previous.png</file>
+        <file>images/go-previous@2x.png</file>
+        <file>images/go-previous_active.png</file>
+        <file>images/go-previous_active@2x.png</file>
+        <file>images/go-top.png</file>
+        <file>images/go-top@2x.png</file>
+        <file>images/media-playback-pause.png</file>
+        <file>images/media-playback-pause@2x.png</file>
+        <file>images/media-playback-start.png</file>
+        <file>images/media-playback-start@2x.png</file>
+        <file>images/media-playback-stop.png</file>
+        <file>images/media-playback-stop@2x.png</file>
+        <file>images/media-skip-forward.png</file>
+        <file>images/media-skip-forward@2x.png</file>
+        <file>images/system-search.png</file>
+        <file>images/system-search_active.png</file>
+        <file>images/system-search_selected.png</file>
+        <file>images/video-display.png</file>
+        <file>images/video-display@2x.png</file>
+        <file>images/view-fullscreen.png</file>
+        <file>images/view-fullscreen@2x.png</file>
+        <file>images/view-list.png</file>
+        <file>images/view-list@2x.png</file>
+        <file>images/view-refresh.png</file>
+        <file>images/view-refresh_active.png</file>
+        <file>images/view-refresh_selected.png</file>
+        <file>images/view-restore.png</file>
+        <file>images/view-restore@2x.png</file>
+        <file>images/window-close.png</file>
+        <file>images/window-close_active.png</file>
+        <file>images/window-close_selected.png</file>
+        <file>images/64x64/app.png</file>
+        <file>images/64x64/app@2x.png</file>
+        <file>images/safesearch.png</file>
+        <file>images/safesearch@2x.png</file>
+        <file>images/view-more.png</file>
+        <file>images/view-more@2x.png</file>
+        <file>images/email.png</file>
+        <file>images/email@2x.png</file>
+        <file>images/facebook.png</file>
+        <file>images/facebook@2x.png</file>
+        <file>images/link.png</file>
+        <file>images/link@2x.png</file>
+        <file>images/twitter.png</file>
+        <file>images/twitter@2x.png</file>
     </qresource>
 </RCC>
index 19c5ee547ea88b41d94464e35dfc269c79931563..1fe723a4215df4afc037859e7707f66370826e98 100644 (file)
@@ -32,27 +32,40 @@ $END_LICENSE */
 #endif
 #include "fontutils.h"
 #include "iconutils.h"
+#include "appwidget.h"
+#include "clickablelabel.h"
+#include "mainwindow.h"
 
 AboutView::AboutView(QWidget *parent) : View(parent) {
 
-    QBoxLayout *hLayout = new QHBoxLayout(this);
-    hLayout->setAlignment(Qt::AlignCenter);
-    hLayout->setMargin(30);
-    hLayout->setSpacing(30);
+    const int padding = 30;
+    const char *buildYear = __DATE__ + 7;
 
-    QLabel *logo = new QLabel(this);
+    // speedup painting since we'll paint the whole background
+    // by ourselves anyway in paintEvent()
+    setAttribute(Qt::WA_OpaquePaintEvent);
+
+    QBoxLayout *verticalLayout = new QVBoxLayout(this);
+    verticalLayout->setMargin(0);
+    verticalLayout->setSpacing(0);
+
+    QBoxLayout *aboutlayout = new QHBoxLayout();
+    verticalLayout->addLayout(aboutlayout, 1);
+    aboutlayout->setAlignment(Qt::AlignCenter);
+    aboutlayout->setMargin(padding);
+    aboutlayout->setSpacing(padding);
+
+    logo = new ClickableLabel();
     logo->setPixmap(IconUtils::pixmap(":/images/app.png"));
-    hLayout->addWidget(logo, 0, Qt::AlignTop);
+    connect(logo, &ClickableLabel::clicked, MainWindow::instance(), &MainWindow::visitSite);
+    aboutlayout->addWidget(logo, 0, Qt::AlignTop);
 
     QBoxLayout *layout = new QVBoxLayout();
     layout->setAlignment(Qt::AlignCenter);
-    layout->setSpacing(30);
-    hLayout->addLayout(layout);
+    layout->setSpacing(padding);
+    aboutlayout->addLayout(layout);
 
-    QString css = "a { color: palette(text); text-decoration: none; font-weight: bold } h1 { font-weight: 100 }";
-#ifdef APP_MAC
-    css += " h1 { font-family: 'Helvetica Neue' }";
-#endif
+    QString css = "a { color: palette(text); text-decoration: none; font-weight: bold } h1 { font-weight: 300 }";
 
     QString info = "<html><style>" + css + "</style><body>"
             "<h1>" + QString(Constants::NAME) + "</h1>"
@@ -61,8 +74,9 @@ AboutView::AboutView(QWidget *parent) : View(parent) {
             + QString("<p><a href=\"%1/\">%1</a></p>").arg(Constants::WEBSITE);
 
 #ifdef APP_ACTIVATION
-    if (Activation::instance().isActivated())
-        info += "<p>" + tr("Licensed to: %1").arg("<b>" + Activation::instance().getEmail() + "</b>");
+    QString email = Activation::instance().getEmail();
+    if (!email.isEmpty())
+        info += "<p>" + tr("Licensed to: %1").arg("<b>" + email + "</b>");
 #endif
 
 #ifndef APP_EXTRA
@@ -71,20 +85,7 @@ AboutView::AboutView(QWidget *parent) : View(parent) {
             .arg(QString(Constants::WEBSITE).append("#donate"), Constants::NAME) + "</p>";
 #endif
 
-    info += "<p>" + tr("You may want to try my other apps as well:") + "</p>"
-            "<ul>"
-
-            "<li>" + tr("%1, a YouTube music player")
-            .arg("<a href='http://flavio.tordini.org/musictube'>Musictube</a>")
-            + "</li>"
-
-            "<li>" + tr("%1, a music player")
-            .arg("<a href='http://flavio.tordini.org/musique'>Musique</a>")
-            + "</li>"
-
-            "</ul>"
-
-            "<p>" + tr("Translate %1 to your native language using %2").arg(Constants::NAME)
+    info += "<p>" + tr("Translate %1 to your native language using %2").arg(Constants::NAME)
             .arg("<a href='http://www.transifex.net/projects/p/" + QString(Constants::UNIX_NAME) + "/'>Transifex</a>")
             + "</p>"
 
@@ -96,40 +97,36 @@ AboutView::AboutView(QWidget *parent) : View(parent) {
             "<p>" + tr("Released under the <a href='%1'>GNU General Public License</a>")
             .arg("http://www.gnu.org/licenses/gpl.html") + "</p>"
         #endif
-            "<p>&copy; 2009-2015 " + Constants::ORG_NAME + "</p>"
+            "<p>&copy; " + buildYear + " " + Constants::ORG_NAME + "</p>"
             "</body></html>";
+
     QLabel *infoLabel = new QLabel(info, this);
     infoLabel->setOpenExternalLinks(true);
     infoLabel->setWordWrap(true);
     layout->addWidget(infoLabel);
 
     QLayout *buttonLayout = new QHBoxLayout();
-    buttonLayout->setMargin(0);
-    buttonLayout->setSpacing(0);
     buttonLayout->setAlignment(Qt::AlignLeft);
-
-    closeButton = new QPushButton(tr("&Close"));
+    closeButton = new QPushButton(tr("&Close"), this);
     closeButton->setSizePolicy(QSizePolicy::Maximum, QSizePolicy::Maximum);
+
     closeButton->setDefault(true);
+    closeButton->setFocus();
     connect(closeButton, SIGNAL(clicked()), parent, SLOT(goBack()));
     buttonLayout->addWidget(closeButton);
 
     layout->addLayout(buttonLayout);
+
+    verticalLayout->addWidget(new AppsWidget());
 }
 
 void AboutView::appear() {
-#ifdef APP_MAC
-    mac::uncloseWindow(window()->winId());
-#ifdef APP_ACTIVATION
-    mac::CheckForUpdates();
-#endif
-#endif
     closeButton->setFocus();
+    connect(window()->windowHandle(), SIGNAL(screenChanged(QScreen*)), SLOT(screenChanged()), Qt::UniqueConnection);
 }
 
 void AboutView::paintEvent(QPaintEvent *event) {
     QWidget::paintEvent(event);
-#if defined(APP_MAC) | defined(APP_WIN)
     QBrush brush;
     if (window()->isActiveWindow()) {
         brush = Qt::white;
@@ -139,11 +136,8 @@ void AboutView::paintEvent(QPaintEvent *event) {
     QPainter painter(this);
     painter.fillRect(0, 0, width(), height(), brush);
     painter.end();
-#endif
-#ifdef APP_UBUNTU
-    QStyleOption o;
-    o.initFrom(this);
-    QPainter p(this);
-    style()->drawPrimitive(QStyle::PE_Widget, &o, &p, this);
-#endif
+}
+
+void AboutView::screenChanged() {
+    logo->setPixmap(IconUtils::pixmap(":/images/app.png"));
 }
index 0e5e66989c7a70141eacc25b2408e277db3a5d36..1f2a0fedbf35ab5998d78622ea7397880d976528 100644 (file)
@@ -21,31 +21,32 @@ $END_LICENSE */
 #ifndef ABOUTVIEW_H
 #define ABOUTVIEW_H
 
-#include <QtGui>
-#if QT_VERSION >= 0x050000
 #include <QtWidgets>
-#endif
-#include "view.h"
+
 #include "constants.h"
+#include "view.h"
 
-class AboutView : public View {
+class ClickableLabel;
 
+class AboutView : public View {
     Q_OBJECT
 
 public:
     AboutView(QWidget *parent);
     void appear();
-    QHash<QString, QVariant> metadata() {
-        QHash<QString, QVariant> metadata;
-        metadata.insert("title", tr("About"));
-        return metadata;
+    const QString &getTitle() {
+        static const QString s = tr("About");
+        return s;
     }
 
 protected:
     void paintEvent(QPaintEvent *e);
 
+private slots:
+    void screenChanged();
+
 private:
+    ClickableLabel *logo;
     QPushButton *closeButton;
-
 };
 #endif
index dfffebfc33831424d4331c505e2a420190dd3a74..95300f8a4e54d092c3d526d36dc2d6cd7dd3ce28 100644 (file)
@@ -52,7 +52,8 @@ void AggregateVideoSource::loadVideos(int max, int startIndex) {
     query.bindValue(1, max);
     bool success = query.exec();
     if (!success) qWarning() << query.lastQuery() << query.lastError().text();
-    QList<Video*> videos;
+    QVector<Video*> videos;
+    videos.reserve(query.size());
     while (query.next()) {
         Video *video = new Video();
         video->setId(query.value(0).toString());
@@ -78,9 +79,4 @@ bool AggregateVideoSource::hasMoreVideos() {
     return hasMore;
 }
 
-const QStringList & AggregateVideoSource::getSuggestions() {
-    static const QStringList l;
-    return l;
-}
-
 void AggregateVideoSource::abort() { }
index 6263c43a34aa17c185fcd0fc3399a97192e77c31..f00a2bc8247b64a02c37402cb108e7b945613626 100644 (file)
@@ -33,7 +33,6 @@ public:
     void loadVideos(int max, int startIndex);
     bool hasMoreVideos();
     virtual void abort();
-    virtual const QStringList & getSuggestions();
     QString getName() { return name; }
     void setName(const QString &value) { name = value; }
     void setUnwatched(bool enable) { unwatched = enable; }
diff --git a/src/appwidget.cpp b/src/appwidget.cpp
new file mode 100644 (file)
index 0000000..43b3b58
--- /dev/null
@@ -0,0 +1,112 @@
+#include "appwidget.h"
+#include "constants.h"
+#include "http.h"
+#ifdef APP_EXTRA
+#include "updatedialog.h"
+#endif
+
+AppsWidget::AppsWidget(QWidget *parent) : QWidget(parent) {
+    const int padding = 30;
+
+    QBoxLayout *layout = new QHBoxLayout(this);
+    layout->setMargin(padding);
+    layout->setSpacing(padding*2);
+    layout->setAlignment(Qt::AlignCenter);
+
+#ifdef APP_MAC
+    const QString ext = "dmg";
+#elif defined APP_WIN
+    const QString ext = "exe";
+#else
+    const QString ext = "deb";
+#endif
+
+    setupApp("Finetune", "finetune." + ext);
+    setupApp("Musictube", "musictube." + ext);
+    setupApp("Musique", "musique." + ext);
+}
+
+void AppsWidget::setupApp(const QString &name, const QString &code) {
+    AppWidget *w = new AppWidget(name, code);
+    layout()->addWidget(w);
+}
+
+void AppsWidget::paintEvent(QPaintEvent *e) {
+    Q_UNUSED(e);
+    QStyleOption o;
+    o.initFrom(this);
+    QPainter p(this);
+    style()->drawPrimitive(QStyle::PE_Widget, &o, &p, this);
+}
+
+AppWidget::AppWidget(const QString &name, const QString &code, QWidget *parent) : QWidget(parent), icon(0), name(name), downloadButton(0) {
+    const QString unixName = code.left(code.lastIndexOf('.'));
+    const QString baseUrl = QLatin1String("http://") + Constants::ORG_DOMAIN;
+    const QString filesUrl = baseUrl + QLatin1String("/files/");
+    url = filesUrl + unixName + QLatin1String("/") + code;
+    webPage = baseUrl + QLatin1String("/") +  unixName;
+
+    QBoxLayout *layout = new QVBoxLayout(this);
+    layout->setMargin(0);
+    layout->setAlignment(Qt::AlignHCenter);
+
+    icon = new QLabel();
+    icon->setMinimumHeight(128);
+    layout->addWidget(icon);
+    const QString iconUrl = filesUrl + QLatin1String("products/") + unixName + QLatin1String(".png");
+    QObject *reply = Http::instance().get(iconUrl);
+    connect(reply, SIGNAL(data(QByteArray)), SLOT(iconDownloaded(QByteArray)));
+
+    QLabel *appTitle = new QLabel(name);
+    appTitle->setAlignment(Qt::AlignHCenter);
+    layout->addWidget(appTitle);
+
+#ifdef APP_EXTRA
+#if !defined(APP_UBUNTU) && !defined(APP_MAC_STORE)
+    downloadButton = new QPushButton(tr("Download"));
+    downloadButton->setAttribute(Qt::WA_MacSmallSize);
+    downloadButton->setCursor(Qt::ArrowCursor);
+    QSizePolicy sp = downloadButton->sizePolicy();
+    sp.setHorizontalPolicy(QSizePolicy::Fixed);
+    sp.setRetainSizeWhenHidden(true);
+    downloadButton->setSizePolicy(sp);
+    connect(downloadButton, SIGNAL(clicked(bool)), SLOT(downloadApp()));
+    layout->addWidget(downloadButton, Qt::AlignHCenter);
+    layout->setAlignment(downloadButton, Qt::AlignHCenter);
+    downloadButton->hide();
+#endif
+#endif
+
+    setCursor(Qt::PointingHandCursor);
+}
+
+void AppWidget::enterEvent(QEvent *e) {
+    Q_UNUSED(e);
+    if (downloadButton) downloadButton->show();
+}
+
+void AppWidget::leaveEvent(QEvent *e) {
+    Q_UNUSED(e);
+    if (downloadButton) downloadButton->hide();
+}
+
+void AppWidget::mouseReleaseEvent(QMouseEvent *e) {
+    if (e->button() == Qt::LeftButton) {
+        QDesktopServices::openUrl(webPage);
+    }
+}
+
+void AppWidget::iconDownloaded(const QByteArray &bytes) {
+    QPixmap pixmap;
+    pixmap.loadFromData(bytes, "PNG");
+    icon->setPixmap(pixmap);
+}
+
+void AppWidget::downloadApp() {
+#ifdef APP_EXTRA
+    if (!icon) return;
+    UpdateDialog *dialog = new UpdateDialog(icon->pixmap(), name, QString(), url, this);
+    dialog->downloadUpdate();
+    dialog->show();
+#endif
+}
diff --git a/src/appwidget.h b/src/appwidget.h
new file mode 100644 (file)
index 0000000..a5ee272
--- /dev/null
@@ -0,0 +1,46 @@
+#ifndef APPWIDGET_H
+#define APPWIDGET_H
+
+#include <QtWidgets>
+
+
+class AppWidget : public QWidget {
+
+    Q_OBJECT
+
+public:
+    AppWidget(const QString &name, const QString &code, QWidget *parent = 0);
+    QLabel *icon;
+
+protected:
+    void enterEvent(QEvent *e);
+    void leaveEvent(QEvent *e);
+    void mouseReleaseEvent(QMouseEvent *e);
+
+private slots:
+    void iconDownloaded(const QByteArray &bytes);
+    void downloadApp();
+
+private:
+    QPushButton *downloadButton;
+    QString name;
+    QString url;
+    QString webPage;
+};
+
+class AppsWidget : public QWidget {
+
+    Q_OBJECT
+
+public:
+    AppsWidget(QWidget *parent = 0);
+
+protected:
+    void paintEvent(QPaintEvent *e);
+
+private:
+    void setupApp(const QString &name, const QString &code);
+
+};
+
+#endif // APPWIDGET_H
index 8ef4d317d7e910766abbd7b07edfc6ce12864896..50f4e72d7c29326a115fbdcba5c67286e187129d 100644 (file)
@@ -154,7 +154,7 @@ bool AutoComplete::eventFilter(QObject *obj, QEvent *ev) {
     return false;
 }
 
-void AutoComplete::showSuggestions(const QList<Suggestion *> &suggestions) {
+void AutoComplete::showSuggestions(const QVector<Suggestion *> &suggestions) {
     if (suggestions.isEmpty()) {
         hideSuggestions();
         return;
@@ -209,7 +209,7 @@ void AutoComplete::enableSuggest() {
 void AutoComplete::setSuggester(Suggester* suggester) {
     if (this->suggester) this->suggester->disconnect();
     this->suggester = suggester;
-    connect(suggester, SIGNAL(ready(QList<Suggestion*>)), SLOT(suggestionsReady(QList<Suggestion*>)));
+    connect(suggester, SIGNAL(ready(QVector<Suggestion*>)), SLOT(suggestionsReady(QVector<Suggestion*>)));
 }
 
 void AutoComplete::suggest() {
@@ -227,7 +227,7 @@ void AutoComplete::suggest() {
     if (suggester) suggester->suggest(originalText);
 }
 
-void AutoComplete::suggestionsReady(const QList<Suggestion *> &suggestions) {
+void AutoComplete::suggestionsReady(const QVector<Suggestion *> &suggestions) {
     qDeleteAll(this->suggestions);
     this->suggestions = suggestions;
     if (!enabled) return;
index 25a632dcb7eae0ffcb1a189874f23f0dd11151b0..a7263e6d4ae8944070a29c670f7e71c03d2293c7 100644 (file)
@@ -53,12 +53,12 @@ private slots:
     void suggest();
     void itemEntered(QListWidgetItem *item);
     void currentItemChanged(QListWidgetItem *item);
-    void suggestionsReady(const QList<Suggestion*> &suggestions);
+    void suggestionsReady(const QVector<Suggestion*> &suggestions);
     void adjustPosition();
     void enableItemHovering();
 
 private:
-    void showSuggestions(const QList<Suggestion*> &suggestions);
+    void showSuggestions(const QVector<Suggestion*> &suggestions);
     void hideSuggestions();
 
     SearchWidget *buddy;
@@ -68,7 +68,7 @@ private:
     QTimer *timer;
     bool enabled;
     Suggester *suggester;
-    QList<Suggestion*> suggestions;
+    QVector<Suggestion*> suggestions;
     bool itemHovering;
 };
 
index 57bc5dd73761650205071cd4763ee9a4d094dcff..7573919071cb138e8370bcba257c4f2e2161e7b4 100644 (file)
@@ -19,25 +19,19 @@ along with Minitube.  If not, see <http://www.gnu.org/licenses/>.
 $END_LICENSE */
 
 #include "channelaggregator.h"
-#include "ytchannel.h"
-#include "ytsearch.h"
-#include "searchparams.h"
 #include "database.h"
+#include "searchparams.h"
 #include "video.h"
+#include "ytchannel.h"
+#include "ytsearch.h"
 #ifdef APP_MAC
 #include "macutils.h"
 #endif
-#include "networkaccess.h"
-
-namespace The {
-    NetworkAccess* http();
-}
+#include "http.h"
+#include "httputils.h"
 
-ChannelAggregator::ChannelAggregator(QObject *parent) : QObject(parent),
-    unwatchedCount(-1),
-    running(false),
-    stopped(false),
-    currentChannel(0) {
+ChannelAggregator::ChannelAggregator(QObject *parent)
+    : QObject(parent), unwatchedCount(-1), running(false), stopped(false), currentChannel(0) {
     checkInterval = 1800;
 
     timer = new QTimer(this);
@@ -45,8 +39,8 @@ ChannelAggregator::ChannelAggregator(QObject *parent) : QObject(parent),
     connect(timer, SIGNAL(timeout()), SLOT(run()));
 }
 
-ChannelAggregatorChannelAggregator::instance() {
-    static ChannelAggregatori = new ChannelAggregator();
+ChannelAggregator *ChannelAggregator::instance() {
+    static ChannelAggregator *i = new ChannelAggregator();
     return i;
 }
 
@@ -62,7 +56,7 @@ void ChannelAggregator::stop() {
     stopped = true;
 }
 
-YTChannelChannelAggregator::getChannelToCheck() {
+YTChannel *ChannelAggregator::getChannelToCheck() {
     if (stopped) return 0;
     QSqlDatabase db = Database::instance().getConnection();
     QSqlQuery query(db);
@@ -71,8 +65,7 @@ YTChannel* ChannelAggregator::getChannelToCheck() {
     query.bindValue(0, QDateTime::currentDateTimeUtc().toTime_t() - checkInterval);
     bool success = query.exec();
     if (!success) qWarning() << query.lastQuery() << query.lastError().text();
-    if (query.next())
-        return YTChannel::forId(query.value(0).toString());
+    if (query.next()) return YTChannel::forId(query.value(0).toString());
     return 0;
 }
 
@@ -82,6 +75,7 @@ void ChannelAggregator::run() {
     running = true;
     newVideoCount = 0;
     updatedChannels.clear();
+    updatedChannels.squeeze();
 
     if (!Database::instance().getConnection().transaction())
         qWarning() << "Transaction failed" << __PRETTY_FUNCTION__;
@@ -94,19 +88,20 @@ void ChannelAggregator::processNextChannel() {
         running = false;
         return;
     }
-    YTChannelchannel = getChannelToCheck();
+    YTChannel *channel = getChannelToCheck();
     if (channel) {
         checkWebPage(channel);
-    } else finish();
+    } else
+        finish();
 }
 
 void ChannelAggregator::checkWebPage(YTChannel *channel) {
     currentChannel = channel;
     QString url = "https://www.youtube.com/channel/" + channel->getChannelId() + "/videos";
-    QObject *reply = The::http()->get(url);
+    QObject *reply = HttpUtils::yt().get(url);
 
     connect(reply, SIGNAL(data(QByteArray)), SLOT(parseWebPage(QByteArray)));
-    connect(reply, SIGNAL(error(QNetworkReply*)), SLOT(errorWebPage(QNetworkReply*)));
+    connect(reply, SIGNAL(error(QString)), SLOT(errorWebPage(QString)));
 }
 
 void ChannelAggregator::parseWebPage(const QByteArray &bytes) {
@@ -130,8 +125,8 @@ void ChannelAggregator::parseWebPage(const QByteArray &bytes) {
     }
 }
 
-void ChannelAggregator::errorWebPage(QNetworkReply *reply) {
-    Q_UNUSED(reply);
+void ChannelAggregator::errorWebPage(const QString &message) {
+    Q_UNUSED(message);
     reallyProcessChannel(currentChannel);
     currentChannel = 0;
 }
@@ -142,8 +137,8 @@ void ChannelAggregator::reallyProcessChannel(YTChannel *channel) {
     params->setSortBy(SearchParams::SortByNewest);
     params->setTransient(true);
     params->setPublishedAfter(channel->getChecked());
-    YTSearch *videoSource = new YTSearch(params, this);
-    connect(videoSource, SIGNAL(gotVideos(QList<Video*>)), SLOT(videosLoaded(QList<Video*>)));
+    YTSearch *videoSource = new YTSearch(params);
+    connect(videoSource, SIGNAL(gotVideos(QVector<Video *>)), SLOT(videosLoaded(QVector<Video *>)));
     videoSource->loadVideos(50, 1);
 
     channel->updateChecked();
@@ -152,26 +147,8 @@ void ChannelAggregator::reallyProcessChannel(YTChannel *channel) {
 void ChannelAggregator::finish() {
     currentChannel = 0;
 
-    /*
-    foreach (YTChannel *channel, updatedChannels)
-        if (channel->updateNotifyCount())
-            emit channelChanged(channel);
-    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;
-    */
+    if (!db.commit()) qWarning() << "Commit failed" << __PRETTY_FUNCTION__;
 
 #ifdef Q_OS_MAC
     if (newVideoCount > 0 && unwatchedCount > 0 && mac::canNotify()) {
@@ -180,32 +157,33 @@ void ChannelAggregator::finish() {
         for (int i = 0; i < total; ++i) {
             YTChannel *channel = updatedChannels.at(i);
             channelNames += channel->getDisplayName();
-            if (i < total-1) channelNames.append(", ");
+            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());
+        mac::notify(tr("You have %n new video(s)", "", actualNewVideoCount), channelNames,
+                    QString());
     }
 #endif
 
     running = false;
 }
 
-void ChannelAggregator::videosLoaded(const QList<Video*> &videos) {
+void ChannelAggregator::videosLoaded(const QVector<Video *> &videos) {
     sender()->deleteLater();
 
-    foreach (Video* video, videos) {
+    for (Video *video : videos) {
         addVideo(video);
         qApp->processEvents();
     }
 
     if (!videos.isEmpty()) {
-        YTChannel *channel = YTChannel::forId(videos.first()->channelId());
+        YTChannel *channel = YTChannel::forId(videos.at(0)->getChannelId());
         channel->updateNotifyCount();
         emit channelChanged(channel);
         updateUnwatchedCount();
-        foreach (Video* video, videos) video->deleteLater();
+        for (Video *video : videos)
+            video->deleteLater();
     }
 
     QTimer::singleShot(0, this, SLOT(processNextChannel()));
@@ -231,7 +209,7 @@ void ChannelAggregator::addVideo(Video *video) {
 
     QSqlQuery query(db);
     query.prepare("select count(*) from subscriptions_videos where video_id=?");
-    query.bindValue(0, video->id());
+    query.bindValue(0, video->getId());
     bool success = query.exec();
     if (!success) qWarning() << query.lastQuery() << query.lastError().text();
     if (!query.next()) return;
@@ -240,17 +218,17 @@ void ChannelAggregator::addVideo(Video *video) {
 
     // qDebug() << "Inserting" << video->author() << video->title();
 
-    YTChannel *channel = YTChannel::forId(video->channelId());
+    YTChannel *channel = YTChannel::forId(video->getChannelId());
     if (!channel) {
-        qWarning() << "channelId not present in db" << video->channelId() << video->channelTitle();
+        qWarning() << "channelId not present in db" << video->getChannelId()
+                   << video->getChannelTitle();
         return;
     }
 
-    if (!updatedChannels.contains(channel))
-        updatedChannels << channel;
+    if (!updatedChannels.contains(channel)) updatedChannels << channel;
 
     uint now = QDateTime::currentDateTimeUtc().toTime_t();
-    uint published = video->published().toTime_t();
+    uint published = video->getPublished().toTime_t();
     if (published > now) {
         qDebug() << "fixing publish time";
         published = now;
@@ -261,19 +239,19 @@ void ChannelAggregator::addVideo(Video *video) {
                   "(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(0, video->getId());
     query.bindValue(1, channel->getId());
     query.bindValue(2, published);
     query.bindValue(3, now);
     query.bindValue(4, 0);
-    query.bindValue(5, video->title());
-    query.bindValue(6, video->channelTitle());
-    query.bindValue(7, video->channelId());
-    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());
+    query.bindValue(5, video->getTitle());
+    query.bindValue(6, video->getChannelTitle());
+    query.bindValue(7, video->getChannelId());
+    query.bindValue(8, video->getDescription());
+    query.bindValue(9, video->getWebpage());
+    query.bindValue(10, video->getThumbnailUrl());
+    query.bindValue(11, video->getViewCount());
+    query.bindValue(12, video->getDuration());
     success = query.exec();
     if (!success) qWarning() << query.lastQuery() << query.lastError().text();
 
@@ -298,7 +276,8 @@ void ChannelAggregator::markAllAsWatched() {
     if (!success) qWarning() << query.lastQuery() << query.lastError().text();
     unwatchedCount = 0;
 
-    foreach (YTChannel *channel, YTChannel::getCachedChannels()) {
+    const auto &channels = YTChannel::getCachedChannels();
+    for (YTChannel *channel : channels) {
         channel->setWatched(now);
         channel->setNotifyCount(0);
     }
@@ -312,11 +291,11 @@ void ChannelAggregator::videoWatched(Video *video) {
     QSqlQuery query(db);
     query.prepare("update subscriptions_videos set watched=? where video_id=?");
     query.bindValue(0, QDateTime::currentDateTimeUtc().toTime_t());
-    query.bindValue(1, video->id());
+    query.bindValue(1, video->getId());
     bool success = query.exec();
     if (!success) qWarning() << query.lastQuery() << query.lastError().text();
     if (query.numRowsAffected() > 0) {
-        YTChannel *channel = YTChannel::forId(video->channelId());
+        YTChannel *channel = YTChannel::forId(video->getChannelId());
         channel->updateNotifyCount();
     }
 }
index bb92227bda47d7b0fb5c797f23b54ddecbf11b83..6eeaba75c63320b9557c6e456edb11e34e7845ad 100644 (file)
@@ -49,11 +49,11 @@ signals:
     void unwatchedCountChanged(int count);
 
 private slots:
-    void videosLoaded(const QList<Video*> &videos);
+    void videosLoaded(const QVector<Video*> &videos);
     void processNextChannel();
     void checkWebPage(YTChannel *channel);
     void parseWebPage(const QByteArray &bytes);
-    void errorWebPage(QNetworkReply *reply);
+    void errorWebPage(const QString &message);
     void reallyProcessChannel(YTChannel *channel);
 
 private:
@@ -67,7 +67,7 @@ private:
     bool running;
 
     int newVideoCount;
-    QList<YTChannel*> updatedChannels;
+    QVector<YTChannel*> updatedChannels;
 
     QTimer *timer;
     bool stopped;
index 7aef664f6cbfd89d5f005f10fc038d56a3ab03f2..acdedda2b8073d3ffe9c916fc73e72d462c46242 100644 (file)
@@ -21,10 +21,7 @@ $END_LICENSE */
 #ifndef CHANNELITEMDELEGATE_H
 #define CHANNELITEMDELEGATE_H
 
-#include <QtGui>
-#if QT_VERSION >= 0x050000
 #include <QtWidgets>
-#endif
 
 class ChannelItemDelegate : public QStyledItemDelegate {
 
index 04863a824e64be63b654554adb843fce5286a621..ebb4d8beb191e53b1261dc3bb77ff597a3d1d818 100644 (file)
@@ -21,10 +21,7 @@ $END_LICENSE */
 #ifndef CHANNELLISTVIEW_H
 #define CHANNELLISTVIEW_H
 
-#include <QtGui>
-#if QT_VERSION >= 0x050000
 #include <QtWidgets>
-#endif
 
 class ChannelListView : public QListView {
 
index a2cbd36f4f9b90eea5cfad882fa280fa4e1c073e..503cfc6211b48169631f16bd499b910b504a8fbf 100644 (file)
@@ -84,6 +84,7 @@ void ChannelModel::setQuery(const QString &query, const QSqlDatabase &db) {
         qWarning() << q.lastQuery() << q.lastError().text();
         sqlError = q.lastError();
     }
+    channels.reserve(q.size());
     while (q.next()) {
         YTChannel *channel = YTChannel::forId(q.value(0).toString());
         connect(channel, SIGNAL(thumbnailLoaded()), SLOT(updateSender()), Qt::UniqueConnection);
@@ -91,6 +92,7 @@ void ChannelModel::setQuery(const QString &query, const QSqlDatabase &db) {
         connect(channel, SIGNAL(destroyed(QObject *)), SLOT(removeChannel(QObject *)), Qt::UniqueConnection);
         channels << channel;
     }
+    channels.squeeze();
     endResetModel();
 }
 
index ee53f7fe1409cac8748a6fc03e71f8c6b1694e71..29de534181af6092ece51508eb8fdc2b4b2ab517 100644 (file)
@@ -62,7 +62,7 @@ public slots:
     void removeChannel(QObject *obj);
 
 private:
-    QList<YTChannel*> channels;
+    QVector<YTChannel*> channels;
     int hoveredRow;
     QSqlError sqlError;
 
index 20b564ac54249f5d4d00cb579bcde85a3e8059d0..eff93b4de205b58c9dc88a21342993884dd8fba3 100644 (file)
@@ -19,12 +19,8 @@ along with Minitube.  If not, see <http://www.gnu.org/licenses/>.
 $END_LICENSE */
 
 #include "channelsuggest.h"
-#include "networkaccess.h"
-#include "compatibility/qurlqueryhelper.h"
-
-namespace The {
-    NetworkAccess* http();
-}
+#include "http.h"
+#include "httputils.h"
 
 ChannelSuggest::ChannelSuggest(QObject *parent) : Suggester(parent) {
 
@@ -32,19 +28,21 @@ ChannelSuggest::ChannelSuggest(QObject *parent) : Suggester(parent) {
 
 void ChannelSuggest::suggest(const QString &query) {
     QUrl url("https://www.youtube.com/results");
-    {
-        QUrlQueryHelper urlHelper(url);
-        urlHelper.addQueryItem("search_type", "search_users");
-        urlHelper.addQueryItem("search_query", query);
-    }
+    QUrlQuery q;
+    q.addQueryItem("search_type", "search_users");
+    q.addQueryItem("search_query", query);
+    url.setQuery(q);
 
-    QObject *reply = The::http()->get(url);
+    QObject *reply = HttpUtils::yt().get(url);
     connect(reply, SIGNAL(data(QByteArray)), SLOT(handleNetworkData(QByteArray)));
 }
 
 void ChannelSuggest::handleNetworkData(QByteArray data) {
+    const int maxSuggestions = 10;
     QStringList choices;
-    QList<Suggestion*> suggestions;
+    choices.reserve(maxSuggestions);
+    QVector<Suggestion*> suggestions;
+    suggestions.reserve(maxSuggestions);
 
     QString html = QString::fromUtf8(data);
     QRegExp re("/(?:user|channel)/[a-zA-Z0-9]+[^>]+data-ytid=[\"']([^\"']+)[\"'][^>]+>([a-zA-Z0-9 ]+)</a>");
@@ -57,7 +55,7 @@ void ChannelSuggest::handleNetworkData(QByteArray data) {
             QString channelId = re.cap(1);
             suggestions << new Suggestion(choice, "channel", channelId);
             choices << choice;
-            if (choices.size() == 10) break;
+            if (choices.size() == maxSuggestions) break;
         }
         pos += re.matchedLength();
     }
index bde29c5f822f5b2222bde2b4713ec39307c6257d..f9c087cc686deba3a76285343e1987dce1d90d1a 100644 (file)
@@ -34,7 +34,7 @@ public:
     void suggest(const QString &query);
 
 signals:
-    void ready(const QList<Suggestion*> &suggestions);
+    void ready(const QVector<Suggestion*> &suggestions);
 
 private slots:
     void handleNetworkData(QByteArray response);
index 6203dbeaea73213eed1dff8edbf3c900152170ab..d6dcd46556a34cffa93d44c3eeb486e08aecb56d 100644 (file)
@@ -25,7 +25,6 @@ $END_LICENSE */
 #include "channelmodel.h"
 #include "channelitemdelegate.h"
 #include "database.h"
-#include "ytsearch.h"
 #include "channelaggregator.h"
 #include "aggregatevideosource.h"
 #include "mainwindow.h"
@@ -35,8 +34,10 @@ $END_LICENSE */
 #endif
 #include "channellistview.h"
 
-static const char *sortByKey = "subscriptionsSortBy";
-static const char *showUpdatedKey = "subscriptionsShowUpdated";
+namespace {
+static const QString sortByKey = "subscriptionsSortBy";
+static const QString showUpdatedKey = "subscriptionsShowUpdated";
+}
 
 ChannelView::ChannelView(QWidget *parent) : View(parent),
     showUpdated(false),
@@ -139,22 +140,27 @@ void ChannelView::setupActions() {
     connect(showUpdatedAction, SIGNAL(toggled(bool)), SLOT(toggleShowUpdated(bool)));
     statusActions << showUpdatedAction;
 
-    foreach (QAction *action, statusActions) {
+    for (QAction *action : statusActions) {
         window()->addAction(action);
         IconUtils::setupAction(action);
     }
 }
 
+QString ChannelView::noSubscriptionsMessage() {
+    return tr("You have no subscriptions. "
+                    "Use the star symbol to subscribe to channels.");
+}
+
 void ChannelView::appear() {
     updateQuery();
-    foreach (QAction* action, statusActions)
+    for (QAction* action : statusActions)
         MainWindow::instance()->showActionInStatusBar(action, true);
     setFocus();
     ChannelAggregator::instance()->start();
 }
 
 void ChannelView::disappear() {
-    foreach (QAction* action, statusActions)
+    for (QAction* action : statusActions)
         MainWindow::instance()->showActionInStatusBar(action, false);
 }
 
@@ -166,16 +172,16 @@ void ChannelView::itemActivated(const QModelIndex &index) {
         params->setChannelId(channel->getChannelId());
         params->setSortBy(SearchParams::SortByNewest);
         params->setTransient(true);
-        YTSearch *videoSource = new YTSearch(params, this);
+        YTSearch *videoSource = new YTSearch(params);
         videoSource->setAsyncDetails(true);
         emit activated(videoSource);
         channel->updateWatched();
     } else if (itemType == ChannelModel::ItemAggregate) {
-        AggregateVideoSource *videoSource = new AggregateVideoSource(this);
+        AggregateVideoSource *videoSource = new AggregateVideoSource();
         videoSource->setName(tr("All Videos"));
         emit activated(videoSource);
     } else if (itemType == ChannelModel::ItemUnwatched) {
-        AggregateVideoSource *videoSource = new AggregateVideoSource(this);
+        AggregateVideoSource *videoSource = new AggregateVideoSource();
         videoSource->setName(tr("Unwatched Videos"));
         videoSource->setUnwatched(true);
         emit activated(videoSource);
@@ -224,7 +230,11 @@ void ChannelView::toggleShowUpdated(bool enable) {
 void ChannelView::updateQuery(bool transition) {
     Q_UNUSED(transition);
     listView->clearErrorMessage();
-    if (!Database::exists()) return;
+
+    if (!Database::exists()) {
+        listView->setErrorMessage(noSubscriptionsMessage());
+        return;
+    }
 
     QString sql = "select user_id from subscriptions";
     if (showUpdated)
@@ -262,8 +272,7 @@ void ChannelView::updateQuery(bool transition) {
         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.");
+            msg = noSubscriptionsMessage();
         listView->setErrorMessage(msg);
     }
 }
index 41fcf7a3f1208cba8935e245c4c71695a19533b7..35c709b69da2bb10e141b55849a4ff71d0212247 100644 (file)
@@ -21,10 +21,8 @@ $END_LICENSE */
 #ifndef CHANNELSVIEW_H
 #define CHANNELSVIEW_H
 
-#include <QtGui>
-#if QT_VERSION >= 0x050000
 #include <QtWidgets>
-#endif
+
 #include "view.h"
 
 class VideoSource;
@@ -70,10 +68,11 @@ private slots:
 
 private:
     void setupActions();
+    QString noSubscriptionsMessage();
 
     ChannelListView *listView;
     ChannelModel *channelsModel;
-    QList<QAction*> statusActions;
+    QVector<QAction*> statusActions;
     bool showUpdated;
     SortBy sortBy;
     QAction *markAsWatchedAction;
diff --git a/src/clickablelabel.cpp b/src/clickablelabel.cpp
new file mode 100644 (file)
index 0000000..d1f6914
--- /dev/null
@@ -0,0 +1,9 @@
+#include "clickablelabel.h"
+
+ClickableLabel::ClickableLabel(QWidget *parent) : QLabel(parent) {
+    setCursor(Qt::PointingHandCursor);
+}
+
+void ClickableLabel::mouseReleaseEvent(QMouseEvent *e) {
+    if (rect().contains(e->pos())) emit clicked();
+}
diff --git a/src/clickablelabel.h b/src/clickablelabel.h
new file mode 100644 (file)
index 0000000..747c861
--- /dev/null
@@ -0,0 +1,21 @@
+#ifndef CLICKABLELABEL_H
+#define CLICKABLELABEL_H
+
+#include <QtWidgets>
+
+class ClickableLabel : public QLabel {
+
+    Q_OBJECT
+
+public:
+    explicit ClickableLabel(QWidget *parent = 0);
+
+signals:
+    void clicked();
+
+protected:
+    void mouseReleaseEvent(QMouseEvent *e);
+
+};
+
+#endif // CLICKABLELABEL_H
diff --git a/src/compatibility/pathsservice.cpp b/src/compatibility/pathsservice.cpp
deleted file mode 100644 (file)
index 9b817a5..0000000
+++ /dev/null
@@ -1,67 +0,0 @@
-/* $BEGIN_LICENSE
-
-This file is part of Minitube.
-Copyright 2015, 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 "pathsservice.h"
-
-#include <QDesktopServices>
-
-namespace {
-
-#if QT_VERSION >= 0x050000
-typedef QStandardPaths PathProvider;
-
-#define getLocation writableLocation
-#else
-typedef QDesktopServices PathProvider;
-
-#define getLocation storageLocation
-#endif  // QT_VERSION >= 0x050000
-
-}  // namespace
-
-namespace Paths {
-QString getMoviesLocation() {
-    return PathProvider::getLocation(PathProvider::MoviesLocation);
-}
-
-QString getDesktopLocation() {
-    return PathProvider::getLocation(PathProvider::DesktopLocation);
-}
-
-QString getHomeLocation() {
-    return PathProvider::getLocation(PathProvider::HomeLocation);
-}
-
-QString getDataLocation() {
-    return PathProvider::getLocation(PathProvider::DataLocation);
-}
-
-QString getPicturesLocation() {
-    return PathProvider::getLocation(PathProvider::PicturesLocation);
-}
-
-QString getTempLocation() {
-    return PathProvider::getLocation(PathProvider::TempLocation);
-}
-
-QString getCacheLocation() {
-    return PathProvider::getLocation(PathProvider::CacheLocation);
-}
-}
diff --git a/src/compatibility/pathsservice.h b/src/compatibility/pathsservice.h
deleted file mode 100644 (file)
index a35bfe9..0000000
+++ /dev/null
@@ -1,36 +0,0 @@
-/* $BEGIN_LICENSE
-
-This file is part of Minitube.
-Copyright 2015, 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 PATHSSERVICE_H
-#define PATHSSERVICE_H
-
-#include <QtGlobal>
-
-namespace Paths {
-QString getMoviesLocation();
-QString getDesktopLocation();
-QString getHomeLocation();
-QString getDataLocation();
-QString getPicturesLocation();
-QString getTempLocation();
-QString getCacheLocation();
-}
-
-#endif  // PATHSSERVICE_H
diff --git a/src/compatibility/qurlqueryhelper.h b/src/compatibility/qurlqueryhelper.h
deleted file mode 100644 (file)
index f0cce05..0000000
+++ /dev/null
@@ -1,62 +0,0 @@
-/* $BEGIN_LICENSE
-
-This file is part of Minitube.
-Copyright 2015, 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 QURLQUERYHELPER_H
-#define QURLQUERYHELPER_H
-
-#include <QtGlobal>
-
-QT_FORWARD_DECLARE_CLASS(QUrl)
-
-#if QT_VERSION >= 0x050000
-#include <QUrlQuery>
-
-class QUrlQueryHelper {
-public:
-    QUrlQueryHelper(QUrl &url) : m_url(url), m_urlQuery(url) {}
-
-    bool hasQueryItem(const QString &itemKey) const {
-        return m_urlQuery.hasQueryItem(itemKey);
-    }
-
-    void addQueryItem(const QString &key, const QString &value) {
-        m_urlQuery.addQueryItem(key, value);
-    }
-
-    void removeQueryItem(const QString &key) {
-        m_urlQuery.removeQueryItem(key);
-    }
-
-    ~QUrlQueryHelper() {
-        m_url.setQuery(m_urlQuery);
-    }
-
-private:
-    QUrlQueryHelper(const QUrlQueryHelper&);
-    QUrlQueryHelper& operator=(const QUrlQueryHelper&);
-
-    QUrl &m_url;
-    QUrlQuery m_urlQuery;
-};
-#else
-typedef QUrl& QUrlQueryHelper;
-#endif  // QT_VERSION >= 0x050000
-
-#endif // QURLQUERYHELPER_H
index 004db384ae5bfc1607c8624b6294ebccbd83b82c..89d2f0f59f6e1d1444212b83a8ef02acb4c0b1c8 100644 (file)
@@ -20,7 +20,6 @@ $END_LICENSE */
 
 #include "database.h"
 #include "constants.h"
-#include "compatibility/pathsservice.h"
 #include <QtDebug>
 
 static const int DATABASE_VERSION = 1;
@@ -28,7 +27,7 @@ static const QString dbName = QLatin1String(Constants::UNIX_NAME) + ".db";
 static Database *databaseInstance = 0;
 
 Database::Database() {
-    QString dataLocation = Paths::getDataLocation();
+    QString dataLocation = QStandardPaths::writableLocation(QStandardPaths::DataLocation);
 
     if (!QDir().mkpath(dataLocation)) {
         qCritical() << "Failed to create directory " << dataLocation;
@@ -59,7 +58,8 @@ void Database::createDatabase() {
 
 #ifdef APP_LINUX
     // Qt5 changed its "data" path. Try to move the old db to the new path
-    QString qt4DataLocation = Paths::getHomeLocation() + "/.local/share/data/" + Constants::ORG_NAME + "/" + Constants::NAME;
+    QString homeLocation = QStandardPaths::writableLocation(QStandardPaths::HomeLocation);
+    QString qt4DataLocation = homeLocation + "/.local/share/data/" + Constants::ORG_NAME + "/" + Constants::NAME;
     QString oldDbLocation = qt4DataLocation + "/" + dbName;
     qDebug() << oldDbLocation;
     if (QFile::exists(oldDbLocation)) {
@@ -117,7 +117,7 @@ void Database::createDatabase() {
 
 // static
 QString Database::getDbLocation() {
-    return Paths::getDataLocation() + "/" + dbName;
+    return QStandardPaths::writableLocation(QStandardPaths::DataLocation) + "/" + dbName;
 }
 
 // static
@@ -127,7 +127,8 @@ bool Database::exists() {
         fileExists = QFile::exists(getDbLocation());
 #ifdef APP_LINUX
         if (!fileExists) {
-            QString qt4DataLocation = Paths::getHomeLocation() + "/.local/share/data/" + Constants::ORG_NAME + "/" + Constants::NAME;
+            QString homeLocation = QStandardPaths::writableLocation(QStandardPaths::HomeLocation);
+            QString qt4DataLocation = homeLocation + "/.local/share/data/" + Constants::ORG_NAME + "/" + Constants::NAME;
             QString oldDbLocation = qt4DataLocation + "/" + dbName;
             qDebug() << "asd" << oldDbLocation;
             fileExists = QFile::exists(oldDbLocation);
@@ -240,7 +241,7 @@ void Database::drop() {
 }
 
 void Database::closeConnections() {
-    foreach(QSqlDatabase connection, connections.values()) {
+    foreach(QSqlDatabase connection, connections) {
         // qDebug() << "Closing connection" << connection;
         connection.close();
     }
index 82fb53f3d3fe5d23987d446b2295a309ae10196d..d35fc132bd1b07720ac4d32b7e178337304869a6 100644 (file)
@@ -15,8 +15,7 @@ QString DataUtils::stringToFilename(const QString &s) {
     f.replace('*', ' ');
     f = f.simplified();
 
-    if (!f.isEmpty() && f.at(0) == '.')
-        f = f.mid(1).trimmed();
+    if (!f.isEmpty() && f.at(0) == '.') f = f.midRef(1).trimmed().toString();
 
     return f;
 }
@@ -33,47 +32,24 @@ QString DataUtils::systemRegioneCode() {
 }
 
 uint DataUtils::parseIsoPeriod(const QString &isoPeriod) {
-    // QTime time = QTime::fromString("1mm12car00", "PT8M50S");
-    // ^P((\d+Y)?(\d+M)?(\d+W)?(\d+D)?)?(T(\d+H)?(\d+M)?(\d+S)?)?$
-    /*
-    QRegExp isoPeriodRE("^PT(\d+H)?(\d+M)?(\d+S)?)?$");
-    if (!isoPeriodRE.indexIn(isoPeriod)) {
-        qWarning() << "Cannot parse ISO period" << isoPeriod;
-        continue;
-    }
-
-    int totalCaptures = isoPeriodRE.capturedTexts();
-    for (int i = totalCaptures; i > 0; --i) {
-
-    }
-    */
-
     uint days = 0, hours = 0, minutes = 0, seconds = 0;
 
-    QByteArray ba = isoPeriod.toLocal8Bit();
-    const char *ptr = ba.data();
-    
-    while (*ptr) {
-        if(*ptr == 'P' || *ptr == 'T') {
-            ptr++;
-            continue;
+    const int len = isoPeriod.length();
+    int digitStart = -1;
+    for (int i = 0; i < len; ++i) {
+        const QChar c = isoPeriod.at(i);
+        if (c.isDigit()) {
+            if (digitStart == -1) digitStart = i;
+        } else if (digitStart != -1) {
+            if (c == 'H') {
+                hours = QStringRef(&isoPeriod, digitStart, i - digitStart).toUInt();
+            } else if (c == 'M') {
+                minutes = QStringRef(&isoPeriod, digitStart, i - digitStart).toUInt();
+            } else if (c == 'S') {
+                seconds = QStringRef(&isoPeriod, digitStart, i - digitStart).toUInt();
+            }
+            digitStart = -1;
         }
-
-        int value, charsRead;
-        char type;
-        if (sscanf(ptr, "%d%c%n", &value, &type, &charsRead) != 2)
-            continue;
-
-        if (type == 'D')
-            days = value;
-        else if (type == 'H')
-            hours = value;
-        else if (type == 'M')
-            minutes = value;
-        else if (type == 'S')
-            seconds = value;
-
-        ptr += charsRead;
     }
 
     uint period = ((days * 24 + hours) * 60 + minutes) * 60 + seconds;
@@ -85,17 +61,21 @@ QString DataUtils::formatDateTime(const QDateTime &dt) {
     QString s;
     int f = 60;
     if (seconds < f) {
-        s = qApp->translate("DataUtils", "Just now");
+        s = QCoreApplication::translate("DataUtils", "Just now");
     } else if (seconds < (f *= 60)) {
-        s = qApp->translate("DataUtils", "%n minute(s) ago", "", seconds / 60);
+        s = QCoreApplication::translate("DataUtils", "%n minute(s) ago", Q_NULLPTR, seconds / 60);
     } else if (seconds < (f *= 24)) {
-        s = qApp->translate("DataUtils", "%n hour(s) ago", "", seconds / (60*60));
+        int n = seconds / (60 * 60);
+        s = QCoreApplication::translate("DataUtils", "%n hour(s) ago", Q_NULLPTR, n);
     } else if (seconds < (f *= 7)) {
-        s = qApp->translate("DataUtils", "%n day(s) ago", "", seconds / (60*60*24));
-    } else if (seconds < (f = 60*60*24*30)) {
-        s = qApp->translate("DataUtils", "%n weeks(s) ago", "", seconds / (60*60*24*7));
-    } else if (seconds < (f = 60*60*24*365)) {
-        s = qApp->translate("DataUtils", "%n month(s) ago", "", seconds / (60*60*24*30));
+        int n = seconds / (60 * 60 * 24);
+        s = QCoreApplication::translate("DataUtils", "%n day(s) ago", Q_NULLPTR, n);
+    } else if (seconds < (f = 60 * 60 * 24 * 30)) {
+        int n = seconds / (60 * 60 * 24 * 7);
+        s = QCoreApplication::translate("DataUtils", "%n weeks(s) ago", Q_NULLPTR, n);
+    } else if (seconds < (f = 60 * 60 * 24 * 365)) {
+        int n = seconds / (60 * 60 * 24 * 30);
+        s = QCoreApplication::translate("DataUtils", "%n month(s) ago", Q_NULLPTR, n);
     } else {
         s = dt.date().toString(Qt::DefaultLocaleShortDate);
     }
@@ -110,7 +90,6 @@ QString DataUtils::formatDuration(uint secs) {
     uint minutes = d % 60;
     d /= 60;
     uint hours = d % 24;
-    if (hours == 0)
-        return res.sprintf("%d:%02d", minutes, seconds);
+    if (hours == 0) return res.sprintf("%d:%02d", minutes, seconds);
     return res.sprintf("%d:%02d:%02d", hours, minutes, seconds);
 }
index fda8a8702cfb7e5c72fa0d608897cf8429a58e36..61fb8917ca84bd8b012092316f3e114d7bb2e885 100644 (file)
@@ -20,13 +20,13 @@ $END_LICENSE */
 
 #include "diskcache.h"
 #include <QtNetwork>
-#include "compatibility/qurlqueryhelper.h"
 
 DiskCache::DiskCache(QObject *parent) : QNetworkDiskCache(parent) { }
 
 QIODevice* DiskCache::prepare(const QNetworkCacheMetaData &metaData) {
     QString mime;
-    foreach (const QNetworkCacheMetaData::RawHeader &header, metaData.rawHeaders()) {
+    const auto headers = metaData.rawHeaders();
+    for (const QNetworkCacheMetaData::RawHeader &header : headers) {
         // qDebug() << header.first << header.second;
         if (header.first.constData() == QLatin1String("Content-Type")) {
             mime = header.second;
@@ -44,10 +44,11 @@ QIODevice* DiskCache::prepare(const QNetworkCacheMetaData &metaData) {
 QNetworkCacheMetaData DiskCache::metaData(const QUrl &url) {
     // Remove "key" from query string in order to reuse cache when key changes
     static const QString keyQueryItem = "key";
-    QUrl url2(url);
-    QUrlQueryHelper urlHelper(url2);
-    if (urlHelper.hasQueryItem(keyQueryItem)) {
-        urlHelper.removeQueryItem(keyQueryItem);
+    QUrlQuery q(url);
+    if (q.hasQueryItem(keyQueryItem)) {
+        q.removeQueryItem(keyQueryItem);
+        QUrl url2(url);
+        url2.setQuery(q);
         return QNetworkDiskCache::metaData(url2);
     }
 
index 9b7982163cf5ed2c3d85f31bbc675fff1bc779ee..58714e026143ebc5a53b2104ee35248dbd18bbe2 100644 (file)
@@ -19,7 +19,8 @@ along with Minitube.  If not, see <http://www.gnu.org/licenses/>.
 $END_LICENSE */
 
 #include "downloaditem.h"
-#include "networkaccess.h"
+#include "http.h"
+#include "httputils.h"
 #include "video.h"
 
 #include <QDesktopServices>
@@ -29,10 +30,6 @@ $END_LICENSE */
 #include "macutils.h"
 #endif
 
-namespace The {
-    NetworkAccess* http();
-}
-
 DownloadItem::DownloadItem(Video *video, QUrl url, QString filename, QObject *parent)
     : QObject(parent)
     , m_bytesReceived(0)
@@ -126,10 +123,11 @@ void DownloadItem::seekTo(qint64 offset, bool sendStatusChanges) {
 
 void DownloadItem::start() {
     // qDebug() << "Starting download at" << m_offset;
-    if (m_offset > 0)
-        m_reply = The::http()->request(m_url, QNetworkAccessManager::GetOperation, QByteArray(), m_offset);
-    else
-        m_reply = The::http()->request(m_url);
+    HttpRequest req;
+    req.url = m_url;
+    if (m_offset > 0) req.offset = m_offset;
+    m_reply = HttpUtils::yt().networkReply(req);
+
     init();
 }
 
@@ -282,8 +280,8 @@ void DownloadItem::downloadProgress(qint64 bytesReceived, qint64 bytesTotal) {
         if (bufferSize > bytesTotal) bufferSize = bytesTotal;
         // qDebug() << bytesReceived << bytesTotal << neededBytes << bufferSize << m_downloadTime.elapsed();
         if (bytesReceived > bufferSize
-            && bytesReceived > neededBytes
-            && m_downloadTime.elapsed() > 2000) {
+                && bytesReceived > neededBytes
+                && m_downloadTime.elapsed() > 2000) {
             emit bufferProgress(100);
             m_status = Downloading;
             emit statusChanged();
@@ -437,7 +435,7 @@ QString DownloadItem::formattedTime(double timeRemaining, bool remaining) {
     }
     timeRemaining = floor(timeRemaining);
     QString msg = remaining ? tr("%4 %5 remaining") : "%4 %5";
-        return msg
+    return msg
             .arg(timeRemaining)
             .arg(timeRemainingString);
 }
index c46d19b57aae514c06c6fd5b69bf6b8dee92a5cc..489bd7dcbfaea7984815a3087b394af1c25c5ef0 100644 (file)
@@ -21,10 +21,7 @@ $END_LICENSE */
 #ifndef DOWNLOADLISTVIEW_H
 #define DOWNLOADLISTVIEW_H
 
-#include <QtGui>
-#if QT_VERSION >= 0x050000
 #include <QtWidgets>
-#endif
 
 class DownloadListView : public QListView {
 
index 9375bb082f6a4164b6ad6ccf87a6e9e0c95a2580..4ea5d8c7b0a0f789eb137dd738286f1bdac46c7c 100644 (file)
@@ -31,7 +31,6 @@ $END_LICENSE */
 #include "extra.h"
 #endif
 #include "datautils.h"
-#include "compatibility/pathsservice.h"
 #include "iconutils.h"
 
 static DownloadManager *downloadManagerInstance = 0;
@@ -54,15 +53,15 @@ void DownloadManager::clear() {
 
 int DownloadManager::activeItems() {
     int num = 0;
-    foreach (DownloadItem *item, items) {
+    for (DownloadItem *item : items) {
         if (item->status() == Downloading || item->status() == Starting) num++;
     }
     return num;
 }
 
 DownloadItem* DownloadManager::itemForVideo(Video* video) {
-    foreach (DownloadItem *item, items) {
-        if (item->getVideo()->id() == video->id()) return item;
+    for (DownloadItem *item : items) {
+        if (item->getVideo()->getId() == video->getId()) return item;
     }
     return 0;
 }
@@ -70,40 +69,13 @@ DownloadItem* DownloadManager::itemForVideo(Video* video) {
 void DownloadManager::addItem(Video *video) {
     // qDebug() << __FUNCTION__ << video->title();
 
-#ifdef APP_ACTIVATION
-    if (!Activation::instance().isActivated()) {
-        if (video->duration() >= 60*4) {
-            QMessageBox msgBox(MainWindow::instance());
-            msgBox.setIconPixmap(IconUtils::pixmap(":/images/app.png").scaled(64, 64, Qt::KeepAspectRatio, Qt::SmoothTransformation));
-            msgBox.setText(tr("This is just the demo version of %1.").arg(Constants::NAME));
-            msgBox.setInformativeText(
-                        tr("It can only download videos shorter than %1 minutes so you can test the download functionality.")
-                        .arg(4));
-            msgBox.setModal(true);
-            // make it a "sheet" on the Mac
-            msgBox.setWindowModality(Qt::WindowModal);
-
-            msgBox.addButton(tr("Continue"), QMessageBox::RejectRole);
-            QPushButton *buyButton = msgBox.addButton(tr("Get the full version"), QMessageBox::ActionRole);
-
-            msgBox.exec();
-
-            if (msgBox.clickedButton() == buyButton) {
-                MainWindow::instance()->showActivationView();
-            }
-
-            return;
-        }
-    }
-#endif
-
     DownloadItem *item = itemForVideo(video);
     if (item != 0) {
         if (item->status() == Failed || item->status() == Idle) {
-            qDebug() << "Restarting download" << video->title();
+            qDebug() << "Restarting download" << video->getTitle();
             item->tryAgain();
         } else {
-            qDebug() << "Already downloading video" << video->title();
+            qDebug() << "Already downloading video" << video->getTitle();
         }
         return;
     }
@@ -126,8 +98,8 @@ void DownloadManager::gotStreamUrl(QUrl url) {
 
     video->disconnect(this);
 
-    QString basename = DataUtils::stringToFilename(video->title());
-    if (basename.isEmpty()) basename = video->id();
+    QString basename = DataUtils::stringToFilename(video->getTitle());
+    if (basename.isEmpty()) basename = video->getId();
 
     QString filename = currentDownloadFolder() + "/" + basename + ".mp4";
 
@@ -158,7 +130,7 @@ void DownloadManager::itemFinished() {
     QString stats = tr("%1 downloaded in %2").arg(
                 DownloadItem::formattedFilesize(item->bytesTotal()),
                 DownloadItem::formattedTime(item->totalTime(), false));
-    Extra::notify(tr("Download finished"), video->title(), stats);
+    Extra::notify(tr("Download finished"), video->getTitle(), stats);
 #endif
 }
 
@@ -169,17 +141,17 @@ void DownloadManager::updateStatusMessage() {
 
 QString DownloadManager::defaultDownloadFolder() {
     // download in the Movies system folder
-    QString path = Paths::getMoviesLocation();
+    QString path = QStandardPaths::writableLocation(QStandardPaths::MoviesLocation);
 
     const QDir moviesDir(path);
     if (!moviesDir.exists()) {
         // fallback to Desktop
-        path = Paths::getDesktopLocation();
+        path = QStandardPaths::writableLocation(QStandardPaths::DesktopLocation);
 
         const QDir desktopDir(path);
         if (!desktopDir.exists()) {
             // fallback to Home
-            path = Paths::getHomeLocation();
+            path = QStandardPaths::writableLocation(QStandardPaths::HomeLocation);
         }
     }
     return path;
index 01766df3d444df49bcf6f1a212ab35ffd4bafc09..1d1bb6597c43545401ad02e2e340546806972080 100644 (file)
@@ -21,10 +21,7 @@ $END_LICENSE */
 #ifndef DOWNLOADMANAGER_H
 #define DOWNLOADMANAGER_H
 
-#include <QtGui>
-#if QT_VERSION >= 0x050000
 #include <QtWidgets>
-#endif
 
 class DownloadItem;
 class DownloadModel;
@@ -38,7 +35,7 @@ public:
     static DownloadManager* instance();
     void clear();
     void addItem(Video *video);
-    const QList<DownloadItem*> getItems() { return items; }
+    const QVector<DownloadItem*> getItems() { return items; }
     DownloadModel* getModel() { return downloadModel; }
     DownloadItem* itemForVideo(Video *video);
     int activeItems();
@@ -57,7 +54,7 @@ private slots:
 private:
     DownloadManager(QWidget *parent = 0);
 
-    QList<DownloadItem*> items;
+    QVector<DownloadItem*> items;
     DownloadModel *downloadModel;
 
 };
index 89a5eb035246e1e402eb8abedcd98e6712d6896a..17bbeaa4531354c70164c4af09bc822fa2a2af68 100644 (file)
@@ -41,7 +41,7 @@ QVariant DownloadModel::data(const QModelIndex &index, int role) const {
     int row = index.row();
     if (row < 0 || row >= rowCount()) return QVariant();
 
-    QList<DownloadItem*> items = downloadManager->getItems();
+    QVector<DownloadItem*> items = downloadManager->getItems();
     if (items.isEmpty()) return QVariant();
 
     switch (role) {
index e283867586216fb7cc270e8b57c2a7fd24df897f..c8b9d6c01a621cb93cea2b20d7cfc6ada1c69efd 100644 (file)
@@ -21,7 +21,6 @@ $END_LICENSE */
 #include "downloadsettings.h"
 #include "downloadmanager.h"
 #include "mainwindow.h"
-#include "compatibility/pathsservice.h"
 
 DownloadSettings::DownloadSettings(QWidget *parent) : QWidget(parent) {
 
@@ -57,7 +56,7 @@ void DownloadSettings::paintEvent(QPaintEvent * /*event*/) {
 }
 
 void DownloadSettings::changeFolder() {
-    const QString path = Paths::getHomeLocation();
+    const QString path = QStandardPaths::writableLocation(QStandardPaths::HomeLocation);
 #ifdef APP_MAC
     QFileDialog* dialog = new QFileDialog(this);
     dialog->setFileMode(QFileDialog::Directory);
@@ -87,7 +86,7 @@ void DownloadSettings::folderChosen(const QString &dir) {
 
 void DownloadSettings::updateMessage() {
     const QString path = DownloadManager::instance()->currentDownloadFolder();
-    const QString home = Paths::getHomeLocation();
+    const QString home = QStandardPaths::writableLocation(QStandardPaths::HomeLocation);
     QString displayPath = path;
     displayPath = displayPath.remove(home + "/");
     message->setText(
index c740cbff164bb3276987ee8b8eac067d305af6e4..8515bcbcde3f01a6d477252bc62d93ed9eaf5319 100644 (file)
@@ -21,10 +21,7 @@ $END_LICENSE */
 #ifndef DOWNLOADSETTINGS_H
 #define DOWNLOADSETTINGS_H
 
-#include <QtGui>
-#if QT_VERSION >= 0x050000
 #include <QtWidgets>
-#endif
 
 class DownloadSettings : public QWidget {
 
index b7b9a947d61ac5675ff608c1386cfe873840f7aa..ab950859d54cdc75a1987a4972a82228fef8b374 100644 (file)
@@ -40,7 +40,7 @@ DownloadView::DownloadView(QWidget *parent) : View(parent) {
     layout->addWidget(bar);
 
     listView = new DownloadListView(this);
-    PlaylistItemDelegate *delegate = new PlaylistItemDelegate(this, true);
+    PlaylistItemDelegate *delegate = new PlaylistItemDelegate(listView, true);
     listView->setItemDelegate(delegate);
     listView->setSelectionMode(QAbstractItemView::NoSelection);
 
index 6b30286be054d5f98c043313e6b20a56f9ee89de..216010ad3df5cc75dd956da9d27a18dfbe8ac236 100644 (file)
@@ -21,10 +21,8 @@ $END_LICENSE */
 #ifndef DOWNLOADVIEW_H
 #define DOWNLOADVIEW_H
 
-#include <QtGui>
-#if QT_VERSION >= 0x050000
 #include <QtWidgets>
-#endif
+
 #include "view.h"
 
 class SegmentedControl;
@@ -33,17 +31,15 @@ class DownloadListView;
 class DownloadSettings;
 
 class DownloadView : public View {
-
     Q_OBJECT
 
 public:
     DownloadView(QWidget *parent);
     void appear();
     void disappear();
-    QHash<QString, QVariant> metadata() {
-        QHash<QString, QVariant> metadata;
-        metadata.insert("title", tr("Downloads"));
-        return metadata;
+    const QString &getTitle() {
+        static const QString s = tr("Downloads");
+        return s;
     }
 
 public slots:
@@ -56,7 +52,6 @@ private:
     DownloadModel *listModel;
     QTimer *updateTimer;
     DownloadSettings *downloadSettings;
-
 };
 
 #endif // DOWNLOADVIEW_H
index 4784c8a524c5ad7e03985d843394aa87bcb3c6e5..1984eb65230d6096766ff571d3effa4c2c5400db 100644 (file)
@@ -103,7 +103,7 @@ void ExLineEdit::resizeEvent(QResizeEvent *e) {
 }
 
 void ExLineEdit::updateGeometries() {
-    QStyleOptionFrameV2 panel;
+    QStyleOptionFrame panel;
     initStyleOption(&panel);
     QRect rect = style()->subElementRect(QStyle::SE_LineEditContents, &panel, this);
 
@@ -123,7 +123,7 @@ void ExLineEdit::updateGeometries() {
                                clearButtonWidth, this->height());
 }
 
-void ExLineEdit::initStyleOption(QStyleOptionFrameV2 *option) const {
+void ExLineEdit::initStyleOption(QStyleOptionFrame *option) const {
     option->initFrom(this);
     option->rect = contentsRect();
     option->lineWidth = style()->pixelMetric(QStyle::PM_DefaultFrameWidth, option, this);
@@ -135,7 +135,7 @@ void ExLineEdit::initStyleOption(QStyleOptionFrameV2 *option) const {
     if (hasEditFocus())
         option->state |= QStyle::State_HasEditFocus;
 #endif
-    option->features = QStyleOptionFrameV2::None;
+    option->features = QStyleOptionFrame::None;
 }
 
 QSize ExLineEdit::sizeHint() const {
@@ -180,7 +180,7 @@ bool ExLineEdit::event(QEvent *e) {
 void ExLineEdit::paintEvent(QPaintEvent *e) {
     Q_UNUSED(e);
     QPainter p(this);
-    QStyleOptionFrameV2 panel;
+    QStyleOptionFrame panel;
     initStyleOption(&panel);
     style()->drawPrimitive(QStyle::PE_PanelLineEdit, &panel, &p, this);
 }
index 228b7813198b0a592d9dc063ad47378454595380..94b3f46ddaa418a22d4c42f542bd0e7a2796b610 100644 (file)
@@ -1,10 +1,7 @@
 #ifndef EXLINEEDIT_H
 #define EXLINEEDIT_H
 
-#include <QtGui>
-#if QT_VERSION >= 0x050000
 #include <QtWidgets>
-#endif
 
 class ClearButton : public QAbstractButton {
 
@@ -50,7 +47,7 @@ protected:
     void paintEvent(QPaintEvent *e);
     void resizeEvent(QResizeEvent *e);
     bool event(QEvent *e);
-    void initStyleOption(QStyleOptionFrameV2 *option) const;
+    void initStyleOption(QStyleOptionFrame *option) const;
 
     QWidget *m_leftWidget;
     QLineEdit *m_lineEdit;
index dc56dd5f983aea0d64cf6bce0c854b06b6ee3c13..c9bf5c28d4457c8b0aa08a261e8ba20e09ee5cb3 100644 (file)
@@ -19,6 +19,9 @@ along with Minitube.  If not, see <http://www.gnu.org/licenses/>.
 $END_LICENSE */
 
 #include "fontutils.h"
+#ifdef APP_MAC
+#include "macutils.h"
+#endif
 
 namespace {
 
@@ -30,10 +33,10 @@ QFont createFont(bool isBold, double sizeScale) {
 }
 
 QFont createFontWithMinSize(bool isBold, double sizeScale) {
-    const int MIN_PIXEL_SIZE = 12;
+    const int minPixels = 11;
     QFont font = createFont(isBold, sizeScale);
-    if (font.pixelSize() < MIN_PIXEL_SIZE)
-        font.setPixelSize(MIN_PIXEL_SIZE);
+    if (font.pixelSize() < minPixels)
+        font.setPixelSize(minPixels);
     return font;
 }
 
@@ -68,3 +71,18 @@ const QFont &FontUtils::bigBold() {
     static const QFont font = createFont(true, 1.5);
     return font;
 }
+
+QFont FontUtils::light(int pointSize) {
+#ifdef APP_MAC
+    QVariant v = mac::lightFont(pointSize);
+    if (!v.isNull()) return qvariant_cast<QFont>(v);
+#endif
+    QFont f;
+#ifdef APP_WIN
+    f.setFamily(QStringLiteral("Segoe UI Light"));
+#endif
+    f.setPointSize(pointSize);
+    f.setStyleName(QStringLiteral("Light"));
+    f.setWeight(QFont::Light);
+    return f;
+}
index 0c4d9ed843909bd9bf9be7bf6b9a5f72930a7c77..d7894e5c86bfaca343b446b7c83dcb940e5304e8 100644 (file)
@@ -21,7 +21,7 @@ $END_LICENSE */
 #ifndef FONTUTILS_H
 #define FONTUTILS_H
 
-#include <QFont>
+#include <QtGui>
 
 class FontUtils {
 
@@ -32,6 +32,7 @@ public:
     static const QFont &mediumBold();
     static const QFont &big();
     static const QFont &bigBold();
+    static QFont light(int pointSize);
 
 };
 
diff --git a/src/global.h b/src/global.h
deleted file mode 100644 (file)
index 9306998..0000000
+++ /dev/null
@@ -1,165 +0,0 @@
-/* $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
-
-#include <QtGui>
-#if QT_VERSION >= 0x050000
-#include <QtWidgets>
-#endif
-#include <QStringList>
-#include <QNetworkProxy>
-#include <QNetworkAccessManager>
-#include <QNetworkProxyFactory>
-#include <cstdlib>
-#include "networkaccess.h"
-#include "diskcache.h"
-#include "compatibility/pathsservice.h"
-
-namespace The {
-
-    QHash<QString, QAction*>* globalActions() {
-        static QHash<QString, QAction*> *actions = new QHash<QString, QAction*>;
-        return actions;
-    }
-
-    QHash<QString, QMenu*>* globalMenus() {
-        static QHash<QString, QMenu*> *menus = new QHash<QString, QMenu*>;
-        return menus;
-    }
-
-    void maybeSetSystemProxy() {
-
-        QNetworkProxyQuery proxyQuery(QUrl("http://www"));
-        proxyQuery.setProtocolTag("http");
-        QList<QNetworkProxy> proxylist = QNetworkProxyFactory::systemProxyForQuery(proxyQuery);
-
-        for (int i = 0; i < proxylist.count(); i++) {
-            QNetworkProxy proxy = proxylist.at(i);
-
-            /*
-            qDebug() << i << " type:"<< proxy.type();
-            qDebug() << i << " host:" << proxy.hostName();
-            qDebug() << i << " port:" << proxy.port();
-            qDebug() << i << " user:" << proxy.user();
-            qDebug() << i << " pass:" << proxy.password();
-            */
-
-            if (!proxy.hostName().isEmpty()) {
-                qDebug() << "Using proxy:" << proxy.hostName() << proxy.port();
-                QNetworkProxy::setApplicationProxy(proxy);
-                return;
-            }
-        }
-    }
-
-    void networkHttpProxySetting() {
-        char *http_proxy_env;
-        http_proxy_env = std::getenv("http_proxy");
-        if (!http_proxy_env) {
-            http_proxy_env = std::getenv("HTTP_PROXY");
-        }
-
-        if (http_proxy_env) {
-            QString proxy_host = "";
-            QString proxy_port = "";
-            QString proxy_user = "";
-            QString proxy_pass = "";
-            QString http_proxy = QString(http_proxy_env);
-            http_proxy.remove(QRegExp("^http://"));
-
-            // Remove trailing slash, if any
-            // Fix by Eduardo Suarez-Santana
-            http_proxy.remove(QRegExp("/$"));
-
-            // parse username and password
-            if (http_proxy.contains(QChar('@'))) {
-                QStringList http_proxy_list = http_proxy.split(QChar('@'));
-                QStringList http_proxy_user_pass = http_proxy_list[0].split(QChar(':'));
-                if (http_proxy_user_pass.size() > 0) {
-                    proxy_user = QUrl::fromPercentEncoding(http_proxy_user_pass[0].toUtf8());
-                }
-                if (http_proxy_user_pass.size() == 2) {
-                    proxy_pass = QUrl::fromPercentEncoding(http_proxy_user_pass[1].toUtf8());
-                }
-                if (http_proxy_list.size() > 1) {
-                    http_proxy = http_proxy_list[1];
-                }
-            }
-
-            // parse hostname and port
-            QStringList http_proxy_list = http_proxy.split(QChar(':'));
-            if (http_proxy_list.size() > 0) {
-                proxy_host = http_proxy_list[0];
-            }
-            if (http_proxy_list.size() > 1) {
-                proxy_port = http_proxy_list[1];
-            }
-
-            /*
-            qDebug() << "proxy_host: " << proxy_host;
-            qDebug() << "proxy_port: " << proxy_port;
-            qDebug() << "proxy_user: " << proxy_user;
-            qDebug() << "proxy_pass: " << proxy_pass;
-            */
-
-            // set proxy setting
-            if (!proxy_host.isEmpty()) {
-                QNetworkProxy proxy;
-                proxy.setType(QNetworkProxy::HttpProxy);
-                proxy.setHostName(proxy_host);
-                if (!proxy_port.isEmpty()) {
-                    proxy.setPort(proxy_port.toUShort());
-                }
-                if (!proxy_user.isEmpty()) {
-                    proxy.setUser(proxy_user);
-                }
-                if (!proxy_pass.isEmpty()) {
-                    proxy.setPassword(proxy_pass);
-                }
-
-                qDebug() << "Using HTTP proxy:" << http_proxy_env;
-                QNetworkProxy::setApplicationProxy(proxy);
-            }
-        }
-    }
-
-    QNetworkAccessManager* networkAccessManager() {
-        static QNetworkAccessManager *nam = 0;
-        if (!nam) {
-            networkHttpProxySetting();
-            maybeSetSystemProxy();
-            nam = new QNetworkAccessManager();
-            QNetworkDiskCache *cache = new DiskCache();
-            cache->setCacheDirectory(Paths::getCacheLocation());
-            nam->setCache(cache);
-        }
-        return nam;
-    }
-
-    NetworkAccess* http() {
-        static NetworkAccess *na = new NetworkAccess();
-        return na;
-    }
-
-}
-
-#endif // GLOBAL_H
index 754ad742f4ba923e60850003a3b73eb26f618061..8df09f93d1283ca5fe06863fdae6ea385cf99228 100644 (file)
@@ -39,7 +39,7 @@ public:
         QAction* action;
     };
 
-    QMap<QString, Shortcut> shortcuts() const { return shortcuts_; }
+    const QMap<QString, Shortcut> &shortcuts() const { return shortcuts_; }
     void setBackend(GlobalShortcutBackend* backend) {
         this->backend = backend;
         reload();
index 1b07d592d9ae03c9a8777495676baaa8db788188..617faad3f69809193e60a2d8c2f7e13aa60c2fbd 100644 (file)
@@ -1,29 +1,33 @@
 /* $BEGIN_LICENSE
 
-This file is part of Minitube.
-Copyright 2009, Flavio Tordini <flavio.tordini@gmail.com>
+This file is part of Musique.
+Copyright 2013, Flavio Tordini <flavio.tordini@gmail.com>
 
-Minitube is free software: you can redistribute it and/or modify
+Musique 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,
+Musique 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/>.
+along with Musique.  If not, see <http://www.gnu.org/licenses/>.
 
 $END_LICENSE */
 
 #include "gnomeglobalshortcutbackend.h"
 #include "globalshortcuts.h"
+#include "constants.h"
 
 #include <QAction>
 #include <QtDebug>
-#include <QtDBus>
+
+#ifdef QT_DBUS_LIB
+#  include <QtDBus>
+#endif
 
 const char* GnomeGlobalShortcutBackend::kGsdService = "org.gnome.SettingsDaemon";
 const char* GnomeGlobalShortcutBackend::kGsdPath = "/org/gnome/SettingsDaemon/MediaKeys";
@@ -31,31 +35,46 @@ const char* GnomeGlobalShortcutBackend::kGsdInterface = "org.gnome.SettingsDaemo
 
 GnomeGlobalShortcutBackend::GnomeGlobalShortcutBackend(GlobalShortcuts* parent)
     : GlobalShortcutBackend(parent),
-    interface_(NULL) { }
+      interface_(NULL) { }
 
 bool GnomeGlobalShortcutBackend::IsGsdAvailable() {
+#ifdef QT_DBUS_LIB
     return QDBusConnection::sessionBus().interface()->isServiceRegistered(
-            GnomeGlobalShortcutBackend::kGsdService);
+                GnomeGlobalShortcutBackend::kGsdService);
+#else // QT_DBUS_LIB
+    return false;
+#endif
 }
 
 bool GnomeGlobalShortcutBackend::DoRegister() {
     // qDebug() << __PRETTY_FUNCTION__;
+#ifdef QT_DBUS_LIB
     // Check if the GSD service is available
     if (!QDBusConnection::sessionBus().interface()->isServiceRegistered(kGsdService))
         return false;
 
     if (!interface_) {
         interface_ = new QDBusInterface(
-                kGsdService, kGsdPath, kGsdInterface, QDBusConnection::sessionBus(), this);
+                    kGsdService, kGsdPath, kGsdInterface, QDBusConnection::sessionBus(), this);
+    }
+
+    QDBusMessage reply = interface_->call("GrabMediaPlayerKeys", Constants::NAME, (unsigned int) 0);
+    if (reply.type() == QDBusMessage::ErrorMessage) {
+        qWarning() << "Failed to grab media player keys. Error:" << reply.errorMessage();
     }
 
     connect(interface_, SIGNAL(MediaPlayerKeyPressed(QString,QString)),
             this, SLOT(GnomeMediaKeyPressed(QString,QString)));
 
     return true;
+#else // QT_DBUS_LIB
+    return false;
+#endif
 }
 
 void GnomeGlobalShortcutBackend::DoUnregister() {
+
+#ifdef QT_DBUS_LIB
     // Check if the GSD service is available
     if (!QDBusConnection::sessionBus().interface()->isServiceRegistered(kGsdService))
         return;
@@ -64,6 +83,9 @@ void GnomeGlobalShortcutBackend::DoUnregister() {
 
     disconnect(interface_, SIGNAL(MediaPlayerKeyPressed(QString,QString)),
                this, SLOT(GnomeMediaKeyPressed(QString,QString)));
+
+    interface_->call("ReleaseMediaPlayerKeys", Constants::NAME);
+#endif
 }
 
 void GnomeGlobalShortcutBackend::GnomeMediaKeyPressed(const QString&, const QString& key) {
index efc61c3ffa2341b409d2f7fcf28b95a7f85c5af2..28462fb911560f2229595b703c7c453c974d57f2 100644 (file)
@@ -21,10 +21,7 @@ $END_LICENSE */
 #ifndef GRIDWIDGET_H
 #define GRIDWIDGET_H
 
-#include <QtGui>
-#if QT_VERSION >= 0x050000
 #include <QtWidgets>
-#endif
 
 class GridWidget : public QWidget {
 
index c64f89181e0314415b8297a2086da19335d8f45b..a8f061b7f40e4dd575e500e5b5a9f167d8f688f8 100644 (file)
@@ -46,7 +46,7 @@ HomeView::HomeView(QWidget *parent) : View(parent),
     stackedWidget = new QStackedWidget();
     layout->addWidget(stackedWidget);
 
-    searchView = new SearchView();
+    searchView = new SearchView(this);
     connect(searchView, SIGNAL(search(SearchParams*)),
             MainWindow::instance(), SLOT(showMedia(SearchParams*)));
     stackedWidget->addWidget(searchView);
@@ -76,7 +76,8 @@ void HomeView::setupBar() {
     connect(ChannelAggregator::instance(), SIGNAL(unwatchedCountChanged(int)),
             SLOT(unwatchedCountChanged(int)));
 
-    foreach (QAction* action, bar->actions()) {
+    const auto a = bar->actions();
+    for (QAction* action : a) {
         addAction(action);
         IconUtils::setupAction(action);
     }
@@ -90,11 +91,16 @@ void HomeView::showWidget(QWidget *widget) {
     stackedWidget->setCurrentWidget(widget);
     widget->setEnabled(true);
     QMetaObject::invokeMethod(widget, "appear");
-    widget->setFocus();
+    QTimer::singleShot(0, widget, SLOT(setFocus()));
+
+#ifdef APP_MAC
+    // Workaround cursor bug on macOS
+    window()->unsetCursor();
+#endif
 }
 
 void HomeView::appear() {
-    QMetaObject::invokeMethod(stackedWidget->currentWidget(), "appear");
+    QMetaObject::invokeMethod(stackedWidget->currentWidget(), "appear", Qt::QueuedConnection);
 }
 
 void HomeView::disappear() {
index fb412f4993456eb4e2b54e9571834c4565aa9eb3..83d6eb116ef45aafb14c76531ed61a878be2bec1 100644 (file)
@@ -21,10 +21,8 @@ $END_LICENSE */
 #ifndef HOMEVIEW_H
 #define HOMEVIEW_H
 
-#include <QtGui>
-#if QT_VERSION >= 0x050000
 #include <QtWidgets>
-#endif
+
 #include "view.h"
 
 class SegmentedControl;
@@ -32,27 +30,28 @@ class SearchView;
 class StandardFeedsView;
 class ChannelView;
 
-class HomeView : public View  {
-
+class HomeView : public View {
     Q_OBJECT
 
 public:
     HomeView(QWidget *parent = 0);
     void disappear();
-    QHash<QString, QVariant> metadata() {
-        QHash<QString, QVariant> metadata;
-        metadata.insert("description", tr("Make yourself comfortable"));
-        return metadata;
+    const QString &getDescription() {
+        static const QString s = tr("Make yourself comfortable");
+        return s;
     }
     void showWidget(QWidget *widget);
-    SearchView* getSearchView() { return searchView; }
-    StandardFeedsView* getStandardFeedsView() { return standardFeedsView; }
+    QWidget *currentWidget() { return stackedWidget->currentWidget(); }
+    SearchView *getSearchView() { return searchView; }
+    StandardFeedsView *getStandardFeedsView() { return standardFeedsView; }
 
-private slots:
-    void appear();
+public slots:
     void showSearch();
     void showStandardFeeds();
     void showChannels();
+
+private slots:
+    void appear();
     void unwatchedCountChanged(int count);
 
 private:
@@ -62,10 +61,9 @@ private:
 
     SearchView *searchView;
     StandardFeedsView *standardFeedsView;
-    ChannelViewchannelsView;
+    ChannelView *channelsView;
 
     QAction *subscriptionsAction;
-
 };
 
 #endif // HOMEVIEW_H
diff --git a/src/http/README.md b/src/http/README.md
new file mode 100644 (file)
index 0000000..a1370ff
--- /dev/null
@@ -0,0 +1,63 @@
+# A wrapper for the Qt Network Access API
+
+This is just a wrapper around Qt's QNetworkAccessManager and friends. I use it in my Qt apps at http://flavio.tordini.org . It allows me to add missing functionality as needed, e.g.:
+
+- Throttling (as required by many web APIs nowadays)
+- Read timeouts (don't let your requests get stuck forever)
+- Automatic retries
+- User agent and request header defaults
+- Partial requests
+- Redirection support (now supported by Qt >= 5.6)
+
+It has a simpler, higher-level API that I find easier to work with. The design emerged naturally in years of practical use.
+
+A basic example:
+
+```
+QObject *reply = Http::instance().get("https://google.com/");
+connect(reply, SIGNAL(data(QByteArray)), SLOT(onSuccess(QByteArray)));
+connect(reply, SIGNAL(error(QString)), SLOT(onError(QString)));
+
+void MyClass::onSuccess(const QByteArray &bytes) {
+       qDebug() << "Feel the bytes!" << bytes;
+}
+
+void MyClass::onError(const QString &message) {
+       qDebug() << "Something's wrong here" << message;
+}
+```
+
+This is a real-world example of building a Http object suitable to a web service. It throttles requests, uses a custom user agent and caches results:
+
+```
+Http &myHttp() {
+    static Http *http = [] {
+        Http *http = new Http;
+        http->addRequestHeader("User-Agent", userAgent());
+
+        ThrottledHttp *throttledHttp = new ThrottledHttp(*http);
+        throttledHttp->setMilliseconds(1000);
+
+        CachedHttp *cachedHttp = new CachedHttp(*throttledHttp, "mycache");
+        cachedHttp->setMaxSeconds(86400 * 30);
+
+        return cachedHttp;
+    }();
+    return *http;
+}
+```
+
+If the full power (and complexity) of QNetworkReply is needed you can always fallback to it:
+
+```
+HttpRequest req;
+req.url = "https://flavio.tordini.org/";
+QNetworkReply *reply = Http::instance().networkReply(req);
+// Use QNetworkReply as needed...
+```
+
+You can use this library under the MIT license and at your own risk. If you do, you're welcome contributing your changes and fixes.
+
+Cheers,
+
+Flavio
diff --git a/src/http/http.pri b/src/http/http.pri
new file mode 100644 (file)
index 0000000..6a210c7
--- /dev/null
@@ -0,0 +1,16 @@
+QT *= network
+
+INCLUDEPATH += $$PWD/src
+DEPENDPATH += $$PWD/src
+
+HEADERS += \
+    $$PWD/src/cachedhttp.h \
+    $$PWD/src/http.h \
+    $$PWD/src/localcache.h \
+    $$PWD/src/throttledhttp.h
+
+SOURCES += \
+    $$PWD/src/cachedhttp.cpp \
+    $$PWD/src/http.cpp \
+    $$PWD/src/localcache.cpp \
+    $$PWD/src/throttledhttp.cpp
diff --git a/src/http/src/cachedhttp.cpp b/src/http/src/cachedhttp.cpp
new file mode 100644 (file)
index 0000000..b49f5b8
--- /dev/null
@@ -0,0 +1,70 @@
+#include "cachedhttp.h"
+#include "localcache.h"
+
+namespace {
+
+QByteArray requestHash(const HttpRequest &req) {
+    const char sep = '|';
+    QByteArray s = req.url.toEncoded() + sep + req.body + sep + QByteArray::number(req.offset);
+    if (req.operation == QNetworkAccessManager::PostOperation) {
+        s.append(sep);
+        s.append("POST");
+    }
+    return LocalCache::hash(s);
+}
+}
+
+CachedHttpReply::CachedHttpReply(const QByteArray &body, const HttpRequest &req)
+    : bytes(body), req(req) {
+    QTimer::singleShot(0, this, SLOT(emitSignals()));
+}
+
+QByteArray CachedHttpReply::body() const {
+    return bytes;
+}
+
+void CachedHttpReply::emitSignals() {
+    emit data(body());
+    emit finished(*this);
+    deleteLater();
+}
+
+WrappedHttpReply::WrappedHttpReply(LocalCache *cache, const QByteArray &key, QObject *httpReply)
+    : QObject(httpReply), cache(cache), key(key), httpReply(httpReply) {
+    connect(httpReply, SIGNAL(data(QByteArray)), SIGNAL(data(QByteArray)));
+    connect(httpReply, SIGNAL(error(QString)), SIGNAL(error(QString)));
+    connect(httpReply, SIGNAL(finished(HttpReply)), SLOT(originFinished(HttpReply)));
+}
+
+void WrappedHttpReply::originFinished(const HttpReply &reply) {
+    if (reply.isSuccessful()) cache->insert(key, reply.body());
+    emit finished(reply);
+}
+
+CachedHttp::CachedHttp(Http &http, const char *name)
+    : http(http), cache(LocalCache::instance(name)), cachePostRequests(false) {}
+
+void CachedHttp::setMaxSeconds(uint seconds) {
+    cache->setMaxSeconds(seconds);
+}
+
+void CachedHttp::setMaxSize(uint maxSize) {
+    cache->setMaxSize(maxSize);
+}
+
+QObject *CachedHttp::request(const HttpRequest &req) {
+    bool cacheable = req.operation == QNetworkAccessManager::GetOperation ||
+                     (cachePostRequests && req.operation == QNetworkAccessManager::PostOperation);
+    if (!cacheable) {
+        qDebug() << "Not cacheable" << req.url;
+        return http.request(req);
+    }
+    const QByteArray key = requestHash(req);
+    const QByteArray value = cache->value(key);
+    if (!value.isNull()) {
+        qDebug() << "CachedHttp HIT" << req.url;
+        return new CachedHttpReply(value, req);
+    }
+    qDebug() << "CachedHttp MISS" << req.url.toString();
+    return new WrappedHttpReply(cache, key, http.request(req));
+}
diff --git a/src/http/src/cachedhttp.h b/src/http/src/cachedhttp.h
new file mode 100644 (file)
index 0000000..8758f24
--- /dev/null
@@ -0,0 +1,59 @@
+#ifndef CACHEDHTTP_H
+#define CACHEDHTTP_H
+
+#include "http.h"
+
+class LocalCache;
+
+class CachedHttp : public Http {
+public:
+    CachedHttp(Http &http = Http::instance(), const char *name = "http");
+    void setMaxSeconds(uint seconds);
+    void setMaxSize(uint maxSize);
+    void setCachePostRequests(bool value) { cachePostRequests = value; }
+    QObject *request(const HttpRequest &req);
+
+private:
+    Http &http;
+    LocalCache *cache;
+    bool cachePostRequests;
+};
+
+class CachedHttpReply : public HttpReply {
+    Q_OBJECT
+
+public:
+    CachedHttpReply(const QByteArray &body, const HttpRequest &req);
+    QUrl url() const { return req.url; }
+    int statusCode() const { return 200; }
+    QByteArray body() const;
+
+private slots:
+    void emitSignals();
+
+private:
+    const QByteArray bytes;
+    const HttpRequest &req;
+};
+
+class WrappedHttpReply : public QObject {
+    Q_OBJECT
+
+public:
+    WrappedHttpReply(LocalCache *cache, const QByteArray &key, QObject *httpReply);
+
+signals:
+    void data(const QByteArray &bytes);
+    void error(const QString &message);
+    void finished(const HttpReply &reply);
+
+private slots:
+    void originFinished(const HttpReply &reply);
+
+private:
+    LocalCache *cache;
+    QByteArray key;
+    QObject *httpReply;
+};
+
+#endif // CACHEDHTTP_H
diff --git a/src/http/src/http.cpp b/src/http/src/http.cpp
new file mode 100644 (file)
index 0000000..2326e66
--- /dev/null
@@ -0,0 +1,305 @@
+#include "http.h"
+
+namespace {
+
+QNetworkAccessManager *createNetworkAccessManager() {
+    QNetworkAccessManager *nam = new QNetworkAccessManager();
+    return nam;
+}
+
+QNetworkAccessManager *networkAccessManager() {
+    static QMap<QThread *, QNetworkAccessManager *> nams;
+    QThread *t = QThread::currentThread();
+    QMap<QThread *, QNetworkAccessManager *>::const_iterator i = nams.constFind(t);
+    if (i != nams.constEnd()) return i.value();
+    QNetworkAccessManager *nam = createNetworkAccessManager();
+    nams.insert(t, nam);
+    return nam;
+}
+
+static int defaultReadTimeout = 10000;
+}
+
+Http::Http() : requestHeaders(getDefaultRequestHeaders()), readTimeout(defaultReadTimeout) {}
+
+void Http::setRequestHeaders(const QMap<QByteArray, QByteArray> &headers) {
+    requestHeaders = headers;
+}
+
+QMap<QByteArray, QByteArray> &Http::getRequestHeaders() {
+    return requestHeaders;
+}
+
+void Http::addRequestHeader(const QByteArray &name, const QByteArray &value) {
+    requestHeaders.insert(name, value);
+}
+
+void Http::setReadTimeout(int timeout) {
+    readTimeout = timeout;
+}
+
+Http &Http::instance() {
+    static Http *i = new Http();
+    return *i;
+}
+
+const QMap<QByteArray, QByteArray> &Http::getDefaultRequestHeaders() {
+    static const QMap<QByteArray, QByteArray> defaultRequestHeaders = [] {
+        QMap<QByteArray, QByteArray> h;
+        h.insert("Accept-Charset", "utf-8");
+        h.insert("Connection", "Keep-Alive");
+        return h;
+    }();
+    return defaultRequestHeaders;
+}
+
+void Http::setDefaultReadTimeout(int timeout) {
+    defaultReadTimeout = timeout;
+}
+
+QNetworkReply *Http::networkReply(const HttpRequest &req) {
+    QNetworkRequest request(req.url);
+
+    QMap<QByteArray, QByteArray> &headers = requestHeaders;
+    if (!req.headers.isEmpty()) headers = req.headers;
+
+    QMap<QByteArray, QByteArray>::const_iterator it;
+    for (it = headers.constBegin(); it != headers.constEnd(); ++it)
+        request.setRawHeader(it.key(), it.value());
+
+    if (req.offset > 0)
+        request.setRawHeader("Range", QString("bytes=%1-").arg(req.offset).toUtf8());
+
+    QNetworkAccessManager *manager = networkAccessManager();
+
+    QNetworkReply *networkReply = 0;
+    switch (req.operation) {
+    case QNetworkAccessManager::GetOperation:
+        networkReply = manager->get(request);
+        break;
+
+    case QNetworkAccessManager::HeadOperation:
+        networkReply = manager->head(request);
+        break;
+
+    case QNetworkAccessManager::PostOperation:
+        networkReply = manager->post(request, req.body);
+        break;
+
+    default:
+        qWarning() << "Unknown operation:" << req.operation;
+    }
+
+    return networkReply;
+}
+
+QObject *Http::request(const HttpRequest &req) {
+    return new NetworkHttpReply(req, *this);
+}
+
+QObject *Http::request(const QUrl &url,
+                       QNetworkAccessManager::Operation operation,
+                       const QByteArray &body,
+                       uint offset) {
+    HttpRequest req;
+    req.url = url;
+    req.operation = operation;
+    req.body = body;
+    req.offset = offset;
+    return request(req);
+}
+
+QObject *Http::get(const QUrl &url) {
+    return request(url, QNetworkAccessManager::GetOperation);
+}
+
+QObject *Http::head(const QUrl &url) {
+    return request(url, QNetworkAccessManager::HeadOperation);
+}
+
+QObject *Http::post(const QUrl &url, const QMap<QString, QString> &params) {
+    QByteArray body;
+    QMapIterator<QString, QString> i(params);
+    while (i.hasNext()) {
+        i.next();
+        body += QUrl::toPercentEncoding(i.key()) + '=' + QUrl::toPercentEncoding(i.value()) + '&';
+    }
+    HttpRequest req;
+    req.url = url;
+    req.operation = QNetworkAccessManager::PostOperation;
+    req.body = body;
+    req.headers = requestHeaders;
+    req.headers.insert("Content-Type", "application/x-www-form-urlencoded");
+    return request(req);
+}
+
+QObject *Http::post(const QUrl &url, const QByteArray &body, const QByteArray &contentType) {
+    HttpRequest req;
+    req.url = url;
+    req.operation = QNetworkAccessManager::PostOperation;
+    req.body = body;
+    req.headers = requestHeaders;
+    QByteArray cType = contentType;
+    if (cType.isEmpty()) cType = "application/x-www-form-urlencoded";
+    req.headers.insert("Content-Type", cType);
+    return request(req);
+}
+
+NetworkHttpReply::NetworkHttpReply(const HttpRequest &req, Http &http)
+    : http(http), req(req), retryCount(0) {
+    if (req.url.isEmpty()) {
+        qWarning() << "Empty URL";
+    }
+
+    networkReply = http.networkReply(req);
+    setParent(networkReply);
+    setupReply();
+
+    readTimeoutTimer = new QTimer(this);
+    readTimeoutTimer->setInterval(http.getReadTimeout());
+    readTimeoutTimer->setSingleShot(true);
+    connect(readTimeoutTimer, SIGNAL(timeout()), SLOT(readTimeout()), Qt::UniqueConnection);
+    readTimeoutTimer->start();
+}
+
+void NetworkHttpReply::setupReply() {
+    connect(networkReply, SIGNAL(error(QNetworkReply::NetworkError)),
+            SLOT(replyError(QNetworkReply::NetworkError)), Qt::UniqueConnection);
+    connect(networkReply, SIGNAL(finished()), SLOT(replyFinished()), Qt::UniqueConnection);
+    connect(networkReply, SIGNAL(downloadProgress(qint64, qint64)),
+            SLOT(downloadProgress(qint64, qint64)), Qt::UniqueConnection);
+}
+
+QString NetworkHttpReply::errorMessage() {
+    return url().toString() + QLatin1Char(' ') + QString::number(statusCode()) + QLatin1Char(' ') +
+           reasonPhrase();
+}
+
+void NetworkHttpReply::emitError() {
+    const QString msg = errorMessage();
+#ifndef QT_NO_DEBUG_OUTPUT
+    qDebug() << "Http:" << msg;
+    if (!req.body.isEmpty()) qDebug() << "Http:" << req.body;
+#endif
+    emit error(msg);
+    emitFinished();
+}
+
+void NetworkHttpReply::emitFinished() {
+    readTimeoutTimer->stop();
+
+    // disconnect to avoid replyFinished() from being called
+    networkReply->disconnect();
+
+    emit finished(*this);
+
+    // bye bye my reply
+    // this will also delete this object and HttpReply as the QNetworkReply is their parent
+    networkReply->deleteLater();
+}
+
+void NetworkHttpReply::replyFinished() {
+    QUrl redirection = networkReply->attribute(QNetworkRequest::RedirectionTargetAttribute).toUrl();
+    if (redirection.isValid()) {
+        HttpRequest redirectReq;
+        redirectReq.url = redirection;
+        redirectReq.operation = req.operation;
+        redirectReq.body = req.body;
+        redirectReq.offset = req.offset;
+        QNetworkReply *redirectReply = http.networkReply(redirectReq);
+        setParent(redirectReply);
+        networkReply->deleteLater();
+        networkReply = redirectReply;
+        setupReply();
+        readTimeoutTimer->start();
+        return;
+    }
+
+    if (isSuccessful()) {
+        bytes = networkReply->readAll();
+        emit data(bytes);
+
+#ifndef QT_NO_DEBUG_OUTPUT
+        if (!networkReply->attribute(QNetworkRequest::SourceIsFromCacheAttribute).toBool())
+            qDebug() << networkReply->url().toString() << statusCode();
+        else
+            qDebug() << "CACHE" << networkReply->url().toString();
+#endif
+    }
+
+    emitFinished();
+}
+
+void NetworkHttpReply::replyError(QNetworkReply::NetworkError code) {
+    Q_UNUSED(code);
+    const int status = statusCode();
+    if (retryCount <= 3 && status >= 500 && status < 600) {
+        qDebug() << "Retrying" << req.url;
+        networkReply->disconnect();
+        networkReply->deleteLater();
+        QNetworkReply *retryReply = http.networkReply(req);
+        setParent(retryReply);
+        networkReply = retryReply;
+        setupReply();
+        retryCount++;
+        readTimeoutTimer->start();
+    } else {
+        emitError();
+        return;
+    }
+}
+
+void NetworkHttpReply::downloadProgress(qint64 bytesReceived, qint64 /* bytesTotal */) {
+    // qDebug() << "Downloading" << bytesReceived << bytesTotal << networkReply->url();
+    if (bytesReceived > 0 && readTimeoutTimer->isActive()) {
+        readTimeoutTimer->stop();
+        disconnect(networkReply, SIGNAL(downloadProgress(qint64, qint64)), this,
+                   SLOT(downloadProgress(qint64, qint64)));
+    }
+}
+
+void NetworkHttpReply::readTimeout() {
+    if (!networkReply) return;
+    networkReply->disconnect();
+    networkReply->abort();
+    networkReply->deleteLater();
+
+    if (retryCount > 3 && (networkReply->operation() != QNetworkAccessManager::GetOperation &&
+                           networkReply->operation() != QNetworkAccessManager::HeadOperation)) {
+        emitError();
+        emit finished(*this);
+        return;
+    }
+
+    qDebug() << "Timeout" << req.url;
+    QNetworkReply *retryReply = http.networkReply(req);
+    setParent(retryReply);
+    networkReply = retryReply;
+    setupReply();
+    retryCount++;
+    readTimeoutTimer->start();
+}
+
+QUrl NetworkHttpReply::url() const {
+    return networkReply->url();
+}
+
+int NetworkHttpReply::statusCode() const {
+    return networkReply->attribute(QNetworkRequest::HttpStatusCodeAttribute).toInt();
+}
+
+QString NetworkHttpReply::reasonPhrase() const {
+    return networkReply->attribute(QNetworkRequest::HttpReasonPhraseAttribute).toString();
+}
+
+const QList<QNetworkReply::RawHeaderPair> NetworkHttpReply::headers() const {
+    return networkReply->rawHeaderPairs();
+}
+
+QByteArray NetworkHttpReply::header(const QByteArray &headerName) const {
+    return networkReply->rawHeader(headerName);
+}
+
+QByteArray NetworkHttpReply::body() const {
+    return bytes;
+}
diff --git a/src/http/src/http.h b/src/http/src/http.h
new file mode 100644 (file)
index 0000000..02c9695
--- /dev/null
@@ -0,0 +1,104 @@
+#ifndef HTTP_H
+#define HTTP_H
+
+#include <QtNetwork>
+
+class HttpRequest {
+public:
+    HttpRequest() : operation(QNetworkAccessManager::GetOperation), offset(0) {}
+    QUrl url;
+    QNetworkAccessManager::Operation operation;
+    QByteArray body;
+    uint offset;
+    QMap<QByteArray, QByteArray> headers;
+};
+
+class Http {
+public:
+    static Http &instance();
+    static const QMap<QByteArray, QByteArray> &getDefaultRequestHeaders();
+    static void setDefaultReadTimeout(int timeout);
+
+    Http();
+
+    void setRequestHeaders(const QMap<QByteArray, QByteArray> &headers);
+    QMap<QByteArray, QByteArray> &getRequestHeaders();
+    void addRequestHeader(const QByteArray &name, const QByteArray &value);
+
+    void setReadTimeout(int timeout);
+    int getReadTimeout() { return readTimeout; }
+
+    QNetworkReply *networkReply(const HttpRequest &req);
+    virtual QObject *request(const HttpRequest &req);
+    QObject *request(const QUrl &url,
+            QNetworkAccessManager::Operation operation = QNetworkAccessManager::GetOperation,
+            const QByteArray &body = QByteArray(),
+            uint offset = 0);
+    QObject *get(const QUrl &url);
+    QObject *head(const QUrl &url);
+    QObject *post(const QUrl &url, const QMap<QString, QString> &params);
+    QObject *post(const QUrl &url, const QByteArray &body, const QByteArray &contentType);
+
+private:
+    QMap<QByteArray, QByteArray> requestHeaders;
+    int readTimeout;
+};
+
+class HttpReply : public QObject {
+    Q_OBJECT
+
+public:
+    HttpReply(QObject *parent = 0) : QObject(parent) {}
+    virtual QUrl url() const = 0;
+    virtual int statusCode() const = 0;
+    int isSuccessful() const { return statusCode() >= 200 && statusCode() < 300; }
+    virtual QString reasonPhrase() const { return QString(); }
+    virtual const QList<QNetworkReply::RawHeaderPair> headers() const {
+        return QList<QNetworkReply::RawHeaderPair>();
+    }
+    virtual QByteArray header(const QByteArray &headerName) const {
+        Q_UNUSED(headerName);
+        return QByteArray();
+    }
+
+    virtual QByteArray body() const = 0;
+
+signals:
+    void data(const QByteArray &bytes);
+    void error(const QString &message);
+    void finished(const HttpReply &reply);
+};
+
+class NetworkHttpReply : public HttpReply {
+    Q_OBJECT
+
+public:
+    NetworkHttpReply(const HttpRequest &req, Http &http);
+    QUrl url() const;
+    int statusCode() const;
+    QString reasonPhrase() const;
+    const QList<QNetworkReply::RawHeaderPair> headers() const;
+    QByteArray header(const QByteArray &headerName) const;
+    QByteArray body() const;
+
+private slots:
+    void replyFinished();
+    void replyError(QNetworkReply::NetworkError);
+    void downloadProgress(qint64 bytesReceived, qint64 bytesTotal);
+    void readTimeout();
+
+private:
+    void setupReply();
+    QString errorMessage();
+    void emitError();
+    void emitFinished();
+
+    Http &http;
+    HttpRequest req;
+    QNetworkReply *networkReply;
+    QTimer *readTimeoutTimer;
+    int retryCount;
+    QByteArray bytes;
+};
+
+#endif // HTTP_H
diff --git a/src/http/src/localcache.cpp b/src/http/src/localcache.cpp
new file mode 100644 (file)
index 0000000..1d38262
--- /dev/null
@@ -0,0 +1,171 @@
+#include "localcache.h"
+
+LocalCache *LocalCache::instance(const char *name) {
+    static QMap<QByteArray, LocalCache *> instances;
+    auto i = instances.constFind(QByteArray::fromRawData(name, strlen(name)));
+    if (i != instances.constEnd()) return i.value();
+    LocalCache *instance = new LocalCache(name);
+    instances.insert(instance->getName(), instance);
+    return instance;
+}
+
+LocalCache::LocalCache(const QByteArray &name)
+    : name(name), maxSeconds(86400 * 30), maxSize(1024 * 1024 * 100), size(0), expiring(false),
+      insertCount(0) {
+    directory = QStandardPaths::writableLocation(QStandardPaths::CacheLocation) + QLatin1Char('/') +
+                QLatin1String(name) + QLatin1Char('/');
+#ifndef QT_NO_DEBUG_OUTPUT
+    hits = 0;
+    misses = 0;
+#endif
+}
+
+LocalCache::~LocalCache() {
+#ifndef QT_NO_DEBUG_OUTPUT
+    debugStats();
+#endif
+}
+
+QByteArray LocalCache::hash(const QByteArray &s) {
+    QCryptographicHash hash(QCryptographicHash::Sha1);
+    hash.addData(s);
+    const QByteArray h = QByteArray::number(*(qlonglong *)hash.result().constData(), 36);
+    static const char sep('/');
+    QByteArray p;
+    p.reserve(h.length() + 2);
+    p.append(h.at(0));
+    p.append(sep);
+    p.append(h.at(1));
+    p.append(sep);
+    p.append(h.constData() + 2, strlen(h.constData()) - 2); // p.append(h.mid(2));
+    return p;
+}
+
+bool LocalCache::isCached(const QString &path) {
+    bool cached = (QFile::exists(path) &&
+                   (maxSeconds == 0 ||
+                    QDateTime::currentDateTime().toTime_t() - QFileInfo(path).created().toTime_t() <
+                            maxSeconds));
+#ifndef QT_NO_DEBUG_OUTPUT
+    if (!cached) misses++;
+#endif
+    return cached;
+}
+
+QByteArray LocalCache::value(const QByteArray &key) {
+    const QString path = cachePath(key);
+    if (!isCached(path)) return QByteArray();
+
+    QFile file(path);
+    if (!file.open(QIODevice::ReadOnly)) {
+        qWarning() << __PRETTY_FUNCTION__ << file.fileName() << file.errorString();
+#ifndef QT_NO_DEBUG_OUTPUT
+        misses++;
+#endif
+        return QByteArray();
+    }
+#ifndef QT_NO_DEBUG_OUTPUT
+    hits++;
+#endif
+    return file.readAll();
+}
+
+void LocalCache::insert(const QByteArray &key, const QByteArray &value) {
+    const QueueItem item = {key, value};
+    insertQueue.append(item);
+    QTimer::singleShot(0, [this]() {
+        if (insertQueue.isEmpty()) return;
+        for (const auto &item : insertQueue) {
+            const QString path = cachePath(item.key);
+            const QString parentDir = path.left(path.lastIndexOf('/'));
+            if (!QFile::exists(parentDir)) {
+                QDir().mkpath(parentDir);
+            }
+            QFile file(path);
+            if (!file.open(QIODevice::WriteOnly)) {
+                qWarning() << "Cannot create" << path;
+                continue;
+            }
+            file.write(item.value);
+            file.close();
+            if (size > 0) size += item.value.size();
+        }
+        insertQueue.clear();
+
+        // expire cache every n inserts
+        if (maxSize > 0 && ++insertCount % 100 == 0) {
+            if (size == 0 || size > maxSize) size = expire();
+        }
+    });
+}
+
+bool LocalCache::clear() {
+#ifndef QT_NO_DEBUG_OUTPUT
+    hits = 0;
+    misses = 0;
+#endif
+    size = 0;
+    insertCount = 0;
+    return QDir(directory).removeRecursively();
+}
+
+QString LocalCache::cachePath(const QByteArray &key) const {
+    return directory + QLatin1String(key.constData());
+}
+
+qint64 LocalCache::expire() {
+    if (expiring) return size;
+    expiring = true;
+
+    QDir::Filters filters = QDir::AllDirs | QDir::Files | QDir::NoDotAndDotDot;
+    QDirIterator it(directory, filters, QDirIterator::Subdirectories);
+
+    QMultiMap<QDateTime, QString> cacheItems;
+    qint64 totalSize = 0;
+    while (it.hasNext()) {
+        QString path = it.next();
+        QFileInfo info = it.fileInfo();
+        cacheItems.insert(info.created(), path);
+        totalSize += info.size();
+        qApp->processEvents();
+    }
+
+    int removedFiles = 0;
+    qint64 goal = (maxSize * 9) / 10;
+    auto i = cacheItems.constBegin();
+    while (i != cacheItems.constEnd()) {
+        if (totalSize < goal) break;
+        QString name = i.value();
+        QFile file(name);
+        qint64 size = file.size();
+        file.remove();
+        totalSize -= size;
+        ++removedFiles;
+        ++i;
+        qApp->processEvents();
+    }
+#ifndef QT_NO_DEBUG_OUTPUT
+    debugStats();
+    if (removedFiles > 0) {
+        qDebug() << "Removed:" << removedFiles << "Kept:" << cacheItems.count() - removedFiles
+                 << "New Size:" << totalSize;
+    }
+#endif
+
+    expiring = false;
+
+    return totalSize;
+}
+
+#ifndef QT_NO_DEBUG_OUTPUT
+void LocalCache::debugStats() {
+    int total = hits + misses;
+    if (total > 0) {
+        qDebug() << "Cache:" << name << '\n'
+                 << "Inserts:" << insertCount << '\n'
+                 << "Requests:" << total << '\n'
+                 << "Hits:" << hits << (hits * 100) / total << "%\n"
+                 << "Misses:" << misses << (misses * 100) / total << "%";
+    }
+}
+#endif
diff --git a/src/http/src/localcache.h b/src/http/src/localcache.h
new file mode 100644 (file)
index 0000000..ff07109
--- /dev/null
@@ -0,0 +1,52 @@
+#ifndef LOCALCACHE_H
+#define LOCALCACHE_H
+
+#include <QtCore>
+
+/**
+ * @brief Not thread-safe
+ */
+class LocalCache {
+public:
+    static LocalCache *instance(const char *name);
+    ~LocalCache();
+    static QByteArray hash(const QByteArray &s);
+
+    const QByteArray &getName() const { return name; }
+
+    void setMaxSeconds(uint value) { maxSeconds = value; }
+    void setMaxSize(uint value) { maxSize = value; }
+
+    QByteArray value(const QByteArray &key);
+    void insert(const QByteArray &key, const QByteArray &value);
+    bool clear();
+
+private:
+    LocalCache(const QByteArray &name);
+    QString cachePath(const QByteArray &key) const;
+    bool isCached(const QString &path);
+    qint64 expire();
+#ifndef QT_NO_DEBUG_OUTPUT
+    void debugStats();
+#endif
+
+    QByteArray name;
+    QString directory;
+    uint maxSeconds;
+    qint64 maxSize;
+    qint64 size;
+    bool expiring;
+    uint insertCount;
+    struct QueueItem {
+        QByteArray key;
+        QByteArray value;
+    };
+    QVector<QueueItem> insertQueue;
+
+#ifndef QT_NO_DEBUG_OUTPUT
+    uint hits;
+    uint misses;
+#endif
+};
+
+#endif // LOCALCACHE_H
diff --git a/src/http/src/throttledhttp.cpp b/src/http/src/throttledhttp.cpp
new file mode 100644 (file)
index 0000000..1438a3a
--- /dev/null
@@ -0,0 +1,58 @@
+#include "throttledhttp.h"
+
+namespace {
+
+QElapsedTimer initElapsedTimer() {
+    QElapsedTimer timer;
+    timer.start();
+    return timer;
+}
+}
+
+ThrottledHttp::ThrottledHttp(Http &http) : http(http), elapsedTimer(initElapsedTimer()) {}
+
+QObject *ThrottledHttp::request(const HttpRequest &req) {
+    return new ThrottledHttpReply(http, req, milliseconds, elapsedTimer);
+}
+
+ThrottledHttpReply::ThrottledHttpReply(Http &http,
+                                       const HttpRequest &req,
+                                       int milliseconds,
+                                       QElapsedTimer &elapsedTimer)
+    : http(http), req(req), milliseconds(milliseconds), elapsedTimer(elapsedTimer), timer(0) {
+    checkElapsed();
+}
+
+void ThrottledHttpReply::checkElapsed() {
+    /*
+    static QMutex mutex;
+    QMutexLocker locker(&mutex);
+    */
+
+    const qint64 elapsedSinceLastRequest = elapsedTimer.elapsed();
+    if (elapsedSinceLastRequest < milliseconds) {
+        if (!timer) {
+            timer = new QTimer(this);
+            timer->setSingleShot(true);
+            timer->setTimerType(Qt::PreciseTimer);
+            connect(timer, SIGNAL(timeout()), SLOT(checkElapsed()));
+        }
+        qDebug() << "Throttling" << req.url
+                 << QString("%1ms").arg(milliseconds - elapsedSinceLastRequest);
+        timer->setInterval(milliseconds - elapsedSinceLastRequest);
+        timer->start();
+        return;
+    }
+    elapsedTimer.start();
+    doRequest();
+}
+
+void ThrottledHttpReply::doRequest() {
+    QObject *reply = http.request(req);
+    connect(reply, SIGNAL(data(QByteArray)), SIGNAL(data(QByteArray)));
+    connect(reply, SIGNAL(error(QString)), SIGNAL(error(QString)));
+    connect(reply, SIGNAL(finished(HttpReply)), SIGNAL(finished(HttpReply)));
+
+    // this will cause the deletion of this object once the request is finished
+    setParent(reply);
+}
diff --git a/src/http/src/throttledhttp.h b/src/http/src/throttledhttp.h
new file mode 100644 (file)
index 0000000..4173b37
--- /dev/null
@@ -0,0 +1,44 @@
+#ifndef THROTTLEDHTTP_H
+#define THROTTLEDHTTP_H
+
+#include "http.h"
+#include <QtCore>
+#include <QtNetwork>
+
+class ThrottledHttp : public Http {
+public:
+    ThrottledHttp(Http &http = Http::instance());
+    void setMilliseconds(int milliseconds) { this->milliseconds = milliseconds; }
+    QObject *request(const HttpRequest &req);
+
+private:
+    Http &http;
+    int milliseconds;
+    QElapsedTimer elapsedTimer;
+};
+
+class ThrottledHttpReply : public HttpReply {
+    Q_OBJECT
+
+public:
+    ThrottledHttpReply(Http &http,
+                       const HttpRequest &req,
+                       int milliseconds,
+                       QElapsedTimer &elapsedTimer);
+    QUrl url() const { return req.url; }
+    int statusCode() const { return 200; }
+    QByteArray body() const { return QByteArray(); }
+
+private slots:
+    void checkElapsed();
+
+private:
+    void doRequest();
+    Http &http;
+    HttpRequest req;
+    int milliseconds;
+    QElapsedTimer &elapsedTimer;
+    QTimer *timer;
+};
+
+#endif // THROTTLEDHTTP_H
diff --git a/src/httputils.cpp b/src/httputils.cpp
new file mode 100644 (file)
index 0000000..fe007cb
--- /dev/null
@@ -0,0 +1,60 @@
+#include "httputils.h"
+#include "constants.h"
+#include "http.h"
+#include "throttledhttp.h"
+#include "cachedhttp.h"
+#include "localcache.h"
+
+Http &HttpUtils::notCached() {
+    static Http *h = [] {
+        Http *http = new Http;
+        http->addRequestHeader("User-Agent", userAgent());
+
+        return http;
+    }();
+    return *h;
+}
+
+Http &HttpUtils::cached() {
+    static Http *h = [] {
+        Http *http = new Http;
+        http->addRequestHeader("User-Agent", userAgent());
+
+        CachedHttp *cachedHttp = new CachedHttp(*http, "http");
+
+        return cachedHttp;
+    }();
+    return *h;
+}
+
+Http &HttpUtils::yt() {
+    static Http *h = [] {
+        Http *http = new Http;
+        http->addRequestHeader("User-Agent", stealthUserAgent());
+
+        CachedHttp *cachedHttp = new CachedHttp(*http, "yt");
+        cachedHttp->setMaxSeconds(3600);
+
+        return cachedHttp;
+    }();
+    return *h;
+}
+
+void HttpUtils::clearCaches() {
+    LocalCache::instance("yt")->clear();
+    LocalCache::instance("http")->clear();
+}
+
+const QByteArray &HttpUtils::userAgent() {
+    static const QByteArray ua = [] {
+        return QString(QLatin1String(Constants::NAME)
+                       + QLatin1Char('/') + QLatin1String(Constants::VERSION)
+                       + QLatin1String(" ( ") + Constants::WEBSITE + QLatin1String(" )")).toUtf8();
+    }();
+    return ua;
+}
+
+const QByteArray &HttpUtils::stealthUserAgent() {
+    static const QByteArray ua = "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.95 Safari/537.36";
+    return ua;
+}
diff --git a/src/httputils.h b/src/httputils.h
new file mode 100644 (file)
index 0000000..1b6cbb6
--- /dev/null
@@ -0,0 +1,24 @@
+#ifndef HTTPUTILS_H
+#define HTTPUTILS_H
+
+#include <QtCore>
+
+class Http;
+
+class HttpUtils {
+
+public:
+    static Http &notCached();
+    static Http &cached();
+    static Http &yt();
+    static void clearCaches();
+
+    static const QByteArray &userAgent();
+    static const QByteArray &stealthUserAgent();
+
+private:
+    HttpUtils() { }
+
+};
+
+#endif // HTTPUTILS_H
index b975411159ff0ef638b3d557c6086363e969c778..b09d400b2e4e024079ec776900d2f3f88586d578 100644 (file)
@@ -20,39 +20,55 @@ $END_LICENSE */
 
 #include "iconutils.h"
 #include <QAction>
+#include "mainwindow.h"
 
 QIcon IconUtils::fromTheme(const QString &name) {
     const QLatin1String symbolic("-symbolic");
     if (name.endsWith(symbolic)) return QIcon::fromTheme(name);
-    QIcon icon;
-    icon = QIcon::fromTheme(name + symbolic);
+    QIcon icon = QIcon::fromTheme(name + symbolic);
     if (icon.isNull()) return QIcon::fromTheme(name);
     return icon;
 }
 
 QIcon IconUtils::fromResources(const QString &name) {
-    QIcon icon = QIcon(QString(":/images/%1.png").arg(name));
+    QLatin1String path(":/images/");
+    QLatin1String ext(".png");
+    const QString pathAndName = path + name;
+    QIcon icon = QIcon(pathAndName + ext);
     if (!icon.isNull()) {
-        icon.addPixmap(IconUtils::pixmap(QString(":/images/%1_active.png").arg(name)), QIcon::Active);
-        icon.addPixmap(IconUtils::pixmap(QString(":/images/%1_selected.png").arg(name)), QIcon::Selected);
-        icon.addPixmap(IconUtils::pixmap(QString(":/images/%1_disabled.png").arg(name)), QIcon::Disabled);
+        QLatin1String active("_active");
+        QLatin1String selected("_selected");
+        QLatin1String disabled("_disabled");
+        QLatin1String checked("_checked");
+        QLatin1String twoX("@2x");
+
+        icon.addPixmap(QPixmap(pathAndName + active + ext), QIcon::Active);
+        icon.addPixmap(QPixmap(pathAndName + selected + ext), QIcon::Selected);
+        icon.addPixmap(QPixmap(pathAndName + disabled + ext), QIcon::Disabled);
+        icon.addPixmap(QPixmap(pathAndName + checked + ext), QIcon::Normal, QIcon::On);
+
+        const QString twoXAndExt = twoX + ext;
+        icon.addPixmap(QPixmap(pathAndName + active + twoXAndExt), QIcon::Active);
+        icon.addPixmap(QPixmap(pathAndName + selected + twoXAndExt), QIcon::Selected);
+        icon.addPixmap(QPixmap(pathAndName + disabled + twoXAndExt), QIcon::Disabled);
+        icon.addPixmap(QPixmap(pathAndName + checked + twoXAndExt), QIcon::Normal, QIcon::On);
     }
     return icon;
 }
 
 QIcon IconUtils::icon(const QString &name) {
-#if defined(APP_MAC) || defined(APP_WIN)
-    return fromResources(name);
-#else
+#ifdef APP_LINUX
     QIcon icon = fromTheme(name);
     if (icon.isNull()) icon = fromResources(name);
     return icon;
+#else
+    return fromResources(name);
 #endif
 }
 
 QIcon IconUtils::icon(const QStringList &names) {
     QIcon icon;
-    foreach (const QString &name, names) {
+    for (const QString &name : names) {
         icon = IconUtils::icon(name);
         if (!icon.availableSizes().isEmpty()) break;
     }
@@ -63,7 +79,7 @@ QIcon IconUtils::tintedIcon(const QString &name, const QColor &color, QList<QSiz
     QIcon i = IconUtils::icon(name);
     QIcon t;
     if (sizes.isEmpty()) sizes = i.availableSizes();
-    foreach (const QSize &size, sizes) {
+    for (const QSize &size : sizes) {
         QPixmap pixmap = i.pixmap(size);
         QImage tintedImage = tinted(pixmap.toImage(), color);
         t.addPixmap(QPixmap::fromImage(tintedImage));
@@ -106,23 +122,33 @@ void IconUtils::setupAction(QAction *action) {
     // show keyboard shortcuts in the status bar
     if (!action->shortcut().isEmpty())
         action->setStatusTip(action->statusTip() +
-                             " (" +
+                             QLatin1String(" (") +
                              action->shortcut().toString(QKeySequence::NativeText) +
-                             ")");
+                             QLatin1String(")"));
 }
 
 QPixmap IconUtils::pixmap(const QString &name) {
     // Check if a "@2x" file exists
-    QString fileName = name;
-    if (qApp->devicePixelRatio() > 1.0) {
-        int dotIndex = fileName.lastIndexOf(QLatin1Char('.'));
+    const qreal pixelRatio = IconUtils::pixelRatio();
+    if (pixelRatio > 1.0) {
+        int dotIndex = name.lastIndexOf(QLatin1Char('.'));
         if (dotIndex != -1) {
-            QString at2xfileName = fileName;
-            at2xfileName.insert(dotIndex, QStringLiteral("@2x"));
-            if (QFile::exists(at2xfileName))
-                fileName = at2xfileName;
+            QString at2xfileName = name;
+            at2xfileName.insert(dotIndex, QLatin1String("@2x"));
+            if (QFile::exists(at2xfileName)) {
+                QPixmap pixmap(at2xfileName);
+                pixmap.setDevicePixelRatio(pixelRatio);
+                return pixmap;
+            }
         }
     }
+    return QPixmap(name);
+}
 
-    return QPixmap(fileName);
+qreal IconUtils::pixelRatio() {
+#if QT_VERSION >= 0x050600
+    return MainWindow::instance()->devicePixelRatioF();
+#else
+    return MainWindow::instance()->devicePixelRatio();
+#endif
 }
index 851841268c65a413fc4cd0c822d8b2f495a325c6..2fbe0b2340c891273343020563d34e6be8c59007 100644 (file)
@@ -38,6 +38,7 @@ public:
     // HiDPI stuff
     static QPixmap pixmap(const QString &name);
     static qreal maxSupportedPixelRatio() { return 2.0; }
+    static qreal pixelRatio();
 
 private:
     IconUtils() { }
diff --git a/src/idle/idle.pri b/src/idle/idle.pri
new file mode 100644 (file)
index 0000000..a70e586
--- /dev/null
@@ -0,0 +1,13 @@
+INCLUDEPATH += $$PWD/src
+DEPENDPATH += $$PWD/src
+
+HEADERS += $$PWD/src/idle.h
+
+mac {
+    SOURCES += $$PWD/src/idle_mac.cpp
+} else:win32 {
+    SOURCES += $$PWD/src/idle_win.cpp
+} else {
+    QT *= dbus
+    SOURCES += $$PWD/src/idle_linux.cpp
+}
diff --git a/src/idle/src/idle.h b/src/idle/src/idle.h
new file mode 100644 (file)
index 0000000..6a004af
--- /dev/null
@@ -0,0 +1,19 @@
+#ifndef IDLE_H
+#define IDLE_H
+
+#include <QString>
+
+class Idle {
+
+public:
+    static bool preventDisplaySleep(const QString &reason);
+    static bool allowDisplaySleep();
+    static QString displayErrorMessage();
+
+    static bool preventSystemSleep(const QString &reason);
+    static bool allowSystemSleep();
+    static QString systemErrorMessage();
+
+};
+
+#endif // IDLE_H
diff --git a/src/idle/src/idle_linux.cpp b/src/idle/src/idle_linux.cpp
new file mode 100644 (file)
index 0000000..80c9e8c
--- /dev/null
@@ -0,0 +1,65 @@
+#include "idle.h"
+
+#include <QtCore>
+#include <QDBusInterface>
+#include <QDBusReply>
+#include <QDBusConnectionInterface>
+
+namespace {
+
+const char *fdDisplayService = "org.freedesktop.ScreenSaver";
+const char *fdDisplayPath = "/org/freedesktop/ScreenSaver";
+const char *fdDisplayInterface = fdDisplayService;
+
+const char *gnomeSystemService = "org.gnome.SessionManager";
+const char *gnomeSystemPath = "/org/gnome/SessionManager";
+const char *gnomeSystemInterface = gnomeSystemService;
+
+quint32 cookie;
+QString errorMessage;
+
+bool handleReply(const QDBusReply<quint32> &reply) {
+    if (reply.isValid()) {
+        cookie = reply.value();
+        qDebug() << "Success!" << cookie;
+        errorMessage.clear();
+        return true;
+    }
+    errorMessage = reply.error().message();
+    return false;
+}
+
+}
+
+bool Idle::preventDisplaySleep(const QString &reason) {
+    QDBusInterface dbus(fdDisplayService, fdDisplayPath, fdDisplayInterface);
+    QDBusReply<quint32> reply = dbus.call("Inhibit", QCoreApplication::applicationName(), reason);
+    return handleReply(reply);
+}
+
+bool Idle::allowDisplaySleep() {
+    QDBusInterface dbus(fdDisplayService, fdDisplayPath, fdDisplayInterface);
+    dbus.call("UnInhibit", cookie);
+    return true;
+}
+
+QString Idle::displayErrorMessage() {
+    return errorMessage;
+}
+
+bool Idle::preventSystemSleep(const QString &reason) {
+    QDBusInterface dbus(gnomeSystemService, gnomeSystemPath, gnomeSystemInterface);
+    QDBusReply<quint32> reply = dbus.call("Inhibit", QCoreApplication::applicationName(), reason);
+    return handleReply(reply);
+}
+
+bool Idle::allowSystemSleep() {
+    QDBusInterface dbus(gnomeSystemService, gnomeSystemPath, gnomeSystemInterface);
+    dbus.call("UnInhibit", cookie);
+    return true;
+}
+
+QString Idle::systemErrorMessage() {
+    return errorMessage;
+}
+
diff --git a/src/idle/src/idle_mac.cpp b/src/idle/src/idle_mac.cpp
new file mode 100644 (file)
index 0000000..315cdef
--- /dev/null
@@ -0,0 +1,45 @@
+#include "idle.h"
+
+#include <IOKit/pwr_mgt/IOPMLib.h>
+
+namespace {
+
+IOPMAssertionID displayAssertionID = 0;
+IOReturn displayRes = 0;
+
+IOPMAssertionID systemAssertionID = 0;
+IOReturn systemRes = 0;
+
+}
+
+bool Idle::preventDisplaySleep(const QString &reason) {
+    displayRes = IOPMAssertionCreateWithName(kIOPMAssertionTypePreventUserIdleDisplaySleep,
+                                        kIOPMAssertionLevelOn, reason.toCFString(), &displayAssertionID);
+    return displayRes == kIOReturnSuccess;
+}
+
+bool Idle::allowDisplaySleep() {
+    displayRes = IOPMAssertionRelease(displayAssertionID);
+    return displayRes == kIOReturnSuccess;
+}
+
+QString Idle::displayErrorMessage() {
+    return QString();
+    // return QString::fromUtf8(IOService::stringFromReturn(displayRes));
+}
+
+bool Idle::preventSystemSleep(const QString &reason) {
+    systemRes = IOPMAssertionCreateWithName(kIOPMAssertionTypePreventUserIdleSystemSleep,
+                                        kIOPMAssertionLevelOn, reason.toCFString(), &systemAssertionID);
+    return systemRes == kIOReturnSuccess;
+}
+
+bool Idle::allowSystemSleep() {
+    systemRes = IOPMAssertionRelease(systemAssertionID);
+    return systemRes == kIOReturnSuccess;
+}
+
+QString Idle::systemErrorMessage() {
+    return QString();
+    // return QString::fromUtf8(IOService::stringFromReturn(systemRes));
+}
diff --git a/src/idle/src/idle_win.cpp b/src/idle/src/idle_win.cpp
new file mode 100644 (file)
index 0000000..2f189ef
--- /dev/null
@@ -0,0 +1,35 @@
+#include "idle.h"
+
+#include "windows.h"
+
+namespace {
+EXECUTION_STATE executionState;
+}
+
+bool Idle::preventDisplaySleep(const QString &reason) {
+    executionState = SetThreadExecutionState(ES_CONTINUOUS | ES_DISPLAY_REQUIRED);
+    return true;
+}
+
+bool Idle::allowDisplaySleep() {
+    SetThreadExecutionState(ES_CONTINUOUS | executionState);
+    return true;
+}
+
+QString Idle::displayErrorMessage() {
+    return QString();
+}
+
+bool Idle::preventSystemSleep(const QString &reason) {
+    executionState = SetThreadExecutionState(ES_CONTINUOUS | ES_SYSTEM_REQUIRED);
+    return true;
+}
+
+bool Idle::allowSystemSleep() {
+    SetThreadExecutionState(ES_CONTINUOUS | executionState);
+    return true;
+}
+
+QString Idle::systemErrorMessage() {
+    return QString();
+}
index 67077ef720c83212b7c59213cbc2300fc15adee5..e63f14efbc25b7338f0bc4294f25bb915a7b3756 100644 (file)
@@ -19,14 +19,10 @@ along with Minitube.  If not, see <http://www.gnu.org/licenses/>.
 $END_LICENSE */
 
 #include "jsfunctions.h"
-#include "networkaccess.h"
+#include "http.h"
 #include "constants.h"
-#include "compatibility/qurlqueryhelper.h"
-#include "compatibility/pathsservice.h"
 
-namespace The {
-NetworkAccess* http();
-}
+#include <QJSValueIterator>
 
 JsFunctions* JsFunctions::instance() {
     static JsFunctions *i = new JsFunctions(QLatin1String(Constants::WEBSITE) + "-ws/functions.js");
@@ -55,7 +51,7 @@ void JsFunctions::parseJs(const QString &js) {
     if (js.isEmpty()) return;
     // qDebug() << "Parsing" << js;
     if (engine) delete engine;
-    engine = new QScriptEngine(this);
+    engine = new QJSEngine(this);
     engine->evaluate(js);
     emit ready();
 }
@@ -64,20 +60,22 @@ QString JsFunctions::jsFilename() {
     return QFileInfo(url).fileName();
 }
 
+QString JsFunctions::jsDir() {
+    return QStandardPaths::writableLocation(QStandardPaths::DataLocation);
+}
+
 QString JsFunctions::jsPath() {
-    return Paths::getDataLocation() + "/" + jsFilename();
+    return jsDir() + QLatin1String("/") + jsFilename();
 }
 
 void JsFunctions::loadJs() {
     QUrl url(this->url);
-    {
-        QUrlQueryHelper urlHelper(url);
-        urlHelper.addQueryItem("v", Constants::VERSION);
-    }
-
-    NetworkReply* reply = The::http()->get(url);
+    QUrlQuery q;
+    q.addQueryItem("v", Constants::VERSION);
+    url.setQuery(q);
+    QObject* reply = Http::instance().get(url);
     connect(reply, SIGNAL(data(QByteArray)), SLOT(gotJs(QByteArray)));
-    connect(reply, SIGNAL(error(QNetworkReply*)), SLOT(errorJs(QNetworkReply*)));
+    connect(reply, SIGNAL(error(QString)), SLOT(errorJs(QString)));
 }
 
 void JsFunctions::gotJs(const QByteArray &bytes) {
@@ -85,10 +83,7 @@ void JsFunctions::gotJs(const QByteArray &bytes) {
         qWarning() << "Got empty js";
         return;
     }
-    if (!QDir().mkpath(Paths::getDataLocation())) {
-      qCritical() << "Failed to create" << Paths::getDataLocation();
-      return;
-    }
+    QDir().mkpath(jsDir());
     QFile file(jsPath());
     if (!file.open(QIODevice::WriteOnly)) {
         qWarning() << "Cannot write" << file.errorString() << file.fileName();
@@ -99,14 +94,13 @@ void JsFunctions::gotJs(const QByteArray &bytes) {
     parseJs(QString::fromUtf8(bytes));
 }
 
-void JsFunctions::errorJs(QNetworkReply *reply) {
-    qWarning() << "Cannot get" << jsFilename() << reply->attribute(QNetworkRequest::HttpStatusCodeAttribute).toInt()
-               << reply->url().toString() << reply->errorString();
+void JsFunctions::errorJs(const QString &message) {
+    qWarning() << message;
 }
 
-QScriptValue JsFunctions::evaluate(const QString &js) {
+QJSValue JsFunctions::evaluate(const QString &js) {
     if (!engine) return QString();
-    QScriptValue value = engine->evaluate(js);
+    QJSValue value = engine->evaluate(js);
     if (value.isUndefined())
         qWarning() << "Undefined result for" << js;
     if (value.isError())
@@ -121,12 +115,12 @@ QString JsFunctions::string(const QString &js) {
 
 QStringList JsFunctions::stringArray(const QString &js) {
     QStringList items;
-    QScriptValue array = evaluate(js);
+    QJSValue array = evaluate(js);
     if (!array.isArray()) return items;
-    QScriptValueIterator it(array);
+    QJSValueIterator it(array);
     while (it.hasNext()) {
         it.next();
-        QScriptValue value = it.value();
+        QJSValue value = it.value();
         if (!value.isString()) continue;
         items << value.toString();
     }
index 174e6ff4506ac278cbef48ec99bc0cd07be8a67f..3cb0d457454d84e3812a1f880dd9dcfd5341d3f1 100644 (file)
@@ -22,8 +22,9 @@ $END_LICENSE */
 #define JSFUNCTIONS_H
 
 #include <QtCore>
-#include <QtScript>
 #include <QtNetwork>
+#include <QJSEngine>
+#include <QJSValue>
 
 class JsFunctions : public QObject {
 
@@ -32,7 +33,7 @@ class JsFunctions : public QObject {
 public:
     static JsFunctions* instance();
     JsFunctions(const QString &url, QObject *parent = 0);
-    QScriptValue evaluate(const QString &js);
+    QJSValue evaluate(const QString &js);
     QString string(const QString &js);
     QStringList stringArray(const QString &js);
 
@@ -54,16 +55,17 @@ signals:
 
 private slots:
     void gotJs(const QByteArray &bytes);
-    void errorJs(QNetworkReply *reply);
+    void errorJs(const QString &message);
 
 private:
     QString jsFilename();
+    QString jsDir();
     QString jsPath();
     void loadJs();
     void parseJs(const QString &js);
 
     QString url;
-    QScriptEngine *engine;
+    QJSEngine *engine;
 };
 
 #endif // JSFUNCTIONS_H
index 0f030d983e467f0ac100cd90f29e08632f20207d..13e7cb6c882e68c6f175e772ef4fa67a54f127bc 100644 (file)
@@ -19,95 +19,75 @@ along with Minitube.  If not, see <http://www.gnu.org/licenses/>.
 $END_LICENSE */
 
 #include "loadingwidget.h"
+#include "fontutils.h"
 
 LoadingWidget::LoadingWidget(QWidget *parent) : QWidget(parent) {
-
     QPalette p = palette();
-    p.setBrush(backgroundRole(), Qt::black);
-    p.setBrush(QPalette::Text, Qt::white);
+    p.setColor(QPalette::Window, Qt::black);
+    p.setColor(QPalette::WindowText, Qt::white);
+    p.setColor(QPalette::Base, Qt::black);
+    p.setColor(QPalette::Text, Qt::white);
     setPalette(p);
-
     setAutoFillBackground(true);
 
     QBoxLayout *layout = new QVBoxLayout(this);
 
-    titleLabel = new QLabel(this);
-    titleLabel->setAlignment(Qt::AlignHCenter | Qt::AlignBottom);
+    titleLabel = new QLabel();
     titleLabel->setPalette(p);
-    titleLabel->setForegroundRole(QPalette::Text);
+    titleLabel->setAlignment(Qt::AlignHCenter | Qt::AlignBottom);
     titleLabel->setWordWrap(true);
     titleLabel->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding);
+    titleLabel->setTextFormat(Qt::RichText);
+    titleLabel->setFont(FontUtils::light(titleLabel->font().pointSize()));
     layout->addWidget(titleLabel);
 
-    descriptionLabel = new QLabel(this);
-    descriptionLabel->setAlignment(Qt::AlignHCenter | Qt::AlignTop);
+    descriptionLabel = new QLabel();
     descriptionLabel->setPalette(p);
-    descriptionLabel->setForegroundRole(QPalette::Text);
+    descriptionLabel->setAlignment(Qt::AlignHCenter | Qt::AlignTop);
     descriptionLabel->setWordWrap(true);
     descriptionLabel->setSizePolicy(QSizePolicy::Ignored, QSizePolicy::Expanding);
     descriptionLabel->setTextFormat(Qt::RichText);
     descriptionLabel->setOpenExternalLinks(true);
     layout->addWidget(descriptionLabel);
 
-    progressBar = new QProgressBar(this);
-    progressBar->setAutoFillBackground(false);
-    progressBar->setBackgroundRole(QPalette::Window);
-    progressBar->setPalette(p);
-    // progressBar->hide();
-    progressBar->setStyleSheet("QProgressBar {max-height:3px; background:black; border:0} QProgressBar::chunk {background:white}");
+    progressBar = new QProgressBar();
+    progressBar->setStyleSheet("QProgressBar {max-height:3px; background:black; border:0} "
+                               "QProgressBar::chunk {background:white}");
     progressBar->setTextVisible(false);
     layout->addWidget(progressBar);
-
-    setMouseTracking(true);
 }
 
 void LoadingWidget::setVideo(Video *video) {
+    adjustFontSize();
 
-    QFont titleFont;
-#ifdef APP_MAC
-    titleFont.setFamily("Helvetica Neue");
-    titleFont.setStyleName("Thin");
-#elif APP_WIN
-    titleFont.setFamily("Segoe UI Light");
-    titleFont.setStyleName("Light");
-#else
-    titleFont.setStyleName("Light");
-#endif
-    int smallerDimension = qMin(height(), width());
-    titleFont.setPixelSize(smallerDimension / 12);
-    QFontMetrics fm(titleFont);
-    int textHeightInPixels = fm.height();
-    int spacing = textHeightInPixels / 2;
-    layout()->setSpacing(spacing);
-    layout()->setMargin(spacing);
-
-    QString title = video->title();
+    QString title = video->getTitle();
     // enhance legibility by splitting the title
-    title.replace(QLatin1String(" - "), QLatin1String("<p>"));
-    title.replace(QLatin1String(" | "), QLatin1String("<p>"));
-    title.replace(QLatin1String(" — "), QLatin1String("<p>"));
+    static const QLatin1String p("<p>");
+    title.replace(QLatin1String(" - "), p);
+    title.replace(QLatin1String(" | "), p);
+    title.replace(QLatin1String(" — "), p);
+    title.replace(QLatin1String(": "), p);
+    title.replace(QLatin1String("; "), p);
     title.replace(QLatin1String("] "), QLatin1String("]<p>"));
     title.replace(QLatin1String(" ["), QLatin1String("<p>["));
     title.replace(QLatin1String(" ("), QLatin1String("<p>("));
     title.replace(QLatin1String(") "), QLatin1String(")<p>"));
     titleLabel->setText(title);
     titleLabel->setVisible(window()->height() > 100);
-    titleLabel->setFont(titleFont);
 
-    static const int maxDescLength = 256;
-    QString videoDesc = video->description();
+    const int maxDescLength = 400;
+
+    QString videoDesc = video->getDescription();
     if (videoDesc.length() > maxDescLength) {
-        videoDesc.truncate(maxDescLength-1);
+        videoDesc.truncate(maxDescLength);
         videoDesc = videoDesc.trimmed();
         videoDesc.append("…");
     } else if (videoDesc.endsWith(QLatin1String(" ..."))) {
         videoDesc = videoDesc.left(videoDesc.length() - 4);
         videoDesc.append("…");
     }
-    videoDesc.replace(QRegExp("(https?://\\S+)"), "<a style='color:white' href=\"\\1\">\\1</a>");
-    QFont descFont(titleFont);
-    descFont.setPixelSize(descFont.pixelSize() / 2);
-    descriptionLabel->setFont(descFont);
+    static const QRegExp linkRE("(https?://\\S+)");
+    videoDesc.replace(linkRE, QStringLiteral("<a style='color:white' href=\"\\1\">\\1</a>"));
     descriptionLabel->setText(videoDesc);
     bool hiddenDesc = height() < 400;
     if (hiddenDesc)
@@ -116,7 +96,6 @@ void LoadingWidget::setVideo(Video *video) {
         titleLabel->setAlignment(Qt::AlignHCenter | Qt::AlignBottom);
     descriptionLabel->setVisible(!hiddenDesc);
 
-    // progressBar->hide();
     progressBar->setValue(0);
     startTime.start();
 }
@@ -124,31 +103,36 @@ void LoadingWidget::setVideo(Video *video) {
 void LoadingWidget::setError(const QString &message) {
     titleLabel->setText(tr("Error"));
     descriptionLabel->setText(message);
-    // progressBar->hide();
     progressBar->setValue(0);
 }
 
 void LoadingWidget::bufferStatus(int percent) {
-    // qDebug() << percent;
-
-    /*
-    if (progressBar->isHidden() && percent > 0) {
-        progressBar->show();
-        QPropertyAnimation *animation = new QPropertyAnimation(progressBar, "opacity");
-        animation->setDuration(1000);
-        animation->setStartValue(0.0);
-        animation->setEndValue(1.0);
-        animation->start();
-    }*/
-    // progressBar->setShown(percent > 0);
-    if (startTime.elapsed() < 1000) return;
-    if (progressBar->value() == 0 && percent > 80) return;
-    progressBar->setValue(percent);
+    if (startTime.elapsed() > 2000 && percent > progressBar->value())
+        progressBar->setValue(percent);
+}
+
+void LoadingWidget::adjustFontSize() {
+    QFont f = titleLabel->font();
+    int smallerDimension = qMin(height(), width());
+    f.setPixelSize(smallerDimension / 12);
+    QFontMetrics fm(f);
+    int textHeightInPixels = fm.height();
+    int spacing = textHeightInPixels / 2;
+    layout()->setSpacing(spacing);
+    layout()->setMargin(spacing);
+    titleLabel->setFont(f);
+
+    f.setPixelSize(f.pixelSize() / 2);
+    descriptionLabel->setFont(f);
 }
 
 void LoadingWidget::clear() {
     titleLabel->clear();
     descriptionLabel->clear();
-    // progressBar->hide();
     progressBar->setValue(0);
 }
+
+void LoadingWidget::resizeEvent(QResizeEvent *e) {
+    Q_UNUSED(e);
+    if (isVisible()) adjustFontSize();
+}
index 21f0f19d8e6f884d538c7073629dc0fa3bbcbf8c..ca19c06490abe743badf572c52ffe081ca2041d4 100644 (file)
@@ -21,10 +21,8 @@ $END_LICENSE */
 #ifndef LOADINGWIDGET_H
 #define LOADINGWIDGET_H
 
-#include <QtGui>
-#if QT_VERSION >= 0x050000
 #include <QtWidgets>
-#endif
+
 #include "video.h"
 
 class LoadingWidget : public QWidget {
@@ -37,10 +35,15 @@ public:
     void setError(const QString &message);
     void clear();
 
+protected:
+    void resizeEvent(QResizeEvent *e);
+
 public slots:
     void bufferStatus(int);
 
 private:
+    void adjustFontSize();
+
     QLabel *titleLabel;
     QLabel *descriptionLabel;
     QProgressBar *progressBar;
index b462138da9382eaa86cb38336696e3d9af672b9a..3a0873f03a94e6eb7c2695a961db47e9b8e56cd2 100644 (file)
@@ -18,10 +18,9 @@ along with Minitube.  If not, see <http://www.gnu.org/licenses/>.
 
 $END_LICENSE */
 
-#include <QtGui>
-#if QT_VERSION >= 0x050000
 #include <QtWidgets>
-#endif
+#include <QtNetwork>
+
 #include <qtsingleapplication.h>
 #include "constants.h"
 #include "mainwindow.h"
@@ -62,10 +61,15 @@ void showWindow(QtSingleApplication &app, const QString &dataDir) {
 }
 
 int main(int argc, char **argv) {
+#ifndef Q_NO_DEBUG_OUTPUT
+    qSetMessagePattern("[%{function}] %{message}");
+#endif
+
+    // Seed random number generator
+    qsrand(QDateTime::currentDateTime().toTime_t());
 
 #ifdef Q_OS_MAC
     mac::MacMain();
-    // QFont::insertSubstitution(".Helvetica Neue DeskInterface", "Helvetica Neue");
 #endif
 
     QtSingleApplication app(argc, argv);
@@ -96,7 +100,7 @@ int main(int argc, char **argv) {
 
     // qt translations
     QTranslator qtTranslator;
-    qtTranslator.load("qt_" + QLocale::system().name(),
+    qtTranslator.load(QLatin1String("qt_") + QLocale::system().name(),
                       QLibraryInfo::location(QLibraryInfo::TranslationsPath));
     app.installTranslator(&qtTranslator);
 
@@ -107,26 +111,19 @@ int main(int argc, char **argv) {
     QString dataDir = "";
 #endif
 #ifdef APP_MAC
-    QString localeDir = qApp->applicationDirPath() + "/../Resources/locale";
+    QString localeDir = qApp->applicationDirPath() + QLatin1String("/../Resources/locale");
 #else
-    QString localeDir = qApp->applicationDirPath() + "/locale";
+    QString localeDir = qApp->applicationDirPath() + QLatin1String("/locale");
 #endif
     if (!QDir(localeDir).exists()) {
-        localeDir = dataDir + "/locale";
+        localeDir = dataDir + QLatin1String("/locale");
     }
     // qDebug() << "Using locale dir" << localeDir << locale;
     QTranslator translator;
     translator.load(QLocale::system(), QString(), QString(), localeDir);
     app.installTranslator(&translator);
-#if QT_VERSION < 0x050000
-    QTextCodec::setCodecForTr(QTextCodec::codecForName("utf8"));
-#endif
-
-    // Seed random number generator
-    qsrand(QDateTime::currentDateTime().toTime_t());
 
-    // all string literals are UTF-8
-    // QTextCodec::setCodecForCStrings(QTextCodec::codecForName("UTF-8"));
+    QNetworkProxyFactory::setUseSystemConfiguration(true);
 
     showWindow(app, dataDir);
 
index 437571638bc72698518282238b8f8b3b42d1ebc0..3fcf2fe8684ef4ec2f056d4144a9a14a63a46343 100644 (file)
@@ -19,19 +19,22 @@ along with Minitube.  If not, see <http://www.gnu.org/licenses/>.
 $END_LICENSE */
 
 #include "mainwindow.h"
-#include "homeview.h"
-#include "searchview.h"
-#include "mediaview.h"
+
 #include "aboutview.h"
 #include "downloadview.h"
-#include "spacer.h"
+#include "homeview.h"
+#include "mediaview.h"
+#include "regionsview.h"
+#include "searchview.h"
+#include "standardfeedsview.h"
+
 #include "constants.h"
-#include "iconutils.h"
-#include "global.h"
-#include "videodefinition.h"
 #include "fontutils.h"
 #include "globalshortcuts.h"
+#include "iconutils.h"
 #include "searchparams.h"
+#include "spacer.h"
+#include "videodefinition.h"
 #include "videosource.h"
 #include "ytsearch.h"
 #ifdef APP_LINUX
@@ -44,9 +47,9 @@ $END_LICENSE */
 #include "macutils.h"
 #endif
 #include "downloadmanager.h"
-#include "ytsuggester.h"
-#include "updatechecker.h"
 #include "temporary.h"
+#include "updatechecker.h"
+#include "ytsuggester.h"
 #if defined(APP_MAC_SEARCHFIELD) && !defined(APP_MAC_QMACTOOLBAR)
 #include "searchlineedit_mac.h"
 #else
@@ -63,53 +66,44 @@ $END_LICENSE */
 #ifdef APP_ACTIVATION
 #include "activation.h"
 #include "activationview.h"
-#include "activationdialog.h"
 #endif
-#include "ytregions.h"
-#include "regionsview.h"
-#include "standardfeedsview.h"
 #include "channelaggregator.h"
 #include "database.h"
-#include "videoareawidget.h"
+#include "httputils.h"
 #include "jsfunctions.h"
 #include "seekslider.h"
-#ifdef APP_YT3
+#include "sidebarwidget.h"
+#include "toolbarmenu.h"
+#include "videoareawidget.h"
 #include "yt3.h"
-#endif
+#include "ytregions.h"
 
 namespace {
-static MainWindow *singleton = 0;
+static MainWindow *mainWindowInstance;
 }
 
-MainWindowMainWindow::instance() {
-    return singleton;
+MainWindow *MainWindow::instance() {
+    return mainWindowInstance;
 }
 
-MainWindow::MainWindow() :
-    updateChecker(0),
-    aboutView(0),
-    downloadView(0),
-    regionsView(0),
-    mainToolBar(0),
-    #ifdef APP_PHONON
-    mediaObject(0),
-    audioOutput(0),
-    #endif
-    fullscreenFlag(false),
-    m_compact(false),
-    initialized(false) {
-
-    singleton = this;
-
-#ifdef APP_EXTRA
-    Extra::windowSetup(this);
+MainWindow::MainWindow()
+    : updateChecker(0), aboutView(0), downloadView(0), regionsView(0), mainToolBar(0),
+#ifdef APP_PHONON
+      mediaObject(0), audioOutput(0),
 #endif
+      fullScreenActive(false), compactModeActive(false), initialized(false), toolbarMenu(0) {
+
+    mainWindowInstance = this;
 
     // views mechanism
     views = new QStackedWidget();
     views->hide();
     setCentralWidget(views);
 
+#ifdef APP_EXTRA
+    Extra::windowSetup(this);
+#endif
+
     messageLabel = new QLabel();
     messageLabel->setWindowFlags(Qt::ToolTip | Qt::FramelessWindowHint);
     messageLabel->setStyleSheet("padding:5px;border:1px solid #808080;background:palette(window)");
@@ -118,11 +112,10 @@ MainWindow::MainWindow() :
     messageTimer = new QTimer(this);
     messageTimer->setInterval(5000);
     messageTimer->setSingleShot(true);
-    connect(messageTimer, SIGNAL(timeout()), messageLabel, SLOT(hide()));
-    connect(messageTimer, SIGNAL(timeout()), messageLabel, SLOT(clear()));
+    connect(messageTimer, SIGNAL(timeout()), SLOT(hideMessage()));
 
     // views
-    homeView = new HomeView();
+    homeView = new HomeView(this);
     views->addWidget(homeView);
 
     // TODO make this lazy
@@ -134,6 +127,7 @@ MainWindow::MainWindow() :
     createActions();
     createMenus();
     createToolBars();
+    hideToolbar();
     createStatusBar();
 
     // remove that useless menu/toolbar context menu
@@ -154,15 +148,13 @@ MainWindow::MainWindow() :
 
     views->show();
 
-    // show the initial view
-    showHome(false);
-
 #ifdef APP_ACTIVATION
-    if (!Activation::instance().isActivated())
-        showActivationView(false);
+    Activation::instance().initialCheck();
+#else
+    showHome();
 #endif
 
-    QTimer::singleShot(0, this, SLOT(lazyInit()));
+    QTimer::singleShot(100, this, &MainWindow::lazyInit);
 }
 
 void MainWindow::lazyInit() {
@@ -201,34 +193,28 @@ void MainWindow::lazyInit() {
     connect(&shortcuts, SIGNAL(Stop()), this, SLOT(stop()));
     connect(&shortcuts, SIGNAL(Next()), skipAct, SLOT(trigger()));
     connect(&shortcuts, SIGNAL(Previous()), skipBackwardAct, SLOT(trigger()));
-    // connect(&shortcuts, SIGNAL(StopAfter()), The::globalActions()->value("stopafterthis"), SLOT(toggle()));
+    // connect(&shortcuts, SIGNAL(StopAfter()), getAction("stopafterthis"), SLOT(toggle()));
 
     connect(DownloadManager::instance(), SIGNAL(statusMessageChanged(QString)),
             SLOT(updateDownloadMessage(QString)));
-    connect(DownloadManager::instance(), SIGNAL(finished()),
-            SLOT(downloadsFinished()));
+    connect(DownloadManager::instance(), SIGNAL(finished()), SLOT(downloadsFinished()));
 
     setAcceptDrops(true);
 
-    mouseTimer = new QTimer(this);
-    mouseTimer->setInterval(5000);
-    mouseTimer->setSingleShot(true);
-    connect(mouseTimer, SIGNAL(timeout()), SLOT(hideMouse()));
+    fullscreenTimer = new QTimer(this);
+    fullscreenTimer->setInterval(3000);
+    fullscreenTimer->setSingleShot(true);
+    connect(fullscreenTimer, SIGNAL(timeout()), SLOT(hideFullscreenUI()));
 
     JsFunctions::instance();
 
     // Hack to give focus to searchlineedit
-    QMetaObject::invokeMethod(views->currentWidget(), "appear");
-    View* view = qobject_cast<View *> (views->currentWidget());
-    QString desc = view->metadata().value("description").toString();
-    if (!desc.isEmpty()) showMessage(desc);
-
-#ifdef APP_INTEGRITY
-    if (!Extra::integrityCheck()) {
-        deleteLater();
-        return;
+    View *view = qobject_cast<View *>(views->currentWidget());
+    if (view == homeView) {
+        QMetaObject::invokeMethod(views->currentWidget(), "appear");
+        const QString &desc = view->getDescription();
+        if (!desc.isEmpty()) showMessage(desc);
     }
-#endif
 
     ChannelAggregator::instance()->start();
 
@@ -240,89 +226,117 @@ void MainWindow::lazyInit() {
 void MainWindow::changeEvent(QEvent *e) {
 #ifdef APP_MAC
     if (e->type() == QEvent::WindowStateChange) {
-        The::globalActions()->value("minimize")->setEnabled(!isMinimized());
+        getAction("minimize")->setEnabled(!isMinimized());
     }
 #endif
     QMainWindow::changeEvent(e);
 }
 
 bool MainWindow::eventFilter(QObject *obj, QEvent *e) {
+    const QEvent::Type t = e->type();
 
-    if (fullscreenFlag && e->type() == QEvent::MouseMove) {
-        const char *className = obj->metaObject()->className();
-        const bool isHoveringVideo =
-                (className == QLatin1String("QGLWidget")) ||
-                (className == QLatin1String("VideoAreaWidget"));
+#ifndef APP_MAC
+    static bool altPressed = false;
+    if (t == QEvent::KeyRelease && altPressed) {
+        altPressed = false;
+        QKeyEvent *ke = static_cast<QKeyEvent *>(e);
+        if (ke->key() == Qt::Key_Alt) {
+            toggleMenuVisibility();
+            return true;
+        }
+    } else if (t == QEvent::KeyPress) {
+        QKeyEvent *ke = static_cast<QKeyEvent *>(e);
+        altPressed = ke->key() == Qt::Key_Alt;
+    }
+#endif
 
-        // qDebug() << obj << mouseEvent->pos() << isHoveringVideo << mediaView->isPlaylistVisible();
+    if (fullScreenActive && views->currentWidget() == mediaView && t == QEvent::MouseMove &&
+        obj->isWidgetType() && qobject_cast<QWidget *>(obj)->window() == this) {
+        QMouseEvent *mouseEvent = static_cast<QMouseEvent *>(e);
 
-        if (isHoveringVideo) {
-            QMouseEvent *mouseEvent = static_cast<QMouseEvent*> (e);
-            const int x = mouseEvent->pos().x();
+        bool toolBarVisible = mainToolBar && mainToolBar->isVisible();
+        bool sidebarVisible = mediaView->isSidebarVisible();
 
-            if (mediaView->isPlaylistVisible()) {
-                if (x > 5) mediaView->setPlaylistVisible(false);
-            } else {
-                if (x >= 0 && x < 5) mediaView->setPlaylistVisible(true);
+        if (!sidebarVisible && !toolBarVisible) {
+            const int x = mouseEvent->pos().x();
+            if (x >= 0 && x < 5) {
+#ifndef APP_MAC
+                SidebarWidget *sidebar = mediaView->getSidebar();
+                sidebar->resize(sidebar->width(), height());
+#endif
+                mediaView->setSidebarVisibility(true);
+                sidebarVisible = true;
             }
+        }
 
 #ifndef APP_MAC
+        if (!toolBarVisible && !sidebarVisible) {
             const int y = mouseEvent->pos().y();
-            if (mainToolBar->isVisible()) {
-                if (y > 5) mainToolBar->setVisible(false);
-            } else {
-                if (y >= 0 && y < 5) mainToolBar->setVisible(true);
+            if (y >= 0 && y < 5) {
+                mainToolBar->resize(width(), mainToolBar->sizeHint().height());
+                mainToolBar->setVisible(true);
             }
-#endif
-
         }
+#endif
 
         // show the normal cursor
         unsetCursor();
         // then hide it again after a few seconds
-        mouseTimer->start();
+        fullscreenTimer->start();
     }
 
-    if (e->type() == QEvent::ToolTip) {
+    if (t == QEvent::ToolTip) {
         // kill tooltips
         return true;
     }
+
+    if (t == QEvent::Show && obj == toolbarMenu) {
+#ifdef APP_MAC
+        int x = width() - toolbarMenu->sizeHint().width();
+        int y = views->y();
+#else
+        int x = toolbarMenuButton->x() + toolbarMenuButton->width() -
+                toolbarMenu->sizeHint().width();
+        int y = toolbarMenuButton->y() + toolbarMenuButton->height();
+#endif
+        QPoint p(x, y);
+        toolbarMenu->move(mapToGlobal(p));
+    }
+
     // standard event processing
     return QMainWindow::eventFilter(obj, e);
 }
 
 void MainWindow::createActions() {
-
-    QHash<QString, QAction*> *actions = The::globalActions();
-
     stopAct = new QAction(IconUtils::icon("media-playback-stop"), tr("&Stop"), this);
     stopAct->setStatusTip(tr("Stop playback and go back to the search view"));
-    stopAct->setShortcuts(QList<QKeySequence>() << QKeySequence(Qt::Key_Escape) << QKeySequence(Qt::Key_MediaStop));
+    stopAct->setShortcuts(QList<QKeySequence>() << QKeySequence(Qt::Key_Escape)
+                                                << QKeySequence(Qt::Key_MediaStop));
     stopAct->setEnabled(false);
-    actions->insert("stop", stopAct);
+    actionMap.insert("stop", stopAct);
     connect(stopAct, SIGNAL(triggered()), SLOT(stop()));
 
-    skipBackwardAct = new QAction(
-                IconUtils::icon("media-skip-backward"),
-                tr("P&revious"), this);
+    skipBackwardAct = new QAction(IconUtils::icon("media-skip-backward"), tr("P&revious"), this);
     skipBackwardAct->setStatusTip(tr("Go back to the previous track"));
     skipBackwardAct->setShortcut(QKeySequence(Qt::CTRL + Qt::Key_Left));
     skipBackwardAct->setEnabled(false);
-    actions->insert("previous", skipBackwardAct);
+    actionMap.insert("previous", skipBackwardAct);
     connect(skipBackwardAct, SIGNAL(triggered()), mediaView, SLOT(skipBackward()));
 
     skipAct = new QAction(IconUtils::icon("media-skip-forward"), tr("S&kip"), this);
     skipAct->setStatusTip(tr("Skip to the next video"));
-    skipAct->setShortcuts(QList<QKeySequence>() << QKeySequence(Qt::CTRL + Qt::Key_Right) << QKeySequence(Qt::Key_MediaNext));
+    skipAct->setShortcuts(QList<QKeySequence>() << QKeySequence(Qt::CTRL + Qt::Key_Right)
+                                                << QKeySequence(Qt::Key_MediaNext));
     skipAct->setEnabled(false);
-    actions->insert("skip", skipAct);
+    actionMap.insert("skip", skipAct);
     connect(skipAct, SIGNAL(triggered()), mediaView, SLOT(skip()));
 
     pauseAct = new QAction(IconUtils::icon("media-playback-start"), tr("&Play"), this);
     pauseAct->setStatusTip(tr("Resume playback"));
-    pauseAct->setShortcuts(QList<QKeySequence>() << QKeySequence(Qt::Key_Space) << QKeySequence(Qt::Key_MediaPlay));
+    pauseAct->setShortcuts(QList<QKeySequence>() << QKeySequence(Qt::Key_Space)
+                                                 << QKeySequence(Qt::Key_MediaPlay));
     pauseAct->setEnabled(false);
-    actions->insert("pause", pauseAct);
+    actionMap.insert("pause", pauseAct);
     connect(pauseAct, SIGNAL(triggered()), mediaView, SLOT(pause()));
 
     fullscreenAct = new QAction(IconUtils::icon("view-fullscreen"), tr("&Full Screen"), this);
@@ -336,8 +350,8 @@ void MainWindow::createActions() {
     fullscreenAct->setShortcuts(fsShortcuts);
     fullscreenAct->setShortcutContext(Qt::ApplicationShortcut);
     fullscreenAct->setPriority(QAction::LowPriority);
-    actions->insert("fullscreen", fullscreenAct);
-    connect(fullscreenAct, SIGNAL(triggered()), this, SLOT(fullscreen()));
+    actionMap.insert("fullscreen", fullscreenAct);
+    connect(fullscreenAct, SIGNAL(triggered()), SLOT(toggleFullscreen()));
 
     compactViewAct = new QAction(tr("&Compact Mode"), this);
     compactViewAct->setStatusTip(tr("Hide the playlist and the toolbar"));
@@ -349,28 +363,28 @@ void MainWindow::createActions() {
     compactViewAct->setCheckable(true);
     compactViewAct->setChecked(false);
     compactViewAct->setEnabled(false);
-    actions->insert("compactView", compactViewAct);
+    actionMap.insert("compactView", compactViewAct);
     connect(compactViewAct, SIGNAL(toggled(bool)), this, SLOT(compactView(bool)));
 
     webPageAct = new QAction(tr("Open the &YouTube Page"), this);
     webPageAct->setStatusTip(tr("Go to the YouTube video page and pause playback"));
     webPageAct->setShortcut(QKeySequence(Qt::CTRL + Qt::Key_Y));
     webPageAct->setEnabled(false);
-    actions->insert("webpage", webPageAct);
+    actionMap.insert("webpage", webPageAct);
     connect(webPageAct, SIGNAL(triggered()), mediaView, SLOT(openWebPage()));
 
-    copyPageAct = new QAction(tr("Copy the YouTube &Link"), this);
+    copyPageAct = new QAction(IconUtils::icon("link"), tr("Copy the YouTube &Link"), this);
     copyPageAct->setStatusTip(tr("Copy the current video YouTube link to the clipboard"));
     copyPageAct->setShortcut(QKeySequence(Qt::CTRL + Qt::Key_L));
     copyPageAct->setEnabled(false);
-    actions->insert("pagelink", copyPageAct);
+    actionMap.insert("pagelink", copyPageAct);
     connect(copyPageAct, SIGNAL(triggered()), mediaView, SLOT(copyWebPage()));
 
     copyLinkAct = new QAction(tr("Copy the Video Stream &URL"), this);
     copyLinkAct->setStatusTip(tr("Copy the current video stream URL to the clipboard"));
     copyLinkAct->setShortcut(QKeySequence(Qt::CTRL + Qt::Key_U));
     copyLinkAct->setEnabled(false);
-    actions->insert("videolink", copyLinkAct);
+    actionMap.insert("videolink", copyLinkAct);
     connect(copyLinkAct, SIGNAL(triggered()), mediaView, SLOT(copyVideoLink()));
 
     findVideoPartsAct = new QAction(tr("Find Video &Parts"), this);
@@ -378,27 +392,28 @@ void MainWindow::createActions() {
     findVideoPartsAct->setShortcut(QKeySequence(Qt::CTRL + Qt::Key_P));
     findVideoPartsAct->setEnabled(false);
     connect(findVideoPartsAct, SIGNAL(triggered()), mediaView, SLOT(findVideoParts()));
-    actions->insert("findVideoParts", findVideoPartsAct);
+    actionMap.insert("findVideoParts", findVideoPartsAct);
 
     removeAct = new QAction(tr("&Remove"), this);
     removeAct->setStatusTip(tr("Remove the selected videos from the playlist"));
-    removeAct->setShortcuts(QList<QKeySequence>() << QKeySequence("Del") << QKeySequence("Backspace"));
+    removeAct->setShortcuts(QList<QKeySequence>() << QKeySequence("Del")
+                                                  << QKeySequence("Backspace"));
     removeAct->setEnabled(false);
-    actions->insert("remove", removeAct);
+    actionMap.insert("remove", removeAct);
     connect(removeAct, SIGNAL(triggered()), mediaView, SLOT(removeSelected()));
 
     moveUpAct = new QAction(tr("Move &Up"), this);
     moveUpAct->setStatusTip(tr("Move up the selected videos in the playlist"));
     moveUpAct->setShortcut(QKeySequence(Qt::CTRL + Qt::Key_Up));
     moveUpAct->setEnabled(false);
-    actions->insert("moveUp", moveUpAct);
+    actionMap.insert("moveUp", moveUpAct);
     connect(moveUpAct, SIGNAL(triggered()), mediaView, SLOT(moveUpSelected()));
 
     moveDownAct = new QAction(tr("Move &Down"), this);
     moveDownAct->setStatusTip(tr("Move down the selected videos in the playlist"));
     moveDownAct->setShortcut(QKeySequence(Qt::CTRL + Qt::Key_Down));
     moveDownAct->setEnabled(false);
-    actions->insert("moveDown", moveDownAct);
+    actionMap.insert("moveDown", moveDownAct);
     connect(moveDownAct, SIGNAL(triggered()), mediaView, SLOT(moveDownSelected()));
 
     clearAct = new QAction(tr("&Clear Recent Searches"), this);
@@ -408,33 +423,34 @@ void MainWindow::createActions() {
                            << QKeySequence(Qt::CTRL + Qt::SHIFT + Qt::Key_Backspace));
     clearAct->setStatusTip(tr("Clear the search history. Cannot be undone."));
     clearAct->setEnabled(true);
-    actions->insert("clearRecentKeywords", clearAct);
+    actionMap.insert("clearRecentKeywords", clearAct);
     connect(clearAct, SIGNAL(triggered()), SLOT(clearRecentKeywords()));
 
     quitAct = new QAction(tr("&Quit"), this);
     quitAct->setMenuRole(QAction::QuitRole);
     quitAct->setShortcut(QKeySequence(QKeySequence::Quit));
     quitAct->setStatusTip(tr("Bye"));
-    actions->insert("quit", quitAct);
+    actionMap.insert("quit", quitAct);
     connect(quitAct, SIGNAL(triggered()), SLOT(quit()));
 
     siteAct = new QAction(tr("&Website"), this);
     siteAct->setShortcut(QKeySequence::HelpContents);
     siteAct->setStatusTip(tr("%1 on the Web").arg(Constants::NAME));
-    actions->insert("site", siteAct);
+    actionMap.insert("site", siteAct);
     connect(siteAct, SIGNAL(triggered()), this, SLOT(visitSite()));
 
 #if !defined(APP_MAC) && !defined(APP_WIN)
     donateAct = new QAction(tr("Make a &Donation"), this);
-    donateAct->setStatusTip(tr("Please support the continued development of %1").arg(Constants::NAME));
-    actions->insert("donate", donateAct);
+    donateAct->setStatusTip(
+            tr("Please support the continued development of %1").arg(Constants::NAME));
+    actionMap.insert("donate", donateAct);
     connect(donateAct, SIGNAL(triggered()), this, SLOT(donate()));
 #endif
 
     aboutAct = new QAction(tr("&About"), this);
     aboutAct->setMenuRole(QAction::AboutRole);
     aboutAct->setStatusTip(tr("Info about %1").arg(Constants::NAME));
-    actions->insert("about", aboutAct);
+    actionMap.insert("about", aboutAct);
     connect(aboutAct, SIGNAL(triggered()), this, SLOT(about()));
 
     // Invisible actions
@@ -442,19 +458,19 @@ void MainWindow::createActions() {
     searchFocusAct = new QAction(this);
     searchFocusAct->setShortcut(QKeySequence::Find);
     searchFocusAct->setStatusTip(tr("Search"));
-    actions->insert("search", searchFocusAct);
+    actionMap.insert("search", searchFocusAct);
     connect(searchFocusAct, SIGNAL(triggered()), this, SLOT(searchFocus()));
     addAction(searchFocusAct);
 
     volumeUpAct = new QAction(this);
     volumeUpAct->setShortcuts(QList<QKeySequence>() << QKeySequence(Qt::CTRL + Qt::Key_Plus));
-    actions->insert("volume-up", volumeUpAct);
+    actionMap.insert("volumeUp", volumeUpAct);
     connect(volumeUpAct, SIGNAL(triggered()), this, SLOT(volumeUp()));
     addAction(volumeUpAct);
 
     volumeDownAct = new QAction(this);
     volumeDownAct->setShortcuts(QList<QKeySequence>() << QKeySequence(Qt::CTRL + Qt::Key_Minus));
-    actions->insert("volume-down", volumeDownAct);
+    actionMap.insert("volumeDown", volumeDownAct);
     connect(volumeDownAct, SIGNAL(triggered()), this, SLOT(volumeDown()));
     addAction(volumeDownAct);
 
@@ -462,37 +478,26 @@ void MainWindow::createActions() {
     volumeMuteAct->setIcon(IconUtils::icon("audio-volume-high"));
     volumeMuteAct->setStatusTip(tr("Mute volume"));
     volumeMuteAct->setShortcut(QKeySequence(Qt::CTRL + Qt::Key_K));
-    actions->insert("volume-mute", volumeMuteAct);
+    actionMap.insert("volumeMute", volumeMuteAct);
     connect(volumeMuteAct, SIGNAL(triggered()), SLOT(volumeMute()));
     addAction(volumeMuteAct);
 
     QAction *definitionAct = new QAction(this);
-#ifdef APP_LINUX
-    definitionAct->setIcon(IconUtils::tintedIcon("video-display", QColor(0, 0, 0),
-                                                 QList<QSize>() << QSize(16, 16)));
-#else
     definitionAct->setIcon(IconUtils::icon("video-display"));
-#endif
     definitionAct->setShortcuts(QList<QKeySequence>() << QKeySequence(Qt::CTRL + Qt::Key_D));
-    /*
-    QMenu *definitionMenu = new QMenu(this);
-    foreach (QString definition, VideoDefinition::getDefinitionNames()) {
-        definitionMenu->addAction(definition);
-    }
-    definitionAct->setMenu(definitionMenu);
-    */
-    actions->insert("definition", definitionAct);
+    actionMap.insert("definition", definitionAct);
     connect(definitionAct, SIGNAL(triggered()), SLOT(toggleDefinitionMode()));
     addAction(definitionAct);
 
     QAction *action;
 
-    action = new QAction(IconUtils::icon("media-playback-start"), tr("&Manually Start Playing"), this);
+    action = new QAction(IconUtils::icon("media-playback-start"), tr("&Manually Start Playing"),
+                         this);
     action->setStatusTip(tr("Manually start playing videos"));
     action->setShortcut(QKeySequence(Qt::CTRL + Qt::Key_T));
     action->setCheckable(true);
     connect(action, SIGNAL(toggled(bool)), SLOT(setManualPlay(bool)));
-    actions->insert("manualplay", action);
+    actionMap.insert("manualplay", action);
 
     action = new QAction(tr("&Downloads"), this);
     action->setStatusTip(tr("Show details about video downloads"));
@@ -500,7 +505,7 @@ void MainWindow::createActions() {
     action->setCheckable(true);
     action->setIcon(IconUtils::icon("document-save"));
     connect(action, SIGNAL(toggled(bool)), SLOT(toggleDownloads(bool)));
-    actions->insert("downloads", action);
+    actionMap.insert("downloads", action);
 
     action = new QAction(tr("&Download"), this);
     action->setStatusTip(tr("Download the current video"));
@@ -510,13 +515,13 @@ void MainWindow::createActions() {
     action->setVisible(false);
     action->setPriority(QAction::LowPriority);
     connect(action, SIGNAL(triggered()), mediaView, SLOT(downloadVideo()));
-    actions->insert("download", action);
+    actionMap.insert("download", action);
 
 #ifdef APP_SNAPSHOT
     action = new QAction(tr("Take &Snapshot"), this);
     action->setShortcut(QKeySequence(Qt::Key_F9));
     action->setEnabled(false);
-    actions->insert("snapshot", action);
+    actionMap.insert("snapshot", action);
     connect(action, SIGNAL(triggered()), mediaView, SLOT(snapshot()));
 #endif
 
@@ -525,80 +530,70 @@ void MainWindow::createActions() {
     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);
+    actionMap.insert("subscribeChannel", action);
     mediaView->updateSubscriptionAction(0, false);
 
     QString shareTip = tr("Share the current video using %1");
 
-    action = new QAction("&Twitter", this);
+    action = new QAction(IconUtils::icon("twitter"), "&Twitter", this);
     action->setStatusTip(shareTip.arg("Twitter"));
     action->setEnabled(false);
-    actions->insert("twitter", action);
+    actionMap.insert("twitter", action);
     connect(action, SIGNAL(triggered()), mediaView, SLOT(shareViaTwitter()));
 
-    action = new QAction("&Facebook", this);
+    action = new QAction(IconUtils::icon("facebook"), "&Facebook", this);
     action->setStatusTip(shareTip.arg("Facebook"));
     action->setEnabled(false);
-    actions->insert("facebook", action);
+    actionMap.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 = new QAction(IconUtils::icon("email"), tr("&Email"), this);
     action->setStatusTip(shareTip.arg(tr("Email")));
     action->setEnabled(false);
-    actions->insert("email", action);
+    actionMap.insert("email", action);
     connect(action, SIGNAL(triggered()), mediaView, SLOT(shareViaEmail()));
 
     action = new QAction(tr("&Close"), this);
     action->setShortcut(QKeySequence(QKeySequence::Close));
-    actions->insert("close", action);
+    actionMap.insert("close", action);
     connect(action, SIGNAL(triggered()), SLOT(close()));
 
     action = new QAction(Constants::NAME, this);
     action->setShortcut(QKeySequence(Qt::CTRL + Qt::ALT + Qt::Key_1));
-    actions->insert("restore", action);
+    actionMap.insert("restore", action);
     connect(action, SIGNAL(triggered()), SLOT(restore()));
 
     action = new QAction(IconUtils::icon("go-top"), tr("&Float on Top"), this);
     action->setCheckable(true);
-    actions->insert("ontop", action);
+    actionMap.insert("ontop", action);
     connect(action, SIGNAL(toggled(bool)), SLOT(floatOnTop(bool)));
 
-    action = new QAction(tr("&Adjust Window Size"), this);
-    action->setCheckable(true);
-    actions->insert("adjustwindowsize", action);
-    connect(action, SIGNAL(toggled(bool)), SLOT(adjustWindowSizeChanged(bool)));
-
-    action = new QAction(IconUtils::icon("media-playback-stop"), tr("&Stop After This Video"), this);
+    action =
+            new QAction(IconUtils::icon("media-playback-stop"), tr("&Stop After This Video"), this);
     action->setShortcut(QKeySequence(Qt::SHIFT + Qt::Key_Escape));
     action->setCheckable(true);
     action->setEnabled(false);
-    actions->insert("stopafterthis", action);
+    actionMap.insert("stopafterthis", action);
     connect(action, SIGNAL(toggled(bool)), SLOT(showStopAfterThisInStatusBar(bool)));
 
     action = new QAction(tr("&Report an Issue..."), this);
-    actions->insert("report-issue", action);
+    actionMap.insert("reportIssue", action);
     connect(action, SIGNAL(triggered()), SLOT(reportIssue()));
 
     action = new QAction(tr("&Refine Search..."), this);
     action->setShortcut(QKeySequence(Qt::CTRL + Qt::Key_E));
     action->setCheckable(true);
     action->setEnabled(false);
-    actions->insert("refine-search", action);
+    actionMap.insert("refineSearch", action);
 
     action = new QAction(YTRegions::worldwideRegion().name, this);
-    actions->insert("worldwide-region", action);
+    actionMap.insert("worldwideRegion", action);
 
     action = new QAction(YTRegions::localRegion().name, this);
-    actions->insert("local-region", action);
+    actionMap.insert("localRegion", action);
 
     action = new QAction(tr("More..."), this);
-    actions->insert("more-region", action);
+    actionMap.insert("moreRegion", action);
 
     action = new QAction(IconUtils::icon("view-list"), tr("&Related Videos"), this);
     action->setShortcut(QKeySequence(Qt::CTRL + Qt::Key_R));
@@ -606,26 +601,40 @@ void MainWindow::createActions() {
     action->setEnabled(false);
     action->setPriority(QAction::LowPriority);
     connect(action, SIGNAL(triggered()), mediaView, SLOT(relatedVideos()));
-    actions->insert("related-videos", action);
+    actionMap.insert("relatedVideos", action);
 
     action = new QAction(tr("Open in &Browser..."), this);
     action->setShortcut(QKeySequence(Qt::CTRL + Qt::Key_B));
     action->setEnabled(false);
-    actions->insert("open-in-browser", action);
+    actionMap.insert("openInBrowser", action);
     connect(action, SIGNAL(triggered()), mediaView, SLOT(openInBrowser()));
 
+    action = new QAction(IconUtils::icon("safesearch"), tr("Restricted Mode"), this);
+    action->setStatusTip(tr("Hide videos that may contain inappropriate content"));
+    action->setShortcut(QKeySequence(Qt::CTRL + Qt::Key_K));
+    action->setCheckable(true);
+    actionMap.insert("safeSearch", action);
+
+    action = new QAction(tr("Toggle &Menu Bar"), this);
+    connect(action, SIGNAL(triggered()), SLOT(toggleMenuVisibilityWithMessage()));
+    actionMap.insert("toggleMenu", action);
+
+    action = new QAction(IconUtils::icon("view-more"), tr("Menu"), this);
+    connect(action, SIGNAL(triggered()), SLOT(toggleToolbarMenu()));
+    actionMap.insert("toolbarMenu", action);
+
 #ifdef APP_MAC_STORE
     action = new QAction(tr("&Love %1? Rate it!").arg(Constants::NAME), this);
-    actions->insert("app-store", action);
+    actionMap.insert("appStore", action);
     connect(action, SIGNAL(triggered()), SLOT(rateOnAppStore()));
 #endif
 
 #ifdef APP_ACTIVATION
-    Extra::createActivationAction(tr("Buy %1...").arg(Constants::NAME));
+    ActivationView::createActivationAction(tr("Buy %1...").arg(Constants::NAME));
 #endif
 
     // common action properties
-    foreach (QAction *action, actions->values()) {
+    for (QAction *action : actionMap) {
         // add actions to the MainWindow so that they work
         // when the menu is hidden
         addAction(action);
@@ -634,11 +643,9 @@ void MainWindow::createActions() {
 }
 
 void MainWindow::createMenus() {
-    QHash<QString, QMenu*> *menus = The::globalMenus();
-
     fileMenu = menuBar()->addMenu(tr("&Application"));
 #ifdef APP_ACTIVATION
-    QAction *buyAction = The::globalActions()->value("buy");
+    QAction *buyAction = getAction("buy");
     if (buyAction) fileMenu->addAction(buyAction);
 #ifndef APP_MAC
     fileMenu->addSeparator();
@@ -650,92 +657,97 @@ void MainWindow::createMenus() {
 #endif
     fileMenu->addAction(quitAct);
 
-    QMenuplaybackMenu = menuBar()->addMenu(tr("&Playback"));
-    menus->insert("playback", playbackMenu);
+    QMenu *playbackMenu = menuBar()->addMenu(tr("&Playback"));
+    menuMap.insert("playback", playbackMenu);
     playbackMenu->addAction(pauseAct);
     playbackMenu->addAction(stopAct);
-    playbackMenu->addAction(The::globalActions()->value("stopafterthis"));
+    playbackMenu->addAction(getAction("stopafterthis"));
     playbackMenu->addSeparator();
     playbackMenu->addAction(skipAct);
     playbackMenu->addAction(skipBackwardAct);
     playbackMenu->addSeparator();
-    playbackMenu->addAction(The::globalActions()->value("manualplay"));
+    playbackMenu->addAction(getAction("manualplay"));
 #ifdef APP_MAC
     MacSupport::dockMenu(playbackMenu);
 #endif
 
     playlistMenu = menuBar()->addMenu(tr("&Playlist"));
-    menus->insert("playlist", playlistMenu);
+    menuMap.insert("playlist", playlistMenu);
     playlistMenu->addAction(removeAct);
     playlistMenu->addSeparator();
     playlistMenu->addAction(moveUpAct);
     playlistMenu->addAction(moveDownAct);
     playlistMenu->addSeparator();
-    playlistMenu->addAction(The::globalActions()->value("refine-search"));
+    playlistMenu->addAction(getAction("refineSearch"));
 
-    QMenuvideoMenu = menuBar()->addMenu(tr("&Video"));
-    menus->insert("video", videoMenu);
-    videoMenu->addAction(The::globalActions()->value("related-videos"));
+    QMenu *videoMenu = menuBar()->addMenu(tr("&Video"));
+    menuMap.insert("video", videoMenu);
+    videoMenu->addAction(getAction("relatedVideos"));
     videoMenu->addAction(findVideoPartsAct);
     videoMenu->addSeparator();
-    videoMenu->addAction(The::globalActions()->value("subscribe-channel"));
+    videoMenu->addAction(getAction("subscribeChannel"));
 #ifdef APP_SNAPSHOT
     videoMenu->addSeparator();
-    videoMenu->addAction(The::globalActions()->value("snapshot"));
+    videoMenu->addAction(getAction("snapshot"));
 #endif
     videoMenu->addSeparator();
     videoMenu->addAction(webPageAct);
     videoMenu->addAction(copyLinkAct);
-    videoMenu->addAction(The::globalActions()->value("open-in-browser"));
-    videoMenu->addAction(The::globalActions()->value("download"));
-
-    QMenu* viewMenu = menuBar()->addMenu(tr("&View"));
-    menus->insert("view", viewMenu);
-    viewMenu->addAction(fullscreenAct);
-    viewMenu->addAction(compactViewAct);
-    viewMenu->addSeparator();
-    viewMenu->addAction(The::globalActions()->value("adjustwindowsize"));
-    viewMenu->addSeparator();
-    viewMenu->addAction(The::globalActions()->value("ontop"));
+    videoMenu->addAction(getAction("openInBrowser"));
+    videoMenu->addAction(getAction("download"));
 
-    QMenushareMenu = menuBar()->addMenu(tr("&Share"));
-    menus->insert("share", shareMenu);
+    QMenu *shareMenu = menuBar()->addMenu(tr("&Share"));
+    menuMap.insert("share", shareMenu);
     shareMenu->addAction(copyPageAct);
     shareMenu->addSeparator();
-    shareMenu->addAction(The::globalActions()->value("twitter"));
-    shareMenu->addAction(The::globalActions()->value("facebook"));
-    shareMenu->addAction(The::globalActions()->value("buffer"));
+    shareMenu->addAction(getAction("twitter"));
+    shareMenu->addAction(getAction("facebook"));
     shareMenu->addSeparator();
-    shareMenu->addAction(The::globalActions()->value("email"));
+    shareMenu->addAction(getAction("email"));
+
+    QMenu *viewMenu = menuBar()->addMenu(tr("&View"));
+    menuMap.insert("view", viewMenu);
+    viewMenu->addAction(getAction("ontop"));
+    viewMenu->addAction(compactViewAct);
+#ifndef APP_MAC
+    viewMenu->addAction(fullscreenAct);
+    viewMenu->addAction(getAction("toggleMenu"));
+#endif
 
 #ifdef APP_MAC
     MacSupport::windowMenu(this);
 #endif
 
     helpMenu = menuBar()->addMenu(tr("&Help"));
+    menuMap.insert("help", helpMenu);
     helpMenu->addAction(siteAct);
 #if !defined(APP_MAC) && !defined(APP_WIN)
     helpMenu->addAction(donateAct);
 #endif
-    helpMenu->addAction(The::globalActions()->value("report-issue"));
+    helpMenu->addAction(getAction("reportIssue"));
     helpMenu->addAction(aboutAct);
 
 #ifdef APP_MAC_STORE
     helpMenu->addSeparator();
-    helpMenu->addAction(The::globalActions()->value("app-store"));
+    helpMenu->addAction(getAction("appStore"));
 #endif
 }
 
 void MainWindow::createToolBars() {
-
     // Create widgets
 
-    currentTime = new QLabel("00:00");
-    currentTime->setFont(FontUtils::small());
+    currentTimeLabel = new QLabel("00:00");
+    currentTimeLabel->setFont(FontUtils::small());
 
 #ifdef APP_PHONON_SEEK
     seekSlider = new Phonon::SeekSlider();
+#if APP_LINUX
+    seekSlider->setTracking(false);
+#else
     seekSlider->setTracking(true);
+#endif
+    // Phonon freezes the application with streaming videos if
+    // tracking is set to true and the seek slider is dragged.
     seekSlider->setIconVisible(false);
     seekSlider->setSizePolicy(QSizePolicy::MinimumExpanding, QSizePolicy::Preferred);
 #else
@@ -752,30 +764,33 @@ void MainWindow::createToolBars() {
     volumeSlider->setMuteVisible(false);
     // qDebug() << volumeSlider->children();
     // status tip for the volume slider
-    QSlider* volumeQSlider = volumeSlider->findChild<QSlider*>();
+    QSlider *volumeQSlider = volumeSlider->findChild<QSlider *>();
     if (volumeQSlider)
-        volumeQSlider->setStatusTip(tr("Press %1 to raise the volume, %2 to lower it").arg(
-                                        volumeUpAct->shortcut().toString(QKeySequence::NativeText), volumeDownAct->shortcut().toString(QKeySequence::NativeText)));
+        volumeQSlider->setStatusTip(
+                tr("Press %1 to raise the volume, %2 to lower it")
+                        .arg(volumeUpAct->shortcut().toString(QKeySequence::NativeText),
+                             volumeDownAct->shortcut().toString(QKeySequence::NativeText)));
     // this makes the volume slider smaller
     volumeSlider->setSizePolicy(QSizePolicy::Fixed, QSizePolicy::Fixed);
 #endif
 
 #if defined(APP_MAC_SEARCHFIELD) && !defined(APP_MAC_QMACTOOLBAR)
-    SearchWrappersearchWrapper = new SearchWrapper(this);
+    SearchWrapper *searchWrapper = new SearchWrapper(this);
     toolbarSearch = searchWrapper->getSearchLineEdit();
 #else
     toolbarSearch = new SearchLineEdit(this);
 #endif
-    toolbarSearch->setMinimumWidth(toolbarSearch->fontInfo().pixelSize()*15);
+    toolbarSearch->setMinimumWidth(toolbarSearch->fontInfo().pixelSize() * 15);
     toolbarSearch->setSuggester(new YTSuggester(this));
-    connect(toolbarSearch, SIGNAL(search(const QString&)), SLOT(search(const QString&)));
-    connect(toolbarSearch, SIGNAL(suggestionAccepted(Suggestion*)), SLOT(suggestionAccepted(Suggestion*)));
+    connect(toolbarSearch, SIGNAL(search(const QString &)), SLOT(search(const QString &)));
+    connect(toolbarSearch, SIGNAL(suggestionAccepted(Suggestion *)),
+            SLOT(suggestionAccepted(Suggestion *)));
     toolbarSearch->setStatusTip(searchFocusAct->statusTip());
 
-    // Add widgets to toolbar
+// Add widgets to toolbar
 
 #ifdef APP_MAC_QMACTOOLBAR
-    currentTime->hide();
+    currentTimeLabel->hide();
     toolbarSearch->hide();
     volumeSlider->hide();
     seekSlider->hide();
@@ -787,15 +802,21 @@ void MainWindow::createToolBars() {
     mainToolBar->setToolButtonStyle(Qt::ToolButtonIconOnly);
     mainToolBar->setFloatable(false);
     mainToolBar->setMovable(false);
-#if defined(APP_MAC) | defined(APP_WIN)
+#ifndef APP_LINUX
     mainToolBar->setIconSize(QSize(32, 32));
 #endif
-
     mainToolBar->addAction(stopAct);
+    QToolButton *stopToolButton =
+            qobject_cast<QToolButton *>(mainToolBar->widgetForAction(stopAct));
+    if (stopToolButton) {
+        QMenu *stopMenu = new QMenu(this);
+        stopMenu->addAction(getAction("stopafterthis"));
+        stopToolButton->setMenu(stopMenu);
+        stopToolButton->setPopupMode(QToolButton::DelayedPopup);
+    }
     mainToolBar->addAction(pauseAct);
     mainToolBar->addAction(skipAct);
-    mainToolBar->addAction(The::globalActions()->value("related-videos"));
-    mainToolBar->addAction(The::globalActions()->value("download"));
+    mainToolBar->addAction(getAction("relatedVideos"));
 
     bool addFullScreenAct = true;
 #ifdef Q_OS_MAC
@@ -804,8 +825,9 @@ void MainWindow::createToolBars() {
     if (addFullScreenAct) mainToolBar->addAction(fullscreenAct);
 
     mainToolBar->addWidget(new Spacer());
-    mainToolBar->addWidget(currentTime);
-    mainToolBar->addWidget(new Spacer());
+
+    mainToolBar->addWidget(currentTimeLabel);
+    mainToolBar->addWidget(new Spacer(this, currentTimeLabel->sizeHint().height() / 2));
 #ifdef APP_PHONON_SEEK
     mainToolBar->addWidget(seekSlider);
 #else
@@ -822,7 +844,8 @@ void MainWindow::createToolBars() {
     mainToolBar->addWidget(new Spacer());
     mainToolBar->addAction(volumeMuteAct);
 #ifdef APP_LINUX
-    QToolButton *volumeMuteButton = qobject_cast<QToolButton *>(mainToolBar->widgetForAction(volumeMuteAct));
+    QToolButton *volumeMuteButton =
+            qobject_cast<QToolButton *>(mainToolBar->widgetForAction(volumeMuteAct));
     volumeMuteButton->setIcon(volumeMuteButton->icon().pixmap(16));
 #endif
 
@@ -836,27 +859,32 @@ void MainWindow::createToolBars() {
     mainToolBar->addWidget(searchWrapper);
 #else
     mainToolBar->addWidget(toolbarSearch);
-    mainToolBar->addWidget(new Spacer());
+    mainToolBar->addWidget(new Spacer(this, toolbarSearch->height() / 2));
+
+    QAction *toolbarMenuAction = getAction("toolbarMenu");
+    mainToolBar->addAction(toolbarMenuAction);
+    toolbarMenuButton =
+            qobject_cast<QToolButton *>(mainToolBar->widgetForAction(toolbarMenuAction));
 #endif
 
     addToolBar(mainToolBar);
 }
 
 void MainWindow::createStatusBar() {
-    statusToolBar = new QToolBar(this);
+    statusToolBar = new QToolBar(statusBar());
     statusToolBar->setToolButtonStyle(Qt::ToolButtonTextBesideIcon);
     statusToolBar->setIconSize(QSize(16, 16));
 
     regionAction = new QAction(this);
     regionAction->setStatusTip(tr("Choose your content location"));
 
-    QAction *localAction = The::globalActions()->value("local-region");
+    QAction *localAction = getAction("localRegion");
     if (!localAction->text().isEmpty()) {
         QMenu *regionMenu = new QMenu(this);
-        regionMenu->addAction(The::globalActions()->value("worldwide-region"));
+        regionMenu->addAction(getAction("worldwideRegion"));
         regionMenu->addAction(localAction);
         regionMenu->addSeparator();
-        QAction *moreRegionsAction = The::globalActions()->value("more-region");
+        QAction *moreRegionsAction = getAction("moreRegion");
         regionMenu->addAction(moreRegionsAction);
         connect(moreRegionsAction, SIGNAL(triggered()), SLOT(showRegionsView()));
         regionAction->setMenu(regionMenu);
@@ -870,77 +898,91 @@ void MainWindow::createStatusBar() {
     */
 
     statusBar()->addPermanentWidget(statusToolBar);
+    statusBar()->hide();
 }
 
 void MainWindow::showStopAfterThisInStatusBar(bool show) {
-    QAction* action = The::globalActions()->value("stopafterthis");
+    QAction *action = getAction("stopafterthis");
     showActionInStatusBar(action, show);
 }
 
-void MainWindow::showActionInStatusBar(QActionaction, bool show) {
+void MainWindow::showActionInStatusBar(QAction *action, bool show) {
 #ifdef APP_EXTRA
     Extra::fadeInWidget(statusBar(), statusBar());
 #endif
     if (show) {
-        statusToolBar->insertAction(statusToolBar->actions().first(), action);
-        if (statusBar()->isHidden() && !fullscreenFlag)
-            setStatusBarVisibility(true);
+        if (statusToolBar->actions().contains(action)) return;
+        if (statusToolBar->actions().isEmpty()) {
+            statusToolBar->addAction(action);
+        } else {
+            statusToolBar->insertAction(statusToolBar->actions().at(0), action);
+        }
+        if (statusBar()->isHidden() && !fullScreenActive) setStatusBarVisibility(true);
     } else {
         statusToolBar->removeAction(action);
-        if (statusBar()->isVisible() && !needStatusBar())
-            setStatusBarVisibility(false);
+        if (statusBar()->isVisible() && !needStatusBar()) setStatusBarVisibility(false);
     }
 }
 
 void MainWindow::setStatusBarVisibility(bool show) {
     statusBar()->setVisible(show);
     if (views->currentWidget() == mediaView)
-        QTimer::singleShot(0, mediaView, SLOT(maybeAdjustWindowSize()));
+        QTimer::singleShot(0, mediaView, SLOT(adjustWindowSize()));
 }
 
 void MainWindow::adjustStatusBarVisibility() {
     setStatusBarVisibility(needStatusBar());
 }
 
+void MainWindow::hideToolbar() {
+#ifdef APP_MAC
+    mac::showToolBar(winId(), false);
+#else
+    mainToolBar->hide();
+#endif
+}
+
+void MainWindow::showToolbar() {
+#ifdef APP_MAC
+    mac::showToolBar(winId(), true);
+#else
+    mainToolBar->show();
+#endif
+}
+
 void MainWindow::readSettings() {
     QSettings settings;
     if (settings.contains("geometry")) {
         restoreGeometry(settings.value("geometry").toByteArray());
-#ifdef APP_MAC
-        MacSupport::fixGeometry(this);
-#endif
     } else {
         const QRect desktopSize = qApp->desktop()->availableGeometry();
-        int w = qMin(2000, desktopSize.width());
-        int h = qMin(w / 3, desktopSize.height());
+        int w = desktopSize.width() * .9;
+        int h = qMin(w / 2, desktopSize.height());
         setGeometry(
-                    QStyle::alignedRect(
-                        Qt::LeftToRight,
-                        Qt::AlignTop,
-                        QSize(w, h),
-                        desktopSize)
-                    );
+                QStyle::alignedRect(Qt::LeftToRight, Qt::AlignCenter, QSize(w, h), desktopSize));
     }
-    const VideoDefinition& firstDefinition = VideoDefinition::getDefinitions().first();
+    const VideoDefinition &firstDefinition = VideoDefinition::getDefinitions().at(0);
     setDefinitionMode(settings.value("definition", firstDefinition.getName()).toString());
-    The::globalActions()->value("manualplay")->setChecked(settings.value("manualplay", false).toBool());
-    The::globalActions()->value("adjustwindowsize")->setChecked(settings.value("adjustWindowSize", true).toBool());
+    getAction("manualplay")->setChecked(settings.value("manualplay", false).toBool());
+    getAction("safeSearch")->setChecked(settings.value("safeSearch", false).toBool());
+#ifndef APP_MAC
+    menuBar()->setVisible(settings.value("menuBar", false).toBool());
+#endif
 }
 
 void MainWindow::writeSettings() {
     QSettings settings;
 
-    if (!isReallyFullScreen())
+    if (!isReallyFullScreen()) {
         settings.setValue("geometry", saveGeometry());
-    mediaView->saveSplitterState();
+        mediaView->saveSplitterState();
+    }
 
-#ifdef APP_PHONON
-    if (audioOutput->volume() > 0.1)
-        settings.setValue("volume", audioOutput->volume());
-    // settings.setValue("volumeMute", audioOutput->isMuted());
+    settings.setValue("manualplay", getAction("manualplay")->isChecked());
+    settings.setValue("safeSearch", getAction("safeSearch")->isChecked());
+#ifndef APP_MAC
+    settings.setValue("menuBar", menuBar()->isVisible());
 #endif
-
-    settings.setValue("manualplay", The::globalActions()->value("manualplay")->isChecked());
 }
 
 void MainWindow::goBack() {
@@ -951,18 +993,20 @@ void MainWindow::goBack() {
     }
 }
 
-void MainWindow::showWidget(QWidgetwidget, bool transition) {
+void MainWindow::showWidget(QWidget *widget, bool transition) {
     Q_UNUSED(transition);
 
-    if (compactViewAct->isChecked())
-        compactViewAct->toggle();
+    setUpdatesEnabled(false);
+
+    if (compactViewAct->isChecked()) compactViewAct->toggle();
 
     // call hide method on the current view
-    View* oldView = qobject_cast<View *> (views->currentWidget());
+    View *oldView = qobject_cast<View *>(views->currentWidget());
     if (oldView) {
         oldView->disappear();
         views->currentWidget()->setEnabled(false);
-    } else qDebug() << "Cannot cast view";
+    } else
+        qDebug() << "Cannot cast view";
 
     const bool isMediaView = widget == mediaView;
 
@@ -971,40 +1015,42 @@ void MainWindow::showWidget(QWidget* widget, bool transition) {
     toolbarSearch->setEnabled(widget == homeView || isMediaView || widget == downloadView);
 
     aboutAct->setEnabled(widget != aboutView);
-    The::globalActions()->value("downloads")->setChecked(widget == downloadView);
+    getAction("downloads")->setChecked(widget == downloadView);
 
     QWidget *oldWidget = views->currentWidget();
-    if (oldWidget)
-        oldWidget->setSizePolicy(QSizePolicy::Ignored, QSizePolicy::Ignored);
+    if (oldWidget) oldWidget->setSizePolicy(QSizePolicy::Ignored, QSizePolicy::Ignored);
 
     views->setCurrentWidget(widget);
     widget->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding);
 
     // call show method on the new view
-    View* newView = qobject_cast<View *> (widget);
+    View *newView = qobject_cast<View *>(widget);
     if (newView) {
         widget->setEnabled(true);
-        QHash<QString,QVariant> metadata = newView->metadata();
 
-        QString title = metadata.value("title").toString();
-        if (title.isEmpty()) title = Constants::NAME;
-        else title += QLatin1String(" - ") + Constants::NAME;
+        QString title = newView->getTitle();
+        if (title.isEmpty())
+            title = Constants::NAME;
+        else
+            title += QLatin1String(" - ") + Constants::NAME;
         setWindowTitle(title);
 
         statusToolBar->setUpdatesEnabled(false);
 
         // dynamic view actions
+        /* Not currently used by any view
         foreach (QAction* action, viewActions)
             showActionInStatusBar(action, false);
         viewActions = newView->getViewActions();
         foreach (QAction* action, viewActions)
             showActionInStatusBar(action, true);
-
-        newView->appear();
+        */
 
         adjustStatusBarVisibility();
         messageLabel->hide();
 
+        newView->appear();
+
         statusToolBar->setUpdatesEnabled(true);
 
         /*
@@ -1013,7 +1059,16 @@ void MainWindow::showWidget(QWidget* widget, bool transition) {
         */
     }
 
+    setUpdatesEnabled(true);
+
+#ifdef APP_MAC
+    // Workaround cursor bug on macOS
+    unsetCursor();
+    mac::uncloseWindow(winId());
+#endif
+
     history.push(widget);
+    emit viewChanged();
 }
 
 void MainWindow::about() {
@@ -1048,7 +1103,7 @@ void MainWindow::quit() {
     }
 #endif
     // do not save geometry when in full screen or in compact mode
-    if (!fullscreenFlag && !compactViewAct->isChecked()) {
+    if (!fullScreenActive && !compactViewAct->isChecked()) {
         writeSettings();
     }
     // mediaView->stop();
@@ -1084,15 +1139,18 @@ void MainWindow::showEvent(QShowEvent *e) {
 bool MainWindow::confirmQuit() {
     if (DownloadManager::instance()->activeItems() > 0) {
         QMessageBox msgBox(this);
-        msgBox.setIconPixmap(IconUtils::pixmap(":/images/app.png").scaled(64, 64, Qt::KeepAspectRatio, Qt::SmoothTransformation));
-        msgBox.setText(tr("Do you want to exit %1 with a download in progress?").arg(Constants::NAME));
-        msgBox.setInformativeText(tr("If you close %1 now, this download will be cancelled.").arg(Constants::NAME));
+        msgBox.setIconPixmap(IconUtils::pixmap(":/images/64x64/app.png"));
+        msgBox.setText(
+                tr("Do you want to exit %1 with a download in progress?").arg(Constants::NAME));
+        msgBox.setInformativeText(
+                tr("If you close %1 now, this download will be cancelled.").arg(Constants::NAME));
         msgBox.setModal(true);
         // make it a "sheet" on the Mac
         msgBox.setWindowModality(Qt::WindowModal);
 
         msgBox.addButton(tr("Close and cancel download"), QMessageBox::RejectRole);
-        QPushButton *waitButton = msgBox.addButton(tr("Wait for download to finish"), QMessageBox::ActionRole);
+        QPushButton *waitButton =
+                msgBox.addButton(tr("Wait for download to finish"), QMessageBox::ActionRole);
 
         msgBox.exec();
 
@@ -1103,14 +1161,17 @@ bool MainWindow::confirmQuit() {
     return true;
 }
 
-void MainWindow::showHome(bool transition) {
-    showWidget(homeView, transition);
-    currentTime->clear();
-    // totalTime->clear();
+void MainWindow::showHome() {
+    showWidget(homeView);
+    currentTimeLabel->clear();
 }
 
 void MainWindow::showMedia(SearchParams *searchParams) {
     showWidget(mediaView);
+    if (getAction("safeSearch")->isChecked())
+        searchParams->setSafeSearch(SearchParams::Strict);
+    else
+        searchParams->setSafeSearch(SearchParams::None);
     mediaView->search(searchParams);
 }
 
@@ -1121,14 +1182,13 @@ void MainWindow::showMedia(VideoSource *videoSource) {
 
 #ifdef APP_PHONON
 void MainWindow::stateChanged(Phonon::State newState, Phonon::State /* oldState */) {
-
     // qDebug() << "Phonon state: " << newState;
 
     switch (newState) {
-
     case Phonon::ErrorState:
         if (mediaObject->errorType() == Phonon::FatalError) {
-            // Do not display because we try to play incomplete video files and sometimes trigger this
+            // Do not display because we try to play incomplete video files and sometimes trigger
+            // this
             // We retry automatically (in MediaView) so no need to show it
             // showMessage(tr("Fatal error: %1").arg(mediaObject->errorString()));
         } else {
@@ -1140,7 +1200,8 @@ void MainWindow::stateChanged(Phonon::State newState, Phonon::State /* oldState
         pauseAct->setEnabled(true);
         pauseAct->setIcon(IconUtils::icon("media-playback-pause"));
         pauseAct->setText(tr("&Pause"));
-        pauseAct->setStatusTip(tr("Pause playback") + " (" +  pauseAct->shortcut().toString(QKeySequence::NativeText) + ")");
+        pauseAct->setStatusTip(tr("Pause playback") + " (" +
+                               pauseAct->shortcut().toString(QKeySequence::NativeText) + ")");
         // stopAct->setEnabled(true);
         break;
 
@@ -1148,7 +1209,8 @@ void MainWindow::stateChanged(Phonon::State newState, Phonon::State /* oldState
         pauseAct->setEnabled(false);
         pauseAct->setIcon(IconUtils::icon("media-playback-start"));
         pauseAct->setText(tr("&Play"));
-        pauseAct->setStatusTip(tr("Resume playback") + " (" +  pauseAct->shortcut().toString(QKeySequence::NativeText) + ")");
+        pauseAct->setStatusTip(tr("Resume playback") + " (" +
+                               pauseAct->shortcut().toString(QKeySequence::NativeText) + ")");
         // stopAct->setEnabled(false);
         break;
 
@@ -1156,7 +1218,8 @@ void MainWindow::stateChanged(Phonon::State newState, Phonon::State /* oldState
         pauseAct->setEnabled(true);
         pauseAct->setIcon(IconUtils::icon("media-playback-start"));
         pauseAct->setText(tr("&Play"));
-        pauseAct->setStatusTip(tr("Resume playback") + " (" +  pauseAct->shortcut().toString(QKeySequence::NativeText) + ")");
+        pauseAct->setStatusTip(tr("Resume playback") + " (" +
+                               pauseAct->shortcut().toString(QKeySequence::NativeText) + ")");
         // stopAct->setEnabled(true);
         break;
 
@@ -1169,13 +1232,12 @@ void MainWindow::stateChanged(Phonon::State newState, Phonon::State /* oldState
 
     case Phonon::LoadingState:
         pauseAct->setEnabled(false);
-        currentTime->clear();
+        currentTimeLabel->clear();
         // totalTime->clear();
         // stopAct->setEnabled(true);
         break;
 
-    default:
-        ;
+    default:;
     }
 }
 #endif
@@ -1190,31 +1252,43 @@ void MainWindow::resizeEvent(QResizeEvent *e) {
 #ifdef APP_MAC
     if (initialized && mac::CanGoFullScreen(winId())) {
         bool isFullscreen = mac::IsFullScreen(winId());
-        if (isFullscreen != fullscreenFlag) {
+        if (isFullscreen != fullScreenActive) {
             if (compactViewAct->isChecked()) {
                 compactViewAct->setChecked(false);
                 compactView(false);
             }
-            fullscreenFlag = isFullscreen;
+            fullScreenActive = isFullscreen;
             updateUIForFullscreen();
         }
     }
 #endif
 #ifdef APP_MAC_QMACTOOLBAR
-    toolbarSearch->move(width() - toolbarSearch->width() - 13, -38);
+    int moreButtonWidth = 40;
+    toolbarSearch->move(width() - toolbarSearch->width() - moreButtonWidth - 7, -38);
 #endif
-    adjustMessageLabelPosition();
+    hideMessage();
 }
 
 void MainWindow::moveEvent(QMoveEvent *e) {
     Q_UNUSED(e);
-    adjustMessageLabelPosition();
+    hideMessage();
 }
 
-void MainWindow::fullscreen() {
+void MainWindow::enterEvent(QEvent *e) {
+    Q_UNUSED(e);
+#ifdef APP_MAC
+    // Workaround cursor bug on macOS
+    unsetCursor();
+#endif
+}
+
+void MainWindow::leaveEvent(QEvent *e) {
+    Q_UNUSED(e);
+    if (fullScreenActive) hideFullscreenUI();
+}
 
-    if (compactViewAct->isChecked())
-        compactViewAct->toggle();
+void MainWindow::toggleFullscreen() {
+    if (compactViewAct->isChecked()) compactViewAct->toggle();
 
 #ifdef APP_MAC
     WId handle = winId();
@@ -1225,12 +1299,12 @@ void MainWindow::fullscreen() {
     }
 #endif
 
-    fullscreenFlag = !fullscreenFlag;
+    fullScreenActive = !fullScreenActive;
 
-    if (fullscreenFlag) {
+    if (fullScreenActive) {
         // Enter full screen
 
-        m_maximized = isMaximized();
+        maximizedBeforeFullScreen = isMaximized();
 
         // save geometry now, if the user quits when in full screen
         // geometry won't be saved
@@ -1239,35 +1313,39 @@ void MainWindow::fullscreen() {
 #ifdef APP_MAC
         MacSupport::enterFullScreen(this, views);
 #else
+        menuVisibleBeforeFullScreen = menuBar()->isVisible();
+        menuBar()->hide();
         if (mainToolBar) mainToolBar->hide();
         showFullScreen();
 #endif
 
     } else {
-        // Exit full screen
+// Exit full screen
 
 #ifdef APP_MAC
         MacSupport::exitFullScreen(this, views);
 #else
-        if (mainToolBar) mainToolBar->show();
-        if (m_maximized) showMaximized();
-        else showNormal();
+        menuBar()->setVisible(menuVisibleBeforeFullScreen);
+        if (mainToolBar) mainToolBar->setVisible(views->currentWidget() == mediaView);
+        if (maximizedBeforeFullScreen)
+            showMaximized();
+        else
+            showNormal();
 #endif
 
         // Make sure the window has focus
         activateWindow();
-
     }
 
+    qApp->processEvents();
     updateUIForFullscreen();
-
 }
 
 void MainWindow::updateUIForFullscreen() {
     static QList<QKeySequence> fsShortcuts;
     static QString fsText;
 
-    if (fullscreenFlag) {
+    if (fullScreenActive) {
         fsShortcuts = fullscreenAct->shortcuts();
         fsText = fullscreenAct->text();
         if (fsText.isEmpty()) qDebug() << "[taking Empty!]";
@@ -1276,6 +1354,14 @@ void MainWindow::updateUIForFullscreen() {
         fullscreenAct->setText(tr("Leave &Full Screen"));
         fullscreenAct->setIcon(IconUtils::icon("view-restore"));
         setStatusBarVisibility(false);
+
+        if (mainToolBar) {
+            removeToolBar(mainToolBar);
+            mainToolBar->move(0, 0);
+        }
+
+        mediaView->removeSidebar();
+
     } else {
         fullscreenAct->setShortcuts(fsShortcuts);
         if (fsText.isEmpty()) fsText = "[Empty!]";
@@ -1283,37 +1369,38 @@ void MainWindow::updateUIForFullscreen() {
         fullscreenAct->setIcon(IconUtils::icon("view-fullscreen"));
 
         if (needStatusBar()) setStatusBarVisibility(true);
+
+        if (mainToolBar) {
+            addToolBar(mainToolBar);
+        }
+
+        mediaView->restoreSidebar();
     }
 
     // No compact view action when in full screen
-    compactViewAct->setVisible(!fullscreenFlag);
+    compactViewAct->setVisible(!fullScreenActive);
     compactViewAct->setChecked(false);
 
     // Hide anything but the video
-    mediaView->setPlaylistVisible(!fullscreenFlag);
-    if (mainToolBar) mainToolBar->setVisible(!fullscreenFlag);
-
-#ifndef APP_MAC
-    menuBar()->setVisible(!fullscreenFlag);
-#endif
+    mediaView->setSidebarVisibility(!fullScreenActive);
 
-    if (fullscreenFlag) {
+    if (fullScreenActive) {
         stopAct->setShortcuts(QList<QKeySequence>() << QKeySequence(Qt::Key_MediaStop));
     } else {
-        stopAct->setShortcuts(QList<QKeySequence>() << QKeySequence(Qt::Key_Escape) << QKeySequence(Qt::Key_MediaStop));
+        stopAct->setShortcuts(QList<QKeySequence>() << QKeySequence(Qt::Key_Escape)
+                                                    << QKeySequence(Qt::Key_MediaStop));
     }
 
 #ifdef Q_OS_MAC
-    MacSupport::fullScreenActions(The::globalActions()->values(), fullscreenFlag);
+    MacSupport::fullScreenActions(actionMap, fullScreenActive);
 #endif
 
-    if (views->currentWidget() == mediaView)
-        mediaView->setFocus();
+    if (views->currentWidget() == mediaView) mediaView->setFocus();
 
-    if (fullscreenFlag) {
-        hideMouse();
+    if (fullScreenActive) {
+        if (views->currentWidget() == mediaView) hideFullscreenUI();
     } else {
-        mouseTimer->stop();
+        fullscreenTimer->stop();
         unsetCursor();
     }
 }
@@ -1321,26 +1408,56 @@ void MainWindow::updateUIForFullscreen() {
 bool MainWindow::isReallyFullScreen() {
 #ifdef Q_OS_MAC
     WId handle = winId();
-    if (mac::CanGoFullScreen(handle)) return mac::IsFullScreen(handle);
-    else return isFullScreen();
+    if (mac::CanGoFullScreen(handle))
+        return mac::IsFullScreen(handle);
+    else
+        return isFullScreen();
 #else
     return isFullScreen();
 #endif
 }
 
+void MainWindow::missingKeyWarning() {
+    QMessageBox msgBox(this);
+    msgBox.setIconPixmap(IconUtils::pixmap(":/images/64x64/app.png"));
+    msgBox.setText(QString("%1 was built without a Google API key.").arg(Constants::NAME));
+    msgBox.setInformativeText(QString("It won't work unless you enter one."
+                                      "<p>In alternative you can get %1 from the developer site.")
+                                      .arg(Constants::NAME));
+    msgBox.setModal(true);
+    msgBox.setWindowModality(Qt::WindowModal);
+    QPushButton *enterKeyButton =
+            msgBox.addButton(QString("Enter API key..."), QMessageBox::AcceptRole);
+    QPushButton *devButton = msgBox.addButton(QString("Get from %1").arg(Constants::WEBSITE),
+                                              QMessageBox::AcceptRole);
+    QPushButton *helpButton = msgBox.addButton(QMessageBox::Help);
+    msgBox.exec();
+    if (msgBox.clickedButton() == helpButton) {
+        QDesktopServices::openUrl(QUrl(
+                "https://github.com/flaviotordini/minitube/blob/master/README.md#google-api-key"));
+    } else if (msgBox.clickedButton() == enterKeyButton) {
+        bool ok;
+        QString text = QInputDialog::getText(this, QString(), "Google API key:", QLineEdit::Normal,
+                                             QString(), &ok);
+        if (ok && !text.isEmpty()) {
+            QSettings settings;
+            settings.setValue("googleApiKey", text);
+            YT3::instance().initApiKeys();
+        }
+    } else if (msgBox.clickedButton() == devButton) {
+        QDesktopServices::openUrl(QUrl(Constants::WEBSITE));
+    }
+}
+
 void MainWindow::compactView(bool enable) {
-    m_compact = enable;
+    compactModeActive = enable;
 
     static QList<QKeySequence> compactShortcuts;
     static QList<QKeySequence> stopShortcuts;
 
-    const static QString key = "compactGeometry";
+    const QString key = "compactGeometry";
     QSettings settings;
 
-#ifndef APP_MAC
-    menuBar()->setVisible(!enable);
-#endif
-
     if (enable) {
         setMinimumSize(320, 180);
 #ifdef Q_OS_MAC
@@ -1358,7 +1475,7 @@ void MainWindow::compactView(bool enable) {
 #else
         mainToolBar->setVisible(!enable);
 #endif
-        mediaView->setPlaylistVisible(!enable);
+        mediaView->setSidebarVisibility(!enable);
         statusBar()->hide();
 
         compactShortcuts = compactViewAct->shortcuts();
@@ -1367,7 +1484,8 @@ void MainWindow::compactView(bool enable) {
         QList<QKeySequence> newStopShortcuts(stopShortcuts);
         newStopShortcuts.removeAll(QKeySequence(Qt::Key_Escape));
         stopAct->setShortcuts(newStopShortcuts);
-        compactViewAct->setShortcuts(QList<QKeySequence>(compactShortcuts) << QKeySequence(Qt::Key_Escape));
+        compactViewAct->setShortcuts(QList<QKeySequence>(compactShortcuts)
+                                     << QKeySequence(Qt::Key_Escape));
 
         // ensure focus does not end up to the search box
         // as it would steal the Space shortcut
@@ -1385,7 +1503,7 @@ void MainWindow::compactView(bool enable) {
 #else
         mainToolBar->setVisible(!enable);
 #endif
-        mediaView->setPlaylistVisible(!enable);
+        mediaView->setSidebarVisibility(!enable);
         if (needStatusBar()) setStatusBarVisibility(true);
 
         readSettings();
@@ -1397,11 +1515,26 @@ void MainWindow::compactView(bool enable) {
     // auto float on top
     floatOnTop(enable, false);
 
-#ifdef Q_OS_MAC
+#ifdef APP_MAC
     mac::compactMode(winId(), enable);
+#else
+    if (enable) {
+        menuVisibleBeforeCompactMode = menuBar()->isVisible();
+        menuBar()->hide();
+    } else {
+        menuBar()->setVisible(menuVisibleBeforeCompactMode);
+    }
 #endif
 }
 
+void MainWindow::toggleToolbarMenu() {
+    if (!toolbarMenu) toolbarMenu = new ToolbarMenu(this);
+    if (toolbarMenu->isVisible())
+        toolbarMenu->hide();
+    else
+        toolbarMenu->show();
+}
+
 void MainWindow::searchFocus() {
     toolbarSearch->selectAll();
     toolbarSearch->setFocus();
@@ -1420,7 +1553,6 @@ void MainWindow::initPhonon() {
     connect(mediaObject, SIGNAL(totalTimeChanged(qint64)), SLOT(totalTimeChanged(qint64)));
 
     audioOutput = new Phonon::AudioOutput(Phonon::VideoCategory, this);
-    connect(audioOutput, SIGNAL(volumeChanged(qreal)), SLOT(volumeChanged(qreal)));
     connect(audioOutput, SIGNAL(mutedChanged(bool)), SLOT(volumeMutedChanged(bool)));
     Phonon::createPath(mediaObject, audioOutput);
     volumeSlider->setAudioOutput(audioOutput);
@@ -1439,21 +1571,22 @@ void MainWindow::initPhonon() {
 
 void MainWindow::tick(qint64 time) {
     const QString s = formatTime(time);
-    if (s != currentTime->text()) {
-        currentTime->setText(s);
+    if (s != currentTimeLabel->text()) {
+        currentTimeLabel->setText(s);
         emit currentTimeChanged(s);
     }
 
-    // remaining time
+// remaining time
 #ifdef APP_PHONON
     const qint64 remainingTime = mediaObject->remainingTime();
-    currentTime->setStatusTip(tr("Remaining time: %1").arg(formatTime(remainingTime)));
+    currentTimeLabel->setStatusTip(tr("Remaining time: %1").arg(formatTime(remainingTime)));
 
 #ifndef APP_PHONON_SEEK
     const qint64 totalTime = mediaObject->totalTime();
     slider->blockSignals(true);
     // qWarning() << totalTime << time << time * 100 / totalTime;
-    if (totalTime > 0 && time > 0 && !slider->isSliderDown() && mediaObject->state() == Phonon::PlayingState)
+    if (totalTime > 0 && time > 0 && !slider->isSliderDown() &&
+        mediaObject->state() == Phonon::PlayingState)
         slider->setValue(time * slider->maximum() / totalTime);
     slider->blockSignals(false);
 #endif
@@ -1478,21 +1611,19 @@ void MainWindow::totalTimeChanged(qint64 time) {
 QString MainWindow::formatTime(qint64 duration) {
     duration /= 1000;
     QString res;
-    int seconds = (int) (duration % 60);
+    int seconds = (int)(duration % 60);
     duration /= 60;
-    int minutes = (int) (duration % 60);
+    int minutes = (int)(duration % 60);
     duration /= 60;
-    int hours = (int) (duration % 24);
-    if (hours == 0)
-        return res.sprintf("%02d:%02d", minutes, seconds);
+    int hours = (int)(duration % 24);
+    if (hours == 0) return res.sprintf("%02d:%02d", minutes, seconds);
     return res.sprintf("%02d:%02d:%02d", hours, minutes, seconds);
 }
 
 void MainWindow::volumeUp() {
 #ifdef APP_PHONON
     qreal newVolume = volumeSlider->audioOutput()->volume() + .1;
-    if (newVolume > volumeSlider->maximumVolume())
-        newVolume = volumeSlider->maximumVolume();
+    if (newVolume > volumeSlider->maximumVolume()) newVolume = volumeSlider->maximumVolume();
     volumeSlider->audioOutput()->setVolume(newVolume);
 #endif
 }
@@ -1500,8 +1631,7 @@ void MainWindow::volumeUp() {
 void MainWindow::volumeDown() {
 #ifdef APP_PHONON
     qreal newVolume = volumeSlider->audioOutput()->volume() - .1;
-    if (newVolume < 0.)
-        newVolume = 0.;
+    if (newVolume < 0.) newVolume = 0.;
     volumeSlider->audioOutput()->setVolume(newVolume);
 #endif
 }
@@ -1511,36 +1641,13 @@ void MainWindow::volumeMute() {
     bool muted = volumeSlider->audioOutput()->isMuted();
     volumeSlider->audioOutput()->setMuted(!muted);
     qApp->processEvents();
-    if (muted && volumeSlider->audioOutput()->volume() == 0) {
+    if (muted && volumeSlider->audioOutput()->volume() == 0.) {
         volumeSlider->audioOutput()->setVolume(volumeSlider->maximumVolume());
     }
     qDebug() << volumeSlider->audioOutput()->isMuted() << volumeSlider->audioOutput()->volume();
 #endif
 }
 
-void MainWindow::volumeChanged(qreal newVolume) {
-#ifdef APP_PHONON
-    // automatically unmute when volume changes
-    if (volumeSlider->audioOutput()->isMuted()) volumeSlider->audioOutput()->setMuted(false);
-
-    bool isZero = volumeSlider->property("zero").toBool();
-    bool styleChanged = false;
-    if (newVolume == 0. && !isZero) {
-        volumeSlider->setProperty("zero", true);
-        styleChanged = true;
-    } else if (newVolume > 0. && isZero) {
-        volumeSlider->setProperty("zero", false);
-        styleChanged = true;
-    }
-    if (styleChanged) {
-        QSlider* volumeQSlider = volumeSlider->findChild<QSlider*>();
-        style()->unpolish(volumeQSlider);
-        style()->polish(volumeQSlider);
-    }
-#endif
-    showMessage(tr("Volume at %1%").arg((int)(newVolume*100)));
-}
-
 void MainWindow::volumeMutedChanged(bool muted) {
     if (muted) {
         volumeMuteAct->setIcon(IconUtils::icon("audio-volume-muted"));
@@ -1550,16 +1657,18 @@ void MainWindow::volumeMutedChanged(bool muted) {
         showMessage(tr("Volume is unmuted"));
     }
 #ifdef APP_LINUX
-    QToolButton *volumeMuteButton = qobject_cast<QToolButton *>(mainToolBar->widgetForAction(volumeMuteAct));
+    QToolButton *volumeMuteButton =
+            qobject_cast<QToolButton *>(mainToolBar->widgetForAction(volumeMuteAct));
     volumeMuteButton->setIcon(volumeMuteButton->icon().pixmap(16));
 #endif
 }
 
 void MainWindow::setDefinitionMode(const QString &definitionName) {
-    QAction *definitionAct = The::globalActions()->value("definition");
+    QAction *definitionAct = getAction("definition");
     definitionAct->setText(definitionName);
-    definitionAct->setStatusTip(tr("Maximum video definition set to %1").arg(definitionAct->text())
-                                + " (" +  definitionAct->shortcut().toString(QKeySequence::NativeText) + ")");
+    definitionAct->setStatusTip(
+            tr("Maximum video definition set to %1").arg(definitionAct->text()) + " (" +
+            definitionAct->shortcut().toString(QKeySequence::NativeText) + ")");
     showMessage(definitionAct->statusTip());
     QSettings settings;
     settings.setValue("definition", definitionName);
@@ -1567,10 +1676,10 @@ void MainWindow::setDefinitionMode(const QString &definitionName) {
 
 void MainWindow::toggleDefinitionMode() {
     const QString definitionName = QSettings().value("definition").toString();
-    const QList<VideoDefinition>& definitions = VideoDefinition::getDefinitions();
-    const VideoDefinition& currentDefinition = VideoDefinition::getDefinitionFor(definitionName);
+    const QVector<VideoDefinition> &definitions = VideoDefinition::getDefinitions();
+    const VideoDefinition &currentDefinition = VideoDefinition::forName(definitionName);
     if (currentDefinition.isEmpty()) {
-        setDefinitionMode(definitions.first().getName());
+        setDefinitionMode(definitions.at(0).getName());
         return;
     }
 
@@ -1584,16 +1693,6 @@ void MainWindow::toggleDefinitionMode() {
     setDefinitionMode(definitions.at(index).getName());
 }
 
-void MainWindow::showFullscreenToolbar(bool show) {
-    if (!fullscreenFlag) return;
-    mainToolBar->setVisible(show);
-}
-
-void MainWindow::showFullscreenPlaylist(bool show) {
-    if (!fullscreenFlag) return;
-    mediaView->setPlaylistVisible(show);
-}
-
 void MainWindow::clearRecentKeywords() {
     QSettings settings;
     settings.remove("recentKeywords");
@@ -1603,45 +1702,49 @@ void MainWindow::clearRecentKeywords() {
         searchView->updateRecentKeywords();
         searchView->updateRecentChannels();
     }
-    QAbstractNetworkCache *cache = The::networkAccessManager()->cache();
-    if (cache) cache->clear();
+    HttpUtils::clearCaches();
     showMessage(tr("Your privacy is now safe"));
 }
 
 void MainWindow::setManualPlay(bool enabled) {
     QSettings settings;
     settings.setValue("manualplay", QVariant::fromValue(enabled));
-    showActionInStatusBar(The::globalActions()->value("manualplay"), enabled);
+    if (views->currentWidget() == homeView &&
+        homeView->currentWidget() == homeView->getSearchView())
+        return;
+    showActionInStatusBar(getAction("manualplay"), enabled);
 }
 
 void MainWindow::updateDownloadMessage(const QString &message) {
-    The::globalActions()->value("downloads")->setText(message);
+    getAction("downloads")->setText(message);
 }
 
 void MainWindow::downloadsFinished() {
-    The::globalActions()->value("downloads")->setText(tr("&Downloads"));
+    getAction("downloads")->setText(tr("&Downloads"));
     showMessage(tr("Downloads complete"));
 }
 
 void MainWindow::toggleDownloads(bool show) {
-
     if (show) {
         stopAct->setShortcuts(QList<QKeySequence>() << QKeySequence(Qt::Key_MediaStop));
-        The::globalActions()->value("downloads")->setShortcuts(
-                    QList<QKeySequence>() << QKeySequence(Qt::CTRL + Qt::Key_J)
-                    << QKeySequence(Qt::Key_Escape));
+        getAction("downloads")
+                ->setShortcuts(QList<QKeySequence>() << QKeySequence(Qt::CTRL + Qt::Key_J)
+                                                     << QKeySequence(Qt::Key_Escape));
     } else {
-        The::globalActions()->value("downloads")->setShortcuts(
-                    QList<QKeySequence>() << QKeySequence(Qt::CTRL + Qt::Key_J));
-        stopAct->setShortcuts(QList<QKeySequence>() << QKeySequence(Qt::Key_Escape) << QKeySequence(Qt::Key_MediaStop));
+        getAction("downloads")
+                ->setShortcuts(QList<QKeySequence>() << QKeySequence(Qt::CTRL + Qt::Key_J));
+        stopAct->setShortcuts(QList<QKeySequence>() << QKeySequence(Qt::Key_Escape)
+                                                    << QKeySequence(Qt::Key_MediaStop));
     }
 
     if (!downloadView) {
         downloadView = new DownloadView(this);
         views->addWidget(downloadView);
     }
-    if (show) showWidget(downloadView);
-    else goBack();
+    if (show)
+        showWidget(downloadView);
+    else
+        goBack();
 }
 
 void MainWindow::suggestionAccepted(Suggestion *suggestion) {
@@ -1649,8 +1752,8 @@ void MainWindow::suggestionAccepted(Suggestion *suggestion) {
 }
 
 void MainWindow::search(const QString &query) {
-    QString q = query.trimmed();
-    if (q.length() == 0) return;
+    QString q = query.simplified();
+    if (q.isEmpty()) return;
     SearchParams *searchParams = new SearchParams();
     searchParams->setKeywords(q);
     showMedia(searchParams);
@@ -1660,10 +1763,9 @@ void MainWindow::dragEnterEvent(QDragEnterEvent *e) {
     if (e->mimeData()->hasFormat("text/uri-list")) {
         QList<QUrl> urls = e->mimeData()->urls();
         if (urls.isEmpty()) return;
-        QUrl url = urls.first();
+        const QUrl &url = urls.at(0);
         QString videoId = YTSearch::videoIdFromUrl(url.toString());
-        if (!videoId.isEmpty())
-            e->acceptProposedAction();
+        if (!videoId.isEmpty()) e->acceptProposedAction();
     }
 }
 
@@ -1671,9 +1773,8 @@ void MainWindow::dropEvent(QDropEvent *e) {
     if (!toolbarSearch->isEnabled()) return;
 
     QList<QUrl> urls = e->mimeData()->urls();
-    if (urls.isEmpty())
-        return;
-    QUrl url = urls.first();
+    if (urls.isEmpty()) return;
+    const QUrl &url = urls.at(0);
     QString videoId = YTSearch::videoIdFromUrl(url.toString());
     if (!videoId.isEmpty()) {
         setWindowTitle(url.toString());
@@ -1697,8 +1798,7 @@ void MainWindow::checkForUpdate() {
     // check it out
     if (updateChecker) delete updateChecker;
     updateChecker = new UpdateChecker();
-    connect(updateChecker, SIGNAL(newVersion(QString)),
-            this, SLOT(gotNewVersion(QString)));
+    connect(updateChecker, SIGNAL(newVersion(QString)), this, SLOT(gotNewVersion(QString)));
     updateChecker->checkForUpdate();
     settings.setValue(updateCheckKey, unixTime);
 }
@@ -1725,15 +1825,13 @@ void MainWindow::gotNewVersion(const QString &version) {
 
 void MainWindow::simpleUpdateDialog(const QString &version) {
     QMessageBox msgBox(this);
-    msgBox.setIconPixmap(
-                IconUtils::pixmap(":/images/app.png")
-                .scaled(64, 64, Qt::KeepAspectRatio, Qt::SmoothTransformation));
+    msgBox.setIconPixmap(IconUtils::pixmap(":/images/64x64/app.png"));
     msgBox.setText(tr("%1 version %2 is now available.").arg(Constants::NAME, version));
     msgBox.setModal(true);
     msgBox.setWindowModality(Qt::WindowModal);
     msgBox.addButton(QMessageBox::Close);
-    QPushButtonlaterButton = msgBox.addButton(tr("Remind me later"), QMessageBox::RejectRole);
-    QPushButtonupdateButton = msgBox.addButton(tr("Update"), QMessageBox::AcceptRole);
+    QPushButton *laterButton = msgBox.addButton(tr("Remind me later"), QMessageBox::RejectRole);
+    QPushButton *updateButton = msgBox.addButton(tr("Update"), QMessageBox::AcceptRole);
     msgBox.exec();
     if (msgBox.clickedButton() != laterButton) {
         QSettings settings;
@@ -1754,11 +1852,10 @@ void MainWindow::adjustMessageLabelPosition() {
 }
 
 void MainWindow::floatOnTop(bool onTop, bool showAction) {
-    if (showAction) showActionInStatusBar(The::globalActions()->value("ontop"), onTop);
+    if (showAction) showActionInStatusBar(getAction("ontop"), onTop);
 #ifdef APP_MAC
     mac::floatOnTop(winId(), onTop);
-    return;
-#endif
+#else
     if (onTop) {
         setWindowFlags(windowFlags() | Qt::WindowStaysOnTopHint);
         show();
@@ -1766,18 +1863,12 @@ void MainWindow::floatOnTop(bool onTop, bool showAction) {
         setWindowFlags(windowFlags() ^ Qt::WindowStaysOnTopHint);
         show();
     }
-}
-
-void MainWindow::adjustWindowSizeChanged(bool enabled) {
-    QSettings settings;
-    settings.setValue("adjustWindowSize", enabled);
-    if (enabled && views->currentWidget() == mediaView)
-        mediaView->adjustWindowSize();
+#endif
 }
 
 void MainWindow::restore() {
 #ifdef APP_MAC
-    mac::uncloseWindow(window()->winId());
+    mac::uncloseWindow(winId());
 #endif
 }
 
@@ -1789,8 +1880,8 @@ void MainWindow::messageReceived(const QString &message) {
     } else if (message == QLatin1String("--previous")) {
         if (skipBackwardAct->isEnabled()) skipBackwardAct->trigger();
     } else if (message == QLatin1String("--stop-after-this")) {
-        The::globalActions()->value("stopafterthis")->toggle();
-    }  else if (message.startsWith("--")) {
+        getAction("stopafterthis")->toggle();
+    } else if (message.startsWith("--")) {
         MainWindow::printHelp();
     } else if (!message.isEmpty()) {
         SearchParams *searchParams = new SearchParams();
@@ -1799,14 +1890,39 @@ void MainWindow::messageReceived(const QString &message) {
     }
 }
 
-void MainWindow::hideMouse() {
+void MainWindow::hideFullscreenUI() {
+    if (views->currentWidget() != mediaView) return;
     setCursor(Qt::BlankCursor);
-    mediaView->setPlaylistVisible(false);
+
+    QPoint p = mapFromGlobal(QCursor::pos());
+    const int x = p.x();
+
+    if (x > mediaView->getSidebar()->width()) mediaView->setSidebarVisibility(false);
+
 #ifndef APP_MAC
-    mainToolBar->setVisible(false);
+    const int y = p.y();
+    bool shouldHideToolbar = !toolbarSearch->hasFocus() && y > mainToolBar->height();
+    if (shouldHideToolbar) mainToolBar->setVisible(false);
 #endif
 }
 
+void MainWindow::toggleMenuVisibility() {
+    bool show = !menuBar()->isVisible();
+    menuBar()->setVisible(show);
+}
+
+void MainWindow::toggleMenuVisibilityWithMessage() {
+    bool show = !menuBar()->isVisible();
+    menuBar()->setVisible(show);
+    if (!show) {
+        QMessageBox msgBox(this);
+        msgBox.setText(tr("You can still access the menu bar by pressing the ALT key"));
+        msgBox.setModal(true);
+        msgBox.setWindowModality(Qt::WindowModal);
+        msgBox.exec();
+    }
+}
+
 #ifdef APP_MAC_STORE
 void MainWindow::rateOnAppStore() {
     QDesktopServices::openUrl(QUrl("macappstore://userpub.itunes.apple.com"
@@ -1830,6 +1946,18 @@ void MainWindow::printHelp() {
     std::cout << msg.toLocal8Bit().data();
 }
 
+QAction *MainWindow::getAction(const char *name) {
+    return actionMap.value(QByteArray::fromRawData(name, strlen(name)));
+}
+
+void MainWindow::addNamedAction(const QByteArray &name, QAction *action) {
+    actionMap.insert(name, action);
+}
+
+QMenu *MainWindow::getMenu(const char *name) {
+    return menuMap.value(QByteArray::fromRawData(name, strlen(name)));
+}
+
 void MainWindow::showMessage(const QString &message) {
     if (!isVisible()) return;
 #ifdef APP_MAC
@@ -1839,44 +1967,43 @@ void MainWindow::showMessage(const QString &message) {
         statusBar()->showMessage(message, 60000);
     else {
         messageLabel->setText(message);
-        messageLabel->resize(messageLabel->sizeHint());
-        adjustMessageLabelPosition();
-        messageLabel->show();
+        QSize size = messageLabel->sizeHint();
+        // round width to nearest 10 to avoid flicker with fast changing messages (e.g. volume
+        // changes)
+        int w = size.width();
+        const int multiple = 10;
+        w = w + multiple / 2;
+        w -= w % multiple;
+        size.setWidth(w);
+        messageLabel->resize(size);
+        if (messageLabel->isHidden()) {
+            adjustMessageLabelPosition();
+            messageLabel->show();
+        }
         messageTimer->start();
     }
 }
 
-#ifdef APP_ACTIVATION
-void MainWindow::showActivationView(bool transition) {
-    QWidget *activationView = ActivationView::instance();
-    if (views->currentWidget() == activationView) {
-        buy();
-        return;
+void MainWindow::hideMessage() {
+    if (messageLabel->isVisible()) {
+        messageLabel->hide();
+        messageLabel->clear();
     }
-    views->addWidget(activationView);
-    showWidget(activationView, transition);
-}
-
-void MainWindow::showActivationDialog() {
-    QTimer::singleShot(0, new ActivationDialog(this), SLOT(show()));
 }
 
-void MainWindow::buy() {
-    Extra::buy();
-}
-
-void MainWindow::hideBuyAction() {
-    QAction *action = The::globalActions()->value("buy");
-    action->setVisible(false);
-    action->setEnabled(false);
+#ifdef APP_ACTIVATION
+void MainWindow::showActivationView() {
+    QWidget *activationView = ActivationView::instance();
+    views->addWidget(activationView);
+    if (views->currentWidget() != activationView) showWidget(activationView);
 }
 #endif
 
 void MainWindow::showRegionsView() {
     if (!regionsView) {
         regionsView = new RegionsView(this);
-        connect(regionsView, SIGNAL(regionChanged()),
-                homeView->getStandardFeedsView(), SLOT(load()));
+        connect(regionsView, SIGNAL(regionChanged()), homeView->getStandardFeedsView(),
+                SLOT(load()));
         views->addWidget(regionsView);
     }
     showWidget(regionsView);
index eb1058f4874a7828603b5a928e8a6c67b2e407b4..e377a2fe3fd5bd8bec8af55161382a42c8a5bd77 100644 (file)
@@ -21,10 +21,7 @@ $END_LICENSE */
 #ifndef MAINWINDOW_H
 #define MAINWINDOW_H
 
-#include <QtGui>
-#if QT_VERSION >= 0x050000
 #include <QtWidgets>
-#endif
 #ifdef APP_PHONON
 #include <phonon/audiooutput.h>
 #include <phonon/volumeslider.h>
@@ -35,11 +32,13 @@ $END_LICENSE */
 class HomeView;
 class MediaView;
 class DownloadView;
+
 class SearchLineEdit;
 class UpdateChecker;
 class SearchParams;
 class VideoSource;
 class Suggestion;
+class ToolbarMenu;
 
 class MainWindow : public QMainWindow {
 
@@ -57,21 +56,34 @@ public:
     Phonon::AudioOutput* getAudioOutput() { return audioOutput; }
     Phonon::VolumeSlider *getVolumeSlider() { return volumeSlider; }
 #endif
-    QLabel *getCurrentTimeLabel() { return currentTime; }
+    QLabel *getCurrentTimeLabel() { return currentTimeLabel; }
     void readSettings();
     void writeSettings();
     static void printHelp();
+    QStackedWidget *getViews() { return views; }
     MediaView* getMediaView() { return mediaView; }
-    QToolButton* getRegionButton() { return regionButton; }
+    HomeView* getHomeView() { return homeView; }
     QAction* getRegionAction() { return regionAction; }
     SearchLineEdit *getToolbarSearch() { return toolbarSearch; }
 
+    QAction *getAction(const char *name);
+    void addNamedAction(const QByteArray &name, QAction *action);
+
+    QMenu *getMenu(const char *name);
+
     void showActionInStatusBar(QAction*, bool show);
     void setStatusBarVisibility(bool show);
     void adjustStatusBarVisibility();
 
+    void hideToolbar();
+    void showToolbar();
+
+#ifdef APP_ACTIVATION
+    void showActivationView();
+#endif
+
 public slots:
-    void showHome(bool transition = true);
+    void showHome();
     void showMedia(SearchParams *params);
     void showMedia(VideoSource *videoSource);
     void showRegionsView();
@@ -80,19 +92,18 @@ public slots:
     void quit();
     void suggestionAccepted(Suggestion *suggestion);
     void search(const QString &query);
+    bool canGoBack() { return history.size() > 1; }
     void goBack();
     void showMessage(const QString &message);
-#ifdef APP_ACTIVATION
-    void showActivationView(bool transition = true);
-    void showActivationDialog();
-    void buy();
-    void hideBuyAction();
-#endif
+    void hideMessage();
     bool isReallyFullScreen();
-    bool isCompact() { return m_compact; }
+    bool isCompact() { return compactModeActive; }
+    void missingKeyWarning();
+    void visitSite();
 
 signals:
     void currentTimeChanged(const QString &s);
+    void viewChanged();
 
 protected:
     void changeEvent(QEvent *e);
@@ -103,16 +114,17 @@ protected:
     void dropEvent(QDropEvent *e);
     void resizeEvent(QResizeEvent *e);
     void moveEvent(QMoveEvent *e);
+    void leaveEvent(QEvent *e);
+    void enterEvent(QEvent *e);
 
 private slots:
     void lazyInit();
     void checkForUpdate();
     void gotNewVersion(const QString &version);
-    void visitSite();
     void donate();
     void reportIssue();
     void about();
-    void fullscreen();
+    void toggleFullscreen();
     void updateUIForFullscreen();
     void compactView(bool enable);
     void stop();
@@ -126,28 +138,23 @@ private slots:
     void toggleDefinitionMode();
     void clearRecentKeywords();
 
-    // volume shortcuts
     void volumeUp();
     void volumeDown();
     void volumeMute();
-    void volumeChanged(qreal newVolume);
     void volumeMutedChanged(bool muted);
 
-    // fullscreen toolbar
-    void showFullscreenToolbar(bool show);
-    void showFullscreenPlaylist(bool show);
-
-    void setManualPlay(bool enabled);
     void updateDownloadMessage(const QString &);
     void downloadsFinished();
     void toggleDownloads(bool show);
 
+    void setManualPlay(bool enabled);
     void floatOnTop(bool, bool showAction = true);
-    void adjustWindowSizeChanged(bool enabled);
-
     void showStopAfterThisInStatusBar(bool show);
+    void hideFullscreenUI();
 
-    void hideMouse();
+    void toggleMenuVisibility();
+    void toggleMenuVisibilityWithMessage();
+    void toggleToolbarMenu();
 
 #ifdef APP_MAC_STORE
     void rateOnAppStore();
@@ -170,10 +177,13 @@ private:
 
     UpdateChecker *updateChecker;
 
+    QHash<QByteArray, QAction*> actionMap;
+    QHash<QByteArray, QMenu*> menuMap;
+
     // view mechanism
     QStackedWidget *views;
     QStack<QWidget*> history;
-    QList<QAction*> viewActions;
+    // QVector<QAction*> viewActions;
 
     // view widgets
     HomeView *homeView;
@@ -222,7 +232,6 @@ private:
     QToolBar *mainToolBar;
     SearchLineEdit *toolbarSearch;
     QToolBar *statusToolBar;
-    QToolButton *regionButton;
     QAction *regionAction;
 
     // phonon
@@ -236,18 +245,21 @@ private:
     Phonon::MediaObject *mediaObject;
     Phonon::AudioOutput *audioOutput;
 #endif
-    QLabel *currentTime;
-    // QLabel *totalTime;
-
-    bool fullscreenFlag;
-    bool m_maximized;
-    QTimer *mouseTimer;
-    bool m_compact;
+    QLabel *currentTimeLabel;
+
+    bool fullScreenActive;
+    bool maximizedBeforeFullScreen;
+    bool menuVisibleBeforeFullScreen;
+    QTimer *fullscreenTimer;
+    bool compactModeActive;
+    bool menuVisibleBeforeCompactMode;
     bool initialized;
 
     QLabel *messageLabel;
     QTimer *messageTimer;
 
+    ToolbarMenu *toolbarMenu;
+    QToolButton *toolbarMenuButton;
 };
 
 #endif
index 302c77a1ea478d6ca0c91329c42eb3fba6b48f86..286d56f226c9b3f3b622f06b0cedef0956c31b84 100644 (file)
@@ -19,77 +19,73 @@ along with Minitube.  If not, see <http://www.gnu.org/licenses/>.
 $END_LICENSE */
 
 #include "mediaview.h"
-#include "playlistmodel.h"
-#include "playlistview.h"
-#include "loadingwidget.h"
-#include "videoareawidget.h"
-#include "networkaccess.h"
-#include "minisplitter.h"
 #include "constants.h"
-#include "downloadmanager.h"
 #include "downloaditem.h"
+#include "downloadmanager.h"
+#include "http.h"
+#include "loadingwidget.h"
 #include "mainwindow.h"
-#include "temporary.h"
+#include "minisplitter.h"
+#include "playlistmodel.h"
+#include "playlistview.h"
 #include "refinesearchwidget.h"
-#include "sidebarwidget.h"
 #include "sidebarheader.h"
+#include "sidebarwidget.h"
+#include "temporary.h"
+#include "videoareawidget.h"
 #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 "iconutils.h"
+#include "searchparams.h"
+#include "videosource.h"
 #include "ytchannel.h"
+#include "ytsearch.h"
+#include "ytsinglevideosource.h"
 #ifdef APP_SNAPSHOT
 #include "snapshotsettings.h"
 #endif
 #include "datautils.h"
-#include "compatibility/qurlqueryhelper.h"
+#include "idle.h"
 
-namespace The {
-NetworkAccess* http();
-QHash<QString, QAction*>* globalActions();
-QHash<QString, QMenu*>* globalMenus();
-QNetworkAccessManager* networkAccessManager();
-}
-
-MediaView* MediaView::instance() {
+MediaView *MediaView::instance() {
     static MediaView *i = new MediaView();
     return i;
 }
 
-MediaView::MediaView(QWidget *parent) : View(parent)
-  , stopped(false)
-  , downloadItem(0)
-  #ifdef APP_SNAPSHOT
-  , snapshotSettings(0)
-  #endif
-  , pauseTime(0)
-{ }
+MediaView::MediaView(QWidget *parent)
+    : View(parent), stopped(false), downloadItem(0)
+#ifdef APP_SNAPSHOT
+      ,
+      snapshotSettings(0)
+#endif
+      ,
+      pauseTime(0) {
+}
 
 void MediaView::initialize() {
+    MainWindow *mainWindow = MainWindow::instance();
+
     QBoxLayout *layout = new QVBoxLayout(this);
     layout->setMargin(0);
 
     splitter = new MiniSplitter();
+    layout->addWidget(splitter);
 
-    playlistView = new PlaylistView(this);
-    // respond to the user doubleclicking a playlist item
+    playlistView = new PlaylistView();
+    playlistView->setParent(this);
     connect(playlistView, SIGNAL(activated(const QModelIndex &)),
             SLOT(itemActivated(const QModelIndex &)));
 
     playlistModel = new PlaylistModel();
-    connect(playlistModel, SIGNAL(activeRowChanged(int)),
-            SLOT(activeRowChanged(int)));
+    connect(playlistModel, SIGNAL(activeRowChanged(int)), SLOT(activeRowChanged(int)));
     // needed to restore the selection after dragndrop
-    connect(playlistModel, SIGNAL(needSelectionFor(QList<Video*>)),
-            SLOT(selectVideos(QList<Video*>)));
+    connect(playlistModel, SIGNAL(needSelectionFor(QVector<Video *>)),
+            SLOT(selectVideos(QVector<Video *>)));
     playlistView->setModel(playlistModel);
 
     connect(playlistView->selectionModel(),
@@ -100,16 +96,13 @@ void MediaView::initialize() {
 
     sidebar = new SidebarWidget(this);
     sidebar->setPlaylist(playlistView);
-    connect(sidebar->getRefineSearchWidget(), SIGNAL(searchRefined()),
-            SLOT(searchAgain()));
-    connect(playlistModel, SIGNAL(haveSuggestions(const QStringList &)),
-            sidebar, SLOT(showSuggestions(const QStringList &)));
-    connect(sidebar, SIGNAL(suggestionAccepted(QString)),
-            MainWindow::instance(), SLOT(search(QString)));
+    connect(sidebar->getRefineSearchWidget(), SIGNAL(searchRefined()), SLOT(searchAgain()));
+    connect(playlistModel, SIGNAL(haveSuggestions(const QStringList &)), sidebar,
+            SLOT(showSuggestions(const QStringList &)));
+    connect(sidebar, SIGNAL(suggestionAccepted(QString)), mainWindow, SLOT(search(QString)));
     splitter->addWidget(sidebar);
 
     videoAreaWidget = new VideoAreaWidget(this);
-    // videoAreaWidget->setMinimumSize(320,240);
 
 #ifdef APP_PHONON
     videoWidget = new Phonon::VideoWidget(this);
@@ -122,16 +115,17 @@ void MediaView::initialize() {
 
     splitter->addWidget(videoAreaWidget);
 
-    splitter->setStretchFactor(0, 0);
-    splitter->setStretchFactor(1, 8);
-
     // restore splitter state
     QSettings settings;
-    splitter->restoreState(settings.value("splitter").toByteArray());
+    if (settings.contains("splitter"))
+        splitter->restoreState(settings.value("splitter").toByteArray());
+    else {
+        int sidebarDefaultWidth = 180;
+        splitter->setSizes(QList<int>() << sidebarDefaultWidth
+                                        << splitter->size().width() - sidebarDefaultWidth);
+    }
     splitter->setChildrenCollapsible(false);
-    connect(splitter, SIGNAL(splitterMoved(int,int)), SLOT(maybeAdjustWindowSize()));
-
-    layout->addWidget(splitter);
+    connect(splitter, SIGNAL(splitterMoved(int, int)), SLOT(adjustWindowSize()));
 
     errorTimer = new QTimer(this);
     errorTimer->setSingleShot(true);
@@ -141,37 +135,30 @@ void MediaView::initialize() {
 #ifdef APP_ACTIVATION
     demoTimer = new QTimer(this);
     demoTimer->setSingleShot(true);
-    connect(demoTimer, SIGNAL(timeout()), SLOT(demoMessage()));
+    connect(demoTimer, &QTimer::timeout, mainWindow, &MainWindow::showActivationView,
+            Qt::QueuedConnection);
 #endif
 
-    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("open-in-browser")
-           #ifdef APP_SNAPSHOT
-            << The::globalActions()->value("snapshot")
-           #endif
-            << The::globalActions()->value("findVideoParts")
-            << The::globalActions()->value("skip")
-            << The::globalActions()->value("previous")
-            << 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");
+    connect(videoAreaWidget, SIGNAL(doubleClicked()), mainWindow->getAction("fullscreen"),
+            SLOT(trigger()));
+
+    QAction *refineSearchAction = mainWindow->getAction("refineSearch");
+    connect(refineSearchAction, SIGNAL(toggled(bool)), sidebar, SLOT(toggleRefineSearch(bool)));
+
+    const QVector<const char *> videoActionNames = {
+#ifdef APP_SNAPSHOT
+            "snapshot",
+#endif
+            "webpage",  "pagelink", "videolink",     "openInBrowser", "findVideoParts",
+            "skip",     "previous", "stopafterthis", "relatedVideos", "refineSearch",
+            "twitter",  "facebook", "email"};
+    currentVideoActions.reserve(videoActionNames.size());
+    for (auto *name : videoActionNames) {
+        currentVideoActions.append(mainWindow->getAction(name));
+    }
 
 #ifndef APP_PHONON_SEEK
-    QSlider *slider = MainWindow::instance()->getSlider();
+    QSlider *slider = mainWindow->getSlider();
     connect(slider, SIGNAL(valueChanged(int)), SLOT(sliderMoved(int)));
 #endif
 }
@@ -184,10 +171,11 @@ void MediaView::setMediaObject(Phonon::MediaObject *mediaObject) {
     connect(mediaObject, SIGNAL(stateChanged(Phonon::State, Phonon::State)),
             SLOT(stateChanged(Phonon::State, Phonon::State)));
     connect(mediaObject, SIGNAL(aboutToFinish()), SLOT(aboutToFinish()));
+    connect(mediaObject, SIGNAL(bufferStatus(int)), loadingWidget, SLOT(bufferStatus(int)));
 }
 #endif
 
-SearchParamsMediaView::getSearchParams() {
+SearchParams *MediaView::getSearchParams() {
     VideoSource *videoSource = playlistModel->getVideoSource();
     if (videoSource && videoSource->metaObject()->className() == QLatin1String("YTSearch")) {
         YTSearch *search = qobject_cast<YTSearch *>(videoSource);
@@ -199,17 +187,19 @@ SearchParams* MediaView::getSearchParams() {
 void MediaView::search(SearchParams *searchParams) {
     if (!searchParams->keywords().isEmpty()) {
         if (searchParams->keywords().startsWith("http://") ||
-                searchParams->keywords().startsWith("https://")) {
+            searchParams->keywords().startsWith("https://")) {
             QString videoId = YTSearch::videoIdFromUrl(searchParams->keywords());
             if (!videoId.isEmpty()) {
                 YTSingleVideoSource *singleVideoSource = new YTSingleVideoSource(this);
                 singleVideoSource->setVideoId(videoId);
                 setVideoSource(singleVideoSource);
+                QTime tstamp = YTSearch::videoTimestampFromUrl(searchParams->keywords());
+                pauseTime = QTime(0, 0).msecsTo(tstamp);
                 return;
             }
         }
     }
-    YTSearch *ytSearch = new YTSearch(searchParams, this);
+    YTSearch *ytSearch = new YTSearch(searchParams);
     ytSearch->setAsyncDetails(true);
     connect(ytSearch, SIGNAL(gotDetails()), playlistModel, SLOT(emitDataChanged()));
     setVideoSource(ytSearch);
@@ -218,10 +208,6 @@ void MediaView::search(SearchParams *searchParams) {
 void MediaView::setVideoSource(VideoSource *videoSource, bool addToHistory, bool back) {
     Q_UNUSED(back);
     stopped = false;
-
-#ifdef APP_ACTIVATION
-    demoTimer->stop();
-#endif
     errorTimer->stop();
 
     // qDebug() << "Adding VideoSource" << videoSource->getName() << videoSource;
@@ -247,6 +233,11 @@ void MediaView::setVideoSource(VideoSource *videoSource, bool addToHistory, bool
 
     playlistModel->setVideoSource(videoSource);
 
+    QSettings settings;
+    if (settings.value("manualplay", false).toBool()) {
+        videoAreaWidget->showPickMessage();
+    }
+
     sidebar->showPlaylist();
     sidebar->getRefineSearchWidget()->setSearchParams(getSearchParams());
     sidebar->hideSuggestions();
@@ -255,8 +246,6 @@ void MediaView::setVideoSource(VideoSource *videoSource, bool addToHistory, bool
     SearchParams *searchParams = getSearchParams();
     bool isChannel = searchParams && !searchParams->channelId().isEmpty();
     playlistView->setClickableAuthors(!isChannel);
-
-
 }
 
 void MediaView::searchAgain() {
@@ -296,20 +285,18 @@ int MediaView::getHistoryIndex() {
 }
 
 void MediaView::appear() {
+    MainWindow::instance()->showToolbar();
+
     Video *currentVideo = playlistModel->activeVideo();
     if (currentVideo) {
-        MainWindow::instance()->setWindowTitle(
-                    currentVideo->title() + " - " + Constants::NAME);
+        MainWindow::instance()->setWindowTitle(currentVideo->getTitle() + " - " + Constants::NAME);
     }
 
-    // optimize window for 16:9 video
-    QTimer::singleShot(50, this, SLOT(maybeAdjustWindowSize()));
-
     playlistView->setFocus();
 }
 
 void MediaView::disappear() {
-
+    MainWindow::instance()->hideToolbar();
 }
 
 void MediaView::handleError(const QString &message) {
@@ -322,7 +309,7 @@ void MediaView::handleError(const QString &message) {
 }
 
 #ifdef APP_PHONON
-void MediaView::stateChanged(Phonon::State newState, Phonon::State /*oldState*/) {
+void MediaView::stateChanged(Phonon::State newState, Phonon::State oldState) {
     if (pauseTime > 0 && (newState == Phonon::PlayingState || newState == Phonon::BufferingState)) {
         mediaObject->seek(pauseTime);
         pauseTime = 0;
@@ -331,15 +318,22 @@ void MediaView::stateChanged(Phonon::State newState, Phonon::State /*oldState*/)
         videoAreaWidget->showVideo();
     } else if (newState == Phonon::ErrorState) {
         qWarning() << "Phonon error:" << mediaObject->errorString() << mediaObject->errorType();
-        if (mediaObject->errorType() == Phonon::FatalError)
-            handleError(mediaObject->errorString());
+        if (mediaObject->errorType() == Phonon::FatalError) handleError(mediaObject->errorString());
+    }
+
+    if (newState == Phonon::PlayingState) {
+        bool res = Idle::preventDisplaySleep(QString("%1 is playing").arg(Constants::NAME));
+        if (!res) qWarning() << "Error disabling idle display sleep" << Idle::displayErrorMessage();
+    } else if (oldState == Phonon::PlayingState) {
+        bool res = Idle::allowDisplaySleep();
+        if (!res) qWarning() << "Error enabling idle display sleep" << Idle::displayErrorMessage();
     }
 }
 #endif
 
 void MediaView::pause() {
 #ifdef APP_PHONON
-    switch( mediaObject->state() ) {
+    switch (mediaObject->state()) {
     case Phonon::PlayingState:
         mediaObject->pause();
         pauseTimer.start();
@@ -347,9 +341,11 @@ void MediaView::pause() {
     default:
         if (pauseTimer.hasExpired(60000)) {
             pauseTimer.invalidate();
-            connect(playlistModel->activeVideo(), SIGNAL(gotStreamUrl(QUrl)), SLOT(resumeWithNewStreamUrl(QUrl)));
+            connect(playlistModel->activeVideo(), SIGNAL(gotStreamUrl(QUrl)),
+                    SLOT(resumeWithNewStreamUrl(QUrl)));
             playlistModel->activeVideo()->loadStreamUrl();
-        } else mediaObject->play();
+        } else
+            mediaObject->play();
         break;
     }
 #endif
@@ -364,7 +360,10 @@ void MediaView::stop() {
 
     while (!history.isEmpty()) {
         VideoSource *videoSource = history.takeFirst();
-        if (!videoSource->parent()) delete videoSource;
+        // Don't delete videoSource in the Browse view
+        if (!videoSource->parent()) {
+            videoSource->deleteLater();
+        }
     }
 
     playlistModel->abortSearch();
@@ -378,21 +377,22 @@ void MediaView::stop() {
         downloadItem = 0;
         currentVideoSize = 0;
     }
-    The::globalActions()->value("refine-search")->setChecked(false);
+    MainWindow::instance()->getAction("refineSearch")->setChecked(false);
     updateSubscriptionAction(0, false);
 #ifdef APP_ACTIVATION
     demoTimer->stop();
 #endif
 
-    foreach (QAction *action, currentVideoActions)
+    for (QAction *action : currentVideoActions)
         action->setEnabled(false);
 
-    QAction *a = The::globalActions()->value("download");
+    QAction *a = MainWindow::instance()->getAction("download");
     a->setEnabled(false);
     a->setVisible(false);
 
 #ifdef APP_PHONON
     mediaObject->stop();
+    mediaObject->clear();
 #endif
     currentVideoId.clear();
 
@@ -401,7 +401,7 @@ void MediaView::stop() {
     slider->setEnabled(false);
     slider->setValue(0);
 #else
-    Phonon::SeekSlider *slider = MainWindow::instance()->getSeekSlider();
+// Phonon::SeekSlider *slider = MainWindow::instance()->getSeekSlider();
 #endif
 
 #ifdef APP_SNAPSHOT
@@ -412,7 +412,7 @@ void MediaView::stop() {
 #endif
 }
 
-const QString & MediaView::getCurrentVideoId() {
+const QString &MediaView::getCurrentVideoId() {
     return currentVideoId;
 }
 
@@ -434,16 +434,18 @@ void MediaView::activeRowChanged(int row) {
     Video *video = playlistModel->videoAt(row);
     if (!video) return;
 
+    // optimize window for 16:9 video
+    adjustWindowSize();
+
     videoAreaWidget->showLoading(video);
 
-    connect(video, SIGNAL(gotStreamUrl(QUrl)),
-            SLOT(gotStreamUrl(QUrl)), Qt::UniqueConnection);
-    connect(video, SIGNAL(errorStreamUrl(QString)),
-            SLOT(skip()), Qt::UniqueConnection);
+    connect(video, SIGNAL(gotStreamUrl(QUrl)), SLOT(gotStreamUrl(QUrl)), Qt::UniqueConnection);
+    connect(video, SIGNAL(errorStreamUrl(QString)), SLOT(skip()), Qt::UniqueConnection);
     video->loadStreamUrl();
 
     // video title in titlebar
-    MainWindow::instance()->setWindowTitle(video->title() + " - " + Constants::NAME);
+    MainWindow::instance()->setWindowTitle(video->getTitle() + QLatin1String(" - ") +
+                                           QLatin1String(Constants::NAME));
 
     // ensure active item is visible
     if (row != -1) {
@@ -452,26 +454,27 @@ void MediaView::activeRowChanged(int row) {
     }
 
     // enable/disable actions
-    The::globalActions()->value("download")->setEnabled(
-                DownloadManager::instance()->itemForVideo(video) == 0);
-    The::globalActions()->value("previous")->setEnabled(row > 0);
-    The::globalActions()->value("stopafterthis")->setEnabled(true);
-    The::globalActions()->value("related-videos")->setEnabled(true);
-
-    bool enableDownload = video->license() == Video::LicenseCC;
+    MainWindow::instance()
+            ->getAction("download")
+            ->setEnabled(DownloadManager::instance()->itemForVideo(video) == 0);
+    MainWindow::instance()->getAction("previous")->setEnabled(row > 0);
+    MainWindow::instance()->getAction("stopafterthis")->setEnabled(true);
+    MainWindow::instance()->getAction("relatedVideos")->setEnabled(true);
+
+    bool enableDownload = video->getLicense() == Video::LicenseCC;
 #ifdef APP_ACTIVATION
     enableDownload = enableDownload || Activation::instance().isLegacy();
 #endif
 #ifdef APP_DOWNLOADS
     enableDownload = true;
 #endif
-    QAction *a = The::globalActions()->value("download");
+    QAction *a = MainWindow::instance()->getAction("download");
     a->setEnabled(enableDownload);
     a->setVisible(enableDownload);
 
-    updateSubscriptionAction(video, YTChannel::isSubscribed(video->channelId()));
+    updateSubscriptionAction(video, YTChannel::isSubscribed(video->getChannelId()));
 
-    foreach (QAction *action, currentVideoActions)
+    for (QAction *action : currentVideoActions)
         action->setEnabled(true);
 
 #ifndef APP_PHONON_SEEK
@@ -505,7 +508,7 @@ void MediaView::gotStreamUrl(QUrl streamUrl) {
     }
     video->disconnect(this);
 
-    currentVideoId = video->id();
+    currentVideoId = video->getId();
 
 #ifdef APP_PHONON_SEEK
     mediaObject->setCurrentSource(streamUrl);
@@ -525,12 +528,14 @@ void MediaView::gotStreamUrl(QUrl streamUrl) {
     }
 
 #ifdef APP_ACTIVATION
-    if (!Activation::instance().isActivated())
-        demoTimer->start(180000);
+    if (!Activation::instance().isActivated() && !demoTimer->isActive()) {
+        int ms = (60000 * 5) + (qrand() % (60000 * 5));
+        demoTimer->start(ms);
+    }
 #endif
 
 #ifdef APP_EXTRA
-    Extra::notify(video->title(), video->channelTitle(), video->formattedDuration());
+    Extra::notify(video->getTitle(), video->getChannelTitle(), video->getFormattedDuration());
 #endif
 
     ChannelAggregator::instance()->videoWatched(video);
@@ -538,10 +543,11 @@ void MediaView::gotStreamUrl(QUrl streamUrl) {
 
 void MediaView::downloadStatusChanged() {
     // qDebug() << __PRETTY_FUNCTION__;
-    switch(downloadItem->status()) {
+    switch (downloadItem->status()) {
     case Downloading:
         // qDebug() << "Downloading";
-        if (downloadItem->offset() == 0) startPlaying();
+        if (downloadItem->offset() == 0)
+            startPlaying();
         else {
 #ifdef APP_PHONON
             // qDebug() << "Seeking to" << downloadItem->offset();
@@ -554,7 +560,7 @@ void MediaView::downloadStatusChanged() {
         // qDebug() << "Starting";
         break;
     case Finished:
-        // qDebug() << "Finished" << mediaObject->state();
+// qDebug() << "Finished" << mediaObject->state();
 #ifdef APP_PHONON_SEEK
         MainWindow::instance()->getSeekSlider()->setEnabled(mediaObject->isSeekable());
 #endif
@@ -599,7 +605,6 @@ void MediaView::startPlaying() {
 
 void MediaView::itemActivated(const QModelIndex &index) {
     if (playlistModel->rowExists(index.row())) {
-
         // if it's the current video, just rewind and play
         Video *activeVideo = playlistModel->activeVideo();
         Video *video = playlistModel->videoAt(index.row());
@@ -609,7 +614,8 @@ void MediaView::itemActivated(const QModelIndex &index) {
 #ifdef APP_PHONON
             mediaObject->play();
 #endif
-        } else playlistModel->setActiveRow(index.row());
+        } else
+            playlistModel->setActiveRow(index.row());
 
         // the user doubleclicked on the "Search More" item
     } else {
@@ -671,10 +677,11 @@ void MediaView::playbackFinished() {
         // mediaObject->seek(currentTime);
         QTimer::singleShot(500, this, SLOT(playbackResume()));
     } else {
-        QAction* stopAfterThisAction = The::globalActions()->value("stopafterthis");
+        QAction *stopAfterThisAction = MainWindow::instance()->getAction("stopafterthis");
         if (stopAfterThisAction->isChecked()) {
             stopAfterThisAction->setChecked(false);
-        } else skip();
+        } else
+            skip();
     }
 #endif
 }
@@ -684,42 +691,42 @@ void MediaView::playbackResume() {
 #ifdef APP_PHONON
     const qint64 currentTime = mediaObject->currentTime();
     // qDebug() << __PRETTY_FUNCTION__ << currentTime;
-    if (currentTime > 0)
-        mediaObject->seek(currentTime);
+    if (currentTime > 0) mediaObject->seek(currentTime);
     mediaObject->play();
 #endif
 }
 
 void MediaView::openWebPage() {
-    Videovideo = playlistModel->activeVideo();
+    Video *video = playlistModel->activeVideo();
     if (!video) return;
 #ifdef APP_PHONON
     mediaObject->pause();
 #endif
-    QString url = video->webpage() + QLatin1String("&t=") + QString::number(mediaObject->currentTime() / 1000);
+    QString url = video->getWebpage() + QLatin1String("&t=") +
+                  QString::number(mediaObject->currentTime() / 1000);
     QDesktopServices::openUrl(url);
 }
 
 void MediaView::copyWebPage() {
-    Videovideo = playlistModel->activeVideo();
+    Video *video = playlistModel->activeVideo();
     if (!video) return;
-    QString address = video->webpage();
+    QString address = video->getWebpage();
     QApplication::clipboard()->setText(address);
     QString message = tr("You can now paste the YouTube link into another application");
     MainWindow::instance()->showMessage(message);
 }
 
 void MediaView::copyVideoLink() {
-    Videovideo = playlistModel->activeVideo();
+    Video *video = playlistModel->activeVideo();
     if (!video) return;
     QApplication::clipboard()->setText(video->getStreamUrl().toEncoded());
-    QString message = tr("You can now paste the video stream URL into another application")
-            + ". " + tr("The link will be valid only for a limited time.");
+    QString message = tr("You can now paste the video stream URL into another application") + ". " +
+                      tr("The link will be valid only for a limited time.");
     MainWindow::instance()->showMessage(message);
 }
 
 void MediaView::openInBrowser() {
-    Videovideo = playlistModel->activeVideo();
+    Video *video = playlistModel->activeVideo();
     if (!video) return;
 #ifdef APP_PHONON
     mediaObject->pause();
@@ -733,8 +740,8 @@ void MediaView::removeSelected() {
     playlistModel->removeIndexes(indexes);
 }
 
-void MediaView::selectVideos(QList<Video*> videos) {
-    foreach (Video *video, videos) {
+void MediaView::selectVideos(const QVector<Video *> &videos) {
+    for (Video *video : videos) {
         QModelIndex index = playlistModel->indexForVideo(video);
         playlistView->selectionModel()->select(index, QItemSelectionModel::Select);
         playlistView->scrollTo(index, QAbstractItemView::EnsureVisible);
@@ -744,9 +751,9 @@ void MediaView::selectVideos(QList<Video*> videos) {
 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);
-    The::globalActions()->value("moveDown")->setEnabled(gotSelection);
+    MainWindow::instance()->getAction("remove")->setEnabled(gotSelection);
+    MainWindow::instance()->getAction("moveUp")->setEnabled(gotSelection);
+    MainWindow::instance()->getAction("moveDown")->setEnabled(gotSelection);
 }
 
 void MediaView::moveUpSelected() {
@@ -757,8 +764,8 @@ void MediaView::moveUpSelected() {
     playlistModel->move(indexes, true);
 
     // set current index after row moves to something more intuitive
-    int row = indexes.first().row();
-    playlistView->selectionModel()->setCurrentIndex(playlistModel->index(row>1?row:1),
+    int row = indexes.at(0).row();
+    playlistView->selectionModel()->setCurrentIndex(playlistModel->index(row > 1 ? row : 1),
                                                     QItemSelectionModel::NoUpdate);
 }
 
@@ -771,86 +778,50 @@ void MediaView::moveDownSelected() {
 
     // 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);
+    int row = indexes.at(0).row() + 1, max = playlistModel->rowCount() - 2;
+    playlistView->selectionModel()->setCurrentIndex(playlistModel->index(row > max ? max : row),
+                                                    QItemSelectionModel::NoUpdate);
 }
 
-void MediaView::setPlaylistVisible(bool visible) {
-    if (splitter->widget(0)->isVisible() == visible) return;
-    splitter->widget(0)->setVisible(visible);
+void MediaView::setSidebarVisibility(bool visible) {
+    if (sidebar->isVisible() == visible) return;
+    sidebar->setVisible(visible);
+    sidebar->raise();
     playlistView->setFocus();
 }
 
-bool MediaView::isPlaylistVisible() {
-    return splitter->widget(0)->isVisible();
-}
-
-void MediaView::saveSplitterState() {
-    QSettings settings;
-    settings.setValue("splitter", splitter->saveState());
-}
-
-#ifdef APP_ACTIVATION
-
-static QPushButton *continueButton;
-
-void MediaView::demoMessage() {
-#ifdef APP_PHONON
-    if (mediaObject->state() != Phonon::PlayingState) return;
-    mediaObject->pause();
+void MediaView::removeSidebar() {
+    sidebar->hide();
+#ifndef APP_MAC
+    sidebar->setParent(window());
+    sidebar->move(0, 0);
+    sidebar->raise();
 #endif
+}
 
-    QMessageBox msgBox(this);
-    msgBox.setIconPixmap(IconUtils::pixmap(":/images/app.png").scaled(64, 64, Qt::KeepAspectRatio, Qt::SmoothTransformation));
-    msgBox.setText(tr("This is just the demo version of %1.").arg(Constants::NAME));
-    msgBox.setInformativeText(tr("It allows you to test the application and see if it works for you."));
-    msgBox.setModal(true);
-    // make it a "sheet" on the Mac
-    msgBox.setWindowModality(Qt::WindowModal);
-
-    continueButton = msgBox.addButton("5", QMessageBox::RejectRole);
-    continueButton->setEnabled(false);
-    QPushButton *buyButton = msgBox.addButton(tr("Get the full version"), QMessageBox::ActionRole);
-
-    QTimeLine *timeLine = new QTimeLine(6000, this);
-    timeLine->setCurveShape(QTimeLine::LinearCurve);
-    timeLine->setFrameRange(5, 0);
-    connect(timeLine, SIGNAL(frameChanged(int)), SLOT(updateContinueButton(int)));
-    timeLine->start();
-
-    msgBox.exec();
-
-    if (msgBox.clickedButton() == buyButton) {
-        MainWindow::instance()->showActivationView();
-    } else {
-#ifdef APP_PHONON
-        mediaObject->play();
+void MediaView::restoreSidebar() {
+    sidebar->show();
+#ifndef APP_MAC
+    splitter->insertWidget(0, sidebar);
 #endif
-        demoTimer->start(600000);
-    }
-
-    delete timeLine;
-
 }
 
-void MediaView::updateContinueButton(int value) {
-    if (value == 0) {
-        continueButton->setText(tr("Continue"));
-        continueButton->setEnabled(true);
-    } else {
-        continueButton->setText(QString::number(value));
-    }
+bool MediaView::isSidebarVisible() {
+    return sidebar->isVisible();
 }
 
-#endif
+void MediaView::saveSplitterState() {
+    QSettings settings;
+    settings.setValue("splitter", splitter->saveState());
+}
 
 void MediaView::downloadVideo() {
-    Videovideo = playlistModel->activeVideo();
+    Video *video = playlistModel->activeVideo();
     if (!video) return;
     DownloadManager::instance()->addItem(video);
-    MainWindow::instance()->showActionInStatusBar(The::globalActions()->value("downloads"), true);
-    QString message = tr("Downloading %1").arg(video->title());
+    MainWindow::instance()->showActionInStatusBar(MainWindow::instance()->getAction("downloads"),
+                                                  true);
+    QString message = tr("Downloading %1").arg(video->getTitle());
     MainWindow::instance()->showMessage(message);
 }
 
@@ -865,18 +836,19 @@ void MediaView::snapshot() {
     }
 
     // QPixmap pixmap = QPixmap::grabWindow(videoWidget->winId());
-    QPixmap pixmap = QPixmap::fromImage(image.scaled(videoWidget->size(), Qt::KeepAspectRatio, Qt::SmoothTransformation));
+    QPixmap pixmap = QPixmap::fromImage(
+            image.scaled(videoWidget->size(), Qt::KeepAspectRatio, Qt::SmoothTransformation));
     videoAreaWidget->showSnapshotPreview(pixmap);
 
-    Videovideo = playlistModel->activeVideo();
+    Video *video = playlistModel->activeVideo();
     if (!video) return;
 
     QString location = SnapshotSettings::getCurrentLocation();
     QDir dir(location);
     if (!dir.exists()) dir.mkpath(location);
-    QString basename = video->title();
-    QString format = video->duration() > 3600 ? "h_mm_ss" : "m_ss";
-    basename += " (" + QTime().addSecs(currentTime).toString(format) + ")";
+    QString basename = video->getTitle();
+    QString format = video->getDuration() > 3600 ? "h_mm_ss" : "m_ss";
+    basename += " (" + QTime(0, 0, 0).addSecs(currentTime).toString(format) + ")";
     basename = DataUtils::stringToFilename(basename);
     QString filename = location + "/" + basename + ".png";
     qDebug() << filename;
@@ -910,15 +882,14 @@ void MediaView::startDownloading() {
     }
     QString tempFile = Temporary::filename();
     downloadItem = new DownloadItem(videoCopy, video->getStreamUrl(), tempFile, this);
-    connect(downloadItem, SIGNAL(statusChanged()),
-            SLOT(downloadStatusChanged()), Qt::UniqueConnection);
-    connect(downloadItem, SIGNAL(bufferProgress(int)),
-            loadingWidget, SLOT(bufferStatus(int)), Qt::UniqueConnection);
+    connect(downloadItem, SIGNAL(statusChanged()), SLOT(downloadStatusChanged()),
+            Qt::UniqueConnection);
+    connect(downloadItem, SIGNAL(bufferProgress(int)), loadingWidget, SLOT(bufferStatus(int)),
+            Qt::UniqueConnection);
     // connect(downloadItem, SIGNAL(finished()), SLOT(itemFinished()));
-    connect(video, SIGNAL(errorStreamUrl(QString)),
-            SLOT(handleError(QString)), Qt::UniqueConnection);
-    connect(downloadItem, SIGNAL(error(QString)),
-            SLOT(handleError(QString)), Qt::UniqueConnection);
+    connect(video, SIGNAL(errorStreamUrl(QString)), SLOT(handleError(QString)),
+            Qt::UniqueConnection);
+    connect(downloadItem, SIGNAL(error(QString)), SLOT(handleError(QString)), Qt::UniqueConnection);
     downloadItem->start();
 }
 
@@ -935,19 +906,12 @@ void MediaView::resumeWithNewStreamUrl(const QUrl &streamUrl) {
     video->disconnect(this);
 }
 
-void MediaView::maybeAdjustWindowSize() {
-    QSettings settings;
-    if (settings.value("adjustWindowSize", true).toBool())
-        adjustWindowSize();
-}
-
 void MediaView::sliderMoved(int value) {
     Q_UNUSED(value);
 #ifdef APP_PHONON
 #ifndef APP_PHONON_SEEK
 
-    if (currentVideoSize <= 0 || !downloadItem || !mediaObject->isSeekable())
-        return;
+    if (currentVideoSize <= 0 || !downloadItem || !mediaObject->isSeekable()) return;
 
     QSlider *slider = MainWindow::instance()->getSlider();
     if (slider->isSliderDown()) return;
@@ -958,8 +922,7 @@ void MediaView::sliderMoved(int value) {
     if (needsDownload) {
         if (downloadItem->isBuffered(offset)) {
             qint64 realOffset = downloadItem->blankAtOffset(offset);
-            if (offset < currentVideoSize)
-                downloadItem->seekTo(realOffset, false);
+            if (offset < currentVideoSize) downloadItem->seekTo(realOffset, false);
             mediaObject->seek(offsetToTime(offset));
         } else {
             mediaObject->pause();
@@ -981,52 +944,48 @@ qint64 MediaView::offsetToTime(qint64 offset) {
 }
 
 void MediaView::findVideoParts() {
-
-    // parts
-    Video* video = playlistModel->activeVideo();
+    Video *video = playlistModel->activeVideo();
     if (!video) return;
 
-    QString query = video->title();
+    QString query = video->getTitle();
 
-    static QString optionalSpace = "\\s*";
-    static QString staticCounterSeparators = "[\\/\\-]";
-    QString counterSeparators = "( of | " +
-            tr("of", "Used in video parts, as in '2 of 3'") +
-            " |" + staticCounterSeparators + ")";
+    const QLatin1String optionalSpace("\\s*");
+    const QLatin1String staticCounterSeparators("[\\/\\-]");
+    const QString counterSeparators =
+            QLatin1String("( of | ") + tr("of", "Used in video parts, as in '2 of 3'") +
+            QLatin1String(" |") + staticCounterSeparators + QLatin1String(")");
 
     // numbers from 1 to 15
-    static QString counterNumber = "([1-9]|1[0-5])";
+    const QLatin1String 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);
 
     SearchParams *searchParams = new SearchParams();
     searchParams->setTransient(true);
     searchParams->setKeywords(query);
-    searchParams->setChannelId(video->channelId());
+    searchParams->setChannelId(video->getChannelId());
 
     /*
     if (!numberAsWords) {
@@ -1038,79 +997,59 @@ void MediaView::findVideoParts() {
     */
 
     search(searchParams);
-
 }
 
 void MediaView::relatedVideos() {
-    Videovideo = playlistModel->activeVideo();
+    Video *video = playlistModel->activeVideo();
     if (!video) return;
     YTSingleVideoSource *singleVideoSource = new YTSingleVideoSource();
     singleVideoSource->setVideo(video->clone());
     singleVideoSource->setAsyncDetails(true);
     setVideoSource(singleVideoSource);
-    The::globalActions()->value("related-videos")->setEnabled(false);
+    MainWindow::instance()->getAction("relatedVideos")->setEnabled(false);
 }
 
 void MediaView::shareViaTwitter() {
-    Videovideo = playlistModel->activeVideo();
+    Video *video = playlistModel->activeVideo();
     if (!video) return;
     QUrl url("https://twitter.com/intent/tweet");
-    {
-        QUrlQueryHelper urlHelper(url);
-        urlHelper.addQueryItem("via", "minitubeapp");
-        urlHelper.addQueryItem("text", video->title());
-        urlHelper.addQueryItem("url", video->webpage());
-    }
+    QUrlQuery q;
+    q.addQueryItem("via", "minitubeapp");
+    q.addQueryItem("text", video->getTitle());
+    q.addQueryItem("url", video->getWebpage());
+    url.setQuery(q);
     QDesktopServices::openUrl(url);
 }
 
 void MediaView::shareViaFacebook() {
-    Videovideo = playlistModel->activeVideo();
+    Video *video = playlistModel->activeVideo();
     if (!video) return;
     QUrl url("https://www.facebook.com/sharer.php");
-    {
-        QUrlQueryHelper urlHelper(url);
-        urlHelper.addQueryItem("t", video->title());
-        urlHelper.addQueryItem("u", video->webpage());
-    }
-    QDesktopServices::openUrl(url);
-}
-
-void MediaView::shareViaBuffer() {
-    Video* video = playlistModel->activeVideo();
-    if (!video) return;
-    QUrl url("http://bufferapp.com/add");
-    {
-        QUrlQueryHelper urlHelper(url);
-        urlHelper.addQueryItem("via", "minitubeapp");
-        urlHelper.addQueryItem("text", video->title());
-        urlHelper.addQueryItem("url", video->webpage());
-        urlHelper.addQueryItem("picture", video->thumbnailUrl());
-    }
+    QUrlQuery q;
+    q.addQueryItem("t", video->getTitle());
+    q.addQueryItem("u", video->getWebpage());
+    url.setQuery(q);
     QDesktopServices::openUrl(url);
 }
 
 void MediaView::shareViaEmail() {
-    Videovideo = playlistModel->activeVideo();
+    Video *video = playlistModel->activeVideo();
     if (!video) return;
     QUrl url("mailto:");
-    {
-        QUrlQueryHelper urlHelper(url);
-        urlHelper.addQueryItem("subject", video->title());
-        const QString body = video->title() + "\n" +
-                video->webpage() + "\n\n" +
-                tr("Sent from %1").arg(Constants::NAME) + "\n" +
-                Constants::WEBSITE;
-        urlHelper.addQueryItem("body", body);
-    }
+    QUrlQuery q;
+    q.addQueryItem("subject", video->getTitle());
+    const QString body = video->getTitle() + "\n" + video->getWebpage() + "\n\n" +
+                         tr("Sent from %1").arg(Constants::NAME) + "\n" + Constants::WEBSITE;
+    q.addQueryItem("body", body);
+    url.setQuery(q);
     QDesktopServices::openUrl(url);
 }
 
 void MediaView::authorPushed(QModelIndex index) {
-    Videovideo = playlistModel->videoAt(index.row());
+    Video *video = playlistModel->videoAt(index.row());
     if (!video) return;
 
-    QString channelId = video->channelId();
+    QString channelId = video->getChannelId();
     // if (channelId.isEmpty()) channelId = video->channelTitle();
     if (channelId.isEmpty()) return;
 
@@ -1123,7 +1062,7 @@ void MediaView::authorPushed(QModelIndex index) {
 }
 
 void MediaView::updateSubscriptionAction(Video *video, bool subscribed) {
-    QAction *subscribeAction = The::globalActions()->value("subscribe-channel");
+    QAction *subscribeAction = MainWindow::instance()->getAction("subscribeChannel");
 
     QString subscribeTip;
     QString subscribeText;
@@ -1131,11 +1070,11 @@ void MediaView::updateSubscriptionAction(Video *video, bool subscribed) {
         subscribeText = subscribeAction->property("originalText").toString();
         subscribeAction->setEnabled(false);
     } else if (subscribed) {
-        subscribeText = tr("Unsubscribe from %1").arg(video->channelTitle());
+        subscribeText = tr("Unsubscribe from %1").arg(video->getChannelTitle());
         subscribeTip = subscribeText;
         subscribeAction->setEnabled(true);
     } else {
-        subscribeText = tr("Subscribe to %1").arg(video->channelTitle());
+        subscribeText = tr("Subscribe to %1").arg(video->getChannelTitle());
         subscribeTip = subscribeText;
         subscribeAction->setEnabled(true);
     }
@@ -1143,10 +1082,10 @@ void MediaView::updateSubscriptionAction(Video *video, bool subscribed) {
     subscribeAction->setStatusTip(subscribeTip);
 
     if (subscribed) {
-#ifdef APP_LINUX
+#ifdef APP_LINUX_NO
         static QIcon tintedIcon;
         if (tintedIcon.isNull()) {
-            QList<QSize> sizes;
+            QVector<QSize> sizes;
             sizes << QSize(16, 16);
             tintedIcon = IconUtils::tintedIcon("bookmark-new", QColor(254, 240, 0), sizes);
         }
@@ -1164,35 +1103,32 @@ void MediaView::updateSubscriptionAction(Video *video, bool subscribed) {
 void MediaView::toggleSubscription() {
     Video *video = playlistModel->activeVideo();
     if (!video) return;
-    QString userId = video->channelId();
+    QString userId = video->getChannelId();
     if (userId.isEmpty()) return;
     bool subscribed = YTChannel::isSubscribed(userId);
     if (subscribed) {
         YTChannel::unsubscribe(userId);
-        MainWindow::instance()->showMessage(tr("Unsubscribed from %1").arg(video->channelTitle()));
+        MainWindow::instance()->showMessage(
+                tr("Unsubscribed from %1").arg(video->getChannelTitle()));
     } else {
         YTChannel::subscribe(userId);
-        MainWindow::instance()->showMessage(tr("Subscribed to %1").arg(video->channelTitle()));
+        MainWindow::instance()->showMessage(tr("Subscribed to %1").arg(video->getChannelTitle()));
     }
     updateSubscriptionAction(video, !subscribed);
 }
 
 void MediaView::adjustWindowSize() {
-    if (!MainWindow::instance()->isMaximized() && !MainWindow::instance()->isFullScreen()) {
+    Video *video = playlistModel->activeVideo();
+    if (!video) return;
+    QWidget *window = this->window();
+    if (!window->isMaximized() && !window->isFullScreen()) {
         const double ratio = 16. / 9.;
-        const int w = videoAreaWidget->width();
-        const int h = videoAreaWidget->height();
-        const double currentVideoRatio = (double)w / (double)h;
+        const double w = (double)videoAreaWidget->width();
+        const double h = (double)videoAreaWidget->height();
+        const double currentVideoRatio = w / h;
         if (currentVideoRatio != ratio) {
-            if (false && currentVideoRatio > ratio) {
-                // we have vertical black bars
-                int newWidth = (MainWindow::instance()->width() - w) + (h * ratio);
-                MainWindow::instance()->resize(newWidth, MainWindow::instance()->height());
-            } else {
-                // horizontal black bars
-                int newHeight = (MainWindow::instance()->height() - h) + (w / ratio);
-                MainWindow::instance()->resize(MainWindow::instance()->width(), newHeight);
-            }
+            int newHeight = std::round((window->height() - h) + (w / ratio));
+            window->resize(window->width(), newHeight);
         }
     }
 }
index 54024987cab435c981916bb18a0cc50240c8b039..ae0b6fd3c432fbc0156709ffdd1e76ed8c442cbe 100644 (file)
@@ -21,10 +21,7 @@ $END_LICENSE */
 #ifndef __MEDIAVIEW_H__
 #define __MEDIAVIEW_H__
 
-#include <QtGui>
-#if QT_VERSION >= 0x050000
 #include <QtWidgets>
-#endif
 #include <QtNetwork>
 #ifdef APP_PHONON
 #include <phonon/mediaobject.h>
@@ -46,10 +43,6 @@ class VideoSource;
 class SnapshotSettings;
 #endif
 
-namespace The {
-QHash<QString, QAction*>* globalActions();
-}
-
 class MediaView : public View {
 
     Q_OBJECT
@@ -64,7 +57,7 @@ public:
 #ifdef APP_PHONON
     void setMediaObject(Phonon::MediaObject *mediaObject);
 #endif
-    const QList<VideoSource*> & getHistory() { return history; }
+    const QVector<VideoSource*> & getHistory() { return history; }
     int getHistoryIndex();
     PlaylistModel* getPlaylistModel() { return playlistModel; }
     const QString &getCurrentVideoId();
@@ -85,13 +78,15 @@ public slots:
     void openInBrowser();
     void shareViaTwitter();
     void shareViaFacebook();
-    void shareViaBuffer();
     void shareViaEmail();
     void removeSelected();
     void moveUpSelected();
     void moveDownSelected();
-    bool isPlaylistVisible();
-    void setPlaylistVisible(bool visible=true);
+    bool isSidebarVisible();
+    void setSidebarVisibility(bool visible);
+    SidebarWidget *getSidebar() { return sidebar; }
+    void removeSidebar();
+    void restoreSidebar();
     void saveSplitterState();
     void downloadVideo();
 #ifdef APP_SNAPSHOT
@@ -106,14 +101,13 @@ public slots:
     void goForward();
     void toggleSubscription();
     void adjustWindowSize();
-    void maybeAdjustWindowSize();
 
 private slots:
     // list/model
     void itemActivated(const QModelIndex &index);
     void selectionChanged (const QItemSelection & selected, const QItemSelection & deselected);
     void activeRowChanged(int);
-    void selectVideos(QList<Video*> videos);
+    void selectVideos(const QVector<Video*> &videos);
     void gotStreamUrl(QUrl streamUrl);
     void handleError(const QString &message);
     // phonon
@@ -121,10 +115,6 @@ private slots:
     void stateChanged(Phonon::State newState, Phonon::State oldState);
 #endif
     void aboutToFinish();
-#ifdef APP_ACTIVATION
-    void demoMessage();
-    void updateContinueButton(int);
-#endif
     void startPlaying();
     void downloadStatusChanged();
     void playbackFinished();
@@ -164,8 +154,8 @@ private:
 #endif
 
     DownloadItem *downloadItem;
-    QList<VideoSource*> history;
-    QList<QAction*> currentVideoActions;
+    QVector<VideoSource*> history;
+    QVector<QAction*> currentVideoActions;
 
     qint64 currentVideoSize;
 
index 8232da8966c01f16250c08a49ab12e4be303bca2..efa30996271d2f650ac2cfb9fad7f14ee5eedf4a 100644 (file)
@@ -1,54 +1,22 @@
-/**************************************************************************
-**
-** This file is part of Qt Creator
-**
-** Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
-**
-** Contact:  Qt Software Information (qt-info@nokia.com)
-**
-** Commercial Usage
-**
-** Licensees holding valid Qt Commercial licenses may use this file in
-** accordance with the Qt Commercial License Agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Nokia.
-**
-** GNU Lesser General Public License Usage
-**
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file.  Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** If you are unsure which license is appropriate for your use, please
-** contact the sales department at qt-sales@nokia.com.
-**
-**************************************************************************/
-
 #include "minisplitter.h"
 
-#include <QPaintEvent>
-#include <QPainter>
-#include <QSplitterHandle>
+class MiniSplitterHandle : public QSplitterHandle {
 
-class MiniSplitterHandle : public QSplitterHandle
-{
 public:
-    MiniSplitterHandle(Qt::Orientation orientation, QSplitter *parent)
-            : QSplitterHandle(orientation, parent)
-    {
-        setMask(QRegion(contentsRect()));
-        setAttribute(Qt::WA_MouseNoMask, true);
-    }
+    MiniSplitterHandle(Qt::Orientation orientation, QSplitter *parent);
+
 protected:
     void resizeEvent(QResizeEvent *event);
     void paintEvent(QPaintEvent *event);
 };
 
-void MiniSplitterHandle::resizeEvent(QResizeEvent *event)
-{
+MiniSplitterHandle::MiniSplitterHandle(Qt::Orientation orientation, QSplitter *parent)
+    : QSplitterHandle(orientation, parent) {
+    setMask(QRegion(contentsRect()));
+    setAttribute(Qt::WA_MouseNoMask, true);
+}
+
+void MiniSplitterHandle::resizeEvent(QResizeEvent *event) {
     if (orientation() == Qt::Horizontal)
         setContentsMargins(2, 0, 2, 0);
     else
@@ -57,29 +25,16 @@ void MiniSplitterHandle::resizeEvent(QResizeEvent *event)
     QSplitterHandle::resizeEvent(event);
 }
 
-void MiniSplitterHandle::paintEvent(QPaintEvent *event)
-{
+void MiniSplitterHandle::paintEvent(QPaintEvent *event) {
     QPainter painter(this);
     painter.fillRect(event->rect(), Qt::black);
 }
 
-QSplitterHandle *MiniSplitter::createHandle()
-{
+QSplitterHandle *MiniSplitter::createHandle() {
     return new MiniSplitterHandle(orientation(), this);
 }
 
-MiniSplitter::MiniSplitter(QWidget *parent)
-    : QSplitter(parent)
-{
-    setHandleWidth(1);
-    setChildrenCollapsible(false);
-    setProperty("minisplitter", true);
-}
-
-MiniSplitter::MiniSplitter(Qt::Orientation orientation)
-    : QSplitter(orientation)
-{
+MiniSplitter::MiniSplitter(Qt::Orientation orientation, QWidget *parent) : QSplitter(orientation, parent) {
     setHandleWidth(1);
     setChildrenCollapsible(false);
-    setProperty("minisplitter", true);
 }
index 23204ae22620ceceffdc1aa889d7c62e058556c9..ed2652283934ac47410c3e43ab27430fde3cde0a 100644 (file)
@@ -1,50 +1,16 @@
-/**************************************************************************
-**
-** This file is part of Qt Creator
-**
-** Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
-**
-** Contact:  Qt Software Information (qt-info@nokia.com)
-**
-** Commercial Usage
-**
-** Licensees holding valid Qt Commercial licenses may use this file in
-** accordance with the Qt Commercial License Agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Nokia.
-**
-** GNU Lesser General Public License Usage
-**
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file.  Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** If you are unsure which license is appropriate for your use, please
-** contact the sales department at qt-sales@nokia.com.
-**
-**************************************************************************/
-
 #ifndef MINISPLITTER_H
 #define MINISPLITTER_H
 
-#include <QSplitter>
+#include <QtWidgets>
 
-QT_BEGIN_NAMESPACE
-class QSplitterHandle;
-QT_END_NAMESPACE
+class MiniSplitter : public QSplitter {
 
-/*! This is a simple helper-class to obtain mac-style 1-pixel wide splitters */
-class MiniSplitter : public QSplitter
-{
 public:
-    MiniSplitter(QWidget *parent = 0);
-    MiniSplitter(Qt::Orientation orientation);
+    MiniSplitter(Qt::Orientation orientation = Qt::Horizontal, QWidget *parent = 0);
 
 protected:
     QSplitterHandle *createHandle();
+
 };
 
 #endif // MINISPLITTER_H
diff --git a/src/networkaccess.cpp b/src/networkaccess.cpp
deleted file mode 100644 (file)
index 9b27980..0000000
+++ /dev/null
@@ -1,205 +0,0 @@
-/* $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>
-#if QT_VERSION >= 0x050000
-#include <QtWidgets>
-#endif
-
-namespace The {
-NetworkAccess* http();
-}
-
-/*
-const QString USER_AGENT = QString(Constants::NAME)
-                           + " " + Constants::VERSION
-                           + " (" + Constants::WEBSITE + ")";
-*/
-
-const QString USER_AGENT = "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.85 Safari/537.36";
-
-NetworkReply::NetworkReply(QNetworkReply *networkReply) :
-    QObject(networkReply),
-    networkReply(networkReply),
-    retryCount(0) {
-
-    setupReply();
-
-    readTimeoutTimer = new QTimer(this);
-    readTimeoutTimer->setInterval(25000);
-    readTimeoutTimer->setSingleShot(true);
-    connect(readTimeoutTimer, SIGNAL(timeout()), SLOT(readTimeout()), Qt::UniqueConnection);
-    readTimeoutTimer->start();
-}
-
-void NetworkReply::setupReply() {
-    connect(networkReply, SIGNAL(error(QNetworkReply::NetworkError)),
-            SLOT(requestError(QNetworkReply::NetworkError)), Qt::UniqueConnection);
-    connect(networkReply, SIGNAL(finished()),
-            SLOT(finished()), Qt::UniqueConnection);
-    connect(networkReply, SIGNAL(downloadProgress(qint64,qint64)),
-            SLOT(downloadProgress(qint64,qint64)), Qt::UniqueConnection);
-}
-
-void NetworkReply::finished() {
-    QUrl redirection = networkReply->attribute(
-                QNetworkRequest::RedirectionTargetAttribute).toUrl();
-    if (redirection.isValid()) {
-        if (networkReply->operation() == QNetworkAccessManager::GetOperation
-                || networkReply->operation() == QNetworkAccessManager::HeadOperation) {
-            QNetworkReply *redirectReply =
-                    The::http()->request(redirection, networkReply->operation());
-            setParent(redirectReply);
-            networkReply->deleteLater();
-            networkReply = redirectReply;
-            setupReply();
-            readTimeoutTimer->start();
-            return;
-        } else qDebug() << "Redirection not supported" << networkReply->url().toEncoded();
-    }
-
-    if (receivers(SIGNAL(data(QByteArray))) > 0)
-        emit data(networkReply->readAll());
-    else if (receivers(SIGNAL(finished(QNetworkReply*))) > 0)
-        emit finished(networkReply);
-
-#ifndef QT_NO_DEBUG_OUTPUT
-    if (!networkReply->attribute(QNetworkRequest::SourceIsFromCacheAttribute).toBool())
-        qDebug() << networkReply->url().toEncoded();
-#endif
-
-    // bye bye my reply
-    // this will also delete this NetworkReply as the QNetworkReply is its parent
-    networkReply->deleteLater();
-}
-
-void NetworkReply::requestError(QNetworkReply::NetworkError code) {
-    qWarning() << networkReply->attribute(QNetworkRequest::HttpStatusCodeAttribute).toInt()
-             << networkReply->errorString() << code;
-    emit error(networkReply);
-}
-
-void NetworkReply::downloadProgress(qint64 bytesReceived, qint64 /* bytesTotal */) {
-    // qDebug() << "Downloading" << bytesReceived << bytesTotal << networkReply->url();
-    if (bytesReceived > 0 && readTimeoutTimer->isActive()) {
-        readTimeoutTimer->stop();
-        disconnect(networkReply, SIGNAL(downloadProgress(qint64,qint64)),
-                   this, SLOT(downloadProgress(qint64,qint64)));
-    }
-}
-
-void NetworkReply::readTimeout() {
-    networkReply->disconnect();
-    networkReply->abort();
-    networkReply->deleteLater();
-
-    if (networkReply->operation() != QNetworkAccessManager::GetOperation
-            || networkReply->operation() != QNetworkAccessManager::HeadOperation) {
-        emit error(networkReply);
-        return;
-    }
-
-    if (retryCount > 3) {
-        emit error(networkReply);
-        return;
-    }
-    QNetworkReply *retryReply = The::http()->request(networkReply->url(), networkReply->operation());
-    setParent(retryReply);
-    networkReply = retryReply;
-    setupReply();
-    retryCount++;
-    readTimeoutTimer->start();
-}
-
-/* --- NetworkAccess --- */
-
-NetworkAccess::NetworkAccess( QObject* parent) : QObject( parent ) {}
-
-QNetworkRequest NetworkAccess::buildRequest(QUrl url) {
-    QNetworkRequest request(url);
-    request.setRawHeader("User-Agent", USER_AGENT.toUtf8());
-    request.setRawHeader("Accept-Charset", "ISO-8859-1,utf-8;q=0.7,*;q=0.7");
-    request.setRawHeader("Accept", "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8");
-    request.setRawHeader("Accept-Language", "en-us,en;q=0.5");
-    request.setRawHeader("Connection", "Keep-Alive");
-    return request;
-}
-
-QNetworkReply* NetworkAccess::request(QUrl url, int operation, const QByteArray& body, uint offset) {
-    QNetworkAccessManager *manager = The::networkAccessManager();
-
-    QNetworkRequest request = buildRequest(url);
-
-    if (offset > 0)
-        request.setRawHeader("Range", QString("bytes=%1-").arg(offset).toUtf8());
-
-    QNetworkReply *networkReply;
-    switch (operation) {
-
-    case QNetworkAccessManager::GetOperation:
-        networkReply = manager->get(request);
-        break;
-
-    case QNetworkAccessManager::HeadOperation:
-        networkReply = manager->head(request);
-        break;
-
-    case QNetworkAccessManager::PostOperation:
-        if (!body.isEmpty())
-            request.setRawHeader("Content-Type", "application/x-www-form-urlencoded");
-        networkReply = manager->post(request, body);
-        break;
-
-    default:
-        qWarning() << "Unknown operation:" << operation;
-        return 0;
-    }
-
-#ifdef APP_MAC
-    networkReply->ignoreSslErrors();
-#endif
-    return networkReply;
-}
-
-NetworkReply* NetworkAccess::get(const QUrl url) {
-    QNetworkReply *networkReply = request(url);
-    return new NetworkReply(networkReply);
-}
-
-NetworkReply* NetworkAccess::head(const QUrl url) {
-    QNetworkReply *networkReply = request(url, QNetworkAccessManager::HeadOperation);
-    return new NetworkReply(networkReply);
-}
-
-NetworkReply* NetworkAccess::post(const QUrl url, const QMap<QString, QString>& params) {
-    QByteArray body;
-    QMapIterator<QString, QString> i(params);
-    while (i.hasNext()) {
-        i.next();
-        body += QUrl::toPercentEncoding(i.key())
-                + '='
-                + QUrl::toPercentEncoding(i.value())
-                + '&';
-    }
-    QNetworkReply *networkReply = request(url, QNetworkAccessManager::PostOperation, body);
-    return new NetworkReply(networkReply);
-}
diff --git a/src/networkaccess.h b/src/networkaccess.h
deleted file mode 100644 (file)
index 7708186..0000000
+++ /dev/null
@@ -1,76 +0,0 @@
-/* $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
-
-#include <QtCore>
-#include <QtNetwork>
-
-namespace The {
-    QNetworkAccessManager* networkAccessManager();
-}
-
-class NetworkReply : public QObject {
-
-    Q_OBJECT
-
-public:
-    NetworkReply(QNetworkReply* networkReply);
-    QNetworkReply* getNetworkReply() { return networkReply; }
-
-signals:
-    void data(QByteArray);
-    void error(QNetworkReply*);
-    void finished(QNetworkReply*);
-
-private slots:
-    void finished();
-    void requestError(QNetworkReply::NetworkError);
-    void downloadProgress(qint64 bytesReceived, qint64 bytesTotal);
-    void readTimeout();
-
-private:
-    void setupReply();
-    QNetworkReply *networkReply;
-    QTimer *readTimeoutTimer;
-    int retryCount;
-
-};
-
-class NetworkAccess : public QObject {
-
-    Q_OBJECT
-
-public:
-    NetworkAccess(QObject* parent = 0);
-    QNetworkReply* request(QUrl url,
-                             int operation = QNetworkAccessManager::GetOperation,
-                             const QByteArray &body = QByteArray(), uint offset = 0);
-    NetworkReply* get(QUrl url);
-    NetworkReply* head(QUrl url);
-    NetworkReply* post(QUrl url, const QMap<QString, QString>& params);
-
-private:
-    QNetworkRequest buildRequest(QUrl url);
-
-};
-
-#endif // NETWORKACCESS_H
index 115cf1f1c06a6d9e066f67f7bba48d98f8788d35..aa44efe8223dcd84569139ff2a999b4995c2b0ab 100644 (file)
@@ -23,24 +23,20 @@ $END_LICENSE */
 #include "yt3.h"
 #include "yt3listparser.h"
 #include "datautils.h"
-#include "compatibility/qurlqueryhelper.h"
 
 #include "video.h"
-#include "networkaccess.h"
-
-namespace The {
-NetworkAccess* http();
-QHash<QString, QAction*>* globalActions();
-}
+#include "http.h"
+#include "httputils.h"
 
 PaginatedVideoSource::PaginatedVideoSource(QObject *parent) : VideoSource(parent)
   , tokenTimestamp(0)
+  , reloadingToken(false)
   , currentMax(0)
   , currentStartIndex(0)
-  , reloadingToken(false)
   , asyncDetails(false) { }
 
 bool PaginatedVideoSource::hasMoreVideos() {
+    qDebug() << __PRETTY_FUNCTION__ << nextPageToken;
     return !nextPageToken.isEmpty();
 }
 
@@ -50,7 +46,7 @@ bool PaginatedVideoSource::maybeReloadToken(int max, int startIndex) {
 
     if (nextPageToken.isEmpty()) {
         // previous request did not return a page token. Game over.
-        // emit gotVideos(QList<Video*>());
+        // emit gotVideos(QVector<Video*>());
         emit finished(0);
         return true;
     }
@@ -86,19 +82,21 @@ bool PaginatedVideoSource::isPageTokenExpired() {
 
 void PaginatedVideoSource::reloadToken() {
     qDebug() << "Reloading pageToken";
-    QObject *reply = The::http()->get(lastUrl);
+    QObject *reply = HttpUtils::yt().get(lastUrl);
     connect(reply, SIGNAL(data(QByteArray)), SLOT(parseResults(QByteArray)));
-    connect(reply, SIGNAL(error(QNetworkReply*)), SLOT(requestError(QNetworkReply*)));
+    connect(reply, SIGNAL(error(QString)), SLOT(requestError(QString)));
 }
 
-void PaginatedVideoSource::loadVideoDetails(const QList<Video*> &videos) {
+void PaginatedVideoSource::loadVideoDetails(const QVector<Video*> &videos) {
+    this->videos = videos;
     QString videoIds;
-    foreach (Video *video, videos) {
+    videoIds.reserve(videos.size()*12);
+    videoMap.reserve(videos.size());
+    for (Video *video : videos) {
         // TODO get video details from cache
-        if (!videoIds.isEmpty()) videoIds += ",";
-        videoIds += video->id();
-        this->videos = videos;
-        videoMap.insert(video->id(), video);
+        if (!videoIds.isEmpty()) videoIds += QLatin1Char(',');
+        videoIds += video->getId();
+        videoMap.insert(video->getId(), video);
     }
 
     if (videoIds.isEmpty()) {
@@ -110,44 +108,40 @@ void PaginatedVideoSource::loadVideoDetails(const QList<Video*> &videos) {
     }
 
     QUrl url = YT3::instance().method("videos");
-    {
-        QUrlQueryHelper urlHelper(url);
-        urlHelper.addQueryItem("part", "contentDetails,statistics");
-        urlHelper.addQueryItem("id", videoIds);
-    }
+    QUrlQuery q(url);
+    q.addQueryItem(QStringLiteral("part"), QStringLiteral("contentDetails,statistics"));
+    q.addQueryItem(QStringLiteral("id"), videoIds);
+    url.setQuery(q);
 
-    QObject *reply = The::http()->get(url);
+    QObject *reply = HttpUtils::yt().get(url);
     connect(reply, SIGNAL(data(QByteArray)), SLOT(parseVideoDetails(QByteArray)));
-    connect(reply, SIGNAL(error(QNetworkReply*)), SLOT(requestError(QNetworkReply*)));
+    connect(reply, SIGNAL(error(QString)), SLOT(requestError(QString)));
 }
 
 void PaginatedVideoSource::parseVideoDetails(const QByteArray &bytes) {
+    QJsonDocument doc = QJsonDocument::fromJson(bytes);
+    QJsonObject obj = doc.object();
 
-    QScriptEngine engine;
-    QScriptValue json = engine.evaluate("(" + QString::fromUtf8(bytes) + ")");
-
-    QScriptValue items = json.property("items");
+    QJsonValue items = obj["items"];
     if (items.isArray()) {
-        QScriptValueIterator it(items);
-        while (it.hasNext()) {
-            it.next();
-            QScriptValue item = it.value();
-            if (!item.isObject()) continue;
+        const auto array = items.toArray();
+        for (const QJsonValue &v : array) {
+            if (!v.isObject()) continue;
 
-            // qDebug() << item.toString();
+            QJsonObject item = v.toObject();
 
-            QString id = item.property("id").toString();
+            QString id = item["id"].toString();
             Video *video = videoMap.value(id);
             if (!video) {
                 qWarning() << "No video for id" << id;
                 continue;
             }
 
-            QString isoPeriod = item.property("contentDetails").property("duration").toString();
+            QString isoPeriod = item["contentDetails"].toObject()["duration"].toString();
             int duration = DataUtils::parseIsoPeriod(isoPeriod);
             video->setDuration(duration);
 
-            uint viewCount = item.property("statistics").property("viewCount").toUInt32();
+            int viewCount = item["statistics"].toObject()["viewCount"].toString().toInt();
             video->setViewCount(viewCount);
 
             // TODO cache by etag?
index bf8495176bf17f84627b8405318a57a484f13079..a6a52694540ba97e2bdf5952084891ee8b5eab8f 100644 (file)
@@ -36,7 +36,7 @@ public:
     bool isPageTokenExpired();
     void reloadToken();
     void setAsyncDetails(bool value) { asyncDetails = value; }
-    void loadVideoDetails(const QList<Video*> &videos);
+    void loadVideoDetails(const QVector<Video*> &videos);
 
 signals:
     void gotDetails();
@@ -51,7 +51,7 @@ protected:
     int currentMax;
     int currentStartIndex;
     bool reloadingToken;
-    QList<Video*> videos;
+    QVector<Video*> videos;
     QHash<QString, Video*> videoMap;
     bool asyncDetails;
 
index 9281b0d62ab5003eea0e2418c9557bf8b01d6ac1..71ce0124fdb7703d9b56f11821cd25dfacf6dd4c 100644 (file)
@@ -33,75 +33,26 @@ void PainterUtils::centeredMessage(const QString &message, QWidget* widget) {
                 ((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.setOpacity(.5);
     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) {
-    const QPixmap badge1 = IconUtils::pixmap(":/images/badge.png");
-    const QPixmap badge3 = IconUtils::pixmap(":/images/badge3.png");
-    const QPixmap badge4 = IconUtils::pixmap(":/images/badge4.png");
-
-    const int textSize = text.size();
-
-    QPixmap badge;
-    if (textSize < 3) badge = badge1;
-    else if (textSize == 3) badge = badge3;
-    else badge = badge4;
-
-    const int w = badge.width() / badge.devicePixelRatio();
-    const int h = badge.height() / badge.devicePixelRatio();
+void PainterUtils::paintBadge(QPainter *painter, const QString &text, bool center, QColor backgroundColor) {
+    painter->save();
 
+    QRect textBox = painter->boundingRect(QRect(), Qt::AlignCenter, text);
+    int w = textBox.width() + painter->fontMetrics().width('m');
     int x = 0;
     if (center) x -= w / 2;
+    QRect rect(x, 0, w, textBox.height());
+    if (rect.width() < rect.height() || text.length() == 1) rect.setWidth(rect.height());
 
-    QRect rect(x, 0, w, h);
-    painter->drawPixmap(rect, badge);
-
-    QFont f = painter->font();
-    f.setPixelSize(11);
-    f.setHintingPreference(QFont::PreferNoHinting);
-#ifdef APP_MAC
-    f.setFamily("Helvetica");
-#elif APP_WIN
-    rect.adjust(0, -2, 0, 0);
-#else
-    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);
+    painter->setPen(Qt::NoPen);
+    painter->setBrush(backgroundColor);
+    painter->setRenderHint(QPainter::Antialiasing);
+    qreal borderRadius = rect.height()/2.;
+    painter->drawRoundedRect(rect, borderRadius, borderRadius);
 
-    rect.adjust(0, -1, 0, 0);
     painter->setPen(Qt::white);
     painter->drawText(rect, Qt::AlignCenter, text);
 
index 2ff86f2e989ce50e47f519384d31ab48d5738ce8..82c5eceed8ea353e2474795bf7e74fd6bbc350d6 100644 (file)
@@ -21,17 +21,14 @@ $END_LICENSE */
 #ifndef PAINTERUTILS_H
 #define PAINTERUTILS_H
 
-#include <QtGui>
-#if QT_VERSION >= 0x050000
 #include <QtWidgets>
-#endif
 
 class PainterUtils {
 
 public:
     static void centeredMessage(const QString &message, QWidget* widget);
-    static void topShadow(QWidget *widget);
-    static void paintBadge(QPainter *painter, const QString &text, bool center = false);
+    static void paintBadge(QPainter *painter, const QString &text,
+                           bool center = false, QColor backgroundColor = QColor(230,36,41));
 
 private:
     PainterUtils();
index f83d951968a10755d038223aa54336d25acc7e5b..c7795d5b572d77e600c5c4507371f1ebd20a1e59 100644 (file)
@@ -19,33 +19,33 @@ along with Minitube.  If not, see <http://www.gnu.org/licenses/>.
 $END_LICENSE */
 
 #include "playlistitemdelegate.h"
-#include "playlistmodel.h"
-#include "fontutils.h"
+#include "datautils.h"
 #include "downloaditem.h"
+#include "fontutils.h"
 #include "iconutils.h"
-#include "videodefinition.h"
+#include "playlistmodel.h"
+#include "playlistview.h"
 #include "video.h"
-#include "datautils.h"
+#include "videodefinition.h"
 
-const int PlaylistItemDelegate::THUMB_HEIGHT = 90;
-const int PlaylistItemDelegate::THUMB_WIDTH = 160;
-const int PlaylistItemDelegate::PADDING = 10;
+const int PlaylistItemDelegate::thumbHeight = 90;
+const int PlaylistItemDelegate::thumbWidth = 160;
+const int PlaylistItemDelegate::padding = 8;
 
 namespace {
 
-void drawElidedText(QPainter *painter, const QRect &textBox, const int flags, const QString &text) {
-    QString elidedText = QFontMetrics(painter->font()).elidedText(text, Qt::ElideRight, textBox.width(), flags);
+bool drawElidedText(QPainter *painter, const QRect &textBox, const int flags, const QString &text) {
+    QString elidedText =
+            painter->fontMetrics().elidedText(text, Qt::ElideRight, textBox.width(), flags);
     painter->drawText(textBox, 0, elidedText);
+    return elidedText.length() < text.length();
 }
-
 }
 
-PlaylistItemDelegate::PlaylistItemDelegate(QObject* parent, bool downloadInfo)
-    : QStyledItemDelegate(parent),
-      downloadInfo(downloadInfo),
-      progressBar(0) {
+PlaylistItemDelegate::PlaylistItemDelegate(QObject *parent, bool downloadInfo)
+    : QStyledItemDelegate(parent), downloadInfo(downloadInfo), progressBar(0) {
+    listView = qobject_cast<PlaylistView *>(parent);
 
-    boldFont.setBold(true);
     smallerBoldFont = FontUtils::smallBold();
     smallerFont = FontUtils::small();
 
@@ -56,7 +56,8 @@ PlaylistItemDelegate::PlaylistItemDelegate(QObject* parent, bool downloadInfo)
         progressBar->setPalette(palette);
         progressBar->setSizePolicy(QSizePolicy::Fixed, QSizePolicy::Preferred);
         progressBar->hide();
-    } else createPlayIcon();
+    } else
+        createPlayIcon();
 }
 
 PlaylistItemDelegate::~PlaylistItemDelegate() {
@@ -65,27 +66,26 @@ PlaylistItemDelegate::~PlaylistItemDelegate() {
 
 void PlaylistItemDelegate::createPlayIcon() {
     qreal maxRatio = IconUtils::maxSupportedPixelRatio();
-    playIcon = QPixmap(THUMB_WIDTH * maxRatio, THUMB_HEIGHT * maxRatio);
+    playIcon = QPixmap(thumbWidth * maxRatio, thumbHeight * maxRatio);
     playIcon.setDevicePixelRatio(maxRatio);
     playIcon.fill(Qt::transparent);
 
-    QPixmap tempPixmap(THUMB_WIDTH * maxRatio, THUMB_HEIGHT * maxRatio);
+    QPixmap tempPixmap(thumbWidth * maxRatio, thumbHeight * maxRatio);
     tempPixmap.setDevicePixelRatio(maxRatio);
     tempPixmap.fill(Qt::transparent);
     QPainter painter(&tempPixmap);
     painter.setRenderHints(QPainter::Antialiasing, true);
 
-    const int hPadding = PADDING*6;
-    const int vPadding = PADDING*2;
+    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);
+    polygon << QPoint(hPadding, vPadding) << QPoint(thumbWidth - hPadding, thumbHeight / 2)
+            << QPoint(hPadding, thumbHeight - vPadding);
     painter.setBrush(Qt::white);
     QPen pen;
     pen.setColor(Qt::white);
-    pen.setWidth(PADDING);
+    pen.setWidth(padding);
     pen.setJoinStyle(Qt::RoundJoin);
     pen.setCapStyle(Qt::RoundCap);
     painter.setPen(pen);
@@ -97,66 +97,62 @@ void PlaylistItemDelegate::createPlayIcon() {
     painter2.drawPixmap(0, 0, tempPixmap);
 }
 
-QSize PlaylistItemDelegate::sizeHint( const QStyleOptionViewItem& /*option*/, const QModelIndex& /*index*/ ) const {
-    return QSize(THUMB_WIDTH, THUMB_HEIGHT + 1);
+QSize PlaylistItemDelegate::sizeHint(const QStyleOptionViewItem & /*option*/,
+                                     const QModelIndex & /*index*/) const {
+    return QSize(thumbWidth, thumbHeight + 1);
 }
 
-void PlaylistItemDelegate::paint( QPainter* painter,
-                                  const QStyleOptionViewItem& option, const QModelIndex& index ) const {
-
+void PlaylistItemDelegate::paint(QPainter *painter,
+                                 const QStyleOptionViewItem &option,
+                                 const QModelIndex &index) const {
     int itemType = index.data(ItemTypeRole).toInt();
     if (itemType == ItemTypeVideo) {
-        QStyleOptionViewItemV4 opt = QStyleOptionViewItemV4(option);
+        QStyleOptionViewItem opt = QStyleOptionViewItem(option);
         initStyleOption(&opt, index);
-        opt.text = "";
+        opt.text.clear();
         opt.widget->style()->drawControl(QStyle::CE_ItemViewItem, &opt, painter, opt.widget);
         paintBody(painter, opt, index);
     } else
-        QStyledItemDelegate::paint( painter, option, index );
-
+        QStyledItemDelegate::paint(painter, option, index);
 }
 
-void PlaylistItemDelegate::paintBody( QPainter* painter,
-                                      const QStyleOptionViewItem& option,
-                                      const QModelIndex& index ) const {
+void PlaylistItemDelegate::paintBody(QPainter *painter,
+                                     const QStyleOptionViewItem &option,
+                                     const QModelIndex &index) const {
     painter->save();
-    painter->translate( option.rect.topLeft() );
+    painter->translate(option.rect.topLeft());
 
     QRect line(0, 0, option.rect.width(), option.rect.height());
     if (downloadInfo) line.setWidth(line.width() / 2);
 
-    const bool isActive = index.data( ActiveTrackRole ).toBool();
+    const bool isActive = index.data(ActiveTrackRole).toBool();
     const bool isSelected = option.state & QStyle::State_Selected;
 
     // get the video metadata
     const Video *video = index.data(VideoRole).value<VideoPointer>().data();
 
     // draw the "current track" highlight underneath the text
-    if (isActive && !isSelected)
-        paintActiveOverlay(painter, option, line);
+    if (isActive && !isSelected) paintActiveOverlay(painter, option, line);
 
     // separator
     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);
+    painter->drawLine(thumbWidth, thumbHeight, option.rect.width(), thumbHeight);
+    if (!video->getThumbnail().isNull()) painter->setPen(Qt::black);
+    painter->drawLine(0, thumbHeight, thumbWidth - 1, thumbHeight);
 
     // thumb
-    painter->drawPixmap(0, 0, video->thumbnail());
+    painter->drawPixmap(0, 0, video->getThumbnail());
+
+    const bool thumbsOnly = line.width() <= thumbWidth + 60;
+    const bool isHovered = index.data(HoveredItemRole).toBool();
 
     // play icon overlayed on the thumb
-    if (isActive)
-        painter->drawPixmap(0, 0, playIcon);
+    if (isActive && (!isHovered && thumbsOnly)) painter->drawPixmap(0, 0, playIcon);
 
     // time
-    if (video->duration() > 0)
-        drawTime(painter, video->formattedDuration(), line);
-
-    if (line.width() > THUMB_WIDTH + 60) {
-
-        // if (isActive) painter->setFont(boldFont);
+    if (video->getDuration() > 0) drawTime(painter, video->getFormattedDuration(), line);
 
+    if (!thumbsOnly) {
         // text color
         if (isSelected)
             painter->setPen(QPen(option.palette.highlightedText(), 0));
@@ -164,116 +160,136 @@ void PlaylistItemDelegate::paintBody( QPainter* painter,
             painter->setPen(QPen(option.palette.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);
+        QStringRef title(&video->getTitle());
+        QString elidedTitle = video->getTitle();
+        static const int titleFlags = Qt::AlignTop | Qt::TextWordWrap;
+        QRect textBox = line.adjusted(padding + thumbWidth, padding, 0, 0);
+        textBox = painter->boundingRect(textBox, titleFlags, elidedTitle);
+        while (textBox.height() > 55 && elidedTitle.length() > 10) {
+#if QT_VERSION < QT_VERSION_CHECK(5, 6, 0)
+            title = title.left(title.length() - 1);
+#elif QT_VERSION < QT_VERSION_CHECK(5, 8, 0)
+            title.truncate(title.length() - 1);
+#else
+            title.chop(1);
+#endif
+            elidedTitle = title.trimmed() + QStringLiteral("…");
+            textBox = painter->boundingRect(textBox, titleFlags, elidedTitle);
         }
-        painter->drawText(textBox, flags, v);
+        painter->drawText(textBox, titleFlags, elidedTitle);
 
         painter->setFont(smallerFont);
+        painter->setOpacity(.5);
+        QFontMetrics fontMetrics = painter->fontMetrics();
+        static const int flags = Qt::AlignLeft | Qt::AlignTop;
 
         // published date
-        QString publishedString = DataUtils::formatDateTime(video->published());
-        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);
+        const QString &published = video->getFormattedPublished();
+        QSize textSize(fontMetrics.size(Qt::TextSingleLine, published));
+        QPoint textPoint(padding + thumbWidth, padding * 2 + textBox.height());
+        textBox = QRect(textPoint, textSize);
+        painter->drawText(textBox, flags, published);
 
-        // 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();
-        }
+        bool elided = false;
 
-        painter->save();
-        painter->setFont(smallerBoldFont);
-        if (!isSelected) {
-            if (authorHovered)
-                painter->setPen(QPen(option.palette.brush(QPalette::Highlight), 0));
-            else
-                painter->setOpacity(.5);
+        // author
+        if (!listView || listView->isClickableAuthors()) {
+            bool authorHovered = isHovered && index.data(AuthorHoveredRole).toBool();
+
+            painter->save();
+            painter->setFont(smallerBoldFont);
+            if (!isSelected) {
+                if (authorHovered)
+                    painter->setPen(QPen(option.palette.brush(QPalette::Highlight), 0));
+            }
+            const QString &author = video->getChannelTitle();
+            textPoint.setX(textBox.right() + padding);
+            textSize = QSize(painter->fontMetrics().size(Qt::TextSingleLine, author));
+            textBox = QRect(textPoint, textSize);
+            authorRects.insert(index.row(), textBox);
+            if (textBox.right() > line.width()) {
+                textBox.setRight(line.width());
+                elided = drawElidedText(painter, textBox, flags, author);
+            } else {
+                painter->drawText(textBox, flags, author);
+            }
+            painter->restore();
         }
-        const QString &authorString = video->channelTitle();
-        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);
-        if (authorTextBox.right() > line.width()) authorTextBox.setRight(line.width());
-        drawElidedText(painter, authorTextBox, Qt::AlignLeft | Qt::AlignTop, authorString);
-        painter->restore();
 
         // view count
-        if (video->viewCount() >= 0) {
+        if (video->getViewCount() > 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);
-            if (viewCountTextBox.right() > line.width()) viewCountTextBox.setRight(line.width());
-            drawElidedText(painter, viewCountTextBox, Qt::AlignLeft | Qt::AlignBottom, viewCountString);
+            const QString viewCount = tr("%1 views").arg(locale.toString(video->getViewCount()));
+            textPoint.setX(textBox.right() + padding);
+            textSize = QSize(fontMetrics.size(Qt::TextSingleLine, viewCount));
+            if (elided || textPoint.x() + textSize.width() > line.width()) {
+                textPoint.setX(thumbWidth + padding);
+                textPoint.setY(textPoint.y() + textSize.height() + padding);
+            }
+            textBox = QRect(textPoint, textSize);
+            if (textBox.bottom() <= line.height()) {
+                painter->drawText(textBox, flags, viewCount);
+            }
         }
 
         if (downloadInfo) {
-            const QString definitionString = VideoDefinition::getDefinitionFor(video->getDefinitionCode()).getName();
-            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);
+            const QString &def = VideoDefinition::forCode(video->getDefinitionCode()).getName();
+            textPoint.setX(textBox.right() + padding);
+            textSize = QSize(fontMetrics.size(Qt::TextSingleLine, def));
+            textBox = QRect(textPoint, textSize);
+            painter->drawText(textBox, flags, def);
         }
 
     } else {
-
-        const bool isHovered = index.data(HoveredItemRole).toBool();
-        if (!isActive && isHovered) {
+        // thumbs only
+        if (isHovered) {
             painter->setFont(smallerFont);
             painter->setPen(Qt::white);
-            QString videoTitle = video->title();
-            QString v = videoTitle;
-            const int flags = Qt::AlignTop | Qt::TextWordWrap;
-            QRect textBox(PADDING, PADDING, THUMB_WIDTH - PADDING*2, THUMB_HEIGHT - PADDING*2);
-            textBox = painter->boundingRect(textBox, flags, v);
-            while (textBox.height() > THUMB_HEIGHT && v.length() > 10) {
-                videoTitle.truncate(videoTitle.length() - 1);
-                v = videoTitle;
-                v = v.trimmed().append("...");
-                textBox = painter->boundingRect(textBox, flags, v);
+            QStringRef title(&video->getTitle());
+            QString elidedTitle = video->getTitle();
+            static const int titleFlags = Qt::AlignTop | Qt::TextWordWrap;
+            QRect textBox(padding, padding, thumbWidth - padding * 2, thumbHeight - padding * 2);
+            textBox = painter->boundingRect(textBox, titleFlags, elidedTitle);
+            while (textBox.height() > 55 && elidedTitle.length() > 10) {
+#if QT_VERSION < QT_VERSION_CHECK(5, 6, 0)
+                title = title.left(title.length() - 1);
+#elif QT_VERSION < QT_VERSION_CHECK(5, 8, 0)
+                title.truncate(title.length() - 1);
+#else
+                title.chop(1);
+#endif
+                elidedTitle = title.trimmed() + QStringLiteral("…");
+                textBox = painter->boundingRect(textBox, titleFlags, elidedTitle);
             }
-            painter->fillRect(QRect(0, 0, THUMB_WIDTH, textBox.height() + PADDING*2), QColor(0, 0, 0, 128));
-            painter->drawText(textBox, flags, v);
+            painter->fillRect(QRect(0, 0, thumbWidth, textBox.height() + padding * 2),
+                              QColor(0, 0, 0, 128));
+            painter->drawText(textBox, titleFlags, elidedTitle);
         }
-
     }
 
     painter->restore();
 
     if (downloadInfo) paintDownloadInfo(painter, option, index);
-
 }
 
-void PlaylistItemDelegate::paintActiveOverlay(QPainter *painter, const QStyleOptionViewItem& option, const QRect &line) const {
+void PlaylistItemDelegate::paintActiveOverlay(QPainter *painter,
+                                              const QStyleOptionViewItem &option,
+                                              const QRect &line) const {
     painter->save();
-    painter->setOpacity(.1);
+    painter->setOpacity(.2);
     painter->fillRect(line, option.palette.highlight());
     painter->restore();
 }
 
-void PlaylistItemDelegate::drawTime(QPainter *painter, const QString &time, const QRect &line) const {
+void PlaylistItemDelegate::drawTime(QPainter *painter,
+                                    const QString &time,
+                                    const QRect &line) const {
     static const int timePadding = 4;
     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
-    textBox.translate(THUMB_WIDTH - textBox.width(), THUMB_HEIGHT - textBox.height());
+    textBox.translate(thumbWidth - textBox.width(), thumbHeight - textBox.height());
 
     painter->save();
     painter->setPen(Qt::NoPen);
@@ -288,12 +304,12 @@ void PlaylistItemDelegate::drawTime(QPainter *painter, const QString &time, cons
     painter->restore();
 }
 
-void PlaylistItemDelegate::paintDownloadInfo( QPainter* painter,
-                                              const QStyleOptionViewItem& option,
-                                              const QModelIndex& index ) const {
-
+void PlaylistItemDelegate::paintDownloadInfo(QPainter *painter,
+                                             const QStyleOptionViewItem &option,
+                                             const QModelIndex &index) const {
     // get the video metadata
-    const DownloadItemPointer downloadItemPointer = index.data(DownloadItemRole).value<DownloadItemPointer>();
+    const DownloadItemPointer downloadItemPointer =
+            index.data(DownloadItemRole).value<DownloadItemPointer>();
     const DownloadItem *downloadItem = downloadItemPointer.data();
 
     painter->save();
@@ -312,12 +328,7 @@ void PlaylistItemDelegate::paintDownloadInfo( QPainter* painter,
         QString speed = DownloadItem::formattedSpeed(downloadItem->currentSpeed());
         QString eta = DownloadItem::formattedTime(downloadItem->remainingTime());
 
-        message = tr("%1 of %2 (%3) — %4").arg(
-                    downloaded,
-                    total,
-                    speed,
-                    eta
-                    );
+        message = tr("%1 of %2 (%3) — %4").arg(downloaded, total, speed, eta);
     } else if (status == Starting) {
         message = tr("Preparing");
     } else if (status == Failed) {
@@ -340,11 +351,11 @@ void PlaylistItemDelegate::paintDownloadInfo( QPainter* painter,
         progressBar->setEnabled(false);
     }
 
-    int progressBarWidth = line.width() - PADDING*4 - 16;
+    int progressBarWidth = line.width() - padding * 4 - 16;
     progressBar->setMaximumWidth(progressBarWidth);
     progressBar->setMinimumWidth(progressBarWidth);
     painter->save();
-    painter->translate(PADDING, PADDING);
+    painter->translate(padding, padding);
     progressBar->render(painter);
     painter->restore();
 
@@ -356,9 +367,12 @@ void PlaylistItemDelegate::paintDownloadInfo( QPainter* painter,
         downloadButtonPressed = index.data(DownloadButtonPressedRole).toBool();
     }
     QIcon::Mode iconMode;
-    if (downloadButtonPressed) iconMode = QIcon::Selected;
-    else if (downloadButtonHovered) iconMode = QIcon::Active;
-    else iconMode = QIcon::Normal;
+    if (downloadButtonPressed)
+        iconMode = QIcon::Selected;
+    else if (downloadButtonHovered)
+        iconMode = QIcon::Active;
+    else
+        iconMode = QIcon::Normal;
 
     if (status != Finished && status != Failed && status != Idle) {
         if (downloadButtonHovered) message = tr("Stop downloading");
@@ -389,21 +403,20 @@ void PlaylistItemDelegate::paintDownloadInfo( QPainter* painter,
         painter->restore();
     }
 
-    QRect textBox = line.adjusted(PADDING, PADDING*2 + progressBar->sizeHint().height(), -2 * PADDING, -PADDING);
-    textBox = painter->boundingRect( textBox, Qt::AlignLeft | Qt::AlignTop | Qt::TextWordWrap, message);
+    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(const QRect &line) const {
-    return QRect(
-                line.width() - PADDING*2 - 16,
-                PADDING + progressBar->sizeHint().height() / 2 - 8,
-                16,
-                16);
+    return QRect(line.width() - padding * 2 - 16,
+                 padding + progressBar->sizeHint().height() / 2 - 8, 16, 16);
 }
 
-QRect PlaylistItemDelegate::authorRect(const QModelIndexindex) const {
+QRect PlaylistItemDelegate::authorRect(const QModelIndex &index) const {
     return authorRects.value(index.row());
 }
index b2f693bbc13e06fe0b74467c835007453cb7d297..bd894dee21a97becf616387295c26a8ed9086585 100644 (file)
@@ -21,39 +21,39 @@ $END_LICENSE */
 #ifndef PLAYLISTITEMDELEGATE_H
 #define PLAYLISTITEMDELEGATE_H
 
-#include <QtGui>
-#if QT_VERSION >= 0x050000
 #include <QtWidgets>
-#endif
 
-class PlaylistItemDelegate : public QStyledItemDelegate {
+class PlaylistView;
 
+class PlaylistItemDelegate : public QStyledItemDelegate {
     Q_OBJECT
 
 public:
-    PlaylistItemDelegate(QObjectparent, bool downloadInfo = false);
+    PlaylistItemDelegate(QObject *parent, bool downloadInfo = false);
     ~PlaylistItemDelegate();
 
-    QSize sizeHint( const QStyleOptionViewItem&, const QModelIndex& ) const;
-    void paint( QPainter*, const QStyleOptionViewItem&, const QModelIndex& ) const;
+    QSize sizeHint(const QStyleOptionViewItem &, const QModelIndex &) const;
+    void
+    paint(QPainter *painter, const QStyleOptionViewItem &option, const QModelIndex &index) const;
     QRect downloadButtonRect(const QRect &line) const;
-    QRect authorRect(const QModelIndexindex) const;
+    QRect authorRect(const QModelIndex &index) const;
 
 private:
     void createPlayIcon();
-    void paintBody( QPainter*, const QStyleOptionViewItem&, const QModelIndex& ) const;
-    void paintDownloadInfo( QPainter* painter,
-                                        const QStyleOptionViewItem& option,
-                                        const QModelIndex& index ) const;
-    void paintActiveOverlay(QPainter *painter, const QStyleOptionViewItem& option, const QRect &line) const;
+    void paintBody(QPainter *, const QStyleOptionViewItem &, const QModelIndex &) const;
+    void paintDownloadInfo(QPainter *painter,
+                           const QStyleOptionViewItem &option,
+                           const QModelIndex &index) const;
+    void paintActiveOverlay(QPainter *painter,
+                            const QStyleOptionViewItem &option,
+                            const QRect &line) const;
     void drawTime(QPainter *painter, const QString &time, const QRect &line) const;
 
-    static const int THUMB_WIDTH;
-    static const int THUMB_HEIGHT;
-    static const int PADDING;
+    static const int thumbWidth;
+    static const int thumbHeight;
+    static const int padding;
 
     QPixmap playIcon;
-    QFont boldFont;
     QFont smallerFont;
     QFont smallerBoldFont;
 
@@ -62,6 +62,8 @@ private:
 
     mutable QRect lastAuthorRect;
     mutable QHash<int, QRect> authorRects;
+
+    PlaylistView *listView;
 };
 
 #endif
index 63cd6a3ff675d2d04c087f8ef0c9cd8976e4bf89..e2fcfe81a137388c15c1c66a647bc031d64e6f8b 100644 (file)
@@ -19,12 +19,12 @@ along with Minitube.  If not, see <http://www.gnu.org/licenses/>.
 $END_LICENSE */
 
 #include "playlistmodel.h"
+#include "mediaview.h"
+#include "searchparams.h"
+#include "video.h"
 #include "videomimedata.h"
 #include "videosource.h"
 #include "ytsearch.h"
-#include "video.h"
-#include "searchparams.h"
-#include "mediaview.h"
 
 static const int maxItems = 50;
 static const QString recentKeywordsKey = "recentKeywords";
@@ -44,24 +44,21 @@ PlaylistModel::PlaylistModel(QWidget *parent) : QAbstractListModel(parent) {
     authorPressed = false;
 }
 
-int PlaylistModel::rowCount(const QModelIndex &/*parent*/) const {
+int PlaylistModel::rowCount(const QModelIndex & /*parent*/) const {
     int count = videos.size();
-    
+
     // add the message item
-    if (videos.isEmpty() || !searching)
-        count++;
-    
+    if (videos.isEmpty() || !searching) count++;
+
     return count;
 }
 
 QVariant PlaylistModel::data(const QModelIndex &index, int role) const {
-    
     int row = index.row();
-    
+
     if (row == videos.size()) {
-        
         QPalette palette;
-        
+
         switch (role) {
         case ItemTypeRole:
             return ItemTypeShowMore;
@@ -69,8 +66,10 @@ QVariant PlaylistModel::data(const QModelIndex &index, int role) const {
             if (!errorMessage.isEmpty()) return errorMessage;
             if (searching) return tr("Searching...");
             if (canSearchMore) return tr("Show %1 More").arg("").simplified();
-            if (videos.isEmpty()) return tr("No videos");
-            else return tr("No more videos");
+            if (videos.isEmpty())
+                return tr("No videos");
+            else
+                return tr("No more videos");
         case Qt::TextAlignmentRole:
             return QVariant(int(Qt::AlignHCenter | Qt::AlignVCenter));
         case Qt::ForegroundRole:
@@ -86,12 +85,12 @@ QVariant PlaylistModel::data(const QModelIndex &index, int role) const {
         default:
             return QVariant();
         }
-        
+
     } else if (row < 0 || row >= videos.size())
         return QVariant();
-    
+
     Video *video = videos.at(row);
-    
+
     switch (role) {
     case ItemTypeRole:
         return ItemTypeVideo;
@@ -100,7 +99,7 @@ QVariant PlaylistModel::data(const QModelIndex &index, int role) const {
     case ActiveTrackRole:
         return video == m_activeVideo;
     case Qt::DisplayRole:
-        return video->title();
+        return video->getTitle();
     case HoveredItemRole:
         return hoveredRow == index.row();
     case AuthorHoveredRole:
@@ -112,71 +111,65 @@ QVariant PlaylistModel::data(const QModelIndex &index, int role) const {
         return video->description();
         */
     }
-    
+
     return QVariant();
 }
 
 void PlaylistModel::setActiveRow(int row, bool notify) {
-    if ( rowExists( row ) ) {
-        
+    if (rowExists(row)) {
         m_activeRow = row;
         m_activeVideo = videoAt(row);
-        
+
         int oldactiverow = m_activeRow;
-        
-        if ( rowExists( oldactiverow ) )
-            emit dataChanged( createIndex( oldactiverow, 0 ), createIndex( oldactiverow, columnCount() - 1 ) );
-        
-        emit dataChanged( createIndex( m_activeRow, 0 ), createIndex( m_activeRow, columnCount() - 1 ) );
+
+        if (rowExists(oldactiverow))
+            emit dataChanged(createIndex(oldactiverow, 0),
+                             createIndex(oldactiverow, columnCount() - 1));
+
+        emit dataChanged(createIndex(m_activeRow, 0), createIndex(m_activeRow, columnCount() - 1));
         if (notify) emit activeRowChanged(row);
-        
+
     } else {
         m_activeRow = -1;
         m_activeVideo = 0;
     }
-
 }
 
 int PlaylistModel::nextRow() const {
     int nextRow = m_activeRow + 1;
-    if (rowExists(nextRow))
-        return nextRow;
+    if (rowExists(nextRow)) return nextRow;
     return -1;
 }
 
 int PlaylistModel::previousRow() const {
     int prevRow = m_activeRow - 1;
-    if (rowExists(prevRow))
-        return prevRow;
+    if (rowExists(prevRow)) return prevRow;
     return -1;
 }
 
-Video* PlaylistModel::videoAt( int row ) const {
-    if ( rowExists( row ) )
-        return videos.at( row );
+Video *PlaylistModel::videoAt(int row) const {
+    if (rowExists(row)) return videos.at(row);
     return 0;
 }
 
-VideoPlaylistModel::activeVideo() const {
+Video *PlaylistModel::activeVideo() const {
     return m_activeVideo;
 }
 
 void PlaylistModel::setVideoSource(VideoSource *videoSource) {
     beginResetModel();
-    while (!videos.isEmpty()) delete videos.takeFirst();
-    videos.clear();
+    while (!videos.isEmpty())
+        delete videos.takeFirst();
     m_activeVideo = 0;
     m_activeRow = -1;
     startIndex = 1;
     endResetModel();
 
     this->videoSource = videoSource;
-    connect(videoSource, SIGNAL(gotVideos(QList<Video*>)),
-            SLOT(addVideos(QList<Video*>)), Qt::UniqueConnection);
-    connect(videoSource, SIGNAL(finished(int)),
-            SLOT(searchFinished(int)), Qt::UniqueConnection);
-    connect(videoSource, SIGNAL(error(QString)),
-            SLOT(searchError(QString)), Qt::UniqueConnection);
+    connect(videoSource, SIGNAL(gotVideos(QVector<Video *>)), SLOT(addVideos(QVector<Video *>)),
+            Qt::UniqueConnection);
+    connect(videoSource, SIGNAL(finished(int)), SLOT(searchFinished(int)), Qt::UniqueConnection);
+    connect(videoSource, SIGNAL(error(QString)), SLOT(searchError(QString)), Qt::UniqueConnection);
 
     searchMore();
 }
@@ -198,16 +191,16 @@ void PlaylistModel::searchMore() {
 void PlaylistModel::searchNeeded() {
     const int desiredRowsAhead = 10;
     int remainingRows = videos.size() - m_activeRow;
-    if (remainingRows < desiredRowsAhead)
-        searchMore(maxItems);
+    if (remainingRows < desiredRowsAhead) searchMore(maxItems);
 }
 
 void PlaylistModel::abortSearch() {
     QMutexLocker locker(&mutex);
     beginResetModel();
-    // while (!videos.isEmpty()) delete videos.takeFirst();
-    // if (videoSource) videoSource->abort();
+    if (videoSource) videoSource->abort();
+    qDeleteAll(videos);
     videos.clear();
+    videos.squeeze();
     searching = false;
     m_activeRow = -1;
     m_activeVideo = 0;
@@ -216,57 +209,44 @@ void PlaylistModel::abortSearch() {
 }
 
 void PlaylistModel::searchFinished(int total) {
+    Q_UNUSED(total);
     searching = false;
     canSearchMore = videoSource->hasMoreVideos();
 
     // update the message item
-    emit dataChanged( createIndex( maxItems, 0 ), createIndex( maxItems, columnCount() - 1 ) );
-
-    if (!videoSource->getSuggestions().isEmpty())
-        emit haveSuggestions(videoSource->getSuggestions());
+    emit dataChanged(createIndex(maxItems, 0), createIndex(maxItems, columnCount() - 1));
 
-    if (firstSearch && !videos.isEmpty())
-        handleFirstVideo(videos.first());
+    if (firstSearch && !videos.isEmpty()) handleFirstVideo(videos.at(0));
 }
 
 void PlaylistModel::searchError(const QString &message) {
     errorMessage = message;
     // update the message item
-    emit dataChanged( createIndex( maxItems, 0 ), createIndex( maxItems, columnCount() - 1 ) );
+    emit dataChanged(createIndex(maxItems, 0), createIndex(maxItems, columnCount() - 1));
 }
 
-void PlaylistModel::addVideos(QList<Video*> newVideos) {
+void PlaylistModel::addVideos(const QVector<Video *> &newVideos) {
     if (newVideos.isEmpty()) return;
+    videos.reserve(videos.size() + newVideos.size());
     beginInsertRows(QModelIndex(), videos.size(), videos.size() + newVideos.size() - 2);
     videos.append(newVideos);
     endInsertRows();
-    foreach (Video* video, newVideos) {
-        connect(video, SIGNAL(gotThumbnail()),
-                SLOT(updateVideoSender()), Qt::UniqueConnection);
+    for (Video *video : newVideos) {
+        connect(video, SIGNAL(gotThumbnail()), SLOT(updateVideoSender()), Qt::UniqueConnection);
         video->loadThumbnail();
-        qApp->processEvents();
     }
 }
 
 void PlaylistModel::handleFirstVideo(Video *video) {
-
+    QSettings settings;
     int currentVideoRow = rowForCloneVideo(MediaView::instance()->getCurrentVideoId());
-    if (currentVideoRow != -1) setActiveRow(currentVideoRow, false);
+    if (currentVideoRow != -1)
+        setActiveRow(currentVideoRow, false);
     else {
-        QSettings settings;
-        if (!settings.value("manualplay", false).toBool())
-            setActiveRow(0);
-    }
-
-    QSettings settings;
-    if (!settings.value("manualplay", false).toBool()) {
-        int newActiveRow = rowForCloneVideo(MediaView::instance()->getCurrentVideoId());
-        if (newActiveRow != -1) setActiveRow(newActiveRow, false);
-        else setActiveRow(0);
+        if (!settings.value("manualplay", false).toBool()) setActiveRow(0);
     }
 
     if (videoSource->metaObject()->className() == QLatin1String("YTSearch")) {
-
         static const int maxRecentElements = 10;
 
         YTSearch *search = qobject_cast<YTSearch *>(videoSource);
@@ -277,7 +257,7 @@ void PlaylistModel::handleFirstVideo(Video *video) {
         if (!query.isEmpty() && !searchParams->isTransient()) {
             if (query.startsWith("http://")) {
                 // Save the video title
-                query += "|" + videos.first()->title();
+                query += "|" + videos.at(0)->getTitle();
             }
             QStringList keywords = settings.value(recentKeywordsKey).toStringList();
             keywords.removeAll(query);
@@ -291,9 +271,11 @@ void PlaylistModel::handleFirstVideo(Video *video) {
         QString channelId = searchParams->channelId();
         if (!channelId.isEmpty() && !searchParams->isTransient()) {
             QString value;
-            if (!video->channelId().isEmpty() && video->channelId() != video->channelTitle())
-                value = video->channelId() + "|" + video->channelTitle();
-            else value = video->channelTitle();
+            if (!video->getChannelId().isEmpty() &&
+                video->getChannelId() != video->getChannelTitle())
+                value = video->getChannelId() + "|" + video->getChannelTitle();
+            else
+                value = video->getChannelTitle();
             QStringList channels = settings.value(recentChannelsKey).toStringList();
             channels.removeAll(value);
             channels.removeAll(channelId);
@@ -312,51 +294,47 @@ void PlaylistModel::updateVideoSender() {
         return;
     }
     int row = rowForVideo(video);
-    emit dataChanged( createIndex( row, 0 ), createIndex( row, columnCount() - 1 ) );
+    emit dataChanged(createIndex(row, 0), createIndex(row, columnCount() - 1));
 }
 
 void PlaylistModel::emitDataChanged() {
-    QModelIndex index = createIndex(rowCount()-1, 0);
+    QModelIndex index = createIndex(rowCount() - 1, 0);
     emit dataChanged(index, index);
 }
 
 // --- item removal
 
-/**
-  * This function does not free memory
-  */
 bool PlaylistModel::removeRows(int position, int rows, const QModelIndex & /*parent*/) {
-    beginRemoveRows(QModelIndex(), position, position+rows-1);
+    beginRemoveRows(QModelIndex(), position, position + rows - 1);
     for (int row = 0; row < rows; ++row) {
-        videos.removeAt(position);
+        Video *video = videos.takeAt(position);
     }
     endRemoveRows();
     return true;
 }
 
 void PlaylistModel::removeIndexes(QModelIndexList &indexes) {
-    QList<Video*> originalList(videos);
-    QList<Video*> delitems;
-    foreach (const QModelIndex &index, indexes) {
+    QVector<Video *> originalList(videos);
+    QVector<Video *> delitems;
+    delitems.reserve(indexes.size());
+    for (const QModelIndex &index : indexes) {
         if (index.row() >= originalList.size()) continue;
-        Videovideo = originalList.at(index.row());
+        Video *video = originalList.at(index.row());
         int idx = videos.indexOf(video);
         if (idx != -1) {
             beginRemoveRows(QModelIndex(), idx, idx);
             delitems.append(video);
             videos.removeAll(video);
+            video->deleteLater();
             endRemoveRows();
         }
     }
-
     qDeleteAll(delitems);
-
+    videos.squeeze();
 }
 
 // --- Sturm und drang ---
 
-
-
 Qt::DropActions PlaylistModel::supportedDropActions() const {
     return Qt::CopyAction;
 }
@@ -370,7 +348,8 @@ Qt::ItemFlags PlaylistModel::flags(const QModelIndex &index) const {
         if (index.row() == videos.size()) {
             // don't drag the "show more" item
             return Qt::ItemIsEnabled | Qt::ItemIsSelectable;
-        } else return (Qt::ItemIsEnabled | Qt::ItemIsSelectable | Qt::ItemIsDragEnabled);
+        } else
+            return (Qt::ItemIsEnabled | Qt::ItemIsSelectable | Qt::ItemIsDragEnabled);
     }
     return Qt::ItemIsDropEnabled;
 }
@@ -381,29 +360,27 @@ QStringList PlaylistModel::mimeTypes() const {
     return types;
 }
 
-QMimeData* PlaylistModel::mimeData( const QModelIndexList &indexes ) const {
-    VideoMimeDatamime = new VideoMimeData();
+QMimeData *PlaylistModel::mimeData(const QModelIndexList &indexes) const {
+    VideoMimeData *mime = new VideoMimeData();
 
-    foreach( const QModelIndex &it, indexes ) {
+    for (const QModelIndex &it : indexes) {
         int row = it.row();
-        if (row >= 0 && row < videos.size())
-            mime->addVideo( videos.at( it.row() ) );
+        if (row >= 0 && row < videos.size()) mime->addVideo(videos.at(it.row()));
     }
 
     return mime;
 }
 
 bool PlaylistModel::dropMimeData(const QMimeData *data,
-                                 Qt::DropAction action, int row, int column,
+                                 Qt::DropAction action,
+                                 int row,
+                                 int column,
                                  const QModelIndex &parent) {
-    if (action == Qt::IgnoreAction)
-        return true;
+    if (action == Qt::IgnoreAction) return true;
 
-    if (!data->hasFormat("application/x-minitube-video"))
-        return false;
+    if (!data->hasFormat("application/x-minitube-video")) return false;
 
-    if (column > 0)
-        return false;
+    if (column > 0) return false;
 
     int beginRow;
     if (row != -1)
@@ -413,21 +390,19 @@ bool PlaylistModel::dropMimeData(const QMimeData *data,
     else
         beginRow = rowCount(QModelIndex());
 
-    const VideoMimeData* videoMimeData = qobject_cast<const VideoMimeData*>( data );
-    if(!videoMimeData ) return false;
+    const VideoMimeData *videoMimeData = qobject_cast<const VideoMimeData *>(data);
+    if (!videoMimeData) return false;
 
-    QList<Video*> droppedVideos = videoMimeData->videos();
-    foreach( Video *video, droppedVideos) {
-        
+    const QVector<Video *> &droppedVideos = videoMimeData->getVideos();
+    for (Video *video : droppedVideos) {
         // remove videos
         int videoRow = videos.indexOf(video);
         removeRows(videoRow, 1, QModelIndex());
-        
+
         // and then add them again at the new position
         beginInsertRows(QModelIndex(), beginRow, beginRow);
         videos.insert(beginRow, video);
         endInsertRows();
-
     }
 
     // fix m_activeRow after all this
@@ -437,7 +412,6 @@ bool PlaylistModel::dropMimeData(const QMimeData *data,
     emit needSelectionFor(droppedVideos);
 
     return true;
-
 }
 
 int PlaylistModel::rowForCloneVideo(const QString &videoId) const {
@@ -445,23 +419,23 @@ int PlaylistModel::rowForCloneVideo(const QString &videoId) const {
     for (int i = 0; i < videos.size(); ++i) {
         Video *v = videos.at(i);
         // qDebug() << "Comparing" << v->id() << videoId;
-        if (v->id() == videoId) return i;
+        if (v->getId() == videoId) return i;
     }
     return -1;
 }
 
-int PlaylistModel::rowForVideo(Videovideo) {
+int PlaylistModel::rowForVideo(Video *video) {
     return videos.indexOf(video);
 }
 
-QModelIndex PlaylistModel::indexForVideo(Videovideo) {
+QModelIndex PlaylistModel::indexForVideo(Video *video) {
     return createIndex(videos.indexOf(video), 0);
 }
 
 void PlaylistModel::move(QModelIndexList &indexes, bool up) {
-    QList<Video*> movedVideos;
+    QVector<Video *> movedVideos;
 
-    foreach (const QModelIndex &index, indexes) {
+    for (const QModelIndex &index : indexes) {
         int row = index.row();
         if (row >= videos.size()) continue;
         // qDebug() << "index row" << row;
@@ -469,25 +443,27 @@ void PlaylistModel::move(QModelIndexList &indexes, bool up) {
         movedVideos << video;
     }
 
-    int end=up ? -1 : rowCount()-1, mod=up ? -1 : 1;
-    foreach (Video *video, movedVideos) {
-
+    int end = up ? -1 : rowCount() - 1, mod = up ? -1 : 1;
+    for (Video *video : movedVideos) {
         int row = rowForVideo(video);
-        if (row+mod==end) { end=row; continue; }
+        if (row + mod == end) {
+            end = row;
+            continue;
+        }
         // qDebug() << "video row" << row;
         removeRows(row, 1, QModelIndex());
 
-        if (up) row--;
-        else row++;
+        if (up)
+            row--;
+        else
+            row++;
 
         beginInsertRows(QModelIndex(), row, row);
         videos.insert(row, video);
         endInsertRows();
-
     }
 
     emit needSelectionFor(movedVideos);
-
 }
 
 /* row hovering */
@@ -495,18 +471,18 @@ void PlaylistModel::move(QModelIndexList &indexes, bool up) {
 void PlaylistModel::setHoveredRow(int row) {
     int oldRow = hoveredRow;
     hoveredRow = row;
-    emit dataChanged( createIndex( oldRow, 0 ), createIndex( oldRow, columnCount() - 1 ) );
-    emit dataChanged( createIndex( hoveredRow, 0 ), createIndex( hoveredRow, columnCount() - 1 ) );
+    emit dataChanged(createIndex(oldRow, 0), createIndex(oldRow, columnCount() - 1));
+    emit dataChanged(createIndex(hoveredRow, 0), createIndex(hoveredRow, columnCount() - 1));
 }
 
 void PlaylistModel::clearHover() {
     int oldRow = hoveredRow;
     hoveredRow = -1;
-    emit dataChanged( createIndex( oldRow, 0 ), createIndex( oldRow, columnCount() - 1) );
+    emit dataChanged(createIndex(oldRow, 0), createIndex(oldRow, columnCount() - 1));
 }
 
 void PlaylistModel::updateHoveredRow() {
-    emit dataChanged( createIndex( hoveredRow, 0 ), createIndex( hoveredRow, columnCount() - 1 ) );
+    emit dataChanged(createIndex(hoveredRow, 0), createIndex(hoveredRow, columnCount() - 1));
 }
 
 /* clickable author */
index 82ffcf64231063b849c7a9ffbb7fa699020f2b02..d11ee56342ce977a10ec85ceaa29bb2c6c2304b1 100644 (file)
@@ -21,10 +21,7 @@ $END_LICENSE */
 #ifndef PLAYLISTMODEL_H
 #define PLAYLISTMODEL_H
 
-#include <QtGui>
-#if QT_VERSION >= 0x050000
 #include <QtWidgets>
-#endif
 
 class Video;
 class VideoSource;
@@ -88,7 +85,7 @@ public:
 public slots:
     void searchMore();
     void searchNeeded();
-    void addVideos(QList<Video*> newVideos);
+    void addVideos(const QVector<Video *> &newVideos);
     void searchFinished(int total);
     void searchError(const QString &message);
     void updateVideoSender();
@@ -105,7 +102,7 @@ public slots:
 
 signals:
     void activeRowChanged(int);
-    void needSelectionFor(QList<Video*>);
+    void needSelectionFor(const QVector<Video*> &videos);
     void haveSuggestions(const QStringList &suggestions);
 
 private:
@@ -117,7 +114,7 @@ private:
     bool canSearchMore;
     bool firstSearch;
 
-    QList<Video*> videos;
+    QVector<Video*> videos;
     int startIndex;
     int max;
 
index c0e1197e735227e666b0bb12eb83cb476453edb0..f5a1677f5454a21a641cfc45a7882f56be9a3358 100644 (file)
@@ -30,7 +30,7 @@ PlaylistView::PlaylistView(QWidget *parent) : QListView(parent),
 
     setSizePolicy(QSizePolicy::MinimumExpanding, QSizePolicy::Expanding);
 
-#if QT_VERSION >= 0x050000 && defined(APP_MAC)
+#if defined(APP_MAC)
     setMinimumWidth(160);
 #else
     setMinimumWidth(175);
index 63b76e1cc86502f68cc07d1576f1064944459f4f..c168d77ec2b7d14a2abe291eb4fe06cf8f7fdbff 100644 (file)
@@ -21,10 +21,7 @@ $END_LICENSE */
 #ifndef PLAYLISTVIEW_H
 #define PLAYLISTVIEW_H
 
-#include <QtGui>
-#if QT_VERSION >= 0x050000
 #include <QtWidgets>
-#endif
 
 class PlaylistView : public QListView {
 
@@ -33,6 +30,7 @@ class PlaylistView : public QListView {
 public:
     PlaylistView(QWidget *parent = 0);
     void setClickableAuthors(bool enabled) { clickableAuthors = enabled; }
+    bool isClickableAuthors() { return clickableAuthors; }
 
 protected:
     void leaveEvent(QEvent *event);
index 22cf1f1b8dbfc5015ad56bb54bec9644c9795eb7..a9835764a15da7d341f659383882426b6029ba48 100644 (file)
@@ -21,10 +21,7 @@ $END_LICENSE */
 #ifndef REFINESEARCHBUTTON_H
 #define REFINESEARCHBUTTON_H
 
-#include <QtGui>
-#if QT_VERSION >= 0x050000
 #include <QtWidgets>
-#endif
 
 class RefineSearchButton : public QPushButton
 {
index d82a227c12e80b0f9d876e2a995bc7dadd315ea9..6723b5a282bb5457e2670d6b3f889b1fe0d92e82 100644 (file)
@@ -24,14 +24,13 @@ $END_LICENSE */
 #include "extra.h"
 #endif
 #include "iconutils.h"
-
-namespace The {
-QHash<QString, QAction*>* globalActions();
-}
+#include "mainwindow.h"
 
 RefineSearchWidget::RefineSearchWidget(QWidget *parent) :
     QWidget(parent) {
     dirty = false;
+    // Fixes background painting in fullscreen
+    setAutoFillBackground(true);
 }
 
 void RefineSearchWidget::setup() {
@@ -50,13 +49,13 @@ void RefineSearchWidget::setup() {
     setupLabel(tr("Sort by"), layout, paramName);
     QToolBar *sortBar = setupBar(paramName);
     QActionGroup* sortGroup = new QActionGroup(this);
-    QStringList sortOptions = QStringList()
+    const QStringList sortOptions = QStringList()
             << tr("Relevance")
             << tr("Date")
             << tr("View Count")
             << tr("Rating");
     int i = 0;
-    foreach (const QString &actionName, sortOptions) {
+    for (const QString &actionName : sortOptions) {
         QAction *action = new QAction(actionName, sortBar);
         action->setCheckable(true);
         action->setProperty("paramValue", i);
@@ -70,13 +69,13 @@ void RefineSearchWidget::setup() {
     setupLabel(tr("Date"), layout, paramName);
     QToolBar *timeBar = setupBar(paramName);
     QActionGroup* timeGroup = new QActionGroup(this);
-    QStringList timeSpans = QStringList()
+    const QStringList timeSpans = QStringList()
             << tr("Anytime")
             << tr("Today")
             << tr("7 Days")
             << tr("30 Days");
     i = 0;
-    foreach (const QString &actionName, timeSpans) {
+    for (const QString &actionName : timeSpans) {
         QAction *action = new QAction(actionName, timeBar);
         action->setCheckable(true);
         action->setProperty("paramValue", i);
@@ -90,7 +89,7 @@ void RefineSearchWidget::setup() {
     setupLabel(tr("Duration"), layout, paramName);
     QToolBar *lengthBar = setupBar(paramName);
     QActionGroup* lengthGroup = new QActionGroup(this);
-    QStringList lengthOptions = QStringList()
+    const QStringList lengthOptions = QStringList()
             << tr("All")
             << tr("Short")
             << tr("Medium")
@@ -101,7 +100,7 @@ void RefineSearchWidget::setup() {
             << tr("Between 4 and 20 minutes")
             << tr("Longer than 20 minutes");
     i = 0;
-    foreach (const QString &actionName, lengthOptions) {
+    for (const QString &actionName : lengthOptions) {
         QAction *action = new QAction(actionName, timeBar);
         action->setStatusTip(tips.at(i));
         action->setCheckable(true);
@@ -116,14 +115,14 @@ void RefineSearchWidget::setup() {
     setupLabel(tr("Quality"), layout, paramName);
     QToolBar *qualityBar = setupBar(paramName);
     QActionGroup* qualityGroup = new QActionGroup(this);
-    QStringList qualityOptions = QStringList()
+    const QStringList qualityOptions = QStringList()
             << tr("All")
             << tr("High Definition");
     tips = QStringList()
             << ""
             << tr("720p or higher");
     i = 0;
-    foreach (const QString &actionName, qualityOptions) {
+    for (const QString &actionName : qualityOptions) {
         QAction *action = new QAction(actionName, timeBar);
         action->setStatusTip(tips.at(i));
         action->setCheckable(true);
@@ -207,7 +206,7 @@ void RefineSearchWidget::actionTriggered(QAction *action) {
 void RefineSearchWidget::setSearchParams(SearchParams *params) {
     setup();
 
-    The::globalActions()->value("refine-search")->setEnabled(params);
+    MainWindow::instance()->getAction("refineSearch")->setEnabled(params);
     setEnabled(params);
 
     if (!params) return;
index 379fc385d98685adb96e7d5512a528bc536117cb..7122e8ca5aabc8df9b55e6914dd20cd0a785866b 100644 (file)
@@ -21,10 +21,7 @@ $END_LICENSE */
 #ifndef REFINESEARCHWIDGET_H
 #define REFINESEARCHWIDGET_H
 
-#include <QtGui>
-#if QT_VERSION >= 0x050000
 #include <QtWidgets>
-#endif
 
 class SearchParams;
 
index 53a47635ca514ac08504c0a19d83e346399df3df..b2b41c3afd0c5115ff996be0eece33b94de658bd 100644 (file)
@@ -73,6 +73,19 @@ void RegionsView::appear() {
     }
 }
 
+void RegionsView::paintEvent(QPaintEvent *e) {
+    QWidget::paintEvent(e);
+    QBrush brush;
+    if (window()->isActiveWindow()) {
+        brush = Qt::white;
+    } else {
+        brush = palette().window();
+    }
+    QPainter painter(this);
+    painter.fillRect(0, 0, width(), height(), brush);
+    painter.end();
+}
+
 void RegionsView::buttonClicked() {
     QObject* o = sender();
     QString regionId = o->property("regionId").toString();
index 82cc7a22c52f23256eb54e79e7c366309855dde8..75c0fbfcf32b724368f46c82c419a47cb53b991c 100644 (file)
@@ -21,10 +21,8 @@ $END_LICENSE */
 #ifndef REGIONSVIEW_H
 #define REGIONSVIEW_H
 
-#include <QtGui>
-#if QT_VERSION >= 0x050000
 #include <QtWidgets>
-#endif
+
 #include "view.h"
 
 struct YTRegion;
@@ -37,6 +35,9 @@ public:
     RegionsView(QWidget *parent = 0);
     void appear();
 
+protected:
+    void paintEvent(QPaintEvent *e);
+
 signals:
     void regionChanged();
 
index bbd2fe59e67bcec474aebb2e83722498380e2fda..06d201d7f3e80379c9caa5bccf6712e133089205 100644 (file)
@@ -65,7 +65,7 @@ SearchLineEdit::SearchLineEdit(QWidget *parent) : ExLineEdit(parent), searchButt
 void SearchLineEdit::paintEvent(QPaintEvent *e) {
     ExLineEdit::paintEvent(e);
     if (m_lineEdit->text().isEmpty() && !hasFocus() && !inactiveText.isEmpty()) {
-        QStyleOptionFrameV2 panel;
+        QStyleOptionFrame panel;
         initStyleOption(&panel);
         QRect r = style()->subElementRect(QStyle::SE_LineEditContents, &panel, this);
         QFontMetrics fm = fontMetrics();
index d7d8c8b11b4a0eef6e947873bfd4824f48991c4f..e3a71d02d5903b71ded9a48b8da58cfdc33c59a9 100644 (file)
@@ -1,10 +1,7 @@
 #ifndef SEARCHLINEEDIT_H
 #define SEARCHLINEEDIT_H
 
-#include <QtGui>
-#if QT_VERSION >= 0x050000
 #include <QtWidgets>
-#endif
 
 #include "exlineedit.h"
 #include "searchwidget.h"
index 47ab4def1a1cb44aa23eba4b4249fbe885658886..2fea09c43af4a56f56daff685cbb523f9b5e90ed 100644 (file)
@@ -27,6 +27,7 @@ SearchParams::SearchParams(QObject *parent) : QObject(parent) {
     m_quality = QualityAny;
     m_time = TimeAny;
     m_publishedAfter = 0;
+    m_safeSearch = Moderate;
 }
 
 void SearchParams::setParam(const QString &name, const QVariant &value) {
index c408c89aaf2ed0ec77821e37902acb38bc4e15dc..2ca81d3cfe5c1b5cfce15698190d5d59d84f8485 100644 (file)
@@ -59,12 +59,18 @@ public:
         TimeMonth
     };
 
+    enum SafeSearch {
+        None = 0,
+        Moderate,
+        Strict
+    };
+
     SearchParams(QObject *parent = 0);
 
-    const QString keywords() const { return m_keywords; }
+    const QString &keywords() const { return m_keywords; }
     void setKeywords(const QString &keywords) { m_keywords = keywords; }
 
-    const QString channelId() const { return m_channelId; }
+    const QString &channelId() const { return m_channelId; }
     void setChannelId(const QString &value) { m_channelId = value; }
 
     int sortBy() const { return m_sortBy; }
@@ -85,6 +91,9 @@ public:
     uint publishedAfter() const { return m_publishedAfter; }
     void setPublishedAfter(uint value) { m_publishedAfter = value; }
 
+    int safeSearch() const { return m_safeSearch; }
+    void setSafeSearch( int safeSearch ) { m_safeSearch = safeSearch; }
+
     bool operator==(const SearchParams &other) const {
         return m_keywords == other.keywords() &&
                 m_channelId == other.channelId();
@@ -102,6 +111,7 @@ private:
     int m_quality;
     int m_time;
     uint m_publishedAfter;
+    int m_safeSearch;
 
 };
 
index e5fbae75625d8ac3c00e623407a89ace2a1333c5..bf48028953b1a01f0b66e2f1fb97adb7df614159 100644 (file)
@@ -34,87 +34,93 @@ $END_LICENSE */
 #endif
 #ifdef APP_ACTIVATION
 #include "activation.h"
+#include "activationview.h"
 #endif
 #include "mainwindow.h"
 #include "painterutils.h"
 #include "iconutils.h"
+#include "clickablelabel.h"
 
-namespace The {
-QHash<QString, QAction*>* globalActions();
-}
-
+namespace {
 static const QString recentKeywordsKey = "recentKeywords";
 static const QString recentChannelsKey = "recentChannels";
-static const int PADDING = 30;
+}
 
 SearchView::SearchView(QWidget *parent) : View(parent) {
+    const int padding = 30;
 
-#if defined(APP_MAC) | defined(APP_WIN)
     // speedup painting since we'll paint the whole background
     // by ourselves anyway in paintEvent()
     setAttribute(Qt::WA_OpaquePaintEvent);
-#endif
 
-    QBoxLayout *mainLayout = new QVBoxLayout(this);
-    mainLayout->setMargin(PADDING);
-    mainLayout->setSpacing(0);
+    QBoxLayout *vLayout = new QVBoxLayout(this);
+    vLayout->setMargin(padding);
+    vLayout->setSpacing(0);
 
     // hidden message widget
     message = new QLabel(this);
     message->hide();
-    mainLayout->addWidget(message);
+    vLayout->addWidget(message);
 
-    mainLayout->addStretch();
+    vLayout->addStretch();
 
     QBoxLayout *hLayout = new QHBoxLayout();
     hLayout->setAlignment(Qt::AlignCenter);
-    mainLayout->addLayout(hLayout);
 
-    QLabel *logo = new QLabel(this);
+    vLayout->addLayout(hLayout);
+
+    hLayout->addStretch();
+
+    logo = new ClickableLabel(this);
     logo->setPixmap(IconUtils::pixmap(":/images/app.png"));
+    connect(logo, &ClickableLabel::clicked, MainWindow::instance(), &MainWindow::visitSite);
     hLayout->addWidget(logo, 0, Qt::AlignTop);
-    hLayout->addSpacing(PADDING);
+    hLayout->addSpacing(padding);
 
     QVBoxLayout *layout = new QVBoxLayout();
     layout->setAlignment(Qt::AlignCenter);
     hLayout->addLayout(layout);
 
+    QColor titleColor = palette().color(QPalette::WindowText);
+    titleColor.setAlphaF(.75);
+    int r,g,b,a;
+    titleColor.getRgb(&r,&g,&b,&a);
+    QString cssColor = QString::asprintf("rgba(%d,%d,%d,%d)", r, g, b, a);
+
     QLabel *welcomeLabel =
-            new QLabel("<h1 style='font-weight:100'>" +
+            new QLabel(QString("<h1 style='font-weight:300;color:%1'>").arg(cssColor) +
                        tr("Welcome to <a href='%1'>%2</a>,")
-                       .replace("<a ", "<a style='text-decoration:none; color:palette(text);font-weight:normal' ")
+                       .replace("<a ", "<a style='text-decoration:none; color:palette(text)' ")
                        .arg(Constants::WEBSITE, Constants::NAME)
-                       + "</h1>", this);
+                       + "</h1>");
     welcomeLabel->setOpenExternalLinks(true);
     welcomeLabel->setProperty("heading", true);
-#ifdef APP_MAC
-    QFont f = welcomeLabel->font();
-    f.setFamily("Helvetica Neue");
-    f.setStyleName("Thin");
-    welcomeLabel->setFont(f);
-#elif APP_WIN
-    QFont f = welcomeLabel->font();
-    f.setFamily("Segoe UI Light");
-    welcomeLabel->setFont(f);
-#endif
+    welcomeLabel->setFont(FontUtils::light(welcomeLabel->font().pointSize() * 1.25));
     layout->addWidget(welcomeLabel);
 
-    layout->addSpacing(PADDING / 2);
-
-    QBoxLayout *tipLayout = new QHBoxLayout();
-    tipLayout->setSpacing(10);
+    layout->addSpacing(padding / 2);
 
 #ifndef APP_MAC
     const QFont &biggerFont = FontUtils::big();
 #endif
 
     //: "Enter", as in "type". The whole phrase says: "Enter a keyword to start watching videos"
-    QLabel *tipLabel = new QLabel(tr("Enter"), this);
+    // QLabel *tipLabel = new QLabel(tr("Enter"), this);
+
+    QString tip;
+    if (qApp->layoutDirection() == Qt::RightToLeft) {
+        tip = tr("to start watching videos.") + " " + tr("a keyword") + " " + tr("Enter");
+    } else {
+        tip = tr("Enter") + " " + tr("a keyword") + " " + tr("to start watching videos.");
+    }
+    QLabel *tipLabel = new QLabel(tip);
+
 #ifndef APP_MAC
     tipLabel->setFont(biggerFont);
 #endif
-    tipLayout->addWidget(tipLabel);
+    layout->addWidget(tipLabel);
 
+    /*
     typeCombo = new QComboBox(this);
     typeCombo->addItem(tr("a keyword"));
     typeCombo->addItem(tr("a channel"));
@@ -129,15 +135,17 @@ SearchView::SearchView(QWidget *parent) : View(parent) {
     tipLabel->setFont(biggerFont);
 #endif
     tipLayout->addWidget(tipLabel);
-    layout->addLayout(tipLayout);
+    */
 
-    layout->addSpacing(PADDING / 2);
+    layout->addSpacing(padding / 2);
 
     QHBoxLayout *searchLayout = new QHBoxLayout();
     searchLayout->setAlignment(Qt::AlignVCenter);
 
 #ifdef APP_MAC_SEARCHFIELD
-    queryEdit = new SearchLineEditMac(this);
+    SearchLineEditMac *slem = new SearchLineEditMac(this);
+    queryEdit = slem;
+    setFocusProxy(slem);
 #else
     SearchLineEdit *sle = new SearchLineEdit(this);
     sle->setFont(biggerFont);
@@ -146,16 +154,18 @@ SearchView::SearchView(QWidget *parent) : View(parent) {
 
     connect(queryEdit->toWidget(), SIGNAL(search(const QString&)), SLOT(watch(const QString&)));
     connect(queryEdit->toWidget(), SIGNAL(textChanged(const QString &)), SLOT(textChanged(const QString &)));
+    connect(queryEdit->toWidget(), SIGNAL(textEdited(const QString &)), SLOT(textChanged(const QString &)));
     connect(queryEdit->toWidget(), SIGNAL(suggestionAccepted(Suggestion*)), SLOT(suggestionAccepted(Suggestion*)));
 
     youtubeSuggest = new YTSuggester(this);
     channelSuggest = new ChannelSuggest(this);
+    connect(channelSuggest, SIGNAL(ready(QVector<Suggestion*>)), SLOT(onChannelSuggestions(QVector<Suggestion*>)));
     searchTypeChanged(0);
 
-    searchLayout->addWidget(queryEdit->toWidget());
-    searchLayout->addSpacing(10);
+    searchLayout->addWidget(queryEdit->toWidget(), 0, Qt::AlignBaseline);
+    searchLayout->addSpacing(padding);
 
-    watchButton = new QPushButton(tr("Watch"), this);
+    watchButton = new QPushButton(tr("Watch"));
 #ifndef APP_MAC
     watchButton->setFont(biggerFont);
 #endif
@@ -163,67 +173,85 @@ SearchView::SearchView(QWidget *parent) : View(parent) {
     watchButton->setEnabled(false);
     watchButton->setSizePolicy(QSizePolicy::Fixed, QSizePolicy::Fixed);
     connect(watchButton, SIGNAL(clicked()), this, SLOT(watch()));
-    searchLayout->addWidget(watchButton);
+    searchLayout->addWidget(watchButton, 0, Qt::AlignBaseline);
 
     layout->addItem(searchLayout);
 
-    layout->addSpacing(PADDING / 2);
+    layout->addSpacing(padding);
 
-    QHBoxLayout *otherLayout = new QHBoxLayout();
-    otherLayout->setMargin(0);
-    otherLayout->setSpacing(10);
+    QHBoxLayout *recentLayout = new QHBoxLayout();
+    recentLayout->setMargin(0);
+    recentLayout->setSpacing(10);
 
     recentKeywordsLayout = new QVBoxLayout();
-    recentKeywordsLayout->setSpacing(5);
+    recentKeywordsLayout->setMargin(0);
+    recentKeywordsLayout->setSpacing(0);
     recentKeywordsLayout->setAlignment(Qt::AlignTop | Qt::AlignLeft);
-    recentKeywordsLabel = new QLabel(tr("Recent keywords"), this);
+    recentKeywordsLabel = new QLabel(tr("Recent keywords"));
+    recentKeywordsLabel->setEnabled(false);
     recentKeywordsLabel->setProperty("recentHeader", true);
     recentKeywordsLabel->hide();
     recentKeywordsLayout->addWidget(recentKeywordsLabel);
+    recentLayout->addLayout(recentKeywordsLayout);
 
-    otherLayout->addLayout(recentKeywordsLayout);
-
-    // recent channels
     recentChannelsLayout = new QVBoxLayout();
-    recentChannelsLayout->setSpacing(5);
+    recentChannelsLayout->setMargin(0);
+    recentChannelsLayout->setSpacing(0);
     recentChannelsLayout->setAlignment(Qt::AlignTop | Qt::AlignLeft);
-    recentChannelsLabel = new QLabel(tr("Recent channels"), this);
+    recentChannelsLabel = new QLabel(tr("Recent channels"));
+    recentChannelsLabel->setEnabled(false);
     recentChannelsLabel->setProperty("recentHeader", true);
-    recentChannelsLabel->setForegroundRole(QPalette::Dark);
     recentChannelsLabel->hide();
     recentChannelsLayout->addWidget(recentChannelsLabel);
+    recentLayout->addLayout(recentChannelsLayout);
 
-    otherLayout->addLayout(recentChannelsLayout);
+    layout->addLayout(recentLayout);
 
-    layout->addLayout(otherLayout);
+    hLayout->addStretch();
 
-    mainLayout->addStretch();
+    vLayout->addStretch();
 
 #ifdef APP_ACTIVATION
     if (!Activation::instance().isActivated())
-        mainLayout->addWidget(Extra::buyButton(tr("Get the full version")), 0, Qt::AlignRight);
+        vLayout->addWidget(ActivationView::buyButton(tr("Get the full version")), 0, Qt::AlignRight);
 #endif
 }
 
 void SearchView::appear() {
-    MainWindow::instance()->showActionInStatusBar(The::globalActions()->value("definition"), true);
+    MainWindow *w = MainWindow::instance();
+    w->showActionInStatusBar(w->getAction("manualplay"), true);
+    w->showActionInStatusBar(w->getAction("safeSearch"), true);
+    w->showActionInStatusBar(w->getAction("definition"), true);
 
     updateRecentKeywords();
     updateRecentChannels();
+
     queryEdit->selectAll();
     queryEdit->enableSuggest();
-
     if (!queryEdit->toWidget()->hasFocus()) queryEdit->toWidget()->setFocus();
+
+    connect(window()->windowHandle(), SIGNAL(screenChanged(QScreen*)), SLOT(screenChanged()), Qt::UniqueConnection);
+
+    qApp->processEvents();
+    update();
+
+#ifdef APP_MAC
+    // Workaround cursor bug on macOS
+    window()->unsetCursor();
+#endif
 }
 
 void SearchView::disappear() {
-    MainWindow::instance()->showActionInStatusBar(The::globalActions()->value("definition"), false);
+    MainWindow *w = MainWindow::instance();
+    w->showActionInStatusBar(w->getAction("safeSearch"), false);
+    w->showActionInStatusBar(w->getAction("definition"), false);
+    w->showActionInStatusBar(w->getAction("manualplay"), false);
 }
 
 void SearchView::updateRecentKeywords() {
     // load
     QSettings settings;
-    QStringList keywords = settings.value(recentKeywordsKey).toStringList();
+    const QStringList keywords = settings.value(recentKeywordsKey).toStringList();
     if (keywords == recentKeywords) return;
     recentKeywords = keywords;
 
@@ -235,37 +263,39 @@ void SearchView::updateRecentKeywords() {
     }
 
     recentKeywordsLabel->setVisible(!keywords.isEmpty());
-    The::globalActions()->value("clearRecentKeywords")->setEnabled(!keywords.isEmpty());
+    MainWindow::instance()->getAction("clearRecentKeywords")->setEnabled(!keywords.isEmpty());
 
-    foreach (const QString &keyword, keywords) {
+    const int maxDisplayLength = 25;
+
+    for (const QString &keyword : keywords) {
         QString link = keyword;
         QString display = keyword;
-        if (keyword.startsWith("http://") || keyword.startsWith("https://")) {
-            int separator = keyword.indexOf("|");
+        if (keyword.startsWith(QLatin1String("http://")) || keyword.startsWith(QLatin1String("https://"))) {
+            int separator = keyword.indexOf('|');
             if (separator > 0 && separator + 1 < keyword.length()) {
                 link = keyword.left(separator);
                 display = keyword.mid(separator+1);
             }
         }
         bool needStatusTip = false;
-        if (display.length() > 24) {
-            display.truncate(24);
-            display.append("...");
+        if (display.length() > maxDisplayLength) {
+            display.truncate(maxDisplayLength);
+            display.append(QStringLiteral("\u2026"));
             needStatusTip = true;
         }
-        QLabel *itemLabel = new QLabel("<a href=\"" + link
-                                       + "\" style=\"color:palette(text); text-decoration:none\">"
-                                       + display + "</a>", this);
-        itemLabel->setAttribute(Qt::WA_DeleteOnClose);
-        itemLabel->setProperty("recentItem", true);
-        itemLabel->setMaximumWidth(queryEdit->toWidget()->width() + watchButton->width());
-        itemLabel->setSizePolicy(QSizePolicy::Fixed, QSizePolicy::Fixed);
-        // Make links navigable with the keyboard too
-        itemLabel->setTextInteractionFlags(Qt::LinksAccessibleByKeyboard | Qt::LinksAccessibleByMouse);
+        QPushButton *itemButton = new QPushButton(display);
+        itemButton->setAttribute(Qt::WA_DeleteOnClose);
+        itemButton->setProperty("recentItem", true);
+        itemButton->setCursor(Qt::PointingHandCursor);
+        itemButton->setFocusPolicy(Qt::TabFocus);
+        itemButton->setSizePolicy(QSizePolicy::MinimumExpanding, QSizePolicy::Preferred);
         if (needStatusTip)
-            itemLabel->setStatusTip(link);
-        connect(itemLabel, SIGNAL(linkActivated(QString)), this, SLOT(watchKeywords(QString)));
-        recentKeywordsLayout->addWidget(itemLabel);
+            itemButton->setStatusTip(link);
+        connect(itemButton, &QPushButton::clicked, [this,link]() {
+            watchKeywords(link);
+        });
+
+        recentKeywordsLayout->addWidget(itemButton);
     }
 
 }
@@ -273,7 +303,7 @@ void SearchView::updateRecentKeywords() {
 void SearchView::updateRecentChannels() {
     // load
     QSettings settings;
-    QStringList keywords = settings.value(recentChannelsKey).toStringList();
+    const QStringList keywords = settings.value(recentChannelsKey).toStringList();
     if (keywords == recentChannels) return;
     recentChannels = keywords;
 
@@ -285,9 +315,9 @@ void SearchView::updateRecentChannels() {
     }
 
     recentChannelsLabel->setVisible(!keywords.isEmpty());
-    // TODO The::globalActions()->value("clearRecentKeywords")->setEnabled(!keywords.isEmpty());
+    // TODO MainWindow::instance()->getAction("clearRecentKeywords")->setEnabled(!keywords.isEmpty());
 
-    foreach (const QString &keyword, keywords) {
+    for (const QString &keyword : keywords) {
         QString link = keyword;
         QString display = keyword;
         int separator = keyword.indexOf('|');
@@ -295,20 +325,17 @@ void SearchView::updateRecentChannels() {
             link = keyword.left(separator);
             display = keyword.mid(separator+1);
         }
-        QLabel *itemLabel = new QLabel("<a href=\"" + link
-                                       + "\" style=\"color:palette(text); text-decoration:none\">"
-                                       + display + "</a>", this);
-        itemLabel->setAttribute(Qt::WA_DeleteOnClose);
-        itemLabel->setProperty("recentItem", true);
-        itemLabel->setMaximumWidth(queryEdit->toWidget()->width() + watchButton->width());
-        // itemLabel->setSizePolicy(QSizePolicy::Fixed, QSizePolicy::Fixed);
-        // Make links navigable with the keyboard too
-        itemLabel->setTextInteractionFlags(Qt::LinksAccessibleByKeyboard | Qt::LinksAccessibleByMouse);
-
-        connect(itemLabel, SIGNAL(linkActivated(QString)), this, SLOT(watchChannel(QString)));
-        recentChannelsLayout->addWidget(itemLabel);
+        QPushButton *itemButton = new QPushButton(display);
+        itemButton->setAttribute(Qt::WA_DeleteOnClose);
+        itemButton->setProperty("recentItem", true);
+        itemButton->setCursor(Qt::PointingHandCursor);
+        itemButton->setFocusPolicy(Qt::TabFocus);
+        itemButton->setSizePolicy(QSizePolicy::MinimumExpanding, QSizePolicy::Preferred);
+        connect(itemButton, &QPushButton::clicked, [this,link]() {
+            watchChannel(link);
+        });
+        recentChannelsLayout->addWidget(itemButton);
     }
-
 }
 
 void SearchView::watch() {
@@ -318,33 +345,35 @@ void SearchView::watch() {
 
 void SearchView::textChanged(const QString &text) {
     watchButton->setEnabled(!text.simplified().isEmpty());
+    lastChannelSuggestions.clear();
 }
 
 void SearchView::watch(const QString &query) {
     QString q = query.simplified();
 
     // check for empty query
-    if (q.length() == 0) {
+    if (q.isEmpty()) {
         queryEdit->toWidget()->setFocus(Qt::OtherFocusReason);
         return;
     }
 
-    SearchParams *searchParams = new SearchParams();
-    if (typeCombo->currentIndex() == 0)
-        searchParams->setKeywords(q);
-    else {
-        // remove spaces from channel name
-        q.remove(' ');
-        searchParams->setChannelId(q);
-        searchParams->setSortBy(SearchParams::SortByNewest);
+    /*
+    if (typeCombo->currentIndex() == 1) {
+        // Channel search
+        MainWindow::instance()->channelSearch(q);
+        return;
     }
+    */
+
+    SearchParams *searchParams = new SearchParams();
+    searchParams->setKeywords(q);
 
     // go!
     emit search(searchParams);
 }
 
 void SearchView::watchChannel(const QString &channelId) {
-    if (channelId.length() == 0) {
+    if (channelId.isEmpty()) {
         queryEdit->toWidget()->setFocus(Qt::OtherFocusReason);
         return;
     }
@@ -352,7 +381,8 @@ void SearchView::watchChannel(const QString &channelId) {
     QString id = channelId;
 
     // Fix old settings
-    if (!id.startsWith("UC")) id = "UC" + id;
+    const QLatin1String uc("UC");
+    if (!id.startsWith(uc)) id = uc + id;
 
     SearchParams *searchParams = new SearchParams();
     searchParams->setChannelId(id);
@@ -366,15 +396,15 @@ void SearchView::watchKeywords(const QString &query) {
     QString q = query.simplified();
 
     // check for empty query
-    if (query.length() == 0) {
+    if (q.isEmpty()) {
         queryEdit->toWidget()->setFocus(Qt::OtherFocusReason);
         return;
     }
 
-    if (typeCombo->currentIndex() == 0) {
+    // if (typeCombo->currentIndex() == 0) {
         queryEdit->setText(q);
         watchButton->setEnabled(true);
-    }
+    // }
 
     SearchParams *searchParams = new SearchParams();
     searchParams->setKeywords(q);
@@ -385,23 +415,14 @@ void SearchView::watchKeywords(const QString &query) {
 
 void SearchView::paintEvent(QPaintEvent *event) {
     QWidget::paintEvent(event);
-#if defined(APP_MAC) | defined(APP_WIN)
     QBrush brush;
     if (window()->isActiveWindow()) {
-        brush = Qt::white;
+        brush = palette().base();
     } else {
         brush = palette().window();
     }
     QPainter painter(this);
     painter.fillRect(0, 0, width(), height(), brush);
-    painter.end();
-#endif
-#ifdef APP_UBUNTU
-    QStyleOption o;
-    o.initFrom(this);
-    QPainter p(this);
-    style()->drawPrimitive(QStyle::PE_Widget, &o, &p, this);
-#endif
 }
 
 void SearchView::searchTypeChanged(int index) {
@@ -419,3 +440,11 @@ void SearchView::suggestionAccepted(Suggestion *suggestion) {
         watchChannel(suggestion->userData);
     } else watch(suggestion->value);
 }
+
+void SearchView::screenChanged() {
+    logo->setPixmap(IconUtils::pixmap(":/images/app.png"));
+}
+
+void SearchView::onChannelSuggestions(const QVector<Suggestion *> &suggestions) {
+    lastChannelSuggestions = suggestions;
+}
index 01895eb7147fcc9c20832ee44b1eea2cc5d0e78e..172b0cacc765795302bf37964e3f82533359c895 100644 (file)
@@ -21,10 +21,8 @@ $END_LICENSE */
 #ifndef __SEARCHVIEW_H__
 #define __SEARCHVIEW_H__
 
-#include <QtGui>
-#if QT_VERSION >= 0x050000
 #include <QtWidgets>
-#endif
+
 #include "view.h"
 
 class SearchWidget;
@@ -32,6 +30,7 @@ class SearchParams;
 class YTSuggester;
 class ChannelSuggest;
 class Suggestion;
+class ClickableLabel;
 
 class SearchView : public View {
 
@@ -60,6 +59,8 @@ private slots:
     void textChanged(const QString &text);
     void searchTypeChanged(int index);
     void suggestionAccepted(Suggestion *suggestion);
+    void screenChanged();
+    void onChannelSuggestions(const QVector<Suggestion*> &suggestions);
 
 private:
     YTSuggester *youtubeSuggest;
@@ -76,6 +77,10 @@ private:
 
     QStringList recentKeywords;
     QStringList recentChannels;
+
+    QVector<Suggestion*> lastChannelSuggestions;
+
+    ClickableLabel *logo;
 };
 
 #endif // __SEARCHVIEW_H__
index b60571036374930ec58b48c53ac9e2a8b4ac5c7c..dd42b7014f0ab8b29423c23b57e1ea115cef3104 100644 (file)
@@ -1,10 +1,7 @@
 #ifndef SEARCHWIDGET
 #define SEARCHWIDGET
 
-#include <QtGui>
-#if QT_VERSION >= 0x050000
 #include <QtWidgets>
-#endif
 
 class SearchButton;
 class Suggester;
index decaeae92dadeac038d2de7d7a2022f915925965..a56b6c0f9ebf6b482206d544f7c4d11c468c7afb 100644 (file)
@@ -1,10 +1,7 @@
 #ifndef SEEKSLIDER_H
 #define SEEKSLIDER_H
 
-#include <QtGui>
-#if QT_VERSION >= 0x050000
 #include <QtWidgets>
-#endif
 
 class SeekSlider : public QSlider {
 
index a355152ef6a89c037ae85d70a4fe2ca52c7d3fb6..1af157e950d77cccd6b83a128a1ed9c477d5cf04 100644 (file)
@@ -20,107 +20,106 @@ $END_LICENSE */
 
 #include "segmentedcontrol.h"
 #include "mainwindow.h"
-#include "painterutils.h"
 #include "fontutils.h"
+#include "iconutils.h"
+#include "painterutils.h"
 
-static const QColor borderColor = QColor(158, 157, 159);
-
-class SegmentedControl::Private {
-public:
-    QList<QAction *> actionList;
-    QAction *checkedAction;
-    QAction *hoveredAction;
-    QAction *pressedAction;
-};
-
-SegmentedControl::SegmentedControl (QWidget *parent)
-    : QWidget(parent), d(new SegmentedControl::Private) {
-
-    setFont(FontUtils::small());
+SegmentedControl::SegmentedControl (QWidget *parent) : QWidget(parent) {
+    setAttribute(Qt::WA_OpaquePaintEvent);
 
     setMouseTracking(true);
 
-    d->hoveredAction = 0;
-    d->checkedAction = 0;
-    d->pressedAction = 0;
-}
+    hoveredAction = 0;
+    checkedAction = 0;
+    pressedAction = 0;
 
-SegmentedControl::~SegmentedControl() {
-    delete d;
+#ifdef APP_WIN
+    selectedColor = palette().color(QPalette::Base);
+#else
+    selectedColor = palette().color(QPalette::Window);
+#endif
+    int darkerFactor = 105;
+    backgroundColor = selectedColor.darker(darkerFactor);
+    borderColor = backgroundColor;
+    hoveredColor = backgroundColor.darker(darkerFactor);
+    pressedColor = hoveredColor.darker(darkerFactor);
 }
 
 QAction *SegmentedControl::addAction(QAction *action) {
     QWidget::addAction(action);
     action->setCheckable(true);
-    d->actionList.append(action);
+    actionList.append(action);
     return action;
 }
 
 bool SegmentedControl::setCheckedAction(int index) {
     if (index < 0) {
-        d->checkedAction = 0;
+        checkedAction = 0;
         return true;
     }
-    QAction* newCheckedAction = d->actionList.at(index);
+    QAction* newCheckedAction = actionList.at(index);
     return setCheckedAction(newCheckedAction);
 }
 
 bool SegmentedControl::setCheckedAction(QAction *action) {
-    if (d->checkedAction == action) {
+    if (checkedAction == action) {
         return false;
     }
-    if (d->checkedAction)
-        d->checkedAction->setChecked(false);
-    d->checkedAction = action;
-    d->checkedAction->setChecked(true);
+    if (checkedAction)
+        checkedAction->setChecked(false);
+    checkedAction = action;
+    checkedAction->setChecked(true);
     update();
     return true;
 }
 
 QSize SegmentedControl::minimumSizeHint (void) const {
-    int itemsWidth = calculateButtonWidth() * d->actionList.size() * 1.2;
-    return(QSize(itemsWidth, QFontMetrics(font()).height() * 1.9));
+    int itemsWidth = calculateButtonWidth() * actionList.size() * 1.2;
+    return(QSize(itemsWidth, QFontMetrics(font()).height() * 1.8));
 }
 
 void SegmentedControl::paintEvent (QPaintEvent * /*event*/) {
-    int height = rect().height();
-    int width = rect().width();
+    const int height = rect().height();
+    const int width = rect().width();
 
     QPainter p(this);
 
-    QLinearGradient linearGrad(rect().topLeft(), rect().bottomLeft());
-    linearGrad.setColorAt(0, QColor(185, 183, 185));
-    linearGrad.setColorAt(1, QColor(176, 176, 178));
-    p.fillRect(rect(), QBrush(linearGrad));
-
     // Calculate Buttons Size & Location
-    const int buttonWidth = width / d->actionList.size();
+    const int buttonWidth = width / actionList.size();
+
+    const qreal pixelRatio = IconUtils::pixelRatio();
+
+    QPen pen(borderColor);
+    const qreal penWidth = 1. / pixelRatio;
+    pen.setWidthF(penWidth);
+    p.setPen(pen);
 
     // Draw Buttons
     QRect rect(0, 0, buttonWidth, height);
-    const int actionCount = d->actionList.size();
+    const int actionCount = actionList.size();
     for (int i = 0; i < actionCount; i++) {
-        QAction *action = d->actionList.at(i);
+        QAction *action = actionList.at(i);
         if (i + 1 == actionCount) {
+            // last button
             rect.setWidth(width - buttonWidth * (actionCount-1));
-            drawButton(&p, rect, action);
+            paintButton(&p, rect, action);
         } else {
-            drawButton(&p, rect, action);
+            paintButton(&p, rect, action);
             rect.moveLeft(rect.x() + rect.width());
         }
     }
+    const qreal y = height - penWidth;
+    p.drawLine(QPointF(0, y), QPointF(width, y));
 }
 
 void SegmentedControl::mouseMoveEvent (QMouseEvent *event) {
-    QWidget::mouseMoveEvent(event);
-
-    QAction *action = hoveredAction(event->pos());
+    QAction *action = findHoveredAction(event->pos());
 
-    if (!action && d->hoveredAction) {
-        d->hoveredAction = 0;
+    if (!action && hoveredAction) {
+        hoveredAction = 0;
         update();
-    } else if (action && action != d->hoveredAction) {
-        d->hoveredAction = action;
+    } else if (action && action != hoveredAction) {
+        hoveredAction = action;
         action->hover();
         update();
 
@@ -131,18 +130,18 @@ void SegmentedControl::mouseMoveEvent (QMouseEvent *event) {
 
 void SegmentedControl::mousePressEvent(QMouseEvent *event) {
     QWidget::mousePressEvent(event);
-    if (d->hoveredAction) {
-        d->pressedAction = d->hoveredAction;
+    if (hoveredAction) {
+        pressedAction = hoveredAction;
         update();
     }
 }
 
 void SegmentedControl::mouseReleaseEvent(QMouseEvent *event) {
     QWidget::mouseReleaseEvent(event);
-    d->pressedAction = 0;
-    if (d->hoveredAction) {
-        bool changed = setCheckedAction(d->hoveredAction);
-        if (changed) d->hoveredAction->trigger();
+    pressedAction = 0;
+    if (hoveredAction) {
+        bool changed = setCheckedAction(hoveredAction);
+        if (changed) hoveredAction->trigger();
     }
 }
 
@@ -150,76 +149,35 @@ void SegmentedControl::leaveEvent(QEvent *event) {
     QWidget::leaveEvent(event);
     // status tip
     MainWindow::instance()->statusBar()->clearMessage();
-    d->hoveredAction = 0;
-    d->pressedAction = 0;
+    hoveredAction = 0;
+    pressedAction = 0;
     update();
 }
 
-QAction *SegmentedControl::hoveredAction(const QPoint& pos) const {
-    if (pos.y() <= 0 || pos.y() >= height())
+QAction *SegmentedControl::findHoveredAction(const QPoint& pos) const {
+    const int w = width();
+    if (pos.y() <= 0 || pos.x() >= w || pos.y() >= height())
         return 0;
 
-    int buttonWidth = width() / d->actionList.size();
-    int buttonsWidth = width();
-    int buttonsX = 0;
+    int buttonWidth = w / actionList.size();
 
-    if (pos.x() <= buttonsX || pos.x() >= (buttonsX + buttonsWidth))
-        return 0;
+    int buttonIndex = pos.x() / buttonWidth;
 
-    int buttonIndex = (pos.x() - buttonsX) / buttonWidth;
-
-    if (buttonIndex >= d->actionList.size())
+    if (buttonIndex >= actionList.size())
         return 0;
-    return(d->actionList[buttonIndex]);
+    return actionList[buttonIndex];
 }
 
 int SegmentedControl::calculateButtonWidth() const {
     QFontMetrics fontMetrics(font());
     int tmpItemWidth, itemWidth = 0;
-    foreach (QAction *action, d->actionList) {
+    for (QAction *action : actionList) {
         tmpItemWidth = fontMetrics.width(action->text());
         if (itemWidth < tmpItemWidth) itemWidth = tmpItemWidth;
     }
     return itemWidth;
 }
 
-void SegmentedControl::drawButton (QPainter *painter,
-                              const QRect& rect,
-                              const QAction *action) {
-    if (action == d->checkedAction)
-        drawSelectedButton(painter, rect, action);
-    else
-        drawUnselectedButton(painter, rect, action);
-}
-
-void SegmentedControl::drawUnselectedButton (QPainter *painter,
-                                        const QRect& rect,
-                                        const QAction *action) {
-    painter->setPen(QColor(0, 0, 0, 128));
-    paintButton(painter, rect, action);
-}
-
-void SegmentedControl::drawSelectedButton (QPainter *painter,
-                                      const QRect& rect,
-                                      const QAction *action) {
-    painter->save();
-    painter->translate(rect.topLeft());
-
-    const int width = rect.width();
-    const int height = rect.height();
-    const int hCenter = width * .5;
-    QRadialGradient gradient(hCenter, 0,
-                             width,
-                             hCenter, 0);
-    gradient.setColorAt(1, QColor(212, 210, 212));
-    gradient.setColorAt(0, QColor(203, 203, 205));
-    painter->fillRect(0, 0, width, height, QBrush(gradient));
-
-    painter->restore();
-    painter->setPen(palette().windowText().color());
-    paintButton(painter, rect, action);
-}
-
 void SegmentedControl::paintButton(QPainter *painter, const QRect& rect, const QAction *action) {
     painter->save();
     painter->translate(rect.topLeft());
@@ -227,49 +185,29 @@ void SegmentedControl::paintButton(QPainter *painter, const QRect& rect, const Q
     const int height = rect.height();
     const int width = rect.width();
 
-    painter->save();
-    painter->setPen(QPen(borderColor, 1.0 / qApp->devicePixelRatio()));
-#if defined(APP_MAC) | defined(APP_WIN)
-    painter->drawRect(-1, -1, width, height);
-#else
-    painter->drawRect(0, 0, width, height - 1);
-#endif
-    painter->restore();
+    QColor c;
+    if (action == checkedAction) {
+        c = selectedColor;
+    } else if (action == pressedAction) {
+        c = pressedColor;
+    } else if (action == hoveredAction) {
+        c = hoveredColor;
+    } else {
+        c = backgroundColor;
+    }
+    painter->fillRect(0, 0, width, height, c);
 
     const QString text = action->text();
 
-    // text shadow
-    /*
-    painter->setPen(QColor(0, 0, 0, 128));
-    painter->drawText(0, -1, width, height, Qt::AlignCenter, text);
-    */
-
+    painter->setPen(palette().windowText().color());
     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());
-    }
-
-    if (action == d->pressedAction && action != d->checkedAction) {
-        const int hCenter = width * .5;
-        QRadialGradient gradient(hCenter, 0,
-                                 width,
-                                 hCenter, 0);
-        gradient.setColorAt(1, QColor(0x00, 0x00, 0x00, 0));
-        gradient.setColorAt(0, QColor(0x00, 0x00, 0x00, 32));
-        painter->fillRect(0, 0, width, height, QBrush(gradient));
-    } else if (action == d->hoveredAction && action != d->checkedAction) {
-        const int hCenter = width * .5;
-        QRadialGradient gradient(hCenter, 0,
-                                 width,
-                                 hCenter, 0);
-        gradient.setColorAt(1, QColor(0x00, 0x00, 0x00, 0));
-        gradient.setColorAt(0, QColor(0x00, 0x00, 0x00, 16));
-        painter->fillRect(0, 0, width, height, QBrush(gradient));
+        painter->translate((width + textBox.width()) / 2 + 10, (height - textBox.height()) / 2);
+        PainterUtils::paintBadge(painter, action->property("notifyCount").toString(), false, QColor(0,0,0,64));
     }
 
     painter->restore();
index 4f3ec85899c4f118185b31b60d99d2082ee19301..06391466a3f48a9a0955fc53ed6b2da1df6e8a3a 100644 (file)
@@ -21,10 +21,7 @@ $END_LICENSE */
 #ifndef SEGMENTEDCONTROL_H
 #define SEGMENTEDCONTROL_H
 
-#include <QtGui>
-#if QT_VERSION >= 0x050000
 #include <QtWidgets>
-#endif
 
 class SegmentedControl : public QWidget {
 
@@ -32,7 +29,6 @@ class SegmentedControl : public QWidget {
 
 public:
     SegmentedControl(QWidget *parent = 0);
-    ~SegmentedControl();
     QAction *addAction(QAction *action);
     bool setCheckedAction(int index);
     bool setCheckedAction(QAction *action);
@@ -49,23 +45,22 @@ protected:
     void leaveEvent(QEvent *event);
 
 private:
-    void drawButton(QPainter *painter,
-                    const QRect& rect,
-                    const QAction *action);
-    void drawUnselectedButton(QPainter *painter,
-                              const QRect& rect,
-                              const QAction *action);
-    void drawSelectedButton(QPainter *painter,
-                            const QRect& rect,
-                            const QAction *action);
     void paintButton(QPainter *painter,
                     const QRect& rect,
                     const QAction *action);
-    QAction *hoveredAction(const QPoint& pos) const;
+    QAction *findHoveredAction(const QPoint& pos) const;
     int calculateButtonWidth() const;
 
-    class Private;
-    Private *d;
+    QVector<QAction *> actionList;
+    QAction *checkedAction;
+    QAction *hoveredAction;
+    QAction *pressedAction;
+
+    QColor borderColor;
+    QColor backgroundColor;
+    QColor selectedColor;
+    QColor hoveredColor;
+    QColor pressedColor;
 
 };
 
diff --git a/src/sharetoolbar.cpp b/src/sharetoolbar.cpp
new file mode 100644 (file)
index 0000000..e8d1b0d
--- /dev/null
@@ -0,0 +1,18 @@
+#include "sharetoolbar.h"
+#include "iconutils.h"
+#include "mainwindow.h"
+
+ShareToolbar::ShareToolbar(QWidget *parent) : QToolBar(parent) {
+    setToolButtonStyle(Qt::ToolButtonIconOnly);
+    setIconSize(QSize(18, 18));
+    MainWindow *w = MainWindow::instance();
+    addAction(w->getAction("pagelink"));
+    addAction(w->getAction("twitter"));
+    addAction(w->getAction("facebook"));
+    addAction(w->getAction("email"));
+}
+
+void ShareToolbar::setLeftMargin(int value) {
+    setStyleSheet("border:0;margin-left:" + QString::number(value) + "px");
+    disconnect(sender(), 0, this, 0);
+}
diff --git a/src/sharetoolbar.h b/src/sharetoolbar.h
new file mode 100644 (file)
index 0000000..0e4da1e
--- /dev/null
@@ -0,0 +1,16 @@
+#ifndef SHAREMENUTOOLBAR_H
+#define SHAREMENUTOOLBAR_H
+
+#include <QtWidgets>
+
+class ShareToolbar : public QToolBar {
+    Q_OBJECT
+
+public:
+    ShareToolbar(QWidget *parent = nullptr);
+
+public slots:
+    void setLeftMargin(int value);
+};
+
+#endif // SHAREMENUTOOLBAR_H
index b6fb87a2607bfb165cf89dbb000e2267aedfa63e..399d65f244687dc05b96bac9809f2b0a527fc6c3 100644 (file)
@@ -47,7 +47,8 @@ void SidebarHeader::setup() {
     connect(forwardAction, SIGNAL(triggered()), MediaView::instance(), SLOT(goForward()));
     addAction(forwardAction);
 
-    foreach (QAction* action, actions()) {
+    const auto a = actions();
+    for (QAction* action : a) {
         window()->addAction(action);
         IconUtils::setupAction(action);
     }
@@ -64,7 +65,7 @@ QSize SidebarHeader::minimumSizeHint() const {
 void SidebarHeader::updateInfo() {
     setup();
 
-    QList<VideoSource*> history = MediaView::instance()->getHistory();
+    const QVector<VideoSource*> &history = MediaView::instance()->getHistory();
     int currentIndex = MediaView::instance()->getHistoryIndex();
 
     bool canGoForward = MediaView::instance()->canGoForward();
@@ -107,10 +108,10 @@ void SidebarHeader::setTitle(const QString &title) {
     this->title = title;
     update();
 
-    QList<VideoSource*> history = MediaView::instance()->getHistory();
+    QVector<VideoSource*> history = MediaView::instance()->getHistory();
     int currentIndex = MediaView::instance()->getHistoryIndex();
     VideoSource *currentVideoSource = history.at(currentIndex);
-    foreach (QAction* action, videoSourceActions)
+    for (QAction* action : videoSourceActions)
         removeAction(action);
     videoSourceActions = currentVideoSource->getActions();
     addActions(videoSourceActions);
@@ -121,16 +122,15 @@ void SidebarHeader::paintEvent(QPaintEvent *event) {
     if (title.isEmpty()) return;
     QPainter p(this);
     p.setPen(Qt::white);
-    p.setFont(FontUtils::small());
 
     const QRect r = rect();
 
     QString t = title;
     QRect textBox = p.boundingRect(r, Qt::AlignCenter, t);
     int i = 1;
-    const int margin = forwardAction->isVisible() ? 45 : 20;
+    const int margin = forwardAction->isVisible() ? 50 : 25;
     while (textBox.width() > r.width() - margin*2 && t.length() > 3) {
-        t = t.left(t.length() - i).trimmed() + QLatin1String("...");
+        t = t.left(t.length() - i).trimmed() + QStringLiteral("\u2026");
         textBox = p.boundingRect(r, Qt::AlignCenter, t);
         i++;
     }
index db16aced69c99716b131d95161bb088078a2e72a..e6619b72655d778fb6f4537f28fc6337d4da3d3a 100644 (file)
@@ -21,10 +21,7 @@ $END_LICENSE */
 #ifndef SIDEBARHEADER_H
 #define SIDEBARHEADER_H
 
-#include <QtGui>
-#if QT_VERSION >= 0x050000
 #include <QtWidgets>
-#endif
 
 class SidebarHeader : public QToolBar {
 
index 676cf4fcbb15c1778c4f81a5efd08a919817538c..27283d7e17cd60a6db6145a1c7841b4a6a0f0c7b 100644 (file)
@@ -22,14 +22,11 @@ $END_LICENSE */
 #include "refinesearchbutton.h"
 #include "refinesearchwidget.h"
 #include "sidebarheader.h"
+#include "mainwindow.h"
 #ifdef APP_EXTRA
 #include "extra.h"
 #endif
 
-namespace The {
-QHash<QString, QAction*>* globalActions();
-}
-
 SidebarWidget::SidebarWidget(QWidget *parent) :
     QWidget(parent), playlistWidth(0) {
     playlist = 0;
@@ -89,7 +86,7 @@ void SidebarWidget::setPlaylist(QListView *playlist) {
 
 void SidebarWidget::showPlaylist() {
     stackedWidget->setCurrentWidget(playlist);
-    The::globalActions()->value("refine-search")->setChecked(false);
+    MainWindow::instance()->getAction("refineSearch")->setChecked(false);
 }
 
 void SidebarWidget::showRefineSearchWidget() {
@@ -103,7 +100,7 @@ void SidebarWidget::showRefineSearchWidget() {
     Extra::fadeInWidget(playlist, refineSearchWidget);
 #endif
     refineSearchButton->hide();
-    The::globalActions()->value("refine-search")->setChecked(true);
+    MainWindow::instance()->getAction("refineSearch")->setChecked(true);
 }
 
 void SidebarWidget::hideRefineSearchWidget() {
@@ -114,7 +111,7 @@ void SidebarWidget::hideRefineSearchWidget() {
 #ifdef APP_EXTRA
     Extra::fadeInWidget(refineSearchWidget, playlist);
 #endif
-    The::globalActions()->value("refine-search")->setChecked(false);
+    MainWindow::instance()->getAction("refineSearch")->setChecked(false);
 }
 
 void SidebarWidget::toggleRefineSearch(bool show) {
@@ -167,7 +164,7 @@ void SidebarWidget::showSuggestions(const QStringList &suggestions) {
     QString message = tr("Did you mean: %1");
 
     QString suggestionLinks;
-    foreach (const QString &suggestion, suggestions) {
+    for (const QString &suggestion : suggestions) {
         suggestionLinks += "<a href='" + suggestion + "'>" + suggestion + "</a> ";
     }
     message = message.arg(suggestionLinks);
index d936b979ac50a2a600ad692e3595ef5f070bb6ee..f15e4da01b5e5bf7d7b76cf84c4410ee922587ad 100644 (file)
@@ -21,10 +21,7 @@ $END_LICENSE */
 #ifndef SIDEBARWIDGET_H
 #define SIDEBARWIDGET_H
 
-#include <QtGui>
-#if QT_VERSION >= 0x050000
 #include <QtWidgets>
-#endif
 
 class RefineSearchButton;
 class RefineSearchWidget;
@@ -36,6 +33,7 @@ class SidebarWidget : public QWidget {
 
 public:
     SidebarWidget(QWidget *parent = 0);
+    QListView *getPlaylist() { return playlist; }
     void setPlaylist(QListView *playlist);
     void showPlaylist();
     RefineSearchWidget* getRefineSearchWidget() { return refineSearchWidget; }
index 5468f2a08d35c258ea68bf8fe50ea403595e5b4e..36626483a4f9a96953fcf7e0946b9185d952269d 100644 (file)
@@ -28,11 +28,7 @@ SnapshotPreview::SnapshotPreview(QWidget *parent) : QWidget(parent),
 #endif
     {
     setAttribute(Qt::WA_ShowWithoutActivating);
-    setWindowFlags(Qt::FramelessWindowHint);
-#if QT_VERSION >= 0x050000
-    setWindowFlags(windowFlags() | Qt::WindowDoesNotAcceptFocus);
-#endif
-
+    setWindowFlags(Qt::FramelessWindowHint | Qt::WindowDoesNotAcceptFocus);
     setAttribute(Qt::WA_StaticContents);
     setAttribute(Qt::WA_OpaquePaintEvent);
     setAttribute(Qt::WA_NoSystemBackground);
index 2bb754050fc706ade0f8b354cd2a8adc9d17891e..7bfab08d9fe089dd195c61d89222f10b27fe0696 100644 (file)
@@ -21,10 +21,7 @@ $END_LICENSE */
 #ifndef SNAPSHOTPREVIEW_H
 #define SNAPSHOTPREVIEW_H
 
-#include <QtGui>
-#if QT_VERSION >= 0x050000
 #include <QtWidgets>
-#endif
 
 #ifdef APP_PHONON
 #include <phonon/audiooutput.h>
index b65d4fa1e3b3b0b31c6d9ed452b6a2b5ae0e8ac3..e1628f6195ced16d9d667e30517af0a676ebe291 100644 (file)
@@ -24,7 +24,6 @@ $END_LICENSE */
 #include "macutils.h"
 #endif
 #include "constants.h"
-#include "compatibility/pathsservice.h"
 #include <QDesktopServices>
 
 SnapshotSettings::SnapshotSettings(QWidget *parent) : QWidget(parent) {
@@ -76,7 +75,7 @@ QString SnapshotSettings::getCurrentLocation() {
     QSettings settings;
     QString location = settings.value("snapshotsFolder").toString();
     if (location.isEmpty() || !QFile::exists(location)) {
-        location = Paths::getPicturesLocation();
+        location = QStandardPaths::writableLocation(QStandardPaths::PicturesLocation);
 #ifdef APP_MAC_STORE
         location += "/MinitubeforYouTube";
 #endif
@@ -89,14 +88,14 @@ QString SnapshotSettings::displayPath(const QString &path) {
     return QDir(path).dirName();
 #endif
 
-    const QString home = Paths::getHomeLocation();
+    const QString home = QStandardPaths::writableLocation(QStandardPaths::HomeLocation);
     QString displayPath = path;
     displayPath = displayPath.remove(home + "/");
     return displayPath;
 }
 
 void SnapshotSettings::changeFolder() {
-    const QString path = Paths::getHomeLocation();
+    const QString path = QStandardPaths::writableLocation(QStandardPaths::HomeLocation);
 #ifdef APP_MAC
     QFileDialog* dialog = new QFileDialog(this);
     dialog->setFileMode(QFileDialog::Directory);
index 5a8acfe4a015b6de27c3b1f753609cc10cd76db0..4d28b233842975761fe27a3342782403b600ceda 100644 (file)
@@ -21,10 +21,7 @@ $END_LICENSE */
 #ifndef SNAPSHOTSETTINGS_H
 #define SNAPSHOTSETTINGS_H
 
-#include <QtGui>
-#if QT_VERSION >= 0x050000
 #include <QtWidgets>
-#endif
 
 class SnapshotSettings : public QWidget {
 
index 297ec93d32b76cb8791b1af337e53ad028dc65ef..3646eeee35d009901763394f72b0fdd3966cd41a 100644 (file)
@@ -20,11 +20,11 @@ $END_LICENSE */
 
 #include "spacer.h"
 
-Spacer::Spacer(QWidget *parent) : QWidget(parent) {
+Spacer::Spacer(QWidget *parent, int minWidth) : QWidget(parent), minWidth(minWidth) {
     setAttribute(Qt::WA_TransparentForMouseEvents);
     setEnabled(false);
 }
 
 QSize Spacer::sizeHint() const {
-    return QSize(10, 1);
+    return QSize(minWidth, 1);
 }
index a8118319f7001b5fad13f521422b5091ed5183fd..cb87b186f6d005cf0529fcfc779071be3bc5ddbc 100644 (file)
@@ -21,18 +21,18 @@ $END_LICENSE */
 #ifndef SPACER_H
 #define SPACER_H
 
-#include <QtGui>
-#if QT_VERSION >= 0x050000
 #include <QtWidgets>
-#endif
 
 class Spacer : public QWidget {
 
 public:
-    Spacer(QWidget *parent = 0);
+    Spacer(QWidget *parent = 0, int minWidth = 60);
 
 protected:
     QSize sizeHint() const;
+
+private:
+    int minWidth;
 };
 
 #endif // SPACER_H
index 799e54ddef9e7c2db09d1d793ce917f182602284..3e83208640c18b54e8496a67838196fe4793fc9f 100644 (file)
@@ -19,58 +19,36 @@ along with Minitube.  If not, see <http://www.gnu.org/licenses/>.
 $END_LICENSE */
 
 #include "standardfeedsview.h"
+#include "mainwindow.h"
+#include "painterutils.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();
-}
+#include "ytstandardfeed.h"
 
-StandardFeedsView::StandardFeedsView(QWidget *parent) : View(parent),
-    layout(0) {
+StandardFeedsView::StandardFeedsView(QWidget *parent) : View(parent), layout(0) {
     QPalette p = palette();
     p.setBrush(QPalette::Window, Qt::black);
     setPalette(p);
     setAutoFillBackground(true);
 
-    connect(The::globalActions()->value("worldwide-region"), SIGNAL(triggered()),
+    connect(MainWindow::instance()->getAction("worldwideRegion"), SIGNAL(triggered()),
             SLOT(selectWorldwideRegion()));
 
-    connect(The::globalActions()->value("local-region"), SIGNAL(triggered()),
+    connect(MainWindow::instance()->getAction("localRegion"), SIGNAL(triggered()),
             SLOT(selectLocalRegion()));
-
-    /*
-    QAction *regionAction = MainWindow::instance()->getRegionAction();
-    connect(regionAction, SIGNAL(changed()), SLOT(load()));
-    */
 }
 
 void StandardFeedsView::load() {
     setUpdatesEnabled(false);
     YTCategories *youTubeCategories = new YTCategories(this);
-    connect(youTubeCategories, SIGNAL(categoriesLoaded(const QList<YTCategory> &)),
-            SLOT(layoutCategories(const QList<YTCategory> &)));
+    connect(youTubeCategories, SIGNAL(categoriesLoaded(const QVector<YTCategory> &)),
+            SLOT(layoutCategories(const QVector<YTCategory> &)));
     youTubeCategories->loadCategories();
 
-    if (layout) {
-        while (QLayoutItem *item = layout->takeAt(0)) {
-            delete item->widget();
-            delete item;
-        }
-        delete layout;
-    }
+    resetLayout();
 
-    layout = new QGridLayout(this);
-    layout->setMargin(0);
-    layout->setSpacing(1);
-
-    QList<YTStandardFeed*> feeds = getMainFeeds();
-    foreach(YTStandardFeed *feed, feeds)
-        addVideoSourceWidget(feed);
+    addVideoSourceWidget(buildStandardFeed("most_popular", tr("Most Popular")));
 
     YTRegion region = YTRegions::currentRegion();
     QAction *regionAction = MainWindow::instance()->getRegionAction();
@@ -78,9 +56,9 @@ void StandardFeedsView::load() {
     regionAction->setIcon(YTRegions::iconForRegionId(region.id));
 }
 
-void StandardFeedsView::layoutCategories(const QList<YTCategory> &categories) {
+void StandardFeedsView::layoutCategories(const QVector<YTCategory> &categories) {
     QString regionId = YTRegions::currentRegionId();
-    foreach(YTCategory category, categories) {
+    for (const YTCategory &category : categories) {
         // assign a parent to this VideoSource  so it won't be deleted by MediaView
         YTStandardFeed *feed = new YTStandardFeed(this);
         feed->setCategory(category.term);
@@ -94,27 +72,53 @@ void StandardFeedsView::layoutCategories(const QList<YTCategory> &categories) {
 
 void StandardFeedsView::addVideoSourceWidget(VideoSource *videoSource) {
     VideoSourceWidget *w = new VideoSourceWidget(videoSource);
-    connect(w, SIGNAL(activated(VideoSource*)),
-            SIGNAL(activated(VideoSource*)));
+    connect(w, SIGNAL(activated(VideoSource *)), SIGNAL(activated(VideoSource *)));
+    connect(w, SIGNAL(unavailable(VideoSourceWidget *)),
+            SLOT(removeVideoSourceWidget(VideoSourceWidget *)));
     int i = layout->count();
-    static const int cols = 4;
+    const int cols = 5;
     layout->addWidget(w, i / cols, i % cols);
 }
 
-QList<YTStandardFeed*> StandardFeedsView::getMainFeeds() {
-    QList<YTStandardFeed*> feeds;
+void StandardFeedsView::removeVideoSourceWidget(VideoSourceWidget *videoSourceWidget) {
+    qDebug() << videoSourceWidget->getVideoSource()->getName();
+    layout->removeWidget(videoSourceWidget);
+    videoSourceWidget->deleteLater();
 
-    feeds << buildStardardFeed("most_popular", tr("Most Popular"));
-          // << buildStardardFeed("recently_featured", tr("Featured"))
-          // << buildStardardFeed("most_shared", tr("Most Shared"))
-          // << buildStardardFeed("most_discussed", tr("Most Discussed"))
-          // << buildStardardFeed("top_rated", tr("Top Rated"))
-          // << buildStardardFeed("most_popular", tr("All Time Popular"), "all_time");
+    const int layoutCount = layout->count();
+    QVector<QLayoutItem *> items;
+    items.reserve(layoutCount);
 
-    return feeds;
+    for (int i = layoutCount - 1; i >= 0; i--) {
+        QLayoutItem *item = layout->takeAt(i);
+        if (item && item->widget()) items.append(item);
+    }
+
+    const int itemCount = items.size();
+    const int cols = itemCount / 3;
+    for (int i = itemCount - 1; i >= 0; i--) {
+        QLayoutItem *item = items.at(i);
+        int index = itemCount - 1 - i;
+        layout->addItem(item, index / cols, index % cols);
+    }
 }
 
-YTStandardFeed* StandardFeedsView::buildStardardFeed(const QString &feedId, const QString &label, QString time) {
+void StandardFeedsView::resetLayout() {
+    if (layout) {
+        while (QLayoutItem *item = layout->takeAt(0)) {
+            delete item->widget();
+            delete item;
+        }
+        delete layout;
+    }
+
+    layout = new QGridLayout(this);
+    layout->setMargin(0);
+    layout->setSpacing(1);
+}
+
+YTStandardFeed *
+StandardFeedsView::buildStandardFeed(const QString &feedId, const QString &label, QString time) {
     YTStandardFeed *feed = new YTStandardFeed(this);
     feed->setFeedId(feedId);
     feed->setLabel(label);
@@ -124,7 +128,6 @@ YTStandardFeed* StandardFeedsView::buildStardardFeed(const QString &feedId, cons
 }
 
 void StandardFeedsView::appear() {
-    setFocus();
     if (!layout) {
         update();
         qApp->processEvents();
@@ -152,4 +155,3 @@ void StandardFeedsView::selectLocalRegion() {
 void StandardFeedsView::paintEvent(QPaintEvent *event) {
     QWidget::paintEvent(event);
 }
-
index 0f9e051180e280f288dfdee4cb979873ccc6b2e7..aa07c0c1585eb1321dc2ca55ff52aa38a3f443e2 100644 (file)
@@ -21,18 +21,16 @@ $END_LICENSE */
 #ifndef CATEGORIESVIEW_H
 #define CATEGORIESVIEW_H
 
-#include <QtGui>
-#if QT_VERSION >= 0x050000
 #include <QtWidgets>
-#endif
+
 #include "view.h"
 
 class VideoSource;
 struct YTCategory;
 class YTStandardFeed;
+class VideoSourceWidget;
 
 class StandardFeedsView : public View {
-
     Q_OBJECT
 
 public:
@@ -48,18 +46,19 @@ public slots:
 
 protected:
     void paintEvent(QPaintEvent *event);
-    
+
 private slots:
-    void layoutCategories(const QList<YTCategory> &categories);
+    void layoutCategories(const QVector<YTCategory> &categories);
     void selectWorldwideRegion();
     void selectLocalRegion();
+    void removeVideoSourceWidget(VideoSourceWidget *videoSourceWidget);
 
 private:
+    void resetLayout();
     void addVideoSourceWidget(VideoSource *videoSource);
-    QList<YTStandardFeed*> getMainFeeds();
-    YTStandardFeed* buildStardardFeed(const QString &feedId, const QString &label, QString time = QString());
+    YTStandardFeed *
+    buildStandardFeed(const QString &feedId, const QString &label, QString time = QString());
     QGridLayout *layout;
-    
 };
 
 #endif // CATEGORIESVIEW_H
index 37b805cc7883c099332f1ba13083231469769a9b..d5293c39ea510fc1f0c2b835c5ba218842abe0bf 100644 (file)
@@ -62,7 +62,7 @@ public:
     virtual void suggest(const QString &query) = 0;
 
 signals:
-    void ready(const QList<Suggestion*> &suggestions);
+    void ready(const QVector<Suggestion*> &suggestions);
 
 };
 
index 913d2446aa954c6c5dee6b535ff2bee7bb19d42d..ceb3b3370f6bca04fab372f464f94dfd1dc63538 100644 (file)
@@ -20,9 +20,8 @@ $END_LICENSE */
 
 #include "temporary.h"
 #include "constants.h"
-#include "compatibility/pathsservice.h"
 
-static QList<QString> paths;
+static QVector<QString> paths;
 #ifdef APP_LINUX
 static QString userName;
 #endif
@@ -30,7 +29,7 @@ static QString userName;
 Temporary::Temporary() { }
 
 QString Temporary::filename() {
-    static const QString tempDir = Paths::getTempLocation();
+    static const QString tempDir = QStandardPaths::writableLocation(QStandardPaths::TempLocation);
 
     QString tempFile = tempDir + "/" + Constants::UNIX_NAME + "-" + QString::number(qrand());
 
diff --git a/src/toolbarmenu.cpp b/src/toolbarmenu.cpp
new file mode 100644 (file)
index 0000000..e03dbac
--- /dev/null
@@ -0,0 +1,48 @@
+#include "toolbarmenu.h"
+#include "mainwindow.h"
+#include "sharetoolbar.h"
+
+ToolbarMenu::ToolbarMenu(QWidget *parent) : QMenu(parent) {
+    MainWindow *w = MainWindow::instance();
+    addAction(w->getAction("stopafterthis"));
+    addSeparator();
+#ifdef APP_SNAPSHOT
+    addAction(w->getAction("snapshot"));
+#endif
+    addAction(w->getAction("findVideoParts"));
+    addSeparator();
+    addAction(w->getAction("webpage"));
+    addAction(w->getAction("videolink"));
+    addAction(w->getAction("openInBrowser"));
+    addAction(w->getAction("download"));
+    addSeparator();
+    QWidgetAction *widgetAction = new QWidgetAction(this);
+    ShareToolbar *shareToolbar = new ShareToolbar();
+    connect(this, &ToolbarMenu::leftMarginChanged, shareToolbar, &ShareToolbar::setLeftMargin);
+    widgetAction->setDefaultWidget(shareToolbar);
+    addAction(widgetAction);
+    addSeparator();
+    addAction(w->getAction("compactView"));
+    addAction(w->getAction("ontop"));
+    addSeparator();
+    addAction(w->getAction("clearRecentKeywords"));
+#ifndef APP_MAC
+    addSeparator();
+    addAction(w->getAction("toggleMenu"));
+#endif
+    addSeparator();
+    addMenu(w->getMenu("help"));
+}
+
+void ToolbarMenu::showEvent(QShowEvent *e) {
+    Q_UNUSED(e);
+    QAction *a = MainWindow::instance()->getAction("stopafterthis");
+    QStyleOptionMenuItem option;
+    initStyleOption(&option, a);
+    int leftMargin = option.maxIconWidth;
+#ifndef APP_MAC
+    // On Win & Linux the value is wrong
+    leftMargin *= 1.5;
+#endif
+    emit leftMarginChanged(leftMargin);
+}
diff --git a/src/toolbarmenu.h b/src/toolbarmenu.h
new file mode 100644 (file)
index 0000000..ed76ba8
--- /dev/null
@@ -0,0 +1,19 @@
+#ifndef TOOLBARMENU_H
+#define TOOLBARMENU_H
+
+#include <QtWidgets>
+
+class ToolbarMenu : public QMenu {
+    Q_OBJECT
+
+public:
+    ToolbarMenu(QWidget *parent = 0);
+
+signals:
+    void leftMarginChanged(int value);
+
+protected:
+    void showEvent(QShowEvent *e);
+};
+
+#endif // TOOLBARMENU_H
index 0c8ac286c4f61478c6efd2523d83c840c325d899..07b333580b143a9d8197d99df15f4a431f605841 100644 (file)
@@ -19,16 +19,12 @@ along with Minitube.  If not, see <http://www.gnu.org/licenses/>.
 $END_LICENSE */
 
 #include "updatechecker.h"
-#include "networkaccess.h"
+#include "http.h"
+#include "httputils.h"
 #include "constants.h"
 #ifdef APP_ACTIVATION
 #include "activation.h"
 #endif
-#include "compatibility/qurlqueryhelper.h"
-
-namespace The {
-NetworkAccess* http();
-}
 
 UpdateChecker::UpdateChecker() {
     m_needUpdate = false;
@@ -36,30 +32,26 @@ UpdateChecker::UpdateChecker() {
 
 void UpdateChecker::checkForUpdate() {
     QUrl url(QLatin1String(Constants::WEBSITE) + "-ws/release.xml");
-
-    {
-        QUrlQueryHelper urlHelper(url);
-        urlHelper.addQueryItem("v", Constants::VERSION);
-
+    QUrlQuery q;
+    q.addQueryItem("v", Constants::VERSION);
 #ifdef APP_MAC
-        urlHelper.addQueryItem("os", "mac");
+    q.addQueryItem("os", "mac");
 #endif
 #ifdef APP_WIN
-        urlHelper.addQueryItem("os", "win");
+    q.addQueryItem("os", "win");
 #endif
 #ifdef APP_ACTIVATION
-        QString t = "demo";
-        if (Activation::instance().isActivated()) t = "active";
-        urlHelper.addQueryItem("t", t);
+    QString t = "demo";
+    if (Activation::instance().isActivated()) t = "active";
+    q.addQueryItem("t", t);
 #endif
 #ifdef APP_MAC_STORE
-        urlHelper.addQueryItem("store", "mac");
+    q.addQueryItem("store", "mac");
 #endif
-    }
+    url.setQuery(q);
 
-    QObject *reply = The::http()->get(url);
+    QObject *reply = HttpUtils::notCached().get(url);
     connect(reply, SIGNAL(data(QByteArray)), SLOT(requestFinished(QByteArray)));
-
 }
 
 void UpdateChecker::requestFinished(QByteArray data) {
index a5cade0f858b6428c4b2ba1312a0789209f74ab6..52432b8d0efcf950566c4eb27f941d2448240f22 100644 (file)
@@ -19,481 +19,108 @@ 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"
-#include "temporary.h"
-#include "compatibility/qurlqueryhelper.h"
 #include "datautils.h"
-
-namespace The {
-NetworkAccess* http();
-}
-
-namespace {
-static const QString jsNameChars = "a-zA-Z0-9\\$_";
-}
-
-Video::Video() : m_duration(0),
-    m_viewCount(-1),
-    m_license(LicenseYouTube),
-    definitionCode(0),
-    elIndex(0),
-    ageGate(false),
-    loadingStreamUrl(false),
-    loadingThumbnail(false) {
-}
-
-Video* Video::clone() {
-    Video* cloneVideo = new Video();
-    cloneVideo->m_title = m_title;
-    cloneVideo->m_description = m_description;
-    cloneVideo->m_channelTitle = m_channelTitle;
-    cloneVideo->m_channelId = m_channelId;
-    cloneVideo->m_webpage = m_webpage;
-    cloneVideo->m_streamUrl = m_streamUrl;
-    cloneVideo->m_thumbnail = m_thumbnail;
-    cloneVideo->m_thumbnailUrl = m_thumbnailUrl;
-    cloneVideo->m_mediumThumbnailUrl = m_mediumThumbnailUrl;
-    cloneVideo->m_duration = m_duration;
-    cloneVideo->m_published = m_published;
-    cloneVideo->m_viewCount = m_viewCount;
-    cloneVideo->videoId = videoId;
-    cloneVideo->videoToken = videoToken;
-    cloneVideo->definitionCode = definitionCode;
-    return cloneVideo;
-}
-
-const QString &Video::webpage() {
-    if (m_webpage.isEmpty() && !videoId.isEmpty())
-        m_webpage.append("https://www.youtube.com/watch?v=").append(videoId);
-    return m_webpage;
+#include "http.h"
+#include "httputils.h"
+#include "jsfunctions.h"
+#include "videodefinition.h"
+#include "ytvideo.h"
+
+Video::Video()
+    : duration(0), viewCount(-1), license(LicenseYouTube), definitionCode(0),
+      loadingThumbnail(false), ytVideo(0) {}
+
+Video::~Video() {
+    qDebug() << "Deleting" << id;
+}
+
+Video *Video::clone() {
+    Video *clone = new Video();
+    clone->title = title;
+    clone->description = description;
+    clone->channelTitle = channelTitle;
+    clone->channelId = channelId;
+    clone->webpage = webpage;
+    clone->streamUrl = streamUrl;
+    clone->thumbnail = thumbnail;
+    clone->thumbnailUrl = thumbnailUrl;
+    clone->mediumThumbnailUrl = mediumThumbnailUrl;
+    clone->duration = duration;
+    clone->formattedDuration = formattedDuration;
+    clone->published = published;
+    clone->formattedPublished = formattedPublished;
+    clone->viewCount = viewCount;
+    clone->id = id;
+    clone->definitionCode = definitionCode;
+    return clone;
+}
+
+const QString &Video::getWebpage() {
+    if (webpage.isEmpty() && !id.isEmpty())
+        webpage.append("https://www.youtube.com/watch?v=").append(id);
+    return webpage;
 }
 
 void Video::setWebpage(const QString &value) {
-    m_webpage = value;
+    webpage = value;
 
     // Get Video ID
-    if (videoId.isEmpty()) {
+    if (id.isEmpty()) {
         QRegExp re(JsFunctions::instance()->videoIdRE());
-        if (re.indexIn(m_webpage) == -1) {
-            qWarning() << QString("Cannot get video id for %1").arg(m_webpage);
+        if (re.indexIn(webpage) == -1) {
+            qWarning() << QString("Cannot get video id for %1").arg(webpage);
             // emit errorStreamUrl(QString("Cannot get video id for %1").arg(m_webpage.toString()));
             // loadingStreamUrl = false;
             return;
         }
-        videoId = re.cap(1);
+        id = re.cap(1);
     }
 }
 
 void Video::loadThumbnail() {
-    if (m_thumbnailUrl.isEmpty() || loadingThumbnail) return;
+    if (thumbnailUrl.isEmpty() || loadingThumbnail) return;
     loadingThumbnail = true;
-    QObject *reply = The::http()->get(m_thumbnailUrl);
+    QObject *reply = HttpUtils::yt().get(thumbnailUrl);
     connect(reply, SIGNAL(data(QByteArray)), SLOT(setThumbnail(QByteArray)));
 }
 
-void Video::setThumbnail(const QByteArray &bytes) {
-    loadingThumbnail = false;
-    qreal ratio = qApp->devicePixelRatio();
-    m_thumbnail = QPixmap();
-    m_thumbnail.loadFromData(bytes);
-    m_thumbnail.setDevicePixelRatio(ratio);
-    const int thumbWidth = 160 * ratio;
-    if (m_thumbnail.width() > thumbWidth)
-        m_thumbnail = m_thumbnail.scaledToWidth(thumbWidth, Qt::SmoothTransformation);
-    emit gotThumbnail();
-}
-
-void Video::loadStreamUrl() {
-    if (loadingStreamUrl) {
-        qDebug() << "Already loading stream URL for" << this->title();
-        return;
-    }
-    loadingStreamUrl = true;
-    elIndex = 0;
-    ageGate = false;
-
-    getVideoInfo();
-}
-
-void  Video::getVideoInfo() {
-    static const QStringList elTypes = QStringList() << "&el=embedded" << "&el=detailpage" << "&el=vevo" << "";
-
-    QUrl url;
-    if (elIndex == elTypes.size()) {
-        // qDebug() << "Trying special embedded el param";
-        url = QUrl("https://www.youtube.com/get_video_info");
-
-        QUrlQueryHelper urlHelper(url);
-        urlHelper.addQueryItem("video_id", videoId);
-        urlHelper.addQueryItem("el", "embedded");
-        urlHelper.addQueryItem("gl", "US");
-        urlHelper.addQueryItem("hl", "en");
-        urlHelper.addQueryItem("eurl", "https://youtube.googleapis.com/v/" + videoId);
-        urlHelper.addQueryItem("asv", "3");
-        urlHelper.addQueryItem("sts", "1588");
-    } else if (elIndex > elTypes.size() - 1) {
-        qWarning() << "Cannot get video info";
-        loadingStreamUrl = false;
-        emit errorStreamUrl("Cannot get video info");
-        return;
-    } else {
-        // qDebug() << "Trying el param:" << elTypes.at(elIndex) << elIndex;
-        url = QUrl(QString(
-                       "https://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(url);
-    connect(reply, SIGNAL(data(QByteArray)), SLOT(gotVideoInfo(QByteArray)));
-    connect(reply, SIGNAL(error(QNetworkReply*)), SLOT(errorVideoInfo(QNetworkReply*)));
-
-    // see you in gotVideoInfo...
+void Video::setDuration(int value) {
+    duration = value;
+    formattedDuration = DataUtils::formatDuration(duration);
 }
 
-void  Video::gotVideoInfo(const QByteArray &bytes) {
-    QString videoInfo = QString::fromUtf8(bytes);
-    // qDebug() << "videoInfo" << videoInfo;
-
-    // get video token
-    QRegExp videoTokeRE(JsFunctions::instance()->videoTokenRE());
-    if (videoTokeRE.indexIn(videoInfo) == -1) {
-        qDebug() << "Cannot get token. Trying next el param" << videoInfo << videoTokeRE.pattern();
-        // Don't panic! We're gonna try another magic "el" param
-        elIndex++;
-        getVideoInfo();
-        return;
-    }
-
-    QString videoToken = videoTokeRE.cap(1);
-    // qDebug() << "got token" << videoToken;
-    while (videoToken.contains('%'))
-        videoToken = QByteArray::fromPercentEncoding(videoToken.toLatin1());
-    // qDebug() << "videoToken" << videoToken;
-    this->videoToken = videoToken;
-
-    // get fmt_url_map
-    QRegExp fmtMapRE(JsFunctions::instance()->videoInfoFmtMapRE());
-    if (fmtMapRE.indexIn(videoInfo) == -1) {
-        // qDebug() << "Cannot get urlMap. Trying next el param";
-        // Don't panic! We're gonna try another magic "el" param
-        elIndex++;
-        getVideoInfo();
-        return;
-    }
-
-    // qDebug() << "Got token and urlMap" << elIndex;
-
-    QString fmtUrlMap = fmtMapRE.cap(1);
-    // qDebug() << "got fmtUrlMap" << fmtUrlMap;
-    fmtUrlMap = QByteArray::fromPercentEncoding(fmtUrlMap.toUtf8());
-    parseFmtUrlMap(fmtUrlMap);
+void Video::setPublished(const QDateTime &value) {
+    published = value;
+    formattedPublished = DataUtils::formatDateTime(published);
 }
 
-void Video::parseFmtUrlMap(const QString &fmtUrlMap, bool fromWebPage) {
-    const QString definitionName = QSettings().value("definition", "360p").toString();
-    const VideoDefinition& definition = VideoDefinition::getDefinitionFor(definitionName);
-
-    // qDebug() << "fmtUrlMap" << fmtUrlMap;
-    const QStringList formatUrls = fmtUrlMap.split(',', QString::SkipEmptyParts);
-    QHash<int, QString> urlMap;
-    foreach(const QString &formatUrl, formatUrls) {
-        // qDebug() << "formatUrl" << formatUrl;
-        const QStringList urlParams = formatUrl.split('&', QString::SkipEmptyParts);
-        // qDebug() << "urlParams" << urlParams;
-
-        int format = -1;
-        QString url;
-        QString sig;
-        foreach(const QString &urlParam, urlParams) {
-            // qWarning() << urlParam;
-            if (urlParam.startsWith("itag=")) {
-                int separator = urlParam.indexOf("=");
-                format = urlParam.mid(separator + 1).toInt();
-            } else if (urlParam.startsWith("url=")) {
-                int separator = urlParam.indexOf("=");
-                url = urlParam.mid(separator + 1);
-                url = QByteArray::fromPercentEncoding(url.toUtf8());
-            } else if (urlParam.startsWith("sig=")) {
-                int separator = urlParam.indexOf("=");
-                sig = urlParam.mid(separator + 1);
-                sig = QByteArray::fromPercentEncoding(sig.toUtf8());
-            } else if (urlParam.startsWith("s=")) {
-                if (fromWebPage || ageGate) {
-                    int separator = urlParam.indexOf("=");
-                    sig = urlParam.mid(separator + 1);
-                    sig = QByteArray::fromPercentEncoding(sig.toUtf8());
-                    if (ageGate)
-                        sig = JsFunctions::instance()->decryptAgeSignature(sig);
-                    else {
-                        sig = decryptSignature(sig);
-                        if (sig.isEmpty())
-                            sig = JsFunctions::instance()->decryptSignature(sig);
-                    }
-                } else {
-
-                    QUrl url("http://www.youtube.com/watch");
-                    {
-                        QUrlQueryHelper urlHelper(url);
-                        urlHelper.addQueryItem("v", videoId);
-                        urlHelper.addQueryItem("gl", "US");
-                        urlHelper.addQueryItem("hl", "en");
-                        urlHelper.addQueryItem("has_verified", "1");
-                    }
-                    // qDebug() << "Loading webpage" << url;
-                    QObject *reply = The::http()->get(url);
-                    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";
-
-        // qWarning() << url;
-
-        if (format == definition.getCode()) {
-            // qDebug() << "Found format" << definitionCode;
-            saveDefinitionForUrl(url, definition);
-            return;
-        }
-
-        urlMap.insert(format, url);
-    }
-
-    const QList<VideoDefinition>& definitions = VideoDefinition::getDefinitions();
-    int previousIndex = std::max(definitions.indexOf(definition) - 1, 0);
-    for (; previousIndex >= 0; previousIndex--) {
-        const VideoDefinition& previousDefinition = definitions.at(previousIndex);
-        if (urlMap.contains(previousDefinition.getCode())) {
-            // qDebug() << "Found format" << definitionCode;
-            saveDefinitionForUrl(urlMap.value(previousDefinition.getCode()),
-                                 previousDefinition);
-            return;
-        }
-    }
-
-    emit errorStreamUrl(tr("Cannot get video stream for %1").arg(m_webpage));
-}
-
-void Video::errorVideoInfo(QNetworkReply *reply) {
-    loadingStreamUrl = false;
-    emit errorStreamUrl(tr("Network error: %1 for %2").arg(reply->errorString(), reply->url().toString()));
-}
-
-void Video::scrapeWebPage(const QByteArray &bytes) {
-    QString html = QString::fromUtf8(bytes);
-
-    QRegExp ageGateRE(JsFunctions::instance()->ageGateRE());
-    if (ageGateRE.indexIn(html) != -1) {
-        // qDebug() << "Found ageGate";
-        ageGate = true;
-        elIndex = 4;
-        getVideoInfo();
-        return;
-    }
-
-    QRegExp fmtMapRE(JsFunctions::instance()->webPageFmtMapRE());
-    if (fmtMapRE.indexIn(html) == -1) {
-        qWarning() << "Error parsing video page";
-        // emit errorStreamUrl("Error parsing video page");
-        // loadingStreamUrl = false;
-        elIndex++;
-        getVideoInfo();
-        return;
-    }
-    fmtUrlMap = fmtMapRE.cap(1);
-    fmtUrlMap.replace("\\u0026", "&");
-    // parseFmtUrlMap(fmtUrlMap, true);
-
-#ifdef APP_DASH
-    QSettings settings;
-    QString definitionName = settings.value("definition", "360p").toString();
-    if (definitionName == QLatin1String("1080p")) {
-        QRegExp dashManifestRe("\"dashmpd\":\\s*\"([^\"]+)\"");
-        if (dashManifestRe.indexIn(html) != -1) {
-            dashManifestUrl = dashManifestRe.cap(1);
-            dashManifestUrl.remove('\\');
-            qDebug() << "dashManifestUrl" << dashManifestUrl;
-        }
-    }
-#endif
-
-    QRegExp jsPlayerRe(JsFunctions::instance()->jsPlayerRE());
-    if (jsPlayerRe.indexIn(html) != -1) {
-        QString jsPlayerUrl = jsPlayerRe.cap(1);
-        jsPlayerUrl.remove('\\');
-        jsPlayerUrl = "http:" + jsPlayerUrl;
-        // qDebug() << "jsPlayerUrl" << jsPlayerUrl;
-        /*
-                    QRegExp jsPlayerIdRe("-(.+)\\.js");
-                    jsPlayerIdRe.indexIn(jsPlayerUrl);
-                    QString jsPlayerId = jsPlayerRe.cap(1);
-                    */
-        QObject *reply = The::http()->get(jsPlayerUrl);
-        connect(reply, SIGNAL(data(QByteArray)), SLOT(parseJsPlayer(QByteArray)));
-        connect(reply, SIGNAL(error(QNetworkReply*)), SLOT(errorVideoInfo(QNetworkReply*)));
-    }
-}
-
-void Video::parseJsPlayer(const QByteArray &bytes) {
-    QString js = QString::fromUtf8(bytes);
-    // qWarning() << "jsPlayer" << js;
-
-    // QRegExp funcNameRe("\"signature\"\\w*,\\w*([" + jsNameChars + "]+)");
-    QRegExp funcNameRe(JsFunctions::instance()->signatureFunctionNameRE().arg(jsNameChars));
-
-    if (funcNameRe.indexIn(js) == -1) {
-        qWarning() << "Cannot capture signature function name" << js;
-    } else {
-        sigFuncName = funcNameRe.cap(1);
-        captureFunction(sigFuncName, js);
-        // qWarning() << sigFunctions << sigObjects;
-    }
-
-#ifdef APP_DASH
-    if (!dashManifestUrl.isEmpty()) {
-        QRegExp sigRe("/s/([\\w\\.]+)");
-        if (sigRe.indexIn(dashManifestUrl) != -1) {
-            qDebug() << "Decrypting signature for dash manifest";
-            QString sig = sigRe.cap(1);
-            sig = decryptSignature(sig);
-            dashManifestUrl.replace(sigRe, "/signature/" + sig);
-            qDebug() << dashManifestUrl;
-
-            if (false) {
-                // let phonon play the manifest
-                m_streamUrl = dashManifestUrl;
-                this->definitionCode = 37;
-                emit gotStreamUrl(m_streamUrl);
-                loadingStreamUrl = false;
-            } else {
-                // download the manifest
-                QObject *reply = The::http()->get(QUrl::fromEncoded(dashManifestUrl.toUtf8()));
-                connect(reply, SIGNAL(data(QByteArray)), SLOT(parseDashManifest(QByteArray)));
-                connect(reply, SIGNAL(error(QNetworkReply*)), SLOT(errorVideoInfo(QNetworkReply*)));
-            }
-
-            return;
-        }
-    }
-#endif
-
-    parseFmtUrlMap(fmtUrlMap, true);
+void Video::setThumbnail(const QByteArray &bytes) {
+    qreal ratio = qApp->devicePixelRatio();
+    thumbnail.loadFromData(bytes);
+    thumbnail.setDevicePixelRatio(ratio);
+    const int thumbWidth = 160 * ratio;
+    if (thumbnail.width() > thumbWidth)
+        thumbnail = thumbnail.scaledToWidth(thumbWidth, Qt::SmoothTransformation);
+    emit gotThumbnail();
+    loadingThumbnail = false;
 }
 
-void Video::parseDashManifest(const QByteArray &bytes) {
-    QFile file(Temporary::filename() + ".mpd");
-    if (!file.open(QIODevice::WriteOnly))
-        qWarning() << file.errorString() << file.fileName();
-    QDataStream stream(&file);
-    stream.writeRawData(bytes.constData(), bytes.size());
-
-    m_streamUrl = "file://" + file.fileName();
-    this->definitionCode = 37;
-    emit gotStreamUrl(m_streamUrl);
-    loadingStreamUrl = false;
+void Video::streamUrlLoaded(const QUrl &streamUrl) {
+    definitionCode = ytVideo->getDefinitionCode();
+    this->streamUrl = streamUrl;
+    emit gotStreamUrl(this->streamUrl);
+    delete ytVideo;
+    ytVideo = 0;
 }
 
-void Video::captureFunction(const QString &name, const QString &js) {
-    const QString argsAndBody = "\\s*\\([" + jsNameChars + ",\\s]*\\)\\s*\\{[^\\}]+\\}";
-    QString func;
-    QRegExp funcRe("function\\s+" + QRegExp::escape(name) + argsAndBody);
-    if (funcRe.indexIn(js) != -1) {
-        func = funcRe.cap(0);
-    } else {
-        // try var foo = function(bar) { };
-        funcRe = QRegExp("var\\s+" + QRegExp::escape(name) + "\\s*=\\s*function" + argsAndBody);
-        if (funcRe.indexIn(js) != -1) {
-            func = funcRe.cap(0);
-        } else {
-            // try ,gr= function(bar) { };
-            funcRe = QRegExp("[,\\s;}\\.\\)](" + QRegExp::escape(name) + "\\s*=\\s*function" + argsAndBody + ")");
-            if (funcRe.indexIn(js) != -1) {
-                func = funcRe.cap(1);
-            } else {
-                qWarning() << "Cannot capture function" << name;
-                return;
-            }
-        }
-    }
-    sigFunctions.insert(name, func);
-
-    // capture inner functions
-    QRegExp invokedFuncRe("[\\s=;\\(]([" + jsNameChars + "]+)\\s*\\([" + jsNameChars + ",\\s]+\\)");
-    int pos = name.length() + 9;
-    while ((pos = invokedFuncRe.indexIn(func, pos)) != -1) {
-        QString funcName = invokedFuncRe.cap(1);
-        if (!sigFunctions.contains(funcName))
-            captureFunction(funcName, js);
-        pos += invokedFuncRe.matchedLength();
-    }
-
-    // capture referenced objects
-    QRegExp objRe("[\\s=;\\(]([" + jsNameChars + "]+)\\.[" + jsNameChars + "]+");
-    pos = name.length() + 9;
-    while ((pos = objRe.indexIn(func, pos)) != -1) {
-        QString objName = objRe.cap(1);
-        if (!sigObjects.contains(objName))
-            captureObject(objName, js);
-        pos += objRe.matchedLength();
-    }
-}
-
-void Video::captureObject(const QString &name, const QString &js) {
-    QRegExp re("var\\s+" + QRegExp::escape(name) + "\\s*=\\s*\\{.*\\}\\s*;");
-    re.setMinimal(true);
-    if (re.indexIn(js) == -1) {
-        qWarning() << "Cannot capture object" << name;
+void Video::loadStreamUrl() {
+    if (ytVideo) {
+        qDebug() << "Already loading" << id;
         return;
     }
-    QString obj = re.cap(0);
-    sigObjects.insert(name, obj);
+    ytVideo = new YTVideo(id, this);
+    connect(ytVideo, &YTVideo::gotStreamUrl, this, &Video::streamUrlLoaded);
+    connect(ytVideo, &YTVideo::errorStreamUrl, this, &Video::errorStreamUrl);
+    connect(ytVideo, &YTVideo::errorStreamUrl, ytVideo, &QObject::deleteLater);
+    ytVideo->loadStreamUrl();
 }
-
-QString Video::decryptSignature(const QString &s) {
-    if (sigFuncName.isEmpty()) return QString();
-    QScriptEngine engine;
-    foreach (const QString &f, sigObjects.values()) {
-        QScriptValue value = engine.evaluate(f);
-        if (value.isError())
-            qWarning() << "Error in" << f << value.toString();
-    }
-    foreach (const QString &f, sigFunctions.values()) {
-        QScriptValue value = engine.evaluate(f);
-        if (value.isError())
-            qWarning() << "Error in" << f << value.toString();
-    }
-    QString js = sigFuncName + "('" + s + "');";
-    QScriptValue value = engine.evaluate(js);
-    if (value.isUndefined()) {
-        qWarning() << "Undefined result for" << js;
-        return QString();
-    }
-    if (value.isError()) {
-        qWarning() << "Error in" << js << value.toString();
-        return QString();
-    }
-    return value.toString();
-}
-
-QString Video::formattedDuration() const {
-    return DataUtils::formatDuration(m_duration);
-}
-
-void Video::saveDefinitionForUrl(const QString& url, const VideoDefinition& definition) {
-    const QUrl videoUrl = QUrl::fromEncoded(url.toUtf8(), QUrl::StrictMode);
-    m_streamUrl = videoUrl;
-    definitionCode = definition.getCode();
-    emit gotStreamUrl(videoUrl);
-    loadingStreamUrl = false;
-}
-
index f612d90879bd93f6b2c9cf4fce107d9a8e880c97..e0c8e44d097e171ecd9b31e36e1136ced0f6ed4e 100644 (file)
@@ -21,74 +21,70 @@ $END_LICENSE */
 #ifndef VIDEO_H
 #define VIDEO_H
 
+#include <QtCore>
 #include <QtGui>
-#if QT_VERSION >= 0x050000
-#include <QtWidgets>
-#endif
-#include <QtNetwork>
 
-class VideoDefinition;
+class YTVideo;
 
 class Video : public QObject {
-
     Q_OBJECT
 
 public:
     Video();
-    Video* clone();
+    ~Video();
+    Video *clone();
 
-    enum License {
-        LicenseYouTube = 1,
-        LicenseCC
-    };
+    enum License { LicenseYouTube = 1, LicenseCC };
+    Q_ENUM(License)
 
-    const QString &title() const { return m_title; }
-    void setTitle(const QString &value) { m_title = value; }
+    const QString &getTitle() const { return title; }
+    void setTitle(const QString &value) { title = value; }
 
-    const QString &description() const { return m_description; }
-    void setDescription(const QString &value) { m_description = value; }
+    const QString &getDescription() const { return description; }
+    void setDescription(const QString &value) { description = value; }
 
-    const QString &channelTitle() const { return m_channelTitle; }
-    void setChannelTitle(const QString &value) { m_channelTitle = value; }
+    const QString &getChannelTitle() const { return channelTitle; }
+    void setChannelTitle(const QString &value) { channelTitle = value; }
 
-    const QString &channelId() const { return m_channelId; }
-    void setChannelId(const QString &value ) { m_channelId = value; }
+    const QString &getChannelId() const { return channelId; }
+    void setChannelId(const QString &value) { channelId = value; }
 
-    const QString &webpage();
+    const QString &getWebpage();
     void setWebpage(const QString &value);
 
     void loadThumbnail();
-    const QPixmap &thumbnail() const { return m_thumbnail; }
+    const QPixmap &getThumbnail() const { return thumbnail; }
 
-    const QString &thumbnailUrl() { return m_thumbnailUrl; }
-    void setThumbnailUrl(const QString &value) { m_thumbnailUrl = value; }
+    const QString &getThumbnailUrl() const { return thumbnailUrl; }
+    void setThumbnailUrl(const QString &value) { thumbnailUrl = value; }
 
-    const QString &mediumThumbnailUrl() { return m_mediumThumbnailUrl; }
-    void setMediumThumbnailUrl(const QString &value) { m_mediumThumbnailUrl = value; }
+    const QString &getMediumThumbnailUrl() const { return mediumThumbnailUrl; }
+    void setMediumThumbnailUrl(const QString &value) { mediumThumbnailUrl = value; }
 
-    const QString &largeThumbnailUrl() { return m_largeThumbnailUrl; }
-    void setLargeThumbnailUrl(const QString &value) { m_largeThumbnailUrl = value; }
+    const QString &getLargeThumbnailUrl() const { return largeThumbnailUrl; }
+    void setLargeThumbnailUrl(const QString &value) { largeThumbnailUrl = value; }
 
-    int duration() const { return m_duration; }
-    void setDuration(int value) { m_duration = value; }
-    QString formattedDuration() const;
+    int getDuration() const { return duration; }
+    void setDuration(int value);
+    const QString &getFormattedDuration() const { return formattedDuration; }
 
-    int viewCount() const { return m_viewCount; }
-    void setViewCount(int viewCount) { m_viewCount = viewCount; }
+    int getViewCount() const { return viewCount; }
+    void setViewCount(int value) { viewCount = value; }
 
-    const QDateTime &published() const { return m_published; }
-    void setPublished(const QDateTime &value) { m_published = value; }
+    const QDateTime &getPublished() const { return published; }
+    void setPublished(const QDateTime &value);
+    const QString &getFormattedPublished() const { return formattedPublished; }
 
     int getDefinitionCode() const { return definitionCode; }
 
     void loadStreamUrl();
-    const QUrl &getStreamUrl() { return m_streamUrl; }
+    const QUrl &getStreamUrl() { return streamUrl; }
 
-    void setId(const QString &value) { videoId = value; }
-    const QString &id() const { return videoId; }
+    const QString &getId() const { return id; }
+    void setId(const QString &value) { id = value; }
 
-    void setLicense(License value) { m_license = value; }
-    License license() const { return m_license; }
+    License getLicense() const { return license; }
+    void setLicense(License value) { license = value; }
 
 signals:
     void gotThumbnail();
@@ -99,52 +95,32 @@ signals:
 
 private slots:
     void setThumbnail(const QByteArray &bytes);
-    void gotVideoInfo(const QByteArray &bytes);
-    void errorVideoInfo(QNetworkReply *reply);
-    void scrapeWebPage(const QByteArray &bytes);
-    void parseJsPlayer(const QByteArray &bytes);
-    void parseDashManifest(const QByteArray &bytes);
+    void streamUrlLoaded(const QUrl &streamUrl);
 
 private:
-    void getVideoInfo();
-    void parseFmtUrlMap(const QString &fmtUrlMap, bool fromWebPage = false);
-    void captureFunction(const QString &name, const QString &js);
-    void captureObject(const QString &name, const QString &js);
-    QString decryptSignature(const QString &s);
-    void saveDefinitionForUrl(const QString &url, const VideoDefinition &definition);
-
-    QString m_title;
-    QString m_description;
-    QString m_channelTitle;
-    QString m_channelId;
-    QString m_webpage;
-    QUrl m_streamUrl;
-    QPixmap m_thumbnail;
-    QString m_thumbnailUrl;
-    QString m_mediumThumbnailUrl;
-    QString m_largeThumbnailUrl;
-    int m_duration;
-    QDateTime m_published;
-    int m_viewCount;
-    License m_license;
-    QString videoId;
-    QString videoToken;
+    QString title;
+    QString description;
+    QString channelTitle;
+    QString channelId;
+    QString webpage;
+    QUrl streamUrl;
+    QPixmap thumbnail;
+    QString thumbnailUrl;
+    QString mediumThumbnailUrl;
+    QString largeThumbnailUrl;
+    int duration;
+    QString formattedDuration;
+
+    QDateTime published;
+    QString formattedPublished;
+    int viewCount;
+    License license;
+    QString id;
     int definitionCode;
 
-    // current index for the elTypes list
-    // needed to iterate on elTypes
-    int elIndex;
-    bool ageGate;
-    
-    bool loadingStreamUrl;
     bool loadingThumbnail;
 
-    QString fmtUrlMap;
-    QString sigFuncName;
-    QHash<QString, QString> sigFunctions;
-    QHash<QString, QString> sigObjects;
-
-    QString dashManifestUrl;
+    YTVideo *ytVideo;
 };
 
 // This is required in order to use QPointer<Video> as a QVariant
index 62106148c4560d16a6a88065b1138b007c577b06..19973fa7485c487eea7f3aae4470642662135a63 100644 (file)
@@ -19,20 +19,55 @@ along with Minitube.  If not, see <http://www.gnu.org/licenses/>.
 $END_LICENSE */
 
 #include "videoareawidget.h"
-#include "video.h"
 #include "loadingwidget.h"
+#include "mainwindow.h"
 #include "playlistmodel.h"
+#include "video.h"
 #include "videomimedata.h"
-#include "mainwindow.h"
 #ifdef Q_OS_MAC
 #include "macutils.h"
 #endif
 #include "snapshotpreview.h"
+#include "fontutils.h"
+
+namespace {
+
+class MessageWidget : public QWidget {
+public:
+    MessageWidget(QWidget *parent = nullptr) : QWidget(parent) {
+        QPalette p = palette();
+        p.setColor(QPalette::Window, Qt::black);
+        p.setColor(QPalette::WindowText, Qt::darkGray);
+        p.setColor(QPalette::Base, Qt::black);
+        p.setColor(QPalette::Text, Qt::darkGray);
+        setPalette(p);
+        setAutoFillBackground(true);
+
+        QBoxLayout *l = new QHBoxLayout(this);
+        l->setMargin(32);
+        l->setSpacing(32);
+        l->setAlignment(Qt::AlignLeft | Qt::AlignVCenter);
+
+        QLabel *arrowLabel = new QLabel("←");
+        arrowLabel->setFont(FontUtils::light(64));
+        arrowLabel->setPalette(p);
+        l->addWidget(arrowLabel);
+
+        QLabel *msgLabel = new QLabel(tr("Pick a video"));
+        msgLabel->setFont(FontUtils::light(32));
+        msgLabel->setPalette(p);
+        l->addWidget(msgLabel);
+    }
+};
+}
+
+VideoAreaWidget::VideoAreaWidget(QWidget *parent)
+    : QWidget(parent), videoWidget(0), messageWidget(0) {
+    setAttribute(Qt::WA_OpaquePaintEvent);
 
-VideoAreaWidget::VideoAreaWidget(QWidget *parent) : QWidget(parent), videoWidget(0) {
-    QBoxLayout *vLayout = new QVBoxLayout(this);
-    vLayout->setMargin(0);
-    vLayout->setSpacing(0);
+    QBoxLayout *layout = new QVBoxLayout(this);
+    layout->setMargin(0);
+    layout->setSpacing(0);
 
     // hidden message widget
     messageLabel = new QLabel(this);
@@ -43,10 +78,10 @@ VideoAreaWidget::VideoAreaWidget(QWidget *parent) : QWidget(parent), videoWidget
     messageLabel->setAutoFillBackground(true);
     messageLabel->setWordWrap(true);
     messageLabel->hide();
-    vLayout->addWidget(messageLabel);
+    layout->addWidget(messageLabel);
 
     stackedLayout = new QStackedLayout();
-    vLayout->addLayout(stackedLayout);
+    layout->addLayout(stackedLayout);
 
 #ifdef APP_SNAPSHOT
     snapshotPreview = new SnapshotPreview();
@@ -54,13 +89,15 @@ VideoAreaWidget::VideoAreaWidget(QWidget *parent) : QWidget(parent), videoWidget
 #endif
 
     setAcceptDrops(true);
-    setMouseTracking(true);
     setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding);
+
+    setContextMenuPolicy(Qt::CustomContextMenu);
+    connect(this, SIGNAL(customContextMenuRequested(const QPoint &)),
+            SLOT(showContextMenu(const QPoint &)));
 }
 
 void VideoAreaWidget::setVideoWidget(QWidget *videoWidget) {
     this->videoWidget = videoWidget;
-    videoWidget->setMouseTracking(true);
     stackedLayout->addWidget(videoWidget);
 }
 
@@ -71,18 +108,24 @@ void VideoAreaWidget::setLoadingWidget(LoadingWidget *loadingWidget) {
 }
 
 void VideoAreaWidget::showVideo() {
-    if (videoWidget)
-        stackedLayout->setCurrentWidget(videoWidget);
+    if (videoWidget) stackedLayout->setCurrentWidget(videoWidget);
     loadingWidget->clear();
 }
 
 void VideoAreaWidget::showError(const QString &message) {
-    // loadingWidget->setError(message);
     messageLabel->setText(message);
     messageLabel->show();
     stackedLayout->setCurrentWidget(loadingWidget);
 }
 
+void VideoAreaWidget::showPickMessage() {
+    if (!messageWidget) {
+        messageWidget = new MessageWidget();
+        stackedLayout->addWidget(messageWidget);
+    }
+    stackedLayout->setCurrentWidget(messageWidget);
+}
+
 void VideoAreaWidget::showLoading(Video *video) {
     messageLabel->hide();
     messageLabel->clear();
@@ -99,9 +142,7 @@ void VideoAreaWidget::showSnapshotPreview(const QPixmap &pixmap) {
     snapshotPreview->start(videoWidget, pixmap, soundOnly);
 }
 
-void VideoAreaWidget::hideSnapshotPreview() {
-
-}
+void VideoAreaWidget::hideSnapshotPreview() {}
 #endif
 
 void VideoAreaWidget::clear() {
@@ -112,38 +153,7 @@ void VideoAreaWidget::clear() {
 }
 
 void VideoAreaWidget::mouseDoubleClickEvent(QMouseEvent *event) {
-    if (event->button() == Qt::LeftButton)
-        emit doubleClicked();
-}
-
-void VideoAreaWidget::mousePressEvent(QMouseEvent *event) {
-    QWidget::mousePressEvent(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_OS_MAC
-        // FIXME mac::moveWindowTo(window()->winId(), p.x(), p.y());
-#else
-        window()->move(p);
-#endif
-        event->accept();
-    }
+    if (event->button() == Qt::LeftButton) emit doubleClicked();
 }
 
 void VideoAreaWidget::dragEnterEvent(QDragEnterEvent *event) {
@@ -154,16 +164,18 @@ void VideoAreaWidget::dragEnterEvent(QDragEnterEvent *event) {
 }
 
 void VideoAreaWidget::dropEvent(QDropEvent *event) {
-    
-    const VideoMimeData* videoMimeData = qobject_cast<const VideoMimeData*>( event->mimeData() );
-    if(!videoMimeData ) return;
-    
-    QList<Video*> droppedVideos = videoMimeData->videos();
-    if (droppedVideos.isEmpty())
-        return;
-    Video *video = droppedVideos.first();
+    const VideoMimeData *videoMimeData = qobject_cast<const VideoMimeData *>(event->mimeData());
+    if (!videoMimeData) return;
+
+    QVector<Video *> droppedVideos = videoMimeData->getVideos();
+    if (droppedVideos.isEmpty()) return;
+    Video *video = droppedVideos.at(0);
     int row = listModel->rowForVideo(video);
-    if (row != -1)
-        listModel->setActiveRow(row);
+    if (row != -1) listModel->setActiveRow(row);
     event->acceptProposedAction();
 }
+
+void VideoAreaWidget::showContextMenu(const QPoint &point) {
+    QMenu *menu = MainWindow::instance()->getMenu("video");
+    menu->exec(mapToGlobal(point));
+}
index 866c9037d7e5c0c6821866855a6fe2e20359278a..21b3d13295b5849029852cdf0c6942ef9bade7c4 100644 (file)
@@ -21,10 +21,7 @@ $END_LICENSE */
 #ifndef VIDEOAREAWIDGET_H
 #define VIDEOAREAWIDGET_H
 
-#include <QtGui>
-#if QT_VERSION >= 0x050000
 #include <QtWidgets>
-#endif
 
 class Video;
 class LoadingWidget;
@@ -42,6 +39,7 @@ public:
     void showLoading(Video* video);
     void showVideo();
     void showError(const QString &message);
+    void showPickMessage();
     void clear();
     void setListModel(PlaylistModel *listModel) {
         this->listModel = listModel;
@@ -57,12 +55,11 @@ signals:
 
 protected:
     void mouseDoubleClickEvent(QMouseEvent *event);
-    void mousePressEvent(QMouseEvent *event);
-    void mouseMoveEvent(QMouseEvent *event);
     void dragEnterEvent(QDragEnterEvent *event);
     void dropEvent(QDropEvent *event);
 
 private slots:
+    void showContextMenu(const QPoint &point);
 #ifdef APP_SNAPSHOT
     void hideSnapshotPreview();
 #endif
@@ -79,6 +76,8 @@ private:
     PlaylistModel *listModel;
     QLabel *messageLabel;
 
+    QWidget *messageWidget;
+
     QPoint dragPosition;
 };
 
index 443f1710334c1e13826f486740992372207b2cb1..12cfd12c1f0c2e914fff892b049e17ae0cefd4e5 100644 (file)
@@ -26,47 +26,34 @@ static const int kEmptyDefinitionCode = -1;
 static const VideoDefinition kEmptyDefinition(QString(), kEmptyDefinitionCode);
 
 template <typename T, T (VideoDefinition::*Getter)() const>
-const VideoDefinition& getDefinitionForImpl(T matchValue) {
-    const QList<VideoDefinition>& definitions = VideoDefinition::getDefinitions();
-    const int size = definitions.size();
-    for (int ii = 0; ii < size; ++ii) {
-        const VideoDefinition& def = definitions.at(ii);
-        if ((def.*Getter)() == matchValue)
-            return def;
+const VideoDefinition &getDefinitionForImpl(T matchValue) {
+    const auto &defs = VideoDefinition::getDefinitions();
+    for (const VideoDefinition &def : defs) {
+        if ((def.*Getter)() == matchValue) return def;
     }
-
     return kEmptyDefinition;
 }
 }
 
 // static
-const QList<VideoDefinition>& VideoDefinition::getDefinitions() {
-    static QList<VideoDefinition> definitions = QList<VideoDefinition>()
-        << VideoDefinition(QLatin1String("360p"), 18)
-        << VideoDefinition(QLatin1String("720p"), 22)
-        << VideoDefinition(QLatin1String("1080p"), 37);
+const QVector<VideoDefinition> &VideoDefinition::getDefinitions() {
+    static const QVector<VideoDefinition> definitions = {
+            VideoDefinition(QLatin1String("360p"), 18), VideoDefinition(QLatin1String("720p"), 22),
+            VideoDefinition(QLatin1String("1080p"), 37)};
     return definitions;
 }
 
 // static
-const VideoDefinition& VideoDefinition::getDefinitionFor(const QString& name) {
-    return getDefinitionForImpl<const QString&, &VideoDefinition::getName>(name);
+const VideoDefinition &VideoDefinition::forName(const QString &name) {
+    return getDefinitionForImpl<const QString &, &VideoDefinition::getName>(name);
 }
 
 // static
-const VideoDefinition& VideoDefinition::getDefinitionFor(int code) {
+const VideoDefinition &VideoDefinition::forCode(int code) {
     return getDefinitionForImpl<int, &VideoDefinition::getCode>(code);
 }
 
-VideoDefinition::VideoDefinition(const QString& name, int code) :
-    m_name(name),
-    m_code(code) {
-}
-
-VideoDefinition::VideoDefinition(const VideoDefinition& other) :
-    m_name(other.m_name),
-    m_code(other.m_code) {
-}
+VideoDefinition::VideoDefinition(const QString &name, int code) : m_name(name), m_code(code) {}
 
 bool VideoDefinition::isEmpty() const {
     return m_code == kEmptyDefinitionCode && m_name.isEmpty();
index 13001c1a818328bd3c97e4131aae6d16dd8071f4..321a116e09d4b6a3328b33331acebddeacdc1398 100644 (file)
@@ -24,28 +24,26 @@ $END_LICENSE */
 #include <QtCore>
 
 class VideoDefinition {
-
 public:
-    static const QList<VideoDefinition>& getDefinitions();
-    static const VideoDefinition& getDefinitionFor(const QString& name);
-    static const VideoDefinition& getDefinitionFor(int code);
+    static const QVector<VideoDefinition> &getDefinitions();
+    static const VideoDefinition &forName(const QString &name);
+    static const VideoDefinition &forCode(int code);
 
-    VideoDefinition(const QString& name, int code);
-    VideoDefinition(const VideoDefinition& other);
+    VideoDefinition(const QString &name, int code);
 
-    const QStringgetName() const { return m_name; }
+    const QString &getName() const { return m_name; }
     int getCode() const { return m_code; }
     bool isEmpty() const;
 
-private:
-    VideoDefinition& operator=(const VideoDefinition&);
+    VideoDefinition &operator=(const VideoDefinition &);
 
+private:
     const QString m_name;
     const int m_code;
 };
 
-inline bool operator==(const VideoDefinition& lhs, const VideoDefinition& rhs) {
-    return lhs.getCode() == rhs.getCode() && lhs.getName() == rhs.getName();
+inline bool operator==(const VideoDefinition &lhs, const VideoDefinition &rhs) {
+    return lhs.getCode() == rhs.getCode();
 }
 
 #endif // VIDEODEFINITION_H
index b2a45bee66cfd0b5046b1a141c9dddbe290435c1..7e46d6540a070a6179b069b04575a0f5d65b3857 100644 (file)
@@ -23,11 +23,11 @@ $END_LICENSE */
 VideoMimeData::VideoMimeData() {}
 
 QStringList VideoMimeData::formats() const {
-    QStringList formats( QMimeData::formats() );
+    QStringList formats(QMimeData::formats());
     formats.append("application/x-minitube-video");
     return formats;
 }
 
-bool VideoMimeData::hasFormat( const QString &mimeType ) const {
+bool VideoMimeData::hasFormat(const QString &mimeType) const {
     return mimeType == QLatin1String("application/x-minitube-video");
 }
index 81b55c1d90683e22d49952109d381a399fe8a9b6..ec6da99cd29d71c82ec7ee00b526d8398862bcf1 100644 (file)
@@ -21,28 +21,23 @@ $END_LICENSE */
 #ifndef VIDEOMIMEDATA_H
 #define VIDEOMIMEDATA_H
 
-#include <QMimeData>
 #include "video.h"
+#include <QMimeData>
 
 class VideoMimeData : public QMimeData {
-
     Q_OBJECT
 
 public:
     VideoMimeData();
 
     virtual QStringList formats() const;
-    virtual bool hasFormat( const QString &mimeType ) const;
+    virtual bool hasFormat(const QString &mimeType) const;
 
-    QList<Video*> videos() const { return m_videos; }
-
-    void addVideo(Video *video) {
-        m_videos << video;
-    }
+    const QVector<Video *> &getVideos() const { return videos; }
+    void addVideo(Video *video) { videos << video; }
 
 private:
-    QList<Video*> m_videos;
-
+    QVector<Video *> videos;
 };
 
 #endif // VIDEOMIMEDATA_H
index e2da4d4a3fba2296c6f853990246bb1a3a7b9fa1..eb93ec09066da7fc0145e94b446f48dee752ab8a 100644 (file)
@@ -21,33 +21,33 @@ $END_LICENSE */
 #ifndef VIDEOSOURCE_H
 #define VIDEOSOURCE_H
 
-#include <QtCore>
 #include <QAction>
+#include <QtCore>
 
 class Video;
 
 class VideoSource : public QObject {
-
     Q_OBJECT
 
 public:
-    VideoSource(QObject *parent = 0) : QObject(parent) { }
+    VideoSource(QObject *parent = 0) : QObject(parent) {}
     virtual void loadVideos(int max, int startIndex) = 0;
     virtual bool hasMoreVideos() { return true; }
     virtual void abort() = 0;
-    virtual const QStringList & getSuggestions() = 0;
     virtual QString getName() = 0;
-    virtual QList<QAction*> getActions() { return QList<QAction*>(); }
+    virtual const QList<QAction *> &getActions() {
+        static const QList<QAction *> noActions;
+        return noActions;
+    }
 
 public slots:
     void setParam(const QString &name, const QVariant &value);
 
 signals:
-    void gotVideos(QList<Video*> videos);
+    void gotVideos(const QVector<Video *> &videos);
     void finished(int total);
     void error(QString message);
     void nameChanged(QString name);
-
 };
 
 #endif // VIDEOSOURCE_H
index ce1a92fc498b143b56a1de64638bfc74df9c1e26..0e39560fbc24ca7906eaca2334bf85797579189b 100644 (file)
@@ -23,17 +23,14 @@ $END_LICENSE */
 #include "video.h"
 #include "fontutils.h"
 #include "iconutils.h"
-#include "networkaccess.h"
-
-namespace The {
-NetworkAccess* http();
-}
+#include "http.h"
+#include "httputils.h"
 
 VideoSourceWidget::VideoSourceWidget(VideoSource *videoSource, QWidget *parent)
     : GridWidget(parent),
       videoSource(videoSource),
       lastPixelRatio(0) {
-
+    videoSource->setParent(this);
     setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding);
 
     loadPreview();
@@ -45,16 +42,19 @@ void VideoSourceWidget::activate() {
     emit activated(videoSource);
 }
 
-void VideoSourceWidget::previewVideo(const QList<Video *> &videos) {
+void VideoSourceWidget::previewVideo(const QVector<Video *> &videos) {
     videoSource->disconnect();
-    if (videos.isEmpty()) return;
-    Video *video = videos.first();
+    if (videos.isEmpty()) {
+        emit unavailable(this);
+        return;
+    }
+    Video *video = videos.at(0);
     lastPixelRatio = window()->devicePixelRatio();
-    bool needLargeThumb = lastPixelRatio > 1.0 || window()->width() > 2000;
-    QString url =  needLargeThumb ? video->largeThumbnailUrl() : video->mediumThumbnailUrl();
-    if (url.isEmpty()) url = video->mediumThumbnailUrl();
+    bool needLargeThumb = lastPixelRatio > 1.0 || window()->width() > 1000;
+    QString url =  needLargeThumb ? video->getLargeThumbnailUrl() : video->getMediumThumbnailUrl();
+    if (url.isEmpty()) url = video->getMediumThumbnailUrl();
     video->deleteLater();
-    QObject *reply = The::http()->get(url);
+    QObject *reply = HttpUtils::yt().get(url);
     connect(reply, SIGNAL(data(QByteArray)), SLOT(setPixmapData(QByteArray)));
 }
 
@@ -65,8 +65,8 @@ void VideoSourceWidget::setPixmapData(const QByteArray &bytes) {
 }
 
 void VideoSourceWidget::loadPreview() {
-    connect(videoSource, SIGNAL(gotVideos(QList<Video*>)),
-            SLOT(previewVideo(QList<Video*>)), Qt::UniqueConnection);
+    connect(videoSource, SIGNAL(gotVideos(QVector<Video*>)),
+            SLOT(previewVideo(QVector<Video*>)), Qt::UniqueConnection);
     videoSource->loadVideos(1, 1);
 }
 
@@ -117,7 +117,7 @@ void VideoSourceWidget::paintEvent(QPaintEvent *event) {
     int yOffset = 0;
     int yOrigin = 0;
     int hDiff = pixmap.height() - h;
-    if (hDiff > 0) yOffset = hDiff / 4;
+    if (hDiff > 0) yOffset = hDiff / 2;
     else yOrigin = -hDiff / 2;
     p.drawPixmap(xOrigin, yOrigin, pixmap, xOffset, yOffset, w, h);
 
index 185e615ba156930b949d42340d8d4c52f5ade304..b6fda3a6a95f0d143f009f2f665d1851f760f85b 100644 (file)
@@ -21,10 +21,8 @@ $END_LICENSE */
 #ifndef VIDEOSOURCEWIDGET_H
 #define VIDEOSOURCEWIDGET_H
 
-#include <QtGui>
-#if QT_VERSION >= 0x050000
 #include <QtWidgets>
-#endif
+
 #include "gridwidget.h"
 
 class Video;
@@ -36,16 +34,18 @@ class VideoSourceWidget : public GridWidget {
 
 public:
     VideoSourceWidget(VideoSource *videoSource, QWidget *parent = 0);
+    VideoSource *getVideoSource() { return videoSource; }
 
 signals:
     void activated(VideoSource *videoSource);
+    void unavailable(VideoSourceWidget *videoSourceWidget);
 
 protected:
     void paintEvent(QPaintEvent *event);
 
 private slots:
     void activate();
-    void previewVideo(const QList<Video*> &videos);
+    void previewVideo(const QVector<Video*> &videos);
     void setPixmapData(const QByteArray &bytes);
 
 private:
index 5f0bdadfb069db612b466a734d901303634f9c15..da37e41ed83b0a790598f7c24a359f0f2b9b8e1e 100644 (file)
@@ -21,22 +21,25 @@ $END_LICENSE */
 #ifndef VIEW_H
 #define VIEW_H
 
-#include <QWidget>
 #include <QHash>
 #include <QString>
 #include <QVariant>
+#include <QWidget>
 
-class View : public QWidget {
+namespace {
+static const QString nullString;
+}
 
+class View : public QWidget {
     Q_OBJECT
 
 public:
-    View(QWidget *parent = 0) : QWidget(parent) { }
-    virtual QHash<QString, QVariant> metadata() { return QHash<QString, QVariant>(); }
+    View(QWidget *parent = 0) : QWidget(parent) {}
+    virtual const QString &getTitle() { return nullString; }
+    virtual const QString &getDescription() { return nullString; }
     virtual void appear() {}
     virtual void disappear() {}
-    QList<QAction*> getViewActions() { return QList<QAction*>(); }
-
+    // QVector<QAction*> getViewActions() { return QVector<QAction*>(); }
 };
 
 #endif // VIEW_H
index b42e204a03c6e2cd1444d41c36e1515935cc27f0..3703a8cf2b127ce70b464785d8c8b3d50b82083c 100644 (file)
@@ -4,9 +4,10 @@
 #include <ctime>
 
 #include "jsfunctions.h"
-#include "networkaccess.h"
+#include "http.h"
+#include "httputils.h"
 #include "constants.h"
-#include "compatibility/qurlqueryhelper.h"
+#include "mainwindow.h"
 
 #ifdef APP_EXTRA
 #include "extra.h"
 #define STR(x) #x
 #define STRINGIFY(x) STR(x)
 
-namespace The {
-NetworkAccess* http();
-}
-
 YT3 &YT3::instance() {
     static YT3 *i = new YT3();
     return *i;
 }
 
+const QString &YT3::baseUrl() {
+    static const QString base = "https://www.googleapis.com/youtube/v3/";
+    return base;
+}
+
 YT3::YT3() {
+    initApiKeys();
+}
+
+void YT3::initApiKeys() {
+    keys.clear();
+
     QByteArray customApiKey = qgetenv("GOOGLE_API_KEY");
     if (!customApiKey.isEmpty()) {
         keys << QString::fromUtf8(customApiKey);
@@ -53,37 +61,36 @@ YT3::YT3() {
 
     if (keys.isEmpty()) {
         qWarning() << "No available API keys";
+#ifdef APP_LINUX
+        QMetaObject::invokeMethod(MainWindow::instance(), "missingKeyWarning", Qt::QueuedConnection);
+#endif
     } else {
         key = keys.takeFirst();
         if (!keys.isEmpty()) testApiKey();
     }
 }
 
-const QString &YT3::baseUrl() {
-    static const QString base = "https://www.googleapis.com/youtube/v3/";
-    return base;
-}
-
 void YT3::testApiKey() {
     QUrl url = method("videos");
-    {
-        QUrlQueryHelper urlHelper(url);
-        urlHelper.addQueryItem("part", "id");
-        urlHelper.addQueryItem("chart", "mostPopular");
-        urlHelper.addQueryItem("maxResults", "1");
-    }
-    QObject *reply = The::http()->get(url);
-    connect(reply, SIGNAL(finished(QNetworkReply*)), SLOT(testResponse(QNetworkReply*)));
+    QUrlQuery q(url);
+    q.addQueryItem("part", "id");
+    q.addQueryItem("chart", "mostPopular");
+    q.addQueryItem("maxResults", "1");
+    url.setQuery(q);
+    QObject *reply = HttpUtils::yt().get(url);
+    connect(reply, SIGNAL(finished(HttpReply)), SLOT(testResponse(HttpReply)));
 }
 
 void YT3::addApiKey(QUrl &url) {
     if (key.isEmpty()) {
         qDebug() << __PRETTY_FUNCTION__ << "empty key";
+        initApiKeys();
         return;
     }
 
-    QUrlQueryHelper urlHelper(url);
-    urlHelper.addQueryItem("key", key);
+    QUrlQuery q(url);
+    q.addQueryItem("key", key);
+    url.setQuery(q);
 }
 
 QUrl YT3::method(const QString &name) {
@@ -92,8 +99,8 @@ QUrl YT3::method(const QString &name) {
     return url;
 }
 
-void YT3::testResponse(QNetworkReply *reply) {
-    int status = reply->attribute(QNetworkRequest::HttpStatusCodeAttribute).toInt();
+void YT3::testResponse(const HttpReply &reply) {
+    int status = reply.statusCode();
     if (status != 200) {
         if (keys.isEmpty()) {
             qWarning() << "Fatal error: No working API keys!";
index 124409f15e300434c13b3c05468c5b1f1b9142d0..c7de235ac88da1b38832140aad23e6d39852c81e 100644 (file)
--- a/src/yt3.h
+++ b/src/yt3.h
@@ -2,7 +2,8 @@
 #define YT3_H
 
 #include <QtCore>
-#include <QtNetwork>
+
+class HttpReply;
 
 class YT3 : public QObject {
 
@@ -12,15 +13,13 @@ public:
     static YT3 &instance();
     static const QString &baseUrl();
 
+    void initApiKeys();
     void testApiKey();
     void addApiKey(QUrl &url);
     QUrl method(const QString &name);
 
-signals:
-    void gotChannelId(QString channelId);
-
 private slots:
-    void testResponse(QNetworkReply *reply);
+    void testResponse(const HttpReply &reply);
 
 private:
     YT3();
index 45aa536e91454a34de83129c867a1eb6040ee14c..74e11e6a3c816b884e550f9fd168b8efa1612b43 100644 (file)
@@ -1,74 +1,70 @@
 #include "yt3listparser.h"
-#include "video.h"
 #include "datautils.h"
+#include "video.h"
 
 YT3ListParser::YT3ListParser(const QByteArray &bytes) {
-    QScriptEngine engine;
-    QScriptValue json = engine.evaluate("(" + QString::fromUtf8(bytes) + ")");
-
-    nextPageToken = json.property("nextPageToken").toString();
-
-    QScriptValue items = json.property("items");
-    videos.reserve(items.property("length").toInt32() - 1);
-    if (items.isArray()) {
-        QScriptValueIterator it(items);
-        while (it.hasNext()) {
-            it.next();
-            QScriptValue item = it.value();
-            // For some reason the array has an additional element containing its size.
-            if (item.isObject()) parseItem(item);
-        }
-    }
+    QJsonDocument doc = QJsonDocument::fromJson(bytes);
+    QJsonObject obj = doc.object();
 
-    // TODO suggestions!
+    nextPageToken = obj[QLatin1String("nextPageToken")].toString();
+
+    const QJsonArray items = obj[QLatin1String("items")].toArray();
+    videos.reserve(items.size());
+    for (const QJsonValue &v : items) {
+        QJsonObject item = v.toObject();
+        parseItem(item);
+    }
 }
 
-void YT3ListParser::parseItem(const QScriptValue &item) {
+void YT3ListParser::parseItem(const QJsonObject &item) {
     Video *video = new Video();
 
-    QScriptValue id = item.property("id");
-    if (id.isString()) video->setId(id.toString());
+    QJsonValue id = item[QLatin1String("id")];
+    if (id.isString())
+        video->setId(id.toString());
     else {
-        QString videoId = id.property("videoId").toString();
+        QString videoId = id.toObject()[QLatin1String("videoId")].toString();
         video->setId(videoId);
     }
 
-    QScriptValue snippet = item.property("snippet");
+    QJsonObject snippet = item[QLatin1String("snippet")].toObject();
 
-    bool isLiveBroadcastContent = snippet.property("liveBroadcastContent").toString() != QLatin1String("none");
+    bool isLiveBroadcastContent =
+            snippet[QLatin1String("liveBroadcastContent")].toString() != QLatin1String("none");
     if (isLiveBroadcastContent) {
         delete video;
         return;
     }
 
-    QString publishedAt = snippet.property("publishedAt").toString();
+    QString publishedAt = snippet[QLatin1String("publishedAt")].toString();
     QDateTime publishedDateTime = QDateTime::fromString(publishedAt, Qt::ISODate);
     video->setPublished(publishedDateTime);
 
-    video->setChannelId(snippet.property("channelId").toString());
+    video->setChannelId(snippet[QLatin1String("channelId")].toString());
 
-    video->setTitle(snippet.property("title").toString());
-    video->setDescription(snippet.property("description").toString());
+    video->setTitle(snippet[QLatin1String("title")].toString());
+    video->setDescription(snippet[QLatin1String("description")].toString());
 
-    QScriptValue thumbnails = snippet.property("thumbnails");
-    video->setThumbnailUrl(thumbnails.property("medium").property("url").toString());
-    video->setMediumThumbnailUrl(thumbnails.property("high").property("url").toString());
-    video->setLargeThumbnailUrl(thumbnails.property("standard").property("url").toString());
+    QJsonObject thumbnails = snippet[QLatin1String("thumbnails")].toObject();
+    QLatin1String url("url");
+    video->setThumbnailUrl(thumbnails[QLatin1String("medium")].toObject()[url].toString());
+    video->setMediumThumbnailUrl(thumbnails[QLatin1String("high")].toObject()[url].toString());
+    video->setLargeThumbnailUrl(thumbnails[QLatin1String("standard")].toObject()[url].toString());
 
-    video->setChannelTitle(snippet.property("channelTitle").toString());
+    video->setChannelTitle(snippet[QLatin1String("channelTitle")].toString());
 
     // These are only for "videos" requests
 
-    QScriptValue contentDetails = item.property("contentDetails");
+    QJsonValue contentDetails = item[QLatin1String("contentDetails")];
     if (contentDetails.isObject()) {
-        QString isoPeriod = contentDetails.property("duration").toString();
+        QString isoPeriod = contentDetails.toObject()[QLatin1String("duration")].toString();
         int duration = DataUtils::parseIsoPeriod(isoPeriod);
         video->setDuration(duration);
     }
 
-    QScriptValue statistics = item.property("statistics");
+    QJsonValue statistics = item[QLatin1String("statistics")];
     if (statistics.isObject()) {
-        uint viewCount = statistics.property("viewCount").toUInt32();
+        int viewCount = statistics.toObject()[QLatin1String("viewCount")].toString().toInt();
         video->setViewCount(viewCount);
     }
 
index 6ce915c086f12818114edf133846026346807e52..1effdd48805e1479b5b45e82f0f8fe61d6aaf9d6 100644 (file)
@@ -2,23 +2,19 @@
 #define YT3LISTPARSER_H
 
 #include <QtCore>
-#include <QtScript>
 
 class Video;
 
 class YT3ListParser : public QObject {
-
 public:
     YT3ListParser(const QByteArray &bytes);
-    const QList<Video*> &getVideos() { return videos; }
-    const QStringList &getSuggestions() { return suggestions; }
+    const QVector<Video *> &getVideos() { return videos; }
     const QString &getNextPageToken() { return nextPageToken; }
 
 private:
-    void parseItem(const QScriptValue &item);
+    void parseItem(const QJsonObject &item);
 
-    QList<Video*> videos;
-    QStringList suggestions;
+    QVector<Video *> videos;
     QString nextPageToken;
 };
 
index 8ac7a4249ad513824730801beb6a558d70ff13cf..4a34ce2d7f3be042068cda0f7d8e3374bbab6808 100644 (file)
@@ -19,112 +19,62 @@ along with Minitube.  If not, see <http://www.gnu.org/licenses/>.
 $END_LICENSE */
 
 #include "ytcategories.h"
-#include "networkaccess.h"
-#ifdef APP_YT3
+#include "http.h"
+#include "httputils.h"
 #include "datautils.h"
 #include "yt3.h"
 #include "ytregions.h"
-#include <QtScript>
-#endif
-#include "compatibility/qurlqueryhelper.h"
-
-namespace The {
-NetworkAccess* http();
-}
 
 YTCategories::YTCategories(QObject *parent) : QObject(parent) { }
 
 void YTCategories::loadCategories(QString language) {
-    if (language.isEmpty())
-        language = QLocale::system().uiLanguages().first();
+    if (language.isEmpty()) {
+        language = QLocale::system().uiLanguages().at(0);
+        int index = language.indexOf('-');
+        if (index > 0) language = language.mid(0, index);
+    }
     lastLanguage = language;
 
-#ifdef APP_YT3
     QUrl url = YT3::instance().method("videoCategories");
-    {
-        QUrlQueryHelper urlHelper(url);
-        urlHelper.addQueryItem("part", "snippet");
-        urlHelper.addQueryItem("hl", language);
-
-        QString regionCode = YTRegions::currentRegionId();
-        if (regionCode.isEmpty()) regionCode = "us";
-        urlHelper.addQueryItem("regionCode", regionCode);
-    }
-#else
-    QString url = "http://gdata.youtube.com/schemas/2007/categories.cat?hl=" + language;
-#endif
-
-
-    QObject *reply = The::http()->get(url);
-    connect(reply, SIGNAL(data(QByteArray)), SLOT(parseCategories(QByteArray)));
-    connect(reply, SIGNAL(error(QNetworkReply*)), SLOT(requestError(QNetworkReply*)));
-}
-
-#ifdef APP_YT3
-
-void YTCategories::parseCategories(QByteArray bytes) {
-    QList<YTCategory> categories;
 
-    QScriptEngine engine;
-    QScriptValue json = engine.evaluate("(" + QString::fromUtf8(bytes) + ")");
+    QUrlQuery q(url);
+    q.addQueryItem("part", "snippet");
+    q.addQueryItem("hl", language);
 
-    QScriptValue items = json.property("items");
+    QString regionCode = YTRegions::currentRegionId();
+    if (regionCode.isEmpty()) regionCode = "us";
+    q.addQueryItem("regionCode", regionCode);
+    url.setQuery(q);
 
-    if (items.isArray()) {
-        QScriptValueIterator it(items);
-        while (it.hasNext()) {
-            it.next();
-            QScriptValue item = it.value();
-            // For some reason the array has an additional element containing its size.
-            if (!item.isObject()) continue;
-
-            QScriptValue snippet = item.property("snippet");
-
-            bool isAssignable = snippet.property("assignable").toBool();
-            if (!isAssignable) continue;
-
-            YTCategory category;
-            category.term = item.property("id").toString();
-            category.label = snippet.property("title").toString();
-            categories << category;
-        }
-    }
-
-    emit categoriesLoaded(categories);
+    QObject *reply = HttpUtils::yt().get(url);
+    connect(reply, SIGNAL(data(QByteArray)), SLOT(parseCategories(QByteArray)));
+    connect(reply, SIGNAL(error(QString)), SLOT(requestError(QString)));
 }
 
-#else
-
-void YTCategories::parseCategories(QByteArray bytes) {
-    QList<YTCategory> categories;
-
-    QXmlStreamReader xml(bytes);
-    while (!xml.atEnd()) {
-        xml.readNext();
-        if (xml.isStartElement() && xml.name() == QLatin1String("category")) {
-            QString term = xml.attributes().value("term").toString();
-            QString label = xml.attributes().value("label").toString();
-            while(xml.readNextStartElement())
-                if (xml.name() == QLatin1String("assignable")) {
-                    YTCategory category;
-                    category.term = term;
-                    category.label = label;
-                    categories << category;
-                } else xml.skipCurrentElement();
-        }
-    }
-
-    if (xml.hasError()) {
-        emit error(xml.errorString());
-        return;
+void YTCategories::parseCategories(const QByteArray &bytes) {
+    QJsonDocument doc = QJsonDocument::fromJson(bytes);
+    QJsonObject obj = doc.object();
+    const QJsonArray items = obj["items"].toArray();
+
+    QVector<YTCategory> categories;
+    categories.reserve(items.size());
+    for (const QJsonValue &v : items) {
+        QJsonObject item = v.toObject();
+        QJsonObject snippet = item["snippet"].toObject();
+        bool isAssignable = snippet["assignable"].toBool();
+        if (!isAssignable) continue;
+
+        YTCategory category;
+        category.term = item["id"].toString();
+        category.label = snippet["title"].toString();
+        // if (category.label.startsWith(QLatin1String("News"))) continue;
+        categories << category;
     }
 
     emit categoriesLoaded(categories);
 }
 
-#endif
-
-void YTCategories::requestError(QNetworkReply *reply) {
+void YTCategories::requestError(const QString &message) {
     if (lastLanguage != "en") loadCategories("en");
-    else emit error(reply->errorString());
+    else emit error(message);
 }
index 5689158aeeb8a655e19f3f96407fc283faa1bc35..596717d94308ee0ebefdbcc436b81fac55958413 100644 (file)
@@ -37,12 +37,12 @@ public:
     void loadCategories(QString language = QString());
     
 signals:
-    void categoriesLoaded(const QList<YTCategory> &);
+    void categoriesLoaded(const QVector<YTCategory> &);
     void error(QString message);
 
 private slots:
-    void parseCategories(QByteArray bytes);
-    void requestError(QNetworkReply *reply);
+    void parseCategories(const QByteArray &bytes);
+    void requestError(const QString &message);
 
 private:
     QString lastLanguage;
index a80879af1736c586325db3bbf898cd6542aefafe..2c0a745659eff552baf884a7424cc88d02ce8913 100644 (file)
@@ -19,21 +19,14 @@ along with Minitube.  If not, see <http://www.gnu.org/licenses/>.
 $END_LICENSE */
 
 #include "ytchannel.h"
-#include "networkaccess.h"
+#include "http.h"
+#include "httputils.h"
 #include "database.h"
 #include <QtSql>
 
-#ifdef APP_YT3
 #include "yt3.h"
-#include <QtScript>
-#endif
-#include "compatibility/qurlqueryhelper.h"
-#include "compatibility/pathsservice.h"
-#include "iconutils.h"
 
-namespace The {
-NetworkAccess* http();
-}
+#include "iconutils.h"
 
 YTChannel::YTChannel(const QString &channelId, QObject *parent) : QObject(parent),
     id(0),
@@ -50,8 +43,8 @@ QHash<QString, YTChannel*> YTChannel::cache;
 YTChannel* YTChannel::forId(const QString &channelId) {
     if (channelId.isEmpty()) return 0;
 
-    if (cache.contains(channelId))
-        return cache.value(channelId);
+    auto i = cache.constFind(channelId);
+    if (i != cache.constEnd()) return i.value();
 
     QSqlDatabase db = Database::instance().getConnection();
     QSqlQuery query(db);
@@ -93,81 +86,29 @@ void YTChannel::maybeLoadfromAPI() {
 
     loading = true;
 
-#ifdef APP_YT3
-
     QUrl url = YT3::instance().method("channels");
-    {
-        QUrlQueryHelper urlHelper(url);
-        urlHelper.addQueryItem("id", channelId);
-        urlHelper.addQueryItem("part", "snippet");
-    }
+    QUrlQuery q(url);
+    q.addQueryItem("id", channelId);
+    q.addQueryItem("part", "snippet");
+    url.setQuery(q);
 
-#else
-
-    QUrl url("http://gdata.youtube.com/feeds/api/users/" + channelId);
-    {
-        QUrlQueryHelper urlHelper(url);
-        urlHelper.addQueryItem("v", "2");
-    }
-
-#endif
-
-    QObject *reply = The::http()->get(url);
+    QObject *reply = HttpUtils::yt().get(url);
     connect(reply, SIGNAL(data(QByteArray)), SLOT(parseResponse(QByteArray)));
-    connect(reply, SIGNAL(error(QNetworkReply*)), SLOT(requestError(QNetworkReply*)));
-}
-
-#ifdef APP_YT3
-
-void YTChannel::parseResponse(const QByteArray &bytes) {
-    QScriptEngine engine;
-    QScriptValue json = engine.evaluate("(" + QString::fromUtf8(bytes) + ")");
-    QScriptValue items = json.property("items");
-    if (items.isArray()) {
-        QScriptValueIterator it(items);
-        while (it.hasNext()) {
-            it.next();
-            QScriptValue item = it.value();
-            // For some reason the array has an additional element containing its size.
-            if (item.isObject()) {
-                QScriptValue snippet = item.property("snippet");
-                displayName = snippet.property("title").toString();
-                description = snippet.property("description").toString();
-                QScriptValue thumbnails = snippet.property("thumbnails");
-                thumbnailUrl = thumbnails.property("medium").property("url").toString();
-                qDebug() << displayName << description << thumbnailUrl;
-            }
-        }
-    }
-
-    emit infoLoaded();
-    storeInfo();
-    loading = false;
+    connect(reply, SIGNAL(error(QString)), SLOT(requestError(QString)));
 }
 
-#else
-
 void YTChannel::parseResponse(const 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();
+    QJsonDocument doc = QJsonDocument::fromJson(bytes);
+    QJsonObject obj = doc.object();
+    const QJsonArray items = obj["items"].toArray();
+    for (const QJsonValue &v : items) {
+        QJsonObject item = v.toObject();
+        QJsonObject snippet = item["snippet"].toObject();
+        displayName = snippet["title"].toString();
+        description = snippet["description"].toString();
+        QJsonObject thumbnails = snippet["thumbnails"].toObject();
+        thumbnailUrl = thumbnails["medium"].toObject()["url"].toString();
+        qDebug() << displayName << description << thumbnailUrl;
     }
 
     emit infoLoaded();
@@ -175,21 +116,19 @@ void YTChannel::parseResponse(const QByteArray &bytes) {
     loading = false;
 }
 
-#endif
-
 void YTChannel::loadThumbnail() {
     if (loadingThumbnail) return;
     if (thumbnailUrl.isEmpty()) return;
     loadingThumbnail = true;
 
     QUrl url(thumbnailUrl);
-    QObject *reply = The::http()->get(url);
+    QObject *reply = HttpUtils::yt().get(url);
     connect(reply, SIGNAL(data(QByteArray)), SLOT(storeThumbnail(QByteArray)));
-    connect(reply, SIGNAL(error(QNetworkReply*)), SLOT(requestError(QNetworkReply*)));
+    connect(reply, SIGNAL(error(QString)), SLOT(requestError(QString)));
 }
 
 const QString & YTChannel::getThumbnailDir() {
-    static const QString thumbDir = Paths::getCacheLocation() + "/channels/";
+    static const QString thumbDir = QStandardPaths::writableLocation(QStandardPaths::CacheLocation) + "/channels/";
     return thumbDir;
 }
 
@@ -237,9 +176,9 @@ void YTChannel::storeThumbnail(const QByteArray &bytes) {
     loadingThumbnail = false;
 }
 
-void YTChannel::requestError(QNetworkReply *reply) {
-    emit error(reply->errorString());
-    qWarning() << reply->errorString();
+void YTChannel::requestError(const QString &message) {
+    emit error(message);
+    qWarning() << message;
     loading = false;
     loadingThumbnail = false;
 }
index fea95aa992c20e702672f3ac9244ae74edf87a02..0687257b2839293ac5ec7550d2cba85dc464a4c8 100644 (file)
@@ -21,10 +21,7 @@ $END_LICENSE */
 #ifndef YTCHANNEL_H
 #define YTCHANNEL_H
 
-#include <QtGui>
-#if QT_VERSION >= 0x050000
 #include <QtWidgets>
-#endif
 #include <QtNetwork>
 
 class YTChannel : public QObject {
@@ -64,7 +61,7 @@ public:
 
     QString latestVideoId();
 
-    static QList<YTChannel*> getCachedChannels() { return cache.values(); }
+    static const QHash<QString, YTChannel*> &getCachedChannels() { return cache; }
 
 public slots:
     void updateWatched();
@@ -78,7 +75,7 @@ signals:
 
 private slots:
     void parseResponse(const QByteArray &bytes);
-    void requestError(QNetworkReply *reply);
+    void requestError(const QString &message);
     void storeThumbnail(const QByteArray &bytes);
 
 private:
diff --git a/src/ytfeedreader.cpp b/src/ytfeedreader.cpp
deleted file mode 100644 (file)
index c063ce2..0000000
+++ /dev/null
@@ -1,131 +0,0 @@
-/* $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"
-
-YTFeedReader::YTFeedReader(const QByteArray &bytes) : QXmlStreamReader(bytes) {
-    while (!atEnd()) {
-        readNext();
-        if (isStartElement() && name() == QLatin1String("entry")) {
-            readEntry();
-        } else if (name() == QLatin1String("link")
-                   && attributes().value("rel").toString()
-                   == QLatin1String("http://schemas.google.com/g/2006#spellcorrection")) {
-            suggestions << attributes().value("title").toString();
-        }
-    }
-}
-
-void YTFeedReader::readEntry() {
-    Video* video = new Video();
-
-    while (!atEnd()) {
-        readNext();
-
-        /*
-        qDebug() << name();
-        QXmlStreamAttribute attribute;
-        foreach (attribute, attributes())
-            qDebug() << attribute.name() << ":" << attribute.value();
-        */
-
-        if (isEndElement() && name() == QLatin1String("entry")) break;
-        if (isStartElement()) {
-
-            if (name() == QLatin1String("link")
-                    && attributes().value("rel").toString() == QLatin1String("alternate")
-                    && attributes().value("type").toString() == QLatin1String("text/html")
-                    ) {
-                QString webpage = attributes().value("href").toString();
-                webpage.remove("&feature=youtube_gdata");
-                video->setWebpage(webpage);
-            } else if (name() == QLatin1String("author")) {
-                while(readNextStartElement())
-                    if (name() == QLatin1String("name")) {
-                        QString author = readElementText();
-                        video->setChannelTitle(author);
-                    } else if (name() == QLatin1String("userId")) {
-                        QString userId = readElementText();
-                        video->setChannelId(userId);
-                    } else skipCurrentElement();
-            } else if (name() == QLatin1String("published")) {
-                video->setPublished(QDateTime::fromString(readElementText(), Qt::ISODate));
-            } else if (namespaceUri() == QLatin1String("http://gdata.youtube.com/schemas/2007")
-                       && name() == QLatin1String("statistics")) {
-                QString viewCount = attributes().value("viewCount").toString();
-                video->setViewCount(viewCount.toInt());
-            }
-            else if (namespaceUri() == QLatin1String("http://search.yahoo.com/mrss/")
-                     && name() == QLatin1String("group")) {
-
-                // read media group
-                while (!atEnd()) {
-                    readNext();
-                    if (isEndElement() && name() == QLatin1String("group")) break;
-                    if (isStartElement()) {
-                        if (name() == QLatin1String("thumbnail")) {
-                            // qDebug() << "Thumb: " << attributes().value("url").toString();
-                            QStringRef name = attributes().value("yt:name");
-                            if (name == QLatin1String("mqdefault"))
-                                video->setThumbnailUrl(
-                                            attributes().value("url").toString());
-                            else if (name == QLatin1String("hqdefault"))
-                                video->setMediumThumbnailUrl(
-                                            attributes().value("url").toString());
-                        }
-                        else if (name() == QLatin1String("title")) {
-                            QString title = readElementText();
-                            // qDebug() << "Title: " << title;
-                            video->setTitle(title);
-                        }
-                        else if (name() == QLatin1String("description")) {
-                            QString desc = readElementText();
-                            // qDebug() << "Description: " << desc;
-                            video->setDescription(desc);
-                        }
-                        else if (name() == QLatin1String("duration")) {
-                            QString duration = attributes().value("seconds").toString();
-                            // qDebug() << "Duration: " << duration;
-                            video->setDuration(duration.toInt());
-                        }
-                        else if (name() == QLatin1String("license")) {
-                            QString license = readElementText();
-                            // qDebug() << "License: " << license;
-                            if (license == QLatin1String("cc"))
-                                video->setLicense(Video::LicenseCC);
-                        }
-                    }
-                }
-            }
-        }
-    }
-
-    videos.append(video);
-
-}
-
-const QList<Video *> &YTFeedReader::getVideos() {
-    return videos;
-}
-
-const QStringList & YTFeedReader::getSuggestions() const {
-    return suggestions;
-}
diff --git a/src/ytfeedreader.h b/src/ytfeedreader.h
deleted file mode 100644 (file)
index e7784a1..0000000
+++ /dev/null
@@ -1,41 +0,0 @@
-/* $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
-
-#include <QtCore>
-
-class Video;
-
-class YTFeedReader : public QXmlStreamReader {
-
-public:
-    YTFeedReader(const QByteArray &bytes);
-    const QList<Video*> & getVideos();
-    const QStringList & getSuggestions() const;
-
-private:
-    void readEntry();
-    QList<Video*> videos;
-    QStringList suggestions;
-};
-
-#endif // YTFEEDREADER_H
index ed5dc46ccbc3cdaac7f7d401a11a287f859ec4e9..e24147b3f0860a6c8dbb4c72e24aa2abb609eb26 100644 (file)
@@ -20,109 +20,61 @@ $END_LICENSE */
 
 #include "ytregions.h"
 
-YTRegions::YTRegions() : QObject() { }
-
-const QList<YTRegion> & YTRegions::list() {
-    static QList<YTRegion> list;
-    if (list.isEmpty()) {
-        list << r(tr("Algeria"), "DZ")
-             << r(tr("Argentina"), "AR")
-             << r(tr("Australia"), "AU")
-             << r(tr("Belgium"), "BE")
-             << r(tr("Brazil"), "BR")
-             << r(tr("Canada"), "CA")
-             << r(tr("Chile"), "CL")
-             << r(tr("Colombia"), "CO")
-             << r(tr("Czech Republic"), "CZ")
-             << r(tr("Egypt"), "EG")
-             << r(tr("France"), "FR")
-             << r(tr("Germany"), "DE")
-             << r(tr("Ghana"), "GH")
-             << r(tr("Greece"), "GR")
-             << r(tr("Hong Kong"), "HK")
-             << r(tr("Hungary"), "HU")
-             << r(tr("India"), "IN")
-             << r(tr("Indonesia"), "ID")
-             << r(tr("Ireland"), "IE")
-             << r(tr("Israel"), "IL")
-             << r(tr("Italy"), "IT")
-             << r(tr("Japan"), "JP")
-             << r(tr("Jordan"), "JO")
-             << r(tr("Kenya"), "KE")
-             << r(tr("Malaysia"), "MY")
-             << r(tr("Mexico"), "MX")
-             << r(tr("Morocco"), "MA")
-             << r(tr("Netherlands"), "NL")
-             << r(tr("New Zealand"), "NZ")
-             << r(tr("Nigeria"), "NG")
-             << r(tr("Peru"), "PE")
-             << r(tr("Philippines"), "PH")
-             << r(tr("Poland"), "PL")
-             << r(tr("Russia"), "RU")
-             << r(tr("Saudi Arabia"), "SA")
-             << r(tr("Singapore"), "SG")
-             << r(tr("South Africa"), "ZA")
-             << r(tr("South Korea"), "KR")
-             << r(tr("Spain"), "ES")
-             << r(tr("Sweden"), "SE")
-             << r(tr("Taiwan"), "TW")
-             << r(tr("Tunisia"), "TN")
-             << r(tr("Turkey"), "TR")
-             << r(tr("Uganda"), "UG")
-             << r(tr("United Arab Emirates"), "AE")
-             << r(tr("United Kingdom"), "GB")
-             << r(tr("Yemen"), "YE");
-/*
-        list << r(QLocale::Algeria, "DZ")
-             << r(QLocale::Argentina, "AR")
-             << r(QLocale::Australia, "AU")
-             << r(QLocale::Belgium, "BE")
-             << r(QLocale::Brazil, "BR")
-             << r(QLocale::Canada, "CA")
-             << r(QLocale::Chile, "CL")
-             << r(QLocale::Colombia, "CO")
-             << r(QLocale::CzechRepublic, "CZ")
-             << r(QLocale::Egypt, "EG")
-             << r(QLocale::France, "FR")
-             << r(QLocale::Germany, "DE")
-             << r(QLocale::Ghana, "GH")
-             << r(QLocale::Greece, "GR")
-             << r(QLocale::HongKong, "HK")
-             << r(QLocale::Hungary, "HU")
-             << r(QLocale::India, "IN")
-             << r(QLocale::Indonesia, "ID")
-             << r(QLocale::Ireland, "IE")
-             << r(QLocale::Israel, "IL")
-             << r(QLocale::Italy, "IT")
-             << r(QLocale::Japan, "JP")
-             << r(QLocale::Jordan, "JO")
-             << r(QLocale::Kenya, "KE")
-             << r(QLocale::Malaysia, "MY")
-             << r(QLocale::Mexico, "MX")
-             << r(QLocale::Morocco, "MA")
-             << r(QLocale::Netherlands, "NL")
-             << r(QLocale::NewZealand, "NZ")
-             << r(QLocale::Nigeria, "NG")
-             << r(QLocale::Peru, "PE")
-             << r(QLocale::Philippines, "PH")
-             << r(QLocale::Poland, "PL")
-             << r(QLocale::RussianFederation, "RU")
-             << r(QLocale::SaudiArabia, "SA")
-             << r(QLocale::Singapore, "SG")
-             << r(QLocale::SouthAfrica, "ZA")
-             << r(QLocale::RepublicOfKorea, "KR")
-             << r(QLocale::Spain, "ES")
-             << r(QLocale::Sweden, "SE")
-             << r(QLocale::Taiwan, "TW")
-             << r(QLocale::Tunisia, "TN")
-             << r(QLocale::Turkey, "TR")
-             << r(QLocale::Uganda, "UG")
-             << r(QLocale::UnitedArabEmirates, "AE")
-             << r(QLocale::UnitedKingdom, "GB")
-             << r(QLocale::Yemen, "YE");
-             */
-        qSort(list);
-    }
+YTRegions::YTRegions() : QObject() {}
+
+const QVector<YTRegion> &YTRegions::list() {
+    static const QVector<YTRegion> list = [] {
+        QVector<YTRegion> l = {r(tr("Algeria"), "DZ"),
+                               r(tr("Argentina"), "AR"),
+                               r(tr("Australia"), "AU"),
+                               r(tr("Belgium"), "BE"),
+                               r(tr("Brazil"), "BR"),
+                               r(tr("Canada"), "CA"),
+                               r(tr("Chile"), "CL"),
+                               r(tr("Colombia"), "CO"),
+                               r(tr("Czech Republic"), "CZ"),
+                               r(tr("Egypt"), "EG"),
+                               r(tr("France"), "FR"),
+                               r(tr("Germany"), "DE"),
+                               r(tr("Ghana"), "GH"),
+                               r(tr("Greece"), "GR"),
+                               r(tr("Hong Kong"), "HK"),
+                               r(tr("Hungary"), "HU"),
+                               r(tr("India"), "IN"),
+                               r(tr("Indonesia"), "ID"),
+                               r(tr("Ireland"), "IE"),
+                               r(tr("Israel"), "IL"),
+                               r(tr("Italy"), "IT"),
+                               r(tr("Japan"), "JP"),
+                               r(tr("Jordan"), "JO"),
+                               r(tr("Kenya"), "KE"),
+                               r(tr("Malaysia"), "MY"),
+                               r(tr("Mexico"), "MX"),
+                               r(tr("Morocco"), "MA"),
+                               r(tr("Netherlands"), "NL"),
+                               r(tr("New Zealand"), "NZ"),
+                               r(tr("Nigeria"), "NG"),
+                               r(tr("Peru"), "PE"),
+                               r(tr("Philippines"), "PH"),
+                               r(tr("Poland"), "PL"),
+                               r(tr("Russia"), "RU"),
+                               r(tr("Saudi Arabia"), "SA"),
+                               r(tr("Singapore"), "SG"),
+                               r(tr("South Africa"), "ZA"),
+                               r(tr("South Korea"), "KR"),
+                               r(tr("Spain"), "ES"),
+                               r(tr("Sweden"), "SE"),
+                               r(tr("Taiwan"), "TW"),
+                               r(tr("Tunisia"), "TN"),
+                               r(tr("Turkey"), "TR"),
+                               r(tr("Uganda"), "UG"),
+                               r(tr("United Arab Emirates"), "AE"),
+                               r(tr("United Kingdom"), "GB"),
+                               r(tr("Yemen"), "YE")};
+        std::sort(l.begin(), l.end());
+        return l;
+    }();
+
     return list;
 }
 
@@ -131,21 +83,19 @@ YTRegion YTRegions::r(const QString &name, const QString &id) {
     return r;
 }
 
-const YTRegion & YTRegions::localRegion() {
-    static YTRegion region;
-    if (region.name.isEmpty()) {
+const YTRegion &YTRegions::localRegion() {
+    static const YTRegion region = [] {
         QString country = QLocale::system().name().right(2);
-        foreach (YTRegion r, list())
-            if (r.id == country) {
-                region = r;
-                break;
-            } // else qDebug() << r.id << country;
-    }
+        for (const YTRegion &r : list()) {
+            if (r.id == country) return r;
+        }
+        return YTRegion();
+    }();
     return region;
 }
 
-const YTRegion & YTRegions::worldwideRegion() {
-    static YTRegion region = {"", tr("Worldwide")};
+const YTRegion &YTRegions::worldwideRegion() {
+    static const YTRegion region = {"", tr("Worldwide")};
     return region;
 }
 
@@ -159,20 +109,16 @@ QString YTRegions::currentRegionId() {
     return settings.value("regionId").toString();
 }
 
-YTRegion YTRegions::currentRegion() {
+const YTRegion &YTRegions::currentRegion() {
     return regionById(currentRegionId());
 }
 
-YTRegion YTRegions::regionById(const QString &id) {
+const YTRegion &YTRegions::regionById(const QString &id) {
     if (id.isEmpty()) return worldwideRegion();
-    YTRegion region;
-    foreach (YTRegion r, list())
-        if (r.id == id) {
-            region = r;
-            break;
-        }
-    if (region.name.isEmpty()) return worldwideRegion();
-    return region;
+    for (const YTRegion &r : list()) {
+        if (r.id == id) return r;
+    }
+    return worldwideRegion();
 }
 
 QIcon YTRegions::iconForRegionId(const QString &regionId) {
index c0d7e4eadfb952ff97a709be1ae8823d655b5ff6..6dfe4b09fd8e955fa6bcd60c155f241e588fb17b 100644 (file)
@@ -21,10 +21,7 @@ $END_LICENSE */
 #ifndef YTREGIONS_H
 #define YTREGIONS_H
 
-#include <QtGui>
-#if QT_VERSION >= 0x050000
 #include <QtWidgets>
-#endif
 
 struct YTRegion {
     QString id;
@@ -39,17 +36,17 @@ class YTRegions : public QObject {
     Q_OBJECT
 
 public:
-    static const QList<YTRegion> & list();
+    static const QVector<YTRegion> & list();
     static const YTRegion & localRegion();
     static const YTRegion & worldwideRegion();
     static void setRegion(const QString &regionId);
     static QString currentRegionId();
-    static YTRegion currentRegion();
+    static const YTRegion &currentRegion();
     static QIcon iconForRegionId(const QString &regionId);
 
 private:
     static YTRegion r(const QString &name, const QString &id);
-    static YTRegion regionById(const QString &id);
+    static const YTRegion &regionById(const QString &id);
     YTRegions();
 
 };
index 7274d89d44c193874ecf65c701842f3d88c7b03a..ea07412b50fc1d39a5ac6fe22f824dd27fd0c3db 100644 (file)
@@ -20,143 +20,145 @@ $END_LICENSE */
 
 #include "ytsearch.h"
 #include "constants.h"
-#include "networkaccess.h"
+#include "http.h"
+#include "httputils.h"
 #include "searchparams.h"
 #include "video.h"
 #include "ytchannel.h"
 
-#ifdef APP_YT3
+#include "datautils.h"
+#include "mainwindow.h"
 #include "yt3.h"
 #include "yt3listparser.h"
-#include "datautils.h"
-#else
-#include "ytfeedreader.h"
-#endif
-#include "compatibility/qurlqueryhelper.h"
-
-namespace The {
-NetworkAccess* http();
-QHash<QString, QAction*>* globalActions();
-}
 
 namespace {
 
-QDateTime RFC3339fromString(const QString &s) {
-    return QDateTime::fromString(s, "yyyy-MM-ddThh:mm:ssZ");
-}
-
 QString RFC3339toString(const QDateTime &dt) {
-    return dt.toString("yyyy-MM-ddThh:mm:ssZ");
+    return dt.toString(QStringLiteral("yyyy-MM-ddThh:mm:ssZ"));
 }
-
 }
 
-YTSearch::YTSearch(SearchParams *searchParams, QObject *parent) :
-    PaginatedVideoSource(parent),
-    searchParams(searchParams) {
+YTSearch::YTSearch(SearchParams *searchParams, QObject *parent)
+    : PaginatedVideoSource(parent), searchParams(searchParams) {
     searchParams->setParent(this);
 }
 
-#ifdef APP_YT3
-
 void YTSearch::loadVideos(int max, int startIndex) {
     aborted = false;
 
     QUrl url = YT3::instance().method("search");
-    {
-        QUrlQueryHelper urlHelper(url);
-        urlHelper.addQueryItem("part", "snippet");
-        urlHelper.addQueryItem("type", "video");
-        urlHelper.addQueryItem("maxResults", QString::number(max));
-
-        if (startIndex > 1) {
-            if (maybeReloadToken(max, startIndex)) return;
-            urlHelper.addQueryItem("pageToken", nextPageToken);
-        }
 
-        // TODO interesting params
-        // urlHelper.addQueryItem("videoSyndicated", "true");
-        // urlHelper.addQueryItem("regionCode", "IT");
-        // urlHelper.addQueryItem("videoType", "movie");
+    QUrlQuery q(url);
+    q.addQueryItem("part", "snippet");
+    q.addQueryItem("type", "video");
+    q.addQueryItem("maxResults", QString::number(max));
 
-        if (!searchParams->keywords().isEmpty()) {
-            if (searchParams->keywords().startsWith("http://") ||
-                    searchParams->keywords().startsWith("https://")) {
-                urlHelper.addQueryItem("q", YTSearch::videoIdFromUrl(searchParams->keywords()));
-            } else urlHelper.addQueryItem("q", searchParams->keywords());
-        }
+    if (startIndex > 1) {
+        if (maybeReloadToken(max, startIndex)) return;
+        q.addQueryItem("pageToken", nextPageToken);
+    }
 
-        if (!searchParams->channelId().isEmpty())
-            urlHelper.addQueryItem("channelId", searchParams->channelId());
+    // TODO interesting params
+    // urlHelper.addQueryItem("videoSyndicated", "true");
+    // urlHelper.addQueryItem("regionCode", "IT");
+    // urlHelper.addQueryItem("videoType", "movie");
+
+    if (!searchParams->keywords().isEmpty()) {
+        if (searchParams->keywords().startsWith("http://") ||
+            searchParams->keywords().startsWith("https://")) {
+            q.addQueryItem("q", YTSearch::videoIdFromUrl(searchParams->keywords()));
+        } else
+            q.addQueryItem("q", searchParams->keywords());
+    }
 
-        switch (searchParams->sortBy()) {
-        case SearchParams::SortByNewest:
-            urlHelper.addQueryItem("order", "date");
-            break;
-        case SearchParams::SortByViewCount:
-            urlHelper.addQueryItem("order", "viewCount");
-            break;
-        case SearchParams::SortByRating:
-            urlHelper.addQueryItem("order", "rating");
-            break;
-        }
+    if (!searchParams->channelId().isEmpty())
+        q.addQueryItem("channelId", searchParams->channelId());
+
+    switch (searchParams->sortBy()) {
+    case SearchParams::SortByNewest:
+        q.addQueryItem("order", "date");
+        break;
+    case SearchParams::SortByViewCount:
+        q.addQueryItem("order", "viewCount");
+        break;
+    case SearchParams::SortByRating:
+        q.addQueryItem("order", "rating");
+        break;
+    }
 
-        switch (searchParams->duration()) {
-        case SearchParams::DurationShort:
-            urlHelper.addQueryItem("videoDuration", "short");
-            break;
-        case SearchParams::DurationMedium:
-            urlHelper.addQueryItem("videoDuration", "medium");
-            break;
-        case SearchParams::DurationLong:
-            urlHelper.addQueryItem("videoDuration", "long");
-            break;
-        }
+    switch (searchParams->duration()) {
+    case SearchParams::DurationShort:
+        q.addQueryItem("videoDuration", "short");
+        break;
+    case SearchParams::DurationMedium:
+        q.addQueryItem("videoDuration", "medium");
+        break;
+    case SearchParams::DurationLong:
+        q.addQueryItem("videoDuration", "long");
+        break;
+    }
 
-        switch (searchParams->time()) {
-        case SearchParams::TimeToday:
-            urlHelper.addQueryItem("publishedAfter", RFC3339toString(QDateTime::currentDateTimeUtc().addSecs(-60*60*24)));
-            break;
-        case SearchParams::TimeWeek:
-            urlHelper.addQueryItem("publishedAfter", RFC3339toString(QDateTime::currentDateTimeUtc().addSecs(-60*60*24*7)));
-            break;
-        case SearchParams::TimeMonth:
-            urlHelper.addQueryItem("publishedAfter", RFC3339toString(QDateTime::currentDateTimeUtc().addSecs(-60*60*24*30)));
-            break;
-        }
+    switch (searchParams->time()) {
+    case SearchParams::TimeToday:
+        q.addQueryItem("publishedAfter",
+                       RFC3339toString(QDateTime::currentDateTimeUtc().addSecs(-60 * 60 * 24)));
+        break;
+    case SearchParams::TimeWeek:
+        q.addQueryItem("publishedAfter",
+                       RFC3339toString(QDateTime::currentDateTimeUtc().addSecs(-60 * 60 * 24 * 7)));
+        break;
+    case SearchParams::TimeMonth:
+        q.addQueryItem("publishedAfter", RFC3339toString(QDateTime::currentDateTimeUtc().addSecs(
+                                                 -60 * 60 * 24 * 30)));
+        break;
+    }
 
-        if (searchParams->publishedAfter()) {
-            urlHelper.addQueryItem("publishedAfter", RFC3339toString(QDateTime::fromTime_t(searchParams->publishedAfter()).toUTC()));
-        }
+    if (searchParams->publishedAfter()) {
+        q.addQueryItem(
+                "publishedAfter",
+                RFC3339toString(QDateTime::fromTime_t(searchParams->publishedAfter()).toUTC()));
+    }
 
-        switch (searchParams->quality()) {
-        case SearchParams::QualityHD:
-            urlHelper.addQueryItem("videoDefinition", "high");
-            break;
-        }
+    switch (searchParams->quality()) {
+    case SearchParams::QualityHD:
+        q.addQueryItem("videoDefinition", "high");
+        break;
+    }
+
+    switch (searchParams->safeSearch()) {
+    case SearchParams::None:
+        q.addQueryItem("safeSearch", "none");
+        break;
+    case SearchParams::Strict:
+        q.addQueryItem("safeSearch", "strict");
+        break;
     }
 
+    url.setQuery(q);
+
     lastUrl = url;
 
     // qWarning() << "YT3 search" << url.toString();
-    QObject *reply = The::http()->get(url);
+    QObject *reply = HttpUtils::yt().get(url);
     connect(reply, SIGNAL(data(QByteArray)), SLOT(parseResults(QByteArray)));
-    connect(reply, SIGNAL(error(QNetworkReply*)), SLOT(requestError(QNetworkReply*)));
+    connect(reply, SIGNAL(error(QString)), SLOT(requestError(QString)));
 }
 
-void YTSearch::parseResults(QByteArray data) {
+void YTSearch::parseResults(const QByteArray &data) {
     if (aborted) return;
 
     YT3ListParser parser(data);
-    QList<Video*> videos = parser.getVideos();
-    suggestions = parser.getSuggestions();
+    const QVector<Video *> &videos = parser.getVideos();
 
     bool tryingWithNewToken = setPageToken(parser.getNextPageToken());
     if (tryingWithNewToken) return;
 
     if (name.isEmpty() && !searchParams->channelId().isEmpty()) {
         if (!videos.isEmpty()) {
-            name = videos.first()->channelTitle();
+            name = videos.at(0)->getChannelTitle();
+            if (!searchParams->keywords().isEmpty()) {
+                name += QLatin1String(": ") + searchParams->keywords();
+            }
         }
         emit nameChanged(name);
     }
@@ -168,117 +170,20 @@ void YTSearch::parseResults(QByteArray data) {
     loadVideoDetails(videos);
 }
 
-#else
-
-void YTSearch::loadVideos(int max, int startIndex) {
-    aborted = false;
-
-    QUrl url("http://gdata.youtube.com/feeds/api/videos/");
-    {
-        QUrlQueryHelper urlHelper(url);
-
-        urlHelper.addQueryItem("v", "2");
-        urlHelper.addQueryItem("max-results", QString::number(max));
-        urlHelper.addQueryItem("start-index", QString::number(startIndex));
-
-        if (!searchParams->keywords().isEmpty()) {
-            if (searchParams->keywords().startsWith("http://") ||
-                    searchParams->keywords().startsWith("https://")) {
-                urlHelper.addQueryItem("q", YTSearch::videoIdFromUrl(searchParams->keywords()));
-            } else urlHelper.addQueryItem("q", searchParams->keywords());
-        }
-
-        if (!searchParams->channelId().isEmpty())
-            urlHelper.addQueryItem("author", searchParams->channelId());
-
-        switch (searchParams->sortBy()) {
-        case SearchParams::SortByNewest:
-            urlHelper.addQueryItem("orderby", "published");
-            break;
-        case SearchParams::SortByViewCount:
-            urlHelper.addQueryItem("orderby", "viewCount");
-            break;
-        case SearchParams::SortByRating:
-            urlHelper.addQueryItem("orderby", "rating");
-            break;
-        }
-
-        switch (searchParams->duration()) {
-        case SearchParams::DurationShort:
-            urlHelper.addQueryItem("duration", "short");
-            break;
-        case SearchParams::DurationMedium:
-            urlHelper.addQueryItem("duration", "medium");
-            break;
-        case SearchParams::DurationLong:
-            urlHelper.addQueryItem("duration", "long");
-            break;
-        }
-
-        switch (searchParams->time()) {
-        case SearchParams::TimeToday:
-            urlHelper.addQueryItem("time", "today");
-            break;
-        case SearchParams::TimeWeek:
-            urlHelper.addQueryItem("time", "this_week");
-            break;
-        case SearchParams::TimeMonth:
-            urlHelper.addQueryItem("time", "this_month");
-            break;
-        }
-
-        switch (searchParams->quality()) {
-        case SearchParams::QualityHD:
-            urlHelper.addQueryItem("hd", "true");
-            break;
-        }
-
-    }
-    QObject *reply = The::http()->get(url);
-    connect(reply, SIGNAL(data(QByteArray)), SLOT(parseResults(QByteArray)));
-    connect(reply, SIGNAL(error(QNetworkReply*)), SLOT(requestError(QNetworkReply*)));
-}
-
-void YTSearch::parseResults(QByteArray data) {
-    if (aborted) return;
-
-    YTFeedReader reader(data);
-    QList<Video*> videos = reader.getVideos();
-    suggestions = reader.getSuggestions();
-
-    if (name.isEmpty() && !searchParams->channelId().isEmpty()) {
-        if (videos.isEmpty()) name = searchParams->channelId();
-        else {
-            name = videos.first()->channelTitle();
-            // also grab the userId
-            userId = videos.first()->channelId();
-        }
-        emit nameChanged(name);
-    }
-
-    emit gotVideos(videos);
-    emit finished(videos.size());
-}
-
-#endif
-
 void YTSearch::abort() {
     aborted = true;
 }
 
-const QStringList & YTSearch::getSuggestions() {
-    return suggestions;
-}
-
 QString YTSearch::getName() {
     if (!name.isEmpty()) return name;
     if (!searchParams->keywords().isEmpty()) return searchParams->keywords();
     return QString();
 }
 
-void YTSearch::requestError(QNetworkReply *reply) {
-    qWarning() << reply->errorString();
-    emit error(reply->errorString());
+void YTSearch::requestError(const QString &message) {
+    QString msg = message;
+    msg.remove(QRegularExpression("key=[^ &]+"));
+    emit error(msg);
 }
 
 QString YTSearch::videoIdFromUrl(const QString &url) {
@@ -289,10 +194,58 @@ QString YTSearch::videoIdFromUrl(const QString &url) {
     return QString();
 }
 
-QList<QAction*> YTSearch::getActions() {
-    QList<QAction*> channelActions;
-    if (searchParams->channelId().isEmpty())
-        return channelActions;
-    channelActions << The::globalActions()->value("subscribe-channel");
+QTime YTSearch::videoTimestampFromUrl(const QString &url) {
+    QTime res(0, 0);
+
+    // TODO: should we make this accept h/m/s in any order?
+    //       timestamps returned by youtube always seem to be
+    //       ordered.
+    QRegExp re = QRegExp(".*t=([0-9]*h)?([0-9]*m)?([0-9]*s)?.*");
+
+    if (!re.exactMatch(url)) {
+        return res;
+    }
+
+    const auto captured = re.capturedTexts();
+    for (const QString &str : captured) {
+        if (str.length() <= 1) continue;
+
+        QString truncated = str;
+        truncated.chop(1);
+
+        bool ok = false;
+        int value = truncated.toInt(&ok);
+        if (!ok) continue;
+        char unit = str.at(str.length() - 1).toLatin1();
+
+        switch (unit) {
+        case 'h':
+            value *= 60 * 60; // hours -> seconds
+            break;
+
+        case 'm':
+            value *= 60; // minutes -> seconds
+            break;
+
+        case 's':
+            break;
+
+        default:
+            continue;
+        }
+
+        res = res.addSecs(value);
+    }
+
+    return res;
+}
+
+const QList<QAction *> &YTSearch::getActions() {
+    static const QList<QAction *> channelActions = {
+            MainWindow::instance()->getAction("subscribeChannel")};
+    if (searchParams->channelId().isEmpty()) {
+        static const QList<QAction *> noActions;
+        return noActions;
+    }
     return channelActions;
 }
index dae16384a200ffb79411444029645479cd139b0d..f513859ba701ebad3216e67c27c545aab6f0c34b 100644 (file)
@@ -21,38 +21,34 @@ $END_LICENSE */
 #ifndef YTSEARCH_H
 #define YTSEARCH_H
 
-#include <QtNetwork>
 #include "paginatedvideosource.h"
+#include <QtNetwork>
 
 class SearchParams;
 class Video;
 
 class YTSearch : public PaginatedVideoSource {
-
     Q_OBJECT
 
 public:
     YTSearch(SearchParams *params, QObject *parent = 0);
     void loadVideos(int max, int startIndex);
     void abort();
-    const QStringList & getSuggestions();
     QString getName();
-    QList<QAction*> getActions();
-    SearchParamsgetSearchParams() const { return searchParams; }
+    const QList<QAction *> &getActions();
+    SearchParams *getSearchParams() const { return searchParams; }
     static QString videoIdFromUrl(const QString &url);
+    static QTime videoTimestampFromUrl(const QString &url);
 
-    bool operator==(const YTSearch &other) const {
-        return searchParams == other.getSearchParams();
-    }
+    bool operator==(const YTSearch &other) const { return searchParams == other.getSearchParams(); }
 
 private slots:
-    void parseResults(QByteArray data);
-    void requestError(QNetworkReply *reply);
+    void parseResults(const QByteArray &data);
+    void requestError(const QString &message);
 
 private:
     SearchParams *searchParams;
     bool aborted;
-    QStringList suggestions;
     QString name;
 };
 
index cf734b73349a7b04fc96aedf1141f3fe42d42193..e7bf33e2168f9d6d09b426e873a5a1a50863d9fe 100644 (file)
@@ -19,28 +19,18 @@ along with Minitube.  If not, see <http://www.gnu.org/licenses/>.
 $END_LICENSE */
 
 #include "ytsinglevideosource.h"
-#include "networkaccess.h"
+#include "http.h"
+#include "httputils.h"
 #include "video.h"
-#include "compatibility/qurlqueryhelper.h"
 
-#ifdef APP_YT3
 #include "yt3.h"
 #include "yt3listparser.h"
-#else
-#include "ytfeedreader.h"
-#endif
-
-namespace The {
-NetworkAccess* http();
-}
 
 YTSingleVideoSource::YTSingleVideoSource(QObject *parent) : PaginatedVideoSource(parent),
     video(0),
     startIndex(0),
     max(0) { }
 
-#ifdef APP_YT3
-
 void YTSingleVideoSource::loadVideos(int max, int startIndex) {
     aborted = false;
     this->startIndex = startIndex;
@@ -51,10 +41,10 @@ void YTSingleVideoSource::loadVideos(int max, int startIndex) {
     if (startIndex == 1) {
 
         if (video) {
-            QList<Video*> videos;
+            QVector<Video*> videos;
             videos << video->clone();
             if (name.isEmpty()) {
-                name = videos.first()->title();
+                name = videos.at(0)->getTitle();
                 qDebug() << "Emitting name changed" << name;
                 emit nameChanged(name);
             }
@@ -64,38 +54,37 @@ void YTSingleVideoSource::loadVideos(int max, int startIndex) {
         }
 
         url = YT3::instance().method("videos");
-        {
-            QUrlQueryHelper urlHelper(url);
-            urlHelper.addQueryItem("part", "snippet");
-            urlHelper.addQueryItem("id", videoId);
-        }
+        QUrlQuery q(url);
+        q.addQueryItem("part", "snippet");
+        q.addQueryItem("id", videoId);
+        url.setQuery(q);
+
     } else {
         url = YT3::instance().method("search");
-        {
-            QUrlQueryHelper urlHelper(url);
-            urlHelper.addQueryItem("part", "snippet");
-            urlHelper.addQueryItem("type", "video");
-            urlHelper.addQueryItem("relatedToVideoId", videoId);
-            urlHelper.addQueryItem("maxResults", QString::number(max));
-            if (startIndex > 2) {
-                if (maybeReloadToken(max, startIndex)) return;
-                urlHelper.addQueryItem("pageToken", nextPageToken);
-            }
+        QUrlQuery q(url);
+        q.addQueryItem("part", "snippet");
+        q.addQueryItem("type", "video");
+        q.addQueryItem("relatedToVideoId", videoId);
+        q.addQueryItem("maxResults", QString::number(max));
+        if (startIndex > 2) {
+            if (maybeReloadToken(max, startIndex)) return;
+            q.addQueryItem("pageToken", nextPageToken);
         }
+        url.setQuery(q);
     }
 
     lastUrl = url;
 
-    QObject *reply = The::http()->get(url);
+    QObject *reply = HttpUtils::yt().get(url);
     connect(reply, SIGNAL(data(QByteArray)), SLOT(parseResults(QByteArray)));
-    connect(reply, SIGNAL(error(QNetworkReply*)), SLOT(requestError(QNetworkReply*)));
+    connect(reply, SIGNAL(error(QString)), SLOT(requestError(QString)));
 }
 
 void YTSingleVideoSource::parseResults(QByteArray data) {
     if (aborted) return;
 
     YT3ListParser parser(data);
-    QList<Video*> videos = parser.getVideos();
+    const QVector<Video*> &videos = parser.getVideos();
 
     bool tryingWithNewToken = setPageToken(parser.getNextPageToken());
     if (tryingWithNewToken) return;
@@ -108,69 +97,19 @@ void YTSingleVideoSource::parseResults(QByteArray data) {
     loadVideoDetails(videos);
 }
 
-#else
-
-void YTSingleVideoSource::loadVideos(int max, int startIndex) {
-    aborted = false;
-    this->startIndex = startIndex;
-    this->max = max;
-
-    QString s;
-    if (startIndex == 1) s = "http://gdata.youtube.com/feeds/api/videos/" + videoId;
-    else s = QString("http://gdata.youtube.com/feeds/api/videos/%1/related").arg(videoId);
-    QUrl url(s);
-    {
-        QUrlQueryHelper urlHelper(url);
-        urlHelper.addQueryItem("v", "2");
-
-        if (startIndex != 1) {
-            urlHelper.addQueryItem("max-results", QString::number(max));
-            urlHelper.addQueryItem("start-index", QString::number(startIndex-1));
-        }
-    }
-    QObject *reply = The::http()->get(url);
-    connect(reply, SIGNAL(data(QByteArray)), SLOT(parse(QByteArray)));
-    connect(reply, SIGNAL(error(QNetworkReply*)), SLOT(requestError(QNetworkReply*)));
-}
-
-void YTSingleVideoSource::parse(QByteArray data) {
-    if (aborted) return;
-
-    YTFeedReader reader(data);
-    QList<Video*> videos = reader.getVideos();
-
-    if (name.isEmpty() && !videos.isEmpty() && startIndex == 1) {
-        name = videos.first()->title();
-        emit nameChanged(name);
-    }
-
-    emit gotVideos(videos);
-
-    if (startIndex == 1) loadVideos(max - 1, 2);
-    else if (startIndex == 2) emit finished(videos.size() + 1);
-    else emit finished(videos.size());
-}
-
-#endif
-
 void YTSingleVideoSource::abort() {
     aborted = true;
 }
 
-const QStringList & YTSingleVideoSource::getSuggestions() {
-    static const QStringList l;
-    return l;
-}
-
 QString YTSingleVideoSource::getName() {
     return name;
 }
 
 void YTSingleVideoSource::setVideo(Video *video) {
     this->video = video;
-    videoId = video->id();
+    videoId = video->getId();
 }
 
-void YTSingleVideoSource::requestError(QNetworkReply *reply) {
-    emit error(reply->errorString());
+void YTSingleVideoSource::requestError(const QString &message) {
+    emit error(message);
 }
index caf23b50bcbc06cff354d63eecbbb1cb9cb24486..b35698a13e144d222c28d008ec386dec22eb3798 100644 (file)
@@ -32,7 +32,6 @@ public:
     YTSingleVideoSource(QObject *parent = 0);
     void loadVideos(int max, int startIndex);
     void abort();
-    const QStringList & getSuggestions();
     QString getName();
 
     void setVideoId(const QString &value) { videoId = value; }
@@ -40,7 +39,7 @@ public:
 
 private slots:
     void parseResults(QByteArray data);
-    void requestError(QNetworkReply *reply);
+    void requestError(const QString &message);
 
 private:
     Video *video;
index e6f640842434379975ac92855a7677602053c251..4f08211bd5516175da7adce3a4828a97fcb8d393 100644 (file)
@@ -19,61 +19,52 @@ along with Minitube.  If not, see <http://www.gnu.org/licenses/>.
 $END_LICENSE */
 
 #include "ytstandardfeed.h"
-#include "networkaccess.h"
+#include "http.h"
+#include "httputils.h"
 #include "video.h"
-#include "compatibility/qurlqueryhelper.h"
 
-#ifdef APP_YT3
 #include "yt3.h"
 #include "yt3listparser.h"
-#else
-#include "ytfeedreader.h"
-#endif
-
-namespace The {
-NetworkAccess* http();
-}
 
 YTStandardFeed::YTStandardFeed(QObject *parent)
     : PaginatedVideoSource(parent),
       aborted(false) { }
 
-#ifdef APP_YT3
-
 void YTStandardFeed::loadVideos(int max, int startIndex) {
     aborted = false;
 
     QUrl url = YT3::instance().method("videos");
 
-    {
-        QUrlQueryHelper urlHelper(url);
-        if (startIndex > 1) {
-            if (maybeReloadToken(max, startIndex)) return;
-            urlHelper.addQueryItem("pageToken", nextPageToken);
-        }
+    QUrlQuery q(url);
+    if (startIndex > 1) {
+        if (maybeReloadToken(max, startIndex)) return;
+        q.addQueryItem("pageToken", nextPageToken);
+    }
 
-        urlHelper.addQueryItem("part", "snippet,contentDetails,statistics");
-        urlHelper.addQueryItem("chart", "mostPopular");
+    q.addQueryItem("part", "snippet,contentDetails,statistics");
+    q.addQueryItem("chart", "mostPopular");
 
-        if (!category.isEmpty())
-            urlHelper.addQueryItem("videoCategoryId", category);
+    if (!category.isEmpty())
+        q.addQueryItem("videoCategoryId", category);
 
-        if (!regionId.isEmpty())
-            urlHelper.addQueryItem("regionCode", regionId);
+    if (!regionId.isEmpty())
+        q.addQueryItem("regionCode", regionId);
 
-        urlHelper.addQueryItem("maxResults", QString::number(max));
+    q.addQueryItem("maxResults", QString::number(max));
 
-    }
-    QObject *reply = The::http()->get(url);
+    url.setQuery(q);
+
+    QObject *reply = HttpUtils::yt().get(url);
+    qDebug() << url;
     connect(reply, SIGNAL(data(QByteArray)), SLOT(parseResults(QByteArray)));
-    connect(reply, SIGNAL(error(QNetworkReply*)), SLOT(requestError(QNetworkReply*)));
+    connect(reply, SIGNAL(error(QString)), SLOT(requestError(QString)));
 }
 
 void YTStandardFeed::parseResults(QByteArray data) {
     if (aborted) return;
 
     YT3ListParser parser(data);
-    QList<Video*> videos = parser.getVideos();
+    const QVector<Video*> &videos = parser.getVideos();
 
     bool tryingWithNewToken = setPageToken(parser.getNextPageToken());
     if (tryingWithNewToken) return;
@@ -89,56 +80,10 @@ void YTStandardFeed::parseResults(QByteArray data) {
     emit finished(videos.size());
 }
 
-#else
-
-void YTStandardFeed::loadVideos(int max, int startIndex) {
-    aborted = false;
-
-    QString s = "http://gdata.youtube.com/feeds/api/standardfeeds/";
-    if (!regionId.isEmpty()) s += regionId + "/";
-    s += feedId;
-    if (!category.isEmpty()) s += "_" + category;
-
-    QUrl url(s);
-    {
-        QUrlQueryHelper urlHelper(url);
-        urlHelper.addQueryItem("v", "2");
-
-        if (feedId != "most_shared" && feedId != "on_the_web") {
-            QString t = time;
-            if (t.isEmpty()) t = "today";
-            urlHelper.addQueryItem("time", t);
-        }
-
-        urlHelper.addQueryItem("max-results", QString::number(max));
-        urlHelper.addQueryItem("start-index", QString::number(startIndex));
-    }
-    QObject *reply = The::http()->get(url);
-    connect(reply, SIGNAL(data(QByteArray)), SLOT(parse(QByteArray)));
-    connect(reply, SIGNAL(error(QNetworkReply*)), SLOT(requestError(QNetworkReply*)));
-}
-
-void YTStandardFeed::parseResults(QByteArray data) {
-    if (aborted) return;
-
-    YTFeedReader reader(data);
-    QList<Video*> videos = reader.getVideos();
-
-    emit gotVideos(videos);
-    emit finished(videos.size());
-}
-
-#endif
-
 void YTStandardFeed::abort() {
     aborted = true;
 }
 
-const QStringList & YTStandardFeed::getSuggestions() {
-    static const QStringList l;
-    return l;
-}
-
-void YTStandardFeed::requestError(QNetworkReply *reply) {
-    emit error(reply->errorString());
+void YTStandardFeed::requestError(const QString &message) {
+    emit error(message);
 }
index 4bd4721d339e9709c76821393ce743d5aab36437..281d0ed75b4d2c9f3cbe804f8fb5f9c9ffb0fdbd 100644 (file)
@@ -48,12 +48,11 @@ public:
 
     void loadVideos(int max, int startIndex);
     void abort();
-    const QStringList & getSuggestions();
     QString getName() { return label; }
 
 private slots:
     void parseResults(QByteArray data);
-    void requestError(QNetworkReply *reply);
+    void requestError(const QString &message);
 
 private:
     QString feedId;
index 86be974049e66aeb912865224e466cc7f4c8f3fe..9abd92cb8a4cb6d5e9f4c6b7cf1c52649c88fb50 100644 (file)
@@ -19,24 +19,17 @@ along with Minitube.  If not, see <http://www.gnu.org/licenses/>.
 $END_LICENSE */
 
 #include "ytsuggester.h"
-#include "networkaccess.h"
-
-namespace The {
-NetworkAccess* http();
-}
+#include "http.h"
+#include "httputils.h"
 
 YTSuggester::YTSuggester(QObject *parent) : Suggester(parent) {
 
 }
 
 void YTSuggester::suggest(const QString &query) {
-    if (query.startsWith("http")) return;
+    if (query.startsWith(QLatin1String("http"))) return;
 
-#if QT_VERSION >= 0x040800
-    QString locale = QLocale::system().uiLanguages().first();
-#else
-    QString locale = QLocale::system().name().replace("_", "-");
-#endif
+    QString locale = QLocale::system().uiLanguages().at(0);
 
     // case for system locales such as "C"
     if (locale.length() < 2) {
@@ -44,21 +37,22 @@ void YTSuggester::suggest(const QString &query) {
     }
 
     QString url =
-            QString("https://suggestqueries.google.com/complete/search?ds=yt&output=toolbar&hl=%1&q=%2")
+            QStringLiteral("https://suggestqueries.google.com/complete/search?ds=yt&output=toolbar&hl=%1&q=%2")
             .arg(locale, query);
 
-    QObject *reply = The::http()->get(url);
+    QObject *reply = HttpUtils::yt().get(url);
     connect(reply, SIGNAL(data(QByteArray)), SLOT(handleNetworkData(QByteArray)));
 }
 
 void YTSuggester::handleNetworkData(QByteArray response) {
-    QList<Suggestion*> suggestions;
+    QVector<Suggestion*> suggestions;
+    suggestions.reserve(10);
     QXmlStreamReader xml(response);
     while (!xml.atEnd()) {
         xml.readNext();
         if (xml.tokenType() == QXmlStreamReader::StartElement) {
             if (xml.name() == QLatin1String("suggestion")) {
-                QStringRef str = xml.attributes().value("data");
+                QStringRef str = xml.attributes().value(QLatin1String("data"));
                 QString value = str.toString();
                 suggestions << new Suggestion(value);
             }
index fc271539de0704cae1fdc3fdde82204f0cc173d3..e8057fbe842df9cd9e49accf0c5ce9f4c9d5adaf 100644 (file)
@@ -33,7 +33,7 @@ public:
     void suggest(const QString &query);
 
 signals:
-    void ready(const QList<Suggestion*> &suggestions);
+    void ready(const QVector<Suggestion*> &suggestions);
 
 private slots:
     void handleNetworkData(QByteArray response);
diff --git a/src/ytvideo.cpp b/src/ytvideo.cpp
new file mode 100644 (file)
index 0000000..e84f7e1
--- /dev/null
@@ -0,0 +1,430 @@
+#include "ytvideo.h"
+
+#include "datautils.h"
+#include "http.h"
+#include "httputils.h"
+#include "jsfunctions.h"
+#include "temporary.h"
+#include "videodefinition.h"
+
+#include <QJSEngine>
+#include <QJSValue>
+#include <QtNetwork>
+
+namespace {
+static const QString jsNameChars = "a-zA-Z0-9\\$_";
+}
+
+YTVideo::YTVideo(const QString &videoId, QObject *parent)
+    : QObject(parent), videoId(videoId), definitionCode(0), elIndex(0), ageGate(false),
+      loadingStreamUrl(false) {}
+
+void YTVideo::loadStreamUrl() {
+    if (loadingStreamUrl) {
+        qDebug() << "Already loading stream URL for" << videoId;
+        return;
+    }
+    loadingStreamUrl = true;
+    elIndex = 0;
+    ageGate = false;
+
+    getVideoInfo();
+}
+
+void YTVideo::getVideoInfo() {
+    static const QStringList elTypes = {"&el=embedded", "&el=detailpage", "&el=vevo", ""};
+
+    QUrl url;
+    if (elIndex == elTypes.size()) {
+        // qDebug() << "Trying special embedded el param";
+        url = QUrl("https://www.youtube.com/get_video_info");
+        QUrlQuery q;
+        q.addQueryItem("video_id", videoId);
+        q.addQueryItem("el", "embedded");
+        q.addQueryItem("gl", "US");
+        q.addQueryItem("hl", "en");
+        q.addQueryItem("eurl", "https://youtube.googleapis.com/v/" + videoId);
+        q.addQueryItem("asv", "3");
+        q.addQueryItem("sts", "1588");
+        url.setQuery(q);
+    } else if (elIndex > elTypes.size() - 1) {
+        qWarning() << "Cannot get video info";
+        loadingStreamUrl = false;
+        emit errorStreamUrl("Cannot get video info");
+        return;
+    } else {
+        // qDebug() << "Trying el param:" << elTypes.at(elIndex) << elIndex;
+        url = QUrl(QString("https://www.youtube.com/"
+                           "get_video_info?video_id=%1%2&ps=default&eurl=&gl=US&hl=en")
+                           .arg(videoId, elTypes.at(elIndex)));
+    }
+
+    QObject *reply = HttpUtils::yt().get(url);
+    connect(reply, SIGNAL(data(QByteArray)), SLOT(gotVideoInfo(QByteArray)));
+    connect(reply, SIGNAL(error(QString)), SLOT(errorVideoInfo(QString)));
+
+    // see you in gotVideoInfo...
+}
+
+void YTVideo::gotVideoInfo(const QByteArray &bytes) {
+    QString videoInfo = QString::fromUtf8(bytes);
+    // qDebug() << "videoInfo" << videoInfo;
+
+    // get video token
+    static const QRegExp videoTokeRE(JsFunctions::instance()->videoTokenRE());
+    if (videoTokeRE.indexIn(videoInfo) == -1) {
+        qDebug() << "Cannot get token. Trying next el param" << videoInfo << videoTokeRE.pattern();
+        // Don't panic! We're gonna try another magic "el" param
+        elIndex++;
+        getVideoInfo();
+        return;
+    }
+
+    QString videoToken = videoTokeRE.cap(1);
+    qDebug() << "got token" << videoToken;
+    while (videoToken.contains('%'))
+        videoToken = QByteArray::fromPercentEncoding(videoToken.toLatin1());
+    qDebug() << "videoToken" << videoToken;
+    this->videoToken = videoToken;
+
+    // get fmt_url_map
+    static const QRegExp fmtMapRE(JsFunctions::instance()->videoInfoFmtMapRE());
+    if (fmtMapRE.indexIn(videoInfo) == -1) {
+        qDebug() << "Cannot get urlMap. Trying next el param";
+        // Don't panic! We're gonna try another magic "el" param
+        elIndex++;
+        getVideoInfo();
+        return;
+    }
+
+    QString fmtUrlMap = fmtMapRE.cap(1);
+    // qDebug() << "got fmtUrlMap" << fmtUrlMap;
+    fmtUrlMap = QByteArray::fromPercentEncoding(fmtUrlMap.toUtf8());
+
+    qDebug() << "Got token and urlMap" << elIndex << videoToken << fmtUrlMap;
+    parseFmtUrlMap(fmtUrlMap);
+}
+
+void YTVideo::parseFmtUrlMap(const QString &fmtUrlMap, bool fromWebPage) {
+    const QString definitionName = QSettings().value("definition", "360p").toString();
+    const VideoDefinition &definition = VideoDefinition::forName(definitionName);
+
+    qDebug() << "fmtUrlMap" << fmtUrlMap;
+    const QVector<QStringRef> formatUrls = fmtUrlMap.splitRef(',', QString::SkipEmptyParts);
+    QMap<int, QString> urlMap;
+    for (const QStringRef &formatUrl : formatUrls) {
+        // qDebug() << "formatUrl" << formatUrl;
+        const QVector<QStringRef> urlParams = formatUrl.split('&', QString::SkipEmptyParts);
+        // qDebug() << "urlParams" << urlParams;
+
+        int format = -1;
+        QString url;
+        QString sig;
+        for (const QStringRef &urlParam : urlParams) {
+            // qWarning() << urlParam;
+            if (urlParam.startsWith(QLatin1String("itag="))) {
+                int separator = urlParam.indexOf('=');
+                format = urlParam.mid(separator + 1).toInt();
+            } else if (urlParam.startsWith(QLatin1String("url="))) {
+                int separator = urlParam.indexOf('=');
+                url = QByteArray::fromPercentEncoding(urlParam.mid(separator + 1).toUtf8());
+            } else if (urlParam.startsWith(QLatin1String("sig="))) {
+                int separator = urlParam.indexOf('=');
+                sig = QByteArray::fromPercentEncoding(urlParam.mid(separator + 1).toUtf8());
+            } else if (urlParam.startsWith(QLatin1String("s="))) {
+                if (fromWebPage || ageGate) {
+                    int separator = urlParam.indexOf('=');
+                    sig = QByteArray::fromPercentEncoding(urlParam.mid(separator + 1).toUtf8());
+                    if (ageGate)
+                        sig = JsFunctions::instance()->decryptAgeSignature(sig);
+                    else {
+                        sig = decryptSignature(sig);
+                        if (sig.isEmpty()) sig = JsFunctions::instance()->decryptSignature(sig);
+                    }
+                } else {
+                    QUrl url("https://www.youtube.com/watch");
+                    QUrlQuery q;
+                    q.addQueryItem("v", videoId);
+                    q.addQueryItem("gl", "US");
+                    q.addQueryItem("hl", "en");
+                    q.addQueryItem("has_verified", "1");
+                    url.setQuery(q);
+                    qDebug() << "Loading webpage" << url;
+                    QObject *reply = HttpUtils::yt().get(url);
+                    connect(reply, SIGNAL(data(QByteArray)), SLOT(scrapeWebPage(QByteArray)));
+                    connect(reply, SIGNAL(error(QString)), SLOT(errorVideoInfo(QString)));
+                    // see you in scrapWebPage(QByteArray)
+                    return;
+                }
+            }
+        }
+        if (format == -1 || url.isNull()) continue;
+
+        url += QLatin1String("&signature=") + sig;
+
+        if (!url.contains(QLatin1String("ratebypass"))) url += QLatin1String("&ratebypass=yes");
+
+        qDebug() << url;
+
+        if (format == definition.getCode()) {
+            qDebug() << "Found format" << definitionCode;
+            saveDefinitionForUrl(url, definition);
+            return;
+        }
+
+        urlMap.insert(format, url);
+    }
+
+    const QVector<VideoDefinition> &definitions = VideoDefinition::getDefinitions();
+    int previousIndex = std::max(definitions.indexOf(definition) - 1, 0);
+    for (; previousIndex >= 0; previousIndex--) {
+        const VideoDefinition &previousDefinition = definitions.at(previousIndex);
+        if (urlMap.contains(previousDefinition.getCode())) {
+            // qDebug() << "Found format" << definitionCode;
+            saveDefinitionForUrl(urlMap.value(previousDefinition.getCode()), previousDefinition);
+            return;
+        }
+    }
+
+    emit errorStreamUrl(tr("Cannot get video stream for %1").arg(videoId));
+}
+
+void YTVideo::errorVideoInfo(const QString &message) {
+    loadingStreamUrl = false;
+    emit errorStreamUrl(message);
+}
+
+void YTVideo::scrapeWebPage(const QByteArray &bytes) {
+    const QString html = QString::fromUtf8(bytes);
+
+    static const QRegExp ageGateRE(JsFunctions::instance()->ageGateRE());
+    if (ageGateRE.indexIn(html) != -1) {
+        // qDebug() << "Found ageGate";
+        ageGate = true;
+        elIndex = 4;
+        getVideoInfo();
+        return;
+    }
+
+    static const QRegExp fmtMapRE(JsFunctions::instance()->webPageFmtMapRE());
+    if (fmtMapRE.indexIn(html) == -1) {
+        qWarning() << "Error parsing video page";
+        // emit errorStreamUrl("Error parsing video page");
+        // loadingStreamUrl = false;
+        elIndex++;
+        getVideoInfo();
+        return;
+    }
+    fmtUrlMap = fmtMapRE.cap(1);
+    fmtUrlMap.replace("\\u0026", "&");
+// parseFmtUrlMap(fmtUrlMap, true);
+
+#ifdef APP_DASH
+    QSettings settings;
+    QString definitionName = settings.value("definition", "360p").toString();
+    if (definitionName == QLatin1String("1080p")) {
+        QRegExp dashManifestRe("\"dashmpd\":\\s*\"([^\"]+)\"");
+        if (dashManifestRe.indexIn(html) != -1) {
+            dashManifestUrl = dashManifestRe.cap(1);
+            dashManifestUrl.remove('\\');
+            qDebug() << "dashManifestUrl" << dashManifestUrl;
+        } else {
+            qWarning() << "DASH manifest not found in webpage";
+            if (dashManifestRe.indexIn(fmtUrlMap) != -1) {
+                dashManifestUrl = dashManifestRe.cap(1);
+                dashManifestUrl.remove('\\');
+                qDebug() << "dashManifestUrl" << dashManifestUrl;
+            } else
+                qWarning() << "DASH manifest not found in fmtUrlMap" << fmtUrlMap;
+        }
+    }
+#endif
+
+    static const QRegExp jsPlayerRe(JsFunctions::instance()->jsPlayerRE());
+    if (jsPlayerRe.indexIn(html) != -1) {
+        QString jsPlayerUrl = jsPlayerRe.cap(1);
+        jsPlayerUrl.remove('\\');
+        if (jsPlayerUrl.startsWith(QLatin1String("//"))) {
+            jsPlayerUrl = QLatin1String("https:") + jsPlayerUrl;
+        } else if (jsPlayerUrl.startsWith("/")) {
+            jsPlayerUrl = QLatin1String("https://youtube.com") + jsPlayerUrl;
+        }
+        // qDebug() << "jsPlayerUrl" << jsPlayerUrl;
+        /*
+                    QRegExp jsPlayerIdRe("-(.+)\\.js");
+                    jsPlayerIdRe.indexIn(jsPlayerUrl);
+                    QString jsPlayerId = jsPlayerRe.cap(1);
+                    */
+        QObject *reply = HttpUtils::yt().get(jsPlayerUrl);
+        connect(reply, SIGNAL(data(QByteArray)), SLOT(parseJsPlayer(QByteArray)));
+        connect(reply, SIGNAL(error(QString)), SLOT(errorVideoInfo(QString)));
+    }
+}
+
+void YTVideo::parseJsPlayer(const QByteArray &bytes) {
+    jsPlayer = QString::fromUtf8(bytes);
+    // qDebug() << "jsPlayer" << jsPlayer;
+
+    // QRegExp funcNameRe("[\"']signature[\"']\\s*,\\s*([" + jsNameChars + "]+)\\(");
+    static const QRegExp funcNameRe(
+            JsFunctions::instance()->signatureFunctionNameRE().arg(jsNameChars));
+
+    if (funcNameRe.indexIn(jsPlayer) == -1) {
+        qWarning() << "Cannot capture signature function name" << jsPlayer;
+    } else {
+        sigFuncName = funcNameRe.cap(1);
+        captureFunction(sigFuncName, jsPlayer);
+        // qWarning() << sigFunctions << sigObjects;
+    }
+
+#ifdef APP_DASH
+    if (!dashManifestUrl.isEmpty()) {
+        QRegExp sigRe("/s/([\\w\\.]+)");
+        if (sigRe.indexIn(dashManifestUrl) != -1) {
+            qDebug() << "Decrypting signature for dash manifest";
+            QString sig = sigRe.cap(1);
+            sig = decryptSignature(sig);
+            dashManifestUrl.replace(sigRe, "/signature/" + sig);
+            qWarning() << "dash manifest" << dashManifestUrl;
+
+            if (true) {
+                // let phonon play the manifest
+                m_streamUrl = dashManifestUrl;
+                this->definitionCode = 37;
+                emit gotStreamUrl(m_streamUrl);
+                loadingStreamUrl = false;
+            } else {
+                // download the manifest
+                QObject *reply = HttpUtils::yt().get(QUrl::fromEncoded(dashManifestUrl.toUtf8()));
+                connect(reply, SIGNAL(data(QByteArray)), SLOT(parseDashManifest(QByteArray)));
+                connect(reply, SIGNAL(error(QString)), SLOT(errorVideoInfo(QString)));
+            }
+
+            return;
+        }
+    }
+#endif
+
+    parseFmtUrlMap(fmtUrlMap, true);
+}
+
+void YTVideo::parseDashManifest(const QByteArray &bytes) {
+    QFile file(Temporary::filename() + ".mpd");
+    if (!file.open(QIODevice::WriteOnly)) qWarning() << file.errorString() << file.fileName();
+    QDataStream stream(&file);
+    stream.writeRawData(bytes.constData(), bytes.size());
+
+    m_streamUrl = "file://" + file.fileName();
+    this->definitionCode = 37;
+    emit gotStreamUrl(m_streamUrl);
+    loadingStreamUrl = false;
+}
+
+void YTVideo::captureFunction(const QString &name, const QString &js) {
+    qDebug() << __PRETTY_FUNCTION__ << name;
+    const QString argsAndBody =
+            QLatin1String("\\s*\\([") + jsNameChars + QLatin1String(",\\s]*\\)\\s*\\{[^\\}]+\\}");
+    QString func;
+    QRegExp funcRe(QLatin1String("function\\s+") + QRegExp::escape(name) + argsAndBody);
+    if (funcRe.indexIn(js) != -1) {
+        func = funcRe.cap(0);
+    } else {
+        // try var foo = function(bar) { };
+        funcRe = QRegExp(QLatin1String("var\\s+") + QRegExp::escape(name) +
+                         QLatin1String("\\s*=\\s*function") + argsAndBody);
+        if (funcRe.indexIn(js) != -1) {
+            func = funcRe.cap(0);
+        } else {
+            // try ,gr= function(bar) { };
+            funcRe = QRegExp(QLatin1String("[,\\s;}\\.\\)](") + QRegExp::escape(name) +
+                             QLatin1String("\\s*=\\s*function") + argsAndBody + ")");
+            if (funcRe.indexIn(js) != -1) {
+                func = funcRe.cap(1);
+            } else {
+                qWarning() << "Cannot capture function" << name;
+                return;
+            }
+        }
+    }
+    sigFunctions.insert(name, func);
+
+    // capture inner functions
+    static const QRegExp invokedFuncRe(QLatin1String("[\\s=;\\(]([") + jsNameChars +
+                                       QLatin1String("]+)\\s*\\([") + jsNameChars +
+                                       QLatin1String(",\\s]+\\)"));
+    int pos = name.length() + 9;
+    while ((pos = invokedFuncRe.indexIn(func, pos)) != -1) {
+        QString funcName = invokedFuncRe.cap(1);
+        if (!sigFunctions.contains(funcName)) captureFunction(funcName, js);
+        pos += invokedFuncRe.matchedLength();
+    }
+
+    // capture referenced objects
+    static const QRegExp objRe(QLatin1String("[\\s=;\\(]([") + jsNameChars +
+                               QLatin1String("]+)\\.[") + jsNameChars + QLatin1String("]+"));
+    pos = name.length() + 9;
+    while ((pos = objRe.indexIn(func, pos)) != -1) {
+        QString objName = objRe.cap(1);
+        if (!sigObjects.contains(objName)) captureObject(objName, js);
+        pos += objRe.matchedLength();
+    }
+}
+
+void YTVideo::captureObject(const QString &name, const QString &js) {
+    QRegExp re(QLatin1String("var\\s+") + QRegExp::escape(name) +
+               QLatin1String("\\s*=\\s*\\{.*\\}\\s*;"));
+    re.setMinimal(true);
+    if (re.indexIn(js) == -1) {
+        qWarning() << "Cannot capture object" << name;
+        return;
+    }
+    QString obj = re.cap(0);
+    sigObjects.insert(name, obj);
+}
+
+QString YTVideo::decryptSignature(const QString &s) {
+    qDebug() << "decryptSignature" << sigFuncName << sigFunctions << sigObjects;
+    if (sigFuncName.isEmpty()) return QString();
+    QJSEngine engine;
+    for (const QString &f : sigObjects) {
+        QJSValue value = engine.evaluate(f);
+        if (value.isError()) qWarning() << "Error in" << f << value.toString();
+    }
+    for (const QString &f : sigFunctions) {
+        QJSValue value = engine.evaluate(f);
+        if (value.isError()) qWarning() << "Error in" << f << value.toString();
+    }
+    QString js = sigFuncName + "('" + s + "');";
+    QJSValue value = engine.evaluate(js);
+    bool error = false;
+    if (value.isUndefined()) {
+        qWarning() << "Undefined result for" << js;
+        error = true;
+    }
+    if (value.isError()) {
+        qWarning() << "Error in" << js << value.toString();
+        error = true;
+    }
+    if (error) {
+        QJSEngine engine2;
+        engine2.evaluate(jsPlayer);
+        value = engine2.evaluate(js);
+        if (value.isUndefined()) {
+            qWarning() << "Undefined result for" << js;
+            error = true;
+        }
+        if (value.isError()) {
+            qWarning() << "Error in" << js << value.toString();
+            error = true;
+        }
+    }
+    if (error) return QString();
+    return value.toString();
+}
+
+void YTVideo::saveDefinitionForUrl(const QString &url, const VideoDefinition &definition) {
+    m_streamUrl = QUrl::fromEncoded(url.toUtf8(), QUrl::StrictMode);
+    definitionCode = definition.getCode();
+    emit gotStreamUrl(m_streamUrl);
+    loadingStreamUrl = false;
+}
diff --git a/src/ytvideo.h b/src/ytvideo.h
new file mode 100644 (file)
index 0000000..9f18e43
--- /dev/null
@@ -0,0 +1,52 @@
+#ifndef YTVIDEO_H
+#define YTVIDEO_H
+
+#include <QtCore>
+
+class VideoDefinition;
+
+class YTVideo : public QObject {
+    Q_OBJECT
+
+public:
+    YTVideo(const QString &videoId, QObject *parent);
+    void loadStreamUrl();
+    int getDefinitionCode() const { return definitionCode; }
+
+signals:
+    void gotStreamUrl(const QUrl &streamUrl);
+    void errorStreamUrl(const QString &message);
+
+private slots:
+    void gotVideoInfo(const QByteArray &bytes);
+    void errorVideoInfo(const QString &message);
+    void scrapeWebPage(const QByteArray &bytes);
+    void parseJsPlayer(const QByteArray &bytes);
+    void parseDashManifest(const QByteArray &bytes);
+
+private:
+    void getVideoInfo();
+    void parseFmtUrlMap(const QString &fmtUrlMap, bool fromWebPage = false);
+    void captureFunction(const QString &name, const QString &js);
+    void captureObject(const QString &name, const QString &js);
+    QString decryptSignature(const QString &s);
+    void saveDefinitionForUrl(const QString &url, const VideoDefinition &definition);
+
+    QString videoId;
+    QUrl m_streamUrl;
+    int definitionCode;
+    bool loadingStreamUrl;
+    // current index for the elTypes list
+    // needed to iterate on elTypes
+    int elIndex;
+    bool ageGate;
+    QString videoToken;
+    QString fmtUrlMap;
+    QString sigFuncName;
+    QHash<QString, QString> sigFunctions;
+    QHash<QString, QString> sigObjects;
+    QString dashManifestUrl;
+    QString jsPlayer;
+};
+
+#endif // YTVIDEO_H
index a16022de26beca265be77af4f63920502eeb7c6a..d6651f6077ef7c977ceed95a45a305e8f54bbb41 100644 (file)
--- a/style.css
+++ b/style.css
@@ -1,4 +1,4 @@
-/* statusbar */
+QMainWindow > QToolBar QToolButton::menu-indicator { image: none; }
 
 QStatusBar QToolBar {
     padding:0;
@@ -7,17 +7,18 @@ QStatusBar QToolBar {
     border:0;
 }
 
-QStatusBar QToolBar QToolButton {
-    padding:0;
-    spacing:0;
-    margin:0;
+QStatusBar::item {
+    border:0;
 }
 
 QStatusBar QToolButton::menu-indicator {
     image: none;
 }
 
-/* Regions */
+AppsWidget {
+    background-color: palette(window);
+    border-top: 1px solid #808080;
+}
 
 RegionsView QPushButton[regionId] {
     margin: 5px;
@@ -25,8 +26,7 @@ RegionsView QPushButton[regionId] {
     text-align: left;
     vertical-align: middle;
     background-color: transparent;
-    border: 1px solid transparent;
-    border-radius: 5px;
+    border-radius: 3px;
 }
 
 RegionsView QPushButton[regionId=""] {
@@ -34,32 +34,25 @@ RegionsView QPushButton[regionId=""] {
 }
 
 RegionsView QPushButton[regionId]:hover {
-    border: 1px solid rgba(0,0,0,32);
     background: rgba(0,0,0,16);
 }
 
 RegionsView QPushButton[regionId]:focus {
-    border: 1px solid palette(highlight);
-    background: rgba(0,0,0,16);
+    background: palette(highlight);
+    color: palette(highlightText);
+    outline: 0;
 }
 
 RegionsView QPushButton[regionId]:checked {
-    color: #fff;
-    border: 1px solid rgba(0,0,0,64);
-    background: qradialgradient(cx: 0.5, cy: 0,
-    fx: 0.5, fy: 0,
-    radius: 1.35, stop: 0 rgba(0,0,0,128), stop: 1 rgba(0,0,0,64));
+    background: rgba(0,0,0,32)
 }
 
-/* Sidebar */
-
 SidebarHeader {
-    background: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1,
-                         stop: 0 #262626, stop: 1 #3c3c3c);
+    background: #3c3c3c;
     padding: 0;
     margin: 0;
     spacing: 0;
-    border-bottom: 1px solid black;
+    border: 0;
 }
 
 SidebarHeader QToolButton {
@@ -82,6 +75,29 @@ SidebarHeader QComboBox::drop-down {
     border-style: none;
 }
 
-QLabel[recentHeader="true"] {
-    color: rgba(0,0,0,128);
+SearchView QLabel[recentHeader="true"] {
+    margin-left: -3px;
+    margin-bottom: 4px;
+    padding: 0;
+}
+
+SearchView QPushButton[recentItem="true"] {
+    border: 0;
+    padding: 4px;
+    text-align: left;
+    outline: 0;
+}
+
+SearchView QPushButton[recentItem="true"]:hover {
+    background: rgba(0,0,0,16);
+}
+
+SearchView QPushButton[recentItem="true"]:pressed {
+    background: palette(highlight);
+    color: white; /* SHOULD BE color: palette(highlightText); */
+}
+
+SearchView QPushButton[recentItem="true"]:focus {
+    outline: 1px solid palette(highlight);
+    outline-offset: 4px;
 }