Support for 3-letter language codes (bug 3526, r=ds).
This commit is contained in:
parent
ebed45a0f6
commit
08e2fc8deb
@ -487,7 +487,7 @@ SMCResult CPhraseFile::ReadSMC_KeyValue(const SMCStates *states, const char *key
|
|||||||
else
|
else
|
||||||
{
|
{
|
||||||
size_t len = strlen(key);
|
size_t len = strlen(key);
|
||||||
if (len != 2)
|
if (len < 2 || len > 3)
|
||||||
{
|
{
|
||||||
ParseWarning("Ignoring translation to invalid language \"%s\" on line %d.", key, states->line);
|
ParseWarning("Ignoring translation to invalid language \"%s\" on line %d.", key, states->line);
|
||||||
return SMCResult_Continue;
|
return SMCResult_Continue;
|
||||||
@ -936,7 +936,7 @@ SMCResult Translator::ReadSMC_KeyValue(const SMCStates *states, const char *key,
|
|||||||
{
|
{
|
||||||
size_t len = strlen(key);
|
size_t len = strlen(key);
|
||||||
|
|
||||||
if (len != 2)
|
if (len < 2 || len > 3)
|
||||||
{
|
{
|
||||||
g_Logger.LogError("[SM] Warning encountered parsing languages.cfg file.");
|
g_Logger.LogError("[SM] Warning encountered parsing languages.cfg file.");
|
||||||
g_Logger.LogError("[SM] Invalid language code \"%s\" is being ignored.", key);
|
g_Logger.LogError("[SM] Invalid language code \"%s\" is being ignored.", key);
|
||||||
@ -957,9 +957,7 @@ bool Translator::AddLanguage(const char *langcode, const char *description)
|
|||||||
Language *pLanguage = new Language;
|
Language *pLanguage = new Language;
|
||||||
unsigned int idx = m_Languages.size();
|
unsigned int idx = m_Languages.size();
|
||||||
|
|
||||||
pLanguage->m_code2[0] = langcode[0];
|
UTIL_Format(pLanguage->m_code2, sizeof(pLanguage->m_code2), "%s", langcode);
|
||||||
pLanguage->m_code2[1] = langcode[1];
|
|
||||||
pLanguage->m_code2[2] = langcode[2];
|
|
||||||
pLanguage->m_FullName = m_pStringTab->AddString(description);
|
pLanguage->m_FullName = m_pStringTab->AddString(description);
|
||||||
|
|
||||||
sm_trie_insert(m_pLCodeLookup, langcode, reinterpret_cast<void *>(idx));
|
sm_trie_insert(m_pLCodeLookup, langcode, reinterpret_cast<void *>(idx));
|
||||||
|
@ -57,7 +57,7 @@ enum PhraseParseState
|
|||||||
|
|
||||||
struct Language
|
struct Language
|
||||||
{
|
{
|
||||||
char m_code2[3];
|
char m_code2[4];
|
||||||
int m_FullName;
|
int m_FullName;
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -159,7 +159,7 @@ private:
|
|||||||
bool m_InLanguageSection;
|
bool m_InLanguageSection;
|
||||||
String m_CustomError;
|
String m_CustomError;
|
||||||
unsigned int m_ServerLang;
|
unsigned int m_ServerLang;
|
||||||
char m_InitialLang[3];
|
char m_InitialLang[4];
|
||||||
};
|
};
|
||||||
|
|
||||||
/* Nice little wrapper to handle error logging and whatnot */
|
/* Nice little wrapper to handle error logging and whatnot */
|
||||||
|
Loading…
Reference in New Issue
Block a user