diff --git a/gen_translations.py b/gen_translations.py
index 71af5da11ce446ef5f5f4c6d541a795c1cb4d1fa..3807fcfbc6dc83662cff774eb73b62adfa711d23 100644
--- a/gen_translations.py
+++ b/gen_translations.py
@@ -64,4 +64,9 @@ def build_resources():
 
 
 prepare_qm()
+# add Qt standardButtons qm file
+# This file must be copied from Qt libs in the res/i18n/qm folder of the project
+qtbase_filename = "qtbase_fr.qm"
+if os.path.exists(os.path.join(qm, qtbase_filename)):
+    qm_shortnames.append(qtbase_filename)
 build_resources()
diff --git a/src/sakia/app.py b/src/sakia/app.py
index bc303ad7bf6f3bbe0c9ca7e92888423b075e4bc0..d73f1bcb741c68ff5bbfff42674ffd4b4378ea81 100644
--- a/src/sakia/app.py
+++ b/src/sakia/app.py
@@ -5,7 +5,7 @@ import socket
 import sakia.i18n_rc
 import async_timeout
 import aiohttp
-from PyQt5.QtCore import QObject, pyqtSignal, QTranslator, QCoreApplication, QLocale, Qt
+from PyQt5.QtCore import QObject, pyqtSignal, QTranslator, QCoreApplication, QLocale, Qt, QFile
 from . import __version__
 from .options import SakiaOptions
 from sakia.data.connectors import BmaConnector
@@ -89,6 +89,7 @@ class Application(QObject):
     _logger = attr.ib(default=attr.Factory(lambda: logging.getLogger("sakia")))
     available_version = attr.ib(init=False)
     _translator = attr.ib(init=False)
+    _qt_translator = attr.ib(init=False)
 
     def __attrs_post_init__(self):
         super().__init__()
@@ -224,13 +225,26 @@ class Application(QObject):
         self._translator = QTranslator(self.qapp)
         if locale == "en":
             QCoreApplication.installTranslator(self._translator)
-        elif self._translator.load(":/i18n/{0}".format(locale)):
+        else:
+            # load chosen language
+            filepath = ":/i18n/{0}".format(locale)
+            if not QFile.exists(filepath):
+                self._logger.debug("File not found: {0}".format(filepath))
+            self._translator.load(filepath)
             if QCoreApplication.installTranslator(self._translator):
-                self._logger.debug("Loaded i18n/{0}".format(locale))
+                self._logger.debug("Loaded {0}".format(filepath))
             else:
-                self._logger.debug("Couldn't load translation")
-        else:
-            self._logger.debug("Couldn't load i18n/{0}".format(locale))
+                self._logger.debug("Couldn't load {0}".format(filepath))
+            # load standardButtons Qt translation
+            filepath = ":/i18n/qtbase_{0}".format(locale)
+            if not QFile.exists(filepath):
+                self._logger.debug("File not found: {0}".format(filepath))
+            self._qt_translator = QTranslator(self.qapp)
+            self._qt_translator.load(filepath)
+            if QCoreApplication.installTranslator(self._qt_translator):
+                self._logger.debug("Loaded {0}".format(filepath))
+            else:
+                self._logger.debug("Couldn't load {0}".format(filepath))
 
     def start_coroutines(self):
         self.network_service.start_coroutines()