aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--lang/bg.ts698
-rw-r--r--linux/poi_firejail.desktop.in2
-rw-r--r--meson.build1
-rw-r--r--meson_options.txt3
-rw-r--r--src/builtins.cpp29
-rw-r--r--src/builtins.h3
-rw-r--r--src/main.cpp31
-rw-r--r--src/mainwindow/menubar.h2
8 files changed, 505 insertions, 264 deletions
diff --git a/lang/bg.ts b/lang/bg.ts
index 4b8eb7a..4fae35d 100644
--- a/lang/bg.ts
+++ b/lang/bg.ts
@@ -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>&lt;h2&gt;smolbote %1&lt;/h2&gt;&lt;p&gt;&lt;i&gt;yet another no-frills browser&lt;/i&gt;&lt;/p&gt;&lt;p&gt;This program is free software, see &lt;i&gt;License&lt;/i&gt; for more information.&lt;/p&gt;</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../lib/about/aboutdialog.cpp" line="40"/>
+ <source>&lt;p&gt;Copyright 2017 - 2018 aqua&lt;/p&gt;&lt;p&gt;This program is free software, and you are welcome to use it under the conditions set by the GNU GPLv3.&lt;br&gt;This is a short summary: &lt;ul&gt;&lt;li&gt; the freedom to use the software for any purpose,&lt;/li&gt;&lt;li&gt; the freedom to change the software to suit your needs,&lt;/li&gt;&lt;li&gt; the freedom to share the software with anyone,&lt;/li&gt;&lt;li&gt; the freedom to share the changes you make, and&lt;/li&gt;&lt;li&gt; the responsibility to grant the same freedoms when sharing the software.&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;This program is distributed in the hope that it will be useful, but without any warranty.&lt;/p&gt;&lt;p&gt;You can read the full terms of the license on &lt;a href=&apos;https://www.gnu.org/licenses/gpl-3.0.en.html&apos;&gt;the GNU website&lt;/a&gt;.&lt;/p&gt;</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../lib/about/aboutdialog.cpp" line="52"/>
+ <source>&lt;p&gt;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>&lt;h2&gt;smolbote %1&lt;/h2&gt;&lt;p&gt;&lt;i&gt;yet another no-frills browser&lt;/i&gt;&lt;/p&gt;&lt;p&gt;This program is free software, see &lt;i&gt;License&lt;/i&gt; for more information.&lt;/p&gt;&lt;p&gt;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>&lt;p&gt;Copyright 2017 - 2018 aqua&lt;/p&gt;&lt;p&gt;This program is free software, and you are welcome to use it under the conditions set by the GNU GPLv3.&lt;br&gt;This is a short summary: &lt;ul&gt;&lt;li&gt; the freedom to use the software for any purpose,&lt;/li&gt;&lt;li&gt; the freedom to change the software to suit your needs,&lt;/li&gt;&lt;li&gt; the freedom to share the software with anyone,&lt;/li&gt;&lt;li&gt; the freedom to share the changes you make, and&lt;/li&gt;&lt;li&gt; the responsibility to grant the same freedoms when sharing the software.&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;This program is distributed in the hope that it will be useful, but without any warranty.&lt;/p&gt;</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>&lt;p&gt;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&amp;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&amp;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&amp;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&amp;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>&amp;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 &amp;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>&amp;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&amp;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>&amp;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>&amp;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>&amp;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>&amp;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>&amp;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 &amp;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>&amp;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>&amp;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>&amp;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&amp;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 &lt;strong&gt;%1&lt;/strong&gt;</source>
<translation>SSL грешка на &lt;string&gt;%1&lt;/strong&gt;</translation>
</message>
<message>
- <location filename="../src/webengine/webpage.cpp" line="59"/>
+ <location filename="../src/webengine/webpage.cpp" line="78"/>
<source>&lt;p&gt;%1&lt;/p&gt;&lt;p&gt;This error %2 be overridden.&lt;/p&gt;</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>&lt;p&gt;The webpage &lt;strong&gt;%1&lt;/strong&gt; has requested permission to access: %2&lt;/p&gt;&lt;p&gt;Allow this feature?&lt;/p&gt;</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);