18#ifndef _LANGUAGE_MGR_H
19#define _LANGUAGE_MGR_H
26#include <unordered_map>
45 typedef std::unordered_map<WordKey, WordList>
WordsMap;
47 typedef std::unordered_multimap<uint32, LanguageDesc>
LanguagesMap;
66 bool IsLanguageExist(
uint32 languageId)
const;
75 for (LanguagesMap::value_type
const& pair : _langsMap)
76 if (!callback(pair.first, pair.second))
88 void LoadLanguagesWords();
91 WordList
const* FindWordGroup(
uint32 language,
uint32 wordLen)
const;
97#define sLanguageMgr LanguageMgr::instance()
std::pair< uint32, uint8 > WordKey
bool ForEachLanguage(T callback)
std::unordered_map< WordKey, WordList > WordsMap
LanguageMgr(LanguageMgr &&right)=delete
LanguageMgr & operator=(LanguageMgr &&right)=delete
LanguageMgr(LanguageMgr const &right)=delete
std::vector< char const * > WordList
LanguageMgr & operator=(LanguageMgr const &right)=delete
std::unordered_multimap< uint32, LanguageDesc > LanguagesMap
static SpellMgr * instance()
Utility class to enable range for loop syntax for multimap.equal_range uses.
friend bool operator==(LanguageDesc const &left, LanguageDesc const &right)=default