diff --git a/kiwix-desktop.pro b/kiwix-desktop.pro
index e7f5828..af28b3a 100644
--- a/kiwix-desktop.pro
+++ b/kiwix-desktop.pro
@@ -85,6 +85,10 @@ isEmpty(PREFIX) {
target.path = $$PREFIX/bin
INSTALLS += target
+TRANSLATIONS = locales/kiwix-desktop_fr.ts
+CODECFORSRC = UTF-8
+
+QT += widgets
static {
PKGCONFIG_OPTION = "--static"
diff --git a/locales/kiwix-desktop_fr.ts b/locales/kiwix-desktop_fr.ts
new file mode 100644
index 0000000..53a250f
--- /dev/null
+++ b/locales/kiwix-desktop_fr.ts
@@ -0,0 +1,243 @@
+
+
+
+
+ AboutDialog
+
+
+ About
+ A propos
+
+
+
+ qrc:/texts/about.html
+ qrc:/texts/about.html
+
+
+
+ KiwixApp
+
+
+ Open Zim
+ Ouvrir Zim
+
+
+
+ Local Kiwix Server
+ Serveur local Kiwix
+
+
+
+ Random Article
+ Article aléatoire
+
+
+
+ Print
+ Imprimer
+
+
+
+ New tab
+ Nouvel onglet
+
+
+
+ Close tab
+ Fermer l'onglet
+
+
+
+ Reopen closed tab
+ Rouvrir l'onglet fermé
+
+
+
+ Browse library
+ Parcourir la bibliothèque
+
+
+
+ Open file
+ Ouvrir un ficher
+
+
+
+ Open recent
+ Fichiers récemment ouverts
+
+
+
+ Save page as ...
+ Enregister sous...
+
+
+
+ Search article
+ Chercher un article
+
+
+
+ Search in library
+ Chercher dans la bibliothèque
+
+
+
+ Find in page
+ Chercher dans la page
+
+
+
+ Find next
+ Trouver le suivant
+
+
+
+ Find previous
+ Trouver le précédent
+
+
+
+
+ Set fullScreen
+ Mode plein écran
+
+
+
+ Quit fullScreen
+ Quitter le pein écran
+
+
+
+ Table of content
+ Table des matières
+
+
+
+ Reading list
+ Liste de lecture
+
+
+
+ Zoom in
+ Zoom +
+
+
+
+ Zoom out
+ Zoom -
+
+
+
+ Zoom reset
+ Réinitialisation du zoom
+
+
+
+ Help
+ Aide
+
+
+
+ Feedback
+ Retour d'information
+
+
+
+ Repost a bug
+ Déclarer un bogue
+
+
+
+ Request a feature
+ Demander une nouvelle fonctionnalité
+
+
+
+ About Kiwix
+ A propos de Kiwix
+
+
+
+ Settings
+ Paramètres
+
+
+
+ Donate to support Kiwix
+ Faire un don pour soutenir Kiwix
+
+
+
+ Exit
+ Quitter
+
+
+
+ Library
+
+
+ Opening
+ Ouverture
+
+
+
+ MainMenu
+
+
+ File
+ Fichier
+
+
+
+ Edit
+ Édition
+
+
+
+ View
+ Affichage
+
+
+
+ Tools
+ Outils
+
+
+
+ Help
+ Aide
+
+
+
+ MainWindow
+
+
+ MainWindow
+ MainWindow
+
+
+
+ SearchBar
+
+
+ Search
+ Recherche
+
+
+
+ TopWidget
+
+
+
+ back
+ Précédent
+
+
+
+
+ forward
+ Suivant
+
+
+
diff --git a/src/kiwixapp.cpp b/src/kiwixapp.cpp
index 851f334..e0e39e7 100644
--- a/src/kiwixapp.cpp
+++ b/src/kiwixapp.cpp
@@ -1,6 +1,7 @@
#include "kiwixapp.h"
#include "zim/error.h"
+#include
#include
#include
#include
@@ -83,7 +84,7 @@ void KiwixApp::openZimFile(const QString &zimfile)
if (_zimfile.isEmpty()) {
_zimfile = QFileDialog::getOpenFileName(
getMainWindow(),
- "Open Zim",
+ tr("Open Zim"),
QString(),
"ZimFile (*.zim*)");
}
@@ -161,109 +162,109 @@ QAction *KiwixApp::getAction(KiwixApp::Actions action)
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));
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));
connect(mpa_actions[RandomArticleAction], &QAction::triggered,
this, [=]() { this->openRandomUrl(); });
- CREATE_ACTION_ICON(PrintAction, "print", "Print");
+ CREATE_ACTION_ICON(PrintAction, "print", tr("Print"));
SET_SHORTCUT(PrintAction, QKeySequence::Print);
connect(mpa_actions[PrintAction], &QAction::triggered,
this, &KiwixApp::printPage);
- CREATE_ACTION(NewTabAction, "New tab");
+ CREATE_ACTION(NewTabAction, tr("New tab"));
SET_SHORTCUT(NewTabAction, QKeySequence::AddTab);
- CREATE_ACTION(CloseTabAction, "Close tab");
+ CREATE_ACTION(CloseTabAction, tr("Close tab"));
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));
HIDE_ACTION(ReopenClosedTabAction);
- CREATE_ACTION(BrowseLibraryAction, "Browse library");
+ CREATE_ACTION(BrowseLibraryAction, tr("Browse library"));
SET_SHORTCUT(BrowseLibraryAction, QKeySequence(Qt::CTRL+Qt::Key_E));
HIDE_ACTION(BrowseLibraryAction);
- CREATE_ACTION(OpenFileAction, "Open file");
+ CREATE_ACTION(OpenFileAction, tr("Open file"));
SET_SHORTCUT(OpenFileAction, QKeySequence::Open);
connect(mpa_actions[OpenFileAction], &QAction::triggered,
this, [=]() { openZimFile(); });
- CREATE_ACTION(OpenRecentAction, "Open recent");
+ CREATE_ACTION(OpenRecentAction, tr("Open recent"));
HIDE_ACTION(OpenRecentAction);
- CREATE_ACTION(SavePageAsAction, "Save page as ...");
+ CREATE_ACTION(SavePageAsAction, tr("Save page as ..."));
SET_SHORTCUT(SavePageAsAction, QKeySequence::SaveAs);
HIDE_ACTION(SavePageAsAction);
- CREATE_ACTION(SearchArticleAction, "Search article");
+ CREATE_ACTION(SearchArticleAction, tr("Search article"));
SET_SHORTCUT(SearchArticleAction, QKeySequence(Qt::CTRL+Qt::Key_L));
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));
HIDE_ACTION(SearchLibraryAction);
- CREATE_ACTION(FindInPageAction, "Find in page");
+ CREATE_ACTION(FindInPageAction, tr("Find in page"));
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);
connect(mpa_actions[ToggleFullscreenAction], &QAction::toggled,
this, [=](bool checked) {
auto action = mpa_actions[ToggleFullscreenAction];
action->setIcon(
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);
- CREATE_ACTION(ToggleTOCAction, "Table of content");
+ CREATE_ACTION(ToggleTOCAction, tr("Table of content"));
SET_SHORTCUT(ToggleTOCAction, QKeySequence(Qt::CTRL+Qt::SHIFT+Qt::Key_1));
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));
HIDE_ACTION(ToggleReadingListAction);
- CREATE_ACTION(ZoomInAction, "Zoom in");
+ CREATE_ACTION(ZoomInAction, tr("Zoom in"));
SET_SHORTCUT(ZoomInAction, QKeySequence::ZoomIn);
- CREATE_ACTION(ZoomOutAction, "Zoom out");
+ CREATE_ACTION(ZoomOutAction, tr("Zoom out"));
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));
- CREATE_ACTION(HelpAction, "Help");
+ CREATE_ACTION(HelpAction, tr("Help"));
SET_SHORTCUT(HelpAction, QKeySequence::HelpContents);
HIDE_ACTION(HelpAction);
- CREATE_ACTION(FeedbackAction, "Feedback");
+ CREATE_ACTION(FeedbackAction, tr("Feedback"));
HIDE_ACTION(FeedbackAction);
- CREATE_ACTION(ReportBugAction, "Repost a bug");
+ CREATE_ACTION(ReportBugAction, tr("Repost a bug"));
HIDE_ACTION(ReportBugAction);
- CREATE_ACTION(RequestFeatureAction, "Request a feature");
+ CREATE_ACTION(RequestFeatureAction, tr("Request a feature"));
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);
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));
HIDE_ACTION(DonateAction);
- CREATE_ACTION_ICON(ExitAction, "exit", "Exit");
+ CREATE_ACTION_ICON(ExitAction, "exit", tr("Exit"));
SET_SHORTCUT(ExitAction, QKeySequence::Quit);
}
diff --git a/src/library.cpp b/src/library.cpp
index 1227ee6..c84d446 100644
--- a/src/library.cpp
+++ b/src/library.cpp
@@ -1,4 +1,6 @@
#include "library.h"
+
+#include
#include
Library::Library()
@@ -15,7 +17,7 @@ QString Library::openBook(const QString &zimPath)
if(QString::fromStdString(it->second->getZimFilePath()) == zimPath)
return it->first;
}
- qInfo() << "Opening" << zimPath;
+ qInfo() << tr("Opening") << zimPath;
auto zimPath_ = zimPath.toStdString();
auto reader = std::shared_ptr(new kiwix::Reader(zimPath_));
auto id = QString::fromStdString(reader->getId() + ".zim");
diff --git a/src/main.cpp b/src/main.cpp
index defba0b..1b13bfd 100644
--- a/src/main.cpp
+++ b/src/main.cpp
@@ -8,6 +8,15 @@ int main(int argc, char *argv[])
QCoreApplication::setAttribute(Qt::AA_EnableHighDpiScaling);
KiwixApp a(argc, argv);
+ QTranslator qtTranslator;
+ qtTranslator.load("qt_" + QLocale::system().name(),
+ QLibraryInfo::location(QLibraryInfo::TranslationsPath));
+ a.installTranslator(&qtTranslator);
+
+ QTranslator myappTranslator;
+ myappTranslator.load("kiwix-desktop_" + QLocale::system().name());
+ a.installTranslator(&myappTranslator);
+
QCommandLineParser parser;
parser.addPositionalArgument("zimfile", "The zim file");
diff --git a/src/mainmenu.cpp b/src/mainmenu.cpp
index 442d0ac..0e2477c 100644
--- a/src/mainmenu.cpp
+++ b/src/mainmenu.cpp
@@ -1,5 +1,6 @@
-#include "mainmenu.h"
+#include
+#include "mainmenu.h"
#include "kiwixapp.h"
#define ADD_ACTION(ID) addAction(app->getAction(KiwixApp::ID));
@@ -14,7 +15,7 @@ MainMenu::MainMenu(QWidget *parent) :
ADD_ACTION(PrintAction);
addSeparator();
- m_fileMenu.setTitle("File");
+ m_fileMenu.setTitle(tr("File"));
m_fileMenu.ADD_ACTION(NewTabAction);
m_fileMenu.ADD_ACTION(CloseTabAction);
m_fileMenu.ADD_ACTION(ReopenClosedTabAction);
@@ -24,13 +25,13 @@ MainMenu::MainMenu(QWidget *parent) :
m_fileMenu.ADD_ACTION(SavePageAsAction);
addMenu(&m_fileMenu);
- m_editMenu.setTitle("Edit");
+ m_editMenu.setTitle(tr("Edit"));
m_editMenu.ADD_ACTION(SearchArticleAction);
m_editMenu.ADD_ACTION(SearchLibraryAction);
m_editMenu.ADD_ACTION(FindInPageAction);
addMenu(&m_editMenu);
- m_viewMenu.setTitle("View");
+ m_viewMenu.setTitle(tr("View"));
m_viewMenu.ADD_ACTION(ToggleFullscreenAction);
m_viewMenu.ADD_ACTION(ToggleTOCAction);
m_viewMenu.ADD_ACTION(ToggleReadingListAction);
@@ -39,11 +40,11 @@ MainMenu::MainMenu(QWidget *parent) :
m_viewMenu.ADD_ACTION(ZoomResetAction);
addMenu(&m_viewMenu);
- m_toolsMenu.setTitle("Tools");
+ m_toolsMenu.setTitle(tr("Tools"));
// m_toolsMenu.addAction();
// addMenu(&m_toolsMenu);
- m_helpMenu.setTitle("Help");
+ m_helpMenu.setTitle(tr("Help"));
m_helpMenu.ADD_ACTION(HelpAction);
m_helpMenu.ADD_ACTION(FeedbackAction);
m_helpMenu.ADD_ACTION(ReportBugAction);
diff --git a/src/searchbar.cpp b/src/searchbar.cpp
index c6ffd38..6d045c4 100644
--- a/src/searchbar.cpp
+++ b/src/searchbar.cpp
@@ -1,5 +1,6 @@
#include "searchbar.h"
+#include
#include
#include
@@ -9,7 +10,7 @@ SearchBar::SearchBar(QWidget *parent) :
QLineEdit(parent),
m_completer(&m_completionModel, this)
{
- setPlaceholderText("Search");
+ setPlaceholderText(tr("Search"));
m_completer.setCompletionMode(QCompleter::UnfilteredPopupCompletion);
setCompleter(&m_completer);
connect(this, &QLineEdit::textEdited, this, &SearchBar::updateCompletion);
diff --git a/src/topwidget.cpp b/src/topwidget.cpp
index 4ccf7e0..942cd69 100644
--- a/src/topwidget.cpp
+++ b/src/topwidget.cpp
@@ -4,6 +4,7 @@
#include "kiwixapp.h"
#include "mainmenu.h"
+#include
#include
#include
@@ -12,16 +13,16 @@ TopWidget::TopWidget(QWidget *parent) :
{
mp_historyBackAction = new QAction(this);
mp_historyBackAction->setIcon(QIcon(":/icons/back.svg"));
- mp_historyBackAction->setText("back");
- mp_historyBackAction->setToolTip("back");
+ mp_historyBackAction->setText(tr("back"));
+ mp_historyBackAction->setToolTip(tr("back"));
connect(mp_historyBackAction, &QAction::triggered, [this](){
KiwixApp::instance()->getTabWidget()->triggerWebPageAction(QWebEnginePage::Back);
});
addAction(mp_historyBackAction);
mp_historyForwardAction = new QAction(this);
mp_historyForwardAction->setIcon(QIcon(":/icons/forward.svg"));
- mp_historyForwardAction->setText("forward");
- mp_historyForwardAction->setToolTip("forward");
+ mp_historyForwardAction->setText(tr("forward"));
+ mp_historyForwardAction->setToolTip(tr("forward"));
connect(mp_historyForwardAction, &QAction::triggered, [this](){
KiwixApp::instance()->getTabWidget()->triggerWebPageAction(QWebEnginePage::Forward);
});