-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathMultilingual.h
More file actions
45 lines (41 loc) · 1.68 KB
/
Multilingual.h
File metadata and controls
45 lines (41 loc) · 1.68 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
#pragma once
/*
Copyright(c) <2008-2010> shiplence.alpheilp
All rights reserved.
Redistribution and use in source and binary forms are permitted
provided that the above copyright notice and this paragraph are
duplicated in all such forms and that any documentation,
advertising materials, and other materials related to such
distribution and use acknowledge that the software was developed
by the <organization>.The name of the
<organization> may not be used to endorse or promote products derived
from this software without specific prior written permission.
THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
*/
#include <map>
#include <vector>
#include <string>
class Multilingual
{
private:
typedef char** StringList;
std::string m_curLanguage;
std::map<std::string, StringList> m_lists;
std::map<std::string, short> m_count;
std::map<std::string, std::map<std::string, size_t>> m_indexs;
public:
Multilingual();
~Multilingual();
static Multilingual * getInstance();
public:
void unloadPack();
bool preLoadPacksIndex(const std::string & sheet);
bool switchPack(const std::string & language, const std::vector<std::string> & sheets);
const char* getTxt(const std::string & name, const std::string & sheet) const;
const char* getText(const char* uri) const;
bool preloadPack(const std::string & language, const std::vector<std::string> & sheets);
bool preloadPackSheet(const std::string & language, const std::string & sheet);
};
#define GetStringMgr() Multilingual::getInstance()