Salome HOME
Issue #1843: Set parameters to message on request of the message string
authorvsv <vitaly.smetannikov@opencascade.com>
Wed, 9 Nov 2016 09:20:05 +0000 (12:20 +0300)
committervsv <vitaly.smetannikov@opencascade.com>
Wed, 9 Nov 2016 09:20:05 +0000 (12:20 +0300)
src/Config/Config_Translator.cpp
src/Config/Config_Translator.h
src/Events/Events_InfoMessage.cpp
src/Events/Events_InfoMessage.h

index cbc1a2776ceaf022dae533020c9e5ab1535e24d4..c292159bde69634941b505851fa5832b5040b5ce 100644 (file)
@@ -109,55 +109,25 @@ std::string Config_Translator::translate(const Events_InfoMessage& theInfo)
 {
   std::string aContext = theInfo.context();
   std::string aMessage = theInfo.messageString();
-  std::list<std::string> aParameters = theInfo.parameters();
-  return translate(aContext, aMessage, aParameters);
-}
-
-std::string insertParameters(const std::string& theString, const std::list<std::string>& theParams)
-{
-  std::string aResult = theString;
-  std::list<std::string>::const_iterator aIt;
-  int i;
-  char aBuf[20];
-  std::string aParam;
-  for (i=1, aIt = theParams.cbegin(); aIt != theParams.cend(); aIt++, i++) {
-    aParam = (*aIt);
-    sprintf(aBuf, "%d", i);
-    std::string aCode = std::string("%") + std::string(aBuf);
-    size_t aPos = aResult.find(aCode);
-    if (aPos != std::string::npos) {
-      std::string aFirst = aResult.substr(0, aPos);
-      std::string aLast = aResult.substr(aPos + aCode.length(), std::string::npos);
-      aResult = aFirst + aParam + aLast;
-    }
-  }
-  return aResult;
+  return translate(aContext, aMessage);
 }
 
 std::string Config_Translator::translate(const std::string& theContext,
-                                         const std::string& theMessage, 
-                                         const std::list<std::string>& theParams)
+                                         const std::string& theMessage)
 {
   if (myTranslator.count(theContext) > 0) {
     if (myTranslator[theContext].count(theMessage) > 0) {
       std::string aTranslation = myTranslator[theContext][theMessage];
-      if (theParams.size() > 0) {
-        aTranslation = insertParameters(aTranslation, theParams);
-      }
       if (aTranslation.size() > 0)
         return aTranslation;
     }
   }
-  std::string aMsg = theMessage;
-  if (theParams.size() > 0) {
-    aMsg = insertParameters(aMsg, theParams);
-  }
 #ifdef _DEBUG
 #ifdef MISSED_TRANSLATION
   myMissed[theContext][theMessage] = "";
 #endif
 #endif
-  return aMsg;
+  return theMessage;
 }
 
 
index 158091be3f6a79c96745b679e14507f3006e8184..6a07ffcda3e3a04cbcd29cf413dab8996afad4f2 100644 (file)
@@ -55,8 +55,7 @@ public:
   * \param theParams a list of parameters (can be empty)
   */
   static CONFIG_EXPORT std::string translate(const std::string& theContext,
-    const std::string& theMessage, 
-    const std::list<std::string>& theParams = std::list<std::string>());
+    const std::string& theMessage);
 
 
   /**
index e2a4d988220f5858a04eb3f338964bfe9751d705..92e4c7c253f8a317cdcf11f8cf33163f78e91c24 100644 (file)
@@ -31,3 +31,30 @@ void Events_InfoMessage::send()
   std::shared_ptr<Events_Message> aMsg(new Events_InfoMessage(*this));
   Events_Loop::loop()->send(aMsg); 
 }
+
+
+std::string insertParameters(const std::string& theString, const std::list<std::string>& theParams)
+{
+  std::string aResult = theString;
+  std::list<std::string>::const_iterator aIt;
+  int i;
+  char aBuf[20];
+  std::string aParam;
+  for (i=1, aIt = theParams.cbegin(); aIt != theParams.cend(); aIt++, i++) {
+    aParam = (*aIt);
+    sprintf(aBuf, "%d", i);
+    std::string aCode = std::string("%") + std::string(aBuf);
+    size_t aPos = aResult.find(aCode);
+    if (aPos != std::string::npos) {
+      std::string aFirst = aResult.substr(0, aPos);
+      std::string aLast = aResult.substr(aPos + aCode.length(), std::string::npos);
+      aResult = aFirst + aParam + aLast;
+    }
+  }
+  return aResult;
+}
+
+std::string Events_InfoMessage::messageString() const 
+{ 
+  return insertParameters(myMessage, myParameters); 
+}
index 2924df181116796ad571560ac69f6508577cbdeb..77ebdb1c4e3fabe94dcbcfefae14eb1060157c37 100644 (file)
@@ -52,7 +52,7 @@ public:
   void setMessageString(const std::string& theMsg) { myMessage = theMsg; } 
 
   /// Returns message
-  std::string messageString() const { return myMessage; }
+  EVENTS_EXPORT std::string messageString() const;
 
   Events_InfoMessage& operator=(const std::string& theMsg) {
     setMessageString(theMsg);