Remove beginning/ending spaces in translations

Adding space padding makes translations more difficult by increasing
string counts
This commit is contained in:
Seth Hillbrand 2020-10-20 12:05:04 -07:00
parent 6cbe2131ab
commit 4085757aeb
49 changed files with 210 additions and 145 deletions

View File

@ -472,7 +472,7 @@ bool BOARD_ADAPTER::createBoardPolygon( wxString* aErrorMsg )
success = m_board->GetBoardPolygonOutlines( m_board_poly, &msg );
if( aErrorMsg )
*aErrorMsg = _( "Board outline is not closed: " ) + msg;
*aErrorMsg = _( "Board outline is not closed:" ) + wxS( " " )+ msg;
}
return success;

View File

@ -328,7 +328,7 @@ void BM2CMP_FRAME::OnLoadFile( wxCommandEvent& event )
path = m_mruPath;
wxFileDialog fileDlg( this, _( "Choose Image" ), path, wxEmptyString,
_( "Image Files " ) + wxImage::GetImageExtWildcard(),
_( "Image Files" ) + wxS( " " )+ wxImage::GetImageExtWildcard(),
wxFD_OPEN | wxFD_FILE_MUST_EXIST );
int diag = fileDlg.ShowModal();

View File

@ -210,7 +210,7 @@ void PANEL_COLOR_SETTINGS::createThemeList( const wxString& aCurrent )
wxString name = settings->GetName();
if( settings->IsReadOnly() )
name += _( " (read-only)" );
name += wxS( " " ) + _( "(read-only)" );
int pos = m_cbTheme->Append( name, static_cast<void*>( settings ) );

View File

@ -176,14 +176,14 @@ wxString WX_HTML_REPORT_PANEL::generateHtml( const REPORT_LINE& aLine )
switch( aLine.severity )
{
case RPT_SEVERITY_ERROR:
retv = "<font color=\"red\" size=3>" + _( "Error: " ) + "</font>"
retv = "<font color=\"red\" size=3>" + _( "Error:" ) + " </font>"
"<font size=3>" + aLine.message + "</font><br>";
break;
case RPT_SEVERITY_WARNING:
retv = "<font size=3>" + _( "Warning: " ) + aLine.message + "</font><br>";
retv = "<font size=3>" + _( "Warning:" ) + wxS( " " )+ aLine.message + "</font><br>";
break;
case RPT_SEVERITY_INFO:
retv = "<font color=\"dark gray\" size=3>" + _( "Info: " ) + aLine.message + "</font><br>";
retv = "<font color=\"dark gray\" size=3>" + _( "Info:" ) + wxS( " " )+ aLine.message + "</font><br>";
break;
case RPT_SEVERITY_ACTION:
retv = "<font color=\"dark green\" size=3>" + aLine.message + "</font><br>";
@ -201,11 +201,11 @@ wxString WX_HTML_REPORT_PANEL::generatePlainText( const REPORT_LINE& aLine )
switch( aLine.severity )
{
case RPT_SEVERITY_ERROR:
return _( "Error: " ) + aLine.message + wxT( "\n" );
return _( "Error:" ) + wxS( " " )+ aLine.message + wxT( "\n" );
case RPT_SEVERITY_WARNING:
return _( "Warning: " ) + aLine.message + wxT( "\n" );
return _( "Warning:" ) + wxS( " " )+ aLine.message + wxT( "\n" );
case RPT_SEVERITY_INFO:
return _( "Info: " ) + aLine.message + wxT( "\n" );
return _( "Info:" ) + wxS( " " )+ aLine.message + wxT( "\n" );
default:
return aLine.message + wxT( "\n" );
}

View File

@ -35,13 +35,13 @@ EDA_POSITION_CTRL::EDA_POSITION_CTRL( wxWindow* parent, const wxString& title, c
{
m_UserUnit = user_unit;
m_TextX = new wxStaticText( parent, -1, title + _( " X:" ) );
m_TextX = new wxStaticText( parent, -1, title + wxS( " " ) + _( "X:" ) );
BoxSizer->Add( m_TextX, 0, wxGROW | wxLEFT | wxRIGHT | wxTOP, 5 );
m_FramePosX = new wxTextCtrl( parent, -1, wxEmptyString, wxDefaultPosition );
BoxSizer->Add( m_FramePosX, 0, wxGROW | wxLEFT | wxRIGHT | wxBOTTOM, 5 );
m_TextY = new wxStaticText( parent, -1, title + _( " Y:" ) );
m_TextY = new wxStaticText( parent, -1, title + wxS( " " ) + _( "Y:" ) );
BoxSizer->Add( m_TextY, 0, wxGROW | wxLEFT | wxRIGHT | wxTOP, 5 );
m_FramePosY = new wxTextCtrl( parent, -1, wxEmptyString );

View File

@ -482,10 +482,10 @@ bool FILENAME_RESOLVER::addPath( const SEARCH_PATH& aPath )
wxString msg = _( "Alias: " );
msg.append( tpath.m_alias );
msg.append( wxT( "\n" ) );
msg.append( _( "This path: " ) );
msg.append( _( "This path:" ) + wxS( " " ));
msg.append( tpath.m_pathvar );
msg.append( wxT( "\n" ) );
msg.append( _( "Existing path: " ) );
msg.append( _( "Existing path:" ) + wxS( " " ));
msg.append( sPL->m_pathvar );
wxMessageBox( msg, _( "Bad alias (duplicate name)" ) );

View File

@ -309,7 +309,7 @@ bool COLOR_SETTINGS::migrateSchema0to1()
fpsettings->erase( "fpedit" );
fpsettings->Load();
fpsettings->SetName( fpsettings->GetName() + _( " (Footprints)" ) );
fpsettings->SetName( fpsettings->GetName() + wxS( " " ) + _( "(Footprints)" ) );
m_manager->Save( fpsettings );
// Now we can get rid of our own copy

View File

@ -310,7 +310,7 @@ void SCH_EDIT_FRAME::ExecuteRemoteCommand( const char* cmdline )
GetToolManager()->RunAction( EE_ACTIONS::updateNetHighlighting, true );
SetStatusText( _( "Selected net: " ) + UnescapeString( netName ) );
SetStatusText( _( "Selected net:" ) + wxS( " " ) + UnescapeString( netName ) );
return;
}

View File

@ -200,7 +200,7 @@ void PANEL_EESCHEMA_COLOR_SETTINGS::createSwatches()
wxString name = LayerName( layer );
if( layer == LAYER_SCHEMATIC_GRID_AXES )
name += _( " (symbol editor only)" );
name += wxS( " " ) + _( "(symbol editor only)" );
createSwatch( layer, name );
}

View File

@ -1187,7 +1187,7 @@ void SCH_EDIT_FRAME::UpdateTitle()
if( fn.FileExists() )
{
if( !fn.IsFileWritable() )
append = _( "[Read Only] " );
append = _( "[Read Only]" ) + wxS( " " );
}
else
append = nofile;

View File

@ -169,7 +169,7 @@ wxString SCH_FIELD::GetShownText( int aDepth ) const
else if( m_Parent && m_Parent->Type() == SCH_SHEET_T )
{
if( m_id == SHEETFILENAME )
text = _( "File: " ) + text;
text = _( "File:" ) + wxS( " " )+ text;
}
return text;

View File

@ -246,7 +246,7 @@ void SYMBOL_TREE_SYNCHRONIZING_ADAPTER::GetValue( wxVariant& aVariant, wxDataVie
if( node->m_Type == LIB_TREE_NODE::LIB )
{
if( !m_libMgr->IsLibraryLoaded( node->m_Name ) )
aVariant = _( "(failed to load) " ) + aVariant.GetString();
aVariant = _( "(failed to load)" ) + wxS( " " ) + aVariant.GetString();
}
break;

View File

@ -151,30 +151,61 @@ void EE_INSPECTION_TOOL::checkPart( LIB_PART* aPart )
dup_error++;
/* TODO I dare someone to find a way to make happy translators on this thing! Lorenzo */
msg = wxString::Format( _( "<b>Duplicate pin %s</b> \"%s\" at location <b>(%.3f, %.3f)</b>"
" conflicts with pin %s \"%s\" at location <b>(%.3f, %.3f)</b>" ),
next->GetNumber(),
next->GetName(),
next->GetPosition().x / 1000.0, -next->GetPosition().y / 1000.0,
pin->GetNumber(),
pin->GetName(),
pin->GetPosition().x / 1000.0, -pin->GetPosition().y / 1000.0 );
if( aPart->GetUnitCount() > 1 )
if( aPart->HasConversion() && next->GetConvert() )
{
msg += wxString::Format( _( " in units %c and %c" ),
'A' + next->GetUnit() - 1,
'A' + pin->GetUnit() - 1 );
}
if( aPart->HasConversion() )
{
if( next->GetConvert() )
msg += _( " of converted" );
if( aPart->GetUnitCount() <= 1 )
{
msg = wxString::Format( _( "<b>Duplicate pin %s</b> \"%s\" at location <b>(%.3f, %.3f)</b>"
" conflicts with pin %s \"%s\" at location <b>(%.3f, %.3f)</b> of converted" ),
next->GetNumber(),
next->GetName(),
next->GetPosition().x / 1000.0, -next->GetPosition().y / 1000.0,
pin->GetNumber(),
pin->GetName(),
pin->GetPosition().x / 1000.0, -pin->GetPosition().y / 1000.0 );
}
else
msg += _( " of normal" );
{
msg = wxString::Format( _( "<b>Duplicate pin %s</b> \"%s\" at location <b>(%.3f, %.3f)</b>"
" conflicts with pin %s \"%s\" at location <b>(%.3f, %.3f)</b>"
" in units %c and %c of converted" ),
next->GetNumber(),
next->GetName(),
next->GetPosition().x / 1000.0, -next->GetPosition().y / 1000.0,
pin->GetNumber(),
pin->GetName(),
pin->GetPosition().x / 1000.0, -pin->GetPosition().y / 1000.0,
'A' + next->GetUnit() - 1,
'A' + pin->GetUnit() - 1 );
}
}
else
{
if( aPart->GetUnitCount() <= 1 )
{
msg = wxString::Format( _( "<b>Duplicate pin %s</b> \"%s\" at location <b>(%.3f, %.3f)</b>"
" conflicts with pin %s \"%s\" at location <b>(%.3f, %.3f)</b>" ),
next->GetNumber(),
next->GetName(),
next->GetPosition().x / 1000.0, -next->GetPosition().y / 1000.0,
pin->GetNumber(),
pin->GetName(),
pin->GetPosition().x / 1000.0, -pin->GetPosition().y / 1000.0 );
}
else
{
msg = wxString::Format( _( "<b>Duplicate pin %s</b> \"%s\" at location <b>(%.3f, %.3f)</b>"
" conflicts with pin %s \"%s\" at location <b>(%.3f, %.3f)</b>"
" in units %c and %c" ),
next->GetNumber(),
next->GetName(),
next->GetPosition().x / 1000.0, -next->GetPosition().y / 1000.0,
pin->GetNumber(),
pin->GetName(),
pin->GetPosition().x / 1000.0, -pin->GetPosition().y / 1000.0,
'A' + next->GetUnit() - 1,
'A' + pin->GetUnit() - 1 );
}
}
msg += wxT( ".<br>" );
@ -200,14 +231,14 @@ void EE_INSPECTION_TOOL::checkPart( LIB_PART* aPart )
pin->GetPosition().x / 1000.0, -pin->GetPosition().y / 1000.0 );
if( aPart->GetUnitCount() > 1 )
msg += wxString::Format( _( " in symbol %c" ), 'A' + pin->GetUnit() - 1 );
msg += wxString::Format( wxS( " " ) + _( "in symbol %c" ), 'A' + pin->GetUnit() - 1 );
if( aPart->HasConversion() )
{
if( pin->GetConvert() )
msg += _( " of converted" );
msg += wxS( " " ) + _( "of converted" );
else
msg += _( " of normal" );
msg += wxS( " " ) + _( "of normal" );
}
msg += wxT( ".<br>" );

View File

@ -379,7 +379,7 @@ int SCH_DRAWING_TOOLS::PlaceImage( const TOOL_EVENT& aEvent )
{
m_toolMgr->RunAction( EE_ACTIONS::clearSelection, true );
wxFileDialog dlg( m_frame, _( "Choose Image" ), wxEmptyString, wxEmptyString,
_( "Image Files " ) + wxImage::GetImageExtWildcard(), wxFD_OPEN );
_( "Image Files" ) + wxS( " " ) + wxImage::GetImageExtWildcard(), wxFD_OPEN );
if( dlg.ShowModal() != wxID_OK )
continue;

View File

@ -459,7 +459,7 @@ int SCH_EDITOR_CONTROL::FindNext( const TOOL_EVENT& aEvent )
: _( "Reached end of sheet." );
// Show the popup during the time period the user can wrap the search
m_frame->ShowFindReplaceStatus( msg + _( " Find again to wrap around to the start." ),
m_frame->ShowFindReplaceStatus( msg + wxS( " " ) + _( "Find again to wrap around to the start." ),
4000 );
wrapAroundTimer.StartOnce( 4000 );
}

View File

@ -664,7 +664,7 @@ void GERBVIEW_FRAME::UpdateTitleAndInfo()
title.Printf( wxT( "%s%s \u2014 " ) + _( "GerbView" ),
filename.GetFullName(),
gerber->m_IsX2_file ? _( " (with X2 attributes)" )
gerber->m_IsX2_file ? wxS( " " ) + _( "(with X2 attributes)" )
: wxString( wxEmptyString ) );
SetTitle( title );

View File

@ -116,10 +116,10 @@ void GERBVIEW_FRAME::ReCreateAuxiliaryToolbar()
ID_GBR_AUX_TOOLBAR_PCB_CMP_CHOICE );
if( !m_cmpText )
m_cmpText = new wxStaticText( m_auxiliaryToolBar, wxID_ANY, _( "Cmp: ") );
m_cmpText = new wxStaticText( m_auxiliaryToolBar, wxID_ANY, _( "Cmp:" ) + wxS( " " ) );
m_SelComponentBox->SetToolTip( _("Highlight items belonging to this component") );
m_cmpText->SetLabel( _( "Cmp: ") ); // can change when changing the language
m_cmpText->SetLabel( _( "Cmp:" ) + wxS( " " ) ); // can change when changing the language
m_auxiliaryToolBar->AddControl( m_cmpText );
m_auxiliaryToolBar->AddControl( m_SelComponentBox );
m_auxiliaryToolBar->AddSpacer( 5 );

View File

@ -601,7 +601,7 @@ void KICAD_MANAGER_FRAME::ProjectChanged()
title += fn.GetName();
if( !fn.IsDirWritable() )
title += _( " [Read Only]" );
title += wxS( " " ) + _( "[Read Only]" );
title += wxS(" \u2014 ");
}

View File

@ -49,12 +49,12 @@ PROJECT_TEMPLATE::PROJECT_TEMPLATE( const wxString& aPath )
if( !wxFileName::DirExists( m_basePath.GetPath() ) )
{
// Error, the path doesn't exist!
m_title = _( "Could open the template path! " ) + aPath;
m_title = _( "Could open the template path!" ) + wxS( " " ) + aPath;
}
else if( !wxFileName::DirExists( m_metaPath.GetPath() ) )
{
// Error, the meta information directory doesn't exist!
m_title = _( "Couldn't open the meta information directory for this template! " ) +
m_title = _( "Couldn't open the meta information directory for this template!" ) + wxS( " " ) +
m_metaPath.GetPath();
}
else if( !wxFileName::FileExists( m_metaHtmlFile.GetFullPath() ) )

View File

@ -843,7 +843,7 @@ WS_DATA_ITEM* PL_EDITOR_FRAME::AddPageLayoutItem( int aType )
case WS_DATA_ITEM::WS_BITMAP:
{
wxFileDialog fileDlg( this, _( "Choose Image" ), wxEmptyString, wxEmptyString,
_( "Image Files " ) + wxImage::GetImageExtWildcard(), wxFD_OPEN );
_( "Image Files" ) + wxS( " " ) + wxImage::GetImageExtWildcard(), wxFD_OPEN );
if( fileDlg.ShowModal() != wxID_OK )
return NULL;

View File

@ -90,7 +90,7 @@ wxString BOARD_ITEM::LayerMaskDescribe() const
wxString layerInfo = board->GetLayerName( static_cast<PCB_LAYER_ID>( bit ) );
if( testLayers.count() > 1 )
layerInfo << _( " and others" );
layerInfo << wxS( " " ) + _( "and others" );
return layerInfo;
}

View File

@ -772,7 +772,7 @@ void MODULE::GetMsgPanelInfo( EDA_DRAW_FRAME* aFrame, std::vector<MSG_PANEL_ITEM
if( m_Attributs & MOD_EXCLUDE_FROM_BOM )
addToken( &attrs, _( "exclude from BOM" ) );
aList.emplace_back( _( "Status: " ) + status, _( "Attributes: " ) + attrs, BROWN );
aList.emplace_back( _( "Status: " ) + status, _( "Attributes:" ) + wxS( " " ) + attrs, BROWN );
msg.Printf( "%.2f", GetOrientationDegrees() );
aList.emplace_back( _( "Rotation" ), msg, BROWN );

View File

@ -527,10 +527,12 @@ void DIALOG_BOARD_REANNOTATE::LogChangePlan()
if( !m_ExcludeArray.empty() )
{
message += _( "\nExcluding: " );
for( wxString& Exclude : m_ExcludeArray ) //Show the refdes we are excluding
message += Exclude + " ";
message += _( " from reannotation\n\n" );
wxString excludes;
for( wxString& exclude : m_ExcludeArray ) //Show the refdes we are excluding
excludes += exclude + " ";
message += wxString::Format( _( "\nExcluding: %s from reannotation\n\n" ), excludes );
}
message += _( "\n Change Array\n***********************\n" );
@ -539,7 +541,7 @@ void DIALOG_BOARD_REANNOTATE::LogChangePlan()
{
message += wxString::Format( "%s -> %s %s %s\n", Change.OldRefDesString, Change.NewRefDes,
ActionMessage[Change.Action],
UpdateRefDes != Change.Action ? _( " will be ignored" ) : wxString("") );
UpdateRefDes != Change.Action ? wxS( " " ) + _( "will be ignored" ) : wxString("") );
}
ShowReport( message, RPT_SEVERITY_INFO );
@ -932,6 +934,6 @@ RefDesChange* DIALOG_BOARD_REANNOTATE::GetNewRefDes( MODULE* aMod )
if( aMod->m_Uuid == m_ChangeArray[i].Uuid )
return ( &m_ChangeArray[i] );
ShowReport( _( "Module not found in changelist " ) + aMod->GetReference(), RPT_SEVERITY_ERROR );
ShowReport( _( "Module not found in changelist" ) + wxS( " " )+ aMod->GetReference(), RPT_SEVERITY_ERROR );
return nullptr; //Should never happen
}

View File

@ -643,35 +643,35 @@ void DIALOG_BOARD_STATISTICS::saveReportClicked( wxCommandEvent& aEvent )
}
msg << _( "PCB statistics report\n=====================" ) << "\n";
msg << _( "- Date: " ) << wxDateTime::Now().Format() << "\n";
msg << _( "- Project: " ) << Prj().GetProjectName() << "\n";
msg << _( "- Board name: " ) << boardName << "\n";
msg << wxS( "- " ) << _( "Date" ) << wxS( ": " ) << wxDateTime::Now().Format() << "\n";
msg << wxS( "- " ) << _( "Project" ) << wxS( ": " )<< Prj().GetProjectName() << "\n";
msg << wxS( "- " ) << _( "Board name" ) << wxS( ": " )<< boardName << "\n";
msg << "\n";
msg << _( "Board\n-----" ) << "\n";
msg << _( "Board" ) << "\n-----\n";
if( m_hasOutline )
{
msg << _( "- Width: " ) << MessageTextFromValue( GetUserUnits(), m_boardWidth ) << "\n";
msg << _( "- Height: " ) << MessageTextFromValue( GetUserUnits(), m_boardHeight ) << "\n";
msg << _( "- Area: " ) << MessageTextFromValue( GetUserUnits(), m_boardArea, true, EDA_DATA_TYPE::AREA );
msg << wxS( "- " ) << _( "Width" ) << wxS( ": " ) << MessageTextFromValue( GetUserUnits(), m_boardWidth ) << "\n";
msg << wxS( "- " ) << _( "Height" ) << wxS( ": " )<< MessageTextFromValue( GetUserUnits(), m_boardHeight ) << "\n";
msg << wxS( "- " ) << _( "Area" ) + wxS( ": " ) << MessageTextFromValue( GetUserUnits(), m_boardArea, true, EDA_DATA_TYPE::AREA );
msg << "\n";
}
else
{
msg << _( "- Width: " ) << _( "unknown" ) << "\n";
msg << _( "- Height: " ) << _( "unknown" ) << "\n";
msg << _( "- Area: " ) << _( "unknown" ) << "\n";
msg << wxS( "- " ) << _( "Width" ) << wxS( ": " ) << _( "unknown" ) << "\n";
msg << wxS( "- " ) << _( "Height" ) << wxS( ": " ) << _( "unknown" ) << "\n";
msg << wxS( "- " ) << _( "Area" ) << wxS( ": " ) << _( "unknown" ) << "\n";
}
msg << "\n";
msg << _( "Pads\n----" ) << "\n";
msg << _( "Pads" ) << "\n----\n";
for( auto& type : m_padsTypes )
msg << "- " << type.title << " " << type.qty << "\n";
msg << "\n";
msg << _( "Vias\n----" ) << "\n";
msg << _( "Vias" ) << "\n----\n";
for( auto& type : m_viasTypes )
msg << "- " << type.title << " " << type.qty << "\n";
@ -707,13 +707,13 @@ void DIALOG_BOARD_STATISTICS::saveReportClicked( wxCommandEvent& aEvent )
//Write components amount to file
msg << "\n";
msg << _( "Components\n----------" ) << "\n";
msg << _( "Components" ) << "\n----------\n";
msg << "\n";
printGridToStringAsTable( m_gridComponents, msg, false, false, true );
msg << "\n";
msg << _( "Drill holes\n-----------" ) << "\n";
msg << _( "Drill holes" ) << "\n-----------\n";
msg << "\n";
printGridToStringAsTable( m_gridDrills, msg, false, true, false );

View File

@ -220,7 +220,7 @@ void PCB_EDIT_FRAME::OnExportIDF3( wxCommandEvent& event )
if( !Export_IDF3( GetBoard(), fullFilename, thou, aXRef, aYRef ) )
{
wxString msg = _( "Unable to create " ) + fullFilename;
wxString msg = wxString::Format( _( "Unable to create %s" ), fullFilename );
wxMessageBox( msg );
return;
}

View File

@ -703,27 +703,27 @@ void DIALOG_PAD_PROPERTIES::displayPrimitivesList()
for( wxString& s : bs_info )
s.Empty();
bs_info[4] = _( "width " ) + MessageTextFromValue( m_units, primitive->GetWidth() );
bs_info[4] = _( "width" ) + wxS( " " )+ MessageTextFromValue( m_units, primitive->GetWidth() );
switch( primitive->GetShape() )
{
case S_SEGMENT: // usual segment : line with rounded ends
bs_info[0] = _( "Segment" );
bs_info[1] = _( "from " ) + formatCoord( m_units, primitive->GetStart() );
bs_info[2] = _( "to " ) + formatCoord( m_units, primitive->GetEnd() );
bs_info[1] = _( "from" ) + wxS( " " )+ formatCoord( m_units, primitive->GetStart() );
bs_info[2] = _( "to" ) + wxS( " " )+ formatCoord( m_units, primitive->GetEnd() );
break;
case S_CURVE: // Bezier segment
bs_info[0] = _( "Bezier" );
bs_info[1] = _( "from " ) + formatCoord( m_units, primitive->GetStart() );
bs_info[2] = _( "to " ) + formatCoord( m_units, primitive->GetEnd() );
bs_info[1] = _( "from" ) + wxS( " " )+ formatCoord( m_units, primitive->GetStart() );
bs_info[2] = _( "to" ) + wxS( " " )+ formatCoord( m_units, primitive->GetEnd() );
break;
case S_ARC: // Arc with rounded ends
bs_info[0] = _( "Arc" );
bs_info[1] = _( "center " ) + formatCoord( m_units, primitive->GetCenter() );
bs_info[2] = _( "start " ) + formatCoord( m_units, primitive->GetArcStart() );
bs_info[3] = _( "angle " ) + FormatAngle( primitive->GetAngle() );
bs_info[1] = _( "center" ) + wxS( " " )+ formatCoord( m_units, primitive->GetCenter() );
bs_info[2] = _( "start" ) + wxS( " " )+ formatCoord( m_units, primitive->GetArcStart() );
bs_info[3] = _( "angle" ) + wxS( " " )+ FormatAngle( primitive->GetAngle() );
break;
case S_CIRCLE: // ring or circle
@ -733,7 +733,7 @@ void DIALOG_PAD_PROPERTIES::displayPrimitivesList()
bs_info[0] = _( "circle" );
bs_info[1] = formatCoord( m_units, primitive->GetStart() );
bs_info[2] = _( "radius " ) + MessageTextFromValue( m_units, primitive->GetRadius() );
bs_info[2] = _( "radius" ) + wxS( " " )+ MessageTextFromValue( m_units, primitive->GetRadius() );
break;
case S_POLYGON: // polygon

View File

@ -90,7 +90,7 @@ bool DIALOG_PNS_LENGTH_TUNING_SETTINGS::TransferDataToWindow()
case PNS::PNS_MODE_TUNE_DIFF_PAIR_SKEW:
SetTitle( _( "Differential Pair Skew Tuning" ) );
m_legend->SetBitmap( KiBitmap( tune_diff_pair_skew_legend_xpm ) );
m_targetLengthLabel->SetLabel( _( "Target skew: " ) );
m_targetLengthLabel->SetLabel( _( "Target skew:" ) + wxS( " " ) );
m_targetLength.SetValue( m_settings.m_targetSkew );
break;

View File

@ -59,7 +59,7 @@ bool DRC_RULE_CONDITION::EvaluateFor( const BOARD_ITEM* aItemA, const BOARD_ITEM
[&]( const wxString& aMessage, int aOffset )
{
if( aReporter )
aReporter->Report( _( "ERROR: " ) + aMessage );
aReporter->Report( _( "ERROR:" ) + wxS( " " )+ aMessage );
} );
BOARD_ITEM* a = const_cast<BOARD_ITEM*>( aItemA );

View File

@ -118,13 +118,13 @@ bool DRC_TEST_PROVIDER_ANNULUS::Run()
std::shared_ptr<DRC_ITEM> drcItem = DRC_ITEM::Create( DRCE_ANNULAR_WIDTH );
if( fail_min )
m_msg.Printf( drcItem->GetErrorText() + _( " (%s min annular width %s; actual %s)" ),
m_msg.Printf( drcItem->GetErrorText() + wxS( " " ) + _( "(%s min annular width %s; actual %s)" ),
constraint.GetName(),
MessageTextFromValue( userUnits(), v_min ),
MessageTextFromValue( userUnits(), annulus ) );
if( fail_max )
m_msg.Printf( drcItem->GetErrorText() + _( " (%s max annular width %s; actual %s)" ),
m_msg.Printf( drcItem->GetErrorText() + wxS( " " ) + _( "(%s max annular width %s; actual %s)" ),
constraint.GetName(),
MessageTextFromValue( userUnits(), v_max ),
MessageTextFromValue( userUnits(), annulus ) );

View File

@ -234,7 +234,7 @@ void DRC_TEST_PROVIDER_COPPER_CLEARANCE::testCopperDrawItem( BOARD_ITEM* aItem )
{
std::shared_ptr<DRC_ITEM> drcItem = DRC_ITEM::Create( DRCE_CLEARANCE );
m_msg.Printf( drcItem->GetErrorText() + _( " (%s clearance %s; actual %s)" ),
m_msg.Printf( drcItem->GetErrorText() + wxS( " " ) + _( "(%s clearance %s; actual %s)" ),
constraint.GetName(),
MessageTextFromValue( userUnits(), minClearance ),
MessageTextFromValue( userUnits(), std::max( 0, actual ) ) );
@ -297,7 +297,7 @@ void DRC_TEST_PROVIDER_COPPER_CLEARANCE::testCopperDrawItem( BOARD_ITEM* aItem )
std::shared_ptr<DRC_ITEM> drcItem = DRC_ITEM::Create( DRCE_CLEARANCE );
m_msg.Printf( drcItem->GetErrorText() + _( " (%s clearance %s; actual %s)" ),
m_msg.Printf( drcItem->GetErrorText() + wxS( " " ) + _( "(%s clearance %s; actual %s)" ),
constraint.GetName(),
MessageTextFromValue( userUnits(), minClearance ),
MessageTextFromValue( userUnits(), actual ) );
@ -406,7 +406,7 @@ void DRC_TEST_PROVIDER_COPPER_CLEARANCE::doTrackDrc( TRACK* aRefSeg, PCB_LAYER_I
{
std::shared_ptr<DRC_ITEM> drcItem = DRC_ITEM::Create( DRCE_CLEARANCE );
m_msg.Printf( drcItem->GetErrorText() + _( " (%s clearance %s; actual %s)" ),
m_msg.Printf( drcItem->GetErrorText() + wxS( " " ) + _( "(%s clearance %s; actual %s)" ),
constraint.GetName(),
MessageTextFromValue( userUnits(), minClearance ),
MessageTextFromValue( userUnits(), actual ) );
@ -482,7 +482,7 @@ void DRC_TEST_PROVIDER_COPPER_CLEARANCE::doTrackDrc( TRACK* aRefSeg, PCB_LAYER_I
{
std::shared_ptr<DRC_ITEM> drcItem = DRC_ITEM::Create( DRCE_CLEARANCE );
m_msg.Printf( drcItem->GetErrorText() + _( " (%s clearance %s; actual %s)" ),
m_msg.Printf( drcItem->GetErrorText() + wxS( " " ) + _( "(%s clearance %s; actual %s)" ),
constraint.GetName(),
MessageTextFromValue( userUnits(), minClearance ),
MessageTextFromValue( userUnits(), actual ) );
@ -580,7 +580,7 @@ void DRC_TEST_PROVIDER_COPPER_CLEARANCE::doTrackDrc( TRACK* aRefSeg, PCB_LAYER_I
actual = std::max( 0, actual - halfWidth );
std::shared_ptr<DRC_ITEM> drcItem = DRC_ITEM::Create( DRCE_CLEARANCE );
m_msg.Printf( drcItem->GetErrorText() + _( " (%s clearance %s; actual %s)" ),
m_msg.Printf( drcItem->GetErrorText() + wxS( " " ) + _( "(%s clearance %s; actual %s)" ),
constraint.GetName(),
MessageTextFromValue( userUnits(), minClearance ),
MessageTextFromValue( userUnits(), actual ) );
@ -684,7 +684,7 @@ void DRC_TEST_PROVIDER_COPPER_CLEARANCE::doPadToPadsDrc( int aRefPadIdx,
{
std::shared_ptr<DRC_ITEM> drcItem = DRC_ITEM::Create( DRCE_SHORTING_ITEMS );
m_msg.Printf( drcItem->GetErrorText() + _( " (nets %s and %s)" ),
m_msg.Printf( drcItem->GetErrorText() + wxS( " " ) + _( "(nets %s and %s)" ),
pad->GetNetname(), refPad->GetNetname() );
drcItem->SetErrorMessage( m_msg );
@ -764,7 +764,7 @@ void DRC_TEST_PROVIDER_COPPER_CLEARANCE::doPadToPadsDrc( int aRefPadIdx,
{
std::shared_ptr<DRC_ITEM> drcItem = DRC_ITEM::Create( DRCE_CLEARANCE );
m_msg.Printf( drcItem->GetErrorText() + _( " (%s clearance %s; actual %s)" ),
m_msg.Printf( drcItem->GetErrorText() + wxS( " " ) + _( "(%s clearance %s; actual %s)" ),
constraint.GetName(),
MessageTextFromValue( userUnits(), minClearance ),
MessageTextFromValue( userUnits(), actual ) );
@ -950,7 +950,7 @@ void DRC_TEST_PROVIDER_COPPER_CLEARANCE::testZones()
{
drcItem = DRC_ITEM::Create( DRCE_CLEARANCE );
m_msg.Printf( drcItem->GetErrorText() + _( " (%s clearance %s; actual %s)" ),
m_msg.Printf( drcItem->GetErrorText() + wxS( " " ) + _( "(%s clearance %s; actual %s)" ),
constraint.GetName(),
MessageTextFromValue( userUnits(), zone2zoneClearance ),
MessageTextFromValue( userUnits(), conflict.second ) );

View File

@ -113,7 +113,7 @@ void DRC_TEST_PROVIDER_COURTYARD_CLEARANCE::testFootprintCourtyardDefinitions()
std::shared_ptr<DRC_ITEM> drcItem = DRC_ITEM::Create( DRCE_MALFORMED_COURTYARD );
m_msg.Printf( drcItem->GetErrorText() + _( " (not a closed shape)" ) );
m_msg.Printf( drcItem->GetErrorText() + wxS( " " ) + _( "(not a closed shape)" ) );
drcItem->SetErrorMessage( m_msg );
drcItem->SetItems( footprint );

View File

@ -84,7 +84,7 @@ bool DRC_TEST_PROVIDER_DISALLOW::Run()
{
std::shared_ptr<DRC_ITEM> drcItem = DRC_ITEM::Create( DRCE_ALLOWED_ITEMS );
m_msg.Printf( drcItem->GetErrorText() + _( " (%s)" ),
m_msg.Printf( drcItem->GetErrorText() + wxS( " (%s)" ),
constraint.GetName() );
drcItem->SetErrorMessage( m_msg );

View File

@ -187,7 +187,7 @@ bool DRC_TEST_PROVIDER_EDGE_CLEARANCE::Run()
{
std::shared_ptr<DRC_ITEM> drcItem = DRC_ITEM::Create( DRCE_COPPER_EDGE_CLEARANCE );
m_msg.Printf( drcItem->GetErrorText() + _( " (%s clearance %s; actual %s)" ),
m_msg.Printf( drcItem->GetErrorText() + wxS( " " ) + _( "(%s clearance %s; actual %s)" ),
constraint.GetName(),
MessageTextFromValue( userUnits(), minClearance ),
MessageTextFromValue( userUnits(), actual ) );
@ -244,7 +244,7 @@ bool DRC_TEST_PROVIDER_EDGE_CLEARANCE::Run()
if( minClearance > 0 )
{
m_msg.Printf( drcItem->GetErrorText() + _( " (%s clearance %s; actual %s)" ),
m_msg.Printf( drcItem->GetErrorText() + wxS( " " ) + _( "(%s clearance %s; actual %s)" ),
constraint.GetName(),
MessageTextFromValue( userUnits(), minClearance ),
MessageTextFromValue( userUnits(), actual ) );

View File

@ -260,7 +260,7 @@ bool DRC_TEST_PROVIDER_HOLE_CLEARANCE::doPadToPadHoleDrc( int aRefPadIdx,
{
std::shared_ptr<DRC_ITEM> drcItem = DRC_ITEM::Create( DRCE_HOLE_CLEARANCE );
m_msg.Printf( drcItem->GetErrorText() + _( " (%s clearance %s; actual %s)" ),
m_msg.Printf( drcItem->GetErrorText() + wxS( " " ) + _( "(%s clearance %s; actual %s)" ),
constraint.GetName(),
MessageTextFromValue( userUnits(), minClearance ),
MessageTextFromValue( userUnits(), actual ) );
@ -294,7 +294,7 @@ bool DRC_TEST_PROVIDER_HOLE_CLEARANCE::doPadToPadHoleDrc( int aRefPadIdx,
{
std::shared_ptr<DRC_ITEM> drcItem = DRC_ITEM::Create( DRCE_HOLE_CLEARANCE );
m_msg.Printf( drcItem->GetErrorText() + _( " (%s clearance %s; actual %s)" ),
m_msg.Printf( drcItem->GetErrorText() + wxS( " " ) + _( "(%s clearance %s; actual %s)" ),
constraint.GetName(),
MessageTextFromValue( userUnits(), minClearance ),
MessageTextFromValue( userUnits(), actual ) );
@ -383,7 +383,7 @@ void DRC_TEST_PROVIDER_HOLE_CLEARANCE::testHoles2Holes()
{
std::shared_ptr<DRC_ITEM> drcItem = DRC_ITEM::Create( DRCE_DRILLED_HOLES_TOO_CLOSE );
m_msg.Printf( drcItem->GetErrorText() + _( " (%s clearance %s; actual %s)" ),
m_msg.Printf( drcItem->GetErrorText() + wxS( " " ) + _( "(%s clearance %s; actual %s)" ),
constraint.GetName(),
MessageTextFromValue( userUnits(), minClearance ),
MessageTextFromValue( userUnits(), actual ) );

View File

@ -140,7 +140,7 @@ void DRC_TEST_PROVIDER_HOLE_SIZE::checkPad( D_PAD* aPad )
{
std::shared_ptr<DRC_ITEM> drcItem = DRC_ITEM::Create( DRCE_TOO_SMALL_DRILL );
m_msg.Printf( drcItem->GetErrorText() + _( " (%s %s; actual %s)" ),
m_msg.Printf( drcItem->GetErrorText() + wxS( " " ) + _( "(%s %s; actual %s)" ),
constraint.GetName(),
MessageTextFromValue( userUnits(), minHole ),
MessageTextFromValue( userUnits(), holeSize ) );
@ -182,7 +182,7 @@ void DRC_TEST_PROVIDER_HOLE_SIZE::checkVia( VIA* via, bool aExceedMicro, bool aE
{
std::shared_ptr<DRC_ITEM> drcItem = DRC_ITEM::Create( errorCode );
m_msg.Printf( drcItem->GetErrorText() + _( " (%s %s; actual %s)" ),
m_msg.Printf( drcItem->GetErrorText() + wxS( " " ) + _( "(%s %s; actual %s)" ),
constraint.GetName(),
MessageTextFromValue( userUnits(), minHole ),
MessageTextFromValue( userUnits(), via->GetDrillValue() ) );

View File

@ -89,7 +89,7 @@ void DRC_TEST_PROVIDER_MISC::testOutline()
std::shared_ptr<DRC_ITEM> drcItem = DRC_ITEM::Create( DRCE_INVALID_OUTLINE );
m_msg.Printf( drcItem->GetErrorText() + _( " (not a closed shape)" ) );
m_msg.Printf( drcItem->GetErrorText() + wxS( " " ) + _( "(not a closed shape)" ) );
drcItem->SetErrorMessage( m_msg );
drcItem->SetItems( m_board );
@ -114,7 +114,7 @@ void DRC_TEST_PROVIDER_MISC::testDisabledLayers()
{
std::shared_ptr<DRC_ITEM>drcItem = DRC_ITEM::Create( DRCE_DISABLED_LAYER_ITEM );
m_msg.Printf( drcItem->GetErrorText() + _( " (layer %s)" ),
m_msg.Printf( drcItem->GetErrorText() + wxS( " " ) + _( "(layer %s)" ),
item->GetLayerName() );
drcItem->SetErrorMessage( m_msg );

View File

@ -168,7 +168,7 @@ bool DRC_TEST_PROVIDER_SILK_CLEARANCE::Run()
if( minClearance > 0 )
{
m_msg.Printf( drcItem->GetErrorText() + _( " (%s clearance %s; actual %s)" ),
m_msg.Printf( drcItem->GetErrorText() + wxS( " " ) + _( "(%s clearance %s; actual %s)" ),
constraint.GetParentRule()->m_Name,
MessageTextFromValue( userUnits(), minClearance ),
MessageTextFromValue( userUnits(), actual ) );

View File

@ -150,7 +150,7 @@ bool DRC_TEST_PROVIDER_SILK_TO_MASK::Run()
if( minClearance > 0 )
{
m_msg.Printf( drcItem->GetErrorText() + _( " (%s clearance %s; actual %s)" ),
m_msg.Printf( drcItem->GetErrorText() + wxS( " " ) + _( "(%s clearance %s; actual %s)" ),
constraint.GetName(),
MessageTextFromValue( userUnits(), minClearance ),
MessageTextFromValue( userUnits(), actual ) );

View File

@ -123,11 +123,20 @@ bool DRC_TEST_PROVIDER_TRACK_WIDTH::Run()
{
std::shared_ptr<DRC_ITEM> drcItem = DRC_ITEM::Create( DRCE_TRACK_WIDTH );
m_msg.Printf( drcItem->GetErrorText() + _( " (%s %s width %s; actual %s)" ),
constraint.GetName(),
fail_min ? _( "min" ) : _( "max" ),
MessageTextFromValue( userUnits(), constraintWidth ),
MessageTextFromValue( userUnits(), actual ) );
if( fail_min )
{
m_msg.Printf( drcItem->GetErrorText() + wxS( " " ) + _( "(%s min width %s; actual %s)" ),
constraint.GetName(),
MessageTextFromValue( userUnits(), constraintWidth ),
MessageTextFromValue( userUnits(), actual ) );
}
else
{
m_msg.Printf( drcItem->GetErrorText() + wxS( " " ) + _( "(%s max width %s; actual %s)" ),
constraint.GetName(),
MessageTextFromValue( userUnits(), constraintWidth ),
MessageTextFromValue( userUnits(), actual ) );
}
drcItem->SetErrorMessage( m_msg );
drcItem->SetItems( item );

View File

@ -108,14 +108,14 @@ bool DRC_TEST_PROVIDER_VIA_DIAMETER::Run()
if( fail_min )
{
m_msg.Printf( _( " (%s min diameter %s; actual %s)" ),
m_msg.Printf( wxS( " " ) + _( "(%s min diameter %s; actual %s)" ),
constraint.GetName(),
MessageTextFromValue( userUnits(), constraintDiameter ),
MessageTextFromValue( userUnits(), actual ) );
}
else if( fail_max )
{
m_msg.Printf( _( " (%s max diameter %s; actual %s)" ),
m_msg.Printf( wxS( " " ) + _( "(%s max diameter %s; actual %s)" ),
constraint.GetName(),
MessageTextFromValue( userUnits(), constraintDiameter ),
MessageTextFromValue( userUnits(), actual ) );

View File

@ -712,7 +712,7 @@ void FOOTPRINT_EDIT_FRAME::updateTitle()
// Note: don't used GetLoadedFPID(); footprint name may have been edited
title += wxString::Format( wxT( "%s %s\u2014 " ),
FROM_UTF8( GetBoard()->GetFirstModule()->GetFPID().Format().c_str() ),
writable ? wxString( wxEmptyString ) : _( "[Read Only] " ) );
writable ? wxString( wxEmptyString ) : _( "[Read Only]" ) + wxS( "" ) + wxS( " " ));
}
else if( !fpid.GetLibItemName().empty() )
{

View File

@ -127,7 +127,7 @@ void LAYER_WIDGET::OnRightDownLayer( wxMouseEvent& aEvent, COLOR_SWATCH* aColorS
wxMenu menu;
AddMenuItem( &menu, ID_CHANGE_LAYER_COLOR,
_( "Change Layer Color for " ) + aLayerName,
_( "Change Layer Color for" ) + wxS( " " ) + aLayerName,
KiBitmap( setcolor_copper_xpm ) );
menu.AppendSeparator();
@ -177,7 +177,7 @@ void LAYER_WIDGET::OnRightDownRender( wxMouseEvent& aEvent, COLOR_SWATCH* aColor
wxMenu menu;
AddMenuItem( &menu, ID_CHANGE_RENDER_COLOR,
_( "Change Render Color for " ) + aRenderName,
_( "Change Render Color for" ) + wxS( " " )+ aRenderName,
KiBitmap( setcolor_board_body_xpm ) );
menu.Bind( wxEVT_COMMAND_MENU_SELECTED,

View File

@ -1188,9 +1188,9 @@ void PCB_EDIT_FRAME::UpdateTitle()
wxString fileinfo;
if( fileName.IsOk() && fileName.FileExists() )
fileinfo = fileName.IsFileWritable() ? wxString( wxEmptyString ) : _( " [Read Only]" );
fileinfo = fileName.IsFileWritable() ? wxString( wxEmptyString ) : wxS( " " ) + _( "[Read Only]" );
else
fileinfo = _( " [Unsaved]" );
fileinfo = wxS( " " ) + _( "[Unsaved]" );
SetTitle( wxString::Format( wxT( "%s%s \u2014 " ) + _( "Pcbnew" ),
fileName.GetName(),

View File

@ -335,13 +335,36 @@ protected:
DIFF_PAIR_DIMENSION diffPair = bds.m_DiffPairDimensionsList[i];
wxString msg;
msg << _( "Width " ) << MessageTextFromValue( units, diffPair.m_Width );
if( diffPair.m_Gap > 0 )
msg << _( ", gap " ) << MessageTextFromValue( units, diffPair.m_Gap );
if( diffPair.m_ViaGap > 0 )
msg << _( ", via gap " ) << MessageTextFromValue( units, diffPair.m_ViaGap );
if( diffPair.m_Gap <= 0 )
{
if( diffPair.m_ViaGap <= 0 )
{
msg.Printf( _( "Width %s" ),
MessageTextFromValue( units, diffPair.m_Width ) );
}
else
{
msg.Printf( _( "Width %s, via gap %s " ),
MessageTextFromValue( units, diffPair.m_Width ),
MessageTextFromValue( units, diffPair.m_ViaGap ) );
}
}
else
{
if( diffPair.m_ViaGap <= 0 )
{
msg.Printf( _( "Width %s, gap %s" ),
MessageTextFromValue( units, diffPair.m_Width ),
MessageTextFromValue( units, diffPair.m_Gap ) );
}
else
{
msg.Printf( _( "Width %s, gap %s, via gap %s " ),
MessageTextFromValue( units, diffPair.m_Width ),
MessageTextFromValue( units, diffPair.m_Gap ),
MessageTextFromValue( units, diffPair.m_ViaGap ) );
}
}
int menuIdx = ID_POPUP_PCB_SELECT_DIFFPAIR1 + i - 1;
Append( menuIdx, msg, wxEmptyString, wxITEM_CHECK );
@ -948,9 +971,9 @@ void ROUTER_TOOL::performRouting()
if( !prepareInteractive() )
return;
auto setCursor =
[&]()
{
auto setCursor =
[&]()
{
frame()->GetCanvas()->SetCurrentCursor( KICURSOR::PENCIL );
};
@ -1135,9 +1158,9 @@ int ROUTER_TOOL::MainLoop( const TOOL_EVENT& aEvent )
if( aEvent.HasPosition() )
m_toolMgr->PrimeTool( m_startSnapPoint );
auto setCursor =
[&]()
{
auto setCursor =
[&]()
{
frame->GetCanvas()->SetCurrentCursor( KICURSOR::PENCIL );
};
@ -1479,9 +1502,9 @@ int ROUTER_TOOL::InlineDrag( const TOOL_EVENT& aEvent )
view()->ClearPreview();
view()->InitPreview();
auto setCursor =
[&]()
{
auto setCursor =
[&]()
{
frame()->GetCanvas()->SetCurrentCursor( KICURSOR::ARROW );
};

View File

@ -194,7 +194,7 @@ private:
const auto& selection = selTool->GetSelection();
wxString check = board->GroupsSanityCheck();
wxCHECK_RET( check == wxEmptyString, _( "Group is in inconsistent state: " ) + check );
wxCHECK_RET( check == wxEmptyString, _( "Group is in inconsistent state:" ) + wxS( " " )+ check );
BOARD::GroupLegalOpsField legalOps = board->GroupLegalOps( selection );

View File

@ -294,7 +294,7 @@ int PCB_INSPECTION_TOOL::InspectClearance( const TOOL_EVENT& aEvent )
wxString s = aItem->GetSelectMenuText( r->GetUnits() );
if( auto* cItem = dynamic_cast<BOARD_CONNECTED_ITEM*>( aItem ) )
s += " " + wxString::Format( _( "[netclass %s]" ), cItem->GetNetClassName() );
s += wxS( " " ) + wxString::Format( _( "[netclass %s]" ), cItem->GetNetClassName() );
return s;
};

View File

@ -216,7 +216,7 @@ SCENEGRAPH* LoadVRML( const wxString& aFileName, bool useInline )
}
catch( IO_ERROR & )
{
wxLogError( _( " * [INFO] load failed: input line too long\n" ) );
wxLogError( wxS( " * " ) + _( "[INFO] load failed: input line too long\n" ) );
return NULL;
}

View File

@ -140,7 +140,7 @@ bool test::DRC_TEST_PROVIDER_SILK_TO_PAD::Run()
std::shared_ptr<DRC_ITEM> drcItem = DRC_ITEM::Create( DRCE_COPPER_EDGE_CLEARANCE );
wxString msg;
msg.Printf( drcItem->GetErrorText() + _( " (%s clearance %s; actual %s)" ),
msg.Printf( drcItem->GetErrorText() + wxS( " " ) + _( "(%s clearance %s; actual %s)" ),
rule->GetName(),
MessageTextFromValue( userUnits(), minClearance ),
MessageTextFromValue( userUnits(), actual ) );

View File

@ -573,13 +573,13 @@ bool S3D_RESOLVER::addPath( const SEARCH_PATH& aPath )
{
if( !tpath.m_alias.Cmp( sPL->m_alias ) )
{
wxString msg = _( "Alias: " );
wxString msg = _( "Alias:" ) + wxS( " " );
msg.append( tpath.m_alias );
msg.append( "\n" );
msg.append( _( "This path: " ) );
msg.append( _( "This path:" ) + wxS( " " ) );
msg.append( tpath.m_pathvar );
msg.append( "\n" );
msg.append( _( "Existing path: " ) );
msg.append( _( "Existing path:" ) + wxS( " " ) );
msg.append( sPL->m_pathvar );
wxMessageBox( msg, _( "Bad alias (duplicate name)" ) );