mirror of
https://github.com/veracrypt/VeraCrypt.git
synced 2025-11-11 11:08:02 -06:00
Windows: When no language selected by user, explicitly use English as default one unless VeraCrypt is in portable mode.
This commit is contained in:
@@ -2421,8 +2421,21 @@ void InitApp (HINSTANCE hInstance, char *lpszCommandLine)
|
|||||||
SetPreferredLangId (ConfigReadString ("Language", "", langId, sizeof (langId)));
|
SetPreferredLangId (ConfigReadString ("Language", "", langId, sizeof (langId)));
|
||||||
|
|
||||||
if (langId[0] == 0)
|
if (langId[0] == 0)
|
||||||
DialogBoxParamW (hInst, MAKEINTRESOURCEW (IDD_LANGUAGE), NULL,
|
{
|
||||||
(DLGPROC) LanguageDlgProc, (LPARAM) 1);
|
if (IsNonInstallMode ())
|
||||||
|
{
|
||||||
|
// only support automatic use of a language file in portable mode
|
||||||
|
// this is achieved by placing a unique language XML file in the same
|
||||||
|
// place as portable VeraCrypt binaries.
|
||||||
|
DialogBoxParamW (hInst, MAKEINTRESOURCEW (IDD_LANGUAGE), NULL,
|
||||||
|
(DLGPROC) LanguageDlgProc, (LPARAM) 1);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
// when installed, force using English as default language
|
||||||
|
SetPreferredLangId ("en");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
LoadLanguageFile ();
|
LoadLanguageFile ();
|
||||||
|
|
||||||
|
|||||||
@@ -35,10 +35,10 @@
|
|||||||
BOOL LocalizationActive;
|
BOOL LocalizationActive;
|
||||||
int LocalizationSerialNo;
|
int LocalizationSerialNo;
|
||||||
|
|
||||||
wchar_t UnknownString[1024];
|
wchar_t UnknownString[1024] = {0};
|
||||||
static char *LanguageFileBuffer = NULL;
|
static char *LanguageFileBuffer = NULL;
|
||||||
static HANDLE LanguageFileFindHandle = INVALID_HANDLE_VALUE;
|
static HANDLE LanguageFileFindHandle = INVALID_HANDLE_VALUE;
|
||||||
static char PreferredLangId[6];
|
static char PreferredLangId[6] = {0};
|
||||||
static char *LanguageResource = NULL;
|
static char *LanguageResource = NULL;
|
||||||
static DWORD LanguageResourceSize = 0;
|
static DWORD LanguageResourceSize = 0;
|
||||||
static char *HeaderResource[2] = {NULL, NULL};
|
static char *HeaderResource[2] = {NULL, NULL};
|
||||||
|
|||||||
@@ -743,8 +743,21 @@ static void LoadSettingsAndCheckModified (HWND hwndDlg, BOOL bOnlyCheckModified,
|
|||||||
if (bOnlyCheckModified)
|
if (bOnlyCheckModified)
|
||||||
{
|
{
|
||||||
char langid[6] = {0};
|
char langid[6] = {0};
|
||||||
StringCbCopyA (langid, sizeof(langid), GetPreferredLangId ());
|
if (!IsNonInstallMode ())
|
||||||
ConfigReadCompareString ("Language", "", langid, sizeof (langid), TRUE, pbSettingsModified);
|
{
|
||||||
|
ConfigReadString ("Language", "", langid, sizeof (langid));
|
||||||
|
// when installed, if no preferred language set by user, English is selected default
|
||||||
|
if (langid [0] == 0)
|
||||||
|
StringCbCopyA (langid, sizeof(langid), "en");
|
||||||
|
|
||||||
|
if (pbSettingsModified && strcmp (langid, GetPreferredLangId ()))
|
||||||
|
*pbSettingsModified = TRUE;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
StringCbCopyA (langid, sizeof(langid), GetPreferredLangId ());
|
||||||
|
ConfigReadCompareString ("Language", "", langid, sizeof (langid), TRUE, pbSettingsModified);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (hwndDlg != NULL)
|
if (hwndDlg != NULL)
|
||||||
@@ -785,8 +798,7 @@ static void SaveSettings (HWND hwndDlg)
|
|||||||
ConfigWriteInt ("SaveVolumeHistory", bHistory);
|
ConfigWriteInt ("SaveVolumeHistory", bHistory);
|
||||||
ConfigWriteString ("SecurityTokenLibrary", SecurityTokenLibraryPath[0] ? SecurityTokenLibraryPath : "");
|
ConfigWriteString ("SecurityTokenLibrary", SecurityTokenLibraryPath[0] ? SecurityTokenLibraryPath : "");
|
||||||
|
|
||||||
if (GetPreferredLangId () != NULL)
|
ConfigWriteString ("Language", GetPreferredLangId ());
|
||||||
ConfigWriteString ("Language", GetPreferredLangId ());
|
|
||||||
|
|
||||||
ConfigWriteEnd (hwndDlg);
|
ConfigWriteEnd (hwndDlg);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -776,9 +776,23 @@ void LoadSettingsAndCheckModified (HWND hwndDlg, BOOL bOnlyCheckModified, BOOL*
|
|||||||
ConfigReadCompareInt ("DefaultTrueCryptMode", FALSE, &DefaultVolumeTrueCryptMode, bOnlyCheckModified, pbSettingsModified);
|
ConfigReadCompareInt ("DefaultTrueCryptMode", FALSE, &DefaultVolumeTrueCryptMode, bOnlyCheckModified, pbSettingsModified);
|
||||||
|
|
||||||
if (bOnlyCheckModified)
|
if (bOnlyCheckModified)
|
||||||
{
|
{
|
||||||
StringCbCopyA (langid, sizeof(langid), GetPreferredLangId ());
|
if (!IsNonInstallMode ())
|
||||||
ConfigReadCompareString ("Language", "", langid, sizeof (langid), TRUE, pbSettingsModified);
|
{
|
||||||
|
ConfigReadString ("Language", "", langid, sizeof (langid));
|
||||||
|
// when installed, if no preferred language set by user, English is set default
|
||||||
|
//
|
||||||
|
if (langid [0] == 0)
|
||||||
|
StringCbCopyA (langid, sizeof(langid), "en");
|
||||||
|
|
||||||
|
if (pbSettingsModified && strcmp (langid, GetPreferredLangId ()))
|
||||||
|
*pbSettingsModified = TRUE;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
StringCbCopyA (langid, sizeof(langid), GetPreferredLangId ());
|
||||||
|
ConfigReadCompareString ("Language", "", langid, sizeof (langid), TRUE, pbSettingsModified);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (DefaultVolumePkcs5 < 0 || DefaultVolumePkcs5 > LAST_PRF_ID)
|
if (DefaultVolumePkcs5 < 0 || DefaultVolumePkcs5 > LAST_PRF_ID)
|
||||||
@@ -881,8 +895,7 @@ void SaveSettings (HWND hwndDlg)
|
|||||||
ConfigWriteInt ("DisplayMsgBoxOnHotkeyDismount", bDisplayBalloonOnSuccessfulHkDismount);
|
ConfigWriteInt ("DisplayMsgBoxOnHotkeyDismount", bDisplayBalloonOnSuccessfulHkDismount);
|
||||||
|
|
||||||
// Language
|
// Language
|
||||||
if (GetPreferredLangId () != NULL)
|
ConfigWriteString ("Language", GetPreferredLangId ());
|
||||||
ConfigWriteString ("Language", GetPreferredLangId ());
|
|
||||||
|
|
||||||
// PKCS#11 Library Path
|
// PKCS#11 Library Path
|
||||||
ConfigWriteString ("SecurityTokenLibrary", SecurityTokenLibraryPath[0] ? SecurityTokenLibraryPath : "");
|
ConfigWriteString ("SecurityTokenLibrary", SecurityTokenLibraryPath[0] ? SecurityTokenLibraryPath : "");
|
||||||
@@ -4111,11 +4124,11 @@ BOOL CALLBACK TravelerDlgProc (HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM lPa
|
|||||||
goto stop;
|
goto stop;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (GetPreferredLangId () && strcmp (GetPreferredLangId (), "en") != 0)
|
if (strcmp (GetPreferredLangId (), "en") != 0)
|
||||||
{
|
{
|
||||||
// Language pack
|
// Language pack
|
||||||
StringCbPrintfW (srcPath, sizeof(srcPath), L"%s\\Language.%s.xml", appDir, GetPreferredLangId ());
|
StringCbPrintfW (srcPath, sizeof(srcPath), L"%s\\Language.%hs.xml", appDir, GetPreferredLangId ());
|
||||||
StringCbPrintfW (dstPath, sizeof(dstPath), L"%s\\VeraCrypt\\Language.%s.xml", dstDir, GetPreferredLangId ());
|
StringCbPrintfW (dstPath, sizeof(dstPath), L"%s\\VeraCrypt\\Language.%hs.xml", dstDir, GetPreferredLangId ());
|
||||||
TCCopyFileW (srcPath, dstPath);
|
TCCopyFileW (srcPath, dstPath);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user