bool LocalizedStringTableLoader::Load(const UknString& file, LocalizedStringTable& stringTable) { ukn::ConfigParserPtr parser = ukn::ConfigParser::MakeParser(ukn::ResourceLoader::Instance().loadResource(file)); if(parser && parser->toNode(L"strings")) { parser->toFirstChild(); do { UknString lanName = parser->getCurrentNodeName(); if(!lanName.empty()) { stringTable.addLanguage(lanName); parser->toFirstChild(); do { UknString stringId = parser->getCurrentNodeName(); if(!stringId.empty()) { UknString value = parser->getString(L"value"); stringTable.addString(lanName, stringId, value); } } while(parser->toNextChild()); parser->toParent(); } } while(parser->toNextChild()); return true; } return false; }
bool LocalizedStringTableLoader::Load(const char* file, LocalizedStringTable& stringTable) { ukn::ConfigParserPtr parser = ukn::ConfigParser::MakeParser(ukn::ResourceLoader::Instance().loadResource(file)); if(parser && parser->toNode("strings")) { parser->toFirstChild(); bool stringIdLoaded = false; do { std::string lanName = parser->getCurrentNodeName(); if(!lanName.empty()) { stringTable.addLanguage(lanName); parser->toFirstChild(); do { std::string stringId = parser->getCurrentNodeName(); if(!stringId.empty()) { std::string value = parser->getString("value"); stringTable.addString(lanName, stringId, value); if(!stringIdLoaded) /* add string id */ stringTable.mIdVector.push_back(stringId); } } while(parser->toNextChild()); parser->toParent(); stringIdLoaded = true; } } while(parser->toNextChild()); return true; } return false; }