From 9d400e4c19622c1cfc69f825e576cf94efc59744 Mon Sep 17 00:00:00 2001 From: charras Date: Tue, 19 Jan 2010 20:43:44 +0000 Subject: [PATCH] fixed some (minors) problems about hotkeys. Code cleaning. Patch for 3D problem with macOSX --- 3d-viewer/3d_canvas.cpp | 92 +- common/hotkeys_basic.cpp | 14 +- eeschema/eeschema_id.h | 8 +- eeschema/hotkeys.cpp | 8 +- eeschema/libframe.cpp | 8 +- eeschema/menubar.cpp | 22 +- eeschema/schframe.cpp | 8 +- eeschema/tool_lib.cpp | 4 +- eeschema/tool_sch.cpp | 4 +- gerbview/gerberframe.cpp | 2 +- gerbview/tool_gerber.cpp | 2 +- include/id.h | 6 - internat/fr/kicad.mo | Bin 221458 -> 221538 bytes internat/fr/kicad.po | 2315 +++++++++++---------- pcbnew/hotkeys.cpp | 83 +- pcbnew/hotkeys.h | 2 + pcbnew/menubar_pcbframe.cpp | 14 +- pcbnew/moduleframe.cpp | 8 +- pcbnew/pcbframe.cpp | 4 +- pcbnew/pcbnew_id.h | 2 - pcbnew/tool_modedit.cpp | 4 +- pcbnew/tool_pcb.cpp | 4 +- pcbnew/toolbars_update_user_interface.cpp | 4 +- 23 files changed, 1425 insertions(+), 1193 deletions(-) diff --git a/3d-viewer/3d_canvas.cpp b/3d-viewer/3d_canvas.cpp index 62077e86e4..b20cbc69de 100644 --- a/3d-viewer/3d_canvas.cpp +++ b/3d-viewer/3d_canvas.cpp @@ -1,4 +1,5 @@ ///////////////////////////////////////////////////////////////////////////// + // Name: 3d_canvas.cpp ///////////////////////////////////////////////////////////////////////////// #include "fctsys.h" @@ -12,6 +13,7 @@ #include "wx/dataobj.h" #include "wx/clipbrd.h" +#include #include "gestfich.h" @@ -27,17 +29,20 @@ */ BEGIN_EVENT_TABLE( Pcb3D_GLCanvas, wxGLCanvas ) - EVT_PAINT( Pcb3D_GLCanvas::OnPaint ) - // key event: - EVT_CHAR( Pcb3D_GLCanvas::OnChar ) - // mouse events - EVT_RIGHT_DOWN( Pcb3D_GLCanvas::OnRightClick ) - EVT_MOUSEWHEEL( Pcb3D_GLCanvas::OnMouseWheel ) - EVT_MOTION( Pcb3D_GLCanvas::OnMouseMove ) - // other events - EVT_ERASE_BACKGROUND( Pcb3D_GLCanvas::OnEraseBackground ) - EVT_MENU_RANGE( ID_POPUP_3D_VIEW_START, ID_POPUP_3D_VIEW_END, - Pcb3D_GLCanvas::OnPopUpMenu ) +EVT_PAINT( Pcb3D_GLCanvas::OnPaint ) + +// key event: +EVT_CHAR( Pcb3D_GLCanvas::OnChar ) + +// mouse events +EVT_RIGHT_DOWN( Pcb3D_GLCanvas::OnRightClick ) +EVT_MOUSEWHEEL( Pcb3D_GLCanvas::OnMouseWheel ) +EVT_MOTION( Pcb3D_GLCanvas::OnMouseMove ) + +// other events +EVT_ERASE_BACKGROUND( Pcb3D_GLCanvas::OnEraseBackground ) +EVT_MENU_RANGE( ID_POPUP_3D_VIEW_START, ID_POPUP_3D_VIEW_END, + Pcb3D_GLCanvas::OnPopUpMenu ) END_EVENT_TABLE() Pcb3D_GLCanvas::Pcb3D_GLCanvas( WinEDA3D_DrawFrame* parent ) : @@ -203,6 +208,7 @@ void Pcb3D_GLCanvas::SetView3D( int keycode ) Refresh( FALSE ); } + void Pcb3D_GLCanvas::OnMouseWheel( wxMouseEvent& event ) { wxSize size( GetClientSize() ); @@ -302,67 +308,67 @@ void Pcb3D_GLCanvas::OnRightClick( wxMouseEvent& event ) pos.x = event.GetX(); pos.y = event.GetY(); wxMenuItem* item = new wxMenuItem( &PopUpMenu, ID_POPUP_ZOOMIN, - _( "Zoom +" ) ); + _( "Zoom +" ) ); item->SetBitmap( zoom_in_xpm ); PopUpMenu.Append( item ); item = new wxMenuItem( &PopUpMenu, ID_POPUP_ZOOMOUT, - _( "Zoom -" ) ); + _( "Zoom -" ) ); item->SetBitmap( zoom_out_xpm ); PopUpMenu.Append( item ); PopUpMenu.AppendSeparator(); item = new wxMenuItem( &PopUpMenu, ID_POPUP_VIEW_ZPOS, - _( "Top View" ) ); + _( "Top View" ) ); item->SetBitmap( axis3d_top_xpm ); PopUpMenu.Append( item ); item = new wxMenuItem( &PopUpMenu, ID_POPUP_VIEW_ZNEG, - _( "Bottom View" ) ); + _( "Bottom View" ) ); item->SetBitmap( axis3d_bottom_xpm ); PopUpMenu.Append( item ); PopUpMenu.AppendSeparator(); item = new wxMenuItem( &PopUpMenu, ID_POPUP_VIEW_XPOS, - _( "Right View" ) ); + _( "Right View" ) ); item->SetBitmap( axis3d_right_xpm ); PopUpMenu.Append( item ); item = new wxMenuItem( &PopUpMenu, ID_POPUP_VIEW_XNEG, - _( "Left View" ) ); + _( "Left View" ) ); item->SetBitmap( axis3d_left_xpm ); PopUpMenu.Append( item ); PopUpMenu.AppendSeparator(); item = new wxMenuItem( &PopUpMenu, ID_POPUP_VIEW_YPOS, - _( "Front View" ) ); + _( "Front View" ) ); item->SetBitmap( axis3d_front_xpm ); PopUpMenu.Append( item ); item = new wxMenuItem( &PopUpMenu, ID_POPUP_VIEW_YNEG, - _( "Back View" ) ); + _( "Back View" ) ); item->SetBitmap( axis3d_back_xpm ); PopUpMenu.Append( item ); PopUpMenu.AppendSeparator(); item = new wxMenuItem( &PopUpMenu, ID_POPUP_MOVE3D_LEFT, - _( "Move left <-" ) ); + _( "Move left <-" ) ); item->SetBitmap( left_xpm ); PopUpMenu.Append( item ); item = new wxMenuItem( &PopUpMenu, ID_POPUP_MOVE3D_RIGHT, - _( "Move right ->" ) ); + _( "Move right ->" ) ); item->SetBitmap( right_xpm ); PopUpMenu.Append( item ); item = new wxMenuItem( &PopUpMenu, ID_POPUP_MOVE3D_UP, - _( "Move Up ^" ) ); + _( "Move Up ^" ) ); item->SetBitmap( up_xpm ); PopUpMenu.Append( item ); item = new wxMenuItem( &PopUpMenu, ID_POPUP_MOVE3D_DOWN, - _( "Move Down" ) ); + _( "Move Down" ) ); item->SetBitmap( down_xpm ); PopUpMenu.Append( item ); @@ -579,12 +585,52 @@ void Pcb3D_GLCanvas::TakeScreenshot( wxCommandEvent& event ) Redraw( true ); wxSize image_size = GetClientSize(); + #ifndef __WXMAC__ wxClientDC dc( this ); wxBitmap bitmap( image_size.x, image_size.y ); wxMemoryDC memdc; memdc.SelectObject( bitmap ); memdc.Blit( 0, 0, image_size.x, image_size.y, &dc, 0, 0 ); memdc.SelectObject( wxNullBitmap ); +#else + struct vieport_params + { + GLint originx; + GLint originy; + GLint x; + GLint y; + } viewport; + + wxWindowUpdateLocker noUpdates( this ); + glGetIntegerv( GL_VIEWPORT, (GLint*) &viewport ); + + unsigned char* pixelbuffer = (unsigned char*) malloc( viewport.x * viewport.y * 3 ); + unsigned char* alphabuffer = (unsigned char*) malloc( viewport.x * viewport.y ); + wxImage image( viewport.x, viewport.y ); + + glPixelStorei( GL_PACK_ALIGNMEN T, 1 ); + glReadBuffer( GL_BACK_LEFT ); + glReadPixels( viewport.originx, + viewport.originy, + viewport.x, + viewport.y, + GL_RGB, + GL_UNSIGNED_ BYTE, + pixelbuffer ); + glReadPixels( viewport.originx, + viewport.originy, + viewport.x, + viewport.y, + GL_ALPHA, + GL_UNSIGNED_ BYTE, + alphabuffer ); + + + image.SetData( pixelbuffer ); + image.SetAlpha( alphabuffer ); + image = image.Mirror( false ); + wxBitmap bitmap( image ); +#endif if( event.GetId() == ID_TOOL_SCREENCOPY_TOCLIBBOARD ) { diff --git a/common/hotkeys_basic.cpp b/common/hotkeys_basic.cpp index 3298ea8f5c..e233bab06a 100644 --- a/common/hotkeys_basic.cpp +++ b/common/hotkeys_basic.cpp @@ -162,7 +162,7 @@ static struct hotkey_name_descr s_Hotkey_Name_List[] = }; -/* +/** function ReturnKeyNameFromKeyCode * return the key name from the key code * Only some wxWidgets key values are handled for function key ( see * s_Hotkey_Name_List[] ) @@ -201,7 +201,7 @@ wxString ReturnKeyNameFromKeyCode( int keycode ) } -/* +/** function AddHotkeyName * Add the key name from the Command id value ( m_Idcommand member value) * @param List = pointer to a Ki_HotkeyInfo list of commands * @param CommandId = Command Id value @@ -219,7 +219,7 @@ wxString AddHotkeyName( const wxString& text, Ki_HotkeyInfo** List, } -/* +/** function AddHotkeyName * Add the key name from the Command id value ( m_Idcommand member value) * @param List = pointer to a Ki_HotkeyInfoSectionDescriptor* DescrList of * commands @@ -249,7 +249,7 @@ wxString AddHotkeyName( const wxString& text, } -/* +/** function ReturnKeyNameFromCommandId * return the key name from the Command id value ( m_Idcommand member value) * @param List = pointer to a Ki_HotkeyInfo list of commands * @param CommandId = Command Id value @@ -273,7 +273,7 @@ wxString ReturnKeyNameFromCommandId( Ki_HotkeyInfo** List, int CommandId ) } -/* +/** function ReturnKeyCodeFromKeyName * return the key code from its key name * Only some wxWidgets key values are handled for function key * @param keyname = wxString key name to find in s_Hotkey_Name_List[], @@ -300,7 +300,7 @@ static int ReturnKeyCodeFromKeyName( const wxString& keyname ) } -/* +/** function DisplayHotkeyList * Displays the current hotkey list * @param frame = current active frame * @param List = pointer to a Ki_HotkeyInfoSectionDescriptor list @@ -331,7 +331,7 @@ void DisplayHotkeyList( WinEDA_DrawFrame* frame, } -/* +/** function GetDescriptorFromHotkey * Return a Ki_HotkeyInfo * pointer fron a key code for OnHotKey() function * @param key = key code (ascii value, or wxWidgets value for function keys * @param List = pointer to a Ki_HotkeyInfo list of commands diff --git a/eeschema/eeschema_id.h b/eeschema/eeschema_id.h index 6cacd85a19..bcf720fd6d 100644 --- a/eeschema/eeschema_id.h +++ b/eeschema/eeschema_id.h @@ -14,10 +14,8 @@ enum id_eeschema_frm { - /* Schecmatic editor horizontal toolbar IDs */ - ID_SCHEMATIC_UNDO = ID_END_LIST, - ID_SCHEMATIC_REDO, - ID_HIERARCHY, + /* Schematic editor horizontal toolbar IDs */ + ID_HIERARCHY = ID_END_LIST, ID_TO_LIBVIEW, ID_GET_ANNOTATE, ID_GET_ERC, @@ -138,8 +136,6 @@ enum id_eeschema_frm ID_LIBEDIT_GET_FRAME_EDIT_PART, ID_LIBEDIT_GET_FRAME_EDIT_FIELDS, ID_LIBEDIT_DELETE_PART, - ID_LIBEDIT_UNDO, - ID_LIBEDIT_REDO, ID_DE_MORGAN_NORMAL_BUTT, ID_DE_MORGAN_CONVERT_BUTT, ID_LIBEDIT_EDIT_PIN_BY_PIN, diff --git a/eeschema/hotkeys.cpp b/eeschema/hotkeys.cpp index b9870b71c7..6a566aee40 100644 --- a/eeschema/hotkeys.cpp +++ b/eeschema/hotkeys.cpp @@ -80,12 +80,12 @@ static Ki_HotkeyInfo HkResetLocalCoord( wxT( "Reset local coord." ), /* Undo */ static Ki_HotkeyInfo HkUndo( wxT( "Undo" ), HK_UNDO, GR_KB_CTRL + 'Z', - (int) ID_SCHEMATIC_UNDO ); + (int) wxID_UNDO ); /* Redo */ #if !defined( __WXMAC__ ) static Ki_HotkeyInfo HkRedo( wxT( "Redo" ), HK_REDO, GR_KB_CTRL + 'Y', - (int) ID_SCHEMATIC_REDO ); + (int) wxID_REDO ); #else static Ki_HotkeyInfo HkRedo( wxT( "Redo" ), HK_REDO, GR_KB_SHIFT + GR_KB_CTRL + 'Z', @@ -699,7 +699,7 @@ void WinEDA_LibeditFrame::OnHotKey( wxDC* DC, int hotkey, case HK_UNDO: if( !ItemInEdit ) { - toolCmd.SetId( ID_LIBEDIT_UNDO ); + toolCmd.SetId( wxID_UNDO ); GetEventHandler()->ProcessEvent( toolCmd ); } break; @@ -707,7 +707,7 @@ void WinEDA_LibeditFrame::OnHotKey( wxDC* DC, int hotkey, case HK_REDO: if( !ItemInEdit ) { - toolCmd.SetId( ID_LIBEDIT_REDO ); + toolCmd.SetId( wxID_REDO ); GetEventHandler()->ProcessEvent( toolCmd ); } break; diff --git a/eeschema/libframe.cpp b/eeschema/libframe.cpp index f9b68ccc64..3dbd7cba2d 100644 --- a/eeschema/libframe.cpp +++ b/eeschema/libframe.cpp @@ -79,9 +79,9 @@ BEGIN_EVENT_TABLE( WinEDA_LibeditFrame, WinEDA_DrawFrame ) WinEDA_LibeditFrame::LoadOneLibraryPart ) EVT_TOOL( ID_LIBEDIT_SAVE_CURRENT_PART, WinEDA_LibeditFrame::Process_Special_Functions ) - EVT_TOOL( ID_LIBEDIT_UNDO, + EVT_TOOL( wxID_UNDO, WinEDA_LibeditFrame::GetComponentFromUndoList ) - EVT_TOOL( ID_LIBEDIT_REDO, + EVT_TOOL( wxID_REDO, WinEDA_LibeditFrame::GetComponentFromRedoList ) EVT_TOOL( ID_LIBEDIT_GET_FRAME_EDIT_PART, WinEDA_LibeditFrame::OnEditComponentProperties ) @@ -134,8 +134,8 @@ BEGIN_EVENT_TABLE( WinEDA_LibeditFrame, WinEDA_DrawFrame ) WinEDA_LibeditFrame::OnUpdateEditingPart ) EVT_UPDATE_UI( ID_LIBEDIT_CHECK_PART, WinEDA_LibeditFrame::OnUpdateEditingPart ) - EVT_UPDATE_UI( ID_LIBEDIT_UNDO, WinEDA_LibeditFrame::OnUpdateUndo ) - EVT_UPDATE_UI( ID_LIBEDIT_REDO, WinEDA_LibeditFrame::OnUpdateRedo ) + EVT_UPDATE_UI( wxID_UNDO, WinEDA_LibeditFrame::OnUpdateUndo ) + EVT_UPDATE_UI( wxID_REDO, WinEDA_LibeditFrame::OnUpdateRedo ) EVT_UPDATE_UI( ID_LIBEDIT_SAVE_CURRENT_LIB, WinEDA_LibeditFrame::OnUpdateSaveCurrentLib ) EVT_UPDATE_UI( ID_LIBEDIT_VIEW_DOC, WinEDA_LibeditFrame::OnUpdateViewDoc ) diff --git a/eeschema/menubar.cpp b/eeschema/menubar.cpp index ed775babe3..340d7fa11b 100644 --- a/eeschema/menubar.cpp +++ b/eeschema/menubar.cpp @@ -63,26 +63,26 @@ void WinEDA_SchematicFrame::ReCreateMenuBar() /* Separator */ filesMenu->AppendSeparator(); - + /* Save */ - item = new wxMenuItem( filesMenu, ID_SAVE_ONE_SHEET, _( "&Save\tCtrl+S" ), + /* Save Project */ + item = new wxMenuItem( filesMenu, ID_SAVE_PROJECT, _( "&Save Whole Schematic Project\tCtrl+S" ), + _( "Save all sheets in the schematic project" ) ); + item->SetBitmap( save_project_xpm ); + filesMenu->Append( item ); + + item = new wxMenuItem( filesMenu, ID_SAVE_ONE_SHEET, _( "&Save Current Sheet Only" ), _( "Save only current schematic sheet" ) ); item->SetBitmap( save_xpm ); filesMenu->Append( item ); /* Save as... */ item = new wxMenuItem( filesMenu, ID_SAVE_ONE_SHEET_AS, - _( "Save &as...\tShift+Ctrl+S" ), + _( "Save Current Sheet &as\tShift+Ctrl+S" ), _( "Save current schematic sheet as..." ) ); item->SetBitmap( save_as_xpm ); filesMenu->Append( item ); - /* Save Project */ - item = new wxMenuItem( filesMenu, ID_SAVE_PROJECT, _( "&Save Project" ), - _( "Save all sheets in the schematic project" ) ); - item->SetBitmap( save_project_xpm ); - filesMenu->Append( item ); - /* Separator */ filesMenu->AppendSeparator(); @@ -157,7 +157,7 @@ void WinEDA_SchematicFrame::ReCreateMenuBar() text = _( "Undo\tCtrl+Z" ); #endif - item = new wxMenuItem( editMenu, ID_SCHEMATIC_UNDO, text, + item = new wxMenuItem( editMenu, wxID_UNDO, text, _( "Undo last edition" ), wxITEM_NORMAL ); item->SetBitmap( undo_xpm ); editMenu->Append( item ); @@ -169,7 +169,7 @@ void WinEDA_SchematicFrame::ReCreateMenuBar() text = _( "Redo\tShift+Ctrl+Z" ); #endif - item = new wxMenuItem( editMenu, ID_SCHEMATIC_REDO, text, + item = new wxMenuItem( editMenu, wxID_REDO, text, _( "Redo the last undo command" ), wxITEM_NORMAL ); item->SetBitmap( redo_xpm ); editMenu->Append( item ); diff --git a/eeschema/schframe.cpp b/eeschema/schframe.cpp index dd422716e7..b9c730d46f 100644 --- a/eeschema/schframe.cpp +++ b/eeschema/schframe.cpp @@ -82,9 +82,9 @@ BEGIN_EVENT_TABLE( WinEDA_SchematicFrame, WinEDA_DrawFrame ) EVT_TOOL( wxID_CUT, WinEDA_SchematicFrame::Process_Special_Functions ) EVT_TOOL( wxID_COPY, WinEDA_SchematicFrame::Process_Special_Functions ) EVT_TOOL( wxID_PASTE, WinEDA_SchematicFrame::Process_Special_Functions ) - EVT_TOOL( ID_SCHEMATIC_UNDO, + EVT_TOOL( wxID_UNDO, WinEDA_SchematicFrame::GetSchematicFromUndoList ) - EVT_TOOL( ID_SCHEMATIC_REDO, + EVT_TOOL( wxID_REDO, WinEDA_SchematicFrame::GetSchematicFromRedoList ) EVT_TOOL( ID_GET_ANNOTATE, WinEDA_SchematicFrame::OnAnnotate ) EVT_TOOL( ID_GEN_PRINT, WinEDA_SchematicFrame::ToPrinter ) @@ -120,9 +120,9 @@ BEGIN_EVENT_TABLE( WinEDA_SchematicFrame, WinEDA_DrawFrame ) EVT_UPDATE_UI( wxID_CUT, WinEDA_SchematicFrame::OnUpdateBlockSelected ) EVT_UPDATE_UI( wxID_COPY, WinEDA_SchematicFrame::OnUpdateBlockSelected ) EVT_UPDATE_UI( wxID_PASTE, WinEDA_SchematicFrame::OnUpdatePaste ) - EVT_UPDATE_UI( ID_SCHEMATIC_UNDO, + EVT_UPDATE_UI( wxID_UNDO, WinEDA_SchematicFrame::OnUpdateSchematicUndo ) - EVT_UPDATE_UI( ID_SCHEMATIC_REDO, + EVT_UPDATE_UI( wxID_REDO, WinEDA_SchematicFrame::OnUpdateSchematicRedo ) EVT_UPDATE_UI( ID_TB_OPTIONS_SHOW_GRID, WinEDA_SchematicFrame::OnUpdateGrid ) diff --git a/eeschema/tool_lib.cpp b/eeschema/tool_lib.cpp index 4adcb0c6f4..2190b2ff10 100644 --- a/eeschema/tool_lib.cpp +++ b/eeschema/tool_lib.cpp @@ -136,11 +136,11 @@ void WinEDA_LibeditFrame::ReCreateHToolbar() m_HToolBar->AddSeparator(); msg = AddHotkeyName( _( "Undo last command" ), s_Schematic_Hokeys_Descr, HK_UNDO ); - m_HToolBar->AddTool( ID_LIBEDIT_UNDO, wxEmptyString, wxBitmap( undo_xpm ), + m_HToolBar->AddTool( wxID_UNDO, wxEmptyString, wxBitmap( undo_xpm ), msg ); msg = AddHotkeyName( _( "Redo the last command" ), s_Schematic_Hokeys_Descr, HK_REDO ); - m_HToolBar->AddTool( ID_LIBEDIT_REDO, wxEmptyString, wxBitmap( redo_xpm ), + m_HToolBar->AddTool( wxID_REDO, wxEmptyString, wxBitmap( redo_xpm ), msg ); m_HToolBar->AddSeparator(); diff --git a/eeschema/tool_sch.cpp b/eeschema/tool_sch.cpp index a0d7555312..c63556ece6 100644 --- a/eeschema/tool_sch.cpp +++ b/eeschema/tool_sch.cpp @@ -71,12 +71,12 @@ void WinEDA_SchematicFrame::ReCreateHToolbar() m_HToolBar->AddSeparator(); msg = AddHotkeyName( _( "Undo last edition" ), s_Schematic_Hokeys_Descr, HK_UNDO ); - m_HToolBar->AddTool( ID_SCHEMATIC_UNDO, wxEmptyString, + m_HToolBar->AddTool( wxID_UNDO, wxEmptyString, wxBitmap( undo_xpm ), msg ); msg = AddHotkeyName( _( "Redo the last undo command" ), s_Schematic_Hokeys_Descr, HK_REDO ); - m_HToolBar->AddTool( ID_SCHEMATIC_REDO, wxEmptyString, + m_HToolBar->AddTool( wxID_REDO, wxEmptyString, wxBitmap( redo_xpm ), msg ); m_HToolBar->AddSeparator(); diff --git a/gerbview/gerberframe.cpp b/gerbview/gerberframe.cpp index f238b3cc34..cc7a8477f7 100644 --- a/gerbview/gerberframe.cpp +++ b/gerbview/gerberframe.cpp @@ -84,7 +84,7 @@ BEGIN_EVENT_TABLE( WinEDA_GerberFrame, WinEDA_BasePcbFrame ) EVT_TOOL( wxID_CUT, WinEDA_GerberFrame::Process_Special_Functions ) EVT_TOOL( wxID_COPY, WinEDA_GerberFrame::Process_Special_Functions ) EVT_TOOL( wxID_PASTE, WinEDA_GerberFrame::Process_Special_Functions ) - EVT_TOOL( ID_UNDO_BUTT, WinEDA_GerberFrame::Process_Special_Functions ) + EVT_TOOL( wxID_UNDO, WinEDA_GerberFrame::Process_Special_Functions ) EVT_TOOL( ID_GEN_PRINT, WinEDA_GerberFrame::ToPrinter ) EVT_TOOL( ID_FIND_ITEMS, WinEDA_GerberFrame::Process_Special_Functions ) EVT_TOOL( ID_DRC_CONTROL, WinEDA_GerberFrame::Process_Special_Functions ) diff --git a/gerbview/tool_gerber.cpp b/gerbview/tool_gerber.cpp index 5b06f0dfc5..b19a186bff 100644 --- a/gerbview/tool_gerber.cpp +++ b/gerbview/tool_gerber.cpp @@ -195,7 +195,7 @@ void WinEDA_GerberFrame::ReCreateHToolbar( void ) _( "Paste" ) ); #endif - m_HToolBar->AddTool( ID_UNDO_BUTT, wxEmptyString, + m_HToolBar->AddTool( wxID_UNDO, wxEmptyString, wxBitmap( undelete_xpm ), _( "Undelete" ) ); diff --git a/include/id.h b/include/id.h index f89bcef747..384822439b 100644 --- a/include/id.h +++ b/include/id.h @@ -56,10 +56,6 @@ enum main_id ID_GEN_COPY_SHEET_TO_CLIPBOARD, ID_GEN_COPY_BLOCK_TO_CLIPBOARD, ID_GEN_UNUSED0, - ID_GEN_UNUSED1, - ID_GEN_UNUSED2, - ID_GEN_UNUSED3, - ID_GEN_UNUSED4, ID_GEN_EXPORT_FILE, ID_GEN_EXPORT_SPECCTRA, @@ -92,8 +88,6 @@ enum main_id ID_COLORS_SETUP, ID_REPEAT_BUTT, - ID_UNDO_BUTT, - ID_REDO_BUTT, ID_LANGUAGE_CHOICE, ID_LANGUAGE_DEFAULT, diff --git a/internat/fr/kicad.mo b/internat/fr/kicad.mo index 724179ced1a9812e6ef596c339d012bf6dd4be99..b3f6d1bb63613c901c33e5e623ad796b603c88e1 100644 GIT binary patch delta 63855 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 gGXm*}6ve?)i7zctzaWw|I&D@4{9ec@iT;m6U% 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≫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 delta 63714 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 diff --git a/internat/fr/kicad.po b/internat/fr/kicad.po index 53787cba11..ae47d77e63 100644 --- a/internat/fr/kicad.po +++ b/internat/fr/kicad.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: kicad\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-01-18 16:50+0100\n" -"PO-Revision-Date: 2010-01-18 16:50+0100\n" +"POT-Creation-Date: 2010-01-19 19:23+0100\n" +"PO-Revision-Date: 2010-01-19 19:30+0100\n" "Last-Translator: \n" "Language-Team: kicad team \n" "MIME-Version: 1.0\n" @@ -1053,14 +1053,17 @@ msgid "internal" msgstr "interne" #: pcbnew/class_pad.cpp:679 +#: pcbnew/class_pcb_text.cpp:229 msgid "Layer" msgstr "Couche" #: pcbnew/class_pad.cpp:689 +#: pcbnew/class_pcb_text.cpp:244 msgid "H Size" msgstr "Taille H" #: pcbnew/class_pad.cpp:692 +#: pcbnew/class_pcb_text.cpp:247 msgid "V Size" msgstr "Taille V" @@ -1073,6 +1076,7 @@ msgid "Drill X / Y" msgstr "Perçage X/Y" #: pcbnew/class_pad.cpp:716 +#: pcbnew/class_pcb_text.cpp:238 msgid "Orient" msgstr "Orient" @@ -1084,31 +1088,15 @@ msgstr "X Pos" msgid "Y pos" msgstr "Y pos" -#: pcbnew/hotkeys.cpp:558 +#: pcbnew/hotkeys.cpp:601 #, c-format msgid "Footprint %s found, but locked" msgstr "Module %s trouvé, mais verrouillé" -#: pcbnew/hotkeys.cpp:740 +#: pcbnew/hotkeys.cpp:794 msgid "Delete module?" msgstr "Effacer Module?" -#: pcbnew/pcbframe.cpp:330 -msgid "Board modified, Save before exit ?" -msgstr "Circuit Imprimé modifié, Sauver avant de quitter ?" - -#: pcbnew/pcbframe.cpp:331 -msgid "Confirmation" -msgstr "Confirmation" - -#: pcbnew/pcbframe.cpp:370 -msgid "3D Frame already opened" -msgstr "Fenêtre 3D déjà ouverte" - -#: pcbnew/pcbframe.cpp:374 -msgid "3D Viewer" -msgstr "Visu 3D" - #: pcbnew/netlist.cpp:118 #, c-format msgid "Netlist file %s not found" @@ -1267,7 +1255,6 @@ msgid "Yes" msgstr "Oui" #: pcbnew/class_pcb_text.cpp:241 -#: pcbnew/mirepcb.cpp:112 msgid "Width" msgstr "Epaisseur" @@ -1385,7 +1372,7 @@ msgstr "Forme X" msgid "Target Shape:" msgstr "Forme Mire:" -#: pcbnew/plot_rtn.cpp:161 +#: pcbnew/plot_rtn.cpp:151 #, c-format msgid "" "Your BOARD has a bad layer number of %u for module\n" @@ -1394,7 +1381,7 @@ msgstr "" "Votre PCB a un mauvais numero de couche %u pour le module\n" " %s's \"référence\"." -#: pcbnew/plot_rtn.cpp:181 +#: pcbnew/plot_rtn.cpp:171 #, c-format msgid "" "Your BOARD has a bad layer number of %u for module\n" @@ -1403,7 +1390,7 @@ msgstr "" "Votre PCB a un mauvais numero de couche %u pour le module\n" " %s's \"valeur\"." -#: pcbnew/plot_rtn.cpp:219 +#: pcbnew/plot_rtn.cpp:209 #, c-format msgid "" "Your BOARD has a bad layer number of %u for module\n" @@ -1568,6 +1555,55 @@ msgstr "Erreur DRC: la fermeture de cette zone crée une erreur DRC avec une aut msgid "Abort routing?" msgstr "Arrêter le routage?" +#: pcbnew/edit.cpp:230 +msgid "Add Tracks" +msgstr "Addition de Pistes" + +#: pcbnew/edit.cpp:238 +msgid "Add Zones" +msgstr "Addition de Zones" + +#: pcbnew/edit.cpp:240 +msgid "Warning: Display Zone is OFF!!!" +msgstr "Attention: Affichage zones désactivé !!!" + +#: pcbnew/edit.cpp:246 +msgid "Add Layer Alignment Target" +msgstr "Ajouter Mire de superposition" + +#: pcbnew/edit.cpp:250 +msgid "Adjust Zero" +msgstr "Ajuster Zéro" + +#: pcbnew/edit.cpp:256 +msgid "Add Graphic" +msgstr "Addition éléments graphiques" + +#: pcbnew/edit.cpp:260 +msgid "Add Text" +msgstr "Ajout de Texte" + +#: pcbnew/edit.cpp:264 +msgid "Add Modules" +msgstr "Addition de Modules" + +#: pcbnew/edit.cpp:268 +msgid "Add Dimension" +msgstr "Ajout de cotes" + +#: pcbnew/edit.cpp:276 +msgid "Net Highlight" +msgstr "Surbrillance des équipotentielles" + +#: pcbnew/edit.cpp:280 +msgid "Local Ratsnest" +msgstr "Montrer le chevelu général" + +#: pcbnew/edit.cpp:574 +#: pcbnew/modedit.cpp:459 +msgid "Delete item" +msgstr "Suppression d'éléments" + #: pcbnew/class_zone.cpp:909 msgid "Zone Outline" msgstr "Contour de Zone" @@ -1866,53 +1902,9 @@ msgstr "Ajout d'éléments graphiques" msgid "Place anchor" msgstr "Place Ancre" -#: pcbnew/modedit.cpp:459 -msgid "Delete item" -msgstr "Suppression d'éléments" - -#: pcbnew/edit.cpp:233 -msgid "Add Tracks" -msgstr "Addition de Pistes" - -#: pcbnew/edit.cpp:241 -msgid "Add Zones" -msgstr "Addition de Zones" - -#: pcbnew/edit.cpp:243 -msgid "Warning: Display Zone is OFF!!!" -msgstr "Attention: Affichage zones désactivé !!!" - -#: pcbnew/edit.cpp:249 -msgid "Add Layer Alignment Target" -msgstr "Ajouter Mire de superposition" - -#: pcbnew/edit.cpp:253 -msgid "Adjust Zero" -msgstr "Ajuster Zéro" - -#: pcbnew/edit.cpp:259 -msgid "Add Graphic" -msgstr "Addition éléments graphiques" - -#: pcbnew/edit.cpp:263 -msgid "Add Text" -msgstr "Ajout de Texte" - -#: pcbnew/edit.cpp:267 -msgid "Add Modules" -msgstr "Addition de Modules" - -#: pcbnew/edit.cpp:271 -msgid "Add Dimension" -msgstr "Ajout de cotes" - -#: pcbnew/edit.cpp:279 -msgid "Net Highlight" -msgstr "Surbrillance des équipotentielles" - -#: pcbnew/edit.cpp:283 -msgid "Local Ratsnest" -msgstr "Montrer le chevelu général" +#: pcbnew/pcbnew.cpp:98 +msgid "Pcbnew is already running, Continue?" +msgstr "Pcbnew est en cours d'exécution. Continuer ?" #: pcbnew/find.cpp:112 msgid "Marker found" @@ -1960,429 +1952,36 @@ msgstr "Long. Piste" msgid "Segs Count" msgstr "Nb Segms" -#: pcbnew/menubar_pcbframe.cpp:39 -msgid "&New" -msgstr "&Nouveau" +#: pcbnew/pcbframe.cpp:334 +msgid "Board modified, Save before exit ?" +msgstr "Circuit Imprimé modifié, Sauver avant de quitter ?" -#: pcbnew/menubar_pcbframe.cpp:40 -msgid "Clear current board and initialize a new one" -msgstr "Effacer l'ancien C.I. et initialiser un nouveau" +#: pcbnew/pcbframe.cpp:335 +msgid "Confirmation" +msgstr "Confirmation" -#: pcbnew/menubar_pcbframe.cpp:45 -msgid "&Open" -msgstr "&Ouvrir " +#: pcbnew/pcbframe.cpp:374 +msgid "3D Frame already opened" +msgstr "Fenêtre 3D déjà ouverte" -#: pcbnew/menubar_pcbframe.cpp:46 -msgid "Delete current board and load new board" -msgstr "Effacer l'ancien C.I. et charger un nouveau" +#: pcbnew/pcbframe.cpp:378 +msgid "3D Viewer" +msgstr "Visu 3D" -#: pcbnew/menubar_pcbframe.cpp:54 -msgid "Open &Recent" -msgstr "Ouvrir &Recent" - -#: pcbnew/menubar_pcbframe.cpp:55 -msgid "Open a recent opened board" -msgstr "Ouvrir un circuit impirmé récemment ouvert" - -#: pcbnew/menubar_pcbframe.cpp:59 -msgid "&Append Board" -msgstr "&Ajouter Circuit Imprimé" - -#: pcbnew/menubar_pcbframe.cpp:60 -msgid "Append a other PCBNew board to the current loaded board" -msgstr "Ajouter un nouveau circuit imprimé au circuit courant" - -#: pcbnew/menubar_pcbframe.cpp:69 -#: pcbnew/menubar_pcbframe.cpp:406 -msgid "&Save" -msgstr "&Sauver" - -#: pcbnew/menubar_pcbframe.cpp:70 -msgid "Save current board" -msgstr "Sauver le C.I. actuel" - -#: pcbnew/menubar_pcbframe.cpp:76 -msgid "Save as..." -msgstr "Sauver sous..." - -#: pcbnew/menubar_pcbframe.cpp:77 -msgid "Save the current board as.." -msgstr "Sauver le Circuit Imprimé courant sous.." - -#: pcbnew/menubar_pcbframe.cpp:86 -msgid "&Revert" -msgstr "&Reprendre ancien" - -#: pcbnew/menubar_pcbframe.cpp:87 -msgid "Clear board and get previous saved version of board" -msgstr "Effacer le C.I. actuel et reprendre l'ancienne version sauvegardée" - -#: pcbnew/menubar_pcbframe.cpp:92 -msgid "&Rescue" -msgstr "&Secours" - -#: pcbnew/menubar_pcbframe.cpp:93 -msgid "Clear old board and get last rescue file" -msgstr "Effacer C.I. actuel et reprendre le dernier fichier secours" - -#: pcbnew/menubar_pcbframe.cpp:104 -msgid "&Modules Position" -msgstr "Fichier &Modules Position" - -#: pcbnew/menubar_pcbframe.cpp:105 -msgid "Generate modules position file for pick and place" -msgstr "Générer le fichier de position des modules pour machine d'insersion" - -#: pcbnew/menubar_pcbframe.cpp:110 -msgid "&Drill File" -msgstr "&Fichier de Perçage" - -#: pcbnew/menubar_pcbframe.cpp:111 -msgid "Generate excellon2 drill file" -msgstr "Créer Fichier de perçage Excellon2" - -#: pcbnew/menubar_pcbframe.cpp:117 -msgid "&Component File" -msgstr "Fichier de &Composants" - -#: pcbnew/menubar_pcbframe.cpp:118 -msgid "(Re)create components file for CvPcb" -msgstr "(Re)créer le fichier de compsants *.cmp pour CvPcb" - -#: pcbnew/menubar_pcbframe.cpp:124 -msgid "&BOM File" -msgstr "Liste du &Matériel" - -#: pcbnew/menubar_pcbframe.cpp:125 -msgid "Create a bill of materials from schematic" -msgstr "Créer lune liste de matériel de la schématique" - -#: pcbnew/menubar_pcbframe.cpp:131 -msgid "Fabrication Outputs" -msgstr "Fichiers de Fabrication" - -#: pcbnew/menubar_pcbframe.cpp:132 -msgid "Generate files for fabrication" -msgstr "Générer des fichiers utiles pour la fabrication du circuit" - -#: pcbnew/menubar_pcbframe.cpp:139 -msgid "&Specctra Session" -msgstr "&Specctra Session" - -#: pcbnew/menubar_pcbframe.cpp:140 -msgid "Import a routed \"Specctra Session\" (*.ses) file" -msgstr "Importer un fichier de routage \"Specctra Session\" (*.ses) " - -#: pcbnew/menubar_pcbframe.cpp:154 -msgid "Import" -msgstr "Importer" - -#: pcbnew/menubar_pcbframe.cpp:155 -msgid "Import files" -msgstr "Importer fichiers" - -#: pcbnew/menubar_pcbframe.cpp:163 -msgid "&Specctra DSN" -msgstr "&Specctra DSN" - -#: pcbnew/menubar_pcbframe.cpp:164 -msgid "Export the current board to a \"Specctra DSN\" file" -msgstr "Exporte le CI courant dans un fichier au format \"Specctra DSN\"" - -#: pcbnew/menubar_pcbframe.cpp:170 -msgid "&GenCAD" -msgstr "&GenCAD" - -#: pcbnew/menubar_pcbframe.cpp:170 -msgid "Export GenCAD Format" -msgstr "Exporter en Format GenCAD" - -#: pcbnew/menubar_pcbframe.cpp:176 -msgid "&Module Report" -msgstr "Rapport &Modules" - -#: pcbnew/menubar_pcbframe.cpp:177 -msgid "Create a report of all modules on the current board" -msgstr "Créer un fichier rapport de tous les modules du C.I." - -#: pcbnew/menubar_pcbframe.cpp:181 -msgid "&Export" -msgstr "&Exporter" - -#: pcbnew/menubar_pcbframe.cpp:182 -msgid "Export board" -msgstr "Exporter le C.I." - -#: pcbnew/menubar_pcbframe.cpp:188 -msgid "P&rint" -msgstr "Imp&rimer" - -#: pcbnew/menubar_pcbframe.cpp:189 -msgid "Print pcb board" -msgstr "Imprimer C.I." - -#: pcbnew/menubar_pcbframe.cpp:194 -msgid "Print S&VG" -msgstr "Impression S&VG" - -#: pcbnew/menubar_pcbframe.cpp:195 -msgid "Plot board in Scalable Vector Graphics format" -msgstr "Tracer le circuit imprimé en format SVG (Scalable Vector Graphics)" - -#: pcbnew/menubar_pcbframe.cpp:200 -msgid "&Plot" -msgstr "&Tracer" - -#: pcbnew/menubar_pcbframe.cpp:201 -msgid "Plot board in HPGL, PostScript or Gerber RS-274X format)" -msgstr "Tracer le circuit en format HPGL, POSTSCRIPT ou GERBER RS-274X" - -#: pcbnew/menubar_pcbframe.cpp:209 -msgid "Add New Footprints" -msgstr "Ajouter Nouveaux Modules" - -#: pcbnew/menubar_pcbframe.cpp:211 -msgid "Archive new footprints only in a library (keep other footprints in this lib)" -msgstr "Archiver nouveaux modules seuls dans une librairie (garder les autres modules de cette librairie)" - -#: pcbnew/menubar_pcbframe.cpp:215 -msgid "Create Footprint Archive" -msgstr "Créer Archive des Modules" - -#: pcbnew/menubar_pcbframe.cpp:216 -msgid "Archive all footprints in a library(old lib will be deleted)" -msgstr "Archiver tous les modules dans une librairie (ancienne librairie supprimée)" - -#: pcbnew/menubar_pcbframe.cpp:221 -msgid "Archive Footprints" -msgstr "Archiver Modules" - -#: pcbnew/menubar_pcbframe.cpp:222 -msgid "Archive or add footprints in a library file" -msgstr "Archiver ou ajouter les modules dans un fichier librairie" - -#: pcbnew/menubar_pcbframe.cpp:227 -msgid "&Quit" -msgstr "&Quitter" - -#: pcbnew/menubar_pcbframe.cpp:228 -msgid "Quit PCBNew" -msgstr "Quitter PCBnew" - -#: pcbnew/menubar_pcbframe.cpp:240 -msgid "Undo" -msgstr "Undo" - -#: pcbnew/menubar_pcbframe.cpp:247 -msgid "Redo" -msgstr "Redo" - -#: pcbnew/menubar_pcbframe.cpp:256 -msgid "&Find..." -msgstr "&Chercher" - -#: pcbnew/menubar_pcbframe.cpp:258 -msgid "Find components and text in current loaded board" -msgstr "Recherche de composants et textes sur le circuit" - -#: pcbnew/menubar_pcbframe.cpp:267 -msgid "Global &Deletions" -msgstr "Effacements &Généraux" - -#: pcbnew/menubar_pcbframe.cpp:268 -msgid "Delete tracks, modules, texts... on board" -msgstr "Effacer pistes, modules, textes... sur le C.I." - -#: pcbnew/menubar_pcbframe.cpp:274 -msgid "&Tracks" -msgstr "&Pistes" - -#: pcbnew/menubar_pcbframe.cpp:276 -msgid "Clean stubs, vias, delete break points, or connect dangling tracks to pads and vias" -msgstr "Nettoyer bouts de pistes, vias, points inutiles, ou connecter extrémités de pistes mal connectées au centre de pads ou vias" - -#: pcbnew/menubar_pcbframe.cpp:282 -msgid "&Swap Layers" -msgstr "&Permutte Couches" - -#: pcbnew/menubar_pcbframe.cpp:283 -msgid "Swap tracks on copper layers or drawings on others layers" -msgstr "Permutation de couches" - -#: pcbnew/menubar_pcbframe.cpp:330 -msgid "&List Nets" -msgstr "Liste Equipots" - -#: pcbnew/menubar_pcbframe.cpp:331 -msgid "View a list of nets with names and id's" -msgstr "Lister les équipotentielles (noms et numéros d'identification)" - -#: pcbnew/menubar_pcbframe.cpp:338 -msgid "3D Display" -msgstr "3D Visu" - -#: pcbnew/menubar_pcbframe.cpp:338 -msgid "Show board in the 3D viewer" -msgstr "Visualisation du circuit en 3D" - -#: pcbnew/menubar_pcbframe.cpp:349 -msgid "&Library" -msgstr "&Librairie" - -#: pcbnew/menubar_pcbframe.cpp:350 -msgid "Setting libraries, directories and others..." -msgstr "Sélectionner les librairies , répertoires et autres" - -#: pcbnew/menubar_pcbframe.cpp:356 -msgid "&Colors and Visibility" -msgstr "&Couleurs et Visibilité" - -#: pcbnew/menubar_pcbframe.cpp:357 -msgid "Select colors and visibility of layers and some items" -msgstr "Sélection les couleurs et l' affichage des couches et de certains éléments du C.I." - -#: pcbnew/menubar_pcbframe.cpp:362 -msgid "&General" -msgstr "&Général " - -#: pcbnew/menubar_pcbframe.cpp:363 -msgid "Select general options for PCBnew" -msgstr " Sélection options générales pour PCBNEW" - -#: pcbnew/menubar_pcbframe.cpp:369 -msgid "&Display" -msgstr "&Affichage" - -#: pcbnew/menubar_pcbframe.cpp:370 -msgid "Select how items (pads, tracks texts ... ) are displayed" -msgstr "Sélectionner comment les éléments (pads, pistes, textes ...) sont affichés" - -#: pcbnew/menubar_pcbframe.cpp:379 -msgid "Adjust user grid dimensions" -msgstr "Ajuster taille grille utilisateur" - -#: pcbnew/menubar_pcbframe.cpp:385 -msgid "Texts and Drawings" -msgstr "Textes et Tracés" - -#: pcbnew/menubar_pcbframe.cpp:386 -msgid "Adjust dimensions for texts and drawings" -msgstr "Ajuster dimensions pour textes et graphiques" - -#: pcbnew/menubar_pcbframe.cpp:391 -msgid "Pads" -msgstr "Pads" - -#: pcbnew/menubar_pcbframe.cpp:392 -msgid "Adjust default pads caracteristics" -msgstr "Ajuster les caracteristiques par défaut des pads" - -#: pcbnew/menubar_pcbframe.cpp:398 -msgid "Pads Mask Clearance" -msgstr "Marge Masque des Pads" - -#: pcbnew/menubar_pcbframe.cpp:399 -msgid "Adjust the global clearance between pads and the solder resist mask" -msgstr "Ajuster la marge globale entre pads et le masque de vernis épargne" - -#: pcbnew/menubar_pcbframe.cpp:407 -msgid "Save dimension preferences" -msgstr "Sauver les préférences de dimension" - -#: pcbnew/menubar_pcbframe.cpp:413 -msgid "Di&mensions" -msgstr "Di&mensions" - -#: pcbnew/menubar_pcbframe.cpp:414 -msgid "Global dimensions preferences" -msgstr "Préférences générales de dimensions" - -#: pcbnew/menubar_pcbframe.cpp:427 -msgid "&Save Preferences" -msgstr "&Sauver Préférences" - -#: pcbnew/menubar_pcbframe.cpp:428 -msgid "Save application preferences" -msgstr "Sauver les préférences de l'application" - -#: pcbnew/menubar_pcbframe.cpp:433 -msgid "&Read Preferences" -msgstr "&Lire Préférences" - -#: pcbnew/menubar_pcbframe.cpp:434 -msgid "Read application preferences" -msgstr "Lire les préférences de l'application" - -#: pcbnew/menubar_pcbframe.cpp:446 -msgid "Design Rules" -msgstr "Règles de Conception" - -#: pcbnew/menubar_pcbframe.cpp:447 -msgid "Open the design rules dialog editor" -msgstr "Ouvrir la fenêtre de dialogue de l'éditeur de règles de conception" - -#: pcbnew/menubar_pcbframe.cpp:452 -msgid "&Layers Setup" -msgstr "&Options Couches" - -#: pcbnew/menubar_pcbframe.cpp:453 -msgid "Enable and set properties of layers" -msgstr "Activer les couches et ajuster leur propriétés" - -#: pcbnew/menubar_pcbframe.cpp:462 -msgid "&Contents" -msgstr "&Contenu" - -#: pcbnew/menubar_pcbframe.cpp:463 -msgid "Open the PCBnew manual" -msgstr "Ouvrir la documentation de PCPnew" - -#: pcbnew/menubar_pcbframe.cpp:467 -msgid "&About" -msgstr "&Au Sujet de" - -#: pcbnew/menubar_pcbframe.cpp:468 -msgid "About PCBnew printed circuit board designer" -msgstr "Au Sujet de PCBnew outil de conception de C.I." - -#: pcbnew/menubar_pcbframe.cpp:476 -msgid "&File" -msgstr "&Fichiers" - -#: pcbnew/menubar_pcbframe.cpp:477 -msgid "&Edit" -msgstr "&Editer" - -#: pcbnew/menubar_pcbframe.cpp:478 -msgid "&View" -msgstr "&Voir" - -#: pcbnew/menubar_pcbframe.cpp:479 -msgid "&Preferences" -msgstr "&Préférences" - -#: pcbnew/menubar_pcbframe.cpp:480 -msgid "&Design Rules" -msgstr "&Règles de Conception" - -#: pcbnew/menubar_pcbframe.cpp:481 -msgid "&Help" -msgstr "&Aide" - -#: pcbnew/pcbplot.cpp:561 +#: pcbnew/pcbplot.cpp:558 msgid "Warning: Scale option set to a very small value" msgstr "Attention: option d'échelle ajustée à une valeur très petite" -#: pcbnew/pcbplot.cpp:564 +#: pcbnew/pcbplot.cpp:561 msgid "Warning: Scale option set to a very large value" msgstr "Attention: option d'échelle ajustée à une valeur très grande" -#: pcbnew/pcbplot.cpp:693 +#: pcbnew/pcbplot.cpp:690 #, c-format msgid "Plot file <%s> created" msgstr "Fichier de tracé <%s> créé" -#: pcbnew/pcbplot.cpp:705 +#: pcbnew/pcbplot.cpp:702 msgid "No layer selected" msgstr "Pas de couche sélectionnée" @@ -2392,7 +1991,7 @@ msgstr "Aide Freeroute" #: pcbnew/swap_layers.cpp:68 msgid "Swap Layers:" -msgstr "Permutte couches" +msgstr "Permutation Couches:" #: pcbnew/swap_layers.cpp:215 #: pcbnew/swap_layers.cpp:220 @@ -2536,10 +2135,6 @@ msgstr "Affichage" msgid "Layer:" msgstr "Couche:" -#: pcbnew/pcbnew.cpp:89 -msgid "Pcbnew is already running, Continue?" -msgstr "Pcbnew est en cours d'exécution. Continuer ?" - #: pcbnew/specctra_import.cpp:77 msgid "Merge Specctra Session file:" msgstr "Fichier Specctra Session à Fusionner:" @@ -3163,7 +2758,7 @@ msgstr "Erreur: Vous devez choisir une équipotentielle" #: pcbnew/dialog_copper_zones.cpp:347 msgid "You have chosen the \"not connected\" option. This will create insulated copper islands. Are you sure ?" -msgstr "Vous avez choisi l'option \"non connecté\". Cela créera des blocs non connectés. Etes vous sûr ?" +msgstr "Vous avez choisi l'option \"non connecté\". Cela créera des ilots de cuivre non connectés. Etes vous sûr ?" #: pcbnew/dialog_SVG_print_base.cpp:25 msgid "Copper Layers:" @@ -4661,19 +4256,19 @@ msgstr "" "Chemins (chemins système et chemins utilisateurs) utilisés pour chercher et charger les fichiers libriries et documentation des composants.\n" "Triés par ordre de priorité décroissante." -#: pcbnew/dialog_print_using_printer.cpp:91 +#: pcbnew/dialog_print_using_printer.cpp:99 msgid "Error Init Printer info" msgstr "Erreur Init info imprimante" -#: pcbnew/dialog_print_using_printer.cpp:394 +#: pcbnew/dialog_print_using_printer.cpp:430 msgid "Printer Problem!" msgstr "Problème d'imprimante" -#: pcbnew/dialog_print_using_printer.cpp:408 +#: pcbnew/dialog_print_using_printer.cpp:444 msgid "Print Preview" msgstr "Prévisualisation" -#: pcbnew/dialog_print_using_printer.cpp:475 +#: pcbnew/dialog_print_using_printer.cpp:511 msgid "There was a problem printing" msgstr "Il y a un problème d'impression" @@ -4685,6 +4280,10 @@ msgstr "Last Change" msgid "Netlist path" msgstr "Chemin Netliste " +#: pcbnew/class_module.cpp:858 +msgid "Pads" +msgstr "Pads" + #: pcbnew/class_module.cpp:865 msgid "Stat" msgstr "Stat" @@ -5368,6 +4967,10 @@ msgstr "Dim Grille utilisteur" msgid "Adjust user grid" msgstr "Ajuster grille utilisateur" +#: pcbnew/menubar_modedit.cpp:54 +msgid "&Contents" +msgstr "&Contenu" + #: pcbnew/menubar_modedit.cpp:55 msgid "Open the pcbnew manual" msgstr "Ouvrir la documentation de pcbnew" @@ -5380,6 +4983,10 @@ msgstr "&Au sujet de Pcbnew" msgid "About pcbnew PCB designer" msgstr "Au sujet de Pcbnew, concption de PCB" +#: pcbnew/menubar_modedit.cpp:74 +msgid "3D Display" +msgstr "3D Visu" + #: pcbnew/menubar_modedit.cpp:75 msgid "Show board in 3D viewer" msgstr "Visualisation du circuit en 3D" @@ -5392,6 +4999,10 @@ msgstr "&Dimensions" msgid "&3D Display" msgstr "&3D Visu" +#: pcbnew/menubar_modedit.cpp:81 +msgid "&Help" +msgstr "&Aide" + #: pcbnew/dialog_edit_module_for_Modedit_base.cpp:27 msgid "Doc" msgstr "Doc" @@ -5953,6 +5564,8 @@ msgstr "Sélectionner comment les pistes sont affichées" #: pcbnew/dialog_display_options_base.cpp:30 #: pcbnew/dialog_display_options_base.cpp:38 +#: pcbnew/dialog_general_options_BoardEditor_base.cpp:137 +#: pcbnew/dialog_general_options_BoardEditor_base.cpp:145 msgid "Never" msgstr "Jamais" @@ -5966,6 +5579,8 @@ msgstr "Nouvelle piste avec via" #: pcbnew/dialog_display_options_base.cpp:30 #: pcbnew/dialog_display_options_base.cpp:38 +#: pcbnew/dialog_general_options_BoardEditor_base.cpp:137 +#: pcbnew/dialog_general_options_BoardEditor_base.cpp:145 msgid "Always" msgstr "Toujours" @@ -6073,10 +5688,6 @@ msgstr "Afficher autres éléments" msgid "Show page limits" msgstr " Afficher limites de page" -#: pcbnew/layer_panel_base.cpp:57 -msgid "Rendering" -msgstr "Aspect" - #: pcbnew/class_netinfo_item.cpp:132 msgid "Net Name" msgstr "Nom Equipot" @@ -6206,6 +5817,63 @@ msgstr "Fichier placement côté cuivre:" msgid "Module count" msgstr "Nb Modules" +#: pcbnew/layer_widget.cpp:242 +#, fuzzy +msgid "Show All Cu" +msgstr "Tout Afficher" + +#: pcbnew/layer_widget.cpp:245 +msgid "Hide All Cu" +msgstr "" + +#: pcbnew/layer_widget.cpp:385 +msgid "Left click to select, middle click for color change, right click for menu" +msgstr "Clquer sur bouton gauche pour selectionner, du milieu pour changer la couleur, drit pour le menu" + +#: pcbnew/layer_widget.cpp:401 +msgid "Enable this for visibility" +msgstr "Activer ceci pour activer la visibilité" + +#: pcbnew/layer_widget.cpp:419 +msgid "Middle click for color change" +msgstr "Clicquer sur bouton du milieu pour changer la couleur" + +#: pcbnew/layer_widget.cpp:709 +msgid "wxAUI Test" +msgstr "" + +#: pcbnew/layer_widget.cpp:718 +msgid "RED" +msgstr "ROUGE" + +#: pcbnew/layer_widget.cpp:719 +msgid "GREEN" +msgstr "VERT" + +#: pcbnew/layer_widget.cpp:720 +msgid "BROWN" +msgstr "BRUN" + +#: pcbnew/layer_widget.cpp:721 +msgid "BLUE" +msgstr "BLEU" + +#: pcbnew/layer_widget.cpp:724 +msgid "Spock here" +msgstr "" + +#: pcbnew/layer_widget.cpp:726 +msgid "My eyes are upon you" +msgstr "" + +#: pcbnew/layer_widget.cpp:741 +msgid "Pane 2 - sample text" +msgstr "" + +#: pcbnew/layer_widget.cpp:746 +msgid "Main content window" +msgstr "" + #: pcbnew/dialog_general_options_BoardEditor_base.cpp:22 msgid "No Display" msgstr "Pas d'affichage" @@ -6419,42 +6087,6 @@ msgstr "Ajuster toutes vias (pas les pistes) à leurs valeurs en Netclass" msgid "Set all tracks (no via) to their Netclass value" msgstr "Ajuster toutes Pistes (pas les Vias) à leurs Valeurs en NetClass" -#: pcbnew/layer_widget.cpp:315 -msgid "Show All Copper Layers" -msgstr "Monter Toutes les Couches Cuivre." - -#: pcbnew/layer_widget.cpp:318 -msgid "Show No Copper Layers" -msgstr "Monter aucune Couche Cuivre." - -#: pcbnew/layer_widget.cpp:463 -msgid "Left click to select, middle click for color change, right click for menu" -msgstr "Clquer sur bouton gauche pour selectionner, du milieu pour changer la couleur, drit pour le menu" - -#: pcbnew/layer_widget.cpp:471 -msgid "Click here to select this layer" -msgstr "Cliquer ici pour sélectionner cette couche" - -#: pcbnew/layer_widget.cpp:480 -msgid "Enable this for visibility" -msgstr "Activer ceci pour activer la visibilité" - -#: pcbnew/layer_widget.cpp:500 -msgid "Middle click for color change" -msgstr "Clicquer sur bouton du milieu pour changer la couleur" - -#: pcbnew/layer_widget.cpp:870 -msgid "wxAUI Test" -msgstr "" - -#: pcbnew/layer_widget.cpp:899 -msgid "Pane 2 - sample text" -msgstr "" - -#: pcbnew/layer_widget.cpp:904 -msgid "Main content window" -msgstr "" - #: pcbnew/dialog_plot_base.cpp:38 msgid "Use Proper Gerber Extensions" msgstr "Utiliser Extensions Gerber Particulières" @@ -6475,11 +6107,11 @@ msgstr "Exclure les tracés contour PCB des autres couches" msgid "Print sheet reference" msgstr "Imprimer cartouche" -#: pcbnew/dialog_plot_base.cpp:55 +#: pcbnew/dialog_plot_base.cpp:54 msgid "Print pads on silkscreen" msgstr "Pads sur Sérigraphie" -#: pcbnew/dialog_plot_base.cpp:58 +#: pcbnew/dialog_plot_base.cpp:56 msgid "" "Enable/disable print/plot pads on silkscreen layers\n" "When disable, pads are never potted on silkscreen layers\n" @@ -6489,147 +6121,147 @@ msgstr "" "Si interdit, les pads ne sont jamais traçés sur les couches de sérigraphie\n" "Si autorisé, les pads sont traçés seulemnt s'ils apparaissent sur les couches de sérigraphie" -#: pcbnew/dialog_plot_base.cpp:62 +#: pcbnew/dialog_plot_base.cpp:60 msgid "Print module value" msgstr "Imprimer Valeur Module" -#: pcbnew/dialog_plot_base.cpp:67 +#: pcbnew/dialog_plot_base.cpp:64 msgid "Print module reference" msgstr "Imprimer Référence Module" -#: pcbnew/dialog_plot_base.cpp:72 +#: pcbnew/dialog_plot_base.cpp:68 msgid "Print other module texts" msgstr "Imprimer autres textes module" -#: pcbnew/dialog_plot_base.cpp:75 +#: pcbnew/dialog_plot_base.cpp:70 msgid "Enable/disable print/plot module field texts on silkscreen layers" msgstr "Active/désactive le tracé des textes des champs des modules sur couches de sérigraphie" -#: pcbnew/dialog_plot_base.cpp:79 +#: pcbnew/dialog_plot_base.cpp:74 msgid "Force print invisible texts" msgstr "Force tracé textes invisibles" -#: pcbnew/dialog_plot_base.cpp:81 +#: pcbnew/dialog_plot_base.cpp:76 msgid "Force print/plot module invisible texts on silkscreen layers" msgstr "Force le tracé des textes invisibles sur couches de sérigraphie" -#: pcbnew/dialog_plot_base.cpp:96 +#: pcbnew/dialog_plot_base.cpp:91 msgid "Auto scale" msgstr "Ech. auto" -#: pcbnew/dialog_plot_base.cpp:96 +#: pcbnew/dialog_plot_base.cpp:91 msgid "Scale 1.5" msgstr "Echelle 1,5" -#: pcbnew/dialog_plot_base.cpp:98 +#: pcbnew/dialog_plot_base.cpp:93 msgid "Scale Opt" msgstr "Echelle" -#: pcbnew/dialog_plot_base.cpp:104 +#: pcbnew/dialog_plot_base.cpp:99 msgid "Plot Mode" msgstr "Mode de Tracé" -#: pcbnew/dialog_plot_base.cpp:108 +#: pcbnew/dialog_plot_base.cpp:103 msgid "Absolute" msgstr "Absolu" -#: pcbnew/dialog_plot_base.cpp:108 +#: pcbnew/dialog_plot_base.cpp:103 msgid "Auxiliary axis" msgstr "Axe Auxiliaire" -#: pcbnew/dialog_plot_base.cpp:110 +#: pcbnew/dialog_plot_base.cpp:105 msgid "Plot Origin" msgstr "Origine des Coord de Tracé" -#: pcbnew/dialog_plot_base.cpp:119 +#: pcbnew/dialog_plot_base.cpp:114 msgid "HPGL" msgstr "HPGL" -#: pcbnew/dialog_plot_base.cpp:119 +#: pcbnew/dialog_plot_base.cpp:114 msgid "Gerber" msgstr "Gerber" -#: pcbnew/dialog_plot_base.cpp:119 +#: pcbnew/dialog_plot_base.cpp:114 msgid "Postscript" msgstr "Postscript" -#: pcbnew/dialog_plot_base.cpp:119 +#: pcbnew/dialog_plot_base.cpp:114 msgid "Postscript A4" msgstr "Postscript A4" -#: pcbnew/dialog_plot_base.cpp:119 +#: pcbnew/dialog_plot_base.cpp:114 msgid "DXF Export" msgstr "Export DXF" -#: pcbnew/dialog_plot_base.cpp:121 +#: pcbnew/dialog_plot_base.cpp:116 msgid "Plot Format" msgstr "Format de tracé" -#: pcbnew/dialog_plot_base.cpp:126 +#: pcbnew/dialog_plot_base.cpp:121 msgid "HPGL Options:" msgstr "Options HPGL:" -#: pcbnew/dialog_plot_base.cpp:128 +#: pcbnew/dialog_plot_base.cpp:123 msgid "Pen size" msgstr "Diam plume" -#: pcbnew/dialog_plot_base.cpp:135 +#: pcbnew/dialog_plot_base.cpp:130 msgid "Pen Speed (cm/s)" msgstr "Vitesse Plume ( cm/s )" -#: pcbnew/dialog_plot_base.cpp:140 +#: pcbnew/dialog_plot_base.cpp:135 msgid "Set pen speed in cm/s" msgstr "Ajuster Vitesse plume en centimètres par seconde" -#: pcbnew/dialog_plot_base.cpp:144 +#: pcbnew/dialog_plot_base.cpp:139 msgid "Pen ovr" msgstr "Recouvrement" -#: pcbnew/dialog_plot_base.cpp:149 +#: pcbnew/dialog_plot_base.cpp:144 msgid "Set plot overlay for filling" msgstr "Ajuste recouvrement des tracés pour les remplissages" -#: pcbnew/dialog_plot_base.cpp:156 +#: pcbnew/dialog_plot_base.cpp:151 msgid "PS Options:" msgstr "Options PS:" -#: pcbnew/dialog_plot_base.cpp:158 +#: pcbnew/dialog_plot_base.cpp:153 msgid "Plot negative" msgstr "Tracé en Négatif" -#: pcbnew/dialog_plot_base.cpp:169 +#: pcbnew/dialog_plot_base.cpp:164 msgid "Plot mirror" msgstr "Tracé Miroir" -#: pcbnew/dialog_plot_base.cpp:173 +#: pcbnew/dialog_plot_base.cpp:168 msgid "Vias on mask" msgstr "Vias sur masque" -#: pcbnew/dialog_plot_base.cpp:175 +#: pcbnew/dialog_plot_base.cpp:170 msgid "Print/plot vias on mask layers. They are in this case not protected" msgstr "Trace vias sur vernis épargne. Elles seront non protégées" -#: pcbnew/dialog_plot_base.cpp:179 +#: pcbnew/dialog_plot_base.cpp:174 msgid "Line width" msgstr "Epaisseur ligne" -#: pcbnew/dialog_plot_base.cpp:189 +#: pcbnew/dialog_plot_base.cpp:184 msgid "X scale adjust" msgstr "Ajustage Echelle X" -#: pcbnew/dialog_plot_base.cpp:198 +#: pcbnew/dialog_plot_base.cpp:193 msgid "Y scale adjust" msgstr "Ajustage Echelle Y" -#: pcbnew/dialog_plot_base.cpp:208 +#: pcbnew/dialog_plot_base.cpp:203 msgid "Plot" msgstr "Tracer" -#: pcbnew/dialog_plot_base.cpp:212 +#: pcbnew/dialog_plot_base.cpp:207 msgid "Save Options" msgstr "Sauver Options" -#: pcbnew/dialog_plot_base.cpp:215 +#: pcbnew/dialog_plot_base.cpp:210 msgid "Generate drill file" msgstr "Créer Fichier de perçage" @@ -6746,6 +6378,465 @@ msgstr "" "Plan de perçage: trop de diamètres différents pour tracer 1 symbole par diamètre (max 13)\n" "Le tracé utilise des cercles pour quelques valeurs " +#: pcbnew/layer_panel_base.cpp:55 +msgid "Rendering" +msgstr "Aspect" + +#: pcbnew/menubar_pcbframe.cpp:39 +msgid "&New\tCtrl+N" +msgstr "&Nouveau\tCtrl+N" + +#: pcbnew/menubar_pcbframe.cpp:40 +msgid "Clear current board and initialize a new one" +msgstr "Effacer l'ancien C.I. et initialiser un nouveau" + +#: pcbnew/menubar_pcbframe.cpp:45 +msgid "&Open\tCtrl+O" +msgstr "&Ouvrir\tCtrl+O" + +#: pcbnew/menubar_pcbframe.cpp:46 +msgid "Delete current board and load new board" +msgstr "Effacer l'ancien C.I. et charger un nouveau" + +#: pcbnew/menubar_pcbframe.cpp:54 +msgid "Open &Recent" +msgstr "Ouvrir &Recent" + +#: pcbnew/menubar_pcbframe.cpp:55 +msgid "Open a recent opened board" +msgstr "Ouvrir un circuit impirmé récemment ouvert" + +#: pcbnew/menubar_pcbframe.cpp:59 +msgid "&Append Board" +msgstr "&Ajouter Circuit Imprimé" + +#: pcbnew/menubar_pcbframe.cpp:60 +msgid "Append a other PCBNew board to the current loaded board" +msgstr "Ajouter un nouveau circuit imprimé au circuit courant" + +#: pcbnew/menubar_pcbframe.cpp:69 +msgid "&Save\tCtrl+S" +msgstr "&Sauver\tCtrl S" + +#: pcbnew/menubar_pcbframe.cpp:70 +msgid "Save current board" +msgstr "Sauver le C.I. actuel" + +#: pcbnew/menubar_pcbframe.cpp:76 +#, fuzzy +msgid "Save as...\tShift+Ctrl+S" +msgstr "&Sauver\tCtrl S" + +#: pcbnew/menubar_pcbframe.cpp:77 +msgid "Save the current board as.." +msgstr "Sauver le Circuit Imprimé courant sous.." + +#: pcbnew/menubar_pcbframe.cpp:86 +msgid "&Revert" +msgstr "&Reprendre ancien" + +#: pcbnew/menubar_pcbframe.cpp:87 +msgid "Clear board and get previous saved version of board" +msgstr "Effacer le C.I. actuel et reprendre l'ancienne version sauvegardée" + +#: pcbnew/menubar_pcbframe.cpp:92 +msgid "&Rescue" +msgstr "&Secours" + +#: pcbnew/menubar_pcbframe.cpp:93 +msgid "Clear old board and get last rescue file" +msgstr "Effacer C.I. actuel et reprendre le dernier fichier secours" + +#: pcbnew/menubar_pcbframe.cpp:104 +msgid "&Modules Position" +msgstr "Fichier &Modules Position" + +#: pcbnew/menubar_pcbframe.cpp:105 +msgid "Generate modules position file for pick and place" +msgstr "Générer le fichier de position des modules pour machine d'insersion" + +#: pcbnew/menubar_pcbframe.cpp:110 +msgid "&Drill File" +msgstr "&Fichier de Perçage" + +#: pcbnew/menubar_pcbframe.cpp:111 +msgid "Generate excellon2 drill file" +msgstr "Créer Fichier de perçage Excellon2" + +#: pcbnew/menubar_pcbframe.cpp:117 +msgid "&Component File" +msgstr "Fichier de &Composants" + +#: pcbnew/menubar_pcbframe.cpp:118 +msgid "(Re)create components file for CvPcb" +msgstr "(Re)créer le fichier de compsants *.cmp pour CvPcb" + +#: pcbnew/menubar_pcbframe.cpp:124 +msgid "&BOM File" +msgstr "Liste du &Matériel" + +#: pcbnew/menubar_pcbframe.cpp:125 +msgid "Create a bill of materials from schematic" +msgstr "Créer lune liste de matériel de la schématique" + +#: pcbnew/menubar_pcbframe.cpp:131 +msgid "Fabrication Outputs" +msgstr "Fichiers de Fabrication" + +#: pcbnew/menubar_pcbframe.cpp:132 +msgid "Generate files for fabrication" +msgstr "Générer des fichiers utiles pour la fabrication du circuit" + +#: pcbnew/menubar_pcbframe.cpp:139 +msgid "&Specctra Session" +msgstr "&Specctra Session" + +#: pcbnew/menubar_pcbframe.cpp:140 +msgid "Import a routed \"Specctra Session\" (*.ses) file" +msgstr "Importer un fichier de routage \"Specctra Session\" (*.ses) " + +#: pcbnew/menubar_pcbframe.cpp:154 +#: eeschema/libframe.cpp:718 +msgid "Import" +msgstr "Importer" + +#: pcbnew/menubar_pcbframe.cpp:155 +msgid "Import files" +msgstr "Importer fichiers" + +#: pcbnew/menubar_pcbframe.cpp:163 +msgid "&Specctra DSN" +msgstr "&Specctra DSN" + +#: pcbnew/menubar_pcbframe.cpp:164 +msgid "Export the current board to a \"Specctra DSN\" file" +msgstr "Exporte le CI courant dans un fichier au format \"Specctra DSN\"" + +#: pcbnew/menubar_pcbframe.cpp:170 +msgid "&GenCAD" +msgstr "&GenCAD" + +#: pcbnew/menubar_pcbframe.cpp:170 +msgid "Export GenCAD Format" +msgstr "Exporter en Format GenCAD" + +#: pcbnew/menubar_pcbframe.cpp:176 +msgid "&Module Report" +msgstr "Rapport &Modules" + +#: pcbnew/menubar_pcbframe.cpp:177 +msgid "Create a report of all modules on the current board" +msgstr "Créer un fichier rapport de tous les modules du C.I." + +#: pcbnew/menubar_pcbframe.cpp:181 +msgid "&Export" +msgstr "&Exporter" + +#: pcbnew/menubar_pcbframe.cpp:182 +msgid "Export board" +msgstr "Exporter le C.I." + +#: pcbnew/menubar_pcbframe.cpp:188 +#, fuzzy +msgid "&Print\tCtrl+P" +msgstr "&Ouvrir\tCtrl+O" + +#: pcbnew/menubar_pcbframe.cpp:189 +msgid "Print pcb board" +msgstr "Imprimer C.I." + +#: pcbnew/menubar_pcbframe.cpp:194 +msgid "Print S&VG" +msgstr "Impression S&VG" + +#: pcbnew/menubar_pcbframe.cpp:195 +msgid "Plot board in Scalable Vector Graphics format" +msgstr "Tracer le circuit imprimé en format SVG (Scalable Vector Graphics)" + +#: pcbnew/menubar_pcbframe.cpp:200 +msgid "&Plot" +msgstr "&Tracer" + +#: pcbnew/menubar_pcbframe.cpp:201 +msgid "Plot board in HPGL, PostScript or Gerber RS-274X format)" +msgstr "Tracer le circuit en format HPGL, POSTSCRIPT ou GERBER RS-274X" + +#: pcbnew/menubar_pcbframe.cpp:209 +msgid "Add New Footprints" +msgstr "Ajouter Nouveaux Modules" + +#: pcbnew/menubar_pcbframe.cpp:211 +msgid "Archive new footprints only in a library (keep other footprints in this lib)" +msgstr "Archiver nouveaux modules seuls dans une librairie (garder les autres modules de cette librairie)" + +#: pcbnew/menubar_pcbframe.cpp:215 +msgid "Create Footprint Archive" +msgstr "Créer Archive des Modules" + +#: pcbnew/menubar_pcbframe.cpp:216 +msgid "Archive all footprints in a library(old lib will be deleted)" +msgstr "Archiver tous les modules dans une librairie (ancienne librairie supprimée)" + +#: pcbnew/menubar_pcbframe.cpp:221 +msgid "Archive Footprints" +msgstr "Archiver Modules" + +#: pcbnew/menubar_pcbframe.cpp:222 +msgid "Archive or add footprints in a library file" +msgstr "Archiver ou ajouter les modules dans un fichier librairie" + +#: pcbnew/menubar_pcbframe.cpp:229 +msgid "&Quit" +msgstr "&Quitter" + +#: pcbnew/menubar_pcbframe.cpp:230 +msgid "Quit PCBNew" +msgstr "Quitter PCBnew" + +#: pcbnew/menubar_pcbframe.cpp:244 +msgid "Undo" +msgstr "Undo" + +#: pcbnew/menubar_pcbframe.cpp:246 +#, fuzzy +msgid "Undo\tCtrl+Z" +msgstr "&Ouvrir\tCtrl+O" + +#: pcbnew/menubar_pcbframe.cpp:255 +msgid "Redo" +msgstr "Redo" + +#: pcbnew/menubar_pcbframe.cpp:257 +msgid "Redo\tShift+Ctrl+Z" +msgstr "" + +#: pcbnew/menubar_pcbframe.cpp:269 +msgid "&Find..." +msgstr "&Chercher" + +#: pcbnew/menubar_pcbframe.cpp:271 +#, fuzzy +msgid "Find\tCtrl+F" +msgstr "&Ouvrir\tCtrl+O" + +#: pcbnew/menubar_pcbframe.cpp:275 +msgid "Find components and text in current loaded board" +msgstr "Recherche de composants et textes sur le circuit" + +#: pcbnew/menubar_pcbframe.cpp:284 +msgid "Global &Deletions" +msgstr "Effacements &Généraux" + +#: pcbnew/menubar_pcbframe.cpp:285 +msgid "Delete tracks, modules, texts... on board" +msgstr "Effacer pistes, modules, textes... sur le C.I." + +#: pcbnew/menubar_pcbframe.cpp:291 +msgid "&Tracks" +msgstr "&Pistes" + +#: pcbnew/menubar_pcbframe.cpp:293 +msgid "Clean stubs, vias, delete break points, or connect dangling tracks to pads and vias" +msgstr "Nettoyer bouts de pistes, vias, points inutiles, ou connecter extrémités de pistes mal connectées au centre de pads ou vias" + +#: pcbnew/menubar_pcbframe.cpp:299 +msgid "&Swap Layers" +msgstr "&Permutte Couches" + +#: pcbnew/menubar_pcbframe.cpp:300 +msgid "Swap tracks on copper layers or drawings on others layers" +msgstr "Permutation de couches" + +#: pcbnew/menubar_pcbframe.cpp:312 +#: pcbnew/menubar_pcbframe.cpp:318 +#, fuzzy +msgid "Zoom In" +msgstr "Zoom +" + +#: pcbnew/menubar_pcbframe.cpp:315 +#, fuzzy +msgid "Zoom In\tCtrl++" +msgstr "Zoom +" + +#: pcbnew/menubar_pcbframe.cpp:328 +#, fuzzy +msgid "Zoom Out\tCtrl+-" +msgstr "Zoom -" + +#: pcbnew/menubar_pcbframe.cpp:331 +#, fuzzy +msgid "Zoom Out" +msgstr "Zoom -" + +#: pcbnew/menubar_pcbframe.cpp:338 +msgid "Fit on Screen" +msgstr "Ajuster à l'Ecran " + +#: pcbnew/menubar_pcbframe.cpp:341 +msgid "Fit on Screen\tCtrl+0" +msgstr "" + +#: pcbnew/menubar_pcbframe.cpp:345 +msgid "Zoom to fit the board on the screen" +msgstr "Zoom popur ajuster le circuit impriméà l'écran" + +#: pcbnew/menubar_pcbframe.cpp:354 +msgid "Redraw" +msgstr "Redessin de l'écran" + +#: pcbnew/menubar_pcbframe.cpp:357 +#, fuzzy +msgid "Redraw\tCtrl+R" +msgstr "&Nouveau\tCtrl+N" + +#: pcbnew/menubar_pcbframe.cpp:361 +msgid "Redraw the screen of the board" +msgstr "Redessiner l'écran du circuit imprimé" + +#: pcbnew/menubar_pcbframe.cpp:370 +msgid "&List Nets" +msgstr "Liste Equipots" + +#: pcbnew/menubar_pcbframe.cpp:371 +msgid "View a list of nets with names and id's" +msgstr "Lister les équipotentielles (noms et numéros d'identification)" + +#: pcbnew/menubar_pcbframe.cpp:390 +msgid "&Library" +msgstr "&Librairie" + +#: pcbnew/menubar_pcbframe.cpp:391 +msgid "Setting libraries, directories and others..." +msgstr "Sélectionner les librairies , répertoires et autres" + +#: pcbnew/menubar_pcbframe.cpp:397 +msgid "&Colors and Visibility" +msgstr "&Couleurs et Visibilité" + +#: pcbnew/menubar_pcbframe.cpp:398 +msgid "Select colors and visibility of layers and some items" +msgstr "Sélection les couleurs et l' affichage des couches et de certains éléments du C.I." + +#: pcbnew/menubar_pcbframe.cpp:403 +msgid "&General" +msgstr "&Général " + +#: pcbnew/menubar_pcbframe.cpp:404 +msgid "Select general options for PCBnew" +msgstr " Sélection options générales pour PCBNEW" + +#: pcbnew/menubar_pcbframe.cpp:410 +msgid "&Display" +msgstr "&Affichage" + +#: pcbnew/menubar_pcbframe.cpp:411 +msgid "Select how items (pads, tracks texts ... ) are displayed" +msgstr "Sélectionner comment les éléments (pads, pistes, textes ...) sont affichés" + +#: pcbnew/menubar_pcbframe.cpp:420 +msgid "Adjust user grid dimensions" +msgstr "Ajuster taille grille utilisateur" + +#: pcbnew/menubar_pcbframe.cpp:426 +msgid "Texts and Drawings" +msgstr "Textes et Tracés" + +#: pcbnew/menubar_pcbframe.cpp:427 +msgid "Adjust dimensions for texts and drawings" +msgstr "Ajuster dimensions pour textes et graphiques" + +#: pcbnew/menubar_pcbframe.cpp:433 +msgid "Adjust default pads caracteristics" +msgstr "Ajuster les caracteristiques par défaut des pads" + +#: pcbnew/menubar_pcbframe.cpp:439 +msgid "Pads Mask Clearance" +msgstr "Marge Masque des Pads" + +#: pcbnew/menubar_pcbframe.cpp:440 +msgid "Adjust the global clearance between pads and the solder resist mask" +msgstr "Ajuster la marge globale entre pads et le masque de vernis épargne" + +#: pcbnew/menubar_pcbframe.cpp:447 +msgid "&Save" +msgstr "&Sauver" + +#: pcbnew/menubar_pcbframe.cpp:448 +msgid "Save dimension preferences" +msgstr "Sauver les préférences de dimension" + +#: pcbnew/menubar_pcbframe.cpp:454 +msgid "Di&mensions" +msgstr "Di&mensions" + +#: pcbnew/menubar_pcbframe.cpp:455 +msgid "Global dimensions preferences" +msgstr "Préférences générales de dimensions" + +#: pcbnew/menubar_pcbframe.cpp:468 +msgid "&Save Preferences" +msgstr "&Sauver Préférences" + +#: pcbnew/menubar_pcbframe.cpp:469 +msgid "Save application preferences" +msgstr "Sauver les préférences de l'application" + +#: pcbnew/menubar_pcbframe.cpp:474 +msgid "&Read Preferences" +msgstr "&Lire Préférences" + +#: pcbnew/menubar_pcbframe.cpp:475 +msgid "Read application preferences" +msgstr "Lire les préférences de l'application" + +#: pcbnew/menubar_pcbframe.cpp:487 +msgid "Design Rules" +msgstr "Règles de Conception" + +#: pcbnew/menubar_pcbframe.cpp:488 +msgid "Open the design rules dialog editor" +msgstr "Ouvrir la fenêtre de dialogue de l'éditeur de règles de conception" + +#: pcbnew/menubar_pcbframe.cpp:493 +msgid "&Layers Setup" +msgstr "&Options Couches" + +#: pcbnew/menubar_pcbframe.cpp:494 +msgid "Enable and set properties of layers" +msgstr "Activer les couches et ajuster leur propriétés" + +#: pcbnew/menubar_pcbframe.cpp:504 +msgid "Open the PCBnew manual" +msgstr "Ouvrir la documentation de PCPnew" + +#: pcbnew/menubar_pcbframe.cpp:512 +msgid "&About" +msgstr "&Au Sujet de" + +#: pcbnew/menubar_pcbframe.cpp:513 +msgid "About PCBnew printed circuit board designer" +msgstr "Au Sujet de PCBnew outil de conception de C.I." + +#: pcbnew/menubar_pcbframe.cpp:522 +msgid "&File" +msgstr "&Fichiers" + +#: pcbnew/menubar_pcbframe.cpp:523 +msgid "&Edit" +msgstr "&Editer" + +#: pcbnew/menubar_pcbframe.cpp:524 +msgid "&View" +msgstr "&Affichage" + +#: pcbnew/menubar_pcbframe.cpp:525 +msgid "&Preferences" +msgstr "&Préférences" + +#: pcbnew/menubar_pcbframe.cpp:526 +msgid "&Design Rules" +msgstr "&Règles de Conception" + #: eeschema/plotps.cpp:165 msgid "Page Size A4" msgstr "Feuille A4" @@ -7126,285 +7217,13 @@ msgstr "Le composant \" %s\" existe, Le changer ?" msgid "Component %s saved in library %s" msgstr "Composant %s sauvé en librairie %s" -#: eeschema/menubar.cpp:43 -msgid "New schematic project" -msgstr "Nouveau Projet schématique" +#: eeschema/hotkeys.cpp:337 +msgid "Add Component" +msgstr "Ajout Composant" -#: eeschema/menubar.cpp:48 -msgid "Open an existing schematic project" -msgstr "Ouvrir un projet schématique existant" - -#: eeschema/menubar.cpp:57 -msgid "Open a recent opened schematic project" -msgstr "Ouvrir un projet schématique récemment ouvert" - -#: eeschema/menubar.cpp:63 -msgid "&Save Whole Schematic Project" -msgstr "SauverTout le Projet Schématique" - -#: eeschema/menubar.cpp:64 -msgid "Save all sheets in the schematic project" -msgstr "Sauver toutes les feuilles du projet schématique" - -#: eeschema/menubar.cpp:69 -msgid "&Save Current Sheet Only" -msgstr "Sauver la Feuille &Courante:" - -#: eeschema/menubar.cpp:70 -msgid "Save only current schematic sheet" -msgstr "Sauver seulement la feuille active" - -#: eeschema/menubar.cpp:75 -msgid "Save Current Sheet &as..." -msgstr "Sauver la Feuille Courante sous ..." - -#: eeschema/menubar.cpp:76 -msgid "Save current schematic sheet as..." -msgstr "Sauver la feuille active sous ..." - -#: eeschema/menubar.cpp:84 -msgid "Print schematic sheet" -msgstr "Impression des feuilles de schéma" - -#: eeschema/menubar.cpp:91 -msgid "Plot PostScript" -msgstr "Tracé Postscript" - -#: eeschema/menubar.cpp:92 -msgid "Plot schematic sheet in PostScript format" -msgstr "Tracer les feuilles schématiques en format Postscript" - -#: eeschema/menubar.cpp:96 -msgid "Plot HPGL" -msgstr "Tracé HPGL" - -#: eeschema/menubar.cpp:97 -msgid "Plot schematic sheet in HPGL format" -msgstr "Tracer les feuilles schématiques en format HPGL" - -#: eeschema/menubar.cpp:101 -msgid "Plot SVG" -msgstr "Tracé SVG" - -#: eeschema/menubar.cpp:102 -msgid "Plot schematic sheet in SVG format" -msgstr "Tracer les feuilles schématiques en format SVG" - -#: eeschema/menubar.cpp:106 -msgid "Plot DXF" -msgstr "Tracé DXF" - -#: eeschema/menubar.cpp:107 -msgid "Plot schematic sheet in DXF format" -msgstr "Tracer les feuilles schématiques en format DXF" - -#: eeschema/menubar.cpp:115 -msgid "Plot to Clipboard" -msgstr "Tracé dans Presse papier" - -#: eeschema/menubar.cpp:116 -msgid "Export drawings to clipboard" -msgstr " Exporter le dessin dans le presse-papier" - -#: eeschema/menubar.cpp:123 -msgid "Plot schematic sheet in HPGL, PostScript or SVG format" -msgstr "Tracer les feuilles schématiques en format HPGL, POSTSCRIPT ou SVG" - -#: eeschema/menubar.cpp:126 -msgid "E&xit" -msgstr "&Quitter" - -#: eeschema/menubar.cpp:127 -msgid "Quit Eeschema" -msgstr "Quitter Eeschema" - -#: eeschema/menubar.cpp:135 -msgid "&Undo\t" -msgstr "&Undo\t" - -#: eeschema/menubar.cpp:141 -msgid "&Redo\t" -msgstr "&Redo\t" - -#: eeschema/menubar.cpp:156 -msgid "Find" -msgstr "Chercher" - -#: eeschema/menubar.cpp:163 -msgid "Backannotate" -msgstr "Rétro Annotation" - -#: eeschema/menubar.cpp:164 -msgid "Back annotated footprint fields" -msgstr "Rétroannotation des champs modules" - -#: eeschema/menubar.cpp:204 -msgid "&Component" -msgstr "&Composant" - -#: eeschema/menubar.cpp:205 -msgid "Place the component" -msgstr "Placer le Composant" - -#: eeschema/menubar.cpp:209 -msgid "&Power port" -msgstr "Power Symbole" - -#: eeschema/menubar.cpp:210 -msgid "Place the power port" -msgstr "Placer le Symbole Power" - -#: eeschema/menubar.cpp:214 -msgid "&Wire" -msgstr "&Fil" - -#: eeschema/menubar.cpp:215 -msgid "Place the wire" -msgstr "Place fil" - -#: eeschema/menubar.cpp:219 -msgid "&Bus" -msgstr "&Bus" - -#: eeschema/menubar.cpp:220 -msgid "Place bus" -msgstr "Place bus" - -#: eeschema/menubar.cpp:225 -msgid "W&ire to bus entry" -msgstr "Entrées de bus (type fil vers bus)" - -#: eeschema/menubar.cpp:226 -msgid "Place a wire to bus entry" -msgstr "Placer une Entrée de Bus (type fil vers bus)" - -#: eeschema/menubar.cpp:231 -msgid "B&us to bus entry" -msgstr "Entrées de bus (type bus vers bus)" - -#: eeschema/menubar.cpp:232 -msgid "Place a bus to bus entry" -msgstr "Placer une Entrée de Bus (type bus vers bus)" - -#: eeschema/menubar.cpp:236 -msgid "No connect flag" -msgstr "Symbole de Non Connexion" - -#: eeschema/menubar.cpp:237 -msgid "Place a no connect flag" -msgstr "Placer un Symbole de Non Connexion" - -#: eeschema/menubar.cpp:241 -msgid "Net name" -msgstr "Net Name" - -#: eeschema/menubar.cpp:242 -msgid "Place net name" -msgstr "Place nom de net" - -#: eeschema/menubar.cpp:246 -msgid "Global label" -msgstr "Label Global" - -#: eeschema/menubar.cpp:247 -msgid "Place a global label. Warning: all global labels with the same name are connected in whole hierarchy" -msgstr "Placer un label global. Attention: tous les labels globaux avec le même nom sont connectés dans toute la hiérarchie" - -#: eeschema/menubar.cpp:252 -msgid "Junction" -msgstr "Jonction" - -#: eeschema/menubar.cpp:253 -msgid "Place junction" -msgstr "Place jonction" - -#: eeschema/menubar.cpp:260 -msgid "Hierarchical label" -msgstr "Label Hiérarchique" - -#: eeschema/menubar.cpp:261 -msgid "Place a hierarchical label. This label will be seen as a pin sheet in the sheet symbol" -msgstr "Placer un label hiérachique. Ce label sera vu comme une pin dans la feuille mère symbole" - -#: eeschema/menubar.cpp:267 -msgid "Hierarchical sheet" -msgstr "Feuille Hiérrachique" - -#: eeschema/menubar.cpp:268 -msgid "Create a hierarchical sheet" -msgstr "Créer une Feuille Hiérachique" - -#: eeschema/menubar.cpp:273 -msgid "Import Hierarchical Label" -msgstr "Importer Label Hiérarchique" - -#: eeschema/menubar.cpp:274 -msgid "Place a pin sheet created by importing a hierarchical label from sheet" -msgstr "Placer une pin hiérarchique créée par importation d'un label hiérarchique de la feuille" - -#: eeschema/menubar.cpp:280 -msgid "Add Hierarchical Pin to Sheet" -msgstr "Ajouter Pins de Hiérarchie dans feuille" - -#: eeschema/menubar.cpp:281 -msgid "Place a hierarchical pin to sheet" -msgstr "Addition de pins de hiérarchie dans les feuilles symboles de hiérarchie" - -#: eeschema/menubar.cpp:289 -msgid "Graphic line or polygon" -msgstr "Ligne ou polygone graphique" - -#: eeschema/menubar.cpp:290 -msgid "Place graphic lines or polygons" -msgstr "Placer lignes ou polygones graphiques" - -#: eeschema/menubar.cpp:296 -msgid "Graphic text (comment)" -msgstr "Textes graphiques (commentaires)" - -#: eeschema/menubar.cpp:297 -msgid "Place graphic text (comment)" -msgstr "Placer textes graphiques (commentaires)" - -#: eeschema/menubar.cpp:305 -msgid "Library preferences" -msgstr "Préférences pour Librairie" - -#: eeschema/menubar.cpp:309 -msgid "&Colors" -msgstr "&Couleurs" - -#: eeschema/menubar.cpp:310 -msgid "Color preferences" -msgstr "Préférences de couleurs" - -#: eeschema/menubar.cpp:315 -msgid "&Options" -msgstr "&Options" - -#: eeschema/menubar.cpp:316 -msgid "Eeschema general options and preferences" -msgstr "Options et préférences générales de Eeschema" - -#: eeschema/menubar.cpp:325 -msgid "&Save preferences" -msgstr "&Sauver Préférences" - -#: eeschema/menubar.cpp:330 -msgid "&Read preferences" -msgstr "&Lire Préférences" - -#: eeschema/menubar.cpp:338 -msgid "Open the eeschema manual" -msgstr "Ouvrir la documentation de eeschema" - -#: eeschema/menubar.cpp:343 -msgid "About eeschema schematic designer" -msgstr "Au sujet de Eeschema (outil de conception schématique)" - -#: eeschema/menubar.cpp:351 -msgid "&Place" -msgstr "&Placer" +#: eeschema/hotkeys.cpp:361 +msgid "Add Wire" +msgstr "Ajouter Fils" #: eeschema/tool_lib.cpp:38 msgid "Deselect current tool" @@ -7713,14 +7532,6 @@ msgstr "critère de recherche par clé <" msgid "Select Component" msgstr "Sélection Composant" -#: eeschema/hotkeys.cpp:309 -msgid "Add Component" -msgstr "Ajout Composant" - -#: eeschema/hotkeys.cpp:333 -msgid "Add Wire" -msgstr "Ajouter Fils" - #: eeschema/libarch.cpp:55 #, c-format msgid "An error occurred attempting to save component library <%s>." @@ -8425,6 +8236,10 @@ msgstr "> %-28.28s PinSheet %-7.7s (Feuille %s) pos: %3.3f, %3.3f\n" msgid "#End labels\n" msgstr "#End labels\n" +#: eeschema/eeschema.cpp:131 +msgid "Eeschema is already running, Continue?" +msgstr "Eeschema est en cours d'exécution. Continuer ?" + #: eeschema/class_libentry.cpp:59 msgid "none" msgstr "rien" @@ -8442,6 +8257,11 @@ msgstr "référence" msgid "An attempt was made to remove the %s field from component %s in library %s." msgstr "Une tentative a été faite pour supprimer le champ %s du composant %s en librairie %s." +#: eeschema/tool_sch.cpp:34 +#: eeschema/menubar.cpp:45 +msgid "New schematic project" +msgstr "Nouveau Projet schématique" + #: eeschema/tool_sch.cpp:37 msgid "Open schematic project" msgstr "Ouvrir un Projet schématique" @@ -8518,10 +8338,25 @@ msgstr "Placer un fil" msgid "Place a bus" msgstr "Placer un bus" +#: eeschema/tool_sch.cpp:179 +#: eeschema/menubar.cpp:302 +msgid "Place a wire to bus entry" +msgstr "Placer une Entrée de Bus (type fil vers bus)" + +#: eeschema/tool_sch.cpp:183 +#: eeschema/menubar.cpp:309 +msgid "Place a bus to bus entry" +msgstr "Placer une Entrée de Bus (type bus vers bus)" + #: eeschema/tool_sch.cpp:188 msgid "Place no connect flag" msgstr "Placer symbole de non connexion" +#: eeschema/tool_sch.cpp:192 +#: eeschema/menubar.cpp:321 +msgid "Place net name" +msgstr "Place nom de net" + #: eeschema/tool_sch.cpp:196 msgid "" "Place a global label.\n" @@ -8534,6 +8369,11 @@ msgstr "" msgid "Place a junction" msgstr "Placer une jonction" +#: eeschema/tool_sch.cpp:206 +#: eeschema/menubar.cpp:344 +msgid "Place a hierarchical label. This label will be seen as a pin sheet in the sheet symbol" +msgstr "Placer un label hiérachique. Ce label sera vu comme une pin dans la feuille mère symbole" + #: eeschema/tool_sch.cpp:211 msgid "Place hierarchical sheet" msgstr "Placer feuille hiérarchique" @@ -8550,6 +8390,10 @@ msgstr "Addition de pins de hiérarchie dans les feuilles symboles de hiérarchi msgid "Place graphic line or polygon" msgstr "Placer ligne ou polygone graphique" +#: eeschema/tool_sch.cpp:229 +msgid "Place graphic text (comment)" +msgstr "Placer textes graphiques (commentaires)" + #: eeschema/tool_sch.cpp:253 msgid "Turn grid off" msgstr "Ne pas afficher la grille" @@ -8728,6 +8572,280 @@ msgstr "la position X du point %d de la courbe de Bezier n'est pas définie" msgid "Bezier point %d Y position not defined" msgstr "la position Y du point %d de la courbe de Bezier n'est pas définie" +#: eeschema/menubar.cpp:52 +msgid "Open an existing schematic project" +msgstr "Ouvrir un projet schématique existant" + +#: eeschema/menubar.cpp:61 +msgid "Open a recent opened schematic project" +msgstr "Ouvrir un projet schématique récemment ouvert" + +#: eeschema/menubar.cpp:69 +#, fuzzy +msgid "&Save Whole Schematic Project\tCtrl+S" +msgstr "SauverTout le Projet Schématique" + +#: eeschema/menubar.cpp:70 +msgid "Save all sheets in the schematic project" +msgstr "Sauver toutes les feuilles du projet schématique" + +#: eeschema/menubar.cpp:74 +msgid "&Save Current Sheet Only" +msgstr "Sauver la Feuille &Courante:" + +#: eeschema/menubar.cpp:75 +msgid "Save only current schematic sheet" +msgstr "Sauver seulement la feuille active" + +#: eeschema/menubar.cpp:81 +#, fuzzy +msgid "Save Current Sheet &as\tShift+Ctrl+S" +msgstr "Sauver la Feuille Courante sous ..." + +#: eeschema/menubar.cpp:82 +msgid "Save current schematic sheet as..." +msgstr "Sauver la feuille active sous ..." + +#: eeschema/menubar.cpp:90 +#, fuzzy +msgid "P&rint\tCtrl+P" +msgstr "&Ouvrir\tCtrl+O" + +#: eeschema/menubar.cpp:91 +msgid "Print schematic sheet" +msgstr "Impression des feuilles de schéma" + +#: eeschema/menubar.cpp:98 +msgid "Plot PostScript" +msgstr "Tracé Postscript" + +#: eeschema/menubar.cpp:99 +msgid "Plot schematic sheet in PostScript format" +msgstr "Tracer les feuilles schématiques en format Postscript" + +#: eeschema/menubar.cpp:104 +msgid "Plot HPGL" +msgstr "Tracé HPGL" + +#: eeschema/menubar.cpp:105 +msgid "Plot schematic sheet in HPGL format" +msgstr "Tracer les feuilles schématiques en format HPGL" + +#: eeschema/menubar.cpp:110 +msgid "Plot SVG" +msgstr "Tracé SVG" + +#: eeschema/menubar.cpp:111 +msgid "Plot schematic sheet in SVG format" +msgstr "Tracer les feuilles schématiques en format SVG" + +#: eeschema/menubar.cpp:116 +msgid "Plot DXF" +msgstr "Tracé DXF" + +#: eeschema/menubar.cpp:117 +msgid "Plot schematic sheet in DXF format" +msgstr "Tracer les feuilles schématiques en format DXF" + +#: eeschema/menubar.cpp:125 +msgid "Plot to Clipboard" +msgstr "Tracé dans Presse papier" + +#: eeschema/menubar.cpp:126 +msgid "Export drawings to clipboard" +msgstr " Exporter le dessin dans le presse-papier" + +#: eeschema/menubar.cpp:134 +msgid "Plot schematic sheet in HPGL, PostScript or SVG format" +msgstr "Tracer les feuilles schématiques en format HPGL, POSTSCRIPT ou SVG" + +#: eeschema/menubar.cpp:141 +msgid "Quit EESchema" +msgstr "Quitter EESchema" + +#: eeschema/menubar.cpp:190 +#, fuzzy +msgid "&Find\tCtrl+F" +msgstr "&Ouvrir\tCtrl+O" + +#: eeschema/menubar.cpp:199 +msgid "Backannotate" +msgstr "Rétro Annotation" + +#: eeschema/menubar.cpp:200 +msgid "Back annotated footprint fields" +msgstr "Rétroannotation des champs modules" + +#: eeschema/menubar.cpp:226 +#, fuzzy +msgid "Zoom Out\t" +msgstr "Zoom -" + +#: eeschema/menubar.cpp:229 +#, fuzzy +msgid "Zoom out\tCtrl+-" +msgstr "Zoom -" + +#: eeschema/menubar.cpp:246 +msgid "Fit the schematic sheet on the screen" +msgstr "Ajuster la feuille de schéma à l'écran" + +#: eeschema/menubar.cpp:262 +msgid "Redraw the schematic view" +msgstr "Redessin de l'écran" + +#: eeschema/menubar.cpp:276 +msgid "&Component" +msgstr "&Composant" + +#: eeschema/menubar.cpp:277 +msgid "Place the component" +msgstr "Placer le Composant" + +#: eeschema/menubar.cpp:282 +msgid "&Power port" +msgstr "Power Symbole" + +#: eeschema/menubar.cpp:283 +msgid "Place the power port" +msgstr "Placer le Symbole Power" + +#: eeschema/menubar.cpp:288 +msgid "&Wire" +msgstr "&Fil" + +#: eeschema/menubar.cpp:289 +msgid "Place the wire" +msgstr "Place fil" + +#: eeschema/menubar.cpp:294 +msgid "&Bus" +msgstr "&Bus" + +#: eeschema/menubar.cpp:295 +msgid "Place bus" +msgstr "Place bus" + +#: eeschema/menubar.cpp:301 +msgid "W&ire to bus entry" +msgstr "Entrées de bus (type fil vers bus)" + +#: eeschema/menubar.cpp:308 +msgid "B&us to bus entry" +msgstr "Entrées de bus (type bus vers bus)" + +#: eeschema/menubar.cpp:314 +msgid "No connect flag" +msgstr "Symbole de Non Connexion" + +#: eeschema/menubar.cpp:315 +msgid "Place a no connect flag" +msgstr "Placer un Symbole de Non Connexion" + +#: eeschema/menubar.cpp:320 +msgid "Net name" +msgstr "Net Name" + +#: eeschema/menubar.cpp:326 +msgid "Global label" +msgstr "Label Global" + +#: eeschema/menubar.cpp:327 +msgid "Place a global label. Warning: all global labels with the same name are connected in whole hierarchy" +msgstr "Placer un label global. Attention: tous les labels globaux avec le même nom sont connectés dans toute la hiérarchie" + +#: eeschema/menubar.cpp:333 +msgid "Junction" +msgstr "Jonction" + +#: eeschema/menubar.cpp:334 +msgid "Place junction" +msgstr "Place jonction" + +#: eeschema/menubar.cpp:343 +msgid "Hierarchical label" +msgstr "Label Hiérarchique" + +#: eeschema/menubar.cpp:351 +msgid "Hierarchical sheet" +msgstr "Feuille Hiérrachique" + +#: eeschema/menubar.cpp:352 +msgid "Create a hierarchical sheet" +msgstr "Créer une Feuille Hiérachique" + +#: eeschema/menubar.cpp:358 +msgid "Import Hierarchical Label" +msgstr "Importer Label Hiérarchique" + +#: eeschema/menubar.cpp:359 +msgid "Place a pin sheet created by importing a hierarchical label from sheet" +msgstr "Placer une pin hiérarchique créée par importation d'un label hiérarchique de la feuille" + +#: eeschema/menubar.cpp:366 +msgid "Add Hierarchical Pin to Sheet" +msgstr "Ajouter Pins de Hiérarchie dans feuille" + +#: eeschema/menubar.cpp:367 +msgid "Place a hierarchical pin to sheet" +msgstr "Addition de pins de hiérarchie dans les feuilles symboles de hiérarchie" + +#: eeschema/menubar.cpp:377 +msgid "Graphic line or polygon" +msgstr "Ligne ou polygone graphique" + +#: eeschema/menubar.cpp:378 +msgid "Place graphic lines or polygons" +msgstr "Placer lignes ou polygones graphiques" + +#: eeschema/menubar.cpp:385 +msgid "Graphic text" +msgstr "Texte graphique" + +#: eeschema/menubar.cpp:386 +msgid "Place graphic text for comment" +msgstr "Placer textes graphiques en commentaire." + +#: eeschema/menubar.cpp:400 +msgid "Library preferences" +msgstr "Préférences pour Librairie" + +#: eeschema/menubar.cpp:405 +msgid "&Colors" +msgstr "&Couleurs" + +#: eeschema/menubar.cpp:406 +msgid "Color preferences" +msgstr "Préférences de couleurs" + +#: eeschema/menubar.cpp:411 +msgid "&Options" +msgstr "&Options" + +#: eeschema/menubar.cpp:412 +msgid "Eeschema general options and preferences" +msgstr "Options et préférences générales de Eeschema" + +#: eeschema/menubar.cpp:426 +msgid "&Save preferences" +msgstr "&Sauver Préférences" + +#: eeschema/menubar.cpp:432 +msgid "&Read preferences" +msgstr "&Lire Préférences" + +#: eeschema/menubar.cpp:444 +msgid "Open the eeschema manual" +msgstr "Ouvrir la documentation de eeschema" + +#: eeschema/menubar.cpp:452 +msgid "About eeschema schematic designer" +msgstr "Au sujet de Eeschema (outil de conception schématique)" + +#: eeschema/menubar.cpp:465 +msgid "&Place" +msgstr "&Placer" + #: eeschema/schframe.cpp:350 msgid "Schematic modified, Save before exit ?" msgstr "Schématique modifiée, Sauver avant de quitter ?" @@ -8858,10 +8976,6 @@ msgstr "Nom feuille" msgid "File name" msgstr "Nom fichier" -#: eeschema/eeschema.cpp:131 -msgid "Eeschema is already running, Continue?" -msgstr "Eeschema est en cours d'exécution. Continuer ?" - #: eeschema/dialog_edit_label_base.cpp:24 #: eeschema/dialog_edit_label_base.cpp:29 msgid "Enter the text to be used within the schematic" @@ -9421,19 +9535,19 @@ msgstr " erreur!" msgid "The following libraries could not be found:" msgstr "Les librairies suivantes n'ont pas pu être trouvées:" -#: eeschema/dialog_print_using_printer.cpp:105 +#: eeschema/dialog_print_using_printer.cpp:113 msgid "Error initializing printer information." msgstr "Erreur init info imprimante" -#: eeschema/dialog_print_using_printer.cpp:206 +#: eeschema/dialog_print_using_printer.cpp:239 msgid "Printer error!" msgstr "Problème d'imprimante!" -#: eeschema/dialog_print_using_printer.cpp:275 +#: eeschema/dialog_print_using_printer.cpp:308 msgid "There was a problem printing." msgstr "Il y a un problème d'impression." -#: eeschema/dialog_print_using_printer.cpp:289 +#: eeschema/dialog_print_using_printer.cpp:322 #, c-format msgid "Print page %d" msgstr "Imprimer page %d" @@ -10705,21 +10819,61 @@ msgstr "Certains fichiers n'ont pas pu être trouvés!" msgid "Some files are invalid!" msgstr "Certains fichiers sont invalides!" -#: cvpcb/cvpcb.cpp:29 -msgid "Kicad retroannotation files (*.stf)|*.stf" -msgstr "Fichiers de retroannotaion Kicad (*.stf)|*.stf" +#: cvpcb/menucfg.cpp:26 +msgid "&Open" +msgstr "&Ouvrir " -#: cvpcb/cvpcb.cpp:30 -msgid "Kicad footprint alias files (*.equ)|*.equ" -msgstr "Fichiers alias modules Kicad (*.equ)|*.equ" +#: cvpcb/menucfg.cpp:27 +msgid "Open a net list file" +msgstr "Ouvrir un fichier netliste" -#: cvpcb/cvpcb.cpp:86 -msgid "Cvpcb is already running, Continue?" -msgstr "Cvpcb est en cours d'exécution. Continuer ?" +#: cvpcb/menucfg.cpp:36 +msgid "Open a recent opened netlist document" +msgstr "Ouvrir un fichier netliste récemment ouvert" -#: cvpcb/cvpcb.cpp:128 -msgid " [no file]" -msgstr " [pas de fichier]" +#: cvpcb/menucfg.cpp:43 +msgid "&Save As..." +msgstr "&Sauver Sous..." + +#: cvpcb/menucfg.cpp:44 +msgid "Save new net list and footprint list files" +msgstr "Sauver nouveaux fichiers netliste et cmp" + +#: cvpcb/menucfg.cpp:53 +msgid "Quit CvPCB" +msgstr "QuitterCvPCB" + +#: cvpcb/menucfg.cpp:60 +msgid "&Configuration" +msgstr "&Configuration" + +#: cvpcb/menucfg.cpp:61 +msgid "Set libraries and library search paths" +msgstr "Sélectionner les librairie et les chemins de recherche des librairies" + +#: cvpcb/menucfg.cpp:68 +msgid "Keep Open On Save" +msgstr "Rester Ouvert après Sauvegarde" + +#: cvpcb/menucfg.cpp:69 +msgid "Prevent CVPcb from exiting after saving netlist file" +msgstr "N'autorise pas la fermeture automatique de Cvpcb après la sauvegarde de la netliste" + +#: cvpcb/menucfg.cpp:74 +msgid "&Save Project File" +msgstr "&Sauver Fichier Projet" + +#: cvpcb/menucfg.cpp:75 +msgid "Save changes to the project file" +msgstr "Sauver les changements dans le fichier projet" + +#: cvpcb/menucfg.cpp:82 +msgid "Open the cvpcb manual" +msgstr "Ouvrir la documentation de cvpcb" + +#: cvpcb/menucfg.cpp:91 +msgid "About cvpcb schematic to pcb converter" +msgstr "Au sujet de Cvpcb, schématique vers pcb interface" #: cvpcb/cvframe.cpp:284 msgid "" @@ -10752,6 +10906,22 @@ msgstr "non nommé" msgid "Open Net List" msgstr "Ouvrir Fichier Netliste" +#: cvpcb/cvpcb.cpp:29 +msgid "Kicad retroannotation files (*.stf)|*.stf" +msgstr "Fichiers de retroannotaion Kicad (*.stf)|*.stf" + +#: cvpcb/cvpcb.cpp:30 +msgid "Kicad footprint alias files (*.equ)|*.equ" +msgstr "Fichiers alias modules Kicad (*.equ)|*.equ" + +#: cvpcb/cvpcb.cpp:94 +msgid "Cvpcb is already running, Continue?" +msgstr "Cvpcb est en cours d'exécution. Continuer ?" + +#: cvpcb/cvpcb.cpp:136 +msgid " [no file]" +msgstr " [pas de fichier]" + #: cvpcb/genorcad.cpp:127 #, c-format msgid "%s %s pin %s : Different Nets" @@ -10880,59 +11050,6 @@ msgstr "<%s> in'est pas un fichier de module PCB Kicad valide." msgid "Module %s not found" msgstr "Module %s non trouvé" -#: cvpcb/menucfg.cpp:27 -#: cvpcb/tool_cvpcb.cpp:31 -msgid "Open a net list file" -msgstr "Ouvrir un fichier netliste" - -#: cvpcb/menucfg.cpp:33 -msgid "&Save As..." -msgstr "&Sauver Sous..." - -#: cvpcb/menucfg.cpp:34 -msgid "Save new net list and footprint list files" -msgstr "Sauver nouveaux fichiers netliste et cmp" - -#: cvpcb/menucfg.cpp:40 -msgid "Quit Cvpcb" -msgstr "Quitter Cvpcb" - -#: cvpcb/menucfg.cpp:48 -msgid "&Configuration" -msgstr "&Configuration" - -#: cvpcb/menucfg.cpp:49 -msgid "Set libraries and library search paths" -msgstr "Sélectionner les librairie et les chemins de recherche des librairies" - -#: cvpcb/menucfg.cpp:56 -msgid "Keep Open On Save" -msgstr "Rester Ouvert après Sauvegarde" - -#: cvpcb/menucfg.cpp:57 -msgid "Prevent CVPcb from exiting after saving netlist file" -msgstr "N'autorise pas la fermeture automatique de Cvpcb après la sauvegarde de la netliste" - -#: cvpcb/menucfg.cpp:62 -msgid "&Save Project File" -msgstr "&Sauver Fichier Projet" - -#: cvpcb/menucfg.cpp:63 -msgid "Save changes to the project file" -msgstr "Sauver les changements dans le fichier projet" - -#: cvpcb/menucfg.cpp:70 -msgid "Open the cvpcb manual" -msgstr "Ouvrir la documentation de cvpcb" - -#: cvpcb/menucfg.cpp:74 -msgid "&About cvpcb" -msgstr "&Au sujet ce Cvpcb" - -#: cvpcb/menucfg.cpp:75 -msgid "About cvpcb schematic to pcb converter" -msgstr "Au sujet de Cvpcb, schématique vers pcb interface" - #: cvpcb/readschematicnetlist.cpp:114 msgid "File <" msgstr "Fichier <" @@ -11048,6 +11165,138 @@ msgstr "&Appliquer" msgid "Footprint alias files" msgstr "Fichier Alias Modules" +#: kicad/kicad.cpp:78 +#: kicad/prjconfig.cpp:108 +msgid "Working dir: " +msgstr "Répertoire de travail: " + +#: kicad/kicad.cpp:79 +#: kicad/prjconfig.cpp:109 +msgid "" +"\n" +"Project: " +msgstr "" +"\n" +"Projet: " + +#: kicad/kicad.cpp:106 +msgid "noname" +msgstr "noname" + +#: kicad/buildmnu.cpp:94 +msgid "Open an existing project" +msgstr "Ouvrir un projet existant" + +#: kicad/buildmnu.cpp:100 +#: kicad/buildmnu.cpp:268 +msgid "Start a new project" +msgstr "Créer un nouveau projet" + +#: kicad/buildmnu.cpp:107 +#: kicad/buildmnu.cpp:278 +msgid "Save current project" +msgstr "Sauver le projet courrant" + +#: kicad/buildmnu.cpp:116 +msgid "&Archive" +msgstr "Archiver" + +#: kicad/buildmnu.cpp:117 +msgid "Archive project files in zip archive" +msgstr "Archive fichiers projet dans un fichier zip" + +#: kicad/buildmnu.cpp:122 +msgid "&Unarchive" +msgstr "&Désarchiver" + +#: kicad/buildmnu.cpp:123 +msgid "Unarchive project files from zip file" +msgstr "Désarchiver les fichiers du projet" + +#: kicad/buildmnu.cpp:135 +msgid "Quit KiCad" +msgstr "Quitter KiCad" + +#: kicad/buildmnu.cpp:149 +msgid "Text E&ditor" +msgstr "&Editeur de Texte" + +#: kicad/buildmnu.cpp:150 +msgid "Open prefered text editor" +msgstr "Lancer l'éditeur de texte préféré" + +#: kicad/buildmnu.cpp:156 +msgid "&Browse Files" +msgstr "&Examen Fichiers" + +#: kicad/buildmnu.cpp:157 +msgid "Read or edit files with text editor" +msgstr "Lire ou éditer des fichiers avec l'éditeur de texte" + +#: kicad/buildmnu.cpp:167 +msgid "&Text Editor" +msgstr "&Editeur de Texte" + +#: kicad/buildmnu.cpp:168 +msgid "Select your prefered text editor" +msgstr "Choisir son éditeur de texte préféré" + +#: kicad/buildmnu.cpp:181 +msgid "Default PDF Viewer" +msgstr "Visualisateur PDF par défaut" + +#: kicad/buildmnu.cpp:182 +msgid "Use the default (system) PDF viewer used to browse datasheets" +msgstr "Utiliser le visualisateur PDF par défaut pour afficher les documentations" + +#: kicad/buildmnu.cpp:193 +msgid "Favourite PDF Viewer" +msgstr "Visualisateur PDF préféré" + +#: kicad/buildmnu.cpp:194 +msgid "Use your favourite PDF viewer used to browse datasheets" +msgstr "Utiliser le visualisateur PDF préféré pour afficher les documentations" + +#: kicad/buildmnu.cpp:205 +msgid "Select Pdf Viewer" +msgstr "Sélection Visualisateur PDF" + +#: kicad/buildmnu.cpp:206 +msgid "Select your favourite PDF viewer used to browse datasheets" +msgstr "Sélectionner le visualisateur PDF favori pour afficher les documents" + +#: kicad/buildmnu.cpp:212 +msgid "Pdf Viewer" +msgstr "Visualisateur PDF" + +#: kicad/buildmnu.cpp:213 +msgid "Pdf viewer preferences" +msgstr "Préférences pour le visualisateur PDF" + +#: kicad/buildmnu.cpp:226 +msgid "Open the kicad manual" +msgstr "Ouvrir la documentation de kicad" + +#: kicad/buildmnu.cpp:235 +msgid "About kicad project manager" +msgstr "Au sujet de Kicad, gestionnaire de projet" + +#: kicad/buildmnu.cpp:243 +msgid "&Browse" +msgstr "&Examiner" + +#: kicad/buildmnu.cpp:273 +msgid "Load existing project" +msgstr "Ouvrir un projet existant" + +#: kicad/buildmnu.cpp:286 +msgid "Archive all project files" +msgstr "Archiver les fichiers du projet" + +#: kicad/buildmnu.cpp:294 +msgid "Refresh project tree" +msgstr "Mettre à jour l'affichage du projet" + #: kicad/files-io.cpp:50 msgid "Unzip Project" msgstr "Décompresser Projet" @@ -11097,132 +11346,6 @@ msgstr "" "\n" "Créer Archive zippée <%s>" -#: kicad/buildmnu.cpp:93 -msgid "&Open\tCtrl+O" -msgstr "&Ouvrir\tCtrl+O" - -#: kicad/buildmnu.cpp:94 -msgid "Open an existing project" -msgstr "Ouvrir un projet existant" - -#: kicad/buildmnu.cpp:99 -msgid "&New\tCtrl+N" -msgstr "&Nouveau\tCtrl+N" - -#: kicad/buildmnu.cpp:100 -#: kicad/buildmnu.cpp:258 -msgid "Start a new project" -msgstr "Créer un nouveau projet" - -#: kicad/buildmnu.cpp:106 -msgid "&Save\tCtrl+S" -msgstr "&Sauver\tCtrl S" - -#: kicad/buildmnu.cpp:107 -#: kicad/buildmnu.cpp:268 -msgid "Save current project" -msgstr "Sauver le projet courrant" - -#: kicad/buildmnu.cpp:116 -msgid "&Archive" -msgstr "Archiver" - -#: kicad/buildmnu.cpp:117 -msgid "Archive project files in zip archive" -msgstr "Archive fichiers projet dans un fichier zip" - -#: kicad/buildmnu.cpp:122 -msgid "&Unarchive" -msgstr "&Désarchiver" - -#: kicad/buildmnu.cpp:123 -msgid "Unarchive project files from zip file" -msgstr "Désarchiver les fichiers du projet" - -#: kicad/buildmnu.cpp:132 -msgid "Quit kicad" -msgstr "Quitter KiCad" - -#: kicad/buildmnu.cpp:144 -msgid "Text E&ditor" -msgstr "&Editeur de Texte" - -#: kicad/buildmnu.cpp:145 -msgid "Open prefered text editor" -msgstr "Lancer l'éditeur de texte préféré" - -#: kicad/buildmnu.cpp:151 -msgid "&Browse Files" -msgstr "&Examen Fichiers" - -#: kicad/buildmnu.cpp:152 -msgid "Read or edit files with text editor" -msgstr "Lire ou éditer des fichiers avec l'éditeur de texte" - -#: kicad/buildmnu.cpp:162 -msgid "&Text Editor" -msgstr "&Editeur de Texte" - -#: kicad/buildmnu.cpp:163 -msgid "Select your prefered text editor" -msgstr "Choisir son éditeur de texte préféré" - -#: kicad/buildmnu.cpp:176 -msgid "Default PDF Viewer" -msgstr "Visualisateur PDF par défaut" - -#: kicad/buildmnu.cpp:177 -msgid "Use the default (system) PDF viewer used to browse datasheets" -msgstr "Utiliser le visualisateur PDF par défaut pour afficher les documentations" - -#: kicad/buildmnu.cpp:188 -msgid "Favourite PDF Viewer" -msgstr "Visualisateur PDF préféré" - -#: kicad/buildmnu.cpp:189 -msgid "Use your favourite PDF viewer used to browse datasheets" -msgstr "Utiliser le visualisateur PDF préféré pour afficher les documentations" - -#: kicad/buildmnu.cpp:200 -msgid "Select Pdf Viewer" -msgstr "Sélection Visualisateur PDF" - -#: kicad/buildmnu.cpp:201 -msgid "Select your favourite PDF viewer used to browse datasheets" -msgstr "Sélectionner le visualisateur PDF favori pour afficher les documents" - -#: kicad/buildmnu.cpp:207 -msgid "Pdf Viewer" -msgstr "Visualisateur PDF" - -#: kicad/buildmnu.cpp:208 -msgid "Pdf viewer preferences" -msgstr "Préférences pour le visualisateur PDF" - -#: kicad/buildmnu.cpp:221 -msgid "Open the kicad manual" -msgstr "Ouvrir la documentation de kicad" - -#: kicad/buildmnu.cpp:227 -msgid "About kicad project manager" -msgstr "Au sujet de Kicad, gestionnaire de projet" - -#: kicad/buildmnu.cpp:233 -msgid "&Browse" -msgstr "&Examiner" - -#: kicad/buildmnu.cpp:263 -msgid "Load existing project" -msgstr "Ouvrir un projet existant" - -#: kicad/buildmnu.cpp:276 -msgid "Archive all project files" -msgstr "Archiver les fichiers du projet" - -#: kicad/buildmnu.cpp:284 -msgid "Refresh project tree" -msgstr "Mettre à jour l'affichage du projet" - #: kicad/prjconfig.cpp:37 msgid "Project template file not found " msgstr "Fichier modèle non trouvé" @@ -11239,24 +11362,6 @@ msgstr "Ouvrir un Projet Existant" msgid "Kicad project file <" msgstr "Fichier projet Kicad <" -#: kicad/prjconfig.cpp:108 -#: kicad/kicad.cpp:78 -msgid "Working dir: " -msgstr "Répertoire de travail: " - -#: kicad/prjconfig.cpp:109 -#: kicad/kicad.cpp:79 -msgid "" -"\n" -"Project: " -msgstr "" -"\n" -"Projet: " - -#: kicad/kicad.cpp:97 -msgid "noname" -msgstr "noname" - #: kicad/commandframe.cpp:72 msgid "EESchema (Schematic editor)" msgstr "EESchema (Editeur de Schématique)" @@ -11738,6 +11843,10 @@ msgstr "Sauver Couches sous..." msgid "Save current layers as.." msgstr "Sauver couches courantes sous.." +#: gerbview/tool_gerber.cpp:66 +msgid "P&rint" +msgstr "Imp&rimer" + #: gerbview/tool_gerber.cpp:66 msgid "Print gerber" msgstr "Imprimer gerber" @@ -11746,6 +11855,10 @@ msgstr "Imprimer gerber" msgid "Plotting in various formats" msgstr "Générer un tracé ( formats divers)" +#: gerbview/tool_gerber.cpp:71 +msgid "E&xit" +msgstr "&Quitter" + #: gerbview/tool_gerber.cpp:71 msgid "Quit Gerbview" msgstr "Quitter Gerbview" @@ -12350,64 +12463,64 @@ msgstr "Retournement Bloc" msgid "Block Mirror" msgstr "Bloc Miroir" -#: 3d-viewer/3d_aux.cpp:195 -msgid "Vertex " -msgstr "Vertex " - -#: 3d-viewer/3d_canvas.cpp:305 +#: 3d-viewer/3d_canvas.cpp:311 msgid "Zoom +" msgstr "Zoom +" -#: 3d-viewer/3d_canvas.cpp:310 +#: 3d-viewer/3d_canvas.cpp:316 msgid "Zoom -" msgstr "Zoom -" -#: 3d-viewer/3d_canvas.cpp:316 +#: 3d-viewer/3d_canvas.cpp:322 msgid "Top View" msgstr "Vue de dessus" -#: 3d-viewer/3d_canvas.cpp:321 +#: 3d-viewer/3d_canvas.cpp:327 msgid "Bottom View" msgstr "Vue de dessous" -#: 3d-viewer/3d_canvas.cpp:327 +#: 3d-viewer/3d_canvas.cpp:333 msgid "Right View" msgstr "Vue à Droite" -#: 3d-viewer/3d_canvas.cpp:332 +#: 3d-viewer/3d_canvas.cpp:338 msgid "Left View" msgstr "Vue à Gauche" -#: 3d-viewer/3d_canvas.cpp:339 +#: 3d-viewer/3d_canvas.cpp:345 msgid "Front View" msgstr "Vue de face" -#: 3d-viewer/3d_canvas.cpp:344 +#: 3d-viewer/3d_canvas.cpp:350 msgid "Back View" msgstr "Vue arrière" -#: 3d-viewer/3d_canvas.cpp:350 +#: 3d-viewer/3d_canvas.cpp:356 #: 3d-viewer/3d_toolbar.cpp:85 msgid "Move left <-" msgstr "Vers la gauche <-" -#: 3d-viewer/3d_canvas.cpp:355 +#: 3d-viewer/3d_canvas.cpp:361 #: 3d-viewer/3d_toolbar.cpp:88 msgid "Move right ->" msgstr "Vers la droite ->" -#: 3d-viewer/3d_canvas.cpp:360 +#: 3d-viewer/3d_canvas.cpp:366 msgid "Move Up ^" msgstr "Vers le haut ^" -#: 3d-viewer/3d_canvas.cpp:365 +#: 3d-viewer/3d_canvas.cpp:371 msgid "Move Down" msgstr "Vers le bas" -#: 3d-viewer/3d_canvas.cpp:571 +#: 3d-viewer/3d_canvas.cpp:577 msgid "3D Image filename:" msgstr "Nom fichier Image 3D:" +#: 3d-viewer/3d_aux.cpp:195 +msgid "Vertex " +msgstr "Vertex " + #: 3d-viewer/3d_toolbar.cpp:31 msgid "Reload board" msgstr "Reharger Circuit Imprimé" @@ -12580,6 +12693,10 @@ msgstr "Options de Nettoyage" msgid "TextMod properties" msgstr "Propriétés du Texte sur Module" +#: pcbnew/find.h:43 +msgid "Find" +msgstr "Chercher" + #: pcbnew/dialog_initpcb.h:38 msgid "Global Delete" msgstr "Effacements Globaux" @@ -12993,6 +13110,28 @@ msgstr "Options d'Affichage" msgid "Page Settings" msgstr "Ajustage opt Page" +#~ msgid "&New" +#~ msgstr "&Nouveau" +#~ msgid "Save as..." +#~ msgstr "Sauver sous..." +#~ msgid "Show board in the 3D viewer" +#~ msgstr "Visualisation du circuit en 3D" +#~ msgid "Show All Copper Layers" +#~ msgstr "Monter Toutes les Couches Cuivre." +#~ msgid "Show No Copper Layers" +#~ msgstr "Monter aucune Couche Cuivre." +#~ msgid "Click here to select this layer" +#~ msgstr "Cliquer ici pour sélectionner cette couche" +#~ msgid "&Undo\t" +#~ msgstr "&Undo\t" +#~ msgid "&Redo\t" +#~ msgstr "&Redo\t" +#~ msgid "Graphic text (comment)" +#~ msgstr "Textes graphiques (commentaires)" +#~ msgid "Quit Cvpcb" +#~ msgstr "Quitter Cvpcb" +#~ msgid "&About cvpcb" +#~ msgstr "&Au sujet ce Cvpcb" #~ msgid "Enable/disable print/plot pads on silkscreen layers" #~ msgstr "Active/désactive tracé des pastilles sur les couches de sérigraphie" #~ msgid "Always print pads" diff --git a/pcbnew/hotkeys.cpp b/pcbnew/hotkeys.cpp index 6896065e50..bf67a7d507 100644 --- a/pcbnew/hotkeys.cpp +++ b/pcbnew/hotkeys.cpp @@ -86,12 +86,43 @@ static Ki_HotkeyInfo HkDelete( wxT( "Delete Track or Footprint" ), HK_DELETE, WXK_DELETE ); static Ki_HotkeyInfo HkResetLocalCoord( wxT( "Reset local coord." ), HK_RESET_LOCAL_COORD, ' ' ); + static Ki_HotkeyInfo HkZoomAuto( wxT( "Zoom Auto" ), HK_ZOOM_AUTO, WXK_HOME ); static Ki_HotkeyInfo HkZoomCenter( wxT( "Zoom Center" ), HK_ZOOM_CENTER, WXK_F4 ); static Ki_HotkeyInfo HkZoomRedraw( wxT( "Zoom Redraw" ), HK_ZOOM_REDRAW, WXK_F3 ); -static Ki_HotkeyInfo HkZoomOut( wxT( "Zoom Out" ), HK_ZOOM_OUT, WXK_F2 ); + +/* Zoom In */ +#if !defined( __WXMAC__ ) static Ki_HotkeyInfo HkZoomIn( wxT( "Zoom In" ), HK_ZOOM_IN, WXK_F1 ); +#else +static Ki_HotkeyInfo HkZoomIn( wxT( "Zoom In" ), HK_ZOOM_IN, GR_KB_CTRL + '+' ); +#endif + +/* Zoom Out */ +#if !defined( __WXMAC__ ) +static Ki_HotkeyInfo HkZoomOut( wxT( "Zoom Out" ), HK_ZOOM_OUT, WXK_F2 ); +#else +static Ki_HotkeyInfo HkZoomOut( wxT( "Zoom Out" ), HK_ZOOM_OUT, GR_KB_CTRL + '-' ); +#endif + static Ki_HotkeyInfo HkHelp( wxT( "Help: this message" ), HK_HELP, '?' ); + + +/* Undo */ +static Ki_HotkeyInfo HkUndo( wxT( "Undo" ), HK_UNDO, GR_KB_CTRL + 'Z', + (int) wxID_UNDO ); + +/* Redo */ +#if !defined( __WXMAC__ ) +static Ki_HotkeyInfo HkRedo( wxT( "Redo" ), HK_REDO, GR_KB_CTRL + 'Y', + (int) wxID_REDO ); +#else +static Ki_HotkeyInfo HkRedo( wxT( "Redo" ), HK_REDO, + GR_KB_SHIFT + GR_KB_CTRL + 'Z', + (int) wxID_REDO ); +#endif + + static Ki_HotkeyInfo HkSwitchUnits( wxT( "Switch Units" ), HK_SWITCH_UNITS, 'U' + GR_KB_CTRL ); static Ki_HotkeyInfo HkTrackDisplayMode( wxT( "Track Display Mode" ), @@ -99,12 +130,13 @@ static Ki_HotkeyInfo HkTrackDisplayMode( wxT( "Track Display Mode" ), static Ki_HotkeyInfo HkAddModule( wxT( "Add Module" ), HK_ADD_MODULE, 'O' ); // List of common hotkey descriptors -Ki_HotkeyInfo -* s_Common_Hotkey_List[] = +Ki_HotkeyInfo* s_Common_Hotkey_List[] = { &HkHelp, &HkZoomIn, &HkZoomOut, &HkZoomRedraw, &HkZoomCenter, &HkZoomAuto, - &HkSwitchUnits, &HkResetLocalCoord, NULL + &HkSwitchUnits, &HkResetLocalCoord, + &HkUndo, &HkRedo, + NULL }; // List of hotkey descriptors for pcbnew @@ -143,8 +175,7 @@ struct Ki_HotkeyInfoSectionDescriptor s_Pcbnew_Editor_Hokeys_Descr[] = // list of sections and corresponding hotkey list for the board editor (used to list current hotkeys) struct Ki_HotkeyInfoSectionDescriptor s_Board_Editor_Hokeys_Descr[] = { { - &g_CommonSectionTag, - s_Common_Hotkey_List, + &g_CommonSectionTag, s_Common_Hotkey_List, NULL },{ &g_BoardEditorSectionTag, s_board_edit_Hotkey_List, NULL @@ -153,8 +184,7 @@ struct Ki_HotkeyInfoSectionDescriptor s_Board_Editor_Hokeys_Descr[] = } }; // list of sections and corresponding hotkey list for the footprint editor (used to list current hotkeys) -struct Ki_HotkeyInfoSectionDescriptor -s_Module_Editor_Hokeys_Descr[] = +struct Ki_HotkeyInfoSectionDescriptor s_Module_Editor_Hokeys_Descr[] = { { &g_CommonSectionTag, s_Common_Hotkey_List, NULL },{ @@ -192,12 +222,13 @@ void WinEDA_PcbFrame::OnHotKey( wxDC* DC, int hotkey, EDA_BaseStruct* DrawStruct if( (hotkey & GR_KB_CTRL) != 0 ) hotkey += 'A' - 1; - /* Convert lower to upper case (the usual toupper function has problem with non ascii codes like function keys */ + /* Convert lower to upper case + * (the usual toupper function has problem with non ascii codes like function keys + */ if( (hotkey >= 'a') && (hotkey <= 'z') ) hotkey += 'A' - 'a'; - Ki_HotkeyInfo* HK_Descr = GetDescriptorFromHotkey( hotkey, - s_Common_Hotkey_List ); + Ki_HotkeyInfo* HK_Descr = GetDescriptorFromHotkey( hotkey, s_Common_Hotkey_List ); if( HK_Descr == NULL ) HK_Descr = GetDescriptorFromHotkey( hotkey, s_board_edit_Hotkey_List ); @@ -308,6 +339,16 @@ void WinEDA_PcbFrame::OnHotKey( wxDC* DC, int hotkey, EDA_BaseStruct* DrawStruct GetEventHandler()->ProcessEvent( cmd ); break; + case HK_UNDO: + case HK_REDO: + if( ItemFree ) + { + wxCommandEvent event( wxEVT_COMMAND_TOOL_CLICKED, + HK_Descr->m_IdMenuEvent ); + wxPostEvent( this, event ); + } + break; + case HK_RESET_LOCAL_COORD: /*Reset the relative coord */ GetScreen()->m_O_Curseur = GetScreen()->m_Curseur; break; @@ -631,17 +672,23 @@ void WinEDA_ModuleEditFrame::OnHotKey( wxDC* DC, int hotkey, if( hotkey == 0 ) return; + bool ItemFree = (GetCurItem() == 0 || GetCurItem()->m_Flags == 0); wxCommandEvent cmd( wxEVT_COMMAND_MENU_SELECTED ); cmd.SetEventObject( this ); + // Remap the control key Ctrl A (0x01) to GR_KB_CTRL + 'A' (just easier to handle...) + if( (hotkey & GR_KB_CTRL) != 0 ) + hotkey += 'A' - 1; + /* Convert lower to upper case (the usual toupper function has problem with non ascii codes like function keys */ if( (hotkey >= 'a') && (hotkey <= 'z') ) hotkey += 'A' - 'a'; - Ki_HotkeyInfo* HK_Descr = GetDescriptorFromHotkey( hotkey, - s_Common_Hotkey_List ); + Ki_HotkeyInfo* HK_Descr = GetDescriptorFromHotkey( hotkey, s_Common_Hotkey_List ); + if( HK_Descr == NULL ) HK_Descr = GetDescriptorFromHotkey( hotkey, s_module_edit_Hotkey_List ); + if( HK_Descr == NULL ) return; @@ -684,6 +731,16 @@ void WinEDA_ModuleEditFrame::OnHotKey( wxDC* DC, int hotkey, GetEventHandler()->ProcessEvent( cmd ); break; + case HK_UNDO: + case HK_REDO: + if( ItemFree ) + { + wxCommandEvent event( wxEVT_COMMAND_TOOL_CLICKED, + HK_Descr->m_IdMenuEvent ); + wxPostEvent( this, event ); + } + break; + case HK_ZOOM_AUTO: cmd.SetId( ID_ZOOM_PAGE ); GetEventHandler()->ProcessEvent( cmd ); diff --git a/pcbnew/hotkeys.h b/pcbnew/hotkeys.h index bc0728b7f7..666edfa642 100644 --- a/pcbnew/hotkeys.h +++ b/pcbnew/hotkeys.h @@ -16,6 +16,8 @@ enum hotkey_id_commnand { HK_ZOOM_REDRAW, HK_ZOOM_CENTER, HK_ZOOM_AUTO, + HK_UNDO, + HK_REDO, HK_DELETE, HK_BACK_SPACE, HK_ROTATE_FOOTPRINT, diff --git a/pcbnew/menubar_pcbframe.cpp b/pcbnew/menubar_pcbframe.cpp index 1ef6370445..ac0581ea78 100644 --- a/pcbnew/menubar_pcbframe.cpp +++ b/pcbnew/menubar_pcbframe.cpp @@ -245,8 +245,7 @@ void WinEDA_PcbFrame::ReCreateMenuBar() #else text = _( "Undo\tCtrl+Z" ); #endif - - item = new wxMenuItem( editMenu, ID_UNDO_BUTT, text, + item = new wxMenuItem( editMenu, wxID_UNDO, text, _( "Undo last edition" ), wxITEM_NORMAL ); item->SetBitmap( undo_xpm ); editMenu->Append( item ); @@ -257,8 +256,7 @@ void WinEDA_PcbFrame::ReCreateMenuBar() #else text = _( "Redo\tShift+Ctrl+Z" ); #endif - - item = new wxMenuItem( editMenu, ID_REDO_BUTT, text, + item = new wxMenuItem( editMenu, wxID_REDO, text, _( "Redo the last undo command" ), wxITEM_NORMAL ); item->SetBitmap( redo_xpm ); editMenu->Append( item ); @@ -376,10 +374,11 @@ void WinEDA_PcbFrame::ReCreateMenuBar() /* 3D Display */ - item = new wxMenuItem( viewMenu, ID_MENU_PCB_SHOW_3D_FRAME, - _( "3D Display" ), _( "Show board in the 3D viewer" ) ); + wxMenu* Display3DMenu = new wxMenu; + item = new wxMenuItem( Display3DMenu, ID_MENU_PCB_SHOW_3D_FRAME, + _( "3D Display" ), _( "Show board in 3D viewer" ) ); item->SetBitmap( show_3d_xpm ); - viewMenu->Append( item ); + Display3DMenu->Append( item ); /** @@ -525,6 +524,7 @@ void WinEDA_PcbFrame::ReCreateMenuBar() menuBar->Append( viewMenu, _( "&View" ) ); menuBar->Append( configmenu, _( "&Preferences" ) ); menuBar->Append( designRulesMenu, _( "&Design Rules" ) ); + menuBar->Append( Display3DMenu, _( "&3D Display" ) ); menuBar->Append( helpMenu, _( "&Help" ) ); /* Associate the menu bar with the frame */ diff --git a/pcbnew/moduleframe.cpp b/pcbnew/moduleframe.cpp index 7cf06f5531..b7e9b7c388 100644 --- a/pcbnew/moduleframe.cpp +++ b/pcbnew/moduleframe.cpp @@ -74,9 +74,9 @@ BEGIN_EVENT_TABLE( WinEDA_ModuleEditFrame, WinEDA_BasePcbFrame ) WinEDA_ModuleEditFrame::Process_Special_Functions ) EVT_TOOL( ID_MODEDIT_EDIT_MODULE_PROPERTIES, WinEDA_ModuleEditFrame::Process_Special_Functions ) - EVT_TOOL( ID_MODEDIT_UNDO, + EVT_TOOL( wxID_UNDO, WinEDA_ModuleEditFrame::GetComponentFromUndoList ) - EVT_TOOL( ID_MODEDIT_REDO, + EVT_TOOL( wxID_REDO, WinEDA_ModuleEditFrame::GetComponentFromRedoList ) // Vertical toolbar (left click): @@ -316,9 +316,9 @@ void WinEDA_ModuleEditFrame::SetToolbars() if( GetScreen() ) { - m_HToolBar->EnableTool( ID_MODEDIT_UNDO, + m_HToolBar->EnableTool( wxID_UNDO, GetScreen()->GetUndoCommandCount()>0 && active ); - m_HToolBar->EnableTool( ID_MODEDIT_REDO, + m_HToolBar->EnableTool( wxID_REDO, GetScreen()->GetRedoCommandCount()>0 && active ); } diff --git a/pcbnew/pcbframe.cpp b/pcbnew/pcbframe.cpp index dfa9fe0078..b538c19608 100644 --- a/pcbnew/pcbframe.cpp +++ b/pcbnew/pcbframe.cpp @@ -127,8 +127,8 @@ BEGIN_EVENT_TABLE( WinEDA_PcbFrame, WinEDA_BasePcbFrame ) EVT_TOOL( wxID_CUT, WinEDA_PcbFrame::Process_Special_Functions ) EVT_TOOL( wxID_COPY, WinEDA_PcbFrame::Process_Special_Functions ) EVT_TOOL( wxID_PASTE, WinEDA_PcbFrame::Process_Special_Functions ) - EVT_TOOL( ID_UNDO_BUTT, WinEDA_PcbFrame::GetBoardFromUndoList ) - EVT_TOOL( ID_REDO_BUTT, WinEDA_PcbFrame::GetBoardFromRedoList ) + EVT_TOOL( wxID_UNDO, WinEDA_PcbFrame::GetBoardFromUndoList ) + EVT_TOOL( wxID_REDO, WinEDA_PcbFrame::GetBoardFromRedoList ) EVT_TOOL( ID_GEN_PRINT, WinEDA_PcbFrame::ToPrinter ) EVT_TOOL( ID_GEN_PLOT_SVG, WinEDA_DrawFrame::SVG_Print ) EVT_TOOL( ID_GEN_PLOT, WinEDA_PcbFrame::Process_Special_Functions ) diff --git a/pcbnew/pcbnew_id.h b/pcbnew/pcbnew_id.h index a68b213528..7124fc17e2 100644 --- a/pcbnew/pcbnew_id.h +++ b/pcbnew/pcbnew_id.h @@ -249,8 +249,6 @@ enum pcbnew_ids ID_MODEDIT_TRANSFORM_MODULE, ID_MODEDIT_MODULE_ROTATE, ID_MODEDIT_MODULE_MIRROR, - ID_MODEDIT_UNDO, - ID_MODEDIT_REDO, ID_MODEDIT_IMPORT_PART, ID_MODEDIT_EXPORT_PART, ID_MODEDIT_CREATE_NEW_LIB_AND_SAVE_CURRENT_PART, diff --git a/pcbnew/tool_modedit.cpp b/pcbnew/tool_modedit.cpp index a6084c82b1..c9bbd03c02 100644 --- a/pcbnew/tool_modedit.cpp +++ b/pcbnew/tool_modedit.cpp @@ -87,9 +87,9 @@ void WinEDA_ModuleEditFrame::ReCreateHToolbar() m_HToolBar->AddSeparator(); - m_HToolBar->AddTool( ID_MODEDIT_UNDO, wxEmptyString, wxBitmap( undo_xpm ), + m_HToolBar->AddTool( wxID_UNDO, wxEmptyString, wxBitmap( undo_xpm ), _( "Undo last edition" ) ); - m_HToolBar->AddTool( ID_MODEDIT_REDO, wxEmptyString, wxBitmap( redo_xpm ), + m_HToolBar->AddTool( wxID_REDO, wxEmptyString, wxBitmap( redo_xpm ), _( "Redo the last undo command" ) ); m_HToolBar->AddSeparator(); diff --git a/pcbnew/tool_pcb.cpp b/pcbnew/tool_pcb.cpp index 0c0a3741f7..ecdf4e5643 100644 --- a/pcbnew/tool_pcb.cpp +++ b/pcbnew/tool_pcb.cpp @@ -224,9 +224,9 @@ void WinEDA_PcbFrame::ReCreateHToolbar() #endif m_HToolBar->AddSeparator(); - m_HToolBar->AddTool( ID_UNDO_BUTT, wxEmptyString, wxBitmap( undo_xpm ), + m_HToolBar->AddTool( wxID_UNDO, wxEmptyString, wxBitmap( undo_xpm ), _( "Undo last edition" ) ); - m_HToolBar->AddTool( ID_REDO_BUTT, wxEmptyString, wxBitmap( redo_xpm ), + m_HToolBar->AddTool( wxID_REDO, wxEmptyString, wxBitmap( redo_xpm ), _( "Redo the last undo command" ) ); m_HToolBar->AddSeparator(); diff --git a/pcbnew/toolbars_update_user_interface.cpp b/pcbnew/toolbars_update_user_interface.cpp index 905f030441..eda5f9f184 100644 --- a/pcbnew/toolbars_update_user_interface.cpp +++ b/pcbnew/toolbars_update_user_interface.cpp @@ -177,10 +177,10 @@ void WinEDA_PcbFrame::SetToolbars() m_HToolBar->EnableTool( wxID_PASTE, false ); state = GetScreen()->GetUndoCommandCount() > 0; - m_HToolBar->EnableTool( ID_UNDO_BUTT, state ); + m_HToolBar->EnableTool( wxID_UNDO, state ); state = GetScreen()->GetRedoCommandCount() > 0; - m_HToolBar->EnableTool( ID_REDO_BUTT, state ); + m_HToolBar->EnableTool( wxID_REDO, state ); if( m_OptionsToolBar ) {