You can subscribe to this list here.
2006 |
Jan
|
Feb
(24) |
Mar
(9) |
Apr
(4) |
May
(7) |
Jun
(13) |
Jul
(19) |
Aug
(1) |
Sep
(12) |
Oct
(20) |
Nov
(1) |
Dec
(15) |
---|---|---|---|---|---|---|---|---|---|---|---|---|
2007 |
Jan
|
Feb
(6) |
Mar
(24) |
Apr
(1) |
May
(10) |
Jun
(30) |
Jul
(46) |
Aug
(20) |
Sep
(12) |
Oct
(27) |
Nov
(51) |
Dec
(58) |
2008 |
Jan
(40) |
Feb
(40) |
Mar
(78) |
Apr
(138) |
May
(4) |
Jun
(1) |
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
2009 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
(5) |
Sep
|
Oct
|
Nov
|
Dec
|
2010 |
Jan
|
Feb
|
Mar
|
Apr
(3) |
May
|
Jun
(2) |
Jul
(10) |
Aug
(1) |
Sep
(11) |
Oct
(31) |
Nov
(7) |
Dec
(1) |
2011 |
Jan
(1) |
Feb
|
Mar
(3) |
Apr
|
May
(1) |
Jun
|
Jul
(2) |
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
2012 |
Jan
|
Feb
(1) |
Mar
|
Apr
|
May
|
Jun
|
Jul
(2) |
Aug
(2) |
Sep
|
Oct
|
Nov
(2) |
Dec
(2) |
2013 |
Jan
(3) |
Feb
(5) |
Mar
(1) |
Apr
|
May
|
Jun
(11) |
Jul
(1) |
Aug
|
Sep
|
Oct
|
Nov
|
Dec
(4) |
2014 |
Jan
(2) |
Feb
(3) |
Mar
|
Apr
|
May
|
Jun
|
Jul
(1) |
Aug
(1) |
Sep
|
Oct
|
Nov
|
Dec
|
2015 |
Jan
|
Feb
(2) |
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
2025 |
Jan
|
Feb
|
Mar
|
Apr
|
May
(4) |
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
From: <zou...@us...> - 2008-02-08 01:46:21
|
Revision: 993 http://dcplusplus.svn.sourceforge.net/dcplusplus/?rev=993&view=rev Author: zouzou123gen Date: 2008-02-07 17:46:15 -0800 (Thu, 07 Feb 2008) Log Message: ----------- forgotten files about the main menu patch Added Paths: ----------- dcplusplus/trunk/res/menu/ dcplusplus/trunk/res/menu/ADLSearch.bmp dcplusplus/trunk/res/menu/DLQueue.bmp dcplusplus/trunk/res/menu/FavoriteHubs.bmp dcplusplus/trunk/res/menu/FavoriteUsers.bmp dcplusplus/trunk/res/menu/FinishedDL.bmp dcplusplus/trunk/res/menu/FinishedUL.bmp dcplusplus/trunk/res/menu/Follow.bmp dcplusplus/trunk/res/menu/NetworkStats.bmp dcplusplus/trunk/res/menu/Notepad.bmp dcplusplus/trunk/res/menu/OpenFileList.bmp dcplusplus/trunk/res/menu/PublicHubs.bmp dcplusplus/trunk/res/menu/Reconnect.bmp dcplusplus/trunk/res/menu/Search.bmp dcplusplus/trunk/res/menu/SearchSpy.bmp dcplusplus/trunk/res/menu/Settings.bmp dcplusplus/trunk/res/menu/WaitingUsers.bmp dcplusplus/trunk/smartwin/source/widgets/WidgetMenuExtended.cpp Removed Paths: ------------- dcplusplus/trunk/res/toolbar.bmp Added: dcplusplus/trunk/res/menu/ADLSearch.bmp =================================================================== (Binary files differ) Property changes on: dcplusplus/trunk/res/menu/ADLSearch.bmp ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: dcplusplus/trunk/res/menu/DLQueue.bmp =================================================================== (Binary files differ) Property changes on: dcplusplus/trunk/res/menu/DLQueue.bmp ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: dcplusplus/trunk/res/menu/FavoriteHubs.bmp =================================================================== (Binary files differ) Property changes on: dcplusplus/trunk/res/menu/FavoriteHubs.bmp ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: dcplusplus/trunk/res/menu/FavoriteUsers.bmp =================================================================== (Binary files differ) Property changes on: dcplusplus/trunk/res/menu/FavoriteUsers.bmp ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: dcplusplus/trunk/res/menu/FinishedDL.bmp =================================================================== (Binary files differ) Property changes on: dcplusplus/trunk/res/menu/FinishedDL.bmp ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: dcplusplus/trunk/res/menu/FinishedUL.bmp =================================================================== (Binary files differ) Property changes on: dcplusplus/trunk/res/menu/FinishedUL.bmp ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: dcplusplus/trunk/res/menu/Follow.bmp =================================================================== (Binary files differ) Property changes on: dcplusplus/trunk/res/menu/Follow.bmp ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: dcplusplus/trunk/res/menu/NetworkStats.bmp =================================================================== (Binary files differ) Property changes on: dcplusplus/trunk/res/menu/NetworkStats.bmp ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: dcplusplus/trunk/res/menu/Notepad.bmp =================================================================== (Binary files differ) Property changes on: dcplusplus/trunk/res/menu/Notepad.bmp ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: dcplusplus/trunk/res/menu/OpenFileList.bmp =================================================================== (Binary files differ) Property changes on: dcplusplus/trunk/res/menu/OpenFileList.bmp ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: dcplusplus/trunk/res/menu/PublicHubs.bmp =================================================================== (Binary files differ) Property changes on: dcplusplus/trunk/res/menu/PublicHubs.bmp ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: dcplusplus/trunk/res/menu/Reconnect.bmp =================================================================== (Binary files differ) Property changes on: dcplusplus/trunk/res/menu/Reconnect.bmp ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: dcplusplus/trunk/res/menu/Search.bmp =================================================================== (Binary files differ) Property changes on: dcplusplus/trunk/res/menu/Search.bmp ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: dcplusplus/trunk/res/menu/SearchSpy.bmp =================================================================== (Binary files differ) Property changes on: dcplusplus/trunk/res/menu/SearchSpy.bmp ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: dcplusplus/trunk/res/menu/Settings.bmp =================================================================== (Binary files differ) Property changes on: dcplusplus/trunk/res/menu/Settings.bmp ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: dcplusplus/trunk/res/menu/WaitingUsers.bmp =================================================================== (Binary files differ) Property changes on: dcplusplus/trunk/res/menu/WaitingUsers.bmp ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Deleted: dcplusplus/trunk/res/toolbar.bmp =================================================================== (Binary files differ) Added: dcplusplus/trunk/smartwin/source/widgets/WidgetMenuExtended.cpp =================================================================== --- dcplusplus/trunk/smartwin/source/widgets/WidgetMenuExtended.cpp (rev 0) +++ dcplusplus/trunk/smartwin/source/widgets/WidgetMenuExtended.cpp 2008-02-08 01:46:15 UTC (rev 993) @@ -0,0 +1,888 @@ +/* +Copyright ( c ) 2005, Thomas Hansen +All rights reserved. + +Redistribution and use in source and binary forms, with or without modification, +are permitted provided that the following conditions are met : + +* Redistributions of source code must retain the above copyright notice, +this list of conditions and the following disclaimer. +* Redistributions in binary form must reproduce the above copyright notice, +this list of conditions and the following disclaimer in the documentation +and/or other materials provided with the distribution. +* Neither the name of the SmartWin++ nor the names of its contributors +may be used to endorse or promote products derived from this software +without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. +IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, +INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +( INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION ) HOWEVER CAUSED AND +ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, +OR TORT ( INCLUDING NEGLIGENCE OR OTHERWISE ) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ +#ifndef WINCE + +#include "../../include/smartwin/widgets/WidgetMenuExtended.h" + +#include "../../include/smartwin/resources/Brush.h" +#include "../../include/smartwin/resources/Pen.h" + +namespace SmartWin { + +void WidgetMenuExtended::setColorInfo( const MenuColorInfo & info ) +{ + itsColorInfo = info; +} + +MenuColorInfo WidgetMenuExtended::getColorInfo() +{ + return itsColorInfo; +} + +int WidgetMenuExtended::getItemIndex( unsigned int id ) +{ + int index = 0; + const int itemCount = ::GetMenuItemCount( this->itsHandle ); + + for ( index = 0; index < itemCount; ++index ) + if ( ::GetMenuItemID( this->itsHandle, index ) == id ) // exit the loop if found + return index; + + return - 1; +} + +MenuItemDataPtr WidgetMenuExtended::getData( int itemIndex ) +{ + size_t i = 0; + + for ( i = 0; i < itsItemDataRef.size(); ++i ) + if ( itsItemDataRef[i]->index == itemIndex ) + return itsItemDataRef[i]->data; + + return MenuItemDataPtr(); +} + +WidgetMenuExtended::~WidgetMenuExtended() +{ + // Destroy this menu + ::DestroyMenu( this->handle() ); + std::for_each( itsItemDataRef.begin(), itsItemDataRef.end(), destroyItemDataWrapper ); +} + +void WidgetMenuExtended::destroyItemDataWrapper( private_::ItemDataWrapper * wrapper ) +{ + if ( 0 != wrapper ) + delete wrapper; + + wrapper = 0; +} + +void WidgetMenuExtended::setTitleFont( FontPtr font ) +{ + itsTitleFont = font; + setTitle( itsTitle, this->drawSidebar ); // Easy for now, should be refactored... +} + +void WidgetMenuExtended::clearTitle( bool clearSidebar /* = false */) +{ + if ( !clearSidebar && !itsTitle.empty() ) + removeItem( 0 ); + + // clear title text + itsTitle.clear(); +} + +void WidgetMenuExtended::enableItem( unsigned int id, bool setEnabled ) +{ + if ( ::EnableMenuItem( this->itsHandle, id, MF_BYCOMMAND | setEnabled ? MF_ENABLED : MF_GRAYED ) == -1 ) + throw xCeption( _T( "Couldn't enable/disable item in enableItem()" ) ); +} + +void WidgetMenuExtended::checkItem( unsigned int id, bool setChecked, bool radioMark ) +{ + ::CheckMenuItem( this->itsHandle, id, MF_BYCOMMAND | setChecked ? MF_CHECKED : MF_UNCHECKED ); + + if ( radioMark ) + ::CheckMenuRadioItem( this->itsHandle, id, id, id, id ); +} + +bool WidgetMenuExtended::isItemEnabled( unsigned int id ) +{ + // init struct for item info + MENUITEMINFO info; + memset( & info, 0, sizeof( MENUITEMINFO ) ); + info.cbSize = sizeof( MENUITEMINFO ); + + // set flag + info.fMask = MIIM_STATE; + + // get item info + if ( ::GetMenuItemInfo( this->itsHandle, id, FALSE, & info ) == FALSE ) + throw xCeption( _T( "Couldn't get item info in isItemEnabled()" ) ); + + return ( info.fState & MFS_ENABLED ) == MFS_ENABLED; +} + +bool WidgetMenuExtended::isItemChecked( unsigned int id ) +{ + // init struct for item info + MENUITEMINFO info; + memset( & info, 0, sizeof( MENUITEMINFO ) ); + info.cbSize = sizeof( MENUITEMINFO ); + + // set flag + info.fMask = MIIM_STATE; + + // get item info + if ( ::GetMenuItemInfo( this->itsHandle, id, FALSE, & info ) == FALSE ) + throw xCeption( _T( "Couldn't get item info in isItemChecked()" ) ); + + return ( info.fState & MF_CHECKED ) == MF_CHECKED; +} + +SmartUtil::tstring WidgetMenuExtended::getItemText( unsigned int id ) +{ + MENUITEMINFO info; + memset( & info, 0, sizeof( MENUITEMINFO ) ); + info.cbSize = sizeof( MENUITEMINFO ); + + // set flag + info.fMask = MIIM_STRING; + + if ( ::GetMenuItemInfo( this->itsHandle, id, FALSE, & info ) == FALSE ) + throw xCeption( _T( "Couldn't get item info in getItemText()" ) ); + + boost::scoped_array< TCHAR > buffer( new TCHAR[++info.cch] ); + info.dwTypeData = buffer.get(); + + if ( ::GetMenuItemInfo( this->itsHandle, id, FALSE, & info ) == FALSE ) + throw xCeption( _T( "Couldn't get item info in getItemText()" ) ); + + SmartUtil::tstring retVal = info.dwTypeData; + return retVal; +} + +void WidgetMenuExtended::setItemText( unsigned int id, SmartUtil::tstring text ) +{ + MENUITEMINFO info; + memset( & info, 0, sizeof( MENUITEMINFO ) ); + info.cbSize = sizeof( MENUITEMINFO ); + + // set flag + info.fMask = MIIM_STRING; + info.dwTypeData = (TCHAR*) text.c_str(); + + if ( ::SetMenuItemInfo( this->itsHandle, id, FALSE, & info ) == FALSE ) + throw xCeption( _T( "Couldn't set item info in setItemText()" ) ); +} + +void WidgetMenuExtended::setTitle( const SmartUtil::tstring & title, bool drawSidebar /* = false */) +{ + this->drawSidebar = drawSidebar; + const bool hasTitle = !itsTitle.empty(); + + // set its title + itsTitle = title; + + if ( !drawSidebar ) + { + // init struct for title info + MENUITEMINFO info; + memset( & info, 0, sizeof( MENUITEMINFO ) ); + info.cbSize = sizeof( MENUITEMINFO ); + + // set flags + info.fMask = MIIM_STATE | MIIM_STRING | MIIM_FTYPE | MIIM_DATA; + info.fType = MFT_OWNERDRAW; + info.fState = MF_DISABLED; + + // set title text + info.dwTypeData = const_cast< LPTSTR >( title.c_str() ); + + // created extended info for title item + MenuItemDataPtr data( new MenuItemData( itsTitleFont ) ); + private_::ItemDataWrapper * wrapper = new private_::ItemDataWrapper( this->itsHandle, 0, data, true ); + + // set item data + info.dwItemData = ( ULONG_PTR ) wrapper; + + if ( ( !hasTitle && ::InsertMenuItem( this->itsHandle, 0, TRUE, & info ) ) || + ( hasTitle && ::SetMenuItemInfo( this->itsHandle, 0, TRUE, & info ) ) ) + { + size_t i = 0; + + // adjust item data wrappers for all existing items + for ( i = 0; i < itsItemDataRef.size(); ++i ) + if ( itsItemDataRef[i] ) + ++itsItemDataRef[i]->index; + + // push back title + itsItemDataRef.push_back( wrapper ); + } + } +} + +bool WidgetMenuExtended::handleDrawItem(int id, LPDRAWITEMSTRUCT drawInfo) { + if ( ( id != 0 ) || ( drawInfo->CtlType != ODT_MENU ) ) // if not intended for us + return false; + + // setup colors + MenuColorInfo colorInfo = this->itsColorInfo; + COLORREF colorMenuBar = colorInfo.colorMenuBar; + COLORREF colorTitle = colorInfo.colorTitle; + COLORREF colorMenuDraw = colorInfo.colorMenu; // color for drawing menu + COLORREF colorFillHighlighted = ColorUtilities::lightenColor( colorInfo.colorHighlight, 0.7 ); + + // get item data wrapper + private_::ItemDataWrapper * wrapper = reinterpret_cast< private_::ItemDataWrapper * >( drawInfo->itemData ); + xAssert( wrapper != 0, _T( "Unsupported menu item in drawItem()" ) ); + + // if processing menu bar + const bool isMenuBar = ::GetMenu( getParent() ) == wrapper->menu; + + // change menu draw color for menubars + if ( isMenuBar ) + colorMenuDraw = colorMenuBar; + + // init struct for menu item info + MENUITEMINFO info; + memset( & info, 0, sizeof( MENUITEMINFO ) ); + info.cbSize = sizeof( MENUITEMINFO ); + + // set flags + info.fMask = MIIM_CHECKMARKS | MIIM_FTYPE | MIIM_DATA | MIIM_STATE | MIIM_STRING; + + if ( ::GetMenuItemInfo( wrapper->menu, wrapper->index, TRUE, & info ) == FALSE ) + throw xCeption ( _T( "Couldn't get menu item info in drawItem()" ) ); + + // check if item is owner drawn + xAssert( ( info.fType & MFT_OWNERDRAW ) != 0, _T( "Not a owner - drawn item in drawItem()" ) ); + + // get item data + MenuItemDataPtr data ( wrapper->data ); + xAssert( data != 0, _T( "Couldn't find item data in drawItem()" ) ); + + // get state info + bool isGrayed = ( drawInfo->itemState & ODS_GRAYED ) == ODS_GRAYED; + bool isChecked = ( drawInfo->itemState & ODS_CHECKED ) == ODS_CHECKED; + bool isDisabled = ( drawInfo->itemState & ODS_DISABLED ) == ODS_DISABLED; + bool isSelected = ( drawInfo->itemState & ODS_SELECTED ) == ODS_SELECTED; + bool isHighlighted = ( drawInfo->itemState & ODS_HOTLIGHT ) == ODS_HOTLIGHT; + + // this will contain item image + HBITMAP image = NULL; + + // if checked/unchecked image is avaiable + if ( ( info.hbmpChecked != NULL ) && ( info.hbmpUnchecked != NULL ) ) + image = isChecked ? info.hbmpChecked : info.hbmpUnchecked; + else // get normal image + image = data->Image->getBitmap(); + + // this will contain image size + Point imageSize = data->Image->getBitmapSize(); + + if ( ( imageSize.x == 0 ) && ( imageSize.y == 0 ) ) // no image + imageSize = defaultImageSize; // set default image size + + // compute strip width + int stripWidth = imageSize.x + textIconGap; + + // prepare item rectangle + Rectangle itemRectangle( drawInfo->rcItem.left, drawInfo->rcItem.top, // position + drawInfo->rcItem.right - drawInfo->rcItem.left, // width + drawInfo->rcItem.bottom - drawInfo->rcItem.top ); // height + + // setup buffered canvas + BufferedCanvas< FreeCanvas > canvas( reinterpret_cast<HWND>(wrapper->menu), drawInfo->hDC ); + + // this will conain adjusted sidebar width + int sidebarWidth = 0; + + // this will contain logical information + // about title font + LOGFONT lf; + memset( & lf, 0, sizeof( LOGFONT ) ); + + // this will contain adjusted(rotated) title font for sidebar + HFONT titleFont = NULL; + + // get title font info and adjust item rectangle + if ( this->drawSidebar ) + { + // get title font + FontPtr font = this->itsTitleFont; + + // get logical info for title font + ::GetObject( font->handle(), sizeof( LOGFONT ), & lf ); + + // 90 degree rotation and bold + lf.lfOrientation = lf.lfEscapement = 900; + + // create title font from logical info + titleFont = ::CreateFontIndirect( & lf ); + + // get title text size + SIZE textSize; + memset( & textSize, 0, sizeof( SIZE ) ); + + HGDIOBJ oldFont = ::SelectObject( canvas.handle(), titleFont ); + ::GetTextExtentPoint32( canvas.handle(), this->itsTitle.c_str(), ( int ) this->itsTitle.size(), & textSize ); + ::SelectObject( canvas.handle(), oldFont ); + + // set sidebar width to text height + sidebarWidth = textSize.cy; + + // adjust item rectangle and item background + itemRectangle.pos.x += sidebarWidth; + itemRectangle.size.x -= sidebarWidth; + } + + // draw sidebar with menu title + if ( ( drawInfo->itemAction & ODA_DRAWENTIRE ) && ( this->drawSidebar ) && !this->itsTitle.empty() ) + { + // select title font and color + HGDIOBJ oldFont = ::SelectObject ( canvas.handle(), titleFont ); + COLORREF oldColor = canvas.setTextColor( colorInfo.colorTitleText ); + + // set background mode to transparent + bool oldMode = canvas.setBkMode( true ); + + // get rect for sidebar + RECT rect; + ::GetClipBox( drawInfo->hDC, & rect ); + //rect.left -= borderGap; + + // set title rectangle + Rectangle textRectangle( 0, 0, sidebarWidth, rect.bottom - rect.top ); + + // draw background + Brush brush ( colorInfo.colorTitle ); + canvas.fillRectangle( textRectangle, brush ); + + // draw title + textRectangle.pos.y += 10; + canvas.drawText( this->itsTitle, textRectangle, DT_BOTTOM | DT_SINGLELINE ); + + // clear + canvas.setTextColor( oldColor ); + canvas.setBkMode( oldMode ); + + // set back old font + ::SelectObject( canvas.handle(), oldFont ); + } + + // destroy title font + ::DeleteObject( titleFont ); + + // set item background + if ( wrapper->isMenuTitleItem ) // for title + { + Brush brush ( colorTitle ); + canvas.fillRectangle( itemRectangle, brush ); + + // draw raised border + RECT rc( itemRectangle ); + ::DrawEdge( canvas.handle(), & rc, EDGE_RAISED, BF_RECT ); + } + else // for normal items + { + Brush brush ( colorMenuDraw ); + canvas.fillRectangle( itemRectangle, brush ); + } + + if ( isMenuBar && isSelected ) // draw selected menu bar item + { + // TODO: Simulate shadow + + // select pen for drawing broder + // and brush for filling item + COLORREF colorBorder = 0; + Canvas::Selector select_pen(canvas, *PenPtr(new Pen(colorBorder))); + Canvas::Selector select_brush(canvas, *BrushPtr(new Brush(ColorUtilities::lightenColor( colorMenuBar, 0.5 )))); + + canvas.rectangle( itemRectangle ); + } // end if + else if ( ( isSelected || isHighlighted ) && !isDisabled ) // draw selected or highlighted menu item (if not inactive) + { + // select pen for drawing broder + // and brush for filling item + Canvas::Selector select_pen(canvas, *PenPtr(new Pen(colorInfo.colorHighlight))); + Canvas::Selector select_brush(canvas, *BrushPtr(new Brush(colorFillHighlighted))); + + canvas.rectangle( itemRectangle ); + } // end if + else if ( !isMenuBar && !wrapper->isMenuTitleItem ) // draw strip bar for menu items (except menu title item) + { + // create rectangle for strip bar + Rectangle stripRectangle ( itemRectangle ); + stripRectangle.size.x = stripWidth; + + // draw strip bar + Brush brush ( colorInfo.colorStrip ); + canvas.fillRectangle( stripRectangle, brush ); + } // end if + + if ( !isMenuBar && info.fType & MFT_SEPARATOR ) // draw separator + { + // set up separator rectangle + Rectangle rectangle ( itemRectangle ); + + // center in the item rectangle + rectangle.pos.x += stripWidth + textIconGap; + rectangle.pos.y += rectangle.size.y / 2 - 1; + + // select color + Canvas::Selector select(canvas, *PenPtr(new Pen(::GetSysColor( COLOR_GRAYTEXT )))); + + // draw separator + canvas.moveTo( rectangle.pos.x, rectangle.pos.y ); + canvas.lineTo( rectangle.size.x, rectangle.pos.y ); + } // end if + else // not a seperator, then draw item text and icon + { + // get item text + const int length = info.cch + 1; + std::vector< TCHAR > buffer( length ); + int count = ::GetMenuString( wrapper->menu, wrapper->index, & buffer[0], length, MF_BYPOSITION ); + SmartUtil::tstring itemText( buffer.begin(), buffer.begin() + count ); + + // index will contain accelerator position + size_t index = itemText.find_last_of( _T( '\t' ) ); + + // split item text to draw accelerator correctly + SmartUtil::tstring text = itemText.substr( 0, index ); + + // get accelerator + SmartUtil::tstring accelerator; + + if ( index != itemText.npos ) + accelerator = itemText.substr( index + 1 ); + + // set mode to transparent + bool oldMode = canvas.setBkMode( true ); + + // select item text color + canvas.setTextColor( isGrayed ? ::GetSysColor( COLOR_GRAYTEXT ) : wrapper->isMenuTitleItem ? colorInfo.colorTitleText : data->TextColor ); + + // Select item font if available + FontPtr font( data->Font ); + + HGDIOBJ oldFont = ::SelectObject( canvas.handle(), font->handle() ); + + if ( !isMenuBar && !wrapper->isMenuTitleItem && !itemText.empty() ) // if menu item + { + // compute text rectangle + Rectangle textRectangle( itemRectangle ); + + // adjust rectangle + textRectangle.pos.x += stripWidth + textIconGap; + textRectangle.size.x -= stripWidth + textIconGap + borderGap; + + canvas.drawText( text, textRectangle, DT_LEFT | DT_VCENTER | DT_SINGLELINE ); + + // draw accelerator + if ( !accelerator.empty() ) + canvas.drawText( accelerator, textRectangle, DT_RIGHT | DT_VCENTER | DT_SINGLELINE ); + } // end if + else if ( !itemText.empty() ) // draw menu bar item text + { + Rectangle textRectangle( itemRectangle ); + + if ( image != NULL ) // has icon + textRectangle.pos.x += textIconGap; + + canvas.drawText( text, textRectangle, DT_CENTER | DT_VCENTER | DT_SINGLELINE ); + } // end if + + // set back old font + ::SelectObject( canvas.handle(), oldFont ); + + // reset old mode + canvas.setBkMode( oldMode ); + + // set up image rectangle + Rectangle imageRectangle( itemRectangle.pos, imageSize ); + + // adjust icon rectangle + imageRectangle.pos.x += ( stripWidth - imageSize.x ) / 2; + imageRectangle.pos.y += ( itemRectangle.size.y - imageSize.y ) / 2; + + if ( image == NULL ) // drawing item without icon + { + if ( isChecked ) // needs checkmark + { + // draw the check mark or radio bullet + // prepare background + Brush brush( colorInfo.colorStrip ); + canvas.fillRectangle( imageRectangle, brush ); + + // create memory DC and set bitmap on it + HDC memoryDC = ::CreateCompatibleDC( canvas.handle() ); + HGDIOBJ old = ::SelectObject( memoryDC, ::CreateCompatibleBitmap( canvas.handle(), imageSize.x, imageSize.y ) ); + + // draw into memory + RECT rc( Rectangle( 0, 0, imageSize.x, imageSize.y ) ); + ::DrawFrameControl( memoryDC, & rc, DFC_MENU, ( info.fType & MFT_RADIOCHECK ) == 0 ? DFCS_MENUCHECK : DFCS_MENUBULLET ); + + const int adjustment = 2; // adjustment for mark to be in the center + + // bit - blast into out canvas + ::BitBlt( canvas.handle(), imageRectangle.pos.x + adjustment, imageRectangle.pos.y, imageSize.x, imageSize.y, memoryDC, 0, 0, SRCAND ); + + // delete memory dc + ::DeleteObject( ::SelectObject( memoryDC, old ) ); + ::DeleteDC( memoryDC ); + } + } + else // drawing item with icon + { + if ( isSelected && !isDisabled ) // if selected and active, then imitate icon shadow + { + // adjust icon position for later drawing + imageRectangle.pos.x -= 1; + imageRectangle.pos.y -= 1; + + // setup brush for shadow emulation + Brush brush( ColorUtilities::darkenColor( colorInfo.colorStrip, 0.7 ) ); + + // draw the icon shadow + Rectangle shadowRectangle( imageRectangle ); + shadowRectangle.pos.x += 2; + shadowRectangle.pos.y += 2; + canvas.drawBitmap( image, shadowRectangle, colorInfo.colorImageBackground, true ); + } + + // draw normal icon + canvas.drawBitmap( image, imageRectangle, colorInfo.colorImageBackground, isGrayed ); + } + + if ( isChecked ) // draw surrounding rectangle for checked items + { + /*if ( image != NULL ) // adjust for icon + iconRectangle = iconRectangle.shrink( 1.20 );*/ + + // draw the surrounding rectangle + Canvas::Selector select(canvas, *PenPtr(new Pen(colorInfo.colorHighlight))); + canvas.line( imageRectangle ); + } + } + + // blast buffer into screen + if ( ( drawInfo->itemAction & ODA_DRAWENTIRE ) && this->drawSidebar ) // adjustment for sidebar + { + itemRectangle.pos.x -= sidebarWidth; + itemRectangle.size.x += sidebarWidth; + } + + canvas.blast( itemRectangle ); + return true; +} + +bool WidgetMenuExtended::handleMeasureItem(LPMEASUREITEMSTRUCT measureInfo) { + if ( measureInfo->CtlType != ODT_MENU ) // if not intended for us + return false; + + // get data wrapper + private_::ItemDataWrapper * wrapper = reinterpret_cast< private_::ItemDataWrapper * >( measureInfo->itemData ); + xAssert( wrapper != 0, _T( "Unsupported menu item type in measureItem()" ) ); + + // this will contain item size + UINT & itemWidth = measureInfo->itemWidth; + UINT & itemHeight = measureInfo->itemHeight; + + // init struct for item info + MENUITEMINFO info; + memset( & info, 0, sizeof( MENUITEMINFO ) ); + info.cbSize = sizeof( MENUITEMINFO ); + + // set up flags + info.fMask = MIIM_FTYPE | MIIM_DATA | MIIM_CHECKMARKS | MIIM_STRING; + + // try to get item info + if ( ::GetMenuItemInfo( wrapper->menu, wrapper->index, TRUE, & info ) == FALSE ) + throw xCeption ( _T( "Couldn't get item info in measureItem()" ) ); + + // check if item is owner drawn + xAssert( ( info.fType & MFT_OWNERDRAW ) != 0, _T( "Not owner - drawn item encountered in measureItem()" ) ); + + // check if separator + if ( info.fType & MFT_SEPARATOR ) + { + itemWidth = 60; + itemHeight = separatorHeight; + return true; + } + + // are we processing menu bar ? + const bool isMenuBar = ::GetMenu( getParent() ) == wrapper->menu; + + // compute text width and height by simulating write to dc + // get its DC + HDC hdc = ::GetDC( getParent() ); + + // get the item data + MenuItemDataPtr data = wrapper->data; + xAssert( data != 0, _T( "Couldn't find item data in measureItem()" ) ); + + // get item text + const int length = info.cch + 1; + std::vector< TCHAR > buffer ( length ); + int count = ::GetMenuString( wrapper->menu, wrapper->index, & buffer[0], length, MF_BYPOSITION ); + SmartUtil::tstring itemText ( buffer.begin(), buffer.begin() + count ); + + // now get text extents + SIZE textSize; + memset( & textSize, 0, sizeof( SIZE ) ); + + HGDIOBJ oldFont = ::SelectObject( hdc, data->Font->handle() ); + ::GetTextExtentPoint32( hdc, itemText.c_str(), ( int ) itemText.size(), & textSize ); + ::SelectObject( hdc, oldFont ); + + // release DC + ::ReleaseDC( reinterpret_cast<HWND>(wrapper->menu), hdc ); + + // adjust item size + itemWidth = textSize.cx + borderGap; + itemHeight = textSize.cy + borderGap; + + // check to see if item has an image + Point imageSize = data->Image->getBitmapSize(); + + // this will contain checked/unchecked image size + Point checkImageSize; + + // if item has check/unchecked state images, then get their sizes + if ( ( info.hbmpChecked != NULL ) && ( info.hbmpUnchecked != NULL ) ) + checkImageSize = ( info.fState & MFS_CHECKED ) == 0 + ? Bitmap::getBitmapSize( info.hbmpUnchecked ) + : Bitmap::getBitmapSize( info.hbmpChecked ); + + // take the maximum of all available images or set default image size + imageSize.x = (std::max)( imageSize.x, checkImageSize.x ); + imageSize.y = (std::max)( imageSize.y, checkImageSize.y ); + + bool hasImage = ( imageSize.x != 0 ) && ( imageSize.y != 0 ); + + // set default image size if no image is available + if ( !hasImage ) + { + imageSize.x = (std::max)( defaultImageSize.x, (std::max)( imageSize.x, checkImageSize.x ) ); + imageSize.y = (std::max)( defaultImageSize.y, (std::max)( imageSize.y, checkImageSize.y ) ); + } + + // adjust default image size + defaultImageSize.x = (std::max)( defaultImageSize.x, imageSize.x ); + defaultImageSize.y = (std::max)( defaultImageSize.y, imageSize.y ); + + // adjust width + if ( !isMenuBar || // if not menu bar item + ( isMenuBar && hasImage ) ) // or menu bar item with image + { + // adjust item width + itemWidth += imageSize.x + textIconGap + pointerGap; + + // adjust item height + itemHeight = (std::max)( itemHeight, ( UINT ) imageSize.y + borderGap ); + } + + // adjust width for system menu items + if ( this->isSysMenu ) + itemWidth = (std::max)( ( UINT ) minSysMenuItemWidth, itemWidth ); + + // adjust width for sidebar + if ( this->drawSidebar ) + { + // get title text extents + SIZE textSize; + memset( & textSize, 0, sizeof( SIZE ) ); + + ::GetTextExtentPoint32( hdc, this->itsTitle.c_str(), ( int ) this->itsTitle.size(), & textSize ); + + itemWidth += textSize.cy; + } + + // adjust item height + itemHeight = (std::max)( itemHeight, ( UINT )::GetSystemMetrics( SM_CYMENU ) ); + return true; +} + +void WidgetMenuExtended::appendSeparatorItem() +{ + // init structure for new item + MENUITEMINFO itemInfo; + memset( & itemInfo, 0, sizeof( itemInfo ) ); + itemInfo.cbSize = sizeof( MENUITEMINFO ); + + // set flags + itemInfo.fMask = MIIM_DATA | MIIM_FTYPE; + itemInfo.fType = MFT_OWNERDRAW | MFT_SEPARATOR; + + // create item data wrapper + int position = ::GetMenuItemCount( this->itsHandle ); + private_::ItemDataWrapper * wrapper = new private_::ItemDataWrapper( this->itsHandle, position, MenuItemDataPtr( new MenuItemData() ) ); + + // set fields + itemInfo.dwItemData = reinterpret_cast< ULONG_PTR >( wrapper ); + + if ( ::InsertMenuItem( this->itsHandle, position, TRUE, & itemInfo ) ) + itsItemDataRef.push_back( wrapper ); +} + +void WidgetMenuExtended::removeItem( unsigned itemIndex ) +{ + // has sub menus ? + HMENU popup = ::GetSubMenu( this->itsHandle, itemIndex ); + + // try to remove item + if ( ::RemoveMenu( this->itsHandle, itemIndex, MF_BYPOSITION ) == TRUE ) + { + size_t i = 0; + private_::ItemDataWrapper * wrapper = 0; + int itemRemoved = -1; + + for ( i = 0; i < itsItemDataRef.size(); ++i ) + { + // get current data wrapper + wrapper = itsItemDataRef[i]; + + if ( wrapper->index == int(itemIndex) ) // if found + { + itemRemoved = int(i); + delete wrapper; + itsItemDataRef[i] = 0; + } + else if ( wrapper->index > int(itemIndex) ) + --wrapper->index; // adjust succeeding item indices + } + + if( itemRemoved != -1 ) + itsItemDataRef.erase( itsItemDataRef.begin() + itemRemoved ); + + if ( popup != NULL ) // remove sub menus if any + { + for ( i = 0; i < itsChildrenRef.size(); ++i ) + { + if ( itsChildrenRef[i]->itsHandle == popup ) + itsChildrenRef[i].reset(); + } + } + } + else + throw xCeption( _T( "Couldn't remove item in removeItem()" ) ); +} + +void WidgetMenuExtended::removeAllItems() +{ + //must be backwards, since bigger indexes change on remove + for( int i = this->getCount() - 1; i >= 0; i-- ) + { + this->removeItem( i ); + } +} + +int WidgetMenuExtended::getCount() +{ + int count = ::GetMenuItemCount( this->itsHandle ); + if( count == -1 ) + throw xCeption( _T( "Couldn't get item count in getCount()" ) ); + return count; +} + +void WidgetMenuExtended::appendItem(unsigned int id, const SmartUtil::tstring & text, MenuItemDataPtr itemData) +{ + // init structure for new item + MENUITEMINFO info; + memset( & info, 0, sizeof( info ) ); + info.cbSize = sizeof( MENUITEMINFO ); + + // set flags + info.fMask = MIIM_DATA | MIIM_FTYPE | MIIM_CHECKMARKS | MIIM_ID | MIIM_STRING; + info.fType = MFT_OWNERDRAW; + + // set fields + xAssert( !isSysMenu || id < SC_SIZE, _T( "Can't add sysmenu item with that high value, value can not be higher then SC_SIZE - 1" ) ); + info.wID = id; + + // set text + info.dwTypeData = const_cast< LPTSTR >( text.c_str() ); + + // find item index + int index = getItemIndex( id ); + + // set position to insert + bool itemExists = index != - 1; + index = itemExists ? index : ::GetMenuItemCount( this->itsHandle ); + + // set item data + private_::ItemDataWrapper * wrapper = new private_::ItemDataWrapper( this->itsHandle, index, itemData ); + info.dwItemData = reinterpret_cast< ULONG_PTR >( wrapper ); + + if ( ( !itemExists && ::InsertMenuItem( this->itsHandle, id, FALSE, & info ) == TRUE ) || + ( itemExists && ::SetMenuItemInfo( this->itsHandle, id, FALSE, & info ) == TRUE ) ) + { + itsItemDataRef.push_back( wrapper ); + } + else + throw xCeption( _T( "Couldn't insert/update item in the appendItem()" ) ); +} + +void WidgetMenuExtended::appendItem(unsigned int id, const SmartUtil::tstring & text, const IdDispatcher::F& f, MenuItemDataPtr itemData) +{ + appendItem(id, text, itemData); + callbacks.insert(std::make_pair(id, IdDispatcher(f))); +} + +void WidgetMenuExtended::appendItem(unsigned int id, const SmartUtil::tstring & text, BitmapPtr image) +{ + MenuItemDataPtr itemData(new MenuItemData()); + itemData->Image = image; + appendItem(id, text, itemData); +} + +void WidgetMenuExtended::appendItem(unsigned int id, const SmartUtil::tstring & text, const IdDispatcher::F& f, BitmapPtr image) +{ + MenuItemDataPtr itemData(new MenuItemData()); + itemData->Image = image; + appendItem(id, text, f, itemData); +} + +unsigned WidgetMenuExtended::trackPopupMenu( Widget * mainWindow, const ScreenCoordinate& sc, unsigned flags ) +{ + xAssert( mainWindow != 0, _T( "Widget can't be null while trying to display Popup Menu" ) ); + addCommands(mainWindow); + + long x = sc.getPoint().x, y = sc.getPoint().y; + + if ( x == - 1 && y == - 1 ) + { + DWORD pos = ::GetMessagePos(); + x = LOWORD( pos ); + y = HIWORD( pos ); + } + + int retVal = ::TrackPopupMenu(this->itsHandle, flags, x, y, 0, mainWindow->handle(), 0 ); + return retVal; +} + +WidgetMenuExtended::WidgetMenuExtended( SmartWin::Widget* parent ) : +isSysMenu( false ), +drawSidebar( false ), +itsTitleFont( new Font( _T( "Tahoma" ), 20, 10 ) ), +itsChildrenRef( WidgetMenuExtendedPlatformImplementation< WidgetMenuExtended, CurrentPlatform >::itsChildren ), +itsItemDataRef( WidgetMenuExtendedPlatformImplementation< WidgetMenuExtended, CurrentPlatform >::itsItemData ) +{ + this->itsParent = parent; + + // set default drawing + parent->setCallback(Message(WM_DRAWITEM), DrawItemDispatcher(std::tr1::bind(&WidgetMenuExtended::handleDrawItem, this, _1, _2))); + parent->setCallback(Message(WM_MEASUREITEM), MeasureItemDispatcher(std::tr1::bind(&WidgetMenuExtended::handleMeasureItem, this, _1))); +} + +} + +#endif This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <arn...@us...> - 2008-02-07 22:59:09
|
Revision: 992 http://dcplusplus.svn.sourceforge.net/dcplusplus/?rev=992&view=rev Author: arnetheduck Date: 2008-02-07 14:59:03 -0800 (Thu, 07 Feb 2008) Log Message: ----------- Fancy menus, language setting fix Modified Paths: -------------- dcplusplus/trunk/smartwin/include/smartwin/WidgetFactoryPlatformSmartWinDesktop.h dcplusplus/trunk/smartwin/include/smartwin/widgets/WidgetMenuExtended.h dcplusplus/trunk/win32/AppearancePage.cpp dcplusplus/trunk/win32/DCPlusPlus.rc dcplusplus/trunk/win32/MainWindow.cpp dcplusplus/trunk/win32/MainWindow.h dcplusplus/trunk/win32/PropPage.cpp dcplusplus/trunk/win32/PropPage.h dcplusplus/trunk/win32/resource.h Modified: dcplusplus/trunk/smartwin/include/smartwin/WidgetFactoryPlatformSmartWinDesktop.h =================================================================== --- dcplusplus/trunk/smartwin/include/smartwin/WidgetFactoryPlatformSmartWinDesktop.h 2008-02-06 09:37:07 UTC (rev 991) +++ dcplusplus/trunk/smartwin/include/smartwin/WidgetFactoryPlatformSmartWinDesktop.h 2008-02-07 22:59:03 UTC (rev 992) @@ -56,14 +56,12 @@ /// RichEditBox object type. typedef typename WidgetRichTextBox::ObjectType WidgetRichTextBoxPtr; -#ifdef PORT_ME /// ExtendedMenu class type. - typedef SmartWin::WidgetMenuExtended< EventHandlerClass > WidgetMenuExtended; + typedef SmartWin::WidgetMenuExtended WidgetMenuExtended; /// ExtendedMenu object type. typedef typename WidgetMenuExtended::ObjectType WidgetMenuExtendedPtr; -#endif - + /// ChooseFont class and object type. typedef SmartWin::WidgetChooseFont< SmartWin::Widget > WidgetChooseFont; @@ -115,17 +113,15 @@ return WidgetCreator< WidgetRichTextBox >::attach( this, id ); } -#ifdef PORT_ME /// Creates an Extended Menu /** The returned object is of type std::tr1::shared_ptr< WidgetMenuExtended >, but * you should use the typedef WidgetMenuExtendedPtr and not <br> * the shared_ptr itself since this may change in future releases. */ - WidgetMenuExtendedPtr createExtendedMenu() + WidgetMenuExtendedPtr createExtendedMenu(const typename WidgetMenuExtended::Seed& cs = WidgetMenuExtended::Seed()) { - return WidgetCreator< WidgetMenuExtended >::create( this ); + return WidgetCreator< WidgetMenuExtended >::create( this, cs ); } -#endif /// Creates a Tool Bar and returns a pointer to it. /** DON'T delete the returned pointer!!! Modified: dcplusplus/trunk/smartwin/include/smartwin/widgets/WidgetMenuExtended.h =================================================================== --- dcplusplus/trunk/smartwin/include/smartwin/widgets/WidgetMenuExtended.h 2008-02-06 09:37:07 UTC (rev 991) +++ dcplusplus/trunk/smartwin/include/smartwin/widgets/WidgetMenuExtended.h 2008-02-07 22:59:03 UTC (rev 992) @@ -5,14 +5,14 @@ Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met : - * Redistributions of source code must retain the above copyright notice, - this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above copyright notice, - this list of conditions and the following disclaimer in the documentation - and/or other materials provided with the distribution. - * Neither the name of the SmartWin++ nor the names of its contributors - may be used to endorse or promote products derived from this software - without specific prior written permission. + * Redistributions of source code must retain the above copyright notice, + this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + * Neither the name of the SmartWin++ nor the names of its contributors + may be used to endorse or promote products derived from this software + without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED @@ -29,10 +29,10 @@ #ifndef WidgetMenuExtended_h #define WidgetMenuExtended_h +#include "../Application.h" #include "../BasicTypes.h" #include "../CanvasClasses.h" -#include <boost/cast.hpp> -#ifdef PORT_ME + namespace SmartWin { // begin namespace SmartWin @@ -67,9 +67,9 @@ /// \ingroup GlobalStuff // MenuItemDataPtr type, contains rendering data for e.g. WidgetMenuExtended /** Helps easily create color values and so on for a WidgetMenuExtended item! <br> - * Each Menu Item can have different colors and so on, use this smart pointer to set - * those values! - */ +* Each Menu Item can have different colors and so on, use this smart pointer to set +* those values! +*/ typedef std::tr1::shared_ptr< MenuItemData > MenuItemDataPtr; namespace private_ @@ -101,10 +101,10 @@ // Wrapper Constructor ItemDataWrapper( HMENU owner, int itemIndex, MenuItemDataPtr itemData, bool isTitleItem = false ) - : menu( owner ) - , index( itemIndex ) - , isMenuTitleItem( isTitleItem ) - , data( itemData ) + : menu( owner ) + , index( itemIndex ) + , isMenuTitleItem( isTitleItem ) + , data( itemData ) {} ~ItemDataWrapper() @@ -114,8 +114,8 @@ /// Struct for coloring different areas of WidgetMenuExtended /** Contains the different color settings of the WidgetMenuExtended <br> - * Default values to constructor makes menu look roughly like MSVC++7.1 menus - */ +* Default values to constructor makes menu look roughly like MSVC++7.1 menus +*/ struct MenuColorInfo { /// Menu color @@ -141,9 +141,9 @@ /// Constructs MenuColorInfo objects /** If all the default arguments are used it will construct an object making - * menus look roughly like they do in MSVC++ 7.1 <br> - * Pass your own arguments to construct other color effects - */ + * menus look roughly like they do in MSVC++ 7.1 <br> + * Pass your own arguments to construct other color effects + */ MenuColorInfo( COLORREF menuColor = ColorUtilities::darkenColor( ::GetSysColor( COLOR_WINDOW ), 0.02 ), COLORREF stripColor = ColorUtilities::darkenColor( ::GetSysColor( COLOR_3DFACE ), 0.02 ), COLORREF titleColor = ColorUtilities::darkenColor( ::GetSysColor( COLOR_MENUBAR ), 0.1 ), @@ -161,905 +161,228 @@ {} }; -// /////////////////////////////////////////////////////////////////////////////// -// Default Menu Renderer, create your own by copying this and modyfying -// if you want your menus to be different! -// Basic process is to add Event Handlers for onDrawItem and onMeasureItem -// /////////////////////////////////////////////////////////////////////////////// -template< class MenuType > -class DefaultMenuRenderer -{ -public: - /// Rendering settting settings - static const int borderGap = 3; /// Gap between the border and item - static const int pointerGap = 5; /// Gap between item text and sub - menu pointer - static const int textIconGap = 8; /// Gap between text and icon - static const int textBorderGap = 4; /// Gap between text and rectangel border - static const int separatorHeight = 8; /// Defines default height for rectangle containing separator - static const int minSysMenuItemWidth = 130; /// Minimum width for system menu items - - static Point defaultImageSize; /// Default image size, used when no image is available - - // Default callback for WM_MEASUREITEM message processing - static bool measureItem( EventHandlerClass * parent, typename MenuType::ObjectType menu, MEASUREITEMSTRUCT * measureInfo ) - { - if ( measureInfo->CtlType != ODT_MENU ) // if not intended for us - return false; - - // get data wrapper - private_::ItemDataWrapper * wrapper = reinterpret_cast< private_::ItemDataWrapper * >( measureInfo->itemData ); - - xAssert( wrapper != 0, _T( "Unsupported menu item type in measureItem()" ) ); - - // this will contain item size - UINT & itemWidth = measureInfo->itemWidth; - UINT & itemHeight = measureInfo->itemHeight; - - // init struct for item info - MENUITEMINFO info; - memset( & info, 0, sizeof( MENUITEMINFO ) ); - info.cbSize = sizeof( MENUITEMINFO ); - - // set up flags - info.fMask = MIIM_FTYPE | MIIM_DATA | MIIM_CHECKMARKS | MIIM_STRING; - - // get menu handle - HMENU handle = reinterpret_cast< HMENU >( menu->handle() ); - - // try to get item info - if ( ::GetMenuItemInfo( handle, wrapper->index, TRUE, & info ) == FALSE ) - throw xCeption ( _T( "Couldn't get item info in measureItem()" ) ); - - // check if item is owner drawn - xAssert( ( info.fType & MFT_OWNERDRAW ) != 0, _T( "Not owner - drawn item encountered in measureItem()" ) ); - - // check if separator - if ( info.fType & MFT_SEPARATOR ) - { - itemWidth = 60; - itemHeight = separatorHeight; - return true; - } - - // are we processing menu bar ? - bool isMenuBar = ::GetMenu( parent->handle() ) == handle; - - // compute text width and height by simulating write to dc - // get its DC - HDC hdc = ::GetDC( menu->getParent()->handle() ); - - // get the item data - MenuItemDataPtr data = wrapper->data; - xAssert( data != 0, _T( "Couldn't find item data in measureItem()" ) ); - - // get item text - const int length = info.cch + 1; - std::vector< TCHAR > buffer ( length ); - int count = ::GetMenuString( handle, wrapper->index, & buffer[0], length, MF_BYPOSITION ); - SmartUtil::tstring itemText ( buffer.begin(), buffer.begin() + count ); - - // now get text extents - SIZE textSize; - memset( & textSize, 0, sizeof( SIZE ) ); - - HGDIOBJ oldFont = ::SelectObject( hdc, data->Font->getHandle() ); - ::GetTextExtentPoint32( hdc, itemText.c_str(), ( int ) itemText.size(), & textSize ); - ::SelectObject( hdc, oldFont ); - - // release DC - ::ReleaseDC( menu->handle(), hdc ); - - // adjust item size - itemWidth = textSize.cx + borderGap; - itemHeight = textSize.cy + borderGap; - - // check to see if item has an image - Point imageSize = data->Image->getBitmapSize(); - - // this will contain checked/unchecked image size - Point checkImageSize; - - // if item has check/unchecked state images, then get their sizes - if ( ( info.hbmpChecked != NULL ) && ( info.hbmpUnchecked != NULL ) ) - checkImageSize = ( info.fState & MFS_CHECKED ) == 0 - ? Bitmap::getBitmapSize( info.hbmpUnchecked ) - : Bitmap::getBitmapSize( info.hbmpChecked ); - - // take the maximum of all available images or set default image size - imageSize.x = (std::max)( imageSize.x, checkImageSize.x ); - imageSize.y = (std::max)( imageSize.y, checkImageSize.y ); - - bool hasImage = ( imageSize.x != 0 ) && ( imageSize.y != 0 ); - - // set default image size if no image is available - if ( !hasImage ) - { - imageSize.x = (std::max)( defaultImageSize.x, (std::max)( imageSize.x, checkImageSize.x ) ); - imageSize.y = (std::max)( defaultImageSize.y, (std::max)( imageSize.y, checkImageSize.y ) ); - } - - // adjust default image size - defaultImageSize.x = (std::max)( defaultImageSize.x, imageSize.x ); - defaultImageSize.y = (std::max)( defaultImageSize.y, imageSize.y ); - - // adjust width - if ( !isMenuBar || // if not menu bar item - ( isMenuBar && hasImage ) ) // or menu bar item with image - { - // adjust item width - itemWidth += imageSize.x + textIconGap + pointerGap; - - // adjust item height - itemHeight = (std::max)( itemHeight, ( UINT ) imageSize.y + borderGap ); - } - - // adjust width for system menu items - if ( menu->isSysMenu ) - itemWidth = (std::max)( ( UINT ) minSysMenuItemWidth, itemWidth ); - - // adjust width for sidebar - if ( menu->drawSidebar ) - { - // get title text extents - SIZE textSize; - memset( & textSize, 0, sizeof( SIZE ) ); - - ::GetTextExtentPoint32( hdc, menu->itsTitle.c_str(), ( int ) menu->itsTitle.size(), & textSize ); - - itemWidth += textSize.cy; - } - - // adjust item height - itemHeight = (std::max)( itemHeight, ( UINT )::GetSystemMetrics( SM_CYMENU ) ); - return true; - } - - // Default callback for WM_DRAWITEM message processing - static bool drawItem( EventHandlerClass * parent, typename MenuType::ObjectType menu, int controlID, const DRAWITEMSTRUCT & drawInfo ) - { - if ( ( controlID != 0 ) || ( drawInfo.CtlType != ODT_MENU ) ) // if not intended for us - return false; - - // setup colors - MenuColorInfo colorInfo = menu->itsColorInfo; - COLORREF colorMenuBar = colorInfo.colorMenuBar; - COLORREF colorTitle = colorInfo.colorTitle; - COLORREF colorMenuDraw = colorInfo.colorMenu; // color for drawing menu - COLORREF colorFillHighlighted = ColorUtilities::lightenColor( colorInfo.colorHighlight, 0.7 ); - - // get menu handle - HMENU handle = reinterpret_cast< HMENU >( menu->handle() ); - - // if processing menu bar - const bool isMenuBar = ::GetMenu( parent->handle() ) == handle; - - // change menu draw color for menubars - if ( isMenuBar ) - colorMenuDraw = colorMenuBar; - - // get item data wrapper - private_::ItemDataWrapper * wrapper = reinterpret_cast< private_::ItemDataWrapper * >( drawInfo.itemData ); - xAssert( wrapper != 0, _T( "Unsupported menu item in drawItem()" ) ) - - // init struct for menu item info - MENUITEMINFO info; - memset( & info, 0, sizeof( MENUITEMINFO ) ); - info.cbSize = sizeof( MENUITEMINFO ); - - // set flags - info.fMask = MIIM_CHECKMARKS | MIIM_FTYPE | MIIM_DATA | MIIM_STATE | MIIM_STRING; - - if ( ::GetMenuItemInfo( handle, wrapper->index, TRUE, & info ) == FALSE ) - throw xCeption ( _T( "Couldn't get menu item info in drawItem()" ) ); - - // check if item is owner drawn - xAssert( ( info.fType & MFT_OWNERDRAW ) != 0, _T( "Not a owner - drawn item in drawItem()" ) ) - - // get item data - MenuItemDataPtr data ( wrapper->data ); - xAssert( data != 0, _T( "Couldn't find item data in drawItem()" ) ) - - // get state info - bool isGrayed = ( drawInfo.itemState & ODS_GRAYED ) == ODS_GRAYED; - bool isChecked = ( drawInfo.itemState & ODS_CHECKED ) == ODS_CHECKED; - bool isDisabled = ( drawInfo.itemState & ODS_DISABLED ) == ODS_DISABLED; - bool isSelected = ( drawInfo.itemState & ODS_SELECTED ) == ODS_SELECTED; - bool isHighlighted = ( drawInfo.itemState & ODS_HOTLIGHT ) == ODS_HOTLIGHT; - - // this will contain item image - HBITMAP image = NULL; - - // if checked/unchecked image is avaiable - if ( ( info.hbmpChecked != NULL ) && ( info.hbmpUnchecked != NULL ) ) - image = isChecked ? info.hbmpChecked : info.hbmpUnchecked; - else // get normal image - image = data->Image->getBitmap(); - - // this will contain image size - Point imageSize = data->Image->getBitmapSize(); - - if ( ( imageSize.x == 0 ) && ( imageSize.y == 0 ) ) // no image - imageSize = defaultImageSize; // set default image size - - // compute strip width - int stripWidth = imageSize.x + textIconGap; - - // prepare item rectangle - Rectangle itemRectangle( drawInfo.rcItem.left, drawInfo.rcItem.top, // position - drawInfo.rcItem.right - drawInfo.rcItem.left, // width - drawInfo.rcItem.bottom - drawInfo.rcItem.top ); // height - - // setup buffered canvas - BufferedCanvas< FreeCanvas > canvas( menu->handle(), drawInfo.hDC ); - - // this will conain adjusted sidebar width - int sidebarWidth = 0; - - // this will contain logical information - // about title font - LOGFONT lf; - memset( & lf, 0, sizeof( LOGFONT ) ); - - // this will contain adjusted(rotated) title font for sidebar - HFONT titleFont = NULL; - - // get title font info and adjust item rectangle - if ( menu->drawSidebar ) - { - // get title font - std::tr1::shared_ptr< Font > font = menu->itsTitleFont; - - // get logical info for title font - ::GetObject( font->getHandle(), sizeof( LOGFONT ), & lf ); - - // 90 degree rotation and bold - lf.lfOrientation = lf.lfEscapement = 900; - - // create title font from logical info - titleFont = ::CreateFontIndirect( & lf ); - - // get title text size - SIZE textSize; - memset( & textSize, 0, sizeof( SIZE ) ); - - HGDIOBJ oldFont = ::SelectObject( canvas.getDc(), titleFont ); - ::GetTextExtentPoint32( canvas.getDc(), menu->itsTitle.c_str(), ( int ) menu->itsTitle.size(), & textSize ); - ::SelectObject( canvas.getDc(), oldFont ); - - // set sidebar width to text height - sidebarWidth = textSize.cy; - - // adjust item rectangle and item background - itemRectangle.pos.x += sidebarWidth; - itemRectangle.size.x -= sidebarWidth; - } - - // draw sidebar with menu title - if ( ( drawInfo.itemAction & ODA_DRAWENTIRE ) && ( menu->drawSidebar ) && !menu->itsTitle.empty() ) - { - // select title font and color - HGDIOBJ oldFont = ::SelectObject ( canvas.getDc(), titleFont ); - COLORREF oldColor = canvas.setTextColor( colorInfo.colorTitleText ); - - // set background mode to transparent - bool oldMode = canvas.setBkMode( true ); - - // get rect for sidebar - RECT rect; - ::GetClipBox( drawInfo.hDC, & rect ); - //rect.left -= borderGap; - - // set title rectangle - Rectangle textRectangle( 0, 0, sidebarWidth, rect.bottom - rect.top ); - - // draw background - Brush brush( canvas, colorInfo.colorTitle ); - canvas.fillRectangle( textRectangle, brush ); - - // draw title - textRectangle.pos.y += 10; - canvas.drawText( menu->itsTitle, textRectangle, DT_BOTTOM | DT_SINGLELINE ); - - // clear - canvas.setTextColor( oldColor ); - canvas.setBkMode( oldMode ); - - // set back old font - ::SelectObject( canvas.getDc(), oldFont ); - } - - // destroy title font - ::DeleteObject( titleFont ); - - // set item background - if ( wrapper->isMenuTitleItem ) // for title - { - Brush brush( canvas, colorTitle ); - canvas.fillRectangle( itemRectangle, brush ); - - // draw raised border - RECT rc( itemRectangle ); - ::DrawEdge( canvas.getDc(), & rc, EDGE_RAISED, BF_RECT ); - } - else // for normal items - { - Brush brush( canvas, colorMenuDraw ); - canvas.fillRectangle( itemRectangle, brush ); - } - - if ( isMenuBar && isSelected ) // draw selected menu bar item - { - // TODO: Simulate shadow - - // select pen for drawing broder - // and brush for filling item - COLORREF colorBorder = 0; - Pen pen ( canvas, colorBorder ); - Brush brush ( canvas, ColorUtilities::lightenColor( colorMenuBar, 0.5 ) ); - - canvas.rectangle( itemRectangle ); - } // end if - else if ( ( isSelected || isHighlighted ) && !isDisabled ) // draw selected or highlighted menu item (if not inactive) - { - // select pen for drawing broder - // and brush for filling item - Pen pen ( canvas, colorInfo.colorHighlight ); - Brush brush ( canvas, colorFillHighlighted ); - - canvas.rectangle( itemRectangle ); - } // end if - else if ( !isMenuBar && !wrapper->isMenuTitleItem ) // draw strip bar for menu items (except menu title item) - { - // create rectangle for strip bar - Rectangle stripRectangle ( itemRectangle ); - stripRectangle.size.x = stripWidth; - - // draw strip bar - Brush brush( canvas, colorInfo.colorStrip ); - canvas.fillRectangle( stripRectangle, brush ); - } // end if - - if ( !isMenuBar && info.fType & MFT_SEPARATOR ) // draw separator - { - // set up separator rectangle - Rectangle rectangle ( itemRectangle ); - - // center in the item rectangle - rectangle.pos.x += stripWidth + textIconGap; - rectangle.pos.y += rectangle.size.y / 2 - 1; - - // select color - Pen pen( canvas, ::GetSysColor( COLOR_GRAYTEXT ) ); - - // draw separator - canvas.moveTo( rectangle.pos.x, rectangle.pos.y ); - canvas.lineTo( rectangle.size.x, rectangle.pos.y ); - } // end if - else // not a seperator, then draw item text and icon - { - // get item text - const int length = info.cch + 1; - std::vector< TCHAR > buffer( length ); - int count = ::GetMenuString( handle, wrapper->index, & buffer[0], length, MF_BYPOSITION ); - SmartUtil::tstring itemText( buffer.begin(), buffer.begin() + count ); - - // index will contain accelerator position - size_t index = itemText.find_last_of( _T( '\t' ) ); - - // split item text to draw accelerator correctly - SmartUtil::tstring text = itemText.substr( 0, index ); - - // get accelerator - SmartUtil::tstring accelerator; - - if ( index != itemText.npos ) - accelerator = itemText.substr( index + 1 ); - - // set mode to transparent - bool oldMode = canvas.setBkMode( true ); - - // select item text color - canvas.setTextColor( isGrayed ? ::GetSysColor( COLOR_GRAYTEXT ) : wrapper->isMenuTitleItem ? colorInfo.colorTitleText : data->TextColor ); - - // Select item font if available - FontPtr font( data->Font ); - - HGDIOBJ oldFont = ::SelectObject( canvas.getDc(), font->getHandle() ); - - if ( !isMenuBar && !wrapper->isMenuTitleItem && !itemText.empty() ) // if menu item - { - // compute text rectangle - Rectangle textRectangle( itemRectangle ); - - // adjust rectangle - textRectangle.pos.x += stripWidth + textIconGap; - textRectangle.size.x -= stripWidth + textIconGap + borderGap; - - canvas.drawText( text, textRectangle, DT_LEFT | DT_VCENTER | DT_SINGLELINE ); - - // draw accelerator - if ( !accelerator.empty() ) - canvas.drawText( accelerator, textRectangle, DT_RIGHT | DT_VCENTER | DT_SINGLELINE ); - } // end if - else if ( !itemText.empty() ) // draw menu bar item text - { - Rectangle textRectangle( itemRectangle ); - - if ( image != NULL ) // has icon - textRectangle.pos.x += textIconGap; - - canvas.drawText( text, textRectangle, DT_CENTER | DT_VCENTER | DT_SINGLELINE ); - } // end if - - // set back old font - ::SelectObject( canvas.getDc(), oldFont ); - - // reset old mode - canvas.setBkMode( oldMode ); - - // set up image rectangle - Rectangle imageRectangle( itemRectangle.pos, imageSize ); - - // adjust icon rectangle - imageRectangle.pos.x += ( stripWidth - imageSize.x ) / 2; - imageRectangle.pos.y += ( itemRectangle.size.y - imageSize.y ) / 2; - - if ( image == NULL ) // drawing item without icon - { - if ( isChecked ) // needs checkmark - { - // draw the check mark or radio bullet - // prepare background - Brush brush( canvas, colorInfo.colorStrip ); - canvas.fillRectangle( imageRectangle, brush ); - - // create memory DC and set bitmap on it - HDC memoryDC = ::CreateCompatibleDC( canvas.getDc() ); - HGDIOBJ old = ::SelectObject( memoryDC, ::CreateCompatibleBitmap( canvas.getDc(), imageSize.x, imageSize.y ) ); - - // draw into memory - RECT rc( Rectangle( 0, 0, imageSize.x, imageSize.y ) ); - ::DrawFrameControl( memoryDC, & rc, DFC_MENU, ( info.fType & MFT_RADIOCHECK ) == 0 ? DFCS_MENUCHECK : DFCS_MENUBULLET ); - - const int adjustment = 2; // adjustment for mark to be in the center - - // bit - blast into out canvas - ::BitBlt( canvas.getDc(), imageRectangle.pos.x + adjustment, imageRectangle.pos.y, imageSize.x, imageSize.y, memoryDC, 0, 0, SRCAND ); - - // delete memory dc - ::DeleteObject( ::SelectObject( memoryDC, old ) ); - ::DeleteDC( memoryDC ); - } - } - else // drawing item with icon - { - if ( isSelected && !isDisabled ) // if selected and active, then imitate icon shadow - { - // adjust icon position for later drawing - imageRectangle.pos.x -= 1; - imageRectangle.pos.y -= 1; - - // setup brush for shadow emulation - Brush brush( canvas, ColorUtilities::darkenColor( colorInfo.colorStrip, 0.7 ) ); - - // draw the icon shadow - Rectangle shadowRectangle( imageRectangle ); - shadowRectangle.pos.x += 2; - shadowRectangle.pos.y += 2; - canvas.drawBitmap( image, shadowRectangle, colorInfo.colorImageBackground, true ); - } - - // draw normal icon - canvas.drawBitmap( image, imageRectangle, colorInfo.colorImageBackground, isGrayed ); - } - - if ( isChecked ) // draw surrounding rectangle for checked items - { - /*if ( image != NULL ) // adjust for icon - iconRectangle = iconRectangle.shrink( 1.20 );*/ - - // draw the surrounding rectangle - Pen pen( canvas, colorInfo.colorHighlight ); - canvas.line( imageRectangle ); - } - } - - // blast buffer into screen - if ( ( drawInfo.itemAction & ODA_DRAWENTIRE ) && menu->drawSidebar ) // adjustment for sidebar - { - itemRectangle.pos.x -= sidebarWidth; - itemRectangle.size.x += sidebarWidth; - } - - canvas.blast( itemRectangle ); - return true; - } -}; - -// Since this is a Dispatcher ONLY for Menus it CAN'T be a "non control", therefore -// we DON'T need the partial specialization for it... -template< class EventHandlerClass, class WidgetType, class MessageMapType > -class WidgetMenuExtendedDispatcher -{ - static EventHandlerClass * getParent( Widget * parentGiven ) - { - Widget * tmpParent = parentGiven; - EventHandlerClass * ptrMainParent; - while ( true ) - { - ptrMainParent = dynamic_cast< EventHandlerClass * >( tmpParent ); - if ( ptrMainParent != 0 ) - break; - tmpParent = tmpParent->getParent(); - if ( 0 == tmpParent ) - throw xCeption( _T( "Serious error while trying to get MainWindow parent to menu, menu probably not attached to Main WidgetFactory..." ) ); - } - return ptrMainParent; - } - -public: -#ifdef PORT_ME - static HRESULT dispatch( private_::SignalContent & params ) - { - EventHandlerClass * ptrMainParent = getParent( params.This->getParent() ); - typename WidgetType::menuExtendedVoidFunctionTakingUInt func = - reinterpret_cast< typename WidgetType::menuExtendedVoidFunctionTakingUInt >( params.Function ); - - StayAliveDeleter< WidgetType > deleter; - std::tr1::shared_ptr< WidgetType > ptrThis( boost::polymorphic_cast< WidgetType * >( params.This ), deleter ); - - func - ( dynamic_cast< EventHandlerClass * >( 0 ) - , ptrThis - , LOWORD( params.Msg.WParam ) - ); - return 1; - } - - static HRESULT dispatchThis( private_::SignalContent & params ) - { - EventHandlerClass * ptrMainParent = getParent( params.This->getParent() ); - typename WidgetType::itsVoidMenuExtendedFunctionTakingUInt func = - reinterpret_cast< typename WidgetType::itsVoidMenuExtendedFunctionTakingUInt >( params.FunctionThis ); - - StayAliveDeleter< WidgetType > deleter; - std::tr1::shared_ptr< WidgetType > ptrThis( boost::polymorphic_cast< WidgetType * >( params.This ), deleter ); - - ( ( * boost::polymorphic_cast< EventHandlerClass * >( ptrMainParent ) ).*func ) - ( ptrThis - , LOWORD( params.Msg.WParam ) - ); - return 1; - } - - static HRESULT dispatchDrawItem( private_::SignalContent & params ) - { - // get callback - typename WidgetType::boolDrawItemFunction func = - reinterpret_cast< typename WidgetType::boolDrawItemFunction >( params.Function ); - - StayAliveDeleter< WidgetType > deleter; - std::tr1::shared_ptr< WidgetType > ptrThis( boost::polymorphic_cast< WidgetType * >( params.This ), deleter ); - - // call the callback - bool handled = func - ( dynamic_cast< EventHandlerClass * >( params.This->getParent() ) - , ptrThis - , params.Msg.WParam // control id - , * reinterpret_cast< DRAWITEMSTRUCT * >( params.Msg.LParam ) - ); - return handled; - } - - static HRESULT dispatchDrawItemThis( private_::SignalContent & params ) - { - // get method pointer - typename WidgetType::itsBoolDrawItemFunction func = - reinterpret_cast< typename WidgetType::itsBoolDrawItemFunction >( params.FunctionThis ); - - StayAliveDeleter< WidgetType > deleter; - std::tr1::shared_ptr< WidgetType > ptrThis( boost::polymorphic_cast< WidgetType * >( params.This ), deleter ); - - // call method - bool handled = ( ( * boost::polymorphic_cast< EventHandlerClass * >( params.This->getParent() ) ).*func ) - ( ptrThis - , params.Msg.WParam // control id - , * reinterpret_cast< DRAWITEMSTRUCT * >( params.Msg.LParam ) - ); - return handled; - } - - static HRESULT dispatchMeasureItem( private_::SignalContent & params ) - { - // get callback - typename WidgetType::boolMeasureItemFunction func = - reinterpret_cast< typename WidgetType::boolMeasureItemFunction >( params.Function ); - - StayAliveDeleter< WidgetType > deleter; - std::tr1::shared_ptr< WidgetType > ptrThis( boost::polymorphic_cast< WidgetType * >( params.This ), deleter ); - - // call the callback - bool handled = func - ( dynamic_cast< EventHandlerClass * >( params.This->getParent() ) - , ptrThis - , reinterpret_cast< MEASUREITEMSTRUCT * >( params.Msg.LParam ) - ); - return handled; - } - - static HRESULT dispatchMeasureItemThis( private_::SignalContent & params ) - { - // get method pointer - typename WidgetType::itsBoolMeasureItemFunction func = - reinterpret_cast< typename WidgetType::itsBoolMeasureItemFunction >( params.FunctionThis ); - - StayAliveDeleter< WidgetType > deleter; - std::tr1::shared_ptr< WidgetType > ptrThis( boost::polymorphic_cast< WidgetType * >( params.This ), deleter ); - - // call method - bool handled = ( ( * boost::polymorphic_cast< EventHandlerClass * >( params.This->getParent() ) ).*func ) - ( ptrThis - , reinterpret_cast< MEASUREITEMSTRUCT * >( params.Msg.LParam ) - ); - return handled; - } - - static HRESULT dispatchPopup( private_::SignalContent & params ) - { - // get callback - typename WidgetType::voidPopupFunction func = - reinterpret_cast< typename WidgetType::voidPopupFunction >( params.Function ); - - StayAliveDeleter< WidgetType > deleter; - std::tr1::shared_ptr< WidgetType > ptrThis( boost::polymorphic_cast< WidgetType * >( params.This ), deleter ); - - // call the callback - func - ( dynamic_cast< EventHandlerClass * >( params.This->getParent() ) - , ptrThis - ); - return 0; - } - - static HRESULT dispatchPopupThis( private_::SignalContent & params ) - { - // get method pointer - typename WidgetType::itsVoidPopupFunction func = - reinterpret_cast< typename WidgetType::itsVoidPopupFunction >( params.FunctionThis ); - - StayAliveDeleter< WidgetType > deleter; - std::tr1::shared_ptr< WidgetType > ptrThis( boost::polymorphic_cast< WidgetType * >( params.This ), deleter ); - - // call method - ( ( * boost::polymorphic_cast< EventHandlerClass * >( params.This->getParent() ) ).*func ) - ( ptrThis - ); - return 0; - } -#endif -}; - -// Menu Renderer static data members initialization -template< class MenuType > -Point DefaultMenuRenderer< MenuType >::defaultImageSize = Point( 16, 16 ); - // Platform specific implementation template< class MenuType, Platform > class WidgetMenuExtendedPlatformImplementation; /// Specialized functions in menu for desktop Windows API version /** This class contains all the functions in the WidgetMenuExtended which only works - * in the Desktop Version of the OS. <br> - * Though WidgetMenuExtended class does not actually WORK on WinCE we plan to MAKE - * it work in future versions, therefore we have created the CurrentPlatform - * specialization classes for it here...!! - */ -template< class MenuType > -class WidgetMenuExtendedPlatformImplementation< MenuType, SmartWinDesktop > +* in the Desktop Version of the OS. <br> +* Though WidgetMenuExtended class does not actually WORK on WinCE we plan to MAKE +* it work in future versions, therefore we have created the CurrentPlatform +* specialization classes for it here...!! +*/ +template< typename MenuType > +class WidgetMenuExtendedPlatformImplementation< MenuType, SmartWinDesktop > { - // friends - friend class DefaultMenuRenderer< MenuType >; public: - typedef std::tr1::shared_ptr< MenuType > WidgetMenuExtendedPtr; - typedef WidgetMenuExtendedDispatcher< MenuType > Dispatcher; - /// Attaches the menu to a parent window - void attach( EventHandlerClass * mainWindow ); + struct Seed { + Seed(bool popup_) : popup(popup_) { } + Seed() : popup(false) { } + bool popup; + }; + HMENU handle() const { + return itsHandle; + } + + HWND getParent() const { + return itsParent ? itsParent->handle() : 0; + } + /// Actually creates the menu /** Creates the menu, the menu will be created initially empty! - */ - void create( bool isPopup = false ); + */ + void create(const Seed& cs); - /// Actually creates the menu - /** Copies the menu if copy is true, otherwise just hooks it - */ - void create( HMENU source, bool copy ); + /// Attaches the menu to the parent window + void attach(); /// Appends a popup to the menu /** Everything you "append" to a menu is added sequentially to the menu <br> - * This specific "append" function appends a "popup" menu which is a menu - * containing other menus. <br> - * With other words a menu which is not an "option" but rather a new "subgroup". - * <br> - * The "File" menu of most application is for instance a "popup" menu while the - * File/Print is often NOT a popup. <br> - * To append items to the popup created call one of the appendItem overloaded - * functions on the returned value of this function. <br> - * Also, although references to all menu objects must be kept ( since they're - * not collected automatically like other Widgets ) <br> - * you don't have to keep a reference to the return value of this function since - * it's being added as a reference to the children list of the "this" object. - * <br> - * A popup is basically another branch in the menu hierarchy <br> - * See the WidgetMenu project for a demonstration. - */ - WidgetMenuExtendedPtr appendPopup( const SmartUtil::tstring & text, MenuItemDataPtr itemData = MenuItemDataPtr( new MenuItemData() ) ); + * This specific "append" function appends a "popup" menu which is a menu + * containing other menus. <br> + * With other words a menu which is not an "option" but rather a new "subgroup". + * <br> + * The "File" menu of most application is for instance a "popup" menu while the + * File/Print is often NOT a popup. <br> + * To append items to the popup created call one of the appendItem overloaded + * functions on the returned value of this function. <br> + * Also, although references to all menu objects must be kept ( since they're + * not collected automatically like other Widgets ) <br> + * you don't have to keep a reference to the return value of this function since + * it's being added as a reference to the children list of the "this" object. + * <br> + * A popup is basically another branch in the menu hierarchy <br> + * See the WidgetMenu project for a demonstration. + */ + WidgetMenuExtendedPtr appendPopup( const SmartUtil::tstring & text, MenuItemDataPtr itemData = MenuItemDataPtr(new MenuItemData()) ); /// Returns the "System Menu" /** The system menu is a special menu that ( normally ) is accessed by pressing - * the "window icon" at the top left of the window. <br> - * In SmartWin++ this menu can ALSO be easily manipulated and added items to - * etc... <br> - * Also, although references to all menu objects must be kept ( since they're - * not collected automatically like other Widgets ) <br> - * you don't have to keep a reference to the return value of this function since - * it's being added as a reference to the children list <br> - * of the "this" object. <br> - * See the WidgetMenu sample project for a demonstration. - */ + * the "window icon" at the top left of the window. <br> + * In SmartWin++ this menu can ALSO be easily manipulated and added items to + * etc... <br> + * Also, although references to all menu objects must be kept ( since they're + * not collected automatically like other Widgets ) <br> + * you don't have to keep a reference to the return value of this function since + * it's being added as a reference to the children list <br> + * of the "this" object. <br> + * See the WidgetMenu sample project for a demonstration. + */ WidgetMenuExtendedPtr getSystemMenu(); -protected: - // Initializes menu with given handle - void init( HMENU handle ); + /// Rendering settting settings + static const int borderGap; /// Gap between the border and item + static const int pointerGap; /// Gap between item text and sub - menu pointer + static const int textIconGap; /// Gap between text and icon + static const int textBorderGap; /// Gap between text and rectangel border + static const int separatorHeight; /// Defines default height for rectangle containing separator + static const int minSysMenuItemWidth; /// Minimum width for system menu items + static Point defaultImageSize; /// Default image size, used when no image is available +protected: // its sub menus std::vector< WidgetMenuExtendedPtr > itsChildren; // its item data std::vector < private_::ItemDataWrapper * > itsItemData; + + HMENU itsHandle; + + Widget* itsParent; + + typedef std::map<unsigned, Widget::CallbackType> CallbackMap; + CallbackMap callbacks; + + void addCommands(Widget* widget); }; /// Extended Menu class /** \ingroup WidgetControls - * \WidgetUsageInfo - * \image html menuextended.png - * Class for creating an Extended Menu Control which then can be attached to e.g. a - * WidgetWindow. <br> - * Note for Desktop version only! <br> - * After you have created a menu you must call WidgetMenu::attach() to make it - * "attach" to the WidgetWindow you want it to belong to. <br> - * Do not be fooled, a WidgetMenuExtended is a much more advanced menu type then the - * "normal" WidgetMenu and contains support for visualizations far beyond the - * capabilities of the WidgetMenu. <br> - * If you need those truly awesome visual menu effects use this menu control instead - * of the WidgetMenu. - */ +* \WidgetUsageInfo +* \image html menuextended.png +* Class for creating an Extended Menu Control which then can be attached to e.g. a +* WidgetWindow. <br> +* Note for Desktop version only! <br> +* After you have created a menu you must call WidgetMenu::attach() to make it +* "attach" to the WidgetWindow you want it to belong to. <br> +* Do not be fooled, a WidgetMenuExtended is a much more advanced menu type then the +* "normal" WidgetMenu and contains support for visualizations far beyond the +* capabilities of the WidgetMenu. <br> +* If you need those truly awesome visual menu effects use this menu control instead +* of the WidgetMenu. +*/ class WidgetMenuExtended : - public WidgetMenuExtendedPlatformImplementation< CurrentPlatform > + public WidgetMenuExtendedPlatformImplementation< WidgetMenuExtended, CurrentPlatform >, + public boost::enable_shared_from_this< WidgetMenuExtended > { // friends - friend class DefaultMenuRenderer< WidgetMenuExtended >; - friend class WidgetMenuExtendedPlatformImplementation< CurrentPlatform >; + friend class WidgetMenuExtendedPlatformImplementation< WidgetMenuExtended, CurrentPlatform >; friend class WidgetCreator< WidgetMenuExtended >; - typedef WidgetMenuExtendedPlatformImplementation< CurrentPlatform > Implementation; - typedef SmartWin::DefaultMenuRenderer< WidgetMenuExtended > DefaultMenuRenderer; - typedef typename WidgetMenuExtendedPlatformImplementation< CurrentPlatform >::Dispatcher Dispatcher; + typedef WidgetMenuExtendedPlatformImplementation< WidgetMenuExtended, CurrentPlatform > Implementation; public: /// Type of object typedef WidgetMenuExtended ThisType; /// Object type - typedef typename WidgetMenuExtendedPlatformImplementation< CurrentPlatform >::WidgetMenuExtendedPtr ObjectType; + typedef WidgetMenuExtendedPlatformImplementation< WidgetMenuExtended, CurrentPlatform >::WidgetMenuExtendedPtr ObjectType; - /// Creational info - //TODO: empty because it is not used anywhere ... - class Seed - {}; + struct IdDispatcher + { + typedef std::tr1::function<void (unsigned)> F; - // Event Handlers signature typedefs + IdDispatcher(const F& f_) : f(f_) { } - /// \ingroup eventsSignatures - /// \typedef Typedef of a member function to the original class taking pointer to the this Widget and an unsigned int returning void - typedef void ( EventHandlerClass::* itsVoidMenuExtendedFunctionTakingUInt )( ObjectType, unsigned ); + bool operator()(const MSG& msg, LRESULT& ret) { + f(LOWORD(msg.wParam)); + return true; + } - /// \ingroup eventsSignatures - /// Typedef of a static/global function taking a pointer to the original class, a pointer to the this Widget class and an unsigned int returning void - typedef void ( * menuExtendedVoidFunctionTakingUInt )( EventHandlerClass *, ObjectType, unsigned ); + F f; + }; - /// \ingroup eventsSignatures - /// \typedef Typedef of a member function to the original class taking pointer to the this Widget and an unsigned int returning void - typedef bool ( EventHandlerClass::* itsBoolDrawItemFunction )( ObjectType, int, const DRAWITEMSTRUCT & ); + struct DrawItemDispatcher { + typedef std::tr1::function<bool (int, LPDRAWITEMSTRUCT)> F; - /// \ingroup eventsSignatures - /// Typedef of a static/global function taking a pointer to the original class, a pointer to the this Widget class and an unsigned int returning void - typedef bool ( * boolDrawItemFunction )( EventHandlerClass *, ObjectType, int, const DRAWITEMSTRUCT & ); + DrawItemDispatcher(const F& f_) : f(f_) { } - /// \ingroup eventsSignatures - /// \typedef Typedef of a member function to the original class taking pointer to the this Widget and an unsigned int returning void - typedef bool ( EventHandlerClass::* itsBoolMeasureItemFunction )( ObjectType, MEASUREITEMSTRUCT * ); + bool operator()(const MSG& msg, LRESULT& ret) { + return f(msg.wParam, reinterpret_cast<LPDRAWITEMSTRUCT>(msg.lParam)); + } - /// \ingroup eventsSignatures - /// Typedef of a static/global function taking a pointer to the original class, a pointer to the this Widget class and an unsigned int returning void - typedef bool ( * boolMeasureItemFunction )( EventHandlerClass *, ObjectType, MEASUREITEMSTRUCT * ); + F f; + }; - /// \ingroup eventsSignatures - /// \typedef Typedef of a member function to the original class taking pointer to the this Widget returning void - typedef void ( EventHandlerClass::* itsVoidPopupFunction )( ObjectType ); + struct MeasureItemDispatcher { + typedef std::tr1::function<bool (LPMEASUREITEMSTRUCT)> F; - /// \ingroup eventsSignatures - /// Typedef of a static/global function taking a pointer to the original class, a pointer to the this Widget class returning void - typedef void ( * voidPopupFunction )( EventHandlerClass *, ObjectType ); + MeasureItemDispatcher(const F& f_) : f(f_) { } - // Overriden to set default drawing - void create( bool isPopup = false ); + bool operator()(const MSG& msg, LRESULT& ret) { + return f(reinterpret_cast<LPMEASUREITEMSTRUCT>(msg.lParam)); + } - // Overriden to set default drawing - void create( HMENU source, bool copy ); + F f; + }; /// Setting event handler for Draw Item Event /** The Draw Item Event will be raised when the menu needs to draw itself, if you - * wish to truly be creative and be 100% in control you must handle this Event - * and do the actualy drawing of the Menu yourself, but for most people it will - * be enough to just manipulate the background colors etc of the MenuItemData - * given to the menu in the appendItem or to call the setColorInfo function <br> - * Note! <br> - * If this event is handled you also MUST handle the Measure Item Event!! - */ - void onDrawItem( boolDrawItemFunction eventHandler ); - void onDrawItem( itsBoolDrawItemFunction eventHandler ); + * wish to truly be creative and be 100% in control you must handle this Event + * and do the actualy drawing of the Menu yourself, but for most people it will + * be enough to just manipulate the background colors etc of the MenuItemData + * given to the menu in the appendItem or to call the setColorInfo function <br> + * Note! <br> + * If this event is handled you also MUST handle the Measure Item Event!! + */ + bool handleDrawItem(int id, LPDRAWITEMSTRUCT drawInfo); - /// Setting event handler for Draw Item Event + /// Setting event handler for Measure Item Event /** The Measure Item Event is nessecary to handle if you want to draw the menu - * yourself since it is inside this Event Handler you're telling the system how - * much space you need to actually do the drawing <br> - * Note! <br> - * If this event is handled you also MUST handle the Draw Item Event!! - */ - void onMeasureItem( boolMeasureItemFunction eventHandler ); - void onMeasureItem( itsBoolMeasureItemFunction eventHandler ); + * yourself since it is inside this Event Handler you're telling the system how + * much space you need to actually do the drawing <br> + * Note! <br> + * If this event is handled you also MUST handle the Draw Item Event!! + */ + bool handleMeasureItem(LPMEASUREITEMSTRUCT measureInfo); - /// Sets the event handler for the Popup event - void onPopup( voidPopupFunction eventHandler ); - - /// Sets the event handler for the Popup event - void onPopup( itsVoidPopupFunction eventHandler ); - /// Appends a separator item to the menu /** A menu separator is basically just "air" between menu items.< br > - * A separator cannot be "clicked" or "chosen". - */ + * A separator cannot be "clicked" or "chosen". + */ void appendSeparatorItem(); /// Appends a Menu Item /** eventHandler is the function that will receive the "click" event from the - * menu item. <br> - * Event handler's signature must be "void foo( WidgetMenuExtendedPtr, unsigned - * int )" and it must be contained as a member <br> - * of the class that is defined as the EventHandlerClass, normally either the - * WidgetWindow derived class or the class derived from WidgetMenu. <br> - * See e.g. WidgetMenu for an example. <br> - * The reason to why we have this "id" is because the same event handler can be - * defined for several menu items even in fact across menu objects, therefore - * this number should be unique across the application. - */ - void appendItem( unsigned itemID, const SmartUtil::tstring & text, MenuItemDataPtr itemData, itsVoidMenuExtendedFunctionTakingUInt eventHandler ); - void appendItem( unsigned itemID, const SmartUtil::tstring & text, MenuItemDataPtr itemData, menuExtendedVoidFunctionTakingUInt eventHandler ); + * menu item. <br> + * Event handler's signature must be "void foo( WidgetMenuExtendedPtr, unsigned + * int )" and it must be contained as a member <br> + * of the class that is defined as the Widget, normally either the + * WidgetWindow derived class or the class derived from WidgetMenu. <br> + * See e.g. WidgetMenu for an example. <br> + * The reason to why we have this "id" is because the same event handler can be + * defined for several menu items even in fact across menu objects, therefore + * this number should be unique across the application. + */ + void appendItem(unsigned int id, const SmartUtil::tstring & text, MenuItemDataPtr itemData = MenuItemDataPtr(new MenuItemData())); + void appendItem(unsigned int id, const SmartUtil::tstring & text, const IdDispatcher::F& f, MenuItemDataPtr itemData = MenuItemDataPtr(new MenuItemData())); + void appendItem(unsigned int id, const SmartUtil::tstring & text, BitmapPtr image); + void appendItem(unsigned int id, const SmartUtil::tstring & text, const IdDispatcher::F& f, BitmapPtr image); /// Removes specified item from this menu /** Call this function to actually DELETE a menu item from the menu hierarchy. - * Note that you have to specify the item position; and whenever you remove an item, - * all subsequent items change positions. To remove a range of items, remove from - * end to start. - */ + * Note that you have to specify the item position; and whenever you remove an item, + * all subsequent items change positions. To remove a range of items, remove from + * end to start. + */ void removeItem( unsigned itemIndex ); /// Remove all items from the menu /** Will also delete any submenus. - */ + */ void removeAllItems(); /// Return the number of items in the menu @@ -1067,69 +390,69 @@ /// Displays and handles a menu which can appear anywhere in the window. /** Typically called by a Right Mouse click. If both the x and the y coordinate - * is - 1 ( default ) it'll show the context menu on the position the mouse was - * at when the system last recieved a message, basically the "right" place... - * <br> - * Depending on the flags it might return the id of the menu item selected, or 0 - * if none was chosen. Flags with TPM_RETURNCMD will return the menu - item, but - * not do the menu command. - * < ul > - * < li >TPM_CENTERALIGN : Centers the shortcut menu horizontally relative to the coordinate specified by the x parameter< /li > - * < li >TPM_LEFTALIGN : Function positions the shortcut menu so that its left side is aligned with the coordinate specified by the x parameter< /li > - * < li >TPM_RIGHTALIGN : Opposite of LEFTALIGN< /li > - * < li >TPM_BOTTOMALIGN : Aligns menu bottoms to the coordinate specified by the y parameter< /li > - * < li >TPM_TOPALIGN : Opposite of BOTTOMALIGN< /li > - * < li >TPM_VCENTERALIGN : Centers vertically relative to the y parameter< /li > - * < li >TPM_NONOTIFY : Restricts the menu from sending notifications when user clicks item< /li > - * < li >TPM_RETURNCMD : returns the menu item identifier of the user's selection in the return value but DOES NOT carry out the event handler< /li > - * < li >TPM_LEFTBUTTON : Restricts users to selecting menu items with only left mouse button< /li > - * < li >TPM_RIGHTBUTTON : User can choose menu item with both mouse buttons< /li > - * < /ul > - * None of the following are used by default but can be manually chosen if you - * manually call SystemParametersInfo - * < ul > - * < li >TPM_HORNEGANIMATION : Animates the menu from right to left< /li > - * < li >TPM_HORPOSANIMATION : Animates the menu from left to right< /li > - * < li >TPM_NOANIMATION : Displays menu without animation< /li > - * < li >TPM_VERNEGANIMATION : Animates the menu from bottom to top< /li > - * < li >TPM_VERPOSANIMATION : Animates the menu from top to bottom< /li > - * < /ul > - */ - unsigned trackPopupMenu( EventHandlerClass * mainWindow, int x = - 1, int y = - 1, unsigned flags = 0 ); + * is - 1 ( default ) it'll show the context menu on the position the mouse was + * at when the system last recieved a message, basically the "right" place... + * <br> + * Depending on the flags it might return the id of the menu item selected, or 0 + * if none was chosen. Flags with TPM_RETURNCMD will return the menu - item, but + * not do the menu command. + * < ul > + * < li >TPM_CENTERALIGN : Centers the shortcut menu horizontally relative to the coordinate specified by the x parameter< /li > + * < li >TPM_LEFTALIGN : Function positions the shortcut menu so that its left side is aligned with the coordinate specified by the x parameter< /li > + * < li >TPM_RIGHTALIGN : Opposite of LEFTALIGN< /li > + * < li >TPM_BOTTOMALIGN : Aligns menu bottoms to the coordinate specified by the y parameter< /li > + * < li >TPM_TOPALIGN : Opposite of BOTTOMALIGN< /li > + * < li >TPM_VCENTERALIGN : Centers vertically relative to the y parameter< /li > + * < li >TPM_NONOTIFY : Restricts the menu from sending notifications when user clicks item< /li > + * < li >TPM_RETURNCMD : returns the menu item identifier of the user's selection in the return value but DOES NOT carry out the event handler< /li > + * < li >TPM_LEFTBUTTON : Restricts users to selecting menu items with only left mouse button< /li > + * < li >TPM_RIGHTBUTTON : User can choose menu item with both mouse buttons< /li > + * < /ul > + * None of the following are used by default but can be manually chosen if you + * manually call SystemParametersInfo + * < ul > + * < li >TPM_HORNEGANIMATION : Animates the menu from right to left< /li > + * < li >TPM_HORPOSANIMATION : Animates the menu from left to right< /li > + * < li >TPM_NOANIMATION : Displays menu without animation< /li > + * < li >TPM_VERNEGANIMATION : Animates the menu from bottom to top< /li > + * < li >TPM_VERPOSANIMATION : Animates the menu from top to bottom< /li > + * < /ul > + */ + unsigned trackPopupMenu( Widget * mainWindow, const ScreenCoordinate& sc, unsigned flags = 0 ); /// Sets menu title /** A WidgetMenuExtended can have a title, this function sets that title - */ + */ void setTitle( const SmartUtil::tstring & title, bool drawSidebar = false ); /// Sets title font /** Create a font through e.g. createFont in WidgetFactory or similar and set the - * title font to the menu title through using this function - */ + * title font to the menu title through using this function + */ void setTitleFont( FontPtr font ); /// Removes menu title /** If clearSidebar is true, sidebar is removed - */ + */ void clearTitle( bool clearSidebar = false ); /// Enables or disables menu item /** If the second argument is true the menu item will be enabled, otherwise it'll - * be disabled - */ - void enableItem( unsigned itemID, bool setEnabled ); + * be disabled + */ + void enableItem( unsigned int id, bool setEnabled ); /// Set item state to checked/unchecked /** If second parameter is true the menu item will be checked, otherwise it'll be - * unchecked - */ - void checkItem( unsigned itemID, bool setChecked, bool radioMark ); + * unchecked + */ + void checkItem( unsigned int id, bool setChecked, bool radioMark ); /// Returns true if item is checked - bool isItemEnabled( unsigned itemID ); + bool isItemEnabled( unsigned int id ); /// Returns true if item is checked - bool isItemChecked( unsigned itemID ); + bool isItemChecked( unsigned int id ); /// Returns true if menu is "system menu" (icon in top left of window) bool isSystemMenu() @@ -1138,16 +461,16 @@ } /// Returns item text - SmartUtil::tstring getItemText( unsigned itemID ); + SmartUtil::tstring getItemText( unsigned int id ); /// Sets item text - void setItemText( unsigned itemID, SmartUtil::tstring text ); + void setItemText( unsigned int id, SmartUtil::tstring text ); /// Sets color information for the menu /** The MenuColorInfo declares which colors will be used for drawing the menu ( - * items ) <br> - * Have no effect if you override the onDrawItem/onMeasureItem - */ + * items ) <br> + * Have no effect if you override the onDrawItem/onMeasureItem + */ void setColorInfo( const MenuColorInfo & info ); /// Returns menu color information @@ -1181,136 +504,67 @@ MenuColorInfo itsColorInfo; // work around for gcc - std::vector< typename WidgetMenuExtendedPlatformImplementation< EventHandlerClass, CurrentPlatform > - ::WidgetMenuExtendedPtr > & itsChildrenRef; + std::vector< WidgetMenuExtendedPlatformImplementation< WidgetMenuExtended, CurrentPlatform > ::WidgetMenuExtendedPtr > & itsChildrenRef; + // work around for gcc std::vector < private_::ItemDataWrapper * > & itsItemDataRef; private: // Returns item index in the menu item list // If no item with specified id is found, - 1 is returned - int getItemIndex( unsigned itemID ); + int getItemIndex( unsigned int id ); - // Sets event handler for specified item (to process WM_COMMAND) - void setItemCommandHandler( unsigned itemID, menuExtendedVoidFunctionTakingUInt eventHandler ); - void setItemCommandHandler( unsigned itemID, itsVoidMenuExtendedFunctionTakingUInt eventHandler ); - - // TODO: Basically we have a copy constructor which is create( HMENU, bool ) WidgetMenuExtended( const WidgetMenuExtended & ); // Never implemented intentionally }; /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// // Implementation of class /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -template< class EventHandlerClass > -void WidgetMenuExtendedPlatformImplementation< EventHandlerClass, SmartWinDesktop >::attach( EventHandlerClass * mainWindow ) -{ - // get my handle - HMENU handle = reinterpret_cast< HMENU >( this->Widget::itsHandle ); +template< typename MenuType > +const int WidgetMenuExtendedPlatformImplementation< MenuType, SmartWinDesktop >::borderGap = 3; +template< typename MenuType > +const int WidgetMenuExtendedPlatformImplementation< MenuType, SmartWinDesktop >::pointerGap = 5; +template< typename MenuType > +const int WidgetMenuExtendedPlatformImplementation< MenuType, SmartWinDesktop >::textIconGap = 8; +template< typename MenuType > +const int WidgetMenuExtendedPlatformImplementation< MenuType, SmartWinDesktop >::textBorderGap = 4; +template< typename MenuType > +const int WidgetMenuExtendedPlatformImplementation< MenuType, SmartWinDesktop >::separatorHeight = 8; +template< typename MenuType > +const int WidgetMenuExtendedPlatformImplementation< MenuType, SmartWinDesktop >::minSysMenuItemWidth = 130; +template< typename MenuType > +Point WidgetMenuExtendedPlatformImplementation< MenuType, SmartWinDesktop >::defaultImageSize = Point( 16, 16 ); - // set menu - if ( ::SetMenu( mainWindow->handle(), handle ) == FALSE ) - throw xCeption( _T( "Couldn't attach menu to given parent" ) ); +template< typename MenuType > +void WidgetMenuExtendedPlatformImplementation< MenuType, SmartWinDesktop >::attach() +{ + addCommands(itsParent); + if ( ::SetMenu( getParent(), this->itsHandle ) == FALSE ) + throw xCeption( _T( "Couldn't attach menu to the parent window" ) ); } -template< class EventHandlerClass > -void WidgetMenuExtendedPlatformImplementation< EventHandlerClass, SmartWinDesktop >::create( bool isPopup ) +template< typename MenuType > +void WidgetMenuExtendedPlatformImplementation< MenuType, SmartWinDesktop >::create(const Seed& cs) { - HMENU handle = NULL; - // Create menu - if ( isPopup ) - handle = ::CreatePopupMenu(); + if(cs.popup) + itsHandle = ::CreatePopupMenu(); else - handle = ::CreateMenu(); - - // init newly created menu - init( handle ); -} - -template< class EventHandlerClass > -void WidgetMenuExtendedPlatformImplementation< EventHandlerClass, SmartWinDesktop >::create( HMENU source, bool copy ) -{ - if ( !::IsMenu( source ) ) // if source is not a valid menu, cancel - return; - - if ( copy ) - void create(); // create empty menu - else - init( source ); // init with the source - - // get handle to this menu - HMENU handle = reinterpret_cast< HMENU >( this->Widget::itsHandle ); - - // get source item count - int itemCount = ::GetMenuItemCount( source ); - - // variables used in the loop - int index = 0; - int length = 0; - MENUITEMINFO info; - for ( index = 0; index < itemCount; ++index ) + itsHandle = ::CreateMenu(); + if ( !itsHandle ) { - // init struct for menu item info - memset( & info, 0, sizeof( MENUITEMINFO ) ); - info.cbSize = sizeof( MENUITEMINFO ); - - // set mask - info.fMask = MIIM_CHECKMARKS | MIIM_DATA | MIIM_STRING | MIIM_FTYPE | - MIIM_ID | MIIM_STATE | MIIM_SUBMENU; - - if ( ::GetMenuItemInfo( source, index, TRUE, & info ) == FALSE ) - throw xCeption( _T( "Couldn't get menu item info in create()" ) ); - - // set item to owner - drawn - info.fType |= MFT_OWNERDRAW; - - // create item extended info - MenuItemDataPtr data( new MenuItemData() ); - std::auto_ptr< private_::ItemDataWrapper > wrapper( new private_::ItemDataWrapper( handle, index, data ) ); - - // modify item info data - info.dwItemData = reinterpret_cast< ULONG_PTR >( wrapper.get() ); - - // set item text - length = info.cch + 1; - boost::scoped_ptr< TCHAR > tmp( new TCHAR[ length ] ); - info.dwTypeData = tmp.get(); - memset( info.dwTypeData, 0, length ); - ::GetMenuString( source, index, info.dwTypeData, length, MF_BYPOSITION ); - - // process submenus - if ( info.hSubMenu != NULL ) - { - // create popup menu - WidgetMenuExtendedPtr popup ( new WidgetMenuExtended< EventHandlerClass >( this->getParent() ) ); - popup->create( info.hSubMenu, true /* copy */ ); - - // get new handle - info.hSubMenu = reinterpret_cast< HMENU >( popup->handle() ); - - // store as child - itsChildren.push_back( popup ); - } - - // set back item info - if ( ( copy && ::InsertMenuItem( handle, index, TRUE, & info ) ) || // insert new item or - ( !copy && ::SetMenuItemInfo( handle, index, TRUE, & info ) ) ) // change existing item info - { - itsItemData.push_back( wrapper.release() ); - } - else - throw xCeption( _T( "Couldn't insert/modify item in create()" ) ); + xCeption x( _T( "CreateMenu in WidgetMenuExtended::create fizzle... [truncated message content] |
From: <arn...@us...> - 2008-02-06 09:37:10
|
Revision: 991 http://dcplusplus.svn.sourceforge.net/dcplusplus/?rev=991&view=rev Author: arnetheduck Date: 2008-02-06 01:37:07 -0800 (Wed, 06 Feb 2008) Log Message: ----------- Fix transferview stuff Modified Paths: -------------- dcplusplus/trunk/dcpp/po/hu.po dcplusplus/trunk/win32/TransferView.cpp dcplusplus/trunk/win32/TransferView.h Modified: dcplusplus/trunk/dcpp/po/hu.po =================================================================== --- dcplusplus/trunk/dcpp/po/hu.po 2008-02-05 22:10:22 UTC (rev 990) +++ dcplusplus/trunk/dcpp/po/hu.po 2008-02-06 09:37:07 UTC (rev 991) @@ -6,8 +6,8 @@ msgid "" msgstr "" "Project-Id-Version: dcplusplus\n" -"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n" -"POT-Creation-Date: 2008-01-23 22:20+0100\n" +"Report-Msgid-Bugs-To: dcp...@li...\n" +"POT-Creation-Date: 2008-02-05 20:19+0100\n" "PO-Revision-Date: 2008-01-28 10:02+0000\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Language-Team: Hungarian <hu...@li...>\n" @@ -19,32 +19,32 @@ "X-Generator: Launchpad (build Unknown)\n" #: dcpp/Util.cpp:381 -#, boost-format, c-format +#, c-format, boost-format msgid "%'lld B" msgstr "%'lld B" #: dcpp/Util.cpp:343 -#, boost-format, c-format +#, c-format, boost-format msgid "%.02f GiB" msgstr "%.02f GiB" #: dcpp/Util.cpp:339 -#, boost-format, c-format +#, c-format, boost-format msgid "%.02f KiB" msgstr "%.02f KiB" #: dcpp/Util.cpp:341 -#, boost-format, c-format +#, c-format, boost-format msgid "%.02f MiB" msgstr "%.02f MiB" #: dcpp/Util.cpp:347 -#, boost-format, c-format +#, c-format, boost-format msgid "%.02f PiB" msgstr "%.02f PiB" #: dcpp/Util.cpp:345 -#, boost-format, c-format +#, c-format, boost-format msgid "%.02f TiB" msgstr "%.02f TiB" @@ -60,39 +60,39 @@ msgstr "" "%1% nincs megosztva. A kiszámított CRC32 nem egyezik az SFV fájlban lévővel." -#: dcpp/DownloadManager.cpp:143 +#: dcpp/QueueManager.cpp:332 #, boost-format msgid "%1% renamed to %2%" msgstr "%1% átnevezve a következőre: %2%" -#: dcpp/DownloadManager.cpp:547 +#: dcpp/DownloadManager.cpp:520 #, boost-format msgid "%1%: File not available" msgstr "%1%: A fájl nem elérhető" #: dcpp/Util.cpp:337 -#, boost-format, c-format +#, c-format, boost-format msgid "%d B" msgstr "%d B" #: dcpp/Util.cpp:377 -#, boost-format, c-format +#, c-format, boost-format msgid "%s B" msgstr "%s B" -#: dcpp/QueueManager.cpp:503 +#: dcpp/QueueManager.cpp:539 msgid "A file of equal or larger size already exists at the target location" msgstr "Egy egyező méretű vagy nagyobb fájl már létezik a cél helyén." -#: dcpp/QueueManager.cpp:446 +#: dcpp/QueueManager.cpp:482 msgid "A file with a different size already exists in the queue" msgstr "Egy különböző mérettel rendelkező fájl már van a sorban" -#: dcpp/QueueManager.cpp:449 +#: dcpp/QueueManager.cpp:485 msgid "A file with different tth root already exists in the queue" msgstr "Egy különböző TTH gyökerű fájl már van a sorban" -#: dcpp/QueueManager.cpp:413 +#: dcpp/QueueManager.cpp:449 msgid "A file with the same hash already exists in your share" msgstr "" @@ -100,11 +100,11 @@ msgid "All download slots taken" msgstr "Összes letöltési szál foglalt" -#: dcpp/DownloadManager.cpp:421 +#: dcpp/DownloadManager.cpp:385 msgid "CRC32 inconsistency (SFV-Check)" msgstr "CRC32 inkonzisztencia (SFV-Ellenőrzés)" -#: dcpp/DownloadManager.cpp:419 +#: dcpp/DownloadManager.cpp:383 #, boost-format msgid "CRC32 inconsistency (SFV-Check) (File: %1%)" msgstr "CRC32 inkonzisztencia (SFV-Ellenőrzés) (Fájl: %1%)" @@ -113,12 +113,12 @@ msgid "Certificate not trusted, unable to connect" msgstr "A tanúsítvány nem megbízható, a kapcsolódás nem lehetséges" -#: dcpp/Socket.cpp:155 dcpp/ConnectionManager.cpp:187 +#: dcpp/Socket.cpp:154 dcpp/ConnectionManager.cpp:187 #: dcpp/BufferedSocket.cpp:154 msgid "Connection timeout" msgstr "Időtúllépés" -#: dcpp/DownloadManager.cpp:284 +#: dcpp/DownloadManager.cpp:248 #, boost-format msgid "Could not open target file: %1%" msgstr "Nem sikerült megnyitni a célfájlt a következő miatt: %1%" @@ -147,7 +147,7 @@ "against: %4%%5%" msgstr "" -#: dcpp/QueueManager.cpp:516 dcpp/QueueManager.cpp:520 +#: dcpp/QueueManager.cpp:552 dcpp/QueueManager.cpp:556 #, boost-format msgid "Duplicate source: %1%" msgstr "" @@ -188,7 +188,7 @@ msgid "Failed to load private key" msgstr "Nem sikerült betölteni a pirvát kulcsot" -#: dcpp/Socket.cpp:409 +#: dcpp/Socket.cpp:408 msgid "" "Failed to set up the socks server for UDP relay (check socks address and " "port)" @@ -229,7 +229,7 @@ msgid "Finished hashing: %1% (%2%/s)" msgstr "Indexelés befejezve: %1% (%2%/s)" -#: dcpp/DownloadManager.cpp:353 +#: dcpp/DownloadManager.cpp:317 msgid "Full tree does not match TTH root" msgstr "A teljes fa nem megfelelő a TTH gyökérhez" @@ -250,11 +250,11 @@ msgid "Hashing failed: %1%" msgstr "Sikertelen indexelés: %1%" -#: dcpp/DownloadManager.cpp:264 dcpp/DownloadManager.cpp:269 +#: dcpp/DownloadManager.cpp:228 dcpp/DownloadManager.cpp:233 msgid "Invalid size" msgstr "Érvénytelen méret" -#: dcpp/QueueManager.cpp:486 dcpp/QueueManager.cpp:494 +#: dcpp/QueueManager.cpp:522 dcpp/QueueManager.cpp:530 msgid "" "Invalid target file (missing directory, check default download directory " "setting)" @@ -275,7 +275,7 @@ msgid "Maximum command length exceeded" msgstr "A maximális parancs hossz túllépve" -#: dcpp/DownloadManager.cpp:323 +#: dcpp/DownloadManager.cpp:287 msgid "More data was sent than was expected" msgstr "A vártnál több adat lett küldve" @@ -283,7 +283,7 @@ msgid "No directory specified" msgstr "Nincs könyvtár megadva" -#: dcpp/DownloadManager.cpp:462 +#: dcpp/DownloadManager.cpp:426 msgid "No slots available" msgstr "Nincs szabad slot" @@ -309,11 +309,11 @@ msgid "Shared Files" msgstr "Megosztott fájlok" -#: dcpp/Socket.cpp:270 dcpp/Socket.cpp:274 +#: dcpp/Socket.cpp:269 dcpp/Socket.cpp:273 msgid "Socks server authentication failed (bad login / password?)" msgstr "" -"A hitelesítés a socks kiszolgálónál nem sikerült (rossz felhasználói " -"név/jelszó?)" +"A hitelesítés a socks kiszolgálónál nem sikerült (rossz felhasználói név/" +"jelszó?)" #: dcpp/CryptoManager.cpp:223 #, boost-format @@ -324,25 +324,25 @@ msgid "TLS disabled, no certificate file set" msgstr "TLS letiltva, nincs tanúsítvány fájl beállítva" -#: dcpp/QueueManager.cpp:481 dcpp/QueueManager.cpp:490 +#: dcpp/QueueManager.cpp:517 dcpp/QueueManager.cpp:526 msgid "Target filename too long" msgstr "A cél fájlneve túl hosszú" -#: dcpp/QueueManager.cpp:769 +#: dcpp/QueueManager.cpp:805 msgid "Target removed" msgstr "Cél eltávolítva" -#: dcpp/Socket.cpp:256 +#: dcpp/Socket.cpp:255 msgid "The socks server doesn't support login / password authentication" msgstr "" "A socks kiszolgáló nem támogatja a bejelentkezési név / jelszó hitelesítést" -#: dcpp/Socket.cpp:163 dcpp/Socket.cpp:174 dcpp/Socket.cpp:207 -#: dcpp/Socket.cpp:211 dcpp/Socket.cpp:238 dcpp/Socket.cpp:253 +#: dcpp/Socket.cpp:162 dcpp/Socket.cpp:173 dcpp/Socket.cpp:206 +#: dcpp/Socket.cpp:210 dcpp/Socket.cpp:237 dcpp/Socket.cpp:252 msgid "The socks server failed establish a connection" msgstr "Nem sikerült a socks kiszolgálóhoz kapcsolódni" -#: dcpp/Socket.cpp:242 +#: dcpp/Socket.cpp:241 msgid "The socks server requires authentication" msgstr "A socks kiszolgáló hitelesítést igényel" @@ -350,7 +350,7 @@ msgid "The temporary download directory cannot be shared" msgstr "Az ideiglenes letöltési könyvtár nem megosztható" -#: dcpp/QueueManager.cpp:436 +#: dcpp/QueueManager.cpp:472 msgid "This file is already queued" msgstr "A fájl már a sorban van" @@ -358,7 +358,7 @@ msgid "Unable to create thread" msgstr "A szál léterhozása sikertelen" -#: dcpp/QueueManager.cpp:957 +#: dcpp/QueueManager.cpp:1002 #, boost-format msgid "Unable to open filelist: %1%" msgstr "Nem sikerült megnyitni a fájl-listát: %1%" @@ -367,7 +367,7 @@ msgid "Unable to read hash data file" msgstr "A hash adatfájl beolvasása nem lehetséges" -#: dcpp/DownloadManager.cpp:145 +#: dcpp/QueueManager.cpp:334 #, boost-format msgid "Unable to rename %1%: %2%" msgstr "A fájl átnevezése sikertelen: %1%: %2%" @@ -377,16 +377,16 @@ msgid "Unable to send file %1%: %2%" msgstr "A fájl küldése sikertelen: %1%: %2%" -#: dcpp/Socket.cpp:55 -#, boost-format -msgid "Unknown error: 0x%1%" +#: dcpp/Socket.cpp:54 +#, fuzzy, c-format, boost-format +msgid "Unknown error: 0x%1$x" msgstr "Ismeretlen hiba: 0x%1%" #: dcpp/ShareManager.cpp:426 dcpp/ShareManager.cpp:468 msgid "Virtual directory name already exists" msgstr "A virtuális könyvtárnév már létezik" -#: dcpp/QueueManager.cpp:383 dcpp/QueueManager.cpp:407 +#: dcpp/QueueManager.cpp:419 dcpp/QueueManager.cpp:443 msgid "You're trying to download from yourself!" msgstr "Saját magadtól próbálsz meg letölteni!" Modified: dcplusplus/trunk/win32/TransferView.cpp =================================================================== --- dcplusplus/trunk/win32/TransferView.cpp 2008-02-05 22:10:22 UTC (rev 990) +++ dcplusplus/trunk/win32/TransferView.cpp 2008-02-06 09:37:07 UTC (rev 991) @@ -36,7 +36,7 @@ int TransferView::connectionSizes[] = { 125, 375, 100, 100, 125, 75, 100, 100 }; int TransferView::downloadIndexes[] = { DOWNLOAD_COLUMN_FILE, DOWNLOAD_COLUMN_PATH, DOWNLOAD_COLUMN_STATUS, DOWNLOAD_COLUMN_TIMELEFT, DOWNLOAD_COLUMN_SPEED, DOWNLOAD_COLUMN_DONE, DOWNLOAD_COLUMN_SIZE }; -int TransferView::downloadSizes[] = { 200, 300, 150, 200, 125, 100}; +int TransferView::downloadSizes[] = { 200, 300, 150, 200, 125, 100, 100 }; static const char* connectionNames[] = { N_("User"), @@ -59,7 +59,6 @@ N_("Size") }; - TransferView::TransferView(SmartWin::Widget* parent, SmartWin::WidgetTabView* mdi_) : WidgetFactory<SmartWin::WidgetChildWindow>(parent), connections(0), @@ -472,30 +471,35 @@ break; } } - } else if(i->first == DOWNLOADS_TICK) { + } else if(i->first == DOWNLOADS_ADD_USER) { boost::scoped_ptr<TickInfo> ti(static_cast<TickInfo*>(i->second)); int i = find(ti->path); if(i == -1) { int64_t size = QueueManager::getInstance()->getSize(ti->path); if(size == -1) { - return 0; + break; } TTHValue tth; if(QueueManager::getInstance()->getTTH(ti->path, tth)) { i = downloads->insert(new DownloadInfo(ti->path, size, tth)); } else { - return 0; + break; } } - DownloadInfo* di = downloads->getData(i); - di->update(*ti); - downloads->update(i); - } else if(i->first == DOWNLOADS_DISCONNECTED) { + } else if(i->first == DOWNLOADS_TICK) { boost::scoped_ptr<TickInfo> ti(static_cast<TickInfo*>(i->second)); - int i = find(ti->path); if(i != -1) { DownloadInfo* di = downloads->getData(i); + di->update(*ti); + downloads->update(i); + } + } else if(i->first == DOWNLOADS_REMOVE_USER) { + boost::scoped_ptr<TickInfo> ti(static_cast<TickInfo*>(i->second)); + int i = find(ti->path); + + if(i != -1) { + DownloadInfo* di = downloads->getData(i); if(--di->users == 0) { di->bps = 0; } @@ -599,7 +603,7 @@ path(target), done(QueueManager::getInstance()->getPos(target)), size(size_), - users(0), + users(1), tth(tth_) { columns[DOWNLOAD_COLUMN_FILE] = Text::toT(Util::getFileName(target)); @@ -614,7 +618,6 @@ } void TransferView::DownloadInfo::update(const TransferView::TickInfo& ti) { - users = ti.users; done = ti.done + QueueManager::getInstance()->getInstance()->getPos(ti.path); bps = ti.bps; update(); @@ -719,6 +722,8 @@ ui->setStatusString(statusString); speak(CONNECTIONS_UPDATE, ui); + + speak(DOWNLOADS_ADD_USER, new TickInfo(d->getPath())); } void TransferView::on(DownloadManagerListener::Tick, const DownloadList& dl) throw() { @@ -751,7 +756,6 @@ ti = new TickInfo(d->getPath()); dis.push_back(ti); } - ti->users++; ti->bps += d->getAverageSpeed(); ti->done += d->getPos(); } @@ -769,8 +773,7 @@ speak(CONNECTIONS_UPDATE, ui); - speak(DOWNLOADS_DISCONNECTED, new TickInfo(d->getPath())); - + speak(DOWNLOADS_REMOVE_USER, new TickInfo(d->getPath())); } void TransferView::on(UploadManagerListener::Starting, Upload* u) throw() { @@ -817,7 +820,7 @@ void TransferView::on(DownloadManagerListener::Complete, Download* d) throw() { onTransferComplete(d, false); - speak(DOWNLOADS_DISCONNECTED, new TickInfo(d->getPath())); + speak(DOWNLOADS_REMOVE_USER, new TickInfo(d->getPath())); } void TransferView::on(UploadManagerListener::Complete, Upload* aUpload) throw() { Modified: dcplusplus/trunk/win32/TransferView.h =================================================================== --- dcplusplus/trunk/win32/TransferView.h 2008-02-05 22:10:22 UTC (rev 990) +++ dcplusplus/trunk/win32/TransferView.h 2008-02-06 09:37:07 UTC (rev 991) @@ -67,12 +67,13 @@ }; enum { - DOWNLOADS_DISCONNECTED, + DOWNLOADS_ADD_USER, + DOWNLOADS_TICK, + DOWNLOADS_REMOVE_USER, DOWNLOADS_REMOVED, - DOWNLOADS_TICK, CONNECTIONS_ADD, CONNECTIONS_REMOVE, - CONNECTIONS_UPDATE, + CONNECTIONS_UPDATE }; enum { @@ -176,12 +177,11 @@ }; struct TickInfo : public Task { - TickInfo(const string& path_) : path(path_), done(0), bps(0), users(0) { } + TickInfo(const string& path_) : path(path_), done(0), bps(0) { } string path; int64_t done; double bps; - int users; }; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <arn...@us...> - 2008-02-05 22:10:48
|
Revision: 990 http://dcplusplus.svn.sourceforge.net/dcplusplus/?rev=990&view=rev Author: arnetheduck Date: 2008-02-05 14:10:22 -0800 (Tue, 05 Feb 2008) Log Message: ----------- Updated translations Modified Paths: -------------- dcplusplus/trunk/dcpp/po/de.po dcplusplus/trunk/dcpp/po/fr.po dcplusplus/trunk/dcpp/po/id.po dcplusplus/trunk/dcpp/po/it.po dcplusplus/trunk/dcpp/po/km.po dcplusplus/trunk/dcpp/po/ko.po dcplusplus/trunk/dcpp/po/pl.po dcplusplus/trunk/dcpp/po/pt.po dcplusplus/trunk/dcpp/po/ro.po dcplusplus/trunk/dcpp/po/sl.po dcplusplus/trunk/dcpp/po/sq.po dcplusplus/trunk/dcpp/po/sv.po Added Paths: ----------- dcplusplus/trunk/dcpp/po/hu.po Modified: dcplusplus/trunk/dcpp/po/de.po =================================================================== --- dcplusplus/trunk/dcpp/po/de.po 2008-02-05 09:32:59 UTC (rev 989) +++ dcplusplus/trunk/dcpp/po/de.po 2008-02-05 22:10:22 UTC (rev 990) @@ -7,7 +7,7 @@ msgstr "" "Project-Id-Version: dcplusplus\n" "Report-Msgid-Bugs-To: dcp...@li...\n" -"POT-Creation-Date: 2008-01-31 20:32+0100\n" +"POT-Creation-Date: 2008-02-05 20:19+0100\n" "PO-Revision-Date: 2008-01-24 07:24+0000\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Language-Team: German <de...@li...>\n" @@ -61,12 +61,12 @@ "%1% nicht freigegeben, errechneter CRC32 Wert passt nicht zu dem in der SFV " "Datei" -#: dcpp/DownloadManager.cpp:143 +#: dcpp/QueueManager.cpp:332 #, boost-format msgid "%1% renamed to %2%" msgstr "%1% umbenannt in %2%" -#: dcpp/DownloadManager.cpp:547 +#: dcpp/DownloadManager.cpp:520 #, boost-format msgid "%1%: File not available" msgstr "%1%: Datei nicht verfügbar" @@ -81,21 +81,21 @@ msgid "%s B" msgstr "%s B" -#: dcpp/QueueManager.cpp:503 +#: dcpp/QueueManager.cpp:539 msgid "A file of equal or larger size already exists at the target location" msgstr "Eine Datei gleicher oder größerer Größe existiert bereits am Zielort" -#: dcpp/QueueManager.cpp:446 +#: dcpp/QueueManager.cpp:482 msgid "A file with a different size already exists in the queue" msgstr "" "Eine Datei mit anderer Größe ist bereits in der Warteschlange vorhanden" -#: dcpp/QueueManager.cpp:449 +#: dcpp/QueueManager.cpp:485 msgid "A file with different tth root already exists in the queue" msgstr "" "Eine Datei mit anderem TTH Root ist bereits in der Warteschlange vorhanden" -#: dcpp/QueueManager.cpp:413 +#: dcpp/QueueManager.cpp:449 msgid "A file with the same hash already exists in your share" msgstr "Eine Datei mit dem selben Hash-Wert wurde bereits freigegeben" @@ -103,11 +103,11 @@ msgid "All download slots taken" msgstr "Alle Downloadslots besetzt" -#: dcpp/DownloadManager.cpp:421 +#: dcpp/DownloadManager.cpp:385 msgid "CRC32 inconsistency (SFV-Check)" msgstr "CRC32 Inkonsistenz (SFV-Check)" -#: dcpp/DownloadManager.cpp:419 +#: dcpp/DownloadManager.cpp:383 #, boost-format msgid "CRC32 inconsistency (SFV-Check) (File: %1%)" msgstr "CRC32 Inkonsistenz (SFV-Check) (Datei: %1%)" @@ -121,7 +121,7 @@ msgid "Connection timeout" msgstr "Zeitüberschreitung der Verbindung" -#: dcpp/DownloadManager.cpp:284 +#: dcpp/DownloadManager.cpp:248 #, boost-format msgid "Could not open target file: %1%" msgstr "Konnte die Zieldatei nicht öffnen: %1%" @@ -152,7 +152,7 @@ "Dateiduplikat wird nicht freigegeben: %1%%2% (Größe: %3% B) Duplikat passend " "zu: %4%%5%" -#: dcpp/QueueManager.cpp:516 dcpp/QueueManager.cpp:520 +#: dcpp/QueueManager.cpp:552 dcpp/QueueManager.cpp:556 #, boost-format msgid "Duplicate source: %1%" msgstr "Doppelte Quelle: %1%" @@ -236,7 +236,7 @@ msgid "Finished hashing: %1% (%2%/s)" msgstr "Hash berechnen beendet: %1% (%2%/s)" -#: dcpp/DownloadManager.cpp:353 +#: dcpp/DownloadManager.cpp:317 msgid "Full tree does not match TTH root" msgstr "Kompletter Baum stimmt nicht mit TTH Root überein" @@ -257,11 +257,11 @@ msgid "Hashing failed: %1%" msgstr "Hash berechnen fehlgeschlagen: %1%" -#: dcpp/DownloadManager.cpp:264 dcpp/DownloadManager.cpp:269 +#: dcpp/DownloadManager.cpp:228 dcpp/DownloadManager.cpp:233 msgid "Invalid size" msgstr "Ungültige Größe" -#: dcpp/QueueManager.cpp:486 dcpp/QueueManager.cpp:494 +#: dcpp/QueueManager.cpp:522 dcpp/QueueManager.cpp:530 msgid "" "Invalid target file (missing directory, check default download directory " "setting)" @@ -282,7 +282,7 @@ msgid "Maximum command length exceeded" msgstr "Maximale Befehlslänge überschritten" -#: dcpp/DownloadManager.cpp:323 +#: dcpp/DownloadManager.cpp:287 msgid "More data was sent than was expected" msgstr "Es wurden mehr Daten gesendet als erwartet" @@ -290,7 +290,7 @@ msgid "No directory specified" msgstr "Kein Verzeichnis ausgewählt" -#: dcpp/DownloadManager.cpp:462 +#: dcpp/DownloadManager.cpp:426 msgid "No slots available" msgstr "Keine Slots verfügbar" @@ -330,11 +330,11 @@ msgid "TLS disabled, no certificate file set" msgstr "TLS deaktiviert, kein Zertifikat eingestellt" -#: dcpp/QueueManager.cpp:481 dcpp/QueueManager.cpp:490 +#: dcpp/QueueManager.cpp:517 dcpp/QueueManager.cpp:526 msgid "Target filename too long" msgstr "Zieldateiname zu lang" -#: dcpp/QueueManager.cpp:769 +#: dcpp/QueueManager.cpp:805 msgid "Target removed" msgstr "Ziel entfernt" @@ -355,7 +355,7 @@ msgid "The temporary download directory cannot be shared" msgstr "Das temporäre Downloadverzeichnis kann nicht freigegeben werden" -#: dcpp/QueueManager.cpp:436 +#: dcpp/QueueManager.cpp:472 msgid "This file is already queued" msgstr "Diese Datei befindet sich bereits in der Warteschlange" @@ -363,7 +363,7 @@ msgid "Unable to create thread" msgstr "Thread kann nicht erschaffen werden" -#: dcpp/QueueManager.cpp:957 +#: dcpp/QueueManager.cpp:1002 #, boost-format msgid "Unable to open filelist: %1%" msgstr "Dateiliste kann nicht geöffnet werden: %1%" @@ -372,7 +372,7 @@ msgid "Unable to read hash data file" msgstr "Hash-Datendatei kann nicht gelesen werden" -#: dcpp/DownloadManager.cpp:145 +#: dcpp/QueueManager.cpp:334 #, boost-format msgid "Unable to rename %1%: %2%" msgstr "%1% kann nicht umbenannt werden: %2%" @@ -391,7 +391,7 @@ msgid "Virtual directory name already exists" msgstr "Virtueller Verzeichnisname existiert bereits" -#: dcpp/QueueManager.cpp:383 dcpp/QueueManager.cpp:407 +#: dcpp/QueueManager.cpp:419 dcpp/QueueManager.cpp:443 msgid "You're trying to download from yourself!" msgstr "Kein Download von sich selbst möglich!" @@ -402,3 +402,8 @@ #: dcpp/SettingsManager.cpp:157 msgid "uploaded to" msgstr "hochgeladen an" + +#: dcpp/Socket.cpp:55 +#, boost-format +msgid "Unknown error: 0x%1%" +msgstr "Unbekannter Fehler: 0x%1%" Modified: dcplusplus/trunk/dcpp/po/fr.po =================================================================== --- dcplusplus/trunk/dcpp/po/fr.po 2008-02-05 09:32:59 UTC (rev 989) +++ dcplusplus/trunk/dcpp/po/fr.po 2008-02-05 22:10:22 UTC (rev 990) @@ -7,7 +7,7 @@ msgstr "" "Project-Id-Version: dcpp\n" "Report-Msgid-Bugs-To: dcp...@li...\n" -"POT-Creation-Date: 2008-01-31 20:32+0100\n" +"POT-Creation-Date: 2008-02-05 20:19+0100\n" "Last-Translator: <sp...@us...>\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -58,12 +58,12 @@ #: dcpp/DownloadManager.cpp:143 #, boost-format msgid "%1% renamed to %2%" -msgstr "" +msgstr "%1% renommé en %2%" #: dcpp/DownloadManager.cpp:547 -#, fuzzy, boost-format +#, boost-format msgid "%1%: File not available" -msgstr "Fichier indisponible" +msgstr "%1%: Fichier non disponible" #: dcpp/Util.cpp:337 #, c-format, boost-format @@ -75,22 +75,22 @@ msgid "%s B" msgstr "" -#: dcpp/QueueManager.cpp:503 +#: dcpp/QueueManager.cpp:539 msgid "A file of equal or larger size already exists at the target location" msgstr "" "Un fichier d'une taille égale ou supérieure existe déjà à l'emplacement du " "fichier cible" -#: dcpp/QueueManager.cpp:446 +#: dcpp/QueueManager.cpp:482 msgid "A file with a different size already exists in the queue" msgstr "Un fichier d'une taille différente existe déjà dans la file d'attente" -#: dcpp/QueueManager.cpp:449 +#: dcpp/QueueManager.cpp:485 msgid "A file with different tth root already exists in the queue" msgstr "" "Un fichier avec une racine tth différente existe déjà dans la file d'attente" -#: dcpp/QueueManager.cpp:413 +#: dcpp/QueueManager.cpp:449 msgid "A file with the same hash already exists in your share" msgstr "Un fichier ayant la même Hache existe déjà dans votre share" @@ -98,11 +98,11 @@ msgid "All download slots taken" msgstr "Tous les slots sont pris" -#: dcpp/DownloadManager.cpp:421 +#: dcpp/DownloadManager.cpp:385 msgid "CRC32 inconsistency (SFV-Check)" msgstr "Incompatibilité CRC32 (Contrôle SFV)" -#: dcpp/DownloadManager.cpp:419 +#: dcpp/DownloadManager.cpp:383 #, fuzzy, boost-format msgid "CRC32 inconsistency (SFV-Check) (File: %1%)" msgstr "Incompatibilité CRC32 (Contrôle SFV)" @@ -116,7 +116,7 @@ msgid "Connection timeout" msgstr "Temps d'attente dépassé" -#: dcpp/DownloadManager.cpp:284 +#: dcpp/DownloadManager.cpp:248 #, boost-format msgid "Could not open target file: %1%" msgstr "" @@ -145,7 +145,7 @@ "against: %4%%5%" msgstr "" -#: dcpp/QueueManager.cpp:516 dcpp/QueueManager.cpp:520 +#: dcpp/QueueManager.cpp:552 dcpp/QueueManager.cpp:556 #, boost-format msgid "Duplicate source: %1%" msgstr "" @@ -225,7 +225,7 @@ msgid "Finished hashing: %1% (%2%/s)" msgstr "" -#: dcpp/DownloadManager.cpp:353 +#: dcpp/DownloadManager.cpp:317 msgid "Full tree does not match TTH root" msgstr "Toute l'arborescence ne trouve pas de racine TTH" @@ -246,11 +246,11 @@ msgid "Hashing failed: %1%" msgstr "" -#: dcpp/DownloadManager.cpp:264 dcpp/DownloadManager.cpp:269 +#: dcpp/DownloadManager.cpp:228 dcpp/DownloadManager.cpp:233 msgid "Invalid size" msgstr "" -#: dcpp/QueueManager.cpp:486 dcpp/QueueManager.cpp:494 +#: dcpp/QueueManager.cpp:522 dcpp/QueueManager.cpp:530 msgid "" "Invalid target file (missing directory, check default download directory " "setting)" @@ -269,7 +269,7 @@ msgid "Maximum command length exceeded" msgstr "Dépassement de la longueur maximale de la commande" -#: dcpp/DownloadManager.cpp:323 +#: dcpp/DownloadManager.cpp:287 msgid "More data was sent than was expected" msgstr "Plus de données ont été envoyées que ce qu'il était attendu" @@ -277,7 +277,7 @@ msgid "No directory specified" msgstr "Pas de répertoire spécifié" -#: dcpp/DownloadManager.cpp:462 +#: dcpp/DownloadManager.cpp:426 msgid "No slots available" msgstr "Pas de slot disponible" @@ -317,11 +317,11 @@ msgid "TLS disabled, no certificate file set" msgstr "TLS désactivé, pas de fichier certificat" -#: dcpp/QueueManager.cpp:481 dcpp/QueueManager.cpp:490 +#: dcpp/QueueManager.cpp:517 dcpp/QueueManager.cpp:526 msgid "Target filename too long" msgstr "Nom du fichier cible trop long" -#: dcpp/QueueManager.cpp:769 +#: dcpp/QueueManager.cpp:805 msgid "Target removed" msgstr "" @@ -344,7 +344,7 @@ msgid "The temporary download directory cannot be shared" msgstr "Le répertoire des temporaires ne peut être partagé" -#: dcpp/QueueManager.cpp:436 +#: dcpp/QueueManager.cpp:472 msgid "This file is already queued" msgstr "Ce fichier est déjà mis en file d'attente de téléchargement" @@ -352,7 +352,7 @@ msgid "Unable to create thread" msgstr "Ne parvient pas à créer le thread" -#: dcpp/QueueManager.cpp:957 +#: dcpp/QueueManager.cpp:1002 #, boost-format msgid "Unable to open filelist: %1%" msgstr "" @@ -361,7 +361,7 @@ msgid "Unable to read hash data file" msgstr "Ne parvient pas à lire la Hache de la base de données" -#: dcpp/DownloadManager.cpp:145 +#: dcpp/QueueManager.cpp:334 #, fuzzy, boost-format msgid "Unable to rename %1%: %2%" msgstr "Ne parvient pas à créer le thread" @@ -380,7 +380,7 @@ msgid "Virtual directory name already exists" msgstr "Nom de répertoire virtuel déjà existant" -#: dcpp/QueueManager.cpp:383 dcpp/QueueManager.cpp:407 +#: dcpp/QueueManager.cpp:419 dcpp/QueueManager.cpp:443 msgid "You're trying to download from yourself!" msgstr "Vous essayez de télécharger sur vous-même!" @@ -391,3 +391,8 @@ #: dcpp/SettingsManager.cpp:157 msgid "uploaded to" msgstr "" + +#: dcpp/Socket.cpp:55 +#, boost-format +msgid "Unknown error: 0x%1%" +msgstr "" Added: dcplusplus/trunk/dcpp/po/hu.po =================================================================== --- dcplusplus/trunk/dcpp/po/hu.po (rev 0) +++ dcplusplus/trunk/dcpp/po/hu.po 2008-02-05 22:10:22 UTC (rev 990) @@ -0,0 +1,399 @@ +# Hungarian translation for dcplusplus +# Copyright (c) 2008 Rosetta Contributors and Canonical Ltd 2008 +# This file is distributed under the same license as the dcplusplus package. +# FIRST AUTHOR <EMAIL@ADDRESS>, 2008. +# +msgid "" +msgstr "" +"Project-Id-Version: dcplusplus\n" +"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n" +"POT-Creation-Date: 2008-01-23 22:20+0100\n" +"PO-Revision-Date: 2008-01-28 10:02+0000\n" +"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" +"Language-Team: Hungarian <hu...@li...>\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=1; plural=0;\n" +"X-Launchpad-Export-Date: 2008-02-05 09:32+0000\n" +"X-Generator: Launchpad (build Unknown)\n" + +#: dcpp/Util.cpp:381 +#, boost-format, c-format +msgid "%'lld B" +msgstr "%'lld B" + +#: dcpp/Util.cpp:343 +#, boost-format, c-format +msgid "%.02f GiB" +msgstr "%.02f GiB" + +#: dcpp/Util.cpp:339 +#, boost-format, c-format +msgid "%.02f KiB" +msgstr "%.02f KiB" + +#: dcpp/Util.cpp:341 +#, boost-format, c-format +msgid "%.02f MiB" +msgstr "%.02f MiB" + +#: dcpp/Util.cpp:347 +#, boost-format, c-format +msgid "%.02f PiB" +msgstr "%.02f PiB" + +#: dcpp/Util.cpp:345 +#, boost-format, c-format +msgid "%.02f TiB" +msgstr "%.02f TiB" + +#: dcpp/NmdcHub.cpp:273 +#, boost-format +msgid "%1% (Nick unknown)" +msgstr "%1% (Nick ismeretlen)" + +#: dcpp/HashManager.cpp:767 +#, boost-format +msgid "" +"%1% not shared; calculated CRC32 does not match the one found in SFV file." +msgstr "" +"%1% nincs megosztva. A kiszámított CRC32 nem egyezik az SFV fájlban lévővel." + +#: dcpp/DownloadManager.cpp:143 +#, boost-format +msgid "%1% renamed to %2%" +msgstr "%1% átnevezve a következőre: %2%" + +#: dcpp/DownloadManager.cpp:547 +#, boost-format +msgid "%1%: File not available" +msgstr "%1%: A fájl nem elérhető" + +#: dcpp/Util.cpp:337 +#, boost-format, c-format +msgid "%d B" +msgstr "%d B" + +#: dcpp/Util.cpp:377 +#, boost-format, c-format +msgid "%s B" +msgstr "%s B" + +#: dcpp/QueueManager.cpp:503 +msgid "A file of equal or larger size already exists at the target location" +msgstr "Egy egyező méretű vagy nagyobb fájl már létezik a cél helyén." + +#: dcpp/QueueManager.cpp:446 +msgid "A file with a different size already exists in the queue" +msgstr "Egy különböző mérettel rendelkező fájl már van a sorban" + +#: dcpp/QueueManager.cpp:449 +msgid "A file with different tth root already exists in the queue" +msgstr "Egy különböző TTH gyökerű fájl már van a sorban" + +#: dcpp/QueueManager.cpp:413 +msgid "A file with the same hash already exists in your share" +msgstr "" + +#: dcpp/ConnectionManager.cpp:181 +msgid "All download slots taken" +msgstr "Összes letöltési szál foglalt" + +#: dcpp/DownloadManager.cpp:421 +msgid "CRC32 inconsistency (SFV-Check)" +msgstr "CRC32 inkonzisztencia (SFV-Ellenőrzés)" + +#: dcpp/DownloadManager.cpp:419 +#, boost-format +msgid "CRC32 inconsistency (SFV-Check) (File: %1%)" +msgstr "CRC32 inkonzisztencia (SFV-Ellenőrzés) (Fájl: %1%)" + +#: dcpp/ConnectionManager.cpp:385 +msgid "Certificate not trusted, unable to connect" +msgstr "A tanúsítvány nem megbízható, a kapcsolódás nem lehetséges" + +#: dcpp/Socket.cpp:155 dcpp/ConnectionManager.cpp:187 +#: dcpp/BufferedSocket.cpp:154 +msgid "Connection timeout" +msgstr "Időtúllépés" + +#: dcpp/DownloadManager.cpp:284 +#, boost-format +msgid "Could not open target file: %1%" +msgstr "Nem sikerült megnyitni a célfájlt a következő miatt: %1%" + +#: dcpp/ShareManager.cpp:418 +msgid "Directory already shared" +msgstr "A könyvtár már meg van osztva" + +#: dcpp/BufferedSocket.cpp:409 dcpp/BufferedSocket.cpp:427 +msgid "Disconnected" +msgstr "Szétkapcsolva" + +#: dcpp/UploadManager.cpp:450 +#, boost-format +msgid "Disconnected user leaving the hub: %1%" +msgstr "A hubról kilépő felhasználó szétkapcsolva: %1%" + +#: dcpp/DCPlusPlus.cpp:103 +msgid "Download Queue" +msgstr "Letöltési Sor" + +#: dcpp/ShareManager.cpp:745 +#, boost-format +msgid "" +"Duplicate file will not be shared: %1%%2% (Size: %3% B) Dupe matched " +"against: %4%%5%" +msgstr "" + +#: dcpp/QueueManager.cpp:516 dcpp/QueueManager.cpp:520 +#, boost-format +msgid "Duplicate source: %1%" +msgstr "" + +#: dcpp/HashManager.cpp:456 +#, boost-format +msgid "Error creating hash data file: %1%" +msgstr "Hiba a hash adatfájl létrehozásakor: %1%" + +#: dcpp/ZUtils.cpp:33 dcpp/ZUtils.cpp:54 dcpp/ZUtils.cpp:76 dcpp/ZUtils.cpp:86 +#: dcpp/BZUtils.cpp:31 dcpp/BZUtils.cpp:52 dcpp/BZUtils.cpp:60 +msgid "Error during compression" +msgstr "Hiba a tömörítés alatt" + +#: dcpp/ZUtils.cpp:100 dcpp/ZUtils.cpp:123 dcpp/BZUtils.cpp:72 +#: dcpp/BZUtils.cpp:94 dcpp/BZUtils.cpp:97 dcpp/CryptoManager.cpp:344 +#: dcpp/CryptoManager.cpp:363 dcpp/CryptoManager.cpp:377 +msgid "Error during decompression" +msgstr "Hiba a kicsomagolás alatt" + +#: dcpp/HashManager.cpp:772 +#, boost-format +msgid "Error hashing %1%: %2%" +msgstr "Hiba a(z) %1% hashelésekor: %2%" + +#: dcpp/HashManager.cpp:118 dcpp/HashManager.cpp:333 +#, boost-format +msgid "Error saving hash data: %1%" +msgstr "Hiba a hash adatok mentésekor: %1%" + +#: dcpp/CryptoManager.cpp:228 dcpp/CryptoManager.cpp:232 +#: dcpp/CryptoManager.cpp:237 dcpp/CryptoManager.cpp:241 +msgid "Failed to load certificate file" +msgstr "Nem sikerült betölteni a tanúsítvány fájlt" + +#: dcpp/CryptoManager.cpp:246 dcpp/CryptoManager.cpp:250 +#: dcpp/CryptoManager.cpp:255 dcpp/CryptoManager.cpp:259 +msgid "Failed to load private key" +msgstr "Nem sikerült betölteni a pirvát kulcsot" + +#: dcpp/Socket.cpp:409 +msgid "" +"Failed to set up the socks server for UDP relay (check socks address and " +"port)" +msgstr "" + +#: dcpp/ShareManager.cpp:780 +#, boost-format +msgid "File list refresh failed: %1%" +msgstr "Hiba a fájl-lista frissítésekor: %1%" + +#: dcpp/ShareManager.cpp:824 +msgid "File list refresh finished" +msgstr "A fájl-lista frissítése befejeződött" + +#: dcpp/ShareManager.cpp:760 +msgid "" +"File list refresh in progress, please wait for it to finish before trying to " +"refresh again" +msgstr "" +"A fájl-lista frissítése már folyamatban. Kérlek, várd meg, amíg befejezi, " +"mielőtt újra frissíteni próbálsz" + +#: dcpp/ShareManager.cpp:802 +msgid "File list refresh initiated" +msgstr "A fájl-lista frissítése elkezdődött" + +#: dcpp/DirectoryListing.cpp:102 +msgid "File not available" +msgstr "A fájl nem elérhető" + +#: dcpp/HashManager.cpp:89 +#, boost-format +msgid "Finished hashing: %1%" +msgstr "Indexelés befejezve: %1%" + +#: dcpp/HashManager.cpp:87 +#, boost-format +msgid "Finished hashing: %1% (%2%/s)" +msgstr "Indexelés befejezve: %1% (%2%/s)" + +#: dcpp/DownloadManager.cpp:353 +msgid "Full tree does not match TTH root" +msgstr "A teljes fa nem megfelelő a TTH gyökérhez" + +#: dcpp/CryptoManager.cpp:221 +msgid "Generated new TLS certificate" +msgstr "Új TLS tanúsítvány generálva" + +#: dcpp/DCPlusPlus.cpp:97 +msgid "Hash database" +msgstr "Hash adatbázis" + +#: dcpp/HashManager.cpp:677 +msgid "Hash database rebuilt" +msgstr "A hash adatbázis újraépítve" + +#: dcpp/HashManager.cpp:73 dcpp/HashManager.cpp:277 +#, boost-format +msgid "Hashing failed: %1%" +msgstr "Sikertelen indexelés: %1%" + +#: dcpp/DownloadManager.cpp:264 dcpp/DownloadManager.cpp:269 +msgid "Invalid size" +msgstr "Érvénytelen méret" + +#: dcpp/QueueManager.cpp:486 dcpp/QueueManager.cpp:494 +msgid "" +"Invalid target file (missing directory, check default download directory " +"setting)" +msgstr "" +"Érvénytelen célfájl (hiányzó könyvtár, ellenőrizd az alapértelmezett " +"letöltési könyvtár beállításait)" + +#: dcpp/FavoriteManager.cpp:438 +msgid "Kick user(s)" +msgstr "Felhasználó(k) kirúgása" + +#: dcpp/ConnectionManager.cpp:239 +#, boost-format +msgid "Listening socket failed (you need to restart DC++): %1%" +msgstr "" + +#: dcpp/BufferedSocket.cpp:263 +msgid "Maximum command length exceeded" +msgstr "A maximális parancs hossz túllépve" + +#: dcpp/DownloadManager.cpp:323 +msgid "More data was sent than was expected" +msgstr "A vártnál több adat lett küldve" + +#: dcpp/ShareManager.cpp:403 +msgid "No directory specified" +msgstr "Nincs könyvtár megadva" + +#: dcpp/DownloadManager.cpp:462 +msgid "No slots available" +msgstr "Nincs szabad slot" + +#: dcpp/AdcHub.cpp:554 +msgid "Not listening for connections - please restart DC++" +msgstr "Nem figyel kapcsolatokra - kérlek, indítsd újra a DC++-t!" + +#: dcpp/Transfer.cpp:63 dcpp/Transfer.cpp:67 dcpp/ClientManager.cpp:115 +#: dcpp/SearchManager.cpp:267 dcpp/SearchManager.cpp:329 +#: dcpp/SearchManager.cpp:331 +msgid "Offline" +msgstr "Kilépett" + +#: dcpp/FavoriteManager.cpp:442 +msgid "Redirect user(s)" +msgstr "Felhasználó(k) átirányítása" + +#: dcpp/ShareManager.cpp:421 +msgid "Remove all subdirectories before adding this one" +msgstr "Távolíts el minden alkönyvtárat, mielőtt ezt felveszed" + +#: dcpp/DCPlusPlus.cpp:100 +msgid "Shared Files" +msgstr "Megosztott fájlok" + +#: dcpp/Socket.cpp:270 dcpp/Socket.cpp:274 +msgid "Socks server authentication failed (bad login / password?)" +msgstr "" +"A hitelesítés a socks kiszolgálónál nem sikerült (rossz felhasználói " +"név/jelszó?)" + +#: dcpp/CryptoManager.cpp:223 +#, boost-format +msgid "TLS disabled, failed to generate certificate: %1%" +msgstr "TLS letiltva, a tanúsítvány fájl generálása sikertelen: %1%" + +#: dcpp/CryptoManager.cpp:213 +msgid "TLS disabled, no certificate file set" +msgstr "TLS letiltva, nincs tanúsítvány fájl beállítva" + +#: dcpp/QueueManager.cpp:481 dcpp/QueueManager.cpp:490 +msgid "Target filename too long" +msgstr "A cél fájlneve túl hosszú" + +#: dcpp/QueueManager.cpp:769 +msgid "Target removed" +msgstr "Cél eltávolítva" + +#: dcpp/Socket.cpp:256 +msgid "The socks server doesn't support login / password authentication" +msgstr "" +"A socks kiszolgáló nem támogatja a bejelentkezési név / jelszó hitelesítést" + +#: dcpp/Socket.cpp:163 dcpp/Socket.cpp:174 dcpp/Socket.cpp:207 +#: dcpp/Socket.cpp:211 dcpp/Socket.cpp:238 dcpp/Socket.cpp:253 +msgid "The socks server failed establish a connection" +msgstr "Nem sikerült a socks kiszolgálóhoz kapcsolódni" + +#: dcpp/Socket.cpp:242 +msgid "The socks server requires authentication" +msgstr "A socks kiszolgáló hitelesítést igényel" + +#: dcpp/ShareManager.cpp:407 +msgid "The temporary download directory cannot be shared" +msgstr "Az ideiglenes letöltési könyvtár nem megosztható" + +#: dcpp/QueueManager.cpp:436 +msgid "This file is already queued" +msgstr "A fájl már a sorban van" + +#: dcpp/Thread.cpp:34 dcpp/Thread.cpp:42 +msgid "Unable to create thread" +msgstr "A szál léterhozása sikertelen" + +#: dcpp/QueueManager.cpp:957 +#, boost-format +msgid "Unable to open filelist: %1%" +msgstr "Nem sikerült megnyitni a fájl-listát: %1%" + +#: dcpp/HashManager.cpp:131 +msgid "Unable to read hash data file" +msgstr "A hash adatfájl beolvasása nem lehetséges" + +#: dcpp/DownloadManager.cpp:145 +#, boost-format +msgid "Unable to rename %1%: %2%" +msgstr "A fájl átnevezése sikertelen: %1%: %2%" + +#: dcpp/UploadManager.cpp:149 +#, boost-format +msgid "Unable to send file %1%: %2%" +msgstr "A fájl küldése sikertelen: %1%: %2%" + +#: dcpp/Socket.cpp:55 +#, boost-format +msgid "Unknown error: 0x%1%" +msgstr "Ismeretlen hiba: 0x%1%" + +#: dcpp/ShareManager.cpp:426 dcpp/ShareManager.cpp:468 +msgid "Virtual directory name already exists" +msgstr "A virtuális könyvtárnév már létezik" + +#: dcpp/QueueManager.cpp:383 dcpp/QueueManager.cpp:407 +msgid "You're trying to download from yourself!" +msgstr "Saját magadtól próbálsz meg letölteni!" + +#: dcpp/SettingsManager.cpp:156 +msgid "downloaded from" +msgstr "letöltve innen:" + +#: dcpp/SettingsManager.cpp:157 +msgid "uploaded to" +msgstr "feltöltve ide:" Modified: dcplusplus/trunk/dcpp/po/id.po =================================================================== --- dcplusplus/trunk/dcpp/po/id.po 2008-02-05 09:32:59 UTC (rev 989) +++ dcplusplus/trunk/dcpp/po/id.po 2008-02-05 22:10:22 UTC (rev 990) @@ -7,7 +7,7 @@ msgstr "" "Project-Id-Version: dcpp\n" "Report-Msgid-Bugs-To: dcp...@li...\n" -"POT-Creation-Date: 2008-01-31 20:32+0100\n" +"POT-Creation-Date: 2008-02-05 20:19+0100\n" "Last-Translator: <dod...@us...>\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -55,12 +55,12 @@ "%1% not shared; calculated CRC32 does not match the one found in SFV file." msgstr "" -#: dcpp/DownloadManager.cpp:143 +#: dcpp/QueueManager.cpp:332 #, boost-format msgid "%1% renamed to %2%" msgstr "" -#: dcpp/DownloadManager.cpp:547 +#: dcpp/DownloadManager.cpp:520 #, fuzzy, boost-format msgid "%1%: File not available" msgstr "Arsip tidak tersedia" @@ -75,20 +75,20 @@ msgid "%s B" msgstr "" -#: dcpp/QueueManager.cpp:503 +#: dcpp/QueueManager.cpp:539 msgid "A file of equal or larger size already exists at the target location" msgstr "" "Sebuah arsip berukuran sama atau lebih besar sudah ada di lokasi tujuan" -#: dcpp/QueueManager.cpp:446 +#: dcpp/QueueManager.cpp:482 msgid "A file with a different size already exists in the queue" msgstr "Sebuah arsip dengan ukuran lain telah ada di antrian" -#: dcpp/QueueManager.cpp:449 +#: dcpp/QueueManager.cpp:485 msgid "A file with different tth root already exists in the queue" msgstr "Sebuah arsip dengan tth root lain telah ada di antrian" -#: dcpp/QueueManager.cpp:413 +#: dcpp/QueueManager.cpp:449 msgid "A file with the same hash already exists in your share" msgstr "Arsip dengan hash yang sama sudah ada di share Anda" @@ -96,11 +96,11 @@ msgid "All download slots taken" msgstr "Semua slot unduh terpakai" -#: dcpp/DownloadManager.cpp:421 +#: dcpp/DownloadManager.cpp:385 msgid "CRC32 inconsistency (SFV-Check)" msgstr "Inkonsistensi CRC32 (Pemeriksaan SFV)" -#: dcpp/DownloadManager.cpp:419 +#: dcpp/DownloadManager.cpp:383 #, fuzzy, boost-format msgid "CRC32 inconsistency (SFV-Check) (File: %1%)" msgstr "Inkonsistensi CRC32 (Pemeriksaan SFV)" @@ -114,7 +114,7 @@ msgid "Connection timeout" msgstr "Sambungan timeout" -#: dcpp/DownloadManager.cpp:284 +#: dcpp/DownloadManager.cpp:248 #, boost-format msgid "Could not open target file: %1%" msgstr "" @@ -143,7 +143,7 @@ "against: %4%%5%" msgstr "" -#: dcpp/QueueManager.cpp:516 dcpp/QueueManager.cpp:520 +#: dcpp/QueueManager.cpp:552 dcpp/QueueManager.cpp:556 #, boost-format msgid "Duplicate source: %1%" msgstr "" @@ -223,7 +223,7 @@ msgid "Finished hashing: %1% (%2%/s)" msgstr "" -#: dcpp/DownloadManager.cpp:353 +#: dcpp/DownloadManager.cpp:317 msgid "Full tree does not match TTH root" msgstr "Pohon yang diunduh tidak cocok dengan TTH root" @@ -244,11 +244,11 @@ msgid "Hashing failed: %1%" msgstr "" -#: dcpp/DownloadManager.cpp:264 dcpp/DownloadManager.cpp:269 +#: dcpp/DownloadManager.cpp:228 dcpp/DownloadManager.cpp:233 msgid "Invalid size" msgstr "" -#: dcpp/QueueManager.cpp:486 dcpp/QueueManager.cpp:494 +#: dcpp/QueueManager.cpp:522 dcpp/QueueManager.cpp:530 msgid "" "Invalid target file (missing directory, check default download directory " "setting)" @@ -267,7 +267,7 @@ msgid "Maximum command length exceeded" msgstr "" -#: dcpp/DownloadManager.cpp:323 +#: dcpp/DownloadManager.cpp:287 msgid "More data was sent than was expected" msgstr "Lebih banyak data dikirim dari yang diharapkan" @@ -275,7 +275,7 @@ msgid "No directory specified" msgstr "Direktori tidak diberikan" -#: dcpp/DownloadManager.cpp:462 +#: dcpp/DownloadManager.cpp:426 msgid "No slots available" msgstr "Slot tidak tersedia" @@ -314,11 +314,11 @@ msgid "TLS disabled, no certificate file set" msgstr "" -#: dcpp/QueueManager.cpp:481 dcpp/QueueManager.cpp:490 +#: dcpp/QueueManager.cpp:517 dcpp/QueueManager.cpp:526 msgid "Target filename too long" msgstr "Nama arsip tujuan terlalu panjang" -#: dcpp/QueueManager.cpp:769 +#: dcpp/QueueManager.cpp:805 msgid "Target removed" msgstr "" @@ -339,7 +339,7 @@ msgid "The temporary download directory cannot be shared" msgstr "Direktori unduh sementara tidak boleh di-share" -#: dcpp/QueueManager.cpp:436 +#: dcpp/QueueManager.cpp:472 msgid "This file is already queued" msgstr "" @@ -347,7 +347,7 @@ msgid "Unable to create thread" msgstr "Gagal menciptakan thread" -#: dcpp/QueueManager.cpp:957 +#: dcpp/QueueManager.cpp:1002 #, boost-format msgid "Unable to open filelist: %1%" msgstr "" @@ -357,7 +357,7 @@ msgid "Unable to read hash data file" msgstr "Gagal menciptakan thread" -#: dcpp/DownloadManager.cpp:145 +#: dcpp/QueueManager.cpp:334 #, fuzzy, boost-format msgid "Unable to rename %1%: %2%" msgstr "Gagal menciptakan thread" @@ -376,7 +376,7 @@ msgid "Virtual directory name already exists" msgstr "Nama direktori semu telah ada" -#: dcpp/QueueManager.cpp:383 dcpp/QueueManager.cpp:407 +#: dcpp/QueueManager.cpp:419 dcpp/QueueManager.cpp:443 msgid "You're trying to download from yourself!" msgstr "Anda mengunduh dari diri sendiri!" Modified: dcplusplus/trunk/dcpp/po/it.po =================================================================== --- dcplusplus/trunk/dcpp/po/it.po 2008-02-05 09:32:59 UTC (rev 989) +++ dcplusplus/trunk/dcpp/po/it.po 2008-02-05 22:10:22 UTC (rev 990) @@ -7,7 +7,7 @@ msgstr "" "Project-Id-Version: dcpp\n" "Report-Msgid-Bugs-To: dcp...@li...\n" -"POT-Creation-Date: 2008-01-31 20:32+0100\n" +"POT-Creation-Date: 2008-02-05 20:19+0100\n" "Last-Translator: <vec...@us...>\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -55,12 +55,12 @@ "%1% not shared; calculated CRC32 does not match the one found in SFV file." msgstr "" -#: dcpp/DownloadManager.cpp:143 +#: dcpp/QueueManager.cpp:332 #, boost-format msgid "%1% renamed to %2%" msgstr "" -#: dcpp/DownloadManager.cpp:547 +#: dcpp/DownloadManager.cpp:520 #, fuzzy, boost-format msgid "%1%: File not available" msgstr "File non disponibile" @@ -75,21 +75,21 @@ msgid "%s B" msgstr "" -#: dcpp/QueueManager.cpp:503 +#: dcpp/QueueManager.cpp:539 msgid "A file of equal or larger size already exists at the target location" msgstr "" "Nella cartella di destinazione esiste già un file di dimensioni uguali o " "maggiori" -#: dcpp/QueueManager.cpp:446 +#: dcpp/QueueManager.cpp:482 msgid "A file with a different size already exists in the queue" msgstr "Nei Download in Coda esiste già un file di dimensione differente" -#: dcpp/QueueManager.cpp:449 +#: dcpp/QueueManager.cpp:485 msgid "A file with different tth root already exists in the queue" msgstr "Nei Download in Coda esiste già un file con TTH root differente" -#: dcpp/QueueManager.cpp:413 +#: dcpp/QueueManager.cpp:449 msgid "A file with the same hash already exists in your share" msgstr "Esiste già un file con lo stesso TTH nei tuoi file condivisi" @@ -97,11 +97,11 @@ msgid "All download slots taken" msgstr "Tutti gli slot per il download occupati" -#: dcpp/DownloadManager.cpp:421 +#: dcpp/DownloadManager.cpp:385 msgid "CRC32 inconsistency (SFV-Check)" msgstr "Inconsistenza CRC32 (Controllo SFV)" -#: dcpp/DownloadManager.cpp:419 +#: dcpp/DownloadManager.cpp:383 #, fuzzy, boost-format msgid "CRC32 inconsistency (SFV-Check) (File: %1%)" msgstr "Inconsistenza CRC32 (Controllo SFV)" @@ -115,7 +115,7 @@ msgid "Connection timeout" msgstr "Connessione in timeout" -#: dcpp/DownloadManager.cpp:284 +#: dcpp/DownloadManager.cpp:248 #, boost-format msgid "Could not open target file: %1%" msgstr "" @@ -144,7 +144,7 @@ "against: %4%%5%" msgstr "" -#: dcpp/QueueManager.cpp:516 dcpp/QueueManager.cpp:520 +#: dcpp/QueueManager.cpp:552 dcpp/QueueManager.cpp:556 #, boost-format msgid "Duplicate source: %1%" msgstr "" @@ -224,7 +224,7 @@ msgid "Finished hashing: %1% (%2%/s)" msgstr "" -#: dcpp/DownloadManager.cpp:353 +#: dcpp/DownloadManager.cpp:317 msgid "Full tree does not match TTH root" msgstr "L'albero delle cartelle non è coerente con la radice TTH" @@ -245,11 +245,11 @@ msgid "Hashing failed: %1%" msgstr "" -#: dcpp/DownloadManager.cpp:264 dcpp/DownloadManager.cpp:269 +#: dcpp/DownloadManager.cpp:228 dcpp/DownloadManager.cpp:233 msgid "Invalid size" msgstr "Grandezza non valida" -#: dcpp/QueueManager.cpp:486 dcpp/QueueManager.cpp:494 +#: dcpp/QueueManager.cpp:522 dcpp/QueueManager.cpp:530 msgid "" "Invalid target file (missing directory, check default download directory " "setting)" @@ -268,7 +268,7 @@ msgid "Maximum command length exceeded" msgstr "Superata massima lunghezza comando" -#: dcpp/DownloadManager.cpp:323 +#: dcpp/DownloadManager.cpp:287 msgid "More data was sent than was expected" msgstr "Sono stati inviati più dati di quanto previsto" @@ -276,7 +276,7 @@ msgid "No directory specified" msgstr "Nessuna cartella specificata" -#: dcpp/DownloadManager.cpp:462 +#: dcpp/DownloadManager.cpp:426 msgid "No slots available" msgstr "Nessuno slot disponibile" @@ -316,11 +316,11 @@ msgid "TLS disabled, no certificate file set" msgstr "TLS disattivato, file certificato non impostato" -#: dcpp/QueueManager.cpp:481 dcpp/QueueManager.cpp:490 +#: dcpp/QueueManager.cpp:517 dcpp/QueueManager.cpp:526 msgid "Target filename too long" msgstr "Nome file di destinazione troppo lungo" -#: dcpp/QueueManager.cpp:769 +#: dcpp/QueueManager.cpp:805 msgid "Target removed" msgstr "File di destinazione rimosso" @@ -341,7 +341,7 @@ msgid "The temporary download directory cannot be shared" msgstr "La cartella di download temporanea non può essere condivisa" -#: dcpp/QueueManager.cpp:436 +#: dcpp/QueueManager.cpp:472 msgid "This file is already queued" msgstr "Questo file è già in coda" @@ -349,7 +349,7 @@ msgid "Unable to create thread" msgstr "Impossibile creare la discussione" -#: dcpp/QueueManager.cpp:957 +#: dcpp/QueueManager.cpp:1002 #, boost-format msgid "Unable to open filelist: %1%" msgstr "" @@ -358,7 +358,7 @@ msgid "Unable to read hash data file" msgstr "Impossibile leggere dati hash del file" -#: dcpp/DownloadManager.cpp:145 +#: dcpp/QueueManager.cpp:334 #, fuzzy, boost-format msgid "Unable to rename %1%: %2%" msgstr "Impossibile creare la discussione" @@ -377,7 +377,7 @@ msgid "Virtual directory name already exists" msgstr "Nome cartella virtuale gi�sistente" -#: dcpp/QueueManager.cpp:383 dcpp/QueueManager.cpp:407 +#: dcpp/QueueManager.cpp:419 dcpp/QueueManager.cpp:443 msgid "You're trying to download from yourself!" msgstr "Stai cercando di scaricare da te stesso!" Modified: dcplusplus/trunk/dcpp/po/km.po =================================================================== --- dcplusplus/trunk/dcpp/po/km.po 2008-02-05 09:32:59 UTC (rev 989) +++ dcplusplus/trunk/dcpp/po/km.po 2008-02-05 22:10:22 UTC (rev 990) @@ -7,7 +7,7 @@ msgstr "" "Project-Id-Version: dcpp\n" "Report-Msgid-Bugs-To: dcp...@li...\n" -"POT-Creation-Date: 2008-01-31 20:32+0100\n" +"POT-Creation-Date: 2008-02-05 20:19+0100\n" "Last-Translator: <Vey...@us...>\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -55,12 +55,12 @@ "%1% not shared; calculated CRC32 does not match the one found in SFV file." msgstr "" -#: dcpp/DownloadManager.cpp:143 +#: dcpp/QueueManager.cpp:332 #, boost-format msgid "%1% renamed to %2%" msgstr "" -#: dcpp/DownloadManager.cpp:547 +#: dcpp/DownloadManager.cpp:520 #, fuzzy, boost-format msgid "%1%: File not available" msgstr "ឯកសារពុំអាចរកបាន" @@ -75,19 +75,19 @@ msgid "%s B" msgstr "" -#: dcpp/QueueManager.cpp:503 +#: dcpp/QueueManager.cpp:539 msgid "A file of equal or larger size already exists at the target location" msgstr "ទំហំឯកសារដែលប៉ុនគ្នា ឬ ធំជាង គឺមានរួចហើយនៅឯទីតាំងគោលដៅ" -#: dcpp/QueueManager.cpp:446 +#: dcpp/QueueManager.cpp:482 msgid "A file with a different size already exists in the queue" msgstr "ឯកសារដែលមានទំហំខុសគ្នា មានរួចហើយនៅក្នុងជួរ" -#: dcpp/QueueManager.cpp:449 +#: dcpp/QueueManager.cpp:485 msgid "A file with different tth root already exists in the queue" msgstr "ឯកសារដែលមានឫស tth ខុសគ្នា មានរួចហើយនៅក្នុងជួរ" -#: dcpp/QueueManager.cpp:413 +#: dcpp/QueueManager.cpp:449 msgid "A file with the same hash already exists in your share" msgstr "ឯកសារដែលច្របូកច្របល់ដូចគ្នានេះ មានរួចហើយនៅក្នុងទីចែករំលែករបស់អ្នក" @@ -95,11 +95,11 @@ msgid "All download slots taken" msgstr "ប្រលោះទាញយកទាំងអស់ គ្មានទំនេរ" -#: dcpp/DownloadManager.cpp:421 +#: dcpp/DownloadManager.cpp:385 msgid "CRC32 inconsistency (SFV-Check)" msgstr "CRC32 មិនខ្ជាប់ខ្ជួន (SFV-ត្រួតពិនិត្យ)" -#: dcpp/DownloadManager.cpp:419 +#: dcpp/DownloadManager.cpp:383 #, fuzzy, boost-format msgid "CRC32 inconsistency (SFV-Check) (File: %1%)" msgstr "CRC32 មិនខ្ជាប់ខ្ជួន (SFV-ត្រួតពិនិត្យ)" @@ -113,7 +113,7 @@ msgid "Connection timeout" msgstr "ការតភ្ជាប់ អស់ពេល" -#: dcpp/DownloadManager.cpp:284 +#: dcpp/DownloadManager.cpp:248 #, boost-format msgid "Could not open target file: %1%" msgstr "" @@ -142,7 +142,7 @@ "against: %4%%5%" msgstr "" -#: dcpp/QueueManager.cpp:516 dcpp/QueueManager.cpp:520 +#: dcpp/QueueManager.cpp:552 dcpp/QueueManager.cpp:556 #, boost-format msgid "Duplicate source: %1%" msgstr "" @@ -222,7 +222,7 @@ msgid "Finished hashing: %1% (%2%/s)" msgstr "" -#: dcpp/DownloadManager.cpp:353 +#: dcpp/DownloadManager.cpp:317 msgid "Full tree does not match TTH root" msgstr "មែកធាងពេញលេញ មិនអាចផ្គុផ្គងនឹងឫស TTH" @@ -243,11 +243,11 @@ msgid "Hashing failed: %1%" msgstr "" -#: dcpp/DownloadManager.cpp:264 dcpp/DownloadManager.cpp:269 +#: dcpp/DownloadManager.cpp:228 dcpp/DownloadManager.cpp:233 msgid "Invalid size" msgstr "" -#: dcpp/QueueManager.cpp:486 dcpp/QueueManager.cpp:494 +#: dcpp/QueueManager.cpp:522 dcpp/QueueManager.cpp:530 msgid "" "Invalid target file (missing directory, check default download directory " "setting)" @@ -266,7 +266,7 @@ msgid "Maximum command length exceeded" msgstr "" -#: dcpp/DownloadManager.cpp:323 +#: dcpp/DownloadManager.cpp:287 msgid "More data was sent than was expected" msgstr "ទិន្នន័យជាច្រើនត្រូវបានផ្ញើហួសពីការរំពឹងទុក" @@ -274,7 +274,7 @@ msgid "No directory specified" msgstr "គ្មានថតក្រូណូបញ្ជាក់លម្អិត" -#: dcpp/DownloadManager.cpp:462 +#: dcpp/DownloadManager.cpp:426 msgid "No slots available" msgstr "គ្មានប្រលោះដែលអាចរកបាន" @@ -314,11 +314,11 @@ msgid "TLS disabled, no certificate file set" msgstr "" -#: dcpp/QueueManager.cpp:481 dcpp/QueueManager.cpp:490 +#: dcpp/QueueManager.cpp:517 dcpp/QueueManager.cpp:526 msgid "Target filename too long" msgstr "ឈ្មោះឯកសារគោលដៅវែងណាស់" -#: dcpp/QueueManager.cpp:769 +#: dcpp/QueueManager.cpp:805 msgid "Target removed" msgstr "" @@ -339,7 +339,7 @@ msgid "The temporary download directory cannot be shared" msgstr "ថតក្រូណូដែលទាញយកជាបណ្តោះអាសន្ន មិនអាចត្រូវបានចែករំលែក" -#: dcpp/QueueManager.cpp:436 +#: dcpp/QueueManager.cpp:472 msgid "This file is already queued" msgstr "" @@ -347,7 +347,7 @@ msgid "Unable to create thread" msgstr "មិនអាចបង្កើតខ្សែស្រឡាយ" -#: dcpp/QueueManager.cpp:957 +#: dcpp/QueueManager.cpp:1002 #, boost-format msgid "Unable to open filelist: %1%" msgstr "" @@ -356,7 +356,7 @@ msgid "Unable to read hash data file" msgstr "មិនអាចអានឯកសារទិន្នន័យច្របូកច្របល់" -#: dcpp/DownloadManager.cpp:145 +#: dcpp/QueueManager.cpp:334 #, fuzzy, boost-format msgid "Unable to rename %1%: %2%" msgstr "មិនអាចបង្កើតខ្សែស្រឡាយ" @@ -375,7 +375,7 @@ msgid "Virtual directory name already exists" msgstr "ឈ្មោះថតក្រូណូនិម្មិត មានរួចហើយ" -#: dcpp/QueueManager.cpp:383 dcpp/QueueManager.cpp:407 +#: dcpp/QueueManager.cpp:419 dcpp/QueueManager.cpp:443 msgid "You're trying to download from yourself!" msgstr "អ្នកកំពុងតែសាកល្បងទាញយកពីខ្លួនឯង!" Modified: dcplusplus/trunk/dcpp/po/ko.po =================================================================== --- dcplusplus/trunk/dcpp/po/ko.po 2008-02-05 09:32:59 UTC (rev 989) +++ dcplusplus/trunk/dcpp/po/ko.po 2008-02-05 22:10:22 UTC (rev 990) @@ -7,7 +7,7 @@ msgstr "" "Project-Id-Version: dcpp\n" "Report-Msgid-Bugs-To: dcp...@li...\n" -"POT-Creation-Date: 2008-01-31 20:32+0100\n" +"POT-Creation-Date: 2008-02-05 20:19+0100\n" "Last-Translator: <gut...@us...>\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -55,12 +55,12 @@ "%1% not shared; calculated CRC32 does not match the one found in SFV file." msgstr "" -#: dcpp/DownloadManager.cpp:143 +#: dcpp/QueueManager.cpp:332 #, boost-format msgid "%1% renamed to %2%" msgstr "" -#: dcpp/DownloadManager.cpp:547 +#: dcpp/DownloadManager.cpp:520 #, fuzzy, boost-format msgid "%1%: File not available" msgstr "파일이 유효하지 않음" @@ -75,20 +75,20 @@ msgid "%s B" msgstr "" -#: dcpp/QueueManager.cpp:503 +#: dcpp/QueueManager.cpp:539 msgid "A file of equal or larger size already exists at the target location" msgstr "크기가 같거나 큰 파일이 이미 대상 위치에 있음" -#: dcpp/QueueManager.cpp:446 +#: dcpp/QueueManager.cpp:482 msgid "A file with a different size already exists in the queue" msgstr "다른 크기의 파일이 이미 '다운로드 대기열'에 있음" -#: dcpp/QueueManager.cpp:449 +#: dcpp/QueueManager.cpp:485 msgid "A file with different tth root already exists in the queue" msgstr "" "다른 TTH(Tigertree Hash) Root 값을 갖는 파일이 이미 '다운로드 대기열'에 있음" -#: dcpp/QueueManager.cpp:413 +#: dcpp/QueueManager.cpp:449 msgid "A file with the same hash already exists in your share" msgstr "동일한 Hash를 갖는 파일이 이미 공유 디렉토리에 존재함" @@ -96,11 +96,11 @@ msgid "All download slots taken" msgstr "모든 다운로드 슬롯이 꽉 참" -#: dcpp/DownloadManager.cpp:421 +#: dcpp/DownloadManager.cpp:385 msgid "CRC32 inconsistency (SFV-Check)" msgstr "32-bit CRC 코드 불일치 (SFV-검사)" -#: dcpp/DownloadManager.cpp:419 +#: dcpp/DownloadManager.cpp:383 #, fuzzy, boost-format msgid "CRC32 inconsistency (SFV-Check) (File: %1%)" msgstr "32-bit CRC 코드 불일치 (SFV-검사)" @@ -114,7 +114,7 @@ msgid "Connection timeout" msgstr "연결 시간 초과" -#: dcpp/DownloadManager.cpp:284 +#: dcpp/DownloadManager.cpp:248 #, boost-format msgid "Could not open target file: %1%" msgstr "" @@ -143,7 +143,7 @@ "against: %4%%5%" msgstr "" -#: dcpp/QueueManager.cpp:516 dcpp/QueueManager.cpp:520 +#: dcpp/QueueManager.cpp:552 dcpp/QueueManager.cpp:556 #, boost-format msgid "Duplicate source: %1%" msgstr "" @@ -226,7 +226,7 @@ msgid "Finished hashing: %1% (%2%/s)" msgstr "" -#: dcpp/DownloadManager.cpp:353 +#: dcpp/DownloadManager.cpp:317 msgid "Full tree does not match TTH root" msgstr "받은 파일-목록의 TTH(Tigertree Hash) Root 값이 일치하지 않음" @@ -247,11 +247,11 @@ msgid "Hashing failed: %1%" msgstr "" -#: dcpp/DownloadManager.cpp:264 dcpp/DownloadManager.cpp:269 +#: dcpp/DownloadManager.cpp:228 dcpp/DownloadManager.cpp:233 msgid "Invalid size" msgstr "" -#: dcpp/QueueManager.cpp:486 dcpp/QueueManager.cpp:494 +#: dcpp/QueueManager.cpp:522 dcpp/QueueManager.cpp:530 msgid "" "Invalid target file (missing directory, check default download directory " "setting)" @@ -270,7 +270,7 @@ msgid "Maximum command length exceeded" msgstr "최대 명령어 길이를 초과함" -#: dcpp/DownloadManager.cpp:323 +#: dcpp/DownloadManager.cpp:287 msgid "More data was sent than was expected" msgstr "예상되었던 것보다 많은 양의 데이터가 보내졌음" @@ -278,7 +278,7 @@ msgid "No directory specified" msgstr "디렉토리가 지정되지 않았음" -#: dcpp/DownloadManager.cpp:462 +#: dcpp/DownloadManager.cpp:426 msgid "No slots available" msgstr "남은 슬롯이 없음" @@ -317,11 +317,11 @@ msgid "TLS disabled, no certificate file set" msgstr "TLS를 사용할 수 없음, 인증 파일 셋이 없음" -#: dcpp/QueueManager.cpp:481 dcpp/QueueManager.cpp:490 +#: dcpp/QueueManager.cpp:517 dcpp/QueueManager.cpp:526 msgid "Target filename too long" msgstr "대상 파일 이름이 너무 김" -#: dcpp/QueueManager.cpp:769 +#: dcpp/QueueManager.cpp:805 msgid "Target removed" msgstr "" @@ -342,7 +342,7 @@ msgid "The temporary download directory cannot be shared" msgstr "'미완료 다운로드 디렉토리'는 공유할 수 없음" -#: dcpp/QueueManager.cpp:436 +#: dcpp/QueueManager.cpp:472 msgid "This file is already queued" msgstr "이 파일은 이미 '다운로드 대기열'에 추가되었음" @@ -350,7 +350,7 @@ msgid "Unable to create thread" msgstr "Thread를 생성할 수 없음" -#: dcpp/QueueManager.cpp:957 +#: dcpp/QueueManager.cpp:1002 #, boost-format msgid "Unable to open filelist: %1%" msgstr "" @@ -359,7 +359,7 @@ msgid "Unable to read hash data file" msgstr "Hash 데이터 파일을 읽을 수 없음" -#: dcpp/DownloadManager.cpp:145 +#: dcpp/QueueManager.cpp:334 #, fuzzy, boost-format msgid "Unable to rename %1%: %2%" msgstr "Thread를 생성할 수 없음" @@ -378,7 +378,7 @@ msgid "Virtual directory name already exists" msgstr "지정한 공유 이름이 이미 존재함" -#: dcpp/QueueManager.cpp:383 dcpp/QueueManager.cpp:407 +#: dcpp/QueueManager.cpp:419 dcpp/QueueManager.cpp:443 msgid "You're trying to download from yourself!" msgstr "자신의 파일을 다운로드할 수 없음" Modified: dcplusplus/trunk/dcpp/po/pl.po =================================================================== --- dcplusplus/trunk/dcpp/po/pl.po 2008-02-05 09:32:59 UTC (rev 989) +++ dcplusplus/trunk/dcpp/po/pl.po 2008-02-05 22:10:22 UTC (rev 990) @@ -7,7 +7,7 @@ msgstr "" "Project-Id-Version: dcpp\n" "Report-Msgid-Bugs-To: dcp...@li...\n" -"POT-Creation-Date: 2008-01-31 20:32+0100\n" +"POT-Creation-Date: 2008-02-05 20:19+0100\n" "Last-Translator: <k4...@us...>\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -56,12 +56,12 @@ "%1% not shared; calculated CRC32 does not match the one found in SFV file." msgstr "" -#: dcpp/DownloadManager.cpp:143 +#: dcpp/QueueManager.cpp:332 #, boost-format msgid "%1% renamed to %2%" msgstr "" -#: dcpp/DownloadManager.cpp:547 +#: dcpp/DownloadManager.cpp:520 #, fuzzy, boost-format msgid "%1%: File not available" msgstr "Plik niedostępny" @@ -76,21 +76,21 @@ msgid "%s B" msgstr "" -#: dcpp/QueueManager.cpp:503 +#: dcpp/QueueManager.cpp:539 msgid "A file of equal or larger size already exists at the target location" msgstr "" "Plik o tym samym lub większym rozmiarze znajduje się już w aktualnej " "lokalizacji" -#: dcpp/QueueManager.cpp:446 +#: dcpp/QueueManager.cpp:482 msgid "A file with a different size already exists in the queue" msgstr "Plik o innym rozmiarze znajduje się już w kolejce pobierania" -#: dcpp/QueueManager.cpp:449 +#: dcpp/QueueManager.cpp:485 msgid "A file with different tth root already exists in the queue" msgstr "Plik o innym tth root znajduje się już w kolejce pobierania" -#: dcpp/QueueManager.cpp:413 +#: dcpp/QueueManager.cpp:449 msgid "A file with the same hash already exists in your share" msgstr "Plik z tym samym hashem jest już udostępniony" @@ -98,11 +98,11 @@ msgid "All download slots taken" msgstr "Wszystkie sloty są zajęte" -#: dcpp/DownloadManager.cpp:421 +#: dcpp/DownloadManager.cpp:385 msgid "CRC32 inconsistency (SFV-Check)" msgstr "Niezgodne CRC32 (sprawdź SFV)" -#: dcpp/DownloadManager.cpp:419 +#: dcpp/DownloadManager.cpp:383 #, fuzzy, boost-format msgid "CRC32 inconsistency (SFV-Check) (File: %1%)" msgstr "Niezgodne CRC32 (sprawdź SFV)" @@ -116,7 +116,7 @@ msgid "Connection timeout" msgstr "Wygasł czas oczekiwania na połączenie" -#: dcpp/DownloadManager.cpp:284 +#: dcpp/DownloadManager.cpp:248 #, boost-format msgid "Could not open target file: %1%" msgstr "" @@ -145,7 +145,7 @@ "against: %4%%5%" msgstr "" -#: dcpp/QueueManager.cpp:516 dcpp/QueueManager.cpp:520 +#: dcpp/QueueManager.cpp:552 dcpp/QueueManager.cpp:556 #, boost-format msgid "Duplicate source: %1%" msgstr "" @@ -225,7 +225,7 @@ msgid "Finished hashing: %1% (%2%/s)" msgstr "" -#: dcpp/DownloadManager.cpp:353 +#: dcpp/DownloadManager.cpp:317 msgid "Full tree does not match TTH root" msgstr "Drzewo katalogu nie odpowiada TTH" @@ -246,11 +246,11 @@ msgid "Hashing failed: %1%" msgstr "" -#: dcpp/DownloadManager.cpp:264 dcpp/DownloadManager.cpp:269 +#: dcpp/DownloadManager.cpp:228 dcpp/DownloadManager.cpp:233 msgid "Invalid size" msgstr "" -#: dcpp/QueueManager.cpp:486 dcpp/QueueManager.cpp:494 +#: dcpp/QueueManager.cpp:522 dcpp/QueueManager.cpp:530 msgid "" "Invalid target file (missing directory, check default download directory " "setting)" @@ -269,7 +269,7 @@ msgid "Maximum command length exceeded" msgstr "Przekroczono maksymalną długość komendy" -#: dcpp/DownloadManager.cpp:323 +#: dcpp/DownloadManager.cpp:287 msgid "More data was sent than was expected" msgstr "Więcej danych wysłano niż oczekiwano" @@ -277,7 +277,7 @@ msgid "No directory specified" msgstr "Brak zdefiniowanego katalogu" -#: dcpp/DownloadManager.cpp:462 +#: dcpp/DownloadManager.cpp:426 msgid "No slots available" msgstr "Brak wolnych slotów" @@ -316,11 +316,11 @@ msgid "TLS disabled, no certificate file set" msgstr "TLS wyłączony. Nie ustalony certyfikat pliku" -#: dcpp/QueueManager.cpp:481 dcpp/QueueManager.cpp:490 +#: dcpp/QueueManager.cpp:517 dcpp/QueueManager.cpp:526 msgid "Target filename too long" msgstr "Za długa docelowa nazwa pliku" -#: dcpp/QueueManager.cpp:769 +#: dcpp/QueueManager.cpp:805 msgid "Target removed" msgstr "" @@ -341,7 +341,7 @@ msgid "The temporary download directory cannot be shared" msgstr "Katalog plików tymczasowych nie może być udostępniony" -#: dcpp/QueueManager.cpp:436 +#: dcpp/QueueManager.cpp:472 msgid "This file is already queued" msgstr "Ten plik już jest na liście oczekujących" @@ -349,7 +349,7 @@ msgid "Unable to create thread" msgstr "Nie można utworzyć wątku" -#: dcpp/QueueManager.cpp:957 +#: dcpp/QueueManager.cpp:1002 #, boost-format msgid "Unable to open filelist: %1%" msgstr "" @@ -358,7 +358,7 @@ msgid "Unable to read hash data file" msgstr "Błąd odczytu danych pliku hash" -#: dcpp/DownloadManager.cpp:145 +#: dcpp/QueueManager.cpp:334 #, fuzzy, boost-format msgid "Unable to rename %1%: %2%" msgstr "Nie można utworzyć wątku" @@ -377,7 +377,7 @@ msgid "Virtual directory name already exists" msgstr "Nazwa wirtualnego katalogu już istnieje" -#: dcpp/QueueManager.cpp:383 dcpp/QueueManager.cpp:407 +#: dcpp/QueueManager.cpp:419 dcpp/QueueManager.cpp:443 msgid "You're trying to download from yourself!" msgstr "Próbujesz pobrać sam od siebie!" Modified: dcplusplus/trunk/dcpp/po/pt.po =================================================================== --- dcplusplus/trunk/dcpp/po/pt.po 2008-02-05 09:32:59 UTC (rev 989) +++ dcplusplus/trunk/dcpp/po/pt.po 2008-02-05 22:10:22 UTC (rev 990) @@ -7,7 +7,7 @@ msgstr "" "Project-Id-Version: dcpp\n" "Report-Msgid-Bugs-To: dcp...@li...\n" -"POT-Creation-Date: 2008-01-31 20:32+0100\n" +"POT-Creation-Date: 2008-02-05 20:19+0100\n" "Last-Translator: <Is...@us...>\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -55,12 +55,12 @@ "%1% not shared; calculated CRC32 does not match the one found in SFV file." msgstr "" -#: dcpp/DownloadManager.cpp:143 +#: dcpp/QueueManager.cpp:332 #, boost-format msgid "%1% renamed to %2%" msgstr "" -#: dcpp/DownloadManager.cpp:547 +#: dcpp/DownloadManager.cpp:520 #, fuzzy, boost-format msgid "%1%: File not available" msgstr "Ficheiro indisponível" @@ -75,20 +75,20 @@ msgid "%s B" msgstr "" -#: dcpp/QueueManager.cpp:503 +#: dcpp/QueueManager.cpp:539 msgid "A file of equal or larger size already exists at the target location" msgstr "" "Um ficheiro com tamanho igual ou superior já existe na pasta de destino" -#: dcpp/QueueManager.cpp:446 +#: dcpp/QueueManager.cpp:482 msgid "A file with a different size already exists in the queue" msgstr "Um ficheiro com tamanho diferente já existe na lista de espera" -#: dcpp/QueueManager.cpp:449 +#: dcpp/QueueManager.cpp:485 msgid "A file with different tth root already exists in the queue" msgstr "Um ficheiro TTH diferente já existe na lista de espera" -#: dcpp/QueueManager.cpp:413 +#: dcpp/QueueManager.cpp:449 msgid "A file with the same hash already exists in your share" msgstr "Um ficheiro com a mesma Hash já existe na sua partilha" @@ -96,11 +96,11 @@ msgid "All download slots taken" msgstr "Todos as slots estão ocupadas" -#: dcpp/DownloadManager.cpp:421 +#: dcpp/DownloadManager.cpp:385 msgid "CRC32 inconsistency (SFV-Check)" msgstr "Inconsistência CRC32 (Controlo SFV)" -#: dcpp/DownloadManager.cpp:419 +#: dcpp/DownloadManager.cpp:383 #, fuzzy, boost-format msgid "CRC32 inconsistency (SFV-Check) (File: %1%)" msgstr "Inconsistência CRC32 (Controlo SFV)" @@ -114,7 +114,7 @@ msgid "Connection timeout" msgstr "Tempo de ligação excedido" -#: dcpp/DownloadManager.cpp:284 +#: dcpp/DownloadManager.cpp:248 #, boost-format msgid "Could not open target file: %1%" msgstr "" @@ -143,7 +143,7 @@ "against: %4%%5%" msgstr "" -#: dcpp/QueueManager.cpp:516 dcpp/QueueManager.cpp:520 +#: dcpp/QueueManager.cpp:552 dcpp/QueueManager.cpp:556 #, boost-format msgid "Duplicate source: %1%" msgstr "" @@ -223,7 +223,7 @@ msgid "Finished hashing: %1% (%2%/s)" msgstr "" -#: dcpp/DownloadManager.cpp:353 +#: dcpp/DownloadManager.cpp:317 msgid "Full tree does not match TTH root" msgstr "Caminho invalido para a hash TTH" @@ -244,11 +244,11 @@ msgid "Hashing failed: %1%" msgstr "" -#: dcpp/DownloadManager.cpp:264 dcpp/DownloadManager.cpp:269 +#: dcpp/DownloadManager.cpp:228 dcpp/DownloadManager.cpp:233 msgid "Invalid size" msgstr "" -#: dcpp/QueueManager.cpp:486 dcpp/QueueManager.cpp:494 +#: dcpp/QueueManager.cpp:522 dcpp/QueueManager.cpp:530 msgid "" "Invalid target file (missing directory, check default download directory " "setting)" @@ -267,7 +267,7 @@ msgid "Maximum command length exceeded" msgstr "" -#: dcpp/DownloadManager.cpp:323 +#: dcpp/DownloadManager.cpp:287 msgid "More data was sent than was expected" msgstr "Foram enviados mais dados que julgado inicialmente" @@ -275,7 +275,7 @@ msgid "No directory specified" msgstr "Nenhuma pasta especificada" -#: dcpp/DownloadManager.cpp:462 +#: dcpp/DownloadManager.cpp:426 msgid "No slots available" msgstr "Nenhuma slot disponível" @@ -317,11 +317,11 @@ msgid "TLS disabled, no certificate file set" msgstr "Falha ao carregar o ficheiro do certificado" -#: dcpp/QueueManager.cpp:481 dcpp/QueueManager.cpp:490 +#: dcpp/QueueManager.cpp:517 dcpp/QueueManager.cpp:526 msgid "Target filename too long" msgstr "Nome do ficheiro de destino demasiado longo" -#: dcpp/QueueManager.cpp:769 +#: dcpp/QueueManager.cpp:805 msgid "Target removed" msgstr "" @@ -342,7 +342,7 @@ msgid "The temporary download directory cannot be shared" msgstr "A pasta dos Downloads temporários não pode ser partilhada" -#: dcpp/QueueManager.cpp:436 +#: dcpp/QueueManager.cpp:472 msgid "This file is already queued" msgstr "" @@ -350,7 +350,7 @@ msgid "Unable to create thread" msgstr "Impossível criar Thread" -#: dcpp/QueueManager.cpp:957 +#: dcpp/QueueManager.cpp:1002 #, boost-format msgid "Unable to open filelist: %1%" msgstr "" @@ -359,7 +359,7 @@ msgid "Unable to read hash data file" msgstr "Impossível de ler a informação da hash" -#: dcpp/DownloadManager.cpp:145 +#: dcpp/QueueManager.cpp:334 #, fuzzy, boost-format msgid "Unable to rename %1%: %2%" msgstr "Impossível criar Thread" @@ -378,7 +378,7 @@ msgid "Virtual directory name already exists" msgstr "O nome da Pasta Virtual já existe" -#: dcpp/QueueManager.cpp:383 dcpp/QueueManager.cpp:407 +#: dcpp/QueueManager.cpp:419 dcpp/QueueManager.cpp:443 msgid "You're trying to download from yourself!" msgstr "Está a tentar transferir de si próprio!" Modified: dcplusplus/trunk/dcpp/po/ro.po =================================================================== --- dcplusplus/trunk/dcpp/po/ro.po 2008-02-05 09:32:59 UTC (rev 989) +++ dcplusplus/trunk/dcpp/po/ro.po 2008-02-05 22:10:22 UTC (rev 990) @@ -7,7 +7,7 @@ msgstr "" "Project-Id-Version: dcpp\n" "Report-Msgid-Bugs-To: dcp...@li...\n" -"POT-Creation-Date: 2008-01-31 20:32+0100\n" +"POT-Creation-Date: 2008-02-05 20:19+0100\n" "Last-Translator: <mun...@us...>\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -18,32 +18,32 @@ #: dcpp/Util.cpp:381 #, c-format, boost-format msgid "%'lld B" -msgstr "" +msgstr "%'lld B" #: dcpp/Util.cpp:343 #, c-format, boost-format msgid "%.02f GiB" -msgstr "" +msgstr "%.02f GiB" #: dcpp/Util.cpp:339 #, c-format, boost-format msgid "%.02f KiB" -msgstr "" +msgstr "%.02f KiB" #: dcpp/Util.cpp:341 #, c-format, boost-format msgid "%.02f MiB" -msgstr "" +msgstr "%.02f MiB" #: dcpp/Util.cpp:347 #, c-format, boost-format msgid "%.02f PiB" -msgstr "" +msgstr "%.02f PiB" #: dcpp/Util.cpp:345 #, c-format, boost-format msgid "%.02f TiB" -msgstr "" +msgstr "%.02f TiB" #: dcpp/NmdcHub.cpp:273 #, boost-format @@ -56,12 +56,12 @@ "%1% not shared; calculated CRC32 does not match the one found in SFV file." msgstr "" -#: dcpp/DownloadManager.cpp:143 +#: dcpp/QueueManager.cpp:332 #, boost-format msgid "%1% renamed to %2%" msgstr "" -#: dcpp/DownloadManager.cpp:547 +#: dcpp/DownloadManager.cpp:520 #, fuzzy, boost-format msgid "%1%: File not available" msgstr "Fișierul nu e disponibil" @@ -69,27 +69,27 @@ #: dcpp/Util.cpp:337 #, c-format, boost-format msgid "%d B" -msgstr "" +msgstr "%d B" #: dcpp/Util.cpp:377 #, c-format, boost-format msgid "%s B" -msgstr "" +msgstr "%s B" -#: dcpp/QueueManager.cpp:503 +#: dcpp/QueueManager.cpp:539 msgid "A file of equal or larger size already exists at the target location" msgstr "" "Un fișier cu o mărime egală sau mai mare există deja la destinația-țintă" -#: dcpp/QueueManager.cpp:446 +#: dcpp/QueueManager.cpp:482 msgid "A file with a different size already exists in the queue" msgstr "Un fișier cu o mărime diferită există deja în coadă" -#: dcpp/QueueManager.cpp:449 +#: dcpp/QueueManager.cpp:485 msgid "A file with different tth root already exists in the queue" msgstr "Un fișier cu o rădăcina TTH diferită există deja în coadă" -#: dcpp/QueueManager.cpp:413 +#: dcpp/QueueManager.cpp:449 msgid "A file with the same hash already exists in your share" msgstr "Un fișier cu haș identic există deja în partajul dv." @@ -97,11 +97,11 @@ msgid "All download slots taken" msgstr "Toate sloturile de descărcare sînt ocupate" -#: dcpp/DownloadManager.cpp:421 +#: dcpp/DownloadManager.cpp:385 msgid "CRC32 inconsistency (SFV-Check)" msgstr "Inconsistență CRC32 (Verificare SFV)" -#: dcpp/DownloadManager.cpp:419 +#: dcpp/DownloadManager.cpp:383 #, fuzzy, boost-format msgid "CRC32 inconsistency (SFV-Check) (File: %1%)" msgstr "Inconsistență CRC32 (Verificare SFV)" @@ -115,7 +115,7 @@ msgid "Connection timeout" msgstr "Conexiune Expirată" -#: dcpp/DownloadManager.cpp:284 +#: dcpp/DownloadManager.cpp:248 #, boost-format msgid "Could not open target file: %1%" msgstr "" @@ -144,7 +144,7 @@ "against: %4%%5%" msgstr "" -#: dcpp/QueueManager.cpp:516 dcpp/QueueManager.cpp:520 +#: dcpp/QueueManager.cpp:552 dcpp/QueueManager.cpp:556 #, boost-format msgid "Duplicate source: %1%" msgstr "" @@ -224,7 +224,7 @@ msgid "Finished hashing: %1% (%2%/s)" msgstr "" -#: dcpp/DownloadManager.cpp:353 +#: dcpp/DownloadManager.cpp:317 msgid "Full tree does not match TTH root" msgstr "Arborele complet nu se potrivește cu rădacina TTH" @@ -245,11 +245,11 @@ msgid "Hashing failed: %1%" msgstr "" -#: dcpp/DownloadManager.cpp:264 dcpp/DownloadManager.cpp:269 +#: dcpp/DownloadManager.cpp:228 dcpp/DownloadManager.cpp:233 msgid "Invalid size" msgstr "Mărime invalidă" -#: dcpp/QueueManager.cpp:486 dcpp/QueueManager.cpp:494 +#: dcpp/QueueManager.cpp:522 dcpp/QueueManager.cpp:530 msgid "" "Invalid target file (missing directory, check default download directory " "setting)" @@ -268,7 +268,7 @@ msgid "Maximum command length exceeded" msgstr "Depășire lungime maximă a comenzii" -#: dcpp/DownloadManager.cpp:323 +#: dcpp/DownloadManager.cpp:287 msgid "More data was sent than was expected" msgstr "Au fost transmise mai multe date decît se aștepta" @@ -276,7 +276,7 @@ msgid "No directory specified" msgstr "Nici un dosar specificat" -#:... [truncated message content] |
From: <arn...@us...> - 2008-02-05 09:33:12
|
Revision: 989 http://dcplusplus.svn.sourceforge.net/dcplusplus/?rev=989&view=rev Author: arnetheduck Date: 2008-02-05 01:32:59 -0800 (Tue, 05 Feb 2008) Log Message: ----------- Use libdcpp to avoid launchpad bugs Modified Paths: -------------- dcplusplus/trunk/dcpp/DCPlusPlus.h dcplusplus/trunk/dcpp/SConscript Modified: dcplusplus/trunk/dcpp/DCPlusPlus.h =================================================================== --- dcplusplus/trunk/dcpp/DCPlusPlus.h 2008-02-05 09:31:54 UTC (rev 988) +++ dcplusplus/trunk/dcpp/DCPlusPlus.h 2008-02-05 09:32:59 UTC (rev 989) @@ -169,7 +169,7 @@ extern void shutdown(); #ifdef BUILDING_DCPP -#define PACKAGE "dcpp" +#define PACKAGE "libdcpp" #define LOCALEDIR Util::getLocalePath().c_str() #define _(String) dgettext(PACKAGE, String) #define F_(String) boost::format(dgettext(PACKAGE, String)) Modified: dcplusplus/trunk/dcpp/SConscript =================================================================== --- dcplusplus/trunk/dcpp/SConscript 2008-02-05 09:31:54 UTC (rev 988) +++ dcplusplus/trunk/dcpp/SConscript 2008-02-05 09:32:59 UTC (rev 989) @@ -39,7 +39,7 @@ env.Append(CPPDEFINES=["BUILDING_DCPP=1"]) -dev.i18n(source_path, env, sources, 'dcpp') +dev.i18n(source_path, env, sources, 'libdcpp') ret = env.StaticLibrary(target, sources) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <arn...@us...> - 2008-02-05 09:31:56
|
Revision: 988 http://dcplusplus.svn.sourceforge.net/dcplusplus/?rev=988&view=rev Author: arnetheduck Date: 2008-02-05 01:31:54 -0800 (Tue, 05 Feb 2008) Log Message: ----------- Fix tab parent, danish translation has encoding errors Modified Paths: -------------- dcplusplus/trunk/win32/TransferView.cpp Removed Paths: ------------- dcplusplus/trunk/dcpp/po/da.po dcplusplus/trunk/win32/po/da.po Property Changed: ---------------- dcplusplus/trunk/dcpp/po/ Property changes on: dcplusplus/trunk/dcpp/po ___________________________________________________________________ Name: svn:ignore + dcpp.pot Deleted: dcplusplus/trunk/dcpp/po/da.po =================================================================== --- dcplusplus/trunk/dcpp/po/da.po 2008-02-03 19:16:41 UTC (rev 987) +++ dcplusplus/trunk/dcpp/po/da.po 2008-02-05 09:31:54 UTC (rev 988) @@ -1,388 +0,0 @@ -# Danish translations for the DC++ package. -# Copyright (C) 2008 The translators -# This file is distributed under the same license as the DC++ package. -# <g2...@us...>, 2008. -# -msgid "" -msgstr "" -"Project-Id-Version: dcpp\n" -"Report-Msgid-Bugs-To: dcp...@li...\n" -"POT-Creation-Date: 2008-01-31 20:32+0100\n" -"Last-Translator: <g2...@us...>\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" - -#: dcpp/Util.cpp:381 -#, c-format, boost-format -msgid "%'lld B" -msgstr "" - -#: dcpp/Util.cpp:343 -#, c-format, boost-format -msgid "%.02f GiB" -msgstr "" - -#: dcpp/Util.cpp:339 -#, c-format, boost-format -msgid "%.02f KiB" -msgstr "" - -#: dcpp/Util.cpp:341 -#, c-format, boost-format -msgid "%.02f MiB" -msgstr "" - -#: dcpp/Util.cpp:347 -#, c-format, boost-format -msgid "%.02f PiB" -msgstr "" - -#: dcpp/Util.cpp:345 -#, c-format, boost-format -msgid "%.02f TiB" -msgstr "" - -#: dcpp/NmdcHub.cpp:273 -#, boost-format -msgid "%1% (Nick unknown)" -msgstr "" - -#: dcpp/HashManager.cpp:767 -#, boost-format -msgid "" -"%1% not shared; calculated CRC32 does not match the one found in SFV file." -msgstr "" - -#: dcpp/DownloadManager.cpp:143 -#, boost-format -msgid "%1% renamed to %2%" -msgstr "" - -#: dcpp/DownloadManager.cpp:547 -#, fuzzy, boost-format -msgid "%1%: File not available" -msgstr "Fil er ikke tilg�elig..!" - -#: dcpp/Util.cpp:337 -#, c-format, boost-format -msgid "%d B" -msgstr "" - -#: dcpp/Util.cpp:377 -#, c-format, boost-format -msgid "%s B" -msgstr "" - -#: dcpp/QueueManager.cpp:503 -msgid "A file of equal or larger size already exists at the target location" -msgstr "En fil af samme st�se eller st�findes allerede p�en angivne placering" - -#: dcpp/QueueManager.cpp:446 -msgid "A file with a different size already exists in the queue" -msgstr "Filer med forskellige st�ser" - -#: dcpp/QueueManager.cpp:449 -msgid "A file with different tth root already exists in the queue" -msgstr "Filer med forskellige st�ser (TTH)" - -#: dcpp/QueueManager.cpp:413 -msgid "A file with the same hash already exists in your share" -msgstr "En fil med den samme hash eksisterer i din deling!" - -#: dcpp/ConnectionManager.cpp:181 -msgid "All download slots taken" -msgstr "Alle downloadslots er i brug" - -#: dcpp/DownloadManager.cpp:421 -msgid "CRC32 inconsistency (SFV-Check)" -msgstr "CRC32-Inkonsistens (SFV-kontrol)" - -#: dcpp/DownloadManager.cpp:419 -#, fuzzy, boost-format -msgid "CRC32 inconsistency (SFV-Check) (File: %1%)" -msgstr "CRC32-Inkonsistens (SFV-kontrol)" - -#: dcpp/ConnectionManager.cpp:385 -msgid "Certificate not trusted, unable to connect" -msgstr "Certifikatet er ikke gyldigt, kunne ikke Oprette forbindelse" - -#: dcpp/Socket.cpp:154 dcpp/ConnectionManager.cpp:187 -#: dcpp/BufferedSocket.cpp:154 -msgid "Connection timeout" -msgstr "Forbindelsen fik 'Timeout' (den anden computer svarer ikke)" - -#: dcpp/DownloadManager.cpp:284 -#, boost-format -msgid "Could not open target file: %1%" -msgstr "" - -#: dcpp/ShareManager.cpp:418 -msgid "Directory already shared" -msgstr "Mappen er allerede delt!" - -#: dcpp/BufferedSocket.cpp:409 dcpp/BufferedSocket.cpp:427 -msgid "Disconnected" -msgstr "Forbindelsen er afbrudt!!!" - -#: dcpp/UploadManager.cpp:450 -#, boost-format -msgid "Disconnected user leaving the hub: %1%" -msgstr "" - -#: dcpp/DCPlusPlus.cpp:103 -msgid "Download Queue" -msgstr "" - -#: dcpp/ShareManager.cpp:745 -#, boost-format -msgid "" -"Duplicate file will not be shared: %1%%2% (Size: %3% B) Dupe matched " -"against: %4%%5%" -msgstr "" - -#: dcpp/QueueManager.cpp:516 dcpp/QueueManager.cpp:520 -#, boost-format -msgid "Duplicate source: %1%" -msgstr "" - -#: dcpp/HashManager.cpp:456 -#, fuzzy, boost-format -msgid "Error creating hash data file: %1%" -msgstr "Kan ikke l� denne TTH-fil" - -#: dcpp/ZUtils.cpp:33 dcpp/ZUtils.cpp:54 dcpp/ZUtils.cpp:76 dcpp/ZUtils.cpp:86 -#: dcpp/BZUtils.cpp:31 dcpp/BZUtils.cpp:52 dcpp/BZUtils.cpp:60 -msgid "Error during compression" -msgstr "Fejl under komprimering" - -#: dcpp/ZUtils.cpp:100 dcpp/ZUtils.cpp:123 dcpp/BZUtils.cpp:72 -#: dcpp/BZUtils.cpp:94 dcpp/BZUtils.cpp:97 dcpp/CryptoManager.cpp:344 -#: dcpp/CryptoManager.cpp:363 dcpp/CryptoManager.cpp:377 -msgid "Error during decompression" -msgstr "Fejl under dekomprimeringen" - -#: dcpp/HashManager.cpp:772 -#, boost-format -msgid "Error hashing %1%: %2%" -msgstr "" - -#: dcpp/HashManager.cpp:118 dcpp/HashManager.cpp:333 -#, boost-format -msgid "Error saving hash data: %1%" -msgstr "" - -#: dcpp/CryptoManager.cpp:228 dcpp/CryptoManager.cpp:232 -#: dcpp/CryptoManager.cpp:237 dcpp/CryptoManager.cpp:241 -msgid "Failed to load certificate file" -msgstr "Fejlede ved indl�ing af Certifikat!" - -#: dcpp/CryptoManager.cpp:246 dcpp/CryptoManager.cpp:250 -#: dcpp/CryptoManager.cpp:255 dcpp/CryptoManager.cpp:259 -msgid "Failed to load private key" -msgstr "Fejlede ved indl�ing af privat n�" - -#: dcpp/Socket.cpp:408 -msgid "" -"Failed to set up the socks server for UDP relay (check socks address and " -"port)" -msgstr "" - -#: dcpp/ShareManager.cpp:780 -#, fuzzy, boost-format -msgid "File list refresh failed: %1%" -msgstr "Fillisten er opdater�.." - -#: dcpp/ShareManager.cpp:824 -msgid "File list refresh finished" -msgstr "Fillisten er opdater�.." - -#: dcpp/ShareManager.cpp:760 -msgid "" -"File list refresh in progress, please wait for it to finish before trying to " -"refresh again" -msgstr "" - -#: dcpp/ShareManager.cpp:802 -msgid "File list refresh initiated" -msgstr "Fillisten opdatering er sat i gang..." - -#: dcpp/DirectoryListing.cpp:102 -msgid "File not available" -msgstr "Fil er ikke tilg�elig..!" - -#: dcpp/HashManager.cpp:89 -#, boost-format -msgid "Finished hashing: %1%" -msgstr "" - -#: dcpp/HashManager.cpp:87 -#, boost-format -msgid "Finished hashing: %1% (%2%/s)" -msgstr "" - -#: dcpp/DownloadManager.cpp:353 -msgid "Full tree does not match TTH root" -msgstr "Downloaded TTH tr�atcher ikke TTH roden" - -#: dcpp/CryptoManager.cpp:221 -msgid "Generated new TLS certificate" -msgstr "Skab TLS certifikat" - -#: dcpp/DCPlusPlus.cpp:97 -msgid "Hash database" -msgstr "Hash databasen" - -#: dcpp/HashManager.cpp:677 -msgid "Hash database rebuilt" -msgstr "Hash databasen er genopbygget" - -#: dcpp/HashManager.cpp:73 dcpp/HashManager.cpp:277 -#, boost-format -msgid "Hashing failed: %1%" -msgstr "" - -#: dcpp/DownloadManager.cpp:264 dcpp/DownloadManager.cpp:269 -msgid "Invalid size" -msgstr "Ugyldig st�se..." - -#: dcpp/QueueManager.cpp:486 dcpp/QueueManager.cpp:494 -msgid "" -"Invalid target file (missing directory, check default download directory " -"setting)" -msgstr "" - -#: dcpp/FavoriteManager.cpp:438 -msgid "Kick user(s)" -msgstr "Spark bruger(e)" - -#: dcpp/ConnectionManager.cpp:239 -#, boost-format -msgid "Listening socket failed (you need to restart DC++): %1%" -msgstr "" - -#: dcpp/BufferedSocket.cpp:263 -msgid "Maximum command length exceeded" -msgstr "Maxsimal l�de for kommando overskredet" - -#: dcpp/DownloadManager.cpp:323 -msgid "More data was sent than was expected" -msgstr "For meget data..." - -#: dcpp/ShareManager.cpp:403 -msgid "No directory specified" -msgstr "Ingen mappe defineret..!" - -#: dcpp/DownloadManager.cpp:462 -msgid "No slots available" -msgstr "Ingen ledige slots" - -#: dcpp/AdcHub.cpp:554 -msgid "Not listening for connections - please restart DC++" -msgstr "Starter ikke - Genstart venligst DC++" - -#: dcpp/Transfer.cpp:63 dcpp/Transfer.cpp:67 dcpp/ClientManager.cpp:115 -#: dcpp/SearchManager.cpp:267 dcpp/SearchManager.cpp:329 -#: dcpp/SearchManager.cpp:331 -msgid "Offline" -msgstr "Offline" - -#: dcpp/FavoriteManager.cpp:442 -msgid "Redirect user(s)" -msgstr "Viderestil bruger(e)" - -#: dcpp/ShareManager.cpp:421 -msgid "Remove all subdirectories before adding this one" -msgstr "" - -#: dcpp/DCPlusPlus.cpp:100 -msgid "Shared Files" -msgstr "Delte filer" - -#: dcpp/Socket.cpp:269 dcpp/Socket.cpp:273 -msgid "Socks server authentication failed (bad login / password?)" -msgstr "Socks-server brugerverificering sl� fejl (forkert brugernavn/kodeord)" - -#: dcpp/CryptoManager.cpp:223 -#, fuzzy, boost-format -msgid "TLS disabled, failed to generate certificate: %1%" -msgstr "TLS deaktivert, ingen certifikatfil angivet" - -#: dcpp/CryptoManager.cpp:213 -msgid "TLS disabled, no certificate file set" -msgstr "TLS deaktivert, ingen certifikatfil angivet" - -#: dcpp/QueueManager.cpp:481 dcpp/QueueManager.cpp:490 -msgid "Target filename too long" -msgstr "Filnavnet er for langt...!" - -#: dcpp/QueueManager.cpp:769 -msgid "Target removed" -msgstr "" - -#: dcpp/Socket.cpp:255 -msgid "The socks server doesn't support login / password authentication" -msgstr "Socks-serveren underst� ikke bruger/kodeord-verificering" - -#: dcpp/Socket.cpp:162 dcpp/Socket.cpp:173 dcpp/Socket.cpp:206 -#: dcpp/Socket.cpp:210 dcpp/Socket.cpp:237 dcpp/Socket.cpp:252 -msgid "The socks server failed establish a connection" -msgstr "Socks-serveren kunne ikke oprette en forbindelse" - -#: dcpp/Socket.cpp:241 -msgid "The socks server requires authentication" -msgstr "Socks-serveren kr�r brugernavn/kodeord" - -#: dcpp/ShareManager.cpp:407 -msgid "The temporary download directory cannot be shared" -msgstr "Den midlertidlige download mappe kan ikke blive delt..!" - -#: dcpp/QueueManager.cpp:436 -msgid "This file is already queued" -msgstr "Filen finnes allerede i downloadk�!" - -#: dcpp/Thread.cpp:34 dcpp/Thread.cpp:42 -#, fuzzy -msgid "Unable to create thread" -msgstr "Kan ikke l� denne TTH-fil" - -#: dcpp/QueueManager.cpp:957 -#, boost-format -msgid "Unable to open filelist: %1%" -msgstr "" - -#: dcpp/HashManager.cpp:131 -msgid "Unable to read hash data file" -msgstr "Kan ikke l� denne TTH-fil" - -#: dcpp/DownloadManager.cpp:145 -#, boost-format -msgid "Unable to rename %1%: %2%" -msgstr "" - -#: dcpp/UploadManager.cpp:149 -#, boost-format -msgid "Unable to send file %1%: %2%" -msgstr "" - -#: dcpp/Socket.cpp:54 -#, c-format, boost-format -msgid "Unknown error: 0x%1$x" -msgstr "" - -#: dcpp/ShareManager.cpp:426 dcpp/ShareManager.cpp:468 -msgid "Virtual directory name already exists" -msgstr "Virtuel mappe navn eksister allerede..." - -#: dcpp/QueueManager.cpp:383 dcpp/QueueManager.cpp:407 -msgid "You're trying to download from yourself!" -msgstr "Du pr�at downloade fra dig selv!!!" - -#: dcpp/SettingsManager.cpp:156 -msgid "downloaded from" -msgstr "" - -#: dcpp/SettingsManager.cpp:157 -msgid "uploaded to" -msgstr "" Modified: dcplusplus/trunk/win32/TransferView.cpp =================================================================== --- dcplusplus/trunk/win32/TransferView.cpp 2008-02-03 19:16:41 UTC (rev 987) +++ dcplusplus/trunk/win32/TransferView.cpp 2008-02-05 09:31:54 UTC (rev 988) @@ -85,13 +85,13 @@ cs.background = (HBRUSH)(COLOR_3DFACE + 1); cs.location = tabs->getUsableArea(true); - connectionsWindow = createWidgetChildWindow(cs); + connectionsWindow = SmartWin::WidgetCreator<WidgetChildWindow>::createWindow(tabs, cs); tabs->addPage(T_("Connections"), 0); cs.style &= ~WS_VISIBLE; cs.caption = T_("Downloads"); - downloadsWindow = createWidgetChildWindow(cs); + downloadsWindow = SmartWin::WidgetCreator<WidgetChildWindow>::createWindow(tabs, cs); tabs->addPage(T_("Downloads"), 1); } Deleted: dcplusplus/trunk/win32/po/da.po =================================================================== --- dcplusplus/trunk/win32/po/da.po 2008-02-03 19:16:41 UTC (rev 987) +++ dcplusplus/trunk/win32/po/da.po 2008-02-05 09:31:54 UTC (rev 988) @@ -1,2269 +0,0 @@ -# Danish translations for the DC++ package. -# Copyright (C) 2008 The translators -# This file is distributed under the same license as the DC++ package. -# <g2...@us...>, 2008. -# -msgid "" -msgstr "" -"Project-Id-Version: win32\n" -"Report-Msgid-Bugs-To: dcp...@li...\n" -"POT-Creation-Date: 2008-02-02 21:32+0100\n" -"Last-Translator: <g2...@us...>\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" - -#: win32/MainWindow.cpp:848 -#, fuzzy, boost-format -msgid "" -"%1%\n" -"Open download page?" -msgstr "�n Download Stien" - -#: win32/TransferView.cpp:569 -#, boost-format -msgid "%1% (%2$0.2f)" -msgstr "" - -#: win32/HashProgressDlg.cpp:91 -#, boost-format -msgid "%1% files/h, %2% files left" -msgstr "" - -#: win32/SearchFrame.cpp:576 -#, boost-format -msgid "%1% filtered" -msgstr "" - -#: win32/SearchFrame.cpp:571 -#, boost-format -msgid "%1% item" -msgid_plural "%1% items" -msgstr[0] "" -msgstr[1] "" - -#: win32/HashProgressDlg.cpp:100 -#, boost-format -msgid "%1% left" -msgstr "" - -#: win32/HubFrame.cpp:936 -#, fuzzy, boost-format -msgid "%1% user" -msgid_plural "%1% users" -msgstr[0] "Ingen bruger(e)" -msgstr[1] "Ingen bruger(e)" - -#: win32/TransferView.cpp:583 win32/TransferView.cpp:631 -#, boost-format -msgid "%1%/s" -msgstr "" - -#: win32/HashProgressDlg.cpp:92 -#, boost-format -msgid "%1%/s, %2% left" -msgstr "" - -#: win32/HubListsDlg.cpp:63 win32/UCPage.cpp:33 -msgid "&Add" -msgstr "" - -#: win32/UploadPage.cpp:37 win32/FavoriteDirsPage.cpp:34 -msgid "&Add folder" -msgstr "" - -#: win32/DirectoryListingFrame.cpp:369 win32/SearchFrame.cpp:774 -#: win32/SearchFrame.cpp:804 win32/DownloadPage.cpp:32 win32/LogPage.cpp:33 -#: win32/Appearance2Page.cpp:30 -#, fuzzy -msgid "&Browse..." -msgstr "Gennemse..." - -#: win32/UCPage.cpp:34 -#, fuzzy -msgid "&Change" -msgstr "Nye Features i DC++..." - -#: win32/PrivateFrame.cpp:373 win32/HubFrame.cpp:1184 -#, fuzzy -msgid "&Close" -msgstr "Farver" - -#: win32/PublicHubsFrame.cpp:150 -msgid "&Configure" -msgstr "" - -#: win32/FavHubsFrame.cpp:71 win32/FavHubsFrame.cpp:113 -#: win32/PublicHubsFrame.cpp:447 -#, fuzzy -msgid "&Connect" -msgstr "Forbindelsen oprettet" - -#: win32/TransferView.cpp:200 -#, fuzzy -msgid "&Disconnect" -msgstr "Hurtigt Forbind" - -#: win32/DirectoryListingFrame.cpp:311 win32/DirectoryListingFrame.cpp:336 -#: win32/DirectoryListingFrame.cpp:348 win32/SearchFrame.cpp:742 -#, fuzzy -msgid "&Download" -msgstr "Downloads" - -#: win32/MainWindow.cpp:205 -msgid "&Download Queue\tCtrl+D" -msgstr "" - -#: win32/HubListsDlg.cpp:75 -msgid "&Edit" -msgstr "" - -#: win32/MainWindow.cpp:202 -#, fuzzy -msgid "&Favorite Hubs\tCtrl+F" -msgstr "Favorit Hubs" - -#: win32/MainWindow.cpp:181 -#, fuzzy -msgid "&File" -msgstr "Fil" - -#: win32/TransferView.cpp:197 -msgid "&Force attempt" -msgstr "" - -#: win32/QueueFrame.cpp:1006 win32/WaitingUsersFrame.cpp:83 -#: win32/PrivateFrame.cpp:365 -msgid "&Get file list" -msgstr "" - -#: win32/DirectoryListingFrame.cpp:325 -#, fuzzy -msgid "&Go to directory" -msgstr "Download hele mappen" - -#: win32/MainWindow.cpp:228 win32/ADLSearchFrame.cpp:93 -msgid "&Help" -msgstr "" - -#: win32/PrivateFrame.cpp:366 -msgid "&Match queue" -msgstr "" - -#: win32/QueueFrame.cpp:960 win32/QueueFrame.cpp:978 win32/QueueFrame.cpp:988 -#, fuzzy -msgid "&Move/Rename" -msgstr "Omd�ppe" - -#: win32/FavHubsFrame.cpp:76 win32/FavHubsFrame.cpp:115 -#: win32/ADLSearchFrame.cpp:68 win32/ADLSearchFrame.cpp:293 -msgid "&New..." -msgstr "" - -#: win32/MainWindow.cpp:214 -#, fuzzy -msgid "&Notepad\tCtrl+N" -msgstr "Notesblok" - -#: win32/FavHubsFrame.cpp:81 win32/FavHubsFrame.cpp:116 -#: win32/ADLSearchFrame.cpp:73 win32/ADLSearchFrame.cpp:294 -#: win32/UsersFrame.cpp:186 -#, fuzzy -msgid "&Properties" -msgstr "ASM Egenskaber" - -#: win32/MainWindow.cpp:201 -#, fuzzy -msgid "&Public Hubs\tCtrl+P" -msgstr "Offentlige Hubs" - -#: win32/MainWindow.cpp:183 -#, fuzzy -msgid "&Quick Connect ...\tCtrl+Q" -msgstr "Hurtigt Forbind" - -#: win32/MainWindow.cpp:185 win32/HubFrame.cpp:1179 -msgid "&Reconnect\tCtrl+R" -msgstr "" - -#: win32/PublicHubsFrame.cpp:156 -msgid "&Refresh" -msgstr "" - -#: win32/UploadPage.cpp:36 win32/QueueFrame.cpp:968 win32/QueueFrame.cpp:980 -#: win32/QueueFrame.cpp:990 win32/HubListsDlg.cpp:79 -#: win32/WaitingUsersFrame.cpp:85 win32/FavoriteDirsPage.cpp:33 -#: win32/SearchFrame.cpp:755 win32/FavHubsFrame.cpp:96 -#: win32/FavHubsFrame.cpp:120 win32/ADLSearchFrame.cpp:88 -#: win32/ADLSearchFrame.cpp:295 win32/UCPage.cpp:35 win32/UsersFrame.cpp:187 -#, fuzzy -msgid "&Remove" -msgstr "Omd�ppe" - -#: win32/SpyFrame.cpp:191 -#, fuzzy -msgid "&Search" -msgstr "S�ter" - -#: win32/MainWindow.cpp:210 -msgid "&Search\tCtrl+S" -msgstr "" - -#: win32/QueueFrame.cpp:1014 win32/WaitingUsersFrame.cpp:88 -#, fuzzy -msgid "&Send private message" -msgstr "Ignor�(PM)beskeder fra bots" - -#: win32/MainWindow.cpp:199 -#, fuzzy -msgid "&View" -msgstr "Video (avi, mov, mpg m.fl.)" - -#: win32/DirectoryListingFrame.cpp:315 win32/SearchFrame.cpp:746 -msgid "&View as text" -msgstr "" - -#: win32/MainWindow.cpp:220 -msgid "&Window" -msgstr "" - -#: win32/HubFrame.cpp:490 -#, boost-format -msgid "*** Joins: %1%" -msgstr "" - -#: win32/HubFrame.cpp:497 -#, boost-format -msgid "*** Parts: %1%" -msgstr "" - -#: win32/HashProgressDlg.cpp:84 -#, boost-format -msgid "-.-- B/s, %1% left" -msgstr "" - -#: win32/HashProgressDlg.cpp:83 -#, boost-format -msgid "-.-- files/h, %1% files left" -msgstr "" - -#: win32/WinUtil.cpp:1025 -msgid "" -"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." -msgstr "" -"En MAGNET link var givet til DC++, men den havde ikke en rigtig fil hash som " -"man bruger p�irect Connect netv�et. Derfor vil der ikke blive udf�ogen " -"handlinger." - -#: win32/MainWindow.cpp:211 win32/MainWindow.cpp:282 -msgid "ADL Search" -msgstr "AML S�g" - -#: win32/ADLSProperties.cpp:49 -msgid "ADLSearch Properties" -msgstr "ASM Egenskaber" - -#: win32/MainWindow.cpp:293 win32/MainWindow.cpp:549 -msgid "AWAY" -msgstr "Ikke Til Stede" - -#: win32/MainWindow.cpp:233 -msgid "About DC++..." -msgstr "Om DC++..." - -#: win32/AdvancedPage.cpp:43 -msgid "Accept custom user commands from hub" -msgstr "Accepter �rede bruger kommandoer fra huben" - -#: win32/WaitingUsersFrame.cpp:87 win32/PrivateFrame.cpp:369 -#: win32/HubFrame.cpp:1176 win32/PublicHubsFrame.cpp:448 -#, fuzzy -msgid "Add To &Favorites" -msgstr "Favorit Hubs" - -#: win32/AdvancedPage.cpp:45 -msgid "Add finished files to share instantly (if shared)" -msgstr "Tilf�rdige filer til deling �ikligt (hvis delt)" - -#: win32/QueueFrame.cpp:45 -#, fuzzy -msgid "Added" -msgstr "Hub adresse" - -#: win32/MainWindow.cpp:344 win32/PublicHubsFrame.cpp:52 -msgid "Address" -msgstr "Hub adresse" - -#: win32/SettingsDialog.cpp:67 -msgid "Advanced" -msgstr "Avanceret" - -#: win32/SettingsDialog.cpp:69 -msgid "Advanced\\Experts only" -msgstr "" - -#: win32/SettingsDialog.cpp:68 -#, fuzzy -msgid "Advanced\\Logs" -msgstr "Avanceret" - -#: win32/SettingsDialog.cpp:71 -msgid "Advanced\\Security Certificates" -msgstr "" - -#: win32/SettingsDialog.cpp:70 -msgid "Advanced\\User Commands" -msgstr "" - -#: win32/QueueFrame.cpp:1024 win32/QueueFrame.cpp:1034 -msgid "All" -msgstr "Alle" - -#: win32/QueueFrame.cpp:431 -#, fuzzy, boost-format -msgid "All %1% users offline" -msgstr "Bruger offline..." - -#: win32/CertificatesPage.cpp:43 -msgid "Allow TLS connections to clients without trusted certificate" -msgstr "Tillad TLS-opkobling til klienter uden certifikat" - -#: win32/CertificatesPage.cpp:42 -msgid "Allow TLS connections to hubs without trusted certificate" -msgstr "Tillad TLS-opkobling til hubs uden certifikat" - -#: win32/CommandDlg.cpp:117 -msgid "Always open help file with this dialog" -msgstr "�en hj�efilen med denne dialogboks" - -#: win32/SearchFrame.cpp:182 win32/HubFrame.cpp:129 -#: win32/PublicHubsFrame.cpp:138 -msgid "Any" -msgstr "Alle Typer" - -#: win32/SettingsDialog.cpp:63 -msgid "Appearance" -msgstr "Udseende" - -#: win32/SettingsDialog.cpp:64 -msgid "Appearance\\Colors and sounds" -msgstr "" - -#: win32/SettingsDialog.cpp:65 -#, fuzzy -msgid "Appearance\\Tabs" -msgstr "Udseende" - -#: win32/SettingsDialog.cpp:66 -#, fuzzy -msgid "Appearance\\Windows" -msgstr "Udseende" - -#: win32/SearchFrame.cpp:156 -msgid "At least" -msgstr "Mindst" - -#: win32/SearchFrame.cpp:157 -msgid "At most" -msgstr "H�" - -#: win32/SearchFrame.cpp:183 -msgid "Audio" -msgstr "Lyd Filer (mp3, wma, wav m.fl.)" - -#: win32/FavHubsFrame.cpp:32 -msgid "Auto connect / Name" -msgstr "Auto. Forbind / Navn" - -#: win32/UsersFrame.cpp:30 -msgid "Auto grant slot / Nick" -msgstr "Auto. Slot / Navn" - -#: win32/QueuePage.cpp:28 -#, fuzzy -msgid "Auto priority settings" -msgstr "Auto fjern Indstillinger" - -#: win32/Advanced3Page.cpp:40 -msgid "Auto refresh time" -msgstr "Auto update tid" - -#: win32/AdvancedPage.cpp:30 -msgid "Auto-away on minimize (and back on restore)" -msgstr "Auto-'Ikke til stede' til ved minimer og fra ved gendan" - -#: win32/WindowsPage.cpp:30 -msgid "Auto-open at startup" -msgstr "�en ved opstart" - -#: win32/Advanced3Page.cpp:41 -msgid "Auto-search limit" -msgstr "Auto-s�r�e" - -#: win32/QueuePage.cpp:37 -msgid "Autodrop settings" -msgstr "Auto fjern Indstillinger" - -#: win32/QueuePage.cpp:69 -msgid "Autodrop slow sources for all queue items (except filelists)" -msgstr "Fjern automatisk kilder for alle objekter i k�Untagen fillister)" - -#: win32/ADLSearchFrame.cpp:40 -msgid "Automatic Directory Listing Search" -msgstr "Automatisk S�g i Mappeliste" - -#: win32/AdvancedPage.cpp:37 -msgid "Automatically disconnect users who leave the hub" -msgstr "Afbryd brugere som forlader hubben (ikke ved crash, du forlader den)" - -#: win32/AdvancedPage.cpp:31 -msgid "Automatically follow redirects" -msgstr "F�utomatisk viderestillinger..." - -#: win32/QueuePage.cpp:73 -msgid "Automatically match queue for auto search hits" -msgstr "Automatisk match af k� AML s�gs fund" - -#: win32/UploadPage.cpp:39 -msgid "Automatically open an extra slot if speed is below (0 = disable)" -msgstr "Automatisk �n et ekstra slot hvis hastigheden er under (0 = fra)" - -#: win32/QueuePage.cpp:72 -msgid "Automatically search for alternative download locations" -msgstr "S�tomatisk efter alternative download-kilder" - -#: win32/SpyFrame.cpp:115 -#, boost-format -msgid "Average/s: %1%" -msgstr "" - -#: win32/WinUtil.cpp:264 win32/WinUtil.cpp:274 -msgid "Away mode off" -msgstr "'Ikke Til Stede' sl� fra" - -#: win32/WinUtil.cpp:269 -#, fuzzy, boost-format -msgid "Away mode on: %1%" -msgstr "'Ikke Til Stede' sl� fra" - -#: win32/Advanced3Page.cpp:28 win32/SearchFrame.cpp:171 -#: win32/ADLSProperties.cpp:74 -msgid "B" -msgstr "B" - -#: win32/QueuePage.cpp:39 -#, fuzzy -msgid "B/s" -msgstr "MB/s" - -#: win32/Advanced3Page.cpp:37 -msgid "Bind address" -msgstr "Bind adresse" - -#: win32/AdvancedPage.cpp:41 -msgid "Break on first ADLSearch match" -msgstr "Afbryd ved f� forekomst af 'Automatisk S�g i Mappeliste'" - -#: win32/DownloadPage.cpp:34 -msgid "Browse..." -msgstr "Gennemse..." - -#: win32/SearchFrame.cpp:43 win32/HubFrame.cpp:44 win32/UsersFrame.cpp:34 -msgid "CID" -msgstr "CID" - -#: win32/QueueFrame.cpp:477 -msgid "CRC32 inconsistency (SFV-Check)" -msgstr "CRC32-Inkonsistens (SFV-kontrol)" - -#: win32/MainWindow.cpp:232 -msgid "Change Log" -msgstr "Nye Features i DC++..." - -#: win32/CommandDlg.cpp:82 -msgid "Chat" -msgstr "Chat" - -#: win32/QueuePage.cpp:40 -msgid "Check every" -msgstr "Kontrollere hver" - -#: win32/TransferView.cpp:45 -msgid "Chunk size" -msgstr "" - -#: win32/TransferView.cpp:48 -msgid "Cipher" -msgstr "Tal" - -#: win32/AdvancedPage.cpp:32 -msgid "Clear search box after each search" -msgstr "Ryd s�ltet efter hver s�g" - -#: win32/MainWindow.cpp:223 -msgid "Close all PM windows" -msgstr "Luk alle PM-vinduer" - -#: win32/MainWindow.cpp:225 -msgid "Close all file list windows" -msgstr "Luk alle filiste-vinduer" - -#: win32/MainWindow.cpp:224 -msgid "Close all offline PM windows" -msgstr "Luk alle Offline PM-Vinduer" - -#: win32/MainWindow.cpp:226 -msgid "Close all search windows" -msgstr "Luk alle s�nduer" - -#: win32/MainWindow.cpp:222 -msgid "Close disconnected" -msgstr "Luk Alle Ikke-tilsluttede Vinduer" - -#: win32/Appearance2Page.cpp:31 -msgid "Colors" -msgstr "Farver" - -#: win32/UCPage.cpp:54 -msgid "Command" -msgstr "Kommando" - -#: win32/SearchFrame.cpp:184 -msgid "Compressed" -msgstr "Komprimerte Filer/mapper" - -#: win32/DownloadPage.cpp:41 -msgid "Configure Public Hub Lists" -msgstr "Konfigurere Hub Listerne" - -#: win32/HubListsDlg.cpp:43 win32/PublicHubsFrame.cpp:164 -msgid "Configured Public Hub Lists" -msgstr "Konfigurede Hub Lister" - -#: win32/WindowsPage.cpp:66 -msgid "Confirm application exit" -msgstr "Bekr� afslutning af DC++" - -#: win32/WindowsPage.cpp:32 -#, fuzzy -msgid "Confirm dialog options" -msgstr "Vindues indstillinger" - -#: win32/WindowsPage.cpp:67 -msgid "Confirm favorite hub removal" -msgstr "Bekr� fjernelse af en hub" - -#: win32/WindowsPage.cpp:68 -msgid "Confirm item removal in download queue" -msgstr "" - -#: win32/HubFrame.cpp:500 -msgid "Connected" -msgstr "Forbindelsen oprettet" - -#: win32/TransferView.cpp:640 win32/TransferView.cpp:647 -#, fuzzy -msgid "Connecting" -msgstr "Forbindelse" - -#: win32/TransferView.cpp:284 -#, fuzzy -msgid "Connecting (forced)" -msgstr "Forbindelsen oprettet" - -#: win32/HubFrame.cpp:826 -#, fuzzy, boost-format -msgid "Connecting to %1%..." -msgstr "Forbindelse" - -#: win32/SearchFrame.cpp:38 win32/HubFrame.cpp:41 -msgid "Connection" -msgstr "Forbindelse" - -#: win32/SettingsDialog.cpp:58 -msgid "Connection settings" -msgstr "Forbindelses Indstillinger" - -#: win32/TransferView.cpp:84 win32/TransferView.cpp:90 -#, fuzzy -msgid "Connections" -msgstr "Forbindelse" - -#: win32/HubFrame.cpp:1180 win32/PublicHubsFrame.cpp:449 -#, fuzzy -msgid "Copy &address to clipboard" -msgstr "Kopi�MAGNET link til Udklipsholderen" - -#: win32/TransferView.cpp:198 win32/HubFrame.cpp:1160 -#, fuzzy -msgid "Copy &nick to clipboard" -msgstr "Kopi�MAGNET link til Udklipsholderen" - -#: win32/WaitingUsersFrame.cpp:84 -#, fuzzy -msgid "Copy Filename" -msgstr "Filnavn" - -#: win32/WinUtil.cpp:363 -msgid "Copy magnet link to clipboard" -msgstr "Kopi�MAGNET link til Udklipsholderen" - -#: win32/SpyFrame.cpp:35 -#, fuzzy -msgid "Count" -msgstr "Land" - -#: win32/PublicHubsFrame.cpp:53 -msgid "Country" -msgstr "Land" - -#: win32/CommandDlg.cpp:63 -msgid "Create / Modify Command" -msgstr "Skab / Modificere Kommando" - -#: win32/HashProgressDlg.cpp:40 -msgid "Creating file index..." -msgstr "Laver indeks filen..." - -#: win32/MainWindow.cpp:552 -#, boost-format -msgid "D: %1%" -msgstr "" - -#: win32/MainWindow.cpp:554 -#, boost-format -msgid "D: %1%/s (%2%)" -msgstr "" - -#: win32/WinUtil.cpp:819 -msgid "DC++" -msgstr "DC++" - -#: win32/MainWindow.cpp:235 -msgid "DC++ Homepage" -msgstr "DC++�s Hjemmeside" - -#: win32/MainWindow.cpp:241 -msgid "DC++ discussion forum" -msgstr "DC++ Diskussionsforum" - -#: win32/AppearancePage.cpp:86 win32/AppearancePage.cpp:109 -msgid "Default" -msgstr "" - -#: win32/AppearancePage.cpp:32 -msgid "Default away message" -msgstr "Standart 'Ikke Til Stede' Besked" - -#: win32/DownloadPage.cpp:31 -msgid "Default download directory" -msgstr "Standart Downloads Mappen" - -#: win32/GeneralPage.cpp:31 win32/FavHubsFrame.cpp:33 win32/HubFrame.cpp:39 -#: win32/PublicHubsFrame.cpp:50 win32/UsersFrame.cpp:33 -#: win32/UsersFrame.cpp:143 -msgid "Description" -msgstr "Beskrivelse!" - -#: win32/ADLSearchFrame.cpp:34 -msgid "Destination Directory" -msgstr "Destination Mappe" - -#: win32/NetworkPage.cpp:30 win32/NetworkPage.cpp:31 -msgid "Direct connection" -msgstr "Direkte forbindelse" - -#: win32/DownloadPage.cpp:30 -msgid "Directories" -msgstr "Mappe" - -#: win32/UploadPage.cpp:64 win32/FavoriteDirsPage.cpp:49 -#: win32/SearchFrame.cpp:189 win32/SearchFrame.cpp:530 win32/LogPage.cpp:32 -#: win32/ADLSProperties.cpp:63 -msgid "Directory" -msgstr "Mappe" - -#: win32/FavoriteDirsPage.cpp:126 win32/FavoriteDirsPage.cpp:159 -msgid "Directory or directory name already exists" -msgstr "Mappen eller mappe navn eksistere allerede" - -#: win32/MagnetDlg.cpp:62 -msgid "Do nothing" -msgstr "G�genting" - -#: win32/SearchFrame.cpp:185 -msgid "Document" -msgstr "Dokument Filer (doc, pdf, txt m.fl.)" - -#: win32/NetworkPage.cpp:35 -msgid "Don't allow hub/UPnP to override" -msgstr "Ikke tillat at tilsides�e hub/UPnP" - -#: win32/AdvancedPage.cpp:47 -msgid "Don't automatically disconnect favorite users who leave the hub" -msgstr "Afbryd ikke automatisk fra favorittbrugere som forlader hubben" - -#: win32/AdvancedPage.cpp:36 -msgid "Don't delete file lists when exiting" -msgstr "Gem hentede fillister n�DC++ afsluttes" - -#: win32/QueuePage.cpp:75 -msgid "Don't download files already in share" -msgstr "Lad v� med at downloade filer som bliver delt allerede" - -#: win32/QueuePage.cpp:76 -#, fuzzy -msgid "Don't download files already in the queue" -msgstr "Lad v� med at downloade filer som bliver delt allerede" - -#: win32/HubFrame.cpp:385 -msgid "Don't remove /password before your password" -msgstr "Lad v� med at slette /password f�t kodeord" - -#: win32/QueuePage.cpp:71 -msgid "Don't remove the source when autodropping, only disconnect" -msgstr "Fjern ikke kilder n�\"auto-fjern\", kun lukker ned" - -#: win32/AdvancedPage.cpp:40 -msgid "Don't send the away message to bots" -msgstr "Send ikke \"Ikke Til Stede\" beskeder til botter" - -#: win32/MainWindow.cpp:244 -msgid "Donate (paypal)" -msgstr "Don����/$$$ (PayPal)" - -#: win32/Appearance2Page.cpp:34 -msgid "Donate €€€:s! (ok, dirty dollars are fine as well =) (see help menu)" -msgstr "" - -#: win32/TransferView.cpp:58 -msgid "Done" -msgstr "" - -#: win32/DirectoryListingFrame.cpp:358 -#, fuzzy -msgid "Download &to..." -msgstr "Download til..." - -#: win32/ADLSProperties.cpp:88 -msgid "Download Matches" -msgstr "Download Matches" - -#: win32/QueueFrame.cpp:57 win32/TabsPage.cpp:41 win32/WindowsPage.cpp:39 -#: win32/MainWindow.cpp:276 -#, fuzzy -msgid "Download Queue" -msgstr "Downloaded" - -#: win32/PublicHubsFrame.cpp:322 -#, fuzzy, boost-format -msgid "Download failed: %1%" -msgstr "Downloaded" - -#: win32/WinUtil.cpp:820 -msgid "Download files from the Direct Connect network" -msgstr "Download filer fra Direct Connect netv�et" - -#: win32/SearchFrame.cpp:764 -msgid "Download to..." -msgstr "Download til..." - -#: win32/SearchFrame.cpp:744 -msgid "Download whole directory" -msgstr "Download hele mappen" - -#: win32/SearchFrame.cpp:794 -msgid "Download whole directory to..." -msgstr "Download hele mappen til..." - -#: win32/QueueFrame.cpp:39 -msgid "Downloaded" -msgstr "Downloaded" - -#: win32/TransferView.cpp:718 -#, fuzzy, boost-format -msgid "Downloading %1%" -msgstr "Downloader..." - -#: win32/TransferView.cpp:629 -#, boost-format -msgid "Downloading from %1% user" -msgid_plural "Downloading from %1% users" -msgstr[0] "" -msgstr[1] "" - -#: win32/DirectoryListingFrame.cpp:693 -msgid "Downloading list..." -msgstr "Downloader list..." - -#: win32/PublicHubsFrame.cpp:188 -msgid "Downloading public hub list..." -msgstr "Downloader Offentlig Hubliste..." - -#: win32/PublicHubsFrame.cpp:319 -#, fuzzy, boost-format -msgid "Downloading public hub list... (%1%)" -msgstr "Downloader Offentlig Hubliste..." - -#: win32/AboutDlg.cpp:63 -msgid "Downloading..." -msgstr "Downloader..." - -#: win32/SettingsDialog.cpp:59 win32/MainWindow.cpp:217 -#: win32/MainWindow.cpp:236 win32/TransferView.cpp:93 -#: win32/TransferView.cpp:95 win32/Appearance2Page.cpp:40 -msgid "Downloads" -msgstr "Downloads" - -#: win32/SettingsDialog.cpp:60 -#, fuzzy -msgid "Downloads\\Favorites" -msgstr "Download Matches" - -#: win32/SettingsDialog.cpp:61 -#, fuzzy -msgid "Downloads\\Queue" -msgstr "Downloads" - -#: win32/QueuePage.cpp:38 -msgid "Drop sources below" -msgstr "Fjerner kilder under" - -#: win32/MainWindow.cpp:197 -msgid "E&xit" -msgstr "" - -#: win32/GeneralPage.cpp:30 win32/HubFrame.cpp:43 -msgid "E-Mail" -msgstr "E-Mail" - -#: win32/HubListsDlg.cpp:149 -msgid "Edit the hublist" -msgstr "Redigere hublisten" - -#: win32/AdvancedPage.cpp:39 -msgid "Enable automatic SFV checking" -msgstr "Sl�FV-kontrol til (ekstra sikkerhed for at filen overf�korrekt)" - -#: win32/AdvancedPage.cpp:42 -msgid "Enable safe and compressed transfers" -msgstr "Benyt sikkert og komprimerede overf�er" - -#: win32/ADLSProperties.cpp:84 -msgid "Enabled" -msgstr "Sl�il" - -#: win32/ADLSearchFrame.cpp:32 -msgid "Enabled / Search String" -msgstr "Aktiv S�unktion" - -#: win32/DirectoryListingFrame.cpp:795 -msgid "Enter search string" -msgstr "Indtast en s�reng..." - -#: win32/WinUtil.cpp:727 -msgid "Error creating adc registry key" -msgstr "" - -#: win32/WinUtil.cpp:688 -msgid "Error creating dchub registry key" -msgstr "" - -#: win32/WinUtil.cpp:787 win32/WinUtil.cpp:800 -msgid "Error creating magnet registry key" -msgstr "" - -#: win32/QueueFrame.cpp:44 -msgid "Errors" -msgstr "Fejl" - -#: win32/QueueFrame.cpp:43 win32/DirectoryListingFrame.cpp:42 -#: win32/SearchFrame.cpp:40 -msgid "Exact size" -msgstr "Pr�s St�se" - -#: win32/SearchFrame.cpp:186 -msgid "Executable" -msgstr "Eksekverbar Filer (exe, com m.fl.)" - -#: win32/MainWindow.cpp:998 -msgid "Exit" -msgstr "" - -#: win32/NetworkPage.cpp:38 -msgid "External / WAN IP" -msgstr "Ekstern/IP" - -#: win32/PublicHubsFrame.cpp:168 -#, fuzzy -msgid "F&ilter" -msgstr "Fil" - -#: win32/MainWindow.cpp:631 win32/MainWindow.cpp:632 -msgid "Failed to create port mappings. Please set up your NAT yourself." -msgstr "Det mislykkedes at skabe port kortl�er" - -#: win32/MainWindow.cpp:650 win32/MainWindow.cpp:651 -msgid "Failed to get external IP via UPnP. Please set it yourself." -msgstr "" -"Det mislykkedes f�en ekterne IP via UPnP. V�venligs og s�det ordenligt op." - -#: win32/MainWindow.cpp:664 win32/MainWindow.cpp:672 -msgid "Failed to remove port mappings" -msgstr "Det mislykkedes at fjerne port kortl�er" - -#: win32/MainWindow.cpp:203 -#, fuzzy -msgid "Favorite &Users\tCtrl+U" -msgstr "Favorit Brugere" - -#: win32/FavHubProperties.cpp:47 -msgid "Favorite Hub Properties" -msgstr "Favorit Hub Egenskaber" - -#: win32/WindowsPage.cpp:47 win32/MainWindow.cpp:273 win32/FavHubsFrame.cpp:41 -msgid "Favorite Hubs" -msgstr "Favorit Hubs" - -#: win32/WindowsPage.cpp:38 win32/MainWindow.cpp:274 win32/UsersFrame.cpp:38 -msgid "Favorite Users" -msgstr "Favorit Brugere" - -#: win32/FavoriteDirsPage.cpp:32 -msgid "Favorite download directories" -msgstr "Favorit 'Download til' mapper" - -#: win32/HubFrame.cpp:964 -msgid "Favorite hub added" -msgstr "Hub tilf�til 'Favorit Hubs'" - -#: win32/HubFrame.cpp:974 -#, fuzzy -msgid "Favorite hub removed" -msgstr "Hub tilf�til 'Favorit Hubs'" - -#: win32/FavoriteDirsPage.cpp:48 win32/FavoriteDirsPage.cpp:120 -#: win32/FavoriteDirsPage.cpp:150 -msgid "Favorite name" -msgstr "Favorit navn" - -#: win32/PrivateFrame.cpp:290 -msgid "Favorite user added" -msgstr "Bruger tilf�til 'Favorit Brugere'" - -#: win32/DirectoryListingFrame.cpp:40 win32/SearchFrame.cpp:32 -msgid "File" -msgstr "Fil" - -#: win32/QueueFrame.cpp:473 -msgid "File not available" -msgstr "Fil er ikke tilg�elig..!" - -#: win32/SearchFrame.cpp:122 -msgid "File type" -msgstr "Filtype" - -#: win32/CommandDlg.cpp:99 -msgid "Filelist Menu" -msgstr "Filliste Menu" - -#: win32/QueueFrame.cpp:36 win32/TransferView.cpp:53 win32/LogPage.cpp:35 -#: win32/ADLSProperties.cpp:62 -msgid "Filename" -msgstr "Filnavn" - -#: win32/QueueFrame.cpp:287 win32/DirectoryListingFrame.cpp:634 -#: win32/DirectoryListingFrame.cpp:650 -#, boost-format -msgid "Files: %1%" -msgstr "" - -#: win32/AppearancePage.cpp:47 -msgid "Filter kick and NMDC debug messages" -msgstr "Filtr�'Kick' og 'NMDC debug'-meddelelser fra" - -#: win32/DirectoryListingFrame.cpp:160 win32/DirectoryListingFrame.cpp:182 -msgid "Find" -msgstr "" - -#: win32/TabsPage.cpp:42 win32/WindowsPage.cpp:40 win32/MainWindow.cpp:206 -#: win32/MainWindow.cpp:277 win32/FinishedDLFrame.cpp:25 -msgid "Finished Downloads" -msgstr "F�ige Downloads" - -#: win32/TabsPage.cpp:44 win32/WindowsPage.cpp:42 win32/MainWindow.cpp:208 -#: win32/MainWindow.cpp:279 win32/FinishedULFrame.cpp:25 -msgid "Finished Uploads" -msgstr "F�ige oploads" - -#: win32/NetworkPage.cpp:34 -msgid "Firewall (passive, last resort)" -msgstr "Firewall passiv (D�igt valg)" - -#: win32/NetworkPage.cpp:32 -msgid "Firewall with UPnP" -msgstr "Firewall med UPnP" - -#: win32/NetworkPage.cpp:33 -msgid "Firewall with manual port forwarding" -msgstr "Firewall med manuel port forwarding'" - -#: win32/MainWindow.cpp:184 -msgid "Follow last redirec&t\tCtrl+T" -msgstr "" - -#: win32/MainWindow.cpp:271 -msgid "Follow last redirect" -msgstr "" - -#: win32/LogPage.cpp:34 -msgid "Format" -msgstr "Format" - -#: win32/MainWindow.cpp:239 -msgid "Frequently asked questions" -msgstr "Ofte Stillede Sp��(FAQ)" - -#: win32/ADLSProperties.cpp:64 -msgid "Full Path" -msgstr "Hele Stien" - -#: win32/QueueFrame.cpp:479 -msgid "Full tree does not match TTH root" -msgstr "Downloaded TTH tr�atcher ikke TTH roden" - -#: win32/MainWindow.cpp:237 -msgid "GeoIP database update" -msgstr "Opdatering af GeoIP-database" - -#: win32/SearchFrame.cpp:174 win32/ADLSProperties.cpp:77 -msgid "GiB" -msgstr "GB" - -#: win32/WaitingUsersFrame.cpp:86 win32/PrivateFrame.cpp:367 -msgid "Grant &extra slot" -msgstr "" - -#: win32/AppearancePage.cpp:56 -msgid "Guess user country from IP" -msgstr "Find brugerens land" - -#: win32/DownloadPage.cpp:42 -msgid "HTTP Proxy (for hublist only)" -msgstr "HTTP Proxy (Kun For Hubliste)" - -#: win32/MainWindow.cpp:230 -msgid "Help &Contents\tF1" -msgstr "" - -#: win32/MainWindow.cpp:240 -msgid "Help forum" -msgstr "Hj�eforum" - -#: win32/QueueFrame.cpp:454 win32/QueueFrame.cpp:1000 -#, fuzzy -msgid "High" -msgstr "H�" - -#: win32/QueuePage.cpp:31 -msgid "High prio max size" -msgstr "H�iotet" - -#: win32/QueueFrame.cpp:455 win32/QueueFrame.cpp:1001 -msgid "Highest" -msgstr "H�" - -#: win32/QueuePage.cpp:29 -msgid "Highest prio max size" -msgstr "H� priotet" - -#: win32/SpyFrame.cpp:162 -#, boost-format -msgid "Hit Ratio: %1%" -msgstr "" - -#: win32/SpyFrame.cpp:160 -#, boost-format -msgid "Hits: %1%" -msgstr "" - -#: win32/TabsPage.cpp:37 win32/SearchFrame.cpp:39 win32/UCPage.cpp:55 -msgid "Hub" -msgstr "Hub" - -#: win32/UsersFrame.cpp:31 -msgid "Hub (last seen in, if offline)" -msgstr "" - -#: win32/CommandDlg.cpp:90 -msgid "Hub Menu" -msgstr "Hub Menu" - -#: win32/FavHubProperties.cpp:119 -msgid "Hub address cannot be empty" -msgstr "" - -#: win32/FavHubsFrame.cpp:179 win32/HubFrame.cpp:966 -msgid "Hub already exists as a favorite" -msgstr "" - -#: win32/PublicHubsFrame.cpp:316 -#, fuzzy, boost-format -msgid "Hub list downloaded... (%1%)" -msgstr "Hubliste hentet fra bufferen" - -#: win32/PublicHubsFrame.cpp:316 -msgid "Hub list loaded from cache..." -msgstr "Hubliste hentet fra bufferen" - -#: win32/HubListsDlg.cpp:149 -msgid "Hublist" -msgstr "Hublist" - -#: win32/SearchFrame.cpp:128 -msgid "Hubs" -msgstr "Hubber" - -#: win32/PublicHubsFrame.cpp:271 -#, fuzzy, boost-format -msgid "Hubs: %1%" -msgstr "Hubber" - -#: win32/SearchFrame.cpp:41 win32/TransferView.cpp:49 win32/HubFrame.cpp:42 -msgid "IP" -msgstr "IP" - -#: win32/HubFrame.cpp:330 -#, boost-format -msgid "IP: %1%, Port: %2%/%3%/%4%" -msgstr "" - -#: win32/TransferView.cpp:535 win32/TransferView.cpp:831 -msgid "Idle" -msgstr "" - -#: win32/SpyFrame.cpp:66 -msgid "Ignore TTH searches" -msgstr "Ignore TTH searches" - -#: win32/WindowsPage.cpp:59 -msgid "Ignore private messages from bots" -msgstr "Ignor�(PM)beskeder fra bots" - -#: win32/WindowsPage.cpp:58 -msgid "Ignore private messages from the hub" -msgstr "Ignor�(PM)beskeder fra hubber" - -#: win32/HubFrame.cpp:542 win32/HubFrame.cpp:550 -#, boost-format -msgid "Ignored message: %1%" -msgstr "" - -#: win32/NetworkPage.cpp:47 -msgid "Incoming connection settings (see Help/FAQ if unsure)" -msgstr "Indkommende besked om indstillinger" - -#: win32/MainWindow.cpp:218 -msgid "Indexing progress" -msgstr "Indekserings Fremskridt.." - -#: win32/MainWindow.cpp:690 -msgid "Invalid file list name" -msgstr "Ugyldigt fillist navn" - -#: win32/WinUtil.cpp:250 -msgid "Invalid number of slots" -msgstr "Ugyldigt antal slots..." - -#: win32/QueueFrame.cpp:283 -#, boost-format -msgid "Items: %1%" -msgstr "" - -#: win32/HubFrame.cpp:323 -msgid "Join/part of favorite users showing off" -msgstr "Ankomst/Afgang af favorit brugere visning sl� fra" - -#: win32/HubFrame.cpp:321 -msgid "Join/part of favorite users showing on" -msgstr "Ankomst/Afgang af favorit brugere visning sl� til" - -#: win32/HubFrame.cpp:316 -msgid "Join/part showing off" -msgstr "Ankomst/Afgang vises ikke" - -#: win32/HubFrame.cpp:314 -msgid "Join/part showing on" -msgstr "Ankomst/Afgang vises" - -#: win32/AdvancedPage.cpp:33 -msgid "Keep duplicate files in your file list" -msgstr "" -"Inklud�duplikerede filer i min filliste (duplikerede filer t�er aldrig med i " -"din deling)" - -#: win32/QueuePage.cpp:30 win32/QueuePage.cpp:32 win32/QueuePage.cpp:34 -#: win32/QueuePage.cpp:36 win32/QueuePage.cpp:48 win32/Advanced3Page.cpp:30 -#: win32/Advanced3Page.cpp:36 win32/SearchFrame.cpp:172 -#: win32/ADLSProperties.cpp:75 -msgid "KiB" -msgstr "Kb" - -#: win32/UploadPage.cpp:40 -msgid "KiB/s" -msgstr "Kb/s" - -#: win32/AppearancePage.cpp:34 -msgid "Language file" -msgstr "Sprog Fil" - -#: win32/DownloadPage.cpp:35 -msgid "Limits" -msgstr "Download gr�er" - -#: win32/GeneralPage.cpp:32 -msgid "Line speed (upload)" -msgstr "Oploade hastighed" - -#: win32/SplashWindow.cpp:77 -#, boost-format -msgid "Loading DC++, please wait... (%1%)" -msgstr "" - -#: win32/LogPage.cpp:47 -msgid "Log downloads" -msgstr "Log downloads" - -#: win32/LogPage.cpp:51 -msgid "Log filelist transfers" -msgstr "Log filliste overf�er" - -#: win32/LogPage.cpp:45 -msgid "Log main chat" -msgstr "Log main chat" - -#: win32/LogPage.cpp:46 -msgid "Log private chat" -msgstr "Log privat chat" - -#: win32/LogPage.cpp:50 -msgid "Log status messages" -msgstr "Log status beskeder" - -#: win32/LogPage.cpp:49 -msgid "Log system messages" -msgstr "Log system beskeder" - -#: win32/LogPage.cpp:48 -msgid "Log uploads" -msgstr "Log uploads" - -#: win32/LogPage.cpp:31 -msgid "Logging" -msgstr "Logging" - -#: win32/NetworkPage.cpp:44 -msgid "Login" -msgstr "Socks5 brugernavn" - -#: win32/WinUtil.cpp:362 -msgid "Lookup TTH at Bitzi.com" -msgstr "Kig efter TTH roden p�itzi.com" - -#: win32/QueueFrame.cpp:452 win32/QueueFrame.cpp:998 -msgid "Low" -msgstr "Lav" - -#: win32/QueuePage.cpp:35 -msgid "Low prio max size" -msgstr "Lav priotet" - -#: win32/QueueFrame.cpp:451 win32/QueueFrame.cpp:997 -msgid "Lowest" -msgstr "Laveste" - -#: win32/MagnetDlg.cpp:44 win32/WinUtil.cpp:1025 -msgid "MAGNET Link detected" -msgstr "MAGNET link opdaget" - -#: win32/WinUtil.cpp:972 -#, fuzzy, boost-format -msgid "MAGNET Link detected: %1%" -msgstr "MAGNET link opdaget" - -#: win32/Appearance2Page.cpp:38 -msgid "Make an annoying sound every time a private message is received" -msgstr "Lav et irriterene lyd hver gang en privat besked er modtaget" - -#: win32/Appearance2Page.cpp:39 -msgid "Make an annoying sound when a private message window is opened" -msgstr "Lav et irriterene lyd n�en privat besked vindue er �et" - -#: win32/MainWindow.cpp:190 -msgid "Match downloaded lists" -msgstr "Matcher downloadede filst�ser" - -#: win32/DirectoryListingFrame.cpp:168 win32/DirectoryListingFrame.cpp:181 -msgid "Match queue" -msgstr "" - -#: win32/DirectoryListingFrame.cpp:260 -#, boost-format -msgid "Matched %1% file" -msgid_plural "Matched %1% files" -msgstr[0] "" -msgstr[1] "" - -#: win32/PublicHubsFrame.cpp:57 -msgid "Max Hubs" -msgstr "Max. Hubs" - -#: win32/ADLSearchFrame.cpp:36 -#, fuzzy -msgid "Max Size" -msgstr "St�se" - -#: win32/PublicHubsFrame.cpp:58 -msgid "Max Users" -msgstr "Max. Brugere" - -#: win32/Advanced3Page.cpp:38 -msgid "Max filelist size" -msgstr "Max. Fillistest�se" - -#: win32/Advanced3Page.cpp:31 -msgid "Max hash speed" -msgstr "Max. Hash Hastighed" - -#: win32/QueuePage.cpp:44 -msgid "Max inactivity" -msgstr "Max inaktivitet" - -#: win32/DownloadPage.cpp:36 -msgid "Maximum simultaneous downloads (0 = infinite)" -msgstr "Maximum samtidlige downloads (0 = fra)" - -#: win32/Advanced3Page.cpp:39 win32/SearchFrame.cpp:173 -#: win32/ADLSProperties.cpp:76 -msgid "MiB" -msgstr "MB" - -#: win32/Advanced3Page.cpp:32 -msgid "MiB/s" -msgstr "MB/s" - -#: win32/GeneralPage.cpp:33 -msgid "MiBits/s" -msgstr "MB/s" - -#: win32/PublicHubsFrame.cpp:55 -msgid "Min Share" -msgstr "Min. Delling" - -#: win32/ADLSearchFrame.cpp:35 -#, fuzzy -msgid "Min Size" -msgstr "Min. Delling" - -#: win32/PublicHubsFrame.cpp:56 -msgid "Min Slots" -msgstr "Min Slots" - -#: win32/QueuePage.cpp:42 -msgid "Min elapsed" -msgstr "Brugt tid" - -#: win32/QueuePage.cpp:47 -msgid "Min filesize" -msgstr "Min filst�se" - -#: win32/Advanced3Page.cpp:42 -#, fuzzy -msgid "Min segment size" -msgstr "St�se p�ini-slots" - -#: win32/QueuePage.cpp:46 -msgid "Min sources online" -msgstr "Min kilder online" - -#: win32/Advanced3Page.cpp:35 -msgid "Mini slot size" -msgstr "St�se p�ini-slots" - -#: win32/AppearancePage.cpp:48 -msgid "Minimize to tray" -msgstr "Minim�til systembakken (ved siden af uret)" - -#: win32/HubListsDlg.cpp:71 win32/FavHubsFrame.cpp:91 -#: win32/FavHubsFrame.cpp:118 win32/ADLSearchFrame.cpp:83 win32/UCPage.cpp:32 -msgid "Move &Down" -msgstr "" - -#: win32/HubListsDlg.cpp:67 win32/FavHubsFrame.cpp:86 -#: win32/FavHubsFrame.cpp:117 win32/ADLSearchFrame.cpp:78 win32/UCPage.cpp:31 -msgid "Move &Up" -msgstr "" - -#: win32/UCPage.cpp:53 win32/PublicHubsFrame.cpp:49 -msgid "Name" -msgstr "Navn" - -#: win32/UploadPage.cpp:188 win32/UploadPage.cpp:232 -msgid "Name under which the others see the directory" -msgstr "Under navnet af mappen som de andre ser" - -#: win32/WindowsPage.cpp:44 win32/MainWindow.cpp:216 win32/StatsFrame.cpp:27 -msgid "Network Statistics" -msgstr "Netv� Statestiker" - -#: win32/UploadPage.cpp:197 -msgid "New virtual name matches old name, skipping..." -msgstr "Den nye virtuele navn matcher det gamle navn, springer over..." - -#: win32/DirectoryListingFrame.cpp:164 win32/DirectoryListingFrame.cpp:183 -msgid "Next" -msgstr "N�e" - -#: win32/GeneralPage.cpp:29 win32/FavHubsFrame.cpp:34 win32/HubFrame.cpp:37 -msgid "Nick" -msgstr "Brugernavn" - -#: win32/QueueFrame.cpp:488 -msgid "No errors" -msgstr "Ingen fejl" - -#: win32/DirectoryListingFrame.cpp:858 -msgid "No matches" -msgstr "Ingen resultater fundet!" - -#: win32/DownloadPage.cpp:37 -msgid "No new downloads if speed exceeds (KiB/s, 0 = disable)" -msgstr "Ikke nogen nye downloads hvis hastigheden er under (0 KB/s= fra)" - -#: win32/QueueFrame.cpp:415 -msgid "No users" -msgstr "Ingen bruger(e)" - -#: win32/QueueFrame.cpp:427 -msgid "No users to download from" -msgstr "Ingen brugere at downloade fra" - -#: win32/QueueFrame.cpp:453 win32/QueueFrame.cpp:999 win32/SearchFrame.cpp:155 -msgid "Normal" -msgstr "Normal" - -#: win32/QueuePage.cpp:33 -msgid "Normal prio max size" -msgstr "Normal priotet" - -#: win32/UploadPage.cpp:42 -msgid "Note; Files appear in the share only after they've been hashed!" -msgstr "Notat; Nye filer er tilf�til deling kun n�de er blevet hashet!" - -#: win32/DownloadPage.cpp:38 -#, fuzzy, c-format -msgid "Note; because of changing download speeds, this is not 100% accurate..." -msgstr "" -"Notat; Fordi af skiftende download hastigheder, er det her ikke 100% pr�st..." - -#: win32/Appearance2Page.cpp:35 win32/AppearancePage.cpp:35 -msgid "Note; most of these options require that you restart DC++" -msgstr "Notat; De fleste af disse indstillinger kr�r at du genstarter DC++." - -#: win32/WindowsPage.cpp:45 win32/NotepadFrame.cpp:27 win32/MainWindow.cpp:287 -msgid "Notepad" -msgstr "Notesblok" - -#: win32/Appearance2Page.cpp:29 -msgid "Notification sound" -msgstr "Notifikations lyd" - -#: win32/WinUtil.cpp:323 -msgid "Offline" -msgstr "Offline" - -#: win32/UsersFrame.cpp:108 win32/UsersFrame.cpp:123 -msgid "Online" -msgstr "Online" - -#: win32/AppearancePage.cpp:52 -msgid "Only show joins / parts for favorite users" -msgstr "Vis kun ankomst/afgang for favorit brugere" - -#: win32/SearchFrame.cpp:194 -msgid "Only users with free slots" -msgstr "Kun brugere med ledige slots" - -#: win32/SearchFrame.cpp:216 -msgid "Only where I'm op" -msgstr "Kun hvor jeg er OP!" - -#: win32/MainWindow.cpp:192 win32/MainWindow.cpp:999 -msgid "Open downloads directory" -msgstr "�n Download Stien" - -#: win32/MainWindow.cpp:285 -#, fuzzy -msgid "Open file list..." -msgstr "�n Egen Liste" - -#: win32/MainWindow.cpp:188 -msgid "Open file list...\tCtrl+L" -msgstr "" - -#: win32/WindowsPage.cpp:55 -msgid "Open new file list windows in the background" -msgstr "�n nye fillister vinduer i baggrunden" - -#: win32/WindowsPage.cpp:56 -msgid "Open new private message windows in the background" -msgstr "�n nye privat beskeder vinduer i baggrunden" - -#: win32/WindowsPage.cpp:57 -msgid "Open new window when using /join" -msgstr "�en ny vinduer n�\"/join\" bruges" - -#: win32/MainWindow.cpp:189 -msgid "Open own list" -msgstr "�n Egen Liste" - -#: win32/WindowsPage.cpp:53 -msgid "Open private messages from bots in their own window" -msgstr "�n nye privat beskeder vinduer i baggrunden" - -#: win32/WindowsPage.cpp:54 -msgid "Open private messages from the hub in their own window" -msgstr "�n nye privat beskeder vinduer i baggrunden" - -#: win32/WindowsPage.cpp:52 -msgid "Open private messages in their own window" -msgstr "Private beskeder popper op i deres eget vindue" - -#: win32/AppearancePage.cpp:31 -msgid "Options" -msgstr "Valg" - -#: win32/QueuePage.cpp:49 -#, fuzzy -msgid "Other queue options" -msgstr "S�uligheder" - -#: win32/NetworkPage.cpp:48 -msgid "Outgoing connection settings" -msgstr "Udg�de forbindelses indstillinger" - -#: win32/CommandDlg.cpp:86 -msgid "PM" -msgstr "PM" - -#: win32/Advanced3Page.cpp:33 -msgid "PM history" -msgstr "Log over private beskeder" - -#: win32/QueueFrame.cpp:475 -msgid "Passive user" -msgstr "Passiv bruger" - -#: win32/NetworkPage.cpp:45 win32/FavHubsFrame.cpp:35 -msgid "Password" -msgstr "Kodeord" - -#: win32/QueueFrame.cpp:42 win32/SearchFrame.cpp:36 win32/TransferView.cpp:54 -msgid "Path" -msgstr "Sti" - -#: win32/QueueFrame.cpp:450 win32/QueueFrame.cpp:996 -msgid "Paused" -msgstr "Pauset" - -#: win32/GeneralPage.cpp:28 -msgid "Personal Information" -msgstr "Personligt Information" - -#: win32/SettingsDialog.cpp:57 -msgid "Personal information" -msgstr "Generelt" - -#: win32/SearchFrame.cpp:187 -msgid "Picture" -msgstr "Billede Filer (jpg, bmp, gif m.fl.)" - -#: win32/FavHubsFrame.cpp:320 win32/PublicHubsFrame.cpp:496 -msgid "Please enter a nickname in the settings dialog!" -msgstr "Indtast venligst et brugernavn under 'Indstillinger'!" - -#: win32/HubFrame.cpp:528 -msgid "Please enter a password" -msgstr "Indtast venligst et kodeord!" - -#: win32/WindowsPage.cpp:61 -msgid "Popup box to input password for hubs" -msgstr "�en en dialog for at andgive password til hub(ben)" - -#: win32/NetworkPage.cpp:43 -msgid "Port" -msgstr "Socks5 port" - -#: win32/NetworkPage.cpp:37 -msgid "Ports" -msgstr "Port instillinger" - -#: win32/HubFrame.cpp:855 -#, boost-format -msgid "Press the follow redirect button to connect to %1%" -msgstr "" - -#: win32/QueueFrame.cpp:40 -msgid "Priority" -msgstr "Prioritet" - -#: win32/TabsPage.cpp:38 -msgid "Private message" -msgstr "" - -#: win32/HubFrame.cpp:546 win32/HubFrame.cpp:554 win32/HubFrame.cpp:560 -#, fuzzy, boost-format -msgid "Private message from %1%: %2%" -msgstr "Ignor�(PM)beskeder fra hubber" - -#: win32/WindowsPage.cpp:46 win32/MainWindow.cpp:269 -#: win32/PublicHubsFrame.cpp:93 -msgid "Public Hubs" -msgstr "Offentlige Hubs" - -#: win32/DownloadPage.cpp:39 -msgid "Public Hubs list" -msgstr "Offenlig Hubliste" - -#: win32/DownloadPage.cpp:40 -msgid "Public Hubs list URL" -msgstr "Offenlig Hubliste URL" - -#: win32/SearchFrame.cpp:240 -msgid "Purge" -msgstr "Rens" - -#: win32/TransferView.cpp:47 -msgid "Queued" -msgstr "" - -#: win32/MainWindow.cpp:344 -msgid "Quick Connect" -msgstr "Hurtigt Forbind" - -#: win32/PublicHubsFrame.cpp:60 -msgid "Rating" -msgstr "Vudering" - -#: win32/AboutDlg.cpp:61 -#, c-format, boost-format -msgid "Ratio (up/down): %1$0.2f" -msgstr "" - -#: win32/CommandDlg.cpp:78 -msgid "Raw" -msgstr "Raw" - -#: win32/QueueFrame.cpp:1022 -msgid "Re-add source" -msgstr "Tilf�lde igen" - -#: win32/SearchFrame.cpp:1024 -msgid "Ready to search..." -msgstr "Klar til at s�." - -#: win32/MainWindow.cpp:459 -msgid "Really exit?" -msgstr "Vil du virkelig afslutte DC++?" - -#: win32/QueueFrame.cpp:692 win32/QueueFrame.cpp:697 -#: win32/FavHubsFrame.cpp:243 -msgid "Really remove?" -msgstr "Vil du virkeligt fjerne den?" - -#: win32/MainWindow.cpp:270 -#, fuzzy -msgid "Reconnect" -msgstr "Forbindelsen oprettet" - -#: win32/HubFrame.cpp:848 win32/HubFrame.cpp:1371 -msgid "Redirect request received to a hub that's already connected" -msgstr "" -"Viderestillingsforesp�l modtaget til en hub, du allerede er forbundet til!" - -#: win32/MainWindow.cpp:191 -msgid "Refresh file list\tCtrl+E" -msgstr "" - -#: win32/AdvancedPage.cpp:34 -msgid "Register with Windows to handle dchub:// and adc:// URL links" -msgstr "Registrer i Windows URL-styring til at h�tere dchub:// og adc:// links" - -#: win32/AdvancedPage.cpp:35 -msgid "Register with Windows to handle magnet: URI links" -msgstr "Registrer i Windows til at h�tere MAGNET: URI links" - -#: win32/PublicHubsFrame.cpp:59 -msgid "Reliability" -msgstr "P�delighed" - -#: win32/QueueFrame.cpp:483 win32/TransferView.cpp:659 -msgid "Remote client does not fully support TTH - cannot download" -msgstr "Fjernklienten har ikke TTH - st�kan ikke downloade!" - -#: win32/QueuePage.cpp:70 -msgid "Remove slow filelists" -msgstr "Fjern fillister" - -#: win32/QueueFrame.cpp:1033 -msgid "Remove source" -msgstr "Fjern kilde" - -#: win32/QueueFrame.cpp:1043 -#, fuzzy -msgid "Remove user from queue" -msgstr "Fjern kilde" - -#: win32/UploadPage.cpp:38 win32/FavoriteDirsPage.cpp:35 -msgid "Rename" -msgstr "Omd�ppe" - -#: win32/MainWindow.cpp:243 -msgid "Report a bug" -msgstr "Rapport�en Fejl (Bug)" - -#: win32/MainWindow.cpp:242 -msgid "Request a feature" -msgstr "Foresl�ye Ting Til DC++" - -#: win32/HashProgressDlg.cpp:48 -msgid "Run in background" -msgstr "K�baggrunden.." - -#: win32/QueueFrame.cpp:435 -msgid "Running..." -msgstr "K�.." - -#: win32/NetworkPage.cpp:36 -msgid "SOCKS5" -msgstr "Socks5" - -#: win32/TabsPage.cpp:39 win32/MainWindow.cpp:281 win32/SearchFrame.cpp:85 -#: win32/SearchFrame.cpp:145 -#, fuzzy -msgid "Search" -msgstr "S�ter" - -#: win32/SearchFrame.cpp:990 win32/SearchFrame.cpp:1005 -#: win32/SearchFrame.cpp:1020 -#, fuzzy, boost-format -msgid "Search - %1%" -msgstr "S�ter" - -#: win32/SearchFrame.cpp:1025 -#, fuzzy -msgid "Search - Ready to search..." -msgstr "Klar til at s�." - -#: win32/CommandDlg.cpp:96 -msgid "Search Menu" -msgstr "S�enu" - -#: win32/WindowsPage.cpp:43 win32/MainWindow.cpp:212 win32/MainWindow.cpp:283 -#: win32/SpyFrame.cpp:40 -msgid "Search Spy" -msgstr "S�ion" - -#: win32/SpyFrame.cpp:34 -msgid "Search String" -msgstr "S�treng" - -#: win32/SearchFrame.cpp:116 -msgid "Search for" -msgstr "S�ter" - -#: win32/WinUtil.cpp:361 -msgid "Search for alternates" -msgstr "S�ter alternative kilder" - -#: win32/DirectoryListingFrame.cpp:795 win32/DirectoryListingFrame.cpp:858 -msgid "Search for file" -msgstr "S�ter filen" - -#: win32/Advanced3Page.cpp:34 -msgid "Search history" -msgstr "S�ersigt" - -#: win32/SearchFrame.cpp:125 -msgid "Search options" -msgstr "S�uligheder" - -#: win32/HubFrame.cpp:910 -#, boost-format -msgid "Search spam detected from %1%" -msgstr "" - -#: win32/SearchFrame.cpp:984 -#, fuzzy, boost-format -msgid "Searching for %1%..." -msgstr "S�ter" - -#: win32/SearchFrame.cpp:999 win32/SearchFrame.cpp:1018 -#, boost-format -msgid "Searching too soon, next search in %1% second" -msgid_plural "Searching too soon, next search in %1% seconds" -msgstr[0] "" -msgstr[1] "" - -#: win32/Appearance2Page.cpp:33 -msgid "Select &text style" -msgstr "" - -#: win32/Appearance2Page.cpp:32 -msgid "Select &window color" -msgstr "" - -#: win32/CommandDlg.cpp:112 -msgid "Send once per nick" -msgstr "Send en gang per brugernavn" - -#: win32/AdvancedPage.cpp:44 -msgid "Send unknown /commands to the hub" -msgstr "Send ukendte /kommandoer til huben" - -#: win32/UCPage.cpp:123 win32/UCPage.cpp:181 win32/CommandDlg.cpp:74 -msgid "Separator" -msgstr "Separator" - -#: win32/FavHubsFrame.cpp:36 -msgid "Server" -msgstr "Server" - -#: win32/QueuePage.cpp:68 -msgid "Set lowest prio for newly added files larger than Low prio size" -msgstr "Lavest priotet" - -#: win32/QueueFrame.cpp:995 -msgid "Set priority" -msgstr "S�prioritet" - -#: win32/AppearancePage.cpp:33 -msgid "Set timestamps" -msgstr "Tidsformat (%H:%M:%S)" - -#: win32/SettingsDialog.cpp:55 win32/MainWindow.cpp:286 -msgid "Settings" -msgstr "Indstillinger" - -#: win32/MainWindow.cpp:195 win32/MainWindow.cpp:1000 -msgid "Settings..." -msgstr "Indstillinger..." - -#: win32/UploadPage.cpp:35 -msgid "Share hidden files" -msgstr "Del skjulte filer" - -#: win32/HubFrame.cpp:38 win32/PublicHubsFrame.cpp:54 -msgid "Shared" -msgstr "Delt" - -#: win32/UploadPage.cpp:33 -msgid "Shared directories" -msgstr "Delte Mapper" - -#: win32/SettingsDialog.cpp:62 -msgid "Sharing" -msgstr "Opload" - -#: win32/MainWindow.cpp:997 -msgid "Show" -msgstr "Vis" - -#: win32/AppearancePage.cpp:51 -msgid "Show joins / parts in chat by default" -msgstr "Vis altid ankomster/afgange i main chaten" - -#: win32/AdvancedPage.cpp:38 -msgid "Show progress bars for transfers" -msgstr "Vis grafisk fremskridt for overf�r (bruger noget CPU-tid)" - -#: win32/AdvancedPage.cpp:48 -msgid "Show shell menu where possible" -msgstr "Vis shell menu" - -#: win32/AppearancePage.cpp:49 -msgid "Show timestamps in chat by default" -msgstr "S�Tidsstemple" - -#: win32/UploadPage.cpp:65 win32/QueueFrame.cpp:38 -#: win32/DirectoryListingFrame.cpp:43 win32/SearchFrame.cpp:35 -#: win32/SearchFrame.cpp:119 win32/TransferView.cpp:59 -msgid "Size" -msgstr "St�se" - -#: win32/QueueFrame.cpp:284 win32/QueueFrame.cpp:288 -#: win32/DirectoryListingFrame.cpp:635 win32/DirectoryListingFrame.cpp:652 -#, fuzzy, boost-format -msgid "Size: %1%" -msgstr "St�se" - -#: win32/QueuePage.cpp:74 -msgid "Skip zero-byte files" -msgstr "Spring over 0 byte filer" - -#: win32/PrivateFrame.cpp:285 -msgid "Slot granted" -msgstr "Ekstra slot tildelt" - -#: win32/SearchFrame.cpp:37 -msgid "Slots" -msgstr "Slots" - -#: win32/WinUtil.cpp:247 -msgid "Slots set" -msgstr "Slots indstillet" - -#: win32/MainWindow.cpp:551 -#, boost-format -msgid "Slots: %1%/%2%" -msgstr "" - -#: win32/NetworkPage.cpp:42 -msgid "Socks IP" -msgstr "Socks IP" - -#: win32/AppearancePage.cpp:46 -#, fuzzy -msgid "Sort all downloads first" -msgstr "Ingen brugere at downloade fra" - -#: win32/AppearancePage.cpp:53 -#, fuzzy -msgid "Sort favorite users first" -msgstr "Ankomst/Afgang af favorit brugere visning sl� til" - -#: win32/Appearance2Page.cpp:37 -msgid "Sounds" -msgstr "Lyde" - -#: win32/ADLSearchFrame.cpp:33 -msgid "Source Type" -msgstr "Kilde Type" - -#: win32/QueueFrame.cpp:481 -msgid "Source too slow" -msgstr "" - -#: win32/WinUtil.cpp:289 -msgid "Specify a URL" -msgstr "" - -#: win32/WinUtil.cpp:256 win32/WinUtil.cpp:277 win32/WinUtil.cpp:283 -msgid "Specify a search string" -msgstr "Specifiser s�reng" - -#: win32/HubFrame.cpp:296 -msgid "Specify a server to connect to" -msgstr "Angiv en server der skal oprettes forbindeelse til..." - -#: win32/TransferView.cpp:44 win32/TransferView.cpp:57 -msgid "Speed" -msgstr "Hastighed" - -#: win32/DirectoryListingFrame.cpp:636 -#, boost-format -msgid "Speed: %1%/s" -msgstr "" - -#: win32/MagnetDlg.cpp:57 -msgid "Start a search for this file" -msgstr "Start en s�g efter denne fil" - -#: win32... [truncated message content] |
From: <arn...@us...> - 2008-02-03 19:16:43
|
Revision: 987 http://dcplusplus.svn.sourceforge.net/dcplusplus/?rev=987&view=rev Author: arnetheduck Date: 2008-02-03 11:16:41 -0800 (Sun, 03 Feb 2008) Log Message: ----------- Fixed various races, recover partially downloaded segments Modified Paths: -------------- dcplusplus/trunk/SConstruct dcplusplus/trunk/changelog.txt dcplusplus/trunk/dcpp/DownloadManager.cpp dcplusplus/trunk/dcpp/QueueManager.cpp dcplusplus/trunk/dcpp/TimerManager.cpp dcplusplus/trunk/dcpp/TimerManager.h dcplusplus/trunk/dcpp/User.cpp dcplusplus/trunk/dcpp/User.h Modified: dcplusplus/trunk/SConstruct =================================================================== --- dcplusplus/trunk/SConstruct 2008-02-03 16:11:52 UTC (rev 986) +++ dcplusplus/trunk/SConstruct 2008-02-03 19:16:41 UTC (rev 987) @@ -149,7 +149,7 @@ # internationalization (ardour.org provided the initial idea) # -po_args = ['msgmerge', '-q', '--update', '$TARGET', '$SOURCE'] +po_args = ['msgmerge', '-q', '--update', '--backup=none', '$TARGET', '$SOURCE'] po_bld = Builder (action = Action([po_args], 'Updating translation $TARGET from $SOURCES')) env.Append(BUILDERS = {'PoBuild' : po_bld}) Modified: dcplusplus/trunk/changelog.txt =================================================================== --- dcplusplus/trunk/changelog.txt 2008-02-03 16:11:52 UTC (rev 986) +++ dcplusplus/trunk/changelog.txt 2008-02-03 19:16:41 UTC (rev 987) @@ -21,7 +21,10 @@ * In waiting users, show requested chunk (since we can't know % done) * Fixed crash when download connection was disconnected before any data was received * Fixed crash due to race condition on idle check (thans bigmuscle) - +* Fixed crash when copying identity +* Fixed potential timer race condition (thanks bigmuscle) +* The good parts of partially downloaded segments are now added to queue (thanks bigmuscle) + -- 0.704 2007-12-14 -- * Hub lists added to utilize Coral's distributed network (ullner) * Use system header arrows on common controls 6+ (thanks poy) Modified: dcplusplus/trunk/dcpp/DownloadManager.cpp =================================================================== --- dcplusplus/trunk/dcpp/DownloadManager.cpp 2008-02-03 16:11:52 UTC (rev 986) +++ dcplusplus/trunk/dcpp/DownloadManager.cpp 2008-02-03 19:16:41 UTC (rev 987) @@ -112,42 +112,6 @@ } } -void QueueManager::FileMover::moveFile(const string& source, const string& target) { - Lock l(cs); - files.push_back(make_pair(source, target)); - if(!active) { - active = true; - start(); - } -} - -int QueueManager::FileMover::run() { - for(;;) { - FilePair next; - { - Lock l(cs); - if(files.empty()) { - active = false; - return 0; - } - next = files.back(); - files.pop_back(); - } - try { - File::renameFile(next.first, next.second); - } catch(const FileException&) { - try { - // Try to just rename it to the correct name at least - string newTarget = Util::getFilePath(next.first) + Util::getFileName(next.second); - File::renameFile(next.first, newTarget); - LogManager::getInstance()->message(str(F_("%1% renamed to %2%") % next.first % newTarget)); - } catch(const FileException& e) { - LogManager::getInstance()->message(str(F_("Unable to rename %1%: %2%") % next.first % e.getError())); - } - } - } -} - void DownloadManager::removeConnection(UserConnectionPtr aConn) { dcassert(aConn->getDownload() == NULL); aConn->removeListener(this); Modified: dcplusplus/trunk/dcpp/QueueManager.cpp =================================================================== --- dcplusplus/trunk/dcpp/QueueManager.cpp 2008-02-03 16:11:52 UTC (rev 986) +++ dcplusplus/trunk/dcpp/QueueManager.cpp 2008-02-03 19:16:41 UTC (rev 987) @@ -301,6 +301,42 @@ } } +void QueueManager::FileMover::moveFile(const string& source, const string& target) { + Lock l(cs); + files.push_back(make_pair(source, target)); + if(!active) { + active = true; + start(); + } +} + +int QueueManager::FileMover::run() { + for(;;) { + FilePair next; + { + Lock l(cs); + if(files.empty()) { + active = false; + return 0; + } + next = files.back(); + files.pop_back(); + } + try { + File::renameFile(next.first, next.second); + } catch(const FileException&) { + try { + // Try to just rename it to the correct name at least + string newTarget = Util::getFilePath(next.first) + Util::getFileName(next.second); + File::renameFile(next.first, newTarget); + LogManager::getInstance()->message(str(F_("%1% renamed to %2%") % next.first % newTarget)); + } catch(const FileException& e) { + LogManager::getInstance()->message(str(F_("Unable to rename %1%: %2%") % next.first % e.getError())); + } + } + } +} + QueueManager::QueueManager() : lastSave(0), queueFile(Util::getConfigPath() + "Queue.xml"), dirty(true), nextSearch(0) { TimerManager::getInstance()->addListener(this); SearchManager::getInstance()->addListener(this); @@ -921,6 +957,15 @@ // Blah...no use keeping an unfinished file list... File::deleteFile(q->getListName()); } + if(aDownload->getType() == Transfer::TYPE_FILE) { + // mark partially downloaded chunk, but align it to block size + int64_t downloaded = aDownload->getPos(); + downloaded -= downloaded % aDownload->getTigerTree().getBlockSize(); + + if(downloaded > 0) { + q->addSegment(Segment(aDownload->getStartPos(), downloaded)); + } + } } if(q->getPriority() != QueueItem::PAUSED) { Modified: dcplusplus/trunk/dcpp/TimerManager.cpp =================================================================== --- dcplusplus/trunk/dcpp/TimerManager.cpp 2008-02-03 16:11:52 UTC (rev 986) +++ dcplusplus/trunk/dcpp/TimerManager.cpp 2008-02-03 19:16:41 UTC (rev 987) @@ -26,6 +26,7 @@ #ifdef _WIN32 DWORD TimerManager::lastTick = 0; uint32_t TimerManager::cycles = 0; +FastCriticalSection TimerManager::cs; #else timeval TimerManager::tv; #endif @@ -52,6 +53,8 @@ uint64_t TimerManager::getTick() { #ifdef _WIN32 + FastLock l(cs); + DWORD tick = ::GetTickCount(); if(tick < lastTick) { cycles++; Modified: dcplusplus/trunk/dcpp/TimerManager.h =================================================================== --- dcplusplus/trunk/dcpp/TimerManager.h 2008-02-03 16:11:52 UTC (rev 986) +++ dcplusplus/trunk/dcpp/TimerManager.h 2008-02-03 19:16:41 UTC (rev 987) @@ -74,6 +74,7 @@ #ifdef _WIN32 static DWORD lastTick; static uint32_t cycles; + static FastCriticalSection cs; #else static timeval tv; #endif Modified: dcplusplus/trunk/dcpp/User.cpp =================================================================== --- dcplusplus/trunk/dcpp/User.cpp 2008-02-03 16:11:52 UTC (rev 986) +++ dcplusplus/trunk/dcpp/User.cpp 2008-02-03 19:16:41 UTC (rev 987) @@ -26,13 +26,15 @@ namespace dcpp { +FastCriticalSection Identity::cs; + OnlineUser::OnlineUser(const UserPtr& ptr, Client& client_, uint32_t sid_) : identity(ptr, sid_), client(client_) { } void Identity::getParams(StringMap& sm, const string& prefix, bool compatibility) const { { - Lock l(cs); + FastLock l(cs); for(InfMap::const_iterator i = info.begin(); i != info.end(); ++i) { sm[prefix + string((char*)(&i->first), 2)] = i->second; } @@ -76,13 +78,20 @@ } string Identity::get(const char* name) const { - Lock l(cs); + FastLock l(cs); InfMap::const_iterator i = info.find(*(short*)name); return i == info.end() ? Util::emptyString : i->second; } +bool Identity::isSet(const char* name) const { + FastLock l(cs); + InfMap::const_iterator i = info.find(*(short*)name); + return i != info.end(); +} + + void Identity::set(const char* name, const string& val) { - Lock l(cs); + FastLock l(cs); if(val.empty()) info.erase(*(short*)name); else @@ -90,7 +99,7 @@ } bool Identity::supports(const string& name) const { - const string& su = get("SU"); + string su = get("SU"); StringTokenizer<string> st(su, ','); for(StringIter i = st.getTokens().begin(); i != st.getTokens().end(); ++i) { if(*i == name) Modified: dcplusplus/trunk/dcpp/User.h =================================================================== --- dcplusplus/trunk/dcpp/User.h 2008-02-03 16:11:52 UTC (rev 986) +++ dcplusplus/trunk/dcpp/User.h 2008-02-03 19:16:41 UTC (rev 987) @@ -103,8 +103,8 @@ Identity() : sid(0) { } Identity(const UserPtr& ptr, uint32_t aSID) : user(ptr), sid(aSID) { } - Identity(const Identity& rhs) : Flags(rhs), user(rhs.user), sid(rhs.sid), info(rhs.info) { } - Identity& operator=(const Identity& rhs) { Lock l(cs); *static_cast<Flags*>(this) = rhs; user = rhs.user; sid = rhs.sid; info = rhs.info; return *this; } + Identity(const Identity& rhs) : Flags(), sid(0) { *this = rhs; } // Use operator= since we have to lock before reading... + Identity& operator=(const Identity& rhs) { FastLock l(cs); *static_cast<Flags*>(this) = rhs; user = rhs.user; sid = rhs.sid; info = rhs.info; return *this; } #define GS(n, x) string get##n() const { return get(x); } void set##n(const string& v) { set(x, v); } GS(Nick, "NI") @@ -123,16 +123,17 @@ void setHidden(bool hidden) { set("HI", hidden ? "1" : Util::emptyString); } string getTag() const; bool supports(const string& name) const; - bool isHub() const { return isClientType(CT_HUB) || !get("HU").empty(); } - bool isOp() const { return isClientType(CT_OP) || isClientType(CT_SU) || isClientType(CT_OWNER) || !get("OP").empty(); } - bool isRegistered() const { return isClientType(CT_REGGED) || !get("RG").empty(); } - bool isHidden() const { return !get("HI").empty(); } - bool isBot() const { return isClientType(CT_BOT) || !get("BO").empty(); } - bool isAway() const { return !get("AW").empty(); } + bool isHub() const { return isClientType(CT_HUB) || isSet("HU"); } + bool isOp() const { return isClientType(CT_OP) || isClientType(CT_SU) || isClientType(CT_OWNER) || isSet("OP"); } + bool isRegistered() const { return isClientType(CT_REGGED) || isSet("RG"); } + bool isHidden() const { return isSet("HI"); } + bool isBot() const { return isClientType(CT_BOT) || isSet("BO"); } + bool isAway() const { return isSet("AW"); } bool isTcpActive() const { return !getIp().empty() || (user->isSet(User::NMDC) && !user->isSet(User::PASSIVE)); } bool isUdpActive() const { return !getIp().empty() && !getUdpPort().empty(); } string get(const char* name) const; void set(const char* name, const string& val); + bool isSet(const char* name) const; string getSIDString() const { return string((const char*)&sid, 4); } bool isClientType(ClientType ct) const; @@ -145,8 +146,8 @@ typedef std::tr1::unordered_map<short, string> InfMap; typedef InfMap::iterator InfIter; InfMap info; - /** @todo there are probably more threading issues here ...*/ - mutable CriticalSection cs; + + static FastCriticalSection cs; }; class Client; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <arn...@us...> - 2008-02-03 16:12:28
|
Revision: 986 http://dcplusplus.svn.sourceforge.net/dcplusplus/?rev=986&view=rev Author: arnetheduck Date: 2008-02-03 08:11:52 -0800 (Sun, 03 Feb 2008) Log Message: ----------- Crash fixes Modified Paths: -------------- dcplusplus/trunk/changelog.txt dcplusplus/trunk/dcpp/DownloadManager.cpp dcplusplus/trunk/dcpp/MerkleTree.h Modified: dcplusplus/trunk/changelog.txt =================================================================== --- dcplusplus/trunk/changelog.txt 2008-02-02 23:28:26 UTC (rev 985) +++ dcplusplus/trunk/changelog.txt 2008-02-03 16:11:52 UTC (rev 986) @@ -19,6 +19,8 @@ * [ADC] Handle third person formatting (thanks poy) * Fix right-click issue when chat history is long (thanks poy) * In waiting users, show requested chunk (since we can't know % done) +* Fixed crash when download connection was disconnected before any data was received +* Fixed crash due to race condition on idle check (thans bigmuscle) -- 0.704 2007-12-14 -- * Hub lists added to utilize Coral's distributed network (ullner) Modified: dcplusplus/trunk/dcpp/DownloadManager.cpp =================================================================== --- dcplusplus/trunk/dcpp/DownloadManager.cpp 2008-02-02 23:28:26 UTC (rev 985) +++ dcplusplus/trunk/dcpp/DownloadManager.cpp 2008-02-03 16:11:52 UTC (rev 986) @@ -471,6 +471,12 @@ } void DownloadManager::failDownload(UserConnection* aSource, const string& reason) { + + { + Lock l(cs); + idlers.erase(remove(idlers.begin(), idlers.end(), aSource), idlers.end()); + } + Download* d = aSource->getDownload(); if(d) { @@ -479,7 +485,10 @@ QueueManager::getInstance()->putDownload(d, false); } - removeConnection(aSource); + + dcassert(aSource->getDownload() == NULL); + aSource->removeListener(this); + aSource->disconnect(); } void DownloadManager::removeDownload(Download* d) { Modified: dcplusplus/trunk/dcpp/MerkleTree.h =================================================================== --- dcplusplus/trunk/dcpp/MerkleTree.h 2008-02-02 23:28:26 UTC (rev 985) +++ dcplusplus/trunk/dcpp/MerkleTree.h 2008-02-03 16:11:52 UTC (rev 986) @@ -114,6 +114,10 @@ } uint8_t* finalize() { + // No updates yet, make sure we have at least one leaf for 0-length files... + if(leaves.empty() && blocks.empty()) { + update(0, 0); + } while(blocks.size() > 1) { MerkleBlock& a = blocks[blocks.size()-2]; MerkleBlock& b = blocks[blocks.size()-1]; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <arn...@us...> - 2008-02-02 23:28:29
|
Revision: 985 http://dcplusplus.svn.sourceforge.net/dcplusplus/?rev=985&view=rev Author: arnetheduck Date: 2008-02-02 15:28:26 -0800 (Sat, 02 Feb 2008) Log Message: ----------- fix waiting users, don't build i18n by default in debug builds Modified Paths: -------------- dcplusplus/trunk/SConstruct dcplusplus/trunk/build_util.py dcplusplus/trunk/changelog.txt dcplusplus/trunk/dcpp/UploadManager.cpp Modified: dcplusplus/trunk/SConstruct =================================================================== --- dcplusplus/trunk/SConstruct 2008-02-02 22:09:23 UTC (rev 984) +++ dcplusplus/trunk/SConstruct 2008-02-02 23:28:26 UTC (rev 985) @@ -12,6 +12,7 @@ BoolOption('verbose', 'Show verbose command lines', 'no'), BoolOption('savetemps', 'Save intermediate compilation files (assembly output)', 'no'), BoolOption('unicode', 'Build a Unicode version which fully supports international characters', 'yes'), + BoolOption('i18n', 'Rebuild i18n files in debug build', 'no'), ('prefix', 'Prefix to use when cross compiling', 'i386-mingw32-') ) @@ -172,3 +173,4 @@ dev.client = dev.build('dcpp/') dev.smartwin = dev.build('smartwin/') dev.win32 = dev.build('win32/') + Modified: dcplusplus/trunk/build_util.py =================================================================== --- dcplusplus/trunk/build_util.py 2008-02-02 22:09:23 UTC (rev 984) +++ dcplusplus/trunk/build_util.py 2008-02-02 23:28:26 UTC (rev 985) @@ -75,6 +75,9 @@ return local_env.SConscript(source_path + 'SConscript', exports={'dev' : self, 'source_path' : full_path }) def i18n (self, source_path, buildenv, sources, name): + if self.env['mode'] != 'release' and not self.env['i18n']: + return + p_oze = glob.glob('po/*.po') languages = [ os.path.basename(po).replace ('.po', '') for po in p_oze ] potfile = 'po/' + name + '.pot' Modified: dcplusplus/trunk/changelog.txt =================================================================== --- dcplusplus/trunk/changelog.txt 2008-02-02 22:09:23 UTC (rev 984) +++ dcplusplus/trunk/changelog.txt 2008-02-02 23:28:26 UTC (rev 985) @@ -18,6 +18,7 @@ * Allow spaces in the description field (poy) * [ADC] Handle third person formatting (thanks poy) * Fix right-click issue when chat history is long (thanks poy) +* In waiting users, show requested chunk (since we can't know % done) -- 0.704 2007-12-14 -- * Hub lists added to utilize Coral's distributed network (ullner) Modified: dcplusplus/trunk/dcpp/UploadManager.cpp =================================================================== --- dcplusplus/trunk/dcpp/UploadManager.cpp 2008-02-02 22:09:23 UTC (rev 984) +++ dcplusplus/trunk/dcpp/UploadManager.cpp 2008-02-02 23:28:26 UTC (rev 985) @@ -174,7 +174,7 @@ tFile = ShareManager::getInstance()->toVirtual(TTHValue(aFile.substr(4))); addFailedUpload(aSource, tFile + - " (" + Util::toString((aStartPos*1000/(size+10))/10.0)+"% of " + Util::formatBytes(size) + " done)"); + " (" + Util::formatBytes(aStartPos) + " - " + Util::formatBytes(aStartPos + aBytes) + ")"); aSource.disconnect(); return false; } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <arn...@us...> - 2008-02-02 22:09:26
|
Revision: 984 http://dcplusplus.svn.sourceforge.net/dcplusplus/?rev=984&view=rev Author: arnetheduck Date: 2008-02-02 14:09:23 -0800 (Sat, 02 Feb 2008) Log Message: ----------- Patches, fix downloads/connections locations Modified Paths: -------------- dcplusplus/trunk/changelog.txt dcplusplus/trunk/dcpp/AdcHub.cpp dcplusplus/trunk/dcpp/ClientListener.h dcplusplus/trunk/dcpp/Util.cpp dcplusplus/trunk/dcpp/Util.h dcplusplus/trunk/smartwin/source/widgets/WidgetTextBox.cpp dcplusplus/trunk/win32/HubFrame.cpp dcplusplus/trunk/win32/HubFrame.h dcplusplus/trunk/win32/TransferView.cpp dcplusplus/trunk/win32/po/da.po dcplusplus/trunk/win32/po/fr.po dcplusplus/trunk/win32/po/id.po dcplusplus/trunk/win32/po/it.po dcplusplus/trunk/win32/po/km.po dcplusplus/trunk/win32/po/ko.po dcplusplus/trunk/win32/po/pl.po dcplusplus/trunk/win32/po/pt.po dcplusplus/trunk/win32/po/ro.po dcplusplus/trunk/win32/po/sl.po dcplusplus/trunk/win32/po/sq.po Modified: dcplusplus/trunk/changelog.txt =================================================================== --- dcplusplus/trunk/changelog.txt 2008-02-02 00:05:24 UTC (rev 983) +++ dcplusplus/trunk/changelog.txt 2008-02-02 22:09:23 UTC (rev 984) @@ -16,7 +16,9 @@ * Upgraded to bzip 1.0.4 (thanks pothead) * Tab tooltips (thanks poy) * Allow spaces in the description field (poy) - +* [ADC] Handle third person formatting (thanks poy) +* Fix right-click issue when chat history is long (thanks poy) + -- 0.704 2007-12-14 -- * Hub lists added to utilize Coral's distributed network (ullner) * Use system header arrows on common controls 6+ (thanks poy) Modified: dcplusplus/trunk/dcpp/AdcHub.cpp =================================================================== --- dcplusplus/trunk/dcpp/AdcHub.cpp 2008-02-02 00:05:24 UTC (rev 983) +++ dcplusplus/trunk/dcpp/AdcHub.cpp 2008-02-02 22:09:23 UTC (rev 984) @@ -246,9 +246,9 @@ if(!replyTo) return; - fire(ClientListener::PrivateMessage(), this, *from, *to, *replyTo, c.getParam(0)); + fire(ClientListener::PrivateMessage(), this, *from, *to, *replyTo, c.getParam(0), c.hasFlag("ME", 1)); } else { - fire(ClientListener::Message(), this, *from, c.getParam(0)); + fire(ClientListener::Message(), this, *from, c.getParam(0), c.hasFlag("ME", 1)); } } Modified: dcplusplus/trunk/dcpp/ClientListener.h =================================================================== --- dcplusplus/trunk/dcpp/ClientListener.h 2008-02-02 00:05:24 UTC (rev 983) +++ dcplusplus/trunk/dcpp/ClientListener.h 2008-02-02 22:09:23 UTC (rev 984) @@ -39,9 +39,9 @@ virtual void on(Failed, Client*, const string&) throw() { } virtual void on(GetPassword, Client*) throw() { } virtual void on(HubUpdated, Client*) throw() { } - virtual void on(Message, Client*, const OnlineUser&, const string&) throw() { } + virtual void on(Message, Client*, const OnlineUser&, const string&, bool = false) throw() { } virtual void on(StatusMessage, Client*, const string&) throw() { } - virtual void on(PrivateMessage, Client*, const OnlineUser&, const OnlineUser&, const OnlineUser&, const string&) throw() { } + virtual void on(PrivateMessage, Client*, const OnlineUser&, const OnlineUser&, const OnlineUser&, const string&, bool = false) throw() { } virtual void on(HubUserCommand, Client*, int, int, const string&, const string&) throw() { } virtual void on(HubFull, Client*) throw() { } virtual void on(NickTaken, Client*) throw() { } Modified: dcplusplus/trunk/dcpp/Util.cpp =================================================================== --- dcplusplus/trunk/dcpp/Util.cpp 2008-02-02 00:05:24 UTC (rev 983) +++ dcplusplus/trunk/dcpp/Util.cpp 2008-02-02 22:09:23 UTC (rev 984) @@ -890,8 +890,10 @@ return Util::emptyString; //if doesn't returned anything already, something is wrong... } -string Util::formatMessage(const string& nick, const string& message) { - string tmp = '<' + nick + "> " + message; +string Util::formatMessage(const string& nick, const string& message, bool thirdPerson) { + // let's *not* obey the spec here and add a space after the star. :P + string tmp = (thirdPerson ? "* " + nick + ' ' : '<' + nick + "> ") + message; + // Check all '<' and '[' after newlines as they're probably pasts... size_t i = 0; while( (i = tmp.find('\n', i)) != string::npos) { @@ -903,6 +905,7 @@ } i++; } + return Text::toDOS(tmp); } Modified: dcplusplus/trunk/dcpp/Util.h =================================================================== --- dcplusplus/trunk/dcpp/Util.h 2008-02-02 00:05:24 UTC (rev 983) +++ dcplusplus/trunk/dcpp/Util.h 2008-02-02 22:09:23 UTC (rev 984) @@ -183,7 +183,7 @@ static string cleanPathChars(string aNick); static string formatBytes(const string& aString) { return formatBytes(toInt64(aString)); } - static string formatMessage(const string& nick, const string& message); + static string formatMessage(const string& nick, const string& message, bool thirdPerson); static string getShortTimeString(time_t t = time(NULL) ); Modified: dcplusplus/trunk/smartwin/source/widgets/WidgetTextBox.cpp =================================================================== --- dcplusplus/trunk/smartwin/source/widgets/WidgetTextBox.cpp 2008-02-02 00:05:24 UTC (rev 983) +++ dcplusplus/trunk/smartwin/source/widgets/WidgetTextBox.cpp 2008-02-02 22:09:23 UTC (rev 984) @@ -1,61 +1,61 @@ -#include "../../include/smartwin/widgets/WidgetTextBox.h" - -namespace SmartWin { - -WidgetTextBox::Seed::Seed() : - Widget::Seed(WC_EDIT, WS_CHILD | WS_VISIBLE | WS_TABSTOP, WS_EX_CLIENTEDGE), - font(new Font(DefaultGuiFont)) -{ -} - -void WidgetTextBox::create( const Seed & cs ) -{ - ControlType::create(cs); - if(cs.font) - setFont( cs.font ); -} - -SmartUtil::tstring WidgetTextBox::getLine(int line) { - SmartUtil::tstring tmp; - tmp.resize(std::max(2, lineLength(lineIndex(line)))); - - *reinterpret_cast<WORD*>(&tmp[0]) = static_cast<WORD>(tmp.size()); - tmp.resize(::SendMessage(this->handle(), EM_GETLINE, static_cast<WPARAM>(line), reinterpret_cast<LPARAM>(&tmp[0]))); - return tmp; -} - -SmartUtil::tstring WidgetTextBox::textUnderCursor(const ScreenCoordinate& p) { - int i = charFromPos(p); - int line = lineFromPos(p); - int c = i - lineIndex(line); - - SmartUtil::tstring tmp = getLine(line); - - SmartUtil::tstring::size_type start = tmp.find_last_of(_T(" <\t\r\n"), c); - if(start == SmartUtil::tstring::npos) - start = 0; - else - start++; - - SmartUtil::tstring::size_type end = tmp.find_first_of(_T(" >\t\r\n"), start + 1); - if(end == SmartUtil::tstring::npos) - end = tmp.size(); - - return tmp.substr(start, end-start); -} - -SmartUtil::tstring WidgetTextBoxBase::getSelection() const -{ - DWORD start, end; - this->sendMessage( EM_GETSEL, reinterpret_cast< WPARAM >( & start ), reinterpret_cast< LPARAM >( & end ) ); - SmartUtil::tstring retVal = this->getText().substr( start, end - start ); - return retVal; -} - -ScreenCoordinate WidgetTextBox::getContextMenuPos() { - RECT rc; - ::GetClientRect(this->handle(), &rc); - return ClientCoordinate (Point(rc.right/2, rc.bottom/2), this); -} - -} +#include "../../include/smartwin/widgets/WidgetTextBox.h" + +namespace SmartWin { + +WidgetTextBox::Seed::Seed() : + Widget::Seed(WC_EDIT, WS_CHILD | WS_VISIBLE | WS_TABSTOP, WS_EX_CLIENTEDGE), + font(new Font(DefaultGuiFont)) +{ +} + +void WidgetTextBox::create( const Seed & cs ) +{ + ControlType::create(cs); + if(cs.font) + setFont( cs.font ); +} + +SmartUtil::tstring WidgetTextBox::getLine(int line) { + SmartUtil::tstring tmp; + tmp.resize(std::max(2, lineLength(lineIndex(line)))); + + *reinterpret_cast<WORD*>(&tmp[0]) = static_cast<WORD>(tmp.size()); + tmp.resize(::SendMessage(this->handle(), EM_GETLINE, static_cast<WPARAM>(line), reinterpret_cast<LPARAM>(&tmp[0]))); + return tmp; +} + +SmartUtil::tstring WidgetTextBox::textUnderCursor(const ScreenCoordinate& p) { + int i = charFromPos(p); + int line = lineFromPos(p); + int c = (i - lineIndex(line)) & 0xFFFF; + + SmartUtil::tstring tmp = getLine(line); + + SmartUtil::tstring::size_type start = tmp.find_last_of(_T(" <\t\r\n"), c); + if(start == SmartUtil::tstring::npos) + start = 0; + else + start++; + + SmartUtil::tstring::size_type end = tmp.find_first_of(_T(" >\t\r\n"), start + 1); + if(end == SmartUtil::tstring::npos) + end = tmp.size(); + + return tmp.substr(start, end-start); +} + +SmartUtil::tstring WidgetTextBoxBase::getSelection() const +{ + DWORD start, end; + this->sendMessage( EM_GETSEL, reinterpret_cast< WPARAM >( & start ), reinterpret_cast< LPARAM >( & end ) ); + SmartUtil::tstring retVal = this->getText().substr( start, end - start ); + return retVal; +} + +ScreenCoordinate WidgetTextBox::getContextMenuPos() { + RECT rc; + ::GetClientRect(this->handle(), &rc); + return ClientCoordinate (Point(rc.right/2, rc.bottom/2), this); +} + +} Modified: dcplusplus/trunk/win32/HubFrame.cpp =================================================================== --- dcplusplus/trunk/win32/HubFrame.cpp 2008-02-02 00:05:24 UTC (rev 983) +++ dcplusplus/trunk/win32/HubFrame.cpp 2008-02-02 22:09:23 UTC (rev 984) @@ -880,8 +880,8 @@ speak(SET_WINDOW_TITLE, hubName); } -void HubFrame::on(Message, Client*, const OnlineUser& from, const string& msg) throw() { - speak(ADD_CHAT_LINE, Util::formatMessage(from.getIdentity().getNick(), msg)); +void HubFrame::on(Message, Client*, const OnlineUser& from, const string& msg, bool thirdPerson) throw() { + speak(ADD_CHAT_LINE, Util::formatMessage(from.getIdentity().getNick(), msg, thirdPerson)); } void HubFrame::on(StatusMessage, Client*, const string& line) throw() { @@ -898,8 +898,8 @@ } } -void HubFrame::on(PrivateMessage, Client*, const OnlineUser& from, const OnlineUser& to, const OnlineUser& replyTo, const string& line) throw() { - speak(from, to, replyTo, Util::formatMessage(from.getIdentity().getNick(), line)); +void HubFrame::on(PrivateMessage, Client*, const OnlineUser& from, const OnlineUser& to, const OnlineUser& replyTo, const string& line, bool thirdPerson) throw() { + speak(from, to, replyTo, Util::formatMessage(from.getIdentity().getNick(), line, thirdPerson)); } void HubFrame::on(NickTaken, Client*) throw() { Modified: dcplusplus/trunk/win32/HubFrame.h =================================================================== --- dcplusplus/trunk/win32/HubFrame.h 2008-02-02 00:05:24 UTC (rev 983) +++ dcplusplus/trunk/win32/HubFrame.h 2008-02-02 22:09:23 UTC (rev 984) @@ -274,9 +274,9 @@ virtual void on(Failed, Client*, const string&) throw(); virtual void on(GetPassword, Client*) throw(); virtual void on(HubUpdated, Client*) throw(); - virtual void on(Message, Client*, const OnlineUser&, const string&) throw(); + virtual void on(Message, Client*, const OnlineUser&, const string&, bool = false) throw(); virtual void on(StatusMessage, Client*, const string&) throw(); - virtual void on(PrivateMessage, Client*, const OnlineUser&, const OnlineUser&, const OnlineUser&, const string&) throw(); + virtual void on(PrivateMessage, Client*, const OnlineUser&, const OnlineUser&, const OnlineUser&, const string&, bool = false) throw(); virtual void on(NickTaken, Client*) throw(); virtual void on(SearchFlood, Client*, const string&) throw(); }; Modified: dcplusplus/trunk/win32/TransferView.cpp =================================================================== --- dcplusplus/trunk/win32/TransferView.cpp 2008-02-02 00:05:24 UTC (rev 983) +++ dcplusplus/trunk/win32/TransferView.cpp 2008-02-02 22:09:23 UTC (rev 984) @@ -147,7 +147,6 @@ void TransferView::handleTabSelected() { int i = tabs->getSelectedIndex(); - dcdebug("Setting %d visible\n", i); if(i == 0) { ::ShowWindow(downloadsWindow->handle(), SW_HIDE); ::ShowWindow(connectionsWindow->handle(), SW_SHOW); @@ -165,11 +164,11 @@ void TransferView::layout() { tabs->setBounds(SmartWin::Point(0,0), getClientAreaSize()); SmartWin::Rectangle rect = tabs->getUsableArea(true); - dcdebug("Setting rect %u, %u, %u, %u\n", rect.pos.x, rect.pos.y, rect.size.x, rect.size.y); + connectionsWindow->setBounds(rect); - connections->setBounds(connectionsWindow->getBounds(true)); + connections->setBounds(SmartWin::Rectangle(connectionsWindow->getClientAreaSize())); downloadsWindow->setBounds(rect); - downloads->setBounds(downloadsWindow->getBounds(true)); + downloads->setBounds(SmartWin::Rectangle(downloadsWindow->getClientAreaSize())); } void TransferView::prepareClose() { Modified: dcplusplus/trunk/win32/po/da.po =================================================================== --- dcplusplus/trunk/win32/po/da.po 2008-02-02 00:05:24 UTC (rev 983) +++ dcplusplus/trunk/win32/po/da.po 2008-02-02 22:09:23 UTC (rev 984) @@ -7,7 +7,7 @@ msgstr "" "Project-Id-Version: win32\n" "Report-Msgid-Bugs-To: dcp...@li...\n" -"POT-Creation-Date: 2008-02-02 00:46+0100\n" +"POT-Creation-Date: 2008-02-02 21:32+0100\n" "Last-Translator: <g2...@us...>\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -21,7 +21,7 @@ "Open download page?" msgstr "�n Download Stien" -#: win32/TransferView.cpp:570 +#: win32/TransferView.cpp:569 #, boost-format msgid "%1% (%2$0.2f)" msgstr "" @@ -55,7 +55,7 @@ msgstr[0] "Ingen bruger(e)" msgstr[1] "Ingen bruger(e)" -#: win32/TransferView.cpp:584 win32/TransferView.cpp:632 +#: win32/TransferView.cpp:583 win32/TransferView.cpp:631 #, boost-format msgid "%1%/s" msgstr "" @@ -100,7 +100,7 @@ msgid "&Connect" msgstr "Forbindelsen oprettet" -#: win32/TransferView.cpp:201 +#: win32/TransferView.cpp:200 #, fuzzy msgid "&Disconnect" msgstr "Hurtigt Forbind" @@ -129,7 +129,7 @@ msgid "&File" msgstr "Fil" -#: win32/TransferView.cpp:198 +#: win32/TransferView.cpp:197 msgid "&Force attempt" msgstr "" @@ -563,12 +563,12 @@ msgid "Connected" msgstr "Forbindelsen oprettet" -#: win32/TransferView.cpp:641 win32/TransferView.cpp:648 +#: win32/TransferView.cpp:640 win32/TransferView.cpp:647 #, fuzzy msgid "Connecting" msgstr "Forbindelse" -#: win32/TransferView.cpp:285 +#: win32/TransferView.cpp:284 #, fuzzy msgid "Connecting (forced)" msgstr "Forbindelsen oprettet" @@ -596,7 +596,7 @@ msgid "Copy &address to clipboard" msgstr "Kopi�MAGNET link til Udklipsholderen" -#: win32/TransferView.cpp:199 win32/HubFrame.cpp:1160 +#: win32/TransferView.cpp:198 win32/HubFrame.cpp:1160 #, fuzzy msgid "Copy &nick to clipboard" msgstr "Kopi�MAGNET link til Udklipsholderen" @@ -782,12 +782,12 @@ msgid "Downloaded" msgstr "Downloaded" -#: win32/TransferView.cpp:719 +#: win32/TransferView.cpp:718 #, fuzzy, boost-format msgid "Downloading %1%" msgstr "Downloader..." -#: win32/TransferView.cpp:630 +#: win32/TransferView.cpp:629 #, boost-format msgid "Downloading from %1% user" msgid_plural "Downloading from %1% users" @@ -1140,7 +1140,7 @@ msgid "IP: %1%, Port: %2%/%3%/%4%" msgstr "" -#: win32/TransferView.cpp:536 win32/TransferView.cpp:832 +#: win32/TransferView.cpp:535 win32/TransferView.cpp:831 msgid "Idle" msgstr "" @@ -1709,7 +1709,7 @@ msgid "Reliability" msgstr "P�delighed" -#: win32/QueueFrame.cpp:483 win32/TransferView.cpp:660 +#: win32/QueueFrame.cpp:483 win32/TransferView.cpp:659 msgid "Remote client does not fully support TTH - cannot download" msgstr "Fjernklienten har ikke TTH - st�kan ikke downloade!" @@ -2015,7 +2015,7 @@ msgid "TTH Root" msgstr "TTH Rod" -#: win32/TransferView.cpp:671 +#: win32/TransferView.cpp:670 #, boost-format msgid "TTH: %1%" msgstr "" @@ -2140,7 +2140,7 @@ msgid "Upload: %1%, Download: %2%" msgstr "" -#: win32/TransferView.cpp:797 +#: win32/TransferView.cpp:796 #, fuzzy, boost-format msgid "Uploading %1%" msgstr "Oploads" @@ -2229,12 +2229,12 @@ msgid "Waiting Users" msgstr "Venter p�rugere" -#: win32/TransferView.cpp:626 +#: win32/TransferView.cpp:625 #, fuzzy msgid "Waiting for slot" msgstr "Venter p�rugere" -#: win32/TransferView.cpp:648 +#: win32/TransferView.cpp:647 #, fuzzy msgid "Waiting to retry" msgstr "Venter p�rugere" @@ -2259,7 +2259,7 @@ "or from Microsoft directly." msgstr "" -#: win32/TransferView.cpp:673 +#: win32/TransferView.cpp:672 #, fuzzy msgid "file list" msgstr "Filliste Menu" Modified: dcplusplus/trunk/win32/po/fr.po =================================================================== --- dcplusplus/trunk/win32/po/fr.po 2008-02-02 00:05:24 UTC (rev 983) +++ dcplusplus/trunk/win32/po/fr.po 2008-02-02 22:09:23 UTC (rev 984) @@ -7,7 +7,7 @@ msgstr "" "Project-Id-Version: win32\n" "Report-Msgid-Bugs-To: dcp...@li...\n" -"POT-Creation-Date: 2008-02-02 00:46+0100\n" +"POT-Creation-Date: 2008-02-02 21:32+0100\n" "Last-Translator: <sp...@us...>\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -21,7 +21,7 @@ "Open download page?" msgstr "Ouvrir le répertoire des téléchargements" -#: win32/TransferView.cpp:570 +#: win32/TransferView.cpp:569 #, boost-format msgid "%1% (%2$0.2f)" msgstr "" @@ -55,7 +55,7 @@ msgstr[0] "Pas d'utilisateur" msgstr[1] "Pas d'utilisateur" -#: win32/TransferView.cpp:584 win32/TransferView.cpp:632 +#: win32/TransferView.cpp:583 win32/TransferView.cpp:631 #, boost-format msgid "%1%/s" msgstr "" @@ -101,7 +101,7 @@ msgid "&Connect" msgstr "Connecté" -#: win32/TransferView.cpp:201 +#: win32/TransferView.cpp:200 #, fuzzy msgid "&Disconnect" msgstr "Connexion Rapide" @@ -131,7 +131,7 @@ msgid "&File" msgstr "Fichier" -#: win32/TransferView.cpp:198 +#: win32/TransferView.cpp:197 msgid "&Force attempt" msgstr "" @@ -576,12 +576,12 @@ msgid "Connected" msgstr "Connecté" -#: win32/TransferView.cpp:641 win32/TransferView.cpp:648 +#: win32/TransferView.cpp:640 win32/TransferView.cpp:647 #, fuzzy msgid "Connecting" msgstr "Connexion" -#: win32/TransferView.cpp:285 +#: win32/TransferView.cpp:284 #, fuzzy msgid "Connecting (forced)" msgstr "Connecté" @@ -609,7 +609,7 @@ msgid "Copy &address to clipboard" msgstr "Copier lien Magnet" -#: win32/TransferView.cpp:199 win32/HubFrame.cpp:1160 +#: win32/TransferView.cpp:198 win32/HubFrame.cpp:1160 #, fuzzy msgid "Copy &nick to clipboard" msgstr "Copier lien Magnet" @@ -794,12 +794,12 @@ msgid "Downloaded" msgstr "Téléchargé" -#: win32/TransferView.cpp:719 +#: win32/TransferView.cpp:718 #, fuzzy, boost-format msgid "Downloading %1%" msgstr "Téléchargement..." -#: win32/TransferView.cpp:630 +#: win32/TransferView.cpp:629 #, boost-format msgid "Downloading from %1% user" msgid_plural "Downloading from %1% users" @@ -1154,7 +1154,7 @@ msgid "IP: %1%, Port: %2%/%3%/%4%" msgstr "" -#: win32/TransferView.cpp:536 win32/TransferView.cpp:832 +#: win32/TransferView.cpp:535 win32/TransferView.cpp:831 msgid "Idle" msgstr "" @@ -1724,7 +1724,7 @@ msgid "Reliability" msgstr "Fiabilité" -#: win32/QueueFrame.cpp:483 win32/TransferView.cpp:660 +#: win32/QueueFrame.cpp:483 win32/TransferView.cpp:659 msgid "Remote client does not fully support TTH - cannot download" msgstr "" "Le client distant ne supporte pas complètement la hache TTH - ne peut pas " @@ -2032,7 +2032,7 @@ msgid "TTH Root" msgstr "Racine TTH" -#: win32/TransferView.cpp:671 +#: win32/TransferView.cpp:670 #, boost-format msgid "TTH: %1%" msgstr "" @@ -2159,7 +2159,7 @@ msgid "Upload: %1%, Download: %2%" msgstr "" -#: win32/TransferView.cpp:797 +#: win32/TransferView.cpp:796 #, fuzzy, boost-format msgid "Uploading %1%" msgstr "Envois" @@ -2250,12 +2250,12 @@ msgid "Waiting Users" msgstr "Utilisateurs en attente" -#: win32/TransferView.cpp:626 +#: win32/TransferView.cpp:625 #, fuzzy msgid "Waiting for slot" msgstr "Utilisateurs en attente" -#: win32/TransferView.cpp:648 +#: win32/TransferView.cpp:647 #, fuzzy msgid "Waiting to retry" msgstr "Utilisateurs en attente" @@ -2280,7 +2280,7 @@ "or from Microsoft directly." msgstr "" -#: win32/TransferView.cpp:673 +#: win32/TransferView.cpp:672 #, fuzzy msgid "file list" msgstr "Menu liste de fichiers" Modified: dcplusplus/trunk/win32/po/id.po =================================================================== --- dcplusplus/trunk/win32/po/id.po 2008-02-02 00:05:24 UTC (rev 983) +++ dcplusplus/trunk/win32/po/id.po 2008-02-02 22:09:23 UTC (rev 984) @@ -7,7 +7,7 @@ msgstr "" "Project-Id-Version: win32\n" "Report-Msgid-Bugs-To: dcp...@li...\n" -"POT-Creation-Date: 2008-02-02 00:46+0100\n" +"POT-Creation-Date: 2008-02-02 21:32+0100\n" "Last-Translator: <dod...@us...>\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -21,7 +21,7 @@ "Open download page?" msgstr "Buka direktori unduh" -#: win32/TransferView.cpp:570 +#: win32/TransferView.cpp:569 #, boost-format msgid "%1% (%2$0.2f)" msgstr "" @@ -55,7 +55,7 @@ msgstr[0] "Tak ada pengguna" msgstr[1] "Tak ada pengguna" -#: win32/TransferView.cpp:584 win32/TransferView.cpp:632 +#: win32/TransferView.cpp:583 win32/TransferView.cpp:631 #, boost-format msgid "%1%/s" msgstr "" @@ -101,7 +101,7 @@ msgid "&Connect" msgstr "Tersambung" -#: win32/TransferView.cpp:201 +#: win32/TransferView.cpp:200 #, fuzzy msgid "&Disconnect" msgstr "Hubung Cepat" @@ -131,7 +131,7 @@ msgid "&File" msgstr "Arsip" -#: win32/TransferView.cpp:198 +#: win32/TransferView.cpp:197 msgid "&Force attempt" msgstr "" @@ -567,12 +567,12 @@ msgid "Connected" msgstr "Tersambung" -#: win32/TransferView.cpp:641 win32/TransferView.cpp:648 +#: win32/TransferView.cpp:640 win32/TransferView.cpp:647 #, fuzzy msgid "Connecting" msgstr "Sambungan" -#: win32/TransferView.cpp:285 +#: win32/TransferView.cpp:284 #, fuzzy msgid "Connecting (forced)" msgstr "Tersambung" @@ -600,7 +600,7 @@ msgid "Copy &address to clipboard" msgstr "Salin pautan magnet ke clipboard" -#: win32/TransferView.cpp:199 win32/HubFrame.cpp:1160 +#: win32/TransferView.cpp:198 win32/HubFrame.cpp:1160 #, fuzzy msgid "Copy &nick to clipboard" msgstr "Salin pautan magnet ke clipboard" @@ -786,12 +786,12 @@ msgid "Downloaded" msgstr "Telah Diunduh" -#: win32/TransferView.cpp:719 +#: win32/TransferView.cpp:718 #, fuzzy, boost-format msgid "Downloading %1%" msgstr "Mengunduh..." -#: win32/TransferView.cpp:630 +#: win32/TransferView.cpp:629 #, boost-format msgid "Downloading from %1% user" msgid_plural "Downloading from %1% users" @@ -1143,7 +1143,7 @@ msgid "IP: %1%, Port: %2%/%3%/%4%" msgstr "" -#: win32/TransferView.cpp:536 win32/TransferView.cpp:832 +#: win32/TransferView.cpp:535 win32/TransferView.cpp:831 msgid "Idle" msgstr "" @@ -1721,7 +1721,7 @@ msgid "Reliability" msgstr "Kehandalan" -#: win32/QueueFrame.cpp:483 win32/TransferView.cpp:660 +#: win32/QueueFrame.cpp:483 win32/TransferView.cpp:659 msgid "Remote client does not fully support TTH - cannot download" msgstr "" @@ -2025,7 +2025,7 @@ msgid "TTH Root" msgstr "TTH Root" -#: win32/TransferView.cpp:671 +#: win32/TransferView.cpp:670 #, boost-format msgid "TTH: %1%" msgstr "" @@ -2146,7 +2146,7 @@ msgid "Upload: %1%, Download: %2%" msgstr "" -#: win32/TransferView.cpp:797 +#: win32/TransferView.cpp:796 #, fuzzy, boost-format msgid "Uploading %1%" msgstr "Unggahan" @@ -2236,11 +2236,11 @@ msgid "Waiting Users" msgstr "Menunggu (Pengguna online)" -#: win32/TransferView.cpp:626 +#: win32/TransferView.cpp:625 msgid "Waiting for slot" msgstr "" -#: win32/TransferView.cpp:648 +#: win32/TransferView.cpp:647 msgid "Waiting to retry" msgstr "" @@ -2264,7 +2264,7 @@ "or from Microsoft directly." msgstr "" -#: win32/TransferView.cpp:673 +#: win32/TransferView.cpp:672 #, fuzzy msgid "file list" msgstr "Menu Daftar arsip" Modified: dcplusplus/trunk/win32/po/it.po =================================================================== --- dcplusplus/trunk/win32/po/it.po 2008-02-02 00:05:24 UTC (rev 983) +++ dcplusplus/trunk/win32/po/it.po 2008-02-02 22:09:23 UTC (rev 984) @@ -7,7 +7,7 @@ msgstr "" "Project-Id-Version: win32\n" "Report-Msgid-Bugs-To: dcp...@li...\n" -"POT-Creation-Date: 2008-02-02 00:46+0100\n" +"POT-Creation-Date: 2008-02-02 21:32+0100\n" "Last-Translator: <vec...@us...>\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -21,7 +21,7 @@ "Open download page?" msgstr "Apri cartella download" -#: win32/TransferView.cpp:570 +#: win32/TransferView.cpp:569 #, boost-format msgid "%1% (%2$0.2f)" msgstr "" @@ -55,7 +55,7 @@ msgstr[0] "Nessun utente" msgstr[1] "Nessun utente" -#: win32/TransferView.cpp:584 win32/TransferView.cpp:632 +#: win32/TransferView.cpp:583 win32/TransferView.cpp:631 #, boost-format msgid "%1%/s" msgstr "" @@ -101,7 +101,7 @@ msgid "&Connect" msgstr "Connesso" -#: win32/TransferView.cpp:201 +#: win32/TransferView.cpp:200 #, fuzzy msgid "&Disconnect" msgstr "Connessione Rapida" @@ -131,7 +131,7 @@ msgid "&File" msgstr "File" -#: win32/TransferView.cpp:198 +#: win32/TransferView.cpp:197 msgid "&Force attempt" msgstr "" @@ -566,12 +566,12 @@ msgid "Connected" msgstr "Connesso" -#: win32/TransferView.cpp:641 win32/TransferView.cpp:648 +#: win32/TransferView.cpp:640 win32/TransferView.cpp:647 #, fuzzy msgid "Connecting" msgstr "Connessione" -#: win32/TransferView.cpp:285 +#: win32/TransferView.cpp:284 #, fuzzy msgid "Connecting (forced)" msgstr "Connesso" @@ -599,7 +599,7 @@ msgid "Copy &address to clipboard" msgstr "Copia link MAGNET negli appunti" -#: win32/TransferView.cpp:199 win32/HubFrame.cpp:1160 +#: win32/TransferView.cpp:198 win32/HubFrame.cpp:1160 #, fuzzy msgid "Copy &nick to clipboard" msgstr "Copia link MAGNET negli appunti" @@ -784,12 +784,12 @@ msgid "Downloaded" msgstr "Scaricati" -#: win32/TransferView.cpp:719 +#: win32/TransferView.cpp:718 #, fuzzy, boost-format msgid "Downloading %1%" msgstr "Download in corso..." -#: win32/TransferView.cpp:630 +#: win32/TransferView.cpp:629 #, boost-format msgid "Downloading from %1% user" msgid_plural "Downloading from %1% users" @@ -1141,7 +1141,7 @@ msgid "IP: %1%, Port: %2%/%3%/%4%" msgstr "" -#: win32/TransferView.cpp:536 win32/TransferView.cpp:832 +#: win32/TransferView.cpp:535 win32/TransferView.cpp:831 msgid "Idle" msgstr "" @@ -1710,7 +1710,7 @@ msgid "Reliability" msgstr "Affidabilità" -#: win32/QueueFrame.cpp:483 win32/TransferView.cpp:660 +#: win32/QueueFrame.cpp:483 win32/TransferView.cpp:659 msgid "Remote client does not fully support TTH - cannot download" msgstr "Il client remoto non supporta il TTH - impossibile il download" @@ -2012,7 +2012,7 @@ msgid "TTH Root" msgstr "Radice TTH" -#: win32/TransferView.cpp:671 +#: win32/TransferView.cpp:670 #, boost-format msgid "TTH: %1%" msgstr "" @@ -2141,7 +2141,7 @@ msgid "Upload: %1%, Download: %2%" msgstr "" -#: win32/TransferView.cpp:797 +#: win32/TransferView.cpp:796 #, fuzzy, boost-format msgid "Uploading %1%" msgstr "Uploads" @@ -2230,12 +2230,12 @@ msgid "Waiting Users" msgstr "In attesa di Utenti" -#: win32/TransferView.cpp:626 +#: win32/TransferView.cpp:625 #, fuzzy msgid "Waiting for slot" msgstr "In attesa di Utenti" -#: win32/TransferView.cpp:648 +#: win32/TransferView.cpp:647 #, fuzzy msgid "Waiting to retry" msgstr "In attesa di Utenti" @@ -2264,7 +2264,7 @@ "l'interfaccia. Si prega di scaricare la versione 5.80 o successive dalla " "pagina web di DC++ o dal sito Microsoft." -#: win32/TransferView.cpp:673 +#: win32/TransferView.cpp:672 #, fuzzy msgid "file list" msgstr "Menu Elenco File" Modified: dcplusplus/trunk/win32/po/km.po =================================================================== --- dcplusplus/trunk/win32/po/km.po 2008-02-02 00:05:24 UTC (rev 983) +++ dcplusplus/trunk/win32/po/km.po 2008-02-02 22:09:23 UTC (rev 984) @@ -7,7 +7,7 @@ msgstr "" "Project-Id-Version: win32\n" "Report-Msgid-Bugs-To: dcp...@li...\n" -"POT-Creation-Date: 2008-02-02 00:46+0100\n" +"POT-Creation-Date: 2008-02-02 21:32+0100\n" "Last-Translator: <Vey...@us...>\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -21,7 +21,7 @@ "Open download page?" msgstr "បើកថតក្រូណូទាញយក" -#: win32/TransferView.cpp:570 +#: win32/TransferView.cpp:569 #, boost-format msgid "%1% (%2$0.2f)" msgstr "" @@ -55,7 +55,7 @@ msgstr[0] "គ្មានអ្នកប្រើ" msgstr[1] "គ្មានអ្នកប្រើ" -#: win32/TransferView.cpp:584 win32/TransferView.cpp:632 +#: win32/TransferView.cpp:583 win32/TransferView.cpp:631 #, boost-format msgid "%1%/s" msgstr "" @@ -101,7 +101,7 @@ msgid "&Connect" msgstr "បានតភ្ជាប់" -#: win32/TransferView.cpp:201 +#: win32/TransferView.cpp:200 #, fuzzy msgid "&Disconnect" msgstr "តភ្ជាប់រហ័ស" @@ -131,7 +131,7 @@ msgid "&File" msgstr "ឯកសារ" -#: win32/TransferView.cpp:198 +#: win32/TransferView.cpp:197 msgid "&Force attempt" msgstr "" @@ -563,12 +563,12 @@ msgid "Connected" msgstr "បានតភ្ជាប់" -#: win32/TransferView.cpp:641 win32/TransferView.cpp:648 +#: win32/TransferView.cpp:640 win32/TransferView.cpp:647 #, fuzzy msgid "Connecting" msgstr "ការតភ្ជាប់" -#: win32/TransferView.cpp:285 +#: win32/TransferView.cpp:284 #, fuzzy msgid "Connecting (forced)" msgstr "បានតភ្ជាប់" @@ -596,7 +596,7 @@ msgid "Copy &address to clipboard" msgstr "ចម្លងតំណទាក់ចិត្ត ទៅក្តារតម្បៀតខ្ទាស់" -#: win32/TransferView.cpp:199 win32/HubFrame.cpp:1160 +#: win32/TransferView.cpp:198 win32/HubFrame.cpp:1160 #, fuzzy msgid "Copy &nick to clipboard" msgstr "ចម្លងតំណទាក់ចិត្ត ទៅក្តារតម្បៀតខ្ទាស់" @@ -779,12 +779,12 @@ msgid "Downloaded" msgstr "បានទាញយក" -#: win32/TransferView.cpp:719 +#: win32/TransferView.cpp:718 #, fuzzy, boost-format msgid "Downloading %1%" msgstr "កំពុងទាញយក..." -#: win32/TransferView.cpp:630 +#: win32/TransferView.cpp:629 #, boost-format msgid "Downloading from %1% user" msgid_plural "Downloading from %1% users" @@ -1134,7 +1134,7 @@ msgid "IP: %1%, Port: %2%/%3%/%4%" msgstr "" -#: win32/TransferView.cpp:536 win32/TransferView.cpp:832 +#: win32/TransferView.cpp:535 win32/TransferView.cpp:831 msgid "Idle" msgstr "" @@ -1701,7 +1701,7 @@ msgid "Reliability" msgstr "ភាពអាចទុកចិត្តបាន" -#: win32/QueueFrame.cpp:483 win32/TransferView.cpp:660 +#: win32/QueueFrame.cpp:483 win32/TransferView.cpp:659 msgid "Remote client does not fully support TTH - cannot download" msgstr "" @@ -2004,7 +2004,7 @@ msgid "TTH Root" msgstr "ឫស TTH" -#: win32/TransferView.cpp:671 +#: win32/TransferView.cpp:670 #, boost-format msgid "TTH: %1%" msgstr "" @@ -2129,7 +2129,7 @@ msgid "Upload: %1%, Download: %2%" msgstr "" -#: win32/TransferView.cpp:797 +#: win32/TransferView.cpp:796 #, fuzzy, boost-format msgid "Uploading %1%" msgstr "ផ្ទុកឡើង" @@ -2218,12 +2218,12 @@ msgid "Waiting Users" msgstr "រង់ចាំអ្នកប្រើ" -#: win32/TransferView.cpp:626 +#: win32/TransferView.cpp:625 #, fuzzy msgid "Waiting for slot" msgstr "រង់ចាំអ្នកប្រើ" -#: win32/TransferView.cpp:648 +#: win32/TransferView.cpp:647 #, fuzzy msgid "Waiting to retry" msgstr "រង់ចាំអ្នកប្រើ" @@ -2248,7 +2248,7 @@ "or from Microsoft directly." msgstr "" -#: win32/TransferView.cpp:673 +#: win32/TransferView.cpp:672 #, fuzzy msgid "file list" msgstr "ម៉ឺនុយបញ្ជីឯកសារ" Modified: dcplusplus/trunk/win32/po/ko.po =================================================================== --- dcplusplus/trunk/win32/po/ko.po 2008-02-02 00:05:24 UTC (rev 983) +++ dcplusplus/trunk/win32/po/ko.po 2008-02-02 22:09:23 UTC (rev 984) @@ -7,7 +7,7 @@ msgstr "" "Project-Id-Version: win32\n" "Report-Msgid-Bugs-To: dcp...@li...\n" -"POT-Creation-Date: 2008-02-02 00:46+0100\n" +"POT-Creation-Date: 2008-02-02 21:32+0100\n" "Last-Translator: <gut...@us...>\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -21,7 +21,7 @@ "Open download page?" msgstr "'기본 다운로드 디렉토리' 열기" -#: win32/TransferView.cpp:570 +#: win32/TransferView.cpp:569 #, boost-format msgid "%1% (%2$0.2f)" msgstr "" @@ -53,7 +53,7 @@ msgid_plural "%1% users" msgstr[0] "사용자 없음" -#: win32/TransferView.cpp:584 win32/TransferView.cpp:632 +#: win32/TransferView.cpp:583 win32/TransferView.cpp:631 #, boost-format msgid "%1%/s" msgstr "" @@ -99,7 +99,7 @@ msgid "&Connect" msgstr "접속되었음" -#: win32/TransferView.cpp:201 +#: win32/TransferView.cpp:200 #, fuzzy msgid "&Disconnect" msgstr "허브에 직접 접속하기" @@ -129,7 +129,7 @@ msgid "&File" msgstr "파일" -#: win32/TransferView.cpp:198 +#: win32/TransferView.cpp:197 msgid "&Force attempt" msgstr "" @@ -583,12 +583,12 @@ msgid "Connected" msgstr "접속되었음" -#: win32/TransferView.cpp:641 win32/TransferView.cpp:648 +#: win32/TransferView.cpp:640 win32/TransferView.cpp:647 #, fuzzy msgid "Connecting" msgstr "연결" -#: win32/TransferView.cpp:285 +#: win32/TransferView.cpp:284 #, fuzzy msgid "Connecting (forced)" msgstr "접속되었음" @@ -616,7 +616,7 @@ msgid "Copy &address to clipboard" msgstr "클립보드에 MAGNET 링크 복사하기" -#: win32/TransferView.cpp:199 win32/HubFrame.cpp:1160 +#: win32/TransferView.cpp:198 win32/HubFrame.cpp:1160 #, fuzzy msgid "Copy &nick to clipboard" msgstr "클립보드에 MAGNET 링크 복사하기" @@ -798,12 +798,12 @@ msgid "Downloaded" msgstr "받은 크기" -#: win32/TransferView.cpp:719 +#: win32/TransferView.cpp:718 #, fuzzy, boost-format msgid "Downloading %1%" msgstr "다운로드..." -#: win32/TransferView.cpp:630 +#: win32/TransferView.cpp:629 #, boost-format msgid "Downloading from %1% user" msgid_plural "Downloading from %1% users" @@ -1164,7 +1164,7 @@ msgid "IP: %1%, Port: %2%/%3%/%4%" msgstr "" -#: win32/TransferView.cpp:536 win32/TransferView.cpp:832 +#: win32/TransferView.cpp:535 win32/TransferView.cpp:831 msgid "Idle" msgstr "" @@ -1738,7 +1738,7 @@ msgid "Reliability" msgstr "신뢰도" -#: win32/QueueFrame.cpp:483 win32/TransferView.cpp:660 +#: win32/QueueFrame.cpp:483 win32/TransferView.cpp:659 msgid "Remote client does not fully support TTH - cannot download" msgstr "상대방 클라이언트가 TTH를 완전히 지원하지 않음 - 다운로드할 수 없음" @@ -2049,7 +2049,7 @@ msgid "TTH Root" msgstr "TTH Root" -#: win32/TransferView.cpp:671 +#: win32/TransferView.cpp:670 #, boost-format msgid "TTH: %1%" msgstr "" @@ -2176,7 +2176,7 @@ msgid "Upload: %1%, Download: %2%" msgstr "" -#: win32/TransferView.cpp:797 +#: win32/TransferView.cpp:796 #, fuzzy, boost-format msgid "Uploading %1%" msgstr "업로드" @@ -2276,12 +2276,12 @@ msgid "Waiting Users" msgstr "대기 중인 사용자" -#: win32/TransferView.cpp:626 +#: win32/TransferView.cpp:625 #, fuzzy msgid "Waiting for slot" msgstr "대기 중인 사용자" -#: win32/TransferView.cpp:648 +#: win32/TransferView.cpp:647 #, fuzzy msgid "Waiting to retry" msgstr "대기 중인 사용자" @@ -2306,7 +2306,7 @@ "or from Microsoft directly." msgstr "" -#: win32/TransferView.cpp:673 +#: win32/TransferView.cpp:672 #, fuzzy msgid "file list" msgstr "파일-목록 메뉴" Modified: dcplusplus/trunk/win32/po/pl.po =================================================================== --- dcplusplus/trunk/win32/po/pl.po 2008-02-02 00:05:24 UTC (rev 983) +++ dcplusplus/trunk/win32/po/pl.po 2008-02-02 22:09:23 UTC (rev 984) @@ -7,7 +7,7 @@ msgstr "" "Project-Id-Version: win32\n" "Report-Msgid-Bugs-To: dcp...@li...\n" -"POT-Creation-Date: 2008-02-02 00:46+0100\n" +"POT-Creation-Date: 2008-02-02 21:32+0100\n" "Last-Translator: <k4...@us...>\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -22,7 +22,7 @@ "Open download page?" msgstr "Otwórz katalog pobrań" -#: win32/TransferView.cpp:570 +#: win32/TransferView.cpp:569 #, boost-format msgid "%1% (%2$0.2f)" msgstr "" @@ -58,7 +58,7 @@ msgstr[1] "Brak użytkowników" msgstr[2] "Brak użytkowników" -#: win32/TransferView.cpp:584 win32/TransferView.cpp:632 +#: win32/TransferView.cpp:583 win32/TransferView.cpp:631 #, boost-format msgid "%1%/s" msgstr "" @@ -104,7 +104,7 @@ msgid "&Connect" msgstr "Połączony" -#: win32/TransferView.cpp:201 +#: win32/TransferView.cpp:200 #, fuzzy msgid "&Disconnect" msgstr "Szybkie połączenie" @@ -134,7 +134,7 @@ msgid "&File" msgstr "Plik" -#: win32/TransferView.cpp:198 +#: win32/TransferView.cpp:197 msgid "&Force attempt" msgstr "" @@ -572,12 +572,12 @@ msgid "Connected" msgstr "Połączony" -#: win32/TransferView.cpp:641 win32/TransferView.cpp:648 +#: win32/TransferView.cpp:640 win32/TransferView.cpp:647 #, fuzzy msgid "Connecting" msgstr "Połączenie" -#: win32/TransferView.cpp:285 +#: win32/TransferView.cpp:284 #, fuzzy msgid "Connecting (forced)" msgstr "Połączony" @@ -605,7 +605,7 @@ msgid "Copy &address to clipboard" msgstr "Kopiuj magnet linka do schowka" -#: win32/TransferView.cpp:199 win32/HubFrame.cpp:1160 +#: win32/TransferView.cpp:198 win32/HubFrame.cpp:1160 #, fuzzy msgid "Copy &nick to clipboard" msgstr "Kopiuj magnet linka do schowka" @@ -787,12 +787,12 @@ msgid "Downloaded" msgstr "Pobrane" -#: win32/TransferView.cpp:719 +#: win32/TransferView.cpp:718 #, fuzzy, boost-format msgid "Downloading %1%" msgstr "Pobieram..." -#: win32/TransferView.cpp:630 +#: win32/TransferView.cpp:629 #, boost-format msgid "Downloading from %1% user" msgid_plural "Downloading from %1% users" @@ -1145,7 +1145,7 @@ msgid "IP: %1%, Port: %2%/%3%/%4%" msgstr "" -#: win32/TransferView.cpp:536 win32/TransferView.cpp:832 +#: win32/TransferView.cpp:535 win32/TransferView.cpp:831 msgid "Idle" msgstr "" @@ -1711,7 +1711,7 @@ msgid "Reliability" msgstr "Solidność" -#: win32/QueueFrame.cpp:483 win32/TransferView.cpp:660 +#: win32/QueueFrame.cpp:483 win32/TransferView.cpp:659 msgid "Remote client does not fully support TTH - cannot download" msgstr "Zdalny klient nie obsługuje w pełni TTH - nie można pobrać" @@ -2015,7 +2015,7 @@ msgid "TTH Root" msgstr "TTH Root" -#: win32/TransferView.cpp:671 +#: win32/TransferView.cpp:670 #, boost-format msgid "TTH: %1%" msgstr "" @@ -2142,7 +2142,7 @@ msgid "Upload: %1%, Download: %2%" msgstr "" -#: win32/TransferView.cpp:797 +#: win32/TransferView.cpp:796 #, fuzzy, boost-format msgid "Uploading %1%" msgstr "Wysyłane" @@ -2231,12 +2231,12 @@ msgid "Waiting Users" msgstr "Oczekujący użytkownicy" -#: win32/TransferView.cpp:626 +#: win32/TransferView.cpp:625 #, fuzzy msgid "Waiting for slot" msgstr "Oczekujący użytkownicy" -#: win32/TransferView.cpp:648 +#: win32/TransferView.cpp:647 #, fuzzy msgid "Waiting to retry" msgstr "Oczekujący użytkownicy" @@ -2261,7 +2261,7 @@ "or from Microsoft directly." msgstr "" -#: win32/TransferView.cpp:673 +#: win32/TransferView.cpp:672 #, fuzzy msgid "file list" msgstr "Menu listy plików" Modified: dcplusplus/trunk/win32/po/pt.po =================================================================== --- dcplusplus/trunk/win32/po/pt.po 2008-02-02 00:05:24 UTC (rev 983) +++ dcplusplus/trunk/win32/po/pt.po 2008-02-02 22:09:23 UTC (rev 984) @@ -7,7 +7,7 @@ msgstr "" "Project-Id-Version: win32\n" "Report-Msgid-Bugs-To: dcp...@li...\n" -"POT-Creation-Date: 2008-02-02 00:46+0100\n" +"POT-Creation-Date: 2008-02-02 21:32+0100\n" "Last-Translator: <Is...@us...>\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -21,7 +21,7 @@ "Open download page?" msgstr "Abrir pasta de downloads" -#: win32/TransferView.cpp:570 +#: win32/TransferView.cpp:569 #, boost-format msgid "%1% (%2$0.2f)" msgstr "" @@ -55,7 +55,7 @@ msgstr[0] "Sem utilizadores" msgstr[1] "Sem utilizadores" -#: win32/TransferView.cpp:584 win32/TransferView.cpp:632 +#: win32/TransferView.cpp:583 win32/TransferView.cpp:631 #, boost-format msgid "%1%/s" msgstr "" @@ -101,7 +101,7 @@ msgid "&Connect" msgstr "Ligado" -#: win32/TransferView.cpp:201 +#: win32/TransferView.cpp:200 #, fuzzy msgid "&Disconnect" msgstr "Conexão rápida" @@ -131,7 +131,7 @@ msgid "&File" msgstr "Ficheiro" -#: win32/TransferView.cpp:198 +#: win32/TransferView.cpp:197 msgid "&Force attempt" msgstr "" @@ -567,12 +567,12 @@ msgid "Connected" msgstr "Ligado" -#: win32/TransferView.cpp:641 win32/TransferView.cpp:648 +#: win32/TransferView.cpp:640 win32/TransferView.cpp:647 #, fuzzy msgid "Connecting" msgstr "Ligação" -#: win32/TransferView.cpp:285 +#: win32/TransferView.cpp:284 #, fuzzy msgid "Connecting (forced)" msgstr "Ligado" @@ -600,7 +600,7 @@ msgid "Copy &address to clipboard" msgstr "Copiar Link Magnet" -#: win32/TransferView.cpp:199 win32/HubFrame.cpp:1160 +#: win32/TransferView.cpp:198 win32/HubFrame.cpp:1160 #, fuzzy msgid "Copy &nick to clipboard" msgstr "Copiar Link Magnet" @@ -785,12 +785,12 @@ msgid "Downloaded" msgstr "Transferido" -#: win32/TransferView.cpp:719 +#: win32/TransferView.cpp:718 #, fuzzy, boost-format msgid "Downloading %1%" msgstr "Transferindo..." -#: win32/TransferView.cpp:630 +#: win32/TransferView.cpp:629 #, boost-format msgid "Downloading from %1% user" msgid_plural "Downloading from %1% users" @@ -1140,7 +1140,7 @@ msgid "IP: %1%, Port: %2%/%3%/%4%" msgstr "" -#: win32/TransferView.cpp:536 win32/TransferView.cpp:832 +#: win32/TransferView.cpp:535 win32/TransferView.cpp:831 msgid "Idle" msgstr "" @@ -1705,7 +1705,7 @@ msgid "Reliability" msgstr "Fiabilidade" -#: win32/QueueFrame.cpp:483 win32/TransferView.cpp:660 +#: win32/QueueFrame.cpp:483 win32/TransferView.cpp:659 msgid "Remote client does not fully support TTH - cannot download" msgstr "" @@ -2007,7 +2007,7 @@ msgid "TTH Root" msgstr "Origem TTH" -#: win32/TransferView.cpp:671 +#: win32/TransferView.cpp:670 #, boost-format msgid "TTH: %1%" msgstr "" @@ -2133,7 +2133,7 @@ msgid "Upload: %1%, Download: %2%" msgstr "" -#: win32/TransferView.cpp:797 +#: win32/TransferView.cpp:796 #, fuzzy, boost-format msgid "Uploading %1%" msgstr "Uploads" @@ -2222,12 +2222,12 @@ msgid "Waiting Users" msgstr "Utilizadores em Espera" -#: win32/TransferView.cpp:626 +#: win32/TransferView.cpp:625 #, fuzzy msgid "Waiting for slot" msgstr "Utilizadores em Espera" -#: win32/TransferView.cpp:648 +#: win32/TransferView.cpp:647 #, fuzzy msgid "Waiting to retry" msgstr "Utilizadores em Espera" @@ -2252,7 +2252,7 @@ "or from Microsoft directly." msgstr "" -#: win32/TransferView.cpp:673 +#: win32/TransferView.cpp:672 #, fuzzy msgid "file list" msgstr "Menu da lista" Modified: dcplusplus/trunk/win32/po/ro.po =================================================================== --- dcplusplus/trunk/win32/po/ro.po 2008-02-02 00:05:24 UTC (rev 983) +++ dcplusplus/trunk/win32/po/ro.po 2008-02-02 22:09:23 UTC (rev 984) @@ -7,7 +7,7 @@ msgstr "" "Project-Id-Version: win32\n" "Report-Msgid-Bugs-To: dcp...@li...\n" -"POT-Creation-Date: 2008-02-02 00:46+0100\n" +"POT-Creation-Date: 2008-02-02 21:32+0100\n" "Last-Translator: <mun...@us...>\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -22,7 +22,7 @@ "Open download page?" msgstr "Deschide Dosarul de Descărcare" -#: win32/TransferView.cpp:570 +#: win32/TransferView.cpp:569 #, boost-format msgid "%1% (%2$0.2f)" msgstr "" @@ -58,7 +58,7 @@ msgstr[1] "Nici un utilizator" msgstr[2] "Nici un utilizator" -#: win32/TransferView.cpp:584 win32/TransferView.cpp:632 +#: win32/TransferView.cpp:583 win32/TransferView.cpp:631 #, boost-format msgid "%1%/s" msgstr "" @@ -104,7 +104,7 @@ msgid "&Connect" msgstr "Conectat" -#: win32/TransferView.cpp:201 +#: win32/TransferView.cpp:200 #, fuzzy msgid "&Disconnect" msgstr "Conectare Rapidă" @@ -134,7 +134,7 @@ msgid "&File" msgstr "Fișier" -#: win32/TransferView.cpp:198 +#: win32/TransferView.cpp:197 msgid "&Force attempt" msgstr "" @@ -571,12 +571,12 @@ msgid "Connected" msgstr "Conectat" -#: win32/TransferView.cpp:641 win32/TransferView.cpp:648 +#: win32/TransferView.cpp:640 win32/TransferView.cpp:647 #, fuzzy msgid "Connecting" msgstr "Conectează" -#: win32/TransferView.cpp:285 +#: win32/TransferView.cpp:284 #, fuzzy msgid "Connecting (forced)" msgstr "Conectat" @@ -604,7 +604,7 @@ msgid "Copy &address to clipboard" msgstr "Copiază Legătura Magnet în Cliplanșetă" -#: win32/TransferView.cpp:199 win32/HubFrame.cpp:1160 +#: win32/TransferView.cpp:198 win32/HubFrame.cpp:1160 #, fuzzy msgid "Copy &nick to clipboard" msgstr "Copiază Legătura Magnet în Cliplanșetă" @@ -786,12 +786,12 @@ msgid "Downloaded" msgstr "Descărcat" -#: win32/TransferView.cpp:719 +#: win32/TransferView.cpp:718 #, fuzzy, boost-format msgid "Downloading %1%" msgstr "Descărcare în curs..." -#: win32/TransferView.cpp:630 +#: win32/TransferView.cpp:629 #, boost-format msgid "Downloading from %1% user" msgid_plural "Downloading from %1% users" @@ -1144,7 +1144,7 @@ msgid "IP: %1%, Port: %2%/%3%/%4%" msgstr "" -#: win32/TransferView.cpp:536 win32/TransferView.cpp:832 +#: win32/TransferView.cpp:535 win32/TransferView.cpp:831 msgid "Idle" msgstr "" @@ -1712,7 +1712,7 @@ msgid "Reliability" msgstr "Fiabilitate" -#: win32/QueueFrame.cpp:483 win32/TransferView.cpp:660 +#: win32/QueueFrame.cpp:483 win32/TransferView.cpp:659 msgid "Remote client does not fully support TTH - cannot download" msgstr "Clientul distant nu suportă complet TTH - nu se poate descărca" @@ -2017,7 +2017,7 @@ msgid "TTH Root" msgstr "Rădăcina TTH" -#: win32/TransferView.cpp:671 +#: win32/TransferView.cpp:670 #, boost-format msgid "TTH: %1%" msgstr "" @@ -2144,7 +2144,7 @@ msgid "Upload: %1%, Download: %2%" msgstr "" -#: win32/TransferView.cpp:797 +#: win32/TransferView.cpp:796 #, fuzzy, boost-format msgid "Uploading %1%" msgstr "Încărcări" @@ -2236,12 +2236,12 @@ msgid "Waiting Users" msgstr "Utilizatorii în Așteptare" -#: win32/TransferView.cpp:626 +#: win32/TransferView.cpp:625 #, fuzzy msgid "Waiting for slot" msgstr "Utilizatorii în Așteptare" -#: win32/TransferView.cpp:648 +#: win32/TransferView.cpp:647 #, fuzzy msgid "Waiting to retry" msgstr "Utilizatorii în Așteptare" @@ -2270,7 +2270,7 @@ "softului. Ar trebui să descărcați versiunea 5.80 sau mai mare de pe situl DC+" "+ sau direct de pe situl Microsoft." -#: win32/TransferView.cpp:673 +#: win32/TransferView.cpp:672 #, fuzzy msgid "file list" msgstr "Meniul Listei de Fișiere" Modified: dcplusplus/trunk/win32/po/sl.po =================================================================== --- dcplusplus/trunk/win32/po/sl.po 2008-02-02 00:05:24 UTC (rev 983) +++ dcplusplus/trunk/win32/po/sl.po 2008-02-02 22:09:23 UTC (rev 984) @@ -7,7 +7,7 @@ msgstr "" "Project-Id-Version: win32\n" "Report-Msgid-Bugs-To: dcp...@li...\n" -"POT-Creation-Date: 2008-02-02 00:46+0100\n" +"POT-Creation-Date: 2008-02-02 21:32+0100\n" "Last-Translator: <Pri...@us...>\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -22,7 +22,7 @@ "Open download page?" msgstr "Odpri Direktorij Prenosov" -#: win32/TransferView.cpp:570 +#: win32/TransferView.cpp:569 #, boost-format msgid "%1% (%2$0.2f)" msgstr "" @@ -60,7 +60,7 @@ msgstr[2] "Ni uporabnikov" msgstr[3] "Ni uporabnikov" -#: win32/TransferView.cpp:584 win32/TransferView.cpp:632 +#: win32/TransferView.cpp:583 win32/TransferView.cpp:631 #, boost-format msgid "%1%/s" msgstr "" @@ -106,7 +106,7 @@ msgid "&Connect" msgstr "Povezan" -#: win32/TransferView.cpp:201 +#: win32/TransferView.cpp:200 #, fuzzy msgid "&Disconnect" msgstr "Hitro Povezovanje" @@ -136,7 +136,7 @@ msgid "&File" msgstr "Datoteka" -#: win32/TransferView.cpp:198 +#: win32/TransferView.cpp:197 msgid "&Force attempt" msgstr "" @@ -570,12 +570,12 @@ msgid "Connected" msgstr "Povezan" -#: win32/TransferView.cpp:641 win32/TransferView.cpp:648 +#: win32/TransferView.cpp:640 win32/TransferView.cpp:647 #, fuzzy msgid "Connecting" msgstr "Povezava" -#: win32/TransferView.cpp:285 +#: win32/TransferView.cpp:284 #, fuzzy msgid "Connecting (forced)" msgstr "Povezan" @@ -603,7 +603,7 @@ msgid "Copy &address to clipboard" msgstr "Kopiraj magnetni link v odložišče" -#: win32/TransferView.cpp:199 win32/HubFrame.cpp:1160 +#: win32/TransferView.cpp:198 win32/HubFrame.cpp:1160 #, fuzzy msgid "Copy &nick to clipboard" msgstr "Kopiraj magnetni link v odložišče" @@ -785,12 +785,12 @@ msgid "Downloaded" msgstr "Prenešeno" -#: win32/TransferView.cpp:719 +#: win32/TransferView.cpp:718 #, fuzzy, boost-format msgid "Downloading %1%" msgstr "Prenašanje..." -#: win32/TransferView.cpp:630 +#: win32/TransferView.cpp:629 #, boost-format msgid "Downloading from %1% user" msgid_plural "Downloading from %1% users" @@ -1142,7 +1142,7 @@ msgid "IP: %1%, Port: %2%/%3%/%4%" msgstr "" -#: win32/TransferView.cpp:536 win32/TransferView.cpp:832 +#: win32/TransferView.cpp:535 win32/TransferView.cpp:831 msgid "Idle" msgstr "" @@ -1706,7 +1706,7 @@ msgid "Reliability" msgstr "Zanesljivost" -#: win32/QueueFrame.cpp:483 win32/TransferView.cpp:660 +#: win32/QueueFrame.cpp:483 win32/TransferView.cpp:659 msgid "Remote client does not fully support TTH - cannot download" msgstr "Oddaljeni klient ne podpira TTH - ni možen prenos datotek" @@ -2012,7 +2012,7 @@ msgid "TTH Root" msgstr "TTH Izvor" -#: win32/TransferView.cpp:671 +#: win32/TransferView.cpp:670 #, boost-format msgid "TTH: %1%" msgstr "" @@ -2137,7 +2137,7 @@ msgid "Upload: %1%, Download: %2%" msgstr "" -#: win32/TransferView.cpp:797 +#: win32/TransferView.cpp:796 #, fuzzy, boost-format msgid "Uploading %1%" msgstr "Prenosi gor" @@ -2228,12 +2228,12 @@ msgid "Waiting Users" msgstr "Čakam Uporabnike" -#: win32/TransferView.cpp:626 +#: win32/TransferView.cpp:625 #, fuzzy msgid "Waiting for slot" msgstr "Čakam Uporabnike" -#: win32/TransferView.cpp:648 +#: win32/TransferView.cpp:647 #, fuzzy msgid "Waiting to retry" msgstr "Čakam Uporabnike" @@ -2258,7 +2258,7 @@ "or from Microsoft directly." msgstr "" -#: win32/TransferView.cpp:673 +#: win32/TransferView.cpp:672 #, fuzzy msgid "file list" msgstr "Meni Seznama Datotek" Modified: dcplusplus/trunk/win32/po/sq.po =================================================================== --- dcplusplus/trunk/win32/po/sq.po 2008-02-02 00:05:24 UTC (rev 983) +++ dcplusplus/trunk/win32/po/sq.po 2008-02-02 22:09:23 UTC (rev 984) @@ -7,7 +7,7 @@ msgstr "" "Project-Id-Version: win32\n" "Report-Msgid-Bugs-To: dcp...@li...\n" -"POT-Creation-Date: 2008-02-02 00:46+0100\n" +"POT-Creation-Date: 2008-02-02 21:32+0100\n" "Last-Translator: <rr...@us...>\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -21,7 +21,7 @@ "Open download page?" msgstr "Hap dosjen e shkarkimeve" -#: win32/TransferView.cpp:570 +#: win32/TransferView.cpp:569 #, boost-format msgid "%1% (%2$0.2f)" msgstr "" @@ -55,7 +55,7 @@ msgstr[0] "S´ka përdorues" msgstr[1] "S´ka përdorues" -#: win32/TransferView.cpp:584 win32/TransferView.cpp:632 +#: win32/TransferView.cpp:583 win32/TransferView.cpp:631 #, boost-format msgid "%1%/s" msgstr "" @@ -101,7 +101,7 @@ msgid "&Connect" msgstr "Lidhur" -#: win32/TransferView.cpp:201 +#: win32/TransferView.cpp:200 #, fuzzy msgid "&Disconnect" msgstr "Lidhje e shpejt" @@ -131,7 +131,7 @@ msgid "&File" msgstr "Fil" -#: win32/TransferView.cpp:198 +#: win32/TransferView.cpp:197 msgid "&Force attempt" msgstr "" @@ -570,12 +570,12 @@ msgid "Connected" msgstr "Lidhur" -#: win32/TransferView.cpp:641 win32/TransferView.cpp:648 +#: win32/TransferView.cpp:640 win32/TransferView.cpp:647 #, fuzzy msgid "Connecting" msgstr "Lidhjaa" -#: win32/TransferView.cpp:285 +#: win32/TransferView.cpp:284 #, fuzzy msgid "Connecting (forced)" msgstr "Lidhur" @@ -603,7 +603,7 @@ msgid "Copy &address to clipboard" msgstr "Kopjo nyjen magnetike në clipboard" -#: win32/TransferView.cpp:199 win32/HubFrame.cpp:1160 +#: win32/TransferView.cpp:198 win32/HubFrame.cpp:1160 #, fuzzy msgid "Copy &nick to clipboard" msgstr "Kopjo nyjen magnetike në clipboard" @@ -790,12 +790,12 @@ msgid "Downloaded" msgstr "Shkarkuar" -#: win32/TransferView.cpp:719 +#: win32/TransferView.cpp:718 #, fuzzy, boost-format msgid "Downloading %1%" msgstr "Shkarkohet..." -#: win32/TransferView.cpp:630 +#: win32/TransferView.cpp:629 #, boost-format msgid "Downloading from %1% user" msgid_plural "Downloading from %1% users" @@ -1145,7 +1145,7 @@ msgid "IP: %1%, Port: %2%/%3%/%4%" msgstr "" -#: win32/TransferView.cpp:536 win32/TransferView.cpp:832 +#: win32/TransferView.cpp:535 win32/TransferView.cpp:831 msgid "Idle" msgstr "" @@ -1717,7 +1717,7 @@ msgid "Reliability" msgstr "Besueshmëria" -#: win32/QueueFrame.cpp:483 win32/TransferView.cpp:660 +#: win32/QueueFrame.cpp:483 win32/TransferView.cpp:659 msgid "Remote client does not fully support TTH - cannot download" msgstr "" @@ -2020,7 +2020,7 @@ msgid "TTH Root" msgstr "TTH-kontroll shuma" -#: win32/TransferView.cpp:671 +#: win32/TransferView.cpp:670 #, boost-format msgid "TTH: %1%" msgstr "" @@ -2147,7 +2147,7 @@ msgid "Upload: %1%, Download: %2%" msgstr "" -#: win32/TransferView.cpp:797 +#: win32/TransferView.cpp:796 #, fuzzy, boost-format msgid "Uploading %1%" msgstr "Ngarkimet" @@ -2239,12 +2239,12 @@ msgid "Waiting Users" msgstr "Në pritje të përdoruesve" -#: win32/TransferView.cpp:626 +#: win32/TransferView.cpp:625 #, fuzzy msgid "Waiting for slot" msgstr "Në pritje të përdoruesve" -#: win32/TransferView.cpp:648 +#: win32/TransferView.cpp:647 #, fuzzy msgid "Waiting to retry" msgstr "Në pritje të përdoruesve" @@ -2269,7 +2269,7 @@ "or from Microsoft directly." msgstr "" -#: win32/TransferView.cpp:673 +#: win32/TransferView.cpp:672 #, fuzzy msgid "file list" msgstr "Menyja e listës së filit" This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <arn...@us...> - 2008-02-02 00:05:30
|
Revision: 983 http://dcplusplus.svn.sourceforge.net/dcplusplus/?rev=983&view=rev Author: arnetheduck Date: 2008-02-01 16:05:24 -0800 (Fri, 01 Feb 2008) Log Message: ----------- move downloadsframe to transferview Modified Paths: -------------- dcplusplus/trunk/dcpp/SettingsManager.cpp dcplusplus/trunk/dcpp/SettingsManager.h dcplusplus/trunk/dcpp/po/da.po dcplusplus/trunk/dcpp/po/de.po dcplusplus/trunk/dcpp/po/fr.po dcplusplus/trunk/dcpp/po/id.po dcplusplus/trunk/dcpp/po/it.po dcplusplus/trunk/dcpp/po/km.po dcplusplus/trunk/dcpp/po/ko.po dcplusplus/trunk/dcpp/po/pl.po dcplusplus/trunk/dcpp/po/pt.po dcplusplus/trunk/dcpp/po/ro.po dcplusplus/trunk/dcpp/po/sl.po dcplusplus/trunk/dcpp/po/sq.po dcplusplus/trunk/dcpp/po/sv.po dcplusplus/trunk/smartwin/include/smartwin/WidgetCreator.h dcplusplus/trunk/smartwin/include/smartwin/WidgetFactory.h dcplusplus/trunk/smartwin/include/smartwin/widgets/WidgetTabSheet.h dcplusplus/trunk/smartwin/include/smartwin/widgets/WidgetWindow.h dcplusplus/trunk/smartwin/source/widgets/WidgetTabSheet.cpp dcplusplus/trunk/smartwin/source/widgets/WidgetTabView.cpp dcplusplus/trunk/win32/MainWindow.cpp dcplusplus/trunk/win32/MainWindowFactory.cpp dcplusplus/trunk/win32/TransferView.cpp dcplusplus/trunk/win32/TransferView.h dcplusplus/trunk/win32/WindowsPage.cpp dcplusplus/trunk/win32/po/da.po dcplusplus/trunk/win32/po/fr.po dcplusplus/trunk/win32/po/id.po dcplusplus/trunk/win32/po/it.po dcplusplus/trunk/win32/po/km.po dcplusplus/trunk/win32/po/ko.po dcplusplus/trunk/win32/po/pl.po dcplusplus/trunk/win32/po/pt.po dcplusplus/trunk/win32/po/ro.po dcplusplus/trunk/win32/po/sl.po dcplusplus/trunk/win32/po/sq.po Removed Paths: ------------- dcplusplus/trunk/win32/DownloadsFrame.cpp dcplusplus/trunk/win32/DownloadsFrame.h Modified: dcplusplus/trunk/dcpp/SettingsManager.cpp =================================================================== --- dcplusplus/trunk/dcpp/SettingsManager.cpp 2008-01-30 21:19:30 UTC (rev 982) +++ dcplusplus/trunk/dcpp/SettingsManager.cpp 2008-02-02 00:05:24 UTC (rev 983) @@ -35,7 +35,7 @@ { // Strings "Nick", "UploadSpeed", "Description", "DownloadDirectory", "EMail", "ExternalIp", - "Font", "MainFrameOrder", "MainFrameWidths", "HubFrameOrder", "HubFrameWidths", + "Font", "ConnectionsOrder", "ConnectionsWidths", "HubFrameOrder", "HubFrameWidths", "SearchFrameOrder", "SearchFrameWidths", "FavHubsFrameOrder", "FavHubsFrameWidths", "HublistServers", "QueueFrameOrder", "QueueFrameWidths", "PublicHubsFrameOrder", "PublicHubsFrameWidths", "UsersFrameOrder", "UsersFrameWidths", "HttpProxy", "LogDirectory", "LogFormatPostDownload", @@ -46,7 +46,7 @@ "LogFilePrivateChat", "LogFileStatus", "LogFileUpload", "LogFileDownload", "LogFileSystem", "LogFormatSystem", "LogFormatStatus", "DirectoryListingFrameOrder", "DirectoryListingFrameWidths", "TLSPrivateKeyFile", "TLSCertificateFile", "TLSTrustedCertificatesPath", "BeepFile", - "Language", "DownloadsFrameOrder", "DownloadsFrameWidth", + "Language", "DownloadsOrder", "DownloadsWidth", "SENTRY", // Ints "IncomingConnections", "InPort", "Slots", "AutoFollow", "ClearSearch", @@ -77,7 +77,7 @@ "UseTLS", "AutoSearchLimit", "AltSortOrder", "AutoKickNoFavs", "PromptPassword", "SpyFrameIgnoreTthSearches", "DontDlAlreadyQueued", "MaxCommandLength", "AllowUntrustedHubs", "AllowUntrustedClients", "TLSPort", "FastHash", "SortFavUsersFirst", "ShowShellMenu", "MinSegmentSize", "FollowLinks", - "SendBloom", "OpenDownloads", + "SendBloom", "SENTRY", // Int64 "TotalUpload", "TotalDownload", @@ -273,7 +273,6 @@ setDefault(MIN_SEGMENT_SIZE, 1024); setDefault(FOLLOW_LINKS, false); setDefault(SEND_BLOOM, true); - setDefault(OPEN_DOWNLOADS, true); #ifdef _WIN32 setDefault(MAIN_WINDOW_STATE, SW_SHOWNORMAL); Modified: dcplusplus/trunk/dcpp/SettingsManager.h =================================================================== --- dcplusplus/trunk/dcpp/SettingsManager.h 2008-01-30 21:19:30 UTC (rev 982) +++ dcplusplus/trunk/dcpp/SettingsManager.h 2008-02-02 00:05:24 UTC (rev 983) @@ -47,7 +47,7 @@ enum StrSetting { STR_FIRST, NICK = STR_FIRST, UPLOAD_SPEED, DESCRIPTION, DOWNLOAD_DIRECTORY, EMAIL, EXTERNAL_IP, - TEXT_FONT, MAINFRAME_ORDER, MAINFRAME_WIDTHS, HUBFRAME_ORDER, HUBFRAME_WIDTHS, + TEXT_FONT, CONNECTIONS_ORDER, CONNECTIONS_WIDTHS, HUBFRAME_ORDER, HUBFRAME_WIDTHS, SEARCHFRAME_ORDER, SEARCHFRAME_WIDTHS, FAVHUBSFRAME_ORDER, FAVHUBSFRAME_WIDTHS, HUBLIST_SERVERS, QUEUEFRAME_ORDER, QUEUEFRAME_WIDTHS, PUBLICHUBSFRAME_ORDER, PUBLICHUBSFRAME_WIDTHS, USERSFRAME_ORDER, USERSFRAME_WIDTHS, HTTP_PROXY, LOG_DIRECTORY, LOG_FORMAT_POST_DOWNLOAD, @@ -58,7 +58,7 @@ LOG_FILE_PRIVATE_CHAT, LOG_FILE_STATUS, LOG_FILE_UPLOAD, LOG_FILE_DOWNLOAD, LOG_FILE_SYSTEM, LOG_FORMAT_SYSTEM, LOG_FORMAT_STATUS, DIRECTORLISTINGFRAME_ORDER, DIRECTORLISTINGFRAME_WIDTHS, TLS_PRIVATE_KEY_FILE, TLS_CERTIFICATE_FILE, TLS_TRUSTED_CERTIFICATES_PATH, BEEPFILE, - LANGUAGE, DOWNLOADSFRAME_ORDER, DOWNLOADSFRAME_WIDTHS, + LANGUAGE, DOWNLOADS_ORDER, DOWNLOADS_WIDTHS, STR_LAST }; enum IntSetting { INT_FIRST = STR_LAST + 1, @@ -90,7 +90,7 @@ USE_TLS, AUTO_SEARCH_LIMIT, ALT_SORT_ORDER, AUTO_KICK_NO_FAVS, PROMPT_PASSWORD, SPY_FRAME_IGNORE_TTH_SEARCHES, DONT_DL_ALREADY_QUEUED, MAX_COMMAND_LENGTH, ALLOW_UNTRUSTED_HUBS, ALLOW_UNTRUSTED_CLIENTS, TLS_PORT, FAST_HASH, SORT_FAVUSERS_FIRST, SHOW_SHELL_MENU, MIN_SEGMENT_SIZE, FOLLOW_LINKS, - SEND_BLOOM, OPEN_DOWNLOADS, + SEND_BLOOM, INT_LAST }; enum Int64Setting { INT64_FIRST = INT_LAST + 1, Modified: dcplusplus/trunk/dcpp/po/da.po =================================================================== --- dcplusplus/trunk/dcpp/po/da.po 2008-01-30 21:19:30 UTC (rev 982) +++ dcplusplus/trunk/dcpp/po/da.po 2008-02-02 00:05:24 UTC (rev 983) @@ -1,4 +1,3 @@ - # Danish translations for the DC++ package. # Copyright (C) 2008 The translators # This file is distributed under the same license as the DC++ package. @@ -8,135 +7,382 @@ msgstr "" "Project-Id-Version: dcpp\n" "Report-Msgid-Bugs-To: dcp...@li...\n" +"POT-Creation-Date: 2008-01-31 20:32+0100\n" "Last-Translator: <g2...@us...>\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -msgid "Socks server authentication failed (bad login / password?)" -msgstr "Socks-server brugerverificering sl� fejl (forkert brugernavn/kodeord)" +#: dcpp/Util.cpp:381 +#, c-format, boost-format +msgid "%'lld B" +msgstr "" -msgid "The socks server doesn't support login / password authentication" -msgstr "Socks-serveren underst� ikke bruger/kodeord-verificering" +#: dcpp/Util.cpp:343 +#, c-format, boost-format +msgid "%.02f GiB" +msgstr "" -msgid "Invalid size" -msgstr "Ugyldig st�se..." +#: dcpp/Util.cpp:339 +#, c-format, boost-format +msgid "%.02f KiB" +msgstr "" -msgid "The temporary download directory cannot be shared" -msgstr "Den midlertidlige download mappe kan ikke blive delt..!" +#: dcpp/Util.cpp:341 +#, c-format, boost-format +msgid "%.02f MiB" +msgstr "" -msgid "Maximum command length exceeded" -msgstr "Maxsimal l�de for kommando overskredet" +#: dcpp/Util.cpp:347 +#, c-format, boost-format +msgid "%.02f PiB" +msgstr "" -msgid "More data was sent than was expected" -msgstr "For meget data..." +#: dcpp/Util.cpp:345 +#, c-format, boost-format +msgid "%.02f TiB" +msgstr "" -msgid "You're trying to download from yourself!" -msgstr "Du pr�at downloade fra dig selv!!!" +#: dcpp/NmdcHub.cpp:273 +#, boost-format +msgid "%1% (Nick unknown)" +msgstr "" -msgid "Offline" -msgstr "Offline" +#: dcpp/HashManager.cpp:767 +#, boost-format +msgid "" +"%1% not shared; calculated CRC32 does not match the one found in SFV file." +msgstr "" -msgid "Failed to load private key" -msgstr "Fejlede ved indl�ing af privat n�" +#: dcpp/DownloadManager.cpp:143 +#, boost-format +msgid "%1% renamed to %2%" +msgstr "" -msgid "Not listening for connections - please restart DC++" -msgstr "Starter ikke - Genstart venligst DC++" +#: dcpp/DownloadManager.cpp:547 +#, fuzzy, boost-format +msgid "%1%: File not available" +msgstr "Fil er ikke tilg�elig..!" -msgid "Hash database" -msgstr "Hash databasen" +#: dcpp/Util.cpp:337 +#, c-format, boost-format +msgid "%d B" +msgstr "" +#: dcpp/Util.cpp:377 +#, c-format, boost-format +msgid "%s B" +msgstr "" + +#: dcpp/QueueManager.cpp:503 +msgid "A file of equal or larger size already exists at the target location" +msgstr "En fil af samme st�se eller st�findes allerede p�en angivne placering" + +#: dcpp/QueueManager.cpp:446 +msgid "A file with a different size already exists in the queue" +msgstr "Filer med forskellige st�ser" + +#: dcpp/QueueManager.cpp:449 +msgid "A file with different tth root already exists in the queue" +msgstr "Filer med forskellige st�ser (TTH)" + +#: dcpp/QueueManager.cpp:413 +msgid "A file with the same hash already exists in your share" +msgstr "En fil med den samme hash eksisterer i din deling!" + +#: dcpp/ConnectionManager.cpp:181 msgid "All download slots taken" msgstr "Alle downloadslots er i brug" -msgid "Redirect user(s)" -msgstr "Viderestil bruger(e)" +#: dcpp/DownloadManager.cpp:421 +msgid "CRC32 inconsistency (SFV-Check)" +msgstr "CRC32-Inkonsistens (SFV-kontrol)" -msgid "Target filename too long" -msgstr "Filnavnet er for langt...!" +#: dcpp/DownloadManager.cpp:419 +#, fuzzy, boost-format +msgid "CRC32 inconsistency (SFV-Check) (File: %1%)" +msgstr "CRC32-Inkonsistens (SFV-kontrol)" +#: dcpp/ConnectionManager.cpp:385 +msgid "Certificate not trusted, unable to connect" +msgstr "Certifikatet er ikke gyldigt, kunne ikke Oprette forbindelse" + +#: dcpp/Socket.cpp:154 dcpp/ConnectionManager.cpp:187 +#: dcpp/BufferedSocket.cpp:154 msgid "Connection timeout" msgstr "Forbindelsen fik 'Timeout' (den anden computer svarer ikke)" -msgid "The socks server requires authentication" -msgstr "Socks-serveren kr�r brugernavn/kodeord" +#: dcpp/DownloadManager.cpp:284 +#, boost-format +msgid "Could not open target file: %1%" +msgstr "" -msgid "A file with a different size already exists in the queue" -msgstr "Filer med forskellige st�ser" +#: dcpp/ShareManager.cpp:418 +msgid "Directory already shared" +msgstr "Mappen er allerede delt!" -msgid "Error during decompression" -msgstr "Fejl under dekomprimeringen" +#: dcpp/BufferedSocket.cpp:409 dcpp/BufferedSocket.cpp:427 +msgid "Disconnected" +msgstr "Forbindelsen er afbrudt!!!" -msgid "CRC32 inconsistency (SFV-Check)" -msgstr "CRC32-Inkonsistens (SFV-kontrol)" +#: dcpp/UploadManager.cpp:450 +#, boost-format +msgid "Disconnected user leaving the hub: %1%" +msgstr "" -msgid "A file with different tth root already exists in the queue" -msgstr "Filer med forskellige st�ser (TTH)" +#: dcpp/DCPlusPlus.cpp:103 +msgid "Download Queue" +msgstr "" -msgid "TLS disabled, no certificate file set" -msgstr "TLS deaktivert, ingen certifikatfil angivet" +#: dcpp/ShareManager.cpp:745 +#, boost-format +msgid "" +"Duplicate file will not be shared: %1%%2% (Size: %3% B) Dupe matched " +"against: %4%%5%" +msgstr "" -msgid "No slots available" -msgstr "Ingen ledige slots" +#: dcpp/QueueManager.cpp:516 dcpp/QueueManager.cpp:520 +#, boost-format +msgid "Duplicate source: %1%" +msgstr "" +#: dcpp/HashManager.cpp:456 +#, fuzzy, boost-format +msgid "Error creating hash data file: %1%" +msgstr "Kan ikke l� denne TTH-fil" + +#: dcpp/ZUtils.cpp:33 dcpp/ZUtils.cpp:54 dcpp/ZUtils.cpp:76 dcpp/ZUtils.cpp:86 +#: dcpp/BZUtils.cpp:31 dcpp/BZUtils.cpp:52 dcpp/BZUtils.cpp:60 msgid "Error during compression" msgstr "Fejl under komprimering" -msgid "Disconnected" -msgstr "Forbindelsen er afbrudt!!!" +#: dcpp/ZUtils.cpp:100 dcpp/ZUtils.cpp:123 dcpp/BZUtils.cpp:72 +#: dcpp/BZUtils.cpp:94 dcpp/BZUtils.cpp:97 dcpp/CryptoManager.cpp:344 +#: dcpp/CryptoManager.cpp:363 dcpp/CryptoManager.cpp:377 +msgid "Error during decompression" +msgstr "Fejl under dekomprimeringen" -msgid "Hash database rebuilt" -msgstr "Hash databasen er genopbygget" +#: dcpp/HashManager.cpp:772 +#, boost-format +msgid "Error hashing %1%: %2%" +msgstr "" -msgid "The socks server failed establish a connection" -msgstr "Socks-serveren kunne ikke oprette en forbindelse" +#: dcpp/HashManager.cpp:118 dcpp/HashManager.cpp:333 +#, boost-format +msgid "Error saving hash data: %1%" +msgstr "" +#: dcpp/CryptoManager.cpp:228 dcpp/CryptoManager.cpp:232 +#: dcpp/CryptoManager.cpp:237 dcpp/CryptoManager.cpp:241 +msgid "Failed to load certificate file" +msgstr "Fejlede ved indl�ing af Certifikat!" + +#: dcpp/CryptoManager.cpp:246 dcpp/CryptoManager.cpp:250 +#: dcpp/CryptoManager.cpp:255 dcpp/CryptoManager.cpp:259 +msgid "Failed to load private key" +msgstr "Fejlede ved indl�ing af privat n�" + +#: dcpp/Socket.cpp:408 +msgid "" +"Failed to set up the socks server for UDP relay (check socks address and " +"port)" +msgstr "" + +#: dcpp/ShareManager.cpp:780 +#, fuzzy, boost-format +msgid "File list refresh failed: %1%" +msgstr "Fillisten er opdater�.." + +#: dcpp/ShareManager.cpp:824 +msgid "File list refresh finished" +msgstr "Fillisten er opdater�.." + +#: dcpp/ShareManager.cpp:760 +msgid "" +"File list refresh in progress, please wait for it to finish before trying to " +"refresh again" +msgstr "" + +#: dcpp/ShareManager.cpp:802 msgid "File list refresh initiated" msgstr "Fillisten opdatering er sat i gang..." -msgid "Virtual directory name already exists" -msgstr "Virtuel mappe navn eksister allerede..." +#: dcpp/DirectoryListing.cpp:102 +msgid "File not available" +msgstr "Fil er ikke tilg�elig..!" +#: dcpp/HashManager.cpp:89 +#, boost-format +msgid "Finished hashing: %1%" +msgstr "" + +#: dcpp/HashManager.cpp:87 +#, boost-format +msgid "Finished hashing: %1% (%2%/s)" +msgstr "" + +#: dcpp/DownloadManager.cpp:353 msgid "Full tree does not match TTH root" msgstr "Downloaded TTH tr�atcher ikke TTH roden" -msgid "Shared Files" -msgstr "Delte filer" +#: dcpp/CryptoManager.cpp:221 +msgid "Generated new TLS certificate" +msgstr "Skab TLS certifikat" +#: dcpp/DCPlusPlus.cpp:97 +msgid "Hash database" +msgstr "Hash databasen" + +#: dcpp/HashManager.cpp:677 +msgid "Hash database rebuilt" +msgstr "Hash databasen er genopbygget" + +#: dcpp/HashManager.cpp:73 dcpp/HashManager.cpp:277 +#, boost-format +msgid "Hashing failed: %1%" +msgstr "" + +#: dcpp/DownloadManager.cpp:264 dcpp/DownloadManager.cpp:269 +msgid "Invalid size" +msgstr "Ugyldig st�se..." + +#: dcpp/QueueManager.cpp:486 dcpp/QueueManager.cpp:494 +msgid "" +"Invalid target file (missing directory, check default download directory " +"setting)" +msgstr "" + +#: dcpp/FavoriteManager.cpp:438 +msgid "Kick user(s)" +msgstr "Spark bruger(e)" + +#: dcpp/ConnectionManager.cpp:239 +#, boost-format +msgid "Listening socket failed (you need to restart DC++): %1%" +msgstr "" + +#: dcpp/BufferedSocket.cpp:263 +msgid "Maximum command length exceeded" +msgstr "Maxsimal l�de for kommando overskredet" + +#: dcpp/DownloadManager.cpp:323 +msgid "More data was sent than was expected" +msgstr "For meget data..." + +#: dcpp/ShareManager.cpp:403 msgid "No directory specified" msgstr "Ingen mappe defineret..!" -msgid "Unable to read hash data file" -msgstr "Kan ikke l� denne TTH-fil" +#: dcpp/DownloadManager.cpp:462 +msgid "No slots available" +msgstr "Ingen ledige slots" -msgid "A file of equal or larger size already exists at the target location" -msgstr "En fil af samme st�se eller st�findes allerede p�en angivne placering" +#: dcpp/AdcHub.cpp:554 +msgid "Not listening for connections - please restart DC++" +msgstr "Starter ikke - Genstart venligst DC++" +#: dcpp/Transfer.cpp:63 dcpp/Transfer.cpp:67 dcpp/ClientManager.cpp:115 +#: dcpp/SearchManager.cpp:267 dcpp/SearchManager.cpp:329 +#: dcpp/SearchManager.cpp:331 +msgid "Offline" +msgstr "Offline" + +#: dcpp/FavoriteManager.cpp:442 +msgid "Redirect user(s)" +msgstr "Viderestil bruger(e)" + +#: dcpp/ShareManager.cpp:421 +msgid "Remove all subdirectories before adding this one" +msgstr "" + +#: dcpp/DCPlusPlus.cpp:100 +msgid "Shared Files" +msgstr "Delte filer" + +#: dcpp/Socket.cpp:269 dcpp/Socket.cpp:273 +msgid "Socks server authentication failed (bad login / password?)" +msgstr "Socks-server brugerverificering sl� fejl (forkert brugernavn/kodeord)" + +#: dcpp/CryptoManager.cpp:223 +#, fuzzy, boost-format +msgid "TLS disabled, failed to generate certificate: %1%" +msgstr "TLS deaktivert, ingen certifikatfil angivet" + +#: dcpp/CryptoManager.cpp:213 +msgid "TLS disabled, no certificate file set" +msgstr "TLS deaktivert, ingen certifikatfil angivet" + +#: dcpp/QueueManager.cpp:481 dcpp/QueueManager.cpp:490 +msgid "Target filename too long" +msgstr "Filnavnet er for langt...!" + +#: dcpp/QueueManager.cpp:769 +msgid "Target removed" +msgstr "" + +#: dcpp/Socket.cpp:255 +msgid "The socks server doesn't support login / password authentication" +msgstr "Socks-serveren underst� ikke bruger/kodeord-verificering" + +#: dcpp/Socket.cpp:162 dcpp/Socket.cpp:173 dcpp/Socket.cpp:206 +#: dcpp/Socket.cpp:210 dcpp/Socket.cpp:237 dcpp/Socket.cpp:252 +msgid "The socks server failed establish a connection" +msgstr "Socks-serveren kunne ikke oprette en forbindelse" + +#: dcpp/Socket.cpp:241 +msgid "The socks server requires authentication" +msgstr "Socks-serveren kr�r brugernavn/kodeord" + +#: dcpp/ShareManager.cpp:407 +msgid "The temporary download directory cannot be shared" +msgstr "Den midlertidlige download mappe kan ikke blive delt..!" + +#: dcpp/QueueManager.cpp:436 msgid "This file is already queued" msgstr "Filen finnes allerede i downloadk�!" -msgid "Kick user(s)" -msgstr "Spark bruger(e)" +#: dcpp/Thread.cpp:34 dcpp/Thread.cpp:42 +#, fuzzy +msgid "Unable to create thread" +msgstr "Kan ikke l� denne TTH-fil" -msgid "File not available" -msgstr "Fil er ikke tilg�elig..!" +#: dcpp/QueueManager.cpp:957 +#, boost-format +msgid "Unable to open filelist: %1%" +msgstr "" -msgid "Directory already shared" -msgstr "Mappen er allerede delt!" +#: dcpp/HashManager.cpp:131 +msgid "Unable to read hash data file" +msgstr "Kan ikke l� denne TTH-fil" -msgid "Certificate not trusted, unable to connect" -msgstr "Certifikatet er ikke gyldigt, kunne ikke Oprette forbindelse" +#: dcpp/DownloadManager.cpp:145 +#, boost-format +msgid "Unable to rename %1%: %2%" +msgstr "" -msgid "A file with the same hash already exists in your share" -msgstr "En fil med den samme hash eksisterer i din deling!" +#: dcpp/UploadManager.cpp:149 +#, boost-format +msgid "Unable to send file %1%: %2%" +msgstr "" -msgid "Generated new TLS certificate" -msgstr "Skab TLS certifikat" +#: dcpp/Socket.cpp:54 +#, c-format, boost-format +msgid "Unknown error: 0x%1$x" +msgstr "" -msgid "Failed to load certificate file" -msgstr "Fejlede ved indl�ing af Certifikat!" +#: dcpp/ShareManager.cpp:426 dcpp/ShareManager.cpp:468 +msgid "Virtual directory name already exists" +msgstr "Virtuel mappe navn eksister allerede..." -msgid "File list refresh finished" -msgstr "Fillisten er opdater�.." +#: dcpp/QueueManager.cpp:383 dcpp/QueueManager.cpp:407 +msgid "You're trying to download from yourself!" +msgstr "Du pr�at downloade fra dig selv!!!" +#: dcpp/SettingsManager.cpp:156 +msgid "downloaded from" +msgstr "" + +#: dcpp/SettingsManager.cpp:157 +msgid "uploaded to" +msgstr "" Modified: dcplusplus/trunk/dcpp/po/de.po =================================================================== --- dcplusplus/trunk/dcpp/po/de.po 2008-01-30 21:19:30 UTC (rev 982) +++ dcplusplus/trunk/dcpp/po/de.po 2008-02-02 00:05:24 UTC (rev 983) @@ -7,7 +7,7 @@ msgstr "" "Project-Id-Version: dcplusplus\n" "Report-Msgid-Bugs-To: dcp...@li...\n" -"POT-Creation-Date: 2008-01-23 22:20+0100\n" +"POT-Creation-Date: 2008-01-31 20:32+0100\n" "PO-Revision-Date: 2008-01-24 07:24+0000\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Language-Team: German <de...@li...>\n" @@ -116,7 +116,7 @@ msgid "Certificate not trusted, unable to connect" msgstr "Zertifikat nicht vertrauenswürdig, Verbindung nicht möglich" -#: dcpp/Socket.cpp:155 dcpp/ConnectionManager.cpp:187 +#: dcpp/Socket.cpp:154 dcpp/ConnectionManager.cpp:187 #: dcpp/BufferedSocket.cpp:154 msgid "Connection timeout" msgstr "Zeitüberschreitung der Verbindung" @@ -193,7 +193,7 @@ msgid "Failed to load private key" msgstr "Laden des privaten Schlüssels fehlgeschlagen" -#: dcpp/Socket.cpp:409 +#: dcpp/Socket.cpp:408 msgid "" "Failed to set up the socks server for UDP relay (check socks address and " "port)" @@ -316,7 +316,7 @@ msgid "Shared Files" msgstr "Freigegebene Dateien" -#: dcpp/Socket.cpp:270 dcpp/Socket.cpp:274 +#: dcpp/Socket.cpp:269 dcpp/Socket.cpp:273 msgid "Socks server authentication failed (bad login / password?)" msgstr "" "Socks Server Authentifizierung fehlgeschlagen (Login / Passwort falsch?)" @@ -338,16 +338,16 @@ msgid "Target removed" msgstr "Ziel entfernt" -#: dcpp/Socket.cpp:256 +#: dcpp/Socket.cpp:255 msgid "The socks server doesn't support login / password authentication" msgstr "Socks Server unterstützt keine Authentifizierung mit Login / Passwort" -#: dcpp/Socket.cpp:163 dcpp/Socket.cpp:174 dcpp/Socket.cpp:207 -#: dcpp/Socket.cpp:211 dcpp/Socket.cpp:238 dcpp/Socket.cpp:253 +#: dcpp/Socket.cpp:162 dcpp/Socket.cpp:173 dcpp/Socket.cpp:206 +#: dcpp/Socket.cpp:210 dcpp/Socket.cpp:237 dcpp/Socket.cpp:252 msgid "The socks server failed establish a connection" msgstr "Socks Server konnte keine Verbindung aufbauen" -#: dcpp/Socket.cpp:242 +#: dcpp/Socket.cpp:241 msgid "The socks server requires authentication" msgstr "Socks Server benötigt Authentifizierung" @@ -382,9 +382,9 @@ msgid "Unable to send file %1%: %2%" msgstr "Datei %1% kann nicht gesendet werden: %2%" -#: dcpp/Socket.cpp:55 -#, boost-format -msgid "Unknown error: 0x%1%" +#: dcpp/Socket.cpp:54 +#, fuzzy, c-format, boost-format +msgid "Unknown error: 0x%1$x" msgstr "Unbekannter Fehler: 0x%1%" #: dcpp/ShareManager.cpp:426 dcpp/ShareManager.cpp:468 Modified: dcplusplus/trunk/dcpp/po/fr.po =================================================================== --- dcplusplus/trunk/dcpp/po/fr.po 2008-01-30 21:19:30 UTC (rev 982) +++ dcplusplus/trunk/dcpp/po/fr.po 2008-02-02 00:05:24 UTC (rev 983) @@ -1,4 +1,3 @@ - # French translations for the DC++ package. # Copyright (C) 2008 The translators # This file is distributed under the same license as the DC++ package. @@ -8,138 +7,387 @@ msgstr "" "Project-Id-Version: dcpp\n" "Report-Msgid-Bugs-To: dcp...@li...\n" +"POT-Creation-Date: 2008-01-31 20:32+0100\n" "Last-Translator: <sp...@us...>\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n" -msgid "Socks server authentication failed (bad login / password?)" -msgstr "Echec de l'authentification serveur Socks (mauvais login / mot-de-passe?)" +#: dcpp/Util.cpp:381 +#, c-format, boost-format +msgid "%'lld B" +msgstr "" -msgid "The socks server doesn't support login / password authentication" -msgstr "Le serveur Socks server ne supporte pas l'autentifiaction login / mot-de-passe" +#: dcpp/Util.cpp:343 +#, c-format, boost-format +msgid "%.02f GiB" +msgstr "" -msgid "The temporary download directory cannot be shared" -msgstr "Le répertoire des temporaires ne peut être partagé" +#: dcpp/Util.cpp:339 +#, c-format, boost-format +msgid "%.02f KiB" +msgstr "" -msgid "Maximum command length exceeded" -msgstr "Dépassement de la longueur maximale de la commande" +#: dcpp/Util.cpp:341 +#, c-format, boost-format +msgid "%.02f MiB" +msgstr "" -msgid "More data was sent than was expected" -msgstr "Plus de données ont été envoyées que ce qu'il était attendu" +#: dcpp/Util.cpp:347 +#, c-format, boost-format +msgid "%.02f PiB" +msgstr "" -msgid "You're trying to download from yourself!" -msgstr "Vous essayez de télécharger sur vous-même!" +#: dcpp/Util.cpp:345 +#, c-format, boost-format +msgid "%.02f TiB" +msgstr "" -msgid "Offline" -msgstr "Non connecté" +#: dcpp/NmdcHub.cpp:273 +#, boost-format +msgid "%1% (Nick unknown)" +msgstr "" -msgid "Failed to load private key" -msgstr "Echec de chargement de la clef privée" +#: dcpp/HashManager.cpp:767 +#, boost-format +msgid "" +"%1% not shared; calculated CRC32 does not match the one found in SFV file." +msgstr "" -msgid "Not listening for connections - please restart DC++" -msgstr "Pas en écoute pour les connexions - veuillez relancer DC++0.699" +#: dcpp/DownloadManager.cpp:143 +#, boost-format +msgid "%1% renamed to %2%" +msgstr "" -msgid "Hash database" -msgstr "Hachage de la base de données" +#: dcpp/DownloadManager.cpp:547 +#, fuzzy, boost-format +msgid "%1%: File not available" +msgstr "Fichier indisponible" +#: dcpp/Util.cpp:337 +#, c-format, boost-format +msgid "%d B" +msgstr "" + +#: dcpp/Util.cpp:377 +#, c-format, boost-format +msgid "%s B" +msgstr "" + +#: dcpp/QueueManager.cpp:503 +msgid "A file of equal or larger size already exists at the target location" +msgstr "" +"Un fichier d'une taille égale ou supérieure existe déjà à l'emplacement du " +"fichier cible" + +#: dcpp/QueueManager.cpp:446 +msgid "A file with a different size already exists in the queue" +msgstr "Un fichier d'une taille différente existe déjà dans la file d'attente" + +#: dcpp/QueueManager.cpp:449 +msgid "A file with different tth root already exists in the queue" +msgstr "" +"Un fichier avec une racine tth différente existe déjà dans la file d'attente" + +#: dcpp/QueueManager.cpp:413 +msgid "A file with the same hash already exists in your share" +msgstr "Un fichier ayant la même Hache existe déjà dans votre share" + +#: dcpp/ConnectionManager.cpp:181 msgid "All download slots taken" msgstr "Tous les slots sont pris" -msgid "Redirect user(s)" -msgstr "Rediriger utilisateur(s)" +#: dcpp/DownloadManager.cpp:421 +msgid "CRC32 inconsistency (SFV-Check)" +msgstr "Incompatibilité CRC32 (Contrôle SFV)" -msgid "Target filename too long" -msgstr "Nom du fichier cible trop long" +#: dcpp/DownloadManager.cpp:419 +#, fuzzy, boost-format +msgid "CRC32 inconsistency (SFV-Check) (File: %1%)" +msgstr "Incompatibilité CRC32 (Contrôle SFV)" +#: dcpp/ConnectionManager.cpp:385 +msgid "Certificate not trusted, unable to connect" +msgstr "Le certificat n'est pas De Confiance, ne parvient pas à se connecter" + +#: dcpp/Socket.cpp:154 dcpp/ConnectionManager.cpp:187 +#: dcpp/BufferedSocket.cpp:154 msgid "Connection timeout" msgstr "Temps d'attente dépassé" -msgid "The socks server requires authentication" -msgstr "Le serveur Socks requiert une authentication" +#: dcpp/DownloadManager.cpp:284 +#, boost-format +msgid "Could not open target file: %1%" +msgstr "" -msgid "A file with a different size already exists in the queue" -msgstr "Un fichier d'une taille différente existe déjà dans la file d'attente" +#: dcpp/ShareManager.cpp:418 +msgid "Directory already shared" +msgstr "Répertoire déjà partagé" -msgid "Error during decompression" -msgstr "Erreur pendant la décompression" +#: dcpp/BufferedSocket.cpp:409 dcpp/BufferedSocket.cpp:427 +msgid "Disconnected" +msgstr "Déconnecté" -msgid "CRC32 inconsistency (SFV-Check)" -msgstr "Incompatibilité CRC32 (Contrôle SFV)" +#: dcpp/UploadManager.cpp:450 +#, boost-format +msgid "Disconnected user leaving the hub: %1%" +msgstr "" -msgid "A file with different tth root already exists in the queue" -msgstr "Un fichier avec une racine tth différente existe déjà dans la file d'attente" +#: dcpp/DCPlusPlus.cpp:103 +msgid "Download Queue" +msgstr "File d'attente Téléchargements" -msgid "TLS disabled, no certificate file set" -msgstr "TLS désactivé, pas de fichier certificat" +#: dcpp/ShareManager.cpp:745 +#, boost-format +msgid "" +"Duplicate file will not be shared: %1%%2% (Size: %3% B) Dupe matched " +"against: %4%%5%" +msgstr "" -msgid "No slots available" -msgstr "Pas de slot disponible" +#: dcpp/QueueManager.cpp:516 dcpp/QueueManager.cpp:520 +#, boost-format +msgid "Duplicate source: %1%" +msgstr "" +#: dcpp/HashManager.cpp:456 +#, fuzzy, boost-format +msgid "Error creating hash data file: %1%" +msgstr "Ne parvient pas à lire la Hache de la base de données" + +#: dcpp/ZUtils.cpp:33 dcpp/ZUtils.cpp:54 dcpp/ZUtils.cpp:76 dcpp/ZUtils.cpp:86 +#: dcpp/BZUtils.cpp:31 dcpp/BZUtils.cpp:52 dcpp/BZUtils.cpp:60 msgid "Error during compression" msgstr "Erreur pendant la compression" -msgid "Disconnected" -msgstr "Déconnecté" +#: dcpp/ZUtils.cpp:100 dcpp/ZUtils.cpp:123 dcpp/BZUtils.cpp:72 +#: dcpp/BZUtils.cpp:94 dcpp/BZUtils.cpp:97 dcpp/CryptoManager.cpp:344 +#: dcpp/CryptoManager.cpp:363 dcpp/CryptoManager.cpp:377 +msgid "Error during decompression" +msgstr "Erreur pendant la décompression" -msgid "Hash database rebuilt" -msgstr "Hache de la base de données reconstruite" +#: dcpp/HashManager.cpp:772 +#, boost-format +msgid "Error hashing %1%: %2%" +msgstr "" -msgid "Remove all subdirectories before adding this one" -msgstr "Retirer tous les sous-répertoires avant d'ajouter celui-çi" +#: dcpp/HashManager.cpp:118 dcpp/HashManager.cpp:333 +#, boost-format +msgid "Error saving hash data: %1%" +msgstr "" +#: dcpp/CryptoManager.cpp:228 dcpp/CryptoManager.cpp:232 +#: dcpp/CryptoManager.cpp:237 dcpp/CryptoManager.cpp:241 +msgid "Failed to load certificate file" +msgstr "Echec de chargement du fichier certificat" + +#: dcpp/CryptoManager.cpp:246 dcpp/CryptoManager.cpp:250 +#: dcpp/CryptoManager.cpp:255 dcpp/CryptoManager.cpp:259 +msgid "Failed to load private key" +msgstr "Echec de chargement de la clef privée" + +#: dcpp/Socket.cpp:408 +msgid "" +"Failed to set up the socks server for UDP relay (check socks address and " +"port)" +msgstr "" + +#: dcpp/ShareManager.cpp:780 +#, fuzzy, boost-format +msgid "File list refresh failed: %1%" +msgstr "Rafraîchissement de la liste terminé" + +#: dcpp/ShareManager.cpp:824 +msgid "File list refresh finished" +msgstr "Rafraîchissement de la liste terminé" + +#: dcpp/ShareManager.cpp:760 +msgid "" +"File list refresh in progress, please wait for it to finish before trying to " +"refresh again" +msgstr "" + +#: dcpp/ShareManager.cpp:802 msgid "File list refresh initiated" msgstr "Rafraîchissement de la liste initialisé" -msgid "Virtual directory name already exists" -msgstr "Nom de répertoire virtuel déjà existant" +#: dcpp/DirectoryListing.cpp:102 +msgid "File not available" +msgstr "Fichier indisponible" +#: dcpp/HashManager.cpp:89 +#, boost-format +msgid "Finished hashing: %1%" +msgstr "" + +#: dcpp/HashManager.cpp:87 +#, boost-format +msgid "Finished hashing: %1% (%2%/s)" +msgstr "" + +#: dcpp/DownloadManager.cpp:353 msgid "Full tree does not match TTH root" msgstr "Toute l'arborescence ne trouve pas de racine TTH" -msgid "Shared Files" -msgstr "Fichier Partagés" +#: dcpp/CryptoManager.cpp:221 +msgid "Generated new TLS certificate" +msgstr "" +#: dcpp/DCPlusPlus.cpp:97 +msgid "Hash database" +msgstr "Hachage de la base de données" + +#: dcpp/HashManager.cpp:677 +msgid "Hash database rebuilt" +msgstr "Hache de la base de données reconstruite" + +#: dcpp/HashManager.cpp:73 dcpp/HashManager.cpp:277 +#, boost-format +msgid "Hashing failed: %1%" +msgstr "" + +#: dcpp/DownloadManager.cpp:264 dcpp/DownloadManager.cpp:269 +msgid "Invalid size" +msgstr "" + +#: dcpp/QueueManager.cpp:486 dcpp/QueueManager.cpp:494 +msgid "" +"Invalid target file (missing directory, check default download directory " +"setting)" +msgstr "" + +#: dcpp/FavoriteManager.cpp:438 +msgid "Kick user(s)" +msgstr "Kicker utilisateur(s)" + +#: dcpp/ConnectionManager.cpp:239 +#, boost-format +msgid "Listening socket failed (you need to restart DC++): %1%" +msgstr "" + +#: dcpp/BufferedSocket.cpp:263 +msgid "Maximum command length exceeded" +msgstr "Dépassement de la longueur maximale de la commande" + +#: dcpp/DownloadManager.cpp:323 +msgid "More data was sent than was expected" +msgstr "Plus de données ont été envoyées que ce qu'il était attendu" + +#: dcpp/ShareManager.cpp:403 msgid "No directory specified" msgstr "Pas de répertoire spécifié" -msgid "Unable to read hash data file" -msgstr "Ne parvient pas à lire la Hache de la base de données" +#: dcpp/DownloadManager.cpp:462 +msgid "No slots available" +msgstr "Pas de slot disponible" -msgid "A file of equal or larger size already exists at the target location" -msgstr "Un fichier d'une taille égale ou supérieure existe déjà à l'emplacement du fichier cible" +#: dcpp/AdcHub.cpp:554 +msgid "Not listening for connections - please restart DC++" +msgstr "Pas en écoute pour les connexions - veuillez relancer DC++0.699" +#: dcpp/Transfer.cpp:63 dcpp/Transfer.cpp:67 dcpp/ClientManager.cpp:115 +#: dcpp/SearchManager.cpp:267 dcpp/SearchManager.cpp:329 +#: dcpp/SearchManager.cpp:331 +msgid "Offline" +msgstr "Non connecté" + +#: dcpp/FavoriteManager.cpp:442 +msgid "Redirect user(s)" +msgstr "Rediriger utilisateur(s)" + +#: dcpp/ShareManager.cpp:421 +msgid "Remove all subdirectories before adding this one" +msgstr "Retirer tous les sous-répertoires avant d'ajouter celui-çi" + +#: dcpp/DCPlusPlus.cpp:100 +msgid "Shared Files" +msgstr "Fichier Partagés" + +#: dcpp/Socket.cpp:269 dcpp/Socket.cpp:273 +msgid "Socks server authentication failed (bad login / password?)" +msgstr "" +"Echec de l'authentification serveur Socks (mauvais login / mot-de-passe?)" + +#: dcpp/CryptoManager.cpp:223 +#, fuzzy, boost-format +msgid "TLS disabled, failed to generate certificate: %1%" +msgstr "TLS désactivé, pas de fichier certificat" + +#: dcpp/CryptoManager.cpp:213 +msgid "TLS disabled, no certificate file set" +msgstr "TLS désactivé, pas de fichier certificat" + +#: dcpp/QueueManager.cpp:481 dcpp/QueueManager.cpp:490 +msgid "Target filename too long" +msgstr "Nom du fichier cible trop long" + +#: dcpp/QueueManager.cpp:769 +msgid "Target removed" +msgstr "" + +#: dcpp/Socket.cpp:255 +msgid "The socks server doesn't support login / password authentication" +msgstr "" +"Le serveur Socks server ne supporte pas l'autentifiaction login / mot-de-" +"passe" + +#: dcpp/Socket.cpp:162 dcpp/Socket.cpp:173 dcpp/Socket.cpp:206 +#: dcpp/Socket.cpp:210 dcpp/Socket.cpp:237 dcpp/Socket.cpp:252 +msgid "The socks server failed establish a connection" +msgstr "Le serveur Socks a échoué à établir une connexion" + +#: dcpp/Socket.cpp:241 +msgid "The socks server requires authentication" +msgstr "Le serveur Socks requiert une authentication" + +#: dcpp/ShareManager.cpp:407 +msgid "The temporary download directory cannot be shared" +msgstr "Le répertoire des temporaires ne peut être partagé" + +#: dcpp/QueueManager.cpp:436 msgid "This file is already queued" msgstr "Ce fichier est déjà mis en file d'attente de téléchargement" +#: dcpp/Thread.cpp:34 dcpp/Thread.cpp:42 msgid "Unable to create thread" msgstr "Ne parvient pas à créer le thread" -msgid "Kick user(s)" -msgstr "Kicker utilisateur(s)" +#: dcpp/QueueManager.cpp:957 +#, boost-format +msgid "Unable to open filelist: %1%" +msgstr "" -msgid "File not available" -msgstr "Fichier indisponible" +#: dcpp/HashManager.cpp:131 +msgid "Unable to read hash data file" +msgstr "Ne parvient pas à lire la Hache de la base de données" -msgid "The socks server failed establish a connection" -msgstr "Le serveur Socks a échoué à établir une connexion" +#: dcpp/DownloadManager.cpp:145 +#, fuzzy, boost-format +msgid "Unable to rename %1%: %2%" +msgstr "Ne parvient pas à créer le thread" -msgid "Directory already shared" -msgstr "Répertoire déjà partagé" +#: dcpp/UploadManager.cpp:149 +#, boost-format +msgid "Unable to send file %1%: %2%" +msgstr "" -msgid "Download Queue" -msgstr "File d'attente Téléchargements" +#: dcpp/Socket.cpp:54 +#, c-format, boost-format +msgid "Unknown error: 0x%1$x" +msgstr "" -msgid "Certificate not trusted, unable to connect" -msgstr "Le certificat n'est pas De Confiance, ne parvient pas à se connecter" +#: dcpp/ShareManager.cpp:426 dcpp/ShareManager.cpp:468 +msgid "Virtual directory name already exists" +msgstr "Nom de répertoire virtuel déjà existant" -msgid "A file with the same hash already exists in your share" -msgstr "Un fichier ayant la même Hache existe déjà dans votre share" +#: dcpp/QueueManager.cpp:383 dcpp/QueueManager.cpp:407 +msgid "You're trying to download from yourself!" +msgstr "Vous essayez de télécharger sur vous-même!" -msgid "Failed to load certificate file" -msgstr "Echec de chargement du fichier certificat" +#: dcpp/SettingsManager.cpp:156 +msgid "downloaded from" +msgstr "" -msgid "File list refresh finished" -msgstr "Rafraîchissement de la liste terminé" - +#: dcpp/SettingsManager.cpp:157 +msgid "uploaded to" +msgstr "" Modified: dcplusplus/trunk/dcpp/po/id.po =================================================================== --- dcplusplus/trunk/dcpp/po/id.po 2008-01-30 21:19:30 UTC (rev 982) +++ dcplusplus/trunk/dcpp/po/id.po 2008-02-02 00:05:24 UTC (rev 983) @@ -1,4 +1,3 @@ - # Indonesian translations for the DC++ package. # Copyright (C) 2008 The translators # This file is distributed under the same license as the DC++ package. @@ -8,114 +7,383 @@ msgstr "" "Project-Id-Version: dcpp\n" "Report-Msgid-Bugs-To: dcp...@li...\n" +"POT-Creation-Date: 2008-01-31 20:32+0100\n" "Last-Translator: <dod...@us...>\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: plurals=2; plural=(n != 1);\n" -msgid "Socks server authentication failed (bad login / password?)" -msgstr "Autentikasi server sock gagal (username / password salah?)" +#: dcpp/Util.cpp:381 +#, c-format, boost-format +msgid "%'lld B" +msgstr "" -msgid "The socks server doesn't support login / password authentication" -msgstr "Server sock tidak mendukung autentikai user / password" +#: dcpp/Util.cpp:343 +#, c-format, boost-format +msgid "%.02f GiB" +msgstr "" -msgid "The socks server requires authentication" -msgstr "Server sock membutuhkan autentikasi" +#: dcpp/Util.cpp:339 +#, c-format, boost-format +msgid "%.02f KiB" +msgstr "" -msgid "More data was sent than was expected" -msgstr "Lebih banyak data dikirim dari yang diharapkan" +#: dcpp/Util.cpp:341 +#, c-format, boost-format +msgid "%.02f MiB" +msgstr "" -msgid "You're trying to download from yourself!" -msgstr "Anda mengunduh dari diri sendiri!" +#: dcpp/Util.cpp:347 +#, c-format, boost-format +msgid "%.02f PiB" +msgstr "" -msgid "Offline" -msgstr "Terputus" +#: dcpp/Util.cpp:345 +#, c-format, boost-format +msgid "%.02f TiB" +msgstr "" -msgid "Hash database" -msgstr "Hash-kan basis data" +#: dcpp/NmdcHub.cpp:273 +#, boost-format +msgid "%1% (Nick unknown)" +msgstr "" -msgid "All download slots taken" -msgstr "Semua slot unduh terpakai" +#: dcpp/HashManager.cpp:767 +#, boost-format +msgid "" +"%1% not shared; calculated CRC32 does not match the one found in SFV file." +msgstr "" -msgid "Redirect user(s)" -msgstr "Redirect pengguna" +#: dcpp/DownloadManager.cpp:143 +#, boost-format +msgid "%1% renamed to %2%" +msgstr "" -msgid "Target filename too long" -msgstr "Nama arsip tujuan terlalu panjang" +#: dcpp/DownloadManager.cpp:547 +#, fuzzy, boost-format +msgid "%1%: File not available" +msgstr "Arsip tidak tersedia" -msgid "Connection timeout" -msgstr "Sambungan timeout" +#: dcpp/Util.cpp:337 +#, c-format, boost-format +msgid "%d B" +msgstr "" +#: dcpp/Util.cpp:377 +#, c-format, boost-format +msgid "%s B" +msgstr "" + +#: dcpp/QueueManager.cpp:503 +msgid "A file of equal or larger size already exists at the target location" +msgstr "" +"Sebuah arsip berukuran sama atau lebih besar sudah ada di lokasi tujuan" + +#: dcpp/QueueManager.cpp:446 msgid "A file with a different size already exists in the queue" msgstr "Sebuah arsip dengan ukuran lain telah ada di antrian" -msgid "Error during decompression" -msgstr "Kesalahan saat pemuaian" +#: dcpp/QueueManager.cpp:449 +msgid "A file with different tth root already exists in the queue" +msgstr "Sebuah arsip dengan tth root lain telah ada di antrian" +#: dcpp/QueueManager.cpp:413 +msgid "A file with the same hash already exists in your share" +msgstr "Arsip dengan hash yang sama sudah ada di share Anda" + +#: dcpp/ConnectionManager.cpp:181 +msgid "All download slots taken" +msgstr "Semua slot unduh terpakai" + +#: dcpp/DownloadManager.cpp:421 msgid "CRC32 inconsistency (SFV-Check)" msgstr "Inkonsistensi CRC32 (Pemeriksaan SFV)" -msgid "A file with different tth root already exists in the queue" -msgstr "Sebuah arsip dengan tth root lain telah ada di antrian" +#: dcpp/DownloadManager.cpp:419 +#, fuzzy, boost-format +msgid "CRC32 inconsistency (SFV-Check) (File: %1%)" +msgstr "Inkonsistensi CRC32 (Pemeriksaan SFV)" -msgid "No slots available" -msgstr "Slot tidak tersedia" +#: dcpp/ConnectionManager.cpp:385 +msgid "Certificate not trusted, unable to connect" +msgstr "" -msgid "Error during compression" -msgstr "Kesalahan pada pemampatan" +#: dcpp/Socket.cpp:154 dcpp/ConnectionManager.cpp:187 +#: dcpp/BufferedSocket.cpp:154 +msgid "Connection timeout" +msgstr "Sambungan timeout" +#: dcpp/DownloadManager.cpp:284 +#, boost-format +msgid "Could not open target file: %1%" +msgstr "" + +#: dcpp/ShareManager.cpp:418 +msgid "Directory already shared" +msgstr "Direktori telah dishare" + +#: dcpp/BufferedSocket.cpp:409 dcpp/BufferedSocket.cpp:427 msgid "Disconnected" msgstr "Terputus" -msgid "Hash database rebuilt" -msgstr "Basis data hash telah dibuat ulang" +#: dcpp/UploadManager.cpp:450 +#, boost-format +msgid "Disconnected user leaving the hub: %1%" +msgstr "" -msgid "Remove all subdirectories before adding this one" -msgstr "Hapus semua subdirektori sebelum menambah ini" +#: dcpp/DCPlusPlus.cpp:103 +msgid "Download Queue" +msgstr "Antrian Unduh" +#: dcpp/ShareManager.cpp:745 +#, boost-format +msgid "" +"Duplicate file will not be shared: %1%%2% (Size: %3% B) Dupe matched " +"against: %4%%5%" +msgstr "" + +#: dcpp/QueueManager.cpp:516 dcpp/QueueManager.cpp:520 +#, boost-format +msgid "Duplicate source: %1%" +msgstr "" + +#: dcpp/HashManager.cpp:456 +#, boost-format +msgid "Error creating hash data file: %1%" +msgstr "" + +#: dcpp/ZUtils.cpp:33 dcpp/ZUtils.cpp:54 dcpp/ZUtils.cpp:76 dcpp/ZUtils.cpp:86 +#: dcpp/BZUtils.cpp:31 dcpp/BZUtils.cpp:52 dcpp/BZUtils.cpp:60 +msgid "Error during compression" +msgstr "Kesalahan pada pemampatan" + +#: dcpp/ZUtils.cpp:100 dcpp/ZUtils.cpp:123 dcpp/BZUtils.cpp:72 +#: dcpp/BZUtils.cpp:94 dcpp/BZUtils.cpp:97 dcpp/CryptoManager.cpp:344 +#: dcpp/CryptoManager.cpp:363 dcpp/CryptoManager.cpp:377 +msgid "Error during decompression" +msgstr "Kesalahan saat pemuaian" + +#: dcpp/HashManager.cpp:772 +#, boost-format +msgid "Error hashing %1%: %2%" +msgstr "" + +#: dcpp/HashManager.cpp:118 dcpp/HashManager.cpp:333 +#, boost-format +msgid "Error saving hash data: %1%" +msgstr "" + +#: dcpp/CryptoManager.cpp:228 dcpp/CryptoManager.cpp:232 +#: dcpp/CryptoManager.cpp:237 dcpp/CryptoManager.cpp:241 +msgid "Failed to load certificate file" +msgstr "" + +#: dcpp/CryptoManager.cpp:246 dcpp/CryptoManager.cpp:250 +#: dcpp/CryptoManager.cpp:255 dcpp/CryptoManager.cpp:259 +msgid "Failed to load private key" +msgstr "" + +#: dcpp/Socket.cpp:408 +msgid "" +"Failed to set up the socks server for UDP relay (check socks address and " +"port)" +msgstr "" + +#: dcpp/ShareManager.cpp:780 +#, fuzzy, boost-format +msgid "File list refresh failed: %1%" +msgstr "Pembaharuan daftar arsip telah selesai" + +#: dcpp/ShareManager.cpp:824 +msgid "File list refresh finished" +msgstr "Pembaharuan daftar arsip telah selesai" + +#: dcpp/ShareManager.cpp:760 +msgid "" +"File list refresh in progress, please wait for it to finish before trying to " +"refresh again" +msgstr "" + +#: dcpp/ShareManager.cpp:802 msgid "File list refresh initiated" msgstr "Pembaharuan daftar arsip diinisiasi" -msgid "Virtual directory name already exists" -msgstr "Nama direktori semu telah ada" +#: dcpp/DirectoryListing.cpp:102 +msgid "File not available" +msgstr "Arsip tidak tersedia" +#: dcpp/HashManager.cpp:89 +#, boost-format +msgid "Finished hashing: %1%" +msgstr "" + +#: dcpp/HashManager.cpp:87 +#, boost-format +msgid "Finished hashing: %1% (%2%/s)" +msgstr "" + +#: dcpp/DownloadManager.cpp:353 msgid "Full tree does not match TTH root" msgstr "Pohon yang diunduh tidak cocok dengan TTH root" -msgid "Shared Files" -msgstr "Arsip Ter-Share" +#: dcpp/CryptoManager.cpp:221 +msgid "Generated new TLS certificate" +msgstr "" -msgid "No directory specified" -msgstr "Direktori tidak diberikan" +#: dcpp/DCPlusPlus.cpp:97 +msgid "Hash database" +msgstr "Hash-kan basis data" -msgid "A file of equal or larger size already exists at the target location" -msgstr "Sebuah arsip berukuran sama atau lebih besar sudah ada di lokasi tujuan" +#: dcpp/HashManager.cpp:677 +msgid "Hash database rebuilt" +msgstr "Basis data hash telah dibuat ulang" -msgid "Unable to create thread" -msgstr "Gagal menciptakan thread" +#: dcpp/HashManager.cpp:73 dcpp/HashManager.cpp:277 +#, boost-format +msgid "Hashing failed: %1%" +msgstr "" +#: dcpp/DownloadManager.cpp:264 dcpp/DownloadManager.cpp:269 +msgid "Invalid size" +msgstr "" + +#: dcpp/QueueManager.cpp:486 dcpp/QueueManager.cpp:494 +msgid "" +"Invalid target file (missing directory, check default download directory " +"setting)" +msgstr "" + +#: dcpp/FavoriteManager.cpp:438 msgid "Kick user(s)" msgstr "Tendang pengguna" -msgid "File not available" -msgstr "Arsip tidak tersedia" +#: dcpp/ConnectionManager.cpp:239 +#, boost-format +msgid "Listening socket failed (you need to restart DC++): %1%" +msgstr "" +#: dcpp/BufferedSocket.cpp:263 +msgid "Maximum command length exceeded" +msgstr "" + +#: dcpp/DownloadManager.cpp:323 +msgid "More data was sent than was expected" +msgstr "Lebih banyak data dikirim dari yang diharapkan" + +#: dcpp/ShareManager.cpp:403 +msgid "No directory specified" +msgstr "Direktori tidak diberikan" + +#: dcpp/DownloadManager.cpp:462 +msgid "No slots available" +msgstr "Slot tidak tersedia" + +#: dcpp/AdcHub.cpp:554 +msgid "Not listening for connections - please restart DC++" +msgstr "" + +#: dcpp/Transfer.cpp:63 dcpp/Transfer.cpp:67 dcpp/ClientManager.cpp:115 +#: dcpp/SearchManager.cpp:267 dcpp/SearchManager.cpp:329 +#: dcpp/SearchManager.cpp:331 +msgid "Offline" +msgstr "Terputus" + +#: dcpp/FavoriteManager.cpp:442 +msgid "Redirect user(s)" +msgstr "Redirect pengguna" + +#: dcpp/ShareManager.cpp:421 +msgid "Remove all subdirectories before adding this one" +msgstr "Hapus semua subdirektori sebelum menambah ini" + +#: dcpp/DCPlusPlus.cpp:100 +msgid "Shared Files" +msgstr "Arsip Ter-Share" + +#: dcpp/Socket.cpp:269 dcpp/Socket.cpp:273 +msgid "Socks server authentication failed (bad login / password?)" +msgstr "Autentikasi server sock gagal (username / password salah?)" + +#: dcpp/CryptoManager.cpp:223 +#, boost-format +msgid "TLS disabled, failed to generate certificate: %1%" +msgstr "" + +#: dcpp/CryptoManager.cpp:213 +msgid "TLS disabled, no certificate file set" +msgstr "" + +#: dcpp/QueueManager.cpp:481 dcpp/QueueManager.cpp:490 +msgid "Target filename too long" +msgstr "Nama arsip tujuan terlalu panjang" + +#: dcpp/QueueManager.cpp:769 +msgid "Target removed" +msgstr "" + +#: dcpp/Socket.cpp:255 +msgid "The socks server doesn't support login / password authentication" +msgstr "Server sock tidak mendukung autentikai user / password" + +#: dcpp/Socket.cpp:162 dcpp/Socket.cpp:173 dcpp/Socket.cpp:206 +#: dcpp/Socket.cpp:210 dcpp/Socket.cpp:237 dcpp/Socket.cpp:252 msgid "The socks server failed establish a connection" msgstr "Server sock gagal menjalin koneksi" -msgid "Directory already shared" -msgstr "Direktori telah dishare" +#: dcpp/Socket.cpp:241 +msgid "The socks server requires authentication" +msgstr "Server sock membutuhkan autentikasi" -msgid "Download Queue" -msgstr "Antrian Unduh" - +#: dcpp/ShareManager.cpp:407 msgid "The temporary download directory cannot be shared" msgstr "Direktori unduh sementara tidak boleh di-share" -msgid "A file with the same hash already exists in your share" -msgstr "Arsip dengan hash yang sama sudah ada di share Anda" +#: dcpp/QueueManager.cpp:436 +msgid "This file is already queued" +msgstr "" -msgid "File list refresh finished" -msgstr "Pembaharuan daftar arsip telah selesai" +#: dcpp/Thread.cpp:34 dcpp/Thread.cpp:42 +msgid "Unable to create thread" +msgstr "Gagal menciptakan thread" +#: dcpp/QueueManager.cpp:957 +#, boost-format +msgid "Unable to open filelist: %1%" +msgstr "" + +#: dcpp/HashManager.cpp:131 +#, fuzzy +msgid "Unable to read hash data file" +msgstr "Gagal menciptakan thread" + +#: dcpp/DownloadManager.cpp:145 +#, fuzzy, boost-format +msgid "Unable to rename %1%: %2%" +msgstr "Gagal menciptakan thread" + +#: dcpp/UploadManager.cpp:149 +#, boost-format +msgid "Unable to send file %1%: %2%" +msgstr "" + +#: dcpp/Socket.cpp:54 +#, c-format, boost-format +msgid "Unknown error: 0x%1$x" +msgstr "" + +#: dcpp/ShareManager.cpp:426 dcpp/ShareManager.cpp:468 +msgid "Virtual directory name already exists" +msgstr "Nama direktori semu telah ada" + +#: dcpp/QueueManager.cpp:383 dcpp/QueueManager.cpp:407 +msgid "You're trying to download from yourself!" +msgstr "Anda mengunduh dari diri sendiri!" + +#: dcpp/SettingsManager.cpp:156 +msgid "downloaded from" +msgstr "" + +#: dcpp/SettingsManager.cpp:157 +msgid "uploaded to" +msgstr "" Modified: dcplusplus/trunk/dcpp/po/it.po =================================================================== --- dcplusplus/trunk/dcpp/po/it.po 2008-01-30 21:19:30 UTC (rev 982) +++ dcplusplus/trunk/dcpp/po/it.po 2008-02-02 00:05:24 UTC (rev 983) @@ -1,4 +1,3 @@ - # Italian translations for the DC++ package. # Copyright (C) 2008 The translators # This file is distributed under the same license as the DC++ package. @@ -8,147 +7,384 @@ msgstr "" "Project-Id-Version: dcpp\n" "Report-Msgid-Bugs-To: dcp...@li...\n" +"POT-Creation-Date: 2008-01-31 20:32+0100\n" "Last-Translator: <vec...@us...>\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -msgid "Socks server authentication failed (bad login / password?)" -msgstr "Autenticazione del server Socks fallita (nome utente /password non validi?)" +#: dcpp/Util.cpp:381 +#, c-format, boost-format +msgid "%'lld B" +msgstr "" -msgid "The socks server doesn't support login / password authentication" -msgstr "Il server socks non riconosce l'utente / autenticazione password" +#: dcpp/Util.cpp:343 +#, c-format, boost-format +msgid "%.02f GiB" +msgstr "" -msgid "Invalid size" -msgstr "Grandezza non valida" +#: dcpp/Util.cpp:339 +#, c-format, boost-format +msgid "%.02f KiB" +msgstr "" -msgid "The temporary download directory cannot be shared" -msgstr "La cartella di download temporanea non può essere condivisa" +#: dcpp/Util.cpp:341 +#, c-format, boost-format +msgid "%.02f MiB" +msgstr "" -msgid "Maximum command length exceeded" -msgstr "Superata massima lunghezza comando" +#: dcpp/Util.cpp:347 +#, c-format, boost-format +msgid "%.02f PiB" +msgstr "" -msgid "More data was sent than was expected" -msgstr "Sono stati inviati più dati di quanto previsto" +#: dcpp/Util.cpp:345 +#, c-format, boost-format +msgid "%.02f TiB" +msgstr "" -msgid "You're trying to download from yourself!" -msgstr "Stai cercando di scaricare da te stesso!" +#: dcpp/NmdcHub.cpp:273 +#, boost-format +msgid "%1% (Nick unknown)" +msgstr "" -msgid "Offline" -msgstr "Offline" +#: dcpp/HashManager.cpp:767 +#, boost-format +msgid "" +"%1% not shared; calculated CRC32 does not match the one found in SFV file." +msgstr "" -msgid "Failed to load private key" -msgstr "Impossibile caricare il codice privato" +#: dcpp/DownloadManager.cpp:143 +#, boost-format +msgid "%1% renamed to %2%" +msgstr "" -msgid "Target removed" -msgstr "File di destinazione rimosso" +#: dcpp/DownloadManager.cpp:547 +#, fuzzy, boost-format +msgid "%1%: File not available" +msgstr "File non disponibile" -msgid "Not listening for connections - please restart DC++" -msgstr "Nessun ascolto per la connessione - riavviare DC++" +#: dcpp/Util.cpp:337 +#, c-format, boost-format +msgid "%d B" +msgstr "" -msgid "Hash database" -msgstr "Archivio hash" +#: dcpp/Util.cpp:377 +#, c-format, boost-format +msgid "%s B" +msgstr "" +#: dcpp/QueueManager.cpp:503 +msgid "A file of equal or larger size already exists at the target location" +msgstr "" +"Nella cartella di destinazione esiste già un file di dimensioni uguali o " +"maggiori" + +#: dcpp/QueueManager.cpp:446 +msgid "A file with a different size already exists in the queue" +msgstr "Nei Download in Coda esiste già un file di dimensione differente" + +#: dcpp/QueueManager.cpp:449 +msgid "A file with different tth root already exists in the queue" +msgstr "Nei Download in Coda esiste già un file con TTH root differente" + +#: dcpp/QueueManager.cpp:413 +msgid "A file with the same hash already exists in your share" +msgstr "Esiste già un file con lo stesso TTH nei tuoi file condivisi" + +#: dcpp/ConnectionManager.cpp:181 msgid "All download slots taken" msgstr "Tutti gli slot per il download occupati" -msgid "Redirect user(s)" -msgstr "Reindirizza utente(i)" +#: dcpp/DownloadManager.cpp:421 +msgid "CRC32 inconsistency (SFV-Check)" +msgstr "Inconsistenza CRC32 (Controllo SFV)" -msgid "Target filename too long" -msgstr "Nome file di destinazione troppo lungo" +#: dcpp/DownloadManager.cpp:419 +#, fuzzy, boost-format +msgid "CRC32 inconsistency (SFV-Check) (File: %1%)" +msgstr "Inconsistenza CRC32 (Controllo SFV)" +#: dcpp/ConnectionManager.cpp:385 +msgid "Certificate not trusted, unable to connect" +msgstr "Certificato non valido, impossibile connettersi" + +#: dcpp/Socket.cpp:154 dcpp/ConnectionManager.cpp:187 +#: dcpp/BufferedSocket.cpp:154 msgid "Connection timeout" msgstr "Connessione in timeout" -msgid "The socks server requires authentication" -msgstr "Il server socks richiede l'autenticazione" +#: dcpp/DownloadManager.cpp:284 +#, boost-format +msgid "Could not open target file: %1%" +msgstr "" -msgid "A file with a different size already exists in the queue" -msgstr "Nei Download in Coda esiste già un file di dimensione differente" +#: dcpp/ShareManager.cpp:418 +msgid "Directory already shared" +msgstr "Cartella già condivisa" -msgid "Error during decompression" -msgstr "Errore durante la decompressione" +#: dcpp/BufferedSocket.cpp:409 dcpp/BufferedSocket.cpp:427 +msgid "Disconnected" +msgstr "Disconnesso" -msgid "CRC32 inconsistency (SFV-Check)" -msgstr "Inconsistenza CRC32 (Controllo SFV)" +#: dcpp/UploadManager.cpp:450 +#, boost-format +msgid "Disconnected user leaving the hub: %1%" +msgstr "" -msgid "A file with different tth root already exists in the queue" -msgstr "Nei Download in Coda esiste già un file con TTH root differente" +#: dcpp/DCPlusPlus.cpp:103 +msgid "Download Queue" +msgstr "Download in Coda" -msgid "TLS disabled, no certificate file set" -msgstr "TLS disattivato, file certificato non impostato" +#: dcpp/ShareManager.cpp:745 +#, boost-format +msgid "" +"Duplicate file will not be shared: %1%%2% (Size: %3% B) Dupe matched " +"against: %4%%5%" +msgstr "" -msgid "No slots available" -msgstr "Nessuno slot disponibile" +#: dcpp/QueueManager.cpp:516 dcpp/QueueManager.cpp:520 +#, boost-format +msgid "Duplicate source: %1%" +msgstr "" +#: dcpp/HashManager.cpp:456 +#, fuzzy, boost-format +msgid "Error creating hash data file: %1%" +msgstr "Impossibile leggere dati hash del file" + +#: dcpp/ZUtils.cpp:33 dcpp/ZUtils.cpp:54 dcpp/ZUtils.cpp:76 dcpp/ZUtils.cpp:86 +#: dcpp/BZUtils.cpp:31 dcpp/BZUtils.cpp:52 dcpp/BZUtils.cpp:60 msgid "Error during compression" msgstr "Errore durante la compressione" -msgid "Disconnected" -msgstr "Disconnesso" +#: dcpp/ZUtils.cpp:100 dcpp/ZUtils.cpp:123 dcpp/BZUtils.cpp:72 +#: dcpp/BZUtils.cpp:94 dcpp/BZUtils.cpp:97 dcpp/CryptoManager.cpp:344 +#: dcpp/CryptoManager.cpp:363 dcpp/CryptoManager.cpp:377 +msgid "Error during decompression" +msgstr "Errore durante la decompressione" -msgid "Hash database rebuilt" -msgstr "Ricostruzione archivio hash" +#: dcpp/HashManager.cpp:772 +#, boost-format +msgid "Error hashing %1%: %2%" +msgstr "" -msgid "Remove all subdirectories before adding this one" -msgstr "Elimina tutte le sottocartelle prima di aggiungere questa" +#: dcpp/HashManager.cpp:118 dcpp/HashManager.cpp:333 +#, boost-format +msgid "Error saving hash data: %1%" +msgstr "" +#: dcpp/CryptoManager.cpp:228 dcpp/CryptoManager.cpp:232 +#: dcpp/CryptoManager.cpp:237 dcpp/CryptoManager.cpp:241 +msgid "Failed to load certificate file" +msgstr "Impossibile caricare il file certificato" + +#: dcpp/CryptoManager.cpp:246 dcpp/CryptoManager.cpp:250 +#: dcpp/CryptoManager.cpp:255 dcpp/CryptoManager.cpp:259 +msgid "Failed to load private key" +msgstr "Impossibile caricare il codice privato" + +#: dcpp/Socket.cpp:408 +msgid "" +"Failed to set up the socks server for UDP relay (check socks address and " +"port)" +msgstr "" + +#: dcpp/ShareManager.cpp:780 +#, fuzzy, boost-format +msgid "File list refresh failed: %1%" +msgstr "Aggiornamento elenco file condivisi completato" + +#: dcpp/ShareManager.cpp:824 +msgid "File list refresh finished" +msgstr "Aggiornamento elenco file condivisi completato" + +#: dcpp/ShareManager.cpp:760 +msgid "" +"File list refresh in progress, please wait for it to finish before trying to " +"refresh again" +msgstr "" + +#: dcpp/ShareManager.cpp:802 msgid "File list refresh initiated" msgstr "Aggiornamento elenco file condivisi iniziato" -msgid "Virtual directory name already exists" -msgstr "Nome cartella virtuale gi�sistente" +#: dcpp/DirectoryListing.cpp:102 +msgid "File not available" +msgstr "File non disponibile" +#: dcpp/HashManager.cpp:89 +#, boost-format +msgid "Finished hashing: %1%" +msgstr "" + +#: dcpp/HashManager.cpp:87 +#, boost-format +msgid "Finished hashing: %1% (%2%/s)" +msgstr "" + +#: dcpp/DownloadManager.cpp:353 msgid "Full tree does not match TTH root" msgstr "L'albero delle cartelle non è coerente con la radice TTH" -msgid "Shared Files" -msgstr "File Condivisi" +#: dcpp/CryptoManager.cpp:221 +msgid "Generated new TLS certificate" +msgstr "Creato nuovo certificato TLS" +#: dcpp/DCPlusPlus.cpp:97 +msgid "Hash database" +msgstr "Archivio hash" + +#: dcpp/HashManager.cpp:677 +msgid "Hash database rebuilt" +msgstr "Ricostruzione archivio hash" + +#: dcpp/HashManager.cpp:73 dcpp/HashManager.cpp:277 +#, boost-format +msgid "Hashing failed: %1%" +msgstr "" + +#: dcpp/DownloadManager.cpp:264 dcpp/DownloadManager.cpp:269 +msgid "Invalid size" +msgstr "Grandezza non valida" + +#: dcpp/QueueManager.cpp:486 dcpp/QueueManager.cpp:494 +msgid "" +"Invalid target file (missing directory, check default download directory " +"setting)" +msgstr "" + +#: dcpp/FavoriteManager.cpp:438 +msgid "Kick user(s)" +msgstr "Blocca utente(i)" + +#: dcpp/ConnectionManager.cpp:239 +#, boost-format +msgid "Listening socket failed (you need to restart DC++): %1%" +msgstr "" + +#: dcpp/BufferedSocket.cpp:263 +msgid "Maximum command length exceeded" +msgstr "Superata massima lunghezza comando" + +#: dcpp/DownloadManager.cpp:323 +msgid "More data was sent than was expected" +msgstr "Sono stati inviati più dati di quanto previsto" + +#: dcpp/ShareManager.cpp:403 msgid "No directory specified" msgstr "Nessuna cartella specificata" -msgid "Unable to read hash data file" -msgstr "Impossibile leggere dati hash del file" +#: dcpp/DownloadManager.cpp:462 +msgid "No slots available" +msgstr "Nessuno slot disponibile" -msgid "A file of equal or larger size already exists at the target location" -msgstr "Nella cartella di destinazione esiste già un file di dimensioni uguali o maggiori" +#: dcpp/AdcHub.cpp:554 +msgid "Not listening for connections - please restart DC++" +msgstr "Nessun ascolto per la connessione - riavviare DC++" +#: dcpp/Transfer.cpp:63 dcpp/Transfer.cpp:67 dcpp/ClientManager.cpp:115 +#: dcpp/SearchManager.cpp:267 dcpp/SearchManager.cpp:329 +#: dcpp/SearchManager.cpp:331 +msgid "Offline" +msgstr "Offline" + +#: dcpp/FavoriteManager.cpp:442 +msgid "Redirect user(s)" +msgstr "Reindirizza utente(i)" + +#: dcpp/ShareManager.cpp:421 +msgid "Remove all subdirectories before adding this one" +msgstr "Elimina tutte le sottocartelle prima di aggiungere questa" + +#: dcpp/DCPlusPl... [truncated message content] |
From: <arn...@us...> - 2008-01-31 22:10:40
|
Revision: 130 http://adchpp.svn.sourceforge.net/adchpp/?rev=130&view=rev Author: arnetheduck Date: 2008-01-31 14:10:31 -0800 (Thu, 31 Jan 2008) Log Message: ----------- Skip building intl for now Modified Paths: -------------- adchpp/trunk/SConstruct Modified: adchpp/trunk/SConstruct =================================================================== --- adchpp/trunk/SConstruct 2008-01-29 17:23:40 UTC (rev 129) +++ adchpp/trunk/SConstruct 2008-01-31 22:10:31 UTC (rev 130) @@ -223,7 +223,7 @@ env = conf.Finish() -dev.intl = dev.build('intl/') +#dev.intl = dev.build('intl/') dev.adchpp = dev.build('adchpp/') This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ul...@us...> - 2008-01-30 21:19:33
|
Revision: 982 http://dcplusplus.svn.sourceforge.net/dcplusplus/?rev=982&view=rev Author: ullner Date: 2008-01-30 13:19:30 -0800 (Wed, 30 Jan 2008) Log Message: ----------- po-files... Added Paths: ----------- dcplusplus/trunk/dcpp/po/da.po dcplusplus/trunk/dcpp/po/fr.po dcplusplus/trunk/dcpp/po/id.po dcplusplus/trunk/dcpp/po/it.po dcplusplus/trunk/dcpp/po/km.po dcplusplus/trunk/dcpp/po/pl.po dcplusplus/trunk/dcpp/po/pt.po dcplusplus/trunk/dcpp/po/ro.po dcplusplus/trunk/dcpp/po/sl.po dcplusplus/trunk/dcpp/po/sq.po dcplusplus/trunk/win32/po/da.po dcplusplus/trunk/win32/po/fr.po dcplusplus/trunk/win32/po/id.po dcplusplus/trunk/win32/po/it.po dcplusplus/trunk/win32/po/km.po dcplusplus/trunk/win32/po/pl.po dcplusplus/trunk/win32/po/pt.po dcplusplus/trunk/win32/po/ro.po dcplusplus/trunk/win32/po/sl.po dcplusplus/trunk/win32/po/sq.po Added: dcplusplus/trunk/dcpp/po/da.po =================================================================== --- dcplusplus/trunk/dcpp/po/da.po (rev 0) +++ dcplusplus/trunk/dcpp/po/da.po 2008-01-30 21:19:30 UTC (rev 982) @@ -0,0 +1,142 @@ + +# Danish translations for the DC++ package. +# Copyright (C) 2008 The translators +# This file is distributed under the same license as the DC++ package. +# <g2...@us...>, 2008. +# +msgid "" +msgstr "" +"Project-Id-Version: dcpp\n" +"Report-Msgid-Bugs-To: dcp...@li...\n" +"Last-Translator: <g2...@us...>\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +msgid "Socks server authentication failed (bad login / password?)" +msgstr "Socks-server brugerverificering sl� fejl (forkert brugernavn/kodeord)" + +msgid "The socks server doesn't support login / password authentication" +msgstr "Socks-serveren underst� ikke bruger/kodeord-verificering" + +msgid "Invalid size" +msgstr "Ugyldig st�se..." + +msgid "The temporary download directory cannot be shared" +msgstr "Den midlertidlige download mappe kan ikke blive delt..!" + +msgid "Maximum command length exceeded" +msgstr "Maxsimal l�de for kommando overskredet" + +msgid "More data was sent than was expected" +msgstr "For meget data..." + +msgid "You're trying to download from yourself!" +msgstr "Du pr�at downloade fra dig selv!!!" + +msgid "Offline" +msgstr "Offline" + +msgid "Failed to load private key" +msgstr "Fejlede ved indl�ing af privat n�" + +msgid "Not listening for connections - please restart DC++" +msgstr "Starter ikke - Genstart venligst DC++" + +msgid "Hash database" +msgstr "Hash databasen" + +msgid "All download slots taken" +msgstr "Alle downloadslots er i brug" + +msgid "Redirect user(s)" +msgstr "Viderestil bruger(e)" + +msgid "Target filename too long" +msgstr "Filnavnet er for langt...!" + +msgid "Connection timeout" +msgstr "Forbindelsen fik 'Timeout' (den anden computer svarer ikke)" + +msgid "The socks server requires authentication" +msgstr "Socks-serveren kr�r brugernavn/kodeord" + +msgid "A file with a different size already exists in the queue" +msgstr "Filer med forskellige st�ser" + +msgid "Error during decompression" +msgstr "Fejl under dekomprimeringen" + +msgid "CRC32 inconsistency (SFV-Check)" +msgstr "CRC32-Inkonsistens (SFV-kontrol)" + +msgid "A file with different tth root already exists in the queue" +msgstr "Filer med forskellige st�ser (TTH)" + +msgid "TLS disabled, no certificate file set" +msgstr "TLS deaktivert, ingen certifikatfil angivet" + +msgid "No slots available" +msgstr "Ingen ledige slots" + +msgid "Error during compression" +msgstr "Fejl under komprimering" + +msgid "Disconnected" +msgstr "Forbindelsen er afbrudt!!!" + +msgid "Hash database rebuilt" +msgstr "Hash databasen er genopbygget" + +msgid "The socks server failed establish a connection" +msgstr "Socks-serveren kunne ikke oprette en forbindelse" + +msgid "File list refresh initiated" +msgstr "Fillisten opdatering er sat i gang..." + +msgid "Virtual directory name already exists" +msgstr "Virtuel mappe navn eksister allerede..." + +msgid "Full tree does not match TTH root" +msgstr "Downloaded TTH tr�atcher ikke TTH roden" + +msgid "Shared Files" +msgstr "Delte filer" + +msgid "No directory specified" +msgstr "Ingen mappe defineret..!" + +msgid "Unable to read hash data file" +msgstr "Kan ikke l� denne TTH-fil" + +msgid "A file of equal or larger size already exists at the target location" +msgstr "En fil af samme st�se eller st�findes allerede p�en angivne placering" + +msgid "This file is already queued" +msgstr "Filen finnes allerede i downloadk�!" + +msgid "Kick user(s)" +msgstr "Spark bruger(e)" + +msgid "File not available" +msgstr "Fil er ikke tilg�elig..!" + +msgid "Directory already shared" +msgstr "Mappen er allerede delt!" + +msgid "Certificate not trusted, unable to connect" +msgstr "Certifikatet er ikke gyldigt, kunne ikke Oprette forbindelse" + +msgid "A file with the same hash already exists in your share" +msgstr "En fil med den samme hash eksisterer i din deling!" + +msgid "Generated new TLS certificate" +msgstr "Skab TLS certifikat" + +msgid "Failed to load certificate file" +msgstr "Fejlede ved indl�ing af Certifikat!" + +msgid "File list refresh finished" +msgstr "Fillisten er opdater�.." + Added: dcplusplus/trunk/dcpp/po/fr.po =================================================================== --- dcplusplus/trunk/dcpp/po/fr.po (rev 0) +++ dcplusplus/trunk/dcpp/po/fr.po 2008-01-30 21:19:30 UTC (rev 982) @@ -0,0 +1,145 @@ + +# French translations for the DC++ package. +# Copyright (C) 2008 The translators +# This file is distributed under the same license as the DC++ package. +# <sp...@us...>, 2008. +# +msgid "" +msgstr "" +"Project-Id-Version: dcpp\n" +"Report-Msgid-Bugs-To: dcp...@li...\n" +"Last-Translator: <sp...@us...>\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" + +msgid "Socks server authentication failed (bad login / password?)" +msgstr "Echec de l'authentification serveur Socks (mauvais login / mot-de-passe?)" + +msgid "The socks server doesn't support login / password authentication" +msgstr "Le serveur Socks server ne supporte pas l'autentifiaction login / mot-de-passe" + +msgid "The temporary download directory cannot be shared" +msgstr "Le répertoire des temporaires ne peut être partagé" + +msgid "Maximum command length exceeded" +msgstr "Dépassement de la longueur maximale de la commande" + +msgid "More data was sent than was expected" +msgstr "Plus de données ont été envoyées que ce qu'il était attendu" + +msgid "You're trying to download from yourself!" +msgstr "Vous essayez de télécharger sur vous-même!" + +msgid "Offline" +msgstr "Non connecté" + +msgid "Failed to load private key" +msgstr "Echec de chargement de la clef privée" + +msgid "Not listening for connections - please restart DC++" +msgstr "Pas en écoute pour les connexions - veuillez relancer DC++0.699" + +msgid "Hash database" +msgstr "Hachage de la base de données" + +msgid "All download slots taken" +msgstr "Tous les slots sont pris" + +msgid "Redirect user(s)" +msgstr "Rediriger utilisateur(s)" + +msgid "Target filename too long" +msgstr "Nom du fichier cible trop long" + +msgid "Connection timeout" +msgstr "Temps d'attente dépassé" + +msgid "The socks server requires authentication" +msgstr "Le serveur Socks requiert une authentication" + +msgid "A file with a different size already exists in the queue" +msgstr "Un fichier d'une taille différente existe déjà dans la file d'attente" + +msgid "Error during decompression" +msgstr "Erreur pendant la décompression" + +msgid "CRC32 inconsistency (SFV-Check)" +msgstr "Incompatibilité CRC32 (Contrôle SFV)" + +msgid "A file with different tth root already exists in the queue" +msgstr "Un fichier avec une racine tth différente existe déjà dans la file d'attente" + +msgid "TLS disabled, no certificate file set" +msgstr "TLS désactivé, pas de fichier certificat" + +msgid "No slots available" +msgstr "Pas de slot disponible" + +msgid "Error during compression" +msgstr "Erreur pendant la compression" + +msgid "Disconnected" +msgstr "Déconnecté" + +msgid "Hash database rebuilt" +msgstr "Hache de la base de données reconstruite" + +msgid "Remove all subdirectories before adding this one" +msgstr "Retirer tous les sous-répertoires avant d'ajouter celui-çi" + +msgid "File list refresh initiated" +msgstr "Rafraîchissement de la liste initialisé" + +msgid "Virtual directory name already exists" +msgstr "Nom de répertoire virtuel déjà existant" + +msgid "Full tree does not match TTH root" +msgstr "Toute l'arborescence ne trouve pas de racine TTH" + +msgid "Shared Files" +msgstr "Fichier Partagés" + +msgid "No directory specified" +msgstr "Pas de répertoire spécifié" + +msgid "Unable to read hash data file" +msgstr "Ne parvient pas à lire la Hache de la base de données" + +msgid "A file of equal or larger size already exists at the target location" +msgstr "Un fichier d'une taille égale ou supérieure existe déjà à l'emplacement du fichier cible" + +msgid "This file is already queued" +msgstr "Ce fichier est déjà mis en file d'attente de téléchargement" + +msgid "Unable to create thread" +msgstr "Ne parvient pas à créer le thread" + +msgid "Kick user(s)" +msgstr "Kicker utilisateur(s)" + +msgid "File not available" +msgstr "Fichier indisponible" + +msgid "The socks server failed establish a connection" +msgstr "Le serveur Socks a échoué à établir une connexion" + +msgid "Directory already shared" +msgstr "Répertoire déjà partagé" + +msgid "Download Queue" +msgstr "File d'attente Téléchargements" + +msgid "Certificate not trusted, unable to connect" +msgstr "Le certificat n'est pas De Confiance, ne parvient pas à se connecter" + +msgid "A file with the same hash already exists in your share" +msgstr "Un fichier ayant la même Hache existe déjà dans votre share" + +msgid "Failed to load certificate file" +msgstr "Echec de chargement du fichier certificat" + +msgid "File list refresh finished" +msgstr "Rafraîchissement de la liste terminé" + Added: dcplusplus/trunk/dcpp/po/id.po =================================================================== --- dcplusplus/trunk/dcpp/po/id.po (rev 0) +++ dcplusplus/trunk/dcpp/po/id.po 2008-01-30 21:19:30 UTC (rev 982) @@ -0,0 +1,121 @@ + +# Indonesian translations for the DC++ package. +# Copyright (C) 2008 The translators +# This file is distributed under the same license as the DC++ package. +# <dod...@us...>, 2008. +# +msgid "" +msgstr "" +"Project-Id-Version: dcpp\n" +"Report-Msgid-Bugs-To: dcp...@li...\n" +"Last-Translator: <dod...@us...>\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: plurals=2; plural=(n != 1);\n" + +msgid "Socks server authentication failed (bad login / password?)" +msgstr "Autentikasi server sock gagal (username / password salah?)" + +msgid "The socks server doesn't support login / password authentication" +msgstr "Server sock tidak mendukung autentikai user / password" + +msgid "The socks server requires authentication" +msgstr "Server sock membutuhkan autentikasi" + +msgid "More data was sent than was expected" +msgstr "Lebih banyak data dikirim dari yang diharapkan" + +msgid "You're trying to download from yourself!" +msgstr "Anda mengunduh dari diri sendiri!" + +msgid "Offline" +msgstr "Terputus" + +msgid "Hash database" +msgstr "Hash-kan basis data" + +msgid "All download slots taken" +msgstr "Semua slot unduh terpakai" + +msgid "Redirect user(s)" +msgstr "Redirect pengguna" + +msgid "Target filename too long" +msgstr "Nama arsip tujuan terlalu panjang" + +msgid "Connection timeout" +msgstr "Sambungan timeout" + +msgid "A file with a different size already exists in the queue" +msgstr "Sebuah arsip dengan ukuran lain telah ada di antrian" + +msgid "Error during decompression" +msgstr "Kesalahan saat pemuaian" + +msgid "CRC32 inconsistency (SFV-Check)" +msgstr "Inkonsistensi CRC32 (Pemeriksaan SFV)" + +msgid "A file with different tth root already exists in the queue" +msgstr "Sebuah arsip dengan tth root lain telah ada di antrian" + +msgid "No slots available" +msgstr "Slot tidak tersedia" + +msgid "Error during compression" +msgstr "Kesalahan pada pemampatan" + +msgid "Disconnected" +msgstr "Terputus" + +msgid "Hash database rebuilt" +msgstr "Basis data hash telah dibuat ulang" + +msgid "Remove all subdirectories before adding this one" +msgstr "Hapus semua subdirektori sebelum menambah ini" + +msgid "File list refresh initiated" +msgstr "Pembaharuan daftar arsip diinisiasi" + +msgid "Virtual directory name already exists" +msgstr "Nama direktori semu telah ada" + +msgid "Full tree does not match TTH root" +msgstr "Pohon yang diunduh tidak cocok dengan TTH root" + +msgid "Shared Files" +msgstr "Arsip Ter-Share" + +msgid "No directory specified" +msgstr "Direktori tidak diberikan" + +msgid "A file of equal or larger size already exists at the target location" +msgstr "Sebuah arsip berukuran sama atau lebih besar sudah ada di lokasi tujuan" + +msgid "Unable to create thread" +msgstr "Gagal menciptakan thread" + +msgid "Kick user(s)" +msgstr "Tendang pengguna" + +msgid "File not available" +msgstr "Arsip tidak tersedia" + +msgid "The socks server failed establish a connection" +msgstr "Server sock gagal menjalin koneksi" + +msgid "Directory already shared" +msgstr "Direktori telah dishare" + +msgid "Download Queue" +msgstr "Antrian Unduh" + +msgid "The temporary download directory cannot be shared" +msgstr "Direktori unduh sementara tidak boleh di-share" + +msgid "A file with the same hash already exists in your share" +msgstr "Arsip dengan hash yang sama sudah ada di share Anda" + +msgid "File list refresh finished" +msgstr "Pembaharuan daftar arsip telah selesai" + Added: dcplusplus/trunk/dcpp/po/it.po =================================================================== --- dcplusplus/trunk/dcpp/po/it.po (rev 0) +++ dcplusplus/trunk/dcpp/po/it.po 2008-01-30 21:19:30 UTC (rev 982) @@ -0,0 +1,154 @@ + +# Italian translations for the DC++ package. +# Copyright (C) 2008 The translators +# This file is distributed under the same license as the DC++ package. +# <vec...@us...>, 2008. +# +msgid "" +msgstr "" +"Project-Id-Version: dcpp\n" +"Report-Msgid-Bugs-To: dcp...@li...\n" +"Last-Translator: <vec...@us...>\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +msgid "Socks server authentication failed (bad login / password?)" +msgstr "Autenticazione del server Socks fallita (nome utente /password non validi?)" + +msgid "The socks server doesn't support login / password authentication" +msgstr "Il server socks non riconosce l'utente / autenticazione password" + +msgid "Invalid size" +msgstr "Grandezza non valida" + +msgid "The temporary download directory cannot be shared" +msgstr "La cartella di download temporanea non può essere condivisa" + +msgid "Maximum command length exceeded" +msgstr "Superata massima lunghezza comando" + +msgid "More data was sent than was expected" +msgstr "Sono stati inviati più dati di quanto previsto" + +msgid "You're trying to download from yourself!" +msgstr "Stai cercando di scaricare da te stesso!" + +msgid "Offline" +msgstr "Offline" + +msgid "Failed to load private key" +msgstr "Impossibile caricare il codice privato" + +msgid "Target removed" +msgstr "File di destinazione rimosso" + +msgid "Not listening for connections - please restart DC++" +msgstr "Nessun ascolto per la connessione - riavviare DC++" + +msgid "Hash database" +msgstr "Archivio hash" + +msgid "All download slots taken" +msgstr "Tutti gli slot per il download occupati" + +msgid "Redirect user(s)" +msgstr "Reindirizza utente(i)" + +msgid "Target filename too long" +msgstr "Nome file di destinazione troppo lungo" + +msgid "Connection timeout" +msgstr "Connessione in timeout" + +msgid "The socks server requires authentication" +msgstr "Il server socks richiede l'autenticazione" + +msgid "A file with a different size already exists in the queue" +msgstr "Nei Download in Coda esiste già un file di dimensione differente" + +msgid "Error during decompression" +msgstr "Errore durante la decompressione" + +msgid "CRC32 inconsistency (SFV-Check)" +msgstr "Inconsistenza CRC32 (Controllo SFV)" + +msgid "A file with different tth root already exists in the queue" +msgstr "Nei Download in Coda esiste già un file con TTH root differente" + +msgid "TLS disabled, no certificate file set" +msgstr "TLS disattivato, file certificato non impostato" + +msgid "No slots available" +msgstr "Nessuno slot disponibile" + +msgid "Error during compression" +msgstr "Errore durante la compressione" + +msgid "Disconnected" +msgstr "Disconnesso" + +msgid "Hash database rebuilt" +msgstr "Ricostruzione archivio hash" + +msgid "Remove all subdirectories before adding this one" +msgstr "Elimina tutte le sottocartelle prima di aggiungere questa" + +msgid "File list refresh initiated" +msgstr "Aggiornamento elenco file condivisi iniziato" + +msgid "Virtual directory name already exists" +msgstr "Nome cartella virtuale gi�sistente" + +msgid "Full tree does not match TTH root" +msgstr "L'albero delle cartelle non è coerente con la radice TTH" + +msgid "Shared Files" +msgstr "File Condivisi" + +msgid "No directory specified" +msgstr "Nessuna cartella specificata" + +msgid "Unable to read hash data file" +msgstr "Impossibile leggere dati hash del file" + +msgid "A file of equal or larger size already exists at the target location" +msgstr "Nella cartella di destinazione esiste già un file di dimensioni uguali o maggiori" + +msgid "This file is already queued" +msgstr "Questo file è già in coda" + +msgid "Unable to create thread" +msgstr "Impossibile creare la discussione" + +msgid "Kick user(s)" +msgstr "Blocca utente(i)" + +msgid "File not available" +msgstr "File non disponibile" + +msgid "The socks server failed establish a connection" +msgstr "Il server socks ha fallito nello stabilire una connessione" + +msgid "Directory already shared" +msgstr "Cartella già condivisa" + +msgid "Download Queue" +msgstr "Download in Coda" + +msgid "Certificate not trusted, unable to connect" +msgstr "Certificato non valido, impossibile connettersi" + +msgid "A file with the same hash already exists in your share" +msgstr "Esiste già un file con lo stesso TTH nei tuoi file condivisi" + +msgid "Generated new TLS certificate" +msgstr "Creato nuovo certificato TLS" + +msgid "Failed to load certificate file" +msgstr "Impossibile caricare il file certificato" + +msgid "File list refresh finished" +msgstr "Aggiornamento elenco file condivisi completato" + Added: dcplusplus/trunk/dcpp/po/km.po =================================================================== --- dcplusplus/trunk/dcpp/po/km.po (rev 0) +++ dcplusplus/trunk/dcpp/po/km.po 2008-01-30 21:19:30 UTC (rev 982) @@ -0,0 +1,124 @@ + +# Khmer translations for the DC++ package. +# Copyright (C) 2008 The translators +# This file is distributed under the same license as the DC++ package. +# <Vey...@us...>, 2008. +# +msgid "" +msgstr "" +"Project-Id-Version: dcpp\n" +"Report-Msgid-Bugs-To: dcp...@li...\n" +"Last-Translator: <Vey...@us...>\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: plurals=2; plural=(n != 1);\n" + +msgid "Socks server authentication failed (bad login / password?)" +msgstr "ការផ្ទៀងផ្ទាត់ភាពត្រឹមត្រូវនៃរន្ធម៉ាស៊ីនបម្រើ បានបរាជ័យ (ឈ្មោះ / ពាក្យសម្ងាត់ មិនត្រឹមត្រូវ?)" + +msgid "The socks server doesn't support login / password authentication" +msgstr "រន្ធម៉ាស៊ីនបម្រើមិនគាំទ្រការផ្ទៀងផ្ទាត់ភាពត្រឹមត្រូវនៃ ឈ្មោះ / ពាក្យសម្ងាត់" + +msgid "Unable to read hash data file" +msgstr "មិនអាចអានឯកសារទិន្នន័យច្របូកច្របល់" + +msgid "More data was sent than was expected" +msgstr "ទិន្នន័យជាច្រើនត្រូវបានផ្ញើហួសពីការរំពឹងទុក" + +msgid "You're trying to download from yourself!" +msgstr "អ្នកកំពុងតែសាកល្បងទាញយកពីខ្លួនឯង!" + +msgid "Offline" +msgstr "ក្រៅបណ្តាញ" + +msgid "Hash database" +msgstr "មូលដ្ឋានទិន្នន័យច្របូកច្របល់" + +msgid "All download slots taken" +msgstr "ប្រលោះទាញយកទាំងអស់ គ្មានទំនេរ" + +msgid "Redirect user(s)" +msgstr "ប្តូរទិសអ្នកប្រើ" + +msgid "Target filename too long" +msgstr "ឈ្មោះឯកសារគោលដៅវែងណាស់" + +msgid "Connection timeout" +msgstr "ការតភ្ជាប់ អស់ពេល" + +msgid "A file with a different size already exists in the queue" +msgstr "ឯកសារដែលមានទំហំខុសគ្នា មានរួចហើយនៅក្នុងជួរ" + +msgid "Error during decompression" +msgstr "កំហុសនៅពេលមិនបានបង្ហាប់" + +msgid "CRC32 inconsistency (SFV-Check)" +msgstr "CRC32 មិនខ្ជាប់ខ្ជួន (SFV-ត្រួតពិនិត្យ)" + +msgid "A file with different tth root already exists in the queue" +msgstr "ឯកសារដែលមានឫស tth ខុសគ្នា មានរួចហើយនៅក្នុងជួរ" + +msgid "No slots available" +msgstr "គ្មានប្រលោះដែលអាចរកបាន" + +msgid "Error during compression" +msgstr "កំហុសនៅពេលបង្ហាប់" + +msgid "Disconnected" +msgstr "បានផ្តាច់" + +msgid "Hash database rebuilt" +msgstr "មូលដ្ឋានទិន្នន័យច្របូកច្របល់ បានស្ថាបនាឡើងវិញ" + +msgid "Remove all subdirectories before adding this one" +msgstr "យកថតក្រូណូរងចេញទាំងអស់ មុននឹងបន្ថែមមួយនេះ" + +msgid "File list refresh initiated" +msgstr "បញ្ជីឯកសារដែលធ្វើអោយស្រស់ បានផ្តើមថ្មី" + +msgid "Virtual directory name already exists" +msgstr "ឈ្មោះថតក្រូណូនិម្មិត មានរួចហើយ" + +msgid "Full tree does not match TTH root" +msgstr "មែកធាងពេញលេញ មិនអាចផ្គុផ្គងនឹងឫស TTH" + +msgid "Shared Files" +msgstr "បានចែករំលែកឯកសារ" + +msgid "No directory specified" +msgstr "គ្មានថតក្រូណូបញ្ជាក់លម្អិត" + +msgid "The socks server requires authentication" +msgstr "រន្ធម៉ាស៊ីនបម្រើតម្រូវអោយមានការផ្ទៀងផ្ទាត់ភាពត្រឹមត្រូវ" + +msgid "A file of equal or larger size already exists at the target location" +msgstr "ទំហំឯកសារដែលប៉ុនគ្នា ឬ ធំជាង គឺមានរួចហើយនៅឯទីតាំងគោលដៅ" + +msgid "Unable to create thread" +msgstr "មិនអាចបង្កើតខ្សែស្រឡាយ" + +msgid "Kick user(s)" +msgstr "ទាត់អ្នកប្រើចេញ" + +msgid "File not available" +msgstr "ឯកសារពុំអាចរកបាន" + +msgid "The socks server failed establish a connection" +msgstr "រន្ធម៉ាស៊ីនបម្រើបរាជ័យក្នុងការបង្កើតការតភ្ជាប់" + +msgid "Directory already shared" +msgstr "ថតក្រូណូបានចែករំលែករួចហើយ" + +msgid "Download Queue" +msgstr "ទាញយកដាក់ជាជួរ" + +msgid "The temporary download directory cannot be shared" +msgstr "ថតក្រូណូដែលទាញយកជាបណ្តោះអាសន្ន មិនអាចត្រូវបានចែករំលែក" + +msgid "A file with the same hash already exists in your share" +msgstr "ឯកសារដែលច្របូកច្របល់ដូចគ្នានេះ មានរួចហើយនៅក្នុងទីចែករំលែករបស់អ្នក" + +msgid "File list refresh finished" +msgstr "បញ្ជីឯកសារដែលធ្វើអោយស្រស់ បានបញ្ចប់" + Added: dcplusplus/trunk/dcpp/po/pl.po =================================================================== --- dcplusplus/trunk/dcpp/po/pl.po (rev 0) +++ dcplusplus/trunk/dcpp/po/pl.po 2008-01-30 21:19:30 UTC (rev 982) @@ -0,0 +1,148 @@ + +# Polish translations for the DC++ package. +# Copyright (C) 2008 The translators +# This file is distributed under the same license as the DC++ package. +# <k4...@us...>, 2008. +# +msgid "" +msgstr "" +"Project-Id-Version: dcpp\n" +"Report-Msgid-Bugs-To: dcp...@li...\n" +"Last-Translator: <k4...@us...>\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" + +msgid "Socks server authentication failed (bad login / password?)" +msgstr "Błąd autoryzacji serwera SOCKS (nieprawidłowy login/hasło)" + +msgid "The socks server doesn't support login / password authentication" +msgstr "Serwer SOCKS nie obsługuje autoryzacji login/hasło" + +msgid "The temporary download directory cannot be shared" +msgstr "Katalog plików tymczasowych nie może być udostępniony" + +msgid "Maximum command length exceeded" +msgstr "Przekroczono maksymalną długość komendy" + +msgid "More data was sent than was expected" +msgstr "Więcej danych wysłano niż oczekiwano" + +msgid "You're trying to download from yourself!" +msgstr "Próbujesz pobrać sam od siebie!" + +msgid "Offline" +msgstr "Niedostępny" + +msgid "Failed to load private key" +msgstr "Nie udało się wczytać klucza prywatnego" + +msgid "Not listening for connections - please restart DC++" +msgstr "Nie nasłuchuje połączeń - uruchom ponownie DC++" + +msgid "Hash database" +msgstr "Baza danych hashów" + +msgid "All download slots taken" +msgstr "Wszystkie sloty są zajęte" + +msgid "Redirect user(s)" +msgstr "Przekieruj użytkownika(ów)" + +msgid "Target filename too long" +msgstr "Za długa docelowa nazwa pliku" + +msgid "Connection timeout" +msgstr "Wygasł czas oczekiwania na połączenie" + +msgid "The socks server requires authentication" +msgstr "Serwer SOCKS wymaga autoryzacji" + +msgid "A file with a different size already exists in the queue" +msgstr "Plik o innym rozmiarze znajduje się już w kolejce pobierania" + +msgid "Error during decompression" +msgstr "Błąd podczas kompresowania" + +msgid "CRC32 inconsistency (SFV-Check)" +msgstr "Niezgodne CRC32 (sprawdź SFV)" + +msgid "A file with different tth root already exists in the queue" +msgstr "Plik o innym tth root znajduje się już w kolejce pobierania" + +msgid "TLS disabled, no certificate file set" +msgstr "TLS wyłączony. Nie ustalony certyfikat pliku" + +msgid "No slots available" +msgstr "Brak wolnych slotów" + +msgid "Error during compression" +msgstr "Błąd podczas kompresji" + +msgid "Disconnected" +msgstr "Rozłączony" + +msgid "Hash database rebuilt" +msgstr "Odbudowano bazę danych hashów" + +msgid "Remove all subdirectories before adding this one" +msgstr "Usuń wszystkie podkatalogi przed dodaniem tego" + +msgid "File list refresh initiated" +msgstr "Odświeżanie listy plików rozpoczęte" + +msgid "Virtual directory name already exists" +msgstr "Nazwa wirtualnego katalogu już istnieje" + +msgid "Full tree does not match TTH root" +msgstr "Drzewo katalogu nie odpowiada TTH" + +msgid "Shared Files" +msgstr "Udostępnione pliki" + +msgid "No directory specified" +msgstr "Brak zdefiniowanego katalogu" + +msgid "Unable to read hash data file" +msgstr "Błąd odczytu danych pliku hash" + +msgid "A file of equal or larger size already exists at the target location" +msgstr "Plik o tym samym lub większym rozmiarze znajduje się już w aktualnej lokalizacji" + +msgid "This file is already queued" +msgstr "Ten plik już jest na liście oczekujących" + +msgid "Unable to create thread" +msgstr "Nie można utworzyć wątku" + +msgid "Kick user(s)" +msgstr "Wykop użytkownika(ów)" + +msgid "File not available" +msgstr "Plik niedostępny" + +msgid "The socks server failed establish a connection" +msgstr "Serwer SOCKS nie ustanowił połączenia" + +msgid "Directory already shared" +msgstr "Katalog jest już udostępniony" + +msgid "Download Queue" +msgstr "Kolejka pobierania" + +msgid "Certificate not trusted, unable to connect" +msgstr "Certyfikat niepotwierdzony, nie można połaczyć" + +msgid "A file with the same hash already exists in your share" +msgstr "Plik z tym samym hashem jest już udostępniony" + +msgid "Generated new TLS certificate" +msgstr "Wygenerowany nowy ceryfikat TLS" + +msgid "Failed to load certificate file" +msgstr "Nie udało się wczytać pliku certyfikatu" + +msgid "File list refresh finished" +msgstr "Odświeżanie listy plików zakończone" + Added: dcplusplus/trunk/dcpp/po/pt.po =================================================================== --- dcplusplus/trunk/dcpp/po/pt.po (rev 0) +++ dcplusplus/trunk/dcpp/po/pt.po 2008-01-30 21:19:30 UTC (rev 982) @@ -0,0 +1,133 @@ + +# Portuguese translations for the DC++ package. +# Copyright (C) 2008 The translators +# This file is distributed under the same license as the DC++ package. +# <Is...@us...>, 2008. +# +msgid "" +msgstr "" +"Project-Id-Version: dcpp\n" +"Report-Msgid-Bugs-To: dcp...@li...\n" +"Last-Translator: <Is...@us...>\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +msgid "Socks server authentication failed (bad login / password?)" +msgstr "Autenticação no servidor socks falhou (verifique o nome de utilizador e a palavra-passe)" + +msgid "The socks server doesn't support login / password authentication" +msgstr "O servidor socks não suporta autenticação" + +msgid "The temporary download directory cannot be shared" +msgstr "A pasta dos Downloads temporários não pode ser partilhada" + +msgid "More data was sent than was expected" +msgstr "Foram enviados mais dados que julgado inicialmente" + +msgid "You're trying to download from yourself!" +msgstr "Está a tentar transferir de si próprio!" + +msgid "Offline" +msgstr "Desligado" + +msgid "Failed to load private key" +msgstr "Falha ao carregar a chave privada" + +msgid "Hash database" +msgstr "Hash da base de dados " + +msgid "All download slots taken" +msgstr "Todos as slots estão ocupadas" + +msgid "Redirect user(s)" +msgstr "Redireccionar Utilizador(es)" + +msgid "Target filename too long" +msgstr "Nome do ficheiro de destino demasiado longo" + +msgid "Connection timeout" +msgstr "Tempo de ligação excedido" + +msgid "The socks server requires authentication" +msgstr "O servidor socks requer autenticação" + +msgid "A file with a different size already exists in the queue" +msgstr "Um ficheiro com tamanho diferente já existe na lista de espera" + +msgid "Error during decompression" +msgstr "Erro ao descomprimir" + +msgid "CRC32 inconsistency (SFV-Check)" +msgstr "Inconsistência CRC32 (Controlo SFV)" + +msgid "A file with different tth root already exists in the queue" +msgstr "Um ficheiro TTH diferente já existe na lista de espera" + +msgid "No slots available" +msgstr "Nenhuma slot disponível" + +msgid "Error during compression" +msgstr "Erro ao comprimir" + +msgid "Disconnected" +msgstr "Desligado" + +msgid "Hash database rebuilt" +msgstr "Hash da base de dados reconstruído " + +msgid "Remove all subdirectories before adding this one" +msgstr "Remova todas as subpastas antes de adicionar esta" + +msgid "File list refresh initiated" +msgstr "Iniciou a actualização da lista de ficheiros" + +msgid "Virtual directory name already exists" +msgstr "O nome da Pasta Virtual já existe" + +msgid "Full tree does not match TTH root" +msgstr "Caminho invalido para a hash TTH" + +msgid "Shared Files" +msgstr "Ficheiros partilhados" + +msgid "No directory specified" +msgstr "Nenhuma pasta especificada" + +msgid "Unable to read hash data file" +msgstr "Impossível de ler a informação da hash" + +msgid "A file of equal or larger size already exists at the target location" +msgstr "Um ficheiro com tamanho igual ou superior já existe na pasta de destino" + +msgid "Unable to create thread" +msgstr "Impossível criar Thread" + +msgid "Kick user(s)" +msgstr "Kickar Utilizador(es)" + +msgid "File not available" +msgstr "Ficheiro indisponível" + +msgid "The socks server failed establish a connection" +msgstr "Ligação ao servidor socks falhou" + +msgid "Directory already shared" +msgstr "Pasta já partilhada" + +msgid "Download Queue" +msgstr "Lista de Espera" + +msgid "Certificate not trusted, unable to connect" +msgstr "Certificado inactivo, impossível de conectar" + +msgid "A file with the same hash already exists in your share" +msgstr "Um ficheiro com a mesma Hash já existe na sua partilha" + +msgid "Failed to load certificate file" +msgstr "Falha ao carregar o ficheiro do certificado" + +msgid "File list refresh finished" +msgstr "Acabou a actualização da lista de ficheiros" + Added: dcplusplus/trunk/dcpp/po/ro.po =================================================================== --- dcplusplus/trunk/dcpp/po/ro.po (rev 0) +++ dcplusplus/trunk/dcpp/po/ro.po 2008-01-30 21:19:30 UTC (rev 982) @@ -0,0 +1,154 @@ + +# Romanian translations for the DC++ package. +# Copyright (C) 2008 The translators +# This file is distributed under the same license as the DC++ package. +# <mun...@us...>, 2008. +# +msgid "" +msgstr "" +"Project-Id-Version: dcpp\n" +"Report-Msgid-Bugs-To: dcp...@li...\n" +"Last-Translator: <mun...@us...>\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=3; plural=n==1 ? 0 : (n==0 || (n%100 > 0 && n%100 < 20)) ? 1 : 2;\n" + +msgid "Socks server authentication failed (bad login / password?)" +msgstr "Autentificarea serverului de socluri [socks] a eșuat (logare greșită / parola?)" + +msgid "The socks server doesn't support login / password authentication" +msgstr "Serverul de socluri nu suportă logarea / autentificarea parolei" + +msgid "Invalid size" +msgstr "Mărime invalidă" + +msgid "The temporary download directory cannot be shared" +msgstr "Dosarul de descărcare temporară nu poate fi partajat" + +msgid "Maximum command length exceeded" +msgstr "Depășire lungime maximă a comenzii" + +msgid "More data was sent than was expected" +msgstr "Au fost transmise mai multe date decît se aștepta" + +msgid "You're trying to download from yourself!" +msgstr "Încercați să descărcați de la dv. înșivă!" + +msgid "Offline" +msgstr "Neconectat" + +msgid "Failed to load private key" +msgstr "Incărcarea cheii private a eșuat" + +msgid "Target removed" +msgstr "Țintă înlăturată" + +msgid "Not listening for connections - please restart DC++" +msgstr "Nu sînt ascultate conexiunile - reporniți DC++" + +msgid "Hash database" +msgstr "Hașează baza de date" + +msgid "All download slots taken" +msgstr "Toate sloturile de descărcare sînt ocupate" + +msgid "Redirect user(s)" +msgstr "Redirectionează utilizatorul(ii)" + +msgid "Target filename too long" +msgstr "Numele fișierului-țintă e prea lung" + +msgid "Connection timeout" +msgstr "Conexiune Expirată" + +msgid "The socks server requires authentication" +msgstr "Serverul de socluri [socks] necesită autentificare" + +msgid "A file with a different size already exists in the queue" +msgstr "Un fișier cu o mărime diferită există deja în coadă" + +msgid "Error during decompression" +msgstr "Eroare în cursul decomprimării" + +msgid "CRC32 inconsistency (SFV-Check)" +msgstr "Inconsistență CRC32 (Verificare SFV)" + +msgid "A file with different tth root already exists in the queue" +msgstr "Un fișier cu o rădăcina TTH diferită există deja în coadă" + +msgid "TLS disabled, no certificate file set" +msgstr "TLS e dezactivat, nu e setat fișierul-certificat" + +msgid "No slots available" +msgstr "Nici un slot disponibil" + +msgid "Error during compression" +msgstr "Eroare în cursul comprimării" + +msgid "Disconnected" +msgstr "Deconectat" + +msgid "Hash database rebuilt" +msgstr "Baza de date de hașare a fost reclădită" + +msgid "Remove all subdirectories before adding this one" +msgstr "Înlătură toate dosarele înainte de a-l adăuga pe acesta" + +msgid "File list refresh initiated" +msgstr "Reîmprospătarea listei de fișiere a fost inițiată" + +msgid "Virtual directory name already exists" +msgstr "Numele dosarului virtual există deja" + +msgid "Full tree does not match TTH root" +msgstr "Arborele complet nu se potrivește cu rădacina TTH" + +msgid "Shared Files" +msgstr "Fișiere Partajate" + +msgid "No directory specified" +msgstr "Nici un dosar specificat" + +msgid "Unable to read hash data file" +msgstr "Citirea fișierului cu date de hașare nu e posibilă" + +msgid "A file of equal or larger size already exists at the target location" +msgstr "Un fișier cu o mărime egală sau mai mare există deja la destinația-țintă" + +msgid "This file is already queued" +msgstr "Acest fișier există deja în coadă" + +msgid "Unable to create thread" +msgstr "Nu reușesc să creez firul" + +msgid "Kick user(s)" +msgstr "Izgonește utilizator(i)" + +msgid "File not available" +msgstr "Fișierul nu e disponibil" + +msgid "The socks server failed establish a connection" +msgstr "Serverul de socluri a eșuat în stabilirea unei conexiuni" + +msgid "Directory already shared" +msgstr "Dosar partajat deja" + +msgid "Download Queue" +msgstr "Coada de Descărcare" + +msgid "Certificate not trusted, unable to connect" +msgstr "Certificatul nu e de încredere, conectarea nu e posibilă" + +msgid "A file with the same hash already exists in your share" +msgstr "Un fișier cu haș identic există deja în partajul dv." + +msgid "Generated new TLS certificate" +msgstr "Generează certificat TLS nou" + +msgid "Failed to load certificate file" +msgstr "Incărcarea fișierului certificat a eșuat" + +msgid "File list refresh finished" +msgstr "Reîmprospătarea listei de fișiere s-a încheiat" + Added: dcplusplus/trunk/dcpp/po/sl.po =================================================================== --- dcplusplus/trunk/dcpp/po/sl.po (rev 0) +++ dcplusplus/trunk/dcpp/po/sl.po 2008-01-30 21:19:30 UTC (rev 982) @@ -0,0 +1,145 @@ + +# Slovenian translations for the DC++ package. +# Copyright (C) 2008 The translators +# This file is distributed under the same license as the DC++ package. +# <Pri...@us...>, 2008. +# +msgid "" +msgstr "" +"Project-Id-Version: dcpp\n" +"Report-Msgid-Bugs-To: dcp...@li...\n" +"Last-Translator: <Pri...@us...>\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n%100==4 ? 2 : 3);\n" + +msgid "Socks server authentication failed (bad login / password?)" +msgstr "Overjanje na socks strežniku spodletelo (napačno uporabniško ime / geslo?)" + +msgid "The socks server doesn't support login / password authentication" +msgstr "Socks strežnik ne podpira overjanje uporabnika / gesla" + +msgid "The temporary download directory cannot be shared" +msgstr "Začasni download direktorij ni mogoče deliti" + +msgid "Maximum command length exceeded" +msgstr "Max dolžina za ukaz presežena" + +msgid "More data was sent than was expected" +msgstr "Več podatkov je bilo poslano kot pričakovano" + +msgid "You're trying to download from yourself!" +msgstr "Poizkušaš prenašati od samega sebe!" + +msgid "Offline" +msgstr "Offline" + +msgid "Failed to load private key" +msgstr "Napaka pri nalaganju zasebnega ključa" + +msgid "Not listening for connections - please restart DC++" +msgstr "Ne sprejemam povezav - potrebeno je restartati DC++" + +msgid "Hash database" +msgstr "Hash baza" + +msgid "All download slots taken" +msgstr "Vse reže/sloti za prenos so zasedeni" + +msgid "Redirect user(s)" +msgstr "Preusmeri uporabnika(e)" + +msgid "Target filename too long" +msgstr "Ime ciljne datoteke je predolgo" + +msgid "Connection timeout" +msgstr "Časovna omejitev za povezavo je potekla" + +msgid "The socks server requires authentication" +msgstr "Socks strežnik potrebuje overjanje" + +msgid "A file with a different size already exists in the queue" +msgstr "Datoteka druge velikosti že obstaja v čakalni vrsti" + +msgid "Error during decompression" +msgstr "Napaka med razširjevanjem" + +msgid "CRC32 inconsistency (SFV-Check)" +msgstr "CRC32 neskadnost (SFV-preverjanje)" + +msgid "A file with different tth root already exists in the queue" +msgstr "Datoteka z drugim tthjem že obstaja v čakalni vrsti" + +msgid "TLS disabled, no certificate file set" +msgstr "TLS onemogočen, nastavi listo z cerfitikati" + +msgid "No slots available" +msgstr "Ni prostih rež(slotov)" + +msgid "Error during compression" +msgstr "Napaka med stiskanjem" + +msgid "Disconnected" +msgstr "Ni povezan" + +msgid "Hash database rebuilt" +msgstr "Hash baza obnovljena" + +msgid "Remove all subdirectories before adding this one" +msgstr "Odstrani vse podmape, preden dodaš to" + +msgid "File list refresh initiated" +msgstr "Osveževanje liste datotek inicializirano" + +msgid "Virtual directory name already exists" +msgstr "Direktorij/mapa že ima navidezno ime" + +msgid "Full tree does not match TTH root" +msgstr "Celotno drevo se ne ujema v TTH" + +msgid "Shared Files" +msgstr "Deljene datoteke" + +msgid "No directory specified" +msgstr "Ni izbranega direktorija" + +msgid "Unable to read hash data file" +msgstr "Ne morem prebrati hash datoteke" + +msgid "A file of equal or larger size already exists at the target location" +msgstr "Datoteka z enako ali večjo velikostjo že obstaja v ciljni lokacijin" + +msgid "This file is already queued" +msgstr "Ta datoteka je že v čakalni vrsti" + +msgid "Unable to create thread" +msgstr "Niti ni možno ustvariti" + +msgid "Kick user(s)" +msgstr "Brcni uporabnika(e)" + +msgid "File not available" +msgstr "Datoteka ni na voljo" + +msgid "The socks server failed establish a connection" +msgstr "Socks strežnik ni uspel vzpostaviti povezave" + +msgid "Directory already shared" +msgstr "Imenik že v deljenju" + +msgid "Download Queue" +msgstr "Čakalna Vrsta" + +msgid "Certificate not trusted, unable to connect" +msgstr "Cerfitikat ni veljaven, ne morem povezati" + +msgid "A file with the same hash already exists in your share" +msgstr "Datoteka z istim hashom je že v deljenju" + +msgid "Failed to load certificate file" +msgstr "Napaka pri nalaganju datoteke s cerfitikati" + +msgid "File list refresh finished" +msgstr "Osveževanje liste datotek končano" + Added: dcplusplus/trunk/dcpp/po/sq.po =================================================================== --- dcplusplus/trunk/dcpp/po/sq.po (rev 0) +++ dcplusplus/trunk/dcpp/po/sq.po 2008-01-30 21:19:30 UTC (rev 982) @@ -0,0 +1,124 @@ + +# Albanian translations for the DC++ package. +# Copyright (C) 2008 The translators +# This file is distributed under the same license as the DC++ package. +# <rr...@us...>, 2008. +# +msgid "" +msgstr "" +"Project-Id-Version: dcpp\n" +"Report-Msgid-Bugs-To: dcp...@li...\n" +"Last-Translator: <rr...@us...>\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: plurals=2; plural=(n != 1);\n" + +msgid "Socks server authentication failed (bad login / password?)" +msgstr "Verifikimi i Socks serverit dështoi(fjalëkalimi apo emri i përdoruesit është gabim?)" + +msgid "The socks server doesn't support login / password authentication" +msgstr "Socks serveri s´e përkrah verifikimi e fjalëkalimit / përdoruesit " + +msgid "Unable to read hash data file" +msgstr "Data fili i TTH'së s`mund të lexohet" + +msgid "More data was sent than was expected" +msgstr "U dërguan më tepër informata se sa që pritej" + +msgid "You're trying to download from yourself!" +msgstr "Ty orvatesh të shkarkosh nga vetvetja!" + +msgid "Offline" +msgstr "Shkëputur" + +msgid "Hash database" +msgstr "TTH-indeksimi i bazës kompjuterike/dosjes" + +msgid "All download slots taken" +msgstr "Të gjitha kanalet për shkarkim janë të zëna" + +msgid "Redirect user(s)" +msgstr "Riorijento përdoruesin(-at)" + +msgid "Target filename too long" +msgstr "Emri i filit është shumë i gjatë" + +msgid "Connection timeout" +msgstr "Jashtëkohe(Timeout) gjatë lidhjes" + +msgid "A file with a different size already exists in the queue" +msgstr "Në listën e shkarkimeve egziston fili me madhësi tjetër" + +msgid "Error during decompression" +msgstr "Gabim gjatë ngjeshjes" + +msgid "CRC32 inconsistency (SFV-Check)" +msgstr "SFV-kontrolli dha një shumë kontroll të gabuar CRC32" + +msgid "A file with different tth root already exists in the queue" +msgstr "Në listën e shkarkimeve egziston një fil me një TTH-kontroll shumë tjetër" + +msgid "No slots available" +msgstr "Kanalet s`janë të arritshme/në dispozicion" + +msgid "Error during compression" +msgstr "Gabim gjatë ngjeshjes" + +msgid "Disconnected" +msgstr "Shkëputur" + +msgid "Hash database rebuilt" +msgstr "U rindërtua(përfundua)TTH-indeksimi i bazës kompjuterike(dosjes)" + +msgid "Remove all subdirectories before adding this one" +msgstr "Përpara se t`a vendosish këtë, zhvendos të gjitha nën-dosjet" + +msgid "File list refresh initiated" +msgstr "Fillon rifreskimi i listës së filit" + +msgid "Virtual directory name already exists" +msgstr "Emri viritual i dosjes egziston" + +msgid "Full tree does not match TTH root" +msgstr "Struktura e shkarkuar s`i përgjigjet TTH rrënjës" + +msgid "Shared Files" +msgstr "Filet e shpërndara" + +msgid "No directory specified" +msgstr "S´është caktuar asnjë dosje" + +msgid "The socks server requires authentication" +msgstr "Socks serveri kërkon verifikim" + +msgid "A file of equal or larger size already exists at the target location" +msgstr "Fili me madhësi të njejtë apo më të madhe gjindet ne vendin e caktuar" + +msgid "Unable to create thread" +msgstr "S`mund të krijon strukturë" + +msgid "Kick user(s)" +msgstr "Përjashto përdoruesin(at)" + +msgid "File not available" +msgstr "Fili s´është i arritshëm" + +msgid "The socks server failed establish a connection" +msgstr "Socks serveri dështoi në krijimi e kyçjes(lidhjes)" + +msgid "Directory already shared" +msgstr "Dosja i gatshëm për shpërndarje" + +msgid "Download Queue" +msgstr "Lista e shkarkimeve" + +msgid "The temporary download directory cannot be shared" +msgstr "Dosja me shkarkimet e pa përfunduara s´mund të shpërndahet" + +msgid "A file with the same hash already exists in your share" +msgstr "Në shpërndarjet e tua egziston(qysh prej më para) fili i grimcuar(me madhësi të njejtë)" + +msgid "File list refresh finished" +msgstr "Përfundon rifreskimi i listës së filit" + Added: dcplusplus/trunk/win32/po/da.po =================================================================== --- dcplusplus/trunk/win32/po/da.po (rev 0) +++ dcplusplus/trunk/win32/po/da.po 2008-01-30 21:19:30 UTC (rev 982) @@ -0,0 +1,1069 @@ + +# Danish translations for the DC++ package. +# Copyright (C) 2008 The translators +# This file is distributed under the same license as the DC++ package. +# <g2...@us...>, 2008. +# +msgid "" +msgstr "" +"Project-Id-Version: win32\n" +"Report-Msgid-Bugs-To: dcp...@li...\n" +"Last-Translator: <g2...@us...>\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +msgid "Slot granted" +msgstr "Ekstra slot tildelt" + +msgid "Run in background" +msgstr "K�baggrunden.." + +msgid "Guess user country from IP" +msgstr "Find brugerens land" + +msgid "Log main chat" +msgstr "Log main chat" + +msgid "Keep duplicate files in your file list" +msgstr "Inklud�duplikerede filer i min filliste (duplikerede filer t�er aldrig med i din deling)" + +msgid "Join/part of favorite users showing on" +msgstr "Ankomst/Afgang af favorit brugere visning sl� til" + +msgid "Notification sound" +msgstr "Notifikations lyd" + +msgid "Finished Uploads" +msgstr "F�ige oploads" + +msgid "File type" +msgstr "Filtype" + +msgid "Cipher" +msgstr "Tal" + +msgid "GiB" +msgstr "GB" + +msgid "Min sources online" +msgstr "Min kilder online" + +msgid "Outgoing connection settings" +msgstr "Udg�de forbindelses indstillinger" + +msgid "Popup box to input password for hubs" +msgstr "�en en dialog for at andgive password til hub(ben)" + +msgid "Log uploads" +msgstr "Log uploads" + +msgid "ADLSearch Properties" +msgstr "ASM Egenskaber" + +msgid "Directories" +msgstr "Mappe" + +msgid "Ready to search..." +msgstr "Klar til at s�." + +msgid "Autodrop settings" +msgstr "Auto fjern Indstillinger" + +msgid "Shared directories" +msgstr "Delte Mapper" + +msgid "Really exit?" +msgstr "Vil du virkelig afslutte DC++?" + +msgid "Tag" +msgstr "Tag" + +msgid "MAGNET Link detected" +msgstr "MAGNET link opdaget" + +msgid "Automatically disconnect users who leave the hub" +msgstr "Afbryd brugere som forlader hubben (ikke ved crash, du forlader den)" + +msgid "Use antifragmentation method for downloads" +msgstr "Benyt Antifragmentationsmetode til downloads" + +msgid "Remove source" +msgstr "Fjern kilde" + +msgid "Under what name you see the directory" +msgstr "Hvilket favorit navn?" + +msgid "Join/part of favorite users showing off" +msgstr "Ankomst/Afgang af favorit brugere visning sl� fra" + +msgid "Download Matches" +msgstr "Download Matches" + +msgid "Video" +msgstr "Video (avi, mov, mpg m.fl.)" + +msgid "Browse..." +msgstr "Gennemse..." + +msgid "Logging" +msgstr "Logging" + +msgid "Name under which the others see the directory" +msgstr "Under navnet af mappen som de andre ser" + +msgid "No new downloads if speed exceeds (KiB/s, 0 = disable)" +msgstr "Ikke nogen nye downloads hvis hastigheden er under (0 KB/s= fra)" + +msgid "Appearance" +msgstr "Udseende" + +msgid "Favorite Hubs" +msgstr "Favorit Hubs" + +msgid "Window options" +msgstr "Vindues indstillinger" + +msgid "Auto-open at startup" +msgstr "�en ved opstart" + +msgid "Stored password sent..." +msgstr "Gemte kodeord er afsendt..." + +msgid "No matches" +msgstr "Ingen resultater fundet!" + +msgid "Enable automatic SFV checking" +msgstr "Sl�FV-kontrol til (ekstra sikkerhed for at filen overf�korrekt)" + +msgid "Skip zero-byte files" +msgstr "Spring over 0 byte filer" + +msgid "Min Slots" +msgstr "Min Slots" + +msgid "Clear search box after each search" +msgstr "Ryd s�ltet efter hver s�g" + +msgid "Do nothing" +msgstr "G�genting" + +msgid "Accept custom user commands from hub" +msgstr "Accepter �rede bruger kommandoer fra huben" + +msgid "Invalid number of slots" +msgstr "Ugyldigt antal slots..." + +msgid "Don't send the away message to bots" +msgstr "Send ikke \"Ikke Til Stede\" beskeder til botter" + +msgid "Request a feature" +msgstr "Foresl�ye Ting Til DC++" + +msgid "Max hash speed" +msgstr "Max. Hash Hastighed" + +msgid "Show timestamps in chat by default" +msgstr "S�Tidsstemple" + +msgid "Status" +msgstr "Status" + +msgid "Search for" +msgstr "S�ter" + +msgid "Hub" +msgstr "Hub" + +msgid "E-Mail" +msgstr "E-Mail" + +msgid "MiB/s" +msgstr "MB/s" + +msgid "Compressed" +msgstr "Komprimerte Filer/mapper" + +msgid "Firewall with UPnP" +msgstr "Firewall med UPnP" + +msgid "Limits" +msgstr "Download gr�er" + +msgid "Public Hubs list" +msgstr "Offenlig Hubliste" + +msgid "Connection" +msgstr "Forbindelse" + +msgid "Time" +msgstr "Tid" + +msgid "External / WAN IP" +msgstr "Ekstern/IP" + +msgid "Auto-away on minimize (and back on restore)" +msgstr "Auto-'Ikke til stede' til ved minimer og fra ved gendan" + +msgid "Use system icons when browsing files (slows browsing down a bit)" +msgstr "Benyt systemikoner (g�stemet lidt langsommere)" + +msgid "Don't delete file lists when exiting" +msgstr "Gem hentede fillister n�DC++ afsluttes" + +msgid "Auto grant slot / Nick" +msgstr "Auto. Slot / Navn" + +msgid "Max filelist size" +msgstr "Max. Fillistest�se" + +msgid "Confirm application exit" +msgstr "Bekr� afslutning af DC++" + +msgid "Ignore private messages from the hub" +msgstr "Ignor�(PM)beskeder fra hubber" + +msgid "Exact size" +msgstr "Pr�s St�se" + +msgid "DC++ discussion forum" +msgstr "DC++ Diskussionsforum" + +msgid "Register with Windows to handle dchub:// and adc:// URL links" +msgstr "Registrer i Windows URL-styring til at h�tere dchub:// og adc:// links" + +msgid "Search options" +msgstr "S�uligheder" + +msgid "Re-add source" +msgstr "Tilf�lde igen" + +msgid "Format" +msgstr "Format" + +msgid "Use CTRL for line history" +msgstr "Brug 'CTRL' for linje historie" + +msgid "MiB" +msgstr "MB" + +msgid "Notepad" +msgstr "Notesblok" + +msgid "DC++ Homepage" +msgstr "DC++�s Hjemmeside" + +msgid "Join/part showing off" +msgstr "Ankomst/Afgang vises ikke" + +msgid "Incoming connection settings (see Help/FAQ if unsure)" +msgstr "Indkommende besked om indstillinger" + +msgid "Mini slot size" +msgstr "St�se p�ini-slots" + +msgid "Hublist" +msgstr "Hublist" + +msgid "UDP" +msgstr "UDP Port" + +msgid "Unknown" +msgstr "Ukendt" + +msgid "File" +msgstr "Fil" + +msgid "User went offline" +msgstr "Bruger gik offline..." + +msgid "Slots" +msgstr "Slots" + +msgid "Use SOCKS5 server to resolve host names" +msgstr "Benyt Socks5 server til at beslutte v�navne" + +msgid "Log status messages" +msgstr "Log status beskeder" + +msgid "Only show joins / parts for favorite users" +msgstr "Vis kun ankomst/afgang for favorit brugere" + +msgid "KiB/s" +msgstr "Kb/s" + +msgid "Downloading..." +msgstr "Downloader..." + +msgid "Don't remove /password before your password" +msgstr "Lad v� med at slette /password f�t kodeord" + +msgid "Path" +msgstr "Sti" + +msgid "Specify a search string" +msgstr "Specifiser s�reng" + +msgid "Open private messages in their own window" +msgstr "Private beskeder popper op i deres eget vindue" + +msgid "Use TLS when remote client supports it" +msgstr "Benyt Tls" + +msgid "Minimize to tray" +msgstr "Minim�til systembakken (ved siden af uret)" + +msgid "Download whole directory to..." +msgstr "Download hele mappen til..." + +msgid "Enable safe and compressed transfers" +msgstr "Benyt sikkert og komprimerede overf�er" + +msgid "Ports" +msgstr "Port instillinger" + +msgid "Quick Connect" +msgstr "Hurtigt Forbind" + +msgid "Raw" +msgstr "Raw" + +msgid "Reliability" +msgstr "P�delighed" + +msgid "Open private messages from bots in their own window" +msgstr "�n nye privat beskeder vinduer i baggrunden" + +msgid "Sounds" +msgstr "Lyde" + +msgid "DC++" +msgstr "DC++" + +msgid "Allow TLS connections to clients without trusted certificate" +msgstr "Tillad TLS-opkobling til klienter uden certifikat" + +msgid "Default away message" +msgstr "Standart 'Ikke Til Stede' Besked" + +msgid "Next" +msgstr "N�e" + +msgid "Configured Public Hub Lists" +msgstr "Konfigurede Hub Lister" + +msgid "Change Log" +msgstr "Nye Features i DC++..." + +msgid "Show shell menu where possible" +msgstr "Vis shell menu" + +msgid "Type" +msgstr "Type" + +msgid "Lowest" +msgstr "Laveste" + +msgid "Picture" +msgstr "Billede Filer (jpg, bmp, gif m.fl.)" + +msgid "Maximum simultaneous downloads (0 = infinite)" +msgstr "Maximum samtidlige downloads (0 = fra)" + +msgid "Min filesize" +msgstr "Min filst�se" + +msgid "Default download directory" +msgstr "Standart Downloads Mappen" + +msgid "Translations" +msgstr "Overs�elses Filer" + +msgid "Search for file" +msgstr "S�ter filen" + +msgid "Connected" +msgstr "Forbindelsen oprettet" + +msgid "Low prio max size" +msgstr "Lav priotet" + +msgid "At least" +msgstr "Mindst" + +msgid "Options" +msgstr "Valg" + +msgid "Hub Menu" +msgstr "Hub Menu" + +msgid "Rename" +msgstr "Omd�ppe" + +msgid "Autodrop slow sources for all queue items (except filelists)" +msgstr "Fjern automatisk kilder for alle objekter i k�Untagen fillister)" + +msgid "No errors" +msgstr "Ingen fejl" + +msgid "Socks IP" +msgstr "Socks IP" + +msgid "Allow TLS connections to hubs without trusted certificate" +msgstr "Tillad TLS-opkobling til hubs uden certifikat" + +msgid "Chat" +msgstr "Chat" + +msgid "Favorite user added" +msgstr "Bruger tilf�til 'Favorit Brugere'" + +msgid "At most" +msgstr "H�" + +msgid "Log filelist transfers" +msgstr "Log filliste overf�er" + +msgid "User Description" +msgstr "Brugerbeskrivelse" + +msgid "Favorite hub added" +msgstr "Hub tilf�til 'Favorit Hubs'" + +msgid "Hub list loaded from cache..." +msgstr "Hubliste hentet fra bufferen" + +msgid "Downloading public hub list..." +msgstr "Downloader Offentlig Hubliste..." + +msgid "Downloaded" +msgstr "Downloaded" + +msgid "Favorite name" +msgstr "Favorit navn" + +msgid "TLS" +msgstr "TLS" + +msgid "B" +msgstr "B" + +msgid "Automatically search for alternative download locations" +msgstr "S�tomatisk efter alternative download-kilder" + +msgid "Subtract list" +msgstr "Fjerner listen" + +msgid "Enabled" +msgstr "Sl�il" + +msgid "All" +msgstr "Alle" + +msgid "Time last seen" +msgstr "Dato (Det sidste tid man har set ham/hende)" + +msgid "Note; because of changing download speeds, this is not 100% accurate..." +msgstr "Notat; Fordi af skiftende download hastigheder, er det her ikke 100% pr�st..." + +msgid "Don't allow hub/UPnP to override" +msgstr "Ikke tillat at tilsides�e hub/UPnP" + +msgid "Personal Information" +msgstr "Personligt Information" + +msgid "Automatically open an extra slot if speed is below (0 = disable)" +msgstr "Automatisk �n et ekstra slot hvis hastigheden er under (0 = fra)" + +msgid "Executable" +msgstr "Eksekverbar Filer (exe, com m.fl.)" + +msgid "Open new window when using /join" +msgstr "�en ny vinduer n�\"/join\" bruges" + +msgid "Upload slots" +msgstr "Opload slots" + +msgid "Public Hubs" +msgstr "Offentlige Hubs" + +msgid "KiB" +msgstr "Kb" + +msgid "Note; most of these options require that you restart DC++" +msgstr "Notat; De fleste af disse indstillinger kr�r at du genstarter DC++." + +msgid "Open downloads directory" +msgstr "�n Download Stien" + +msgid "Users" +msgstr "Brugere" + +msgid "Ignore TTH searches" +msgstr "Ignore TTH searches" + +msgid "System Log" +msgstr "Systemlog" + +msgid "Help forum" +msgstr "Hj�eforum" + +msgid "Name" +msgstr "Navn" + +msgid "Really remove?" +msgstr "Vil du virkeligt fjerne den?" + +msgid "Indexing progress" +msgstr "Indekserings Fremskridt.." + +msgid "Login" +msgstr "Socks5 brugernavn" + +msgid "Only users with free slots" +msgstr "Kun brugere med ledige slots" + +msgid "File not available" +msgstr "Fil er ikke tilg�elig..!" + +msgid "Speed" +msgstr "Hastighed" + +msgid "Invalid file list name" +msgstr "Ugyldigt fillist navn" + +msgid "Search Menu" +msgstr "S�enu" + +msgid "Create / Modify Command" +msgstr "Skab / Modificere Kommando" + +msgid "Document" +msgstr "Dokument Filer (doc, pdf, txt m.fl.)" + +msgid "GeoIP database update" +msgstr "Opdatering af GeoIP-database" + +msgid "Report a bug" +msgstr "Rapport�en Fejl (Bug)" + +msgid "Share hidden files" +msgstr "Del skjulte filer" + +msgid "Max Hubs" +msgstr "Max. Hubs" + +msgid "Highest" +msgstr "H�" + +msgid "Send unknown /commands to the hub" +msgstr "Send ukendte /kommandoer til huben" + +msgid "Failed to create port mappings. Please set up your NAT yourself." +msgstr "Det mislykkedes at skabe port kortl�er" + +msgid "Use OEM monospaced font for viewing text files" +msgstr "Benyt 'OEM monospaced' skrift for visning af tekst filer" + +msgid "Settings..." +msgstr "Indstillinger..." + +msgid "Enabled / Search String" +msgstr "Aktiv S�unktion" + +msgid "Filter kick and NMDC debug messages" +msgstr "Filtr�'Kick' og 'NMDC debug'-meddelelser fra" + +msgid "Unfinished downloads directory" +msgstr "Uf�ige Download Mappe" + +msgid "Personal information" +msgstr "Generelt" + +msgid "Rating" +msgstr "Vudering" + +msgid "Failed to remove port mappings" +msgstr "Det mislykkedes at fjerne port kortl�er" + +msgid "Favorite Users" +msgstr "Favorit Brugere" + +msgid "Search Spy" +msgstr "S�ion" + +msgid "Close disconnected" +msgstr "Luk Alle Ikke-tilsluttede Vinduer" + +msgid "Add finished files to share instantly (if shared)" +msgstr "Tilf�rdige filer til deling �ikligt (hvis delt)" + +msgid "Priority" +msgstr "Prioritet" + +msgid "Close all search windows" +msgstr "Luk alle s�nduer" + +msgid "Open own list" +msgstr "�n Egen Liste" + +msgid "Virtual name" +msgstr "Virtuel navn" + +msgid "Destination Directory" +msgstr "Destination Mappe" + +msgid "TCP" +msgstr "TCP Port" + +msgid "Full Path" +msgstr "Hele Stien" + +msgid "Search String" +msgstr "S�treng" + +msgid "Advanced" +msgstr "Avanceret" + +msgid "PM" +msgstr "PM" + +msgid "Frequently asked questions" +msgstr "Ofte Stillede Sp��(FAQ)" + +msgid "Show joins / parts in chat by default" +msgstr "Vis altid ankomster/afgange i main chaten" + +msgid "Settings" +msgstr "Indstillinger" + +msgid "Server" +msgstr "Server" + +msgid "Waiting (User online)" +msgstr "Venter (Bruger online...)" + +msgid "Separator" +msgstr "Separator" + +msgid "Ignore private messages from bots" +msgstr "Ignor�(PM)beskeder fra bots" + +msgid "Directory" +msgstr "Mappe" + +msgid "Lookup TTH at Bitzi.com" +msgstr "Kig efter TTH roden p�itzi.com" + +msgid "Waiting Users" +msgstr "Venter p�rugere" + +msgid "Language file" +msgstr "Sprog Fil" + +msgid "User offline" +msgstr "Bruger offline..." + +msgid "Check... [truncated message content] |
From: <zou...@us...> - 2008-01-30 12:35:34
|
Revision: 981 http://dcplusplus.svn.sourceforge.net/dcplusplus/?rev=981&view=rev Author: zouzou123gen Date: 2008-01-30 04:35:30 -0800 (Wed, 30 Jan 2008) Log Message: ----------- reverted the previous TextLimit fix Modified Paths: -------------- dcplusplus/trunk/changelog.txt dcplusplus/trunk/win32/HubFrame.cpp dcplusplus/trunk/win32/PrivateFrame.cpp Modified: dcplusplus/trunk/changelog.txt =================================================================== --- dcplusplus/trunk/changelog.txt 2008-01-29 10:20:57 UTC (rev 980) +++ dcplusplus/trunk/changelog.txt 2008-01-30 12:35:30 UTC (rev 981) @@ -16,7 +16,6 @@ * Upgraded to bzip 1.0.4 (thanks pothead) * Tab tooltips (thanks poy) * Allow spaces in the description field (poy) -* Fixed max characters limit in chats (poy) -- 0.704 2007-12-14 -- * Hub lists added to utilize Coral's distributed network (ullner) Modified: dcplusplus/trunk/win32/HubFrame.cpp =================================================================== --- dcplusplus/trunk/win32/HubFrame.cpp 2008-01-29 10:20:57 UTC (rev 980) +++ dcplusplus/trunk/win32/HubFrame.cpp 2008-01-30 12:35:30 UTC (rev 981) @@ -105,6 +105,7 @@ WidgetTextBox::Seed cs = WinUtil::Seeds::textBox; cs.style = WS_CHILD | WS_VISIBLE | WS_TABSTOP | WS_VSCROLL | ES_MULTILINE | ES_NOHIDESEL | ES_READONLY; chat = createTextBox(cs); + chat->setTextLimit(0); addWidget(chat); paned->setFirst(chat); chat->onContextMenu(std::tr1::bind(&HubFrame::handleChatContextMenu, this, _1)); Modified: dcplusplus/trunk/win32/PrivateFrame.cpp =================================================================== --- dcplusplus/trunk/win32/PrivateFrame.cpp 2008-01-29 10:20:57 UTC (rev 980) +++ dcplusplus/trunk/win32/PrivateFrame.cpp 2008-01-30 12:35:30 UTC (rev 981) @@ -110,6 +110,7 @@ WidgetTextBox::Seed cs = WinUtil::Seeds::textBox; cs.style = WS_CHILD | WS_VISIBLE | WS_TABSTOP | WS_VSCROLL | ES_MULTILINE | ES_NOHIDESEL | ES_READONLY; chat = createTextBox(cs); + chat->setTextLimit(0); addWidget(chat); } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <arn...@us...> - 2008-01-29 17:23:43
|
Revision: 129 http://adchpp.svn.sourceforge.net/adchpp/?rev=129&view=rev Author: arnetheduck Date: 2008-01-29 09:23:40 -0800 (Tue, 29 Jan 2008) Log Message: ----------- resend fix Modified Paths: -------------- adchpp/trunk/adchpp/ManagedSocket.cpp adchpp/trunk/changelog.txt Modified: adchpp/trunk/adchpp/ManagedSocket.cpp =================================================================== --- adchpp/trunk/adchpp/ManagedSocket.cpp 2008-01-18 22:36:54 UTC (rev 128) +++ adchpp/trunk/adchpp/ManagedSocket.cpp 2008-01-29 17:23:40 UTC (rev 129) @@ -98,14 +98,13 @@ // Copy as many buffers as possible // TODO The last copied buffer should be split... size_t done = 0; - BufferList::iterator i; - for(i = outBuf.begin(); i != outBuf.end(); ++i) { + BufferList::iterator i = outBuf.begin(); + do { buffers.push_back(*i); done += (*i)->size(); - if(done > max_send) { - break; - } - } + ++i; + } while((i != outBuf.end()) && (done < max_send)); + outBuf.erase(outBuf.begin(), i); } else { buffers.swap(outBuf); @@ -135,6 +134,7 @@ (*i)->erase_first(diff); } + dcdebug("Tried %u buffers, readding %u buffers, diff is %u\n", buffers.size(), std::distance(i, buffers.end()), diff); outBuf.insert(outBuf.begin(), i, buffers.end()); } Modified: adchpp/trunk/changelog.txt =================================================================== --- adchpp/trunk/changelog.txt 2008-01-18 22:36:54 UTC (rev 128) +++ adchpp/trunk/changelog.txt 2008-01-29 17:23:40 UTC (rev 129) @@ -2,6 +2,7 @@ * access.lua: fixed message type for MSG * Some minor socket fixes * Initial Bloom filter implementation +* Fixed 100% cpu / infinite resend bug -- 2.1 2008-01-06 -- * Initial ADC 1.0 release This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <zou...@us...> - 2008-01-29 10:21:03
|
Revision: 980 http://dcplusplus.svn.sourceforge.net/dcplusplus/?rev=980&view=rev Author: zouzou123gen Date: 2008-01-29 02:20:57 -0800 (Tue, 29 Jan 2008) Log Message: ----------- don't disable TextLimit in chats (was always -1 in WinXP) Modified Paths: -------------- dcplusplus/trunk/changelog.txt dcplusplus/trunk/win32/HubFrame.cpp dcplusplus/trunk/win32/PrivateFrame.cpp Modified: dcplusplus/trunk/changelog.txt =================================================================== --- dcplusplus/trunk/changelog.txt 2008-01-29 01:47:38 UTC (rev 979) +++ dcplusplus/trunk/changelog.txt 2008-01-29 10:20:57 UTC (rev 980) @@ -16,6 +16,7 @@ * Upgraded to bzip 1.0.4 (thanks pothead) * Tab tooltips (thanks poy) * Allow spaces in the description field (poy) +* Fixed max characters limit in chats (poy) -- 0.704 2007-12-14 -- * Hub lists added to utilize Coral's distributed network (ullner) Modified: dcplusplus/trunk/win32/HubFrame.cpp =================================================================== --- dcplusplus/trunk/win32/HubFrame.cpp 2008-01-29 01:47:38 UTC (rev 979) +++ dcplusplus/trunk/win32/HubFrame.cpp 2008-01-29 10:20:57 UTC (rev 980) @@ -105,7 +105,6 @@ WidgetTextBox::Seed cs = WinUtil::Seeds::textBox; cs.style = WS_CHILD | WS_VISIBLE | WS_TABSTOP | WS_VSCROLL | ES_MULTILINE | ES_NOHIDESEL | ES_READONLY; chat = createTextBox(cs); - chat->setTextLimit(0); addWidget(chat); paned->setFirst(chat); chat->onContextMenu(std::tr1::bind(&HubFrame::handleChatContextMenu, this, _1)); Modified: dcplusplus/trunk/win32/PrivateFrame.cpp =================================================================== --- dcplusplus/trunk/win32/PrivateFrame.cpp 2008-01-29 01:47:38 UTC (rev 979) +++ dcplusplus/trunk/win32/PrivateFrame.cpp 2008-01-29 10:20:57 UTC (rev 980) @@ -110,7 +110,6 @@ WidgetTextBox::Seed cs = WinUtil::Seeds::textBox; cs.style = WS_CHILD | WS_VISIBLE | WS_TABSTOP | WS_VSCROLL | ES_MULTILINE | ES_NOHIDESEL | ES_READONLY; chat = createTextBox(cs); - chat->setTextLimit(0); addWidget(chat); } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <zou...@us...> - 2008-01-29 01:47:46
|
Revision: 979 http://dcplusplus.svn.sourceforge.net/dcplusplus/?rev=979&view=rev Author: zouzou123gen Date: 2008-01-28 17:47:38 -0800 (Mon, 28 Jan 2008) Log Message: ----------- Allow spaces in the description field Modified Paths: -------------- dcplusplus/trunk/changelog.txt dcplusplus/trunk/win32/GeneralPage.cpp dcplusplus/trunk/win32/GeneralPage.h Modified: dcplusplus/trunk/changelog.txt =================================================================== --- dcplusplus/trunk/changelog.txt 2008-01-25 21:08:22 UTC (rev 978) +++ dcplusplus/trunk/changelog.txt 2008-01-29 01:47:38 UTC (rev 979) @@ -15,6 +15,7 @@ * Fixed search spy crash * Upgraded to bzip 1.0.4 (thanks pothead) * Tab tooltips (thanks poy) +* Allow spaces in the description field (poy) -- 0.704 2007-12-14 -- * Hub lists added to utilize Coral's distributed network (ullner) Modified: dcplusplus/trunk/win32/GeneralPage.cpp =================================================================== --- dcplusplus/trunk/win32/GeneralPage.cpp 2008-01-25 21:08:22 UTC (rev 978) +++ dcplusplus/trunk/win32/GeneralPage.cpp 2008-01-29 01:47:38 UTC (rev 979) @@ -42,7 +42,7 @@ { 0, 0, PropPage::T_END } }; -GeneralPage::GeneralPage(SmartWin::Widget* parent) : PropPage(parent) { +GeneralPage::GeneralPage(SmartWin::Widget* parent) : PropPage(parent), nick(0) { createDialog(IDD_GENERALPAGE); PropPage::translate(handle(), texts); @@ -60,14 +60,11 @@ connections->setSelectedIndex(selected); - WidgetTextBoxPtr textBox; -#define TEXTBOX_ATTACH(id) \ - textBox = attachTextBox(id); \ - textBox->setTextLimit(35); \ - textBox->onTextChanged(std::tr1::bind(&GeneralPage::handleTextChanged, this, textBox)) - TEXTBOX_ATTACH(IDC_NICK); - TEXTBOX_ATTACH(IDC_DESCRIPTION); -#undef TEXTBOX_ATTACH + nick = attachTextBox(IDC_NICK); + nick->setTextLimit(35); + nick->onTextChanged(std::tr1::bind(&GeneralPage::handleNickTextChanged, this)); + + attachTextBox(IDC_DESCRIPTION)->setTextLimit(35); } GeneralPage::~GeneralPage() { @@ -77,8 +74,8 @@ PropPage::write(handle(), items); } -void GeneralPage::handleTextChanged(WidgetTextBoxPtr textBox) { - tstring text = textBox->getText(); +void GeneralPage::handleNickTextChanged() { + tstring text = nick->getText(); bool update = false; // Strip ' ' @@ -90,8 +87,8 @@ if(update) { // Something changed; update window text without changing cursor pos - long caretPos = textBox->getCaretPos() - 1; - textBox->setText(text); - textBox->setSelection(caretPos, caretPos); + long caretPos = nick->getCaretPos() - 1; + nick->setText(text); + nick->setSelection(caretPos, caretPos); } } Modified: dcplusplus/trunk/win32/GeneralPage.h =================================================================== --- dcplusplus/trunk/win32/GeneralPage.h 2008-01-25 21:08:22 UTC (rev 978) +++ dcplusplus/trunk/win32/GeneralPage.h 2008-01-29 01:47:38 UTC (rev 979) @@ -34,7 +34,9 @@ static Item items[]; static TextItem texts[]; - void handleTextChanged(WidgetTextBoxPtr textBox); + WidgetTextBoxPtr nick; + + void handleNickTextChanged(); }; #endif // !defined(DCPLUSPLUS_WIN32_GENERAL_PAGE_H) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <arn...@us...> - 2008-01-25 21:08:30
|
Revision: 978 http://dcplusplus.svn.sourceforge.net/dcplusplus/?rev=978&view=rev Author: arnetheduck Date: 2008-01-25 13:08:22 -0800 (Fri, 25 Jan 2008) Log Message: ----------- patches Modified Paths: -------------- dcplusplus/trunk/bzip2/LICENSE dcplusplus/trunk/bzip2/blocksort.c dcplusplus/trunk/bzip2/bzip2.c dcplusplus/trunk/bzip2/bzlib.c dcplusplus/trunk/bzip2/bzlib.h dcplusplus/trunk/bzip2/bzlib_private.h dcplusplus/trunk/bzip2/compress.c dcplusplus/trunk/bzip2/crctable.c dcplusplus/trunk/bzip2/decompress.c dcplusplus/trunk/bzip2/huffman.c dcplusplus/trunk/bzip2/randtable.c dcplusplus/trunk/changelog.txt dcplusplus/trunk/dcpp/ADLSearch.h dcplusplus/trunk/dcpp/Socket.cpp dcplusplus/trunk/smartwin/include/SmartUtil.h dcplusplus/trunk/smartwin/include/smartwin/widgets/WidgetTabSheet.h dcplusplus/trunk/smartwin/include/smartwin/widgets/WidgetTabView.h dcplusplus/trunk/smartwin/source/widgets/WidgetTabView.cpp dcplusplus/trunk/win32/QueueFrame.cpp dcplusplus/trunk/win32/WinUtil.cpp dcplusplus/trunk/win32/WinUtil.h dcplusplus/trunk/win32/po/ko.po Added Paths: ----------- dcplusplus/trunk/dcpp/po/sv.po dcplusplus/trunk/smartwin/SmartUtil/StringUtils.cpp dcplusplus/trunk/smartwin/SmartUtil/StringUtils.h Modified: dcplusplus/trunk/bzip2/LICENSE =================================================================== --- dcplusplus/trunk/bzip2/LICENSE 2008-01-24 21:34:31 UTC (rev 977) +++ dcplusplus/trunk/bzip2/LICENSE 2008-01-25 21:08:22 UTC (rev 978) @@ -1,6 +1,8 @@ +-------------------------------------------------------------------------- + This program, "bzip2", the associated library "libbzip2", and all -documentation, are copyright (C) 1996-2005 Julian R Seward. All +documentation, are copyright (C) 1996-2006 Julian R Seward. All rights reserved. Redistribution and use in source and binary forms, with or without @@ -35,6 +37,7 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. Julian Seward, Cambridge, UK. -js...@ac... -bzip2/libbzip2 version 1.0.3 of 15 February 2005 +js...@bz... +bzip2/libbzip2 version 1.0.4 of 20 December 2006 +-------------------------------------------------------------------------- Modified: dcplusplus/trunk/bzip2/blocksort.c =================================================================== --- dcplusplus/trunk/bzip2/blocksort.c 2008-01-24 21:34:31 UTC (rev 977) +++ dcplusplus/trunk/bzip2/blocksort.c 2008-01-25 21:08:22 UTC (rev 978) @@ -4,68 +4,21 @@ /*--- blocksort.c ---*/ /*-------------------------------------------------------------*/ -/*-- - This file is a part of bzip2 and/or libbzip2, a program and - library for lossless, block-sorting data compression. +/* ------------------------------------------------------------------ + This file is part of bzip2/libbzip2, a program and library for + lossless, block-sorting data compression. - Copyright (C) 1996-2005 Julian R Seward. All rights reserved. + bzip2/libbzip2 version 1.0.4 of 20 December 2006 + Copyright (C) 1996-2006 Julian Seward <js...@bz...> - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions - are met: + Please read the WARNING, DISCLAIMER and PATENTS sections in the + README file. - 1. Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. + This program is released under the terms of the license contained + in the file LICENSE. + ------------------------------------------------------------------ */ - 2. The origin of this software must not be misrepresented; you must - not claim that you wrote the original software. If you use this - software in a product, an acknowledgment in the product - documentation would be appreciated but is not required. - 3. Altered source versions must be plainly marked as such, and must - not be misrepresented as being the original software. - - 4. The name of the author may not be used to endorse or promote - products derived from this software without specific prior written - permission. - - THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS - OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY - DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE - GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, - WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING - NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - Julian Seward, Cambridge, UK. - js...@bz... - bzip2/libbzip2 version 1.0 of 21 March 2000 - - This program is based on (at least) the work of: - Mike Burrows - David Wheeler - Peter Fenwick - Alistair Moffat - Radford Neal - Ian H. Witten - Robert Sedgewick - Jon L. Bentley - - For more information on these sources, see the manual. - - To get some idea how the block sorting algorithms in this file - work, read my paper - On the Performance of BWT Sorting Algorithms - in Proceedings of the IEEE Data Compression Conference 2000, - Snowbird, Utah, USA, 27-30 March 2000. The main sort in this - file implements the algorithm called cache in the paper. ---*/ - - #include "bzlib_private.h" /*---------------------------------------------*/ @@ -155,7 +108,7 @@ while (sp > 0) { - AssertH ( sp < FALLBACK_QSORT_STACK_SIZE, 1004 ); + AssertH ( sp < FALLBACK_QSORT_STACK_SIZE - 1, 1004 ); fpop ( lo, hi ); if (hi - lo < FALLBACK_QSORT_SMALL_THRESH) { @@ -690,7 +643,7 @@ while (sp > 0) { - AssertH ( sp < MAIN_QSORT_STACK_SIZE, 1001 ); + AssertH ( sp < MAIN_QSORT_STACK_SIZE - 2, 1001 ); mpop ( lo, hi, d ); if (hi - lo < MAIN_QSORT_SMALL_THRESH || Modified: dcplusplus/trunk/bzip2/bzip2.c =================================================================== --- dcplusplus/trunk/bzip2/bzip2.c 2008-01-24 21:34:31 UTC (rev 977) +++ dcplusplus/trunk/bzip2/bzip2.c 2008-01-25 21:08:22 UTC (rev 978) @@ -3,118 +3,26 @@ /*--- A block-sorting, lossless compressor bzip2.c ---*/ /*-----------------------------------------------------------*/ -/*-- - This file is a part of bzip2 and/or libbzip2, a program and - library for lossless, block-sorting data compression. +/* ------------------------------------------------------------------ + This file is part of bzip2/libbzip2, a program and library for + lossless, block-sorting data compression. - Copyright (C) 1996-2005 Julian R Seward. All rights reserved. + bzip2/libbzip2 version 1.0.4 of 20 December 2006 + Copyright (C) 1996-2006 Julian Seward <js...@bz...> - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions - are met: + Please read the WARNING, DISCLAIMER and PATENTS sections in the + README file. - 1. Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. + This program is released under the terms of the license contained + in the file LICENSE. + ------------------------------------------------------------------ */ - 2. The origin of this software must not be misrepresented; you must - not claim that you wrote the original software. If you use this - software in a product, an acknowledgment in the product - documentation would be appreciated but is not required. - 3. Altered source versions must be plainly marked as such, and must - not be misrepresented as being the original software. - - 4. The name of the author may not be used to endorse or promote - products derived from this software without specific prior written - permission. - - THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS - OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY - DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE - GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, - WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING - NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - Julian Seward, Cambridge, UK. - js...@bz... - bzip2/libbzip2 version 1.0 of 21 March 2000 - - This program is based on (at least) the work of: - Mike Burrows - David Wheeler - Peter Fenwick - Alistair Moffat - Radford Neal - Ian H. Witten - Robert Sedgewick - Jon L. Bentley - - For more information on these sources, see the manual. ---*/ - - -/*----------------------------------------------------*/ -/*--- IMPORTANT ---*/ -/*----------------------------------------------------*/ - -/*-- - WARNING: - This program and library (attempts to) compress data by - performing several non-trivial transformations on it. - Unless you are 100% familiar with *all* the algorithms - contained herein, and with the consequences of modifying them, - you should NOT meddle with the compression or decompression - machinery. Incorrect changes can and very likely *will* - lead to disasterous loss of data. - - DISCLAIMER: - I TAKE NO RESPONSIBILITY FOR ANY LOSS OF DATA ARISING FROM THE - USE OF THIS PROGRAM, HOWSOEVER CAUSED. - - Every compression of a file implies an assumption that the - compressed file can be decompressed to reproduce the original. - Great efforts in design, coding and testing have been made to - ensure that this program works correctly. However, the - complexity of the algorithms, and, in particular, the presence - of various special cases in the code which occur with very low - but non-zero probability make it impossible to rule out the - possibility of bugs remaining in the program. DO NOT COMPRESS - ANY DATA WITH THIS PROGRAM AND/OR LIBRARY UNLESS YOU ARE PREPARED - TO ACCEPT THE POSSIBILITY, HOWEVER SMALL, THAT THE DATA WILL - NOT BE RECOVERABLE. - - That is not to say this program is inherently unreliable. - Indeed, I very much hope the opposite is true. bzip2/libbzip2 - has been carefully constructed and extensively tested. - - PATENTS: - To the best of my knowledge, bzip2/libbzip2 does not use any - patented algorithms. However, I do not have the resources - available to carry out a full patent search. Therefore I cannot - give any guarantee of the above statement. ---*/ - - - -/*----------------------------------------------------*/ -/*--- and now for something much more pleasant :-) ---*/ -/*----------------------------------------------------*/ - -/*---------------------------------------------*/ -/*-- - Place a 1 beside your platform, and 0 elsewhere. ---*/ - -/*-- - Generic 32-bit Unix. - Also works on 64-bit Unix boxes. - This is the default. ---*/ +/* Place a 1 beside your platform, and 0 elsewhere. + Generic 32-bit Unix. + Also works on 64-bit Unix boxes. + This is the default. +*/ #define BZ_UNIX 1 /*-- @@ -220,7 +128,7 @@ #if BZ_LCCWIN32 # include <io.h> # include <fcntl.h> -# include <sys/stat.h> +# include <sys\stat.h> # define NORETURN /**/ # define PATH_SEP '\\' @@ -302,16 +210,17 @@ FILE *outputHandleJustInCase; Int32 workFactor; -static void panic ( Char* ) NORETURN; -static void ioError ( void ) NORETURN; -static void outOfMemory ( void ) NORETURN; -static void configError ( void ) NORETURN; -static void crcError ( void ) NORETURN; -static void cleanUpAndFail ( Int32 ) NORETURN; -static void compressedStreamEOF ( void ) NORETURN; +static void panic ( const Char* ) NORETURN; +static void ioError ( void ) NORETURN; +static void outOfMemory ( void ) NORETURN; +static void configError ( void ) NORETURN; +static void crcError ( void ) NORETURN; +static void cleanUpAndFail ( Int32 ) NORETURN; +static void compressedStreamEOF ( void ) NORETURN; static void copyFileName ( Char*, Char* ); static void* myMalloc ( Int32 ); +static void applySavedFileAttrToOutputFile ( IntNative fd ); @@ -457,6 +366,9 @@ ret = fflush ( zStream ); if (ret == EOF) goto errhandler_io; if (zStream != stdout) { + Int32 fd = fileno ( zStream ); + if (fd < 0) goto errhandler_io; + applySavedFileAttrToOutputFile ( fd ); ret = fclose ( zStream ); outputHandleJustInCase = NULL; if (ret == EOF) goto errhandler_io; @@ -569,6 +481,11 @@ closeok: if (ferror(zStream)) goto errhandler_io; + if (stream != stdout) { + Int32 fd = fileno ( stream ); + if (fd < 0) goto errhandler_io; + applySavedFileAttrToOutputFile ( fd ); + } ret = fclose ( zStream ); if (ret == EOF) goto errhandler_io; @@ -826,7 +743,7 @@ /*---------------------------------------------*/ static -void panic ( Char* s ) +void panic ( const Char* s ) { fprintf ( stderr, "\n%s: PANIC -- internal consistency error:\n" @@ -1039,6 +956,7 @@ For non-Unix platforms, if we are not worrying about security issues, simple this simply behaves like fopen. */ +static FILE* fopen_output_safely ( Char* name, const char* mode ) { # if BZ_UNIX @@ -1129,7 +1047,7 @@ static -void applySavedMetaInfoToOutputFile ( Char *dstName ) +void applySavedTimeInfoToOutputFile ( Char *dstName ) { # if BZ_UNIX IntNative retVal; @@ -1138,13 +1056,21 @@ uTimBuf.actime = fileMetaInfo.st_atime; uTimBuf.modtime = fileMetaInfo.st_mtime; - retVal = chmod ( dstName, fileMetaInfo.st_mode ); + retVal = utime ( dstName, &uTimBuf ); ERROR_IF_NOT_ZERO ( retVal ); +# endif +} - retVal = utime ( dstName, &uTimBuf ); +static +void applySavedFileAttrToOutputFile ( IntNative fd ) +{ +# if BZ_UNIX + IntNative retVal; + + retVal = fchmod ( fd, fileMetaInfo.st_mode ); ERROR_IF_NOT_ZERO ( retVal ); - retVal = chown ( dstName, fileMetaInfo.st_uid, fileMetaInfo.st_gid ); + (void) fchown ( fd, fileMetaInfo.st_uid, fileMetaInfo.st_gid ); /* chown() will in many cases return with EPERM, which can be safely ignored. */ @@ -1175,13 +1101,13 @@ /*---------------------------------------------*/ #define BZ_N_SUFFIX_PAIRS 4 -Char* zSuffix[BZ_N_SUFFIX_PAIRS] +const Char* zSuffix[BZ_N_SUFFIX_PAIRS] = { ".bz2", ".bz", ".tbz2", ".tbz" }; -Char* unzSuffix[BZ_N_SUFFIX_PAIRS] +const Char* unzSuffix[BZ_N_SUFFIX_PAIRS] = { "", "", ".tar", ".tar" }; static -Bool hasSuffix ( Char* s, Char* suffix ) +Bool hasSuffix ( Char* s, const Char* suffix ) { Int32 ns = strlen(s); Int32 nx = strlen(suffix); @@ -1192,7 +1118,8 @@ static Bool mapSuffix ( Char* name, - Char* oldSuffix, Char* newSuffix ) + const Char* oldSuffix, + const Char* newSuffix ) { if (!hasSuffix(name,oldSuffix)) return False; name[strlen(name)-strlen(oldSuffix)] = 0; @@ -1217,8 +1144,8 @@ switch (srcMode) { case SM_I2O: - copyFileName ( inName, "(stdin)" ); - copyFileName ( outName, "(stdout)" ); + copyFileName ( inName, (Char*)"(stdin)" ); + copyFileName ( outName, (Char*)"(stdout)" ); break; case SM_F2F: copyFileName ( inName, name ); @@ -1227,7 +1154,7 @@ break; case SM_F2O: copyFileName ( inName, name ); - copyFileName ( outName, "(stdout)" ); + copyFileName ( outName, (Char*)"(stdout)" ); break; } @@ -1370,7 +1297,7 @@ /*--- If there was an I/O error, we won't get here. ---*/ if ( srcMode == SM_F2F ) { - applySavedMetaInfoToOutputFile ( outName ); + applySavedTimeInfoToOutputFile ( outName ); deleteOutputOnInterrupt = False; if ( !keepInputFiles ) { IntNative retVal = remove ( inName ); @@ -1401,8 +1328,8 @@ cantGuess = False; switch (srcMode) { case SM_I2O: - copyFileName ( inName, "(stdin)" ); - copyFileName ( outName, "(stdout)" ); + copyFileName ( inName, (Char*)"(stdin)" ); + copyFileName ( outName, (Char*)"(stdout)" ); break; case SM_F2F: copyFileName ( inName, name ); @@ -1415,7 +1342,7 @@ break; case SM_F2O: copyFileName ( inName, name ); - copyFileName ( outName, "(stdout)" ); + copyFileName ( outName, (Char*)"(stdout)" ); break; } @@ -1548,7 +1475,7 @@ /*--- If there was an I/O error, we won't get here. ---*/ if ( magicNumberOK ) { if ( srcMode == SM_F2F ) { - applySavedMetaInfoToOutputFile ( outName ); + applySavedTimeInfoToOutputFile ( outName ); deleteOutputOnInterrupt = False; if ( !keepInputFiles ) { IntNative retVal = remove ( inName ); @@ -1593,9 +1520,9 @@ if (name == NULL && srcMode != SM_I2O) panic ( "testf: bad modes\n" ); - copyFileName ( outName, "(none)" ); + copyFileName ( outName, (Char*)"(none)" ); switch (srcMode) { - case SM_I2O: copyFileName ( inName, "(stdin)" ); break; + case SM_I2O: copyFileName ( inName, (Char*)"(stdin)" ); break; case SM_F2F: copyFileName ( inName, name ); break; case SM_F2O: copyFileName ( inName, name ); break; } @@ -1678,11 +1605,11 @@ "bzip2, a block-sorting file compressor. " "Version %s.\n" " \n" - " Copyright (C) 1996-2005 by Julian Seward.\n" + " Copyright (C) 1996-2006 by Julian Seward.\n" " \n" " This program is free software; you can redistribute it and/or modify\n" " it under the terms set out in the LICENSE file, which is included\n" - " in the bzip2-1.0 source distribution.\n" + " in the bzip2-1.0.4 source distribution.\n" " \n" " This program is distributed in the hope that it will be useful,\n" " but WITHOUT ANY WARRANTY; without even the implied warranty of\n" @@ -1885,8 +1812,8 @@ # endif # endif - copyFileName ( inName, "(none)" ); - copyFileName ( outName, "(none)" ); + copyFileName ( inName, (Char*)"(none)" ); + copyFileName ( outName, (Char*)"(none)" ); copyFileName ( progNameReally, argv[0] ); progName = &progNameReally[0]; @@ -1898,8 +1825,8 @@ expand filename wildcards in arg list. --*/ argList = NULL; - addFlagsFromEnvVar ( &argList, "BZIP2" ); - addFlagsFromEnvVar ( &argList, "BZIP" ); + addFlagsFromEnvVar ( &argList, (Char*)"BZIP2" ); + addFlagsFromEnvVar ( &argList, (Char*)"BZIP" ); for (i = 1; i <= argc-1; i++) APPEND_FILESPEC(argList, argv[i]); Modified: dcplusplus/trunk/bzip2/bzlib.c =================================================================== --- dcplusplus/trunk/bzip2/bzlib.c 2008-01-24 21:34:31 UTC (rev 977) +++ dcplusplus/trunk/bzip2/bzlib.c 2008-01-25 21:08:22 UTC (rev 978) @@ -4,75 +4,30 @@ /*--- bzlib.c ---*/ /*-------------------------------------------------------------*/ -/*-- - This file is a part of bzip2 and/or libbzip2, a program and - library for lossless, block-sorting data compression. +/* ------------------------------------------------------------------ + This file is part of bzip2/libbzip2, a program and library for + lossless, block-sorting data compression. - Copyright (C) 1996-2005 Julian R Seward. All rights reserved. + bzip2/libbzip2 version 1.0.4 of 20 December 2006 + Copyright (C) 1996-2006 Julian Seward <js...@bz...> - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions - are met: + Please read the WARNING, DISCLAIMER and PATENTS sections in the + README file. - 1. Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. + This program is released under the terms of the license contained + in the file LICENSE. + ------------------------------------------------------------------ */ - 2. The origin of this software must not be misrepresented; you must - not claim that you wrote the original software. If you use this - software in a product, an acknowledgment in the product - documentation would be appreciated but is not required. - - 3. Altered source versions must be plainly marked as such, and must - not be misrepresented as being the original software. - - 4. The name of the author may not be used to endorse or promote - products derived from this software without specific prior written - permission. - - THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS - OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY - DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE - GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, - WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING - NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - Julian Seward, Cambridge, UK. - js...@bz... - bzip2/libbzip2 version 1.0 of 21 March 2000 - - This program is based on (at least) the work of: - Mike Burrows - David Wheeler - Peter Fenwick - Alistair Moffat - Radford Neal - Ian H. Witten - Robert Sedgewick - Jon L. Bentley - - For more information on these sources, see the manual. ---*/ - -/*-- - CHANGES - ~~~~~~~ - 0.9.0 -- original version. - +/* CHANGES + 0.9.0 -- original version. 0.9.0a/b -- no changes in this file. + 0.9.0c -- made zero-length BZ_FLUSH work correctly in bzCompress(). + fixed bzWrite/bzRead to ignore zero-length requests. + fixed bzread to correctly handle read requests after EOF. + wrong parameter order in call to bzDecompressInit in + bzBuffToBuffDecompress. Fixed. +*/ - 0.9.0c - * made zero-length BZ_FLUSH work correctly in bzCompress(). - * fixed bzWrite/bzRead to ignore zero-length requests. - * fixed bzread to correctly handle read requests after EOF. - * wrong parameter order in call to bzDecompressInit in - bzBuffToBuffDecompress. Fixed. ---*/ - #include "bzlib_private.h" @@ -597,7 +552,7 @@ s->strm->total_out_lo32++; if (s->strm->total_out_lo32 == 0) s->strm->total_out_hi32++; } - + /* can a new run be started? */ if (s->nblock_used == s->save_nblock+1) return False; @@ -769,7 +724,7 @@ /* can a new run be started? */ if (s->nblock_used == s->save_nblock+1) return False; - + /* Only caused by corrupt data stream? */ if (s->nblock_used > s->save_nblock+1) return True; @@ -1394,8 +1349,7 @@ /*---------------------------------------------------*/ /*-- - Code contributed by Yoshioka Tsuneo - (QWF...@ni.../tsu...@is...), + Code contributed by Yoshioka Tsuneo (ts...@rr...) to support better zlib compatibility. This code is not _officially_ part of libbzip2 (yet); I haven't tested it, documented it, or considered the @@ -1406,7 +1360,7 @@ /*---------------------------------------------------*/ /*-- - return version like "0.9.0c". + return version like "0.9.5d, 4-Sept-1999". --*/ const char * BZ_API(BZ2_bzlibVersion)(void) { @@ -1559,9 +1513,10 @@ void BZ_API(BZ2_bzclose) (BZFILE* b) { int bzerr; - FILE *fp = ((bzFile *)b)->handle; + FILE *fp; if (b==NULL) {return;} + fp = ((bzFile *)b)->handle; if(((bzFile*)b)->writing){ BZ2_bzWriteClose(&bzerr,b,0,NULL,NULL); if(bzerr != BZ_OK){ @@ -1580,7 +1535,7 @@ /*-- return last error code --*/ -static char *bzerrorstrings[] = { +static const char *bzerrorstrings[] = { "OK" ,"SEQUENCE_ERROR" ,"PARAM_ERROR" Modified: dcplusplus/trunk/bzip2/bzlib.h =================================================================== --- dcplusplus/trunk/bzip2/bzlib.h 2008-01-24 21:34:31 UTC (rev 977) +++ dcplusplus/trunk/bzip2/bzlib.h 2008-01-25 21:08:22 UTC (rev 978) @@ -4,61 +4,21 @@ /*--- bzlib.h ---*/ /*-------------------------------------------------------------*/ -/*-- - This file is a part of bzip2 and/or libbzip2, a program and - library for lossless, block-sorting data compression. +/* ------------------------------------------------------------------ + This file is part of bzip2/libbzip2, a program and library for + lossless, block-sorting data compression. - Copyright (C) 1996-2005 Julian R Seward. All rights reserved. + bzip2/libbzip2 version 1.0.4 of 20 December 2006 + Copyright (C) 1996-2006 Julian Seward <js...@bz...> - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions - are met: + Please read the WARNING, DISCLAIMER and PATENTS sections in the + README file. - 1. Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. + This program is released under the terms of the license contained + in the file LICENSE. + ------------------------------------------------------------------ */ - 2. The origin of this software must not be misrepresented; you must - not claim that you wrote the original software. If you use this - software in a product, an acknowledgment in the product - documentation would be appreciated but is not required. - 3. Altered source versions must be plainly marked as such, and must - not be misrepresented as being the original software. - - 4. The name of the author may not be used to endorse or promote - products derived from this software without specific prior written - permission. - - THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS - OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY - DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE - GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, - WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING - NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - Julian Seward, Cambridge, UK. - js...@bz... - bzip2/libbzip2 version 1.0 of 21 March 2000 - - This program is based on (at least) the work of: - Mike Burrows - David Wheeler - Peter Fenwick - Alistair Moffat - Radford Neal - Ian H. Witten - Robert Sedgewick - Jon L. Bentley - - For more information on these sources, see the manual. ---*/ - - #ifndef _BZLIB_H #define _BZLIB_H @@ -262,8 +222,7 @@ /*-- - Code contributed by Yoshioka Tsuneo - (QWF...@ni.../tsu...@is...), + Code contributed by Yoshioka Tsuneo (ts...@rr...) to support better zlib compatibility. This code is not _officially_ part of libbzip2 (yet); I haven't tested it, documented it, or considered the Modified: dcplusplus/trunk/bzip2/bzlib_private.h =================================================================== --- dcplusplus/trunk/bzip2/bzlib_private.h 2008-01-24 21:34:31 UTC (rev 977) +++ dcplusplus/trunk/bzip2/bzlib_private.h 2008-01-25 21:08:22 UTC (rev 978) @@ -4,61 +4,21 @@ /*--- bzlib_private.h ---*/ /*-------------------------------------------------------------*/ -/*-- - This file is a part of bzip2 and/or libbzip2, a program and - library for lossless, block-sorting data compression. +/* ------------------------------------------------------------------ + This file is part of bzip2/libbzip2, a program and library for + lossless, block-sorting data compression. - Copyright (C) 1996-2005 Julian R Seward. All rights reserved. + bzip2/libbzip2 version 1.0.4 of 20 December 2006 + Copyright (C) 1996-2006 Julian Seward <js...@bz...> - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions - are met: + Please read the WARNING, DISCLAIMER and PATENTS sections in the + README file. - 1. Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. + This program is released under the terms of the license contained + in the file LICENSE. + ------------------------------------------------------------------ */ - 2. The origin of this software must not be misrepresented; you must - not claim that you wrote the original software. If you use this - software in a product, an acknowledgment in the product - documentation would be appreciated but is not required. - 3. Altered source versions must be plainly marked as such, and must - not be misrepresented as being the original software. - - 4. The name of the author may not be used to endorse or promote - products derived from this software without specific prior written - permission. - - THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS - OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY - DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE - GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, - WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING - NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - Julian Seward, Cambridge, UK. - js...@bz... - bzip2/libbzip2 version 1.0 of 21 March 2000 - - This program is based on (at least) the work of: - Mike Burrows - David Wheeler - Peter Fenwick - Alistair Moffat - Radford Neal - Ian H. Witten - Robert Sedgewick - Jon L. Bentley - - For more information on these sources, see the manual. ---*/ - - #ifndef _BZLIB_PRIVATE_H #define _BZLIB_PRIVATE_H @@ -76,7 +36,7 @@ /*-- General stuff. --*/ -#define BZ_VERSION "1.0.3, 15-Feb-2005" +#define BZ_VERSION "1.0.4, 20-Dec-2006" typedef char Char; typedef unsigned char Bool; @@ -94,9 +54,11 @@ #endif #ifndef BZ_NO_STDIO + extern void BZ2_bz__AssertH__fail ( int errcode ); #define AssertH(cond,errcode) \ { if (!(cond)) BZ2_bz__AssertH__fail ( errcode ); } + #if BZ_DEBUG #define AssertD(cond,msg) \ { if (!(cond)) { \ @@ -107,6 +69,7 @@ #else #define AssertD(cond,msg) /* */ #endif + #define VPrintf0(zf) \ fprintf(stderr,zf) #define VPrintf1(zf,za1) \ @@ -119,17 +82,20 @@ fprintf(stderr,zf,za1,za2,za3,za4) #define VPrintf5(zf,za1,za2,za3,za4,za5) \ fprintf(stderr,zf,za1,za2,za3,za4,za5) + #else + extern void bz_internal_error ( int errcode ); #define AssertH(cond,errcode) \ { if (!(cond)) bz_internal_error ( errcode ); } -#define AssertD(cond,msg) /* */ -#define VPrintf0(zf) /* */ -#define VPrintf1(zf,za1) /* */ -#define VPrintf2(zf,za1,za2) /* */ -#define VPrintf3(zf,za1,za2,za3) /* */ -#define VPrintf4(zf,za1,za2,za3,za4) /* */ -#define VPrintf5(zf,za1,za2,za3,za4,za5) /* */ +#define AssertD(cond,msg) do { } while (0) +#define VPrintf0(zf) do { } while (0) +#define VPrintf1(zf,za1) do { } while (0) +#define VPrintf2(zf,za1,za2) do { } while (0) +#define VPrintf3(zf,za1,za2,za3) do { } while (0) +#define VPrintf4(zf,za1,za2,za3,za4) do { } while (0) +#define VPrintf5(zf,za1,za2,za3,za4,za5) do { } while (0) + #endif Modified: dcplusplus/trunk/bzip2/compress.c =================================================================== --- dcplusplus/trunk/bzip2/compress.c 2008-01-24 21:34:31 UTC (rev 977) +++ dcplusplus/trunk/bzip2/compress.c 2008-01-25 21:08:22 UTC (rev 978) @@ -4,72 +4,28 @@ /*--- compress.c ---*/ /*-------------------------------------------------------------*/ -/*-- - This file is a part of bzip2 and/or libbzip2, a program and - library for lossless, block-sorting data compression. +/* ------------------------------------------------------------------ + This file is part of bzip2/libbzip2, a program and library for + lossless, block-sorting data compression. - Copyright (C) 1996-2005 Julian R Seward. All rights reserved. + bzip2/libbzip2 version 1.0.4 of 20 December 2006 + Copyright (C) 1996-2006 Julian Seward <js...@bz...> - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions - are met: + Please read the WARNING, DISCLAIMER and PATENTS sections in the + README file. - 1. Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. + This program is released under the terms of the license contained + in the file LICENSE. + ------------------------------------------------------------------ */ - 2. The origin of this software must not be misrepresented; you must - not claim that you wrote the original software. If you use this - software in a product, an acknowledgment in the product - documentation would be appreciated but is not required. - 3. Altered source versions must be plainly marked as such, and must - not be misrepresented as being the original software. +/* CHANGES + 0.9.0 -- original version. + 0.9.0a/b -- no changes in this file. + 0.9.0c -- changed setting of nGroups in sendMTFValues() + so as to do a bit better on small files +*/ - 4. The name of the author may not be used to endorse or promote - products derived from this software without specific prior written - permission. - - THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS - OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY - DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE - GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, - WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING - NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - Julian Seward, Cambridge, UK. - js...@bz... - bzip2/libbzip2 version 1.0 of 21 March 2000 - - This program is based on (at least) the work of: - Mike Burrows - David Wheeler - Peter Fenwick - Alistair Moffat - Radford Neal - Ian H. Witten - Robert Sedgewick - Jon L. Bentley - - For more information on these sources, see the manual. ---*/ - -/*-- - CHANGES - ~~~~~~~ - 0.9.0 -- original version. - - 0.9.0a/b -- no changes in this file. - - 0.9.0c - * changed setting of nGroups in sendMTFValues() so as to - do a bit better on small files ---*/ - #include "bzlib_private.h" Modified: dcplusplus/trunk/bzip2/crctable.c =================================================================== --- dcplusplus/trunk/bzip2/crctable.c 2008-01-24 21:34:31 UTC (rev 977) +++ dcplusplus/trunk/bzip2/crctable.c 2008-01-25 21:08:22 UTC (rev 978) @@ -4,61 +4,21 @@ /*--- crctable.c ---*/ /*-------------------------------------------------------------*/ -/*-- - This file is a part of bzip2 and/or libbzip2, a program and - library for lossless, block-sorting data compression. +/* ------------------------------------------------------------------ + This file is part of bzip2/libbzip2, a program and library for + lossless, block-sorting data compression. - Copyright (C) 1996-2005 Julian R Seward. All rights reserved. + bzip2/libbzip2 version 1.0.4 of 20 December 2006 + Copyright (C) 1996-2006 Julian Seward <js...@bz...> - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions - are met: + Please read the WARNING, DISCLAIMER and PATENTS sections in the + README file. - 1. Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. + This program is released under the terms of the license contained + in the file LICENSE. + ------------------------------------------------------------------ */ - 2. The origin of this software must not be misrepresented; you must - not claim that you wrote the original software. If you use this - software in a product, an acknowledgment in the product - documentation would be appreciated but is not required. - 3. Altered source versions must be plainly marked as such, and must - not be misrepresented as being the original software. - - 4. The name of the author may not be used to endorse or promote - products derived from this software without specific prior written - permission. - - THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS - OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY - DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE - GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, - WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING - NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - Julian Seward, Cambridge, UK. - js...@bz... - bzip2/libbzip2 version 1.0 of 21 March 2000 - - This program is based on (at least) the work of: - Mike Burrows - David Wheeler - Peter Fenwick - Alistair Moffat - Radford Neal - Ian H. Witten - Robert Sedgewick - Jon L. Bentley - - For more information on these sources, see the manual. ---*/ - - #include "bzlib_private.h" /*-- Modified: dcplusplus/trunk/bzip2/decompress.c =================================================================== --- dcplusplus/trunk/bzip2/decompress.c 2008-01-24 21:34:31 UTC (rev 977) +++ dcplusplus/trunk/bzip2/decompress.c 2008-01-25 21:08:22 UTC (rev 978) @@ -4,61 +4,21 @@ /*--- decompress.c ---*/ /*-------------------------------------------------------------*/ -/*-- - This file is a part of bzip2 and/or libbzip2, a program and - library for lossless, block-sorting data compression. +/* ------------------------------------------------------------------ + This file is part of bzip2/libbzip2, a program and library for + lossless, block-sorting data compression. - Copyright (C) 1996-2005 Julian R Seward. All rights reserved. + bzip2/libbzip2 version 1.0.4 of 20 December 2006 + Copyright (C) 1996-2006 Julian Seward <js...@bz...> - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions - are met: + Please read the WARNING, DISCLAIMER and PATENTS sections in the + README file. - 1. Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. + This program is released under the terms of the license contained + in the file LICENSE. + ------------------------------------------------------------------ */ - 2. The origin of this software must not be misrepresented; you must - not claim that you wrote the original software. If you use this - software in a product, an acknowledgment in the product - documentation would be appreciated but is not required. - 3. Altered source versions must be plainly marked as such, and must - not be misrepresented as being the original software. - - 4. The name of the author may not be used to endorse or promote - products derived from this software without specific prior written - permission. - - THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS - OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY - DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE - GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, - WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING - NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - Julian Seward, Cambridge, UK. - js...@bz... - bzip2/libbzip2 version 1.0 of 21 March 2000 - - This program is based on (at least) the work of: - Mike Burrows - David Wheeler - Peter Fenwick - Alistair Moffat - Radford Neal - Ian H. Witten - Robert Sedgewick - Jon L. Bentley - - For more information on these sources, see the manual. ---*/ - - #include "bzlib_private.h" Modified: dcplusplus/trunk/bzip2/huffman.c =================================================================== --- dcplusplus/trunk/bzip2/huffman.c 2008-01-24 21:34:31 UTC (rev 977) +++ dcplusplus/trunk/bzip2/huffman.c 2008-01-25 21:08:22 UTC (rev 978) @@ -4,61 +4,21 @@ /*--- huffman.c ---*/ /*-------------------------------------------------------------*/ -/*-- - This file is a part of bzip2 and/or libbzip2, a program and - library for lossless, block-sorting data compression. +/* ------------------------------------------------------------------ + This file is part of bzip2/libbzip2, a program and library for + lossless, block-sorting data compression. - Copyright (C) 1996-2005 Julian R Seward. All rights reserved. + bzip2/libbzip2 version 1.0.4 of 20 December 2006 + Copyright (C) 1996-2006 Julian Seward <js...@bz...> - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions - are met: + Please read the WARNING, DISCLAIMER and PATENTS sections in the + README file. - 1. Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. + This program is released under the terms of the license contained + in the file LICENSE. + ------------------------------------------------------------------ */ - 2. The origin of this software must not be misrepresented; you must - not claim that you wrote the original software. If you use this - software in a product, an acknowledgment in the product - documentation would be appreciated but is not required. - 3. Altered source versions must be plainly marked as such, and must - not be misrepresented as being the original software. - - 4. The name of the author may not be used to endorse or promote - products derived from this software without specific prior written - permission. - - THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS - OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY - DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE - GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, - WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING - NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - Julian Seward, Cambridge, UK. - js...@bz... - bzip2/libbzip2 version 1.0 of 21 March 2000 - - This program is based on (at least) the work of: - Mike Burrows - David Wheeler - Peter Fenwick - Alistair Moffat - Radford Neal - Ian H. Witten - Robert Sedgewick - Jon L. Bentley - - For more information on these sources, see the manual. ---*/ - - #include "bzlib_private.h" /*---------------------------------------------------*/ Modified: dcplusplus/trunk/bzip2/randtable.c =================================================================== --- dcplusplus/trunk/bzip2/randtable.c 2008-01-24 21:34:31 UTC (rev 977) +++ dcplusplus/trunk/bzip2/randtable.c 2008-01-25 21:08:22 UTC (rev 978) @@ -4,61 +4,21 @@ /*--- randtable.c ---*/ /*-------------------------------------------------------------*/ -/*-- - This file is a part of bzip2 and/or libbzip2, a program and - library for lossless, block-sorting data compression. +/* ------------------------------------------------------------------ + This file is part of bzip2/libbzip2, a program and library for + lossless, block-sorting data compression. - Copyright (C) 1996-2005 Julian R Seward. All rights reserved. + bzip2/libbzip2 version 1.0.4 of 20 December 2006 + Copyright (C) 1996-2006 Julian Seward <js...@bz...> - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions - are met: + Please read the WARNING, DISCLAIMER and PATENTS sections in the + README file. - 1. Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. + This program is released under the terms of the license contained + in the file LICENSE. + ------------------------------------------------------------------ */ - 2. The origin of this software must not be misrepresented; you must - not claim that you wrote the original software. If you use this - software in a product, an acknowledgment in the product - documentation would be appreciated but is not required. - 3. Altered source versions must be plainly marked as such, and must - not be misrepresented as being the original software. - - 4. The name of the author may not be used to endorse or promote - products derived from this software without specific prior written - permission. - - THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS - OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY - DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE - GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, - WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING - NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - Julian Seward, Cambridge, UK. - js...@bz... - bzip2/libbzip2 version 1.0 of 21 March 2000 - - This program is based on (at least) the work of: - Mike Burrows - David Wheeler - Peter Fenwick - Alistair Moffat - Radford Neal - Ian H. Witten - Robert Sedgewick - Jon L. Bentley - - For more information on these sources, see the manual. ---*/ - - #include "bzlib_private.h" Modified: dcplusplus/trunk/changelog.txt =================================================================== --- dcplusplus/trunk/changelog.txt 2008-01-24 21:34:31 UTC (rev 977) +++ dcplusplus/trunk/changelog.txt 2008-01-25 21:08:22 UTC (rev 978) @@ -13,6 +13,8 @@ * Added tab drag/drop (thanks poy) * Changed Pothead to mikejj * Fixed search spy crash +* Upgraded to bzip 1.0.4 (thanks pothead) +* Tab tooltips (thanks poy) -- 0.704 2007-12-14 -- * Hub lists added to utilize Coral's distributed network (ullner) Modified: dcplusplus/trunk/dcpp/ADLSearch.h =================================================================== --- dcplusplus/trunk/dcpp/ADLSearch.h 2008-01-24 21:34:31 UTC (rev 977) +++ dcplusplus/trunk/dcpp/ADLSearch.h 2008-01-25 21:08:22 UTC (rev 978) @@ -278,7 +278,7 @@ void PrepareDestinationDirectories(DestDirList& destDirVector, DirectoryListing::Directory* root, StringMap& params); // Finalize destination directories void FinalizeDestinationDirectories(DestDirList& destDirVector, DirectoryListing::Directory* root) { - string szDiscard(_("<<<Discard>>>")); + string szDiscard("<<<" + string(_("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/Socket.cpp =================================================================== --- dcplusplus/trunk/dcpp/Socket.cpp 2008-01-24 21:34:31 UTC (rev 977) +++ dcplusplus/trunk/dcpp/Socket.cpp 2008-01-25 21:08:22 UTC (rev 978) @@ -50,9 +50,8 @@ string SocketException::errorToString(int aError) throw() { string msg = Util::translateError(aError); - if(msg.empty()) - { - msg = str(F_("Unknown error: 0x%1%") % aError); + if(msg.empty()) { + msg = str(F_("Unknown error: 0x%1$x") % aError); } return msg; } Added: dcplusplus/trunk/dcpp/po/sv.po =================================================================== --- dcplusplus/trunk/dcpp/po/sv.po (rev 0) +++ dcplusplus/trunk/dcpp/po/sv.po 2008-01-25 21:08:22 UTC (rev 978) @@ -0,0 +1,399 @@ +# Swedish translation for dcplusplus +# Copyright (c) 2008 Rosetta Contributors and Canonical Ltd 2008 +# This file is distributed under the same license as the dcplusplus package. +# FIRST AUTHOR <EMAIL@ADDRESS>, 2008. +# +msgid "" +msgstr "" +"Project-Id-Version: dcplusplus\n" +"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n" +"POT-Creation-Date: 2008-01-23 22:20+0100\n" +"PO-Revision-Date: 2008-01-25 07:51+0000\n" +"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" +"Language-Team: Swedish <sv...@li...>\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=n != 1;\n" +"X-Launchpad-Export-Date: 2008-01-25 19:24+0000\n" +"X-Generator: Launchpad (build Unknown)\n" + +#: dcpp/Util.cpp:381 +#, boost-format, c-format +msgid "%'lld B" +msgstr "%'lld B" + +#: dcpp/Util.cpp:343 +#, boost-format, c-format +msgid "%.02f GiB" +msgstr "%.02f GiB" + +#: dcpp/Util.cpp:339 +#, boost-format, c-format +msgid "%.02f KiB" +msgstr "%.02f KiB" + +#: dcpp/Util.cpp:341 +#, boost-format, c-format +msgid "%.02f MiB" +msgstr "%.02f MiB" + +#: dcpp/Util.cpp:347 +#, boost-format, c-format +msgid "%.02f PiB" +msgstr "%.02f PiB" + +#: dcpp/Util.cpp:345 +#, boost-format, c-format +msgid "%.02f TiB" +msgstr "%.02f TiB" + +#: dcpp/NmdcHub.cpp:273 +#, boost-format +msgid "%1% (Nick unknown)" +msgstr "%1% (Okänt nickname)" + +#: dcpp/HashManager.cpp:767 +#, boost-format +msgid "" +"%1% not shared; calculated CRC32 does not match the one found in SFV file." +msgstr "%1% inte utdelad; beräknad CRC32 matchar inte den i SFV-filen." + +#: dcpp/DownloadManager.cpp:143 +#, boost-format +msgid "%1% renamed to %2%" +msgstr "%1% omdöpt till %2%" + +#: dcpp/DownloadManager.cpp:547 +#, boost-format +msgid "%1%: File not available" +msgstr "%1%: Filen ej tillgänglig" + +#: dcpp/Util.cpp:337 +#, boost-format, c-format +msgid "%d B" +msgstr "%d B" + +#: dcpp/Util.cpp:377 +#, boost-format, c-format +msgid "%s B" +msgstr "%s B" + +#: dcpp/QueueManager.cpp:503 +msgid "A file of equal or larger size already exists at the target location" +msgstr "En fil med samma eller större storlek finns redan vid destinationen" + +#: dcpp/QueueManager.cpp:446 +msgid "A file with a different size already exists in the queue" +msgstr "En fil med annan storlek finns redan i kön" + +#: dcpp/QueueManager.cpp:449 +msgid "A file with different tth root already exists in the queue" +msgstr "En fel med annan tth-rot finns redan i kön" + +#: dcpp/QueueManager.cpp:413 +msgid "A file with the same hash already exists in your share" +msgstr "Delar redan ut en fil med samma hash" + +#: dcpp/ConnectionManager.cpp:181 +msgid "All download slots taken" +msgstr "Alla nedladdningsplatser är upptagna" + +#: dcpp/DownloadManager.cpp:421 +msgid "CRC32 inconsistency (SFV-Check)" +msgstr "CRC32 stämmer ej (SFV-check)" + +#: dcpp/DownloadManager.cpp:419 +#, boost-format +msgid "CRC32 inconsistency (SFV-Check) (File: %1%)" +msgstr "CRC32 stämmer ej (SFV-check) (Fil: %1%)" + +#: dcpp/ConnectionManager.cpp:385 +msgid "Certificate not trusted, unable to connect" +msgstr "Ej pålitligt certifikat, kan ej ansluta" + +#: dcpp/Socket.cpp:155 dcpp/ConnectionManager.cpp:187 +#: dcpp/BufferedSocket.cpp:154 +msgid "Connection timeout" +msgstr "Inget svar på förbindelsen inom tidsgränsen" + +#: dcpp/DownloadManager.cpp:284 +#, boost-format +msgid "Could not open target file: %1%" +msgstr "Kunde ej öppna målfilen: %1%" + +#: dcpp/ShareManager.cpp:418 +msgid "Directory already shared" +msgstr "Katalogen är redan utdelad" + +#: dcpp/BufferedSocket.cpp:409 dcpp/BufferedSocket.cpp:427 +msgid "Disconnected" +msgstr "Frånkopplad" + +#: dcpp/UploadManager.cpp:450 +#, boost-format +msgid "Disconnected user leaving the hub: %1%" +msgstr "Frånkopplad användare lämnar hubben: %1%" + +#: dcpp/DCPlusPlus.cpp:103 +msgid "Download Queue" +msgstr "Nedladdningskö" + +#: dcpp/ShareManager.cpp:745 +#, boost-format +msgid "" +"Duplicate file will not be shared: %1%%2% (Size: %3% B) Dupe matched " +"against: %4%%5%" +msgstr "" +"Dubblettfil kommer ej delas ut: %1%%2% (Storlek: %3% B) Dubblett av: %4%%5%" + +#: dcpp/QueueManager.cpp:516 dcpp/QueueManager.cpp:520 +#, boost-format +msgid "Duplicate source: %1%" +msgstr "Dubblerad källa: %1%" + +#: dcpp/HashManager.cpp:456 +#, boost-format +msgid "Error creating hash data file: %1%" +msgstr "Fel under framställning av hashdatafil: %1%" + +#: dcpp/ZUtils.cpp:33 dcpp/ZUtils.cpp:54 dcpp/ZUtils.cpp:76 dcpp/ZUtils.cpp:86 +#: dcpp/BZUtils.cpp:31 dcpp/BZUtils.cpp:52 dcpp/BZUtils.cpp:60 +msgid "Error during compression" +msgstr "Fel under komprimering" + +#: dcpp/ZUtils.cpp:100 dcpp/ZUtils.cpp:123 dcpp/BZUtils.cpp:72 +#: dcpp/BZUtils.cpp:94 dcpp/BZUtils.cpp:97 dcpp/CryptoManager.cpp:344 +#: dcpp/CryptoManager.cpp:363 dcpp/CryptoManager.cpp:377 +msgid "Error during decompression" +msgstr "Fel under avkomprimering" + +#: dcpp/HashManager.cpp:772 +#, boost-format +msgid "Error hashing %1%: %2%" +msgstr "Fel under hashning %1%: %2%" + +#: dcpp/HashManager.cpp:118 dcpp/HashManager.cpp:333 +#, boost-format +msgid "Error saving hash data: %1%" +msgstr "Fel under sparandet av hashdatan: %1%" + +#: dcpp/CryptoManager.cpp:228 dcpp/CryptoManager.cpp:232 +#: dcpp/CryptoManager.cpp:237 dcpp/CryptoManager.cpp:241 +msgid "Failed to load certificate file" +msgstr "Misslyckades att ladda certifikatfil" + +#: dcpp/CryptoManager.cpp:246 dcpp/CryptoManager.cpp:250 +#: dcpp/CryptoManager.cpp:255 dcpp/CryptoManager.cpp:259 +msgid "Failed to load private key" +msgstr "Misslyckades att ladda privat nyckel" + +#: dcpp/Socket.cpp:409 +msgid "" +"Failed to set up the socks server for UDP relay (check socks address and " +"port)" +msgstr "" +"Misslyckades att sätta upp UDP-relay hos socks-servern (kolla socks-adress " +"och port)" + +#: dcpp/ShareManager.cpp:780 +#, boost-format +msgid "File list refresh failed: %1%" +msgstr "Misslyckades uppdatera fillistan: %1%" + +#: dcpp/ShareManager.cpp:824 +msgid "File list refresh finished" +msgstr "Uppdatering av fillistan klar" + +#: dcpp/ShareManager.cpp:760 +msgid "" +"File list refresh in progress, please wait for it to finish before trying to " +"refresh again" +msgstr "" +"Uppdatering av fillistan pågår, var god vänta tills den är klar innan du " +"försöker uppdatera igen" + +#: dcpp/ShareManager.cpp:802 +msgid "File list refresh initiated" +msgstr "Uppdatering av fillistan påbörjad" + +#: dcpp/DirectoryListing.cpp:102 +msgid "File not available" +msgstr "Filen är inte tillgänglig" + +#: dcpp/HashManager.cpp:89 +#, boost-format +msgid "Finished hashing: %1%" +msgstr "Hashning färdig: %1%" + +#: dcpp/HashManager.cpp:87 +#, boost-format +msgid "Finished hashing: %1% (%2%/s)" +msgstr "Hashning färdig: %1% (%2%/s)" + +#: dcpp/DownloadManager.cpp:353 +msgid "Full tree does not match TTH root" +msgstr "Fullt träd matchar inte TTH-roten" + +#: dcpp/CryptoManager.cpp:221 +msgid "Generated new TLS certificate" +msgstr "Genererade nytt TLS-certifikat" + +#: dcpp/DCPlusPlus.cpp:97 +msgid "Hash database" +msgstr "Hashdatabas" + +#: dcpp/HashManager.cpp:677 +msgid "Hash database rebuilt" +msgstr "Hashdatabasen ombyggd" + +#: dcpp/HashManager.cpp:73 dcpp/HashManager.cpp:277 +#, boost-format +msgid "Hashing failed: %1%" +msgstr "Hashning misslyckades: %1%" + +#: dcpp/DownloadManager.cpp:264 dcpp/DownloadManager.cpp:269 +msgid "Invalid size" +msgstr "Ogiltig storlek" + +#: dcpp/QueueManager.cpp:486 dcpp/QueueManager.cpp:494 +msgid "" +"Invalid target file (missing directory, check default download directory " +"setting)" +msgstr "" +"Ogiltig målfil (saknar katalog, kolla inställning för " +"standardnedladdningskatalog)" + +#: dcpp/FavoriteManager.cpp:438 +msgid "Kick user(s)" +msgstr "Sparka användare" + +#: dcpp/ConnectionManager.cpp:239 +#, boost-format +msgid "Listening socket failed (you need to restart DC++): %1%" +msgstr "Lyssnadesockel misslyckades (du måste starta om DC++): %1%" + +#: dcpp/BufferedSocket.cpp:263 +msgid "Maximum command length exceeded" +msgstr "Högsta längden på kommando överstigen" + +#: dcpp/DownloadManager.cpp:323 +msgid "More data was sent than was expected" +msgstr "Skickade mer data än vad som förväntades" + +#: dcpp/ShareManager.cpp:403 +msgid "No directory specified" +msgstr "Ingen katalog specifierad" + +#: dcpp/DownloadManager.cpp:462 +msgid "No slots available" +msgstr "Inga platser tillgängl... [truncated message content] |
From: <arn...@us...> - 2008-01-24 21:35:24
|
Revision: 977 http://dcplusplus.svn.sourceforge.net/dcplusplus/?rev=977&view=rev Author: arnetheduck Date: 2008-01-24 13:34:31 -0800 (Thu, 24 Jan 2008) Log Message: ----------- Language files Modified Paths: -------------- dcplusplus/trunk/build_util.py Added Paths: ----------- dcplusplus/trunk/dcpp/po/de.po dcplusplus/trunk/dcpp/po/ko.po dcplusplus/trunk/win32/po/ko.po Modified: dcplusplus/trunk/build_util.py =================================================================== --- dcplusplus/trunk/build_util.py 2008-01-23 21:54:41 UTC (rev 976) +++ dcplusplus/trunk/build_util.py 2008-01-24 21:34:31 UTC (rev 977) @@ -83,7 +83,7 @@ for po_file in p_oze: buildenv.Precious(buildenv.PoBuild(po_file, [potfile])) - lang = os.path.basename(po)[:-3] + lang = os.path.basename(po_file)[:-3] mo_file = self.get_target(source_path, "locale/" + lang + "/LC_MESSAGES/" + name + ".mo", True) buildenv.MoBuild (mo_file, po_file) Added: dcplusplus/trunk/dcpp/po/de.po =================================================================== --- dcplusplus/trunk/dcpp/po/de.po (rev 0) +++ dcplusplus/trunk/dcpp/po/de.po 2008-01-24 21:34:31 UTC (rev 977) @@ -0,0 +1,404 @@ +# German translation for dcplusplus +# Copyright (c) 2008 Rosetta Contributors and Canonical Ltd 2008 +# This file is distributed under the same license as the dcplusplus package. +# FIRST AUTHOR <EMAIL@ADDRESS>, 2008. +# +msgid "" +msgstr "" +"Project-Id-Version: dcplusplus\n" +"Report-Msgid-Bugs-To: dcp...@li...\n" +"POT-Creation-Date: 2008-01-23 22:20+0100\n" +"PO-Revision-Date: 2008-01-24 07:24+0000\n" +"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" +"Language-Team: German <de...@li...>\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=n != 1;\n" +"X-Launchpad-Export-Date: 2008-01-24 09:08+0000\n" +"X-Generator: Launchpad (build Unknown)\n" + +#: dcpp/Util.cpp:381 +#, c-format, boost-format +msgid "%'lld B" +msgstr "%'lld B" + +#: dcpp/Util.cpp:343 +#, c-format, boost-format +msgid "%.02f GiB" +msgstr "%.02f GiB" + +#: dcpp/Util.cpp:339 +#, c-format, boost-format +msgid "%.02f KiB" +msgstr "%.02f KiB" + +#: dcpp/Util.cpp:341 +#, c-format, boost-format +msgid "%.02f MiB" +msgstr "%.02f MiB" + +#: dcpp/Util.cpp:347 +#, c-format, boost-format +msgid "%.02f PiB" +msgstr "%.02f PiB" + +#: dcpp/Util.cpp:345 +#, c-format, boost-format +msgid "%.02f TiB" +msgstr "%.02f TiB" + +#: dcpp/NmdcHub.cpp:273 +#, boost-format +msgid "%1% (Nick unknown)" +msgstr "%1% (Nick unbekannt)" + +#: dcpp/HashManager.cpp:767 +#, boost-format +msgid "" +"%1% not shared; calculated CRC32 does not match the one found in SFV file." +msgstr "" +"%1% nicht freigegeben, errechneter CRC32 Wert passt nicht zu dem in der SFV " +"Datei" + +#: dcpp/DownloadManager.cpp:143 +#, boost-format +msgid "%1% renamed to %2%" +msgstr "%1% umbenannt in %2%" + +#: dcpp/DownloadManager.cpp:547 +#, boost-format +msgid "%1%: File not available" +msgstr "%1%: Datei nicht verfügbar" + +#: dcpp/Util.cpp:337 +#, c-format, boost-format +msgid "%d B" +msgstr "%d B" + +#: dcpp/Util.cpp:377 +#, c-format, boost-format +msgid "%s B" +msgstr "%s B" + +#: dcpp/QueueManager.cpp:503 +msgid "A file of equal or larger size already exists at the target location" +msgstr "Eine Datei gleicher oder größerer Größe existiert bereits am Zielort" + +#: dcpp/QueueManager.cpp:446 +msgid "A file with a different size already exists in the queue" +msgstr "" +"Eine Datei mit anderer Größe ist bereits in der Warteschlange vorhanden" + +#: dcpp/QueueManager.cpp:449 +msgid "A file with different tth root already exists in the queue" +msgstr "" +"Eine Datei mit anderem TTH Root ist bereits in der Warteschlange vorhanden" + +#: dcpp/QueueManager.cpp:413 +msgid "A file with the same hash already exists in your share" +msgstr "Eine Datei mit dem selben Hash-Wert wurde bereits freigegeben" + +#: dcpp/ConnectionManager.cpp:181 +msgid "All download slots taken" +msgstr "Alle Downloadslots besetzt" + +#: dcpp/DownloadManager.cpp:421 +msgid "CRC32 inconsistency (SFV-Check)" +msgstr "CRC32 Inkonsistenz (SFV-Check)" + +#: dcpp/DownloadManager.cpp:419 +#, boost-format +msgid "CRC32 inconsistency (SFV-Check) (File: %1%)" +msgstr "CRC32 Inkonsistenz (SFV-Check) (Datei: %1%)" + +#: dcpp/ConnectionManager.cpp:385 +msgid "Certificate not trusted, unable to connect" +msgstr "Zertifikat nicht vertrauenswürdig, Verbindung nicht möglich" + +#: dcpp/Socket.cpp:155 dcpp/ConnectionManager.cpp:187 +#: dcpp/BufferedSocket.cpp:154 +msgid "Connection timeout" +msgstr "Zeitüberschreitung der Verbindung" + +#: dcpp/DownloadManager.cpp:284 +#, boost-format +msgid "Could not open target file: %1%" +msgstr "Konnte die Zieldatei nicht öffnen: %1%" + +#: dcpp/ShareManager.cpp:418 +msgid "Directory already shared" +msgstr "Verzeichnis ist bereits freigegeben" + +#: dcpp/BufferedSocket.cpp:409 dcpp/BufferedSocket.cpp:427 +msgid "Disconnected" +msgstr "Getrennt" + +#: dcpp/UploadManager.cpp:450 +#, boost-format +msgid "Disconnected user leaving the hub: %1%" +msgstr "Getrennter User verlässt Hub: %1%" + +#: dcpp/DCPlusPlus.cpp:103 +msgid "Download Queue" +msgstr "Download Warteschlange" + +#: dcpp/ShareManager.cpp:745 +#, boost-format +msgid "" +"Duplicate file will not be shared: %1%%2% (Size: %3% B) Dupe matched " +"against: %4%%5%" +msgstr "" +"Dateiduplikat wird nicht freigegeben: %1%%2% (Größe: %3% B) Duplikat passend " +"zu: %4%%5%" + +#: dcpp/QueueManager.cpp:516 dcpp/QueueManager.cpp:520 +#, boost-format +msgid "Duplicate source: %1%" +msgstr "Doppelte Quelle: %1%" + +#: dcpp/HashManager.cpp:456 +#, boost-format +msgid "Error creating hash data file: %1%" +msgstr "Fehler bei Erstellung von Hashdatendatei: %1%" + +#: dcpp/ZUtils.cpp:33 dcpp/ZUtils.cpp:54 dcpp/ZUtils.cpp:76 dcpp/ZUtils.cpp:86 +#: dcpp/BZUtils.cpp:31 dcpp/BZUtils.cpp:52 dcpp/BZUtils.cpp:60 +msgid "Error during compression" +msgstr "Fehler bei Komprimierung" + +#: dcpp/ZUtils.cpp:100 dcpp/ZUtils.cpp:123 dcpp/BZUtils.cpp:72 +#: dcpp/BZUtils.cpp:94 dcpp/BZUtils.cpp:97 dcpp/CryptoManager.cpp:344 +#: dcpp/CryptoManager.cpp:363 dcpp/CryptoManager.cpp:377 +msgid "Error during decompression" +msgstr "Fehler bei Dekomprimierung" + +#: dcpp/HashManager.cpp:772 +#, boost-format +msgid "Error hashing %1%: %2%" +msgstr "Fehler beim Hashen von %1%: %2%" + +#: dcpp/HashManager.cpp:118 dcpp/HashManager.cpp:333 +#, boost-format +msgid "Error saving hash data: %1%" +msgstr "Fehler beim Speichern der Hash-Daten: %1%" + +#: dcpp/CryptoManager.cpp:228 dcpp/CryptoManager.cpp:232 +#: dcpp/CryptoManager.cpp:237 dcpp/CryptoManager.cpp:241 +msgid "Failed to load certificate file" +msgstr "Laden des Zertifikats fehlgeschlagen" + +#: dcpp/CryptoManager.cpp:246 dcpp/CryptoManager.cpp:250 +#: dcpp/CryptoManager.cpp:255 dcpp/CryptoManager.cpp:259 +msgid "Failed to load private key" +msgstr "Laden des privaten Schlüssels fehlgeschlagen" + +#: dcpp/Socket.cpp:409 +msgid "" +"Failed to set up the socks server for UDP relay (check socks address and " +"port)" +msgstr "" +"Konnte den Socks Server nicht für UDP Relay einrichten (überprüfen Sie " +"Adresse und Port des Servers)" + +#: dcpp/ShareManager.cpp:780 +#, boost-format +msgid "File list refresh failed: %1%" +msgstr "Aktualisieren der Dateiliste fehlgeschlagen: %1%" + +#: dcpp/ShareManager.cpp:824 +msgid "File list refresh finished" +msgstr "Aktualisieren der Dateiliste beendet" + +#: dcpp/ShareManager.cpp:760 +msgid "" +"File list refresh in progress, please wait for it to finish before trying to " +"refresh again" +msgstr "" +"Aktualisieren der Dateiliste im Gange, bitte vor erneuter Aktualisierung auf " +"Ende warten" + +#: dcpp/ShareManager.cpp:802 +msgid "File list refresh initiated" +msgstr "Aktualisieren der Dateiliste gestartet" + +#: dcpp/DirectoryListing.cpp:102 +msgid "File not available" +msgstr "Die Datei ist nicht verfügbar" + +#: dcpp/HashManager.cpp:89 +#, boost-format +msgid "Finished hashing: %1%" +msgstr "Hash berechnen beendet: %1%" + +#: dcpp/HashManager.cpp:87 +#, boost-format +msgid "Finished hashing: %1% (%2%/s)" +msgstr "Hash berechnen beendet: %1% (%2%/s)" + +#: dcpp/DownloadManager.cpp:353 +msgid "Full tree does not match TTH root" +msgstr "Kompletter Baum stimmt nicht mit TTH Root überein" + +#: dcpp/CryptoManager.cpp:221 +msgid "Generated new TLS certificate" +msgstr "Neues TLS Zertifikat erstellt" + +#: dcpp/DCPlusPlus.cpp:97 +msgid "Hash database" +msgstr "Hash-Datenbank" + +#: dcpp/HashManager.cpp:677 +msgid "Hash database rebuilt" +msgstr "Hash-Datenbank rekonstruiert" + +#: dcpp/HashManager.cpp:73 dcpp/HashManager.cpp:277 +#, boost-format +msgid "Hashing failed: %1%" +msgstr "Hash berechnen fehlgeschlagen: %1%" + +#: dcpp/DownloadManager.cpp:264 dcpp/DownloadManager.cpp:269 +msgid "Invalid size" +msgstr "Ungültige Größe" + +#: dcpp/QueueManager.cpp:486 dcpp/QueueManager.cpp:494 +msgid "" +"Invalid target file (missing directory, check default download directory " +"setting)" +msgstr "" +"Ungültige Zieldatei (Verzeichnis fehlt, überprüfen Sie in den Einstellungen " +"das Standard Downloadverzeichnis)" + +#: dcpp/FavoriteManager.cpp:438 +msgid "Kick user(s)" +msgstr "Kicke User" + +#: dcpp/ConnectionManager.cpp:239 +#, boost-format +msgid "Listening socket failed (you need to restart DC++): %1%" +msgstr "Lesen vom Socket fehlgeschlagen (DC++ muss neugestartet werden): %1%" + +#: dcpp/BufferedSocket.cpp:263 +msgid "Maximum command length exceeded" +msgstr "Maximale Befehlslänge überschritten" + +#: dcpp/DownloadManager.cpp:323 +msgid "More data was sent than was expected" +msgstr "Es wurden mehr Daten gesendet als erwartet" + +#: dcpp/ShareManager.cpp:403 +msgid "No directory specified" +msgstr "Kein Verzeichnis ausgewählt" + +#: dcpp/DownloadManager.cpp:462 +msgid "No slots available" +msgstr "Keine Slots verfügbar" + +#: dcpp/AdcHub.cpp:554 +msgid "Not listening for connections - please restart DC++" +msgstr "Es wird nicht auf Verbindungen gewartet - bitte DC++ neustarten" + +#: dcpp/Transfer.cpp:63 dcpp/Transfer.cpp:67 dcpp/ClientManager.cpp:115 +#: dcpp/SearchManager.cpp:267 dcpp/SearchManager.cpp:329 +#: dcpp/SearchManager.cpp:331 +msgid "Offline" +msgstr "Offline" + +#: dcpp/FavoriteManager.cpp:442 +msgid "Redirect user(s)" +msgstr "User umleiten" + +#: dcpp/ShareManager.cpp:421 +msgid "Remove all subdirectories before adding this one" +msgstr "Alle Unterverzeichnisse entfernen bevor dieses hinzugefügt wird" + +#: dcpp/DCPlusPlus.cpp:100 +msgid "Shared Files" +msgstr "Freigegebene Dateien" + +#: dcpp/Socket.cpp:270 dcpp/Socket.cpp:274 +msgid "Socks server authentication failed (bad login / password?)" +msgstr "" +"Socks Server Authentifizierung fehlgeschlagen (Login / Passwort falsch?)" + +#: dcpp/CryptoManager.cpp:223 +#, boost-format +msgid "TLS disabled, failed to generate certificate: %1%" +msgstr "TLS deaktiviert, Generierung des Zertifikats fehlgeschlagen: %1%" + +#: dcpp/CryptoManager.cpp:213 +msgid "TLS disabled, no certificate file set" +msgstr "TLS deaktiviert, kein Zertifikat eingestellt" + +#: dcpp/QueueManager.cpp:481 dcpp/QueueManager.cpp:490 +msgid "Target filename too long" +msgstr "Zieldateiname zu lang" + +#: dcpp/QueueManager.cpp:769 +msgid "Target removed" +msgstr "Ziel entfernt" + +#: dcpp/Socket.cpp:256 +msgid "The socks server doesn't support login / password authentication" +msgstr "Socks Server unterstützt keine Authentifizierung mit Login / Passwort" + +#: dcpp/Socket.cpp:163 dcpp/Socket.cpp:174 dcpp/Socket.cpp:207 +#: dcpp/Socket.cpp:211 dcpp/Socket.cpp:238 dcpp/Socket.cpp:253 +msgid "The socks server failed establish a connection" +msgstr "Socks Server konnte keine Verbindung aufbauen" + +#: dcpp/Socket.cpp:242 +msgid "The socks server requires authentication" +msgstr "Socks Server benötigt Authentifizierung" + +#: dcpp/ShareManager.cpp:407 +msgid "The temporary download directory cannot be shared" +msgstr "Das temporäre Downloadverzeichnis kann nicht freigegeben werden" + +#: dcpp/QueueManager.cpp:436 +msgid "This file is already queued" +msgstr "Diese Datei befindet sich bereits in der Warteschlange" + +#: dcpp/Thread.cpp:34 dcpp/Thread.cpp:42 +msgid "Unable to create thread" +msgstr "Thread kann nicht erschaffen werden" + +#: dcpp/QueueManager.cpp:957 +#, boost-format +msgid "Unable to open filelist: %1%" +msgstr "Dateiliste kann nicht geöffnet werden: %1%" + +#: dcpp/HashManager.cpp:131 +msgid "Unable to read hash data file" +msgstr "Hash-Datendatei kann nicht gelesen werden" + +#: dcpp/DownloadManager.cpp:145 +#, boost-format +msgid "Unable to rename %1%: %2%" +msgstr "%1% kann nicht umbenannt werden: %2%" + +#: dcpp/UploadManager.cpp:149 +#, boost-format +msgid "Unable to send file %1%: %2%" +msgstr "Datei %1% kann nicht gesendet werden: %2%" + +#: dcpp/Socket.cpp:55 +#, boost-format +msgid "Unknown error: 0x%1%" +msgstr "Unbekannter Fehler: 0x%1%" + +#: dcpp/ShareManager.cpp:426 dcpp/ShareManager.cpp:468 +msgid "Virtual directory name already exists" +msgstr "Virtueller Verzeichnisname existiert bereits" + +#: dcpp/QueueManager.cpp:383 dcpp/QueueManager.cpp:407 +msgid "You're trying to download from yourself!" +msgstr "Kein Download von sich selbst möglich!" + +#: dcpp/SettingsManager.cpp:156 +msgid "downloaded from" +msgstr "heruntergeladen von" + +#: dcpp/SettingsManager.cpp:157 +msgid "uploaded to" +msgstr "hochgeladen an" Added: dcplusplus/trunk/dcpp/po/ko.po =================================================================== --- dcplusplus/trunk/dcpp/po/ko.po (rev 0) +++ dcplusplus/trunk/dcpp/po/ko.po 2008-01-24 21:34:31 UTC (rev 977) @@ -0,0 +1,391 @@ +# Korean translations for the DC++ package. +# Copyright (C) 2008 The translators +# This file is distributed under the same license as the DC++ package. +# <gut...@us...>, 2008. +# +msgid "" +msgstr "" +"Project-Id-Version: dcpp\n" +"Report-Msgid-Bugs-To: dcp...@li...\n" +"POT-Creation-Date: 2008-01-23 22:20+0100\n" +"Last-Translator: <gut...@us...>\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=1; plural=0;\n" + +#: dcpp/Util.cpp:381 +#, c-format, boost-format +msgid "%'lld B" +msgstr "" + +#: dcpp/Util.cpp:343 +#, c-format, boost-format +msgid "%.02f GiB" +msgstr "" + +#: dcpp/Util.cpp:339 +#, c-format, boost-format +msgid "%.02f KiB" +msgstr "" + +#: dcpp/Util.cpp:341 +#, c-format, boost-format +msgid "%.02f MiB" +msgstr "" + +#: dcpp/Util.cpp:347 +#, c-format, boost-format +msgid "%.02f PiB" +msgstr "" + +#: dcpp/Util.cpp:345 +#, c-format, boost-format +msgid "%.02f TiB" +msgstr "" + +#: dcpp/NmdcHub.cpp:273 +#, boost-format +msgid "%1% (Nick unknown)" +msgstr "" + +#: dcpp/HashManager.cpp:767 +#, boost-format +msgid "" +"%1% not shared; calculated CRC32 does not match the one found in SFV file." +msgstr "" + +#: dcpp/DownloadManager.cpp:143 +#, boost-format +msgid "%1% renamed to %2%" +msgstr "" + +#: dcpp/DownloadManager.cpp:547 +#, fuzzy, boost-format +msgid "%1%: File not available" +msgstr "파일이 유효하지 않음" + +#: dcpp/Util.cpp:337 +#, c-format, boost-format +msgid "%d B" +msgstr "" + +#: dcpp/Util.cpp:377 +#, c-format, boost-format +msgid "%s B" +msgstr "" + +#: dcpp/QueueManager.cpp:503 +msgid "A file of equal or larger size already exists at the target location" +msgstr "크기가 같거나 큰 파일이 이미 대상 위치에 있음" + +#: dcpp/QueueManager.cpp:446 +msgid "A file with a different size already exists in the queue" +msgstr "다른 크기의 파일이 이미 '다운로드 대기열'에 있음" + +#: dcpp/QueueManager.cpp:449 +msgid "A file with different tth root already exists in the queue" +msgstr "" +"다른 TTH(Tigertree Hash) Root 값을 갖는 파일이 이미 '다운로드 대기열'에 있음" + +#: dcpp/QueueManager.cpp:413 +msgid "A file with the same hash already exists in your share" +msgstr "동일한 Hash를 갖는 파일이 이미 공유 디렉토리에 존재함" + +#: dcpp/ConnectionManager.cpp:181 +msgid "All download slots taken" +msgstr "모든 다운로드 슬롯이 꽉 참" + +#: dcpp/DownloadManager.cpp:421 +msgid "CRC32 inconsistency (SFV-Check)" +msgstr "32-bit CRC 코드 불일치 (SFV-검사)" + +#: dcpp/DownloadManager.cpp:419 +#, fuzzy, boost-format +msgid "CRC32 inconsistency (SFV-Check) (File: %1%)" +msgstr "32-bit CRC 코드 불일치 (SFV-검사)" + +#: dcpp/ConnectionManager.cpp:385 +msgid "Certificate not trusted, unable to connect" +msgstr "인증이 신뢰되지 않으므로 연결(접속)할 수 없음" + +#: dcpp/Socket.cpp:155 dcpp/ConnectionManager.cpp:187 +#: dcpp/BufferedSocket.cpp:154 +msgid "Connection timeout" +msgstr "연결 시간 초과" + +#: dcpp/DownloadManager.cpp:284 +#, boost-format +msgid "Could not open target file: %1%" +msgstr "" + +#: dcpp/ShareManager.cpp:418 +msgid "Directory already shared" +msgstr "디렉토리가 이미 공유됨" + +#: dcpp/BufferedSocket.cpp:409 dcpp/BufferedSocket.cpp:427 +msgid "Disconnected" +msgstr "끊어짐" + +#: dcpp/UploadManager.cpp:450 +#, boost-format +msgid "Disconnected user leaving the hub: %1%" +msgstr "" + +#: dcpp/DCPlusPlus.cpp:103 +msgid "Download Queue" +msgstr "다운로드 대기열" + +#: dcpp/ShareManager.cpp:745 +#, boost-format +msgid "" +"Duplicate file will not be shared: %1%%2% (Size: %3% B) Dupe matched " +"against: %4%%5%" +msgstr "" + +#: dcpp/QueueManager.cpp:516 dcpp/QueueManager.cpp:520 +#, boost-format +msgid "Duplicate source: %1%" +msgstr "" + +#: dcpp/HashManager.cpp:456 +#, fuzzy, boost-format +msgid "Error creating hash data file: %1%" +msgstr "Hash 데이터 파일을 읽을 수 없음" + +#: dcpp/ZUtils.cpp:33 dcpp/ZUtils.cpp:54 dcpp/ZUtils.cpp:76 dcpp/ZUtils.cpp:86 +#: dcpp/BZUtils.cpp:31 dcpp/BZUtils.cpp:52 dcpp/BZUtils.cpp:60 +msgid "Error during compression" +msgstr "압축 도중 오류" + +#: dcpp/ZUtils.cpp:100 dcpp/ZUtils.cpp:123 dcpp/BZUtils.cpp:72 +#: dcpp/BZUtils.cpp:94 dcpp/BZUtils.cpp:97 dcpp/CryptoManager.cpp:344 +#: dcpp/CryptoManager.cpp:363 dcpp/CryptoManager.cpp:377 +msgid "Error during decompression" +msgstr "압축 해제 도중 오류" + +#: dcpp/HashManager.cpp:772 +#, boost-format +msgid "Error hashing %1%: %2%" +msgstr "" + +#: dcpp/HashManager.cpp:118 dcpp/HashManager.cpp:333 +#, boost-format +msgid "Error saving hash data: %1%" +msgstr "" + +#: dcpp/CryptoManager.cpp:228 dcpp/CryptoManager.cpp:232 +#: dcpp/CryptoManager.cpp:237 dcpp/CryptoManager.cpp:241 +msgid "Failed to load certificate file" +msgstr "인증 파일을 불러오는데 실패함" + +#: dcpp/CryptoManager.cpp:246 dcpp/CryptoManager.cpp:250 +#: dcpp/CryptoManager.cpp:255 dcpp/CryptoManager.cpp:259 +msgid "Failed to load private key" +msgstr "비밀(Private) 키를 불러오는데 실패함" + +#: dcpp/Socket.cpp:409 +msgid "" +"Failed to set up the socks server for UDP relay (check socks address and " +"port)" +msgstr "" +"UDP 중계를 위한 소켓 서버 설정에 실패함 (소켓 주소 및 포트를 확인하세요)" + +#: dcpp/ShareManager.cpp:780 +#, fuzzy, boost-format +msgid "File list refresh failed: %1%" +msgstr "파일-목록 갱신이 완료됨" + +#: dcpp/ShareManager.cpp:824 +msgid "File list refresh finished" +msgstr "파일-목록 갱신이 완료됨" + +#: dcpp/ShareManager.cpp:760 +msgid "" +"File list refresh in progress, please wait for it to finish before trying to " +"refresh again" +msgstr "" +"파일-목록 갱신이 진행 중이므로 갱신을 재시도하기 전에 완료될 때까지 기다리세" +"요" + +#: dcpp/ShareManager.cpp:802 +msgid "File list refresh initiated" +msgstr "파일-목록 갱신 시작..." + +#: dcpp/DirectoryListing.cpp:102 +msgid "File not available" +msgstr "파일이 유효하지 않음" + +#: dcpp/HashManager.cpp:89 +#, boost-format +msgid "Finished hashing: %1%" +msgstr "" + +#: dcpp/HashManager.cpp:87 +#, boost-format +msgid "Finished hashing: %1% (%2%/s)" +msgstr "" + +#: dcpp/DownloadManager.cpp:353 +msgid "Full tree does not match TTH root" +msgstr "받은 파일-목록의 TTH(Tigertree Hash) Root 값이 일치하지 않음" + +#: dcpp/CryptoManager.cpp:221 +msgid "Generated new TLS certificate" +msgstr "" + +#: dcpp/DCPlusPlus.cpp:97 +msgid "Hash database" +msgstr "Hash 데이터베이스" + +#: dcpp/HashManager.cpp:677 +msgid "Hash database rebuilt" +msgstr "Hash 데이터베이스가 모두 완성되었음" + +#: dcpp/HashManager.cpp:73 dcpp/HashManager.cpp:277 +#, boost-format +msgid "Hashing failed: %1%" +msgstr "" + +#: dcpp/DownloadManager.cpp:264 dcpp/DownloadManager.cpp:269 +msgid "Invalid size" +msgstr "" + +#: dcpp/QueueManager.cpp:486 dcpp/QueueManager.cpp:494 +msgid "" +"Invalid target file (missing directory, check default download directory " +"setting)" +msgstr "대상 파일이 잘못됨 ('다운로드 디렉토리' 설정을 확인하세요)" + +#: dcpp/FavoriteManager.cpp:438 +msgid "Kick user(s)" +msgstr "추방하기" + +#: dcpp/ConnectionManager.cpp:239 +#, boost-format +msgid "Listening socket failed (you need to restart DC++): %1%" +msgstr "" + +#: dcpp/BufferedSocket.cpp:263 +msgid "Maximum command length exceeded" +msgstr "최대 명령어 길이를 초과함" + +#: dcpp/DownloadManager.cpp:323 +msgid "More data was sent than was expected" +msgstr "예상되었던 것보다 많은 양의 데이터가 보내졌음" + +#: dcpp/ShareManager.cpp:403 +msgid "No directory specified" +msgstr "디렉토리가 지정되지 않았음" + +#: dcpp/DownloadManager.cpp:462 +msgid "No slots available" +msgstr "남은 슬롯이 없음" + +#: dcpp/AdcHub.cpp:554 +msgid "Not listening for connections - please restart DC++" +msgstr "연결을 위한 소켓 청취를 하지 않음 - DC++를 재시작하세요" + +#: dcpp/Transfer.cpp:63 dcpp/Transfer.cpp:67 dcpp/ClientManager.cpp:115 +#: dcpp/SearchManager.cpp:267 dcpp/SearchManager.cpp:329 +#: dcpp/SearchManager.cpp:331 +msgid "Offline" +msgstr "오프라인" + +#: dcpp/FavoriteManager.cpp:442 +msgid "Redirect user(s)" +msgstr "접속-전환(Redirect)할 허브 제안하기..." + +#: dcpp/ShareManager.cpp:421 +msgid "Remove all subdirectories before adding this one" +msgstr "추가하기 전에 이미 공유된 모든 서브-디렉토리를 공유에서 삭제하세요" + +#: dcpp/DCPlusPlus.cpp:100 +msgid "Shared Files" +msgstr "파일 공유!" + +#: dcpp/Socket.cpp:270 dcpp/Socket.cpp:274 +msgid "Socks server authentication failed (bad login / password?)" +msgstr "소켓 서버 인증이 실패함 (잘못된 로그인이름/비밀번호?)" + +#: dcpp/CryptoManager.cpp:223 +#, fuzzy, boost-format +msgid "TLS disabled, failed to generate certificate: %1%" +msgstr "TLS를 사용할 수 없음, 인증 파일 셋이 없음" + +#: dcpp/CryptoManager.cpp:213 +msgid "TLS disabled, no certificate file set" +msgstr "TLS를 사용할 수 없음, 인증 파일 셋이 없음" + +#: dcpp/QueueManager.cpp:481 dcpp/QueueManager.cpp:490 +msgid "Target filename too long" +msgstr "대상 파일 이름이 너무 김" + +#: dcpp/QueueManager.cpp:769 +msgid "Target removed" +msgstr "" + +#: dcpp/Socket.cpp:256 +msgid "The socks server doesn't support login / password authentication" +msgstr "소켓 서버가 '로그인이름/비밀번호' 인증을 지원하지 않음" + +#: dcpp/Socket.cpp:163 dcpp/Socket.cpp:174 dcpp/Socket.cpp:207 +#: dcpp/Socket.cpp:211 dcpp/Socket.cpp:238 dcpp/Socket.cpp:253 +msgid "The socks server failed establish a connection" +msgstr "소켓 서버가 연결 구성에 실패함" + +#: dcpp/Socket.cpp:242 +msgid "The socks server requires authentication" +msgstr "소켓 서버가 인증을 필요로 함" + +#: dcpp/ShareManager.cpp:407 +msgid "The temporary download directory cannot be shared" +msgstr "'미완료 다운로드 디렉토리'는 공유할 수 없음" + +#: dcpp/QueueManager.cpp:436 +msgid "This file is already queued" +msgstr "이 파일은 이미 '다운로드 대기열'에 추가되었음" + +#: dcpp/Thread.cpp:34 dcpp/Thread.cpp:42 +msgid "Unable to create thread" +msgstr "Thread를 생성할 수 없음" + +#: dcpp/QueueManager.cpp:957 +#, boost-format +msgid "Unable to open filelist: %1%" +msgstr "" + +#: dcpp/HashManager.cpp:131 +msgid "Unable to read hash data file" +msgstr "Hash 데이터 파일을 읽을 수 없음" + +#: dcpp/DownloadManager.cpp:145 +#, fuzzy, boost-format +msgid "Unable to rename %1%: %2%" +msgstr "Thread를 생성할 수 없음" + +#: dcpp/UploadManager.cpp:149 +#, boost-format +msgid "Unable to send file %1%: %2%" +msgstr "" + +#: dcpp/Socket.cpp:55 +#, boost-format +msgid "Unknown error: 0x%1%" +msgstr "" + +#: dcpp/ShareManager.cpp:426 dcpp/ShareManager.cpp:468 +msgid "Virtual directory name already exists" +msgstr "지정한 공유 이름이 이미 존재함" + +#: dcpp/QueueManager.cpp:383 dcpp/QueueManager.cpp:407 +msgid "You're trying to download from yourself!" +msgstr "자신의 파일을 다운로드할 수 없음" + +#: dcpp/SettingsManager.cpp:156 +msgid "downloaded from" +msgstr "" + +#: dcpp/SettingsManager.cpp:157 +msgid "uploaded to" +msgstr "" Added: dcplusplus/trunk/win32/po/ko.po =================================================================== --- dcplusplus/trunk/win32/po/ko.po (rev 0) +++ dcplusplus/trunk/win32/po/ko.po 2008-01-24 21:34:31 UTC (rev 977) @@ -0,0 +1,2313 @@ +# Korean translations for the DC++ package. +# Copyright (C) 2008 The translators +# This file is distributed under the same license as the DC++ package. +# <gut...@us...>, 2008. +# +msgid "" +msgstr "" +"Project-Id-Version: win32\n" +"Report-Msgid-Bugs-To: dcp...@li...\n" +"POT-Creation-Date: 2008-01-23 21:22+0100\n" +"Last-Translator: <gut...@us...>\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=1; plural=0;\n" + +#: win32/MainWindow.cpp:849 +#, fuzzy, boost-format +msgid "" +"%1%\n" +"Open download page?" +msgstr "'기본 다운로드 디렉토리' 열기" + +#: win32/TransferView.cpp:420 +#, boost-format +msgid "%1% (%2$0.2f)" +msgstr "" + +#: win32/HashProgressDlg.cpp:91 +#, boost-format +msgid "%1% files/h, %2% files left" +msgstr "" + +#: win32/SearchFrame.cpp:576 +#, boost-format +msgid "%1% filtered" +msgstr "" + +#: win32/SearchFrame.cpp:571 +#, boost-format +msgid "%1% item" +msgid_plural "%1% items" +msgstr[0] "" + +#: win32/HashProgressDlg.cpp:100 +#, boost-format +msgid "%1% left" +msgstr "" + +#: win32/HubFrame.cpp:936 +#, fuzzy, boost-format +msgid "%1% user" +msgid_plural "%1% users" +msgstr[0] "사용자 없음" + +#: win32/TransferView.cpp:434 win32/DownloadsFrame.cpp:130 +#, boost-format +msgid "%1%/s" +msgstr "" + +#: win32/HashProgressDlg.cpp:92 +#, boost-format +msgid "%1%/s, %2% left" +msgstr "" + +#: win32/HubListsDlg.cpp:63 win32/UCPage.cpp:33 +#, fuzzy +msgid "&Add" +msgstr "등록 시간" + +#: win32/UploadPage.cpp:37 win32/FavoriteDirsPage.cpp:34 +msgid "&Add folder" +msgstr "" + +#: win32/DirectoryListingFrame.cpp:369 win32/SearchFrame.cpp:774 +#: win32/SearchFrame.cpp:804 win32/DownloadPage.cpp:32 win32/LogPage.cpp:33 +#: win32/Appearance2Page.cpp:30 +#, fuzzy +msgid "&Browse..." +msgstr "찾기..." + +#: win32/UCPage.cpp:34 +#, fuzzy +msgid "&Change" +msgstr "프로그램 업데이트 히스토리" + +#: win32/PrivateFrame.cpp:373 win32/HubFrame.cpp:1184 +#, fuzzy +msgid "&Close" +msgstr "색상/글꼴" + +#: win32/PublicHubsFrame.cpp:150 +msgid "&Configure" +msgstr "" + +#: win32/FavHubsFrame.cpp:71 win32/FavHubsFrame.cpp:113 +#: win32/PublicHubsFrame.cpp:447 +#, fuzzy +msgid "&Connect" +msgstr "접속되었음" + +#: win32/TransferView.cpp:115 +#, fuzzy +msgid "&Disconnect" +msgstr "허브에 직접 접속하기" + +#: win32/DirectoryListingFrame.cpp:311 win32/DirectoryListingFrame.cpp:336 +#: win32/DirectoryListingFrame.cpp:348 win32/SearchFrame.cpp:742 +#, fuzzy +msgid "&Download" +msgstr "다운로드" + +#: win32/MainWindow.cpp:206 +#, fuzzy +msgid "&Download Queue\tCtrl+D" +msgstr "다운로드 대기열" + +#: win32/HubListsDlg.cpp:75 +msgid "&Edit" +msgstr "" + +#: win32/MainWindow.cpp:203 +#, fuzzy +msgid "&Favorite Hubs\tCtrl+F" +msgstr "즐겨찾는 허브" + +#: win32/MainWindow.cpp:182 +#, fuzzy +msgid "&File" +msgstr "파일" + +#: win32/TransferView.cpp:112 +msgid "&Force attempt" +msgstr "" + +#: win32/QueueFrame.cpp:1006 win32/WaitingUsersFrame.cpp:83 +#: win32/PrivateFrame.cpp:365 +msgid "&Get file list" +msgstr "" + +#: win32/DirectoryListingFrame.cpp:325 +#, fuzzy +msgid "&Go to directory" +msgstr "다운로드하기 (디렉토리 통째)" + +#: win32/MainWindow.cpp:229 win32/ADLSearchFrame.cpp:93 +msgid "&Help" +msgstr "" + +#: win32/PrivateFrame.cpp:366 +#, fuzzy +msgid "&Match queue" +msgstr "파일-목록에서 내 '다운로드 대기열'의 파일을 찾아 소스에 추가하기" + +#: win32/QueueFrame.cpp:960 win32/QueueFrame.cpp:978 win32/QueueFrame.cpp:988 +#, fuzzy +msgid "&Move/Rename" +msgstr "이름 바꾸기" + +#: win32/FavHubsFrame.cpp:76 win32/FavHubsFrame.cpp:115 +#: win32/ADLSearchFrame.cpp:68 win32/ADLSearchFrame.cpp:293 +msgid "&New..." +msgstr "" + +#: win32/MainWindow.cpp:215 +#, fuzzy +msgid "&Notepad\tCtrl+N" +msgstr "메모장" + +#: win32/FavHubsFrame.cpp:81 win32/FavHubsFrame.cpp:116 +#: win32/ADLSearchFrame.cpp:73 win32/ADLSearchFrame.cpp:294 +#: win32/UsersFrame.cpp:186 +#, fuzzy +msgid "&Properties" +msgstr "ADL 검색 등록정보" + +#: win32/MainWindow.cpp:202 +#, fuzzy +msgid "&Public Hubs\tCtrl+P" +msgstr "공개 허브" + +#: win32/MainWindow.cpp:184 +#, fuzzy +msgid "&Quick Connect ...\tCtrl+Q" +msgstr "허브에 직접 접속하기" + +#: win32/MainWindow.cpp:186 win32/HubFrame.cpp:1179 +msgid "&Reconnect\tCtrl+R" +msgstr "" + +#: win32/PublicHubsFrame.cpp:156 +msgid "&Refresh" +msgstr "" + +#: win32/UploadPage.cpp:36 win32/QueueFrame.cpp:968 win32/QueueFrame.cpp:980 +#: win32/QueueFrame.cpp:990 win32/HubListsDlg.cpp:79 +#: win32/WaitingUsersFrame.cpp:85 win32/FavoriteDirsPage.cpp:33 +#: win32/SearchFrame.cpp:755 win32/FavHubsFrame.cpp:96 +#: win32/FavHubsFrame.cpp:120 win32/ADLSearchFrame.cpp:88 +#: win32/ADLSearchFrame.cpp:295 win32/UCPage.cpp:35 win32/UsersFrame.cpp:187 +#, fuzzy +msgid "&Remove" +msgstr "이름 바꾸기" + +#: win32/SpyFrame.cpp:191 +#, fuzzy +msgid "&Search" +msgstr "검색" + +#: win32/MainWindow.cpp:211 +#, fuzzy +msgid "&Search\tCtrl+S" +msgstr "검색" + +#: win32/QueueFrame.cpp:1014 win32/WaitingUsersFrame.cpp:88 +#, fuzzy +msgid "&Send private message" +msgstr "1:1 메시지" + +#: win32/MainWindow.cpp:200 +#, fuzzy +msgid "&View" +msgstr "비디오 파일" + +#: win32/DirectoryListingFrame.cpp:315 win32/SearchFrame.cpp:746 +msgid "&View as text" +msgstr "" + +#: win32/MainWindow.cpp:221 +msgid "&Window" +msgstr "" + +#: win32/HubFrame.cpp:490 +#, boost-format +msgid "*** Joins: %1%" +msgstr "" + +#: win32/HubFrame.cpp:497 +#, boost-format +msgid "*** Parts: %1%" +msgstr "" + +#: win32/HashProgressDlg.cpp:84 +#, boost-format +msgid "-.-- B/s, %1% left" +msgstr "" + +#: win32/HashProgressDlg.cpp:83 +#, boost-format +msgid "-.-- files/h, %1% files left" +msgstr "" + +#: win32/WinUtil.cpp:1034 +msgid "" +"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." +msgstr "" +"MAGNET 링크를 DC++가 처리했지만, Direct Connect 네트워크상에서 사용하기 위한 " +"유효한 파일 Hash를 포함하고있지 않음 (아무 작업도 수행하지 않음)" + +#: win32/MainWindow.cpp:212 win32/MainWindow.cpp:283 +msgid "ADL Search" +msgstr "ADL 검색" + +#: win32/ADLSProperties.cpp:49 +msgid "ADLSearch Properties" +msgstr "ADL 검색 등록정보" + +#: win32/MainWindow.cpp:294 win32/MainWindow.cpp:550 +msgid "AWAY" +msgstr "자리비움" + +#: win32/MainWindow.cpp:234 +msgid "About DC++..." +msgstr "DC++ 정보" + +#: win32/AdvancedPage.cpp:43 +msgid "Accept custom user commands from hub" +msgstr "" +"허브로부터 사용자 정의 명령어를 받아들임 (이러한 사용자 정의 명령어는 허브 " +"창 탭을 클릭하거나 전송 프레임, 검색 창, 사용자 목록 등에 있는 사용자를 클릭" +"하면 나타나게 되며, 허브의 규칙 사항을 읽도록 만들거나 운영자 기능의 수행, 허" +"브 Bot와의 상호작용 등등의 여러가지를 가능하게 함)" + +#: win32/WaitingUsersFrame.cpp:87 win32/PrivateFrame.cpp:369 +#: win32/HubFrame.cpp:1176 win32/PublicHubsFrame.cpp:448 +#, fuzzy +msgid "Add To &Favorites" +msgstr "즐겨찾는 허브" + +#: win32/AdvancedPage.cpp:45 +msgid "Add finished files to share instantly (if shared)" +msgstr "" +"다운로드 완료된 파일을 즉시 공유시킴 (이 옵션을 체크하면 파일을 다운로드할 " +"때 공유 디렉토리로 직접 받거나 '기본 다운로드 디렉토리'가 공유되었을 경우, " +"그 파일의 전송이 완료되자 마자 공유됨)(내 파일-목록에는 갱신하기 전까지는 나" +"타나지 않음)" + +#: win32/QueueFrame.cpp:45 +msgid "Added" +msgstr "등록 시간" + +#: win32/MainWindow.cpp:345 win32/PublicHubsFrame.cpp:52 +msgid "Address" +msgstr "허브 주소" + +#: win32/SettingsDialog.cpp:67 +msgid "Advanced" +msgstr "고급" + +#: win32/SettingsDialog.cpp:69 +msgid "Advanced\\Experts only" +msgstr "" + +#: win32/SettingsDialog.cpp:68 +#, fuzzy +msgid "Advanced\\Logs" +msgstr "고급" + +#: win32/SettingsDialog.cpp:71 +msgid "Advanced\\Security Certificates" +msgstr "" + +#: win32/SettingsDialog.cpp:70 +msgid "Advanced\\User Commands" +msgstr "" + +#: win32/QueueFrame.cpp:1024 win32/QueueFrame.cpp:1034 +msgid "All" +msgstr "모두" + +#: win32/QueueFrame.cpp:431 +#, fuzzy, boost-format +msgid "All %1% users offline" +msgstr "사용자가 오프라인" + +#: win32/CertificatesPage.cpp:43 +msgid "Allow TLS connections to clients without trusted certificate" +msgstr "신뢰할 수 있는 인증이 없는 클라이언트들과의 TLS 연결을 허용함" + +#: win32/CertificatesPage.cpp:42 +msgid "Allow TLS connections to hubs without trusted certificate" +msgstr "신뢰할 수 있는 인증이 없는 허브로의 TLS 접속을 허용함" + +#: win32/CommandDlg.cpp:117 +msgid "Always open help file with this dialog" +msgstr "관련된 도움말 항목을 항상 띄움" + +#: win32/SearchFrame.cpp:182 win32/HubFrame.cpp:129 +#: win32/PublicHubsFrame.cpp:138 +msgid "Any" +msgstr "모든 종류" + +#: win32/SettingsDialog.cpp:63 +msgid "Appearance" +msgstr "모양" + +#: win32/SettingsDialog.cpp:64 +msgid "Appearance\\Colors and sounds" +msgstr "" + +#: win32/SettingsDialog.cpp:65 +#, fuzzy +msgid "Appearance\\Tabs" +msgstr "모양" + +#: win32/SettingsDialog.cpp:66 +#, fuzzy +msgid "Appearance\\Windows" +msgstr "모양" + +#: win32/SearchFrame.cpp:156 +msgid "At least" +msgstr "적어도" + +#: win32/SearchFrame.cpp:157 +msgid "At most" +msgstr "많아야" + +#: win32/SearchFrame.cpp:183 +msgid "Audio" +msgstr "오디오 파일" + +#: win32/FavHubsFrame.cpp:32 +msgid "Auto connect / Name" +msgstr "자동 접속 (체크) / 허브 이름" + +#: win32/UsersFrame.cpp:30 +msgid "Auto grant slot / Nick" +msgstr "자동 슬롯 허용 (체크) / 사용자 닉네임" + +#: win32/QueuePage.cpp:28 +#, fuzzy +msgid "Auto priority settings" +msgstr "다운로드 소스 자동-버림 설정" + +#: win32/Advanced3Page.cpp:40 +msgid "Auto refresh time" +msgstr "자동 갱신 시간" + +#: win32/AdvancedPage.cpp:30 +msgid "Auto-away on minimize (and back on restore)" +msgstr "" +"프로그램을 최소화하면 자동으로 자리비움 상태로 표시함 (프로그램을 복원하면 상" +"태가 되돌아 옴)" + +#: win32/WindowsPage.cpp:30 +msgid "Auto-open at startup" +msgstr "시작할 때 자동으로 열 창" + +#: win32/Advanced3Page.cpp:41 +msgid "Auto-search limit" +msgstr "자동-검색 제한" + +#: win32/QueuePage.cpp:37 +msgid "Autodrop settings" +msgstr "다운로드 소스 자동-버림 설정" + +#: win32/QueuePage.cpp:69 +msgid "Autodrop slow sources for all queue items (except filelists)" +msgstr "" +"자동-버림된 느린 사용자를 모든 다운로드 대기열 항목의 소스에서 제거함 (파일-" +"목록 제외)" + +#: win32/ADLSearchFrame.cpp:40 +msgid "Automatic Directory Listing Search" +msgstr "ADL(Automatic Directory Listing) 검색" + +#: win32/AdvancedPage.cpp:37 +msgid "Automatically disconnect users who leave the hub" +msgstr "" +"허브를 떠난 사용자는 자동으로 파일 전송을 끊음 (얌체 공유자를 차단하고 싶은 " +"경우, 이 옵션을 체크하는 것이 유용함)" + +#: win32/AdvancedPage.cpp:31 +msgid "Automatically follow redirects" +msgstr "허브의 접속-전환(Redirect) 제안에 자동으로 응함" + +#: win32/QueuePage.cpp:73 +msgid "Automatically match queue for auto search hits" +msgstr "" +"'다운로드 대기열' 자동-검색이 성공한 경우, 검색된 파일의 소스 뿐만 아니라, " +"그 파일 소유자의 파일-목록을 받고 그 파일-목록에서 내 '다운로드 대기열'의 파" +"일을 찾아 일치하는 모든 파일의 소스에도 그 소유자를 추가함" + +#: win32/UploadPage.cpp:39 +msgid "Automatically open an extra slot if speed is below (0 = disable)" +msgstr "속도가 다음 미만이면 별도 슬롯을 자동 오픈 (0=사용 안함)" + +#: win32/QueuePage.cpp:72 +msgid "Automatically search for alternative download locations" +msgstr "" +"내 '다운로드 대기열'의 모든 파일을 순차적으로 자동-검색하고, 파일 소스(소유" +"자 목록)에 새로 검색되는 파일 소유자를 추가해 나감 (기존 파일 소유자 이외의 " +"새로운 대체 소스를 확보함으로써 다운로드 효율성이 높아짐)" + +#: win32/SpyFrame.cpp:115 +#, boost-format +msgid "Average/s: %1%" +msgstr "" + +#: win32/WinUtil.cpp:264 win32/WinUtil.cpp:274 +msgid "Away mode off" +msgstr "자리비움 모드 꺼짐" + +#: win32/WinUtil.cpp:269 +#, fuzzy, boost-format +msgid "Away mode on: %1%" +msgstr "자리비움 모드 꺼짐" + +#: win32/Advanced3Page.cpp:28 win32/SearchFrame.cpp:171 +#: win32/ADLSProperties.cpp:74 +msgid "B" +msgstr "B" + +#: win32/QueuePage.cpp:39 +msgid "B/s" +msgstr "B/s" + +#: win32/Advanced3Page.cpp:37 +msgid "Bind address" +msgstr "바인딩 주소" + +#: win32/AdvancedPage.cpp:41 +msgid "Break on first ADLSearch match" +msgstr "첫번째 ADL 검색에서 일치하면 검색을 멈춤" + +#: win32/DownloadPage.cpp:34 +msgid "Browse..." +msgstr "찾기..." + +#: win32/SearchFrame.cpp:43 win32/HubFrame.cpp:44 win32/UsersFrame.cpp:34 +msgid "CID" +msgstr "CID" + +#: win32/QueueFrame.cpp:477 +msgid "CRC32 inconsistency (SFV-Check)" +msgstr "32-bit CRC 코드 불일치 (SFV-검사)" + +#: win32/MainWindow.cpp:233 +msgid "Change Log" +msgstr "프로그램 업데이트 히스토리" + +#: win32/CommandDlg.cpp:82 +msgid "Chat" +msgstr "대화" + +#: win32/QueuePage.cpp:40 +msgid "Check every" +msgstr "체크 간격" + +#: win32/TransferView.cpp:42 +msgid "Chunk size" +msgstr "" + +#: win32/TransferView.cpp:45 +msgid "Cipher" +msgstr "" + +#: win32/AdvancedPage.cpp:32 +msgid "Clear search box after each search" +msgstr "" +"검색 창에서 검색을 시작할 때마다 검색 문자열 입력 박스를 지움 (지워지더라도 " +"최근 사용한 검색어 중 10개까지 드랍-다운 메뉴에서 고를 수 있음)" + +#: win32/MainWindow.cpp:224 +msgid "Close all PM windows" +msgstr "모든 1:1 메시지 창 닫기" + +#: win32/MainWindow.cpp:226 +msgid "Close all file list windows" +msgstr "모든 파일-목록 창 닫기" + +#: win32/MainWindow.cpp:225 +msgid "Close all offline PM windows" +msgstr "모든 오프라인 1:1 메시지 창 닫기" + +#: win32/MainWindow.cpp:227 +msgid "Close all search windows" +msgstr "모든 검색 창 닫기" + +#: win32/MainWindow.cpp:223 +msgid "Close disconnected" +msgstr "접속이 끊긴 창 닫기" + +#: win32/Appearance2Page.cpp:31 +msgid "Colors" +msgstr "색상/글꼴" + +#: win32/UCPage.cpp:54 +msgid "Command" +msgstr "명령어" + +#: win32/SearchFrame.cpp:184 +msgid "Compressed" +msgstr "압축 파일" + +#: win32/DownloadPage.cpp:41 +msgid "Configure Public Hub Lists" +msgstr "공개 허브 목록 설정" + +#: win32/HubListsDlg.cpp:43 win32/PublicHubsFrame.cpp:164 +msgid "Configured Public Hub Lists" +msgstr "설정된 공개 허브 목록" + +#: win32/WindowsPage.cpp:67 +msgid "Confirm application exit" +msgstr "프로그램을 종료할 때 확인함" + +#: win32/WindowsPage.cpp:32 +msgid "Confirm dialog options" +msgstr "확인 옵션" + +#: win32/WindowsPage.cpp:68 +msgid "Confirm favorite hub removal" +msgstr "'즐겨찾는 허브'에서 허브를 삭제할 때 확인함" + +#: win32/WindowsPage.cpp:69 +msgid "Confirm item removal in download queue" +msgstr "'다운로드 대기열'에서 항목을 삭제할 때 확인함" + +#: win32/HubFrame.cpp:500 +msgid "Connected" +msgstr "접속되었음" + +#: win32/TransferView.cpp:453 win32/TransferView.cpp:460 +#, fuzzy +msgid "Connecting" +msgstr "연결" + +#: win32/TransferView.cpp:172 +#, fuzzy +msgid "Connecting (forced)" +msgstr "접속되었음" + +#: win32/HubFrame.cpp:826 +#, fuzzy, boost-format +msgid "Connecting to %1%..." +msgstr "연결" + +#: win32/SearchFrame.cpp:38 win32/HubFrame.cpp:41 +msgid "Connection" +msgstr "연결" + +#: win32/SettingsDialog.cpp:58 +msgid "Connection settings" +msgstr "접속 설정" + +#: win32/HubFrame.cpp:1180 win32/PublicHubsFrame.cpp:449 +#, fuzzy +msgid "Copy &address to clipboard" +msgstr "클립보드에 MAGNET 링크 복사하기" + +#: win32/TransferView.cpp:113 win32/HubFrame.cpp:1160 +#, fuzzy +msgid "Copy &nick to clipboard" +msgstr "클립보드에 MAGNET 링크 복사하기" + +#: win32/WaitingUsersFrame.cpp:84 +msgid "Copy Filename" +msgstr "파일 이름 복사하기" + +#: win32/WinUtil.cpp:363 +msgid "Copy magnet link to clipboard" +msgstr "클립보드에 MAGNET 링크 복사하기" + +#: win32/SpyFrame.cpp:35 +msgid "Count" +msgstr "개수" + +#: win32/PublicHubsFrame.cpp:53 +msgid "Country" +msgstr "국가" + +#: win32/CommandDlg.cpp:63 +msgid "Create / Modify Command" +msgstr "사용자 정의 명령어 추가/변경" + +#: win32/HashProgressDlg.cpp:40 +msgid "Creating file index..." +msgstr "파일 색인 생성..." + +#: win32/MainWindow.cpp:553 +#, boost-format +msgid "D: %1%" +msgstr "" + +#: win32/MainWindow.cpp:555 +#, boost-format +msgid "D: %1%/s (%2%)" +msgstr "" + +#: win32/WinUtil.cpp:828 +msgid "DC++" +msgstr "DC++" + +#: win32/MainWindow.cpp:236 +msgid "DC++ Homepage" +msgstr "DC++ 홈페이지" + +#: win32/MainWindow.cpp:242 +msgid "DC++ discussion forum" +msgstr "DC++ 토론 포럼" + +#: win32/AppearancePage.cpp:86 win32/AppearancePage.cpp:109 +msgid "Default" +msgstr "" + +#: win32/AppearancePage.cpp:32 +msgid "Default away message" +msgstr "기본 자리비움 메시지" + +#: win32/DownloadPage.cpp:31 +msgid "Default download directory" +msgstr "기본 다운로드 디렉토리" + +#: win32/GeneralPage.cpp:31 win32/FavHubsFrame.cpp:33 win32/HubFrame.cpp:39 +#: win32/PublicHubsFrame.cpp:50 win32/UsersFrame.cpp:33 +#: win32/UsersFrame.cpp:143 +msgid "Description" +msgstr "설명" + +#: win32/ADLSearchFrame.cpp:34 +msgid "Destination Directory" +msgstr "대상 디렉토리" + +#: win32/NetworkPage.cpp:30 win32/NetworkPage.cpp:31 +msgid "Direct connection" +msgstr "직접 접속" + +#: win32/DownloadPage.cpp:30 +msgid "Directories" +msgstr "다운로드 디렉토리" + +#: win32/UploadPage.cpp:64 win32/FavoriteDirsPage.cpp:49 +#: win32/SearchFrame.cpp:189 win32/SearchFrame.cpp:530 win32/LogPage.cpp:32 +#: win32/ADLSProperties.cpp:63 +msgid "Directory" +msgstr "디렉토리" + +#: win32/FavoriteDirsPage.cpp:126 win32/FavoriteDirsPage.cpp:159 +msgid "Directory or directory name already exists" +msgstr "같은 디렉토리나 디렉토리 대표 이름이 이미 존재함" + +#: win32/MagnetDlg.cpp:62 +msgid "Do nothing" +msgstr "무시하기" + +#: win32/SearchFrame.cpp:185 +msgid "Document" +msgstr "문서 파일" + +#: win32/NetworkPage.cpp:35 +msgid "Don't allow hub/UPnP to override" +msgstr "hub/UPnP가 이 설정을 우선하지 않도록 함" + +#: win32/AdvancedPage.cpp:47 +msgid "Don't automatically disconnect favorite users who leave the hub" +msgstr "허브를 떠난 '즐겨 찾는 사용자'를 자동으로 끊지 않음" + +#: win32/AdvancedPage.cpp:36 +msgid "Don't delete file lists when exiting" +msgstr "다운로드한 파일-목록을 프로그램을 종료할 때 삭제하지 않고 보존함" + +#: win32/QueuePage.cpp:75 +msgid "Don't download files already in share" +msgstr "이미 공유하고 있는 파일은 다운로드하지 않음" + +#: win32/QueuePage.cpp:76 +msgid "Don't download files already in the queue" +msgstr "이미 '다운로드 대기열'에 추가한 파일은 다운로드하지 않음" + +#: win32/HubFrame.cpp:385 +msgid "Don't remove /password before your password" +msgstr "비밀번호 앞의 \"/password\" 부분을 없애면 안됨" + +#: win32/QueuePage.cpp:71 +msgid "Don't remove the source when autodropping, only disconnect" +msgstr "자동-버림할 때 전송만 끊고 해당 소스를 제거하지는 않음" + +#: win32/AdvancedPage.cpp:40 +msgid "Don't send the away message to bots" +msgstr "허브 Bot에게는 자리비움 메시지를 보내지 않음" + +#: win32/MainWindow.cpp:245 +msgid "Donate (paypal)" +msgstr "후원금 기부 (paypal)" + +#: win32/Appearance2Page.cpp:34 +msgid "Donate €€€:s! (ok, dirty dollars are fine as well =) (see help menu)" +msgstr "" + +#: win32/DownloadsFrame.cpp:40 +msgid "Done" +msgstr "완료" + +#: win32/DirectoryListingFrame.cpp:358 +#, fuzzy +msgid "Download &to..." +msgstr "다운로드하기 - 위치 지정" + +#: win32/ADLSProperties.cpp:88 +msgid "Download Matches" +msgstr "자동 다운로드" + +#: win32/QueueFrame.cpp:57 win32/TabsPage.cpp:41 win32/WindowsPage.cpp:39 +#: win32/MainWindow.cpp:277 +msgid "Download Queue" +msgstr "다운로드 대기열" + +#: win32/PublicHubsFrame.cpp:322 +#, fuzzy, boost-format +msgid "Download failed: %1%" +msgstr "받은 크기" + +#: win32/WinUtil.cpp:829 +msgid "Download files from the Direct Connect network" +msgstr "Direct Connect 네트워크로부터 파일 다운로드" + +#: win32/SearchFrame.cpp:764 +msgid "Download to..." +msgstr "다운로드하기 - 위치 지정" + +#: win32/SearchFrame.cpp:744 +msgid "Download whole directory" +msgstr "다운로드하기 (디렉토리 통째)" + +#: win32/SearchFrame.cpp:794 +msgid "Download whole directory to..." +msgstr "다운로드하기 (디렉토리 통째) - 위치 지정" + +#: win32/QueueFrame.cpp:39 +msgid "Downloaded" +msgstr "받은 크기" + +#: win32/TransferView.cpp:531 +#, fuzzy, boost-format +msgid "Downloading %1%" +msgstr "다운로드..." + +#: win32/DownloadsFrame.cpp:128 +#, boost-format +msgid "Downloading from %1% user" +msgid_plural "Downloading from %1% users" +msgstr[0] "" + +#: win32/DirectoryListingFrame.cpp:693 +msgid "Downloading list..." +msgstr "목록 다운로드..." + +#: win32/PublicHubsFrame.cpp:188 +msgid "Downloading public hub list..." +msgstr "허브 목록 다운로드..." + +#: win32/PublicHubsFrame.cpp:319 +#, fuzzy, boost-format +msgid "Downloading public hub list... (%1%)" +msgstr "허브 목록 다운로드..." + +#: win32/AboutDlg.cpp:63 +msgid "Downloading..." +msgstr "다운로드..." + +#: win32/WindowsPage.cpp:48 win32/SettingsDialog.cpp:59 +#: win32/MainWindow.cpp:218 win32/MainWindow.cpp:237 +#: win32/DownloadsFrame.cpp:45 win32/Appearance2Page.cpp:40 +msgid "Downloads" +msgstr "다운로드" + +#: win32/SettingsDialog.cpp:60 +#, fuzzy +msgid "Downloads\\Favorites" +msgstr "자동 다운로드" + +#: win32/SettingsDialog.cpp:61 +#, fuzzy +msgid "Downloads\\Queue" +msgstr "다운로드 대기열" + +#: win32/QueuePage.cpp:38 +msgid "Drop sources below" +msgstr "자동-버림 속도(↓)" + +#: win32/MainWindow.cpp:198 +msgid "E&xit" +msgstr "" + +#: win32/GeneralPage.cpp:30 win32/HubFrame.cpp:43 +msgid "E-Mail" +msgstr "E-Mail" + +#: win32/HubListsDlg.cpp:149 +msgid "Edit the hublist" +msgstr "허브 목록 편집" + +#: win32/AdvancedPage.cpp:39 +msgid "Enable automatic SFV checking" +msgstr "" +"SFV(Simple File Verification)-검사를 자동으로 실시함 (이 옵션을 체크하면 각 " +"파일의 32-bit CRC 코드 목록을 담고 있는 sfv-파일이 있고 그 목록 중의 파일에 " +"대한 다운로드가 완료되었을 경우, 자동으로 그 파일의 CRC 코드를 계산하고 sfv-" +"파일의 것과 일치하는지 비교하여 파일이 전송과정에서 손상되었는지 여부를 검사" +"하고, 일치하지 않는다면 다운로드를 재시도함)" + +#: win32/AdvancedPage.cpp:42 +msgid "Enable safe and compressed transfers" +msgstr "" +"안전한 압축 방식을 사용하여 데이터를 전송함 (이 옵션을 체크하면 이 기능을 지" +"원하는 호환 클라이언트와 파일을 주고 받을 때, 무결성 검사를 포함하는 ZLIB 압" +"축 방식을 사용하여 데이터를 전송함)(이러한 전송 방식은 CPU 성능을 어느 정도 " +"사용하지만 압축되지 않은 구조를 갖는 포맷의 파일을 전송하는데 있어 엄청난 속" +"도의 향상을 가져올 수 있을 뿐더러 파일의 무결성까지 보장할 수 있음)" + +#: win32/ADLSProperties.cpp:84 +msgid "Enabled" +msgstr "활성화" + +#: win32/ADLSearchFrame.cpp:32 +msgid "Enabled / Search String" +msgstr "활성 (체크) / 검색 문자열" + +#: win32/DirectoryListingFrame.cpp:795 +msgid "Enter search string" +msgstr "검색 문자열 입력하기..." + +#: win32/WinUtil.cpp:736 +msgid "Error creating adc registry key" +msgstr "\"adc://\" URL 레지스트리 키 생성 오류" + +#: win32/WinUtil.cpp:697 +msgid "Error creating dchub registry key" +msgstr "\"dchub://\" URL 레지스트리 키 생성 오류" + +#: win32/WinUtil.cpp:796 win32/WinUtil.cpp:809 +msgid "Error creating magnet registry key" +msgstr "\"magnet:\" URI 레지스트리 키 생성 오류" + +#: win32/QueueFrame.cpp:44 +msgid "Errors" +msgstr "오류" + +#: win32/QueueFrame.cpp:43 win32/DirectoryListingFrame.cpp:42 +#: win32/SearchFrame.cpp:40 +msgid "Exact size" +msgstr "정확한 크기" + +#: win32/SearchFrame.cpp:186 +msgid "Executable" +msgstr "실행 가능 파일" + +#: win32/MainWindow.cpp:999 +msgid "Exit" +msgstr "" + +#: win32/NetworkPage.cpp:38 +msgid "External / WAN IP" +msgstr "전역/WAN IP" + +#: win32/PublicHubsFrame.cpp:168 +#, fuzzy +msgid "F&ilter" +msgstr "파일" + +#: win32/MainWindow.cpp:632 win32/MainWindow.cpp:633 +msgid "Failed to create port mappings. Please set up your NAT yourself." +msgstr "" +"포트 매핑을 생성하는데 실패함, NAT(Network Address Translation)를 직접 설정하" +"세요" + +#: win32/MainWindow.cpp:651 win32/MainWindow.cpp:652 +msgid "Failed to get external IP via UPnP. Please set it yourself." +msgstr "UPnP를 통하여 외부 IP를 얻는데 실패함, 직접 설정하세요" + +#: win32/MainWindow.cpp:665 win32/MainWindow.cpp:673 +msgid "Failed to remove port mappings" +msgstr "포트 매핑을 제거하는데 실패함" + +#: win32/MainWindow.cpp:204 +#, fuzzy +msgid "Favorite &Users\tCtrl+U" +msgstr "즐겨찾는 사용자" + +#: win32/FavHubProperties.cpp:47 +msgid "Favorite Hub Properties" +msgstr "즐겨찾는 허브 등록정보" + +#: win32/WindowsPage.cpp:47 win32/MainWindow.cpp:274 win32/FavHubsFrame.cpp:41 +msgid "Favorite Hubs" +msgstr "즐겨찾는 허브" + +#: win32/WindowsPage.cpp:38 win32/MainWindow.cpp:275 win32/UsersFrame.cpp:38 +msgid "Favorite Users" +msgstr "즐겨찾는 사용자" + +#: win32/FavoriteDirsPage.cpp:32 +msgid "Favorite download directories" +msgstr "지정 다운로드 디렉토리" + +#: win32/HubFrame.cpp:964 +msgid "Favorite hub added" +msgstr "'즐겨찾는 허브'에 추가되었음" + +#: win32/HubFrame.cpp:974 +msgid "Favorite hub removed" +msgstr "허브가 제거되었음" + +#: win32/FavoriteDirsPage.cpp:48 win32/FavoriteDirsPage.cpp:120 +#: win32/FavoriteDirsPage.cpp:150 +msgid "Favorite name" +msgstr "대표 이름" + +#: win32/PrivateFrame.cpp:290 +msgid "Favorite user added" +msgstr "'즐겨찾는 사용자'에 추가되었음" + +#: win32/DirectoryListingFrame.cpp:40 win32/SearchFrame.cpp:32 +msgid "File" +msgstr "파일" + +#: win32/QueueFrame.cpp:473 +msgid "File not available" +msgstr "파일이 유효하지 않음" + +#: win32/SearchFrame.cpp:122 +msgid "File type" +msgstr "종류" + +#: win32/CommandDlg.cpp:99 +msgid "Filelist Menu" +msgstr "파일-목록 메뉴" + +#: win32/QueueFrame.cpp:36 win32/LogPage.cpp:35 win32/DownloadsFrame.cpp:35 +#: win32/ADLSProperties.cpp:62 +msgid "Filename" +msgstr "파일 이름" + +#: win32/QueueFrame.cpp:287 win32/DirectoryListingFrame.cpp:634 +#: win32/DirectoryListingFrame.cpp:650 +#, boost-format +msgid "Files: %1%" +msgstr "" + +#: win32/AppearancePage.cpp:47 +msgid "Filter kick and NMDC debug messages" +msgstr "추방 메시지 및 NMDC(NeoModus® Direct Connect) 디버그 메시지를 걸러냄" + +#: win32/DirectoryListingFrame.cpp:160 win32/DirectoryListingFrame.cpp:182 +msgid "Find" +msgstr "파일/디렉토리 찾기" + +#: win32/TabsPage.cpp:42 win32/WindowsPage.cpp:40 win32/MainWindow.cpp:207 +#: win32/MainWindow.cpp:278 win32/FinishedDLFrame.cpp:25 +msgid "Finished Downloads" +msgstr "완료된 다운로드" + +#: win32/TabsPage.cpp:44 win32/WindowsPage.cpp:42 win32/MainWindow.cpp:209 +#: win32/MainWindow.cpp:280 win32/FinishedULFrame.cpp:25 +msgid "Finished Uploads" +msgstr "완료된 업로드" + +#: win32/NetworkPage.cpp:34 +msgid "Firewall (passive, last resort)" +msgstr "방화벽 (피동 모드, 최악의 경우 사용)" + +#: win32/NetworkPage.cpp:32 +msgid "Firewall with UPnP" +msgstr "방화벽 (UPnP)" + +#: win32/NetworkPage.cpp:33 +msgid "Firewall with manual port forwarding" +msgstr "Port Forwarding 설정한 방화벽" + +#: win32/MainWindow.cpp:185 +msgid "Follow last redirec&t\tCtrl+T" +msgstr "" + +#: win32/MainWindow.cpp:272 +msgid "Follow last redirect" +msgstr "" + +#: win32/LogPage.cpp:34 +msgid "Format" +msgstr "형식" + +#: win32/MainWindow.cpp:240 +msgid "Frequently asked questions" +msgstr "FAQ(자주 묻는 질문)" + +#: win32/ADLSProperties.cpp:64 +msgid "Full Path" +msgstr "전체 경로" + +#: win32/QueueFrame.cpp:479 +msgid "Full tree does not match TTH root" +msgstr "받은 파일-목록의 TTH(Tigertree Hash) Root 값이 일치하지 않음" + +#: win32/MainWindow.cpp:238 +msgid "GeoIP database update" +msgstr "다운로드 - GeoIP 데이터베이스" + +#: win32/SearchFrame.cpp:174 win32/ADLSProperties.cpp:77 +msgid "GiB" +msgstr "GiB" + +#: win32/WaitingUsersFrame.cpp:86 win32/PrivateFrame.cpp:367 +msgid "Grant &extra slot" +msgstr "" + +#: win32/AppearancePage.cpp:56 +msgid "Guess user country from IP" +msgstr "사용자의 IP 주소로 국가/지역 정보를 유추함" + +#: win32/DownloadPage.cpp:42 +msgid "HTTP Proxy (for hublist only)" +msgstr "HTTP Proxy (hublist.org만 가능)" + +#: win32/MainWindow.cpp:231 +msgid "Help &Contents\tF1" +msgstr "" + +#: win32/MainWindow.cpp:241 +msgid "Help forum" +msgstr "도움말 포럼" + +#: win32/QueueFrame.cpp:454 win32/QueueFrame.cpp:1000 +msgid "High" +msgstr "높음" + +#: win32/QueuePage.cpp:31 +msgid "High prio max size" +msgstr "'높음' 상한 크기" + +#: win32/QueueFrame.cpp:455 win32/QueueFrame.cpp:1001 +msgid "Highest" +msgstr "최고" + +#: win32/QueuePage.cpp:29 +msgid "Highest prio max size" +msgstr "'최고' 상한 크기" + +#: win32/SpyFrame.cpp:162 +#, boost-format +msgid "Hit Ratio: %1%" +msgstr "" + +#: win32/SpyFrame.cpp:160 +#, boost-format +msgid "Hits: %1%" +msgstr "" + +#: win32/TabsPage.cpp:37 win32/SearchFrame.cpp:39 win32/UCPage.cpp:55 +msgid "Hub" +msgstr "허브" + +#: win32/UsersFrame.cpp:31 +msgid "Hub (last seen in, if offline)" +msgstr "" + +#: win32/CommandDlg.cpp:90 +msgid "Hub Menu" +msgstr "허브 메뉴" + +#: win32/FavHubProperties.cpp:119 +msgid "Hub address cannot be empty" +msgstr "" + +#: win32/FavHubsFrame.cpp:179 win32/HubFrame.cpp:966 +msgid "Hub already exists as a favorite" +msgstr "이미 '즐겨찾는 허브'에 있음" + +#: win32/PublicHubsFrame.cpp:316 +#, fuzzy, boost-format +msgid "Hub list downloaded... (%1%)" +msgstr "저장소에서 불러온 허브 목록..." + +#: win32/PublicHubsFrame.cpp:316 +msgid "Hub list loaded from cache..." +msgstr "저장소에서 불러온 허브 목록..." + +#: win32/HubListsDlg.cpp:149 +msgid "Hublist" +msgstr "허브 목록" + +#: win32/SearchFrame.cpp:128 +msgid "Hubs" +msgstr "허브" + +#: win32/PublicHubsFrame.cpp:271 +#, fuzzy, boost-format +msgid "Hubs: %1%" +msgstr "허브" + +#: win32/SearchFrame.cpp:41 win32/TransferView.cpp:46 win32/HubFrame.cpp:42 +msgid "IP" +msgstr "IP" + +#: win32/HubFrame.cpp:330 +#, boost-format +msgid "IP: %1%, Port: %2%/%3%/%4%" +msgstr "" + +#: win32/TransferView.cpp:386 win32/TransferView.cpp:612 +msgid "Idle" +msgstr "" + +#: win32/SpyFrame.cpp:66 +msgid "Ignore TTH searches" +msgstr "TTH 검색을 무시하기" + +#: win32/WindowsPage.cpp:60 +msgid "Ignore private messages from bots" +msgstr "" +"허브 보트(Bot)로부터 온 1:1 메시지를 무시함(보통 허브의 규칙이나 주의사항 같" +"은 정보를 담고 있을 수 있음)" + +#: win32/WindowsPage.cpp:59 +msgid "Ignore private messages from the hub" +msgstr "허브로부터 온 1:1 메시지를 무시함" + +#: win32/HubFrame.cpp:542 win32/HubFrame.cpp:550 +#, boost-format +msgid "Ignored message: %1%" +msgstr "" + +#: win32/NetworkPage.cpp:47 +msgid "Incoming connection settings (see Help/FAQ if unsure)" +msgstr "인입 접속 설정 (설정 방법은 도움말/FAQ을 참조)" + +#: win32/MainWindow.cpp:219 +msgid "Indexing progress" +msgstr "Hashing 진행상태" + +#: win32/MainWindow.cpp:691 +msgid "Invalid file list name" +msgstr "잘못된 파일-목록 이름" + +#: win32/WinUtil.cpp:250 +msgid "Invalid number of slots" +msgstr "슬롯 개수가 잘못됨" + +#: win32/QueueFrame.cpp:283 +#, boost-format +msgid "Items: %1%" +msgstr "" + +#: win32/HubFrame.cpp:323 +msgid "Join/part of favorite users showing off" +msgstr "'즐겨찾는 사용자'의 입장/퇴장 상황 표시 꺼짐" + +#: win32/HubFrame.cpp:321 +msgid "Join/part of favorite users showing on" +msgstr "'즐겨찾는 사용자'의 입장/퇴장 상황 표시 켜짐" + +#: win32/HubFrame.cpp:316 +msgid "Join/part showing off" +msgstr "입장/퇴장 상황 표시 꺼짐" + +#: win32/HubFrame.cpp:314 +msgid "Join/part showing on" +msgstr "입장/퇴장 상황 표시 켜짐" + +#: win32/AdvancedPage.cpp:33 +msgid "Keep duplicate files in your file list" +msgstr "내 파일-목록에 중복된 파일을 포함함" + +#: win32/QueuePage.cpp:30 win32/QueuePage.cpp:32 win32/QueuePage.cpp:34 +#: win32/QueuePage.cpp:36 win32/QueuePage.cpp:48 win32/Advanced3Page.cpp:30 +#: win32/Advanced3Page.cpp:36 win32/SearchFrame.cpp:172 +#: win32/ADLSProperties.cpp:75 +msgid "KiB" +msgstr "kiB" + +#: win32/UploadPage.cpp:40 +msgid "KiB/s" +msgstr "kiB/s" + +#: win32/AppearancePage.cpp:34 +msgid "Language file" +msgstr "언어 변환 파일" + +#: win32/DownloadPage.cpp:35 +msgid "Limits" +msgstr "다운로드 제한" + +#: win32/GeneralPage.cpp:32 +msgid "Line speed (upload)" +msgstr "회선 속도 (업로드)" + +#: win32/SplashWindow.cpp:77 +#, boost-format +msgid "Loading DC++, please wait... (%1%)" +msgstr "" + +#: win32/LogPage.cpp:47 +msgid "Log downloads" +msgstr "파일 다운로드 Log" + +#: win32/LogPage.cpp:51 +msgid "Log filelist transfers" +msgstr "파일-목록 전송 내역을 파일 다운로드/업로드 Log에 기록함" + +#: win32/LogPage.cpp:45 +msgid "Log main chat" +msgstr "허브 대화방 대화 Log" + +#: win32/LogPage.cpp:46 +msgid "Log private chat" +msgstr "1:1 메시지 대화 Log" + +#: win32/LogPage.cpp:50 +msgid "Log status messages" +msgstr "상태 메시지 Log" + +#: win32/LogPage.cpp:49 +msgid "Log system messages" +msgstr "시스템 메시지 Log" + +#: win32/LogPage.cpp:48 +msgid "Log uploads" +msgstr "파일 업로드 Log" + +#: win32/LogPage.cpp:31 +msgid "Logging" +msgstr "Log 작성" + +#: win32/NetworkPage.cpp:44 +msgid "Login" +msgstr "로그인이름" + +#: win32/WinUtil.cpp:362 +msgid "Lookup TTH at Bitzi.com" +msgstr "Bitzi.com에서 TTH로 찾아보기" + +#: win32/QueueFrame.cpp:452 win32/QueueFrame.cpp:998 +msgid "Low" +msgstr "낮음" + +#: win32/QueuePage.cpp:35 +msgid "Low prio max size" +msgstr "'낮음' 상한 크기" + +#: win32/QueueFrame.cpp:451 win32/QueueFrame.cpp:997 +msgid "Lowest" +msgstr "최저" + +#: win32/MagnetDlg.cpp:44 win32/WinUtil.cpp:1034 +msgid "MAGNET Link detected" +msgstr "MAGNET 링크 감지" + +#: win32/WinUtil.cpp:981 +#, fuzzy, boost-format +msgid "MAGNET Link detected: %1%" +msgstr "MAGNET 링크 감지" + +#: win32/Appearance2Page.cpp:38 +msgid "Make an annoying sound every time a private message is received" +msgstr "1:1 메시지를 받을 때마다 알림 소리를 냄" + +#: win32/Appearance2Page.cpp:39 +msgid "Make an annoying sound when a private message window is opened" +msgstr "1:1 메시지 창이 열릴 때 알림 소리를 냄" + +#: win32/MainWindow.cpp:191 +msgid "Match downloaded lists" +msgstr "받은 파일-목록을 비교하기" + +#: win32/DirectoryListingFrame.cpp:168 win32/DirectoryListingFrame.cpp:181 +msgid "Match queue" +msgstr "파일-목록에서 내 '다운로드 대기열'의 파일을 찾아 소스에 추가하기" + +#: win32/DirectoryListingFrame.cpp:260 +#, boost-format +msgid "Matched %1% file" +msgid_plural "Matched %1% files" +msgstr[0] "" + +#: win32/PublicHubsFrame.cpp:57 +msgid "Max Hubs" +msgstr "최대 허브" + +#: win32/ADLSearchFrame.cpp:36 +msgid "Max Size" +msgstr "최대 크기" + +#: win32/PublicHubsFrame.cpp:58 +msgid "Max Users" +msgstr "최대 인원" + +#: win32/Advanced3Page.cpp:38 +msgid "Max filelist size" +msgstr "최대 파일-목록" + +#: win32/Advanced3Page.cpp:31 +msgid "Max hash speed" +msgstr "최대 Hash 속도" + +#: win32/QueuePage.cpp:44 +msgid "Max inactivity" +msgstr "최대 무반응" + +#: win32/DownloadPage.cpp:36 +msgid "Maximum simultaneous downloads (0 = infinite)" +msgstr "최대 동시 다운로드 개수 (0=무제한)" + +#: win32/Advanced3Page.cpp:39 win32/SearchFrame.cpp:173 +#: win32/ADLSProperties.cpp:76 +msgid "MiB" +msgstr "MiB" + +#: win32/Advanced3Page.cpp:32 +msgid "MiB/s" +msgstr "MiB/s" + +#: win32/GeneralPage.cpp:33 +msgid "MiBits/s" +msgstr "MiBits/s" + +#: win32/PublicHubsFrame.cpp:55 +msgid "Min Share" +msgstr "최소 공유" + +#: win32/ADLSearchFrame.cpp:35 +msgid "Min Size" +msgstr "최소 크기" + +#: win32/PublicHubsFrame.cpp:56 +msgid "Min Slots" +msgstr "최소 슬롯" + +#: win32/QueuePage.cpp:42 +msgid "Min elapsed" +msgstr "최소 경과시간" + +#: win32/QueuePage.cpp:47 +msgid "Min filesize" +msgstr "최소 파일 크기" + +#: win32/Advanced3Page.cpp:42 +#, fuzzy +msgid "Min segment size" +msgstr "미니슬롯 파일" + +#: win32/QueuePage.cpp:46 +msgid "Min sources online" +msgstr "최소 온라인 소스" + +#: win32/Advanced3Page.cpp:35 +msgid "Mini slot size" +msgstr "미니슬롯 파일" + +#: win32/AppearancePage.cpp:48 +msgid "Minimize to tray" +msgstr "프로그램을 최소화하면 시스템 트레이 아이콘으로 숨김" + +#: win32/HubListsDlg.cpp:71 win32/FavHubsFrame.cpp:91 +#: win32/FavHubsFrame.cpp:118 win32/ADLSearchFrame.cpp:83 win32/UCPage.cpp:32 +msgid "Move &Down" +msgstr "" + +#: win32/HubListsDlg.cpp:67 win32/FavHubsFrame.cpp:86 +#: win32/FavHubsFrame.cpp:117 win32/ADLSearchFrame.cpp:78 win32/UCPage.cpp:31 +msgid "Move &Up" +msgstr "" + +#: win32/UCPage.cpp:53 win32/PublicHubsFrame.cpp:49 +msgid "Name" +msgstr "이름" + +#: win32/UploadPage.cpp:188 win32/UploadPage.cpp:232 +msgid "Name under which the others see the directory" +msgstr "다른 사람들이 보게 될 공유 디렉토리의 이름" + +#: win32/WindowsPage.cpp:44 win32/MainWindow.cpp:217 win32/StatsFrame.cpp:27 +msgid "Network Statistics" +msgstr "네트워크 통계" + +#: win32/UploadPage.cpp:197 +msgid "New virtual name matches old name, skipping..." +msgstr "지정한 공유 이름이 이전 것과 같으므로 무시함..." + +#: win32/DirectoryListingFrame.cpp:164 win32/DirectoryListingFrame.cpp:183 +msgid "Next" +msgstr "다음 찾기" + +#: win32/GeneralPage.cpp:29 win32/FavHubsFrame.cpp:34 win32/HubFrame.cpp:37 +msgid "Nick" +msgstr "닉네임" + +#: win32/QueueFrame.cpp:488 +msgid "No errors" +msgstr "없음" + +#: win32/DirectoryListingFrame.cpp:858 +msgid "No matches" +msgstr "일치하는 것이 없음" + +#: win32/DownloadPage.cpp:37 +msgid "No new downloads if speed exceeds (KiB/s, 0 = disable)" +msgstr "초과하면 새로운 다운로드가 제한되는 속도 (kiB/s, 0=무제한)" + +#: win32/QueueFrame.cpp:415 +msgid "No users" +msgstr "사용자 없음" + +#: win32/QueueFrame.cpp:427 +msgid "No users to download from" +msgstr "파일을 소유한 사용자가 없음" + +#: win32/QueueFrame.cpp:453 win32/QueueFrame.cpp:999 win32/SearchFrame.cpp:155 +msgid "Normal" +msgstr "보통" + +#: win32/QueuePage.cpp:33 +msgid "Normal prio max size" +msgstr "'보통' 상한 크기" + +#: win32/UploadPage.cpp:42 +msgid "Note; Files appear in the share only after they've been hashed!" +msgstr "주의; 파일들은 Hash가 작성되어야만 공유에 나타남!" + +#: win32/DownloadPage.cpp:38 +#, fuzzy, c-format +msgid "Note; because of changing download speeds, this is not 100% accurate..." +msgstr "주의; 다운로드 속도가 수시로 변하므로, 100% 정확하지는 않음" + +#: win32/Appearance2Page.cpp:35 win32/AppearancePage.cpp:35 +msgid "Note; most of these options require that you restart DC++" +msgstr "주의; 이 옵션들 대부분은 변경한 후 DC++를 다시 실행하였을 때 적용됨" + +#: win32/WindowsPage.cpp:45 win32/NotepadFrame.cpp:27 win32/MainWindow.cpp:288 +msgid "Notepad" +msgstr "메모장" + +#: win32/Appearance2Page.cpp:29 +msgid "Notification sound" +msgstr "알림 소리 음원" + +#: win32/WinUtil.cpp:323 +msgid "Offline" +msgstr "오프라인" + +#: win32/UsersFrame.cpp:108 win32/UsersFrame.cpp:123 +msgid "Online" +msgstr "온라인" + +#: win32/AppearancePage.cpp:52 +msgid "Only show joins / parts for favorite users" +msgstr "허브 대화방에 '즐겨찾는 사용자'에 대해서만 입장/퇴장 상황을 표시함" + +#: win32/SearchFrame.cpp:194 +msgid "Only users with free slots" +msgstr "Slot이 남아 있는 사용자만 검색" + +#: win32/SearchFrame.cpp:216 +msgid "Only where I'm op" +msgstr "내가 운영자로 있는 곳에서만" + +#: win32/MainWindow.cpp:193 win32/MainWindow.cpp:1000 +msgid "Open downloads directory" +msgstr "'기본 다운로드 디렉토리' 열기" + +#: win32/MainWindow.cpp:286 +#, fuzzy +msgid "Open file list..." +msgstr "내 파일-목록 열기" + +#: win32/MainWindow.cpp:189 +msgid "Open file list...\tCtrl+L" +msgstr "" + +#: win32/WindowsPage.cpp:56 +msgid "Open new file list windows in the background" +msgstr "새로운 파일-목록 창을 백그라운드(비활성화 상태)로 띄움" + +#: win32/WindowsPage.cpp:57 +msgid "Open new private message windows in the background" +msgstr "새로운 1:1 메시지 창을 백그라운드(비활성화 상태)로 띄움" + +#: win32/WindowsPage.cpp:58 +msgid "Open new window when using /join" +msgstr "\"/join\" 명령어를 사용할 때 허브를 새 창에 열도록 함" + +#: win32/MainWindow.cpp:190 +msgid "Open own list" +msgstr "내 파일-목록 열기" + +#: win32/WindowsPage.cpp:54 +msgid "Open private messages from bots in their own window" +msgstr "허브로부터 온 1:1 메시지를 별도의 창에 표시함" + +#: win32/WindowsPage.cpp:55 +msgid "Open private messages from the hub in their own window" +msgstr "허브 보트(Bot)로부터 온 1:1 메시지를 별도의 창에 표시함" + +#: win32/WindowsPage.cpp:53 +msgid "Open private messages in their own window" +msgstr "" +"1:1 메시지를 별도의 창에 표시함 (이 옵션을 체크하지 않으면 1:1 메시지는 허브 " +"대화방에 상태 메시지 형태로 표시됨)" + +#: win32/AppearancePage.cpp:31 +msgid "Options" +msgstr "옵션" + +#: win32/QueuePage.cpp:49 +msgid "Other queue options" +msgstr "기타... [truncated message content] |
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. |
From: <arn...@us...> - 2008-01-23 19:54:56
|
Revision: 975 http://dcplusplus.svn.sourceforge.net/dcplusplus/?rev=975&view=rev Author: arnetheduck Date: 2008-01-23 11:54:44 -0800 (Wed, 23 Jan 2008) Log Message: ----------- add fn_ Modified Paths: -------------- dcplusplus/trunk/dcpp/DCPlusPlus.h Modified: dcplusplus/trunk/dcpp/DCPlusPlus.h =================================================================== --- dcplusplus/trunk/dcpp/DCPlusPlus.h 2008-01-23 19:46:22 UTC (rev 974) +++ dcplusplus/trunk/dcpp/DCPlusPlus.h 2008-01-23 19:54:44 UTC (rev 975) @@ -173,6 +173,8 @@ #define LOCALEDIR Util::getLocalePath().c_str() #define _(String) dgettext(PACKAGE, String) #define F_(String) boost::format(dgettext(PACKAGE, String)) +#define FN_(String1,String2, N) boost::format(dngettext(PACKAGE, String1, String2, N)) + #endif } // namespace dcpp This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <arn...@us...> - 2008-01-23 19:46:29
|
Revision: 974 http://dcplusplus.svn.sourceforge.net/dcplusplus/?rev=974&view=rev Author: arnetheduck Date: 2008-01-23 11:46:22 -0800 (Wed, 23 Jan 2008) Log Message: ----------- gettext patch Modified Paths: -------------- dcplusplus/trunk/dcpp/AdcHub.cpp dcplusplus/trunk/dcpp/BZUtils.cpp dcplusplus/trunk/dcpp/BitInputStream.h dcplusplus/trunk/dcpp/BufferedSocket.cpp dcplusplus/trunk/dcpp/Client.cpp dcplusplus/trunk/dcpp/ClientManager.cpp dcplusplus/trunk/dcpp/ConnectionManager.cpp dcplusplus/trunk/dcpp/CryptoManager.cpp dcplusplus/trunk/dcpp/DCPlusPlus.cpp dcplusplus/trunk/dcpp/DirectoryListing.cpp dcplusplus/trunk/dcpp/DownloadManager.cpp dcplusplus/trunk/dcpp/FavoriteManager.cpp dcplusplus/trunk/dcpp/HashManager.cpp dcplusplus/trunk/dcpp/MerkleCheckOutputStream.h dcplusplus/trunk/dcpp/NmdcHub.cpp dcplusplus/trunk/dcpp/QueueManager.cpp dcplusplus/trunk/dcpp/SearchManager.cpp dcplusplus/trunk/dcpp/ShareManager.cpp dcplusplus/trunk/dcpp/Socket.cpp dcplusplus/trunk/dcpp/Thread.cpp dcplusplus/trunk/dcpp/Transfer.cpp dcplusplus/trunk/dcpp/UploadManager.cpp dcplusplus/trunk/dcpp/UserConnection.cpp dcplusplus/trunk/dcpp/ZUtils.cpp Modified: dcplusplus/trunk/dcpp/AdcHub.cpp =================================================================== --- dcplusplus/trunk/dcpp/AdcHub.cpp 2008-01-22 22:47:59 UTC (rev 973) +++ dcplusplus/trunk/dcpp/AdcHub.cpp 2008-01-23 19:46:22 UTC (rev 974) @@ -29,7 +29,6 @@ #include "Util.h" #include "UserCommand.h" #include "CryptoManager.h" -#include "ResourceManager.h" #include "LogManager.h" namespace dcpp { @@ -552,7 +551,7 @@ uint16_t port = secure ? ConnectionManager::getInstance()->getSecurePort() : ConnectionManager::getInstance()->getPort(); if(port == 0) { // Oops? - LogManager::getInstance()->message(STRING(NOT_LISTENING)); + LogManager::getInstance()->message(_("Not listening for connections - please restart DC++")); return; } send(AdcCommand(AdcCommand::CMD_CTM, user.getIdentity().getSID(), AdcCommand::TYPE_DIRECT).addParam(*proto).addParam(Util::toString(port)).addParam(token)); Modified: dcplusplus/trunk/dcpp/BZUtils.cpp =================================================================== --- dcplusplus/trunk/dcpp/BZUtils.cpp 2008-01-22 22:47:59 UTC (rev 973) +++ dcplusplus/trunk/dcpp/BZUtils.cpp 2008-01-23 19:46:22 UTC (rev 974) @@ -21,7 +21,6 @@ #include "BZUtils.h" #include "Exception.h" -#include "ResourceManager.h" namespace dcpp { @@ -29,7 +28,7 @@ memset(&zs, 0, sizeof(zs)); if(BZ2_bzCompressInit(&zs, 9, 0, 30) != BZ_OK) { - throw Exception(STRING(COMPRESSION_ERROR)); + throw Exception(_("Error during compression")); } } @@ -50,7 +49,7 @@ if(insize == 0) { int err = ::BZ2_bzCompress(&zs, BZ_FINISH); if(err != BZ_FINISH_OK && err != BZ_STREAM_END) - throw Exception(STRING(COMPRESSION_ERROR)); + throw Exception(_("Error during compression")); outsize = outsize - zs.avail_out; insize = insize - zs.avail_in; @@ -58,7 +57,7 @@ } else { int err = ::BZ2_bzCompress(&zs, BZ_RUN); if(err != BZ_RUN_OK) - throw Exception(STRING(COMPRESSION_ERROR)); + throw Exception(_("Error during compression")); outsize = outsize - zs.avail_out; insize = insize - zs.avail_in; @@ -70,7 +69,7 @@ memset(&zs, 0, sizeof(zs)); if(BZ2_bzDecompressInit(&zs, 0, 0) != BZ_OK) - throw Exception(STRING(DECOMPRESSION_ERROR)); + throw Exception(_("Error during decompression")); } @@ -92,10 +91,10 @@ // No more input data, and inflate didn't think it has reached the end... if(insize == 0 && zs.avail_out != 0 && err != BZ_STREAM_END) - throw Exception(STRING(DECOMPRESSION_ERROR)); + throw Exception(_("Error during decompression")); if(err != BZ_OK && err != BZ_STREAM_END) - throw Exception(STRING(DECOMPRESSION_ERROR)); + throw Exception(_("Error during decompression")); outsize = outsize - zs.avail_out; insize = insize - zs.avail_in; Modified: dcplusplus/trunk/dcpp/BitInputStream.h =================================================================== --- dcplusplus/trunk/dcpp/BitInputStream.h 2008-01-22 22:47:59 UTC (rev 973) +++ dcplusplus/trunk/dcpp/BitInputStream.h 2008-01-23 19:46:22 UTC (rev 974) @@ -20,7 +20,6 @@ #define BIT_INPUT_STREAM_H #include "Exception.h" -#include "ResourceManager.h" namespace dcpp { @@ -38,7 +37,7 @@ bool get() throw(BitStreamException) { if(bitPos > endPos) { - throw BitStreamException(STRING(SEEK_BEYOND_END)); + throw BitStreamException(_("Request to seek beyond the end of data")); } bool ret = (((uint8_t)is[bitPos>>3]) >> (bitPos&0x07)) & 0x01; bitPos++; Modified: dcplusplus/trunk/dcpp/BufferedSocket.cpp =================================================================== --- dcplusplus/trunk/dcpp/BufferedSocket.cpp 2008-01-22 22:47:59 UTC (rev 973) +++ dcplusplus/trunk/dcpp/BufferedSocket.cpp 2008-01-23 19:46:22 UTC (rev 974) @@ -21,7 +21,6 @@ #include "BufferedSocket.h" -#include "ResourceManager.h" #include "TimerManager.h" #include "SettingsManager.h" @@ -152,7 +151,7 @@ return; if((startTime + 30000) < GET_TICK()) { - throw SocketException(STRING(CONNECTION_TIMEOUT)); + throw SocketException(_("Connection timeout")); } } @@ -169,7 +168,7 @@ return; } else if(left == 0) { // This socket has been closed... - throw SocketException(STRING(CONNECTION_CLOSED)); + throw SocketException(("Connection closed")); } size_t used; string::size_type pos = 0; @@ -261,7 +260,7 @@ } if(mode == MODE_LINE && line.size() > static_cast<size_t>(SETTING(MAX_COMMAND_LENGTH))) { - throw SocketException(STRING(COMMAND_TOO_LONG)); + throw SocketException(_("Maximum command length exceeded")); } } @@ -407,7 +406,7 @@ } if(failed && p.first != SHUTDOWN) { dcdebug("BufferedSocket: New command when already failed: %d\n", p.first); - fail(STRING(DISCONNECTED)); + fail(_("Disconnected")); delete p.second; continue; } @@ -425,7 +424,7 @@ } case DISCONNECT: if(isConnected()) - fail(STRING(DISCONNECTED)); + fail(_("Disconnected")); break; case SHUTDOWN: return false; Modified: dcplusplus/trunk/dcpp/Client.cpp =================================================================== --- dcplusplus/trunk/dcpp/Client.cpp 2008-01-22 22:47:59 UTC (rev 973) +++ dcplusplus/trunk/dcpp/Client.cpp 2008-01-23 19:46:22 UTC (rev 974) @@ -25,7 +25,6 @@ #include "FavoriteManager.h" #include "TimerManager.h" -#include "ResourceManager.h" #include "ClientManager.h" namespace dcpp { Modified: dcplusplus/trunk/dcpp/ClientManager.cpp =================================================================== --- dcplusplus/trunk/dcpp/ClientManager.cpp 2008-01-22 22:47:59 UTC (rev 973) +++ dcplusplus/trunk/dcpp/ClientManager.cpp 2008-01-23 19:46:22 UTC (rev 974) @@ -27,7 +27,6 @@ #include "FavoriteManager.h" #include "SimpleXML.h" #include "UserCommand.h" -#include "ResourceManager.h" #include "LogManager.h" #include "AdcHub.h" @@ -113,7 +112,7 @@ if(i != onlineUsers.end()) { return i->second->getIdentity().getConnection(); } - return STRING(OFFLINE); + return _("Offline"); } int64_t ClientManager::getAvailable() const { Modified: dcplusplus/trunk/dcpp/ConnectionManager.cpp =================================================================== --- dcplusplus/trunk/dcpp/ConnectionManager.cpp 2008-01-22 22:47:59 UTC (rev 973) +++ dcplusplus/trunk/dcpp/ConnectionManager.cpp 2008-01-23 19:46:22 UTC (rev 974) @@ -21,7 +21,6 @@ #include "ConnectionManager.h" -#include "ResourceManager.h" #include "DownloadManager.h" #include "UploadManager.h" #include "CryptoManager.h" @@ -179,13 +178,13 @@ attemptDone = true; } else { cqi->setState(ConnectionQueueItem::NO_DOWNLOAD_SLOTS); - fire(ConnectionManagerListener::Failed(), cqi, STRING(ALL_DOWNLOAD_SLOTS_TAKEN)); + fire(ConnectionManagerListener::Failed(), cqi, _("All download slots taken")); } } else if(cqi->getState() == ConnectionQueueItem::NO_DOWNLOAD_SLOTS && startDown) { cqi->setState(ConnectionQueueItem::WAITING); } } else if(((cqi->getLastAttempt() + 50*1000) < aTick) && (cqi->getState() == ConnectionQueueItem::CONNECTING)) { - fire(ConnectionManagerListener::Failed(), cqi, STRING(CONNECTION_TIMEOUT)); + fire(ConnectionManagerListener::Failed(), cqi, _("Connection timeout")); cqi->setState(ConnectionQueueItem::WAITING); } } @@ -237,7 +236,7 @@ } } } catch(const Exception& e) { - LogManager::getInstance()->message(STRING(LISTENER_FAILED) + e.getError()); + LogManager::getInstance()->message(str(F_("Listening socket failed (you need to restart DC++): %1%") % e.getError())); } return 0; } @@ -383,7 +382,7 @@ void ConnectionManager::on(UserConnectionListener::Connected, UserConnection* aSource) throw() { if(aSource->isSecure() && !aSource->isTrusted() && !BOOLSETTING(ALLOW_UNTRUSTED_CLIENTS)) { putConnection(aSource); - LogManager::getInstance()->message(STRING(CERTIFICATE_NOT_TRUSTED)); + LogManager::getInstance()->message(_("Certificate not trusted, unable to connect")); return; } Modified: dcplusplus/trunk/dcpp/CryptoManager.cpp =================================================================== --- dcplusplus/trunk/dcpp/CryptoManager.cpp 2008-01-22 22:47:59 UTC (rev 973) +++ dcplusplus/trunk/dcpp/CryptoManager.cpp 2008-01-23 19:46:22 UTC (rev 974) @@ -23,7 +23,6 @@ #include "BitInputStream.h" #include "BitOutputStream.h" -#include "ResourceManager.h" #include "LogManager.h" #include "ClientManager.h" @@ -211,7 +210,7 @@ const string& key = SETTING(TLS_PRIVATE_KEY_FILE); if(cert.empty() || key.empty()) { - LogManager::getInstance()->message(STRING(NO_CERTIFICATE_FILE_SET)); + LogManager::getInstance()->message(_("TLS disabled, no certificate file set")); return; } @@ -219,45 +218,45 @@ // Try to generate them... try { generateCertificate(); - LogManager::getInstance()->message(STRING(CERTIFICATE_GENERATED)); + LogManager::getInstance()->message(_("Generated new TLS certificate")); } catch(const CryptoException& e) { - LogManager::getInstance()->message(STRING(CERTIFICATE_GENERATION_FAILED) + e.getError()); + LogManager::getInstance()->message(str(F_("TLS disabled, failed to generate certificate: %1%") % e.getError())); } } if(SSL_CTX_use_certificate_file(serverContext, SETTING(TLS_CERTIFICATE_FILE).c_str(), SSL_FILETYPE_PEM) != SSL_SUCCESS) { - LogManager::getInstance()->message(STRING(FAILED_TO_LOAD_CERTIFICATE)); + LogManager::getInstance()->message(_("Failed to load certificate file")); return; } if(SSL_CTX_use_certificate_file(clientContext, SETTING(TLS_CERTIFICATE_FILE).c_str(), SSL_FILETYPE_PEM) != SSL_SUCCESS) { - LogManager::getInstance()->message(STRING(FAILED_TO_LOAD_CERTIFICATE)); + LogManager::getInstance()->message(_("Failed to load certificate file")); return; } if(SSL_CTX_use_certificate_file(serverVerContext, SETTING(TLS_CERTIFICATE_FILE).c_str(), SSL_FILETYPE_PEM) != SSL_SUCCESS) { - LogManager::getInstance()->message(STRING(FAILED_TO_LOAD_CERTIFICATE)); + LogManager::getInstance()->message(_("Failed to load certificate file")); return; } if(SSL_CTX_use_certificate_file(clientVerContext, SETTING(TLS_CERTIFICATE_FILE).c_str(), SSL_FILETYPE_PEM) != SSL_SUCCESS) { - LogManager::getInstance()->message(STRING(FAILED_TO_LOAD_CERTIFICATE)); + LogManager::getInstance()->message(_("Failed to load certificate file")); return; } if(SSL_CTX_use_PrivateKey_file(serverContext, SETTING(TLS_PRIVATE_KEY_FILE).c_str(), SSL_FILETYPE_PEM) != SSL_SUCCESS) { - LogManager::getInstance()->message(STRING(FAILED_TO_LOAD_PRIVATE_KEY)); + LogManager::getInstance()->message(_("Failed to load private key")); return; } if(SSL_CTX_use_PrivateKey_file(clientContext, SETTING(TLS_PRIVATE_KEY_FILE).c_str(), SSL_FILETYPE_PEM) != SSL_SUCCESS) { - LogManager::getInstance()->message(STRING(FAILED_TO_LOAD_PRIVATE_KEY)); + LogManager::getInstance()->message(_("Failed to load private key")); return; } if(SSL_CTX_use_PrivateKey_file(serverVerContext, SETTING(TLS_PRIVATE_KEY_FILE).c_str(), SSL_FILETYPE_PEM) != SSL_SUCCESS) { - LogManager::getInstance()->message(STRING(FAILED_TO_LOAD_PRIVATE_KEY)); + LogManager::getInstance()->message(_("Failed to load private key")); return; } if(SSL_CTX_use_PrivateKey_file(clientVerContext, SETTING(TLS_PRIVATE_KEY_FILE).c_str(), SSL_FILETYPE_PEM) != SSL_SUCCESS) { - LogManager::getInstance()->message(STRING(FAILED_TO_LOAD_PRIVATE_KEY)); + LogManager::getInstance()->message(_("Failed to load private key")); return; } @@ -342,7 +341,7 @@ bz_stream bs = { 0 }; if(BZ2_bzDecompressInit(&bs, 0, 0) != BZ_OK) - throw(CryptoException(STRING(DECOMPRESSION_ERROR))); + throw(CryptoException(_("Error during decompression"))); // We assume that the files aren't compressed more than 2:1...if they are it'll work anyway, // but we'll have to do multiple passes... @@ -361,7 +360,7 @@ while((err = BZ2_bzDecompress(&bs)) == BZ_OK) { if (bs.avail_in == 0 && bs.avail_out > 0) { // error: BZ_UNEXPECTED_EOF BZ2_bzDecompressEnd(&bs); - throw CryptoException(STRING(DECOMPRESSION_ERROR)); + throw CryptoException(_("Error during decompression")); } os.append(buf, bufsize-bs.avail_out); bs.avail_out = bufsize; @@ -375,7 +374,7 @@ if(err < 0) { // This was a real error - throw CryptoException(STRING(DECOMPRESSION_ERROR)); + throw CryptoException(_("Error during decompression")); } } Modified: dcplusplus/trunk/dcpp/DCPlusPlus.cpp =================================================================== --- dcplusplus/trunk/dcpp/DCPlusPlus.cpp 2008-01-22 22:47:59 UTC (rev 973) +++ dcplusplus/trunk/dcpp/DCPlusPlus.cpp 2008-01-23 19:46:22 UTC (rev 974) @@ -97,13 +97,13 @@ CryptoManager::getInstance()->loadCertificates(); if(f != NULL) - (*f)(p, STRING(HASH_DATABASE)); + (*f)(p, _("Hash database")); HashManager::getInstance()->startup(); if(f != NULL) - (*f)(p, STRING(SHARED_FILES)); + (*f)(p, _("Shared Files")); ShareManager::getInstance()->refresh(true, false, true); if(f != NULL) - (*f)(p, STRING(DOWNLOAD_QUEUE)); + (*f)(p, _("Download Queue")); QueueManager::getInstance()->loadQueue(); } Modified: dcplusplus/trunk/dcpp/DirectoryListing.cpp =================================================================== --- dcplusplus/trunk/dcpp/DirectoryListing.cpp 2008-01-22 22:47:59 UTC (rev 973) +++ dcplusplus/trunk/dcpp/DirectoryListing.cpp 2008-01-23 19:46:22 UTC (rev 974) @@ -30,7 +30,6 @@ #include "FilteredFile.h" #include "BZUtils.h" #include "CryptoManager.h" -#include "ResourceManager.h" #ifdef ff #undef ff @@ -100,7 +99,7 @@ } else if(Util::stricmp(ext, ".xml") == 0) { int64_t sz = dcpp::File::getSize(name); if(sz == -1 || sz >= static_cast<int64_t>(txt.max_size())) - throw FileException(STRING(FILE_NOT_AVAILABLE)); + throw FileException(_("File not available")); txt.resize((size_t) sz); size_t n = txt.length(); Modified: dcplusplus/trunk/dcpp/DownloadManager.cpp =================================================================== --- dcplusplus/trunk/dcpp/DownloadManager.cpp 2008-01-22 22:47:59 UTC (rev 973) +++ dcplusplus/trunk/dcpp/DownloadManager.cpp 2008-01-23 19:46:22 UTC (rev 974) @@ -21,7 +21,6 @@ #include "DownloadManager.h" -#include "ResourceManager.h" #include "QueueManager.h" #include "Download.h" #include "LogManager.h" @@ -141,9 +140,9 @@ // Try to just rename it to the correct name at least string newTarget = Util::getFilePath(next.first) + Util::getFileName(next.second); File::renameFile(next.first, newTarget); - LogManager::getInstance()->message(next.first + STRING(RENAMED_TO) + newTarget); + LogManager::getInstance()->message(str(F_("%1% renamed to %2%") % next.first % newTarget)); } catch(const FileException& e) { - LogManager::getInstance()->message(STRING(UNABLE_TO_RENAME) + next.first + ": " + e.getError()); + LogManager::getInstance()->message(str(F_("Unable to rename %1%: %2%") % next.first % e.getError())); } } } @@ -262,12 +261,12 @@ if(bytes != -1) { d->setSize(bytes); } else { - failDownload(aSource, STRING(INVALID_SIZE)); + failDownload(aSource, _("Invalid size")); return false; } } else if(d->getSize() != bytes || d->getStartPos() != start) { // This is not what we requested... - failDownload(aSource, STRING(INVALID_SIZE)); + failDownload(aSource, _("Invalid size")); return false; } @@ -282,7 +281,7 @@ try { QueueManager::getInstance()->setFile(d); } catch(const FileException& e) { - failDownload(aSource, STRING(COULD_NOT_OPEN_TARGET_FILE) + e.getError()); + failDownload(aSource, str(F_("Could not open target file: %1%") % e.getError())); return false; } catch(const Exception& e) { failDownload(aSource, e.getError()); @@ -321,7 +320,7 @@ d->addPos(d->getFile()->write(aData, aLen), aLen); if(d->getPos() > d->getSize()) { - throw Exception(STRING(TOO_MUCH_DATA)); + throw Exception(_("More data was sent than was expected")); } else if(d->getPos() == d->getSize()) { handleEndData(aSource); aSource->setLineMode(0); @@ -351,7 +350,7 @@ if(!(d->getTTH() == d->getTigerTree().getRoot())) { // This tree is for a different file, remove from queue... removeDownload(d); - fire(DownloadManagerListener::Failed(), d, STRING(INVALID_TREE)); + fire(DownloadManagerListener::Failed(), d, _("Full tree does not match TTH root")); QueueManager::getInstance()->removeSource(d->getPath(), aSource->getUser(), QueueItem::Source::FLAG_BAD_TREE, false); @@ -417,9 +416,9 @@ if(!crcMatch) { File::deleteFile(d->getDownloadTarget()); dcdebug("DownloadManager: CRC32 mismatch for %s\n", d->getPath().c_str()); - LogManager::getInstance()->message(STRING(SFV_INCONSISTENCY) + " (" + STRING(FILE) + ": " + d->getPath() + ")"); + LogManager::getInstance()->message(str(F_("CRC32 inconsistency (SFV-Check) (File: %1%)") % d->getPath())); removeDownload(d); - fire(DownloadManagerListener::Failed(), d, STRING(SFV_INCONSISTENCY)); + fire(DownloadManagerListener::Failed(), d, _("CRC32 inconsistency (SFV-Check)")); QueueManager::getInstance()->removeSource(d->getPath(), aSource->getUser(), QueueItem::Source::FLAG_CRC_WARN, false); QueueManager::getInstance()->putDownload(d, false); @@ -460,7 +459,7 @@ return; } - failDownload(aSource, STRING(NO_SLOTS_AVAILABLE)); + failDownload(aSource, _("No slots available")); } void DownloadManager::on(UserConnectionListener::Error, UserConnection* aSource, const string& aError) throw() { @@ -545,7 +544,7 @@ dcdebug("File Not Available: %s\n", d->getPath().c_str()); removeDownload(d); - fire(DownloadManagerListener::Failed(), d, d->getTargetFileName() + ": " + STRING(FILE_NOT_AVAILABLE)); + fire(DownloadManagerListener::Failed(), d, str(F_("%1%: File not available") % d->getTargetFileName())); QueueManager::getInstance()->removeSource(d->getPath(), aSource->getUser(), d->getType() == Transfer::TYPE_TREE ? QueueItem::Source::FLAG_NO_TREE : QueueItem::Source::FLAG_FILE_NOT_AVAILABLE, false); Modified: dcplusplus/trunk/dcpp/FavoriteManager.cpp =================================================================== --- dcplusplus/trunk/dcpp/FavoriteManager.cpp 2008-01-22 22:47:59 UTC (rev 973) +++ dcplusplus/trunk/dcpp/FavoriteManager.cpp 2008-01-23 19:46:22 UTC (rev 974) @@ -22,7 +22,6 @@ #include "FavoriteManager.h" #include "ClientManager.h" -#include "ResourceManager.h" #include "CryptoManager.h" #include "HttpConnection.h" @@ -436,11 +435,11 @@ static const char kickstr[] = "$To: %[userNI] From: %[myNI] $<%[myNI]> You are being kicked because: %[line:Reason]|<%[myNI]> %[myNI] is kicking %[userNI] because: %[line:Reason]|$Kick %[userNI]|"; addUserCommand(UserCommand::TYPE_RAW_ONCE, UserCommand::CONTEXT_CHAT | UserCommand::CONTEXT_SEARCH, UserCommand::FLAG_NOSAVE, - STRING(KICK_USER), kickstr, "op"); + _("Kick user(s)"), kickstr, "op"); static const char redirstr[] = "$OpForceMove $Who:%[userNI]$Where:%[line:Target Server]$Msg:%[line:Message]|"; addUserCommand(UserCommand::TYPE_RAW_ONCE, UserCommand::CONTEXT_CHAT | UserCommand::CONTEXT_SEARCH, UserCommand::FLAG_NOSAVE, - STRING(REDIRECT_USER), redirstr, "op"); + _("Redirect user(s)"), redirstr, "op"); try { SimpleXML xml; Modified: dcplusplus/trunk/dcpp/HashManager.cpp =================================================================== --- dcplusplus/trunk/dcpp/HashManager.cpp 2008-01-22 22:47:59 UTC (rev 973) +++ dcplusplus/trunk/dcpp/HashManager.cpp 2008-01-23 19:46:22 UTC (rev 974) @@ -20,7 +20,6 @@ #include "DCPlusPlus.h" #include "HashManager.h" -#include "ResourceManager.h" #include "SimpleXML.h" #include "LogManager.h" #include "File.h" @@ -71,7 +70,7 @@ Lock l(cs); store.addFile(aFileName, aTimeStamp, tth, true); } catch(const Exception& e) { - LogManager::getInstance()->message(STRING(HASHING_FAILED) + e.getError()); + LogManager::getInstance()->message(str(F_("Hashing failed: %1%") % e.getError())); return; } @@ -85,9 +84,9 @@ fn.insert(0, "..."); } if(speed > 0) { - LogManager::getInstance()->message(STRING(HASHING_FINISHED) + fn + " (" + Util::formatBytes(speed) + "/s)"); + LogManager::getInstance()->message(str(F_("Finished hashing: %1% (%2%/s)") % fn % Util::formatBytes(speed))); } else { - LogManager::getInstance()->message(STRING(HASHING_FINISHED) + fn); + LogManager::getInstance()->message(str(F_("Finished hashing: %1%") % fn)); } } @@ -116,7 +115,7 @@ treeIndex.insert(make_pair(tt.getRoot(), TreeInfo(tt.getFileSize(), index, tt.getBlockSize()))); dirty = true; } catch(const FileException& e) { - LogManager::getInstance()->message(STRING(ERROR_SAVING_HASH) + e.getError()); + LogManager::getInstance()->message(str(F_("Error saving hash data: %1%") % e.getError())); } } } @@ -129,7 +128,7 @@ int64_t pos = 0; size_t n = sizeof(pos); if(f.read(&pos, n) != sizeof(pos)) - throw HashException(STRING(HASH_READ_FAILED)); + throw HashException(_("Unable to read hash data file")); // Check if we should grow the file, we grow by a meg at a time... int64_t datsz = f.getSize(); @@ -275,7 +274,7 @@ dirty = true; save(); } catch(const Exception& e) { - LogManager::getInstance()->message(STRING(HASHING_FAILED) + e.getError()); + LogManager::getInstance()->message(str(F_("Hashing failed: %1%") % e.getError())); } } @@ -331,7 +330,7 @@ dirty = false; } catch(const FileException& e) { - LogManager::getInstance()->message(STRING(ERROR_SAVING_HASH) + e.getError()); + LogManager::getInstance()->message(str(F_("Error saving hash data: %1%") % e.getError())); } } } @@ -454,7 +453,7 @@ dat.write(&start, sizeof(start)); } catch(const FileException& e) { - LogManager::getInstance()->message(STRING(ERROR_CREATING_HASH_DATA_FILE) + e.getError()); + LogManager::getInstance()->message(str(F_("Error creating hash data file: %1%") % e.getError())); } } @@ -675,7 +674,7 @@ if(rebuild) { HashManager::getInstance()->doRebuild(); rebuild = false; - LogManager::getInstance()->message(STRING(HASH_REBUILT)); + LogManager::getInstance()->message(_("Hash database rebuilt")); continue; } { @@ -765,12 +764,12 @@ speed = size * _LL(1000) / (end - start); } if(xcrc32 && xcrc32->getValue() != sfv.getCRC()) { - LogManager::getInstance()->message(fname + STRING(NO_CRC32_MATCH)); + LogManager::getInstance()->message(str(F_("%1% not shared; calculated CRC32 does not match the one found in SFV file.") % fname)); } else { HashManager::getInstance()->hashDone(fname, timestamp, *tth, speed); } } catch(const FileException& e) { - LogManager::getInstance()->message(STRING(ERROR_HASHING) + fname + ": " + e.getError()); + LogManager::getInstance()->message(str(F_("Error hashing %1%: %2%") % fname % e.getError())); } } { Modified: dcplusplus/trunk/dcpp/MerkleCheckOutputStream.h =================================================================== --- dcplusplus/trunk/dcpp/MerkleCheckOutputStream.h 2008-01-22 22:47:59 UTC (rev 973) +++ dcplusplus/trunk/dcpp/MerkleCheckOutputStream.h 2008-01-23 19:46:22 UTC (rev 974) @@ -50,7 +50,7 @@ cur.finalize(); if(cur.getLeaves().size() == real.getLeaves().size()) { if (cur.getRoot() != real.getRoot()) - throw FileException(STRING(TTH_INCONSISTENCY)); + throw FileException(_("TTH inconsistency")); } else { checkTrees(); } @@ -110,7 +110,7 @@ if(cur.getLeaves().size() > real.getLeaves().size() || !(cur.getLeaves()[verified] == real.getLeaves()[verified])) { - throw FileException(STRING(TTH_INCONSISTENCY)); + throw FileException(_("TTH inconsistency")); } verified++; } Modified: dcplusplus/trunk/dcpp/NmdcHub.cpp =================================================================== --- dcplusplus/trunk/dcpp/NmdcHub.cpp 2008-01-22 22:47:59 UTC (rev 973) +++ dcplusplus/trunk/dcpp/NmdcHub.cpp 2008-01-23 19:46:22 UTC (rev 974) @@ -21,7 +21,6 @@ #include "NmdcHub.h" -#include "ResourceManager.h" #include "ClientManager.h" #include "SearchManager.h" #include "ShareManager.h" @@ -271,7 +270,7 @@ if(seeker.compare(0, 4, "Hub:") == 0) fire(ClientListener::SearchFlood(), this, seeker.substr(4)); else - fire(ClientListener::SearchFlood(), this, seeker + STRING(NICK_UNKNOWN)); + fire(ClientListener::SearchFlood(), this, str(F_("%1% (Nick unknown)") % seeker)); flooders.push_back(make_pair(seeker, tick)); return; Modified: dcplusplus/trunk/dcpp/QueueManager.cpp =================================================================== --- dcplusplus/trunk/dcpp/QueueManager.cpp 2008-01-22 22:47:59 UTC (rev 973) +++ dcplusplus/trunk/dcpp/QueueManager.cpp 2008-01-23 19:46:22 UTC (rev 974) @@ -381,7 +381,7 @@ void QueueManager::addPfs(const UserPtr& aUser, const string& aDir) throw(QueueException) { if(aUser == ClientManager::getInstance()->getMe()) { - throw QueueException(STRING(NO_DOWNLOADS_FROM_SELF)); + throw QueueException(_("You're trying to download from yourself!")); } if(!aUser->isOnline()) @@ -405,13 +405,13 @@ // Check that we're not downloading from ourselves... if(aUser == ClientManager::getInstance()->getMe()) { - throw QueueException(STRING(NO_DOWNLOADS_FROM_SELF)); + throw QueueException(_("You're trying to download from yourself!")); } // Check if we're not downloading something already in our share if(BOOLSETTING(DONT_DL_ALREADY_SHARED)){ if (ShareManager::getInstance()->isTTHShared(root)){ - throw QueueException(STRING(TTH_ALREADY_SHARED)); + throw QueueException(_("A file with the same hash already exists in your share")); } } @@ -434,7 +434,7 @@ QueueItem::List ql; fileQueue.find(ql, root); if(!ql.empty()) { - throw QueueException(STRING(FILE_IS_ALREADY_QUEUED)); + throw QueueException(_("This file is already queued")); } } @@ -444,10 +444,10 @@ fire(QueueManagerListener::Added(), q); } else { if(q->getSize() != aSize) { - throw QueueException(STRING(FILE_WITH_DIFFERENT_SIZE)); + throw QueueException(_("A file with a different size already exists in the queue")); } if(!(root == q->getTTH())) { - throw QueueException(STRING(FILE_WITH_DIFFERENT_TTH)); + throw QueueException(_("A file with different tth root already exists in the queue")); } q->setFlag(aFlags); @@ -479,20 +479,20 @@ string QueueManager::checkTarget(const string& aTarget, int64_t aSize, int& flags) throw(QueueException, FileException) { #ifdef _WIN32 if(aTarget.length() > MAX_PATH) { - throw QueueException(STRING(TARGET_FILENAME_TOO_LONG)); + throw QueueException(_("Target filename too long")); } // Check that target starts with a drive or is an UNC path if( (aTarget[1] != ':' || aTarget[2] != '\\') && (aTarget[0] != '\\' && aTarget[1] != '\\') ) { - throw QueueException(STRING(INVALID_TARGET_FILE)); + throw QueueException(_("Invalid target file (missing directory, check default download directory setting)")); } #else if(aTarget.length() > PATH_MAX) { - throw QueueException(STRING(TARGET_FILENAME_TOO_LONG)); + throw QueueException(_("Target filename too long")); } // Check that target contains at least one directory...we don't want headless files... if(aTarget[0] != '/') { - throw QueueException(STRING(INVALID_TARGET_FILE)); + throw QueueException(_("Invalid target file (missing directory, check default download directory setting)")); } #endif @@ -501,7 +501,7 @@ // Check that the file doesn't already exist... int64_t sz = File::getSize(target); if( (aSize != -1) && (aSize <= sz) ) { - throw FileException(STRING(LARGER_TARGET_FILE_EXISTS)); + throw FileException(_("A file of equal or larger size already exists at the target location")); } if(sz > 0) flags |= QueueItem::FLAG_EXISTS; @@ -514,11 +514,11 @@ bool wantConnection = (qi->getPriority() != QueueItem::PAUSED) && !userQueue.getRunning(aUser); if(qi->isSource(aUser)) { - throw QueueException(STRING(DUPLICATE_SOURCE) + ": " + Util::getFileName(qi->getTarget())); + throw QueueException(str(F_("Duplicate source: %1%") % Util::getFileName(qi->getTarget()))); } if(qi->isBadSourceExcept(aUser, addBad)) { - throw QueueException(STRING(DUPLICATE_SOURCE) + ": " + Util::getFileName(qi->getTarget())); + throw QueueException(str(F_("Duplicate source: %1%") % Util::getFileName(qi->getTarget()))); } qi->addSource(aUser); @@ -767,7 +767,7 @@ QueueItem* qi = fileQueue.find(d->getPath()); if(!qi) { - throw QueueException(STRING(TARGET_REMOVED)); + throw QueueException(_("Target removed")); } string target = d->getDownloadTarget(); @@ -955,7 +955,7 @@ try { dirList.loadFile(name); } catch(const Exception&) { - LogManager::getInstance()->message(STRING(UNABLE_TO_OPEN_FILELIST) + name); + LogManager::getInstance()->message(str(F_("Unable to open filelist: %1%") % name)); return; } Modified: dcplusplus/trunk/dcpp/SearchManager.cpp =================================================================== --- dcplusplus/trunk/dcpp/SearchManager.cpp 2008-01-22 22:47:59 UTC (rev 973) +++ dcplusplus/trunk/dcpp/SearchManager.cpp 2008-01-23 19:46:22 UTC (rev 974) @@ -24,7 +24,6 @@ #include "ClientManager.h" #include "ShareManager.h" -#include "ResourceManager.h" namespace dcpp { @@ -265,7 +264,7 @@ if(hubName.compare(0, 4, "TTH:") == 0) { tth = hubName.substr(4); StringList names = ClientManager::getInstance()->getHubNames(user->getCID()); - hubName = names.empty() ? STRING(OFFLINE) : Util::toString(names); + hubName = names.empty() ? _("Offline") : Util::toString(names); } if(tth.empty() && type == SearchResult::TYPE_FILE) { @@ -327,9 +326,9 @@ if(!file.empty() && freeSlots != -1 && size != -1) { StringList names = ClientManager::getInstance()->getHubNames(from->getCID()); - string hubName = names.empty() ? STRING(OFFLINE) : Util::toString(names); + string hubName = names.empty() ? _("Offline") : Util::toString(names); StringList hubs = ClientManager::getInstance()->getHubs(from->getCID()); - string hub = hubs.empty() ? STRING(OFFLINE) : Util::toString(hubs); + string hub = hubs.empty() ? _("Offline") : Util::toString(hubs); SearchResult::Types type = (file[file.length() - 1] == '\\' ? SearchResult::TYPE_DIRECTORY : SearchResult::TYPE_FILE); if(type == SearchResult::TYPE_FILE && tth.empty()) Modified: dcplusplus/trunk/dcpp/ShareManager.cpp =================================================================== --- dcplusplus/trunk/dcpp/ShareManager.cpp 2008-01-22 22:47:59 UTC (rev 973) +++ dcplusplus/trunk/dcpp/ShareManager.cpp 2008-01-23 19:46:22 UTC (rev 974) @@ -20,7 +20,6 @@ #include "DCPlusPlus.h" #include "ShareManager.h" -#include "ResourceManager.h" #include "CryptoManager.h" #include "ClientManager.h" @@ -401,11 +400,11 @@ void ShareManager::addDirectory(const string& realPath, const string& virtualName) throw(ShareException) { if(realPath.empty() || virtualName.empty()) { - throw ShareException(STRING(NO_DIRECTORY_SPECIFIED)); + throw ShareException(_("No directory specified")); } if(Util::stricmp(SETTING(TEMP_DOWNLOAD_DIRECTORY), realPath) == 0) { - throw ShareException(STRING(DONT_SHARE_TEMP_DIRECTORY)); + throw ShareException(_("The temporary download directory cannot be shared")); } string vName = validateVirtual(virtualName); @@ -416,15 +415,15 @@ for(Directory::MapIter i = directories.begin(); i != directories.end(); ++i) { if(Util::strnicmp(realPath, i->first, i->first.length()) == 0) { // Trying to share an already shared directory - throw ShareException(STRING(DIRECTORY_ALREADY_SHARED)); + throw ShareException(_("Directory already shared")); } else if(Util::strnicmp(realPath, i->first, realPath.length()) == 0) { // Trying to share a parent directory - throw ShareException(STRING(REMOVE_ALL_SUBDIRECTORIES)); + throw ShareException(_("Remove all subdirectories before adding this one")); } } if(hasVirtual(vName)) { - throw ShareException(STRING(VIRTUAL_NAME_EXISTS)); + throw ShareException(_("Virtual directory name already exists")); } } @@ -466,7 +465,7 @@ Lock l(cs); //Find the virtual name if (hasVirtual(vName)) { - throw ShareException(STRING(VIRTUAL_NAME_EXISTS)); + throw ShareException(_("Virtual directory name already exists")); } Directory::MapIter j = directories.find(realPath); @@ -743,7 +742,8 @@ dir.size+=f.getSize(); } else { if(!SETTING(LIST_DUPES)) { - LogManager::getInstance()->message(STRING(DUPLICATE_FILE_NOT_SHARED) + dir.getFullName() + f.getName() + " (" + STRING(SIZE) + ": " + Util::toString(f.getSize()) + " " + STRING(B) + ") " + STRING(DUPLICATE_MATCH) + j->second->getParent()->getFullName() + j->second->getName() ); + LogManager::getInstance()->message(str(F_("Duplicate file will not be shared: %1%%2% (Size: %3% B) Dupe matched against: %4%%5%") + % dir.getFullName() % f.getName() % Util::toString(f.getSize()) % j->second->getParent()->getFullName() % j->second->getName())); dir.files.erase(i); return; } @@ -757,7 +757,7 @@ void ShareManager::refresh(bool dirs /* = false */, bool aUpdate /* = true */, bool block /* = false */) throw() { if(Thread::safeExchange(refreshing, 1) == 1) { - LogManager::getInstance()->message(STRING(FILE_LIST_REFRRESH_IN_PROGRESS)); + LogManager::getInstance()->message(_("File list refresh in progress, please wait for it to finish before trying to refresh again")); return; } @@ -777,7 +777,7 @@ setThreadPriority(Thread::LOW); } } catch(const ThreadException& e) { - LogManager::getInstance()->message(STRING(FILE_LIST_REFRESH_FAILED) + e.getError()); + LogManager::getInstance()->message(str(F_("File list refresh failed: %1%") % e.getError())); } } @@ -799,7 +799,7 @@ { if(refreshDirs) { - LogManager::getInstance()->message(STRING(FILE_LIST_REFRESH_INITIATED)); + LogManager::getInstance()->message(_("File list refresh initiated")); lastFullUpdate = GET_TICK(); @@ -821,7 +821,7 @@ } refreshDirs = false; - LogManager::getInstance()->message(STRING(FILE_LIST_REFRESH_FINISHED)); + LogManager::getInstance()->message(_("File list refresh finished")); } } Modified: dcplusplus/trunk/dcpp/Socket.cpp =================================================================== --- dcplusplus/trunk/dcpp/Socket.cpp 2008-01-22 22:47:59 UTC (rev 973) +++ dcplusplus/trunk/dcpp/Socket.cpp 2008-01-23 19:46:22 UTC (rev 974) @@ -22,7 +22,6 @@ #include "Socket.h" #include "SettingsManager.h" -#include "ResourceManager.h" #include "TimerManager.h" namespace dcpp { @@ -53,9 +52,7 @@ string msg = Util::translateError(aError); if(msg.empty()) { - char tmp[64]; - snprintf(tmp, sizeof(tmp), CSTRING(UNKNOWN_ERROR), aError); - msg = tmp; + msg = str(F_("Unknown error: 0x%1%") % aError); } return msg; } @@ -155,7 +152,7 @@ } uint64_t now = GET_TICK(); if(start + timeout < now) - throw SocketException(STRING(CONNECTION_TIMEOUT)); + throw SocketException(_("Connection timeout")); return start + timeout - now; } } @@ -163,7 +160,7 @@ void Socket::socksConnect(const string& aAddr, uint16_t aPort, uint32_t timeout) throw(SocketException) { if(SETTING(SOCKS_SERVER).empty() || SETTING(SOCKS_PORT) == 0) { - throw SocketException(STRING(SOCKS_FAILED)); + throw SocketException(_("The socks server failed establish a connection")); } bool oldblock = getBlocking(); @@ -174,7 +171,7 @@ connect(SETTING(SOCKS_SERVER), static_cast<uint16_t>(SETTING(SOCKS_PORT))); if(wait(timeLeft(start, timeout), WAIT_CONNECT) != WAIT_CONNECT) { - throw SocketException(STRING(SOCKS_FAILED)); + throw SocketException(_("The socks server failed establish a connection")); } socksAuth(timeLeft(start, timeout)); @@ -207,11 +204,11 @@ // We assume we'll get a ipv4 address back...therefore, 10 bytes... /// @todo add support for ipv6 if(readAll(&connStr[0], 10, timeLeft(start, timeout)) != 10) { - throw SocketException(STRING(SOCKS_FAILED)); + throw SocketException(_("The socks server failed establish a connection")); } if(connStr[0] != 5 || connStr[1] != 0) { - throw SocketException(STRING(SOCKS_FAILED)); + throw SocketException(_("The socks server failed establish a connection")); } in_addr sock_addr; @@ -238,11 +235,11 @@ writeAll(&connStr[0], 3, timeLeft(start, timeout)); if(readAll(&connStr[0], 2, timeLeft(start, timeout)) != 2) { - throw SocketException(STRING(SOCKS_FAILED)); + throw SocketException(_("The socks server failed establish a connection")); } if(connStr[1] != 0) { - throw SocketException(STRING(SOCKS_NEEDS_AUTH)); + throw SocketException(_("The socks server requires authentication")); } } else { // We try the username and password auth type (no, we don't support gssapi) @@ -253,10 +250,10 @@ writeAll(&connStr[0], 3, timeLeft(start, timeout)); if(readAll(&connStr[0], 2, timeLeft(start, timeout)) != 2) { - throw SocketException(STRING(SOCKS_FAILED)); + throw SocketException(_("The socks server failed establish a connection")); } if(connStr[1] != 2) { - throw SocketException(STRING(SOCKS_AUTH_UNSUPPORTED)); + throw SocketException(_("The socks server doesn't support login / password authentication")); } connStr.clear(); @@ -270,11 +267,11 @@ writeAll(&connStr[0], connStr.size(), timeLeft(start, timeout)); if(readAll(&connStr[0], 2, timeLeft(start, timeout)) != 2) { - throw SocketException(STRING(SOCKS_AUTH_FAILED)); + throw SocketException(_("Socks server authentication failed (bad login / password?)")); } if(connStr[1] != 0) { - throw SocketException(STRING(SOCKS_AUTH_FAILED)); + throw SocketException(_("Socks server authentication failed (bad login / password?)")); } } } @@ -409,7 +406,7 @@ int sent; if(SETTING(OUTGOING_CONNECTIONS) == SettingsManager::OUTGOING_SOCKS5 && proxy) { if(udpServer.empty() || udpPort == 0) { - throw SocketException(STRING(SOCKS_SETUP_ERROR)); + throw SocketException(_("Failed to set up the socks server for UDP relay (check socks address and port)")); } serv_addr.sin_port = htons(udpPort); Modified: dcplusplus/trunk/dcpp/Thread.cpp =================================================================== --- dcplusplus/trunk/dcpp/Thread.cpp 2008-01-22 22:47:59 UTC (rev 973) +++ dcplusplus/trunk/dcpp/Thread.cpp 2008-01-23 19:46:22 UTC (rev 974) @@ -21,8 +21,6 @@ #include "Thread.h" -#include "ResourceManager.h" - namespace dcpp { #ifndef _WIN32 @@ -33,7 +31,7 @@ void Thread::start() throw(ThreadException) { join(); if( (threadHandle = CreateThread(NULL, 0, &starter, this, 0, &threadId)) == NULL) { - throw ThreadException(STRING(UNABLE_TO_CREATE_THREAD)); + throw ThreadException(_("Unable to create thread")); } } @@ -41,7 +39,7 @@ void Thread::start() throw(ThreadException) { join(); if(pthread_create(&threadHandle, NULL, &starter, this) != 0) { - throw ThreadException(STRING(UNABLE_TO_CREATE_THREAD)); + throw ThreadException(_("Unable to create thread")); } } #endif Modified: dcplusplus/trunk/dcpp/Transfer.cpp =================================================================== --- dcplusplus/trunk/dcpp/Transfer.cpp 2008-01-22 22:47:59 UTC (rev 973) +++ dcplusplus/trunk/dcpp/Transfer.cpp 2008-01-23 19:46:22 UTC (rev 974) @@ -22,7 +22,6 @@ #include "Transfer.h" #include "UserConnection.h" -#include "ResourceManager.h" #include "ClientManager.h" namespace dcpp { @@ -61,11 +60,11 @@ params["userI4"] = aSource.getRemoteIp(); StringList hubNames = ClientManager::getInstance()->getHubNames(aSource.getUser()->getCID()); if(hubNames.empty()) - hubNames.push_back(STRING(OFFLINE)); + hubNames.push_back(_("Offline")); params["hub"] = Util::toString(hubNames); StringList hubs = ClientManager::getInstance()->getHubs(aSource.getUser()->getCID()); if(hubs.empty()) - hubs.push_back(STRING(OFFLINE)); + hubs.push_back(_("Offline")); params["hubURL"] = Util::toString(hubs); params["fileSI"] = Util::toString(getSize()); params["fileSIshort"] = Util::formatBytes(getSize()); Modified: dcplusplus/trunk/dcpp/UploadManager.cpp =================================================================== --- dcplusplus/trunk/dcpp/UploadManager.cpp 2008-01-22 22:47:59 UTC (rev 973) +++ dcplusplus/trunk/dcpp/UploadManager.cpp 2008-01-23 19:46:22 UTC (rev 974) @@ -27,7 +27,6 @@ #include "ClientManager.h" #include "FilteredFile.h" #include "ZUtils.h" -#include "ResourceManager.h" #include "HashManager.h" #include "AdcCommand.h" #include "FavoriteManager.h" @@ -147,7 +146,7 @@ aSource.fileNotAvail(e.getError()); return false; } catch(const Exception& e) { - LogManager::getInstance()->message(STRING(UNABLE_TO_SEND_FILE) + sourceFile + ": " + e.getError()); + LogManager::getInstance()->message(str(F_("Unable to send file %1%: %2%") % sourceFile % e.getError())); aSource.fileNotAvail(); return false; } @@ -448,7 +447,7 @@ } for(UserList::iterator i = disconnects.begin(); i != disconnects.end(); ++i) { - LogManager::getInstance()->message(STRING(DISCONNECTED_USER) + Util::toString(ClientManager::getInstance()->getNicks((*i)->getCID()))); + LogManager::getInstance()->message(str(F_("Disconnected user leaving the hub: %1%") % Util::toString(ClientManager::getInstance()->getNicks((*i)->getCID())))); ConnectionManager::getInstance()->disconnect(*i, false); } } Modified: dcplusplus/trunk/dcpp/UserConnection.cpp =================================================================== --- dcplusplus/trunk/dcpp/UserConnection.cpp 2008-01-22 22:47:59 UTC (rev 973) +++ dcplusplus/trunk/dcpp/UserConnection.cpp 2008-01-23 19:46:22 UTC (rev 974) @@ -21,7 +21,6 @@ #include "UserConnection.h" #include "ClientManager.h" -#include "ResourceManager.h" #include "StringTokenizer.h" #include "AdcCommand.h" Modified: dcplusplus/trunk/dcpp/ZUtils.cpp =================================================================== --- dcplusplus/trunk/dcpp/ZUtils.cpp 2008-01-22 22:47:59 UTC (rev 973) +++ dcplusplus/trunk/dcpp/ZUtils.cpp 2008-01-23 19:46:22 UTC (rev 974) @@ -21,7 +21,6 @@ #include "ZUtils.h" #include "Exception.h" -#include "ResourceManager.h" namespace dcpp { @@ -31,7 +30,7 @@ memset(&zs, 0, sizeof(zs)); if(deflateInit(&zs, 3) != Z_OK) { - throw Exception(STRING(COMPRESSION_ERROR)); + throw Exception(_("Error during compression")); } } @@ -52,7 +51,7 @@ zs.avail_in = 0; zs.avail_out = outsize; if(deflateParams(&zs, 0, Z_DEFAULT_STRATEGY) != Z_OK) { - throw Exception(STRING(COMPRESSION_ERROR)); + throw Exception(_("Error during compression")); } zs.avail_in = insize; compressing = false; @@ -74,7 +73,7 @@ if(insize == 0) { int err = ::deflate(&zs, Z_FINISH); if(err != Z_OK && err != Z_STREAM_END) - throw Exception(STRING(COMPRESSION_ERROR)); + throw Exception(_("Error during compression")); outsize = outsize - zs.avail_out; insize = insize - zs.avail_in; @@ -84,7 +83,7 @@ } else { int err = ::deflate(&zs, Z_NO_FLUSH); if(err != Z_OK) - throw Exception(STRING(COMPRESSION_ERROR)); + throw Exception(_("Error during compression")); outsize = outsize - zs.avail_out; insize = insize - zs.avail_in; @@ -98,7 +97,7 @@ memset(&zs, 0, sizeof(zs)); if(inflateInit(&zs) != Z_OK) - throw Exception(STRING(DECOMPRESSION_ERROR)); + throw Exception(_("Error during decompression")); } UnZFilter::~UnZFilter() { @@ -121,7 +120,7 @@ // with a dummy byte if at end of stream - since we don't do this it's not a real // error if(!(err == Z_OK || err == Z_STREAM_END || (err == Z_BUF_ERROR && in == NULL))) - throw Exception(STRING(DECOMPRESSION_ERROR)); + throw Exception(_("Error during decompression")); outsize = outsize - zs.avail_out; insize = insize - zs.avail_in; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <arn...@us...> - 2008-01-22 22:48:03
|
Revision: 973 http://dcplusplus.svn.sourceforge.net/dcplusplus/?rev=973&view=rev Author: arnetheduck Date: 2008-01-22 14:47:59 -0800 (Tue, 22 Jan 2008) Log Message: ----------- win32 translations done, use boost intrusive_ptr Modified Paths: -------------- dcplusplus/trunk/changelog.txt dcplusplus/trunk/dcpp/Pointer.h dcplusplus/trunk/dcpp/User.h dcplusplus/trunk/dcpp/forward.h dcplusplus/trunk/win32/DirectoryListingFrame.cpp dcplusplus/trunk/win32/FinishedFrameBase.h dcplusplus/trunk/win32/HubFrame.cpp dcplusplus/trunk/win32/MDIChildFrame.h dcplusplus/trunk/win32/MainWindow.cpp dcplusplus/trunk/win32/MainWindow.h dcplusplus/trunk/win32/PrivateFrame.cpp dcplusplus/trunk/win32/PublicHubsFrame.cpp dcplusplus/trunk/win32/QueueFrame.cpp dcplusplus/trunk/win32/SearchFrame.cpp dcplusplus/trunk/win32/SpyFrame.cpp dcplusplus/trunk/win32/SpyFrame.h dcplusplus/trunk/win32/StaticFrame.h dcplusplus/trunk/win32/TransferView.cpp dcplusplus/trunk/win32/UserInfoBase.h dcplusplus/trunk/win32/WaitingUsersFrame.cpp dcplusplus/trunk/win32/WinUtil.cpp dcplusplus/trunk/win32/stdafx.h Modified: dcplusplus/trunk/changelog.txt =================================================================== --- dcplusplus/trunk/changelog.txt 2008-01-21 21:00:31 UTC (rev 972) +++ dcplusplus/trunk/changelog.txt 2008-01-22 22:47:59 UTC (rev 973) @@ -12,8 +12,8 @@ * Chat timestamps on by default * Added tab drag/drop (thanks poy) * Changed Pothead to mikejj +* Fixed search spy crash - -- 0.704 2007-12-14 -- * Hub lists added to utilize Coral's distributed network (ullner) * Use system header arrows on common controls 6+ (thanks poy) Modified: dcplusplus/trunk/dcpp/Pointer.h =================================================================== --- dcplusplus/trunk/dcpp/Pointer.h 2008-01-21 21:00:31 UTC (rev 972) +++ dcplusplus/trunk/dcpp/Pointer.h 2008-01-22 22:47:59 UTC (rev 973) @@ -16,14 +16,15 @@ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ -#if !defined(DCPLUSPLUS_DCPP_POINTER_H) +#ifndef DCPLUSPLUS_DCPP_POINTER_H #define DCPLUSPLUS_DCPP_POINTER_H +#include <boost/intrusive_ptr.hpp> #include "Thread.h" namespace dcpp { -class PointerBase +class intrusive_ptr_base { public: void inc() throw() { @@ -44,9 +45,9 @@ } protected: - PointerBase() throw() : ref(0) { } + intrusive_ptr_base() throw() : ref(0) { } - virtual ~PointerBase() throw() { + virtual ~intrusive_ptr_base() throw() { dcassert(!ref); } @@ -54,107 +55,9 @@ volatile long ref; }; -/** - * Note; don't forget to make the destructor virtual if deriving from this class - */ -template <class T> -class Pointer -{ -public: - Pointer ( PointerBase *aBase = 0) throw() : base(aBase) { - if ( base ) { - base->inc(); - } - } +inline void intrusive_ptr_add_ref(intrusive_ptr_base* p) { p->inc(); } +inline void intrusive_ptr_release(intrusive_ptr_base* p) { p->dec(); } - Pointer( const Pointer &rhs ) throw() : base(rhs.base) { - if ( base ) { - base->inc(); - } - } - - Pointer &operator =( const Pointer &rhs ) throw() { - if ( rhs.base ) { - rhs.base->inc(); - } - - if ( base ) { - base->dec(); - } - - base = rhs.base; - return *this; - } - - Pointer &operator =( T* rhs ) throw() { - if (rhs) { - rhs->inc(); - if ( base ) { - base->dec(); - } - base = rhs; - } - - - return *this; - } - - ~Pointer() throw() { - if ( base ) { - base->dec(); - } - } - - T* operator->() { return asT(); } - T& operator* () { return *asT(); } - const T* operator->() const { return asT(); } - const T& operator* () const { return *asT(); } - - operator bool() const { return base != NULL; } - - bool operator==(T* rhs) const { return (T*)base == rhs; } - bool operator==(const Pointer& rhs) const { return base == rhs.base; } - bool operator!=(T* rhs) const { return (T*)base != rhs; } - bool operator!=(const Pointer& rhs) const { return base != rhs.base; } - bool operator<(T* rhs) const { return (T*)base < rhs; } - bool operator<(const Pointer& rhs) const { return base < rhs.base; } - bool operator>(T* rhs) const { return (T*)base > rhs; } - bool operator>(const Pointer& rhs) const { return base > rhs.base; } - - - static void swap ( Pointer &lhs, Pointer &rhs ) { - PointerBase *temp = lhs.base; - lhs.base = rhs.base; - rhs.base = temp; - } - - void release() { - if ( base ) { - base->dec(); - base = 0; - } - } -private: - PointerBase* base; - - T* asT () { - dcassert(base); - return (T*)base; - } - - const T* asT() const { - dcassert(base); - return (T*)base; - } -}; - -template <class T> -bool operator==(T* lhs, const Pointer<T>& rhs) { return rhs == lhs; } -template <class T> -bool operator<(T* lhs, const Pointer<T>& rhs) { return rhs > lhs; } -template <class T> -bool operator>(T* lhs, const Pointer<T>& rhs) { return rhs < lhs; } - struct DeleteFunction { template<typename T> void operator()(const T& p) const { delete p; } Modified: dcplusplus/trunk/dcpp/User.h =================================================================== --- dcplusplus/trunk/dcpp/User.h 2008-01-21 21:00:31 UTC (rev 972) +++ dcplusplus/trunk/dcpp/User.h 2008-01-22 22:47:59 UTC (rev 973) @@ -30,7 +30,7 @@ namespace dcpp { /** A user connected to one or more hubs. */ -class User : public FastAlloc<User>, public PointerBase, public Flags +class User : public FastAlloc<User>, public intrusive_ptr_base, public Flags { public: enum Bits { Modified: dcplusplus/trunk/dcpp/forward.h =================================================================== --- dcplusplus/trunk/dcpp/forward.h 2008-01-21 21:00:31 UTC (rev 972) +++ dcplusplus/trunk/dcpp/forward.h 2008-01-22 22:47:59 UTC (rev 973) @@ -86,7 +86,7 @@ typedef std::vector<UploadPtr> UploadList; class User; -typedef Pointer<User> UserPtr; +typedef boost::intrusive_ptr<User> UserPtr; typedef std::vector<UserPtr> UserList; class UserCommand; Modified: dcplusplus/trunk/win32/DirectoryListingFrame.cpp =================================================================== --- dcplusplus/trunk/win32/DirectoryListingFrame.cpp 2008-01-21 21:00:31 UTC (rev 972) +++ dcplusplus/trunk/win32/DirectoryListingFrame.cpp 2008-01-22 22:47:59 UTC (rev 973) @@ -308,11 +308,11 @@ DirectoryListingFrame::WidgetMenuPtr DirectoryListingFrame::makeSingleMenu(ItemInfo* ii) { WidgetMenuPtr menu = createMenu(true); - menu->appendItem(IDC_DOWNLOAD, T_("Download"), std::tr1::bind(&DirectoryListingFrame::handleDownload, this)); + menu->appendItem(IDC_DOWNLOAD, T_("&Download"), std::tr1::bind(&DirectoryListingFrame::handleDownload, this)); addTargets(menu, ii); if(ii->type == ItemInfo::FILE) { - menu->appendItem(IDC_VIEW_AS_TEXT, T_("View as text"), std::tr1::bind(&DirectoryListingFrame::handleViewAsText, this)); + menu->appendItem(IDC_VIEW_AS_TEXT, T_("&View as text"), std::tr1::bind(&DirectoryListingFrame::handleViewAsText, this)); menu->appendSeparatorItem(); @@ -322,7 +322,7 @@ if((ii->type == ItemInfo::FILE && ii->file->getAdls()) || (ii->type == ItemInfo::DIRECTORY && ii->dir->getAdls() && ii->dir->getParent() != dl->getRoot()) ) { menu->appendSeparatorItem(); - menu->appendItem(IDC_GO_TO_DIRECTORY, T_("Go to directory"), std::tr1::bind(&DirectoryListingFrame::handleGoToDirectory, this)); + menu->appendItem(IDC_GO_TO_DIRECTORY, T_("&Go to directory"), std::tr1::bind(&DirectoryListingFrame::handleGoToDirectory, this)); } addUserCommands(menu); @@ -333,7 +333,7 @@ DirectoryListingFrame::WidgetMenuPtr DirectoryListingFrame::makeMultiMenu() { WidgetMenuPtr menu = createMenu(true); - menu->appendItem(IDC_DOWNLOAD, T_("Download"), std::tr1::bind(&DirectoryListingFrame::handleDownload, this)); + menu->appendItem(IDC_DOWNLOAD, T_("&Download"), std::tr1::bind(&DirectoryListingFrame::handleDownload, this)); addTargets(menu); addUserCommands(menu); @@ -345,7 +345,7 @@ DirectoryListingFrame::WidgetMenuPtr DirectoryListingFrame::makeDirMenu() { WidgetMenuPtr menu = createMenu(true); - menu->appendItem(IDC_DOWNLOAD, T_("Download"), std::tr1::bind(&DirectoryListingFrame::handleDownload, this)); + menu->appendItem(IDC_DOWNLOAD, T_("&Download"), std::tr1::bind(&DirectoryListingFrame::handleDownload, this)); addTargets(menu); return menu; } @@ -355,7 +355,7 @@ } void DirectoryListingFrame::addTargets(const WidgetMenuPtr& parent, ItemInfo* ii) { - WidgetMenuPtr menu = parent->appendPopup(T_("Download to...")); + WidgetMenuPtr menu = parent->appendPopup(T_("Download &to...")); StringPairList spl = FavoriteManager::getInstance()->getFavoriteDirs(); size_t i = 0; for(; i < spl.size(); ++i) { @@ -366,7 +366,7 @@ menu->appendSeparatorItem(); } - menu->appendItem(IDC_DOWNLOAD_BROWSE, T_("Browse..."), std::tr1::bind(&DirectoryListingFrame::handleDownloadBrowse, this)); + menu->appendItem(IDC_DOWNLOAD_BROWSE, T_("&Browse..."), std::tr1::bind(&DirectoryListingFrame::handleDownloadBrowse, this)); targets.clear(); Modified: dcplusplus/trunk/win32/FinishedFrameBase.h =================================================================== --- dcplusplus/trunk/win32/FinishedFrameBase.h 2008-01-21 21:00:31 UTC (rev 972) +++ dcplusplus/trunk/win32/FinishedFrameBase.h 2008-01-22 22:47:59 UTC (rev 973) @@ -61,7 +61,7 @@ items->setListViewStyle(LVS_EX_LABELTIP | LVS_EX_HEADERDRAGDROP | LVS_EX_FULLROWSELECT); addWidget(items); - items->createColumns(ResourceManager::getInstance()->getStrings(columnNames)); + items->createColumns(WinUtil::getStrings(columnNames)); items->setColumnOrder(WinUtil::splitTokens(SettingsManager::getInstance()->get(in_UL ? SettingsManager::FINISHED_UL_ORDER : SettingsManager::FINISHED_ORDER), columnIndexes)); items->setColumnWidths(WinUtil::splitTokens(SettingsManager::getInstance()->get(in_UL ? SettingsManager::FINISHED_UL_WIDTHS : SettingsManager::FINISHED_WIDTHS), columnSizes)); items->setSort(COLUMN_DONE); @@ -128,7 +128,7 @@ static int columnSizes[COLUMN_LAST]; static int columnIndexes[COLUMN_LAST]; - static ResourceManager::Strings columnNames[COLUMN_LAST]; + static const char* columnNames[COLUMN_LAST]; class ItemInfo : public FastAlloc<ItemInfo> { public: @@ -220,12 +220,12 @@ shellMenu.SetPath(Text::utf8ToWide(path)); typename T::WidgetMenuPtr pShellMenu = this->createMenu(true); - pShellMenu->appendItem(IDC_VIEW_AS_TEXT, T_("View as text"), std::tr1::bind(&ThisType::handleViewAsText, this)); - pShellMenu->appendItem(IDC_OPEN_FILE, T_("Open"), std::tr1::bind(&ThisType::handleOpenFile, this)); - pShellMenu->appendItem(IDC_OPEN_FOLDER, T_("Open folder"), std::tr1::bind(&ThisType::handleOpenFolder, this)); + pShellMenu->appendItem(IDC_VIEW_AS_TEXT, T_("&View as text"), std::tr1::bind(&ThisType::handleViewAsText, this)); + pShellMenu->appendItem(IDC_OPEN_FILE, T_("&Open"), std::tr1::bind(&ThisType::handleOpenFile, this)); + pShellMenu->appendItem(IDC_OPEN_FOLDER, T_("Open &folder"), std::tr1::bind(&ThisType::handleOpenFolder, this)); pShellMenu->appendSeparatorItem(); - pShellMenu->appendItem(IDC_REMOVE, TSTRING(REMOVE), std::tr1::bind(&ThisType::handleRemove, this)); - pShellMenu->appendItem(IDC_REMOVE_ALL, T_("Remove all"), std::tr1::bind(&ThisType::handleRemoveAll, this)); + pShellMenu->appendItem(IDC_REMOVE, T_("&Remove"), std::tr1::bind(&ThisType::handleRemove, this)); + pShellMenu->appendItem(IDC_REMOVE_ALL, T_("Remove &all"), std::tr1::bind(&ThisType::handleRemoveAll, this)); pShellMenu->appendSeparatorItem(); UINT idCommand = shellMenu.ShowContextMenu(pShellMenu, static_cast<T*>(this), pt); @@ -236,12 +236,12 @@ } typename T::WidgetMenuPtr contextMenu = this->createMenu(true); - contextMenu->appendItem(IDC_VIEW_AS_TEXT, T_("View as text"), std::tr1::bind(&ThisType::handleViewAsText, this)); - contextMenu->appendItem(IDC_OPEN_FILE, T_("Open"), std::tr1::bind(&ThisType::handleOpenFile, this)); - contextMenu->appendItem(IDC_OPEN_FOLDER, T_("Open folder"), std::tr1::bind(&ThisType::handleOpenFolder, this)); + contextMenu->appendItem(IDC_VIEW_AS_TEXT, T_("&View as text"), std::tr1::bind(&ThisType::handleViewAsText, this)); + contextMenu->appendItem(IDC_OPEN_FILE, T_("&Open"), std::tr1::bind(&ThisType::handleOpenFile, this)); + contextMenu->appendItem(IDC_OPEN_FOLDER, T_("Open &folder"), std::tr1::bind(&ThisType::handleOpenFolder, this)); contextMenu->appendSeparatorItem(); - contextMenu->appendItem(IDC_REMOVE, TSTRING(REMOVE), std::tr1::bind(&ThisType::handleRemove, this)); - contextMenu->appendItem(IDC_REMOVE_ALL, T_("Remove all"), std::tr1::bind(&ThisType::handleRemoveAll, this)); + contextMenu->appendItem(IDC_REMOVE, T_("&Remove"), std::tr1::bind(&ThisType::handleRemove, this)); + contextMenu->appendItem(IDC_REMOVE_ALL, T_("Remove &all"), std::tr1::bind(&ThisType::handleRemoveAll, this)); contextMenu->setDefaultItem(IDC_OPEN_FILE); contextMenu->trackPopupMenu(static_cast<T*>(this), pt, TPM_LEFTALIGN | TPM_RIGHTBUTTON); return true; @@ -330,8 +330,15 @@ int FinishedFrameBase<T, in_UL>::columnSizes[] = { 100, 110, 290, 125, 80, 80, 80, 90 }; template <class T, bool in_UL> -ResourceManager::Strings FinishedFrameBase<T, in_UL>::columnNames[] = { ResourceManager::FILENAME, ResourceManager::TIME, ResourceManager::PATH, -ResourceManager::NICK, ResourceManager::HUB, ResourceManager::SIZE, ResourceManager::SPEED, ResourceManager::CRC_CHECKED +const char* FinishedFrameBase<T, in_UL>::columnNames[] = { + N_("Filename"), + N_("Time"), + N_("Path"), + N_("Nick"), + N_("Hub"), + N_("Size"), + N_("Speed"), + N_("CRC Checked") }; #endif // !defined(DCPLUSPLUS_WIN32_FINISHED_FRAME_BASE_H) Modified: dcplusplus/trunk/win32/HubFrame.cpp =================================================================== --- dcplusplus/trunk/win32/HubFrame.cpp 2008-01-21 21:00:31 UTC (rev 972) +++ dcplusplus/trunk/win32/HubFrame.cpp 2008-01-22 22:47:59 UTC (rev 973) @@ -27,7 +27,6 @@ #include <dcpp/Client.h> #include <dcpp/LogManager.h> #include <dcpp/User.h> -#include <dcpp/ResourceManager.h> #include <dcpp/FavoriteManager.h> #include <dcpp/ConnectionManager.h> #include <dcpp/SearchManager.h> @@ -824,7 +823,7 @@ } void HubFrame::on(Connecting, Client*) throw() { - speak(ADD_STATUS_LINE, STRING(CONNECTING_TO) + client->getHubUrl() + "..."); + speak(ADD_STATUS_LINE, str(F_("Connecting to %1%...") % client->getHubUrl())); speak(SET_WINDOW_TITLE, client->getHubUrl()); } void HubFrame::on(Connected, Client*) throw() { @@ -846,14 +845,14 @@ void HubFrame::on(Redirect, Client*, const string& line) throw() { if(ClientManager::getInstance()->isConnected(line)) { - speak(ADD_STATUS_LINE, STRING(REDIRECT_ALREADY_CONNECTED)); + speak(ADD_STATUS_LINE, _("Redirect request received to a hub that's already connected")); return; } redirect = line; if(BOOLSETTING(AUTO_FOLLOW)) { speak(FOLLOW); } else { - speak(ADD_STATUS_LINE, STRING(PRESS_FOLLOW) + line); + speak(ADD_STATUS_LINE, str(F_("Press the follow redirect button to connect to %1%") % line)); } } @@ -908,7 +907,7 @@ } void HubFrame::on(SearchFlood, Client*, const string& line) throw() { - speak(ADD_STATUS_LINE, STRING(SEARCH_SPAM_FROM) + line); + speak(ADD_STATUS_LINE, str(F_("Search spam detected from %1%") % line)); } tstring HubFrame::getStatusShared() const { @@ -1158,7 +1157,7 @@ WidgetMenuPtr menu = createMenu(true); appendUserItems(getParent(), menu); - menu->appendItem(IDC_COPY_NICK, T_("Copy nick to clipboard"), std::tr1::bind(&HubFrame::handleCopyNick, this)); + menu->appendItem(IDC_COPY_NICK, T_("Copy &nick to clipboard"), std::tr1::bind(&HubFrame::handleCopyNick, this)); menu->setDefaultItem(IDC_GETLIST); prepareMenu(menu, UserCommand::CONTEXT_CHAT, client->getHubUrl()); @@ -1174,15 +1173,15 @@ WidgetMenuPtr menu = createMenu(true); if(!FavoriteManager::getInstance()->isFavoriteHub(url)) { - menu->appendItem(IDC_ADD_TO_FAVORITES, T_("Add To Favorites"), std::tr1::bind(&HubFrame::addAsFavorite, this)); + menu->appendItem(IDC_ADD_TO_FAVORITES, T_("Add To &Favorites"), std::tr1::bind(&HubFrame::addAsFavorite, this)); } - menu->appendItem(IDC_RECONNECT, TSTRING(MENU_RECONNECT), std::tr1::bind(&HubFrame::handleReconnect, this)); - menu->appendItem(IDC_COPY_HUB, T_("Copy address to clipboard"), std::tr1::bind(&HubFrame::handleCopyHub, this)); + menu->appendItem(IDC_RECONNECT, T_("&Reconnect\tCtrl+R"), std::tr1::bind(&HubFrame::handleReconnect, this)); + menu->appendItem(IDC_COPY_HUB, T_("Copy &address to clipboard"), std::tr1::bind(&HubFrame::handleCopyHub, this)); prepareMenu(menu, UserCommand::CONTEXT_HUB, url); menu->appendSeparatorItem(); - menu->appendItem(IDC_CLOSE_WINDOW, T_("Close"), std::tr1::bind(&HubFrame::close, this, true)); + menu->appendItem(IDC_CLOSE_WINDOW, T_("&Close"), std::tr1::bind(&HubFrame::close, this, true)); inTabMenu = true; Modified: dcplusplus/trunk/win32/MDIChildFrame.h =================================================================== --- dcplusplus/trunk/win32/MDIChildFrame.h 2008-01-21 21:00:31 UTC (rev 972) +++ dcplusplus/trunk/win32/MDIChildFrame.h 2008-01-22 22:47:59 UTC (rev 973) @@ -187,7 +187,7 @@ bool handleContextMenu(const SmartWin::ScreenCoordinate& pt) { SmartWin::WidgetMenu::ObjectType menu = SmartWin::WidgetCreator<SmartWin::WidgetMenu>::create(SmartWin::WidgetMenu::Seed(true)); - menu->appendItem(IDC_CLOSE_WINDOW, T_("Close"), std::tr1::bind(&ThisType::close, this, true)); + menu->appendItem(IDC_CLOSE_WINDOW, T_("&Close"), std::tr1::bind(&ThisType::close, this, true)); menu->trackPopupMenu(this, pt, TPM_LEFTALIGN | TPM_RIGHTBUTTON); Modified: dcplusplus/trunk/win32/MainWindow.cpp =================================================================== --- dcplusplus/trunk/win32/MainWindow.cpp 2008-01-21 21:00:31 UTC (rev 972) +++ dcplusplus/trunk/win32/MainWindow.cpp 2008-01-22 22:47:59 UTC (rev 973) @@ -267,31 +267,31 @@ } int image = 0; - toolbar->appendItem(IDC_PUBLIC_HUBS, image++, TSTRING(PUBLIC_HUBS)); - toolbar->appendItem(IDC_RECONNECT, image++, TSTRING(MENU_RECONNECT)); - toolbar->appendItem(IDC_FOLLOW, image++, TSTRING(MENU_FOLLOW_REDIRECT)); + toolbar->appendItem(IDC_PUBLIC_HUBS, image++, T_("Public Hubs")); + toolbar->appendItem(IDC_RECONNECT, image++, T_("Reconnect")); + toolbar->appendItem(IDC_FOLLOW, image++, T_("Follow last redirect")); toolbar->appendSeparator(); - toolbar->appendItem(IDC_FAVORITE_HUBS, image++, TSTRING(FAVORITE_HUBS)); - toolbar->appendItem(IDC_FAVUSERS, image++, TSTRING(FAVORITE_USERS)); + toolbar->appendItem(IDC_FAVORITE_HUBS, image++, T_("Favorite Hubs")); + toolbar->appendItem(IDC_FAVUSERS, image++, T_("Favorite Users")); toolbar->appendSeparator(); - toolbar->appendItem(IDC_QUEUE, image++, TSTRING(DOWNLOAD_QUEUE)); - toolbar->appendItem(IDC_FINISHED_DL, image++, TSTRING(FINISHED_DOWNLOADS)); - toolbar->appendItem(IDC_WAITING_USERS, image++, TSTRING(WAITING_USERS)); - toolbar->appendItem(IDC_FINISHED_UL, image++, TSTRING(FINISHED_UPLOADS)); + toolbar->appendItem(IDC_QUEUE, image++, T_("Download Queue")); + toolbar->appendItem(IDC_FINISHED_DL, image++, T_("Finished Downloads")); + toolbar->appendItem(IDC_WAITING_USERS, image++, T_("Waiting Users")); + toolbar->appendItem(IDC_FINISHED_UL, image++, T_("Finished Uploads")); toolbar->appendSeparator(); - toolbar->appendItem(IDC_SEARCH, image++, TSTRING(SEARCH)); - toolbar->appendItem(IDC_ADL_SEARCH, image++, TSTRING(ADL_SEARCH)); - toolbar->appendItem(IDC_SEARCH_SPY, image++, TSTRING(SEARCH_SPY)); + toolbar->appendItem(IDC_SEARCH, image++, T_("Search")); + toolbar->appendItem(IDC_ADL_SEARCH, image++, T_("ADL Search")); + toolbar->appendItem(IDC_SEARCH_SPY, image++, T_("Search Spy")); toolbar->appendSeparator(); - toolbar->appendItem(IDC_OPEN_FILE_LIST, image++, TSTRING(MENU_OPEN_FILE_LIST)); - toolbar->appendItem(IDC_SETTINGS, image++, TSTRING(SETTINGS)); - toolbar->appendItem(IDC_NOTEPAD, image++, TSTRING(NOTEPAD)); + toolbar->appendItem(IDC_OPEN_FILE_LIST, image++, T_("Open file list...")); + toolbar->appendItem(IDC_SETTINGS, image++, T_("Settings")); + toolbar->appendItem(IDC_NOTEPAD, image++, T_("Notepad")); } void MainWindow::initStatusBar() { dcdebug("initStatusBar\n"); initStatus(true); - statusSizes[STATUS_AWAY] = status->getTextSize(TSTRING(AWAY)).x + 12; + statusSizes[STATUS_AWAY] = status->getTextSize(T_("AWAY")).x + 12; ///@todo set to checkbox width + resizedrag width really statusSizes[STATUS_DUMMY] = 32; } @@ -547,15 +547,13 @@ SettingsManager::getInstance()->set(SettingsManager::TOTAL_UPLOAD, SETTING(TOTAL_UPLOAD) + static_cast<int64_t>(updiff)); SettingsManager::getInstance()->set(SettingsManager::TOTAL_DOWNLOAD, SETTING(TOTAL_DOWNLOAD) + static_cast<int64_t>(downdiff)); - setStatus(STATUS_AWAY, Util::getAway() ? TSTRING(AWAY) : _T("")); + setStatus(STATUS_AWAY, Util::getAway() ? T_("AWAY") : _T("")); setStatus(STATUS_COUNTS, Text::toT(Client::getCounts())); - setStatus(STATUS_SLOTS, Text::toT(STRING(SLOTS) + ": " + Util::toString(UploadManager::getInstance()->getFreeSlots()) + '/' + Util::toString(SETTING(SLOTS)))); - setStatus(STATUS_DOWN_TOTAL, Text::toT("D: " + Util::formatBytes(down))); - setStatus(STATUS_UP_TOTAL, Text::toT("U: " + Util::formatBytes(up))); - setStatus(STATUS_DOWN_DIFF, Text::toT("D: " + Util::formatBytes((downdiff*1000)/tdiff) + "/s (" - + Util::toString(DownloadManager::getInstance()->getDownloadCount()) + ")")); - setStatus(STATUS_UP_DIFF, Text::toT("U: " + Util::formatBytes((updiff*1000)/tdiff) + "/s (" - + Util::toString(UploadManager::getInstance()->getUploadCount()) + ")")); + setStatus(STATUS_SLOTS, str(TF_("Slots: %1%/%2%") % UploadManager::getInstance()->getFreeSlots() % (SETTING(SLOTS)))); + setStatus(STATUS_DOWN_TOTAL, str(TF_("D: %1%") % Text::toT(Util::formatBytes(down)))); + setStatus(STATUS_UP_TOTAL, str(TF_("U: %1%") % Text::toT(Util::formatBytes(up)))); + setStatus(STATUS_DOWN_DIFF, str(TF_("D: %1%/s (%2%)") % Text::toT(Util::formatBytes((downdiff*1000)/tdiff)) % DownloadManager::getInstance()->getDownloadCount())); + setStatus(STATUS_UP_DIFF, str(TF_("U: %1%/s (%2%)") % Text::toT(Util::formatBytes((updiff*1000)/tdiff)) % UploadManager::getInstance()->getUploadCount())); } MainWindow::~MainWindow() { @@ -758,10 +756,9 @@ DirectoryListing dl(u); try { dl.loadFile(*i); - const size_t BUF_SIZE = STRING(MATCHED_FILES).size() + 16; - AutoArray<char> tmp(BUF_SIZE); - snprintf(tmp, BUF_SIZE, CSTRING(MATCHED_FILES), QueueManager::getInstance()->matchListing(dl)); - LogManager::getInstance()->message(Util::toString(ClientManager::getInstance()->getNicks(u->getCID())) + ": " + string(tmp)); + LogManager::getInstance()->message(str(FN_("%1%: matched %2% file", "%1%: matched %2% files", QueueManager::getInstance()->matchListing(dl)) + % Util::toString(ClientManager::getInstance()->getNicks(u->getCID())) + % QueueManager::getInstance()->matchListing(dl))); } catch(const Exception&) { } @@ -849,8 +846,7 @@ const string& msg = xml.getChildData(); createMessageBox().show(Text::toT(msg), Text::toT(title)); } else { - string msg = xml.getChildData() + "\r\n" + STRING(OPEN_DOWNLOAD_PAGE); - if(createMessageBox().show(Text::toT(msg), Text::toT(title), WidgetMessageBox::BOX_YESNO, WidgetMessageBox::BOX_ICONQUESTION) == IDYES) { + if(createMessageBox().show(str(TF_("%1%\nOpen download page?") % Text::toT(xml.getChildData())), Text::toT(title), WidgetMessageBox::BOX_YESNO, WidgetMessageBox::BOX_ICONQUESTION) == IDYES) { WinUtil::openLink(Text::toT(url)); } } @@ -1000,7 +996,7 @@ SmartWin::ScreenCoordinate pt; WidgetMenuPtr trayMenu = createMenu(true); trayMenu->appendItem(IDC_TRAY_SHOW, T_("Show"), std::tr1::bind(&MainWindow::handleRestore, this)); - trayMenu->appendItem(IDC_TRAY_QUIT, TSTRING(MENU_EXIT), std::tr1::bind(&MainWindow::close, this, true)); + trayMenu->appendItem(IDC_TRAY_QUIT, T_("Exit"), std::tr1::bind(&MainWindow::close, this, true)); trayMenu->appendItem(IDC_OPEN_DOWNLOADS, T_("Open downloads directory")); trayMenu->appendItem(IDC_SETTINGS, T_("Settings...")); trayMenu->setDefaultItem(0,TRUE); Modified: dcplusplus/trunk/win32/MainWindow.h =================================================================== --- dcplusplus/trunk/win32/MainWindow.h 2008-01-21 21:00:31 UTC (rev 972) +++ dcplusplus/trunk/win32/MainWindow.h 2008-01-22 22:47:59 UTC (rev 973) @@ -24,6 +24,7 @@ #include <dcpp/QueueManagerListener.h> #include <dcpp/LogManager.h> #include <dcpp/HttpConnection.h> +#include <dcpp/User.h> #include "WidgetFactory.h" #include "AspectStatus.h" Modified: dcplusplus/trunk/win32/PrivateFrame.cpp =================================================================== --- dcplusplus/trunk/win32/PrivateFrame.cpp 2008-01-21 21:00:31 UTC (rev 972) +++ dcplusplus/trunk/win32/PrivateFrame.cpp 2008-01-22 22:47:59 UTC (rev 973) @@ -362,15 +362,15 @@ bool PrivateFrame::handleTabContextMenu(const SmartWin::ScreenCoordinate& pt) { WidgetMenuPtr menu = createMenu(true); - menu->appendItem(IDC_GETLIST, T_("Get file list"), std::tr1::bind(&PrivateFrame::handleGetList, this)); - menu->appendItem(IDC_MATCH_QUEUE, T_("Match queue"), std::tr1::bind(&PrivateFrame::handleMatchQueue, this)); - menu->appendItem(IDC_GRANTSLOT, T_("Grant extra slot"), std::tr1::bind(&UploadManager::reserveSlot, UploadManager::getInstance(), replyTo)); + menu->appendItem(IDC_GETLIST, T_("&Get file list"), std::tr1::bind(&PrivateFrame::handleGetList, this)); + menu->appendItem(IDC_MATCH_QUEUE, T_("&Match queue"), std::tr1::bind(&PrivateFrame::handleMatchQueue, this)); + menu->appendItem(IDC_GRANTSLOT, T_("Grant &extra slot"), std::tr1::bind(&UploadManager::reserveSlot, UploadManager::getInstance(), replyTo)); if(!FavoriteManager::getInstance()->isFavoriteUser(replyTo)) - menu->appendItem(IDC_ADD_TO_FAVORITES, T_("Add To Favorites"), std::tr1::bind(&FavoriteManager::addFavoriteUser, FavoriteManager::getInstance(), replyTo)); + menu->appendItem(IDC_ADD_TO_FAVORITES, T_("Add To &Favorites"), std::tr1::bind(&FavoriteManager::addFavoriteUser, FavoriteManager::getInstance(), replyTo)); prepareMenu(menu, UserCommand::CONTEXT_CHAT, ClientManager::getInstance()->getHubs(replyTo->getCID())); menu->appendSeparatorItem(); - menu->appendItem(IDC_CLOSE_WINDOW, T_("Close"), std::tr1::bind(&PrivateFrame::close, this, true)); + menu->appendItem(IDC_CLOSE_WINDOW, T_("&Close"), std::tr1::bind(&PrivateFrame::close, this, true)); menu->trackPopupMenu(this, pt, TPM_LEFTALIGN | TPM_RIGHTBUTTON); return TRUE; Modified: dcplusplus/trunk/win32/PublicHubsFrame.cpp =================================================================== --- dcplusplus/trunk/win32/PublicHubsFrame.cpp 2008-01-21 21:00:31 UTC (rev 972) +++ dcplusplus/trunk/win32/PublicHubsFrame.cpp 2008-01-22 22:47:59 UTC (rev 973) @@ -444,9 +444,9 @@ } WidgetMenuPtr menu = createMenu(true); - menu->appendItem(IDC_CONNECT, TSTRING(CONNECT), std::tr1::bind(&PublicHubsFrame::handleConnect, this)); - menu->appendItem(IDC_ADD, T_("Add To Favorites"), std::tr1::bind(&PublicHubsFrame::handleAdd, this)); - menu->appendItem(IDC_COPY_HUB, T_("Copy address to clipboard"), std::tr1::bind(&PublicHubsFrame::handleCopyHub, this)); + menu->appendItem(IDC_CONNECT, T_("&Connect"), std::tr1::bind(&PublicHubsFrame::handleConnect, this)); + menu->appendItem(IDC_ADD, T_("Add To &Favorites"), std::tr1::bind(&PublicHubsFrame::handleAdd, this)); + menu->appendItem(IDC_COPY_HUB, T_("Copy &address to clipboard"), std::tr1::bind(&PublicHubsFrame::handleCopyHub, this)); menu->setDefaultItem(IDC_CONNECT); menu->trackPopupMenu(this, pt, TPM_LEFTALIGN | TPM_RIGHTBUTTON); return true; Modified: dcplusplus/trunk/win32/QueueFrame.cpp =================================================================== --- dcplusplus/trunk/win32/QueueFrame.cpp 2008-01-21 21:00:31 UTC (rev 972) +++ dcplusplus/trunk/win32/QueueFrame.cpp 2008-01-22 22:47:59 UTC (rev 973) @@ -957,7 +957,7 @@ WidgetMenuPtr menu = createMenu(true); WinUtil::addHashItems(menu, qii->getTTH(), Text::toT(Util::getFileName(qii->getTarget()))); - menu->appendItem(IDC_MOVE, T_("Move/Rename"), std::tr1::bind(&QueueFrame::handleMove, this)); + menu->appendItem(IDC_MOVE, T_("&Move/Rename"), std::tr1::bind(&QueueFrame::handleMove, this)); addPriorityMenu(menu); addBrowseMenu(menu, qii); addPMMenu(menu, qii); @@ -965,7 +965,7 @@ addReaddMenu(menu, qii); addRemoveMenu(menu, qii); addRemoveAllMenu(menu, qii); - menu->appendItem(IDC_REMOVE, TSTRING(REMOVE), std::tr1::bind(&QueueFrame::handleRemove, this)); + menu->appendItem(IDC_REMOVE, T_("&Remove"), std::tr1::bind(&QueueFrame::handleRemove, this)); return menu; } @@ -975,9 +975,9 @@ addPriorityMenu(menu); - menu->appendItem(IDC_MOVE, T_("Move/Rename"), std::tr1::bind(&QueueFrame::handleMove, this)); + menu->appendItem(IDC_MOVE, T_("&Move/Rename"), std::tr1::bind(&QueueFrame::handleMove, this)); menu->appendSeparatorItem(); - menu->appendItem(IDC_REMOVE, TSTRING(REMOVE), std::tr1::bind(&QueueFrame::handleRemove, this)); + menu->appendItem(IDC_REMOVE, T_("&Remove"), std::tr1::bind(&QueueFrame::handleRemove, this)); return menu; } @@ -985,9 +985,9 @@ WidgetMenuPtr menu = createMenu(true); addPriorityMenu(menu); - menu->appendItem(IDC_MOVE, T_("Move/Rename"), std::tr1::bind(&QueueFrame::handleMove, this)); + menu->appendItem(IDC_MOVE, T_("&Move/Rename"), std::tr1::bind(&QueueFrame::handleMove, this)); menu->appendSeparatorItem(); - menu->appendItem(IDC_REMOVE, TSTRING(REMOVE), std::tr1::bind(&QueueFrame::handleRemove, this)); + menu->appendItem(IDC_REMOVE, T_("&Remove"), std::tr1::bind(&QueueFrame::handleRemove, this)); return menu; } @@ -1003,7 +1003,7 @@ void QueueFrame::addBrowseMenu(const WidgetMenuPtr& parent, QueueItemInfo* qii) { unsigned int pos = parent->getCount(); - WidgetMenuPtr menu = parent->appendPopup(T_("Get file list")); + WidgetMenuPtr menu = parent->appendPopup(T_("&Get file list")); if(addUsers(menu, IDC_BROWSELIST, &QueueFrame::handleBrowseList, qii, false) == 0) { ::EnableMenuItem(menu->handle(), pos, MF_BYPOSITION | MF_GRAYED); } @@ -1011,7 +1011,7 @@ void QueueFrame::addPMMenu(const WidgetMenuPtr& parent, QueueItemInfo* qii) { unsigned int pos = parent->getCount(); - WidgetMenuPtr menu = parent->appendPopup(T_("Send private message")); + WidgetMenuPtr menu = parent->appendPopup(T_("&Send private message")); if(addUsers(menu, IDC_PM, &QueueFrame::handlePM, qii, false) == 0) { ::EnableMenuItem(menu->handle(), pos, MF_BYPOSITION | MF_GRAYED); } Modified: dcplusplus/trunk/win32/SearchFrame.cpp =================================================================== --- dcplusplus/trunk/win32/SearchFrame.cpp 2008-01-21 21:00:31 UTC (rev 972) +++ dcplusplus/trunk/win32/SearchFrame.cpp 2008-01-22 22:47:59 UTC (rev 973) @@ -21,7 +21,6 @@ #include "SearchFrame.h" -#include <dcpp/ResourceManager.h> #include <dcpp/FavoriteManager.h> #include <dcpp/QueueManager.h> #include <dcpp/ClientManager.h> @@ -740,11 +739,11 @@ StringPairList favoriteDirs = FavoriteManager::getInstance()->getFavoriteDirs(); SearchInfo::CheckTTH checkTTH = results->forEachSelectedT(SearchInfo::CheckTTH()); - menu->appendItem(IDC_DOWNLOAD, T_("Download"), std::tr1::bind(&SearchFrame::handleDownload, this)); + menu->appendItem(IDC_DOWNLOAD, T_("&Download"), std::tr1::bind(&SearchFrame::handleDownload, this)); addTargetMenu(menu, favoriteDirs, checkTTH); menu->appendItem(IDC_DOWNLOADDIR, T_("Download whole directory"), std::tr1::bind(&SearchFrame::handleDownloadDir, this)); addTargetDirMenu(menu, favoriteDirs); - menu->appendItem(IDC_VIEW_AS_TEXT, T_("View as text"), std::tr1::bind(&SearchFrame::handleViewAsText, this)); + menu->appendItem(IDC_VIEW_AS_TEXT, T_("&View as text"), std::tr1::bind(&SearchFrame::handleViewAsText, this)); menu->appendSeparatorItem(); if(checkTTH.hasTTH) { SearchInfo* si = results->getSelectedData(); @@ -753,7 +752,7 @@ menu->appendSeparatorItem(); appendUserItems(getParent(), menu); menu->appendSeparatorItem(); - menu->appendItem(IDC_REMOVE, TSTRING(REMOVE), std::tr1::bind(&SearchFrame::handleRemove, this)); + menu->appendItem(IDC_REMOVE, T_("&Remove"), std::tr1::bind(&SearchFrame::handleRemove, this)); prepareMenu(menu, UserCommand::CONTEXT_SEARCH, checkTTH.hubs); menu->setDefaultItem(IDC_DOWNLOAD); @@ -772,7 +771,7 @@ } n = 0; - menu->appendItem(IDC_DOWNLOADTO, T_("Browse..."), std::tr1::bind(&SearchFrame::handleDownloadTo, this)); + menu->appendItem(IDC_DOWNLOADTO, T_("&Browse..."), std::tr1::bind(&SearchFrame::handleDownloadTo, this)); if(WinUtil::lastDirs.size() > 0) { menu->appendSeparatorItem(); for(TStringIter i = WinUtil::lastDirs.begin(); i != WinUtil::lastDirs.end(); ++i) @@ -802,7 +801,7 @@ } n = 0; - menu->appendItem(IDC_DOWNLOADDIRTO, T_("Browse..."), std::tr1::bind(&SearchFrame::handleDownloadDirTo, this)); + menu->appendItem(IDC_DOWNLOADDIRTO, T_("&Browse..."), std::tr1::bind(&SearchFrame::handleDownloadDirTo, this)); if(WinUtil::lastDirs.size() > 0) { menu->appendSeparatorItem(); for(TStringIter i = WinUtil::lastDirs.begin(); i != WinUtil::lastDirs.end(); ++i) Modified: dcplusplus/trunk/win32/SpyFrame.cpp =================================================================== --- dcplusplus/trunk/win32/SpyFrame.cpp 2008-01-21 21:00:31 UTC (rev 972) +++ dcplusplus/trunk/win32/SpyFrame.cpp 2008-01-22 22:47:59 UTC (rev 973) @@ -28,6 +28,8 @@ int SpyFrame::columnSizes[] = { 305, 70, 85 }; int SpyFrame::columnIndexes[] = { COLUMN_STRING, COLUMN_COUNT, COLUMN_TIME }; +const size_t SpyFrame::AVG_TIME; // TODO gcc needs this - why? + static const char* columnNames[] = { N_("Search String"), N_("Count"), @@ -104,12 +106,12 @@ bool SpyFrame::eachSecond() { size_t tot = std::accumulate(perSecond, perSecond + AVG_TIME, 0u); - size_t t = std::max(1u, std::min(cur, (size_t)AVG_TIME)); + size_t t = std::max(1u, std::min(cur, AVG_TIME)); float x = static_cast<float>(tot)/t; cur++; - perSecond[cur] = 0; + perSecond[cur % AVG_TIME] = 0; setStatus(STATUS_AVG_PER_SECOND, str(TF_("Average/s: %1%") % x)); return true; } @@ -186,7 +188,7 @@ searchString = searches->getText(searches->getSelectedIndex(), COLUMN_STRING); WidgetMenuPtr contextMenu = createMenu(true); - contextMenu->appendItem(IDC_SEARCH, T_("Search"), std::tr1::bind(&SpyFrame::handleSearch, this)); + contextMenu->appendItem(IDC_SEARCH, T_("&Search"), std::tr1::bind(&SpyFrame::handleSearch, this)); contextMenu->trackPopupMenu(this, pt, TPM_LEFTALIGN | TPM_RIGHTBUTTON); return true; Modified: dcplusplus/trunk/win32/SpyFrame.h =================================================================== --- dcplusplus/trunk/win32/SpyFrame.h 2008-01-21 21:00:31 UTC (rev 972) +++ dcplusplus/trunk/win32/SpyFrame.h 2008-01-22 22:47:59 UTC (rev 973) @@ -50,7 +50,7 @@ void postClosing(); private: - enum { AVG_TIME = 60 }; + static const size_t AVG_TIME = 60; enum { SPEAK_SEARCH Modified: dcplusplus/trunk/win32/StaticFrame.h =================================================================== --- dcplusplus/trunk/win32/StaticFrame.h 2008-01-21 21:00:31 UTC (rev 972) +++ dcplusplus/trunk/win32/StaticFrame.h 2008-01-22 22:47:59 UTC (rev 973) @@ -21,7 +21,6 @@ #include "MDIChildFrame.h" -#include <dcpp/ResourceManager.h> #include <dcpp/Text.h> template<class T> Modified: dcplusplus/trunk/win32/TransferView.cpp =================================================================== --- dcplusplus/trunk/win32/TransferView.cpp 2008-01-21 21:00:31 UTC (rev 972) +++ dcplusplus/trunk/win32/TransferView.cpp 2008-01-22 22:47:59 UTC (rev 973) @@ -109,10 +109,10 @@ appendUserItems(mdi, menu); menu->appendSeparatorItem(); - menu->appendItem(IDC_FORCE, T_("Force attempt"), std::tr1::bind(&TransferView::handleForce, this)); - menu->appendItem(IDC_COPY_NICK, T_("Copy nick to clipboard"), std::tr1::bind(&TransferView::handleCopyNick, this)); + menu->appendItem(IDC_FORCE, T_("&Force attempt"), std::tr1::bind(&TransferView::handleForce, this)); + menu->appendItem(IDC_COPY_NICK, T_("Copy &nick to clipboard"), std::tr1::bind(&TransferView::handleCopyNick, this)); menu->appendSeparatorItem(); - menu->appendItem(IDC_REMOVE, T_("Disconnect"), std::tr1::bind(&TransferView::handleDisconnect, this)); + menu->appendItem(IDC_REMOVE, T_("&Disconnect"), std::tr1::bind(&TransferView::handleDisconnect, this)); menu->setDefaultItem(IDC_PRIVATEMESSAGE); return menu; } Modified: dcplusplus/trunk/win32/UserInfoBase.h =================================================================== --- dcplusplus/trunk/win32/UserInfoBase.h 2008-01-21 21:00:31 UTC (rev 972) +++ dcplusplus/trunk/win32/UserInfoBase.h 2008-01-22 22:47:59 UTC (rev 973) @@ -93,14 +93,14 @@ void appendUserItems(SmartWin::WidgetTabView* parent, MenuType menu) { T* This = static_cast<T*>(this); UserInfoBase::UserTraits traits = This->getUserList()->forEachSelectedT(UserInfoBase::UserTraits()); - menu->appendItem(IDC_GETLIST, T_("Get file list"), std::tr1::bind(&T::handleGetList, This)); + menu->appendItem(IDC_GETLIST, T_("&Get file list"), std::tr1::bind(&T::handleGetList, This)); if(traits.adcOnly) - menu->appendItem(IDC_BROWSELIST, T_("Browse file list"), std::tr1::bind(&T::handleBrowseList, This)); - menu->appendItem(IDC_MATCH_QUEUE, T_("Match queue"), std::tr1::bind(&T::handleMatchQueue, This)); - menu->appendItem(IDC_PRIVATEMESSAGE, T_("Send private message"), std::tr1::bind(&T::handlePrivateMessage, This, parent)); + menu->appendItem(IDC_BROWSELIST, T_("&Browse file list"), std::tr1::bind(&T::handleBrowseList, This)); + menu->appendItem(IDC_MATCH_QUEUE, T_("&Match queue"), std::tr1::bind(&T::handleMatchQueue, This)); + menu->appendItem(IDC_PRIVATEMESSAGE, T_("&Send private message"), std::tr1::bind(&T::handlePrivateMessage, This, parent)); if(!traits.favOnly) - menu->appendItem(IDC_ADD_TO_FAVORITES, T_("Add To Favorites"), std::tr1::bind(&T::handleAddFavorite, This)); - menu->appendItem(IDC_GRANTSLOT, T_("Grant extra slot"), std::tr1::bind(&T::handleGrantSlot, This)); + menu->appendItem(IDC_ADD_TO_FAVORITES, T_("Add To &Favorites"), std::tr1::bind(&T::handleAddFavorite, This)); + menu->appendItem(IDC_GRANTSLOT, T_("Grant &extra slot"), std::tr1::bind(&T::handleGrantSlot, This)); if(!traits.nonFavOnly) menu->appendItem(IDC_CONNECT, T_("Connect to hub"), std::tr1::bind(&T::handleConnectFav, This, parent)); menu->appendSeparatorItem(); Modified: dcplusplus/trunk/win32/WaitingUsersFrame.cpp =================================================================== --- dcplusplus/trunk/win32/WaitingUsersFrame.cpp 2008-01-21 21:00:31 UTC (rev 972) +++ dcplusplus/trunk/win32/WaitingUsersFrame.cpp 2008-01-22 22:47:59 UTC (rev 973) @@ -80,12 +80,12 @@ pt = queued->getContextMenuPos(); } WidgetMenuPtr menu = createMenu(true); - menu->appendItem(IDC_GETLIST, CTSTRING(GET_FILE_LIST), std::tr1::bind(&WaitingUsersFrame::onGetList, this)); - menu->appendItem(IDC_COPY_FILENAME, CTSTRING(COPY_FILENAME), std::tr1::bind(&WaitingUsersFrame::onCopyFilename, this)); - menu->appendItem(IDC_REMOVE, CTSTRING(REMOVE), std::tr1::bind(&WaitingUsersFrame::onRemove, this)); - menu->appendItem(IDC_GRANTSLOT, CTSTRING(GRANT_EXTRA_SLOT), std::tr1::bind(&WaitingUsersFrame::onGrantSlot, this)); - menu->appendItem(IDC_ADD_TO_FAVORITES, CTSTRING(ADD_TO_FAVORITES), std::tr1::bind(&WaitingUsersFrame::onAddToFavorites, this)); - menu->appendItem(IDC_PRIVATEMESSAGE, CTSTRING(SEND_PRIVATE_MESSAGE), std::tr1::bind(&WaitingUsersFrame::onPrivateMessage, this)); + menu->appendItem(IDC_GETLIST, T_("&Get file list"), std::tr1::bind(&WaitingUsersFrame::onGetList, this)); + menu->appendItem(IDC_COPY_FILENAME, T_("Copy Filename"), std::tr1::bind(&WaitingUsersFrame::onCopyFilename, this)); + menu->appendItem(IDC_REMOVE, T_("&Remove"), std::tr1::bind(&WaitingUsersFrame::onRemove, this)); + menu->appendItem(IDC_GRANTSLOT, T_("Grant &extra slot"), std::tr1::bind(&WaitingUsersFrame::onGrantSlot, this)); + menu->appendItem(IDC_ADD_TO_FAVORITES, T_("Add To &Favorites"), std::tr1::bind(&WaitingUsersFrame::onAddToFavorites, this)); + menu->appendItem(IDC_PRIVATEMESSAGE, T_("&Send private message"), std::tr1::bind(&WaitingUsersFrame::onPrivateMessage, this)); menu->trackPopupMenu(this, pt, TPM_LEFTALIGN | TPM_RIGHTBUTTON); return true; } Modified: dcplusplus/trunk/win32/WinUtil.cpp =================================================================== --- dcplusplus/trunk/win32/WinUtil.cpp 2008-01-21 21:00:31 UTC (rev 972) +++ dcplusplus/trunk/win32/WinUtil.cpp 2008-01-22 22:47:59 UTC (rev 973) @@ -27,7 +27,6 @@ #include <dcpp/ShareManager.h> #include <dcpp/ClientManager.h> #include <dcpp/HashManager.h> -#include <dcpp/ResourceManager.h> #include <dcpp/LogManager.h> #include <dcpp/QueueManager.h> #include <dcpp/StringTokenizer.h> @@ -979,7 +978,7 @@ // as = acceptable substitute // dn = display name if (Util::strnicmp(aUrl.c_str(), _T("magnet:?"), 8) == 0) { - LogManager::getInstance()->message(STRING(MAGNET_DLG_TITLE) + ": " + Text::fromT(aUrl)); + LogManager::getInstance()->message(str(F_("MAGNET Link detected: %1%") % Text::fromT(aUrl))); StringTokenizer<tstring> mag(aUrl.substr(8), _T('&')); typedef map<tstring, tstring> MagMap; MagMap hashes; Modified: dcplusplus/trunk/win32/stdafx.h =================================================================== --- dcplusplus/trunk/win32/stdafx.h 2008-01-21 21:00:31 UTC (rev 972) +++ dcplusplus/trunk/win32/stdafx.h 2008-01-22 22:47:59 UTC (rev 973) @@ -51,6 +51,8 @@ #define N_(String) gettext_noop (String) #define T_(String) Text::toT(gettext(String)) #define CT_(String) T_(String).c_str() +#define F_(String) boost::format(gettext(String)) +#define FN_(String1,String2, N) boost::format(ngettext(String1, String2, N)) #ifdef UNICODE #define TF_(String) boost::wformat(Text::toT(gettext(String))) #define TFN_(String1,String2, N) boost::wformat(Text::toT(ngettext(String1, String2, N))) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <arn...@us...> - 2008-01-21 21:01:02
|
Revision: 972 http://dcplusplus.svn.sourceforge.net/dcplusplus/?rev=972&view=rev Author: arnetheduck Date: 2008-01-21 13:00:31 -0800 (Mon, 21 Jan 2008) Log Message: ----------- Translate titles Modified Paths: -------------- dcplusplus/trunk/win32/ADLSearchFrame.cpp dcplusplus/trunk/win32/ADLSearchFrame.h dcplusplus/trunk/win32/DownloadsFrame.cpp dcplusplus/trunk/win32/DownloadsFrame.h dcplusplus/trunk/win32/FavHubsFrame.cpp dcplusplus/trunk/win32/FavHubsFrame.h dcplusplus/trunk/win32/FinishedDLFrame.cpp dcplusplus/trunk/win32/FinishedDLFrame.h dcplusplus/trunk/win32/FinishedFrameBase.h dcplusplus/trunk/win32/FinishedULFrame.cpp dcplusplus/trunk/win32/FinishedULFrame.h dcplusplus/trunk/win32/NotepadFrame.cpp dcplusplus/trunk/win32/NotepadFrame.h dcplusplus/trunk/win32/PublicHubsFrame.cpp dcplusplus/trunk/win32/PublicHubsFrame.h dcplusplus/trunk/win32/QueueFrame.cpp dcplusplus/trunk/win32/QueueFrame.h dcplusplus/trunk/win32/SpyFrame.cpp dcplusplus/trunk/win32/SpyFrame.h dcplusplus/trunk/win32/StaticFrame.h dcplusplus/trunk/win32/StatsFrame.cpp dcplusplus/trunk/win32/StatsFrame.h dcplusplus/trunk/win32/SystemFrame.cpp dcplusplus/trunk/win32/SystemFrame.h dcplusplus/trunk/win32/UsersFrame.cpp dcplusplus/trunk/win32/UsersFrame.h dcplusplus/trunk/win32/WaitingUsersFrame.cpp dcplusplus/trunk/win32/WaitingUsersFrame.h Modified: dcplusplus/trunk/win32/ADLSearchFrame.cpp =================================================================== --- dcplusplus/trunk/win32/ADLSearchFrame.cpp 2008-01-21 19:13:08 UTC (rev 971) +++ dcplusplus/trunk/win32/ADLSearchFrame.cpp 2008-01-21 21:00:31 UTC (rev 972) @@ -37,7 +37,7 @@ }; ADLSearchFrame::ADLSearchFrame(SmartWin::WidgetTabView* mdiParent) : - BaseType(mdiParent), + BaseType(mdiParent, T_("Automatic Directory Listing Search"), IDR_ADLSEARCH), add(0), properties(0), up(0), Modified: dcplusplus/trunk/win32/ADLSearchFrame.h =================================================================== --- dcplusplus/trunk/win32/ADLSearchFrame.h 2008-01-21 19:13:08 UTC (rev 971) +++ dcplusplus/trunk/win32/ADLSearchFrame.h 2008-01-21 21:00:31 UTC (rev 972) @@ -29,9 +29,6 @@ STATUS_LAST }; - static const ResourceManager::Strings TITLE_RESOURCE = ResourceManager::ADL_SEARCH; - static const unsigned ICON_RESOURCE = IDR_ADLSEARCH; - protected: typedef StaticFrame<ADLSearchFrame> BaseType; friend class StaticFrame<ADLSearchFrame>; Modified: dcplusplus/trunk/win32/DownloadsFrame.cpp =================================================================== --- dcplusplus/trunk/win32/DownloadsFrame.cpp 2008-01-21 19:13:08 UTC (rev 971) +++ dcplusplus/trunk/win32/DownloadsFrame.cpp 2008-01-21 21:00:31 UTC (rev 972) @@ -42,7 +42,7 @@ }; DownloadsFrame::DownloadsFrame(SmartWin::WidgetTabView* mdiParent) : - BaseType(mdiParent, T_("Downloads")), + BaseType(mdiParent, T_("Downloads"), IDR_QUEUE), downloads(0), startup(true) { Modified: dcplusplus/trunk/win32/DownloadsFrame.h =================================================================== --- dcplusplus/trunk/win32/DownloadsFrame.h 2008-01-21 19:13:08 UTC (rev 971) +++ dcplusplus/trunk/win32/DownloadsFrame.h 2008-01-21 21:00:31 UTC (rev 972) @@ -37,8 +37,6 @@ STATUS_STATUS, STATUS_LAST }; - static const unsigned ICON_RESOURCE = IDR_QUEUE; - protected: typedef StaticFrame<DownloadsFrame> BaseType; friend class StaticFrame<DownloadsFrame>; Modified: dcplusplus/trunk/win32/FavHubsFrame.cpp =================================================================== --- dcplusplus/trunk/win32/FavHubsFrame.cpp 2008-01-21 19:13:08 UTC (rev 971) +++ dcplusplus/trunk/win32/FavHubsFrame.cpp 2008-01-21 21:00:31 UTC (rev 972) @@ -38,7 +38,7 @@ }; FavHubsFrame::FavHubsFrame(SmartWin::WidgetTabView* mdiParent) : - BaseType(mdiParent), + BaseType(mdiParent, T_("Favorite Hubs"), IDR_FAVORITES), hubs(0), connect(0), add(0), Modified: dcplusplus/trunk/win32/FavHubsFrame.h =================================================================== --- dcplusplus/trunk/win32/FavHubsFrame.h 2008-01-21 19:13:08 UTC (rev 971) +++ dcplusplus/trunk/win32/FavHubsFrame.h 2008-01-21 21:00:31 UTC (rev 972) @@ -34,9 +34,6 @@ STATUS_LAST }; - static const ResourceManager::Strings TITLE_RESOURCE = ResourceManager::FAVORITE_HUBS; - static const unsigned ICON_RESOURCE = IDR_FAVORITES; - protected: typedef StaticFrame<FavHubsFrame> BaseType; friend class StaticFrame<FavHubsFrame>; Modified: dcplusplus/trunk/win32/FinishedDLFrame.cpp =================================================================== --- dcplusplus/trunk/win32/FinishedDLFrame.cpp 2008-01-21 19:13:08 UTC (rev 971) +++ dcplusplus/trunk/win32/FinishedDLFrame.cpp 2008-01-21 21:00:31 UTC (rev 972) @@ -22,6 +22,6 @@ #include "FinishedDLFrame.h" FinishedDLFrame::FinishedDLFrame(SmartWin::WidgetTabView* mdiParent) : - BaseType(mdiParent) + BaseType(mdiParent, T_("Finished Downloads"), IDR_FINISHED_DL) { } Modified: dcplusplus/trunk/win32/FinishedDLFrame.h =================================================================== --- dcplusplus/trunk/win32/FinishedDLFrame.h 2008-01-21 19:13:08 UTC (rev 971) +++ dcplusplus/trunk/win32/FinishedDLFrame.h 2008-01-21 21:00:31 UTC (rev 972) @@ -29,9 +29,6 @@ virtual ~FinishedDLFrame() { } typedef FinishedFrameBase<FinishedDLFrame, false> BaseType; - - static const ResourceManager::Strings TITLE_RESOURCE = ResourceManager::FINISHED_DOWNLOADS; - static const unsigned ICON_RESOURCE = IDR_FINISHED_DL; }; #endif // !defined(DCPLUSPLUS_WIN32_FINISHED_DL_FRAME_H) Modified: dcplusplus/trunk/win32/FinishedFrameBase.h =================================================================== --- dcplusplus/trunk/win32/FinishedFrameBase.h 2008-01-21 19:13:08 UTC (rev 971) +++ dcplusplus/trunk/win32/FinishedFrameBase.h 2008-01-21 21:00:31 UTC (rev 972) @@ -47,8 +47,8 @@ friend class MDIChildFrame<T>; typedef FinishedFrameBase<T, in_UL> ThisType; - FinishedFrameBase(SmartWin::WidgetTabView* mdiParent) : - BaseType(mdiParent), + FinishedFrameBase(SmartWin::WidgetTabView* mdiParent, const tstring& title, int icon) : + BaseType(mdiParent, title, icon), items(0), totalBytes(0), totalTime(0) Modified: dcplusplus/trunk/win32/FinishedULFrame.cpp =================================================================== --- dcplusplus/trunk/win32/FinishedULFrame.cpp 2008-01-21 19:13:08 UTC (rev 971) +++ dcplusplus/trunk/win32/FinishedULFrame.cpp 2008-01-21 21:00:31 UTC (rev 972) @@ -22,6 +22,6 @@ #include "FinishedULFrame.h" FinishedULFrame::FinishedULFrame(SmartWin::WidgetTabView* mdiParent) : - BaseType(mdiParent) + BaseType(mdiParent, T_("Finished Uploads"), IDR_FINISHED_UL) { } Modified: dcplusplus/trunk/win32/FinishedULFrame.h =================================================================== --- dcplusplus/trunk/win32/FinishedULFrame.h 2008-01-21 19:13:08 UTC (rev 971) +++ dcplusplus/trunk/win32/FinishedULFrame.h 2008-01-21 21:00:31 UTC (rev 972) @@ -29,8 +29,6 @@ virtual ~FinishedULFrame() { } typedef FinishedFrameBase<FinishedULFrame, true> BaseType; - static const ResourceManager::Strings TITLE_RESOURCE = ResourceManager::FINISHED_UPLOADS; - static const unsigned ICON_RESOURCE = IDR_FINISHED_UL; }; #endif // !defined(DCPLUSPLUS_WIN32_FINISHED_UL_FRAME_H) Modified: dcplusplus/trunk/win32/NotepadFrame.cpp =================================================================== --- dcplusplus/trunk/win32/NotepadFrame.cpp 2008-01-21 19:13:08 UTC (rev 971) +++ dcplusplus/trunk/win32/NotepadFrame.cpp 2008-01-21 21:00:31 UTC (rev 972) @@ -24,7 +24,7 @@ #include <dcpp/Text.h> NotepadFrame::NotepadFrame(SmartWin::WidgetTabView* mdiParent) : - BaseType(mdiParent), + BaseType(mdiParent, T_("Notepad"), IDR_NOTEPAD), pad(0) { { Modified: dcplusplus/trunk/win32/NotepadFrame.h =================================================================== --- dcplusplus/trunk/win32/NotepadFrame.h 2008-01-21 19:13:08 UTC (rev 971) +++ dcplusplus/trunk/win32/NotepadFrame.h 2008-01-21 21:00:31 UTC (rev 972) @@ -29,8 +29,6 @@ STATUS_LAST }; - static const ResourceManager::Strings TITLE_RESOURCE = ResourceManager::NOTEPAD; - static const unsigned ICON_RESOURCE = IDR_NOTEPAD; protected: typedef StaticFrame<NotepadFrame> BaseType; friend class StaticFrame<NotepadFrame>; Modified: dcplusplus/trunk/win32/PublicHubsFrame.cpp =================================================================== --- dcplusplus/trunk/win32/PublicHubsFrame.cpp 2008-01-21 19:13:08 UTC (rev 971) +++ dcplusplus/trunk/win32/PublicHubsFrame.cpp 2008-01-21 21:00:31 UTC (rev 972) @@ -90,7 +90,7 @@ } PublicHubsFrame::PublicHubsFrame(SmartWin::WidgetTabView* mdiParent) : - BaseType(mdiParent), + BaseType(mdiParent, T_("Public Hubs"), IDR_PUBLICHUBS), hubs(0), configure(0), refresh(0), Modified: dcplusplus/trunk/win32/PublicHubsFrame.h =================================================================== --- dcplusplus/trunk/win32/PublicHubsFrame.h 2008-01-21 19:13:08 UTC (rev 971) +++ dcplusplus/trunk/win32/PublicHubsFrame.h 2008-01-21 21:00:31 UTC (rev 972) @@ -38,8 +38,6 @@ STATUS_USERS, STATUS_LAST }; - static const ResourceManager::Strings TITLE_RESOURCE = ResourceManager::PUBLIC_HUBS; - static const unsigned ICON_RESOURCE = IDR_PUBLICHUBS; private: typedef StaticFrame<PublicHubsFrame> BaseType; Modified: dcplusplus/trunk/win32/QueueFrame.cpp =================================================================== --- dcplusplus/trunk/win32/QueueFrame.cpp 2008-01-21 19:13:08 UTC (rev 971) +++ dcplusplus/trunk/win32/QueueFrame.cpp 2008-01-21 21:00:31 UTC (rev 972) @@ -54,7 +54,7 @@ } QueueFrame::QueueFrame(SmartWin::WidgetTabView* mdiParent) : - BaseType(mdiParent), + BaseType(mdiParent, T_("Download Queue"), IDR_QUEUE), dirs(0), files(0), paned(0), Modified: dcplusplus/trunk/win32/QueueFrame.h =================================================================== --- dcplusplus/trunk/win32/QueueFrame.h 2008-01-21 19:13:08 UTC (rev 971) +++ dcplusplus/trunk/win32/QueueFrame.h 2008-01-21 21:00:31 UTC (rev 972) @@ -46,9 +46,6 @@ STATUS_LAST }; - static const ResourceManager::Strings TITLE_RESOURCE = ResourceManager::DOWNLOAD_QUEUE; - static const unsigned ICON_RESOURCE = IDR_QUEUE; - private: typedef StaticFrame<QueueFrame> BaseType; friend class StaticFrame<QueueFrame>; Modified: dcplusplus/trunk/win32/SpyFrame.cpp =================================================================== --- dcplusplus/trunk/win32/SpyFrame.cpp 2008-01-21 19:13:08 UTC (rev 971) +++ dcplusplus/trunk/win32/SpyFrame.cpp 2008-01-21 21:00:31 UTC (rev 972) @@ -35,7 +35,7 @@ }; SpyFrame::SpyFrame(SmartWin::WidgetTabView* mdiParent) : - BaseType(mdiParent), + BaseType(mdiParent, T_("Search Spy"), IDR_SPY), searches(0), ignoreTTH(0), bIgnoreTTH(BOOLSETTING(SPY_FRAME_IGNORE_TTH_SEARCHES)), Modified: dcplusplus/trunk/win32/SpyFrame.h =================================================================== --- dcplusplus/trunk/win32/SpyFrame.h 2008-01-21 19:13:08 UTC (rev 971) +++ dcplusplus/trunk/win32/SpyFrame.h 2008-01-21 21:00:31 UTC (rev 972) @@ -36,9 +36,6 @@ STATUS_LAST }; - static const ResourceManager::Strings TITLE_RESOURCE = ResourceManager::SEARCH_SPY; - static const unsigned ICON_RESOURCE = IDR_SPY; - protected: typedef StaticFrame<SpyFrame> BaseType; friend class StaticFrame<SpyFrame>; Modified: dcplusplus/trunk/win32/StaticFrame.h =================================================================== --- dcplusplus/trunk/win32/StaticFrame.h 2008-01-21 19:13:08 UTC (rev 971) +++ dcplusplus/trunk/win32/StaticFrame.h 2008-01-21 21:00:31 UTC (rev 972) @@ -28,17 +28,11 @@ class StaticFrame : public MDIChildFrame<T> { public: - StaticFrame(SmartWin::WidgetTabView* mdiClient, const tstring& title) : - MDIChildFrame<T>(mdiClient, title, SmartWin::IconPtr(new SmartWin::Icon(T::ICON_RESOURCE))) + StaticFrame(SmartWin::WidgetTabView* mdiClient, const tstring& title, int icon) : + MDIChildFrame<T>(mdiClient, title, SmartWin::IconPtr(new SmartWin::Icon(icon))) { } - /** @deprecated */ - StaticFrame(SmartWin::WidgetTabView* mdiClient) : - MDIChildFrame<T>(mdiClient, TSTRING_I(T::TITLE_RESOURCE), SmartWin::IconPtr(new SmartWin::Icon(T::ICON_RESOURCE))) - { - } - virtual ~StaticFrame() { frame = 0; } Modified: dcplusplus/trunk/win32/StatsFrame.cpp =================================================================== --- dcplusplus/trunk/win32/StatsFrame.cpp 2008-01-21 19:13:08 UTC (rev 971) +++ dcplusplus/trunk/win32/StatsFrame.cpp 2008-01-21 21:00:31 UTC (rev 972) @@ -24,7 +24,7 @@ #include <dcpp/TimerManager.h> StatsFrame::StatsFrame(SmartWin::WidgetTabView* mdiParent) : - BaseType(mdiParent), + BaseType(mdiParent, T_("Network Statistics"), IDR_NET_STATS), pen(new SmartWin::Pen(WinUtil::textColor)), upPen(new SmartWin::Pen(SETTING(UPLOAD_BAR_COLOR))), downPen(new SmartWin::Pen(SETTING(DOWNLOAD_BAR_COLOR))), Modified: dcplusplus/trunk/win32/StatsFrame.h =================================================================== --- dcplusplus/trunk/win32/StatsFrame.h 2008-01-21 19:13:08 UTC (rev 971) +++ dcplusplus/trunk/win32/StatsFrame.h 2008-01-21 21:00:31 UTC (rev 972) @@ -29,8 +29,6 @@ STATUS_STATUS, STATUS_LAST }; - static const ResourceManager::Strings TITLE_RESOURCE = ResourceManager::NETWORK_STATISTICS; - static const unsigned ICON_RESOURCE = IDR_NET_STATS; private: typedef StaticFrame<StatsFrame> BaseType; Modified: dcplusplus/trunk/win32/SystemFrame.cpp =================================================================== --- dcplusplus/trunk/win32/SystemFrame.cpp 2008-01-21 19:13:08 UTC (rev 971) +++ dcplusplus/trunk/win32/SystemFrame.cpp 2008-01-21 21:00:31 UTC (rev 972) @@ -23,7 +23,7 @@ #include "WinUtil.h" SystemFrame::SystemFrame(SmartWin::WidgetTabView* mdiParent) : - BaseType(mdiParent), + BaseType(mdiParent, T_("System Log"), IDR_MAINFRAME), log(0) { { Modified: dcplusplus/trunk/win32/SystemFrame.h =================================================================== --- dcplusplus/trunk/win32/SystemFrame.h 2008-01-21 19:13:08 UTC (rev 971) +++ dcplusplus/trunk/win32/SystemFrame.h 2008-01-21 21:00:31 UTC (rev 972) @@ -32,8 +32,6 @@ STATUS_STATUS, STATUS_LAST }; - static const ResourceManager::Strings TITLE_RESOURCE = ResourceManager::SYSTEM_LOG; - static const unsigned ICON_RESOURCE = IDR_MAINFRAME; private: typedef StaticFrame<SystemFrame> BaseType; Modified: dcplusplus/trunk/win32/UsersFrame.cpp =================================================================== --- dcplusplus/trunk/win32/UsersFrame.cpp 2008-01-21 19:13:08 UTC (rev 971) +++ dcplusplus/trunk/win32/UsersFrame.cpp 2008-01-21 21:00:31 UTC (rev 972) @@ -35,7 +35,7 @@ }; UsersFrame::UsersFrame(SmartWin::WidgetTabView* mdiParent) : - BaseType(mdiParent), + BaseType(mdiParent, T_("Favorite Users"), IDR_USERS), users(0), startup(true) { Modified: dcplusplus/trunk/win32/UsersFrame.h =================================================================== --- dcplusplus/trunk/win32/UsersFrame.h 2008-01-21 19:13:08 UTC (rev 971) +++ dcplusplus/trunk/win32/UsersFrame.h 2008-01-21 21:00:31 UTC (rev 972) @@ -38,8 +38,6 @@ STATUS_STATUS, STATUS_LAST }; - static const ResourceManager::Strings TITLE_RESOURCE = ResourceManager::FAVORITE_USERS; - static const unsigned ICON_RESOURCE = IDR_USERS; protected: typedef StaticFrame<UsersFrame> BaseType; Modified: dcplusplus/trunk/win32/WaitingUsersFrame.cpp =================================================================== --- dcplusplus/trunk/win32/WaitingUsersFrame.cpp 2008-01-21 19:13:08 UTC (rev 971) +++ dcplusplus/trunk/win32/WaitingUsersFrame.cpp 2008-01-21 21:00:31 UTC (rev 972) @@ -30,7 +30,7 @@ // Constructor WaitingUsersFrame::WaitingUsersFrame(SmartWin::WidgetTabView* mdiParent) : - BaseType(mdiParent) + BaseType(mdiParent, T_("Waiting Users"), IDR_WAITING_USERS) { UploadManager::getInstance()->addListener(this); Modified: dcplusplus/trunk/win32/WaitingUsersFrame.h =================================================================== --- dcplusplus/trunk/win32/WaitingUsersFrame.h 2008-01-21 19:13:08 UTC (rev 971) +++ dcplusplus/trunk/win32/WaitingUsersFrame.h 2008-01-21 21:00:31 UTC (rev 972) @@ -35,9 +35,6 @@ STATUS_STATUS, STATUS_LAST }; - static const ResourceManager::Strings TITLE_RESOURCE = ResourceManager::WAITING_USERS; - static const unsigned ICON_RESOURCE = IDR_WAITING_USERS; - protected: typedef StaticFrame<WaitingUsersFrame> BaseType; friend class StaticFrame<WaitingUsersFrame>; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <arn...@us...> - 2008-01-21 19:13:14
|
Revision: 971 http://dcplusplus.svn.sourceforge.net/dcplusplus/?rev=971&view=rev Author: arnetheduck Date: 2008-01-21 11:13:08 -0800 (Mon, 21 Jan 2008) Log Message: ----------- Translations, require gettext 0.17 again... Modified Paths: -------------- dcplusplus/trunk/Compile.txt dcplusplus/trunk/SConstruct dcplusplus/trunk/win32/AboutDlg.cpp dcplusplus/trunk/win32/Advanced3Page.cpp dcplusplus/trunk/win32/AdvancedPage.cpp dcplusplus/trunk/win32/Appearance2Page.cpp dcplusplus/trunk/win32/AppearancePage.cpp dcplusplus/trunk/win32/CertificatesPage.cpp dcplusplus/trunk/win32/CommandDlg.cpp dcplusplus/trunk/win32/DirectoryListingFrame.cpp dcplusplus/trunk/win32/DownloadPage.cpp dcplusplus/trunk/win32/FavHubProperties.cpp dcplusplus/trunk/win32/FavoriteDirsPage.cpp dcplusplus/trunk/win32/GeneralPage.cpp dcplusplus/trunk/win32/HashProgressDlg.cpp dcplusplus/trunk/win32/LogPage.cpp dcplusplus/trunk/win32/MagnetDlg.cpp dcplusplus/trunk/win32/NetworkPage.cpp dcplusplus/trunk/win32/PublicHubsFrame.cpp dcplusplus/trunk/win32/QueuePage.cpp dcplusplus/trunk/win32/SystemFrame.h dcplusplus/trunk/win32/TabsPage.cpp dcplusplus/trunk/win32/TransferView.cpp dcplusplus/trunk/win32/UCPage.cpp dcplusplus/trunk/win32/UploadPage.cpp dcplusplus/trunk/win32/WindowsPage.cpp Modified: dcplusplus/trunk/Compile.txt =================================================================== --- dcplusplus/trunk/Compile.txt 2008-01-19 23:29:06 UTC (rev 970) +++ dcplusplus/trunk/Compile.txt 2008-01-21 19:13:08 UTC (rev 971) @@ -9,9 +9,6 @@ but if you want to experiment you can try the potentially slower sjlj. After installing gcc, you will need to go to the bin folder of your mingw installation and copy g++-dw2/sjlj.exe and gcc-dw2/sjlj.exe to g++.exe and gcc.exe respectively. - You will also need the gettext tools: gettext-0.16.1-1-bin.tar.bz2, gettext-0.16.1-1-dll.tar.bz2 and - libiconv-1.11-1-dll.tar.bz2. Extract and make sure they're in your PATH. - Note; Make sure gcc/g++ is in your path and before any cygwin installation. 1b) or install Microsoft Visual C++ 8.0 (I don't use it so there might be some compile problems) @@ -29,7 +26,15 @@ include and library files to the respective directories in the htmlhelp folder. Make sure hhc.exe is in your PATH. -4) Open a command prompt and type "scons" followed by some options: +4) Install gettext (http://www.gnu.org/software/gettext/). The easiest way to do this is to get the + precompiled binaries from http://www.gimp.org/~tml/gimp/win32/downloads.html, you'll need + gettext-runtime and gettext-tools, at least version 0.17. These links should work: + http://ftp.gnome.org/pub/gnome/binaries/win32/dependencies/gettext-runtime-0.17.zip + http://ftp.gnome.org/pub/gnome/binaries/win32/dependencies/gettext-tools-0.17.zip + + Make sure gettext is in your PATH. + +5) Open a command prompt and type "scons" followed by some options: "tools=mingw" - Use mingw for building (default) "tools=default" - Use msvc for building (yes, the option value is strange) "mode=debug" - Compile a debug build (default) Modified: dcplusplus/trunk/SConstruct =================================================================== --- dcplusplus/trunk/SConstruct 2008-01-19 23:29:06 UTC (rev 970) +++ dcplusplus/trunk/SConstruct 2008-01-21 19:13:08 UTC (rev 971) @@ -156,7 +156,7 @@ mo_bld = Builder (action = Action([mo_args], 'Compiling message catalog $TARGET from $SOURCES')) env.Append(BUILDERS = {'MoBuild' : mo_bld}) -pot_args = ['xgettext', '--from-code=UTF-8', '--foreign-user',# '--package-name=$PACKAGE', +pot_args = ['xgettext', '--from-code=UTF-8', '--foreign-user', '--package-name=$PACKAGE', '--copyright-holder=Jacek Sieka', '--msgid-bugs-address=dcp...@li...', '--no-wrap', '--keyword=_', '--keyword=T_', '--keyword=TF_', '--keyword=TFN_:1,2', '--keyword=F_', '--keyword=gettext_noop', '--keyword=N_', '--boost', '-s', Modified: dcplusplus/trunk/win32/AboutDlg.cpp =================================================================== --- dcplusplus/trunk/win32/AboutDlg.cpp 2008-01-19 23:29:06 UTC (rev 970) +++ dcplusplus/trunk/win32/AboutDlg.cpp 2008-01-21 19:13:08 UTC (rev 971) @@ -21,7 +21,6 @@ #include "AboutDlg.h" #include <dcpp/SimpleXML.h> -#include <dcpp/ResourceManager.h> #include <dcpp/version.h> #include "WinUtil.h" @@ -57,11 +56,9 @@ setItemText(IDC_VERSION, Text::toT("DC++ " VERSIONSTRING "\n(c) Copyright 2001-2007 Jacek Sieka\nEx-codeveloper: Per Lind\303\251n\nGraphics: Martin Skogevall et al.\nDC++ is licenced under GPL\nhttp://dcplusplus.sourceforge.net/")); setItemText(IDC_TTH, WinUtil::tth); setItemText(IDC_THANKS, Text::toT(thanks)); - setItemText(IDC_TOTALS, Text::toT("Upload: " + Util::formatBytes(SETTING(TOTAL_UPLOAD)) + ", Download: " + Util::formatBytes(SETTING(TOTAL_DOWNLOAD)))); + setItemText(IDC_TOTALS, str(TF_("Upload: %1%, Download: %2%") % Text::toT(Util::formatBytes(SETTING(TOTAL_UPLOAD))) % Text::toT(Util::formatBytes(SETTING(TOTAL_DOWNLOAD))))); if(SETTING(TOTAL_DOWNLOAD) > 0) { - char buf[64]; - sprintf(buf, "Ratio (up/down): %.2f", ((double)SETTING(TOTAL_UPLOAD)) / ((double)SETTING(TOTAL_DOWNLOAD))); - setItemText(IDC_RATIO, Text::toT(buf)); + setItemText(IDC_RATIO, str(TF_("Ratio (up/down): %1$0.2f") % (((double)SETTING(TOTAL_UPLOAD)) / ((double)SETTING(TOTAL_DOWNLOAD))))); } setItemText(IDC_LATEST, T_("Downloading...")); Modified: dcplusplus/trunk/win32/Advanced3Page.cpp =================================================================== --- dcplusplus/trunk/win32/Advanced3Page.cpp 2008-01-19 23:29:06 UTC (rev 970) +++ dcplusplus/trunk/win32/Advanced3Page.cpp 2008-01-21 19:13:08 UTC (rev 971) @@ -25,23 +25,21 @@ #include <dcpp/SettingsManager.h> PropPage::TextItem Advanced3Page::texts[] = { -#ifdef PORT_ME - { IDC_SETTINGS_B, ResourceManager::B }, - { IDC_SETTINGS_WRITE_BUFFER, ResourceManager::SETTINGS_WRITE_BUFFER }, - { IDC_SETTINGS_KB, ResourceManager::KiB }, - { IDC_SETTINGS_MAX_HASH_SPEED, ResourceManager::SETTINGS_MAX_HASH_SPEED }, - { IDC_SETTINGS_MBS, ResourceManager::MiBPS }, - { IDC_SETTINGS_PM_HISTORY, ResourceManager::SETTINGS_PM_HISTORY }, - { IDC_SETTINGS_SEARCH_HISTORY, ResourceManager::SETTINGS_SEARCH_HISTORY }, - { IDC_SETTINGS_TEXT_MINISLOT, ResourceManager::SETTINGS_TEXT_MINISLOT }, - { IDC_SETTINGS_KB2, ResourceManager::KiB }, - { IDC_SETTINGS_BIND_ADDRESS, ResourceManager::SETTINGS_BIND_ADDRESS }, - { IDC_SETTINGS_MAX_FILELIST_SIZE, ResourceManager::SETTINGS_MAX_FILELIST_SIZE }, - { IDC_SETTINGS_MB, ResourceManager::MiB }, - { IDC_SETTINGS_AUTO_REFRESH_TIME, ResourceManager::SETTINGS_AUTO_REFRESH_TIME }, - { IDC_SETTINGS_AUTO_SEARCH_LIMIT, ResourceManager::SETTINGS_AUTO_SEARCH_LIMIT }, - { IDC_SETTINGS_MIN_SEGMENT_SIZE, ResourceManager::SETTINGS_MIN_SEGMENT_SIZE }, -#endif + { IDC_SETTINGS_B, N_("B") }, + { IDC_SETTINGS_WRITE_BUFFER, N_("Write buffer size") }, + { IDC_SETTINGS_KB, N_("KiB") }, + { IDC_SETTINGS_MAX_HASH_SPEED, N_("Max hash speed") }, + { IDC_SETTINGS_MBS, N_("MiB/s") }, + { IDC_SETTINGS_PM_HISTORY, N_("PM history") }, + { IDC_SETTINGS_SEARCH_HISTORY, N_("Search history") }, + { IDC_SETTINGS_TEXT_MINISLOT, N_("Mini slot size") }, + { IDC_SETTINGS_KB2, N_("KiB") }, + { IDC_SETTINGS_BIND_ADDRESS, N_("Bind address") }, + { IDC_SETTINGS_MAX_FILELIST_SIZE, N_("Max filelist size") }, + { IDC_SETTINGS_MB, N_("MiB") }, + { IDC_SETTINGS_AUTO_REFRESH_TIME, N_("Auto refresh time") }, + { IDC_SETTINGS_AUTO_SEARCH_LIMIT, N_("Auto-search limit") }, + { IDC_SETTINGS_MIN_SEGMENT_SIZE, N_("Min segment size") }, { 0, 0 } }; Modified: dcplusplus/trunk/win32/AdvancedPage.cpp =================================================================== --- dcplusplus/trunk/win32/AdvancedPage.cpp 2008-01-19 23:29:06 UTC (rev 970) +++ dcplusplus/trunk/win32/AdvancedPage.cpp 2008-01-21 19:13:08 UTC (rev 971) @@ -27,27 +27,25 @@ PropPage::Item AdvancedPage::items[] = { { 0, 0, PropPage::T_END } }; AdvancedPage::ListItem AdvancedPage::listItems[] = { -#ifdef PORT_ME - { SettingsManager::AUTO_AWAY, ResourceManager::SETTINGS_AUTO_AWAY }, - { SettingsManager::AUTO_FOLLOW, ResourceManager::SETTINGS_AUTO_FOLLOW }, - { SettingsManager::CLEAR_SEARCH, ResourceManager::SETTINGS_CLEAR_SEARCH }, - { SettingsManager::LIST_DUPES, ResourceManager::SETTINGS_LIST_DUPES }, - { SettingsManager::URL_HANDLER, ResourceManager::SETTINGS_URL_HANDLER }, - { SettingsManager::MAGNET_REGISTER, ResourceManager::SETTINGS_URL_MAGNET }, - { SettingsManager::KEEP_LISTS, ResourceManager::SETTINGS_KEEP_LISTS }, - { SettingsManager::AUTO_KICK, ResourceManager::SETTINGS_AUTO_KICK }, - { SettingsManager::SHOW_PROGRESS_BARS, ResourceManager::SETTINGS_SHOW_PROGRESS_BARS }, - { SettingsManager::SFV_CHECK, ResourceManager::SETTINGS_SFV_CHECK }, - { SettingsManager::NO_AWAYMSG_TO_BOTS, ResourceManager::SETTINGS_NO_AWAYMSG_TO_BOTS }, - { SettingsManager::ADLS_BREAK_ON_FIRST, ResourceManager::SETTINGS_ADLS_BREAK_ON_FIRST }, - { SettingsManager::COMPRESS_TRANSFERS, ResourceManager::SETTINGS_COMPRESS_TRANSFERS }, - { SettingsManager::HUB_USER_COMMANDS, ResourceManager::SETTINGS_HUB_USER_COMMANDS }, - { SettingsManager::SEND_UNKNOWN_COMMANDS, ResourceManager::SETTINGS_SEND_UNKNOWN_COMMANDS }, - { SettingsManager::ADD_FINISHED_INSTANTLY, ResourceManager::SETTINGS_ADD_FINISHED_INSTANTLY }, - { SettingsManager::USE_CTRL_FOR_LINE_HISTORY, ResourceManager::SETTINGS_USE_CTRL_FOR_LINE_HISTORY }, - { SettingsManager::AUTO_KICK_NO_FAVS, ResourceManager::SETTINGS_AUTO_KICK_NO_FAVS }, - { SettingsManager::SHOW_SHELL_MENU, ResourceManager::SETTINGS_SHOW_SHELL_MENU }, -#endif + { SettingsManager::AUTO_AWAY, N_("Auto-away on minimize (and back on restore)") }, + { SettingsManager::AUTO_FOLLOW, N_("Automatically follow redirects") }, + { SettingsManager::CLEAR_SEARCH, N_("Clear search box after each search") }, + { SettingsManager::LIST_DUPES, N_("Keep duplicate files in your file list") }, + { SettingsManager::URL_HANDLER, N_("Register with Windows to handle dchub:// and adc:// URL links") }, + { SettingsManager::MAGNET_REGISTER, N_("Register with Windows to handle magnet: URI links") }, + { SettingsManager::KEEP_LISTS, N_("Don't delete file lists when exiting") }, + { SettingsManager::AUTO_KICK, N_("Automatically disconnect users who leave the hub") }, + { SettingsManager::SHOW_PROGRESS_BARS, N_("Show progress bars for transfers") }, + { SettingsManager::SFV_CHECK, N_("Enable automatic SFV checking") }, + { SettingsManager::NO_AWAYMSG_TO_BOTS, N_("Don't send the away message to bots") }, + { SettingsManager::ADLS_BREAK_ON_FIRST, N_("Break on first ADLSearch match") }, + { SettingsManager::COMPRESS_TRANSFERS, N_("Enable safe and compressed transfers") }, + { SettingsManager::HUB_USER_COMMANDS, N_("Accept custom user commands from hub") }, + { SettingsManager::SEND_UNKNOWN_COMMANDS, N_("Send unknown /commands to the hub") }, + { SettingsManager::ADD_FINISHED_INSTANTLY, N_("Add finished files to share instantly (if shared)") }, + { SettingsManager::USE_CTRL_FOR_LINE_HISTORY, N_("Use CTRL for line history") }, + { SettingsManager::AUTO_KICK_NO_FAVS, N_("Don't automatically disconnect favorite users who leave the hub") }, + { SettingsManager::SHOW_SHELL_MENU, N_("Show shell menu where possible") }, { 0, 0 } }; Modified: dcplusplus/trunk/win32/Appearance2Page.cpp =================================================================== --- dcplusplus/trunk/win32/Appearance2Page.cpp 2008-01-19 23:29:06 UTC (rev 970) +++ dcplusplus/trunk/win32/Appearance2Page.cpp 2008-01-21 19:13:08 UTC (rev 971) @@ -26,20 +26,18 @@ #include "WinUtil.h" PropPage::TextItem Appearance2Page::texts[] = { -#ifdef PORT_ME - { IDC_BEEP_NOTIFICATION, ResourceManager::SETTINGS_NOTIFICATION_SOUND }, - { IDC_BROWSE, ResourceManager::BROWSE_ACCEL }, - { IDC_SETTINGS_COLORS, ResourceManager::SETTINGS_COLORS }, - { IDC_SELWINCOLOR, ResourceManager::SETTINGS_SELECT_WINDOW_COLOR }, - { IDC_SELTEXT, ResourceManager::SETTINGS_SELECT_TEXT_FACE }, - { IDC_COLOREXAMPLE, ResourceManager::SETTINGS_EXAMPLE_TEXT }, - { IDC_SETTINGS_REQUIRES_RESTART, ResourceManager::SETTINGS_REQUIRES_RESTART }, - { IDC_SETTINGS_UPLOAD_BAR_COLOR, ResourceManager::UPLOADS }, - { IDC_SETTINGS_SOUNDS, ResourceManager::SETTINGS_SOUNDS }, - { IDC_PRIVATE_MESSAGE_BEEP, ResourceManager::SETTINGS_PM_BEEP }, - { IDC_PRIVATE_MESSAGE_BEEP_OPEN, ResourceManager::SETTINGS_PM_BEEP_OPEN }, - { IDC_SETTINGS_DOWNLOAD_BAR_COLOR, ResourceManager::DOWNLOADS }, -#endif + { IDC_BEEP_NOTIFICATION, N_("Notification sound") }, + { IDC_BROWSE, N_("&Browse...") }, + { IDC_SETTINGS_COLORS, N_("Colors") }, + { IDC_SELWINCOLOR, N_("Select &window color") }, + { IDC_SELTEXT, N_("Select &text style") }, + { IDC_COLOREXAMPLE, N_("Donate \342\202\254\342\202\254\342\202\254:s! (ok, dirty dollars are fine as well =) (see help menu)") }, + { IDC_SETTINGS_REQUIRES_RESTART, N_("Note; most of these options require that you restart DC++") }, + { IDC_SETTINGS_UPLOAD_BAR_COLOR, N_("Uploads") }, + { IDC_SETTINGS_SOUNDS, N_("Sounds") }, + { IDC_PRIVATE_MESSAGE_BEEP, N_("Make an annoying sound every time a private message is received") }, + { IDC_PRIVATE_MESSAGE_BEEP_OPEN, N_("Make an annoying sound when a private message window is opened") }, + { IDC_SETTINGS_DOWNLOAD_BAR_COLOR, N_("Downloads") }, { 0, 0 } }; Modified: dcplusplus/trunk/win32/AppearancePage.cpp =================================================================== --- dcplusplus/trunk/win32/AppearancePage.cpp 2008-01-19 23:29:06 UTC (rev 970) +++ dcplusplus/trunk/win32/AppearancePage.cpp 2008-01-21 19:13:08 UTC (rev 971) @@ -28,13 +28,11 @@ #include "WinUtil.h" PropPage::TextItem AppearancePage::texts[] = { -#ifdef PORT_ME - { IDC_SETTINGS_APPEARANCE_OPTIONS, ResourceManager::SETTINGS_OPTIONS }, - { IDC_SETTINGS_DEFAULT_AWAY_MSG, ResourceManager::SETTINGS_DEFAULT_AWAY_MSG }, - { IDC_SETTINGS_TIME_STAMPS_FORMAT, ResourceManager::SETTINGS_TIME_STAMPS_FORMAT }, - { IDC_SETTINGS_LANGUAGE_FILE, ResourceManager::SETTINGS_LANGUAGE_FILE }, - { IDC_SETTINGS_REQUIRES_RESTART, ResourceManager::SETTINGS_REQUIRES_RESTART }, -#endif + { IDC_SETTINGS_APPEARANCE_OPTIONS, N_("Options") }, + { IDC_SETTINGS_DEFAULT_AWAY_MSG, N_("Default away message") }, + { IDC_SETTINGS_TIME_STAMPS_FORMAT, N_("Set timestamps") }, + { IDC_SETTINGS_LANGUAGE_FILE, N_("Language file") }, + { IDC_SETTINGS_REQUIRES_RESTART, N_("Note; most of these options require that you restart DC++") }, { 0, 0 } }; @@ -45,19 +43,17 @@ }; PropPage::ListItem AppearancePage::listItems[] = { -#ifdef PORT_ME - { SettingsManager::ALT_SORT_ORDER, ResourceManager::SETTINGS_ALT_SORT_ORDER }, - { SettingsManager::FILTER_MESSAGES, ResourceManager::SETTINGS_FILTER_MESSAGES }, - { SettingsManager::MINIMIZE_TRAY, ResourceManager::SETTINGS_MINIMIZE_TRAY }, - { SettingsManager::TIME_STAMPS, ResourceManager::SETTINGS_TIME_STAMPS }, - { SettingsManager::STATUS_IN_CHAT, ResourceManager::SETTINGS_STATUS_IN_CHAT }, - { SettingsManager::SHOW_JOINS, ResourceManager::SETTINGS_SHOW_JOINS }, - { SettingsManager::FAV_SHOW_JOINS, ResourceManager::SETTINGS_FAV_SHOW_JOINS }, - { SettingsManager::SORT_FAVUSERS_FIRST, ResourceManager::SETTINGS_SORT_FAVUSERS_FIRST }, - { SettingsManager::USE_SYSTEM_ICONS, ResourceManager::SETTINGS_USE_SYSTEM_ICONS }, - { SettingsManager::USE_OEM_MONOFONT, ResourceManager::SETTINGS_USE_OEM_MONOFONT }, - { SettingsManager::GET_USER_COUNTRY, ResourceManager::SETTINGS_GET_USER_COUNTRY }, -#endif + { SettingsManager::ALT_SORT_ORDER, N_("Sort all downloads first") }, + { SettingsManager::FILTER_MESSAGES, N_("Filter kick and NMDC debug messages") }, + { SettingsManager::MINIMIZE_TRAY, N_("Minimize to tray") }, + { SettingsManager::TIME_STAMPS, N_("Show timestamps in chat by default") }, + { SettingsManager::STATUS_IN_CHAT, N_("View status messages in main chat") }, + { SettingsManager::SHOW_JOINS, N_("Show joins / parts in chat by default") }, + { SettingsManager::FAV_SHOW_JOINS, N_("Only show joins / parts for favorite users") }, + { SettingsManager::SORT_FAVUSERS_FIRST, N_("Sort favorite users first") }, + { SettingsManager::USE_SYSTEM_ICONS, N_("Use system icons when browsing files (slows browsing down a bit)") }, + { SettingsManager::USE_OEM_MONOFONT, N_("Use OEM monospaced font for viewing text files") }, + { SettingsManager::GET_USER_COUNTRY, N_("Guess user country from IP") }, { 0, 0 } }; Modified: dcplusplus/trunk/win32/CertificatesPage.cpp =================================================================== --- dcplusplus/trunk/win32/CertificatesPage.cpp 2008-01-19 23:29:06 UTC (rev 970) +++ dcplusplus/trunk/win32/CertificatesPage.cpp 2008-01-21 19:13:08 UTC (rev 971) @@ -38,11 +38,9 @@ }; PropPage::ListItem CertificatesPage::listItems[] = { -#ifdef PORT_ME - { SettingsManager::USE_TLS, ResourceManager::SETTINGS_USE_TLS }, - { SettingsManager::ALLOW_UNTRUSTED_HUBS, ResourceManager::SETTINGS_ALLOW_UNTRUSTED_HUBS }, - { SettingsManager::ALLOW_UNTRUSTED_CLIENTS, ResourceManager::SETTINGS_ALLOW_UNTRUSTED_CLIENTS, }, -#endif + { SettingsManager::USE_TLS, N_("Use TLS when remote client supports it") }, + { SettingsManager::ALLOW_UNTRUSTED_HUBS, N_("Allow TLS connections to hubs without trusted certificate") }, + { SettingsManager::ALLOW_UNTRUSTED_CLIENTS, N_("Allow TLS connections to clients without trusted certificate") }, { 0, 0 } }; Modified: dcplusplus/trunk/win32/CommandDlg.cpp =================================================================== --- dcplusplus/trunk/win32/CommandDlg.cpp 2008-01-19 23:29:06 UTC (rev 970) +++ dcplusplus/trunk/win32/CommandDlg.cpp 2008-01-21 19:13:08 UTC (rev 971) @@ -22,7 +22,6 @@ #include "CommandDlg.h" -#include <dcpp/ResourceManager.h> #include <dcpp/UserCommand.h> #include <dcpp/NmdcHub.h> #include <dcpp/version.h> Modified: dcplusplus/trunk/win32/DirectoryListingFrame.cpp =================================================================== --- dcplusplus/trunk/win32/DirectoryListingFrame.cpp 2008-01-19 23:29:06 UTC (rev 970) +++ dcplusplus/trunk/win32/DirectoryListingFrame.cpp 2008-01-21 19:13:08 UTC (rev 971) @@ -25,7 +25,6 @@ #include "resource.h" -#include <dcpp/ResourceManager.h> #include <dcpp/ADLSearch.h> #include <dcpp/FavoriteManager.h> #include <dcpp/File.h> Modified: dcplusplus/trunk/win32/DownloadPage.cpp =================================================================== --- dcplusplus/trunk/win32/DownloadPage.cpp 2008-01-19 23:29:06 UTC (rev 970) +++ dcplusplus/trunk/win32/DownloadPage.cpp 2008-01-21 19:13:08 UTC (rev 971) @@ -27,21 +27,19 @@ #include "HubListsDlg.h" PropPage::TextItem DownloadPage::texts[] = { -#ifdef PORT_ME - { IDC_SETTINGS_DIRECTORIES, ResourceManager::SETTINGS_DIRECTORIES }, - { IDC_SETTINGS_DOWNLOAD_DIRECTORY, ResourceManager::SETTINGS_DOWNLOAD_DIRECTORY }, - { IDC_BROWSEDIR, ResourceManager::BROWSE_ACCEL }, - { IDC_SETTINGS_UNFINISHED_DOWNLOAD_DIRECTORY, ResourceManager::SETTINGS_UNFINISHED_DOWNLOAD_DIRECTORY }, - { IDC_BROWSETEMPDIR, ResourceManager::BROWSE }, - { IDC_SETTINGS_DOWNLOAD_LIMITS, ResourceManager::SETTINGS_DOWNLOAD_LIMITS }, - { IDC_SETTINGS_DOWNLOADS_MAX, ResourceManager::SETTINGS_DOWNLOADS_MAX }, - { IDC_SETTINGS_DOWNLOADS_SPEED_PAUSE, ResourceManager::SETTINGS_DOWNLOADS_SPEED_PAUSE }, - { IDC_SETTINGS_SPEEDS_NOT_ACCURATE, ResourceManager::SETTINGS_SPEEDS_NOT_ACCURATE }, - { IDC_SETTINGS_PUBLIC_HUB_LIST, ResourceManager::SETTINGS_PUBLIC_HUB_LIST }, - { IDC_SETTINGS_PUBLIC_HUB_LIST_URL, ResourceManager::SETTINGS_PUBLIC_HUB_LIST_URL }, - { IDC_SETTINGS_LIST_CONFIG, ResourceManager::SETTINGS_CONFIGURE_HUB_LISTS }, - { IDC_SETTINGS_PUBLIC_HUB_LIST_HTTP_PROXY, ResourceManager::SETTINGS_PUBLIC_HUB_LIST_HTTP_PROXY }, -#endif + { IDC_SETTINGS_DIRECTORIES, N_("Directories") }, + { IDC_SETTINGS_DOWNLOAD_DIRECTORY, N_("Default download directory") }, + { IDC_BROWSEDIR, N_("&Browse...") }, + { IDC_SETTINGS_UNFINISHED_DOWNLOAD_DIRECTORY, N_("Unfinished downloads directory") }, + { IDC_BROWSETEMPDIR, N_("Browse...") }, + { IDC_SETTINGS_DOWNLOAD_LIMITS, N_("Limits") }, + { IDC_SETTINGS_DOWNLOADS_MAX, N_("Maximum simultaneous downloads (0 = infinite)") }, + { IDC_SETTINGS_DOWNLOADS_SPEED_PAUSE, N_("No new downloads if speed exceeds (KiB/s, 0 = disable)") }, + { IDC_SETTINGS_SPEEDS_NOT_ACCURATE, N_("Note; because of changing download speeds, this is not 100% accurate...") }, + { IDC_SETTINGS_PUBLIC_HUB_LIST, N_("Public Hubs list") }, + { IDC_SETTINGS_PUBLIC_HUB_LIST_URL, N_("Public Hubs list URL") }, + { IDC_SETTINGS_LIST_CONFIG, N_("Configure Public Hub Lists") }, + { IDC_SETTINGS_PUBLIC_HUB_LIST_HTTP_PROXY, N_("HTTP Proxy (for hublist only)") }, { 0, 0 } }; Modified: dcplusplus/trunk/win32/FavHubProperties.cpp =================================================================== --- dcplusplus/trunk/win32/FavHubProperties.cpp 2008-01-19 23:29:06 UTC (rev 970) +++ dcplusplus/trunk/win32/FavHubProperties.cpp 2008-01-21 19:13:08 UTC (rev 971) @@ -23,7 +23,6 @@ #include "FavHubProperties.h" #include <dcpp/FavoriteManager.h> -#include <dcpp/ResourceManager.h> #include <dcpp/version.h> FavHubProperties::FavHubProperties(SmartWin::Widget* parent, FavoriteHubEntry *_entry) : Modified: dcplusplus/trunk/win32/FavoriteDirsPage.cpp =================================================================== --- dcplusplus/trunk/win32/FavoriteDirsPage.cpp 2008-01-19 23:29:06 UTC (rev 970) +++ dcplusplus/trunk/win32/FavoriteDirsPage.cpp 2008-01-21 19:13:08 UTC (rev 971) @@ -29,12 +29,10 @@ #include "LineDlg.h" PropPage::TextItem FavoriteDirsPage::texts[] = { -#ifdef PORT_ME - { IDC_SETTINGS_FAVORITE_DIRECTORIES, ResourceManager::SETTINGS_FAVORITE_DIRS }, - { IDC_REMOVE, ResourceManager::REMOVE }, - { IDC_ADD, ResourceManager::SETTINGS_ADD_FOLDER }, - { IDC_RENAME, ResourceManager::SETTINGS_RENAME_FOLDER }, -#endif + { IDC_SETTINGS_FAVORITE_DIRECTORIES, N_("Favorite download directories") }, + { IDC_REMOVE, N_("&Remove") }, + { IDC_ADD, N_("&Add folder") }, + { IDC_RENAME, N_("Rename") }, { 0, 0 } }; Modified: dcplusplus/trunk/win32/GeneralPage.cpp =================================================================== --- dcplusplus/trunk/win32/GeneralPage.cpp 2008-01-19 23:29:06 UTC (rev 970) +++ dcplusplus/trunk/win32/GeneralPage.cpp 2008-01-21 19:13:08 UTC (rev 971) @@ -25,14 +25,12 @@ #include <dcpp/SettingsManager.h> PropPage::TextItem GeneralPage::texts[] = { -#ifdef PORT_ME - { IDC_SETTINGS_PERSONAL_INFORMATION, ResourceManager::SETTINGS_PERSONAL_INFORMATION }, - { IDC_SETTINGS_NICK, ResourceManager::NICK }, - { IDC_SETTINGS_EMAIL, ResourceManager::EMAIL }, - { IDC_SETTINGS_DESCRIPTION, ResourceManager::DESCRIPTION }, - { IDC_SETTINGS_UPLOAD_LINE_SPEED, ResourceManager::SETTINGS_UPLOAD_LINE_SPEED }, - { IDC_SETTINGS_MEBIBITS, ResourceManager::MiBITSPS }, -#endif + { IDC_SETTINGS_PERSONAL_INFORMATION, N_("Personal Information") }, + { IDC_SETTINGS_NICK, N_("Nick") }, + { IDC_SETTINGS_EMAIL, N_("E-Mail") }, + { IDC_SETTINGS_DESCRIPTION, N_("Description") }, + { IDC_SETTINGS_UPLOAD_LINE_SPEED, N_("Line speed (upload)") }, + { IDC_SETTINGS_MEBIBITS, N_("MiBits/s") }, { 0, 0 } }; Modified: dcplusplus/trunk/win32/HashProgressDlg.cpp =================================================================== --- dcplusplus/trunk/win32/HashProgressDlg.cpp 2008-01-19 23:29:06 UTC (rev 970) +++ dcplusplus/trunk/win32/HashProgressDlg.cpp 2008-01-21 19:13:08 UTC (rev 971) @@ -23,7 +23,6 @@ #include "HashProgressDlg.h" #include <dcpp/HashManager.h> -#include <dcpp/ResourceManager.h> HashProgressDlg::HashProgressDlg(SmartWin::Widget* parent, bool aAutoClose) : SmartWin::WidgetFactory<SmartWin::WidgetModalDialog>(parent), @@ -81,24 +80,24 @@ } double diff = tick - startTime; if(diff < 1000 || files == 0 || bytes == 0) { - ::SetDlgItemText(handle(), IDC_FILES_PER_HOUR, Text::toT("-.-- " + STRING(FILES_PER_HOUR) + ", " + Util::toString((uint32_t)files) + " " + STRING(FILES_LEFT)).c_str()); - ::SetDlgItemText(handle(), IDC_HASH_SPEED, Text::toT("-.-- B/s, " + Util::formatBytes(bytes) + " " + STRING(LEFT)).c_str()); - ::SetDlgItemText(handle(), IDC_TIME_LEFT, Text::toT("-:--:-- " + STRING(LEFT)).c_str()); + ::SetDlgItemText(handle(), IDC_FILES_PER_HOUR, str(TF_("-.-- files/h, %1% files left") % (uint32_t)files).c_str()); + ::SetDlgItemText(handle(), IDC_HASH_SPEED, str(TF_("-.-- B/s, %1% left") % Text::toT(Util::formatBytes(bytes))).c_str()); + ::SetDlgItemText(handle(), IDC_TIME_LEFT, CT_("-:--:-- left")); progress->setPosition(0); } else { double filestat = (((double)(startFiles - files)) * 60 * 60 * 1000) / diff; double speedStat = (((double)(startBytes - bytes)) * 1000) / diff; - ::SetDlgItemText(handle(), IDC_FILES_PER_HOUR, Text::toT(Util::toString(filestat) + " " + STRING(FILES_PER_HOUR) + ", " + Util::toString((uint32_t)files) + " " + STRING(FILES_LEFT)).c_str()); - ::SetDlgItemText(handle(), IDC_HASH_SPEED, Text::toT(Util::formatBytes((int64_t)speedStat) + "/s, " + Util::formatBytes(bytes) + " " + STRING(LEFT)).c_str()); + ::SetDlgItemText(handle(), IDC_FILES_PER_HOUR, str(TF_("%1% files/h, %2% files left") % filestat % (uint32_t)files).c_str()); + ::SetDlgItemText(handle(), IDC_HASH_SPEED, str(TF_("%1%/s, %2% left") % Text::toT(Util::formatBytes((int64_t)speedStat)) % Text::toT(Util::formatBytes(bytes))).c_str()); if(filestat == 0 || speedStat == 0) { - ::SetDlgItemText(handle(), IDC_TIME_LEFT, Text::toT("-:--:-- " + STRING(LEFT)).c_str()); + ::SetDlgItemText(handle(), IDC_TIME_LEFT, CT_("-:--:-- left")); } else { double fs = files * 60 * 60 / filestat; double ss = bytes / speedStat; - ::SetDlgItemText(handle(), IDC_TIME_LEFT, Text::toT(Util::formatSeconds((int64_t)(fs + ss) / 2) + " " + STRING(LEFT)).c_str()); + ::SetDlgItemText(handle(), IDC_TIME_LEFT, str(TF_("%1% left") % Text::toT(Util::formatSeconds((int64_t)(fs + ss) / 2))).c_str()); } } Modified: dcplusplus/trunk/win32/LogPage.cpp =================================================================== --- dcplusplus/trunk/win32/LogPage.cpp 2008-01-19 23:29:06 UTC (rev 970) +++ dcplusplus/trunk/win32/LogPage.cpp 2008-01-21 19:13:08 UTC (rev 971) @@ -28,13 +28,11 @@ #include "WinUtil.h" PropPage::TextItem LogPage::texts[] = { -#ifdef PORT_ME - { IDC_SETTINGS_LOGGING, ResourceManager::SETTINGS_LOGGING }, - { IDC_SETTINGS_LOG_DIR, ResourceManager::DIRECTORY }, - { IDC_BROWSE_LOG, ResourceManager::BROWSE_ACCEL }, - { IDC_SETTINGS_FORMAT, ResourceManager::SETTINGS_FORMAT }, - { IDC_SETTINGS_FILE_NAME, ResourceManager::SETTINGS_FILE_NAME }, -#endif + { IDC_SETTINGS_LOGGING, N_("Logging") }, + { IDC_SETTINGS_LOG_DIR, N_("Directory") }, + { IDC_BROWSE_LOG, N_("&Browse...") }, + { IDC_SETTINGS_FORMAT, N_("Format") }, + { IDC_SETTINGS_FILE_NAME, N_("Filename") }, { 0, 0 } }; @@ -44,15 +42,13 @@ }; PropPage::ListItem LogPage::listItems[] = { -#ifdef PORT_ME - { SettingsManager::LOG_MAIN_CHAT, ResourceManager::SETTINGS_LOG_MAIN_CHAT }, - { SettingsManager::LOG_PRIVATE_CHAT, ResourceManager::SETTINGS_LOG_PRIVATE_CHAT }, - { SettingsManager::LOG_DOWNLOADS, ResourceManager::SETTINGS_LOG_DOWNLOADS }, - { SettingsManager::LOG_UPLOADS, ResourceManager::SETTINGS_LOG_UPLOADS }, - { SettingsManager::LOG_SYSTEM, ResourceManager::SETTINGS_LOG_SYSTEM_MESSAGES }, - { SettingsManager::LOG_STATUS_MESSAGES, ResourceManager::SETTINGS_LOG_STATUS_MESSAGES }, - { SettingsManager::LOG_FILELIST_TRANSFERS, ResourceManager::SETTINGS_LOG_FILELIST_TRANSFERS }, -#endif + { SettingsManager::LOG_MAIN_CHAT, N_("Log main chat") }, + { SettingsManager::LOG_PRIVATE_CHAT, N_("Log private chat") }, + { SettingsManager::LOG_DOWNLOADS, N_("Log downloads") }, + { SettingsManager::LOG_UPLOADS, N_("Log uploads") }, + { SettingsManager::LOG_SYSTEM, N_("Log system messages") }, + { SettingsManager::LOG_STATUS_MESSAGES, N_("Log status messages") }, + { SettingsManager::LOG_FILELIST_TRANSFERS, N_("Log filelist transfers") }, { 0, 0 } }; Modified: dcplusplus/trunk/win32/MagnetDlg.cpp =================================================================== --- dcplusplus/trunk/win32/MagnetDlg.cpp 2008-01-19 23:29:06 UTC (rev 970) +++ dcplusplus/trunk/win32/MagnetDlg.cpp 2008-01-21 19:13:08 UTC (rev 971) @@ -22,7 +22,6 @@ #include "MagnetDlg.h" -#include <dcpp/ResourceManager.h> #include "WinUtil.h" MagnetDlg::MagnetDlg(SmartWin::Widget* parent, const tstring& aHash, const tstring& aFileName) : Modified: dcplusplus/trunk/win32/NetworkPage.cpp =================================================================== --- dcplusplus/trunk/win32/NetworkPage.cpp 2008-01-19 23:29:06 UTC (rev 970) +++ dcplusplus/trunk/win32/NetworkPage.cpp 2008-01-21 19:13:08 UTC (rev 971) @@ -27,27 +27,25 @@ #include "WinUtil.h" PropPage::TextItem NetworkPage::texts[] = { -#ifdef PORT_ME - { IDC_DIRECT, ResourceManager::SETTINGS_DIRECT }, - { IDC_DIRECT_OUT, ResourceManager::SETTINGS_DIRECT }, - { IDC_FIREWALL_UPNP, ResourceManager::SETTINGS_FIREWALL_UPNP }, - { IDC_FIREWALL_NAT, ResourceManager::SETTINGS_FIREWALL_NAT }, - { IDC_FIREWALL_PASSIVE, ResourceManager::SETTINGS_FIREWALL_PASSIVE }, - { IDC_OVERRIDE, ResourceManager::SETTINGS_OVERRIDE }, - { IDC_SOCKS5, ResourceManager::SETTINGS_SOCKS5 }, - { IDC_SETTINGS_PORTS, ResourceManager::SETTINGS_PORTS }, - { IDC_SETTINGS_IP, ResourceManager::SETTINGS_EXTERNAL_IP }, - { IDC_SETTINGS_PORT_TCP, ResourceManager::SETTINGS_TCP_PORT }, - { IDC_SETTINGS_PORT_UDP, ResourceManager::SETTINGS_UDP_PORT }, - { IDC_SETTINGS_PORT_TLS, ResourceManager::SETTINGS_TLS_PORT }, - { IDC_SETTINGS_SOCKS5_IP, ResourceManager::SETTINGS_SOCKS5_IP }, - { IDC_SETTINGS_SOCKS5_PORT, ResourceManager::SETTINGS_SOCKS5_PORT }, - { IDC_SETTINGS_SOCKS5_USERNAME, ResourceManager::SETTINGS_SOCKS5_USERNAME }, - { IDC_SETTINGS_SOCKS5_PASSWORD, ResourceManager::PASSWORD }, - { IDC_SOCKS_RESOLVE, ResourceManager::SETTINGS_SOCKS5_RESOLVE }, - { IDC_SETTINGS_INCOMING, ResourceManager::SETTINGS_INCOMING }, - { IDC_SETTINGS_OUTGOING, ResourceManager::SETTINGS_OUTGOING }, -#endif + { IDC_DIRECT, N_("Direct connection") }, + { IDC_DIRECT_OUT, N_("Direct connection") }, + { IDC_FIREWALL_UPNP, N_("Firewall with UPnP") }, + { IDC_FIREWALL_NAT, N_("Firewall with manual port forwarding") }, + { IDC_FIREWALL_PASSIVE, N_("Firewall (passive, last resort)") }, + { IDC_OVERRIDE, N_("Don't allow hub/UPnP to override") }, + { IDC_SOCKS5, N_("SOCKS5") }, + { IDC_SETTINGS_PORTS, N_("Ports") }, + { IDC_SETTINGS_IP, N_("External / WAN IP") }, + { IDC_SETTINGS_PORT_TCP, N_("TCP") }, + { IDC_SETTINGS_PORT_UDP, N_("UDP") }, + { IDC_SETTINGS_PORT_TLS, N_("TLS") }, + { IDC_SETTINGS_SOCKS5_IP, N_("Socks IP") }, + { IDC_SETTINGS_SOCKS5_PORT, N_("Port") }, + { IDC_SETTINGS_SOCKS5_USERNAME, N_("Login") }, + { IDC_SETTINGS_SOCKS5_PASSWORD, N_("Password") }, + { IDC_SOCKS_RESOLVE, N_("Use SOCKS5 server to resolve host names") }, + { IDC_SETTINGS_INCOMING, N_("Incoming connection settings (see Help/FAQ if unsure)") }, + { IDC_SETTINGS_OUTGOING, N_("Outgoing connection settings") }, { 0, 0 } }; Modified: dcplusplus/trunk/win32/PublicHubsFrame.cpp =================================================================== --- dcplusplus/trunk/win32/PublicHubsFrame.cpp 2008-01-19 23:29:06 UTC (rev 970) +++ dcplusplus/trunk/win32/PublicHubsFrame.cpp 2008-01-21 19:13:08 UTC (rev 971) @@ -26,7 +26,6 @@ #include "HubListsDlg.h" #include <dcpp/FavoriteManager.h> -#include <dcpp/ResourceManager.h> #include <dcpp/version.h> int PublicHubsFrame::columnIndexes[] = { Modified: dcplusplus/trunk/win32/QueuePage.cpp =================================================================== --- dcplusplus/trunk/win32/QueuePage.cpp 2008-01-19 23:29:06 UTC (rev 970) +++ dcplusplus/trunk/win32/QueuePage.cpp 2008-01-21 19:13:08 UTC (rev 971) @@ -25,30 +25,28 @@ #include <dcpp/SettingsManager.h> PropPage::TextItem QueuePage::texts[] = { -#ifdef PORT_ME - { IDC_SETTINGS_AUTOPRIO, ResourceManager::SETTINGS_PRIO_AUTOPRIO }, - { IDC_SETTINGS_PRIO_HIGHEST, ResourceManager::SETTINGS_PRIO_HIGHEST }, - { IDC_SETTINGS_KB3, ResourceManager::KiB }, - { IDC_SETTINGS_PRIO_HIGH, ResourceManager::SETTINGS_PRIO_HIGH }, - { IDC_SETTINGS_KB4, ResourceManager::KiB }, - { IDC_SETTINGS_PRIO_NORMAL, ResourceManager::SETTINGS_PRIO_NORMAL }, - { IDC_SETTINGS_KB5, ResourceManager::KiB }, - { IDC_SETTINGS_PRIO_LOW, ResourceManager::SETTINGS_PRIO_LOW }, - { IDC_SETTINGS_KB6, ResourceManager::KiB }, - { IDC_SETTINGS_AUTODROP, ResourceManager::SETTINGS_AUTODROP_AUTODROPSETTINGS }, - { IDC_SETTINGS_AUTODROP_SPEED, ResourceManager::SETTINGS_AUTODROP_SPEED }, - { IDC_SETTINGS_BPS, ResourceManager::BPS }, - { IDC_SETTINGS_AUTODROP_INTERVAL, ResourceManager::SETTINGS_AUTODROP_INTERVAL }, - { IDC_SETTINGS_S1, ResourceManager::S }, - { IDC_SETTINGS_AUTODROP_ELAPSED, ResourceManager::SETTINGS_AUTODROP_ELAPSED }, - { IDC_SETTINGS_S2, ResourceManager::S }, - { IDC_SETTINGS_AUTODROP_INACTIVITY, ResourceManager::SETTINGS_AUTODROP_INACTIVITY }, - { IDC_SETTINGS_S3, ResourceManager::S }, - { IDC_SETTINGS_AUTODROP_MINSOURCES, ResourceManager::SETTINGS_AUTODROP_MINSOURCES }, - { IDC_SETTINGS_AUTODROP_FILESIZE, ResourceManager::SETTINGS_AUTODROP_FILESIZE }, - { IDC_SETTINGS_KB7, ResourceManager::KiB }, - { IDC_SETTINGS_OTHER_QUEUE_OPTIONS, ResourceManager::SETTINGS_OTHER_QUEUE_OPTIONS }, -#endif + { IDC_SETTINGS_AUTOPRIO, N_("Auto priority settings") }, + { IDC_SETTINGS_PRIO_HIGHEST, N_("Highest prio max size") }, + { IDC_SETTINGS_KB3, N_("KiB") }, + { IDC_SETTINGS_PRIO_HIGH, N_("High prio max size") }, + { IDC_SETTINGS_KB4, N_("KiB") }, + { IDC_SETTINGS_PRIO_NORMAL, N_("Normal prio max size") }, + { IDC_SETTINGS_KB5, N_("KiB") }, + { IDC_SETTINGS_PRIO_LOW, N_("Low prio max size") }, + { IDC_SETTINGS_KB6, N_("KiB") }, + { IDC_SETTINGS_AUTODROP, N_("Autodrop settings") }, + { IDC_SETTINGS_AUTODROP_SPEED, N_("Drop sources below") }, + { IDC_SETTINGS_BPS, N_("B/s") }, + { IDC_SETTINGS_AUTODROP_INTERVAL, N_("Check every") }, + { IDC_SETTINGS_S1, N_("s") }, + { IDC_SETTINGS_AUTODROP_ELAPSED, N_("Min elapsed") }, + { IDC_SETTINGS_S2, N_("s") }, + { IDC_SETTINGS_AUTODROP_INACTIVITY, N_("Max inactivity") }, + { IDC_SETTINGS_S3, N_("s") }, + { IDC_SETTINGS_AUTODROP_MINSOURCES, N_("Min sources online") }, + { IDC_SETTINGS_AUTODROP_FILESIZE, N_("Min filesize") }, + { IDC_SETTINGS_KB7, N_("KiB") }, + { IDC_SETTINGS_OTHER_QUEUE_OPTIONS, N_("Other queue options") }, { 0, 0 } }; @@ -67,18 +65,16 @@ }; PropPage::ListItem QueuePage::optionItems[] = { -#ifdef PORT_ME - { SettingsManager::PRIO_LOWEST, ResourceManager::SETTINGS_PRIO_LOWEST }, - { SettingsManager::AUTODROP_ALL, ResourceManager::SETTINGS_AUTODROP_ALL }, - { SettingsManager::AUTODROP_FILELISTS, ResourceManager::SETTINGS_AUTODROP_FILELISTS }, - { SettingsManager::AUTODROP_DISCONNECT, ResourceManager::SETTINGS_AUTODROP_DISCONNECT }, - { SettingsManager::AUTO_SEARCH, ResourceManager::SETTINGS_AUTO_SEARCH }, - { SettingsManager::AUTO_SEARCH_AUTO_MATCH, ResourceManager::SETTINGS_AUTO_SEARCH_AUTO_MATCH }, - { SettingsManager::SKIP_ZERO_BYTE, ResourceManager::SETTINGS_SKIP_ZERO_BYTE }, - { SettingsManager::DONT_DL_ALREADY_SHARED, ResourceManager::SETTINGS_DONT_DL_ALREADY_SHARED }, - { SettingsManager::DONT_DL_ALREADY_QUEUED, ResourceManager::SETTINGS_DONT_DL_ALREADY_QUEUED }, - { SettingsManager::ANTI_FRAG, ResourceManager::SETTINGS_ANTI_FRAG }, -#endif + { SettingsManager::PRIO_LOWEST, N_("Set lowest prio for newly added files larger than Low prio size") }, + { SettingsManager::AUTODROP_ALL, N_("Autodrop slow sources for all queue items (except filelists)") }, + { SettingsManager::AUTODROP_FILELISTS, N_("Remove slow filelists") }, + { SettingsManager::AUTODROP_DISCONNECT, N_("Don't remove the source when autodropping, only disconnect") }, + { SettingsManager::AUTO_SEARCH, N_("Automatically search for alternative download locations") }, + { SettingsManager::AUTO_SEARCH_AUTO_MATCH, N_("Automatically match queue for auto search hits") }, + { SettingsManager::SKIP_ZERO_BYTE, N_("Skip zero-byte files") }, + { SettingsManager::DONT_DL_ALREADY_SHARED, N_("Don't download files already in share") }, + { SettingsManager::DONT_DL_ALREADY_QUEUED, N_("Don't download files already in the queue") }, + { SettingsManager::ANTI_FRAG, N_("Use antifragmentation method for downloads") }, { 0, 0 } }; Modified: dcplusplus/trunk/win32/SystemFrame.h =================================================================== --- dcplusplus/trunk/win32/SystemFrame.h 2008-01-19 23:29:06 UTC (rev 970) +++ dcplusplus/trunk/win32/SystemFrame.h 2008-01-21 19:13:08 UTC (rev 971) @@ -22,7 +22,6 @@ #include "StaticFrame.h" #include <dcpp/LogManager.h> -#include <dcpp/ResourceManager.h> #include "resource.h" class SystemFrame : public StaticFrame<SystemFrame>, Modified: dcplusplus/trunk/win32/TabsPage.cpp =================================================================== --- dcplusplus/trunk/win32/TabsPage.cpp 2008-01-19 23:29:06 UTC (rev 970) +++ dcplusplus/trunk/win32/TabsPage.cpp 2008-01-21 19:13:08 UTC (rev 971) @@ -29,23 +29,19 @@ }; PropPage::TextItem TabsPage::texts[] = { -#ifdef PORT_ME - { IDC_SETTINGS_BOLD_CONTENTS, ResourceManager::SETTINGS_BOLD_OPTIONS }, -#endif + { IDC_SETTINGS_BOLD_CONTENTS, N_("Tab highlight on content change") }, { 0, 0 } }; PropPage::ListItem TabsPage::listItems[] = { -#ifdef PORT_ME - { SettingsManager::BOLD_HUB, ResourceManager::HUB }, - { SettingsManager::BOLD_PM, ResourceManager::PRIVATE_MESSAGE }, - { SettingsManager::BOLD_SEARCH, ResourceManager::SEARCH }, - { SettingsManager::BOLD_SYSTEM_LOG, ResourceManager::SYSTEM_LOG }, - { SettingsManager::BOLD_QUEUE, ResourceManager::DOWNLOAD_QUEUE }, - { SettingsManager::BOLD_FINISHED_DOWNLOADS, ResourceManager::FINISHED_DOWNLOADS }, - { SettingsManager::BOLD_WAITING_USERS, ResourceManager::WAITING_USERS }, - { SettingsManager::BOLD_FINISHED_UPLOADS, ResourceManager::FINISHED_UPLOADS }, -#endif + { SettingsManager::BOLD_HUB, N_("Hub") }, + { SettingsManager::BOLD_PM, N_("Private message") }, + { SettingsManager::BOLD_SEARCH, N_("Search") }, + { SettingsManager::BOLD_SYSTEM_LOG, N_("System Log") }, + { SettingsManager::BOLD_QUEUE, N_("Download Queue") }, + { SettingsManager::BOLD_FINISHED_DOWNLOADS, N_("Finished Downloads") }, + { SettingsManager::BOLD_WAITING_USERS, N_("Waiting Users") }, + { SettingsManager::BOLD_FINISHED_UPLOADS, N_("Finished Uploads") }, { 0, 0 } }; Modified: dcplusplus/trunk/win32/TransferView.cpp =================================================================== --- dcplusplus/trunk/win32/TransferView.cpp 2008-01-19 23:29:06 UTC (rev 970) +++ dcplusplus/trunk/win32/TransferView.cpp 2008-01-21 19:13:08 UTC (rev 971) @@ -23,7 +23,6 @@ #include "WinUtil.h" #include "HoldRedraw.h" -#include <dcpp/ResourceManager.h> #include <dcpp/SettingsManager.h> #include <dcpp/ConnectionManager.h> #include <dcpp/DownloadManager.h> Modified: dcplusplus/trunk/win32/UCPage.cpp =================================================================== --- dcplusplus/trunk/win32/UCPage.cpp 2008-01-19 23:29:06 UTC (rev 970) +++ dcplusplus/trunk/win32/UCPage.cpp 2008-01-21 19:13:08 UTC (rev 971) @@ -29,12 +29,10 @@ PropPage::TextItem UCPage::texts[] = { { IDC_MOVE_UP, N_("Move &Up") }, -#ifdef PORT_ME - { IDC_MOVE_DOWN, ResourceManager::MOVE_DOWN }, - { IDC_ADD_MENU, ResourceManager::ADD }, - { IDC_CHANGE_MENU, ResourceManager::SETTINGS_CHANGE }, - { IDC_REMOVE_MENU, ResourceManager::REMOVE }, -#endif + { IDC_MOVE_DOWN, N_("Move &Down") }, + { IDC_ADD_MENU, N_("&Add") }, + { IDC_CHANGE_MENU, N_("&Change") }, + { IDC_REMOVE_MENU, N_("&Remove") }, { 0, 0 } }; Modified: dcplusplus/trunk/win32/UploadPage.cpp =================================================================== --- dcplusplus/trunk/win32/UploadPage.cpp 2008-01-19 23:29:06 UTC (rev 970) +++ dcplusplus/trunk/win32/UploadPage.cpp 2008-01-21 19:13:08 UTC (rev 971) @@ -30,18 +30,16 @@ #include "HashProgressDlg.h" PropPage::TextItem UploadPage::texts[] = { -#ifdef PORT_ME - { IDC_SETTINGS_SHARED_DIRECTORIES, ResourceManager::SETTINGS_SHARED_DIRECTORIES }, - { IDC_SETTINGS_SHARE_SIZE, ResourceManager::SETTINGS_SHARE_SIZE }, - { IDC_SHAREHIDDEN, ResourceManager::SETTINGS_SHARE_HIDDEN }, - { IDC_REMOVE, ResourceManager::REMOVE }, - { IDC_ADD, ResourceManager::SETTINGS_ADD_FOLDER }, - { IDC_RENAME, ResourceManager::SETTINGS_RENAME_FOLDER }, - { IDC_SETTINGS_UPLOADS_MIN_SPEED, ResourceManager::SETTINGS_UPLOADS_MIN_SPEED }, - { IDC_SETTINGS_KBPS, ResourceManager::KiBPS }, - { IDC_SETTINGS_UPLOADS_SLOTS, ResourceManager::SETTINGS_UPLOADS_SLOTS }, - { IDC_SETTINGS_ONLY_HASHED, ResourceManager::SETTINGS_ONLY_HASHED }, -#endif + { IDC_SETTINGS_SHARED_DIRECTORIES, N_("Shared directories") }, + { IDC_SETTINGS_SHARE_SIZE, N_("Total size:") }, + { IDC_SHAREHIDDEN, N_("Share hidden files") }, + { IDC_REMOVE, N_("&Remove") }, + { IDC_ADD, N_("&Add folder") }, + { IDC_RENAME, N_("Rename") }, + { IDC_SETTINGS_UPLOADS_MIN_SPEED, N_("Automatically open an extra slot if speed is below (0 = disable)") }, + { IDC_SETTINGS_KBPS, N_("KiB/s") }, + { IDC_SETTINGS_UPLOADS_SLOTS, N_("Upload slots") }, + { IDC_SETTINGS_ONLY_HASHED, N_("Note; Files appear in the share only after they've been hashed!") }, { 0, 0 } }; Modified: dcplusplus/trunk/win32/WindowsPage.cpp =================================================================== --- dcplusplus/trunk/win32/WindowsPage.cpp 2008-01-19 23:29:06 UTC (rev 970) +++ dcplusplus/trunk/win32/WindowsPage.cpp 2008-01-21 19:13:08 UTC (rev 971) @@ -27,54 +27,46 @@ PropPage::Item WindowsPage::items[] = { { 0, 0, PropPage::T_END } }; PropPage::TextItem WindowsPage::textItem[] = { -#ifdef PORT_ME - { IDC_SETTINGS_AUTO_OPEN, ResourceManager::SETTINGS_AUTO_OPEN }, - { IDC_SETTINGS_WINDOWS_OPTIONS, ResourceManager::SETTINGS_WINDOWS_OPTIONS }, - { IDC_SETTINGS_CONFIRM_OPTIONS, ResourceManager::SETTINGS_CONFIRM_DIALOG_OPTIONS }, -#endif + { IDC_SETTINGS_AUTO_OPEN, N_("Auto-open at startup") }, + { IDC_SETTINGS_WINDOWS_OPTIONS, N_("Window options") }, + { IDC_SETTINGS_CONFIRM_OPTIONS, N_("Confirm dialog options") }, { 0, 0 } }; WindowsPage::ListItem WindowsPage::listItems[] = { -#ifdef PORT_ME - { SettingsManager::OPEN_SYSTEM_LOG, ResourceManager::SYSTEM_LOG }, - { SettingsManager::OPEN_FAVORITE_USERS, ResourceManager::FAVORITE_USERS }, - { SettingsManager::OPEN_QUEUE, ResourceManager::DOWNLOAD_QUEUE }, - { SettingsManager::OPEN_FINISHED_DOWNLOADS, ResourceManager::FINISHED_DOWNLOADS }, - { SettingsManager::OPEN_WAITING_USERS, ResourceManager::WAITING_USERS }, - { SettingsManager::OPEN_FINISHED_UPLOADS, ResourceManager::FINISHED_UPLOADS }, - { SettingsManager::OPEN_SEARCH_SPY, ResourceManager::SEARCH_SPY }, - { SettingsManager::OPEN_NETWORK_STATISTICS, ResourceManager::NETWORK_STATISTICS }, - { SettingsManager::OPEN_NOTEPAD, ResourceManager::NOTEPAD }, - { SettingsManager::OPEN_PUBLIC, ResourceManager::PUBLIC_HUBS }, - { SettingsManager::OPEN_FAVORITE_HUBS, ResourceManager::FAVORITE_HUBS }, - { SettingsManager::OPEN_DOWNLOADS, ResourceManager::DOWNLOADS }, -#endif + { SettingsManager::OPEN_SYSTEM_LOG, N_("System Log") }, + { SettingsManager::OPEN_FAVORITE_USERS, N_("Favorite Users") }, + { SettingsManager::OPEN_QUEUE, N_("Download Queue") }, + { SettingsManager::OPEN_FINISHED_DOWNLOADS, N_("Finished Downloads") }, + { SettingsManager::OPEN_WAITING_USERS, N_("Waiting Users") }, + { SettingsManager::OPEN_FINISHED_UPLOADS, N_("Finished Uploads") }, + { SettingsManager::OPEN_SEARCH_SPY, N_("Search Spy") }, + { SettingsManager::OPEN_NETWORK_STATISTICS, N_("Network Statistics") }, + { SettingsManager::OPEN_NOTEPAD, N_("Notepad") }, + { SettingsManager::OPEN_PUBLIC, N_("Public Hubs") }, + { SettingsManager::OPEN_FAVORITE_HUBS, N_("Favorite Hubs") }, + { SettingsManager::OPEN_DOWNLOADS, N_("Downloads") }, { 0, 0 } }; WindowsPage::ListItem WindowsPage::optionItems[] = { -#ifdef PORT_ME - { SettingsManager::POPUP_PMS, ResourceManager::SETTINGS_POPUP_PMS }, - { SettingsManager::POPUP_HUB_PMS, ResourceManager::SETTINGS_POPUP_HUB_PMS }, - { SettingsManager::POPUP_BOT_PMS, ResourceManager::SETTINGS_POPUP_BOT_PMS }, - { SettingsManager::POPUNDER_FILELIST, ResourceManager::SETTINGS_POPUNDER_FILELIST }, - { SettingsManager::POPUNDER_PM, ResourceManager::SETTINGS_POPUNDER_PM }, - { SettingsManager::JOIN_OPEN_NEW_WINDOW, ResourceManager::SETTINGS_OPEN_NEW_WINDOW }, - { SettingsManager::IGNORE_HUB_PMS, ResourceManager::SETTINGS_IGNORE_HUB_PMS }, - { SettingsManager::IGNORE_BOT_PMS, ResourceManager::SETTINGS_IGNORE_BOT_PMS }, - { SettingsManager::TOGGLE_ACTIVE_WINDOW, ResourceManager::SETTINGS_TOGGLE_ACTIVE_WINDOW }, - { SettingsManager::PROMPT_PASSWORD, ResourceManager::SETTINGS_PROMPT_PASSWORD }, -#endif + { SettingsManager::POPUP_PMS, N_("Open private messages in their own window") }, + { SettingsManager::POPUP_HUB_PMS, N_("Open private messages from bots in their own window") }, + { SettingsManager::POPUP_BOT_PMS, N_("Open private messages from the hub in their own window") }, + { SettingsManager::POPUNDER_FILELIST, N_("Open new file list windows in the background") }, + { SettingsManager::POPUNDER_PM, N_("Open new private message windows in the background") }, + { SettingsManager::JOIN_OPEN_NEW_WINDOW, N_("Open new window when using /join") }, + { SettingsManager::IGNORE_HUB_PMS, N_("Ignore private messages from the hub") }, + { SettingsManager::IGNORE_BOT_PMS, N_("Ignore private messages from bots") }, + { SettingsManager::TOGGLE_ACTIVE_WINDOW, N_("Toggle window when selecting an active tab") }, + { SettingsManager::PROMPT_PASSWORD, N_("Popup box to input password for hubs") }, { 0, 0 } }; WindowsPage::ListItem WindowsPage::confirmItems[] = { -#ifdef PORT_ME - { SettingsManager::CONFIRM_EXIT, ResourceManager::SETTINGS_CONFIRM_EXIT }, - { SettingsManager::CONFIRM_HUB_REMOVAL, ResourceManager::SETTINGS_CONFIRM_HUB_REMOVAL }, - { SettingsManager::CONFIRM_ITEM_REMOVAL, ResourceManager::SETTINGS_CONFIRM_ITEM_REMOVAL }, -#endif + { SettingsManager::CONFIRM_EXIT, N_("Confirm application exit") }, + { SettingsManager::CONFIRM_HUB_REMOVAL, N_("Confirm favorite hub removal") }, + { SettingsManager::CONFIRM_ITEM_REMOVAL, N_("Confirm item removal in download queue") }, { 0, 0 } }; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |