MCPcopy Create free account
hub / github.com/alliedmodders/sourcemod / RebuildLanguageDatabase

Method RebuildLanguageDatabase

core/logic/Translator.cpp:824–872  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

822}
823
824void Translator::RebuildLanguageDatabase()
825{
826 /* Erase everything we have */
827 m_LCodeLookup.clear();
828 m_LAliases.clear();
829 m_pStringTab->Reset();
830
831 for (size_t i=0; i<m_Languages.size(); i++)
832 {
833 delete m_Languages[i];
834 }
835 m_Languages.clear();
836
837 /* Start anew */
838 char path[PLATFORM_MAX_PATH];
839 g_pSM->BuildPath(Path_SM, path, sizeof(path), "configs/languages.cfg");
840
841 SMCError err;
842 SMCStates states;
843 if ((err=textparsers->ParseFile_SMC(path, this, &states)) != SMCError_Okay)
844 {
845 const char *str_err = textparsers->GetSMCErrorString(err);
846 if (!str_err)
847 {
848 str_err = m_CustomError.c_str();
849 }
850
851 logger->LogError("[SM] Failed to parse language header file: \"%s\"", path);
852 logger->LogError("[SM] Parse error (line %d, column %d): %s", states.line, states.col, str_err);
853 }
854
855 if (!m_LCodeLookup.retrieve(m_InitialLang, &m_ServerLang))
856 {
857 logger->LogError("Server language was set to bad language \"%s\" -- reverting to English", m_InitialLang);
858
859 strncopy(m_InitialLang, "en", sizeof(m_InitialLang));
860 m_ServerLang = SOURCEMOD_LANGUAGE_ENGLISH;
861 }
862
863 if (!m_Languages.size())
864 {
865 logger->LogError("[SM] Fatal error, no languages found! Translation will not work.");
866 }
867
868 for (size_t i=0; i<m_Files.size(); i++)
869 {
870 m_Files[i]->ReparseFile();
871 }
872}
873
874void Translator::ReadSMC_ParseStart()
875{

Callers

nothing calls this directly

Calls 11

BuildPathMethod · 0.80
ReparseFileMethod · 0.80
strncopyFunction · 0.70
clearMethod · 0.45
ResetMethod · 0.45
sizeMethod · 0.45
ParseFile_SMCMethod · 0.45
GetSMCErrorStringMethod · 0.45
c_strMethod · 0.45
LogErrorMethod · 0.45
retrieveMethod · 0.45

Tested by

no test coverage detected