X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=src%2FMain%2Flocale.cxx;h=fd7a5f2b5137aeb8a1f290a69db414f23bde2fb4;hb=0c00cd3c6d34e4e167457897a274864cb7236da6;hp=7572f42e9de03e45bc26eec630d17131a5826f9e;hpb=dd6cccdda168318cd2a286986a7f08a6d3c5e339;p=flightgear.git diff --git a/src/Main/locale.cxx b/src/Main/locale.cxx index 7572f42e9..fd7a5f2b5 100644 --- a/src/Main/locale.cxx +++ b/src/Main/locale.cxx @@ -171,29 +171,29 @@ FGLocale::selectLanguage(const char *language) } - SGPropertyNode *locale = NULL; + _currentLocale = NULL; BOOST_FOREACH(string lang, languages) { - locale = findLocaleNode(lang); - if (locale) { + SG_LOG(SG_GENERAL, SG_DEBUG, "trying to find locale for " << lang ); + _currentLocale = findLocaleNode(lang); + if (_currentLocale) { + SG_LOG(SG_GENERAL, SG_DEBUG, "found locale for " << lang << " at " << _currentLocale->getPath() ); break; } } - if (!locale) - { - SG_LOG(SG_GENERAL, SG_ALERT, - "No internationalization settings specified in preferences.xml" ); - return false; - } - - _currentLocale = locale; - // load resource for system messages (translations for fgfs internal messages) loadResource("sys"); // load resource for atc messages loadResource("atc"); + if (!_currentLocale) + { + SG_LOG(SG_GENERAL, SG_ALERT, + "System locale not found or no internationalization settings specified in preferences.xml. Using default (en)." ); + return false; + } + return true; } @@ -210,21 +210,21 @@ FGLocale::loadResource(SGPropertyNode* localeNode, const char* resource) if (!path_str) { SG_LOG(SG_GENERAL, SG_WARN, "No path in " << stringNode->getPath() << "/" << resource << "."); - return NULL; + return false; } path.append(path_str); SG_LOG(SG_GENERAL, SG_INFO, "Reading localized strings for '" << localeNode->getStringValue("lang", "") - <<"' from " << path.str()); + <<"' from " << path); // load the actual file try { - readProperties(path.str(), stringNode->getNode(resource, 0, true)); + readProperties(path, stringNode->getNode(resource, 0, true)); } catch (const sg_exception &e) { - SG_LOG(SG_GENERAL, SG_ALERT, "Unable to read the localized strings from " << path.str() << + SG_LOG(SG_GENERAL, SG_ALERT, "Unable to read the localized strings from " << path << ". Error: " << e.getFormattedMessage()); return false; }