+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
</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>&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>&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 &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>&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>
<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 &Browser...</source>
- <translation type="unfinished"/>
+ <translation>افتح &ضمن المُستعرض...</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>
<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"/>
<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'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>&Subscribe to Channel</source>
- <translation type="unfinished"/>
+ <translation>&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>&Related Videos</source>
- <translation type="unfinished"/>
+ <translation>Vídeos &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'actual</translation>
</message>
<message>
<location filename="src/mainwindow.cpp" line="569"/>
<source>Open in &Browser...</source>
- <translation type="unfinished"/>
+ <translation>Obre al &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'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
<message>
<location filename="src/mainwindow.cpp" line="569"/>
<source>Open in &Browser...</source>
- <translation type="unfinished"/>
+ <translation>Åbn i &browser...</translation>
</message>
<message>
<location filename="src/mainwindow.cpp" line="591"/>
<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>&Full Screen</source>
- <translation>Pantalla &completa</translation>
+ <translation>&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>&Website</source>
- <translation>Sitio &web</translation>
+ <translation>&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 &Browser...</source>
- <translation type="unfinished"/>
+ <translation>Abrir en &Navegador...</translation>
</message>
<message>
<location filename="src/mainwindow.cpp" line="591"/>
<message>
<location filename="src/mainwindow.cpp" line="663"/>
<source>&Help</source>
- <translation>Ay&uda</translation>
+ <translation>&Ayuda</translation>
</message>
<message>
<location filename="src/mainwindow.cpp" line="738"/>
<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"/>
<message>
<location filename="src/mainwindow.cpp" line="569"/>
<source>Open in &Browser...</source>
- <translation type="unfinished"/>
+ <translation>Avaa &selaimessa...</translation>
</message>
<message>
<location filename="src/mainwindow.cpp" line="591"/>
<message>
<location filename="src/mainwindow.cpp" line="569"/>
<source>Open in &Browser...</source>
- <translation type="unfinished"/>
+ <translation>Avaa &selaimessa...</translation>
</message>
<message>
<location filename="src/mainwindow.cpp" line="591"/>
<message>
<location filename="src/mainwindow.cpp" line="569"/>
<source>Open in &Browser...</source>
- <translation type="unfinished"/>
+ <translation>Ouvrir dans le &navigateur ...</translation>
</message>
<message>
<location filename="src/mainwindow.cpp" line="591"/>
<message>
<location filename="src/mainwindow.cpp" line="569"/>
<source>Open in &Browser...</source>
- <translation type="unfinished"/>
+ <translation>Abrir no &navegador</translation>
</message>
<message>
<location filename="src/mainwindow.cpp" line="591"/>
<message>
<location filename="src/mainwindow.cpp" line="569"/>
<source>Open in &Browser...</source>
- <translation type="unfinished"/>
+ <translation>&Браузерден ачуу...</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"/>
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
<message>
<location filename="src/mainwindow.cpp" line="569"/>
<source>Open in &Browser...</source>
- <translation type="unfinished"/>
+ <translation>Buka dalam Pela&yar...</translation>
</message>
<message>
<location filename="src/mainwindow.cpp" line="591"/>
<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"/>
<message>
<location filename="src/mainwindow.cpp" line="569"/>
<source>Open in &Browser...</source>
- <translation type="unfinished"/>
+ <translation>Open in &browser...</translation>
</message>
<message>
<location filename="src/mainwindow.cpp" line="591"/>
<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"/>
<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 &Browser...</source>
- <translation type="unfinished"/>
+ <translation>Открыть в &браузере...</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"/>
<message>
<location filename="src/mainwindow.cpp" line="569"/>
<source>Open in &Browser...</source>
- <translation type="unfinished"/>
+ <translation>Otvoriť v prehliadači...</translation>
</message>
<message>
<location filename="src/mainwindow.cpp" line="591"/>
<message>
<location filename="local/src/activationdialog.cpp" line="35"/>
<source>&Code:</source>
- <translation type="unfinished"/>
+ <translation>&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 &Browser...</source>
- <translation type="unfinished"/>
+ <translation>Odpri v &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>&Back</source>
- <translation type="unfinished"/>
+ <translation>Na&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"/>
<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>&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>&Report an Issue...</source>
- <translation type="unfinished"/>
+ <translation>&Rapportera ett problem...</translation>
</message>
<message>
<location filename="src/mainwindow.cpp" line="546"/>
<source>&Refine Search...</source>
- <translation type="unfinished"/>
+ <translation>&Förfinad sökning...</translation>
</message>
<message>
<location filename="src/mainwindow.cpp" line="558"/>
<message>
<location filename="src/mainwindow.cpp" line="561"/>
<source>&Related Videos</source>
- <translation type="unfinished"/>
+ <translation>&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 &Browser...</source>
- <translation type="unfinished"/>
+ <translation>Öppna i &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>&Back</source>
- <translation type="unfinished"/>
+ <translation>&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
<message>
<location filename="src/mainwindow.cpp" line="569"/>
<source>Open in &Browser...</source>
- <translation type="unfinished"/>
+ <translation>&Tarayıcıda aç...</translation>
</message>
<message>
<location filename="src/mainwindow.cpp" line="591"/>
<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 <a href='%1'>donate</a> to support the continued development of %2.</source>
- <translation>Будь ласка, <a href='%1'>внесіть пожертву</a> щоб підтримати подальший розвиток %2.</translation>
+ <translation>Будь ласка, <a href='%1'>внесіть пожертву,</a> щоб підтримати подальший розвиток %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>
<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 &Up</source>
- <translation>Ð\92&гоÑ\80Ñ\83</translation>
+ <translation>Ð\94о&гоÑ\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 &Down</source>
- <translation>Ð\92ни&з</translation>
+ <translation>Ð\94они&зÑ\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>&Quit</source>
- <translation>&Ви&хід</translation>
+ <translation>&Ви&йти</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>&About</source>
- <translation>&Про програму</translation>
+ <translation>&Про проґраму</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>&Float on Top</source>
- <translation>&Ð\97веÑ\80Ñ\85Ñ\83 усіх вікон</translation>
+ <translation>&Ð\97гоÑ\80и усіх вікон</translation>
</message>
<message>
<location filename="src/mainwindow.cpp" line="535"/>
<message>
<location filename="src/mainwindow.cpp" line="561"/>
<source>&Related Videos</source>
- <translation>Ð\9fо&дÑ\96бне відео</translation>
+ <translation>СÑ\85о&же відео</translation>
</message>
<message>
<location filename="src/mainwindow.cpp" line="563"/>
<message>
<location filename="src/mainwindow.cpp" line="569"/>
<source>Open in &Browser...</source>
- <translation>Відкрити in &Браузер...</translation>
+ <translation>Відкрити у &браузері...</translation>
</message>
<message>
<location filename="src/mainwindow.cpp" line="591"/>
<source>&Application</source>
- <translation>Пр&ограма</translation>
+ <translation>Пр&оґрама</translation>
</message>
<message>
<location filename="src/mainwindow.cpp" line="575"/>
<message>
<location filename="src/mainwindow.cpp" line="619"/>
<source>&Playlist</source>
- <translation>&СпиÑ\81ок відтворення</translation>
+ <translation>&Ð\9fеÑ\80елÑ\96к відтворення</translation>
</message>
<message>
<location filename="src/mainwindow.cpp" line="628"/>
<message>
<location filename="src/mainwindow.cpp" line="642"/>
<source>&View</source>
- <translation>&Ð\92иглÑ\8fд</translation>
+ <translation>&Ð\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 &Parts</source>
- <translation>Знайти &фрагменти відео</translation>
+ <translation>Знайти &фраґменти відео</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>"Enter", as in "type". The whole phrase says: "Enter a keyword to start watching videos"</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"/>
<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 <a href='%1'>donate</a> to support the continued development of %2.</source>
- <translation>Будь ласка, <a href='%1'>внесіть пожертву</a> щоб підтримати подальший розвиток %2.</translation>
+ <translation>Будь ласка, <a href='%1'>внесіть пожертву,</a> щоб підтримати подальший розвиток %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>
<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 &Up</source>
- <translation>Ð\92&гоÑ\80Ñ\83</translation>
+ <translation>Ð\94о&гоÑ\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 &Down</source>
- <translation>Ð\92ни&з</translation>
+ <translation>Ð\94они&зÑ\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>&Quit</source>
- <translation>&Ви&хід</translation>
+ <translation>&Ви&йти</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>&About</source>
- <translation>&Про програму</translation>
+ <translation>&Про проґраму</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>&Float on Top</source>
- <translation>&Ð\97веÑ\80Ñ\85Ñ\83 усіх вікон</translation>
+ <translation>&Ð\97гоÑ\80и усіх вікон</translation>
</message>
<message>
<location filename="src/mainwindow.cpp" line="535"/>
<message>
<location filename="src/mainwindow.cpp" line="561"/>
<source>&Related Videos</source>
- <translation>Ð\9fо&дÑ\96бне відео</translation>
+ <translation>СÑ\85о&же відео</translation>
</message>
<message>
<location filename="src/mainwindow.cpp" line="563"/>
<message>
<location filename="src/mainwindow.cpp" line="569"/>
<source>Open in &Browser...</source>
- <translation>Відкрити &Браузер..</translation>
+ <translation>Відкрити у &браузері...</translation>
</message>
<message>
<location filename="src/mainwindow.cpp" line="591"/>
<source>&Application</source>
- <translation>Пр&ограма</translation>
+ <translation>Пр&оґрама</translation>
</message>
<message>
<location filename="src/mainwindow.cpp" line="575"/>
<message>
<location filename="src/mainwindow.cpp" line="619"/>
<source>&Playlist</source>
- <translation>&СпиÑ\81ок відтворення</translation>
+ <translation>&Ð\9fеÑ\80елÑ\96к відтворення</translation>
</message>
<message>
<location filename="src/mainwindow.cpp" line="628"/>
<message>
<location filename="src/mainwindow.cpp" line="642"/>
<source>&View</source>
- <translation>&Ð\92иглÑ\8fд</translation>
+ <translation>&Ð\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 &Parts</source>
- <translation>Знайти &фрагменти відео</translation>
+ <translation>Знайти &фраґменти відео</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>"Enter", as in "type". The whole phrase says: "Enter a keyword to start watching videos"</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"/>
<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"/>
<message>
<location filename="src/mainwindow.cpp" line="569"/>
<source>Open in &Browser...</source>
- <translation type="unfinished"/>
+ <translation>在瀏覽器中開啟(&B)...</translation>
</message>
<message>
<location filename="src/mainwindow.cpp" line="591"/>
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]
CONFIG += release
TEMPLATE = app
-VERSION = 2.1.3
+VERSION = 2.1.5
DEFINES += APP_VERSION="$$VERSION"
APP_NAME = Minitube
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 \
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);
"<p>" + tr("Released under the <a href='%1'>GNU General Public License</a>")
.arg("http://www.gnu.org/licenses/gpl.html") + "</p>"
#endif
- "<p>© 2009-2013 " + Constants::ORG_NAME + "</p>"
+ "<p>© 2009-2014 " + Constants::ORG_NAME + "</p>"
"</body></html>";
QLabel *infoLabel = new QLabel(info, this);
infoLabel->setOpenExternalLinks(true);
}
}
- if (mime.startsWith(QLatin1String("image/")))
+ if (mime.startsWith(QLatin1String("image/")) ||
+ mime.endsWith(QLatin1String("/javascript")))
return QNetworkDiskCache::prepare(metaData);
return 0;
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");
#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);
#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";
}
QWidget *regionsView;
// actions
- QAction *addGadgetAct;
QAction *backAct;
QAction *quitAct;
QAction *siteAct;
}
+ } 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();
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);
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);
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();
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");
// 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;
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;
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) {
}
}
+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;
// connect(reply, SIGNAL(error(QNetworkReply*)), SLOT(errorVideoInfo(QNetworkReply*)));
// see you in gotHeadHeaders()
-
}
QString Video::formattedDuration() const {
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;
bool loadingStreamUrl;
bool loadingThumbnail;
+
+ QHash<QString, QString> sigFunctions;
+ QString sigFuncName;
+ QString fmtUrlMap;
};
// This is required in order to use QPointer<Video> as a QVariant