diff --git a/src/Common/Dlgcode.c b/src/Common/Dlgcode.c index 3fd6e768..ee598cf0 100644 --- a/src/Common/Dlgcode.c +++ b/src/Common/Dlgcode.c @@ -2877,6 +2877,9 @@ void InitApp (HINSTANCE hInstance, wchar_t *lpszCommandLine) char langId[6]; InitCommonControlsPtr InitCommonControlsFn = NULL; wchar_t modPath[MAX_PATH]; +#ifndef SETUP + BOOL bLanguageSetInSetup = FALSE; +#endif GetModuleFileNameW (NULL, modPath, ARRAYSIZE (modPath)); @@ -3046,6 +3049,7 @@ void InitApp (HINSTANCE hInstance, wchar_t *lpszCommandLine) if (0 < WideCharToMultiByte (CP_ACP, 0, uiLang, -1, langId, sizeof (langId), NULL, NULL)) { SetPreferredLangId (langId); + bLanguageSetInSetup = TRUE; } } @@ -3073,6 +3077,11 @@ void InitApp (HINSTANCE hInstance, wchar_t *lpszCommandLine) LoadLanguageFile (); #ifndef SETUP + // Save language to XML configuration file if it has been selected in the setup + // so that other VeraCrypt programs will pick it up + if (bLanguageSetInSetup) + SaveSettings (NULL); + // UAC elevation moniker cannot be used in portable mode. // A new instance of the application must be created with elevated privileges. if (IsNonInstallMode () && !IsAdmin () && IsUacSupported ()) diff --git a/src/Format/Tcformat.c b/src/Format/Tcformat.c index f2493b08..ccdd682c 100644 --- a/src/Format/Tcformat.c +++ b/src/Format/Tcformat.c @@ -821,7 +821,7 @@ static void LoadSettings (HWND hwndDlg) LoadSettingsAndCheckModified (hwndDlg, FALSE, NULL, NULL); } -static void SaveSettings (HWND hwndDlg) +void SaveSettings (HWND hwndDlg) { WaitCursor (); diff --git a/src/Format/Tcformat.h b/src/Format/Tcformat.h index caaf2c28..f9328afd 100644 --- a/src/Format/Tcformat.h +++ b/src/Format/Tcformat.h @@ -32,7 +32,7 @@ enum timer_ids static void localcleanup ( void ); static void LoadSettings ( HWND hwndDlg ); -static void SaveSettings ( HWND hwndDlg ); +void SaveSettings ( HWND hwndDlg ); static void EndMainDlg ( HWND hwndDlg ); void ComboSelChangeEA ( HWND hwndDlg ); static void VerifySizeAndUpdate ( HWND hwndDlg , BOOL bUpdate );