diff options
-rw-r--r-- | lang/bg.ts | 698 | ||||
-rw-r--r-- | linux/poi_firejail.desktop.in | 2 | ||||
-rw-r--r-- | meson.build | 1 | ||||
-rw-r--r-- | meson_options.txt | 3 | ||||
-rw-r--r-- | src/builtins.cpp | 29 | ||||
-rw-r--r-- | src/builtins.h | 3 | ||||
-rw-r--r-- | src/main.cpp | 31 | ||||
-rw-r--r-- | src/mainwindow/menubar.h | 2 |
8 files changed, 505 insertions, 264 deletions
@@ -13,7 +13,7 @@ <location filename="../lib/about/aboutdialog.ui" line="28"/> <location filename="../lib/about/aboutdialog.ui" line="70"/> <location filename="../lib/about/aboutdialog.ui" line="95"/> - <location filename="../lib/about/aboutdialog.ui" line="120"/> + <location filename="../lib/about/aboutdialog.ui" line="123"/> <source>TextLabel</source> <translation type="unfinished"></translation> </message> @@ -23,42 +23,116 @@ <translation>Лиценз</translation> </message> <message> - <location filename="../lib/about/aboutdialog.ui" line="114"/> + <location filename="../lib/about/aboutdialog.ui" line="117"/> <source>Details</source> <translation>Детайли</translation> </message> <message> - <location filename="../lib/about/aboutdialog.ui" line="152"/> + <location filename="../lib/about/aboutdialog.cpp" line="35"/> + <source><h2>smolbote %1</h2><p><i>yet another no-frills browser</i></p><p>This program is free software, see <i>License</i> for more information.</p></source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../lib/about/aboutdialog.cpp" line="40"/> + <source><p>Copyright 2017 - 2018 aqua</p><p>This program is free software, and you are welcome to use it under the conditions set by the GNU GPLv3.<br>This is a short summary: <ul><li> the freedom to use the software for any purpose,</li><li> the freedom to change the software to suit your needs,</li><li> the freedom to share the software with anyone,</li><li> the freedom to share the changes you make, and</li><li> the responsibility to grant the same freedoms when sharing the software.</li></ul><p>This program is distributed in the hope that it will be useful, but without any warranty.</p><p>You can read the full terms of the license on <a href='https://www.gnu.org/licenses/gpl-3.0.en.html'>the GNU website</a>.</p></source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../lib/about/aboutdialog.cpp" line="52"/> + <source><p>Version </source> + <translation type="unfinished"></translation> + </message> +</context> +<context> + <name>AboutPluginDialog</name> + <message> + <location filename="../lib/about/aboutplugin.ui" line="14"/> + <source>Dialog</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../lib/about/aboutplugin.ui" line="24"/> + <source>General</source> + <translation>Общи</translation> + </message> + <message> + <location filename="../lib/about/aboutplugin.ui" line="30"/> <source>Name</source> <translation>Име</translation> </message> <message> - <location filename="../lib/about/aboutdialog.ui" line="157"/> + <location filename="../lib/about/aboutplugin.ui" line="44"/> <source>Author</source> <translation>Автор</translation> </message> <message> - <location filename="../lib/about/aboutdialog.ui" line="162"/> + <location filename="../lib/about/aboutplugin.ui" line="58"/> <source>Shortcut</source> - <translation type="unfinished">Клавишна комбинация</translation> + <translation>Клавишна комбинация</translation> + </message> + <message> + <location filename="../lib/about/aboutplugin.ui" line="82"/> + <source>License</source> + <translation>Лиценз</translation> </message> <message> - <location filename="../lib/about/aboutdialog.cpp" line="36"/> - <source><h2>smolbote %1</h2><p><i>yet another no-frills browser</i></p><p>This program is free software, see <i>License</i> for more information.</p><p>This program uses free software: Qt </source> + <location filename="../lib/about/aboutplugin.ui" line="90"/> + <source>Details</source> + <translation>Детайли</translation> + </message> + <message> + <location filename="../lib/about/aboutplugin.ui" line="96"/> + <source>TextLabel</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../lib/about/aboutdialog.cpp" line="42"/> - <source><p>Copyright 2017 - 2018 aqua</p><p>This program is free software, and you are welcome to use it under the conditions set by the GNU GPLv3.<br>This is a short summary: <ul><li> the freedom to use the software for any purpose,</li><li> the freedom to change the software to suit your needs,</li><li> the freedom to share the software with anyone,</li><li> the freedom to share the changes you make, and</li><li> the responsibility to grant the same freedoms when sharing the software.</li></ul><p>This program is distributed in the hope that it will be useful, but without any warranty.</p></source> + <location filename="../lib/about/aboutplugin.ui" line="104"/> + <source>Key</source> + <translation>Ключ</translation> + </message> + <message> + <location filename="../lib/about/aboutplugin.ui" line="109"/> + <source>Value</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../lib/about/aboutdialog.cpp" line="53"/> - <source><p>Version </source> + <location filename="../lib/about/aboutplugin.ui" line="118"/> + <source>Controls</source> + <translation>Контрол</translation> + </message> + <message> + <location filename="../lib/about/aboutplugin.ui" line="124"/> + <source>Load</source> + <translation>Зареди</translation> + </message> + <message> + <location filename="../lib/about/aboutplugin.ui" line="141"/> + <source>Status</source> + <translation>Статус</translation> + </message> +</context> +<context> + <name>AddressBar</name> + <message> + <location filename="../lib/addressbar/addressbar.ui" line="14"/> + <source>Form</source> <translation type="unfinished"></translation> </message> </context> <context> + <name>BookmarkModel</name> + <message> + <location filename="../lib/bookmarks/model/bookmarkmodel.cpp" line="19"/> + <source>Title</source> + <translation>Име</translation> + </message> + <message> + <location filename="../lib/bookmarks/model/bookmarkmodel.cpp" line="19"/> + <source>Address</source> + <translation>Адрес</translation> + </message> +</context> +<context> <name>BookmarksDialog</name> <message> <location filename="../lib/bookmarks/bookmarksform.ui" line="14"/> @@ -81,28 +155,27 @@ <translation>Изтрий Елемент</translation> </message> <message> - <location filename="../lib/bookmarks/bookmarksform.ui" line="85"/> - <location filename="../lib/bookmarks/bookmarksform.ui" line="106"/> + <location filename="../lib/bookmarks/bookmarksform.ui" line="93"/> <source>Address</source> <translation>Адрес</translation> </message> <message> - <location filename="../lib/bookmarks/bookmarksform.ui" line="93"/> + <location filename="../lib/bookmarks/bookmarksform.ui" line="80"/> <source>Edit Bookmark</source> <translation>Редактирай Отметка</translation> </message> <message> - <location filename="../lib/bookmarks/bookmarksform.ui" line="99"/> + <location filename="../lib/bookmarks/bookmarksform.ui" line="86"/> <source>Title</source> <translation>Име</translation> </message> <message> - <location filename="../lib/bookmarks/bookmarksform.ui" line="122"/> + <location filename="../lib/bookmarks/bookmarksform.ui" line="109"/> <source>Edit Folder</source> <translation>Редактирай Папка</translation> </message> <message> - <location filename="../lib/bookmarks/bookmarksform.ui" line="128"/> + <location filename="../lib/bookmarks/bookmarksform.ui" line="115"/> <source>Name</source> <translation>Име</translation> </message> @@ -110,80 +183,28 @@ <context> <name>BookmarksWidget</name> <message> - <location filename="../lib/bookmarks/bookmarkswidget.cpp" line="57"/> - <location filename="../lib/bookmarks/bookmarkswidget.cpp" line="68"/> - <source>title</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../lib/bookmarks/bookmarkswidget.cpp" line="58"/> - <source>href</source> - <translation type="unfinished"></translation> + <location filename="../lib/bookmarks/bookmarkswidget.cpp" line="79"/> + <location filename="../lib/bookmarks/bookmarkswidget.cpp" line="88"/> + <source>Title</source> + <translation>Име</translation> </message> </context> <context> <name>Browser</name> <message> - <location filename="../src/browser.cpp" line="191"/> - <source>Bookmarks</source> - <translation>Отметки</translation> - </message> - <message> - <location filename="../src/browser.cpp" line="204"/> - <source>Downloads</source> - <translation>Сваляния</translation> - </message> -</context> -<context> - <name>CookiesForm</name> - <message> - <location filename="../src/forms/cookiesform.ui" line="14"/> - <source>Cookies</source> - <translation>Бисквитки</translation> - </message> - <message> - <location filename="../src/forms/cookiesform.ui" line="29"/> - <source>Expiration</source> - <translation>Изтича</translation> - </message> - <message> - <location filename="../src/forms/cookiesform.ui" line="37"/> - <source>Details</source> - <translation>Детайли</translation> - </message> - <message> - <location filename="../src/forms/cookiesform.ui" line="45"/> - <source>Is HTTP Only</source> - <translation>Само HTTP</translation> - </message> - <message> - <location filename="../src/forms/cookiesform.ui" line="52"/> - <source>Is Secure</source> - <translation>Сигурна</translation> - </message> - <message> - <location filename="../src/forms/cookiesform.ui" line="59"/> - <source>Is Session Cookie</source> - <translation>Сесийна</translation> - </message> - <message> - <location filename="../src/forms/cookiesform.ui" line="87"/> - <source>Path</source> - <translation>Път</translation> + <location filename="../src/browser.cpp" line="233"/> + <source>About</source> + <translation>Относно</translation> </message> <message> - <location filename="../src/forms/cookiesform.cpp" line="55"/> - <location filename="../src/forms/cookiesform.cpp" line="56"/> - <location filename="../src/forms/cookiesform.cpp" line="57"/> - <source>yes</source> - <translation>да</translation> + <location filename="../src/browser.cpp" line="239"/> + <source>Run</source> + <translation type="unfinished"></translation> </message> <message> - <location filename="../src/forms/cookiesform.cpp" line="55"/> - <location filename="../src/forms/cookiesform.cpp" line="56"/> - <location filename="../src/forms/cookiesform.cpp" line="57"/> - <source>no</source> - <translation>не</translation> + <location filename="../src/browser.cpp" line="250"/> + <source>Remove</source> + <translation>Премахни</translation> </message> </context> <context> @@ -217,7 +238,12 @@ <translation type="unfinished"></translation> </message> <message> - <location filename="../lib/downloads/widgets/downloaditemform.ui" line="74"/> + <location filename="../lib/downloads/widgets/downloaditemform.ui" line="72"/> + <source>Open</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../lib/downloads/widgets/downloaditemform.ui" line="81"/> <source>path_label</source> <translation type="unfinished"></translation> </message> @@ -225,27 +251,27 @@ <context> <name>DownloadItemWidget</name> <message> - <location filename="../lib/downloads/widgets/downloaditemwidget.cpp" line="74"/> + <location filename="../lib/downloads/widgets/downloaditemwidget.cpp" line="80"/> <source>Requested</source> <translation>Поискан</translation> </message> <message> - <location filename="../lib/downloads/widgets/downloaditemwidget.cpp" line="79"/> + <location filename="../lib/downloads/widgets/downloaditemwidget.cpp" line="86"/> <source>In progress</source> <translation>Изпълнява се</translation> </message> <message> - <location filename="../lib/downloads/widgets/downloaditemwidget.cpp" line="84"/> + <location filename="../lib/downloads/widgets/downloaditemwidget.cpp" line="92"/> <source>Completed</source> <translation>Изпълнен</translation> </message> <message> - <location filename="../lib/downloads/widgets/downloaditemwidget.cpp" line="89"/> + <location filename="../lib/downloads/widgets/downloaditemwidget.cpp" line="98"/> <source>Cancelled</source> <translation>Отменен</translation> </message> <message> - <location filename="../lib/downloads/widgets/downloaditemwidget.cpp" line="94"/> + <location filename="../lib/downloads/widgets/downloaditemwidget.cpp" line="104"/> <source>Interrupted</source> <translation type="unfinished"></translation> </message> @@ -253,194 +279,244 @@ <context> <name>DownloadsWidget</name> <message> - <location filename="../lib/downloads/downloadswidget.cpp" line="20"/> + <location filename="../lib/downloads/downloadswidget.cpp" line="21"/> <source>Downloads</source> <translation>Сваляния</translation> </message> <message> - <location filename="../lib/downloads/downloadswidget.cpp" line="35"/> - <source>Save</source> - <translation>Запиши</translation> + <location filename="../lib/downloads/downloadswidget.cpp" line="33"/> + <source>Save File</source> + <translation type="unfinished"></translation> </message> </context> <context> - <name>MainWindow</name> + <name>EditBookmarkDialog</name> + <message> + <location filename="../lib/bookmarks/forms/editbookmarkdialog.ui" line="14"/> + <source>Edit Bookmark</source> + <translation type="unfinished">Редактирай Отметка</translation> + </message> <message> - <location filename="../src/mainwindow/mainwindow.ui" line="14"/> - <source>MainWindow</source> + <location filename="../lib/bookmarks/forms/editbookmarkdialog.ui" line="22"/> + <source>Title</source> + <translation type="unfinished">Име</translation> + </message> + <message> + <location filename="../lib/bookmarks/forms/editbookmarkdialog.ui" line="32"/> + <source>Address</source> + <translation type="unfinished">Адрес</translation> + </message> + <message> + <location filename="../lib/bookmarks/forms/editbookmarkdialog.ui" line="42"/> + <source>Tags</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/mainwindow/mainwindow.ui" line="28"/> - <source>s&molbote</source> + <location filename="../lib/bookmarks/forms/editbookmarkdialog.ui" line="52"/> + <source>Description</source> <translation type="unfinished"></translation> </message> +</context> +<context> + <name>MainWindow</name> <message> - <location filename="../src/mainwindow/mainwindow.ui" line="40"/> - <source>Session</source> - <translation>Сесия</translation> + <location filename="../src/mainwindow/mainwindow.cpp" line="298"/> + <source>Close multiple subwindows?</source> + <translation>Затвори множество подпрозорци?</translation> </message> <message> - <location filename="../src/mainwindow/mainwindow.ui" line="47"/> - <source>Wi&ndow</source> - <translation>Прозорец</translation> + <location filename="../src/mainwindow/mainwindow.cpp" line="298"/> + <source>Do you want to close all subwindows?</source> + <translation>Искате ли да затворите всички подпрозорци?</translation> </message> +</context> +<context> + <name>MenuBar</name> <message> - <location filename="../src/mainwindow/mainwindow.ui" line="56"/> - <source>Too&ls</source> - <translation>Инструменти</translation> + <location filename="../src/mainwindow/menubar.cpp" line="38"/> + <source>Find in menus</source> + <translation>Намери в менютата</translation> </message> <message> - <location filename="../src/mainwindow/mainwindow.ui" line="61"/> - <source>Pa&ge</source> - <translation>Страница</translation> + <location filename="../src/mainwindow/menubar.cpp" line="72"/> + <location filename="../src/mainwindow/menubar.cpp" line="73"/> + <source>Save Session</source> + <translation>Запиши сесия</translation> + </message> + <message> + <location filename="../src/mainwindow/menubar.cpp" line="73"/> + <source>JSON (*.json)</source> + <translation>JSON (*.json)</translation> + </message> + <message> + <location filename="../src/mainwindow/menubar.cpp" line="83"/> + <source>Open Session</source> + <translation>Отвори сесия</translation> + </message> + <message> + <location filename="../src/mainwindow/menubar.cpp" line="89"/> + <source>Bookmarks</source> + <translation>Отметки</translation> + </message> + <message> + <location filename="../src/mainwindow/menubar.cpp" line="94"/> + <source>Downloads</source> + <translation>Сваляния</translation> + </message> + <message> + <location filename="../src/mainwindow/menubar.cpp" line="100"/> + <source>Load Plugin</source> + <translation>Зареди добавка</translation> </message> <message> - <location filename="../src/mainwindow/mainwindow.ui" line="79"/> - <source>&New Subwindow</source> - <translation>Нов Подпрозорец</translation> + <location filename="../src/mainwindow/menubar.cpp" line="101"/> + <source>Select Plugin</source> + <translation>Избери добавка</translation> </message> <message> - <location filename="../src/mainwindow/mainwindow.ui" line="84"/> - <source>New &Window</source> - <translation>Нов Прозорец</translation> + <location filename="../src/mainwindow/menubar.cpp" line="101"/> + <source>Plugins (*.so)</source> + <translation>Добавки (*.so)</translation> </message> <message> - <location filename="../src/mainwindow/mainwindow.ui" line="89"/> - <source>&About</source> + <location filename="../src/mainwindow/menubar.cpp" line="107"/> + <source>About</source> <translation>Относно</translation> </message> <message> - <location filename="../src/mainwindow/mainwindow.ui" line="94"/> - <source>A&bout Qt</source> - <translation>Относно Qt</translation> + <location filename="../src/mainwindow/menubar.cpp" line="110"/> + <source>Help</source> + <translation>Помощ</translation> </message> <message> - <location filename="../src/mainwindow/mainwindow.ui" line="99"/> - <source>&Quit</source> + <location filename="../src/mainwindow/menubar.cpp" line="116"/> + <source>Quit</source> <translation>Изход</translation> </message> <message> - <location filename="../src/mainwindow/mainwindow.ui" line="104"/> - <source>&Save Session</source> - <translation>Запази Сесия</translation> + <location filename="../src/mainwindow/menubar.cpp" line="120"/> + <source>Window</source> + <translation>Прозорец</translation> + </message> + <message> + <location filename="../src/mainwindow/menubar.cpp" line="122"/> + <source>New Window</source> + <translation>Нов прозорец</translation> </message> <message> - <location filename="../src/mainwindow/mainwindow.ui" line="109"/> - <source>&Load Session</source> - <translation>Зареди Сесия</translation> + <location filename="../src/mainwindow/menubar.cpp" line="125"/> + <source>New Subwindow</source> + <translation>Нов подпрозорец</translation> </message> <message> - <location filename="../src/mainwindow/mainwindow.ui" line="114"/> - <source>&Tile Windows</source> + <location filename="../src/mainwindow/menubar.cpp" line="132"/> + <source>Tile Subwindows</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/mainwindow/mainwindow.ui" line="119"/> - <source>&Cascade Windows</source> + <location filename="../src/mainwindow/menubar.cpp" line="135"/> + <source>Cascade Subwindows</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/mainwindow/mainwindow.ui" line="124"/> - <source>Current &Window</source> - <translation>Сегашен Прозорец</translation> + <location filename="../src/mainwindow/menubar.cpp" line="139"/> + <source>Subwindow</source> + <translation>Подпрозорец</translation> </message> <message> - <location filename="../src/mainwindow/mainwindow.ui" line="129"/> - <source>&Create Bookmark</source> - <translation>Създай Отметка</translation> + <location filename="../src/mainwindow/menubar.cpp" line="141"/> + <source>New Tab</source> + <translation>Нов таб</translation> </message> <message> - <location filename="../src/mainwindow/mainwindow.ui" line="134"/> - <source>&Save Page</source> - <translation>Запиши Страница</translation> + <location filename="../src/mainwindow/menubar.cpp" line="152"/> + <source>Restore last tab</source> + <translation>Възстанови последния таб</translation> </message> <message> - <location filename="../src/mainwindow/mainwindow.ui" line="139"/> - <source>&Print Page</source> - <translation>Отпечатай Страница</translation> + <location filename="../src/mainwindow/menubar.cpp" line="160"/> + <source>Restore previous tab</source> + <translation>Възстанови предишен таб</translation> </message> <message> - <location filename="../src/mainwindow/mainwindow.ui" line="144"/> - <source>P&rint to PDF</source> - <translation>Отпечатай като PDF</translation> + <location filename="../src/mainwindow/menubar.cpp" line="171"/> + <source>Subwindow Profile</source> + <translation>Профил на подпрозореца</translation> </message> <message> - <location filename="../src/mainwindow/mainwindow.ui" line="149"/> - <source>Developer Tools</source> - <translation type="unfinished"></translation> + <location filename="../src/mainwindow/menubar.cpp" line="184"/> + <source>Page</source> + <translation>Страница</translation> </message> <message> - <location filename="../src/mainwindow/mainwindow.cpp" line="120"/> - <source>Save Session</source> - <translation>Запиши сесия</translation> + <location filename="../src/mainwindow/menubar.cpp" line="186"/> + <source>Create Bookmark</source> + <translation>Направи отметка</translation> </message> <message> - <location filename="../src/mainwindow/mainwindow.cpp" line="120"/> - <location filename="../src/mainwindow/mainwindow.cpp" line="128"/> - <source>JSON (*.json)</source> - <translation>JSON (*.json)</translation> + <location filename="../src/mainwindow/menubar.cpp" line="193"/> + <source>Save</source> + <translation>Запиши</translation> </message> <message> - <location filename="../src/mainwindow/mainwindow.cpp" line="128"/> - <source>Load Session</source> - <translation>Зареди сесия</translation> + <location filename="../src/mainwindow/menubar.cpp" line="197"/> + <source>Print</source> + <translation>Отпечатай</translation> </message> <message> - <location filename="../src/mainwindow/mainwindow.cpp" line="172"/> + <location filename="../src/mainwindow/menubar.cpp" line="210"/> + <location filename="../src/mainwindow/menubar.cpp" line="212"/> <source>Print to PDF</source> - <translation type="unfinished">Отпечатай като PDF</translation> + <translation>Отпечатай като PDF</translation> </message> <message> - <location filename="../src/mainwindow/mainwindow.cpp" line="172"/> + <location filename="../src/mainwindow/menubar.cpp" line="212"/> <source>PDF files (*.pdf)</source> - <translation type="unfinished">PDF файлове (*.pdf)</translation> + <translation>PDF файлове (*.pdf)</translation> </message> <message> - <location filename="../src/mainwindow/mainwindow.cpp" line="182"/> - <source>Load Profile</source> - <translation type="unfinished">Зареди Профил</translation> + <location filename="../src/mainwindow/menubar.cpp" line="219"/> + <source>Page Profile</source> + <translation>Профил на страница</translation> </message> <message> - <location filename="../src/mainwindow/mainwindow.cpp" line="401"/> - <source>Close multiple subwindows?</source> - <translation>Затвори множество подпрозорци?</translation> + <location filename="../src/mainwindow/menubar.cpp" line="231"/> + <source>Developer Tools</source> + <translation type="unfinished"></translation> </message> <message> - <location filename="../src/mainwindow/mainwindow.cpp" line="401"/> - <source>Do you want to close all subwindows?</source> - <translation>Искате ли да затворите всички подпрозорци?</translation> + <location filename="../src/mainwindow/menubar.cpp" line="232"/> + <source>View Source</source> + <translation type="unfinished"></translation> + </message> +</context> +<context> + <name>MenuSearch</name> + <message> + <location filename="../src/mainwindow/widgets/menusearch.cpp" line="15"/> + <source>Find...</source> + <translation type="unfinished"></translation> </message> </context> <context> <name>NavigationBar</name> <message> - <location filename="../src/mainwindow/widgets/navigationbar.cpp" line="27"/> + <location filename="../src/mainwindow/widgets/navigationbar.cpp" line="26"/> <source>Back</source> <translation>Назад</translation> </message> <message> - <location filename="../src/mainwindow/widgets/navigationbar.cpp" line="30"/> - <source>Back (%1)</source> - <translation>Назад (%1)</translation> - </message> - <message> - <location filename="../src/mainwindow/widgets/navigationbar.cpp" line="57"/> + <location filename="../src/mainwindow/widgets/navigationbar.cpp" line="54"/> <source>Forward</source> <translation>Напред</translation> </message> <message> - <location filename="../src/mainwindow/widgets/navigationbar.cpp" line="60"/> - <source>Forward (%1)</source> - <translation>Напред (%1)</translation> - </message> - <message> - <location filename="../src/mainwindow/widgets/navigationbar.cpp" line="87"/> + <location filename="../src/mainwindow/widgets/navigationbar.cpp" line="82"/> <source>Refresh</source> <translation>Презареди</translation> </message> <message> - <location filename="../src/mainwindow/widgets/navigationbar.cpp" line="102"/> + <location filename="../src/mainwindow/widgets/navigationbar.cpp" line="97"/> <source>Home</source> <translation>Начална страница</translation> </message> @@ -448,52 +524,82 @@ <context> <name>QObject</name> <message> - <location filename="../src/webengine/webpage.cpp" line="19"/> + <location filename="../src/webengine/webpage.cpp" line="20"/> + <source>The render process terminated normally.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/webengine/webpage.cpp" line="22"/> + <source>The render process terminated with with a non-zero exit status.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/webengine/webpage.cpp" line="24"/> + <source>The render process crashed, for example because of a segmentation fault.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/webengine/webpage.cpp" line="26"/> + <source>The render process was killed, for example by SIGKILL or task manager kill.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/webengine/webpage.cpp" line="29"/> + <source>The render process was terminated with an unknown status.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/webengine/webpage.cpp" line="36"/> <source>Notifications</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/webengine/webpage.cpp" line="21"/> + <location filename="../src/webengine/webpage.cpp" line="38"/> <source>Geolocation</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/webengine/webpage.cpp" line="23"/> + <location filename="../src/webengine/webpage.cpp" line="40"/> <source>Audio Capture</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/webengine/webpage.cpp" line="25"/> + <location filename="../src/webengine/webpage.cpp" line="42"/> <source>Video Capture</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/webengine/webpage.cpp" line="27"/> + <location filename="../src/webengine/webpage.cpp" line="44"/> <source>Audio and Video Capture</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/webengine/webpage.cpp" line="29"/> + <location filename="../src/webengine/webpage.cpp" line="46"/> <source>Mouse Lock</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/webengine/webpage.cpp" line="31"/> + <location filename="../src/webengine/webpage.cpp" line="48"/> <source>Desktop Video Capture</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/webengine/webpage.cpp" line="33"/> + <location filename="../src/webengine/webpage.cpp" line="50"/> <source>Desktop Audio and Video Capture</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/mainwindow/mainwindow.cpp" line="49"/> + <location filename="../src/webengine/webpage.cpp" line="53"/> + <source>Unknown feature</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/mainwindow/mainwindow.cpp" line="48"/> <source>Developer Tools</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/webengine/webview.cpp" line="31"/> + <location filename="../src/webengine/webview.cpp" line="35"/> <source>%1 (%2)</source> <translation type="unfinished"></translation> </message> @@ -527,41 +633,97 @@ </message> </context> <context> + <name>SessionDialog</name> + <message> + <location filename="../src/session/sessiondialog.ui" line="14"/> + <source>Select Session</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/session/sessiondialog.ui" line="22"/> + <source>Filter</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/session/sessiondialog.ui" line="29"/> + <source>Search</source> + <translation type="unfinished">Търсене</translation> + </message> + <message> + <location filename="../src/session/sessiondialog.ui" line="46"/> + <source>Open from File</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/session/sessiondialog.cpp" line="34"/> + <source>Create a new window</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/session/sessiondialog.cpp" line="47"/> + <source>Select Session file</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/session/sessiondialog.cpp" line="47"/> + <source>JSON (*.json)</source> + <translation type="unfinished">JSON (*.json)</translation> + </message> +</context> +<context> + <name>SessionForm</name> + <message> + <location filename="../src/session/sessionform.ui" line="14"/> + <source>Form</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/session/sessionform.ui" line="26"/> + <source>TextLabel</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/session/sessionform.ui" line="33"/> + <source>...</source> + <translation type="unfinished"></translation> + </message> +</context> +<context> <name>SubWindow</name> <message> - <location filename="../src/mainwindow/subwindow.cpp" line="42"/> - <location filename="../src/mainwindow/subwindow.cpp" line="57"/> + <location filename="../src/subwindow/subwindow.cpp" line="43"/> + <location filename="../src/subwindow/subwindow.cpp" line="56"/> <source>Profile: %1</source> <translation>Профил: %1</translation> </message> <message> - <location filename="../src/mainwindow/subwindow.cpp" line="44"/> + <location filename="../src/subwindow/subwindow.cpp" line="47"/> <source>Load profile</source> <translation>Зареди Профил</translation> </message> - <message> - <location filename="../src/mainwindow/subwindow.cpp" line="65"/> - <source>Add tab</source> - <translation>Добави таб</translation> - </message> </context> <context> <name>TabWidget</name> <message> - <location filename="../src/mainwindow/widgets/tabwidget.cpp" line="39"/> + <location filename="../src/subwindow/tabwidget.cpp" line="49"/> <source>Close Tab</source> <translation>Затвори Таб</translation> </message> <message> - <location filename="../src/mainwindow/widgets/tabwidget.cpp" line="44"/> + <location filename="../src/subwindow/tabwidget.cpp" line="54"/> <source>Close Tabs left</source> <translation>Затвори Табовете вляво</translation> </message> <message> - <location filename="../src/mainwindow/widgets/tabwidget.cpp" line="52"/> + <location filename="../src/subwindow/tabwidget.cpp" line="62"/> <source>Close Tabs right</source> <translation>Затвори Табовете вдясно</translation> </message> + <message> + <location filename="../src/subwindow/tabwidget.cpp" line="148"/> + <source>Clear</source> + <translation type="unfinished"></translation> + </message> </context> <context> <name>UrlLineEdit</name> @@ -594,42 +756,42 @@ <context> <name>WebPage</name> <message> - <location filename="../src/webengine/webpage.cpp" line="52"/> + <location filename="../src/webengine/webpage.cpp" line="71"/> <source>SSL Error</source> <translation>SSL грешка</translation> </message> <message> - <location filename="../src/webengine/webpage.cpp" line="58"/> + <location filename="../src/webengine/webpage.cpp" line="77"/> <source>An SSL error has occurred on <strong>%1</strong></source> <translation>SSL грешка на <string>%1</strong></translation> </message> <message> - <location filename="../src/webengine/webpage.cpp" line="59"/> + <location filename="../src/webengine/webpage.cpp" line="78"/> <source><p>%1</p><p>This error %2 be overridden.</p></source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/webengine/webpage.cpp" line="62"/> + <location filename="../src/webengine/webpage.cpp" line="81"/> <source>can</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/webengine/webpage.cpp" line="62"/> + <location filename="../src/webengine/webpage.cpp" line="81"/> <source>cannot</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/webengine/webpage.cpp" line="63"/> + <location filename="../src/webengine/webpage.cpp" line="82"/> <source>Error code: %1</source> <translation>Код на грешката: %1</translation> </message> <message> - <location filename="../src/webengine/webpage.cpp" line="107"/> + <location filename="../src/webengine/webpage.cpp" line="99"/> <source>Feature permission request</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/webengine/webpage.cpp" line="109"/> + <location filename="../src/webengine/webpage.cpp" line="101"/> <source><p>The webpage <strong>%1</strong> has requested permission to access: %2</p><p>Allow this feature?</p></source> <translation type="unfinished"></translation> </message> @@ -637,70 +799,144 @@ <context> <name>WebView</name> <message> - <location filename="../src/webengine/webview.cpp" line="122"/> + <location filename="../src/webengine/webview.cpp" line="183"/> <source>Back</source> <translation>Назад</translation> </message> <message> - <location filename="../src/webengine/webview.cpp" line="136"/> + <location filename="../src/webengine/webview.cpp" line="197"/> <source>Forward</source> <translation>Напред</translation> </message> <message> - <location filename="../src/webengine/webview.cpp" line="150"/> + <location filename="../src/webengine/webview.cpp" line="211"/> <source>Reload</source> <translation>Презареди</translation> </message> <message> - <location filename="../src/webengine/webview.cpp" line="153"/> + <location filename="../src/webengine/webview.cpp" line="214"/> <source>Reload and bypass Cache</source> <translation>Презареди и заобиколи кеша</translation> </message> <message> - <location filename="../src/webengine/webview.cpp" line="158"/> + <location filename="../src/webengine/webview.cpp" line="219"/> <source>Copy image to clipboard</source> <translation>Копирай изображение</translation> </message> <message> - <location filename="../src/webengine/webview.cpp" line="161"/> + <location filename="../src/webengine/webview.cpp" line="222"/> <source>Copy image URL to clipboard</source> <translation>Копирай адреса на изображението</translation> </message> <message> - <location filename="../src/webengine/webview.cpp" line="165"/> + <location filename="../src/webengine/webview.cpp" line="227"/> + <source>Open image</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/webengine/webview.cpp" line="230"/> <source>Open image in new tab</source> <translation>Отвори изображението в нов таб</translation> </message> <message> - <location filename="../src/webengine/webview.cpp" line="168"/> + <location filename="../src/webengine/webview.cpp" line="234"/> <source>Save image</source> <translation>Запиши изображение</translation> </message> <message> - <location filename="../src/webengine/webview.cpp" line="180"/> + <location filename="../src/webengine/webview.cpp" line="246"/> <source>Open link in new tab</source> <translation>Отвори линк в нов таб</translation> </message> <message> - <location filename="../src/webengine/webview.cpp" line="184"/> + <location filename="../src/webengine/webview.cpp" line="257"/> <source>Open link in new tab with profile</source> <translation>Отвори линк в нов таб с профил</translation> </message> <message> - <location filename="../src/webengine/webview.cpp" line="196"/> + <location filename="../src/webengine/webview.cpp" line="260"/> <source>Open link in new window</source> <translation>Отвори линк в нов прозорец</translation> </message> <message> - <location filename="../src/webengine/webview.cpp" line="200"/> + <location filename="../src/webengine/webview.cpp" line="264"/> <source>Copy link address</source> <translation>Копирай адрес на линка</translation> </message> <message> - <location filename="../src/webengine/webview.cpp" line="214"/> - <location filename="../src/webengine/webview.cpp" line="220"/> + <location filename="../src/webengine/webview.cpp" line="278"/> + <location filename="../src/webengine/webview.cpp" line="284"/> <source>Zoom: %1x</source> <translation>Увеличение: %1x</translation> </message> + <message> + <location filename="../src/webengine/webview.cpp" line="297"/> + <source>Autofill form</source> + <translation type="unfinished"></translation> + </message> +</context> +<context> + <name>builtins</name> + <message> + <location filename="../src/builtins.cpp" line="39"/> + <source>smolbote </source> + <translation>smolbote </translation> + </message> + <message> + <location filename="../src/builtins.cpp" line="39"/> + <source>: yet another no-frills browser +</source> + <translation>: поредния опростен браузър +</translation> + </message> + <message> + <location filename="../src/builtins.cpp" line="40"/> + <source>Usage: </source> + <translation>Използване: </translation> + </message> + <message> + <location filename="../src/builtins.cpp" line="40"/> + <source> [options] [command/URL(s)] + +</source> + <translation> [опции] [командa/адрес(и)] + +</translation> + </message> + <message> + <location filename="../src/builtins.cpp" line="42"/> + <source>Command-line Options: +</source> + <translation>Командни опции: +</translation> + </message> + <message> + <location filename="../src/builtins.cpp" line="44"/> + <source>Commands: +</source> + <translation>Команди: +</translation> + </message> + <message> + <location filename="../src/builtins.cpp" line="49"/> + <source>Configuration Options: +</source> + <translation>Настройки: +</translation> + </message> + <message> + <location filename="../src/builtins.cpp" line="52"/> + <source>For more information on usage, refer to the manual page smolbote.7 +</source> + <translation>За повече информация относно използването на тази програма, вижте man smolbote.7 +</translation> + </message> + <message> + <location filename="../src/builtins.cpp" line="53"/> + <source>For more information on configuration, refer to the manual page smolbote.5 +</source> + <translation>За повече информация относно настройките на тази програма, вижте man smolbote.5 +</translation> + </message> </context> </TS> diff --git a/linux/poi_firejail.desktop.in b/linux/poi_firejail.desktop.in index 139ffde..31e5b64 100644 --- a/linux/poi_firejail.desktop.in +++ b/linux/poi_firejail.desktop.in @@ -3,7 +3,7 @@ Version=1.0 Name=smolbote (in firejail) GenericName=Web Browser Comment=yet another no-frills browser -Exec=@firejail@ --profile=@firejail_profile@ @exec_poi@ %u +Exec=@firejail@ --profile=@firejail_profile@ @exec_poi@ --mainwindow.title="[[smolbote]]" %u Icon=poi Terminal=false Type=Application diff --git a/meson.build b/meson.build index 06d52b6..9c2f0d3 100644 --- a/meson.build +++ b/meson.build @@ -70,6 +70,7 @@ subdir('lib/web') subdir('3rd-party/SingleApplication') subdir('src') +subdir('lang') subdir('doc') subdir('plugins/ConfigurationEditor') diff --git a/meson_options.txt b/meson_options.txt index f611a7f..ee219a7 100644 --- a/meson_options.txt +++ b/meson_options.txt @@ -3,7 +3,8 @@ option('poiName', description: 'Executable name', type: 'string', value: 'poi') option('firejail', description: 'firejail executable name', type: 'string', value: '/usr/bin/firejail') # Install options -option('manpage', description: 'Generate and install manpage', type: 'feature', value: 'auto') +option('manpage', description: 'Generate and install manpage', type: 'feature', value: 'auto') +option('translations', description: 'Generate and install translations', type: 'feature', value: 'auto') # Feature options option('Breakpad', description: 'Enable breakpad crash reporting', type: 'feature', value: 'auto') diff --git a/src/builtins.cpp b/src/builtins.cpp index 242a09f..8cfdb46 100644 --- a/src/builtins.cpp +++ b/src/builtins.cpp @@ -10,17 +10,22 @@ #include <QObject> #include <QVersionNumber> #include <iostream> -#include <version.h> +#include "version.h" +#include <QTranslator> -inline std::string tr(const char *text) +inline const char* tr(const QTranslator *translator, const char *text) { - return QObject::tr(text).toStdString(); + const auto t = translator->translate("builtins", text); + if(t.isEmpty()) + return text; + else + return qUtf8Printable(t); } int builtins::version() { const auto version = QVersionNumber::fromString(QLatin1String(poi_Version)).toString().toStdString(); - std::cout << tr("smolbote ") << version << std::endl; + std::cout << "smolbote " << version << std::endl; return 0; } @@ -33,24 +38,24 @@ int builtins::build() int builtins::help(const char *cmd, boost::program_options::options_description cmd_opts, boost::program_options::options_description config_opts, - CommandHash_t pluginCommands) + CommandHash_t pluginCommands, const QTranslator *translator) { const auto version = QVersionNumber::fromString(QLatin1String(poi_Version)).toString().toStdString(); - std::cout << tr("smolbote ") << version << tr(": yet another no-frills browser\n"); - std::cout << tr("Usage: ") << cmd << tr(" [options] [command/URL(s)]\n\n"); + std::cout << tr(translator, "smolbote ") << version << tr(translator, ": yet another no-frills browser\n"); + std::cout << tr(translator, "Usage: ") << cmd << tr(translator, " [options] [command/URL(s)]\n\n"); - std::cout << tr("Command-line Options:\n") << cmd_opts << '\n'; + std::cout << tr(translator, "Command-line Options:\n") << cmd_opts << '\n'; - std::cout << tr("Commands: \n"); + std::cout << tr(translator, "Commands: \n"); for(auto it = pluginCommands.constBegin(); it != pluginCommands.constEnd(); ++it) std::cout << " " << it.key().toStdString() << '\n'; std::cout << '\n'; - std::cout << tr("Configuration Options:\n") << config_opts << '\n'; + std::cout << tr(translator, "Configuration Options:\n") << config_opts << '\n'; #ifdef Q_OS_UNIX - std::cout << tr("For more information on usage, refer to the manual page smolbote.7\n"); - std::cout << tr("For more information on configuration, refer to the manual page smolbote.5\n"); + std::cout << tr(translator, "For more information on usage, refer to the manual page smolbote.7\n"); + std::cout << tr(translator, "For more information on configuration, refer to the manual page smolbote.5\n"); #endif std::cout << std::endl; diff --git a/src/builtins.h b/src/builtins.h index 6c7153c..7ad8ba5 100644 --- a/src/builtins.h +++ b/src/builtins.h @@ -19,7 +19,8 @@ int build(); int help(const char *cmd, boost::program_options::options_description cmd_opts, boost::program_options::options_description config_opts, - CommandHash_t pluginCommands); + CommandHash_t pluginCommands, + const QTranslator *translator); } #endif diff --git a/src/main.cpp b/src/main.cpp index d9e1c6a..04ce57a 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -65,6 +65,10 @@ int main(int argc, char **argv) // create and load configuration std::unique_ptr<Configuration> config = std::make_unique<Configuration>(argc, argv, cmd->value<std::string>("config").value()); + QTranslator translator; + if(config->exists("browser.translation")) { + translator.load(config->value<QString>("browser.translation").value()); + } QVector<QPluginLoader *> plugins; CommandHash_t pluginCommands; @@ -88,13 +92,21 @@ int main(int argc, char **argv) } if(cmd->exists("help")) { - return builtins::help(argv[0], cmd->description(), config->description(), pluginCommands); + return builtins::help(argv[0], cmd->description(), config->description(), pluginCommands, &translator); } // argc, argv, allowSecondary Browser app(argc, argv); // set this, otherwise the webview becomes black when using a stylesheet app.setAttribute(Qt::AA_DontCreateNativeWidgetSiblings, true); + app.installTranslator(&translator); + if(config->exists("browser.locale")) { + auto *locale = new QTranslator(&app); + if(locale->load("qt_" + config->value<QString>("browser.locale").value(), QLibraryInfo::location(QLibraryInfo::TranslationsPath))) + app.installTranslator(locale); + else + delete locale; + } #ifdef CONFIG_USEBREAKPAD const std::string crashpath = config->value<std::string>("browser.crash.path").value_or("/tmp"); @@ -119,23 +131,6 @@ int main(int argc, char **argv) #endif #endif // CONFIG_USEBREAKPAD - // translator - if(config->exists("browser.locale")) { - auto *translator = new QTranslator(&app); - if(translator->load("qt_" + config->value<QString>("browser.locale").value(), QLibraryInfo::location(QLibraryInfo::TranslationsPath))) - app.installTranslator(translator); - else - delete translator; - } - - if(config->exists("browser.translation")) { - auto *translator = new QTranslator(&app); - if(translator->load(config->value<QString>("browser.translation").value())) - app.installTranslator(translator); - else - delete translator; - } - const bool isStandalone = cmd->exists("no-remote"); const auto profile = config->value<QString>("profile.default"); diff --git a/src/mainwindow/menubar.h b/src/mainwindow/menubar.h index 38b1286..7b592dd 100644 --- a/src/mainwindow/menubar.h +++ b/src/mainwindow/menubar.h @@ -15,6 +15,8 @@ class Configuration; class MainWindow; class MenuBar : public QMenuBar { + Q_OBJECT + public: MenuBar(const Configuration *config, MainWindow *parent = nullptr); |