From: <arn...@us...> - 2008-01-23 21:54:46
|
Revision: 976 http://dcplusplus.svn.sourceforge.net/dcplusplus/?rev=976&view=rev Author: arnetheduck Date: 2008-01-23 13:54:41 -0800 (Wed, 23 Jan 2008) Log Message: ----------- Finished dcpp translations Modified Paths: -------------- dcplusplus/trunk/SConstruct dcplusplus/trunk/dcpp/ADLSearch.h dcplusplus/trunk/dcpp/DCPlusPlus.cpp dcplusplus/trunk/dcpp/QueueManager.cpp dcplusplus/trunk/dcpp/ResourceManager.cpp dcplusplus/trunk/dcpp/ResourceManager.h dcplusplus/trunk/dcpp/SettingsManager.cpp dcplusplus/trunk/dcpp/Util.cpp Removed Paths: ------------- dcplusplus/trunk/dcpp/StringDefs.h dcplusplus/trunk/makedefs.py Modified: dcplusplus/trunk/SConstruct =================================================================== --- dcplusplus/trunk/SConstruct 2008-01-23 19:54:44 UTC (rev 975) +++ dcplusplus/trunk/SConstruct 2008-01-23 21:54:41 UTC (rev 976) @@ -165,16 +165,10 @@ pot_bld = Builder (action = Action([pot_args], 'Extracting messages to $TARGET from $SOURCES')) env.Append(BUILDERS = {'PotBuild' : pot_bld}) -from makedefs import convert -env.Command('dcpp/StringDefs.cpp', 'dcpp/StringDefs.h', lambda target, source, env: convert()) -env.Depends('dcpp/StringDefs.cpp', 'dcpp/StringDefs.h') -env.SideEffect('Example.xml', 'dcpp/StringDefs.cpp') - dev.zlib = dev.build('zlib/') dev.bzip2 = dev.build('bzip2/') dev.intl = dev.build('intl/') dev.boost = dev.build('boost/') dev.client = dev.build('dcpp/') -env.Depends(dev.client, 'dcpp/StringDefs.cpp') dev.smartwin = dev.build('smartwin/') dev.win32 = dev.build('win32/') Modified: dcplusplus/trunk/dcpp/ADLSearch.h =================================================================== --- dcplusplus/trunk/dcpp/ADLSearch.h 2008-01-23 19:54:44 UTC (rev 975) +++ dcplusplus/trunk/dcpp/ADLSearch.h 2008-01-23 21:54:41 UTC (rev 976) @@ -31,7 +31,6 @@ #include "Util.h" #include "SettingsManager.h" -#include "ResourceManager.h" #include "StringSearch.h" #include "StringTokenizer.h" @@ -279,7 +278,7 @@ void PrepareDestinationDirectories(DestDirList& destDirVector, DirectoryListing::Directory* root, StringMap& params); // Finalize destination directories void FinalizeDestinationDirectories(DestDirList& destDirVector, DirectoryListing::Directory* root) { - string szDiscard = "<<<" + STRING(ADLS_DISCARD) + ">>>"; + string szDiscard(_("<<<Discard>>>")); // Add non-empty destination directories to the top level for(vector<DestDir>::iterator id = destDirVector.begin(); id != destDirVector.end(); ++id) { Modified: dcplusplus/trunk/dcpp/DCPlusPlus.cpp =================================================================== --- dcplusplus/trunk/dcpp/DCPlusPlus.cpp 2008-01-23 19:54:44 UTC (rev 975) +++ dcplusplus/trunk/dcpp/DCPlusPlus.cpp 2008-01-23 21:54:41 UTC (rev 976) @@ -32,6 +32,7 @@ #include "FavoriteManager.h" #include "SettingsManager.h" #include "FinishedManager.h" +#include "ResourceManager.h" #include "ADLSearch.h" #include "StringTokenizer.h" @@ -89,10 +90,6 @@ _nl_msg_cat_cntr++; } - //if(!SETTING(LANGUAGE_FILE).empty()) { - //ResourceManager::getInstance()->loadLanguage(SETTING(LANGUAGE_FILE)); - //} - FavoriteManager::getInstance()->load(); CryptoManager::getInstance()->loadCertificates(); Modified: dcplusplus/trunk/dcpp/QueueManager.cpp =================================================================== --- dcplusplus/trunk/dcpp/QueueManager.cpp 2008-01-23 19:54:44 UTC (rev 975) +++ dcplusplus/trunk/dcpp/QueueManager.cpp 2008-01-23 21:54:41 UTC (rev 976) @@ -28,7 +28,6 @@ #include "DownloadManager.h" #include "HashManager.h" #include "LogManager.h" -#include "ResourceManager.h" #include "SearchManager.h" #include "ShareManager.h" #include "SimpleXML.h" @@ -977,10 +976,9 @@ } } if(flags & QueueItem::FLAG_MATCH_QUEUE) { - const size_t BUF_SIZE = STRING(MATCHED_FILES).size() + 16; - AutoArray<char> tmp(BUF_SIZE); - snprintf(tmp, BUF_SIZE, CSTRING(MATCHED_FILES), matchListing(dirList)); - LogManager::getInstance()->message(Util::toString(ClientManager::getInstance()->getNicks(user->getCID())) + ": " + string(tmp)); + size_t files = matchListing(dirList); + LogManager::getInstance()->message(str(FN_("%1%: Matched %2% file", "%1%: Matched %2% files", files) % + Util::toString(ClientManager::getInstance()->getNicks(user->getCID())) % files)); } } Modified: dcplusplus/trunk/dcpp/ResourceManager.cpp =================================================================== --- dcplusplus/trunk/dcpp/ResourceManager.cpp 2008-01-23 19:54:44 UTC (rev 975) +++ dcplusplus/trunk/dcpp/ResourceManager.cpp 2008-01-23 21:54:41 UTC (rev 976) @@ -21,53 +21,6 @@ #include "ResourceManager.h" -#include "SimpleXML.h" -#include "File.h" -#include "Text.h" - namespace dcpp { -wstring ResourceManager::wstrings[ResourceManager::LAST]; - -void ResourceManager::loadLanguage(const string& aFile) { - try { - File f(aFile, File::READ, File::OPEN); - SimpleXML xml; - xml.fromXML(f.read()); - - unordered_map<string, int> h; - - for(int i = 0; i < LAST; ++i) { - h[names[i]] = i; - } - - if(xml.findChild("Language")) { - rtl = xml.getBoolChildAttrib("RightToLeft"); - - xml.stepIn(); - if(xml.findChild("Strings")) { - xml.stepIn(); - - while(xml.findChild("String")) { - unordered_map<string, int>::iterator j = h.find(xml.getChildAttrib("Name")); - - if(j != h.end()) { - strings[j->second] = xml.getChildData(); - } - } - createWide(); - } - } - } catch(const Exception&) { - // ... - } -} - -void ResourceManager::createWide() { - for(int i = 0; i < LAST; ++i) { - wstrings[i].clear(); - Text::utf8ToWide(strings[i], wstrings[i]); - } -} - } // namespace dcpp Modified: dcplusplus/trunk/dcpp/ResourceManager.h =================================================================== --- dcplusplus/trunk/dcpp/ResourceManager.h 2008-01-23 19:54:44 UTC (rev 975) +++ dcplusplus/trunk/dcpp/ResourceManager.h 2008-01-23 21:54:41 UTC (rev 976) @@ -23,70 +23,20 @@ namespace dcpp { -#define STRING(x) ResourceManager::getInstance()->getString(ResourceManager::x) -#define CSTRING(x) ResourceManager::getInstance()->getString(ResourceManager::x).c_str() -#define WSTRING(x) ResourceManager::getInstance()->getStringW(ResourceManager::x) -#define CWSTRING(x) ResourceManager::getInstance()->getStringW(ResourceManager::x).c_str() - -#define STRING_I(x) ResourceManager::getInstance()->getString(x) -#define CSTRING_I(x) ResourceManager::getInstance()->getString(x).c_str() -#define WSTRING_I(x) ResourceManager::getInstance()->getStringW(x) -#define CWSTRING_I(x) ResourceManager::getInstance()->getStringW(x).c_str() - -#ifdef UNICODE -#define TSTRING WSTRING -#define TSTRING_I WSTRING_I -#define CTSTRING CWSTRING -#define CTSTRING_I CWSTRING_I -#else -#define TSTRING STRING -#define TSTRING_I STRING_I -#define CTSTRING CSTRING -#define CTSTRING_I CSTRING_I -#endif - class ResourceManager : public Singleton<ResourceManager> { public: -#include "StringDefs.h" - - void loadLanguage(const string& aFile); - const string& getString(Strings x) const { dcassert(x >= 0 && x < LAST); return strings[x]; } - const wstring& getStringW(Strings x) const { dcassert(x >= 0 && x < LAST); return wstrings[x]; } bool isRTL() { return rtl; } - template<typename T> - TStringList getStrings(const T& t) const { - const size_t n = sizeof(t) / sizeof(t[0]); - TStringList ret(n); - for(size_t i = 0; i < n; ++i) { -#ifdef UNICODE - ret[i] = wstrings[t[i]]; -#else - ret[i] = strings[t[i]]; -#endif - } - return ret; - } private: friend class Singleton<ResourceManager>; - typedef unordered_map<string, Strings> NameMap; - typedef NameMap::iterator NameIter; - ResourceManager() : rtl(false) { - createWide(); } virtual ~ResourceManager() { } - static string strings[LAST]; - static wstring wstrings[LAST]; - static string names[LAST]; - bool rtl; - - void createWide(); }; } // namespace dcpp Modified: dcplusplus/trunk/dcpp/SettingsManager.cpp =================================================================== --- dcplusplus/trunk/dcpp/SettingsManager.cpp 2008-01-23 19:54:44 UTC (rev 975) +++ dcplusplus/trunk/dcpp/SettingsManager.cpp 2008-01-23 21:54:41 UTC (rev 976) @@ -20,7 +20,6 @@ #include "DCPlusPlus.h" #include "SettingsManager.h" -#include "ResourceManager.h" #include "SimpleXML.h" #include "Util.h" @@ -154,8 +153,8 @@ setDefault(USE_OEM_MONOFONT, false); setDefault(POPUP_PMS, true); setDefault(MIN_UPLOAD_SPEED, 0); - setDefault(LOG_FORMAT_POST_DOWNLOAD, "%Y-%m-%d %H:%M: %[target]" + STRING(DOWNLOADED_FROM) + "%[userNI] (%[userCID]), %[fileSI] (%[fileSIchunk]), %[speed], %[time], %[fileTR]"); - setDefault(LOG_FORMAT_POST_UPLOAD, "%Y-%m-%d %H:%M: %[source]" + STRING(UPLOADED_TO) + "%[userNI] (%[userCID]), %[fileSI] (%[fileSIchunk]), %[speed], %[time], %[fileTR]"); + setDefault(LOG_FORMAT_POST_DOWNLOAD, "%Y-%m-%d %H:%M: %[target] " + string(_("downloaded from")) + " %[userNI] (%[userCID]), %[fileSI] (%[fileSIchunk]), %[speed], %[time], %[fileTR]"); + setDefault(LOG_FORMAT_POST_UPLOAD, "%Y-%m-%d %H:%M: %[source] " + string(_("uploaded to")) + " %[userNI] (%[userCID]), %[fileSI] (%[fileSIchunk]), %[speed], %[time], %[fileTR]"); setDefault(LOG_FORMAT_MAIN_CHAT, "[%Y-%m-%d %H:%M] %[message]"); setDefault(LOG_FORMAT_PRIVATE_CHAT, "[%Y-%m-%d %H:%M] %[message]"); setDefault(LOG_FORMAT_STATUS, "[%Y-%m-%d %H:%M] %[message]"); Deleted: dcplusplus/trunk/dcpp/StringDefs.h =================================================================== --- dcplusplus/trunk/dcpp/StringDefs.h 2008-01-23 19:54:44 UTC (rev 975) +++ dcplusplus/trunk/dcpp/StringDefs.h 2008-01-23 21:54:41 UTC (rev 976) @@ -1,643 +0,0 @@ -// @Prolog: #include "stdinc.h" -// @Prolog: #include "DCPlusPlus.h" -// @Prolog: #include "ResourceManager.h" -// @Prolog: namespace dcpp { -// @Strings: string ResourceManager::strings[] -// @Names: string ResourceManager::names[] -// @Epilog: } // namespace dcpp - -enum Strings { // @DontAdd - ACTIVE, // "Active" - ACTIVE_SEARCH_STRING, // "Enabled / Search String" - ADD, // "&Add" - ADD_TO_FAVORITES, // "Add To Favorites" - ADDED, // "Added" - ADL_SEARCH, // "Automatic Directory Listing Search" - ADLS_DESTINATION, // "Destination Directory" - ADLS_DISCARD, // "Discard" - ADLS_DOWNLOAD, // "Download Matches" - ADLS_ENABLED, // "Enabled" - ADLS_FULL_PATH, // "Full Path" - ADLS_PROPERTIES, // "ADLSearch Properties" - ADLS_SEARCH_STRING, // "Search String" - ADLS_SIZE_MAX, // "Max FileSize" - ADLS_SIZE_MIN, // "Min FileSize" - ADLS_TYPE, // "Search Type" - ADLS_UNITS, // "Size Type" - ALL_DOWNLOAD_SLOTS_TAKEN, // "All download slots taken" - ALL_USERS_OFFLINE, // "All %d users offline" - ALL_3_USERS_OFFLINE, // "All 3 users offline" - ALL_4_USERS_OFFLINE, // "All 4 users offline" - ALL, // "All" - ANY, // "Any" - AT_LEAST, // "At least" - AT_MOST, // "At most" - AUDIO, // "Audio" - AUTO_CONNECT, // "Auto connect / Name" - AUTO_GRANT, // "Auto grant slot / Nick" - AVERAGE, // "Average/s: " - AWAY, // "AWAY" - AWAY_MODE_OFF, // "Away mode off" - AWAY_MODE_ON, // "Away mode on: " - B, // "B" - BAN_USER, // "Ban user(s)" - BOTH_USERS_OFFLINE, // "Both users offline" - BPS, // "B/s" - BROWSE, // "Browse..." - BROWSE_ACCEL, // "&Browse..." - BROWSE_FILE_LIST, // "Browse file list" - CERTIFICATE_GENERATED, // "Generated new TLS certificate" - CERTIFICATE_NOT_TRUSTED, // "Certificate not trusted, unable to connect" - CERTIFICATE_GENERATION_FAILED, // "TLS disabled, failed to generate certificate: " - CHOOSE_FOLDER, // "Choose folder" - CID, // "CID" - CIPHER, // "Cipher" - CLOSE, // "Close" - CLOSE_CONNECTION, // "Close connection" - CLOSING_CONNECTION, // "Closing connection..." - COMCTL_TOO_OLD, // "Your version of windows common controls is too old for DC++ to run correctly, and you will most probably experience problems with the user interface. You should download version 5.80 or higher from the DC++ homepage or from Microsoft directly." - COMPRESSED, // "Compressed" - COMPRESSION_ERROR, // "Error during compression" - COMMAND_TOO_LONG, // "Maximum command length exceeded" - CONFIGURE, // "&Configure" - CONNECT, // "&Connect" - CONNECT_FAVUSER_HUB, // "Connect to hub" - CONNECTED, // "Connected" - CONNECTING, // "Connecting..." - CONNECTING_FORCED, // "Connecting (forced)..." - CONNECTING_TO, // "Connecting to " - CONNECTION, // "Connection" - CONNECTION_CLOSED, // "Connection closed" - CONNECTION_TIMEOUT, // "Connection timeout" - CONFIGURED_HUB_LISTS, // "Configured Public Hub Lists" - COPY_FILENAME, // "Copy Filename" - COPY_HUB, // "Copy address to clipboard" - COPY_MAGNET, // "Copy magnet link to clipboard" - COPY_NICK, // "Copy nick to clipboard" - COULD_NOT_OPEN_TARGET_FILE, // "Could not open target file: " - COUNT, // "Count" - COUNTRY, // "Country" - CRC_CHECKED, // "CRC Checked" - DECOMPRESSION_ERROR, // "Error during decompression" - DESCRIPTION, // "Description" - DESTINATION, // "Destination" - DIRECTORY, // "Directory" - DIRECTORY_ALREADY_SHARED, // "Directory already shared" - DIRECTORY_ADD_ERROR, // "Directory or directory name already exists" - DISC_FULL, // "Disk full(?)" - DISCONNECT_USER, // "Disconnect user(s)" - DISCONNECTED, // "Disconnected" - DISCONNECTED_USER, // "Disconnected user leaving the hub: " - DOCUMENT, // "Document" - DONE, // "Done" - DONT_REMOVE_SLASH_PASSWORD, // "Don't remove /password before your password" - DONT_SHARE_TEMP_DIRECTORY, // "The temporary download directory cannot be shared" - DOWNLOAD, // "Download" - DOWNLOAD_FAILED, // "Download failed: " - DOWNLOAD_FINISHED_IDLE, // "Download finished, idle..." - DOWNLOAD_QUEUE, // "Download Queue" - DOWNLOAD_STARTING, // "Download starting..." - DOWNLOAD_TO, // "Download to..." - DOWNLOAD_WHOLE_DIR, // "Download whole directory" - DOWNLOAD_WHOLE_DIR_TO, // "Download whole directory to..." - DOWNLOADED, // "Downloaded" - DOWNLOADED_BYTES, // "Downloaded %s (%.01f%%) in %s" - DOWNLOADED_FROM, // " downloaded from " - DOWNLOADING, // "Downloading..." - DOWNLOADING_HUB_LIST, // "Downloading public hub list..." - DOWNLOADING_LIST, // "Downloading list..." - DOWNLOADS, // "Downloads" - DUPLICATE_FILE_NOT_SHARED, // "Duplicate file will not be shared: " - DUPLICATE_MATCH, // "Dupe matched against: " - DUPLICATE_SOURCE, // "Duplicate source" - EDIT, // "Edit" - EDIT_ACCEL, // "&Edit" - EMAIL, // "E-Mail" - ENTER_NICK, // "Please enter a nickname in the settings dialog!" - ENTER_PASSWORD, // "Please enter a password" - ENTER_REASON, // "Please enter a reason" - ENTER_SEARCH_STRING, // "Enter search string" - ENTER_SERVER, // "Please enter a destination server" - ERRORS, // "Errors" - ERROR_CREATING_HASH_DATA_FILE, // "Error creating hash data file: " - ERROR_CREATING_REGISTRY_KEY_ADC, // "Error creating adc registry key" - ERROR_CREATING_REGISTRY_KEY_DCHUB, // "Error creating dchub registry key" - ERROR_CREATING_REGISTRY_KEY_MAGNET, // "Error creating magnet registry key" - ERROR_HASHING, // "Error hashing " - ERROR_SAVING_HASH, // "Error saving hash data: " - EXACT_SIZE, // "Exact size" - EXECUTABLE, // "Executable" - FAILED_TO_LOAD_CERTIFICATE, // "Failed to load certificate file" - FAILED_TO_LOAD_PRIVATE_KEY, // "Failed to load private key" - FAV_JOIN_SHOWING_OFF, // "Join/part of favorite users showing off" - FAV_JOIN_SHOWING_ON, // "Join/part of favorite users showing on" - FAVORITE_DIR_NAME, // "Favorite name" - FAVORITE_DIR_NAME_LONG, // "Under what name you see the directory" - FAVORITE_HUB_ADDED, // "Favorite hub added" - FAVORITE_HUB_ALREADY_EXISTS, // "Hub already exists as a favorite" - FAVORITE_HUB_DOES_NOT_EXIST, // "This hub is not a favorite hub" - FAVORITE_HUB_IDENTITY, // "Identification (leave blank for defaults)" - FAVORITE_HUB_PROPERTIES, // "Favorite Hub Properties" - FAVORITE_HUB_REMOVED, // "Favorite hub removed" - FAVORITE_HUBS, // "Favorite Hubs" - FAVORITE_USER_ADDED, // "Favorite user added" - FAVORITE_USERS, // "Favorite Users" - FILE, // "File" - FILES, // "Files" - FILE_HAS_NO_TTH, // "This file has no TTH" - FILE_IS_ALREADY_QUEUED, // "This file is already queued" - FILE_LIST_DIFF, // "Subtract list" - FILE_LIST_REFRESH_FAILED, // "File list refresh failed: " - FILE_LIST_REFRESH_FINISHED, // "File list refresh finished" - FILE_LIST_REFRESH_INITIATED, // "File list refresh initiated" - FILE_LIST_REFRRESH_IN_PROGRESS, // "File list refresh in progress, please wait for it to finish before trying to refresh again" - FILE_NOT_AVAILABLE, // "File not available" - FILE_TYPE, // "File type" - FILE_WITH_DIFFERENT_SIZE, // "A file with a different size already exists in the queue" - FILE_WITH_DIFFERENT_TTH, // "A file with different tth root already exists in the queue" - FILENAME, // "Filename" - FILES_LEFT, // "files left" - FILES_PER_HOUR, // "files/h" - FILTER, // "F&ilter" - FILTERED, // "Filtered" - FIND, // "Find" - FINISHED_DOWNLOADS, // "Finished Downloads" - FINISHED_UPLOADS, // "Finished Uploads" - FORCE_ATTEMPT, // "Force attempt" - GiB, // "GiB" - GET_FILE_LIST, // "Get file list" - GO_TO_DIRECTORY, // "Go to directory" - GRANT_EXTRA_SLOT, // "Grant extra slot" - HASH_DATABASE, // "Hash database" - HASH_PROGRESS, // "Creating file index..." - HASH_PROGRESS_BACKGROUND, // "Run in background" - HASH_PROGRESS_STATS, // "Statistics" - HASH_PROGRESS_TEXT, // "Please wait while DC++ indexes your files (they won't be shared until they've been indexed)..." - HASH_READ_FAILED, // "Unable to read hash data file" - HASH_REBUILT, // "Hash database rebuilt" - HASHING_FAILED, // "Hashing failed: " - HASHING_FINISHED, // "Finished hashing: " - HIGH, // "High" - HIGHEST, // "Highest" - HIT_RATIO, // "Hit Ratio: " - HITS, // "Hits: " - HUB, // "Hub" - HUBS, // "Hubs" - HUB_ADDRESS, // "Address" - HUB_LIST_DOWNLOADED, // "Hub list downloaded..." - HUB_LIST_EDIT, // "Edit the hublist" - HUB_LIST_LOADED_FROM_CACHE, // "Hub list loaded from cache..." - HUB_NAME, // "Name" - HUB_LIST, // "Hublist" - HUB_PASSWORD, // "Hub password" - HUB_USERS, // "Users" - IGNORE_TTH_SEARCHES, // "Ignore TTH searches" - IGNORED_MESSAGE, // "Ignored message: " - INCOMPLETE_FAV_HUB, // "Hub address cannot be empty." - INVALID_LISTNAME, // "Invalid file list name" - INVALID_NUMBER_OF_SLOTS, // "Invalid number of slots" - INVALID_SIZE, // "Invalid size" - INVALID_TARGET_FILE, // "Invalid target file (missing directory, check default download directory setting)" - INVALID_TREE, // "Full tree does not match TTH root" - IP, // "IP: " - IP_BARE, // "IP" - ITEMS, // "Items" - JOIN_SHOWING_OFF, // "Join/part showing off" - JOIN_SHOWING_ON, // "Join/part showing on" - JOINS, // "Joins: " - KiB, // "KiB" - KiBPS, // "KiB/s" - KICK_USER, // "Kick user(s)" - LARGER_TARGET_FILE_EXISTS, // "A file of equal or larger size already exists at the target location" - LAST_CHANGE, // "Last change: " - LAST_HUB, // "Hub (last seen on if offline)" - LAST_SEEN, // "Time last seen" - LEFT, // "left" - LISTENER_FAILED, // "Listening socket failed (you need to restart DC++): " - LOADING, // "Loading DC++, please wait..." - LOOKUP_AT_BITZI, // "Lookup TTH at Bitzi.com" - LOW, // "Low" - LOWEST, // "Lowest" - MAGNET_DLG_FILE, // "Filename:" - MAGNET_DLG_HASH, // "File Hash:" - MAGNET_DLG_NOTHING, // "Do nothing" - MAGNET_DLG_QUEUE, // "Add this file to your download queue" - MAGNET_DLG_REMEMBER, // "Do the same action next time without asking" - MAGNET_DLG_SEARCH, // "Start a search for this file" - MAGNET_DLG_TEXT_BAD, // "A MAGNET link was given to DC++, but it didn't contain a valid file hash for use on the Direct Connect network. No action will be taken." - MAGNET_DLG_TEXT_GOOD, // "DC++ has detected a MAGNET link with a file hash that can be searched for on the Direct Connect network. What would you like to do?" - MAGNET_DLG_TITLE, // "MAGNET Link detected" - MAGNET_HANDLER_DESC, // "Download files from the Direct Connect network" - MAGNET_HANDLER_ROOT, // "DC++" - MAGNET_SHELL_DESC, // "URL:MAGNET URI" - MATCH_QUEUE, // "Match queue" - MATCHED_FILES, // "Matched %d file(s)" - MAX_HUBS, // "Max Hubs" - MAX_SIZE, // "Max Size" - MAX_USERS, // "Max Users" - MIN_SIZE, // "Min Size" - MiB, // "MiB" - MiBPS, // "MiB/s" - MiBITSPS, // "MiBits/s" - MENU_ABOUT, // "About DC++..." - MENU_ADL_SEARCH, // "ADL Search" - MENU_ARRANGE, // "Arrange icons" - MENU_CASCADE, // "Cascade" - MENU_CHANGELOG, // "Change Log" - MENU_CLOSE_ALL_DIR_LIST, // "Close all file list windows" - MENU_CLOSE_ALL_OFFLINE_PM, // "Close all offline PM windows" - MENU_CLOSE_ALL_PM, // "Close all PM windows" - MENU_CLOSE_ALL_SEARCHFRAME, // "Close all search windows" - MENU_CLOSE_DISCONNECTED, // "Close disconnected" - MENU_CONTENTS, // "Help &Contents\tF1" - MENU_DISCUSS, // "DC++ discussion forum" - MENU_DONATE, // "Donate (paypal)" - MENU_DOWNLOAD_QUEUE, // "&Download Queue\tCtrl+D" - MENU_EXIT, // "E&xit" - MENU_FAQ, // "Frequently asked questions" - MENU_FAVORITE_HUBS, // "&Favorite Hubs\tCtrl+F" - MENU_FAVORITE_USERS, // "Favorite &Users\tCtrl+U" - MENU_FILE, // "&File" - MENU_FOLLOW_REDIRECT, // "Follow last redirec&t\tCtrl+T" - MENU_HASH_PROGRESS, // "Indexing progress" - MENU_HELP, // "&Help" - MENU_HELP_DOWNLOADS, // "Downloads" - MENU_HELP_GEOIPFILE, // "GeoIP database update" - MENU_HELP_FORUM, // "Help forum" - MENU_HELP_TRANSLATIONS, // "Translations" - MENU_HOMEPAGE, // "DC++ Homepage" - MENU_HORIZONTAL_TILE, // "Horizontal Tile" - MENU_MINIMIZE_ALL, // "Minimize &All" - MENU_RESTORE_ALL, // "Restore All" - MENU_NETWORK_STATISTICS, // "Network Statistics" - MENU_NOTEPAD, // "&Notepad\tCtrl+N" - MENU_OPEN_DOWNLOADS_DIR, // "Open downloads directory" - MENU_OPEN_FILE_LIST, // "Open file list...\tCtrl+L" - MENU_OPEN_MATCH_ALL, // "Match downloaded lists" - MENU_OPEN_OWN_LIST, // "Open own list" - MENU_PUBLIC_HUBS, // "&Public Hubs\tCtrl+P" - MENU_QUICK_CONNECT, // "&Quick Connect ...\tCtrl+Q" - MENU_RECONNECT, // "&Reconnect\tCtrl+R" - MENU_REFRESH_FILE_LIST, // "Refresh file list\tCtrl+E" - MENU_REPORT_BUG, // "Report a bug" - MENU_REQUEST_FEATURE, // "Request a feature" - MENU_SEARCH, // "&Search\tCtrl+S" - MENU_SEARCH_SPY, // "Search Spy" - MENU_SETTINGS, // "Settings..." - MENU_SHOW, // "Show" - MENU_STATUS_BAR, // "&Status bar\tCtrl+2" - MENU_SYSTEM_LOG, // "System Log" - MENU_TOOLBAR, // "&Toolbar\tCtrl+1" - MENU_TRANSFER_VIEW, // "T&ransfers\tCtrl+3" - MENU_VERTICAL_TILE, // "Vertical Tile" - MENU_VIEW, // "&View" - MENU_WINDOW, // "&Window" - MIN_SHARE, // "Min Share" - MIN_SLOTS, // "Min Slots" - MOVE, // "Move/Rename" - MOVE_DOWN, // "Move &Down" - MOVE_UP, // "Move &Up" - NETWORK_STATISTICS, // "Network Statistics" - NEW, // "&New..." - NEXT, // "Next" - NICK, // "Nick" - NICK_TAKEN, // "Your nick was already taken, please change to something else!" - NICK_UNKNOWN, // " (Nick unknown)" - NO_CERTIFICATE_FILE_SET, // "TLS disabled, no certificate file set" - NO_CRC32_MATCH, // " not shared; calculated CRC32 does not match the one found in SFV file." - NO_DIRECTORY_SPECIFIED, // "No directory specified" - NO_DOWNLOADS_FROM_SELF, // "You're trying to download from yourself!" - NO_ERRORS, // "No errors" - NO_MATCHES, // "No matches" - NO_SLOTS_AVAILABLE, // "No slots available" - NO_STR, // "No" - NO_USERS, // "No users" - NO_USERS_TO_DOWNLOAD_FROM, // "No users to download from" - NORMAL, // "Normal" - NOT_LISTENING, // "Not listening for connections - please restart DC++" - NOTEPAD, // "Notepad" - OFFLINE, // "Offline" - ONLINE, // "Online" - ONLY_FREE_SLOTS, // "Only users with free slots" - ONLY_TLS_ALLOWED, // "Only TLS connections allowed" - ONLY_TTH, // "Only results with TTH root" - ONLY_WHERE_OP, // "Only where I'm op" - OPEN, // "Open" - OPEN_DOWNLOAD_PAGE, // "Open download page?" - OPEN_FOLDER, // "Open folder" - OPERATING_SYSTEM_NOT_COMPATIBLE, // "Operating system does not match minimum requirements for feature" - OUT_OF_BUFFER_SPACE, // "Out of buffer space" - PARTS, // "Parts: " - PASSIVE_USER, // "Passive user" - PASSWORD, // "Password" - PATH, // "Path" - PAUSED, // "Paused" - PIB, // "PiB" - PICTURE, // "Picture" - PORT, // "Port: " - PREPARING_FILE_LIST, // "Preparing file list..." - PRESS_FOLLOW, // "Press the follow redirect button to connect to " - PRIORITY, // "Priority" - PRIVATE_MESSAGE, // "Private message" - PRIVATE_MESSAGE_FROM, // "Private message from " - PROPERTIES, // "&Properties" - PUBLIC_HUBS, // "Public Hubs" - PURGE, // "Purge" - QUICK_CONNECT, // "Quick Connect" - RATING, // "Rating" - RATIO, // "Ratio" - READD_SOURCE, // "Re-add source" - REALLY_EXIT, // "Really exit?" - REALLY_REMOVE, // "Really remove?" - REDIRECT, // "Redirect" - REDIRECT_ALREADY_CONNECTED, // "Redirect request received to a hub that's already connected" - REDIRECT_USER, // "Redirect user(s)" - REFRESH, // "&Refresh" - REFRESH_USER_LIST, // "Refresh user list" - RELIABILITY, // "Reliability" - REMOVE, // "&Remove" - REMOVE_ALL, // "Remove all" - REMOVE_ALL_SUBDIRECTORIES, // "Remove all subdirectories before adding this one" - REMOVE_FROM_ALL, // "Remove user from queue" - REMOVE_SOURCE, // "Remove source" - RENAMED_TO, // " renamed to " - RUNNING, // "Running..." - S, // "s" - SEARCH, // "Search" - SEARCH_FOR, // "Search for" - SEARCH_FOR_ALTERNATES, // "Search for alternates" - SEARCH_FOR_FILE, // "Search for file" - SEARCH_OPTIONS, // "Search options" - SEARCH_SPAM_FROM, // "Search spam detected from " - SEARCH_SPY, // "Search Spy" - SEARCH_STRING, // "Search String" - SEARCHING_FOR, // "Searching for " - SEARCHING_READY, // "Ready to search..." - SEARCHING_WAIT, // "Searching too soon, next search in %i seconds" - SEEK_BEYOND_END, // "Request to seek beyond the end of data" - SEND_PRIVATE_MESSAGE, // "Send private message" - SEPARATOR, // "Separator" - SERVER, // "Server" - SET_PRIORITY, // "Set priority" - SETTINGS, // "Settings" - SETTINGS_ADD_FINISHED_INSTANTLY, // "Add finished files to share instantly (if shared)" - SETTINGS_ADD_FOLDER, // "&Add folder" - SETTINGS_ADLS_BREAK_ON_FIRST, // "Break on first ADLSearch match" - SETTINGS_ADVANCED, // "Advanced" - SETTINGS_ADVANCED3, // "Advanced\\Experts only" - SETTINGS_ADVANCED_SETTINGS, // "Advanced settings" - SETTINGS_ALLOW_UNTRUSTED_CLIENTS, // "Allow TLS connections to clients without trusted certificate" - SETTINGS_ALLOW_UNTRUSTED_HUBS, // "Allow TLS connections to hubs without trusted certificate" - SETTINGS_ANTI_FRAG, // "Use antifragmentation method for downloads" - SETTINGS_APPEARANCE, // "Appearance" - SETTINGS_APPEARANCE2, // "Appearance\\Colors and sounds" - SETTINGS_AUTODROP_AUTODROPSETTINGS, // "Autodrop settings" - SETTINGS_AUTODROP_SPEED, // "Drop sources below" - SETTINGS_AUTODROP_INTERVAL, // "Check every" - SETTINGS_AUTODROP_ELAPSED, // "Min elapsed" - SETTINGS_AUTODROP_INACTIVITY, // "Max inactivity" - SETTINGS_AUTODROP_MINSOURCES, // "Min sources online" - SETTINGS_AUTODROP_FILESIZE, // "Min filesize" - SETTINGS_AUTODROP_ALL, // "Autodrop slow sources for all queue items (except filelists)" - SETTINGS_AUTODROP_FILELISTS, // "Remove slow filelists" - SETTINGS_AUTODROP_DISCONNECT, // "Don't remove the source when autodropping, only disconnect" - SETTINGS_AUTO_AWAY, // "Auto-away on minimize (and back on restore)" - SETTINGS_AUTO_FOLLOW, // "Automatically follow redirects" - SETTINGS_AUTO_KICK, // "Automatically disconnect users who leave the hub" - SETTINGS_AUTO_KICK_NO_FAVS, // "Don't automatically disconnect favorite users who leave the hub" - SETTINGS_AUTO_SEARCH, // "Automatically search for alternative download locations" - SETTINGS_AUTO_SEARCH_AUTO_MATCH, // "Automatically match queue for auto search hits" - SETTINGS_AUTO_SEARCH_LIMIT, // "Auto-search limit" - SETTINGS_AUTO_OPEN, // "Auto-open at startup" - SETTINGS_AUTO_REFRESH_TIME, // "Auto refresh time" - SETTINGS_BIND_ADDRESS, // "Bind address" - SETTINGS_BOLD_OPTIONS, // "Tab highlight on content change" - SETTINGS_CERTIFICATES, // "Advanced\\Security Certificates" - SETTINGS_CHANGE, // "&Change" - SETTINGS_CLEAR_SEARCH, // "Clear search box after each search" - SETTINGS_COLORS, // "Colors" - SETTINGS_COMMAND, // "Command" - SETTINGS_COMPRESS_TRANSFERS, // "Enable safe and compressed transfers" - SETTINGS_CONFIGURE_HUB_LISTS, // "Configure Public Hub Lists" - SETTINGS_CONFIRM_DIALOG_OPTIONS, // "Confirm dialog options" - SETTINGS_CONFIRM_EXIT, // "Confirm application exit" - SETTINGS_CONFIRM_HUB_REMOVAL, // "Confirm favorite hub removal" - SETTINGS_CONFIRM_ITEM_REMOVAL, // "Confirm item removal in download queue" - SETTINGS_CONNECTION_TYPE, // "Connection Type" - SETTINGS_DEFAULT_AWAY_MSG, // "Default away message" - SETTINGS_DIRECT, // "Direct connection" - SETTINGS_DIRECTORIES, // "Directories" - SETTINGS_DONT_DL_ALREADY_QUEUED, // "Don't download files already in the queue" - SETTINGS_DONT_DL_ALREADY_SHARED, // "Don't download files already in share" - SETTINGS_DOWNLOAD_DIRECTORY, // "Default download directory" - SETTINGS_DOWNLOAD_LIMITS, // "Limits" - SETTINGS_DOWNLOADS, // "Downloads" - SETTINGS_DOWNLOADS_MAX, // "Maximum simultaneous downloads (0 = infinite)" - SETTINGS_DOWNLOADS_SPEED_PAUSE, // "No new downloads if speed exceeds (KiB/s, 0 = disable)" - SETTINGS_EXAMPLE_TEXT, // "Donate \342\202\254\342\202\254\342\202\254:s! (ok, dirty dollars are fine as well =) (see help menu)" - SETTINGS_EXTERNAL_IP, // "External / WAN IP" - SETTINGS_FAV_SHOW_JOINS, // "Only show joins / parts for favorite users" - SETTINGS_FAVORITE_DIRS_PAGE, // "Downloads\\Favorites" - SETTINGS_FAVORITE_DIRS, // "Favorite download directories" - SETTINGS_FILE_NAME, // "Filename" - SETTINGS_FILTER_MESSAGES, // "Filter kick and NMDC debug messages" - SETTINGS_FIREWALL_NAT, // "Firewall with manual port forwarding" - SETTINGS_FIREWALL_PASSIVE, // "Firewall (passive, last resort)" - SETTINGS_FIREWALL_UPNP, // "Firewall with UPnP" - SETTINGS_FORMAT, // "Format" - SETTINGS_GENERAL, // "Personal information" - SETTINGS_GET_USER_COUNTRY, // "Guess user country from IP" - SETTINGS_HUB_USER_COMMANDS, // "Accept custom user commands from hub" - SETTINGS_IGNORE_HUB_PMS, // "Ignore private messages from the hub" - SETTINGS_IGNORE_BOT_PMS, // "Ignore private messages from bots" - SETTINGS_INCOMING, // "Incoming connection settings (see Help/FAQ if unsure)" - SETTINGS_KEEP_LISTS, // "Don't delete file lists when exiting" - SETTINGS_LANGUAGE_FILE, // "Language file" - SETTINGS_LIST_DUPES, // "Keep duplicate files in your file list" - SETTINGS_LOG_DOWNLOADS, // "Log downloads" - SETTINGS_LOG_FILELIST_TRANSFERS, // "Log filelist transfers" - SETTINGS_LOG_MAIN_CHAT, // "Log main chat" - SETTINGS_LOG_PRIVATE_CHAT, // "Log private chat" - SETTINGS_LOG_STATUS_MESSAGES, // "Log status messages" - SETTINGS_LOG_SYSTEM_MESSAGES, // "Log system messages" - SETTINGS_LOG_UPLOADS, // "Log uploads" - SETTINGS_LOGGING, // "Logging" - SETTINGS_LOGS, // "Advanced\\Logs" - SETTINGS_MAGNET_ASK, // "Ask what to do when a magnet link is detected." - SETTINGS_MAX_FILELIST_SIZE, // "Max filelist size" - SETTINGS_MAX_HASH_SPEED, // "Max hash speed" - SETTINGS_MAX_TAB_ROWS, // "Max tab rows" - SETTINGS_MIN_SEGMENT_SIZE, // "Min segment size" - SETTINGS_MINIMIZE_TRAY, // "Minimize to tray" - SETTINGS_NAME, // "Name" - SETTINGS_NETWORK, // "Connection settings" - SETTINGS_NOTIFICATION_SOUND, // "Notification sound" - SETTINGS_NO_AWAYMSG_TO_BOTS, // "Don't send the away message to bots" - SETTINGS_ONLY_HASHED, // "Note; Files appear in the share only after they've been hashed!" - SETTINGS_ONLY_TTH, // "Search for files with TTH root only as standard" - SETTINGS_OPEN_NEW_WINDOW, // "Open new window when using /join" - SETTINGS_OPEN_USER_CMD_HELP, // "Always open help file with this dialog" - SETTINGS_OPTIONS, // "Options" - SETTINGS_OTHER_QUEUE_OPTIONS, // "Other queue options" - SETTINGS_OUTGOING, // "Outgoing connection settings" - SETTINGS_OVERRIDE, // "Don't allow hub/UPnP to override" - SETTINGS_PERSONAL_INFORMATION, // "Personal Information" - SETTINGS_PM_BEEP, // "Make an annoying sound every time a private message is received" - SETTINGS_PM_BEEP_OPEN, // "Make an annoying sound when a private message window is opened" - SETTINGS_PM_HISTORY, // "PM history" - SETTINGS_POPUNDER_FILELIST, // "Open new file list windows in the background" - SETTINGS_POPUNDER_PM, // "Open new private message windows in the background" - SETTINGS_POPUP_BOT_PMS, // "Open private messages from the hub in their own window" - SETTINGS_POPUP_HUB_PMS, // "Open private messages from bots in their own window" - SETTINGS_POPUP_PMS, // "Open private messages in their own window" - SETTINGS_PORTS, // "Ports" - SETTINGS_PROMPT_PASSWORD, // "Popup box to input password for hubs" - SETTINGS_PUBLIC_HUB_LIST, // "Public Hubs list" - SETTINGS_PUBLIC_HUB_LIST_HTTP_PROXY, // "HTTP Proxy (for hublist only)" - SETTINGS_PUBLIC_HUB_LIST_URL, // "Public Hubs list URL" - SETTINGS_QUEUE, // "Downloads\\Queue" - SETTINGS_RENAME_FOLDER, // "Rename" - SETTINGS_REQUIRES_RESTART, // "Note; most of these options require that you restart DC++" - SETTINGS_SEARCH_HISTORY, // "Search history" - SETTINGS_SELECT_TEXT_FACE, // "Select &text style" - SETTINGS_SELECT_WINDOW_COLOR, // "Select &window color" - SETTINGS_SEND_UNKNOWN_COMMANDS, // "Send unknown /commands to the hub" - SETTINGS_SFV_CHECK, // "Enable automatic SFV checking" - SETTINGS_SHARE_HIDDEN, // "Share hidden files" - SETTINGS_SHARE_SIZE, // "Total size:" - SETTINGS_SHARED_DIRECTORIES, // "Shared directories" - SETTINGS_SHOW_JOINS, // "Show joins / parts in chat by default" - SETTINGS_SHOW_PROGRESS_BARS, // "Show progress bars for transfers" - SETTINGS_SHOW_SHELL_MENU, // "Show shell menu where possible" - SETTINGS_SKIP_ZERO_BYTE, // "Skip zero-byte files" - SETTINGS_SMALL_SEND_BUFFER, // "Use small send buffer (enable if uploads slow downloads a lot)" - SETTINGS_SOCKS5, // "SOCKS5" - SETTINGS_SOCKS5_IP, // "Socks IP" - SETTINGS_SOCKS5_PORT, // "Port" - SETTINGS_SOCKS5_RESOLVE, // "Use SOCKS5 server to resolve host names" - SETTINGS_SOCKS5_USERNAME, // "Login" - SETTINGS_SORT_FAVUSERS_FIRST, // "Sort favorite users first" - SETTINGS_SOUNDS, // "Sounds" - SETTINGS_SPEEDS_NOT_ACCURATE, // "Note; because of changing download speeds, this is not 100% accurate..." - SETTINGS_STATUS_IN_CHAT, // "View status messages in main chat" - SETTINGS_TCP_PORT, // "TCP" - SETTINGS_TLS_PORT, // "TLS" - SETTINGS_TEXT_MINISLOT, // "Mini slot size" - SETTINGS_PRIO_AUTOPRIO, // "Autoprio settings" - SETTINGS_PRIO_HIGHEST, // "Highest prio max size" - SETTINGS_PRIO_HIGH, // "High prio max size" - SETTINGS_PRIO_NORMAL, // "Normal prio max size" - SETTINGS_PRIO_LOW, // "Low prio max size" - SETTINGS_PRIO_LOWEST, // "Set lowest prio for newly added files larger than Low prio size" - SETTINGS_TABS, // "Appearance\\Tabs" - SETTINGS_TIME_STAMPS, // "Show timestamps in chat by default" - SETTINGS_TIME_STAMPS_FORMAT, // "Set timestamps" - SETTINGS_TOGGLE_ACTIVE_WINDOW, // "Toggle window when selecting an active tab" - SETTINGS_UDP_PORT, // "UDP" - SETTINGS_UNFINISHED_DOWNLOAD_DIRECTORY, // "Unfinished downloads directory" - SETTINGS_UPLOAD_LINE_SPEED, // "Line speed (upload)" - SETTINGS_UPLOADS, // "Sharing" - SETTINGS_UPLOADS_MIN_SPEED, // "Automatically open an extra slot if speed is below (0 = disable)" - SETTINGS_UPLOADS_SLOTS, // "Upload slots" - SETTINGS_URL_HANDLER, // "Register with Windows to handle dchub:// and adc:// URL links" - SETTINGS_URL_MAGNET, // "Register with Windows to handle magnet: URI links" - SETTINGS_USE_CTRL_FOR_LINE_HISTORY, // "Use CTRL for line history" - SETTINGS_USE_OEM_MONOFONT, // "Use OEM monospaced font for viewing text files" - SETTINGS_USE_SYSTEM_ICONS, // "Use system icons when browsing files (slows browsing down a bit)" - SETTINGS_USER_COMMANDS, // "Advanced\\User Commands" - SETTINGS_WINDOWS, // "Appearance\\Windows" - SETTINGS_WINDOWS_OPTIONS, // "Window options" - SETTINGS_WRITE_BUFFER, // "Write buffer size" - SETTINGS_ALT_SORT_ORDER, // "Sort all downloads first" - SETTINGS_USE_TLS, // "Use TLS when remote client supports it" - SFV_INCONSISTENCY, // "CRC32 inconsistency (SFV-Check)" - SHARED, // "Shared" - SHARED_FILES, // "Shared Files" - SIZE, // "Size" - SKIP_RENAME, // "New virtual name matches old name, skipping..." - SLOT_GRANTED, // "Slot granted" - SLOTS, // "Slots" - SLOTS_SET, // "Slots set" - SOCKS_AUTH_FAILED, // "Socks server authentication failed (bad login / password?)" - SOCKS_AUTH_UNSUPPORTED, // "The socks server doesn't support login / password authentication" - SOCKS_FAILED, // "The socks server failed establish a connection" - SOCKS_NEEDS_AUTH, // "The socks server requires authentication" - SOCKS_SETUP_ERROR, // "Failed to set up the socks server for UDP relay (check socks address and port)" - SOURCE_TOO_OLD, // "Remote client does not fully support TTH - cannot download" - SOURCE_TOO_SLOW, // "Source too slow" - SOURCE_TYPE, // "Source Type" - SPECIFY_SEARCH_STRING, // "Specify a search string" - SPECIFY_SERVER, // "Specify a server to connect to" - SPECIFY_URL, // "Specify a URL" - SPEED, // "Speed" - STATUS, // "Status" - STORED_PASSWORD_SENT, // "Stored password sent..." - SYSTEM_LOG, // "System Log" - TAG, // "Tag" - TARGET_REMOVED, // "Target removed" - TARGET_FILENAME_TOO_LONG, // "Target filename too long" - TCP_PORT_BUSY, // "Unable to open TCP/TLS port. File transfers will not work correctly until you change settings or turn off any application that might be using the TCP/TLS port" - TiB, // "TiB" - TIME, // "Time" - TIME_LEFT, // "Time left" - TIMESTAMPS_DISABLED, // "Timestamps disabled" - TIMESTAMPS_ENABLED, // "Timestamps enabled" - TOO_MUCH_DATA, // "More data was sent than was expected" - TOTAL, // "Total: " - TTH_ALREADY_SHARED, // "A file with the same hash already exists in your share" - TTH_INCONSISTENCY, // "TTH inconsistency" - TTH_ROOT, // "TTH Root" - TYPE, // "Type" - UDP_PORT_BUSY, // "Unable to open UDP port. Searching will not work correctly until you change settings or turn off any application that might be using the UDP port" - UNABLE_TO_CREATE_THREAD, // "Unable to create thread" - UNABLE_TO_OPEN_FILELIST, // "Unable to open filelist: " - UNABLE_TO_RENAME, // "Unable to rename " - UNABLE_TO_SEND_FILE, // "Unable to send file " - UNKNOWN, // "Unknown" - UNKNOWN_ADDRESS, // "Unknown address" - UNKNOWN_COMMAND, // "Unknown command: " - UNKNOWN_ERROR, // "Unknown error: 0x%x" - UNSUPPORTED_FILELIST_FORMAT, // "Unsupported filelist format" - UPLOAD_FINISHED_IDLE, // "Upload finished, idle..." - UPLOAD_STARTING, // "Upload starting..." - UPLOADED_BYTES, // "Uploaded %s (%.01f%%) in %s" - UPLOADED_TO, // " uploaded to " - UPLOADS, // "Uploads" - UPNP_FAILED_TO_CREATE_MAPPINGS, // "Failed to create port mappings. Please set up your NAT yourself." - UPNP_FAILED_TO_REMOVE_MAPPINGS, // "Failed to remove port mappings" - UPNP_FAILED_TO_GET_EXTERNAL_IP, // "Failed to get external IP via UPnP. Please set it yourself." - USER, // "User" - USER_CMD_CHAT, // "Chat" - USER_CMD_COMMAND, // "Command" - USER_CMD_CONTEXT, // "Context" - USER_CMD_FILELIST_MENU, // "Filelist Menu" - USER_CMD_HUB, // "Hub IP / DNS (empty = all, 'op' = where operator)" - USER_CMD_HUB_MENU, // "Hub Menu" - USER_CMD_ONCE, // "Send once per nick" - USER_CMD_PARAMETERS, // "Parameters" - USER_CMD_PM, // "PM" - USER_CMD_PREVIEW, // "Text sent to hub" - USER_CMD_RAW, // "Raw" - USER_CMD_SEARCH_MENU, // "Search Menu" - USER_CMD_TO, // "To" - USER_CMD_TYPE, // "Command Type" - USER_CMD_USER_MENU, // "User Menu" - USER_CMD_WINDOW, // "Create / Modify Command" - USER_DESCRIPTION, // "User Description" - USER_OFFLINE, // "User offline" - USER_WENT_OFFLINE, // "User went offline" - USERS, // "Users" - VIDEO, // "Video" - VIEW_AS_TEXT, // "View as text" - VIRTUAL_NAME, // "Virtual name" - VIRTUAL_NAME_EXISTS, // "Virtual directory name already exists" - VIRTUAL_NAME_LONG, // "Name under which the others see the directory" - WAITING, // "Waiting..." - WAITING_TO_RETRY, // "Waiting to retry..." - WAITING_USERS, // "Waiting Users" - WAITING_USER_ONLINE, // "Waiting (User online)" - WAITING_USERS_ONLINE, // "Waiting (%d of %d users online)" - YES_STR, // "Yes" - YOU_ARE_BEING_REDIRECTED, // "You are being redirected to " - LAST // @DontAdd -}; Modified: dcplusplus/trunk/dcpp/Util.cpp =================================================================== --- dcplusplus/trunk/dcpp/Util.cpp 2008-01-23 19:54:44 UTC (rev 975) +++ dcplusplus/trunk/dcpp/Util.cpp 2008-01-23 21:54:41 UTC (rev 976) @@ -23,7 +23,6 @@ #include "File.h" #include "SettingsManager.h" -#include "ResourceManager.h" #include "StringTokenizer.h" #include "SettingsManager.h" #include "version.h" @@ -333,19 +332,19 @@ return (formatTime(awayMsg.empty() ? SETTING(DEFAULT_AWAY_MESSAGE) : awayMsg, awayTime)) + " <DC++ v" VERSIONSTRING ">"; } string Util::formatBytes(int64_t aBytes) { - char buf[64]; + char buf[128]; if(aBytes < 1024) { - snprintf(buf, sizeof(buf), "%d %s", (int)(aBytes&0xffffffff), CSTRING(B)); + snprintf(buf, sizeof(buf), _("%d B"), (int)(aBytes&0xffffffff)); } else if(aBytes < 1024*1024) { - snprintf(buf, sizeof(buf), "%.02f %s", (double)aBytes/(1024.0), CSTRING(KiB)); + snprintf(buf, sizeof(buf), _("%.02f KiB"), (double)aBytes/(1024.0)); } else if(aBytes < 1024*1024*1024) { - snprintf(buf, sizeof(buf), "%.02f %s", (double)aBytes/(1024.0*1024.0), CSTRING(MiB)); + snprintf(buf, sizeof(buf), _("%.02f MiB"), (double)aBytes/(1024.0*1024.0)); } else if(aBytes < (int64_t)1024*1024*1024*1024) { - snprintf(buf, sizeof(buf), "%.02f %s", (double)aBytes/(1024.0*1024.0*1024.0), CSTRING(GiB)); + snprintf(buf, sizeof(buf), _("%.02f GiB"), (double)aBytes/(1024.0*1024.0*1024.0)); } else if(aBytes < (int64_t)1024*1024*1024*1024*1024) { - snprintf(buf, sizeof(buf), "%.02f %s", (double)aBytes/(1024.0*1024.0*1024.0*1024.0), CSTRING(TiB)); + snprintf(buf, sizeof(buf), _("%.02f TiB"), (double)aBytes/(1024.0*1024.0*1024.0*1024.0)); } else { - snprintf(buf, sizeof(buf), "%.02f %s", (double)aBytes/(1024.0*1024.0*1024.0*1024.0*1024.0), CSTRING(PIB)); + snprintf(buf, sizeof(buf), _("%.02f PiB"), (double)aBytes/(1024.0*1024.0*1024.0*1024.0*1024.0)); } return buf; @@ -353,7 +352,7 @@ string Util::formatExactSize(int64_t aBytes) { #ifdef _WIN32 - TCHAR buf[128]; + TCHAR tbuf[128]; TCHAR number[64]; NUMBERFMT nf; _sntprintf(number, 64, _T("%I64d"), aBytes); @@ -372,14 +371,15 @@ GetLocaleInfo( LOCALE_SYSTEM_DEFAULT, LOCALE_STHOUSAND, Dummy, 16 ); nf.lpThousandSep = Dummy; - GetNumberFormat(LOCALE_USER_DEFAULT, 0, number, &nf, buf, sizeof(buf)/sizeof(buf[0])); + GetNumberFormat(LOCALE_USER_DEFAULT, 0, number, &nf, tbuf, sizeof(tbuf)/sizeof(tbuf[0])); - _sntprintf(buf, 128, _T("%s %s"), buf, CTSTRING(B)); - return Text::fromT(buf); + char buf[128]; + _snprintf(buf, sizeof(buf), _("%s B"), Text::fromT(tbuf).c_str()); + return buf; #else - char buf[64]; - snprintf(buf, sizeof(buf), "%'lld", (long long int)aBytes); - return string(buf) + STRING(B); + char buf[128]; + snprintf(buf, sizeof(buf), _("%'lld B"), (long long int)aBytes); + return string(buf) #endif } Deleted: dcplusplus/trunk/makedefs.py =================================================================== --- dcplusplus/trunk/makedefs.py 2008-01-23 19:54:44 UTC (rev 975) +++ dcplusplus/trunk/makedefs.py 2008-01-23 21:54:41 UTC (rev 976) @@ -1,68 +0,0 @@ -#!/usr/bin/python - -def makename(oldname): - name = ""; - nextBig = True; - for x in oldname: - if x == '_': - nextBig = True; - else: - if nextBig: - name += x.upper(); - nextBig = False; - else: - name += x.lower(); - - return name; - -def convert(): - import re - import codecs - from xml.sax.saxutils import quoteattr, escape - version = re.search("VERSIONSTRING (\S+)", file("dcpp/version.h").read()).group(1) - - varstr = ""; - strings = ""; - varname = ""; - names = ""; - - prolog = ""; - epilog = ""; - - example = '<?xml version="1.0" encoding="utf-8" standalone="yes"?>\n'; - example += '<Language Name="Example Language" Native="English" Code="en" Author="arnetheduck" Version=' + version + ' Revision="1" RightToLeft="0">\n' - example += '\t<Strings>\n'; - - lre = re.compile('\s*(\w+),\s*//\s*\"(.+)\"\s*') - - decoder = codecs.getdecoder('cp1252') - encoder = codecs.getencoder('utf8') - recodeattr = lambda s: encoder(decoder(quoteattr(s))[0])[0] - recodeval = lambda s: encoder(decoder(escape(s, {"\\\\":"\\","\\t":"\t"}))[0])[0] - - for x in file("dcpp/StringDefs.h", "r"): - if x.startswith("// @Strings: "): - varstr = x[13:].strip(); - elif x.startswith("// @Names: "): - varname = x[11:].strip(); - elif x.startswith("// @Prolog: "): - prolog += x[12:]; - elif x.startswith("// @Epilog: "): - epilog += x[12:]; - elif len(x) >= 5: - match = lre.match(x); - if match is not None: - name , value = match.groups(); - strings += '"' + value + '", \n' - newname = makename(name) - names += '"' + newname + '", \n' - example += '\t\t<String Name=%s>%s</String>\n' % (recodeattr(newname), recodeval(value)) - - example += '\t</Strings>\n'; - example += '</Language>\n'; - - file('dcpp/StringDefs.cpp', 'w').write(prolog + varstr + " = {\n" + strings + "};\n" + varname + " = {\n" + names + "};\n" + epilog); - file('Example.xml', 'w').write(example); - -if __name__ == "__main__": - convert() This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |