Use CUSTOM_LOCALEDIR if specified

master
ShadowNinja 2015-08-24 14:32:15 -04:00 committed by est31
parent 31b6d26784
commit 645e208673
4 changed files with 16 additions and 4 deletions

View File

@ -12,6 +12,7 @@
#define VERSION_STRING "@VERSION_STRING@"
#define PRODUCT_VERSION_STRING "@VERSION_MAJOR@.@VERSION_MINOR@"
#define STATIC_SHAREDIR "@SHAREDIR@"
#define STATIC_LOCALEDIR "@LOCALEDIR@"
#define BUILD_TYPE "@CMAKE_BUILD_TYPE@"
#cmakedefine01 RUN_IN_PLACE
#cmakedefine01 USE_GETTEXT

View File

@ -472,10 +472,10 @@ static bool init_common(int *log_level, const Settings &cmd_args, int argc, char
httpfetch_init(g_settings->getS32("curl_parallel_limit"));
#ifdef _MSC_VER
init_gettext((porting::path_share + DIR_DELIM + "locale").c_str(),
init_gettext(porting::path_locale.c_str(),
g_settings->get("language"), argc, argv);
#else
init_gettext((porting::path_share + DIR_DELIM + "locale").c_str(),
init_gettext(porting::path_locale.c_str(),
g_settings->get("language"));
#endif

View File

@ -136,6 +136,8 @@ void signal_handler_init(void)
// Default to RUN_IN_PLACE style relative paths
std::string path_share = "..";
std::string path_user = "..";
std::string path_locale = path_share + DIR_DELIM + "locale";
std::string getDataPath(const char *subpath)
{
@ -503,13 +505,17 @@ void initializePaths()
path_share = execpath;
path_user = execpath;
}
#else
infostream << "Using system-wide paths (NOT RUN_IN_PLACE)" << std::endl;
if (!setSystemPaths())
errorstream << "Failed to get one or more system-wide path" << std::endl;
#endif
#ifdef STATIC_LOCALEDIR
path_locale = STATIC_LOCALEDIR[0] ? STATIC_LOCALEDIR : getDataPath("locale");
#else
path_locale = getDataPath("locale");
#endif
infostream << "Detected share path: " << path_share << std::endl;

View File

@ -142,6 +142,11 @@ extern std::string path_share;
*/
extern std::string path_user;
/*
Path to gettext locale files
*/
extern std::string path_locale;
/*
Get full path of stuff in data directory.
Example: "stone.png" -> "../data/stone.png"
@ -149,7 +154,7 @@ extern std::string path_user;
std::string getDataPath(const char *subpath);
/*
Initialize path_share and path_user.
Initialize path_*.
*/
void initializePaths();