diff options
-rw-r--r-- | doc/Translating.md | 5 | ||||
-rw-r--r-- | lang/bg.ts | 650 | ||||
-rw-r--r-- | lib/configuration/configuration.cpp | 4 | ||||
-rw-r--r-- | lib/configuration/defaults.h.win32 | 2 | ||||
-rwxr-xr-x | tools/deploy/get-latest-builds.sh | 23 |
5 files changed, 684 insertions, 0 deletions
diff --git a/doc/Translating.md b/doc/Translating.md index 111ddbc..fc7bad3 100644 --- a/doc/Translating.md +++ b/doc/Translating.md @@ -4,6 +4,11 @@ lupdate src/ lib/ -ts lang/<lang-id>.ts ~~~ +### Updating translations +~~~sh +lupdate src/ lib/ -no-obsolete -ts lang/<lang-id>.ts +~~~ + ## Baking translation This generates lang/<lang-id>.qm diff --git a/lang/bg.ts b/lang/bg.ts new file mode 100644 index 0000000..9108f68 --- /dev/null +++ b/lang/bg.ts @@ -0,0 +1,650 @@ +<?xml version="1.0" encoding="utf-8"?> +<!DOCTYPE TS> +<TS version="2.1" language="bg_BG"> +<context> + <name>AboutDialog</name> + <message> + <location filename="../lib/about/aboutdialog.ui" line="14"/> + <location filename="../lib/about/aboutdialog.ui" line="64"/> + <source>About</source> + <translation>Относно</translation> + </message> + <message> + <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"/> + <source>TextLabel</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../lib/about/aboutdialog.ui" line="89"/> + <source>License</source> + <translation>Лиценз</translation> + </message> + <message> + <location filename="../lib/about/aboutdialog.ui" line="114"/> + <source>Details</source> + <translation>Детайли</translation> + </message> + <message> + <location filename="../lib/about/aboutdialog.ui" line="152"/> + <source>Name</source> + <translation>Име</translation> + </message> + <message> + <location filename="../lib/about/aboutdialog.ui" line="157"/> + <source>Author</source> + <translation>Автор</translation> + </message> + <message> + <location filename="../lib/about/aboutdialog.ui" line="162"/> + <source>Shortcut</source> + <translation type="unfinished">Клавишна комбинация</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> + <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> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../lib/about/aboutdialog.cpp" line="53"/> + <source><p>Version </source> + <translation type="unfinished"></translation> + </message> +</context> +<context> + <name>BookmarksDialog</name> + <message> + <location filename="../lib/bookmarks/bookmarksform.ui" line="14"/> + <source>Bookmarks</source> + <translation>Отметки</translation> + </message> + <message> + <location filename="../lib/bookmarks/bookmarksform.ui" line="35"/> + <source>Add Folder</source> + <translation>Добави Папка</translation> + </message> + <message> + <location filename="../lib/bookmarks/bookmarksform.ui" line="42"/> + <source>Add Bookmark</source> + <translation>Добави Отметка</translation> + </message> + <message> + <location filename="../lib/bookmarks/bookmarksform.ui" line="49"/> + <source>Delete Item</source> + <translation>Изтрий Елемент</translation> + </message> + <message> + <location filename="../lib/bookmarks/bookmarksform.ui" line="85"/> + <location filename="../lib/bookmarks/bookmarksform.ui" line="106"/> + <source>Address</source> + <translation>Адрес</translation> + </message> + <message> + <location filename="../lib/bookmarks/bookmarksform.ui" line="93"/> + <source>Edit Bookmark</source> + <translation>Редактирай Отметка</translation> + </message> + <message> + <location filename="../lib/bookmarks/bookmarksform.ui" line="99"/> + <source>Title</source> + <translation>Име</translation> + </message> + <message> + <location filename="../lib/bookmarks/bookmarksform.ui" line="122"/> + <source>Edit Folder</source> + <translation>Редактирай Папка</translation> + </message> + <message> + <location filename="../lib/bookmarks/bookmarksform.ui" line="128"/> + <source>Name</source> + <translation>Име</translation> + </message> +</context> +<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> + </message> +</context> +<context> + <name>Browser</name> + <message> + <location filename="../src/browser.cpp" line="190"/> + <source>Bookmarks</source> + <translation>Отметки</translation> + </message> + <message> + <location filename="../src/browser.cpp" line="203"/> + <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> + </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> + </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> + </message> +</context> +<context> + <name>DownloadDialog</name> + <message> + <location filename="../lib/downloads/downloadsform.ui" line="14"/> + <source>Downloads</source> + <translation>Сваляния</translation> + </message> +</context> +<context> + <name>DownloadItemForm</name> + <message> + <location filename="../lib/downloads/widgets/downloaditemform.ui" line="32"/> + <source>[url]</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../lib/downloads/widgets/downloaditemform.ui" line="48"/> + <source>Pause</source> + <translation>Пауза</translation> + </message> + <message> + <location filename="../lib/downloads/widgets/downloaditemform.ui" line="58"/> + <source>Abort</source> + <translation>Спри</translation> + </message> + <message> + <location filename="../lib/downloads/widgets/downloaditemform.ui" line="65"/> + <source>status_label</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../lib/downloads/widgets/downloaditemform.ui" line="74"/> + <source>path_label</source> + <translation type="unfinished"></translation> + </message> +</context> +<context> + <name>DownloadItemWidget</name> + <message> + <location filename="../lib/downloads/widgets/downloaditemwidget.cpp" line="74"/> + <source>Requested</source> + <translation>Поискан</translation> + </message> + <message> + <location filename="../lib/downloads/widgets/downloaditemwidget.cpp" line="79"/> + <source>In progress</source> + <translation>Изпълнява се</translation> + </message> + <message> + <location filename="../lib/downloads/widgets/downloaditemwidget.cpp" line="84"/> + <source>Completed</source> + <translation>Изпълнен</translation> + </message> + <message> + <location filename="../lib/downloads/widgets/downloaditemwidget.cpp" line="89"/> + <source>Cancelled</source> + <translation>Отменен</translation> + </message> + <message> + <location filename="../lib/downloads/widgets/downloaditemwidget.cpp" line="94"/> + <source>Interrupted</source> + <translation type="unfinished"></translation> + </message> +</context> +<context> + <name>DownloadsWidget</name> + <message> + <location filename="../lib/downloads/downloadswidget.cpp" line="20"/> + <source>Downloads</source> + <translation>Сваляния</translation> + </message> + <message> + <location filename="../lib/downloads/downloadswidget.cpp" line="35"/> + <source>Save</source> + <translation>Запиши</translation> + </message> +</context> +<context> + <name>MainWindow</name> + <message> + <location filename="../src/mainwindow/mainwindow.ui" line="14"/> + <source>MainWindow</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/mainwindow/mainwindow.ui" line="28"/> + <source>s&molbote</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/mainwindow/mainwindow.ui" line="40"/> + <source>Session</source> + <translation>Сесия</translation> + </message> + <message> + <location filename="../src/mainwindow/mainwindow.ui" line="47"/> + <source>Wi&ndow</source> + <translation>Прозорец</translation> + </message> + <message> + <location filename="../src/mainwindow/mainwindow.ui" line="56"/> + <source>Too&ls</source> + <translation>Инструменти</translation> + </message> + <message> + <location filename="../src/mainwindow/mainwindow.ui" line="67"/> + <source>&New Subwindow</source> + <translation>Нов Подпрозорец</translation> + </message> + <message> + <location filename="../src/mainwindow/mainwindow.ui" line="72"/> + <source>New &Window</source> + <translation>Нов Прозорец</translation> + </message> + <message> + <location filename="../src/mainwindow/mainwindow.ui" line="77"/> + <source>&About</source> + <translation>Относно</translation> + </message> + <message> + <location filename="../src/mainwindow/mainwindow.ui" line="82"/> + <source>A&bout Qt</source> + <translation>Относно Qt</translation> + </message> + <message> + <location filename="../src/mainwindow/mainwindow.ui" line="87"/> + <source>&Quit</source> + <translation>Изход</translation> + </message> + <message> + <location filename="../src/mainwindow/mainwindow.ui" line="92"/> + <source>&Save Session</source> + <translation>Запази Сесия</translation> + </message> + <message> + <location filename="../src/mainwindow/mainwindow.ui" line="97"/> + <source>&Load Session</source> + <translation>Зареди Сесия</translation> + </message> + <message> + <location filename="../src/mainwindow/mainwindow.ui" line="102"/> + <source>Tile Windows</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/mainwindow/mainwindow.ui" line="107"/> + <source>Cascade Windows</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/mainwindow/mainwindow.ui" line="112"/> + <source>Current Window</source> + <translation>Сегашен Прозорец</translation> + </message> + <message> + <location filename="../src/mainwindow/mainwindow.cpp" line="90"/> + <source>Save Session</source> + <translation>Запиши сесия</translation> + </message> + <message> + <location filename="../src/mainwindow/mainwindow.cpp" line="90"/> + <location filename="../src/mainwindow/mainwindow.cpp" line="98"/> + <source>JSON (*.json)</source> + <translation>JSON (*.json)</translation> + </message> + <message> + <location filename="../src/mainwindow/mainwindow.cpp" line="98"/> + <source>Load Session</source> + <translation>Зареди сесия</translation> + </message> + <message> + <location filename="../src/mainwindow/mainwindow.cpp" line="317"/> + <source>Close multiple subwindows?</source> + <translation>Затвори множество подпрозорци?</translation> + </message> + <message> + <location filename="../src/mainwindow/mainwindow.cpp" line="317"/> + <source>Do you want to close all subwindows?</source> + <translation>Искате ли да затворите всички подпрозорци?</translation> + </message> +</context> +<context> + <name>NavigationBar</name> + <message> + <location filename="../src/mainwindow/widgets/navigationbar.cpp" line="27"/> + <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"/> + <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"/> + <source>Refresh</source> + <translation>Презареди</translation> + </message> + <message> + <location filename="../src/mainwindow/widgets/navigationbar.cpp" line="102"/> + <source>Home</source> + <translation>Начална страница</translation> + </message> +</context> +<context> + <name>PageMenu</name> + <message> + <location filename="../src/webengine/widgets/pagemenu.cpp" line="26"/> + <source>Page</source> + <translation>Страница</translation> + </message> + <message> + <location filename="../src/webengine/widgets/pagemenu.cpp" line="31"/> + <source>Bookmark page</source> + <translation>Направи отметка</translation> + </message> + <message> + <location filename="../src/webengine/widgets/pagemenu.cpp" line="38"/> + <source>Save Page</source> + <translation>Запиши страница</translation> + </message> + <message> + <location filename="../src/webengine/widgets/pagemenu.cpp" line="43"/> + <source>Print Page</source> + <translation>Отпечатай страница</translation> + </message> + <message> + <location filename="../src/webengine/widgets/pagemenu.cpp" line="56"/> + <location filename="../src/webengine/widgets/pagemenu.cpp" line="58"/> + <source>Print to PDF</source> + <translation>Отпечатай като PDF</translation> + </message> + <message> + <location filename="../src/webengine/widgets/pagemenu.cpp" line="58"/> + <source>PDF files (*.pdf)</source> + <translation>PDF файлове (*.pdf)</translation> + </message> + <message> + <location filename="../src/webengine/widgets/pagemenu.cpp" line="72"/> + <source>Zoom: 1x</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/webengine/widgets/pagemenu.cpp" line="92"/> + <source>Zoom: %1x</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/webengine/widgets/pagemenu.cpp" line="100"/> + <source>Load Profile</source> + <translation>Зареди Профил</translation> + </message> +</context> +<context> + <name>PageToolsMenu</name> + <message> + <location filename="../src/webengine/widgets/pagetoolsmenu.cpp" line="19"/> + <source>Tools</source> + <translation>Инстументи</translation> + </message> + <message> + <location filename="../src/webengine/widgets/pagetoolsmenu.cpp" line="31"/> + <source>Injected Scripts</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/webengine/widgets/pagetoolsmenu.cpp" line="37"/> + <location filename="../src/webengine/widgets/pagetoolsmenu.cpp" line="48"/> + <source>Developer Tools</source> + <translation type="unfinished"></translation> + </message> +</context> +<context> + <name>QObject</name> + <message> + <location filename="../src/webengine/webpage.cpp" line="19"/> + <source>Notifications</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/webengine/webpage.cpp" line="21"/> + <source>Geolocation</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/webengine/webpage.cpp" line="23"/> + <source>Audio Capture</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/webengine/webpage.cpp" line="25"/> + <source>Video Capture</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/webengine/webpage.cpp" line="27"/> + <source>Audio and Video Capture</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/webengine/webpage.cpp" line="29"/> + <source>Mouse Lock</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/webengine/webpage.cpp" line="31"/> + <source>Desktop Video Capture</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/webengine/webpage.cpp" line="33"/> + <source>Desktop Audio and Video Capture</source> + <translation type="unfinished"></translation> + </message> +</context> +<context> + <name>SearchForm</name> + <message> + <location filename="../src/mainwindow/widgets/searchform.ui" line="14"/> + <source>Form</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/mainwindow/widgets/searchform.ui" line="45"/> + <source>Case Sensitive</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/mainwindow/widgets/searchform.ui" line="52"/> + <source>Search Backwards</source> + <translation>Търси обратно</translation> + </message> + <message> + <location filename="../src/mainwindow/widgets/searchform.ui" line="59"/> + <source>No Results found</source> + <translation>Няма резултати</translation> + </message> + <message> + <location filename="../src/mainwindow/widgets/searchform.cpp" line="20"/> + <source>Search</source> + <translation>Търсене</translation> + </message> +</context> +<context> + <name>SubWindow</name> + <message> + <location filename="../src/mainwindow/subwindow.cpp" line="42"/> + <location filename="../src/mainwindow/subwindow.cpp" line="57"/> + <source>Profile: %1</source> + <translation>Профил: %1</translation> + </message> + <message> + <location filename="../src/mainwindow/subwindow.cpp" line="44"/> + <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"/> + <source>Close Tab</source> + <translation>Затвори Таб</translation> + </message> + <message> + <location filename="../src/mainwindow/widgets/tabwidget.cpp" line="44"/> + <source>Close Tabs left</source> + <translation>Затвори Табовете вляво</translation> + </message> + <message> + <location filename="../src/mainwindow/widgets/tabwidget.cpp" line="52"/> + <source>Close Tabs right</source> + <translation>Затвори Табовете вдясно</translation> + </message> +</context> +<context> + <name>UrlLineEdit</name> + <message> + <location filename="../lib/addressbar/urllineedit.cpp" line="22"/> + <source>Enter address</source> + <translation>Въведете адрес</translation> + </message> + <message> + <location filename="../lib/addressbar/urllineedit.cpp" line="30"/> + <source>Copy URL</source> + <translation>Копирай адрес</translation> + </message> + <message> + <location filename="../lib/addressbar/urllineedit.cpp" line="36"/> + <source>Paste URL</source> + <translation>Постави адрес</translation> + </message> + <message> + <location filename="../lib/addressbar/urllineedit.cpp" line="43"/> + <source>Paste and load</source> + <translation>Постави и зареди</translation> + </message> + <message> + <location filename="../lib/addressbar/urllineedit.cpp" line="49"/> + <source>Paste and search</source> + <translation>Постави и търси</translation> + </message> +</context> +<context> + <name>WebPage</name> + <message> + <location filename="../src/webengine/webpage.cpp" line="52"/> + <source>SSL Error</source> + <translation>SSL грешка</translation> + </message> + <message> + <location filename="../src/webengine/webpage.cpp" line="58"/> + <source>An SSL error has occurred on <strong>%1</strong></source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/webengine/webpage.cpp" line="59"/> + <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"/> + <source>can</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/webengine/webpage.cpp" line="62"/> + <source>cannot</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/webengine/webpage.cpp" line="63"/> + <source>Error code: %1</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/webengine/webpage.cpp" line="107"/> + <source>Feature permission request</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/webengine/webpage.cpp" line="109"/> + <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> +</context> +</TS> diff --git a/lib/configuration/configuration.cpp b/lib/configuration/configuration.cpp index cae21fd..5da7fb4 100644 --- a/lib/configuration/configuration.cpp +++ b/lib/configuration/configuration.cpp @@ -18,6 +18,9 @@ namespace po = boost::program_options; inline std::string defaultUserConfigLocation() { +#ifdef config_path + return config_path; +#else // try to locate an existing config QString path = QStandardPaths::locate(QStandardPaths::ConfigLocation, "smolbote/smolbote.cfg"); @@ -26,6 +29,7 @@ inline std::string defaultUserConfigLocation() path = QStandardPaths::writableLocation(QStandardPaths::ConfigLocation) + "/smolbote/smolbote.cfg"; return path.toStdString(); +#endif } Configuration::Configuration(QObject *parent) diff --git a/lib/configuration/defaults.h.win32 b/lib/configuration/defaults.h.win32 index 9a8d5b3..dee9b14 100644 --- a/lib/configuration/defaults.h.win32 +++ b/lib/configuration/defaults.h.win32 @@ -1,6 +1,8 @@ #ifndef SMOLBOTE_DEFAULTS #define SMOLBOTE_DEFAULTS +#define config_path "smolbote.ini" + #define filter_path "hosts" #define plugins_path "plugins" #define profiles_path "profiles" diff --git a/tools/deploy/get-latest-builds.sh b/tools/deploy/get-latest-builds.sh new file mode 100755 index 0000000..fc3046d --- /dev/null +++ b/tools/deploy/get-latest-builds.sh @@ -0,0 +1,23 @@ +#!/bin/bash + +echo Get build information +curl -o project-meta.json -H "Content-Type: application/json" https://ci.appveyor.com/api/projects/XianNox/smolbote-hg + +commit=$(jq -r .build.commitId project-meta.json) +echo Build commit: $commit + +for (( i=0; i<$(jq -r '.build.jobs | length' project-meta.json); i++ )) +do + jobId=$(jq -r .build.jobs[$i].jobId project-meta.json) + osType=$(jq -r .build.jobs[$i].osType project-meta.json) + + echo Downloading $jobId-$osType + curl -o smolbote-nightly-$commit-$osType.7z -L https://ci.appveyor.com/api/buildjobs/$jobId/artifacts/smolbote.7z + + echo Extracting package + 7za x smolbote-nightly-$commit-$osType.7z smolbote-install/bin + mv smolbote-nightly-$commit-$osType.7z serve/ + mv smolbote-install/bin serve/smolbote-$commit-$osType + rm -r smolbote-install +done + |