void ResourceManager::loadLanguage(const string& aFile) { try { File f(aFile, File::READ, File::OPEN); SimpleXML xml; xml.fromXML(f.read()); unordered_map<string, int> h; for(int i = 0; i < LAST; ++i) { h[names[i]] = i; } if(xml.findChild("Language")) { rtl = xml.getBoolChildAttrib("RightToLeft"); xml.stepIn(); if(xml.findChild("Strings")) { xml.stepIn(); while(xml.findChild("String")) { unordered_map<string, int>::const_iterator j = h.find(xml.getChildAttrib("Name")); if(j != h.end()) { strings[j->second] = xml.getChildData(); } } createWide(); } } } catch(const Exception&) { // ... } }
void FireResourceManager::loadLanguage(const string& aFile) { try { File f(aFile, File::READ, File::OPEN); SimpleXML xml; xml.fromXML(f.read()); HASH_MAP<string, int> h; //FireDC++ start HASH_MAP<string, int> e; //FireDC++ end for(int i = 0; i < LAST; ++i) { h[names[i]] = i; } //FireDC++ start for(int i = 0; i < LASTTWO; ++i) { e[namesTwo[i]] = i; } //FireDC++ end if(xml.findChild("Language")) { rtl = xml.getBoolChildAttrib("RightToLeft"); xml.stepIn(); if(xml.findChild("Strings")) { xml.stepIn(); while(xml.findChild("String")) { HASH_MAP<string, int>::iterator j = h.find(xml.getChildAttrib("Name")); if(j != h.end()) { strings[j->second] = xml.getChildData(); } } createWide(); } //FireDC++ start xml.stepOut(); if(xml.findChild("StringsTwo")) { xml.stepIn(); while(xml.findChild("StringTwo")) { HASH_MAP<string, int>::iterator j = e.find(xml.getChildAttrib("Name")); if(j != e.end()) { stringsTwo[j->second] = xml.getChildData(); } } createWideTwo(); } //FireDC++ end } } catch(const Exception&) { // ... } }
void ResourceManager::loadLanguage(const string& aFile) { try { File f(aFile, File::READ, File::OPEN, File::BUFFER_SEQUENTIAL, false); SimpleXML xml; xml.fromXML(f.read()); unordered_map<string, int> h; for(int i = 0; i < LAST; ++i) { h[names[i]] = i; } string childName = "String"; string attribName = "Name"; if (xml.findChild("Language")) { rtl = xml.getBoolChildAttrib("RightToLeft"); xml.stepIn(); if (xml.findChild("Strings")) { xml.stepIn(); } } else { xml.resetCurrentChild(); if (xml.findChild("resources")) { xml.stepIn(); childName = "string"; attribName = "name"; } else { throw Exception("Invalid format"); } } while (xml.findChild(childName)) { const auto j = h.find(xml.getChildAttrib(attribName)); if(j != h.end()) { strings[j->second] = xml.getChildData(); } } createWide(); } catch(const Exception& e) { LogManager::getInstance()->message("Failed to load the language file " + aFile + ": " + e.getError(), LogManager::LOG_ERROR); } }