1.1 --- a/core/Translator.cpp Thu Apr 05 07:59:27 2007 +0000
1.2 +++ b/core/Translator.cpp Thu Apr 05 10:55:40 2007 +0000
1.3 @@ -580,11 +580,11 @@
1.4 ** MAIN TRANSLATOR CODE **
1.5 **************************/
1.6
1.7 -Translator::Translator()
1.8 +Translator::Translator() : m_ServerLang(LANGUAGE_ENGLISH)
1.9 {
1.10 m_pStringTab = new BaseStringTable(2048);
1.11 m_pLCodeLookup = sm_trie_create();
1.12 - strncopy(m_ServerLangCode, "en", sizeof(m_ServerLangCode));
1.13 + strncopy(m_InitialLang, "en", sizeof(m_InitialLang));
1.14 }
1.15
1.16 Translator::~Translator()
1.17 @@ -620,10 +620,12 @@
1.18 UTIL_Format(error, maxlength, "Language code \"%s\" is not registered", value);
1.19 return ConfigResult_Reject;
1.20 }
1.21 +
1.22 + m_ServerLang = index;
1.23 + } else {
1.24 + strncopy(m_InitialLang, value, sizeof(m_InitialLang));
1.25 }
1.26
1.27 - strncopy(m_ServerLangCode, value, sizeof(m_ServerLangCode));
1.28 -
1.29 return ConfigResult_Accept;
1.30 }
1.31
1.32 @@ -712,6 +714,18 @@
1.33 g_Logger.LogError("[SM] Parse error (line %d, column %d): %s", line, col, str_err);
1.34 }
1.35
1.36 + void *serverLang;
1.37 +
1.38 + if (!sm_trie_retrieve(m_pLCodeLookup, m_InitialLang, &serverLang))
1.39 + {
1.40 + g_Logger.LogError("Server language was set to bad language \"%s\" -- reverting to English", m_InitialLang);
1.41 +
1.42 + strncopy(m_InitialLang, "en", sizeof(m_InitialLang));
1.43 + m_ServerLang = LANGUAGE_ENGLISH;
1.44 + }
1.45 +
1.46 + m_ServerLang = reinterpret_cast<unsigned int>(serverLang);
1.47 +
1.48 if (!m_Languages.size())
1.49 {
1.50 g_Logger.LogError("[SM] Fatal error, no languages found! Translation will not work.");
1.51 @@ -829,15 +843,11 @@
1.52 }
1.53
1.54 /* Using server lang temporarily until client lang stuff is implemented */
1.55 - unsigned int serverLang;
1.56 - if (!sm_trie_retrieve(m_pLCodeLookup, m_ServerLangCode, (void **)&serverLang))
1.57 - {
1.58 - return Trans_BadLanguage;
1.59 - }
1.60 + unsigned int serverLang = GetServerLanguage();
1.61
1.62 Translation trans;
1.63 TransError err;
1.64 - if ((err=g_pCorePhrases->GetTranslation(phrase, serverLang, &trans)) != Trans_Okay)
1.65 + if ((err=g_pCorePhrases->GetTranslation(phrase, m_ServerLang, &trans)) != Trans_Okay)
1.66 {
1.67 return err;
1.68 }
1.69 @@ -852,20 +862,7 @@
1.70 return Trans_Okay;
1.71 }
1.72
1.73 -unsigned int Translator::GetServerLanguageCode()
1.74 +unsigned int Translator::GetServerLanguage()
1.75 {
1.76 - void *serverLang;
1.77 -
1.78 - /* :TODO: there is absolutely no reason this shouldn't be cached
1.79 - * I don't even know why it was returning a string originally
1.80 - */
1.81 -
1.82 - if (!sm_trie_retrieve(m_pLCodeLookup, m_ServerLangCode, &serverLang))
1.83 - {
1.84 - g_Logger.LogError("Server language was set to bad language \"%s\" -- reverting to English", m_ServerLangCode);
1.85 - strncopy(m_ServerLangCode, "en", sizeof(m_ServerLangCode));
1.86 - return LANGUAGE_ENGLISH;
1.87 - }
1.88 -
1.89 - return (unsigned int)serverLang;
1.90 + return m_ServerLang;
1.91 }