diff --git a/src/Main/Forms/PreferencesDialog.cpp b/src/Main/Forms/PreferencesDialog.cpp index 9481f7f7..9c20a886 100644 --- a/src/Main/Forms/PreferencesDialog.cpp +++ b/src/Main/Forms/PreferencesDialog.cpp @@ -22,6 +22,9 @@ #include "Main/Main.h" #include "Main/Application.h" #include "Main/GraphicUserInterface.h" +#ifdef TC_LINUX +#include "Platform/Unix/Process.h" +#endif #include "Volume/Cipher.h" #include "PreferencesDialog.h" @@ -132,7 +135,16 @@ namespace VeraCrypt #if defined (TC_MACOSX) wxDir languagesFolder(StringConverter::ToSingle (Application::GetExecutableDirectory()) + "/../Resources/languages/"); #else - wxDir languagesFolder("/usr/share/veracrypt/languages/"); + wxString languagesFolderPath("/usr/share/veracrypt/languages/"); +#ifdef TC_LINUX + if (Process::IsRunningUnderAppImage (StringConverter::ToSingle (wstring (Application::GetExecutablePath())))) + { + const char* appDirEnv = getenv ("APPDIR"); + if (appDirEnv) + languagesFolderPath = wxString::FromUTF8 (appDirEnv) + "/usr/share/veracrypt/languages/"; + } +#endif + wxDir languagesFolder(languagesFolderPath); #endif wxArrayString langArray; LanguageListBox->Append("System default"); diff --git a/src/Main/Resources.cpp b/src/Main/Resources.cpp index 729144fc..ff1192d9 100644 --- a/src/Main/Resources.cpp +++ b/src/Main/Resources.cpp @@ -17,13 +17,14 @@ #ifdef TC_WINDOWS #include "Main/resource.h" #else -#ifdef TC_MACOSX #include "Application.h" -#endif #include "Platform/File.h" #include "Platform/StringConverter.h" #include #include "UserPreferences.h" +#if defined(TC_LINUX) +#include "Platform/Unix/Process.h" +#endif #endif namespace VeraCrypt @@ -66,6 +67,14 @@ namespace VeraCrypt string filenamePrefix = StringConverter::ToSingle (Application::GetExecutableDirectory()) + "/../Resources/languages/Language."; #else string filenamePrefix("/usr/share/veracrypt/languages/Language."); +#if defined(TC_LINUX) + if (Process::IsRunningUnderAppImage (StringConverter::ToSingle (wstring (Application::GetExecutablePath())))) + { + const char* appDirEnv = getenv ("APPDIR"); + if (appDirEnv) + filenamePrefix = string (appDirEnv) + "/usr/share/veracrypt/languages/Language."; + } +#endif #endif string filenamePost(".xml"); string filename = filenamePrefix + defaultLang + filenamePost;