diff Core/Toolbox.cpp @ 2330:9c7a80c87ae9

"Locale" configuration option
author Sebastien Jodogne <s.jodogne@gmail.com>
date Fri, 14 Jul 2017 16:34:16 +0200
parents 423d3b692bb9
children 6677cdbfbafd
line wrap: on
line diff
--- a/Core/Toolbox.cpp	Fri Jul 14 16:17:02 2017 +0200
+++ b/Core/Toolbox.cpp	Fri Jul 14 16:34:16 2017 +0200
@@ -1256,7 +1256,7 @@
 
   static std::auto_ptr<std::locale>  globalLocale_;
   
-  void Toolbox::InitializeGlobalLocale()
+  void Toolbox::InitializeGlobalLocale(const char* locale)
   {
     // Make Orthanc use English, United States locale
 
@@ -1270,18 +1270,25 @@
 
     try
     {
-      if (DEFAULT_LOCALE == NULL)
+      if (locale != NULL)
       {
+        LOG(WARNING) << "Using user-specified locale: \"" << locale << "\"";
+        globalLocale_.reset(new std::locale(locale));
+      }
+      else if (DEFAULT_LOCALE == NULL)
+      {
+        LOG(WARNING) << "Using system-wide default locale";
         globalLocale_.reset(new std::locale());
       }
       else
       {
+        LOG(WARNING) << "Using default locale: \"" << DEFAULT_LOCALE << "\"";
         globalLocale_.reset(new std::locale(DEFAULT_LOCALE));
       }
     }
-    catch (std::runtime_error& e)
+    catch (std::runtime_error&)
     {
-      LOG(ERROR) << "Cannot initialize global locale as \"" << DEFAULT_LOCALE << "\"";
+      LOG(ERROR) << "Cannot initialize global locale";
       throw OrthancException(ErrorCode_InternalError);
     }
   }