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); });