コード例 #1
0
    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;
    }
コード例 #2
0
    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;
    }