浏览代码

Using actual system language name on About dialog if the name is not provided by a (uncomplete) translation

Source commit: bc9d249decd3cc3a6fd45205dbcbc671b21bcdd1
Martin Prikryl 9 年之前
父节点
当前提交
26bbfc49fa
共有 1 个文件被更改,包括 12 次插入1 次删除
  1. 12 1
      source/forms/About.cpp

+ 12 - 1
source/forms/About.cpp

@@ -209,8 +209,19 @@ void __fastcall TAboutDialog::LoadThirdParty()
   {
     UnicodeString TranslatorUrl = LoadStr(TRANSLATOR_URL);
     UnicodeString TranslatorInfo = LoadStr(TRANSLATOR_INFO2);
+
+    wchar_t LocaleNameStr[255];
+    GetLocaleInfo(
+      GUIConfiguration->AppliedLocale, LOCALE_SLOCALIZEDLANGUAGENAME,
+      LocaleNameStr, LENOF(LocaleNameStr));
+    UnicodeString LocaleName(LocaleNameStr);
+
+    // The {language} should be present only if we are using an untranslated
+    // (=english) string
+    UnicodeString TranslationHeader = ReplaceStr(LoadStr(ABOUT_TRANSLATIONS_HEADER), L"{language}", LocaleName);
+
     AddPara(ThirdParty,
-      LoadStr(ABOUT_TRANSLATIONS_HEADER) + Br +
+      TranslationHeader + Br +
       FMTLOAD(ABOUT_TRANSLATIONS_COPYRIGHT, (GUIConfiguration->LocaleCopyright())) + Br +
       (!TranslatorInfo.IsEmpty() ? TranslatorInfo + Br : UnicodeString()) +
       (!TranslatorUrl.IsEmpty() ? CreateLink(TranslatorUrl) : UnicodeString()));