core/Translator.cpp
changeset 661 5c0988b9bf0c
parent 653 ef60870067ff
child 663 b526b82e256e
     1.1 --- a/core/Translator.cpp	Tue Apr 03 07:02:27 2007 +0000
     1.2 +++ b/core/Translator.cpp	Thu Apr 05 03:02:00 2007 +0000
     1.3 @@ -584,6 +584,7 @@
     1.4  {
     1.5  	m_pStringTab = new BaseStringTable(2048);
     1.6  	m_pLCodeLookup = sm_trie_create();
     1.7 +	strncopy(m_ServerLangCode, "en", sizeof(m_ServerLangCode));
     1.8  }
     1.9  
    1.10  Translator::~Translator()
    1.11 @@ -603,6 +604,17 @@
    1.12  	delete m_pStringTab;
    1.13  }
    1.14  
    1.15 +CoreConfigErr Translator::OnSourceModConfigChanged(const char *option, const char *value)
    1.16 +{
    1.17 +	if (strcasecmp(option, "ServerLang") == 0)
    1.18 +	{
    1.19 +		strncopy(m_ServerLangCode, value, sizeof(m_ServerLangCode));
    1.20 +		return CoreConfig_Okay;
    1.21 +	}
    1.22 +
    1.23 +	return CoreConfig_InvalidOption;
    1.24 +}
    1.25 +
    1.26  void Translator::OnSourceModAllInitialized()
    1.27  {
    1.28  	AddLanguage("en", "English");
    1.29 @@ -801,9 +813,16 @@
    1.30  		return Trans_BadPhraseFile;
    1.31  	}
    1.32  
    1.33 +	/* Using server lang temporarily until client lang stuff is implemented */
    1.34 +	unsigned int serverLang;
    1.35 +	if (!sm_trie_retrieve(m_pLCodeLookup, m_ServerLangCode, (void **)&serverLang))
    1.36 +	{
    1.37 +		return Trans_BadLanguage;
    1.38 +	}
    1.39 +
    1.40  	Translation trans;
    1.41  	TransError err;
    1.42 -	if ((err=g_pCorePhrases->GetTranslation(phrase, 0, &trans)) != Trans_Okay)
    1.43 +	if ((err=g_pCorePhrases->GetTranslation(phrase, serverLang, &trans)) != Trans_Okay)
    1.44  	{
    1.45  		return err;
    1.46  	}
    1.47 @@ -817,3 +836,8 @@
    1.48  
    1.49  	return Trans_Okay;
    1.50  }
    1.51 +
    1.52 +const char *Translator::GetServerLanguageCode() const
    1.53 +{
    1.54 +	return m_ServerLangCode;
    1.55 +}