Merge pull request #25 from Ordissimo/master

This commit is contained in:
Matthieu Gautier 2018-09-05 16:06:08 +02:00
commit 30520fd1aa
13 changed files with 492 additions and 42 deletions

View File

@ -79,13 +79,15 @@ FORMS += \
ui/about.ui \ ui/about.ui \
src/tocsidebar.ui src/tocsidebar.ui
TRANSLATIONS = "resources/i18n/kiwix-desktop_fr.ts"
CODECFORSRC = UTF-8
isEmpty(PREFIX) { isEmpty(PREFIX) {
PREFIX = /usr/local PREFIX = /usr/local
} }
target.path = $$PREFIX/bin target.path = $$PREFIX/bin
INSTALLS += target INSTALLS += target
static { static {
PKGCONFIG_OPTION = "--static" PKGCONFIG_OPTION = "--static"
} }
@ -113,4 +115,8 @@ QMAKE_CFLAGS += $$PKGCONFIG_CFLAGS
LIBS += $$system(pkg-config --libs $$PKGCONFIG_OPTION kiwix) LIBS += $$system(pkg-config --libs $$PKGCONFIG_OPTION kiwix)
RESOURCES += \ RESOURCES += \
resources/kiwix.qrc resources/kiwix.qrc \
resources/translations.qrc
system($$QMAKE_LUPDATE -locations relative -no-ui-lines $$_PRO_FILE_)
system($$QMAKE_LRELEASE $$_PRO_FILE_)

Binary file not shown.

View File

@ -0,0 +1,393 @@
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE TS>
<TS version="2.1" language="fr">
<context>
<name>AboutDialog</name>
<message>
<location filename="../../ui/about.ui" line="20"/>
<source>About</source>
<translation>A propos</translation>
</message>
<message>
<location filename="../../ui/about.ui" line="69"/>
<source>qrc:/texts/about.html</source>
<translation>qrc:/texts/about.html</translation>
</message>
</context>
<context>
<name>KiwixApp</name>
<message>
<location filename="../../src/kiwixapp.cpp" line="95"/>
<source>Open Zim</source>
<translation>Ouvrir Zim</translation>
</message>
<message>
<location filename="../../src/kiwixapp.cpp" line="173"/>
<source>Local Kiwix Server</source>
<translation>Serveur local Kiwix</translation>
</message>
<message>
<location filename="../../src/kiwixapp.cpp" line="177"/>
<source>Random Article</source>
<translation>Article aléatoire</translation>
</message>
<message>
<location filename="../../src/kiwixapp.cpp" line="182"/>
<source>Print</source>
<translation>Imprimer</translation>
</message>
<message>
<location filename="../../src/kiwixapp.cpp" line="187"/>
<source>New tab</source>
<translation>Nouvel onglet</translation>
</message>
<message>
<location filename="../../src/kiwixapp.cpp" line="190"/>
<source>Close tab</source>
<translation>Fermer l&apos;onglet</translation>
</message>
<message>
<location filename="../../src/kiwixapp.cpp" line="193"/>
<source>Reopen closed tab</source>
<translation>Rouvrir l&apos;onglet fermé</translation>
</message>
<message>
<location filename="../../src/kiwixapp.cpp" line="197"/>
<source>Browse library</source>
<translation>Parcourir la bibliothèque</translation>
</message>
<message>
<location filename="../../src/kiwixapp.cpp" line="201"/>
<source>Open file</source>
<translation>Ouvrir un ficher</translation>
</message>
<message>
<location filename="../../src/kiwixapp.cpp" line="206"/>
<source>Open recent</source>
<translation>Fichiers récemment ouverts</translation>
</message>
<message>
<location filename="../../src/kiwixapp.cpp" line="209"/>
<source>Save page as ...</source>
<translation>Enregister sous...</translation>
</message>
<message>
<location filename="../../src/kiwixapp.cpp" line="213"/>
<source>Search article</source>
<translation>Chercher un article</translation>
</message>
<message>
<location filename="../../src/kiwixapp.cpp" line="217"/>
<source>Search in library</source>
<translation>Chercher dans la bibliothèque</translation>
</message>
<message>
<location filename="../../src/kiwixapp.cpp" line="221"/>
<source>Find in page</source>
<translation>Chercher dans la page</translation>
</message>
<message>
<source>Find next</source>
<translation type="vanished">Trouver le suivant</translation>
</message>
<message>
<source>Find previous</source>
<translation type="vanished">Trouver le précédent</translation>
</message>
<message>
<location filename="../../src/kiwixapp.cpp" line="224"/>
<location filename="../../src/kiwixapp.cpp" line="231"/>
<source>Set fullScreen</source>
<translation>Mode plein écran</translation>
</message>
<message>
<location filename="../../src/kiwixapp.cpp" line="231"/>
<source>Quit fullScreen</source>
<translation>Quitter le pein écran</translation>
</message>
<message>
<location filename="../../src/kiwixapp.cpp" line="235"/>
<source>Table of content</source>
<translation>Table des matières</translation>
</message>
<message>
<location filename="../../src/kiwixapp.cpp" line="239"/>
<source>Reading list</source>
<translation>Liste de lecture</translation>
</message>
<message>
<location filename="../../src/kiwixapp.cpp" line="243"/>
<source>Zoom in</source>
<translation>Zoom +</translation>
</message>
<message>
<location filename="../../src/kiwixapp.cpp" line="246"/>
<source>Zoom out</source>
<translation>Zoom -</translation>
</message>
<message>
<location filename="../../src/kiwixapp.cpp" line="249"/>
<source>Zoom reset</source>
<translation>Réinitialisation du zoom</translation>
</message>
<message>
<location filename="../../src/kiwixapp.cpp" line="252"/>
<source>Help</source>
<translation>Aide</translation>
</message>
<message>
<location filename="../../src/kiwixapp.cpp" line="256"/>
<source>Feedback</source>
<translation>Retour d&apos;information</translation>
</message>
<message>
<location filename="../../src/kiwixapp.cpp" line="259"/>
<source>Repost a bug</source>
<translation>Déclarer un bogue</translation>
</message>
<message>
<location filename="../../src/kiwixapp.cpp" line="262"/>
<source>Request a feature</source>
<translation>Demander une nouvelle fonctionnalité</translation>
</message>
<message>
<location filename="../../src/kiwixapp.cpp" line="265"/>
<source>About Kiwix</source>
<translation>A propos de Kiwix</translation>
</message>
<message>
<location filename="../../src/kiwixapp.cpp" line="267"/>
<source>Settings</source>
<translation>Paramètres</translation>
</message>
<message>
<location filename="../../src/kiwixapp.cpp" line="271"/>
<source>Donate to support Kiwix</source>
<translation>Faire un don pour soutenir Kiwix</translation>
</message>
<message>
<location filename="../../src/kiwixapp.cpp" line="275"/>
<source>Exit</source>
<translation>Quitter</translation>
</message>
</context>
<context>
<name>MainMenu</name>
<message>
<location filename="../../src/mainmenu.cpp" line="18"/>
<source>File</source>
<translation>Fichier</translation>
</message>
<message>
<location filename="../../src/mainmenu.cpp" line="28"/>
<source>Edit</source>
<translation>Édition</translation>
</message>
<message>
<location filename="../../src/mainmenu.cpp" line="34"/>
<source>View</source>
<translation>Affichage</translation>
</message>
<message>
<location filename="../../src/mainmenu.cpp" line="43"/>
<source>Tools</source>
<translation>Outils</translation>
</message>
<message>
<location filename="../../src/mainmenu.cpp" line="47"/>
<source>Help</source>
<translation>Aide</translation>
</message>
</context>
<context>
<name>MainWindow</name>
<message>
<location filename="../../ui/mainwindow.ui" line="14"/>
<source>MainWindow</source>
<translation>MainWindow</translation>
</message>
<message>
<location filename="../../ui/mainwindow.ui" line="83"/>
<source>Find in page</source>
<translation>Chercher dans la page</translation>
</message>
</context>
<context>
<name>QObject</name>
<message>
<source>Open Zim</source>
<translation type="vanished">Ouvrir Zim</translation>
</message>
<message>
<source>Local Kiwix Server</source>
<translation type="vanished">Serveur local Kiwix</translation>
</message>
<message>
<source>Random Article</source>
<translation type="vanished">Article aléatoire</translation>
</message>
<message>
<source>Print</source>
<translation type="vanished">Imprimer</translation>
</message>
<message>
<source>New tab</source>
<translation type="vanished">Nouvel onglet</translation>
</message>
<message>
<source>Close tab</source>
<translation type="vanished">Fermer l&apos;onglet</translation>
</message>
<message>
<source>Reopen closed tab</source>
<translation type="vanished">Rouvrir l&apos;onglet fermé</translation>
</message>
<message>
<source>Browse library</source>
<translation type="vanished">Parcourir la bibliothèque</translation>
</message>
<message>
<source>Open file</source>
<translation type="vanished">Ouvrir un ficher</translation>
</message>
<message>
<source>Open recent</source>
<translation type="vanished">Fichiers récemment ouverts</translation>
</message>
<message>
<source>Save page as ...</source>
<translation type="vanished">Enregister sous...</translation>
</message>
<message>
<source>Search article</source>
<translation type="vanished">Chercher un article</translation>
</message>
<message>
<source>Search in library</source>
<translation type="vanished">Chercher dans la bibliothèque</translation>
</message>
<message>
<source>Find in page</source>
<translation type="vanished">Chercher dans la page</translation>
</message>
<message>
<source>Set fullScreen</source>
<translation type="vanished">Mode plein écran</translation>
</message>
<message>
<source>Quit fullScreen</source>
<translation type="vanished">Quitter le pein écran</translation>
</message>
<message>
<source>Table of content</source>
<translation type="vanished">Table des matières</translation>
</message>
<message>
<source>Reading list</source>
<translation type="vanished">Liste de lecture</translation>
</message>
<message>
<source>Zoom in</source>
<translation type="vanished">Zoom +</translation>
</message>
<message>
<source>Zoom out</source>
<translation type="vanished">Zoom -</translation>
</message>
<message>
<source>Zoom reset</source>
<translation type="vanished">Réinitialisation du zoom</translation>
</message>
<message>
<source>Help</source>
<translation type="vanished">Aide</translation>
</message>
<message>
<source>Feedback</source>
<translation type="vanished">Retour d&apos;information</translation>
</message>
<message>
<source>Repost a bug</source>
<translation type="vanished">Déclarer un bogue</translation>
</message>
<message>
<source>Request a feature</source>
<translation type="vanished">Demander une nouvelle fonctionnalité</translation>
</message>
<message>
<source>About Kiwix</source>
<translation type="vanished">A propos de Kiwix</translation>
</message>
<message>
<source>Settings</source>
<translation type="vanished">Paramètres</translation>
</message>
<message>
<source>Donate to support Kiwix</source>
<translation type="vanished">Faire un don pour soutenir Kiwix</translation>
</message>
<message>
<source>Exit</source>
<translation type="vanished">Quitter</translation>
</message>
<message>
<source>File</source>
<translation type="vanished">Fichier</translation>
</message>
<message>
<source>Edit</source>
<translation type="vanished">Édition</translation>
</message>
<message>
<source>View</source>
<translation type="vanished">Affichage</translation>
</message>
<message>
<source>Tools</source>
<translation type="vanished">Outils</translation>
</message>
<message>
<source>Search</source>
<translation type="vanished">Recherche</translation>
</message>
<message>
<source>back</source>
<translation type="vanished">Précédent</translation>
</message>
<message>
<source>forward</source>
<translation type="vanished">Suivant</translation>
</message>
</context>
<context>
<name>SearchBar</name>
<message>
<location filename="../../src/searchbar.cpp" line="12"/>
<source>Search</source>
<translation>Recherche</translation>
</message>
</context>
<context>
<name>TocSideBar</name>
<message>
<location filename="../../src/tocsidebar.ui" line="20"/>
<source>Form</source>
<translation></translation>
</message>
</context>
<context>
<name>TopWidget</name>
<message>
<location filename="../../src/topwidget.cpp" line="15"/>
<location filename="../../src/topwidget.cpp" line="16"/>
<source>back</source>
<translation>Précédent</translation>
</message>
<message>
<location filename="../../src/topwidget.cpp" line="23"/>
<location filename="../../src/topwidget.cpp" line="24"/>
<source>forward</source>
<translation>Suivant</translation>
</message>
</context>
</TS>

View File

@ -65,4 +65,7 @@
<file>icons/search_backward.svg</file> <file>icons/search_backward.svg</file>
<file>icons/search_forward.svg</file> <file>icons/search_forward.svg</file>
</qresource> </qresource>
<qresource lang="fr" prefix="/">
<file alias="texts/about.html">texts/fr/about.html</file>
</qresource>
</RCC> </RCC>

View File

@ -0,0 +1,29 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
<html>
<body>
<img src="qrc:/icons/kiwix/app_icon.svg" height="240" width="240" style="float:right"/>
<h1>Kiwix Desktop</h1>
<p>Kiwix vous permet d'avoir tout Wikipedia &agrave; port&eacute;e de main o&ugrave; que vous alliez! Dans un bateau, au milieu de nul-part ou en prison, Kiwix vous donne acc&egrave;s &agrave; l'ensemble du savoir humain. Vous n'avez pas besoin d'internet, tout est conserv&eacute; dans votre ordinateur.</p>
<p><a href="http://kiwix.org">En apprendre plus sur Kiwix</a></p>
<h2>Release</h2>
<p>
Ce logiciel est publi&eacute; selon les conditions de la licence GNU General Public License version 3. Lisez le code source sur <a href="https://github.com/kiwix/kiwix-desktop">Github</a>.
</p>
<p>Version : %%VERSION%%</p>
<p>Date de compilation : %%BUILD_DATE%%</p>
<h2>Reporter un probl&egrave;me</h2>
<p>Pour ouvrir un rapport de bogue, visitez <a href="https://github.com/kiwix/kiwix-desktop/issues">Kiwix-desktop issue</a> et ouvrez une "issue" d&eacute;crivant votre probl&egrave;me.</p>
<p>S'il vous pla&icirc;t, mentionnez la version et la date de compilation dans le rapport.</p>
<h2>Biblioth&egrave;ques</h2>
<ul>
<li>Libzim - GPLv3 (<a href="http://www.openzim.org">openzim.org</a>)</li>
<li>Libkiwix - GPLv3 (<a href="https://github.com/kiwix/kiwix-lib">https://github.com/kiwix/kiwix-lib</a>)</li>
<li>Qt - LGVLv3 (<a href="https://qt.io">qt.io</a>)</li>
<li>Xapian - GPL (<a href="https://xapian.org">xapian.org</a>)</li>
<li>CTTP2 - BSD (<a href="http://ctpp.havoc.ru">ctpp.havoc.ru</a>)</li>
<li>Pugixml - MIT (<a href="https://pugixml.org">pugixml.org</a>)</li>
<li>ICU - ICU License (<a href="http://icu-project.org">icu-project.org</a>)</li>
<li>Libmicrohttpd - GPL (<a href="https://www.gnu.org/software/libmicrohttpd/">www.gnu.org/software/libmicrohttpd/</a>)</li>
<li>Aria2 - GPL (<a href="https://aria2.github.io">aria2.github.io</a>)</li>
</ul>
</body></html>

View File

@ -0,0 +1,5 @@
<RCC>
<qresource prefix="/">
<file>i18n/kiwix-desktop_fr.qm</file>
</qresource>
</RCC>

View File

@ -1,6 +1,8 @@
#include "kiwixapp.h" #include "kiwixapp.h"
#include "zim/error.h" #include "zim/error.h"
#include <QLocale>
#include <QLibraryInfo>
#include <QFontDatabase> #include <QFontDatabase>
#include <QStyleFactory> #include <QStyleFactory>
#include <QFile> #include <QFile>
@ -12,6 +14,13 @@
KiwixApp::KiwixApp(int& argc, char *argv[]) KiwixApp::KiwixApp(int& argc, char *argv[])
: QApplication(argc, argv) : QApplication(argc, argv)
{ {
m_qtTranslator.load(QLocale(), "qt", "_",
QLibraryInfo::location(QLibraryInfo::TranslationsPath));
installTranslator(&m_qtTranslator);
m_appTranslator.load(QLocale(), "kiwix-desktop", "_", ":/i18n/");
installTranslator(&m_appTranslator);
auto icon = QIcon(); auto icon = QIcon();
icon.addFile(":/icons/kiwix/app_icon.svg"); icon.addFile(":/icons/kiwix/app_icon.svg");
setWindowIcon(icon); setWindowIcon(icon);
@ -83,7 +92,7 @@ void KiwixApp::openZimFile(const QString &zimfile)
if (_zimfile.isEmpty()) { if (_zimfile.isEmpty()) {
_zimfile = QFileDialog::getOpenFileName( _zimfile = QFileDialog::getOpenFileName(
getMainWindow(), getMainWindow(),
"Open Zim", tr("Open Zim"),
QString(), QString(),
"ZimFile (*.zim*)"); "ZimFile (*.zim*)");
} }
@ -161,109 +170,109 @@ QAction *KiwixApp::getAction(KiwixApp::Actions action)
void KiwixApp::createAction() void KiwixApp::createAction()
{ {
CREATE_ACTION_ICON(KiwixServeAction, "share", "Local Kiwix Server"); CREATE_ACTION_ICON(KiwixServeAction, "share", tr("Local Kiwix Server"));
SET_SHORTCUT(KiwixServeAction, QKeySequence(Qt::CTRL+Qt::Key_I)); SET_SHORTCUT(KiwixServeAction, QKeySequence(Qt::CTRL+Qt::Key_I));
HIDE_ACTION(KiwixServeAction); HIDE_ACTION(KiwixServeAction);
CREATE_ACTION_ICON(RandomArticleAction, "random", "Random Article"); CREATE_ACTION_ICON(RandomArticleAction, "random", tr("Random Article"));
SET_SHORTCUT(RandomArticleAction, QKeySequence(Qt::CTRL+Qt::Key_R)); SET_SHORTCUT(RandomArticleAction, QKeySequence(Qt::CTRL+Qt::Key_R));
connect(mpa_actions[RandomArticleAction], &QAction::triggered, connect(mpa_actions[RandomArticleAction], &QAction::triggered,
this, [=]() { this->openRandomUrl(); }); this, [=]() { this->openRandomUrl(); });
CREATE_ACTION_ICON(PrintAction, "print", "Print"); CREATE_ACTION_ICON(PrintAction, "print", tr("Print"));
SET_SHORTCUT(PrintAction, QKeySequence::Print); SET_SHORTCUT(PrintAction, QKeySequence::Print);
connect(mpa_actions[PrintAction], &QAction::triggered, connect(mpa_actions[PrintAction], &QAction::triggered,
this, &KiwixApp::printPage); this, &KiwixApp::printPage);
CREATE_ACTION(NewTabAction, "New tab"); CREATE_ACTION(NewTabAction, tr("New tab"));
SET_SHORTCUT(NewTabAction, QKeySequence::AddTab); SET_SHORTCUT(NewTabAction, QKeySequence::AddTab);
CREATE_ACTION(CloseTabAction, "Close tab"); CREATE_ACTION(CloseTabAction, tr("Close tab"));
SET_SHORTCUT(CloseTabAction, QKeySequence::Close); SET_SHORTCUT(CloseTabAction, QKeySequence::Close);
CREATE_ACTION(ReopenClosedTabAction, "Reopen closed tab"); CREATE_ACTION(ReopenClosedTabAction, tr("Reopen closed tab"));
SET_SHORTCUT(ReopenClosedTabAction, QKeySequence(Qt::CTRL+Qt::SHIFT+Qt::Key_T)); SET_SHORTCUT(ReopenClosedTabAction, QKeySequence(Qt::CTRL+Qt::SHIFT+Qt::Key_T));
HIDE_ACTION(ReopenClosedTabAction); HIDE_ACTION(ReopenClosedTabAction);
CREATE_ACTION(BrowseLibraryAction, "Browse library"); CREATE_ACTION(BrowseLibraryAction, tr("Browse library"));
SET_SHORTCUT(BrowseLibraryAction, QKeySequence(Qt::CTRL+Qt::Key_E)); SET_SHORTCUT(BrowseLibraryAction, QKeySequence(Qt::CTRL+Qt::Key_E));
HIDE_ACTION(BrowseLibraryAction); HIDE_ACTION(BrowseLibraryAction);
CREATE_ACTION(OpenFileAction, "Open file"); CREATE_ACTION(OpenFileAction, tr("Open file"));
SET_SHORTCUT(OpenFileAction, QKeySequence::Open); SET_SHORTCUT(OpenFileAction, QKeySequence::Open);
connect(mpa_actions[OpenFileAction], &QAction::triggered, connect(mpa_actions[OpenFileAction], &QAction::triggered,
this, [=]() { openZimFile(); }); this, [=]() { openZimFile(); });
CREATE_ACTION(OpenRecentAction, "Open recent"); CREATE_ACTION(OpenRecentAction, tr("Open recent"));
HIDE_ACTION(OpenRecentAction); HIDE_ACTION(OpenRecentAction);
CREATE_ACTION(SavePageAsAction, "Save page as ..."); CREATE_ACTION(SavePageAsAction, tr("Save page as ..."));
SET_SHORTCUT(SavePageAsAction, QKeySequence::SaveAs); SET_SHORTCUT(SavePageAsAction, QKeySequence::SaveAs);
HIDE_ACTION(SavePageAsAction); HIDE_ACTION(SavePageAsAction);
CREATE_ACTION(SearchArticleAction, "Search article"); CREATE_ACTION(SearchArticleAction, tr("Search article"));
SET_SHORTCUT(SearchArticleAction, QKeySequence(Qt::CTRL+Qt::Key_L)); SET_SHORTCUT(SearchArticleAction, QKeySequence(Qt::CTRL+Qt::Key_L));
HIDE_ACTION(SearchArticleAction); HIDE_ACTION(SearchArticleAction);
CREATE_ACTION(SearchLibraryAction, "Search in library"); CREATE_ACTION(SearchLibraryAction, tr("Search in library"));
SET_SHORTCUT(SearchLibraryAction, QKeySequence(Qt::CTRL+Qt::SHIFT+Qt::Key_R)); SET_SHORTCUT(SearchLibraryAction, QKeySequence(Qt::CTRL+Qt::SHIFT+Qt::Key_R));
HIDE_ACTION(SearchLibraryAction); HIDE_ACTION(SearchLibraryAction);
CREATE_ACTION(FindInPageAction, "Find in page"); CREATE_ACTION(FindInPageAction, tr("Find in page"));
SET_SHORTCUT(FindInPageAction, QKeySequence::Find); SET_SHORTCUT(FindInPageAction, QKeySequence::Find);
CREATE_ACTION_ICON(ToggleFullscreenAction, "full-screen-enter", "Set fullScreen"); CREATE_ACTION_ICON(ToggleFullscreenAction, "full-screen-enter", tr("Set fullScreen"));
SET_SHORTCUT(ToggleFullscreenAction, QKeySequence::FullScreen); SET_SHORTCUT(ToggleFullscreenAction, QKeySequence::FullScreen);
connect(mpa_actions[ToggleFullscreenAction], &QAction::toggled, connect(mpa_actions[ToggleFullscreenAction], &QAction::toggled,
this, [=](bool checked) { this, [=](bool checked) {
auto action = mpa_actions[ToggleFullscreenAction]; auto action = mpa_actions[ToggleFullscreenAction];
action->setIcon( action->setIcon(
QIcon(checked ? ":/icons/full-screen-exit.svg" : ":/icons/full-screen-enter.svg")); QIcon(checked ? ":/icons/full-screen-exit.svg" : ":/icons/full-screen-enter.svg"));
action->setText(checked ? "Quit fullScreen" : "Set fullScreen"); action->setText(checked ? tr("Quit fullScreen") : tr("Set fullScreen"));
}); });
mpa_actions[ToggleFullscreenAction]->setCheckable(true); mpa_actions[ToggleFullscreenAction]->setCheckable(true);
CREATE_ACTION(ToggleTOCAction, "Table of content"); CREATE_ACTION(ToggleTOCAction, tr("Table of content"));
SET_SHORTCUT(ToggleTOCAction, QKeySequence(Qt::CTRL+Qt::SHIFT+Qt::Key_1)); SET_SHORTCUT(ToggleTOCAction, QKeySequence(Qt::CTRL+Qt::SHIFT+Qt::Key_1));
HIDE_ACTION(ToggleTOCAction); HIDE_ACTION(ToggleTOCAction);
CREATE_ACTION(ToggleReadingListAction, "Reading list"); CREATE_ACTION(ToggleReadingListAction, tr("Reading list"));
SET_SHORTCUT(ToggleReadingListAction, QKeySequence(Qt::CTRL+Qt::SHIFT+Qt::Key_2)); SET_SHORTCUT(ToggleReadingListAction, QKeySequence(Qt::CTRL+Qt::SHIFT+Qt::Key_2));
HIDE_ACTION(ToggleReadingListAction); HIDE_ACTION(ToggleReadingListAction);
CREATE_ACTION(ZoomInAction, "Zoom in"); CREATE_ACTION(ZoomInAction, tr("Zoom in"));
SET_SHORTCUT(ZoomInAction, QKeySequence::ZoomIn); SET_SHORTCUT(ZoomInAction, QKeySequence::ZoomIn);
CREATE_ACTION(ZoomOutAction, "Zoom out"); CREATE_ACTION(ZoomOutAction, tr("Zoom out"));
SET_SHORTCUT(ZoomOutAction, QKeySequence::ZoomOut); SET_SHORTCUT(ZoomOutAction, QKeySequence::ZoomOut);
CREATE_ACTION(ZoomResetAction, "Zoom reset"); CREATE_ACTION(ZoomResetAction, tr("Zoom reset"));
SET_SHORTCUT(ZoomResetAction, QKeySequence(Qt::CTRL+Qt::Key_0)); SET_SHORTCUT(ZoomResetAction, QKeySequence(Qt::CTRL+Qt::Key_0));
CREATE_ACTION(HelpAction, "Help"); CREATE_ACTION(HelpAction, tr("Help"));
SET_SHORTCUT(HelpAction, QKeySequence::HelpContents); SET_SHORTCUT(HelpAction, QKeySequence::HelpContents);
HIDE_ACTION(HelpAction); HIDE_ACTION(HelpAction);
CREATE_ACTION(FeedbackAction, "Feedback"); CREATE_ACTION(FeedbackAction, tr("Feedback"));
HIDE_ACTION(FeedbackAction); HIDE_ACTION(FeedbackAction);
CREATE_ACTION(ReportBugAction, "Repost a bug"); CREATE_ACTION(ReportBugAction, tr("Repost a bug"));
HIDE_ACTION(ReportBugAction); HIDE_ACTION(ReportBugAction);
CREATE_ACTION(RequestFeatureAction, "Request a feature"); CREATE_ACTION(RequestFeatureAction, tr("Request a feature"));
HIDE_ACTION(RequestFeatureAction); HIDE_ACTION(RequestFeatureAction);
CREATE_ACTION(AboutAction, "About Kiwix"); CREATE_ACTION(AboutAction, tr("About Kiwix"));
CREATE_ACTION_ICON(SettingAction, "settings", "Settings"); CREATE_ACTION_ICON(SettingAction, "settings", tr("Settings"));
SET_SHORTCUT(SettingAction, QKeySequence::Preferences); SET_SHORTCUT(SettingAction, QKeySequence::Preferences);
HIDE_ACTION(SettingAction); HIDE_ACTION(SettingAction);
CREATE_ACTION_ICON(DonateAction, "donate", "Donate to support Kiwix"); CREATE_ACTION_ICON(DonateAction, "donate", tr("Donate to support Kiwix"));
//SET_SHORTCUT(DonateAction, QKeySequence(Qt::CTRL+Qt::Key_BracketLeft+Qt::Key_3)); //SET_SHORTCUT(DonateAction, QKeySequence(Qt::CTRL+Qt::Key_BracketLeft+Qt::Key_3));
HIDE_ACTION(DonateAction); HIDE_ACTION(DonateAction);
CREATE_ACTION_ICON(ExitAction, "exit", "Exit"); CREATE_ACTION_ICON(ExitAction, "exit", tr("Exit"));
SET_SHORTCUT(ExitAction, QKeySequence::Quit); SET_SHORTCUT(ExitAction, QKeySequence::Quit);
} }

View File

@ -10,6 +10,7 @@
#include <QApplication> #include <QApplication>
#include <QErrorMessage> #include <QErrorMessage>
#include <QTranslator>
class KiwixApp : public QApplication class KiwixApp : public QApplication
@ -72,6 +73,7 @@ protected:
void postInit(); void postInit();
private: private:
QTranslator m_qtTranslator, m_appTranslator;
Library m_library; Library m_library;
MainWindow* mp_mainWindow; MainWindow* mp_mainWindow;
TabWidget* mp_tabWidget; TabWidget* mp_tabWidget;

View File

@ -1,4 +1,5 @@
#include "library.h" #include "library.h"
#include <QtDebug> #include <QtDebug>
Library::Library() Library::Library()

View File

@ -1,5 +1,6 @@
#include "mainmenu.h" #include <QTranslator>
#include "mainmenu.h"
#include "kiwixapp.h" #include "kiwixapp.h"
#define ADD_ACTION(ID) addAction(app->getAction(KiwixApp::ID)); #define ADD_ACTION(ID) addAction(app->getAction(KiwixApp::ID));
@ -14,7 +15,7 @@ MainMenu::MainMenu(QWidget *parent) :
ADD_ACTION(PrintAction); ADD_ACTION(PrintAction);
addSeparator(); addSeparator();
m_fileMenu.setTitle("File"); m_fileMenu.setTitle(tr("File"));
m_fileMenu.ADD_ACTION(NewTabAction); m_fileMenu.ADD_ACTION(NewTabAction);
m_fileMenu.ADD_ACTION(CloseTabAction); m_fileMenu.ADD_ACTION(CloseTabAction);
m_fileMenu.ADD_ACTION(ReopenClosedTabAction); m_fileMenu.ADD_ACTION(ReopenClosedTabAction);
@ -24,13 +25,13 @@ MainMenu::MainMenu(QWidget *parent) :
m_fileMenu.ADD_ACTION(SavePageAsAction); m_fileMenu.ADD_ACTION(SavePageAsAction);
addMenu(&m_fileMenu); addMenu(&m_fileMenu);
m_editMenu.setTitle("Edit"); m_editMenu.setTitle(tr("Edit"));
m_editMenu.ADD_ACTION(SearchArticleAction); m_editMenu.ADD_ACTION(SearchArticleAction);
m_editMenu.ADD_ACTION(SearchLibraryAction); m_editMenu.ADD_ACTION(SearchLibraryAction);
m_editMenu.ADD_ACTION(FindInPageAction); m_editMenu.ADD_ACTION(FindInPageAction);
addMenu(&m_editMenu); addMenu(&m_editMenu);
m_viewMenu.setTitle("View"); m_viewMenu.setTitle(tr("View"));
m_viewMenu.ADD_ACTION(ToggleFullscreenAction); m_viewMenu.ADD_ACTION(ToggleFullscreenAction);
m_viewMenu.ADD_ACTION(ToggleTOCAction); m_viewMenu.ADD_ACTION(ToggleTOCAction);
m_viewMenu.ADD_ACTION(ToggleReadingListAction); m_viewMenu.ADD_ACTION(ToggleReadingListAction);
@ -39,11 +40,11 @@ MainMenu::MainMenu(QWidget *parent) :
m_viewMenu.ADD_ACTION(ZoomResetAction); m_viewMenu.ADD_ACTION(ZoomResetAction);
addMenu(&m_viewMenu); addMenu(&m_viewMenu);
m_toolsMenu.setTitle("Tools"); m_toolsMenu.setTitle(tr("Tools"));
// m_toolsMenu.addAction(); // m_toolsMenu.addAction();
// addMenu(&m_toolsMenu); // addMenu(&m_toolsMenu);
m_helpMenu.setTitle("Help"); m_helpMenu.setTitle(tr("Help"));
m_helpMenu.ADD_ACTION(HelpAction); m_helpMenu.ADD_ACTION(HelpAction);
m_helpMenu.ADD_ACTION(FeedbackAction); m_helpMenu.ADD_ACTION(FeedbackAction);
m_helpMenu.ADD_ACTION(ReportBugAction); m_helpMenu.ADD_ACTION(ReportBugAction);

View File

@ -5,6 +5,7 @@
class MainMenu : public QMenu class MainMenu : public QMenu
{ {
Q_OBJECT
public: public:
MainMenu(QWidget *parent=nullptr); MainMenu(QWidget *parent=nullptr);

View File

@ -9,7 +9,7 @@ SearchBar::SearchBar(QWidget *parent) :
QLineEdit(parent), QLineEdit(parent),
m_completer(&m_completionModel, this) m_completer(&m_completionModel, this)
{ {
setPlaceholderText("Search"); setPlaceholderText(tr("Search"));
m_completer.setCompletionMode(QCompleter::UnfilteredPopupCompletion); m_completer.setCompletionMode(QCompleter::UnfilteredPopupCompletion);
setCompleter(&m_completer); setCompleter(&m_completer);
connect(this, &QLineEdit::textEdited, this, &SearchBar::updateCompletion); connect(this, &QLineEdit::textEdited, this, &SearchBar::updateCompletion);

View File

@ -12,16 +12,16 @@ TopWidget::TopWidget(QWidget *parent) :
{ {
mp_historyBackAction = new QAction(this); mp_historyBackAction = new QAction(this);
mp_historyBackAction->setIcon(QIcon(":/icons/back.svg")); mp_historyBackAction->setIcon(QIcon(":/icons/back.svg"));
mp_historyBackAction->setText("back"); mp_historyBackAction->setText(tr("back"));
mp_historyBackAction->setToolTip("back"); mp_historyBackAction->setToolTip(tr("back"));
connect(mp_historyBackAction, &QAction::triggered, [this](){ connect(mp_historyBackAction, &QAction::triggered, [this](){
KiwixApp::instance()->getTabWidget()->triggerWebPageAction(QWebEnginePage::Back); KiwixApp::instance()->getTabWidget()->triggerWebPageAction(QWebEnginePage::Back);
}); });
addAction(mp_historyBackAction); addAction(mp_historyBackAction);
mp_historyForwardAction = new QAction(this); mp_historyForwardAction = new QAction(this);
mp_historyForwardAction->setIcon(QIcon(":/icons/forward.svg")); mp_historyForwardAction->setIcon(QIcon(":/icons/forward.svg"));
mp_historyForwardAction->setText("forward"); mp_historyForwardAction->setText(tr("forward"));
mp_historyForwardAction->setToolTip("forward"); mp_historyForwardAction->setToolTip(tr("forward"));
connect(mp_historyForwardAction, &QAction::triggered, [this](){ connect(mp_historyForwardAction, &QAction::triggered, [this](){
KiwixApp::instance()->getTabWidget()->triggerWebPageAction(QWebEnginePage::Forward); KiwixApp::instance()->getTabWidget()->triggerWebPageAction(QWebEnginePage::Forward);
}); });