Index: src/plugin/PluginDictionary.cpp |
=================================================================== |
deleted file mode 100644 |
--- a/src/plugin/PluginDictionary.cpp |
+++ /dev/null |
@@ -1,296 +0,0 @@ |
-#include "PluginStdAfx.h" |
- |
-#include "PluginDictionary.h" |
-#include "PluginClient.h" |
-#include "PluginSettings.h" |
-#include "PluginMutex.h" |
- |
- |
-class CPluginDictionaryLock : public CPluginMutex |
-{ |
-public: |
- CPluginDictionaryLock() : CPluginMutex("DictionaryFile", PLUGIN_ERROR_MUTEX_DICTIONARY_FILE) {} |
- ~CPluginDictionaryLock() {} |
-}; |
- |
- |
-CPluginDictionary* CPluginDictionary::s_instance = NULL; |
- |
-CComAutoCriticalSection CPluginDictionary::s_criticalSectionDictionary; |
- |
- |
-CPluginDictionary::CPluginDictionary(bool forceCreate) : m_dictionaryLanguage("en") |
-{ |
- DEBUG_GENERAL("*** Initializing dictionary") |
- |
- m_dictionaryConversions[L"UPDATE"] = L"MENU_UPDATE"; |
- m_dictionaryConversions[L"ABOUT"] = L"MENU_ABOUT"; |
- m_dictionaryConversions[L"FAQ"] = L"MENU_FAQ"; |
- m_dictionaryConversions[L"FEEDBACK"] = L"MENU_FEEDBACK"; |
- m_dictionaryConversions[L"INVITE_FRIENDS"] = L"MENU_INVITE_FRIENDS"; |
- m_dictionaryConversions[L"UPGRADE"] = L"MENU_UPGRADE"; |
- m_dictionaryConversions[L"SETTINGS"] = L"MENU_SETTINGS"; |
- m_dictionaryConversions[L"ENABLE"] = L"MENU_ENABLE"; |
- m_dictionaryConversions[L"DISABLE"] = L"MENU_DISABLE"; |
- m_dictionaryConversions[L"DISABLE_ON"] = L"MENU_DISABLE_ON"; |
- |
- m_dictionaryConversions[L"YES"] = L"GENERAL_YES"; |
- m_dictionaryConversions[L"NO"] = L"GENERAL_NO"; |
- m_dictionaryConversions[L"CANCEL"] = L"GENERAL_CANCEL"; |
- |
- CString lang = CPluginSettings::GetSystemLanguage(); |
- |
- bool isExisting = true; |
- { |
- CPluginDictionaryLock lock; |
- if (lock.IsLocked()) |
- { |
- std::ifstream is; |
- is.open(CPluginSettings::GetDataPath(DICTIONARY_INI_FILE), std::ios_base::in); |
- if (!is.is_open()) |
- { |
- DEBUG_DICTIONARY("Dictionary::Constructor - Exists:no") |
- isExisting = false; |
- } |
- else |
- { |
- DEBUG_DICTIONARY("Dictionary::Constructor - Exists:yes") |
- is.close(); |
- } |
- } |
- } |
- |
- if (!isExisting || forceCreate) |
- { |
- Create(forceCreate); |
- } |
-} |
- |
- |
-CPluginDictionary::~CPluginDictionary() |
-{ |
- s_criticalSectionDictionary.Lock(); |
- { |
- s_instance = NULL; |
- } |
- s_criticalSectionDictionary.Unlock(); |
-} |
- |
- |
-CPluginDictionary* CPluginDictionary::GetInstance(bool forceCreate) |
-{ |
- CPluginDictionary* instance = NULL; |
- |
- s_criticalSectionDictionary.Lock(); |
- { |
- if (!s_instance) |
- { |
- DEBUG_DICTIONARY("Dictionary::GetInstance - creating") |
- s_instance = new CPluginDictionary(forceCreate); |
- } |
- |
- instance = s_instance; |
- } |
- s_criticalSectionDictionary.Unlock(); |
- |
- return instance; |
-} |
- |
- |
-bool CPluginDictionary::IsLanguageSupported(const CString& lang) |
-{ |
- bool hasLanguage = false; |
- |
- CPluginDictionaryLock lock; |
- if (lock.IsLocked()) |
- { |
- CPluginIniFileW iniFile(CPluginSettings::GetDataPath(DICTIONARY_INI_FILE)); |
- |
- iniFile.Read(); |
- |
- hasLanguage = iniFile.HasSection(lang); |
- } |
- |
- return hasLanguage; |
-} |
- |
- |
-void CPluginDictionary::SetLanguage(const CString& lang) |
-{ |
- DEBUG_GENERAL(L"*** Loading dictionary:" + CPluginSettings::GetDataPath(DICTIONARY_INI_FILE)) |
- |
- CPluginDictionaryLock lock; |
- if (lock.IsLocked()) |
- { |
- CPluginIniFileW iniFile(CPluginSettings::GetDataPath(DICTIONARY_INI_FILE)); |
- |
- if (!iniFile.Read()) |
- { |
- DEBUG_ERROR_LOG(iniFile.GetLastError(), PLUGIN_ERROR_DICTIONARY, PLUGIN_ERROR_DICTIONARY_READ_FILE, "Dictionary::SetLanguage - Read") |
- return; |
- } |
- |
- s_criticalSectionDictionary.Lock(); |
- { |
- if (iniFile.HasSection(lang)) |
- { |
- m_dictionaryLanguage = lang; |
- |
- m_dictionary = iniFile.GetSectionData(lang); |
- |
- CString dicEl; |
- dicEl.Format(L"%d", m_dictionary.size()); |
- |
- DEBUG_GENERAL(L"*** Using dictionary section [" + lang + "] - " + dicEl + L" elements") |
- } |
- else |
- { |
- m_dictionary = iniFile.GetSectionData(L"en"); |
- m_dictionaryLanguage = L"en"; |
- |
- CString dicEl; |
- dicEl.Format(L"%d", m_dictionary.size()); |
- |
- DEBUG_GENERAL(L"*** Using dictionary section [en] instead of [" + lang + "] - " + dicEl + L" elements") |
- } |
- |
- // Dictionary conversions |
- for (std::map<CString,CString>::iterator it = m_dictionaryConversions.begin(); it != m_dictionaryConversions.end(); ++it) |
- { |
- CPluginIniFileW::TSectionData::iterator itDic = m_dictionary.find(it->first); |
- if (itDic != m_dictionary.end()) |
- { |
- m_dictionary[it->second] = itDic->second; |
- } |
- } |
- |
-#ifdef ENABLE_DEBUG_DICTIONARY |
- for (CPluginIniFileW::TSectionData::iterator it = m_dictionary.begin(); it != m_dictionary.end(); ++it) |
- { |
- DEBUG_DICTIONARY("- " + it->first + " -> " + it->second) |
- } |
-#endif |
- } |
- s_criticalSectionDictionary.Unlock(); |
- } |
-} |
- |
- |
-CString CPluginDictionary::Lookup(const CString& key) |
-{ |
- CString value = key; |
- |
- s_criticalSectionDictionary.Lock(); |
- { |
- CPluginIniFileW::TSectionData::iterator it = m_dictionary.find(key); |
- if (it != m_dictionary.end()) |
- { |
- value = it->second; |
- } |
-#ifdef DEBUG_ERROR_LOG |
- else |
- { |
- DWORD dwErrorCode = 0; |
- |
- dwErrorCode |= m_dictionaryLanguage.GetAt(0) << 24; |
- dwErrorCode |= m_dictionaryLanguage.GetAt(1) << 16; |
- dwErrorCode |= key.GetAt(0) << 8; |
- dwErrorCode |= key.GetAt(1); |
- |
- DEBUG_ERROR_LOG(dwErrorCode, PLUGIN_ERROR_DICTIONARY, PLUGIN_ERROR_DICTIONARY_LOOKUP, L"Dictionary::Lookup - " + key) |
- } |
-#endif |
- } |
- s_criticalSectionDictionary.Unlock(); |
- |
- DEBUG_DICTIONARY("Dictionary::Lookup key:" + key + " value:" + value) |
- |
- return value; |
-} |
- |
- |
-void CPluginDictionary::Create(bool forceCreate) |
-{ |
- DEBUG_GENERAL(L"*** Creating dictionary:" + CPluginSettings::GetDataPath(DICTIONARY_INI_FILE)) |
- |
- CPluginDictionaryLock lock; |
- if (lock.IsLocked()) |
- { |
- CPluginIniFileW iniFile(CPluginSettings::GetDataPath(DICTIONARY_INI_FILE)); |
- |
- CPluginSettings* settings = CPluginSettings::GetInstance(); |
- |
- if (forceCreate) |
- { |
- } |
- else if (iniFile.Exists() || !settings->IsMainProcess()) |
- { |
- return; |
- } |
- |
- int dictionaryVersion = 1; |
- |
- s_criticalSectionDictionary.Lock(); |
- { |
- m_dictionary.clear(); |
- |
-#if (defined PRODUCT_ADBLOCKPLUS) |
- |
- // Popup menu |
- m_dictionary["MENU_UPDATE"] = "Update Adblock Plus to newest version"; |
- m_dictionary["MENU_ABOUT"] = "About Adblock Plus"; |
- m_dictionary["MENU_ACTIVATE"] = "Activate Adblock Plus"; |
- m_dictionary["MENU_FAQ"] = "Frequently Asked Questions"; |
- m_dictionary["MENU_FEEDBACK"] = "Feedback"; |
- m_dictionary["MENU_INVITE_FRIENDS"] = "Invite friends"; |
- m_dictionary["MENU_SETTINGS"] = "Settings"; |
- m_dictionary["MENU_ENABLE"] = "Enable Adblock Plus"; |
- m_dictionary["MENU_DISABLE"] = "Disable Adblock Plus"; |
- m_dictionary["MENU_DISABLE_ON"] = "Disable Adblock Plus on..."; |
- |
- // Update dialog |
- m_dictionary["UPDATE_TITLE"] = "Update Adblock Plus"; |
- m_dictionary["UPDATE_NEW_VERSION_EXISTS"] = "A new version of Adblock Plus is available"; |
- m_dictionary["UPDATE_DO_YOU_WISH_TO_DOWNLOAD"] = "Do you wish to download it now?"; |
- |
- // Download update dialog |
- m_dictionary["DOWNLOAD_UPDATE_TITLE"] = "Download Adblock Plus"; |
- m_dictionary["DOWNLOAD_UPDATE_BUTTON"] = "Update"; |
- m_dictionary["DOWNLOAD_PLEASE_WAIT"] = "Please wait..."; |
- m_dictionary["DOWNLOAD_UPDATE_ERROR_TEXT"] = "Error downloading installer"; |
- m_dictionary["DOWNLOAD_UPDATE_SUCCESS_TEXT"] = "If you choose to update Adblock Plus, your Internet Explorer will close before installation"; |
- |
- // Various dialogs |
- m_dictionary["ERROR_STATUS_BAR_DISABLED"] = "The plugin menu is located in the statusbar, would you like to enable Internet Explorer's statusbar?"; |
- m_dictionary["ERROR_STATUS_BAR_DISABLED_TITLE"] = "Enable status bar?"; |
- m_dictionary["ERROR_CAN_NOT_ENABLE_STATUS_BAR"] = "The plugin menu is located in the statusbar. Please enable it under View->Toolbars->Status bar"; |
- m_dictionary["ERROR_CAN_NOT_ENABLE_STATUS_BAR_TITLE"] = "Please enable status bar"; |
- |
-#endif |
- // General texts |
- m_dictionary["GENERAL_YES"] = "Yes"; |
- m_dictionary["GENERAL_NO"] = "No"; |
- m_dictionary["GENERAL_CANCEL"] = "Cancel"; |
- m_dictionary["GENERAL_CLOSE"] = "Close"; |
- |
- iniFile.UpdateSection("en", m_dictionary); |
- } |
- s_criticalSectionDictionary.Unlock(); |
- |
- if (iniFile.Write()) |
- { |
- CPluginSettings* settings = CPluginSettings::GetInstance(); |
- |
- settings->SetValue(SETTING_DICTIONARY_VERSION, dictionaryVersion); |
- settings->Write(); |
- } |
- else |
- { |
- DEBUG_ERROR_LOG(iniFile.GetLastError(), PLUGIN_ERROR_DICTIONARY, PLUGIN_ERROR_DICTIONARY_CREATE_FILE, L"Dictionary::Create - Write") |
- } |
-#ifdef PRODUCT_ADBLOCKPLUS |
- // Delete old |
- ::DeleteFile(CPluginSettings::GetDataPath(L"dictionary.ini")); |
-#endif |
- } |
-} |