]> git.sur5r.net Git - minitube/commitdiff
Imported Upstream version 2.1.5 upstream/2.1.5
authorJakob Haufe <sur5r@sur5r.net>
Thu, 12 Jun 2014 19:15:57 +0000 (21:15 +0200)
committerJakob Haufe <sur5r@sur5r.net>
Thu, 12 Jun 2014 19:15:57 +0000 (21:15 +0200)
38 files changed:
CHANGES
empty.ts
locale/ar.ts
locale/ast.ts
locale/ca.ts
locale/da.ts
locale/es.ts
locale/es_ES.ts
locale/fi.ts
locale/fi_FI.ts
locale/fr.ts
locale/gl.ts
locale/ky.ts
locale/locale.pri
locale/ms_MY.ts
locale/nb.ts
locale/nl.ts
locale/pl.ts
locale/ru.ts
locale/sk.ts
locale/sl.ts
locale/sv_SE.ts
locale/tr.ts
locale/uk.ts
locale/uk_UA.ts
locale/zh_CN.ts
locale/zh_TW.ts
minitube.desktop
minitube.pro
src/aboutview.cpp
src/diskcache.cpp
src/loadingwidget.cpp
src/main.cpp
src/mainwindow.h
src/playlistitemdelegate.cpp
src/searchview.cpp
src/video.cpp
src/video.h

diff --git a/CHANGES b/CHANGES
index 8d9e12856dc99e130f2daaf7501504755e40de2b..f2ac1c5fe92109d4f902c30584b6d9d4f85190bf 100644 (file)
--- a/CHANGES
+++ b/CHANGES
@@ -1,3 +1,17 @@
+2.1.5
+- Fix some videos not playing
+- Show video title on hover when playlist is in minimode (thumbs only)
+- Lighter font for video title and description on Mac & Ubuntu
+
+2.1.4
+- Fixed fonts in Mac OS X Mavericks
+- Fixed "busy" mouse cursor at launch on Ubuntu
+- Updated translations
+
+2.1.3
+- Fixed video seeking
+- New and updated translations
+
 2.1.2
 - Downloads only enabled on Creative Commons licensed videos
 - Fixed playback of some videos
index 8d4ee7aa186e78ea8365cb4928a2731aadd51565..af6d5d9be915738a0bf88f2a7d3fdda102ef2a9a 100644 (file)
--- a/empty.ts
+++ b/empty.ts
     </message>
     <message>
         <location filename="local/src/activationview.cpp" line="53"/>
-        <source>The full version allows you to download videos longer than %1 minutes and to watch videos without interruptions.</source>
+        <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>
     </message>
     <message>
         <location filename="src/mainwindow.cpp" line="284"/>
-        <location filename="src/mainwindow.cpp" line="1034"/>
+        <location filename="src/mainwindow.cpp" line="1035"/>
         <source>&amp;Pause</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
         <location filename="src/mainwindow.cpp" line="285"/>
-        <location filename="src/mainwindow.cpp" line="1035"/>
+        <location filename="src/mainwindow.cpp" line="1036"/>
         <source>Pause playback</source>
         <translation type="unfinished"></translation>
     </message>
     </message>
     <message>
         <location filename="src/mainwindow.cpp" line="460"/>
-        <location filename="src/mainwindow.cpp" line="1431"/>
+        <location filename="src/mainwindow.cpp" line="1434"/>
         <source>&amp;Downloads</source>
         <translation type="unfinished"></translation>
     </message>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="738"/>
+        <location filename="src/mainwindow.cpp" line="739"/>
         <source>Press %1 to raise the volume, %2 to lower it</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="930"/>
-        <location filename="src/mainwindow.cpp" line="936"/>
+        <location filename="src/mainwindow.cpp" line="931"/>
+        <location filename="src/mainwindow.cpp" line="937"/>
         <source>Opening %1</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="981"/>
+        <location filename="src/mainwindow.cpp" line="982"/>
         <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="982"/>
+        <location filename="src/mainwindow.cpp" line="983"/>
         <source>If you close %1 now, this download will be cancelled.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="987"/>
+        <location filename="src/mainwindow.cpp" line="988"/>
         <source>Close and cancel download</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="988"/>
+        <location filename="src/mainwindow.cpp" line="989"/>
         <source>Wait for download to finish</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1147"/>
+        <location filename="src/mainwindow.cpp" line="1148"/>
         <source>Leave &amp;Full Screen</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1540"/>
+        <location filename="src/mainwindow.cpp" line="1543"/>
         <source>%1 version %2 is now available.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1544"/>
+        <location filename="src/mainwindow.cpp" line="1547"/>
         <source>Remind me later</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1545"/>
+        <location filename="src/mainwindow.cpp" line="1548"/>
         <source>Update</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1027"/>
+        <location filename="src/mainwindow.cpp" line="1028"/>
         <source>Error: %1</source>
         <translation type="unfinished"></translation>
     </message>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="776"/>
+        <location filename="src/mainwindow.cpp" line="777"/>
         <source>Choose your content location</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1047"/>
+        <location filename="src/mainwindow.cpp" line="1048"/>
         <source>&amp;Play</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1048"/>
+        <location filename="src/mainwindow.cpp" line="1049"/>
         <source>Resume playback</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1301"/>
+        <location filename="src/mainwindow.cpp" line="1304"/>
         <source>Remaining time: %1</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1360"/>
+        <location filename="src/mainwindow.cpp" line="1363"/>
         <source>Volume at %1%</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1366"/>
+        <location filename="src/mainwindow.cpp" line="1369"/>
         <source>Volume is muted</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1369"/>
+        <location filename="src/mainwindow.cpp" line="1372"/>
         <source>Volume is unmuted</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1376"/>
+        <location filename="src/mainwindow.cpp" line="1379"/>
         <source>Maximum video definition set to %1</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1417"/>
+        <location filename="src/mainwindow.cpp" line="1420"/>
         <source>Your privacy is now safe</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="src/mainwindow.cpp" line="1432"/>
+        <location filename="src/mainwindow.cpp" line="1435"/>
         <source>Downloads complete</source>
         <translation type="unfinished"></translation>
     </message>
index 512eba26515c5b527732b6bb43af84f3c3c801b9..61cbbce95d204f3a533e2d290607e04852fcbf81 100644 (file)
     <message>
         <location filename="src/channelaggregator.cpp" line="131"/>
         <source>By %1</source>
-        <translation type="unfinished"/>
+        <translation>بواسطة %1</translation>
     </message>
     <message numerus="yes">
         <location filename="src/channelaggregator.cpp" line="133"/>
     <message>
         <location filename="src/channelview.cpp" line="99"/>
         <source>Mark all as watched</source>
-        <translation type="unfinished"/>
+        <translation>علّمها كمُشاهدة</translation>
     </message>
     <message>
         <location filename="src/channelview.cpp" line="107"/>
         <source>Show Updated</source>
-        <translation type="unfinished"/>
+        <translation>أظهر التّحديثات</translation>
     </message>
     <message>
         <location filename="src/channelview.cpp" line="119"/>
         <source>Name</source>
-        <translation type="unfinished"/>
+        <translation>الاسم</translation>
     </message>
     <message>
         <location filename="src/channelview.cpp" line="126"/>
         <source>Last Updated</source>
-        <translation type="unfinished"/>
+        <translation>آخر تحديث</translation>
     </message>
     <message>
         <location filename="src/channelview.cpp" line="133"/>
         <source>Last Added</source>
-        <translation type="unfinished"/>
+        <translation>آخر إضافة</translation>
     </message>
     <message>
         <location filename="src/channelview.cpp" line="140"/>
         <source>Last Watched</source>
-        <translation type="unfinished"/>
+        <translation>آخر عرض</translation>
     </message>
     <message>
         <location filename="src/channelview.cpp" line="147"/>
     <message>
         <location filename="src/channelview.cpp" line="230"/>
         <source>There are no updated subscriptions at this time.</source>
-        <translation type="unfinished"/>
+        <translation>لا يوجد تحديثات لقوائم اشتراكاتك حاليًا</translation>
     </message>
     <message>
         <location filename="src/channelview.cpp" line="232"/>
     <message>
         <location filename="src/homeview.cpp" line="73"/>
         <source>Channel subscriptions</source>
-        <translation type="unfinished"/>
+        <translation>اشتراكات القنوات</translation>
     </message>
     <message>
         <location filename="src/homeview.h" line="42"/>
     <message>
         <location filename="src/mainwindow.cpp" line="569"/>
         <source>Open in &amp;Browser...</source>
-        <translation type="unfinished"/>
+        <translation>افتح &amp;ضمن المُستعرض...</translation>
     </message>
     <message>
         <location filename="src/mainwindow.cpp" line="591"/>
     <message>
         <location filename="src/mediaview.cpp" line="968"/>
         <source>Unsubscribe from %1</source>
-        <translation type="unfinished"/>
+        <translation>إلغاء الاشتراك من %1</translation>
     </message>
     <message>
         <location filename="src/mediaview.cpp" line="972"/>
     <message>
         <location filename="src/standardfeedsview.cpp" line="110"/>
         <source>All Time Popular</source>
-        <translation type="unfinished"/>
+        <translation>مشهورة دومًا</translation>
     </message>
 </context>
 <context>
index 41432e795bd39aa82a3947bb8649252f0283a7c3..e8a0faa92342e521944b0f62c695bb49d386575f 100644 (file)
     <message>
         <location filename="src/channelview.cpp" line="155"/>
         <source>Sort by</source>
-        <translation type="unfinished"/>
+        <translation>Ordenar por</translation>
     </message>
     <message>
         <location filename="src/channelview.cpp" line="214"/>
index f91f7ef10b6606adfd7d76c515eee8c916781468..cfbb102d344f40a1451c759beaf2ba41aed3807d 100644 (file)
     <message>
         <location filename="local/src/activationview.cpp" line="53"/>
         <source>The full version allows you to download videos longer than %1 minutes and to watch videos without interruptions.</source>
-        <translation type="unfinished"/>
+        <translation>La versió completa permet descarregar vídeos de més de %1 minuts i veure els vídeos sense interrupcions.</translation>
     </message>
     <message>
         <location filename="local/src/activationview.cpp" line="55"/>
     <message>
         <location filename="src/channelaggregator.cpp" line="131"/>
         <source>By %1</source>
-        <translation type="unfinished"/>
+        <translation>Per %1</translation>
     </message>
     <message numerus="yes">
         <location filename="src/channelaggregator.cpp" line="133"/>
     <message>
         <location filename="src/channelitemdelegate.cpp" line="66"/>
         <source>All Videos</source>
-        <translation type="unfinished"/>
+        <translation>Tots els vídeos</translation>
     </message>
     <message>
         <location filename="src/channelitemdelegate.cpp" line="83"/>
         <source>Unwatched Videos</source>
-        <translation type="unfinished"/>
+        <translation>Vídeos no vists</translation>
     </message>
 </context>
 <context>
     <message>
         <location filename="src/channelview.cpp" line="99"/>
         <source>Mark all as watched</source>
-        <translation type="unfinished"/>
+        <translation>Marca-ho tot vist</translation>
     </message>
     <message>
         <location filename="src/channelview.cpp" line="107"/>
         <source>Show Updated</source>
-        <translation type="unfinished"/>
+        <translation>Mostra actualitzats</translation>
     </message>
     <message>
         <location filename="src/channelview.cpp" line="119"/>
         <source>Name</source>
-        <translation type="unfinished"/>
+        <translation>Nom</translation>
     </message>
     <message>
         <location filename="src/channelview.cpp" line="126"/>
         <source>Last Updated</source>
-        <translation type="unfinished"/>
+        <translation>Últim actualitzat</translation>
     </message>
     <message>
         <location filename="src/channelview.cpp" line="133"/>
         <source>Last Added</source>
-        <translation type="unfinished"/>
+        <translation>Últim afegit</translation>
     </message>
     <message>
         <location filename="src/channelview.cpp" line="140"/>
         <source>Last Watched</source>
-        <translation type="unfinished"/>
+        <translation>Últim vist</translation>
     </message>
     <message>
         <location filename="src/channelview.cpp" line="147"/>
         <source>Most Watched</source>
-        <translation type="unfinished"/>
+        <translation>Més vistos</translation>
     </message>
     <message>
         <location filename="src/channelview.cpp" line="155"/>
     <message>
         <location filename="src/channelview.cpp" line="214"/>
         <source>All Videos</source>
-        <translation type="unfinished"/>
+        <translation>Tots els vídeos</translation>
     </message>
     <message>
         <location filename="src/channelview.cpp" line="218"/>
         <source>Unwatched Videos</source>
-        <translation type="unfinished"/>
+        <translation>Vídeos no vistos</translation>
     </message>
     <message>
         <location filename="src/channelview.cpp" line="230"/>
         <source>There are no updated subscriptions at this time.</source>
-        <translation type="unfinished"/>
+        <translation>No hi han subscripcions actualitzades.</translation>
     </message>
     <message>
         <location filename="src/channelview.cpp" line="232"/>
         <source>You have no subscriptions. Use the star symbol to subscribe to channels.</source>
-        <translation type="unfinished"/>
+        <translation>No teniu subscripcions. Feu servir el símbol de l&apos;estrella per subscríure-us als canals.</translation>
     </message>
 </context>
 <context>
     <message>
         <location filename="src/homeview.cpp" line="60"/>
         <source>Find videos and channels by keyword</source>
-        <translation type="unfinished"/>
+        <translation>Troba vídeos i canals per paraula clau</translation>
     </message>
     <message>
         <location filename="src/homeview.cpp" line="65"/>
         <source>Browse</source>
-        <translation type="unfinished"/>
+        <translation>Explora</translation>
     </message>
     <message>
         <location filename="src/homeview.cpp" line="67"/>
         <source>Browse videos by category</source>
-        <translation type="unfinished"/>
+        <translation>Explora vídeos per categoria</translation>
     </message>
     <message>
         <location filename="src/homeview.cpp" line="71"/>
         <source>Subscriptions</source>
-        <translation type="unfinished"/>
+        <translation>Subscripcions</translation>
     </message>
     <message>
         <location filename="src/homeview.cpp" line="73"/>
         <source>Channel subscriptions</source>
-        <translation type="unfinished"/>
+        <translation>Subscripcions de canal</translation>
     </message>
     <message>
         <location filename="src/homeview.h" line="42"/>
         <source>Make yourself comfortable</source>
-        <translation type="unfinished"/>
+        <translation>Poseu-vos còmodes</translation>
     </message>
 </context>
 <context>
     <message>
         <location filename="src/mainwindow.cpp" line="486"/>
         <source>&amp;Subscribe to Channel</source>
-        <translation type="unfinished"/>
+        <translation>&amp;Subscriu al canal</translation>
     </message>
     <message>
         <location filename="src/mainwindow.cpp" line="494"/>
     <message>
         <location filename="src/mainwindow.cpp" line="558"/>
         <source>More...</source>
-        <translation type="unfinished"/>
+        <translation>Més...</translation>
     </message>
     <message>
         <location filename="src/mainwindow.cpp" line="561"/>
         <source>&amp;Related Videos</source>
-        <translation type="unfinished"/>
+        <translation>Vídeos &amp;Relacionats</translation>
     </message>
     <message>
         <location filename="src/mainwindow.cpp" line="563"/>
         <source>Watch videos related to the current one</source>
-        <translation type="unfinished"/>
+        <translation>Visualitza vídeos relacionats amb l&apos;actual</translation>
     </message>
     <message>
         <location filename="src/mainwindow.cpp" line="569"/>
         <source>Open in &amp;Browser...</source>
-        <translation type="unfinished"/>
+        <translation>Obre al &amp;Navegador...</translation>
     </message>
     <message>
         <location filename="src/mainwindow.cpp" line="591"/>
     <message>
         <location filename="src/mainwindow.cpp" line="776"/>
         <source>Choose your content location</source>
-        <translation type="unfinished"/>
+        <translation>Esculliu la ubicació del vostre contingut</translation>
     </message>
     <message>
         <location filename="src/mainwindow.cpp" line="1047"/>
     <message>
         <location filename="src/mediaview.cpp" line="968"/>
         <source>Unsubscribe from %1</source>
-        <translation type="unfinished"/>
+        <translation>Cancel·la la subscripció a %1</translation>
     </message>
     <message>
         <location filename="src/mediaview.cpp" line="972"/>
         <source>Subscribe to %1</source>
-        <translation type="unfinished"/>
+        <translation>Subscriu-me a %1</translation>
     </message>
     <message>
         <location filename="src/mediaview.cpp" line="720"/>
     <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>
+        <translation>%1 %2 està disponible. Tu tens %3.</translation>
     </message>
     <message>
         <location filename="local/src/updatedialog.cpp" line="33"/>
     <message>
         <location filename="local/src/updatedialog.cpp" line="47"/>
         <source>Install Update</source>
-        <translation>Instal·la Actualització</translation>
+        <translation>Instal·la l&apos;actualització</translation>
     </message>
 </context>
 <context>
     <message>
         <location filename="local/src/pastelineedit.cpp" line="6"/>
         <source>Paste</source>
-        <translation>Enganxar</translation>
+        <translation>Enganxa</translation>
     </message>
 </context>
 <context>
     <message>
         <location filename="src/playlistitemdelegate.cpp" line="311"/>
         <source>%1 of %2 (%3) — %4</source>
-        <translation type="unfinished"/>
+        <translation>%1 de %2 (%3) — %4</translation>
     </message>
     <message>
         <location filename="src/playlistitemdelegate.cpp" line="318"/>
         <source>Preparing</source>
-        <translation type="unfinished"/>
+        <translation>Preparant</translation>
     </message>
     <message>
         <location filename="src/playlistitemdelegate.cpp" line="320"/>
         <source>Failed</source>
-        <translation type="unfinished"/>
+        <translation>Fallit</translation>
     </message>
     <message>
         <location filename="src/playlistitemdelegate.cpp" line="322"/>
         <source>Completed</source>
-        <translation type="unfinished"/>
+        <translation>Completat</translation>
     </message>
     <message>
         <location filename="src/playlistitemdelegate.cpp" line="324"/>
         <source>Stopped</source>
-        <translation type="unfinished"/>
+        <translation>Aturat</translation>
     </message>
     <message>
         <location filename="src/playlistitemdelegate.cpp" line="360"/>
         <source>Stop downloading</source>
-        <translation type="unfinished"/>
+        <translation>Atura la baixada</translation>
     </message>
     <message>
         <location filename="src/playlistitemdelegate.cpp" line="370"/>
         <source>Show in %1</source>
-        <translation type="unfinished"/>
+        <translation>Mostra en %1</translation>
     </message>
     <message>
         <location filename="src/playlistitemdelegate.cpp" line="372"/>
         <source>Open parent folder</source>
-        <translation type="unfinished"/>
+        <translation>Obre el directori superior</translation>
     </message>
     <message>
         <location filename="src/playlistitemdelegate.cpp" line="381"/>
         <source>Restart downloading</source>
-        <translation type="unfinished"/>
+        <translation>Recomença la baixada</translation>
     </message>
 </context>
 <context>
     <message>
         <location filename="src/playlistmodel.cpp" line="72"/>
         <source>Searching...</source>
-        <translation>Buscant...</translation>
+        <translation>Cercant...</translation>
     </message>
     <message>
         <location filename="src/playlistmodel.cpp" line="73"/>
         <source>Show %1 More</source>
-        <translation type="unfinished"/>
+        <translation>Mostra %1 Més</translation>
     </message>
     <message>
         <location filename="src/playlistmodel.cpp" line="74"/>
     <message>
         <location filename="src/regionsview.cpp" line="39"/>
         <source>Done</source>
-        <translation type="unfinished"/>
+        <translation>Fet</translation>
     </message>
 </context>
 <context>
     <message>
         <location filename="src/sidebarheader.cpp" line="77"/>
         <source>Forward to %1</source>
-        <translation type="unfinished"/>
+        <translation>Avança a %1</translation>
     </message>
     <message>
         <location filename="src/sidebarheader.cpp" line="90"/>
         <source>Back to %1</source>
-        <translation type="unfinished"/>
+        <translation>Retrocedeix a %1</translation>
     </message>
 </context>
 <context>
     <message>
         <location filename="src/standardfeedsview.cpp" line="105"/>
         <source>Most Popular</source>
-        <translation type="unfinished"/>
+        <translation>Més popular</translation>
     </message>
     <message>
         <location filename="src/standardfeedsview.cpp" line="107"/>
         <source>Most Shared</source>
-        <translation type="unfinished"/>
+        <translation>Més compartit</translation>
     </message>
     <message>
         <location filename="src/standardfeedsview.cpp" line="108"/>
         <source>Most Discussed</source>
-        <translation type="unfinished"/>
+        <translation>Més comentat</translation>
     </message>
     <message>
         <location filename="src/standardfeedsview.cpp" line="109"/>
         <source>Top Rated</source>
-        <translation type="unfinished"/>
+        <translation>Millor valorats</translation>
     </message>
     <message>
         <location filename="src/standardfeedsview.cpp" line="110"/>
         <source>All Time Popular</source>
-        <translation type="unfinished"/>
+        <translation>Populars de sempre</translation>
     </message>
 </context>
 <context>
     <message>
         <location filename="src/ytregions.cpp" line="28"/>
         <source>Algeria</source>
-        <translation type="unfinished"/>
+        <translation>Algèria</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="29"/>
         <source>Argentina</source>
-        <translation type="unfinished"/>
+        <translation>Argentina</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="30"/>
         <source>Australia</source>
-        <translation type="unfinished"/>
+        <translation>Austràlia</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="31"/>
         <source>Belgium</source>
-        <translation type="unfinished"/>
+        <translation>Bèlgica</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="32"/>
         <source>Brazil</source>
-        <translation type="unfinished"/>
+        <translation>Brazil</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="33"/>
         <source>Canada</source>
-        <translation type="unfinished"/>
+        <translation>Canadà</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="34"/>
         <source>Chile</source>
-        <translation type="unfinished"/>
+        <translation>Xile</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="35"/>
         <source>Colombia</source>
-        <translation type="unfinished"/>
+        <translation>Colòmbia</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="36"/>
         <source>Czech Republic</source>
-        <translation type="unfinished"/>
+        <translation>República Txeca</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="37"/>
         <source>Egypt</source>
-        <translation type="unfinished"/>
+        <translation>Egipte</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="38"/>
         <source>France</source>
-        <translation type="unfinished"/>
+        <translation>França</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="39"/>
         <source>Germany</source>
-        <translation type="unfinished"/>
+        <translation>Alemanya</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="40"/>
         <source>Ghana</source>
-        <translation type="unfinished"/>
+        <translation>Ghana</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="41"/>
         <source>Greece</source>
-        <translation type="unfinished"/>
+        <translation>Grècia</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="42"/>
         <source>Hong Kong</source>
-        <translation type="unfinished"/>
+        <translation>Hong Kong</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="43"/>
         <source>Hungary</source>
-        <translation type="unfinished"/>
+        <translation>Hongria</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="44"/>
         <source>India</source>
-        <translation type="unfinished"/>
+        <translation>Índia</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="45"/>
         <source>Indonesia</source>
-        <translation type="unfinished"/>
+        <translation>Indonèsia</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="46"/>
         <source>Ireland</source>
-        <translation type="unfinished"/>
+        <translation>Irlanda</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="47"/>
         <source>Israel</source>
-        <translation type="unfinished"/>
+        <translation>Israel</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="48"/>
         <source>Italy</source>
-        <translation type="unfinished"/>
+        <translation>Itàlia</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="49"/>
         <source>Japan</source>
-        <translation type="unfinished"/>
+        <translation>Japó</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="50"/>
         <source>Jordan</source>
-        <translation type="unfinished"/>
+        <translation>Jordània</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="51"/>
         <source>Kenya</source>
-        <translation type="unfinished"/>
+        <translation>Kenya</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="52"/>
         <source>Malaysia</source>
-        <translation type="unfinished"/>
+        <translation>Malàisia</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="53"/>
         <source>Mexico</source>
-        <translation type="unfinished"/>
+        <translation>Mèxic</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="54"/>
         <source>Morocco</source>
-        <translation type="unfinished"/>
+        <translation>Marroc</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="55"/>
         <source>Netherlands</source>
-        <translation type="unfinished"/>
+        <translation>Holanda</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="56"/>
         <source>New Zealand</source>
-        <translation type="unfinished"/>
+        <translation>Nova Zelanda</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="57"/>
         <source>Nigeria</source>
-        <translation type="unfinished"/>
+        <translation>Nigèria</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="58"/>
         <source>Peru</source>
-        <translation type="unfinished"/>
+        <translation>Perú</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="59"/>
         <source>Philippines</source>
-        <translation type="unfinished"/>
+        <translation>Filipines</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="60"/>
         <source>Poland</source>
-        <translation type="unfinished"/>
+        <translation>Polònia</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="61"/>
         <source>Russia</source>
-        <translation type="unfinished"/>
+        <translation>Rússia</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="62"/>
         <source>Saudi Arabia</source>
-        <translation type="unfinished"/>
+        <translation>Aràbia Saudita</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="63"/>
         <source>Singapore</source>
-        <translation type="unfinished"/>
+        <translation>Singapur</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="64"/>
         <source>South Africa</source>
-        <translation type="unfinished"/>
+        <translation>Sud-àfrica</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="65"/>
         <source>South Korea</source>
-        <translation type="unfinished"/>
+        <translation>Corea del Sud</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="66"/>
         <source>Spain</source>
-        <translation type="unfinished"/>
+        <translation>Espanya</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="67"/>
         <source>Sweden</source>
-        <translation type="unfinished"/>
+        <translation>Suècia</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="68"/>
         <source>Taiwan</source>
-        <translation type="unfinished"/>
+        <translation>Taiwan</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="69"/>
         <source>Tunisia</source>
-        <translation type="unfinished"/>
+        <translation>Tunísia</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="70"/>
         <source>Turkey</source>
-        <translation type="unfinished"/>
+        <translation>Turquia</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="71"/>
         <source>Uganda</source>
-        <translation type="unfinished"/>
+        <translation>Uganda</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="72"/>
         <source>United Arab Emirates</source>
-        <translation type="unfinished"/>
+        <translation>Emirats Àrabs Units</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="73"/>
         <source>United Kingdom</source>
-        <translation type="unfinished"/>
+        <translation>Regne Unit</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="74"/>
         <source>Yemen</source>
-        <translation type="unfinished"/>
+        <translation>Yemen</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="148"/>
         <source>Worldwide</source>
-        <translation type="unfinished"/>
+        <translation>Global</translation>
     </message>
 </context>
 </TS>
\ No newline at end of file
index 7cfebf45ea450d2f55f28e816729def9969e1faf..0340ea0a30eec4e4deca88afe91f5dcfc807aef9 100644 (file)
     <message>
         <location filename="src/mainwindow.cpp" line="569"/>
         <source>Open in &amp;Browser...</source>
-        <translation type="unfinished"/>
+        <translation>Åbn i &amp;browser...</translation>
     </message>
     <message>
         <location filename="src/mainwindow.cpp" line="591"/>
index e41b87cb3dea92a8c3718b9204741b78f5df5efd..9ded3ba6d992fb25d4be5f99d683b26e1f2ac50f 100644 (file)
@@ -70,7 +70,7 @@
     <message>
         <location filename="src/aboutview.h" line="39"/>
         <source>What you always wanted to know about %1 and never dared to ask</source>
-        <translation>Lo que siempre quiso saber acerca de %1 y nunca se atrevió a preguntar</translation>
+        <translation>Lo que siempre quisiste saber acerca de %1 y nunca te atreviste a preguntar</translation>
     </message>
 </context>
 <context>
     <message>
         <location filename="src/downloaditem.cpp" line="421"/>
         <source>bytes/sec</source>
-        <translation>bytes/s</translation>
+        <translation>bytes/seg</translation>
     </message>
     <message>
         <location filename="src/downloaditem.cpp" line="424"/>
         <source>KB/sec</source>
-        <translation>KB/s</translation>
+        <translation>KB/seg</translation>
     </message>
     <message>
         <location filename="src/downloaditem.cpp" line="427"/>
         <source>MB/sec</source>
-        <translation>MB/s</translation>
+        <translation>MB/seg</translation>
     </message>
     <message>
         <location filename="src/downloaditem.cpp" line="433"/>
     <message>
         <location filename="src/downloaditem.cpp" line="439"/>
         <source>%4 %5 remaining</source>
-        <translation>Quedan %4 %5</translation>
+        <translation>%4 %5 restantes</translation>
     </message>
 </context>
 <context>
     <message>
         <location filename="src/globalshortcuts.cpp" line="38"/>
         <source>Play/Pause</source>
-        <translation>Reproducir/pausar</translation>
+        <translation>Reproducir/Pausar</translation>
     </message>
     <message>
         <location filename="src/globalshortcuts.cpp" line="39"/>
     <message>
         <location filename="src/mainwindow.cpp" line="291"/>
         <source>&amp;Full Screen</source>
-        <translation>Pantalla &amp;completa</translation>
+        <translation>&amp;Pantalla Completa</translation>
     </message>
     <message>
         <location filename="src/mainwindow.cpp" line="292"/>
     <message>
         <location filename="src/mainwindow.cpp" line="326"/>
         <source>Copy the current video YouTube link to the clipboard</source>
-        <translation>Copiar el enlace a YouTube del vídeo actual en el portapapeles</translation>
+        <translation>Copiar el enlace de YouTube del vídeo actual en el portapapeles</translation>
     </message>
     <message>
         <location filename="src/mainwindow.cpp" line="333"/>
     <message>
         <location filename="src/mainwindow.cpp" line="384"/>
         <source>&amp;Website</source>
-        <translation>Sitio &amp;web</translation>
+        <translation>&amp;Sitio web</translation>
     </message>
     <message>
         <location filename="src/mainwindow.cpp" line="386"/>
     <message>
         <location filename="src/mainwindow.cpp" line="392"/>
         <source>Please support the continued development of %1</source>
-        <translation>Apoye el desarrollo continuo de %1</translation>
+        <translation>Porfavor apoye el desarrollo continuo de %1</translation>
     </message>
     <message>
         <location filename="src/mainwindow.cpp" line="397"/>
     <message>
         <location filename="src/mainwindow.cpp" line="426"/>
         <source>Mute volume</source>
-        <translation>Silenciar</translation>
+        <translation>Silenciar volumen</translation>
     </message>
     <message>
         <location filename="src/mainwindow.cpp" line="460"/>
     <message>
         <location filename="src/mainwindow.cpp" line="569"/>
         <source>Open in &amp;Browser...</source>
-        <translation type="unfinished"/>
+        <translation>Abrir en &amp;Navegador...</translation>
     </message>
     <message>
         <location filename="src/mainwindow.cpp" line="591"/>
     <message>
         <location filename="src/mainwindow.cpp" line="663"/>
         <source>&amp;Help</source>
-        <translation>Ay&amp;uda</translation>
+        <translation>&amp;Ayuda</translation>
     </message>
     <message>
         <location filename="src/mainwindow.cpp" line="738"/>
index 7d67e71c04f91b92eaf753c73435e44d70fd3e19..52227c2cd6850440b7ede29b0a73b6b8a095739d 100644 (file)
     <message>
         <location filename="src/channelview.cpp" line="119"/>
         <source>Name</source>
-        <translation type="unfinished"/>
+        <translation>Nombre</translation>
     </message>
     <message>
         <location filename="src/channelview.cpp" line="126"/>
index 73066ccee476eb18bf38142a7c64d189b47474c1..cf0338e207d39ce383119cd38ccf56393c4588a1 100644 (file)
     <message>
         <location filename="src/mainwindow.cpp" line="569"/>
         <source>Open in &amp;Browser...</source>
-        <translation type="unfinished"/>
+        <translation>Avaa &amp;selaimessa...</translation>
     </message>
     <message>
         <location filename="src/mainwindow.cpp" line="591"/>
index dcc2ebc274f3a4b48d12bb6d5674ab27495c84ce..5064e7e0f7c3798f692d8e37acc943642a2a92c7 100644 (file)
     <message>
         <location filename="src/mainwindow.cpp" line="569"/>
         <source>Open in &amp;Browser...</source>
-        <translation type="unfinished"/>
+        <translation>Avaa &amp;selaimessa...</translation>
     </message>
     <message>
         <location filename="src/mainwindow.cpp" line="591"/>
index 925b5e9e01008a9f6548970843d3227ec882e9f8..88396ed74e5b59bd1bcdc8938b66c686c4ce9714 100644 (file)
     <message>
         <location filename="src/mainwindow.cpp" line="569"/>
         <source>Open in &amp;Browser...</source>
-        <translation type="unfinished"/>
+        <translation>Ouvrir dans le &amp;navigateur ...</translation>
     </message>
     <message>
         <location filename="src/mainwindow.cpp" line="591"/>
index 3b606069d8c8e92ea4aeab8b433e86c6b2d5b2eb..fe747fca9f66060b27420335b7d8afd129dc09d9 100644 (file)
     <message>
         <location filename="src/mainwindow.cpp" line="569"/>
         <source>Open in &amp;Browser...</source>
-        <translation type="unfinished"/>
+        <translation>Abrir no &amp;navegador</translation>
     </message>
     <message>
         <location filename="src/mainwindow.cpp" line="591"/>
index 14aa41bc8d0cb93838c9462e193d6773cfd274a2..8ebede6ca125c8c84cb517a911546b078f1625a7 100644 (file)
     <message>
         <location filename="src/mainwindow.cpp" line="569"/>
         <source>Open in &amp;Browser...</source>
-        <translation type="unfinished"/>
+        <translation>&amp;Браузерден ачуу...</translation>
     </message>
     <message>
         <location filename="src/mainwindow.cpp" line="591"/>
     <message>
         <location filename="src/mediaview.cpp" line="972"/>
         <source>Subscribe to %1</source>
-        <translation type="unfinished"/>
+        <translation>%1 каналына жазылуу</translation>
     </message>
     <message>
         <location filename="src/mediaview.cpp" line="720"/>
index 60568a89f1e3660a71ba2a293620d7e55e6bf5f6..925d63aa88bd4ed65322dfec72804441ad7fd11b 100644 (file)
@@ -4,7 +4,7 @@ INCLUDEPATH += $$PWD
 DEPENDPATH += $$PWD
 
 # ls -1 *.ts | tr '\n' ' '
-TRANSLATIONS += ar.ts ast.ts bg_BG.ts ca.ts cs_CZ.ts da.ts de_DE.ts el.ts en.ts es.ts es_AR.ts es_ES.ts fi.ts fi_FI.ts fr.ts gl.ts he_IL.ts hu.ts ia.ts it.ts ja_JP.ts ky.ts ms_MY.ts nb.ts nl.ts pl.ts pl_PL.ts pt_BR.ts ro.ts ru.ts sk.ts sl.ts sq.ts sv_SE.ts tr.ts uk.ts uk_UA.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 ia.ts it.ts ja_JP.ts ky.ts ms_MY.ts nb.ts nl.ts pl.ts pl_PL.ts pt.ts pt_BR.ts ro.ts ru.ts sk.ts sl.ts sq.ts sv_SE.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 e46ffa36521e28bbf8b455cb0a8742a3934188e2..ea9444ccbdf9b1ce0df0ee88690dd1b979a3a771 100644 (file)
     <message>
         <location filename="src/mainwindow.cpp" line="569"/>
         <source>Open in &amp;Browser...</source>
-        <translation type="unfinished"/>
+        <translation>Buka dalam Pela&amp;yar...</translation>
     </message>
     <message>
         <location filename="src/mainwindow.cpp" line="591"/>
index a91f6f38826f728ddd5cc2996c66466ad32fceed..f45802034a20065a61eff5d9adecde916f648742 100644 (file)
     <message>
         <location filename="src/channelview.cpp" line="155"/>
         <source>Sort by</source>
-        <translation type="unfinished"/>
+        <translation>Sorter etter</translation>
     </message>
     <message>
         <location filename="src/channelview.cpp" line="214"/>
index 8643c3b4ebe80f11e877b8a0b24f4295ced69d35..bfffca01559ae6fab937a57758c7d179a709ecd9 100644 (file)
     <message>
         <location filename="src/mainwindow.cpp" line="569"/>
         <source>Open in &amp;Browser...</source>
-        <translation type="unfinished"/>
+        <translation>Open in &amp;browser...</translation>
     </message>
     <message>
         <location filename="src/mainwindow.cpp" line="591"/>
index f337baeb925c55e4a51662a7089d18cbb2e05d9b..968f3902d9b7db1adb98f92c739a9de45d1cc25d 100644 (file)
     <message>
         <location filename="src/channelview.cpp" line="119"/>
         <source>Name</source>
-        <translation type="unfinished"/>
+        <translation>Nazwa</translation>
     </message>
     <message>
         <location filename="src/channelview.cpp" line="126"/>
index 2d5b2a801ded824d0223fa33256e5f57598949a7..8b504172f8247f2ae145032364d9382380332165 100644 (file)
     <message>
         <location filename="src/channelview.cpp" line="232"/>
         <source>You have no subscriptions. Use the star symbol to subscribe to channels.</source>
-        <translation>У вас нед подписок. Используйте символ звездочки чтобы подпываться на каналы.</translation>
+        <translation>У вас нет подписок. Используйте символ звездочки чтобы подписаться на каналы.</translation>
     </message>
 </context>
 <context>
     <message>
         <location filename="src/mainwindow.cpp" line="569"/>
         <source>Open in &amp;Browser...</source>
-        <translation type="unfinished"/>
+        <translation>Открыть в &amp;браузере...</translation>
     </message>
     <message>
         <location filename="src/mainwindow.cpp" line="591"/>
     <message>
         <location filename="src/standardfeedsview.cpp" line="107"/>
         <source>Most Shared</source>
-        <translation type="unfinished"/>
+        <translation>Чаще делились</translation>
     </message>
     <message>
         <location filename="src/standardfeedsview.cpp" line="108"/>
index d5edd17d89ebb55320ae5cc5a61b227f53ea1aaa..0c7bce3ff1fbf695b5ffd5ddfbb64aa4711ab644 100644 (file)
     <message>
         <location filename="src/mainwindow.cpp" line="569"/>
         <source>Open in &amp;Browser...</source>
-        <translation type="unfinished"/>
+        <translation>Otvoriť v prehliadači...</translation>
     </message>
     <message>
         <location filename="src/mainwindow.cpp" line="591"/>
index 29c99210bced859abe2df4f76ec7ae76dbb2ca81..a4fc376f2f13582925ca5472616a8d32fe76cca3 100644 (file)
@@ -88,7 +88,7 @@
     <message>
         <location filename="local/src/activationdialog.cpp" line="35"/>
         <source>&amp;Code:</source>
-        <translation type="unfinished"/>
+        <translation>&amp;Koda:</translation>
     </message>
 </context>
 <context>
     <message>
         <location filename="local/src/activationview.cpp" line="85"/>
         <source>Buy License</source>
-        <translation>Kupi licenco</translation>
+        <translation>Kupite licenco</translation>
     </message>
 </context>
 <context>
     <message>
         <location filename="local/src/updatedialog.cpp" line="60"/>
         <source>Downloading update...</source>
-        <translation>Prenos posodobitve...</translation>
+        <translation>Prenos posodobitve ...</translation>
     </message>
 </context>
 <context>
     <message>
         <location filename="src/homeview.cpp" line="65"/>
         <source>Browse</source>
-        <translation type="unfinished"/>
+        <translation>Brskaj</translation>
     </message>
     <message>
         <location filename="src/homeview.cpp" line="67"/>
     <message>
         <location filename="src/homeview.cpp" line="71"/>
         <source>Subscriptions</source>
-        <translation type="unfinished"/>
+        <translation>Naročnine</translation>
     </message>
     <message>
         <location filename="src/homeview.cpp" line="73"/>
         <source>Channel subscriptions</source>
-        <translation type="unfinished"/>
+        <translation>Naročanje kanalov</translation>
     </message>
     <message>
         <location filename="src/homeview.h" line="42"/>
         <source>Make yourself comfortable</source>
-        <translation type="unfinished"/>
+        <translation>Udobno se namestite</translation>
     </message>
 </context>
 <context>
     <message>
         <location filename="src/mainwindow.cpp" line="558"/>
         <source>More...</source>
-        <translation>Več...</translation>
+        <translation>Več ...</translation>
     </message>
     <message>
         <location filename="src/mainwindow.cpp" line="561"/>
     <message>
         <location filename="src/mainwindow.cpp" line="569"/>
         <source>Open in &amp;Browser...</source>
-        <translation type="unfinished"/>
+        <translation>Odpri v &amp;Brskalniku...</translation>
     </message>
     <message>
         <location filename="src/mainwindow.cpp" line="591"/>
     <message>
         <location filename="src/mediaview.cpp" line="972"/>
         <source>Subscribe to %1</source>
-        <translation type="unfinished"/>
+        <translation>Naroči se na %1</translation>
     </message>
     <message>
         <location filename="src/mediaview.cpp" line="720"/>
     <message>
         <location filename="local/src/updatedialog.cpp" line="47"/>
         <source>Install Update</source>
-        <translation type="unfinished"/>
+        <translation>Namesti posodobitev</translation>
     </message>
 </context>
 <context>
     <message>
         <location filename="local/src/pastelineedit.cpp" line="6"/>
         <source>Paste</source>
-        <translation type="unfinished"/>
+        <translation>Prilepi</translation>
     </message>
 </context>
 <context>
     <message>
         <location filename="src/playlistitemdelegate.cpp" line="311"/>
         <source>%1 of %2 (%3) — %4</source>
-        <translation type="unfinished"/>
+        <translation>%1 od %2 (%3) — %4</translation>
     </message>
     <message>
         <location filename="src/playlistitemdelegate.cpp" line="318"/>
         <source>Preparing</source>
-        <translation type="unfinished"/>
+        <translation>V pripravi</translation>
     </message>
     <message>
         <location filename="src/playlistitemdelegate.cpp" line="320"/>
         <location filename="src/sidebarheader.cpp" line="39"/>
         <location filename="src/sidebarheader.cpp" line="46"/>
         <source>&amp;Back</source>
-        <translation type="unfinished"/>
+        <translation>Na&amp;zaj</translation>
     </message>
     <message>
         <location filename="src/sidebarheader.cpp" line="77"/>
     <message>
         <location filename="src/standardfeedsview.cpp" line="105"/>
         <source>Most Popular</source>
-        <translation type="unfinished"/>
+        <translation>Najbolj popularno</translation>
     </message>
     <message>
         <location filename="src/standardfeedsview.cpp" line="107"/>
         <source>Most Shared</source>
-        <translation type="unfinished"/>
+        <translation>Najbolj deljeno</translation>
     </message>
     <message>
         <location filename="src/standardfeedsview.cpp" line="108"/>
     <message>
         <location filename="src/standardfeedsview.cpp" line="109"/>
         <source>Top Rated</source>
-        <translation type="unfinished"/>
+        <translation>Najbolje ocenjeno</translation>
     </message>
     <message>
         <location filename="src/standardfeedsview.cpp" line="110"/>
     <message>
         <location filename="src/ytregions.cpp" line="63"/>
         <source>Singapore</source>
-        <translation type="unfinished"/>
+        <translation>Singapur</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="64"/>
     <message>
         <location filename="src/ytregions.cpp" line="73"/>
         <source>United Kingdom</source>
-        <translation>Velika Britanija</translation>
+        <translation>Združeno kraljestvo</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="74"/>
index 24a500a84064baa44854a63218d2cd93d714f9f9..e721753491a633b6040c083cc3764212632538c0 100644 (file)
@@ -78,7 +78,7 @@
     <message>
         <location filename="local/src/activationdialog.cpp" line="17"/>
         <source>Enter your License Details</source>
-        <translation type="unfinished"/>
+        <translation>Ange dina Licens Detaljer</translation>
     </message>
     <message>
         <location filename="local/src/activationdialog.cpp" line="29"/>
     <message>
         <location filename="local/src/activationview.cpp" line="53"/>
         <source>The full version allows you to download videos longer than %1 minutes and to watch videos without interruptions.</source>
-        <translation type="unfinished"/>
+        <translation>Fullversionen tillåter dig att ladda ner videor längre än %1 minut och att se på videor 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 type="unfinished"/>
+        <translation>Utan en licens, kommer programmet att upphöra inom %1 dag.</translation>
     </message>
     <message>
         <location filename="local/src/activationview.cpp" line="57"/>
     <message>
         <location filename="local/src/activationview.cpp" line="77"/>
         <source>Enter License</source>
-        <translation type="unfinished"/>
+        <translation>Ange Licens</translation>
     </message>
     <message>
         <location filename="local/src/activationview.cpp" line="85"/>
     <message>
         <location filename="src/channelaggregator.cpp" line="131"/>
         <source>By %1</source>
-        <translation type="unfinished"/>
+        <translation>Av %1</translation>
     </message>
     <message numerus="yes">
         <location filename="src/channelaggregator.cpp" line="133"/>
     <message>
         <location filename="src/channelitemdelegate.cpp" line="66"/>
         <source>All Videos</source>
-        <translation type="unfinished"/>
+        <translation>Alla Videor</translation>
     </message>
     <message>
         <location filename="src/channelitemdelegate.cpp" line="83"/>
         <source>Unwatched Videos</source>
-        <translation type="unfinished"/>
+        <translation>Osedda Videor</translation>
     </message>
 </context>
 <context>
     <message>
         <location filename="src/channelview.cpp" line="99"/>
         <source>Mark all as watched</source>
-        <translation type="unfinished"/>
+        <translation>Markera alla som sedda</translation>
     </message>
     <message>
         <location filename="src/channelview.cpp" line="107"/>
         <source>Show Updated</source>
-        <translation type="unfinished"/>
+        <translation>Visa Uppdaterat</translation>
     </message>
     <message>
         <location filename="src/channelview.cpp" line="119"/>
     <message>
         <location filename="src/channelview.cpp" line="126"/>
         <source>Last Updated</source>
-        <translation type="unfinished"/>
+        <translation>Senast Uppdaterad</translation>
     </message>
     <message>
         <location filename="src/channelview.cpp" line="133"/>
         <source>Last Added</source>
-        <translation type="unfinished"/>
+        <translation>Senast Tillagda</translation>
     </message>
     <message>
         <location filename="src/channelview.cpp" line="140"/>
         <source>Last Watched</source>
-        <translation type="unfinished"/>
+        <translation>Senast Sedda</translation>
     </message>
     <message>
         <location filename="src/channelview.cpp" line="147"/>
         <source>Most Watched</source>
-        <translation type="unfinished"/>
+        <translation>Mest Sedda</translation>
     </message>
     <message>
         <location filename="src/channelview.cpp" line="155"/>
         <source>Sort by</source>
-        <translation type="unfinished"/>
+        <translation>Sortera enligt</translation>
     </message>
     <message>
         <location filename="src/channelview.cpp" line="214"/>
         <source>All Videos</source>
-        <translation type="unfinished"/>
+        <translation>Alla Videor</translation>
     </message>
     <message>
         <location filename="src/channelview.cpp" line="218"/>
         <source>Unwatched Videos</source>
-        <translation type="unfinished"/>
+        <translation>Osedda Videor</translation>
     </message>
     <message>
         <location filename="src/channelview.cpp" line="230"/>
         <source>There are no updated subscriptions at this time.</source>
-        <translation type="unfinished"/>
+        <translation>Det finns inga uppdaterade prenumerationer just nu.</translation>
     </message>
     <message>
         <location filename="src/channelview.cpp" line="232"/>
         <source>You have no subscriptions. Use the star symbol to subscribe to channels.</source>
-        <translation type="unfinished"/>
+        <translation>Du har inga prenumerationer. Använd stjärnsymbolen för att prenumerera på kanaler.</translation>
     </message>
 </context>
 <context>
     <message>
         <location filename="src/downloadmanager.cpp" line="171"/>
         <source>%1 downloaded in %2</source>
-        <translation type="unfinished"/>
+        <translation>%1 nerladdad i %2</translation>
     </message>
     <message>
         <location filename="src/downloadmanager.cpp" line="174"/>
         <source>Download finished</source>
-        <translation type="unfinished"/>
+        <translation>Nerladdning klar</translation>
     </message>
     <message numerus="yes">
         <location filename="src/downloadmanager.cpp" line="179"/>
     <message>
         <location filename="local/src/updatedialog.cpp" line="60"/>
         <source>Downloading update...</source>
-        <translation type="unfinished"/>
+        <translation>Laddar ner uppdatering...</translation>
     </message>
 </context>
 <context>
     <message>
         <location filename="src/homeview.cpp" line="60"/>
         <source>Find videos and channels by keyword</source>
-        <translation type="unfinished"/>
+        <translation>Hitta videor och kanaler genom ett nyckelord</translation>
     </message>
     <message>
         <location filename="src/homeview.cpp" line="65"/>
         <source>Browse</source>
-        <translation type="unfinished"/>
+        <translation>Sök</translation>
     </message>
     <message>
         <location filename="src/homeview.cpp" line="67"/>
         <source>Browse videos by category</source>
-        <translation type="unfinished"/>
+        <translation>Sök videor enligt kategori</translation>
     </message>
     <message>
         <location filename="src/homeview.cpp" line="71"/>
         <source>Subscriptions</source>
-        <translation type="unfinished"/>
+        <translation>Prenumerationer</translation>
     </message>
     <message>
         <location filename="src/homeview.cpp" line="73"/>
         <source>Channel subscriptions</source>
-        <translation type="unfinished"/>
+        <translation>Kanal prenumerationer</translation>
     </message>
     <message>
         <location filename="src/homeview.h" line="42"/>
         <source>Make yourself comfortable</source>
-        <translation type="unfinished"/>
+        <translation>Gör det bekvämt för dig</translation>
     </message>
 </context>
 <context>
     <message>
         <location filename="src/mainwindow.cpp" line="486"/>
         <source>&amp;Subscribe to Channel</source>
-        <translation type="unfinished"/>
+        <translation>%Prenumerera på Kanalen</translation>
     </message>
     <message>
         <location filename="src/mainwindow.cpp" line="494"/>
     <message>
         <location filename="src/mainwindow.cpp" line="542"/>
         <source>&amp;Report an Issue...</source>
-        <translation type="unfinished"/>
+        <translation>&amp;Rapportera ett problem...</translation>
     </message>
     <message>
         <location filename="src/mainwindow.cpp" line="546"/>
         <source>&amp;Refine Search...</source>
-        <translation type="unfinished"/>
+        <translation>&amp;Förfinad sökning...</translation>
     </message>
     <message>
         <location filename="src/mainwindow.cpp" line="558"/>
     <message>
         <location filename="src/mainwindow.cpp" line="561"/>
         <source>&amp;Related Videos</source>
-        <translation type="unfinished"/>
+        <translation>&amp;Relaterade Videor</translation>
     </message>
     <message>
         <location filename="src/mainwindow.cpp" line="563"/>
         <source>Watch videos related to the current one</source>
-        <translation type="unfinished"/>
+        <translation>Visa videor relaterade till den nuvarande</translation>
     </message>
     <message>
         <location filename="src/mainwindow.cpp" line="569"/>
         <source>Open in &amp;Browser...</source>
-        <translation type="unfinished"/>
+        <translation>Öppna i &amp;Webbläsare</translation>
     </message>
     <message>
         <location filename="src/mainwindow.cpp" line="591"/>
     <message>
         <location filename="src/mainwindow.cpp" line="776"/>
         <source>Choose your content location</source>
-        <translation type="unfinished"/>
+        <translation>Välj plats för din volym</translation>
     </message>
     <message>
         <location filename="src/mainwindow.cpp" line="1047"/>
     <message>
         <location filename="src/mediaview.cpp" line="968"/>
         <source>Unsubscribe from %1</source>
-        <translation type="unfinished"/>
+        <translation>Avbryt prenumeration från %1</translation>
     </message>
     <message>
         <location filename="src/mediaview.cpp" line="972"/>
         <source>Subscribe to %1</source>
-        <translation type="unfinished"/>
+        <translation>Prenumerera på %1</translation>
     </message>
     <message>
         <location filename="src/mediaview.cpp" line="720"/>
     <message>
         <location filename="local/src/updatedialog.cpp" line="21"/>
         <source>A new version of %1 is available!</source>
-        <translation type="unfinished"/>
+        <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 type="unfinished"/>
+        <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 type="unfinished"/>
+        <translation>Vill du ladda ner den nu?</translation>
     </message>
     <message>
         <location filename="local/src/updatedialog.cpp" line="39"/>
         <source>Skip This Version</source>
-        <translation type="unfinished"/>
+        <translation>Hoppa Över Denna Version</translation>
     </message>
     <message>
         <location filename="local/src/updatedialog.cpp" line="43"/>
     <message>
         <location filename="src/playlistitemdelegate.cpp" line="318"/>
         <source>Preparing</source>
-        <translation type="unfinished"/>
+        <translation>Förbereder</translation>
     </message>
     <message>
         <location filename="src/playlistitemdelegate.cpp" line="320"/>
         <source>Failed</source>
-        <translation type="unfinished"/>
+        <translation>Misslyckades</translation>
     </message>
     <message>
         <location filename="src/playlistitemdelegate.cpp" line="322"/>
         <source>Completed</source>
-        <translation type="unfinished"/>
+        <translation>Färdig</translation>
     </message>
     <message>
         <location filename="src/playlistitemdelegate.cpp" line="324"/>
         <source>Stopped</source>
-        <translation type="unfinished"/>
+        <translation>Stoppad</translation>
     </message>
     <message>
         <location filename="src/playlistitemdelegate.cpp" line="360"/>
         <source>Stop downloading</source>
-        <translation type="unfinished"/>
+        <translation>Stoppa nerladdning</translation>
     </message>
     <message>
         <location filename="src/playlistitemdelegate.cpp" line="370"/>
         <source>Show in %1</source>
-        <translation type="unfinished"/>
+        <translation>Visa i %1</translation>
     </message>
     <message>
         <location filename="src/playlistitemdelegate.cpp" line="372"/>
         <source>Open parent folder</source>
-        <translation type="unfinished"/>
+        <translation>Öppna ursprungsmappen</translation>
     </message>
     <message>
         <location filename="src/playlistitemdelegate.cpp" line="381"/>
         <source>Restart downloading</source>
-        <translation type="unfinished"/>
+        <translation>Starta om nerladdning</translation>
     </message>
 </context>
 <context>
     <message>
         <location filename="src/playlistmodel.cpp" line="73"/>
         <source>Show %1 More</source>
-        <translation type="unfinished"/>
+        <translation>Visa %1 Till</translation>
     </message>
     <message>
         <location filename="src/playlistmodel.cpp" line="74"/>
     <message>
         <location filename="src/playlistmodel.cpp" line="75"/>
         <source>No more videos</source>
-        <translation type="unfinished"/>
+        <translation>Inga fler videor</translation>
     </message>
 </context>
 <context>
     <message>
         <location filename="src/refinesearchwidget.cpp" line="51"/>
         <source>Sort by</source>
-        <translation type="unfinished"/>
+        <translation>Sortera enligt</translation>
     </message>
     <message>
         <location filename="src/refinesearchwidget.cpp" line="55"/>
         <source>Relevance</source>
-        <translation type="unfinished"/>
+        <translation>Relevans</translation>
     </message>
     <message>
         <location filename="src/refinesearchwidget.cpp" line="56"/>
         <location filename="src/refinesearchwidget.cpp" line="72"/>
         <source>Date</source>
-        <translation type="unfinished"/>
+        <translation>Datum</translation>
     </message>
     <message>
         <location filename="src/refinesearchwidget.cpp" line="57"/>
         <source>View Count</source>
-        <translation type="unfinished"/>
+        <translation>Mest sedda</translation>
     </message>
     <message>
         <location filename="src/refinesearchwidget.cpp" line="58"/>
         <source>Rating</source>
-        <translation type="unfinished"/>
+        <translation>Betyg</translation>
     </message>
     <message>
         <location filename="src/refinesearchwidget.cpp" line="76"/>
         <source>Anytime</source>
-        <translation type="unfinished"/>
+        <translation>Närsomhelst</translation>
     </message>
     <message>
         <location filename="src/refinesearchwidget.cpp" line="77"/>
     <message>
         <location filename="src/refinesearchwidget.cpp" line="93"/>
         <source>Duration</source>
-        <translation type="unfinished"/>
+        <translation>Längd</translation>
     </message>
     <message>
         <location filename="src/refinesearchwidget.cpp" line="97"/>
         <location filename="src/sidebarheader.cpp" line="39"/>
         <location filename="src/sidebarheader.cpp" line="46"/>
         <source>&amp;Back</source>
-        <translation type="unfinished"/>
+        <translation>&amp;Tillbaka</translation>
     </message>
     <message>
         <location filename="src/sidebarheader.cpp" line="77"/>
         <source>Forward to %1</source>
-        <translation type="unfinished"/>
+        <translation>Framåt till %1</translation>
     </message>
     <message>
         <location filename="src/sidebarheader.cpp" line="90"/>
         <source>Back to %1</source>
-        <translation type="unfinished"/>
+        <translation>Tillbaka till %1</translation>
     </message>
 </context>
 <context>
     <message>
         <location filename="src/sidebarwidget.cpp" line="68"/>
         <source>Refine Search</source>
-        <translation type="unfinished"/>
+        <translation>Förfinad sökning</translation>
     </message>
     <message>
         <location filename="src/sidebarwidget.cpp" line="163"/>
     <message>
         <location filename="src/standardfeedsview.cpp" line="105"/>
         <source>Most Popular</source>
-        <translation type="unfinished"/>
+        <translation>Mest Populär</translation>
     </message>
     <message>
         <location filename="src/standardfeedsview.cpp" line="107"/>
         <source>Most Shared</source>
-        <translation type="unfinished"/>
+        <translation>Flest Delningar</translation>
     </message>
     <message>
         <location filename="src/standardfeedsview.cpp" line="108"/>
         <source>Most Discussed</source>
-        <translation type="unfinished"/>
+        <translation>Mest Omtalad</translation>
     </message>
     <message>
         <location filename="src/standardfeedsview.cpp" line="109"/>
         <source>Top Rated</source>
-        <translation type="unfinished"/>
+        <translation>Högsta Betyg</translation>
     </message>
     <message>
         <location filename="src/standardfeedsview.cpp" line="110"/>
         <source>All Time Popular</source>
-        <translation type="unfinished"/>
+        <translation>Mest populära genom tiderna</translation>
     </message>
 </context>
 <context>
     <message>
         <location filename="src/ytregions.cpp" line="28"/>
         <source>Algeria</source>
-        <translation type="unfinished"/>
+        <translation>Algeriet</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="29"/>
         <source>Argentina</source>
-        <translation type="unfinished"/>
+        <translation>Argentina</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="30"/>
         <source>Australia</source>
-        <translation type="unfinished"/>
+        <translation>Australien</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="31"/>
         <source>Belgium</source>
-        <translation type="unfinished"/>
+        <translation>Belgien</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="32"/>
         <source>Brazil</source>
-        <translation type="unfinished"/>
+        <translation>Brasilien</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="33"/>
         <source>Canada</source>
-        <translation type="unfinished"/>
+        <translation>Kanada</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="34"/>
         <source>Chile</source>
-        <translation type="unfinished"/>
+        <translation>Chile</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="35"/>
         <source>Colombia</source>
-        <translation type="unfinished"/>
+        <translation>Colombia</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="36"/>
         <source>Czech Republic</source>
-        <translation type="unfinished"/>
+        <translation>Tjeckiska Republiken</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="37"/>
         <source>Egypt</source>
-        <translation type="unfinished"/>
+        <translation>Egypten</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="38"/>
         <source>France</source>
-        <translation type="unfinished"/>
+        <translation>Frankrike</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="39"/>
         <source>Germany</source>
-        <translation type="unfinished"/>
+        <translation>Tyskland</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="40"/>
         <source>Ghana</source>
-        <translation type="unfinished"/>
+        <translation>Ghana</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="41"/>
         <source>Greece</source>
-        <translation type="unfinished"/>
+        <translation>Grekland</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="42"/>
     <message>
         <location filename="src/ytregions.cpp" line="43"/>
         <source>Hungary</source>
-        <translation type="unfinished"/>
+        <translation>Ungern</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="44"/>
         <source>India</source>
-        <translation type="unfinished"/>
+        <translation>Indien</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="45"/>
         <source>Indonesia</source>
-        <translation type="unfinished"/>
+        <translation>Indonesien</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="46"/>
     <message>
         <location filename="src/ytregions.cpp" line="49"/>
         <source>Japan</source>
-        <translation type="unfinished"/>
+        <translation>Japan</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="50"/>
         <source>Jordan</source>
-        <translation type="unfinished"/>
+        <translation>Jordanien</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="51"/>
         <source>Kenya</source>
-        <translation type="unfinished"/>
+        <translation>Kenya</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="52"/>
         <source>Malaysia</source>
-        <translation type="unfinished"/>
+        <translation>Malaysia</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="53"/>
         <source>Mexico</source>
-        <translation type="unfinished"/>
+        <translation>Mexico</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="54"/>
         <source>Morocco</source>
-        <translation type="unfinished"/>
+        <translation>Marocco</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="55"/>
         <source>Netherlands</source>
-        <translation type="unfinished"/>
+        <translation>Nederländerna</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="56"/>
         <source>New Zealand</source>
-        <translation type="unfinished"/>
+        <translation>Nya Zeeland</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="57"/>
         <source>Nigeria</source>
-        <translation type="unfinished"/>
+        <translation>Nigeria</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="58"/>
         <source>Peru</source>
-        <translation type="unfinished"/>
+        <translation>Peru</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="59"/>
         <source>Philippines</source>
-        <translation type="unfinished"/>
+        <translation>Filippinerna</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="60"/>
     <message>
         <location filename="src/ytregions.cpp" line="62"/>
         <source>Saudi Arabia</source>
-        <translation type="unfinished"/>
+        <translation>Saudi Arabien</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="63"/>
         <source>Singapore</source>
-        <translation type="unfinished"/>
+        <translation>Singapore</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="64"/>
         <source>South Africa</source>
-        <translation type="unfinished"/>
+        <translation>Syd Afrika</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="65"/>
         <source>South Korea</source>
-        <translation type="unfinished"/>
+        <translation>Syd Korea</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="66"/>
     <message>
         <location filename="src/ytregions.cpp" line="68"/>
         <source>Taiwan</source>
-        <translation type="unfinished"/>
+        <translation>Taiwan</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="69"/>
         <source>Tunisia</source>
-        <translation type="unfinished"/>
+        <translation>Tunisien</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="70"/>
     <message>
         <location filename="src/ytregions.cpp" line="71"/>
         <source>Uganda</source>
-        <translation type="unfinished"/>
+        <translation>Uganda</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="72"/>
         <source>United Arab Emirates</source>
-        <translation type="unfinished"/>
+        <translation>Förenade Arab Emiraten</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="73"/>
         <source>United Kingdom</source>
-        <translation type="unfinished"/>
+        <translation>Storbritannien</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="74"/>
         <source>Yemen</source>
-        <translation type="unfinished"/>
+        <translation>Jemen</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="148"/>
         <source>Worldwide</source>
-        <translation type="unfinished"/>
+        <translation>Från Hela Världen</translation>
     </message>
 </context>
 </TS>
\ No newline at end of file
index fde27d68f4af28982d09bd26ab032aa61fbd37c1..49912be9ce30a5a045a2ae9f6d73ae17ff1767b9 100644 (file)
     <message>
         <location filename="src/mainwindow.cpp" line="569"/>
         <source>Open in &amp;Browser...</source>
-        <translation type="unfinished"/>
+        <translation>&amp;Tarayıcıda aç...</translation>
     </message>
     <message>
         <location filename="src/mainwindow.cpp" line="591"/>
index 87a6f9c7501747ec47ee5f6aec5a7046fc45fbc8..ad27098d86817e38b045a3703deec5b7d3270b33 100644 (file)
     <message>
         <location filename="src/aboutview.cpp" line="62"/>
         <source>%1 is Free Software but its development takes precious time.</source>
-        <translation>%1 — вільне програмне забезпечення, але на його розробку було затрачено коштовний час.</translation>
+        <translation>%1 — вільне проґрамне забезпечення, але на його розробку було затрачено коштовний час.</translation>
     </message>
     <message>
         <location filename="src/aboutview.cpp" line="63"/>
         <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>
+        <translation>Будь ласка, &lt;a href=&apos;%1&apos;&gt;внесіть пожертву,&lt;/a&gt; щоб підтримати подальший розвиток %2.</translation>
     </message>
     <message>
         <location filename="src/aboutview.cpp" line="67"/>
         <source>You may want to try my other apps as well:</source>
-        <translation>Спробуйте інші програми:</translation>
+        <translation>Спробуйте інші проґрами:</translation>
     </message>
     <message>
         <location filename="src/aboutview.cpp" line="70"/>
     <message>
         <location filename="src/aboutview.cpp" line="80"/>
         <source>Translate %1 to your native language using %2</source>
-        <translation>Ð\9fеÑ\80еклаÑ\81Ñ\82и %1 Ð½Ð° Ð²Ð°Ñ\88Ñ\83 Ñ\80Ñ\96днÑ\83 Ð¼Ð¾Ð²Ñ\83 за допомогою %2</translation>
+        <translation>Ð\9fеÑ\80еклаÑ\81Ñ\82и %1 Ð²Ð°Ñ\88оÑ\8e Ñ\80Ñ\96дноÑ\8e Ð¼Ð¾Ð²Ð¾Ñ\8e за допомогою %2</translation>
     </message>
     <message>
         <location filename="src/aboutview.cpp" line="85"/>
         <source>Icon designed by %1.</source>
-        <translation>Розробник піктограм %1.</translation>
+        <translation>Розробник піктоґрам %1.</translation>
     </message>
     <message>
         <location filename="src/aboutview.cpp" line="89"/>
     <message>
         <location filename="src/aboutview.h" line="37"/>
         <source>About</source>
-        <translation>Про програму</translation>
+        <translation>Про проґраму</translation>
     </message>
     <message>
         <location filename="src/aboutview.h" line="39"/>
         <source>What you always wanted to know about %1 and never dared to ask</source>
-        <translation>Усе що ви завжди хотіли знати про %1, але не наважувалися запитати</translation>
+        <translation>Усе, що ви завжди хотіли знати про %1, але не наважувалися запитати</translation>
     </message>
 </context>
 <context>
@@ -78,7 +78,7 @@
     <message>
         <location filename="local/src/activationdialog.cpp" line="17"/>
         <source>Enter your License Details</source>
-        <translation>Ð\92ведіть дані вашої ліцензії</translation>
+        <translation>Уведіть дані вашої ліцензії</translation>
     </message>
     <message>
         <location filename="local/src/activationdialog.cpp" line="29"/>
     <message>
         <location filename="local/src/activationview.cpp" line="55"/>
         <source>Without a license, the application will expire in %1 days.</source>
-        <translation>Програму буде заблоковано через %1 днів, якщо ви не придбаєте ліцензію.</translation>
+        <translation>Проґраму буде заблоковано через %1 днів, якщо ви не придбаєте ліцензію.</translation>
     </message>
     <message>
         <location filename="local/src/activationview.cpp" line="57"/>
         <source>By purchasing the full version, you will also support the hard work I put into creating %1.</source>
-        <translation>Ð\9fÑ\80и Ð¿Ð¾ÐºÑ\83пÑ\86Ñ\96 Ð¿Ð¾Ð²Ð½Ð¾Ñ\97 Ð²ÐµÑ\80Ñ\81Ñ\96Ñ\97, Ð²Ð¸ Ñ\82акож Ð½Ð°Ð´Ð°Ñ\94Ñ\82е Ð¿Ñ\96дÑ\82Ñ\80имкÑ\83 Ñ\82Ñ\8fжкоÑ\97 Ñ\80обоÑ\82и Ñ\83 Ñ\81Ñ\82воÑ\80еннÑ\96 %1.</translation>
+        <translation>Ð\9fÑ\80и ÐºÑ\83пÑ\96влÑ\96 Ð¿Ð¾Ð²Ð½Ð¾Ñ\97 Ð²ÐµÑ\80Ñ\81Ñ\96Ñ\97, Ð²Ð¸, Ñ\82акож, Ð½Ð°Ð´Ð°Ñ\94Ñ\82е Ð¿Ñ\96дÑ\82Ñ\80имкÑ\83 Ð²Ð°Ð¶ÐºÑ\96й Ñ\80обоÑ\82Ñ\96, Ñ\8fка Ð±Ñ\83ла Ð·Ð°Ð´Ñ\96Ñ\8fна Ð¿Ñ\96д Ñ\87аÑ\81 Ñ\81Ñ\82воÑ\80еннÑ\8f %1.</translation>
     </message>
     <message>
         <location filename="local/src/activationview.cpp" line="70"/>
     <message>
         <location filename="local/src/activationview.cpp" line="77"/>
         <source>Enter License</source>
-        <translation>Ð\92вести ліцензію</translation>
+        <translation>Увести ліцензію</translation>
     </message>
     <message>
         <location filename="local/src/activationview.cpp" line="85"/>
     <message>
         <location filename="src/channelitemdelegate.cpp" line="66"/>
         <source>All Videos</source>
-        <translation>Усе відео</translation>
+        <translation>Усі відео</translation>
     </message>
     <message>
         <location filename="src/channelitemdelegate.cpp" line="83"/>
         <source>Unwatched Videos</source>
-        <translation>Непереглянутих відео</translation>
+        <translation>Непереглянуті відео</translation>
     </message>
 </context>
 <context>
     <message>
         <location filename="src/channelview.cpp" line="99"/>
         <source>Mark all as watched</source>
-        <translation>СкаÑ\81Ñ\83ваÑ\82и Ñ\83Ñ\81е Ñ\8fк Ð¿ÐµÑ\80еглÑ\8fнÑ\83Ñ\82е</translation>
+        <translation>Ð\9fознаÑ\87иÑ\82и Ð²Ñ\81е Ð¿ÐµÑ\80еглÑ\8fнÑ\83Ñ\82им</translation>
     </message>
     <message>
         <location filename="src/channelview.cpp" line="107"/>
     <message>
         <location filename="src/channelview.cpp" line="147"/>
         <source>Most Watched</source>
-        <translation>Що Ð½Ð°Ð¹Ð±Ñ\96лÑ\8cÑ\88е Ð¿ÐµÑ\80еглÑ\8fдаÑ\8eÑ\82Ñ\8cÑ\81Ñ\8f</translation>
+        <translation>Ð\9dайбÑ\96лÑ\8cÑ\88 Ð¿ÐµÑ\80еглÑ\8fдаÑ\8eÑ\87е</translation>
     </message>
     <message>
         <location filename="src/channelview.cpp" line="155"/>
         <source>Sort by</source>
-        <translation>СоÑ\80Ñ\82Ñ\83ваÑ\82и Ð¿Ð¾</translation>
+        <translation>СоÑ\80Ñ\82Ñ\83ваÑ\82и Ð·Ð°</translation>
     </message>
     <message>
         <location filename="src/channelview.cpp" line="214"/>
         <source>All Videos</source>
-        <translation>Усе відео</translation>
+        <translation>Усіма відео</translation>
     </message>
     <message>
         <location filename="src/channelview.cpp" line="218"/>
         <source>Unwatched Videos</source>
-        <translation>Ð\9dе Ð¿ÐµÑ\80еглÑ\8fнÑ\83Ñ\82е відео</translation>
+        <translation>Ð\9dе Ð¿ÐµÑ\80еглÑ\8fнÑ\83Ñ\82ими відео</translation>
     </message>
     <message>
         <location filename="src/channelview.cpp" line="230"/>
         <source>There are no updated subscriptions at this time.</source>
-        <translation>На даний час немає оновлень підписок.</translation>
+        <translation>Наразі  оновлень підписок немає.</translation>
     </message>
     <message>
         <location filename="src/channelview.cpp" line="232"/>
         <source>You have no subscriptions. Use the star symbol to subscribe to channels.</source>
-        <translation>Ð\92 Ð²Ð°Ñ\81 Ð½ÐµÐ¼Ð°Ñ\94 Ð¿Ñ\96дпиÑ\81ок. Ð\92икоÑ\80иÑ\81Ñ\82овÑ\83йÑ\82е Ñ\81имвол Ð·Ñ\96Ñ\80оÑ\87ки щоб підписуватися на канали.</translation>
+        <translation>У Ð²Ð°Ñ\81 Ð½ÐµÐ¼Ð°Ñ\94 Ð¿Ñ\96дпиÑ\81ок. Ð\92икоÑ\80иÑ\81Ñ\82овÑ\83йÑ\82е Ñ\81имвол Ð·Ñ\96Ñ\80оÑ\87ки, щоб підписуватися на канали.</translation>
     </message>
 </context>
 <context>
     <message>
         <location filename="src/downloaditem.cpp" line="406"/>
         <source>bytes</source>
-        <translation>байт</translation>
+        <translation>байтів</translation>
     </message>
     <message>
         <location filename="src/downloaditem.cpp" line="409"/>
     <message>
         <location filename="src/downloadmanager.cpp" line="84"/>
         <source>Get the full version</source>
-        <translation>Отримати повнофункціональну версію</translation>
+        <translation>Отримати повну версію</translation>
     </message>
     <message>
         <location filename="src/downloadmanager.cpp" line="171"/>
     <message>
         <location filename="src/downloadsettings.cpp" line="81"/>
         <source>Current downloads will still go in the previous location.</source>
-        <translation>Поточні завантаження усе ще буде збережено у попередньому місці.</translation>
+        <translation>Поточні завантаження буде як і раніше збережено у попередньому місці.</translation>
     </message>
     <message>
         <location filename="src/downloadsettings.cpp" line="92"/>
     <message>
         <location filename="local/src/updatedialog.cpp" line="60"/>
         <source>Downloading update...</source>
-        <translation>Завантажую оновлення ...</translation>
+        <translation>Завантаження оновлення...</translation>
     </message>
 </context>
 <context>
     <message>
         <location filename="src/globalshortcuts.cpp" line="40"/>
         <source>Stop playing after current track</source>
-        <translation>Зупинити по завершенні поточного</translation>
+        <translation>Зупинити після завершення поточного</translation>
     </message>
     <message>
         <location filename="src/globalshortcuts.cpp" line="41"/>
         <source>Next track</source>
-        <translation>Наступний</translation>
+        <translation>Наступний трек</translation>
     </message>
     <message>
         <location filename="src/globalshortcuts.cpp" line="42"/>
         <source>Previous track</source>
-        <translation>Попередній</translation>
+        <translation>Попередній трек</translation>
     </message>
     <message>
         <location filename="src/globalshortcuts.cpp" line="43"/>
         <source>Increase volume</source>
-        <translation>Ð\9fÑ\96двиÑ\89ити гучність</translation>
+        <translation>Ð\97бÑ\96лÑ\8cÑ\88ити гучність</translation>
     </message>
     <message>
         <location filename="src/globalshortcuts.cpp" line="44"/>
         <source>Decrease volume</source>
-        <translation>Ð\97низити гучність</translation>
+        <translation>Ð\97менÑ\88ити гучність</translation>
     </message>
     <message>
         <location filename="src/globalshortcuts.cpp" line="45"/>
     <message>
         <location filename="src/globalshortcuts.cpp" line="46"/>
         <source>Seek forward</source>
-        <translation>ШÑ\83каÑ\82и Ð½Ð°Ñ\81Ñ\82Ñ\83пне</translation>
+        <translation>Ð\9fеÑ\80емоÑ\82аÑ\82и Ð²Ð¿ÐµÑ\80ед</translation>
     </message>
     <message>
         <location filename="src/globalshortcuts.cpp" line="47"/>
         <source>Seek backward</source>
-        <translation>ШÑ\83каÑ\82и Ð¿Ð¾Ð¿ÐµÑ\80еднÑ\94</translation>
+        <translation>Ð\9fеÑ\80емоÑ\82аÑ\82и Ð½Ð°Ð·Ð°Ð´</translation>
     </message>
 </context>
 <context>
     <message>
         <location filename="src/homeview.cpp" line="67"/>
         <source>Browse videos by category</source>
-        <translation>Ð\9eглÑ\8fд Ð²Ñ\96део Ð¿Ð¾ ÐºÐ°Ñ\82егоÑ\80Ñ\96Ñ\8fÑ\85</translation>
+        <translation>Ð\9eглÑ\8fд Ð²Ñ\96део Ð·Ð° ÐºÐ°Ñ\82еÒ\91оÑ\80Ñ\96Ñ\8fми</translation>
     </message>
     <message>
         <location filename="src/homeview.cpp" line="71"/>
     <message>
         <location filename="src/homeview.h" line="42"/>
         <source>Make yourself comfortable</source>
-        <translation>Ð\92лаÑ\88Ñ\82овÑ\83йÑ\82еÑ\81Ñ\8f якнайзручніше</translation>
+        <translation>Ð\92лаÑ\88Ñ\82овÑ\83йÑ\82еÑ\81Ñ\8c якнайзручніше</translation>
     </message>
 </context>
 <context>
     <message>
         <location filename="src/mainwindow.cpp" line="292"/>
         <source>Go full screen</source>
-        <translation>Перехід у повноекранний режим</translation>
+        <translation>Перейти у повноекранний режим</translation>
     </message>
     <message>
         <location filename="src/mainwindow.cpp" line="306"/>
         <source>Hide the playlist and the toolbar</source>
-        <translation>Сховати список та панель інструментів</translation>
+        <translation>Сховати перелік та панель інструментів</translation>
     </message>
     <message>
         <location filename="src/mainwindow.cpp" line="319"/>
         <source>Go to the YouTube video page and pause playback</source>
-        <translation>Відкрити сторінку YouTube та призупини відтворення відео</translation>
+        <translation>Відкрити сторінку YouTube та призупинити відтворення відео</translation>
     </message>
     <message>
         <location filename="src/mainwindow.cpp" line="326"/>
     <message>
         <location filename="src/mainwindow.cpp" line="347"/>
         <source>Remove the selected videos from the playlist</source>
-        <translation>Вилучити обрані відео зі списку</translation>
+        <translation>Вилучити обрані відео з переліку</translation>
     </message>
     <message>
         <location filename="src/mainwindow.cpp" line="353"/>
         <source>Move &amp;Up</source>
-        <translation>Ð\92&amp;гоÑ\80Ñ\83</translation>
+        <translation>Ð\94о&amp;гоÑ\80и</translation>
     </message>
     <message>
         <location filename="src/mainwindow.cpp" line="354"/>
         <source>Move up the selected videos in the playlist</source>
-        <translation>Перемістити обране відео вгору по списку</translation>
+        <translation>Перемістити обране відео вгору по переліку</translation>
     </message>
     <message>
         <location filename="src/mainwindow.cpp" line="360"/>
         <source>Move &amp;Down</source>
-        <translation>Ð\92ни&amp;з</translation>
+        <translation>Ð\94они&amp;зÑ\83</translation>
     </message>
     <message>
         <location filename="src/mainwindow.cpp" line="361"/>
         <source>Move down the selected videos in the playlist</source>
-        <translation>Перемістити обране відео вниз по списку</translation>
+        <translation>Перемістити обране відео вниз по переліку</translation>
     </message>
     <message>
         <location filename="src/mainwindow.cpp" line="372"/>
     <message>
         <location filename="src/mainwindow.cpp" line="377"/>
         <source>&amp;Quit</source>
-        <translation>&amp;Ви&amp;хід</translation>
+        <translation>&amp;Ви&amp;йти</translation>
     </message>
     <message>
         <location filename="src/mainwindow.cpp" line="380"/>
     <message>
         <location filename="src/mainwindow.cpp" line="392"/>
         <source>Please support the continued development of %1</source>
-        <translation>Будь ласка підтримайте подальший розвиток %1</translation>
+        <translation>Будь ласка, підтримайте подальший розвиток %1</translation>
     </message>
     <message>
         <location filename="src/mainwindow.cpp" line="397"/>
         <source>&amp;About</source>
-        <translation>&amp;Про програму</translation>
+        <translation>&amp;Про проґраму</translation>
     </message>
     <message>
         <location filename="src/mainwindow.cpp" line="399"/>
     <message>
         <location filename="src/mainwindow.cpp" line="470"/>
         <source>Download the current video</source>
-        <translation>Завантажити поточне відео</translation>
+        <translation>Завантажити це відео</translation>
     </message>
     <message>
         <location filename="src/mainwindow.cpp" line="486"/>
     <message>
         <location filename="src/mainwindow.cpp" line="530"/>
         <source>&amp;Float on Top</source>
-        <translation>&amp;Ð\97веÑ\80Ñ\85Ñ\83 усіх вікон</translation>
+        <translation>&amp;Ð\97гоÑ\80и усіх вікон</translation>
     </message>
     <message>
         <location filename="src/mainwindow.cpp" line="535"/>
     <message>
         <location filename="src/mainwindow.cpp" line="561"/>
         <source>&amp;Related Videos</source>
-        <translation>Ð\9fо&amp;дÑ\96бне відео</translation>
+        <translation>СÑ\85о&amp;же відео</translation>
     </message>
     <message>
         <location filename="src/mainwindow.cpp" line="563"/>
     <message>
         <location filename="src/mainwindow.cpp" line="569"/>
         <source>Open in &amp;Browser...</source>
-        <translation>Відкрити in &amp;Браузер...</translation>
+        <translation>Відкрити у &amp;браузері...</translation>
     </message>
     <message>
         <location filename="src/mainwindow.cpp" line="591"/>
         <source>&amp;Application</source>
-        <translation>Пр&amp;ограма</translation>
+        <translation>Пр&amp;оґрама</translation>
     </message>
     <message>
         <location filename="src/mainwindow.cpp" line="575"/>
     <message>
         <location filename="src/mainwindow.cpp" line="619"/>
         <source>&amp;Playlist</source>
-        <translation>&amp;СпиÑ\81ок відтворення</translation>
+        <translation>&amp;Ð\9fеÑ\80елÑ\96к відтворення</translation>
     </message>
     <message>
         <location filename="src/mainwindow.cpp" line="628"/>
     <message>
         <location filename="src/mainwindow.cpp" line="642"/>
         <source>&amp;View</source>
-        <translation>&amp;Ð\92иглÑ\8fд</translation>
+        <translation>&amp;Ð\9fеÑ\80еглÑ\8fнÑ\83Ñ\82и</translation>
     </message>
     <message>
         <location filename="src/mainwindow.cpp" line="649"/>
     <message>
         <location filename="src/mainwindow.cpp" line="738"/>
         <source>Press %1 to raise the volume, %2 to lower it</source>
-        <translation>Натисніть %1, щоб приглушити гучність, та %2 щоб відновити її</translation>
+        <translation>Натисніть %1, аби приглушити гучність, та %2, щоб її відновити</translation>
     </message>
     <message>
         <location filename="src/mainwindow.cpp" line="930"/>
     <message>
         <location filename="src/mainwindow.cpp" line="981"/>
         <source>Do you want to exit %1 with a download in progress?</source>
-        <translation>Триває завантаження, бажаете закрити %1?</translation>
+        <translation>Триває завантаження, бажаєте закрити %1?</translation>
     </message>
     <message>
         <location filename="src/mainwindow.cpp" line="982"/>
     <message>
         <location filename="src/mainwindow.cpp" line="339"/>
         <source>Find Video &amp;Parts</source>
-        <translation>Знайти &amp;фрагменти відео</translation>
+        <translation>Знайти &amp;фраґменти відео</translation>
     </message>
     <message>
         <location filename="src/mainwindow.cpp" line="367"/>
     <message>
         <location filename="src/mainwindow.cpp" line="776"/>
         <source>Choose your content location</source>
-        <translation>Ð\92ибÑ\96Ñ\80 Ð¼Ñ\96Ñ\81Ñ\86еÑ\80озмÑ\96Ñ\89ення</translation>
+        <translation>Ð\9eбеÑ\80Ñ\96Ñ\82Ñ\8c Ñ\81воÑ\94 Ð¼Ñ\96Ñ\81Ñ\86еÑ\80озÑ\82аÑ\88Ñ\83вання</translation>
     </message>
     <message>
         <location filename="src/mainwindow.cpp" line="1047"/>
     <message>
         <location filename="src/mediaview.cpp" line="626"/>
         <source>You can now paste the video stream URL into another application</source>
-        <translation>Ви можете використовувати посилання на відео у зовнішній програмі</translation>
+        <translation>Ви можете використовувати посилання на відео у зовнішній проґрамі</translation>
     </message>
     <message>
         <location filename="src/mediaview.cpp" line="627"/>
     <message>
         <location filename="src/mediaview.cpp" line="937"/>
         <source>Sent from %1</source>
-        <translation>Ð\92Ñ\96дпÑ\80авити з %1</translation>
+        <translation>Ð\9dадÑ\96Ñ\81лати з %1</translation>
     </message>
     <message>
         <location filename="src/mediaview.cpp" line="968"/>
     <message>
         <location filename="src/mediaview.cpp" line="720"/>
         <source>Get the full version</source>
-        <translation>Отримати повнофункціональну версію</translation>
+        <translation>Отримати повну версію</translation>
     </message>
     <message>
         <location filename="src/mediaview.cpp" line="757"/>
     <message>
         <location filename="local/src/updatedialog.cpp" line="33"/>
         <source>Would you like to download it now?</source>
-        <translation>Ð\92и Ð±Ð°Ð¶Ð°Ñ\94Ñ\82е Ð·Ð°Ð²Ð°Ð½Ñ\82ажиÑ\82и зараз?</translation>
+        <translation>Ð\91ажаÑ\94Ñ\82е Ð·Ð°Ð²Ð°Ð½Ñ\82ажиÑ\82и Ñ\86е зараз?</translation>
     </message>
     <message>
         <location filename="local/src/updatedialog.cpp" line="39"/>
     <message>
         <location filename="src/playlistitemdelegate.cpp" line="318"/>
         <source>Preparing</source>
-        <translation>Ð\93оÑ\82Ñ\83Ñ\94Ñ\82Ñ\8cÑ\81Ñ\8f</translation>
+        <translation>Ð\9fÑ\96дгоÑ\82овка</translation>
     </message>
     <message>
         <location filename="src/playlistitemdelegate.cpp" line="320"/>
     <message>
         <location filename="src/playlistitemdelegate.cpp" line="322"/>
         <source>Completed</source>
-        <translation>Ð\97авеÑ\80Ñ\88ено</translation>
+        <translation>Ð\92иконано</translation>
     </message>
     <message>
         <location filename="src/playlistitemdelegate.cpp" line="324"/>
     <message>
         <location filename="src/refinesearchwidget.cpp" line="51"/>
         <source>Sort by</source>
-        <translation>СоÑ\80Ñ\82Ñ\83ваÑ\82и Ð¿Ð¾</translation>
+        <translation>СоÑ\80Ñ\82Ñ\83ваÑ\82и Ð·Ð°</translation>
     </message>
     <message>
         <location filename="src/refinesearchwidget.cpp" line="55"/>
         <source>Relevance</source>
-        <translation>РелеванÑ\82нÑ\96Ñ\81Ñ\82Ñ\8c</translation>
+        <translation>РелеванÑ\82нÑ\96Ñ\81Ñ\82Ñ\8e</translation>
     </message>
     <message>
         <location filename="src/refinesearchwidget.cpp" line="56"/>
         <location filename="src/refinesearchwidget.cpp" line="72"/>
         <source>Date</source>
-        <translation>Ð\94аÑ\82а</translation>
+        <translation>Ð\94аÑ\82оÑ\8e</translation>
     </message>
     <message>
         <location filename="src/refinesearchwidget.cpp" line="57"/>
         <source>View Count</source>
-        <translation>Ð\9aÑ\96лÑ\8cкÑ\96Ñ\81Ñ\82Ñ\8c переглядів</translation>
+        <translation>ЧиÑ\81лом переглядів</translation>
     </message>
     <message>
         <location filename="src/refinesearchwidget.cpp" line="58"/>
         <source>Rating</source>
-        <translation>Рейтинг</translation>
+        <translation>Рейтинґом</translation>
     </message>
     <message>
         <location filename="src/refinesearchwidget.cpp" line="76"/>
     <message>
         <location filename="src/refinesearchwidget.cpp" line="93"/>
         <source>Duration</source>
-        <translation>ТÑ\80ивалÑ\96Ñ\81Ñ\82Ñ\8c</translation>
+        <translation>ТÑ\80ивалÑ\96Ñ\81Ñ\82Ñ\8e</translation>
     </message>
     <message>
         <location filename="src/refinesearchwidget.cpp" line="97"/>
     <message>
         <location filename="src/searchlineedit.cpp" line="177"/>
         <source>Search</source>
-        <translation>Ð\9fоÑ\88Ñ\83к</translation>
+        <translation>ШÑ\83каÑ\82и</translation>
     </message>
 </context>
 <context>
     <message>
         <location filename="src/searchview.cpp" line="189"/>
         <source>Get the full version</source>
-        <translation>Отримати повнофункціональну версію</translation>
+        <translation>Отримати повну версію</translation>
     </message>
     <message>
         <location filename="src/searchview.cpp" line="108"/>
         <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>Ð\92ведіть</translation>
+        <translation>Уведіть</translation>
     </message>
     <message>
         <location filename="src/searchview.cpp" line="113"/>
     <message>
         <location filename="src/searchview.cpp" line="119"/>
         <source>to start watching videos.</source>
-        <translation>щоб почати перегляд.</translation>
+        <translation>аби розпочати перегляд.</translation>
     </message>
     <message>
         <location filename="src/searchview.cpp" line="143"/>
         <source>Watch</source>
-        <translation>Ð\9fеÑ\80еглÑ\8fд</translation>
+        <translation>Ð\94ивиÑ\82иÑ\81Ñ\8f</translation>
     </message>
     <message>
         <location filename="src/searchview.cpp" line="161"/>
         <source>Recent keywords</source>
-        <translation>Недавній пошук</translation>
+        <translation>Нещодавній пошук</translation>
     </message>
     <message>
         <location filename="src/searchview.cpp" line="174"/>
     <message>
         <location filename="src/sidebarheader.cpp" line="77"/>
         <source>Forward to %1</source>
-        <translation>Ð\92перед до %1</translation>
+        <translation>Уперед до %1</translation>
     </message>
     <message>
         <location filename="src/sidebarheader.cpp" line="90"/>
     <message>
         <location filename="src/sidebarwidget.cpp" line="163"/>
         <source>Did you mean: %1</source>
-        <translation>Можливо ви мали на увазі: %1</translation>
+        <translation>Можливо, ви мали на увазі: %1</translation>
     </message>
 </context>
 <context>
     <message>
         <location filename="src/standardfeedsview.cpp" line="107"/>
         <source>Most Shared</source>
-        <translation>Most Shared</translation>
+        <translation>Найпоширюваніше</translation>
     </message>
     <message>
         <location filename="src/standardfeedsview.cpp" line="108"/>
         <source>Most Discussed</source>
-        <translation>Що Ð½Ð°Ð¹Ð±Ñ\96лÑ\8cÑ\88е Ð¾Ð±Ð³Ð¾Ð²Ð¾Ñ\80Ñ\8eÑ\8eÑ\82Ñ\8c</translation>
+        <translation>Ð\9dайбÑ\96лÑ\8cÑ\88 Ð¾Ð±Ð³Ð¾Ð²Ð¾Ñ\80Ñ\8eване</translation>
     </message>
     <message>
         <location filename="src/standardfeedsview.cpp" line="109"/>
         <source>Top Rated</source>
-        <translation>Ð\9aÑ\80аÑ\89Ñ\96 Ð¾Ñ\86Ñ\96нки</translation>
+        <translation>Ð\9dайкÑ\80аÑ\89е</translation>
     </message>
     <message>
         <location filename="src/standardfeedsview.cpp" line="110"/>
         <source>All Time Popular</source>
-        <translation>Популярне за увесь час</translation>
+        <translation>Популярне за весь час</translation>
     </message>
 </context>
 <context>
     <message>
         <location filename="src/ytregions.cpp" line="40"/>
         <source>Ghana</source>
-        <translation>Гана</translation>
+        <translation>Ґана</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="41"/>
     <message>
         <location filename="src/ytregions.cpp" line="42"/>
         <source>Hong Kong</source>
-        <translation>Гонконг</translation>
+        <translation>Гонконґ</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="43"/>
     <message>
         <location filename="src/ytregions.cpp" line="57"/>
         <source>Nigeria</source>
-        <translation>Нігерія</translation>
+        <translation>Ніґерія</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="58"/>
     <message>
         <location filename="src/ytregions.cpp" line="59"/>
         <source>Philippines</source>
-        <translation>Філіпіни</translation>
+        <translation>Філіппіни</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="60"/>
     <message>
         <location filename="src/ytregions.cpp" line="63"/>
         <source>Singapore</source>
-        <translation>Сингапур</translation>
+        <translation>Синґапур</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="64"/>
     <message>
         <location filename="src/ytregions.cpp" line="71"/>
         <source>Uganda</source>
-        <translation>Уганда</translation>
+        <translation>Уґанда</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="72"/>
     <message>
         <location filename="src/ytregions.cpp" line="74"/>
         <source>Yemen</source>
-        <translation>Ð\99емен</translation>
+        <translation>Ð\84мен</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="148"/>
index 1ebd77e1ac89c33a1d462bb546758bd3517c77b1..257a2897576cba7c18cb14dae8ee2a8d7f1572a6 100644 (file)
     <message>
         <location filename="src/aboutview.cpp" line="62"/>
         <source>%1 is Free Software but its development takes precious time.</source>
-        <translation>%1 — вільне програмне забезпечення, але на його розробку було затрачено коштовний час.</translation>
+        <translation>%1 — вільне проґрамне забезпечення, але на його розробку було затрачено коштовний час.</translation>
     </message>
     <message>
         <location filename="src/aboutview.cpp" line="63"/>
         <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>
+        <translation>Будь ласка, &lt;a href=&apos;%1&apos;&gt;внесіть пожертву,&lt;/a&gt; щоб підтримати подальший розвиток %2.</translation>
     </message>
     <message>
         <location filename="src/aboutview.cpp" line="67"/>
         <source>You may want to try my other apps as well:</source>
-        <translation>Спробуйте інші програми:</translation>
+        <translation>Спробуйте інші проґрами:</translation>
     </message>
     <message>
         <location filename="src/aboutview.cpp" line="70"/>
     <message>
         <location filename="src/aboutview.cpp" line="80"/>
         <source>Translate %1 to your native language using %2</source>
-        <translation>Ð\9fеÑ\80еклаÑ\81Ñ\82и %1 Ð½Ð° Ð²Ð°Ñ\88Ñ\83 Ñ\80Ñ\96днÑ\83 Ð¼Ð¾Ð²Ñ\83 за допомогою %2</translation>
+        <translation>Ð\9fеÑ\80еклаÑ\81Ñ\82и %1 Ð²Ð°Ñ\88оÑ\8e Ñ\80Ñ\96дноÑ\8e Ð¼Ð¾Ð²Ð¾Ñ\8e за допомогою %2</translation>
     </message>
     <message>
         <location filename="src/aboutview.cpp" line="85"/>
         <source>Icon designed by %1.</source>
-        <translation>Розробник піктограм %1.</translation>
+        <translation>Розробник піктоґрам %1.</translation>
     </message>
     <message>
         <location filename="src/aboutview.cpp" line="89"/>
     <message>
         <location filename="src/aboutview.h" line="37"/>
         <source>About</source>
-        <translation>Про програму</translation>
+        <translation>Про проґраму</translation>
     </message>
     <message>
         <location filename="src/aboutview.h" line="39"/>
         <source>What you always wanted to know about %1 and never dared to ask</source>
-        <translation>Усе що ви завжди хотіли знати про %1, але не наважувалися запитати</translation>
+        <translation>Усе, що ви завжди хотіли знати про %1, але не наважувалися запитати</translation>
     </message>
 </context>
 <context>
@@ -78,7 +78,7 @@
     <message>
         <location filename="local/src/activationdialog.cpp" line="17"/>
         <source>Enter your License Details</source>
-        <translation>Ð\92ведіть дані вашої ліцензії</translation>
+        <translation>Уведіть дані вашої ліцензії</translation>
     </message>
     <message>
         <location filename="local/src/activationdialog.cpp" line="29"/>
     <message>
         <location filename="local/src/activationview.cpp" line="55"/>
         <source>Without a license, the application will expire in %1 days.</source>
-        <translation>Програму буде заблоковано через %1 днів, якщо ви не придбаєте ліцензію.</translation>
+        <translation>Проґраму буде заблоковано через %1 днів, якщо ви не придбаєте ліцензію.</translation>
     </message>
     <message>
         <location filename="local/src/activationview.cpp" line="57"/>
         <source>By purchasing the full version, you will also support the hard work I put into creating %1.</source>
-        <translation>Ð\9fÑ\80и Ð¿Ð¾ÐºÑ\83пÑ\86Ñ\96 Ð¿Ð¾Ð²Ð½Ð¾Ñ\97 Ð²ÐµÑ\80Ñ\81Ñ\96Ñ\97, Ð²Ð¸ Ñ\82акож Ð½Ð°Ð´Ð°Ñ\94Ñ\82е Ð¿Ñ\96дÑ\82Ñ\80имкÑ\83 Ñ\82Ñ\8fжкоÑ\97 Ñ\80обоÑ\82и Ñ\83 Ñ\81Ñ\82воÑ\80еннÑ\96 %1.</translation>
+        <translation>Ð\9fÑ\80и ÐºÑ\83пÑ\96влÑ\96 Ð¿Ð¾Ð²Ð½Ð¾Ñ\97 Ð²ÐµÑ\80Ñ\81Ñ\96Ñ\97, Ð²Ð¸, Ñ\82акож, Ð½Ð°Ð´Ð°Ñ\94Ñ\82е Ð¿Ñ\96дÑ\82Ñ\80имкÑ\83 Ð²Ð°Ð¶ÐºÑ\96й Ñ\80обоÑ\82Ñ\96, Ñ\8fка Ð±Ñ\83ла Ð·Ð°Ð´Ñ\96Ñ\8fна Ð¿Ñ\96д Ñ\87аÑ\81 Ñ\81Ñ\82воÑ\80еннÑ\8f %1.</translation>
     </message>
     <message>
         <location filename="local/src/activationview.cpp" line="70"/>
     <message>
         <location filename="local/src/activationview.cpp" line="77"/>
         <source>Enter License</source>
-        <translation>Ð\92вести ліцензію</translation>
+        <translation>Увести ліцензію</translation>
     </message>
     <message>
         <location filename="local/src/activationview.cpp" line="85"/>
     <message>
         <location filename="src/channelitemdelegate.cpp" line="66"/>
         <source>All Videos</source>
-        <translation>Усе відео</translation>
+        <translation>Усі відео</translation>
     </message>
     <message>
         <location filename="src/channelitemdelegate.cpp" line="83"/>
         <source>Unwatched Videos</source>
-        <translation>Непереглянутих відео</translation>
+        <translation>Непереглянуті відео</translation>
     </message>
 </context>
 <context>
     <message>
         <location filename="src/channelview.cpp" line="99"/>
         <source>Mark all as watched</source>
-        <translation>СкаÑ\81Ñ\83ваÑ\82и Ñ\83Ñ\81е Ñ\8fк Ð¿ÐµÑ\80еглÑ\8fнÑ\83Ñ\82е</translation>
+        <translation>Ð\9fознаÑ\87иÑ\82и Ð²Ñ\81е Ð¿ÐµÑ\80еглÑ\8fнÑ\83Ñ\82им</translation>
     </message>
     <message>
         <location filename="src/channelview.cpp" line="107"/>
     <message>
         <location filename="src/channelview.cpp" line="147"/>
         <source>Most Watched</source>
-        <translation>Що Ð½Ð°Ð¹Ð±Ñ\96лÑ\8cÑ\88е Ð¿ÐµÑ\80еглÑ\8fдаÑ\8eÑ\82Ñ\8cÑ\81Ñ\8f</translation>
+        <translation>Ð\9dайбÑ\96лÑ\8cÑ\88 Ð¿ÐµÑ\80еглÑ\8fдаÑ\8eÑ\87е</translation>
     </message>
     <message>
         <location filename="src/channelview.cpp" line="155"/>
         <source>Sort by</source>
-        <translation>СоÑ\80Ñ\82Ñ\83ваÑ\82и Ð¿Ð¾</translation>
+        <translation>СоÑ\80Ñ\82Ñ\83ваÑ\82и Ð·Ð°</translation>
     </message>
     <message>
         <location filename="src/channelview.cpp" line="214"/>
         <source>All Videos</source>
-        <translation>Усе відео</translation>
+        <translation>Усіма відео</translation>
     </message>
     <message>
         <location filename="src/channelview.cpp" line="218"/>
         <source>Unwatched Videos</source>
-        <translation>Ð\9dе Ð¿ÐµÑ\80еглÑ\8fнÑ\83Ñ\82е відео</translation>
+        <translation>Ð\9dе Ð¿ÐµÑ\80еглÑ\8fнÑ\83Ñ\82ими відео</translation>
     </message>
     <message>
         <location filename="src/channelview.cpp" line="230"/>
         <source>There are no updated subscriptions at this time.</source>
-        <translation>На даний час немає оновлень підписок.</translation>
+        <translation>Наразі  оновлень підписок немає.</translation>
     </message>
     <message>
         <location filename="src/channelview.cpp" line="232"/>
         <source>You have no subscriptions. Use the star symbol to subscribe to channels.</source>
-        <translation>Ð\92 Ð²Ð°Ñ\81 Ð½ÐµÐ¼Ð°Ñ\94 Ð¿Ñ\96дпиÑ\81ок. Ð\92икоÑ\80иÑ\81Ñ\82овÑ\83йÑ\82е Ñ\81имвол Ð·Ñ\96Ñ\80оÑ\87ки щоб підписуватися на канали.</translation>
+        <translation>У Ð²Ð°Ñ\81 Ð½ÐµÐ¼Ð°Ñ\94 Ð¿Ñ\96дпиÑ\81ок. Ð\92икоÑ\80иÑ\81Ñ\82овÑ\83йÑ\82е Ñ\81имвол Ð·Ñ\96Ñ\80оÑ\87ки, щоб підписуватися на канали.</translation>
     </message>
 </context>
 <context>
     <message>
         <location filename="src/downloaditem.cpp" line="406"/>
         <source>bytes</source>
-        <translation>байт</translation>
+        <translation>байтів</translation>
     </message>
     <message>
         <location filename="src/downloaditem.cpp" line="409"/>
     <message>
         <location filename="src/downloadmanager.cpp" line="84"/>
         <source>Get the full version</source>
-        <translation>Отримати повнофункціональну версію</translation>
+        <translation>Отримати повну версію</translation>
     </message>
     <message>
         <location filename="src/downloadmanager.cpp" line="171"/>
     <message>
         <location filename="src/downloadsettings.cpp" line="81"/>
         <source>Current downloads will still go in the previous location.</source>
-        <translation>Поточні завантаження усе ще буде збережено у попередньому місці.</translation>
+        <translation>Поточні завантаження буде як і раніше збережено у попередньому місці.</translation>
     </message>
     <message>
         <location filename="src/downloadsettings.cpp" line="92"/>
     <message>
         <location filename="local/src/updatedialog.cpp" line="60"/>
         <source>Downloading update...</source>
-        <translation>Завантажую оновлення ...</translation>
+        <translation>Завантаження оновлення...</translation>
     </message>
 </context>
 <context>
     <message>
         <location filename="src/globalshortcuts.cpp" line="40"/>
         <source>Stop playing after current track</source>
-        <translation>Зупинити по завершенні поточного</translation>
+        <translation>Зупинити після завершення поточного</translation>
     </message>
     <message>
         <location filename="src/globalshortcuts.cpp" line="41"/>
         <source>Next track</source>
-        <translation>Наступний</translation>
+        <translation>Наступний трек</translation>
     </message>
     <message>
         <location filename="src/globalshortcuts.cpp" line="42"/>
         <source>Previous track</source>
-        <translation>Попередній</translation>
+        <translation>Попередній трек</translation>
     </message>
     <message>
         <location filename="src/globalshortcuts.cpp" line="43"/>
         <source>Increase volume</source>
-        <translation>Ð\9fÑ\96двиÑ\89ити гучність</translation>
+        <translation>Ð\97бÑ\96лÑ\8cÑ\88ити гучність</translation>
     </message>
     <message>
         <location filename="src/globalshortcuts.cpp" line="44"/>
         <source>Decrease volume</source>
-        <translation>Ð\97низити гучність</translation>
+        <translation>Ð\97менÑ\88ити гучність</translation>
     </message>
     <message>
         <location filename="src/globalshortcuts.cpp" line="45"/>
     <message>
         <location filename="src/globalshortcuts.cpp" line="46"/>
         <source>Seek forward</source>
-        <translation>ШÑ\83каÑ\82и Ð½Ð°Ñ\81Ñ\82Ñ\83пне</translation>
+        <translation>Ð\9fеÑ\80емоÑ\82аÑ\82и Ð²Ð¿ÐµÑ\80ед</translation>
     </message>
     <message>
         <location filename="src/globalshortcuts.cpp" line="47"/>
         <source>Seek backward</source>
-        <translation>ШÑ\83каÑ\82и Ð¿Ð¾Ð¿ÐµÑ\80еднÑ\94</translation>
+        <translation>Ð\9fеÑ\80емоÑ\82аÑ\82и Ð½Ð°Ð·Ð°Ð´</translation>
     </message>
 </context>
 <context>
     <message>
         <location filename="src/homeview.cpp" line="67"/>
         <source>Browse videos by category</source>
-        <translation>Ð\9eглÑ\8fд Ð²Ñ\96део Ð¿Ð¾ ÐºÐ°Ñ\82егоÑ\80Ñ\96Ñ\8fÑ\85</translation>
+        <translation>Ð\9eглÑ\8fд Ð²Ñ\96део Ð·Ð° ÐºÐ°Ñ\82еÒ\91оÑ\80Ñ\96Ñ\8fми</translation>
     </message>
     <message>
         <location filename="src/homeview.cpp" line="71"/>
     <message>
         <location filename="src/homeview.h" line="42"/>
         <source>Make yourself comfortable</source>
-        <translation>Ð\92лаÑ\88Ñ\82овÑ\83йÑ\82еÑ\81Ñ\8f якнайзручніше</translation>
+        <translation>Ð\92лаÑ\88Ñ\82овÑ\83йÑ\82еÑ\81Ñ\8c якнайзручніше</translation>
     </message>
 </context>
 <context>
     <message>
         <location filename="src/mainwindow.cpp" line="292"/>
         <source>Go full screen</source>
-        <translation>Перехід у повноекранний режим</translation>
+        <translation>Перейти у повноекранний режим</translation>
     </message>
     <message>
         <location filename="src/mainwindow.cpp" line="306"/>
         <source>Hide the playlist and the toolbar</source>
-        <translation>Сховати список та панель інструментів</translation>
+        <translation>Сховати перелік та панель інструментів</translation>
     </message>
     <message>
         <location filename="src/mainwindow.cpp" line="319"/>
         <source>Go to the YouTube video page and pause playback</source>
-        <translation>Відкрити сторінку YouTube та призупини відтворення відео</translation>
+        <translation>Відкрити сторінку YouTube та призупинити відтворення відео</translation>
     </message>
     <message>
         <location filename="src/mainwindow.cpp" line="326"/>
     <message>
         <location filename="src/mainwindow.cpp" line="347"/>
         <source>Remove the selected videos from the playlist</source>
-        <translation>Вилучити обрані відео зі списку</translation>
+        <translation>Вилучити обрані відео з переліку</translation>
     </message>
     <message>
         <location filename="src/mainwindow.cpp" line="353"/>
         <source>Move &amp;Up</source>
-        <translation>Ð\92&amp;гоÑ\80Ñ\83</translation>
+        <translation>Ð\94о&amp;гоÑ\80и</translation>
     </message>
     <message>
         <location filename="src/mainwindow.cpp" line="354"/>
         <source>Move up the selected videos in the playlist</source>
-        <translation>Перемістити обране відео вгору по списку</translation>
+        <translation>Перемістити обране відео вгору по переліку</translation>
     </message>
     <message>
         <location filename="src/mainwindow.cpp" line="360"/>
         <source>Move &amp;Down</source>
-        <translation>Ð\92ни&amp;з</translation>
+        <translation>Ð\94они&amp;зÑ\83</translation>
     </message>
     <message>
         <location filename="src/mainwindow.cpp" line="361"/>
         <source>Move down the selected videos in the playlist</source>
-        <translation>Перемістити обране відео вниз по списку</translation>
+        <translation>Перемістити обране відео вниз по переліку</translation>
     </message>
     <message>
         <location filename="src/mainwindow.cpp" line="372"/>
     <message>
         <location filename="src/mainwindow.cpp" line="377"/>
         <source>&amp;Quit</source>
-        <translation>&amp;Ви&amp;хід</translation>
+        <translation>&amp;Ви&amp;йти</translation>
     </message>
     <message>
         <location filename="src/mainwindow.cpp" line="380"/>
     <message>
         <location filename="src/mainwindow.cpp" line="392"/>
         <source>Please support the continued development of %1</source>
-        <translation>Будь ласка підтримайте подальший розвиток %1</translation>
+        <translation>Будь ласка, підтримайте подальший розвиток %1</translation>
     </message>
     <message>
         <location filename="src/mainwindow.cpp" line="397"/>
         <source>&amp;About</source>
-        <translation>&amp;Про програму</translation>
+        <translation>&amp;Про проґраму</translation>
     </message>
     <message>
         <location filename="src/mainwindow.cpp" line="399"/>
     <message>
         <location filename="src/mainwindow.cpp" line="470"/>
         <source>Download the current video</source>
-        <translation>Завантажити поточне відео</translation>
+        <translation>Завантажити це відео</translation>
     </message>
     <message>
         <location filename="src/mainwindow.cpp" line="486"/>
     <message>
         <location filename="src/mainwindow.cpp" line="530"/>
         <source>&amp;Float on Top</source>
-        <translation>&amp;Ð\97веÑ\80Ñ\85Ñ\83 усіх вікон</translation>
+        <translation>&amp;Ð\97гоÑ\80и усіх вікон</translation>
     </message>
     <message>
         <location filename="src/mainwindow.cpp" line="535"/>
     <message>
         <location filename="src/mainwindow.cpp" line="561"/>
         <source>&amp;Related Videos</source>
-        <translation>Ð\9fо&amp;дÑ\96бне відео</translation>
+        <translation>СÑ\85о&amp;же відео</translation>
     </message>
     <message>
         <location filename="src/mainwindow.cpp" line="563"/>
     <message>
         <location filename="src/mainwindow.cpp" line="569"/>
         <source>Open in &amp;Browser...</source>
-        <translation>Відкрити &amp;Браузер..</translation>
+        <translation>Відкрити у &amp;браузері...</translation>
     </message>
     <message>
         <location filename="src/mainwindow.cpp" line="591"/>
         <source>&amp;Application</source>
-        <translation>Пр&amp;ограма</translation>
+        <translation>Пр&amp;оґрама</translation>
     </message>
     <message>
         <location filename="src/mainwindow.cpp" line="575"/>
     <message>
         <location filename="src/mainwindow.cpp" line="619"/>
         <source>&amp;Playlist</source>
-        <translation>&amp;СпиÑ\81ок відтворення</translation>
+        <translation>&amp;Ð\9fеÑ\80елÑ\96к відтворення</translation>
     </message>
     <message>
         <location filename="src/mainwindow.cpp" line="628"/>
     <message>
         <location filename="src/mainwindow.cpp" line="642"/>
         <source>&amp;View</source>
-        <translation>&amp;Ð\92иглÑ\8fд</translation>
+        <translation>&amp;Ð\9fеÑ\80еглÑ\8fнÑ\83Ñ\82и</translation>
     </message>
     <message>
         <location filename="src/mainwindow.cpp" line="649"/>
     <message>
         <location filename="src/mainwindow.cpp" line="738"/>
         <source>Press %1 to raise the volume, %2 to lower it</source>
-        <translation>Натисніть %1, щоб приглушити гучність, та %2 щоб відновити її</translation>
+        <translation>Натисніть %1, аби приглушити гучність, та %2, щоб її відновити</translation>
     </message>
     <message>
         <location filename="src/mainwindow.cpp" line="930"/>
     <message>
         <location filename="src/mainwindow.cpp" line="981"/>
         <source>Do you want to exit %1 with a download in progress?</source>
-        <translation>Триває завантаження, бажаете закрити %1?</translation>
+        <translation>Триває завантаження, бажаєте закрити %1?</translation>
     </message>
     <message>
         <location filename="src/mainwindow.cpp" line="982"/>
     <message>
         <location filename="src/mainwindow.cpp" line="339"/>
         <source>Find Video &amp;Parts</source>
-        <translation>Знайти &amp;фрагменти відео</translation>
+        <translation>Знайти &amp;фраґменти відео</translation>
     </message>
     <message>
         <location filename="src/mainwindow.cpp" line="367"/>
     <message>
         <location filename="src/mainwindow.cpp" line="776"/>
         <source>Choose your content location</source>
-        <translation>Ð\92ибÑ\96Ñ\80 Ð¼Ñ\96Ñ\81Ñ\86еÑ\80озмÑ\96Ñ\89ення</translation>
+        <translation>Ð\9eбеÑ\80Ñ\96Ñ\82Ñ\8c Ñ\81воÑ\94 Ð¼Ñ\96Ñ\81Ñ\86еÑ\80озÑ\82аÑ\88Ñ\83вання</translation>
     </message>
     <message>
         <location filename="src/mainwindow.cpp" line="1047"/>
     <message>
         <location filename="src/mediaview.cpp" line="626"/>
         <source>You can now paste the video stream URL into another application</source>
-        <translation>Ви можете використовувати посилання на відео у зовнішній програмі</translation>
+        <translation>Ви можете використовувати посилання на відео у зовнішній проґрамі</translation>
     </message>
     <message>
         <location filename="src/mediaview.cpp" line="627"/>
     <message>
         <location filename="src/mediaview.cpp" line="937"/>
         <source>Sent from %1</source>
-        <translation>Ð\92Ñ\96дпÑ\80авити з %1</translation>
+        <translation>Ð\9dадÑ\96Ñ\81лати з %1</translation>
     </message>
     <message>
         <location filename="src/mediaview.cpp" line="968"/>
     <message>
         <location filename="src/mediaview.cpp" line="720"/>
         <source>Get the full version</source>
-        <translation>Отримати повнофункціональну версію</translation>
+        <translation>Отримати повну версію</translation>
     </message>
     <message>
         <location filename="src/mediaview.cpp" line="757"/>
     <message>
         <location filename="local/src/updatedialog.cpp" line="33"/>
         <source>Would you like to download it now?</source>
-        <translation>Ð\92и Ð±Ð°Ð¶Ð°Ñ\94Ñ\82е Ð·Ð°Ð²Ð°Ð½Ñ\82ажиÑ\82и зараз?</translation>
+        <translation>Ð\91ажаÑ\94Ñ\82е Ð·Ð°Ð²Ð°Ð½Ñ\82ажиÑ\82и Ñ\86е зараз?</translation>
     </message>
     <message>
         <location filename="local/src/updatedialog.cpp" line="39"/>
     <message>
         <location filename="src/playlistitemdelegate.cpp" line="318"/>
         <source>Preparing</source>
-        <translation>Ð\93оÑ\82Ñ\83Ñ\94Ñ\82Ñ\8cÑ\81Ñ\8f</translation>
+        <translation>Ð\9fÑ\96дгоÑ\82овка</translation>
     </message>
     <message>
         <location filename="src/playlistitemdelegate.cpp" line="320"/>
     <message>
         <location filename="src/playlistitemdelegate.cpp" line="322"/>
         <source>Completed</source>
-        <translation>Ð\97авеÑ\80Ñ\88ено</translation>
+        <translation>Ð\92иконано</translation>
     </message>
     <message>
         <location filename="src/playlistitemdelegate.cpp" line="324"/>
     <message>
         <location filename="src/refinesearchwidget.cpp" line="51"/>
         <source>Sort by</source>
-        <translation>СоÑ\80Ñ\82Ñ\83ваÑ\82и Ð¿Ð¾</translation>
+        <translation>СоÑ\80Ñ\82Ñ\83ваÑ\82и Ð·Ð°</translation>
     </message>
     <message>
         <location filename="src/refinesearchwidget.cpp" line="55"/>
         <source>Relevance</source>
-        <translation>РелеванÑ\82нÑ\96Ñ\81Ñ\82Ñ\8c</translation>
+        <translation>РелеванÑ\82нÑ\96Ñ\81Ñ\82Ñ\8e</translation>
     </message>
     <message>
         <location filename="src/refinesearchwidget.cpp" line="56"/>
         <location filename="src/refinesearchwidget.cpp" line="72"/>
         <source>Date</source>
-        <translation>Ð\94аÑ\82а</translation>
+        <translation>Ð\94аÑ\82оÑ\8e</translation>
     </message>
     <message>
         <location filename="src/refinesearchwidget.cpp" line="57"/>
         <source>View Count</source>
-        <translation>Ð\9aÑ\96лÑ\8cкÑ\96Ñ\81Ñ\82Ñ\8c переглядів</translation>
+        <translation>ЧиÑ\81лом переглядів</translation>
     </message>
     <message>
         <location filename="src/refinesearchwidget.cpp" line="58"/>
         <source>Rating</source>
-        <translation>Рейтинг</translation>
+        <translation>Рейтинґом</translation>
     </message>
     <message>
         <location filename="src/refinesearchwidget.cpp" line="76"/>
     <message>
         <location filename="src/refinesearchwidget.cpp" line="93"/>
         <source>Duration</source>
-        <translation>ТÑ\80ивалÑ\96Ñ\81Ñ\82Ñ\8c</translation>
+        <translation>ТÑ\80ивалÑ\96Ñ\81Ñ\82Ñ\8e</translation>
     </message>
     <message>
         <location filename="src/refinesearchwidget.cpp" line="97"/>
     <message>
         <location filename="src/searchlineedit.cpp" line="177"/>
         <source>Search</source>
-        <translation>Ð\9fоÑ\88Ñ\83к</translation>
+        <translation>ШÑ\83каÑ\82и</translation>
     </message>
 </context>
 <context>
     <message>
         <location filename="src/searchview.cpp" line="189"/>
         <source>Get the full version</source>
-        <translation>Отримати повнофункціональну версію</translation>
+        <translation>Отримати повну версію</translation>
     </message>
     <message>
         <location filename="src/searchview.cpp" line="108"/>
         <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>Ð\92ведіть</translation>
+        <translation>Уведіть</translation>
     </message>
     <message>
         <location filename="src/searchview.cpp" line="113"/>
     <message>
         <location filename="src/searchview.cpp" line="119"/>
         <source>to start watching videos.</source>
-        <translation>щоб почати перегляд.</translation>
+        <translation>аби розпочати перегляд.</translation>
     </message>
     <message>
         <location filename="src/searchview.cpp" line="143"/>
         <source>Watch</source>
-        <translation>Ð\9fеÑ\80еглÑ\8fд</translation>
+        <translation>Ð\94ивиÑ\82иÑ\81Ñ\8f</translation>
     </message>
     <message>
         <location filename="src/searchview.cpp" line="161"/>
         <source>Recent keywords</source>
-        <translation>Недавній пошук</translation>
+        <translation>Нещодавній пошук</translation>
     </message>
     <message>
         <location filename="src/searchview.cpp" line="174"/>
     <message>
         <location filename="src/sidebarheader.cpp" line="77"/>
         <source>Forward to %1</source>
-        <translation>Ð\92перед до %1</translation>
+        <translation>Уперед до %1</translation>
     </message>
     <message>
         <location filename="src/sidebarheader.cpp" line="90"/>
     <message>
         <location filename="src/sidebarwidget.cpp" line="163"/>
         <source>Did you mean: %1</source>
-        <translation>Можливо ви мали на увазі: %1</translation>
+        <translation>Можливо, ви мали на увазі: %1</translation>
     </message>
 </context>
 <context>
     <message>
         <location filename="src/standardfeedsview.cpp" line="107"/>
         <source>Most Shared</source>
-        <translation>Most Shared</translation>
+        <translation>Найпоширюваніше</translation>
     </message>
     <message>
         <location filename="src/standardfeedsview.cpp" line="108"/>
         <source>Most Discussed</source>
-        <translation>Що Ð½Ð°Ð¹Ð±Ñ\96лÑ\8cÑ\88е Ð¾Ð±Ð³Ð¾Ð²Ð¾Ñ\80Ñ\8eÑ\8eÑ\82Ñ\8c</translation>
+        <translation>Ð\9dайбÑ\96лÑ\8cÑ\88 Ð¾Ð±Ð³Ð¾Ð²Ð¾Ñ\80Ñ\8eване</translation>
     </message>
     <message>
         <location filename="src/standardfeedsview.cpp" line="109"/>
         <source>Top Rated</source>
-        <translation>Ð\9aÑ\80аÑ\89Ñ\96 Ð¾Ñ\86Ñ\96нки</translation>
+        <translation>Ð\9dайкÑ\80аÑ\89е</translation>
     </message>
     <message>
         <location filename="src/standardfeedsview.cpp" line="110"/>
         <source>All Time Popular</source>
-        <translation>Популярне за увесь час</translation>
+        <translation>Популярне за весь час</translation>
     </message>
 </context>
 <context>
     <message>
         <location filename="src/ytregions.cpp" line="40"/>
         <source>Ghana</source>
-        <translation>Гана</translation>
+        <translation>Ґана</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="41"/>
     <message>
         <location filename="src/ytregions.cpp" line="42"/>
         <source>Hong Kong</source>
-        <translation>Гонконг</translation>
+        <translation>Гонконґ</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="43"/>
     <message>
         <location filename="src/ytregions.cpp" line="57"/>
         <source>Nigeria</source>
-        <translation>Нігерія</translation>
+        <translation>Ніґерія</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="58"/>
     <message>
         <location filename="src/ytregions.cpp" line="59"/>
         <source>Philippines</source>
-        <translation>Філіпіни</translation>
+        <translation>Філіппіни</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="60"/>
     <message>
         <location filename="src/ytregions.cpp" line="63"/>
         <source>Singapore</source>
-        <translation>Сингапур</translation>
+        <translation>Синґапур</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="64"/>
     <message>
         <location filename="src/ytregions.cpp" line="71"/>
         <source>Uganda</source>
-        <translation>Уганда</translation>
+        <translation>Уґанда</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="72"/>
     <message>
         <location filename="src/ytregions.cpp" line="74"/>
         <source>Yemen</source>
-        <translation>Ð\99емен</translation>
+        <translation>Ð\84мен</translation>
     </message>
     <message>
         <location filename="src/ytregions.cpp" line="148"/>
index b752ca32d3cb90588414ce4035ae511f2f360ad2..b30fd8883f4bb1888eb346368852540724c1c014 100644 (file)
     <message>
         <location filename="src/channelview.cpp" line="119"/>
         <source>Name</source>
-        <translation type="unfinished"/>
+        <translation>姓名</translation>
     </message>
     <message>
         <location filename="src/channelview.cpp" line="126"/>
index 414c5c4e07da1438719b96a9df47d31cb8c93124..8b37e62763c0ff7cf7fb6c8efb622f382651892f 100644 (file)
     <message>
         <location filename="src/mainwindow.cpp" line="569"/>
         <source>Open in &amp;Browser...</source>
-        <translation type="unfinished"/>
+        <translation>在瀏覽器中開啟(&amp;B)...</translation>
     </message>
     <message>
         <location filename="src/mainwindow.cpp" line="591"/>
index 63df49499bf0072ee473dac229a21c61a14b2a3b..a3fe782fa710e99c07a5b290b5144cc7a0f33008 100644 (file)
@@ -16,8 +16,8 @@ Exec=minitube
 Terminal=false
 Type=Application
 Icon=minitube
-Categories=Qt;AudioVideo;Video;Player;
-StartupNotify=true
+Categories=AudioVideo;Player;Qt;
+StartupNotify=false
 Actions=TogglePlaying;Next;Previous;
 
 [Desktop Action TogglePlaying]
index 40fb16d4fbbf54ecd6ccf610b505806fa91068fb..463f3289539fee70b5ddb2e1b4bedf898f5a8746 100644 (file)
@@ -1,6 +1,6 @@
 CONFIG += release
 TEMPLATE = app
-VERSION = 2.1.3
+VERSION = 2.1.5
 DEFINES += APP_VERSION="$$VERSION"
 
 APP_NAME = Minitube
@@ -13,9 +13,12 @@ DEFINES *= QT_NO_DEBUG_OUTPUT
 DEFINES *= QT_USE_QSTRINGBUILDER
 DEFINES += QT_STRICT_ITERATORS
 
-TARGET = minitube
+TARGET = $${APP_UNIX_NAME}
+
 QT += network xml phonon sql script
+
 include(src/qtsingleapplication/qtsingleapplication.pri)
+
 HEADERS += \
     src/video.h \
     src/searchlineedit.h \
index f173a385c1fbfbcff29dc4302ea76b9b96fa89b5..92d6638c804cd589b78753ab71d464235ab8ce1b 100644 (file)
@@ -48,7 +48,7 @@ AboutView::AboutView(QWidget *parent) : QWidget(parent) {
     hLayout->addLayout(layout);
 
     QString info = "<html><style>a { color: palette(text); text-decoration: none; font-weight: bold }</style><body>"
-            "<h1>" + QString(Constants::NAME) + "</h1>"
+            "<h1 style='font-weight:normal'>" + QString(Constants::NAME) + "</h1>"
             "<p>" + tr("There's life outside the browser!") + "</p>"
             "<p>" + tr("Version %1").arg(Constants::VERSION) + "</p>"
             + QString("<p><a href=\"%1/\">%1</a></p>").arg(Constants::WEBSITE);
@@ -89,7 +89,7 @@ AboutView::AboutView(QWidget *parent) : QWidget(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-2013 " + Constants::ORG_NAME + "</p>"
+            "<p>&copy; 2009-2014 " + Constants::ORG_NAME + "</p>"
             "</body></html>";
     QLabel *infoLabel = new QLabel(info, this);
     infoLabel->setOpenExternalLinks(true);
index 36234d140f627bb2d7a80d7dd68d5923e913d0be..f9d0391b45c4b86700a46c268854f8b253ffa6a1 100644 (file)
@@ -33,7 +33,8 @@ QIODevice* DiskCache::prepare(const QNetworkCacheMetaData &metaData) {
         }
     }
 
-    if (mime.startsWith(QLatin1String("image/")))
+    if (mime.startsWith(QLatin1String("image/")) ||
+                        mime.endsWith(QLatin1String("/javascript")))
         return QNetworkDiskCache::prepare(metaData);
 
     return 0;
index 79efe0d3d0431477d1d84527781f54536dad9d1b..1a3701ea93ecc8ac23fda900a6abb1a5d1838579 100644 (file)
@@ -62,8 +62,9 @@ LoadingWidget::LoadingWidget(QWidget *parent) : QWidget(parent) {
 void LoadingWidget::setVideo(Video *video) {
 
     QFont titleFont;
+    titleFont.setStyleName("Light");
 #ifdef APP_MAC
-    titleFont.setFamily("Helvetica");
+    titleFont.setFamily("Helvetica Neue");
 #endif
 #ifdef APP_WIN
     titleFont.setFamily("Segoe UI Light");
index 95e9f128e4ee03dde7f3b782c0ec2ed89cf5b10f..d26a9ff84226aec38be2371d97a00c2f0245e53d 100644 (file)
@@ -35,6 +35,8 @@ int main(int argc, char **argv) {
 
 #ifdef Q_WS_MAC
     mac::MacMain();
+    // https://bugreports.qt-project.org/browse/QTBUG-32789
+    QFont::insertSubstitution(".Lucida Grande UI", "Lucida Grande");
 #endif
 
     QtSingleApplication app(argc, argv);
@@ -75,7 +77,11 @@ int main(int argc, char **argv) {
 #else
     QString dataDir = "";
 #endif
+#ifdef APP_MAC
+    QString localeDir = qApp->applicationDirPath() + "/../Resources/locale";
+#else
     QString localeDir = qApp->applicationDirPath() + "/locale";
+#endif
     if (!QDir(localeDir).exists()) {
         localeDir = dataDir + "/locale";
     }
index 404fa137e13b2a5464f7076033345e0c89e96b85..159ffb6f75bcac02bf94e35cc9a8c0af380291ca 100644 (file)
@@ -151,7 +151,6 @@ private:
     QWidget *regionsView;
 
     // actions
-    QAction *addGadgetAct;
     QAction *backAct;
     QAction *quitAct;
     QAction *siteAct;
index b68134743031d38aa27a40bc9f1e7df79912999f..295eba8e403ea5c98498e3f6e055137528a70cd7 100644 (file)
@@ -224,6 +224,27 @@ void PlaylistItemDelegate::paintBody( QPainter* painter,
 
         }
 
+    } else {
+
+        bool isHovered = option.state & QStyle::State_MouseOver;
+        if (!isActive && 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);
+            }
+            painter->fillRect(QRect(0, 0, THUMB_WIDTH, textBox.height() + PADDING*2), QColor(0, 0, 0, 128));
+            painter->drawText(textBox, flags, v);
+        }
+
     }
 
     painter->restore();
index 522701e29b3fed0b290c134f6819da28f3f12f3f..6cbaa1d005dbbde8766aafc7f5e83699b1c012be 100644 (file)
@@ -84,10 +84,16 @@ SearchView::SearchView(QWidget *parent) : QWidget(parent) {
     hLayout->addLayout(layout);
 
     QLabel *welcomeLabel =
-            new QLabel("<h1 style='font-weight:normal'>" +
+            new QLabel("<h1 style='font-weight:100'>" +
                        tr("Welcome to <a href='%1'>%2</a>,")
                        // .replace("<a ", "<a style='color:palette(text)'")
-                       .replace("<a href", "<a style='text-decoration:none; color:palette(text); font-weight:bold' href")
+                       .replace("<a ", "<a style='text-decoration:none; color:palette(text);font-weight:"
+                            #if defined(APP_UBUNTU) || defined(APP_WIN)
+                                "normal"
+                            #else
+                                "bold"
+                            #endif
+                                "' ")
                        .arg(Constants::WEBSITE, Constants::NAME)
                        + "</h1>", this);
     welcomeLabel->setOpenExternalLinks(true);
index 8cb1f97e03b309b00d2d1817f7f95c04801ac0f1..67796e75b8bc4d2eddb9e063ef4aa2d09bb1ccab 100644 (file)
@@ -183,7 +183,7 @@ void  Video::gotVideoInfo(QByteArray data) {
     parseFmtUrlMap(fmtUrlMap);
 }
 
-void Video::parseFmtUrlMap(QString fmtUrlMap, bool fromWebPage) {
+void Video::parseFmtUrlMap(const QString &fmtUrlMap, bool fromWebPage) {
     QSettings settings;
     QString definitionName = settings.value("definition", "360p").toString();
     int definitionCode = VideoDefinition::getDefinitionCode(definitionName);
@@ -200,7 +200,7 @@ void Video::parseFmtUrlMap(QString fmtUrlMap, bool fromWebPage) {
         QString url;
         QString sig;
         foreach(QString urlParam, urlParams) {
-            // qDebug() << urlParam;
+            // qWarning() << urlParam;
             if (urlParam.startsWith("itag=")) {
                 int separator = urlParam.indexOf("=");
                 format = urlParam.mid(separator + 1).toInt();
@@ -219,8 +219,11 @@ void Video::parseFmtUrlMap(QString fmtUrlMap, bool fromWebPage) {
                     sig = QByteArray::fromPercentEncoding(sig.toUtf8());
                     if (ageGate)
                         sig = JsFunctions::instance()->decryptAgeSignature(sig);
-                    else
-                        sig = JsFunctions::instance()->decryptSignature(sig);
+                    else {
+                        sig = decryptSignature(sig);
+                        if (sig.isEmpty())
+                            sig = JsFunctions::instance()->decryptSignature(sig);
+                    }
                 } else {
                     // qDebug() << "Loading webpage";
                     QUrl url("http://www.youtube.com/watch");
@@ -246,7 +249,7 @@ void Video::parseFmtUrlMap(QString fmtUrlMap, bool fromWebPage) {
         // qWarning() << url;
 
         if (format == definitionCode) {
-            // qDebug() << "Found format" << definitionCode;
+            qDebug() << "Found format" << definitionCode;
             QUrl videoUrl = QUrl::fromEncoded(url.toUtf8(), QUrl::StrictMode);
             m_streamUrl = videoUrl;
             this->definitionCode = definitionCode;
@@ -266,7 +269,7 @@ void Video::parseFmtUrlMap(QString fmtUrlMap, bool fromWebPage) {
         if (previousIndex < 0) previousIndex = 0;
         int definitionCode = definitionCodes.at(previousIndex);
         if (urlMap.contains(definitionCode)) {
-            // qDebug() << "Found format" << definitionCode;
+            qDebug() << "Found format" << definitionCode;
             QString url = urlMap.value(definitionCode);
             QUrl videoUrl = QUrl::fromEncoded(url.toUtf8(), QUrl::StrictMode);
             m_streamUrl = videoUrl;
@@ -321,9 +324,25 @@ void Video::scrapeWebPage(QByteArray data) {
         getVideoInfo();
         return;
     }
-    QString fmtUrlMap = re.cap(1);
+    fmtUrlMap = re.cap(1);
     fmtUrlMap.replace("\\u0026", "&");
-    parseFmtUrlMap(fmtUrlMap, true);
+    // parseFmtUrlMap(fmtUrlMap, true);
+
+    QRegExp jsPlayerRe("\"assets\":.+\"js\":\\s*\"([^\"]+)\"");
+    if (jsPlayerRe.indexIn(html) != -1) {
+        QString jsPlayerUrl = jsPlayerRe.cap(1);
+        jsPlayerUrl.remove('\\');
+        jsPlayerUrl = "http:" + jsPlayerUrl;
+        qWarning() << "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::gotHeadHeaders(QNetworkReply* reply) {
@@ -369,6 +388,60 @@ void Video::gotHeadHeaders(QNetworkReply* reply) {
     }
 }
 
+void Video::parseJsPlayer(QByteArray bytes) {
+    QString js = QString::fromUtf8(bytes);
+    QRegExp funcNameRe("signature=([a-zA-Z0-9]+)");
+    if (funcNameRe.indexIn(js) == -1) {
+        qWarning() << "Cannot capture signature function name";
+    } else {
+        sigFuncName = funcNameRe.cap(1);
+        captureFunction(sigFuncName, js);
+        // qDebug() << sigFunctions;
+    }
+    parseFmtUrlMap(fmtUrlMap, true);
+}
+
+void Video::captureFunction(const QString &name, const QString &js) {
+    QRegExp funcRe("function\\s+" + name + "\\s*\\([a-zA-Z0-9,\\s]*\\)\\s*\\{[^\\}]+\\}");
+    if (funcRe.indexIn(js) == -1) {
+        qWarning() << "Cannot capture function" << name;
+        return;
+    }
+    QString func = funcRe.cap(0);
+    sigFunctions.insert(name, func);
+
+    // capture inner functions
+    QRegExp invokedFuncRe("[\\s=;\\(]([a-zA-Z0-9]+)\\s*\\([a-zA-Z0-9, ]+\\)");
+    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();
+    }
+}
+
+QString Video::decryptSignature(const QString &s) {
+    if (sigFuncName.isEmpty()) return QString();
+    QScriptEngine engine;
+    foreach (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();
+}
+
 void Video::findVideoUrl(int definitionCode) {
     this->definitionCode = definitionCode;
 
@@ -381,7 +454,6 @@ void Video::findVideoUrl(int definitionCode) {
     // connect(reply, SIGNAL(error(QNetworkReply*)), SLOT(errorVideoInfo(QNetworkReply*)));
 
     // see you in gotHeadHeaders()
-
 }
 
 QString Video::formattedDuration() const {
index 76a9f58798f2a8e7878afec3be6328f0625a5388..7220a4d533187bb743d40c4e5952b9f682b13bb8 100644 (file)
@@ -95,12 +95,15 @@ private slots:
     void errorVideoInfo(QNetworkReply*);
     void scrapeWebPage(QByteArray);
     void gotHeadHeaders(QNetworkReply*);
+    void parseJsPlayer(QByteArray);
 
 private:
     void getVideoInfo();
     void findVideoUrl(int definitionCode);
     void foundVideoUrl(QString videoToken, int definitionCode);
-    void parseFmtUrlMap(QString fmtUrlMap, bool fromWebPage = false);
+    void parseFmtUrlMap(const QString &fmtUrlMap, bool fromWebPage = false);
+    void captureFunction(const QString &name, const QString &js);
+    QString decryptSignature(const QString &s);
 
     QString m_title;
     QString m_description;
@@ -126,6 +129,10 @@ private:
     
     bool loadingStreamUrl;
     bool loadingThumbnail;
+
+    QHash<QString, QString> sigFunctions;
+    QString sigFuncName;
+    QString fmtUrlMap;
 };
 
 // This is required in order to use QPointer<Video> as a QVariant