Config_TSReader(const std::string& theTSFile) : Config_XMLReader(theTSFile) {}
const Config_Translator::Translator& translator() const { return myTranslator; }
+ const Config_Translator::Dictionary& codecs() const { return myCodecs; }
protected:
/// Overloaded method. Defines how to process each node
virtual void processNode(xmlNodePtr theNode);
private:
Config_Translator::Translator myTranslator;
+ Config_Translator::Dictionary myCodecs;
};
void Config_TSReader::processNode(xmlNodePtr theNode)
aName = "";
} else if (isNode(theNode, "name", NULL)) {
aName = getContent(theNode);
+ myCodecs[aName] = encoding();
} else if (isNode(theNode, "message", NULL)) {
aSource = "";
} else if (isNode(theNode, "source", NULL)) {
//******************************************************************************
//******************************************************************************
Config_Translator::Translator Config_Translator::myTranslator;
+Config_Translator::Dictionary Config_Translator::myCodecs;
+
#ifdef _DEBUG
#ifdef MISSED_TRANSLATION
Config_Translator::Translator Config_Translator::myMissed;
}
}
+ const Dictionary aCodecs = aReader.codecs();
+ Dictionary::const_iterator aDictIt;
+ for (aDictIt = aCodecs.cbegin(); aDictIt != aCodecs.cend(); aDictIt++) {
+ myCodecs[aDictIt->first] = aDictIt->second;
+ }
return true;
}
return aMsg;
}
+
+std::string Config_Translator::codec(const std::string& theContext)
+{
+ return (myCodecs.count(theContext) > 0)? myCodecs[theContext] : "UTF-8";
+}
+
+
#ifdef _DEBUG
#ifdef MISSED_TRANSLATION
void Config_Translator::saveMissedTranslations()