i18n: loads language code only and full locale name for lrc

Qt loads only one specific file with QTranslate.load().
So if for example locale name is 'fr_CA', only this specific
translation will be loaded, but not 'fr', that may contains
usefull generic translations not given by lang_country one.

This patch fixes that by loading language code only fist
then 'language_COUNTRY' one.

Change-Id: I11a5adbd55f6575aab5453df0033377967ccc17e
Reviewed-by: Anthony LĂ©onard <anthony.leonard@savoirfairelinux.com>
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");