diff options
author | Alex Zolotarev <deathbaba@gmail.com> | 2011-06-04 16:59:36 +0400 |
---|---|---|
committer | Alex Zolotarev <alex@maps.me> | 2015-09-23 01:18:58 +0300 |
commit | 81bf621ab797e76522253174a4e87c461502fc0b (patch) | |
tree | b6f1fa16b14eab667ef0504841e256b64ba3b185 /platform | |
parent | 637ab59cfca7bf358ac5f20c26ad369c47397ef6 (diff) |
Added preferred languages support for Linux
Diffstat (limited to 'platform')
-rw-r--r-- | platform/preferred_languages.cpp | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/platform/preferred_languages.cpp b/platform/preferred_languages.cpp index 130f3fb055..9228c359fa 100644 --- a/platform/preferred_languages.cpp +++ b/platform/preferred_languages.cpp @@ -13,6 +13,9 @@ #elif defined(OMIM_OS_WINDOWS) // @TODO +#elif defined(OMIM_OS_LINUX) + #include "../std/stdlib.hpp" + #else #error "Define language preferences for your platform" @@ -74,6 +77,27 @@ void SystemPreferredLanguages(vector<string> & languages) #elif defined(OMIM_OS_WINDOWS) // @TODO Windows implementation + +#elif defined(OMIM_OS_LINUX) + // check environment variables + char const * p = getenv("LANGUAGE"); + if (p) // LANGUAGE can contain several values divided by ':' + { + string const str(p); + strings::SimpleTokenizer iter(str, ":"); + while (iter) + { + languages.push_back(*iter); + ++iter; + } + } + else if ((p = getenv("LC_ALL"))) + languages.push_back(p); + else if ((p = getenv("LC_MESSAGES"))) + languages.push_back(p); + else if ((p = getenv("LANG"))) + languages.push_back(p); + #else #error "Define language preferences for your platform" #endif |