DDNet documentation
Loading...
Searching...
No Matches
localization.h
Go to the documentation of this file.
1/* (c) Magnus Auvinen. See licence.txt in the root of the distribution for more information. */
2/* If you are missing that file, acquire a complete release at teeworlds.com. */
3#ifndef GAME_LOCALIZATION_H
4#define GAME_LOCALIZATION_H
5
7
8#include <string>
9#include <vector>
10
12{
13public:
14 CLanguage() = default;
15 CLanguage(const char *pName, const char *pFilename, int Code, const std::vector<std::string> &vLanguageCodes) :
16 m_Name(pName), m_Filename(pFilename), m_CountryCode(Code), m_vLanguageCodes(vLanguageCodes) {}
17
18 std::string m_Name;
19 std::string m_Filename;
24 std::vector<std::string> m_vLanguageCodes;
25
26 bool operator<(const CLanguage &Other) const { return m_Name < Other.m_Name; }
27};
28
30{
31 class CString
32 {
33 public:
34 unsigned m_Hash;
35 unsigned m_ContextHash;
36 const char *m_pReplacement;
37
38 CString() = default;
39 CString(unsigned Hash, unsigned ContextHash, const char *pReplacement) :
40 m_Hash(Hash), m_ContextHash(ContextHash), m_pReplacement(pReplacement)
41 {
42 }
43
44 bool operator<(const CString &Other) const { return m_Hash < Other.m_Hash || (m_Hash == Other.m_Hash && m_ContextHash < Other.m_ContextHash); }
45 bool operator<=(const CString &Other) const { return m_Hash < Other.m_Hash || (m_Hash == Other.m_Hash && m_ContextHash <= Other.m_ContextHash); }
46 bool operator==(const CString &Other) const { return m_Hash == Other.m_Hash && m_ContextHash == Other.m_ContextHash; }
47 };
48
49 std::vector<CLanguage> m_vLanguages;
50 std::vector<CString> m_vStrings;
52
53public:
54 void LoadIndexfile(class IStorage *pStorage, class IConsole *pConsole);
55 const std::vector<CLanguage> &Languages() const { return m_vLanguages; }
56 void SelectDefaultLanguage(class IConsole *pConsole, char *pFilename, size_t Length) const;
57
58 bool Load(const char *pFilename, class IStorage *pStorage, class IConsole *pConsole);
59
60 void AddString(const char *pOrgStr, const char *pNewStr, const char *pContext);
61 const char *FindString(unsigned Hash, unsigned ContextHash) const;
62};
63
65
66[[gnu::format_arg(1)]] extern const char *Localize(const char *pStr, const char *pContext = "");
67
68#endif
Definition memheap.h:11
bool operator<(const CLanguage &Other) const
Definition localization.h:26
std::string m_Name
Definition localization.h:18
std::string m_Filename
Definition localization.h:19
int m_CountryCode
Definition localization.h:23
std::vector< std::string > m_vLanguageCodes
Definition localization.h:24
CLanguage(const char *pName, const char *pFilename, int Code, const std::vector< std::string > &vLanguageCodes)
Definition localization.h:15
CLanguage()=default
CString(unsigned Hash, unsigned ContextHash, const char *pReplacement)
Definition localization.h:39
const char * m_pReplacement
Definition localization.h:36
unsigned m_ContextHash
Definition localization.h:35
bool operator<(const CString &Other) const
Definition localization.h:44
bool operator<=(const CString &Other) const
Definition localization.h:45
bool operator==(const CString &Other) const
Definition localization.h:46
unsigned m_Hash
Definition localization.h:34
Definition localization.h:30
const char * FindString(unsigned Hash, unsigned ContextHash) const
Definition localization.cpp:248
void SelectDefaultLanguage(class IConsole *pConsole, char *pFilename, size_t Length) const
Definition localization.cpp:110
CHeap m_StringsHeap
Definition localization.h:51
void LoadIndexfile(class IStorage *pStorage, class IConsole *pConsole)
Definition localization.cpp:21
void AddString(const char *pOrgStr, const char *pNewStr, const char *pContext)
Definition localization.cpp:243
const std::vector< CLanguage > & Languages() const
Definition localization.h:55
std::vector< CString > m_vStrings
Definition localization.h:50
std::vector< CLanguage > m_vLanguages
Definition localization.h:49
bool Load(const char *pFilename, class IStorage *pStorage, class IConsole *pConsole)
Definition localization.cpp:169
Definition console.h:22
Definition storage.h:21
const char * Localize(const char *pStr, const char *pContext="")
Definition localization.cpp:15
CLocalizationDatabase g_Localization
Definition localization.cpp:271