Subversion Repositories spk

Rev

Rev 197 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | RSS feed

#include "Languages.h"

#include <stdarg.h>

CLanguages *CLanguages::_pInstance = NULL;

CLanguages::CLanguages() : m_iLanguage(-1)
{
        _lLanguages = new std::vector<SLanguageTexts>();
}

CLanguages::~CLanguages()
{
        delete _lLanguages;
}

CLanguages *CLanguages::Instance()
{
        if ( !_pInstance ) {
                _pInstance = new CLanguages();
        }

        return _pInstance;
}

void CLanguages::Release()
{
        if ( _pInstance ) {
                delete _pInstance;
                _pInstance = NULL;
        }
}


Utils::String CLanguages::findText(int section, int id)
{
        SLanguageTexts *text = _findLanguageText();
        if ( text )
        {
                LANGMAP::iterator itr = text->texts.find(Utils::String::Number(section) + ":" + Utils::String::Number(id));
                if ( itr != text->texts.end() )
                        return itr->second;
        }

        return GetText(section, id);
}

SLanguageTexts *CLanguages::_findLanguageText(int id)
{
        if ( id == -1 ) id = m_iLanguage;

        if ( _lLanguages ) {
                for ( int i = 0; i < (int)_lLanguages->size(); i++ )
                {
                        if ( _lLanguages->at(i).iLang == id )
                                return &_lLanguages->at(i);
                }
        }

        return NULL;
}