Index: src/ch/ResourceManager.cpp =================================================================== diff -u -N -r7a096cad617f85582370a1c788c45442d39efc8c -r17f490bbfa29d6b73a2673ac4307a4d49cc6c678 --- src/ch/ResourceManager.cpp (.../ResourceManager.cpp) (revision 7a096cad617f85582370a1c788c45442d39efc8c) +++ src/ch/ResourceManager.cpp (.../ResourceManager.cpp) (revision 17f490bbfa29d6b73a2673ac4307a4d49cc6c678) @@ -202,10 +202,44 @@ size_t stLen = _tcslen(pszValue); tchar_t* pszStr = new tchar_t[stLen + 1]; _tcscpy(pszStr, pszValue); + + // convert escape strings into escape sequences + CLangData::UnescapeString(pszStr); + pLangData->m_mStrings.insert(strings_map::value_type(pLangData->m_uiSectionID << 16 | uiVal, pszStr)); } } +void CLangData::UnescapeString(tchar_t* pszData) +{ + tchar_t* pszOut = pszData; + while (*pszData != 0) + { + if (*pszData == _T('\\')) + { + pszData++; + switch(*pszData++) + { + case _T('t'): + *pszOut++ = _T('\t'); + break; + case _T('r'): + *pszOut++ = _T('\r'); + break; + case _T('n'): + *pszOut++ = _T('\n'); + break; + default: + *pszOut++ = _T('\\'); + } + } + else + *pszOut++ = *pszData++; + } + *pszOut = _T('\0'); + +} + bool CLangData::ReadTranslation(PCTSTR pszFile, bool bUpdate) { try