From 71eba5e57987a1cbfa6b5fd866dbb054cf25512f Mon Sep 17 00:00:00 2001 From: Torsten Dreyer Date: Thu, 4 Dec 2014 09:18:41 +0100 Subject: [PATCH] Fix #1606, bad ATIS for Japanese locale Selecting a language for a nonexisting translation did not load the sys and atc messages. Better fall back to default (en) locale. --- src/Main/locale.cxx | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/src/Main/locale.cxx b/src/Main/locale.cxx index e11c36c57..f4eac4b6b 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; }