diff --git a/kiwix-desktop.pro b/kiwix-desktop.pro index e7f5828..786c50e 100644 --- a/kiwix-desktop.pro +++ b/kiwix-desktop.pro @@ -79,13 +79,15 @@ FORMS += \ ui/about.ui \ src/tocsidebar.ui +TRANSLATIONS = "resources/i18n/kiwix-desktop_fr.ts" +CODECFORSRC = UTF-8 + isEmpty(PREFIX) { PREFIX = /usr/local } target.path = $$PREFIX/bin INSTALLS += target - static { PKGCONFIG_OPTION = "--static" } @@ -113,4 +115,8 @@ QMAKE_CFLAGS += $$PKGCONFIG_CFLAGS LIBS += $$system(pkg-config --libs $$PKGCONFIG_OPTION kiwix) 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_) diff --git a/resources/i18n/kiwix-desktop_fr.qm b/resources/i18n/kiwix-desktop_fr.qm new file mode 100644 index 0000000..be55624 Binary files /dev/null and b/resources/i18n/kiwix-desktop_fr.qm differ diff --git a/resources/i18n/kiwix-desktop_fr.ts b/resources/i18n/kiwix-desktop_fr.ts new file mode 100644 index 0000000..e6c738e --- /dev/null +++ b/resources/i18n/kiwix-desktop_fr.ts @@ -0,0 +1,393 @@ + + + + + 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 + + + + MainMenu + + + File + Fichier + + + + Edit + Édition + + + + View + Affichage + + + + Tools + Outils + + + + Help + Aide + + + + MainWindow + + + MainWindow + MainWindow + + + + Find in page + Chercher dans la page + + + + QObject + + 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 + + + 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 + + + File + Fichier + + + Edit + Édition + + + View + Affichage + + + Tools + Outils + + + Search + Recherche + + + back + Précédent + + + forward + Suivant + + + + SearchBar + + + Search + Recherche + + + + TocSideBar + + + Form + + + + + TopWidget + + + + back + Précédent + + + + + forward + Suivant + + + diff --git a/resources/kiwix.qrc b/resources/kiwix.qrc index fab3b66..68b5a44 100644 --- a/resources/kiwix.qrc +++ b/resources/kiwix.qrc @@ -65,4 +65,7 @@ icons/search_backward.svg icons/search_forward.svg + + texts/fr/about.html + diff --git a/resources/texts/fr/about.html b/resources/texts/fr/about.html new file mode 100644 index 0000000..d8619e9 --- /dev/null +++ b/resources/texts/fr/about.html @@ -0,0 +1,29 @@ + + + + +

Kiwix Desktop

+

Kiwix vous permet d'avoir tout Wikipedia à portée de main où que vous alliez! Dans un bateau, au milieu de nul-part ou en prison, Kiwix vous donne accès à l'ensemble du savoir humain. Vous n'avez pas besoin d'internet, tout est conservé dans votre ordinateur.

+

En apprendre plus sur Kiwix

+

Release

+

+Ce logiciel est publié selon les conditions de la licence GNU General Public License version 3. Lisez le code source sur Github. +

+

Version : %%VERSION%%

+

Date de compilation : %%BUILD_DATE%%

+

Reporter un problème

+

Pour ouvrir un rapport de bogue, visitez Kiwix-desktop issue et ouvrez une "issue" décrivant votre problème.

+

S'il vous plaît, mentionnez la version et la date de compilation dans le rapport.

+

Bibliothèques

+ + diff --git a/resources/translations.qrc b/resources/translations.qrc new file mode 100644 index 0000000..94ea8f5 --- /dev/null +++ b/resources/translations.qrc @@ -0,0 +1,5 @@ + + + i18n/kiwix-desktop_fr.qm + + diff --git a/src/kiwixapp.cpp b/src/kiwixapp.cpp index 851f334..3938ba8 100644 --- a/src/kiwixapp.cpp +++ b/src/kiwixapp.cpp @@ -1,6 +1,8 @@ #include "kiwixapp.h" #include "zim/error.h" +#include +#include #include #include #include @@ -12,6 +14,13 @@ KiwixApp::KiwixApp(int& argc, char *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(); icon.addFile(":/icons/kiwix/app_icon.svg"); setWindowIcon(icon); @@ -83,7 +92,7 @@ void KiwixApp::openZimFile(const QString &zimfile) if (_zimfile.isEmpty()) { _zimfile = QFileDialog::getOpenFileName( getMainWindow(), - "Open Zim", + tr("Open Zim"), QString(), "ZimFile (*.zim*)"); } @@ -161,109 +170,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/kiwixapp.h b/src/kiwixapp.h index 8b12b70..b53c9cf 100644 --- a/src/kiwixapp.h +++ b/src/kiwixapp.h @@ -10,6 +10,7 @@ #include #include +#include class KiwixApp : public QApplication @@ -72,6 +73,7 @@ protected: void postInit(); private: + QTranslator m_qtTranslator, m_appTranslator; Library m_library; MainWindow* mp_mainWindow; TabWidget* mp_tabWidget; diff --git a/src/library.cpp b/src/library.cpp index 1227ee6..46157bd 100644 --- a/src/library.cpp +++ b/src/library.cpp @@ -1,4 +1,5 @@ #include "library.h" + #include Library::Library() diff --git a/src/mainmenu.cpp b/src/mainmenu.cpp index 442d0ac..d3b475a 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/mainmenu.h b/src/mainmenu.h index 124c122..e816052 100644 --- a/src/mainmenu.h +++ b/src/mainmenu.h @@ -5,6 +5,7 @@ class MainMenu : public QMenu { + Q_OBJECT public: MainMenu(QWidget *parent=nullptr); diff --git a/src/searchbar.cpp b/src/searchbar.cpp index c6ffd38..a3e187c 100644 --- a/src/searchbar.cpp +++ b/src/searchbar.cpp @@ -9,7 +9,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..6b74845 100644 --- a/src/topwidget.cpp +++ b/src/topwidget.cpp @@ -12,16 +12,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); });