bool CPreferences::IsLanguageSupported(LANGID lidSelected, bool bUpdateBefore){ InitLanguages(GetMuleDirectory(EMULE_INSTLANGDIR), GetMuleDirectory(EMULE_ADDLANGDIR, false), bUpdateBefore); if (lidSelected == LANGID_EN_US) return true; const SLanguage* pLang = _aLanguages; for (;pLang->lid;pLang++){ if (pLang->lid == lidSelected && pLang->bSupported){ bool bResult = CheckLangDLLVersion(GetMuleDirectory(EMULE_INSTLANGDIR) + CString(pLang->pszISOLocale) + _T(".dll")); return bResult || CheckLangDLLVersion(GetMuleDirectory(EMULE_ADDLANGDIR, false) + CString(pLang->pszISOLocale) + _T(".dll")); } } return false; }
static bool LoadLangLib(const CString& rstrLangDir, LANGID lid) { const SLanguage* pLangs = _aLanguages; if (pLangs){ while (pLangs->lid){ if (pLangs->bSupported && pLangs->lid == lid){ FreeLangDLL(); bool bLoadedLib = false; if (pLangs->lid == LANGID_EN_US){ _hLangDLL = NULL; bLoadedLib = true; } else{ CString strLangDLL = rstrLangDir; strLangDLL += pLangs->pszISOLocale; strLangDLL += _T(".dll"); if (CheckLangDLLVersion(strLangDLL)){ _hLangDLL = LoadLibrary(strLangDLL); if (_hLangDLL) bLoadedLib = true; } } if (bLoadedLib) return true; break; } pLangs++; } } return false; }
bool CPreferences::IsLanguageSupported(LANGID lidSelected, bool bUpdateBefore){ InitLanguages(GetLangDir(), bUpdateBefore); if (lidSelected == LANGID_EN_US) return true; const SLanguage* pLang = _aLanguages; for (;pLang->lid;pLang++){ if (pLang->lid == lidSelected && pLang->bSupported){ return CheckLangDLLVersion(GetLangDir()+CString(pLang->pszISOLocale) + _T(".dll")); } } return false; }