Subversion Repositories spk

Rev

Rev 122 | Go to most recent revision | Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
104 cycrow 1
#include "Languages.h"
2
 
3
#include <stdarg.h>
4
 
5
CLanguages *CLanguages::_pInstance = NULL;
6
 
7
CLanguages::CLanguages() : m_iLanguage(-1)
8
{
9
	_lLanguages = new std::vector<SLanguageTexts>();
10
}
11
 
12
CLanguages::~CLanguages()
13
{
14
	delete _lLanguages;
15
}
16
 
17
CLanguages *CLanguages::Instance()
18
{
19
	if ( !_pInstance ) {
20
		_pInstance = new CLanguages();
21
	}
22
 
23
	return _pInstance;
24
}
25
 
26
void CLanguages::Release()
27
{
28
	if ( _pInstance ) {
29
		delete _pInstance;
30
		_pInstance = NULL;
31
	}
32
}
33
 
34
 
35
Utils::String CLanguages::findText(int section, int id)
36
{
37
	SLanguageTexts *text = _findLanguageText();
38
	if ( text )
39
	{
40
		LANGMAP::iterator itr = text->texts.find(Utils::String::Number(section) + ":" + Utils::String::Number(id));
41
		if ( itr != text->texts.end() )
42
			return itr->second;
43
	}
44
 
45
	return GetText(section, id);
46
}
47
 
48
SLanguageTexts *CLanguages::_findLanguageText(int id)
49
{
50
	if ( id == -1 ) id = m_iLanguage;
51
 
52
	if ( _lLanguages ) {
53
		for ( int i = 0; i < (int)_lLanguages->size(); i++ )
54
		{
55
			if ( _lLanguages->at(i).iLang == id )
56
				return &_lLanguages->at(i);
57
		}
58
	}
59
 
60
	return NULL;
61
}