BOOL fsLangMgr::LoadLng(int iIndex) { try { CStdioFile file (m_strLngFolder + m_vLngFiles [iIndex].strFileName, CFile::modeRead | CFile::typeText | CFile::shareDenyNone); CString str; do { if (FALSE == file.ReadString (str)) return FALSE; if (str.GetLength () && str [0] != LNG_COMMENT_CHAR) break; } while (TRUE); m_vStrings.clear (); while (file.ReadString (str)) { if (str.GetLength () == 0 || str [0] == LNG_COMMENT_CHAR) continue; PreprocessLanguageString (str); m_vStrings.add (str); } m_iCurLng = iIndex; return m_vStrings.size () != 0; } catch (const std::exception& ex) { ASSERT (FALSE); vmsLogger::WriteLog("fsLangMgr::LoadLng " + tstring(ex.what())); return FALSE; } catch (...) { ASSERT (FALSE); vmsLogger::WriteLog("fsLangMgr::LoadLng unknown exception"); return FALSE; } }
void fsLangMgr::LoadBuiltInLngStrings() { HGLOBAL hResource; HRSRC hRes; LPBYTE pbRes; hRes = FindResource (NULL, MAKEINTRESOURCE (IDR_ENG_LNGSTRINGS), "RT_LNGSTRINGS"); if (hRes == NULL) return; hResource = LoadResource (NULL, hRes); pbRes = (LPBYTE) LockResource (hResource); LPBYTE pbResEnd = pbRes + SizeofResource (NULL, hRes); LPCSTR psz = (LPCSTR) pbRes; LPCSTR pszE = (LPCSTR) pbResEnd; bool bLngNamePassed = false; while (psz < pszE) { CString str; while (psz < pszE && *psz != '\n' && *psz != '\r') str += *psz++; while (psz < pszE && (*psz == '\n' || *psz == '\r')) psz++; if (str == "" || str [0] == LNG_COMMENT_CHAR) continue; if (bLngNamePassed == false) { bLngNamePassed = true; continue; } PreprocessLanguageString (str); m_vBuiltInStrings.add (str); } }
BOOL fsLangMgr::LoadLng(int iIndex) { vmsFile file; if (file.open (m_vLngFiles [iIndex].strFileName.c_str ())) { std::string str; do { if (FALSE == file.read (str)) return FALSE; if (str.length () && str [0] != LNG_COMMENT_CHAR) break; } while (TRUE); m_vStrings.clear (); while (file.read (str)) { if (str.length () == 0 || str [0] == LNG_COMMENT_CHAR) continue; PreprocessLanguageString (str); m_vStrings.add (str); } m_iCurLng = iIndex; return m_vStrings.size () != 0; } return FALSE; }