diff --git a/main.cpp b/main.cpp
index 6f4a626..b7d8a18 100644
--- a/main.cpp
+++ b/main.cpp
@@ -112,18 +112,35 @@
     ShmClient* shmClient = new ShmClient(shm, sem);
 #endif
 
-    QTranslator qtTranslator;
-    qtTranslator.load("qt_" + QLocale::system().name(),
-                      QLibraryInfo::location(QLibraryInfo::TranslationsPath));
-    a.installTranslator(&qtTranslator);
+    const auto locale_name = QLocale::system().name();
+    const auto locale_lang = locale_name.split('_')[0];
 
-    QTranslator lrcTranslator;
-    lrcTranslator.load("share/libringclient/translations/lrc_" + QLocale::system().name());
-    a.installTranslator(&lrcTranslator);
+    QTranslator qtTranslator_lang;
+    QTranslator qtTranslator_name;
+    if (locale_name != locale_lang) {
+        qtTranslator_lang.load("qt_" + locale_lang, QLibraryInfo::location(QLibraryInfo::TranslationsPath));
+        a.installTranslator(&qtTranslator_lang);
+    }
+    qtTranslator_name.load("qt_" + locale_name, QLibraryInfo::location(QLibraryInfo::TranslationsPath));
+    a.installTranslator(&qtTranslator_name);
 
-    QTranslator mainTranslator;
-    mainTranslator.load("share/ring/translations/ring_client_windows_" + QLocale::system().name());
-    a.installTranslator(&mainTranslator);
+    QTranslator lrcTranslator_lang;
+    QTranslator lrcTranslator_name;
+    if (locale_name != locale_lang) {
+        lrcTranslator_lang.load("share/libringclient/translations/lrc_" + locale_lang);
+        a.installTranslator(&lrcTranslator_lang);
+    }
+    lrcTranslator_name.load("share/libringclient/translations/lrc_" + locale_name);
+    a.installTranslator(&lrcTranslator_name);
+
+    QTranslator mainTranslator_lang;
+    QTranslator mainTranslator_name;
+    if (locale_name != locale_lang) {
+        mainTranslator_lang.load("share/ring/translations/ring_client_windows_" + locale_lang);
+        a.installTranslator(&mainTranslator_lang);
+    }
+    mainTranslator_name.load("share/ring/translations/ring_client_windows_" + locale_name);
+    a.installTranslator(&mainTranslator_name);
 
     QFont font;
     font.setFamily("Segoe UI");
