diff options
author | Ilya Zhuravlev <zhuravlevilya@ya.ru> | 2013-09-07 20:06:00 +0400 |
---|---|---|
committer | Ilya Zhuravlev <zhuravlevilya@ya.ru> | 2013-09-08 15:16:19 +0400 |
commit | 6de16bb43890a86e82c9465a0582159a855c7422 (patch) | |
tree | 57fbcb00d009e95acff2d20264ceaf8f610ec964 /src/main.cpp | |
parent | 6291fd1cbb9c2808e336532c833e26330ff2642b (diff) | |
download | minetest-6de16bb43890a86e82c9465a0582159a855c7422.tar.gz minetest-6de16bb43890a86e82c9465a0582159a855c7422.tar.bz2 minetest-6de16bb43890a86e82c9465a0582159a855c7422.zip |
Add fallback font support for some languages.
Diffstat (limited to 'src/main.cpp')
-rw-r--r-- | src/main.cpp | 20 |
1 files changed, 18 insertions, 2 deletions
diff --git a/src/main.cpp b/src/main.cpp index 940580b7a..fafb3c8ef 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -995,7 +995,19 @@ int main(int argc, char *argv[]) { run_tests(); } - + + std::string language = g_settings->get("language"); + if (language.length()) { +#ifndef _WIN32 + setenv("LANGUAGE", language.c_str(), 1); +#else + char *lang_str = (char*)calloc(10 + language.length(), sizeof(char)); + strcat(lang_str, "LANGUAGE="); + strcat(lang_str, language.c_str()); + putenv(lang_str); +#endif + } + /* Game parameters */ @@ -1396,7 +1408,11 @@ int main(int argc, char *argv[]) bool use_freetype = g_settings->getBool("freetype"); #if USE_FREETYPE if (use_freetype) { - u16 font_size = g_settings->getU16("font_size"); + std::string fallback; + if (is_yes(gettext("needs_fallback_font"))) + fallback = "fallback_"; + u16 font_size = g_settings->getU16(fallback + "font_size"); + font_path = g_settings->get(fallback + "font_path"); font = gui::CGUITTFont::createTTFont(guienv, font_path.c_str(), font_size); } else { font = guienv->getFont(font_path.c_str()); |