1 ////////////////////////////////////////////////////////////////////////////////
2 //    Scorched3D (c) 2000-2011
3 //
4 //    This file is part of Scorched3D.
5 //
6 //    Scorched3D is free software; you can redistribute it and/or modify
7 //    it under the terms of the GNU General Public License as published by
8 //    the Free Software Foundation; either version 2 of the License, or
9 //    (at your option) any later version.
10 //
11 //    Scorched3D is distributed in the hope that it will be useful,
12 //    but WITHOUT ANY WARRANTY; without even the implied warranty of
13 //    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14 //    GNU General Public License for more details.
15 //
16 //    You should have received a copy of the GNU General Public License along
17 //    with this program; if not, write to the Free Software Foundation, Inc.,
18 //    51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
19 ////////////////////////////////////////////////////////////////////////////////
20 
21 #if !defined(__INCLUDE_LangText_INCLUDE__)
22 #define __INCLUDE_LangText_INCLUDE__
23 
24 #include <lang/Lang.h>
25 
26 #define LANG_RESOURCE(key, value) LangResource::getKey(key, value)
27 #define LANG_RESOURCE_1(key, value, param1) LangResource::getKey(key, value, param1)
28 #define LANG_RESOURCE_2(key, value, param1, param2) LangResource::getKey(key, value, param1, param2)
29 #define LANG_RESOURCE_3(key, value, param1, param2, param3) LangResource::getKey(key, value, param1, param2, param3)
30 #define LANG_RESOURCE_4(key, value, param1, param2, param3, param4) LangResource::getKey(key, value, param1, param2, param3, param4)
31 #define LANG_RESOURCE_5(key, value, param1, param2, param3, param4, param5) LangResource::getKey(key, value, param1, param2, param3, param4, param5)
32 
33 #define LANG_RESOURCE_VAR(name, key, value) static ResourceBundleEntry *TEXT_BUNDLE_##name = \
34 	Lang::instance()->getEntry(key, value); \
35 	static LangString name = TEXT_BUNDLE_##name->getString();
36 #define LANG_RESOURCE_VAR_1(name, key, value, param1) static ResourceBundleEntry *TEXT_BUNDLE_##name = \
37 	Lang::instance()->getEntry(key, value); \
38 	LangString name = TEXT_BUNDLE_##name->getString(param1);
39 #define LANG_RESOURCE_VAR_2(name, key, value, param1, param2) static ResourceBundleEntry *TEXT_BUNDLE_##name = \
40 	Lang::instance()->getEntry(key, value); \
41 	LangString name = TEXT_BUNDLE_##name->getString(param1, param2);
42 #define LANG_RESOURCE_VAR_3(name, key, value, param1, param2, param3) static ResourceBundleEntry *TEXT_BUNDLE_##name = \
43 	Lang::instance()->getEntry(key, value); \
44 	LangString name = TEXT_BUNDLE_##name->getString(param1, param2, param3);
45 #define LANG_RESOURCE_VAR_4(name, key, value, param1, param2, param3, param4) static ResourceBundleEntry *TEXT_BUNDLE_##name = \
46 	Lang::instance()->getEntry(key, value); \
47 	LangString name = TEXT_BUNDLE_##name->getString(param1, param2, param3, param4);
48 #define LANG_RESOURCE_VAR_5(name, key, value, param1, param2, param3, param4, param5) static ResourceBundleEntry *TEXT_BUNDLE_##name = \
49 	Lang::instance()->getEntry(key, value); \
50 	LangString name = TEXT_BUNDLE_##name->getString(param1, param2, param3, param4, param5);
51 
52 #define LANG_RESOURCE_CONST_VAR(name, key, value) static ResourceBundleEntry *TEXT_BUNDLE_##name = \
53 	Lang::instance()->getEntry(key, value); \
54 	static LangString name = TEXT_BUNDLE_##name->getString();
55 #define LANG_RESOURCE_CONST_VAR_1(name, key, value, param1) static ResourceBundleEntry *TEXT_BUNDLE_##name = \
56 	Lang::instance()->getEntry(key, value); \
57 	static LangString name = TEXT_BUNDLE_##name->getString(param1);
58 #define LANG_RESOURCE_CONST_VAR_2(name, key, value, param1, param2) static ResourceBundleEntry *TEXT_BUNDLE_##name = \
59 	Lang::instance()->getEntry(key, value); \
60 	static LangString name = TEXT_BUNDLE_##name->getString(param1, param2);
61 #define LANG_RESOURCE_CONST_VAR_3(name, key, value, param1, param2, param3) static ResourceBundleEntry *TEXT_BUNDLE_##name = \
62 	Lang::instance()->getEntry(key, value); \
63 	static LangString name = TEXT_BUNDLE_##name->getString(param1, param2, param3);
64 #define LANG_RESOURCE_CONST_VAR_4(name, key, value, param1, param2, param3, param4) static ResourceBundleEntry *TEXT_BUNDLE_##name = \
65 	Lang::instance()->getEntry(key, value); \
66 	static LangString name = TEXT_BUNDLE_##name->getString(param1, param2, param3, param4);
67 #define LANG_RESOURCE_CONST_VAR_5(name, key, value, param1, param2, param3, param4, param5) static ResourceBundleEntry *TEXT_BUNDLE_##name = \
68 	Lang::instance()->getEntry(key, value); \
69 	static LangString name = TEXT_BUNDLE_##name->getString(param1, param2, param3, param4, param5);
70 
71 namespace LangResource
72 {
73 	LangString getKey(const std::string &key, const std::string &value);
74 	LangString getKey(const std::string &key, const std::string &value, const LangStringConverter &param1);
75 	LangString getKey(const std::string &key, const std::string &value, const LangStringConverter &param1,
76 		const LangStringConverter &param2);
77 	LangString getKey(const std::string &key, const std::string &value, const LangStringConverter &param1,
78 		const LangStringConverter &param2, const LangStringConverter &param3);
79 	LangString getKey(const std::string &key, const std::string &value, const LangStringConverter &param1,
80 		const LangStringConverter &param2, const LangStringConverter &param3, const LangStringConverter &param4);
81 	LangString getKey(const std::string &key, const std::string &value, const LangStringConverter &param1,
82 		const LangStringConverter &param2, const LangStringConverter &param3, const LangStringConverter &param4,
83 		const LangStringConverter &param5);
84 }
85 
86 #endif // __INCLUDE_LangText_INCLUDE__
87