diff --git a/src/cutecoin/gui/certification.py b/src/cutecoin/gui/certification.py
index 4ebd81fd08f6c0f6bdf3b51f025770ba9449050f..c76f14682aa9f91552e17b74bd69e54d25a2f0e3 100644
--- a/src/cutecoin/gui/certification.py
+++ b/src/cutecoin/gui/certification.py
@@ -12,7 +12,6 @@ import asyncio
 
 
 class CertificationDialog(QDialog, Ui_CertificationDialog):
-
     """
     classdocs
     """
diff --git a/src/cutecoin/gui/community_tab.py b/src/cutecoin/gui/community_tab.py
index e9e3653fbf713161fe3e28ff84f09fd8d65779e5..6d733008d442f0be45285d0bb49db3d491e35146 100644
--- a/src/cutecoin/gui/community_tab.py
+++ b/src/cutecoin/gui/community_tab.py
@@ -5,7 +5,7 @@ Created on 2 févr. 2014
 """
 
 import logging
-from PyQt5.QtCore import Qt, pyqtSlot
+from PyQt5.QtCore import Qt, pyqtSlot, QEvent
 from PyQt5.QtGui import QIcon, QCursor
 from PyQt5.QtWidgets import QWidget, QMessageBox, QAction, QMenu, QDialog, \
                             QAbstractItemView
@@ -284,3 +284,13 @@ class CommunityTabWidget(QWidget, Ui_CommunityTabWidget):
         self.table_identities.model().sourceModel().refresh_identities(identities)
         self.table_identities.resizeColumnsToContents()
 
+    def changeEvent(self, event):
+        """
+        Intercepte LanguageChange event to translate UI
+        :param QEvent QEvent: Event
+        :return:
+        """
+        if event.type() == QEvent.LanguageChange:
+            self.retranslateUi(self)
+        return super(CommunityTabWidget, self).changeEvent(event)
+
diff --git a/src/cutecoin/gui/currency_tab.py b/src/cutecoin/gui/currency_tab.py
index 4767d36d205c48eaea236956685e707c1699c49e..c3f40928de991c98466e53d314cc830b11967631 100644
--- a/src/cutecoin/gui/currency_tab.py
+++ b/src/cutecoin/gui/currency_tab.py
@@ -7,7 +7,7 @@ Created on 2 févr. 2014
 import time
 import logging
 from PyQt5.QtWidgets import QWidget, QMessageBox
-from PyQt5.QtCore import QModelIndex, pyqtSlot, QDateTime, QLocale
+from PyQt5.QtCore import QModelIndex, pyqtSlot, QDateTime, QLocale, QEvent
 from PyQt5.QtGui import QIcon
 from ..gen_resources.currency_tab_uic import Ui_CurrencyTabWidget
 
@@ -202,3 +202,15 @@ class CurrencyTabWidget(QWidget, Ui_CurrencyTabWidget):
 
         if self.tab_informations:
             self.tab_informations.refresh()
+
+    def changeEvent(self, event):
+        """
+        Intercepte LanguageChange event to translate UI
+        :param QEvent QEvent: Event
+        :return:
+        """
+        if event.type() == QEvent.LanguageChange:
+            self.retranslateUi(self)
+            self.refresh_status()
+        return super(CurrencyTabWidget, self).changeEvent(event)
+
diff --git a/src/cutecoin/gui/homescreen.py b/src/cutecoin/gui/homescreen.py
index 15ffa516e54578667eb2fee82e557d663b13b27c..535bb29887bc6383a2a28bf40a276d6fd7128812 100644
--- a/src/cutecoin/gui/homescreen.py
+++ b/src/cutecoin/gui/homescreen.py
@@ -5,6 +5,7 @@ Created on 31 janv. 2015
 """
 
 from PyQt5.QtWidgets import QWidget
+from PyQt5.QtCore import QEvent
 from ..gen_resources.homescreen_uic import Ui_HomeScreenWidget
 from ..__init__ import __version__
 from . import toast
@@ -43,3 +44,15 @@ class HomeScreenWidget(QWidget, Ui_HomeScreenWidget):
                        version_info=version_info,
                        version_url=version_url))
 
+    def changeEvent(self, event):
+        """
+        Intercepte LanguageChange event to translate UI
+        :param QEvent QEvent: Event
+        :return:
+        """
+        if event.type() == QEvent.LanguageChange:
+            self.retranslateUi(self)
+            self.refresh_text()
+        return super(HomeScreenWidget, self).changeEvent(event)
+
+
diff --git a/src/cutecoin/gui/informations_tab.py b/src/cutecoin/gui/informations_tab.py
index 5d494e1a5b03de02d45c955ec3f139c9bd9f2b8d..5625282c8b5a73a772b4fb8fabe7b1f01ae2f7f4 100644
--- a/src/cutecoin/gui/informations_tab.py
+++ b/src/cutecoin/gui/informations_tab.py
@@ -6,7 +6,7 @@ Created on 31 janv. 2015
 
 import logging
 import math
-from PyQt5.QtCore import QLocale, QDateTime
+from PyQt5.QtCore import QLocale, QDateTime, QEvent
 from PyQt5.QtWidgets import QWidget
 from ..gen_resources.informations_tab_uic import Ui_InformationsTabWidget
 
@@ -218,3 +218,14 @@ class InformationsTabWidget(QWidget, Ui_InformationsTabWidget):
                 self.tr('Maximum distance between each WoT member and a newcomer'),
             )
         )
+
+    def changeEvent(self, event):
+        """
+        Intercepte LanguageChange event to translate UI
+        :param QEvent QEvent: Event
+        :return:
+        """
+        if event.type() == QEvent.LanguageChange:
+            self.retranslateUi(self)
+            self.refresh()
+        return super(InformationsTabWidget, self).changeEvent(event)
diff --git a/src/cutecoin/gui/mainwindow.py b/src/cutecoin/gui/mainwindow.py
index a893c9dbe819e0e0ab88618d6a53ba1df6e856e2..aef391f5e22a28a26adf1de545f79de77cc9578a 100644
--- a/src/cutecoin/gui/mainwindow.py
+++ b/src/cutecoin/gui/mainwindow.py
@@ -8,7 +8,7 @@ from ..gen_resources.about_uic import Ui_AboutPopup
 
 from PyQt5.QtWidgets import QMainWindow, QAction, QFileDialog, QProgressBar, \
     QMessageBox, QLabel, QComboBox, QDialog, QApplication
-from PyQt5.QtCore import QSignalMapper, QObject, QLocale, \
+from PyQt5.QtCore import QSignalMapper, QObject, QLocale, QEvent, \
     pyqtSlot, pyqtSignal, QDate, QDateTime, QTimer, QUrl, Qt, QCoreApplication
 from PyQt5.QtGui import QIcon, QDesktopServices
 
@@ -351,3 +351,14 @@ class MainWindow(QMainWindow, Ui_MainWindow):
         self.app.stop()
         super().closeEvent(event)
 
+    def changeEvent(self, event):
+        """
+        Intercepte LanguageChange event to translate UI
+        :param QEvent QEvent: Event
+        :return:
+        """
+        if event.type() == QEvent.LanguageChange:
+            self.retranslateUi(self)
+            self.refresh()
+        return super(MainWindow, self).changeEvent(event)
+
diff --git a/src/cutecoin/gui/network_tab.py b/src/cutecoin/gui/network_tab.py
index 73349efb34f90896c25bc1d5fe57977a0df3c19c..efdd76241b36ecf1c0ea98b97738de9d41b9f1a8 100644
--- a/src/cutecoin/gui/network_tab.py
+++ b/src/cutecoin/gui/network_tab.py
@@ -9,7 +9,7 @@ import asyncio
 
 from PyQt5.QtGui import QCursor, QDesktopServices
 from PyQt5.QtWidgets import QWidget, QMenu, QAction
-from PyQt5.QtCore import Qt, QModelIndex, pyqtSlot, QUrl
+from PyQt5.QtCore import Qt, QModelIndex, pyqtSlot, QUrl, QEvent
 from ..models.network import NetworkTableModel, NetworkFilterProxyModel
 from ..core.net.api import bma as qtbma
 from ..gen_resources.network_tab_uic import Ui_NetworkTabWidget
@@ -98,4 +98,13 @@ class NetworkTabWidget(QWidget, Ui_NetworkTabWidget):
     def manual_nodes_refresh(self):
         self.community.network.refresh_once()
 
-
+    def changeEvent(self, event):
+        """
+        Intercepte LanguageChange event to translate UI
+        :param QEvent QEvent: Event
+        :return:
+        """
+        if event.type() == QEvent.LanguageChange:
+            self.retranslateUi(self)
+            self.refresh_nodes()
+        return super(NetworkTabWidget, self).changeEvent(event)
diff --git a/src/cutecoin/gui/password_asker.py b/src/cutecoin/gui/password_asker.py
index dcb65ddd1851dab1c0ae2cd21365f3a06a2979a8..30815fe826d8901887e4d6a60ff921615545e262 100644
--- a/src/cutecoin/gui/password_asker.py
+++ b/src/cutecoin/gui/password_asker.py
@@ -7,6 +7,7 @@ Created on 24 dec. 2014
 import logging
 import re
 
+from PyQt5.QtCore import QEvent
 from PyQt5.QtWidgets import QDialog, QMessageBox
 
 from ..gen_resources.password_asker_uic import Ui_PasswordAskerDialog
@@ -67,6 +68,16 @@ class PasswordAskerDialog(QDialog, Ui_PasswordAskerDialog):
         self.password = ""
         super().reject()
 
+    def changeEvent(self, event):
+        """
+        Intercepte LanguageChange event to translate UI
+        :param QEvent QEvent: Event
+        :return:
+        """
+        if event.type() == QEvent.LanguageChange:
+            self.retranslateUi(self)
+        return super(PasswordAskerDialog, self).changeEvent(event)
+
 
 def detect_non_printable(data):
     control_chars = ''.join(map(chr, list(range(0, 32)) + list(range(127, 160))))
diff --git a/src/cutecoin/gui/preferences.py b/src/cutecoin/gui/preferences.py
index 0372232d729004eaa1215f7da98e50eba0392aa8..919d50de092ee9435132737ead8351d74ac8eba7 100644
--- a/src/cutecoin/gui/preferences.py
+++ b/src/cutecoin/gui/preferences.py
@@ -78,6 +78,8 @@ class PreferencesDialog(QDialog, Ui_PreferencesDialog):
                 'proxy_port': self.spinbox_proxy_port.value(),
                 'international_system_of_units': self.checkbox_international_system.isChecked()}
         self.app.save_preferences(pref)
+      # change UI translation
+        self.app.switch_language()
         toast.display(self.tr("Preferences"),
                       self.tr("A restart is needed to apply your new preferences."))
         super().accept()
diff --git a/src/cutecoin/gui/transactions_tab.py b/src/cutecoin/gui/transactions_tab.py
index 2758daa9dee0649396df3dac6b0c2e439e7a51a3..50eaa7deb36d77fb3bef5986899db15ef05b2c31 100644
--- a/src/cutecoin/gui/transactions_tab.py
+++ b/src/cutecoin/gui/transactions_tab.py
@@ -1,6 +1,6 @@
 from PyQt5.QtWidgets import QWidget, QAbstractItemView, QHeaderView, QDialog, \
     QMenu, QAction, QApplication, QMessageBox
-from PyQt5.QtCore import Qt, QDateTime, QTime, QModelIndex, QLocale, QCoreApplication, pyqtSlot
+from PyQt5.QtCore import Qt, QDateTime, QTime, QModelIndex, QCoreApplication, pyqtSlot, QEvent
 from PyQt5.QtGui import QCursor
 from ..gen_resources.transactions_tab_uic import Ui_transactionsTabWidget
 from ..models.txhistory import HistoryTableModel, TxFilterProxyModel
@@ -237,3 +237,14 @@ QMessageBox.Ok | QMessageBox.Cancel)
             self.table_history.model().set_period(ts_from, ts_to)
 
             self.refresh_balance()
+
+    def changeEvent(self, event):
+        """
+        Intercepte LanguageChange event to translate UI
+        :param QEvent QEvent: Event
+        :return:
+        """
+        if event.type() == QEvent.LanguageChange:
+            self.retranslateUi(self)
+            self.refresh()
+        return super(TransactionsTabWidget, self).changeEvent(event)
diff --git a/src/cutecoin/gui/wallets_tab.py b/src/cutecoin/gui/wallets_tab.py
index 32e601f33e3359a3655f1319e8bf8cc8caedc71e..245cab78ece53388137e30e254738c540288c56d 100644
--- a/src/cutecoin/gui/wallets_tab.py
+++ b/src/cutecoin/gui/wallets_tab.py
@@ -7,7 +7,7 @@ import asyncio
 import logging
 
 from PyQt5.QtWidgets import QWidget, QMenu, QAction, QApplication, QDialog, QMessageBox
-from PyQt5.QtCore import QDateTime, QModelIndex, Qt, QLocale
+from PyQt5.QtCore import QDateTime, QModelIndex, Qt, QLocale, QEvent
 from PyQt5.QtGui import QCursor
 
 from ..core.registry import Identity
@@ -340,3 +340,14 @@ Revoking your UID can only success if it is not already validated by the network
             self.button_membership.hide()
             self.button_leaving.hide()
             self.button_publish_uid.show()
+
+    def changeEvent(self, event):
+        """
+        Intercepte LanguageChange event to translate UI
+        :param QEvent QEvent: Event
+        :return:
+        """
+        if event.type() == QEvent.LanguageChange:
+            self.retranslateUi(self)
+            self.refresh()
+        return super(WalletsTabWidget, self).changeEvent(event)
diff --git a/src/cutecoin/gui/wot_tab.py b/src/cutecoin/gui/wot_tab.py
index ec8d5754f830fa4bec443814d1360f328ea96b89..c7e8572e094d9135f4b5b5332b534a30b55f586c 100644
--- a/src/cutecoin/gui/wot_tab.py
+++ b/src/cutecoin/gui/wot_tab.py
@@ -3,7 +3,7 @@
 import logging
 from cutecoin.core.graph import Graph
 from PyQt5.QtWidgets import QWidget, QComboBox, QLineEdit
-from PyQt5.QtCore import pyqtSlot
+from PyQt5.QtCore import pyqtSlot, QEvent
 from cutecoin.core.net.api import bma
 from cutecoin.core.registry import BlockchainState
 from ..gen_resources.wot_tab_uic import Ui_WotTabWidget
@@ -218,3 +218,14 @@ class WotTabWidget(QWidget, Ui_WotTabWidget):
             logging.debug('community.get_block request error : ' + str(e))
             return False
         return block.mediantime
+
+    def changeEvent(self, event):
+        """
+        Intercepte LanguageChange event to translate UI
+        :param QEvent QEvent: Event
+        :return:
+        """
+        if event.type() == QEvent.LanguageChange:
+            self.retranslateUi(self)
+            self.refresh()
+        return super(WotTabWidget, self).changeEvent(event)