From ccfa4e0aad3681376a38ce5a7b1251f37f4f411d Mon Sep 17 00:00:00 2001 From: charras Date: Tue, 29 Dec 2009 10:35:11 +0000 Subject: [PATCH] Eeschema: Libedit: fixed hang when using the repeat function (insert key) after creating a pin. Fixed others minor problems --- common/drawpanel.cpp | 44 +- eeschema/classes_body_items.cpp | 2 +- eeschema/dialog_lib_edit_pin.fbp | 12 +- eeschema/dialog_lib_edit_pin_base.cpp | 12 +- eeschema/libframe.cpp | 3 + eeschema/pinedit.cpp | 16 +- eeschema/symbdraw.cpp | 6 + include/kicad_device_context.h | 5 +- include/macros.h | 37 +- internat/fr/kicad.mo | Bin 217239 -> 218792 bytes internat/fr/kicad.po | 1978 +++++++++++++------------ 11 files changed, 1112 insertions(+), 1003 deletions(-) diff --git a/common/drawpanel.cpp b/common/drawpanel.cpp index 2aec9bccf3..df66546922 100644 --- a/common/drawpanel.cpp +++ b/common/drawpanel.cpp @@ -76,13 +76,14 @@ WinEDA_DrawPanel::WinEDA_DrawPanel( WinEDA_DrawFrame* parent, int id, SetBackgroundColour( wxColour( ColorRefs[g_DrawBgColor].m_Red, ColorRefs[g_DrawBgColor].m_Green, ColorRefs[g_DrawBgColor].m_Blue ) ); + SetBackgroundStyle( wxBG_STYLE_CUSTOM ); EnableScrolling( TRUE, TRUE ); m_ClipBox.SetSize( size ); m_ClipBox.SetX( 0 ); m_ClipBox.SetY( 0 ); m_CanStartBlock = -1; // Command block can start if >= 0 - m_AbortEnable = m_AbortRequest = FALSE; + m_AbortEnable = m_AbortRequest = false; m_AutoPAN_Enable = TRUE; m_IgnoreMouseEvents = 0; @@ -93,8 +94,8 @@ WinEDA_DrawPanel::WinEDA_DrawPanel( WinEDA_DrawFrame* parent, int id, wxGetApp().m_EDA_Config->Read( wxT( "AutoPAN" ), &m_AutoPAN_Enable, true ); - m_AutoPAN_Request = FALSE; - m_Block_Enable = FALSE; + m_AutoPAN_Request = false; + m_Block_Enable = false; m_PanelDefaultCursor = m_PanelCursor = wxCURSOR_ARROW; m_CursorLevel = 0; m_PrintIsMirrored = false; @@ -212,7 +213,7 @@ wxPoint WinEDA_DrawPanel::CursorRealPosition( const wxPoint& ScreenPos ) /** Function IsPointOnDisplay * @param ref_pos is the position to test in pixels, relative to the panel. * @return TRUE if ref_pos is a point currently visible on screen - * FALSE if ref_pos is out of screen + * false if ref_pos is out of screen */ bool WinEDA_DrawPanel::IsPointOnDisplay( wxPoint ref_pos ) { @@ -225,7 +226,7 @@ bool WinEDA_DrawPanel::IsPointOnDisplay( wxPoint ref_pos ) // Slightly decreased the size of the useful screen area to avoid drawing // limits. #define PIXEL_MARGIN 8 - display_rect.Inflate( -PIXEL_MARGIN, -PIXEL_MARGIN ); + display_rect.Inflate( -PIXEL_MARGIN ); // Convert physical coordinates. pos = CalcUnscrolledPosition( display_rect.GetPosition() ); @@ -564,11 +565,7 @@ void WinEDA_DrawPanel::OnPaint( wxPaintEvent& event ) // Fix for pixel offset bug http://trac.wxwidgets.org/ticket/4187 paintDC.GetGraphicsContext()->Translate(0.5, 0.5); #else - #ifdef KICAD_USE_BUFFERED_DC - wxBufferedPaintDC paintDC( this ); - #else - wxPaintDC paintDC( this ); - #endif + INSTALL_PAINTDC( paintDC, this ); #endif EDA_Rect tmp; wxRect PaintClipBox; @@ -622,7 +619,7 @@ void WinEDA_DrawPanel::OnPaint( wxPaintEvent& event ) #endif // Be sure the drawpanel clipbox is bigger than the region to repair: - m_ClipBox.Inflate(1,1); // Give it one pixel more in each direction + m_ClipBox.Inflate(1); // Give it one pixel more in each direction #if 0 && defined (DEBUG) printf( "2) PaintClipBox=(%d, %d, %d, %d) org=(%d, %d) m_ClipBox=(%d, %d, %d, %d)\n", @@ -705,7 +702,7 @@ void WinEDA_DrawPanel::DrawBackGround( wxDC* DC ) BASE_SCREEN* screen = GetScreen(); int ii, jj, xg, yg, color; wxRealPoint screen_grid_size; - bool drawgrid = FALSE; + bool drawgrid = false; wxSize size; wxPoint org; @@ -729,7 +726,7 @@ void WinEDA_DrawPanel::DrawBackGround( wxDC* DC ) dgrid.x *= 2; } if( dgrid.x < 5 ) - drawgrid = FALSE; // The grid is too small: do not show it + drawgrid = false; // The grid is too small: do not show it if( dgrid.y < 5 ) { @@ -737,7 +734,7 @@ void WinEDA_DrawPanel::DrawBackGround( wxDC* DC ) dgrid.y *= 2; } if( dgrid.y < 5 ) - drawgrid = FALSE; // The grid is too small + drawgrid = false; // The grid is too small GetViewStart( &org.x, &org.y ); GetScrollPixelsPerUnit( &ii, &jj ); @@ -856,7 +853,7 @@ bool WinEDA_DrawPanel::OnRightClick( wxMouseEvent& event ) m_IgnoreMouseEvents = TRUE; PopupMenu( &MasterMenu, pos ); MouseToCursorSchema(); - m_IgnoreMouseEvents = FALSE; + m_IgnoreMouseEvents = false; return true; } @@ -866,7 +863,7 @@ bool WinEDA_DrawPanel::OnRightClick( wxMouseEvent& event ) void WinEDA_DrawPanel::OnMouseLeaving( wxMouseEvent& event ) { if( ManageCurseur == NULL ) // No command in progress. - m_AutoPAN_Request = FALSE; + m_AutoPAN_Request = false; if( !m_AutoPAN_Enable || !m_AutoPAN_Request || m_IgnoreMouseEvents ) return; @@ -899,11 +896,12 @@ void WinEDA_DrawPanel::OnMouseWheel( wxMouseEvent& event ) if( event.GetWheelRotation() == 0 || !GetParent()->IsEnabled() || !rect.Contains( event.GetPosition() ) ) { +#if 0 wxLogDebug( wxT( "OnMouseWheel() position(%d, %d) " ) \ wxT( "rectangle(%d, %d, %d, %d)" ), event.GetPosition().x, event.GetPosition().y, rect.x, rect.y, rect.width, rect.height ); - +#endif event.Skip(); return; } @@ -964,7 +962,7 @@ void WinEDA_DrawPanel::OnMouseEvent( wxMouseEvent& event ) } if( ManageCurseur == NULL ) // No command in progress - m_AutoPAN_Request = FALSE; + m_AutoPAN_Request = false; if( m_Parent->m_FrameIsActive ) SetFocus(); @@ -1123,7 +1121,7 @@ void WinEDA_DrawPanel::OnMouseEvent( wxMouseEvent& event ) { if( screen->m_BlockLocate.m_State == STATE_BLOCK_MOVE ) { - m_AutoPAN_Request = FALSE; + m_AutoPAN_Request = false; m_Parent->HandleBlockPlace( &DC ); s_IgnoreNextLeftButtonRelease = true; } @@ -1188,13 +1186,13 @@ void WinEDA_DrawPanel::OnMouseEvent( wxMouseEvent& event ) if( ForceCloseManageCurseur ) { ForceCloseManageCurseur( this, &DC ); - m_AutoPAN_Request = FALSE; + m_AutoPAN_Request = false; } SetCursor( m_PanelCursor = m_PanelDefaultCursor ); } else if( screen->m_BlockLocate.m_State == STATE_BLOCK_END ) { - m_AutoPAN_Request = FALSE; + m_AutoPAN_Request = false; m_Parent->HandleBlockEnd( &DC ); SetCursor( m_PanelCursor = m_PanelDefaultCursor ); if( screen->m_BlockLocate.m_State == STATE_BLOCK_MOVE ) @@ -1216,7 +1214,7 @@ void WinEDA_DrawPanel::OnMouseEvent( wxMouseEvent& event ) if( ForceCloseManageCurseur ) { ForceCloseManageCurseur( this, &DC ); - m_AutoPAN_Request = FALSE; + m_AutoPAN_Request = false; } } } @@ -1237,7 +1235,7 @@ void WinEDA_DrawPanel::OnMouseEvent( wxMouseEvent& event ) void WinEDA_DrawPanel::OnKeyEvent( wxKeyEvent& event ) { long key, localkey; - bool escape = FALSE; + bool escape = false; wxPoint pos; key = localkey = event.GetKeyCode(); diff --git a/eeschema/classes_body_items.cpp b/eeschema/classes_body_items.cpp index 12329934e7..6abbb50cc1 100644 --- a/eeschema/classes_body_items.cpp +++ b/eeschema/classes_body_items.cpp @@ -1561,7 +1561,7 @@ void LIB_POLYLINE::Draw( WinEDA_DrawPanel* aPanel, wxDC* aDC, if( Buf_Poly_Drawings == NULL ) { - DisplayError( NULL, _( "Cannot allocate memory to draw polylines." ) ); + DisplayError( NULL, wxT( "Cannot allocate memory to draw polylines." ) ); } } diff --git a/eeschema/dialog_lib_edit_pin.fbp b/eeschema/dialog_lib_edit_pin.fbp index 799d03be48..ad108555c3 100644 --- a/eeschema/dialog_lib_edit_pin.fbp +++ b/eeschema/dialog_lib_edit_pin.fbp @@ -103,7 +103,7 @@ 0 wxID_ANY - &Name: + Pin &name: m_staticText1 @@ -376,7 +376,7 @@ 0 wxID_ANY - N&umber: + Pin n&umber: m_staticText4 @@ -385,7 +385,7 @@ - + Pin number: 1 to 4 ASCII letters and/or digits @@ -918,7 +918,7 @@ 0 wxID_ANY - &Electical type: + &Electrical type: m_staticText6 @@ -927,7 +927,7 @@ - + Used by the ERC. @@ -1060,7 +1060,7 @@ 0 wxID_ANY - &Style: + Graphic &Style: m_staticText7 diff --git a/eeschema/dialog_lib_edit_pin_base.cpp b/eeschema/dialog_lib_edit_pin_base.cpp index ee4b173539..3088528a93 100644 --- a/eeschema/dialog_lib_edit_pin_base.cpp +++ b/eeschema/dialog_lib_edit_pin_base.cpp @@ -21,7 +21,7 @@ DIALOG_LIB_EDIT_PIN_BASE::DIALOG_LIB_EDIT_PIN_BASE( wxWindow* parent, wxWindowID fgSizer1->SetFlexibleDirection( wxBOTH ); fgSizer1->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_ALL ); - m_staticText1 = new wxStaticText( this, wxID_ANY, _("&Name:"), wxDefaultPosition, wxDefaultSize, 0 ); + m_staticText1 = new wxStaticText( this, wxID_ANY, _("Pin &name:"), wxDefaultPosition, wxDefaultSize, 0 ); m_staticText1->Wrap( -1 ); fgSizer1->Add( m_staticText1, 0, wxALIGN_CENTER_VERTICAL|wxALL, 3 ); @@ -42,8 +42,10 @@ DIALOG_LIB_EDIT_PIN_BASE::DIALOG_LIB_EDIT_PIN_BASE( wxWindow* parent, wxWindowID m_staticNameTextSizeUnits->Wrap( -1 ); fgSizer1->Add( m_staticNameTextSizeUnits, 0, wxALIGN_CENTER_VERTICAL|wxALL, 3 ); - m_staticText4 = new wxStaticText( this, wxID_ANY, _("N&umber:"), wxDefaultPosition, wxDefaultSize, 0 ); + m_staticText4 = new wxStaticText( this, wxID_ANY, _("Pin n&umber:"), wxDefaultPosition, wxDefaultSize, 0 ); m_staticText4->Wrap( -1 ); + m_staticText4->SetToolTip( _("Pin number: 1 to 4 ASCII letters and/or digits") ); + fgSizer1->Add( m_staticText4, 0, wxALIGN_CENTER_VERTICAL|wxALL, 3 ); m_textNumber = new wxTextCtrl( this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 ); @@ -86,8 +88,10 @@ DIALOG_LIB_EDIT_PIN_BASE::DIALOG_LIB_EDIT_PIN_BASE( wxWindow* parent, wxWindowID m_staticLengthUnits->Wrap( -1 ); fgSizer1->Add( m_staticLengthUnits, 0, wxALIGN_CENTER_VERTICAL|wxALL, 3 ); - m_staticText6 = new wxStaticText( this, wxID_ANY, _("&Electical type:"), wxDefaultPosition, wxDefaultSize, 0 ); + m_staticText6 = new wxStaticText( this, wxID_ANY, _("&Electrical type:"), wxDefaultPosition, wxDefaultSize, 0 ); m_staticText6->Wrap( -1 ); + m_staticText6->SetToolTip( _("Used by the ERC.") ); + fgSizer1->Add( m_staticText6, 0, wxALIGN_CENTER_VERTICAL|wxALL, 3 ); wxArrayString m_choiceElectricalTypeChoices; @@ -107,7 +111,7 @@ DIALOG_LIB_EDIT_PIN_BASE::DIALOG_LIB_EDIT_PIN_BASE( wxWindow* parent, wxWindowID fgSizer1->Add( 0, 0, 0, wxEXPAND, 3 ); - m_staticText7 = new wxStaticText( this, wxID_ANY, _("&Style:"), wxDefaultPosition, wxDefaultSize, 0 ); + m_staticText7 = new wxStaticText( this, wxID_ANY, _("Graphic &Style:"), wxDefaultPosition, wxDefaultSize, 0 ); m_staticText7->Wrap( -1 ); fgSizer1->Add( m_staticText7, 0, wxALIGN_CENTER_VERTICAL|wxALL, 3 ); diff --git a/eeschema/libframe.cpp b/eeschema/libframe.cpp index 398e4e35ab..793e1446ae 100644 --- a/eeschema/libframe.cpp +++ b/eeschema/libframe.cpp @@ -654,6 +654,9 @@ void WinEDA_LibeditFrame::Process_Special_Functions( wxCommandEvent& event ) INSTALL_DC( dc, DrawPanel ); switch( id ) { + case ID_POPUP_LIBEDIT_CANCEL_EDITING: + break; + case ID_LIBEDIT_SELECT_CURRENT_LIB: SelectActiveLibrary(); break; diff --git a/eeschema/pinedit.cpp b/eeschema/pinedit.cpp index 23d06bf2bc..1206d36480 100644 --- a/eeschema/pinedit.cpp +++ b/eeschema/pinedit.cpp @@ -178,8 +178,12 @@ void WinEDA_LibeditFrame::PlacePin( wxDC* DC ) wxPoint newpos; bool status; - if( CurrentPin == NULL ) + // Some tests + if( (CurrentPin == NULL) || (CurrentPin->Type() != COMPONENT_PIN_DRAW_TYPE) ) + { + wxMessageBox( wxT("WinEDA_LibeditFrame::PlacePin() error") ); return; + } newpos.x = GetScreen()->m_Curseur.x; newpos.y = -GetScreen()->m_Curseur.y; @@ -544,20 +548,15 @@ void WinEDA_LibeditFrame::RepeatPinItem( wxDC* DC, LIB_PIN* SourcePin ) { LIB_PIN* Pin; wxString msg; - int ox = 0, oy = 0; if( m_component == NULL || SourcePin == NULL || SourcePin->Type() != COMPONENT_PIN_DRAW_TYPE ) return; Pin = (LIB_PIN*) SourcePin->GenCopy(); - m_component->AddDrawItem( Pin ); - Pin->m_Flags = IS_NEW; Pin->m_Pos.x += g_RepeatStep.x; - ox = Pin->m_Pos.x; Pin->m_Pos.y += -g_RepeatStep.y; - oy = Pin->m_Pos.y; IncrementLabelMember( Pin->m_PinName ); Pin->ReturnPinStringNum( msg ); @@ -573,7 +572,12 @@ void WinEDA_LibeditFrame::RepeatPinItem( wxDC* DC, LIB_PIN* SourcePin ) DrawPanel->CursorOff( DC ); GetScreen()->m_Curseur.x = Pin->m_Pos.x; GetScreen()->m_Curseur.y = -Pin->m_Pos.y; + + // Add this new pin in list, and creates pins for others parts if needed + m_drawItem = Pin; PlacePin( DC ); + m_lastDrawItem = Pin; + GetScreen()->m_Curseur = savepos; DrawPanel->CursorOn( DC ); diff --git a/eeschema/symbdraw.cpp b/eeschema/symbdraw.cpp index 0e9c2f483d..c4eeaacd25 100644 --- a/eeschema/symbdraw.cpp +++ b/eeschema/symbdraw.cpp @@ -214,7 +214,13 @@ LIB_DRAW_ITEM* WinEDA_LibeditFrame::CreateGraphicItem( LIB_COMPONENT* LibEntry, Text->m_Orient = m_textOrientation; Text->m_Pos = GetScreen()->m_Curseur; NEGATE( Text->m_Pos.y ); + + // Enter the graphic text info + DrawPanel->m_IgnoreMouseEvents = true; EditSymbolText( NULL, Text ); + DrawPanel->MouseToCursorSchema(); + DrawPanel->m_IgnoreMouseEvents = false; + if( Text->m_Text.IsEmpty() ) { SAFE_DELETE( Text ); diff --git a/include/kicad_device_context.h b/include/kicad_device_context.h index 0092418b80..cf306b40d0 100644 --- a/include/kicad_device_context.h +++ b/include/kicad_device_context.h @@ -30,8 +30,11 @@ public: KicadGraphicContext _cDC( parent );\ wxBufferedDC name(&_cDC, _cDC.GetSize() ); +#define INSTALL_PAINTDC(name,parent) wxBufferedPaintDC name(parent ) + #else -#define INSTALL_DC(name,parent) KicadGraphicContext name( parent ); +#define INSTALL_DC(name,parent) KicadGraphicContext name( parent ) +#define INSTALL_PAINTDC(name,parent) wxPaintDC name( parent ) #endif #endif // __KICAD_DEVICE_CONTEXT_H__ diff --git a/include/macros.h b/include/macros.h index 81f90ca3e8..d34066b08d 100644 --- a/include/macros.h +++ b/include/macros.h @@ -21,8 +21,16 @@ */ static inline const wxChar* GetChars( wxString s ) { -#if wxCHECK_VERSION(2,9,0) - return (const wxChar*) s.wx_str(); +#if wxCHECK_VERSION( 2, 9, 0 ) + +/* To be Fixed: + * Currently, access to the actual character data in = 0 ? (y) : ( -(y) ) ) #endif -#define NEGATE(x) (x = -x) +#define NEGATE( x ) (x = -x) + /// # of elements in an arrray -#define DIM(x) (sizeof(x)/sizeof((x)[0])) +#define DIM( x ) ( sizeof(x) / sizeof( (x)[0] ) ) #define DEG2RAD( Deg ) ( (Deg) * M_PI / 180.0 ) @@ -52,28 +61,28 @@ static inline const wxChar* GetChars( wxString s ) #define NORMALIZE_ANGLE( Angle ) { while( Angle < 0 ) \ Angle += 3600;\ while( Angle > 3600 ) \ - Angle -= 3600; } + Angle -= 3600;} /* Normalize angle to be in the 0.0 .. 360.0 range: */ #define NORMALIZE_ANGLE_POS( Angle ) { while( Angle < 0 ) \ Angle += 3600;while( Angle >= 3600 ) \ - Angle -= 3600; } + Angle -= 3600;} #define NEGATE_AND_NORMALIZE_ANGLE_POS( Angle ) \ { Angle = -Angle; while( Angle < 0 ) \ Angle += 3600;while( Angle >= 3600 ) \ - Angle -= 3600; } + Angle -= 3600;} /* Normalize angle to be in the -90.0 .. 90.0 range */ #define NORMALIZE_ANGLE_90( Angle ) { while( Angle < -900 ) \ Angle += 1800;\ while( Angle > 900 ) \ - Angle -= 1800; } + Angle -= 1800;} /* Normalize angle to be in the -180.0 .. 180.0 range */ #define NORMALIZE_ANGLE_180( Angle ) { while( Angle <= -1800 ) \ - Angle += 3600;\ - while( Angle > 1800 ) \ - Angle -= 3600; } + Angle += 3600;\ + while( Angle > 1800 ) \ + Angle -= 3600;} /*****************************/ /* macro to exchange 2 items */ @@ -104,7 +113,7 @@ BOOST_TYPEOF_REGISTER_TYPE( const D_PAD* ); class BOARD_ITEM; BOOST_TYPEOF_REGISTER_TYPE( BOARD_ITEM* ); -#define EXCHG( a, b ) { BOOST_TYPEOF(a) __temp__ = (a); \ +#define EXCHG( a, b ) { BOOST_TYPEOF( a ) __temp__ = (a); \ (a) = (b); \ (b) = __temp__; } @@ -140,7 +149,7 @@ static inline void ADD_MENUITEM_WITH_SUBMENU( wxMenu* menu, wxMenu* submenu, int id, const wxString& text, const wxBitmap& icon ) { - wxMenuItem* l_item; + wxMenuItem* l_item; l_item = new wxMenuItem( menu, id, text ); l_item->SetSubMenu( submenu ); @@ -155,7 +164,7 @@ static inline void ADD_MENUITEM_WITH_HELP_AND_SUBMENU( wxMenu* menu, const wxString& help, const wxBitmap& icon ) { - wxMenuItem* l_item; + wxMenuItem* l_item; l_item = new wxMenuItem( menu, id, text, help ); l_item->SetSubMenu( submenu ); diff --git a/internat/fr/kicad.mo b/internat/fr/kicad.mo index 0c6acef1ff60ff3dd62854f246a3898d7225c103..faec486f83fcbaf1f950f247bb9e52a99920465d 100644 GIT binary patch delta 65345 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%0ABNalcEp!|rq%FTlgzi2OjT(*7we{4;10f| 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 aoEf*5+|hCqN5yYt#*=PK=;Jyi)&BtKKqQL* delta 64057 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 bwGgA7xEH0|ve~zma;u)up0SGC*rfjhgC0#X diff --git a/internat/fr/kicad.po b/internat/fr/kicad.po index 87ba9c8d72..85bb7324c3 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: 2009-12-16 10:43+0100\n" -"PO-Revision-Date: 2009-12-16 10:48+0100\n" +"POT-Creation-Date: 2009-12-29 11:30+0100\n" +"PO-Revision-Date: 2009-12-29 11:34+0100\n" "Last-Translator: \n" "Language-Team: kicad team \n" "MIME-Version: 1.0\n" @@ -22,58 +22,66 @@ msgstr "" "X-Poedit-SearchPath-6: 3d-viewer\n" "X-Poedit-SearchPath-7: share\n" -#: pcbnew/edit.cpp:162 -msgid "Module Editor" -msgstr "Ouvrir Editeur de modules" +#: pcbnew/files.cpp:21 +msgid "Printed circuit board" +msgstr "Circuit imprimé" -#: pcbnew/edit.cpp:232 -msgid "Add Tracks" -msgstr "Addition de Pistes" +#: pcbnew/files.cpp:71 +msgid "Recovery file " +msgstr "Fichier de secours " -#: pcbnew/edit.cpp:240 -msgid "Add Zones" -msgstr "Addition de Zones" +#: pcbnew/files.cpp:71 +msgid " not found" +msgstr " non trouvé" -#: pcbnew/edit.cpp:242 -msgid "Warning: Display Zone is OFF!!!" -msgstr "Attention: Affichage zones désactivé !!!" +#: pcbnew/files.cpp:77 +msgid "Ok to load Recovery file " +msgstr "Ok pour charger le fichier de secours" -#: pcbnew/edit.cpp:248 -msgid "Add Layer Alignment Target" -msgstr "Ajouter Mire de superposition" +#: pcbnew/files.cpp:133 +msgid "Board Modified: Continue ?" +msgstr "Circuit imprimé modifié, Continuer ?" -#: pcbnew/edit.cpp:252 -msgid "Adjust Zero" -msgstr "Ajuster Zéro" +#: pcbnew/files.cpp:152 +msgid "Open Board File" +msgstr "Ouvrir Fichier C.I." -#: pcbnew/edit.cpp:258 -msgid "Add Graphic" -msgstr "Addition éléments graphiques" +#: pcbnew/files.cpp:175 +#, c-format +msgid "File <%s> not found" +msgstr "Fichier %s non trouvé" -#: pcbnew/edit.cpp:262 -msgid "Add Text" -msgstr "Ajout de Texte" +#: pcbnew/files.cpp:195 +msgid "This file was created by a more recent version of PCBnew and may not load correctly. Please consider updating!" +msgstr "Ce fichier a été créé par une version plus récente de PCBnew et peut être incorrectement chargé. SVP penser à une mise à jour!" -#: pcbnew/edit.cpp:266 -msgid "Add Modules" -msgstr "Addition de Modules" +#: pcbnew/files.cpp:200 +msgid "This file was created by an older version of PCBnew. It will be stored in the new file format when you save this file again." +msgstr "Ce fichier a été créé par une version plus ancienne de Eeschema. Il sera enregistré au nouveau format après la prochaine sauvegarde." -#: pcbnew/edit.cpp:270 -msgid "Add Dimension" -msgstr "Ajout de cotes" +#: pcbnew/files.cpp:305 +msgid "Save Board File" +msgstr "Sauver Fichier C.I." -#: pcbnew/edit.cpp:278 -msgid "Net Highlight" -msgstr "Surbrillance des équipotentielles" +#: pcbnew/files.cpp:339 +msgid "Warning: unable to create backup file " +msgstr "Attention: impossible de créer un fichier backup " -#: pcbnew/edit.cpp:282 -msgid "Local Ratsnest" -msgstr "Montrer le chevelu général" +#: pcbnew/files.cpp:356 +msgid "Unable to create " +msgstr "Impossible de créer " -#: pcbnew/edit.cpp:576 -#: pcbnew/modedit.cpp:458 -msgid "Delete item" -msgstr "Suppression d'éléments" +#: pcbnew/files.cpp:375 +msgid "Backup file: " +msgstr "Fichier backup: " + +#: pcbnew/files.cpp:379 +msgid "Wrote board file: " +msgstr "Ecriture fichier CI: " + +#: pcbnew/files.cpp:381 +msgid "Failed to create " +msgstr "Impossible de créer fichier " #: pcbnew/pcbnew.cpp:80 msgid "Pcbnew is already running, Continue?" @@ -285,18 +293,6 @@ msgstr "Supprimer Module" msgid "Value " msgstr "Valeur " -#: pcbnew/surbrill.cpp:31 -msgid "Filter for net names:" -msgstr "Filtre pour nets:" - -#: pcbnew/surbrill.cpp:31 -msgid "Net Filter" -msgstr "Filtre Equipot" - -#: pcbnew/surbrill.cpp:36 -msgid "List Nets" -msgstr "Liste équipots" - #: pcbnew/set_grid.cpp:125 msgid "mm" msgstr "mm" @@ -389,49 +385,17 @@ msgstr "Epaisseur" msgid "Layer:" msgstr "Couche:" -#: pcbnew/modedit.cpp:79 -msgid "Selection Clarification" -msgstr "Clarification de la Sélection" +#: pcbnew/surbrill.cpp:33 +msgid "Filter for net names:" +msgstr "Filtre pour nets:" -#: pcbnew/modedit.cpp:281 -msgid "Unable to find the footprint source on the main board" -msgstr "Impossible de trouver le module source sur le PCB principal" +#: pcbnew/surbrill.cpp:33 +msgid "Net Filter" +msgstr "Filtre Equipot" -#: pcbnew/modedit.cpp:282 -msgid "" -"\n" -"Cannot update the footprint" -msgstr "" -"\n" -"Ne peut mettre à jour le module" - -#: pcbnew/modedit.cpp:291 -msgid "A footprint source was found on the main board" -msgstr "Un module source a été trouvé sur le PCB principal" - -#: pcbnew/modedit.cpp:292 -msgid "" -"\n" -"Cannot insert this footprint" -msgstr "" -"\n" -"Ne peut insérer ce module" - -#: pcbnew/modedit.cpp:427 -msgid "Add Pad" -msgstr "Ajouter Pastilles" - -#: pcbnew/modedit.cpp:430 -msgid "Pad Settings" -msgstr "Caract pads" - -#: pcbnew/modedit.cpp:440 -msgid "Add Drawing" -msgstr "Ajout d'éléments graphiques" - -#: pcbnew/modedit.cpp:444 -msgid "Place anchor" -msgstr "Place Ancre" +#: pcbnew/surbrill.cpp:38 +msgid "List Nets" +msgstr "Liste équipots" #: pcbnew/autoplac.cpp:104 msgid "Footprints NOT LOCKED will be moved" @@ -465,15 +429,15 @@ msgstr "Itération" msgid "Ok to abort?" msgstr "Ok pour abandonner?" -#: pcbnew/automove.cpp:200 +#: pcbnew/automove.cpp:194 msgid "No modules found!" msgstr "Pas demodules" -#: pcbnew/automove.cpp:205 +#: pcbnew/automove.cpp:199 msgid "Move modules?" msgstr "Déplacer modules ?" -#: pcbnew/automove.cpp:213 +#: pcbnew/automove.cpp:207 msgid "Could not automatically place modules. No board edges detected." msgstr " Impossible de placer automatiquement les modules. Pas de contours sur pcb." @@ -1235,19 +1199,19 @@ msgstr "Fichier <%s> non trouvé, Netliste utilisée pour sélection des module msgid "Component [%s]: footprint <%s> not found" msgstr "Composant [%s]: Module <%s> non trouvé en librairie" -#: pcbnew/pcbframe.cpp:319 +#: pcbnew/pcbframe.cpp:320 msgid "Board modified, Save before exit ?" msgstr "Circuit Imprimé modifié, Sauver avant de quitter ?" -#: pcbnew/pcbframe.cpp:320 +#: pcbnew/pcbframe.cpp:321 msgid "Confirmation" msgstr "Confirmation" -#: pcbnew/pcbframe.cpp:359 +#: pcbnew/pcbframe.cpp:360 msgid "3D Frame already opened" msgstr "Fenêtre 3D déjà ouverte" -#: pcbnew/pcbframe.cpp:363 +#: pcbnew/pcbframe.cpp:364 msgid "3D Viewer" msgstr "Visu 3D" @@ -1304,6 +1268,10 @@ msgstr "Fichiers rapport de perçage (.rpt)*.rpt" msgid "Save Drill Report File" msgstr "Sauver Fichier Rapport de Perçage" +#: pcbnew/editmod.cpp:42 +msgid "Module Editor" +msgstr "Ouvrir Editeur de modules" + #: pcbnew/editmod.cpp:128 msgid "Text is REFERENCE!" msgstr "Le texte est la REFERENCE!" @@ -1561,88 +1529,27 @@ msgstr "Forme 3D:" msgid "File" msgstr "Fichier" -#: pcbnew/set_color.cpp:277 -#: pcbnew/set_color.cpp:303 +#: pcbnew/set_color.cpp:278 +#: pcbnew/set_color.cpp:304 msgid "Show None" msgstr "Rien Afficher" -#: pcbnew/set_color.cpp:286 +#: pcbnew/set_color.cpp:287 msgid "Show All" msgstr "Tout Afficher" -#: pcbnew/set_color.cpp:298 +#: pcbnew/set_color.cpp:299 msgid "Switch on all of the copper layers" msgstr "Affiche toutes les couches cuivre" -#: pcbnew/set_color.cpp:306 +#: pcbnew/set_color.cpp:307 msgid "Switch off all of the copper layers" msgstr "N'affiche pas les couches cuivre" -#: pcbnew/set_color.cpp:365 +#: pcbnew/set_color.cpp:366 msgid "Apply" msgstr "Appliquer" -#: pcbnew/files.cpp:22 -msgid "Printed circuit board" -msgstr "Circuit imprimé" - -#: pcbnew/files.cpp:85 -msgid "Recovery file " -msgstr "Fichier de secours " - -#: pcbnew/files.cpp:85 -msgid " not found" -msgstr " non trouvé" - -#: pcbnew/files.cpp:91 -msgid "Ok to load Recovery file " -msgstr "Ok pour charger le fichier de secours" - -#: pcbnew/files.cpp:147 -msgid "Board Modified: Continue ?" -msgstr "Circuit imprimé modifié, Continuer ?" - -#: pcbnew/files.cpp:166 -msgid "Open Board File" -msgstr "Ouvrir Fichier C.I." - -#: pcbnew/files.cpp:189 -#, c-format -msgid "File <%s> not found" -msgstr " fichier %s non trouvé" - -#: pcbnew/files.cpp:209 -msgid "This file was created by a more recent version of PCBnew and may not load correctly. Please consider updating!" -msgstr "Ce fichier a été créé par une version plus récente de PCBnew et peut être incorrectement chargé. SVP penser à une mise à jour!" - -#: pcbnew/files.cpp:214 -msgid "This file was created by an older version of PCBnew. It will be stored in the new file format when you save this file again." -msgstr "Ce fichier a été créé par une version plus ancienne de Eeschema. Il sera enregistré au nouveau format après la prochaine sauvegarde." - -#: pcbnew/files.cpp:319 -msgid "Save Board File" -msgstr "Sauver Fichier C.I." - -#: pcbnew/files.cpp:353 -msgid "Warning: unable to create backup file " -msgstr "Attention: impossible de créer un fichier backup " - -#: pcbnew/files.cpp:370 -msgid "Unable to create " -msgstr "Impossible de créer " - -#: pcbnew/files.cpp:389 -msgid "Backup file: " -msgstr "Fichier backup: " - -#: pcbnew/files.cpp:393 -msgid "Wrote board file: " -msgstr "Ecriture fichier CI: " - -#: pcbnew/files.cpp:395 -msgid "Failed to create " -msgstr "Impossible de créer fichier " - #: pcbnew/editedge.cpp:122 msgid "Copper layer global delete not allowed!" msgstr " Effacement global sur couche cuivre non autorisé" @@ -1754,6 +1661,10 @@ msgstr "Le circuit actuel sera perdu et cette opération ne pourra pas être ann msgid "Current Footprint will be lost and this operation cannot be undone. Continue ?" msgstr "Le module actuel sera perdu et cette opération ne pourra pas être annulée. Continuer ?" +#: pcbnew/controle.cpp:175 +msgid "Selection Clarification" +msgstr "Clarification de la Sélection" + #: pcbnew/librairi.cpp:32 msgid "Kicad foot print export files (*.emp)|*.emp" msgstr "Kicad fichiers export modules (*.emp)|*.emp" @@ -1943,6 +1854,95 @@ msgstr "Max" msgid "Segm" msgstr "Segm" +#: pcbnew/modedit.cpp:282 +msgid "Unable to find the footprint source on the main board" +msgstr "Impossible de trouver le module source sur le PCB principal" + +#: pcbnew/modedit.cpp:283 +msgid "" +"\n" +"Cannot update the footprint" +msgstr "" +"\n" +"Ne peut mettre à jour le module" + +#: pcbnew/modedit.cpp:292 +msgid "A footprint source was found on the main board" +msgstr "Un module source a été trouvé sur le PCB principal" + +#: pcbnew/modedit.cpp:293 +msgid "" +"\n" +"Cannot insert this footprint" +msgstr "" +"\n" +"Ne peut insérer ce module" + +#: pcbnew/modedit.cpp:428 +msgid "Add Pad" +msgstr "Ajouter Pastilles" + +#: pcbnew/modedit.cpp:431 +msgid "Pad Settings" +msgstr "Caract pads" + +#: pcbnew/modedit.cpp:441 +msgid "Add Drawing" +msgstr "Ajout d'éléments graphiques" + +#: pcbnew/modedit.cpp:445 +msgid "Place anchor" +msgstr "Place Ancre" + +#: pcbnew/modedit.cpp:459 +#: pcbnew/edit.cpp:577 +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/find.cpp:112 msgid "Marker found" msgstr "Marqueur trouvé" @@ -2678,74 +2678,6 @@ msgstr "Garder" msgid "Deselect this layer to select the No Change state" msgstr "Désélectionner cette couche pour restorer l'option Pas de Changement" -#: pcbnew/dialog_layers_setup2.cpp:540 -msgid "Layer name may not be empty" -msgstr "Le nom d'une couche ne peut pas être vide" - -#: pcbnew/dialog_layers_setup2.cpp:547 -msgid "Layer name has an illegal character, one of: '" -msgstr "Le nom d'une couche contient un des caracteres interdit: '" - -#: pcbnew/dialog_layers_setup2.cpp:554 -msgid "'signal' is a reserved layer name" -msgstr "'signal' is a nom de couche réservé" - -#: pcbnew/dialog_layers_setup2.cpp:563 -msgid "Layer name is a duplicate of another" -msgstr "Le nom de la couche est un double d'une autre couche" - -#: pcbnew/dialog_layers_setup.cpp:104 -msgid "Unknown" -msgstr "Inconnu" - -#: pcbnew/dialog_layers_setup.cpp:105 -msgid "Off-board, manufacturing" -msgstr "Hors PCB, fabrication" - -#: pcbnew/dialog_layers_setup.cpp:106 -msgid "On-board, non-copper" -msgstr "PCB, non cuivre" - -#: pcbnew/dialog_layers_setup.cpp:107 -msgid "On-board, copper" -msgstr "PCB, cuivre" - -#: pcbnew/dialog_layers_setup.cpp:108 -msgid "Board contour" -msgstr "Contour pcb" - -#: pcbnew/dialog_layers_setup.cpp:109 -msgid "Auxiliary" -msgstr "Auxiliaire" - -#: pcbnew/dialog_layers_setup.cpp:117 -msgid "All Layers On" -msgstr "Toutes Couches Actives" - -#: pcbnew/dialog_layers_setup.cpp:118 -msgid "Single Side" -msgstr "Simple Face" - -#: pcbnew/dialog_layers_setup.cpp:119 -msgid "Single Side, SMD on Back" -msgstr "Simple face, CMS coté Cuivre" - -#: pcbnew/dialog_layers_setup.cpp:120 -msgid "Two Layers, Parts on Front" -msgstr "2 couches, Composants sur le Dessus" - -#: pcbnew/dialog_layers_setup.cpp:121 -msgid "Two Layers, Parts on Both Faces" -msgstr "2 couches, Composants sur les 2 faces" - -#: pcbnew/dialog_layers_setup.cpp:122 -msgid "Four Layers, Parts on Front" -msgstr "4 couches, Composants sur le Dessus" - -#: pcbnew/dialog_layers_setup.cpp:123 -msgid "Four Layers, Parts on Both Faces" -msgstr "4 couches, Composants sur les 2 faces" - #: pcbnew/dialog_drc_base.cpp:36 msgid "Clearance" msgstr "Isolation" @@ -2952,30 +2884,37 @@ msgid "A wire_via references a missing padstack \"%s\"" msgstr "Une piste ou via a une référence vers un pad \"%s\" manquant" #: pcbnew/dialog_non_copper_zones_properties_base.cpp:28 +#: pcbnew/dialog_copper_zones_base.cpp:38 msgid "Zone Fill Options:" msgstr "Options Remplissage Zone:" #: pcbnew/dialog_non_copper_zones_properties_base.cpp:30 +#: pcbnew/dialog_copper_zones_base.cpp:40 msgid "Use polygons" msgstr "Utiliser des polygones" #: pcbnew/dialog_non_copper_zones_properties_base.cpp:30 +#: pcbnew/dialog_copper_zones_base.cpp:40 msgid "Use segments" msgstr "Utiliser des segments" #: pcbnew/dialog_non_copper_zones_properties_base.cpp:32 +#: pcbnew/dialog_copper_zones_base.cpp:42 msgid "Filling Mode:" msgstr "Mode de Remplissage:" #: pcbnew/dialog_non_copper_zones_properties_base.cpp:36 +#: pcbnew/dialog_copper_zones_base.cpp:125 msgid "Zone min thickness value" msgstr "Valeur épaisseur min pour zone" #: pcbnew/dialog_non_copper_zones_properties_base.cpp:46 +#: pcbnew/dialog_copper_zones_base.cpp:99 msgid "Outlines Options:" msgstr "Options des Contours:" #: pcbnew/dialog_non_copper_zones_properties_base.cpp:48 +#: pcbnew/dialog_copper_zones_base.cpp:101 msgid "Any" msgstr "Tout" @@ -3170,8 +3109,6 @@ msgstr "" "Les noms de net correspondant à ce modèle ne sont pas listés" #: pcbnew/dialog_copper_zones_base.cpp:197 -#: pcbnew/class_board_item.cpp:130 -#: pcbnew/class_board_item.cpp:201 msgid "Net:" msgstr "Net:" @@ -3468,6 +3405,14 @@ msgstr "couche E.C.O.2" msgid "Draft layer" msgstr "Couche dessin" +#: pcbnew/export_gencad.cpp:73 +msgid "GenCAD 1.4 board files (.cad)|*.cad" +msgstr "Fichiers PCB GenCAD 1.4 (.cad)|*.cad" + +#: pcbnew/export_gencad.cpp:76 +msgid "Save GenCAD Board File" +msgstr "Sauver Fichier PCB format GenCAD" + #: pcbnew/dialog_copper_zones.cpp:277 msgid "Error : Zone clearance is set to an unreasonnable value" msgstr "Erreur: l'isolation de zone est réglée à une valeur déraisonnable." @@ -4101,130 +4046,6 @@ msgstr "Sélection de la netliste" msgid "Drc error, canceled" msgstr "Erreur DRC, annulation" -#: pcbnew/modedit_onclick.cpp:206 -msgid "End Tool" -msgstr "Fin Outil" - -#: pcbnew/modedit_onclick.cpp:216 -msgid "Cancel Block" -msgstr "Annuler Bloc" - -#: pcbnew/modedit_onclick.cpp:218 -msgid "Zoom Block (drag middle mouse)" -msgstr "Zoom Bloc (drag bouton du milieu souris)" - -#: pcbnew/modedit_onclick.cpp:222 -msgid "Place Block" -msgstr "Place Bloc" - -#: pcbnew/modedit_onclick.cpp:224 -msgid "Copy Block (shift + drag mouse)" -msgstr "Copie Bloc (shift + drag souris)" - -#: pcbnew/modedit_onclick.cpp:227 -msgid "Mirror Block (alt + drag mouse)" -msgstr "Bloc Miroir (alt + drag souris)" - -#: pcbnew/modedit_onclick.cpp:230 -msgid "Rotate Block (ctrl + drag mouse)" -msgstr "Rotation Bloc (ctrl + drag souris)" - -#: pcbnew/modedit_onclick.cpp:233 -msgid "Delete Block (shift+ctrl + drag mouse)" -msgstr "Effacement Bloc (shift+ctrl + drag souris)" - -#: pcbnew/modedit_onclick.cpp:256 -msgid "Rotate" -msgstr "Rotation" - -#: pcbnew/modedit_onclick.cpp:260 -msgid "Edit Module" -msgstr "Edit Module" - -#: pcbnew/modedit_onclick.cpp:263 -msgid "Transform Module" -msgstr "Transforme Module" - -#: pcbnew/modedit_onclick.cpp:271 -msgid "Move Pad" -msgstr "Déplace Pad" - -#: pcbnew/modedit_onclick.cpp:273 -msgid "Edit Pad" -msgstr "Edit Pad" - -#: pcbnew/modedit_onclick.cpp:276 -msgid "New Pad Settings" -msgstr "Nouvelles Caract. Pads" - -#: pcbnew/modedit_onclick.cpp:278 -msgid "Export Pad Settings" -msgstr "Exporte Caract. Pads" - -#: pcbnew/modedit_onclick.cpp:280 -msgid "delete Pad" -msgstr "Supprimer Pad" - -#: pcbnew/modedit_onclick.cpp:285 -msgid "Global Pad Settings" -msgstr "Edition Globale des pads" - -#: pcbnew/modedit_onclick.cpp:293 -msgid "Move Text Mod." -msgstr "Déplacer Texte Mod." - -#: pcbnew/modedit_onclick.cpp:296 -msgid "Rotate Text Mod." -msgstr "Rot. Texte Mod." - -#: pcbnew/modedit_onclick.cpp:300 -msgid "Edit Text Mod." -msgstr "Edit Texte Mod." - -#: pcbnew/modedit_onclick.cpp:303 -msgid "Delete Text Mod." -msgstr "Supprimer Texte Mod." - -#: pcbnew/modedit_onclick.cpp:311 -msgid "End edge" -msgstr "Fin contour" - -#: pcbnew/modedit_onclick.cpp:314 -msgid "Move edge" -msgstr "Déplace contour" - -#: pcbnew/modedit_onclick.cpp:317 -msgid "Place edge" -msgstr "Place contour" - -#: pcbnew/modedit_onclick.cpp:321 -msgid "Edit" -msgstr "Editer" - -#: pcbnew/modedit_onclick.cpp:323 -msgid "Edit Width (Current)" -msgstr "Edit Epaisseur (Courant)" - -#: pcbnew/modedit_onclick.cpp:325 -msgid "Edit Width (All)" -msgstr "Edit Epaisseur (Tous)" - -#: pcbnew/modedit_onclick.cpp:327 -msgid "Edit Layer (Current)" -msgstr "Edit Couche (Courant)" - -#: pcbnew/modedit_onclick.cpp:329 -msgid "Edit Layer (All)" -msgstr "Edit Couche (Tous)" - -#: pcbnew/modedit_onclick.cpp:331 -msgid "Delete edge" -msgstr "Effacement contour" - -#: pcbnew/modedit_onclick.cpp:370 -msgid "Set Width" -msgstr "Ajuste Epaiss" - #: pcbnew/dialog_print_using_printer_base.cpp:35 msgid "Exclude Edges_Pcb Layer" msgstr "Exclure Couche Contours PCB" @@ -4459,13 +4280,22 @@ msgstr "Ok pour ajuster l'orientation des modules à %g degrés ?" msgid "Bad value for footprints orientation" msgstr "Mauvaise valeur pour l'orientation des empreintes" -#: pcbnew/export_gencad.cpp:73 -msgid "GenCAD 1.4 board files (.cad)|*.cad" -msgstr "Fichiers PCB GenCAD 1.4 (.cad)|*.cad" +#: pcbnew/onleftclick.cpp:201 +msgid "Graphic not authorized on Copper layers" +msgstr "Graphique non autorisé sur Couches Cuivre" -#: pcbnew/export_gencad.cpp:76 -msgid "Save GenCAD Board File" -msgstr "Sauver Fichier PCB format GenCAD" +#: pcbnew/onleftclick.cpp:224 +msgid "Tracks on Copper layers only " +msgstr "Pistes sur Couches Cuivre seulement" + +#: pcbnew/onleftclick.cpp:333 +msgid "Cotation not authorized on Copper layers" +msgstr "Cotation non autorisée sur Couches Cuivre" + +#: pcbnew/onrightclick.cpp:64 +#: pcbnew/modedit_onclick.cpp:206 +msgid "End Tool" +msgstr "Fin Outil" #: pcbnew/onrightclick.cpp:130 msgid "Lock Module" @@ -4620,10 +4450,20 @@ msgstr "Autoroute Tous Modules" msgid "Reset Unrouted" msgstr "Réinit non Routés" +#: pcbnew/onrightclick.cpp:378 +#: pcbnew/modedit_onclick.cpp:216 +msgid "Cancel Block" +msgstr "Annuler Bloc" + #: pcbnew/onrightclick.cpp:380 msgid "Zoom Block" msgstr "Zoom Bloc" +#: pcbnew/onrightclick.cpp:383 +#: pcbnew/modedit_onclick.cpp:222 +msgid "Place Block" +msgstr "Place Bloc" + #: pcbnew/onrightclick.cpp:387 msgid "Flip Block" msgstr "Retourner Bloc" @@ -4812,6 +4652,24 @@ msgstr "Rotation -" msgid "Flip" msgstr "Change côté" +#: pcbnew/onrightclick.cpp:641 +#: pcbnew/onrightclick.cpp:673 +#: pcbnew/onrightclick.cpp:778 +#: pcbnew/modedit_onclick.cpp:321 +msgid "Edit" +msgstr "Editer" + +#: pcbnew/onrightclick.cpp:670 +#: pcbnew/onrightclick.cpp:776 +#: pcbnew/modedit_onclick.cpp:256 +msgid "Rotate" +msgstr "Rotation" + +#: pcbnew/onrightclick.cpp:721 +#: pcbnew/modedit_onclick.cpp:273 +msgid "Edit Pad" +msgstr "Edit Pad" + #: pcbnew/onrightclick.cpp:725 msgid "Copy Current Settings to this Pad" msgstr "Copier les Réglages Courants dans ce Pad" @@ -5303,6 +5161,130 @@ msgstr "Le composant avec valeur \"%s\" a une référence vide." msgid "Multiple components have identical reference IDs of \"%s\"." msgstr "Multiple composants ont une reference identique \"%s\"." +#: pcbnew/dialog_layers_setup.cpp:267 +msgid "Name" +msgstr "Nom" + +#: pcbnew/dialog_layers_setup.cpp:269 +msgid "Enabled" +msgstr "Activé" + +#: pcbnew/dialog_layers_setup.cpp:613 +msgid "Layer name may not be empty" +msgstr "Le nom d'une couche ne peut pas être vide" + +#: pcbnew/dialog_layers_setup.cpp:620 +msgid "Layer name has an illegal character, one of: '" +msgstr "Le nom d'une couche contient un des caracteres interdit: '" + +#: pcbnew/dialog_layers_setup.cpp:627 +msgid "'signal' is a reserved layer name" +msgstr "'signal' is a nom de couche réservé" + +#: pcbnew/dialog_layers_setup.cpp:636 +msgid "Layer name is a duplicate of another" +msgstr "Le nom de la couche est un double d'une autre couche" + +#: pcbnew/modedit_onclick.cpp:218 +msgid "Zoom Block (drag middle mouse)" +msgstr "Zoom Bloc (drag bouton du milieu souris)" + +#: pcbnew/modedit_onclick.cpp:224 +msgid "Copy Block (shift + drag mouse)" +msgstr "Copie Bloc (shift + drag souris)" + +#: pcbnew/modedit_onclick.cpp:227 +msgid "Mirror Block (alt + drag mouse)" +msgstr "Bloc Miroir (alt + drag souris)" + +#: pcbnew/modedit_onclick.cpp:230 +msgid "Rotate Block (ctrl + drag mouse)" +msgstr "Rotation Bloc (ctrl + drag souris)" + +#: pcbnew/modedit_onclick.cpp:233 +msgid "Delete Block (shift+ctrl + drag mouse)" +msgstr "Effacement Bloc (shift+ctrl + drag souris)" + +#: pcbnew/modedit_onclick.cpp:260 +msgid "Edit Module" +msgstr "Edit Module" + +#: pcbnew/modedit_onclick.cpp:263 +msgid "Transform Module" +msgstr "Transforme Module" + +#: pcbnew/modedit_onclick.cpp:271 +msgid "Move Pad" +msgstr "Déplace Pad" + +#: pcbnew/modedit_onclick.cpp:276 +msgid "New Pad Settings" +msgstr "Nouvelles Caract. Pads" + +#: pcbnew/modedit_onclick.cpp:278 +msgid "Export Pad Settings" +msgstr "Exporte Caract. Pads" + +#: pcbnew/modedit_onclick.cpp:280 +msgid "delete Pad" +msgstr "Supprimer Pad" + +#: pcbnew/modedit_onclick.cpp:285 +msgid "Global Pad Settings" +msgstr "Edition Globale des pads" + +#: pcbnew/modedit_onclick.cpp:293 +msgid "Move Text Mod." +msgstr "Déplacer Texte Mod." + +#: pcbnew/modedit_onclick.cpp:296 +msgid "Rotate Text Mod." +msgstr "Rot. Texte Mod." + +#: pcbnew/modedit_onclick.cpp:300 +msgid "Edit Text Mod." +msgstr "Edit Texte Mod." + +#: pcbnew/modedit_onclick.cpp:303 +msgid "Delete Text Mod." +msgstr "Supprimer Texte Mod." + +#: pcbnew/modedit_onclick.cpp:311 +msgid "End edge" +msgstr "Fin contour" + +#: pcbnew/modedit_onclick.cpp:314 +msgid "Move edge" +msgstr "Déplace contour" + +#: pcbnew/modedit_onclick.cpp:317 +msgid "Place edge" +msgstr "Place contour" + +#: pcbnew/modedit_onclick.cpp:323 +msgid "Edit Width (Current)" +msgstr "Edit Epaisseur (Courant)" + +#: pcbnew/modedit_onclick.cpp:325 +msgid "Edit Width (All)" +msgstr "Edit Epaisseur (Tous)" + +#: pcbnew/modedit_onclick.cpp:327 +msgid "Edit Layer (Current)" +msgstr "Edit Couche (Courant)" + +#: pcbnew/modedit_onclick.cpp:329 +msgid "Edit Layer (All)" +msgstr "Edit Couche (Tous)" + +#: pcbnew/modedit_onclick.cpp:331 +msgid "Delete edge" +msgstr "Effacement contour" + +#: pcbnew/modedit_onclick.cpp:370 +msgid "Set Width" +msgstr "Ajuste Epaiss" + #: pcbnew/dialog_exchange_modules_base.cpp:25 msgid "Current Module" msgstr "Module courant" @@ -5573,17 +5555,38 @@ msgstr "Créer Fichier " msgid " error" msgstr " erreur" -#: pcbnew/onleftclick.cpp:201 -msgid "Graphic not authorized on Copper layers" -msgstr "Graphique non autorisé sur Couches Cuivre" +#: pcbnew/pcbnew_config.cpp:84 +msgid "Read Project File" +msgstr "Lire Fichier Projet" -#: pcbnew/onleftclick.cpp:224 -msgid "Tracks on Copper layers only " -msgstr "Pistes sur Couches Cuivre seulement" +#: pcbnew/pcbnew_config.cpp:94 +#, c-format +msgid "File %s not found" +msgstr "Fichier %s non trouvé" -#: pcbnew/onleftclick.cpp:333 -msgid "Cotation not authorized on Copper layers" -msgstr "Cotation non autorisée sur Couches Cuivre" +#: pcbnew/pcbnew_config.cpp:216 +msgid "Save Project File" +msgstr "Sauver Fichier Projet" + +#: pcbnew/muwave_command.cpp:43 +msgid "Add Line" +msgstr "Addition de lignes" + +#: pcbnew/muwave_command.cpp:47 +msgid "Add Gap" +msgstr "Ajouter gap" + +#: pcbnew/muwave_command.cpp:51 +msgid "Add Stub" +msgstr "Ajout de stub" + +#: pcbnew/muwave_command.cpp:55 +msgid "Add Arc Stub" +msgstr "Ajout de stub (arc)" + +#: pcbnew/muwave_command.cpp:59 +msgid "Add Polynomial Shape" +msgstr "Ajout Forme polynomiale" #: pcbnew/move_or_drag_track.cpp:883 msgid "Unable to drag this segment: too many segments connected" @@ -5593,6 +5596,38 @@ msgstr "Impossible de dragger ce segment: trop de segments connectés" msgid "Unable to drag this segment: two collinear segments" msgstr "Impossible de dragger ce segment: 2 segments alignés" +#: pcbnew/build_BOM_from_board.cpp:33 +msgid "Comma separated value files (*.csv)|*.csv" +msgstr "Fichiers \"Comma separated value\" (*.csv)|*.csv" + +#: pcbnew/build_BOM_from_board.cpp:67 +msgid "Save Bill of Materials" +msgstr "Sauver Liste du Materiel" + +#: pcbnew/build_BOM_from_board.cpp:87 +msgid "Id" +msgstr "Id" + +#: pcbnew/build_BOM_from_board.cpp:88 +msgid "Designator" +msgstr "Reference" + +#: pcbnew/build_BOM_from_board.cpp:89 +msgid "Package" +msgstr "Boitier" + +#: pcbnew/build_BOM_from_board.cpp:90 +msgid "Quantity" +msgstr "Quantité" + +#: pcbnew/build_BOM_from_board.cpp:91 +msgid "Designation" +msgstr "Designation" + +#: pcbnew/build_BOM_from_board.cpp:92 +msgid "Supplier and ref" +msgstr "Fournisseur et ref" + #: pcbnew/zones_by_polygon_fill_functions.cpp:130 msgid "No Net" msgstr "No Net" @@ -5643,286 +5678,374 @@ msgstr "" "La marge finale est la somme de cette valeur et du rapport de marge\n" "Une valeur négative signifie que le masque est plus petit que le pad." -#: pcbnew/dialog_layers_setup_base2.cpp:23 +#: pcbnew/dialog_layers_setup_base.cpp:23 msgid "Preset Layer Groupings" msgstr "Groupes Prédéterminés de Couches" -#: pcbnew/dialog_layers_setup_base2.cpp:25 +#: pcbnew/dialog_layers_setup_base.cpp:25 msgid "Custom" msgstr "Personnalisé" -#: pcbnew/dialog_layers_setup_base2.cpp:25 +#: pcbnew/dialog_layers_setup_base.cpp:25 msgid "Two layers, parts on Front only" msgstr "2 couches, composants sur le Dessus uniquement" -#: pcbnew/dialog_layers_setup_base2.cpp:25 +#: pcbnew/dialog_layers_setup_base.cpp:25 msgid "Two layers, parts on Back only" msgstr "2 couches, composants sur le Dessous uniquement" -#: pcbnew/dialog_layers_setup_base2.cpp:25 +#: pcbnew/dialog_layers_setup_base.cpp:25 msgid "Two layers, parts on Front and Back" msgstr "2 couches, composants Dessus et Dessous" -#: pcbnew/dialog_layers_setup_base2.cpp:25 +#: pcbnew/dialog_layers_setup_base.cpp:25 msgid "Four layers, parts on Front only" msgstr "4 couches, composants sur le Dessus uniquement" -#: pcbnew/dialog_layers_setup_base2.cpp:25 +#: pcbnew/dialog_layers_setup_base.cpp:25 msgid "Four layers, parts on Front and Back" msgstr "4 couches, Composants Dessus et Dessous" -#: pcbnew/dialog_layers_setup_base2.cpp:25 +#: pcbnew/dialog_layers_setup_base.cpp:25 msgid "All layers on" msgstr "Toutes couches actives" -#: pcbnew/dialog_layers_setup_base2.cpp:34 +#: pcbnew/dialog_layers_setup_base.cpp:34 msgid "Copper Layers" msgstr "Couches Cuivre." -#: pcbnew/dialog_layers_setup_base2.cpp:36 +#: pcbnew/dialog_layers_setup_base.cpp:36 msgid "2" msgstr "2" -#: pcbnew/dialog_layers_setup_base2.cpp:36 +#: pcbnew/dialog_layers_setup_base.cpp:36 msgid "4" msgstr "4" -#: pcbnew/dialog_layers_setup_base2.cpp:36 +#: pcbnew/dialog_layers_setup_base.cpp:36 msgid "6" msgstr "6" -#: pcbnew/dialog_layers_setup_base2.cpp:36 +#: pcbnew/dialog_layers_setup_base.cpp:36 msgid "8" msgstr "8" -#: pcbnew/dialog_layers_setup_base2.cpp:36 +#: pcbnew/dialog_layers_setup_base.cpp:36 msgid "10" msgstr "10" -#: pcbnew/dialog_layers_setup_base2.cpp:36 +#: pcbnew/dialog_layers_setup_base.cpp:36 msgid "12" msgstr "12" -#: pcbnew/dialog_layers_setup_base2.cpp:36 +#: pcbnew/dialog_layers_setup_base.cpp:36 msgid "14" msgstr "14" -#: pcbnew/dialog_layers_setup_base2.cpp:36 +#: pcbnew/dialog_layers_setup_base.cpp:36 msgid "16" msgstr "16" -#: pcbnew/dialog_layers_setup_base2.cpp:47 +#: pcbnew/dialog_layers_setup_base.cpp:47 msgid "Layers" msgstr "Couches" -#: pcbnew/dialog_layers_setup_base2.cpp:52 -msgid "Name" -msgstr "Nom" - -#: pcbnew/dialog_layers_setup_base2.cpp:58 -msgid "Enabled" -msgstr "Activé" - -#: pcbnew/dialog_layers_setup_base2.cpp:80 +#: pcbnew/dialog_layers_setup_base.cpp:67 msgid "Adhes_Front_later" msgstr "Adhes_Dessus_réserve" -#: pcbnew/dialog_layers_setup_base2.cpp:92 +#: pcbnew/dialog_layers_setup_base.cpp:79 msgid "If you want an adhesive template for the front side of the board" msgstr "Si vous voulez un motif sur couche adhésive sur le dessus du PCB" -#: pcbnew/dialog_layers_setup_base2.cpp:105 +#: pcbnew/dialog_layers_setup_base.cpp:88 +#: pcbnew/dialog_layers_setup_base.cpp:113 +#: pcbnew/dialog_layers_setup_base.cpp:678 +#: pcbnew/dialog_layers_setup_base.cpp:703 +msgid "Off-board, manufacturing" +msgstr "Hors PCB, fabrication" + +#: pcbnew/dialog_layers_setup_base.cpp:92 msgid "SoldP_Front_later" msgstr "SoldP_Dessus_réserve" -#: pcbnew/dialog_layers_setup_base2.cpp:117 +#: pcbnew/dialog_layers_setup_base.cpp:104 msgid "If you want a solder paster layer for front side of the board" msgstr "Si vous voulez une couche de pate à braser sur le dessus du PCB" -#: pcbnew/dialog_layers_setup_base2.cpp:130 +#: pcbnew/dialog_layers_setup_base.cpp:117 msgid "SilkS_Front_later" msgstr "SilkS_Dessus_réserve" -#: pcbnew/dialog_layers_setup_base2.cpp:153 +#: pcbnew/dialog_layers_setup_base.cpp:129 +msgid "If you want a silk screen layer for the front side of the board" +msgstr "Si vous voulez une sérigraphier sur le dessus du PCB" + +#: pcbnew/dialog_layers_setup_base.cpp:138 +#: pcbnew/dialog_layers_setup_base.cpp:163 +#: pcbnew/dialog_layers_setup_base.cpp:628 +#: pcbnew/dialog_layers_setup_base.cpp:653 +msgid "On-board, non-copper" +msgstr "PCB, non cuivre" + +#: pcbnew/dialog_layers_setup_base.cpp:142 msgid "Mask_Front_later" msgstr "Mask_Dessus_réserve" -#: pcbnew/dialog_layers_setup_base2.cpp:176 +#: pcbnew/dialog_layers_setup_base.cpp:154 +msgid "If you want a solder mask layer for the front of the board" +msgstr "Si vous voulez un vernis épargne sur le dessus du PCB" + +#: pcbnew/dialog_layers_setup_base.cpp:167 msgid "Front_later" msgstr "Dessus_réserve" -#: pcbnew/dialog_layers_setup_base2.cpp:195 -#: pcbnew/dialog_layers_setup_base2.cpp:219 -#: pcbnew/dialog_layers_setup_base2.cpp:243 -#: pcbnew/dialog_layers_setup_base2.cpp:267 -#: pcbnew/dialog_layers_setup_base2.cpp:291 -#: pcbnew/dialog_layers_setup_base2.cpp:315 -#: pcbnew/dialog_layers_setup_base2.cpp:339 -#: pcbnew/dialog_layers_setup_base2.cpp:363 -#: pcbnew/dialog_layers_setup_base2.cpp:387 -#: pcbnew/dialog_layers_setup_base2.cpp:411 -#: pcbnew/dialog_layers_setup_base2.cpp:435 -#: pcbnew/dialog_layers_setup_base2.cpp:459 -#: pcbnew/dialog_layers_setup_base2.cpp:483 -#: pcbnew/dialog_layers_setup_base2.cpp:507 -#: pcbnew/dialog_layers_setup_base2.cpp:531 -#: pcbnew/dialog_layers_setup_base2.cpp:555 +#: pcbnew/dialog_layers_setup_base.cpp:169 +msgid "Layer name of front (top) copper layer" +msgstr "Nom de la couche sur le dessus du circuit (coté composant)" + +#: pcbnew/dialog_layers_setup_base.cpp:181 +msgid "If you want a front copper layer" +msgstr "Si vous voulez une couche cuivre sur le dessus" + +#: pcbnew/dialog_layers_setup_base.cpp:190 +#: pcbnew/dialog_layers_setup_base.cpp:217 +#: pcbnew/dialog_layers_setup_base.cpp:244 +#: pcbnew/dialog_layers_setup_base.cpp:271 +#: pcbnew/dialog_layers_setup_base.cpp:298 +#: pcbnew/dialog_layers_setup_base.cpp:325 +#: pcbnew/dialog_layers_setup_base.cpp:352 +#: pcbnew/dialog_layers_setup_base.cpp:379 +#: pcbnew/dialog_layers_setup_base.cpp:406 +#: pcbnew/dialog_layers_setup_base.cpp:433 +#: pcbnew/dialog_layers_setup_base.cpp:460 +#: pcbnew/dialog_layers_setup_base.cpp:487 +#: pcbnew/dialog_layers_setup_base.cpp:514 +#: pcbnew/dialog_layers_setup_base.cpp:541 +#: pcbnew/dialog_layers_setup_base.cpp:568 +#: pcbnew/dialog_layers_setup_base.cpp:599 msgid "signal" msgstr "signal" -#: pcbnew/dialog_layers_setup_base2.cpp:195 -#: pcbnew/dialog_layers_setup_base2.cpp:219 -#: pcbnew/dialog_layers_setup_base2.cpp:243 -#: pcbnew/dialog_layers_setup_base2.cpp:267 -#: pcbnew/dialog_layers_setup_base2.cpp:291 -#: pcbnew/dialog_layers_setup_base2.cpp:315 -#: pcbnew/dialog_layers_setup_base2.cpp:339 -#: pcbnew/dialog_layers_setup_base2.cpp:363 -#: pcbnew/dialog_layers_setup_base2.cpp:387 -#: pcbnew/dialog_layers_setup_base2.cpp:411 -#: pcbnew/dialog_layers_setup_base2.cpp:435 -#: pcbnew/dialog_layers_setup_base2.cpp:459 -#: pcbnew/dialog_layers_setup_base2.cpp:483 -#: pcbnew/dialog_layers_setup_base2.cpp:507 -#: pcbnew/dialog_layers_setup_base2.cpp:531 -#: pcbnew/dialog_layers_setup_base2.cpp:555 +#: pcbnew/dialog_layers_setup_base.cpp:190 +#: pcbnew/dialog_layers_setup_base.cpp:217 +#: pcbnew/dialog_layers_setup_base.cpp:244 +#: pcbnew/dialog_layers_setup_base.cpp:271 +#: pcbnew/dialog_layers_setup_base.cpp:298 +#: pcbnew/dialog_layers_setup_base.cpp:325 +#: pcbnew/dialog_layers_setup_base.cpp:352 +#: pcbnew/dialog_layers_setup_base.cpp:379 +#: pcbnew/dialog_layers_setup_base.cpp:406 +#: pcbnew/dialog_layers_setup_base.cpp:433 +#: pcbnew/dialog_layers_setup_base.cpp:460 +#: pcbnew/dialog_layers_setup_base.cpp:487 +#: pcbnew/dialog_layers_setup_base.cpp:514 +#: pcbnew/dialog_layers_setup_base.cpp:541 +#: pcbnew/dialog_layers_setup_base.cpp:568 +#: pcbnew/dialog_layers_setup_base.cpp:599 msgid "power" msgstr "power" -#: pcbnew/dialog_layers_setup_base2.cpp:195 -#: pcbnew/dialog_layers_setup_base2.cpp:219 -#: pcbnew/dialog_layers_setup_base2.cpp:243 -#: pcbnew/dialog_layers_setup_base2.cpp:267 -#: pcbnew/dialog_layers_setup_base2.cpp:291 -#: pcbnew/dialog_layers_setup_base2.cpp:315 -#: pcbnew/dialog_layers_setup_base2.cpp:339 -#: pcbnew/dialog_layers_setup_base2.cpp:363 -#: pcbnew/dialog_layers_setup_base2.cpp:387 -#: pcbnew/dialog_layers_setup_base2.cpp:411 -#: pcbnew/dialog_layers_setup_base2.cpp:435 -#: pcbnew/dialog_layers_setup_base2.cpp:459 -#: pcbnew/dialog_layers_setup_base2.cpp:483 -#: pcbnew/dialog_layers_setup_base2.cpp:507 -#: pcbnew/dialog_layers_setup_base2.cpp:531 -#: pcbnew/dialog_layers_setup_base2.cpp:555 +#: pcbnew/dialog_layers_setup_base.cpp:190 +#: pcbnew/dialog_layers_setup_base.cpp:217 +#: pcbnew/dialog_layers_setup_base.cpp:244 +#: pcbnew/dialog_layers_setup_base.cpp:271 +#: pcbnew/dialog_layers_setup_base.cpp:298 +#: pcbnew/dialog_layers_setup_base.cpp:325 +#: pcbnew/dialog_layers_setup_base.cpp:352 +#: pcbnew/dialog_layers_setup_base.cpp:379 +#: pcbnew/dialog_layers_setup_base.cpp:406 +#: pcbnew/dialog_layers_setup_base.cpp:433 +#: pcbnew/dialog_layers_setup_base.cpp:460 +#: pcbnew/dialog_layers_setup_base.cpp:487 +#: pcbnew/dialog_layers_setup_base.cpp:514 +#: pcbnew/dialog_layers_setup_base.cpp:541 +#: pcbnew/dialog_layers_setup_base.cpp:568 +#: pcbnew/dialog_layers_setup_base.cpp:599 msgid "mixed" msgstr "mélangé" -#: pcbnew/dialog_layers_setup_base2.cpp:195 -#: pcbnew/dialog_layers_setup_base2.cpp:219 -#: pcbnew/dialog_layers_setup_base2.cpp:243 -#: pcbnew/dialog_layers_setup_base2.cpp:267 -#: pcbnew/dialog_layers_setup_base2.cpp:291 -#: pcbnew/dialog_layers_setup_base2.cpp:315 -#: pcbnew/dialog_layers_setup_base2.cpp:339 -#: pcbnew/dialog_layers_setup_base2.cpp:363 -#: pcbnew/dialog_layers_setup_base2.cpp:387 -#: pcbnew/dialog_layers_setup_base2.cpp:411 -#: pcbnew/dialog_layers_setup_base2.cpp:435 -#: pcbnew/dialog_layers_setup_base2.cpp:459 -#: pcbnew/dialog_layers_setup_base2.cpp:483 -#: pcbnew/dialog_layers_setup_base2.cpp:507 -#: pcbnew/dialog_layers_setup_base2.cpp:531 -#: pcbnew/dialog_layers_setup_base2.cpp:555 +#: pcbnew/dialog_layers_setup_base.cpp:190 +#: pcbnew/dialog_layers_setup_base.cpp:217 +#: pcbnew/dialog_layers_setup_base.cpp:244 +#: pcbnew/dialog_layers_setup_base.cpp:271 +#: pcbnew/dialog_layers_setup_base.cpp:298 +#: pcbnew/dialog_layers_setup_base.cpp:325 +#: pcbnew/dialog_layers_setup_base.cpp:352 +#: pcbnew/dialog_layers_setup_base.cpp:379 +#: pcbnew/dialog_layers_setup_base.cpp:406 +#: pcbnew/dialog_layers_setup_base.cpp:433 +#: pcbnew/dialog_layers_setup_base.cpp:460 +#: pcbnew/dialog_layers_setup_base.cpp:487 +#: pcbnew/dialog_layers_setup_base.cpp:514 +#: pcbnew/dialog_layers_setup_base.cpp:541 +#: pcbnew/dialog_layers_setup_base.cpp:568 +#: pcbnew/dialog_layers_setup_base.cpp:599 msgid "jumper" msgstr "jumper" -#: pcbnew/dialog_layers_setup_base2.cpp:201 +#: pcbnew/dialog_layers_setup_base.cpp:194 +#: pcbnew/dialog_layers_setup_base.cpp:221 +#: pcbnew/dialog_layers_setup_base.cpp:248 +#: pcbnew/dialog_layers_setup_base.cpp:275 +#: pcbnew/dialog_layers_setup_base.cpp:302 +#: pcbnew/dialog_layers_setup_base.cpp:329 +#: pcbnew/dialog_layers_setup_base.cpp:356 +#: pcbnew/dialog_layers_setup_base.cpp:383 +#: pcbnew/dialog_layers_setup_base.cpp:410 +#: pcbnew/dialog_layers_setup_base.cpp:437 +#: pcbnew/dialog_layers_setup_base.cpp:464 +#: pcbnew/dialog_layers_setup_base.cpp:491 +#: pcbnew/dialog_layers_setup_base.cpp:518 +#: pcbnew/dialog_layers_setup_base.cpp:545 +#: pcbnew/dialog_layers_setup_base.cpp:572 +#: pcbnew/dialog_layers_setup_base.cpp:603 +msgid "Copper layer type for Freerouter. Power layers are removed from Freerouter's layer menus." +msgstr "Type de couches cuivre pour Freerouter. Les couches type \"Power\" sont supprimées du menu des couches de Freerouter." + +#: pcbnew/dialog_layers_setup_base.cpp:198 msgid "Inner2" msgstr "Interne2" -#: pcbnew/dialog_layers_setup_base2.cpp:225 +#: pcbnew/dialog_layers_setup_base.cpp:225 msgid "Inner3" msgstr "Interne3" -#: pcbnew/dialog_layers_setup_base2.cpp:249 +#: pcbnew/dialog_layers_setup_base.cpp:252 msgid "Inner4" msgstr "Interne4" -#: pcbnew/dialog_layers_setup_base2.cpp:273 +#: pcbnew/dialog_layers_setup_base.cpp:279 msgid "Inner5" msgstr "Interne5" -#: pcbnew/dialog_layers_setup_base2.cpp:297 +#: pcbnew/dialog_layers_setup_base.cpp:306 msgid "Inner6" msgstr "Interne6" -#: pcbnew/dialog_layers_setup_base2.cpp:321 +#: pcbnew/dialog_layers_setup_base.cpp:333 msgid "Inner7" msgstr "Interne7" -#: pcbnew/dialog_layers_setup_base2.cpp:345 +#: pcbnew/dialog_layers_setup_base.cpp:360 msgid "Inner8" msgstr "Interne8" -#: pcbnew/dialog_layers_setup_base2.cpp:369 +#: pcbnew/dialog_layers_setup_base.cpp:387 msgid "Inner9" msgstr "Interne9" -#: pcbnew/dialog_layers_setup_base2.cpp:393 +#: pcbnew/dialog_layers_setup_base.cpp:414 msgid "Inner10" msgstr "Interne10" -#: pcbnew/dialog_layers_setup_base2.cpp:417 +#: pcbnew/dialog_layers_setup_base.cpp:441 msgid "Inner11" msgstr "Interne11" -#: pcbnew/dialog_layers_setup_base2.cpp:441 +#: pcbnew/dialog_layers_setup_base.cpp:468 msgid "Inner12" msgstr "Interne12" -#: pcbnew/dialog_layers_setup_base2.cpp:465 +#: pcbnew/dialog_layers_setup_base.cpp:495 msgid "Inner13" msgstr "Interne13" -#: pcbnew/dialog_layers_setup_base2.cpp:489 +#: pcbnew/dialog_layers_setup_base.cpp:522 msgid "Inner14" msgstr "Interne14" -#: pcbnew/dialog_layers_setup_base2.cpp:513 +#: pcbnew/dialog_layers_setup_base.cpp:549 msgid "Inner15" msgstr "Interne15" -#: pcbnew/dialog_layers_setup_base2.cpp:537 +#: pcbnew/dialog_layers_setup_base.cpp:576 msgid "Back" msgstr "Dessous" -#: pcbnew/dialog_layers_setup_base2.cpp:561 +#: pcbnew/dialog_layers_setup_base.cpp:578 +msgid "Layer name of back (bottom) copper layer" +msgstr "Nom de la couche sur le dessous du circuit (coté cuivre)" + +#: pcbnew/dialog_layers_setup_base.cpp:590 +msgid "If you want a back copper layer" +msgstr "Si vous voulez une couche cuivre sur le dessous" + +#: pcbnew/dialog_layers_setup_base.cpp:607 msgid "Mask_Back_later" msgstr "Mask_Dessous_réserve" -#: pcbnew/dialog_layers_setup_base2.cpp:584 +#: pcbnew/dialog_layers_setup_base.cpp:619 +msgid "If you want a solder mask layer for the back side of the board" +msgstr "Si vous voulez un vernis épargne sur le dessous du PCB" + +#: pcbnew/dialog_layers_setup_base.cpp:632 msgid "SilkS_Back_later" msgstr "SilkS_Dessous_réserver" -#: pcbnew/dialog_layers_setup_base2.cpp:607 +#: pcbnew/dialog_layers_setup_base.cpp:644 +msgid "If you want a silk screen layer for the back side of the board" +msgstr "Si vous voulez une sérigraphie sur le dessous du PCB" + +#: pcbnew/dialog_layers_setup_base.cpp:657 msgid "SoldP_Back_later" msgstr "SoldP_Dessous_réserve" -#: pcbnew/dialog_layers_setup_base2.cpp:630 +#: pcbnew/dialog_layers_setup_base.cpp:669 +msgid "If you want a solder paste layer for the back side of the board" +msgstr "Si vous voulez une couche de pate à braser sur le dessous du PCB" + +#: pcbnew/dialog_layers_setup_base.cpp:682 msgid "Adhes_Back_later" msgstr "Adhes_Dessous_réserve" -#: pcbnew/dialog_layers_setup_base2.cpp:653 +#: pcbnew/dialog_layers_setup_base.cpp:694 +msgid "If you want an adhesive layer for the back side of the board" +msgstr "Si vous voulez une couche adhésive sur le dessous du PCB" + +#: pcbnew/dialog_layers_setup_base.cpp:707 msgid "PCB_Edges_later" msgstr "PCB_Edges_réserve" -#: pcbnew/dialog_layers_setup_base2.cpp:676 +#: pcbnew/dialog_layers_setup_base.cpp:719 +msgid "If you want a board perimeter layer" +msgstr "Si vous voulez une couche contour du circuit imprimé" + +#: pcbnew/dialog_layers_setup_base.cpp:728 +msgid "Board contour" +msgstr "Contour pcb" + +#: pcbnew/dialog_layers_setup_base.cpp:732 msgid "Eco2_later" msgstr "Eco2_réserve" -#: pcbnew/dialog_layers_setup_base2.cpp:699 +#: pcbnew/dialog_layers_setup_base.cpp:751 +#: pcbnew/dialog_layers_setup_base.cpp:774 +#: pcbnew/dialog_layers_setup_base.cpp:799 +#: pcbnew/dialog_layers_setup_base.cpp:824 +msgid "Auxiliary" +msgstr "Auxiliaire" + +#: pcbnew/dialog_layers_setup_base.cpp:755 msgid "Eco1_later" msgstr "Eco1_réserve" -#: pcbnew/dialog_layers_setup_base2.cpp:722 +#: pcbnew/dialog_layers_setup_base.cpp:778 msgid "Comments_later" msgstr "Commentaires_réserve" -#: pcbnew/dialog_layers_setup_base2.cpp:745 +#: pcbnew/dialog_layers_setup_base.cpp:790 +msgid "If you want a separate layer for comments or notes" +msgstr "Si vous voulez une couche séparée pour des commentaires ou des notes" + +#: pcbnew/dialog_layers_setup_base.cpp:803 msgid "Drawings_later" msgstr "Drawings_réserve" +#: pcbnew/dialog_layers_setup_base.cpp:815 +msgid "If you want a layer for documentation drawings" +msgstr "Si vous voulez une couche de dessins pour documentation." + #: pcbnew/dialog_global_edit_tracks_and_vias.cpp:154 msgid "Set current Net tracks and vias sizes and drill to the current values?" msgstr "Ajuster les tailleset perçage des vias et pistes du net courant aux valeurs courantes" @@ -5943,19 +6066,6 @@ msgstr "Ajuster Toutes les Vias à la Valeur en NetClass" msgid "Set All Track to Netclass value" msgstr "Ajuster Toutes les Pistes à la Valeur en NetClass" -#: pcbnew/pcbnew_config.cpp:88 -msgid "Read Project File" -msgstr "Lire Fichier Projet" - -#: pcbnew/pcbnew_config.cpp:98 -#, c-format -msgid "File %s not found" -msgstr "Fichier %s non trouvé" - -#: pcbnew/pcbnew_config.cpp:220 -msgid "Save Project File" -msgstr "Sauver Fichier Projet" - #: pcbnew/dialog_display_options_base.cpp:20 msgid "Tracks and vias:" msgstr "Pistes et vias:" @@ -6090,38 +6200,6 @@ msgstr "Afficher autres éléments" msgid "Show page limits" msgstr " Afficher limites de page" -#: pcbnew/build_BOM_from_board.cpp:33 -msgid "Comma separated value files (*.csv)|*.csv" -msgstr "Fichiers \"Comma separated value\" (*.csv)|*.csv" - -#: pcbnew/build_BOM_from_board.cpp:67 -msgid "Save Bill of Materials" -msgstr "Sauver Liste du Materiel" - -#: pcbnew/build_BOM_from_board.cpp:87 -msgid "Id" -msgstr "Id" - -#: pcbnew/build_BOM_from_board.cpp:88 -msgid "Designator" -msgstr "Reference" - -#: pcbnew/build_BOM_from_board.cpp:89 -msgid "Package" -msgstr "Boitier" - -#: pcbnew/build_BOM_from_board.cpp:90 -msgid "Number" -msgstr "Nombre" - -#: pcbnew/build_BOM_from_board.cpp:91 -msgid "Designation" -msgstr "Designation" - -#: pcbnew/build_BOM_from_board.cpp:92 -msgid "Supplier and ref" -msgstr "Fournisseur et ref" - #: pcbnew/class_netinfo_item.cpp:132 msgid "Net Name" msgstr "Nom Equipot" @@ -6460,26 +6538,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/muwave_command.cpp:49 -msgid "Add Line" -msgstr "Addition de lignes" - -#: pcbnew/muwave_command.cpp:53 -msgid "Add Gap" -msgstr "Ajouter gap" - -#: pcbnew/muwave_command.cpp:57 -msgid "Add Stub" -msgstr "Ajout de stub" - -#: pcbnew/muwave_command.cpp:61 -msgid "Add Arc Stub" -msgstr "Ajout de stub (arc)" - -#: pcbnew/muwave_command.cpp:65 -msgid "Add Polynomial Shape" -msgstr "Ajout Forme polynomiale" - #: pcbnew/toolbars_update_user_interface.cpp:39 msgid " mils" msgstr " mils" @@ -6545,15 +6603,15 @@ msgstr "Mode d'affichage haut contraste" msgid "Hide invisible text" msgstr "Cacher textes invisibles" -#: pcbnew/dialog_pad_properties.cpp:482 +#: pcbnew/dialog_pad_properties.cpp:477 msgid "Incorrect value for pad drill: pad drill bigger than pad size" msgstr "Valeur incorrecte pour diamètre de perçage: perçage plus grand que la taille du pad" -#: pcbnew/dialog_pad_properties.cpp:488 +#: pcbnew/dialog_pad_properties.cpp:483 msgid "Incorrect value for pad offset" msgstr "Valeur incorrecte pour offset du pad" -#: pcbnew/dialog_pad_properties.cpp:586 +#: pcbnew/dialog_pad_properties.cpp:577 msgid "Unknown netname, no change" msgstr "Net inconnu, pas de changement" @@ -6638,60 +6696,6 @@ msgstr "Force affichage des pins invisibles" msgid "Schematic" msgstr "Schématique" -#: eeschema/libframe.cpp:284 -msgid "" -"Component was modified!\n" -"Discard changes?" -msgstr "" -"Le composant a été modifié\n" -"Perdre les changements" - -#: eeschema/libframe.cpp:297 -#, c-format -msgid "" -"Library \"%s\" was modified!\n" -"Discard changes?" -msgstr "" -"Librairie \"%s\" modifiée!\n" -"Perdre les changements ?" - -#: eeschema/libframe.cpp:407 -#, c-format -msgid "Part %c" -msgstr "Composant %c" - -#: eeschema/libframe.cpp:666 -msgid "Add pin" -msgstr "Addition de \"pins\"" - -#: eeschema/libframe.cpp:670 -msgid "Set pin options" -msgstr "Choix options de pin" - -#: eeschema/libframe.cpp:694 -msgid "Add rectangle" -msgstr "Ajout de rectangle" - -#: eeschema/libframe.cpp:698 -msgid "Add circle" -msgstr "Ajout de cercle" - -#: eeschema/libframe.cpp:702 -msgid "Add arc" -msgstr "Ajout d'arc" - -#: eeschema/libframe.cpp:706 -msgid "Add line" -msgstr "Addition de lignes" - -#: eeschema/libframe.cpp:710 -msgid "Set anchor position" -msgstr "Ajuster Position Ancre" - -#: eeschema/libframe.cpp:720 -msgid "Export" -msgstr "Exporter" - #: eeschema/netlist.cpp:88 msgid "List" msgstr "Liste" @@ -6714,74 +6718,29 @@ msgstr "Labels" msgid "Hierar." msgstr "Hiérar." -#: eeschema/find.cpp:210 -msgid "Pin " -msgstr "Pin " +#: eeschema/viewlibs.cpp:108 +msgid "Library Browser" +msgstr "Visualisateur de Librairies" -#: eeschema/find.cpp:214 -msgid "Ref " -msgstr "Ref " +#: eeschema/viewlibs.cpp:115 +msgid "no library selected" +msgstr "Pas de librairie sélectionnée" -#: eeschema/find.cpp:222 -msgid "Field " -msgstr "Champ " +#: eeschema/viewlibs.cpp:319 +msgid "Part" +msgstr "Part" -#: eeschema/find.cpp:232 -#: eeschema/find.cpp:236 -msgid " found" -msgstr " trouvé " +#: eeschema/viewlibs.cpp:320 +msgid "Alias" +msgstr "Alias" -#: eeschema/find.cpp:369 -#, c-format -msgid "Marker %d found in %s" -msgstr "Marqueur %d trouvé en %s " +#: eeschema/viewlibs.cpp:321 +msgid "Description" +msgstr "Description" -#: eeschema/find.cpp:376 -msgid "Marker Not Found" -msgstr "Marqueur non trouvé" - -#: eeschema/find.cpp:599 -msgid " Found in " -msgstr " Trouvé en " - -#: eeschema/find.cpp:611 -msgid " Not Found" -msgstr " Non trouvé" - -#: eeschema/find.cpp:643 -msgid "No component libraries are loaded." -msgstr "Pas de librairies de composants chargées." - -#: eeschema/find.cpp:667 -#: eeschema/find.cpp:733 -#: eeschema/find.cpp:750 -msgid "Found " -msgstr "Trouvé " - -#: eeschema/find.cpp:667 -msgid " in library " -msgstr " en librairie " - -#: eeschema/find.cpp:675 -msgid " found only in cache" -msgstr "trouvé seulement en cache" - -#: eeschema/find.cpp:678 -msgid "" -"\n" -"Explore All Libraries?" -msgstr "" -"\n" -"Explorer toutes les Librairies?" - -#: eeschema/find.cpp:684 -msgid "Nothing found" -msgstr " Rien trouvé" - -#: eeschema/find.cpp:734 -#: eeschema/find.cpp:751 -msgid " in lib " -msgstr " en libr. " +#: eeschema/viewlibs.cpp:322 +msgid "Key words" +msgstr "Mots clé" #: eeschema/annotate.cpp:285 #, c-format @@ -6847,11 +6806,7 @@ msgstr "Ajouter Fils" msgid "Component Library Editor: " msgstr "Editeur de Composants: " -#: eeschema/libedit.cpp:30 -msgid "no library selected" -msgstr "Pas de librairie sélectionnée" - -#: eeschema/libedit.cpp:66 +#: eeschema/libedit.cpp:68 msgid "" "Current part not saved.\n" "\n" @@ -6861,98 +6816,82 @@ msgstr "" "\n" "Perdre les changements en cours ?" -#: eeschema/libedit.cpp:96 +#: eeschema/libedit.cpp:98 #, c-format msgid "Component or alias name \"%s\" not found in library \"%s\"." msgstr "Composant ou alias \"%s\" non trouvé en librairie \"%s\"." -#: eeschema/libedit.cpp:166 +#: eeschema/libedit.cpp:168 #, c-format msgid "Could not create copy of part <%s> in library <%s>." msgstr "Ne peut créer une copie de l'élément <%s> en librairie <%s>." -#: eeschema/libedit.cpp:247 +#: eeschema/libedit.cpp:249 msgid "Include last component changes?" msgstr "Inclure les dernières modifications du composant" -#: eeschema/libedit.cpp:259 +#: eeschema/libedit.cpp:261 msgid "Modify library file \"" msgstr "Modifier le fichier Librairie \"" -#: eeschema/libedit.cpp:259 +#: eeschema/libedit.cpp:261 msgid "\"?" msgstr "\"?" -#: eeschema/libedit.cpp:270 +#: eeschema/libedit.cpp:272 msgid "Error while saving library file \"" msgstr "Erreur en sauvant le fichier librairie \"" -#: eeschema/libedit.cpp:271 +#: eeschema/libedit.cpp:273 msgid "\"." msgstr "\"." -#: eeschema/libedit.cpp:272 +#: eeschema/libedit.cpp:274 msgid "*** ERROR: ***" msgstr "***ERREUR:****" -#: eeschema/libedit.cpp:277 +#: eeschema/libedit.cpp:279 msgid "Library file \"" msgstr "Fichier librairie \"" -#: eeschema/libedit.cpp:279 +#: eeschema/libedit.cpp:281 msgid "Document file \"" msgstr "Fichier de doc \"" -#: eeschema/libedit.cpp:303 -msgid "Part" -msgstr "Part" - -#: eeschema/libedit.cpp:315 -msgid "Alias" -msgstr "Alias" - -#: eeschema/libedit.cpp:320 +#: eeschema/libedit.cpp:322 msgid "Unit" msgstr "Unité" -#: eeschema/libedit.cpp:323 +#: eeschema/libedit.cpp:325 msgid "Convert" msgstr "Convert" -#: eeschema/libedit.cpp:327 +#: eeschema/libedit.cpp:329 msgid "Body" msgstr "Body" -#: eeschema/libedit.cpp:330 +#: eeschema/libedit.cpp:332 msgid "Power Symbol" msgstr "Symbole d'Alimentation" -#: eeschema/libedit.cpp:332 +#: eeschema/libedit.cpp:334 msgid "Component" msgstr "Composant" -#: eeschema/libedit.cpp:341 -msgid "Description" -msgstr "Description" - -#: eeschema/libedit.cpp:348 -msgid "Key words" -msgstr "Mots clé" - -#: eeschema/libedit.cpp:384 +#: eeschema/libedit.cpp:386 msgid "Please select a component library." msgstr "SVP sélectionner une librairie de composants." -#: eeschema/libedit.cpp:393 +#: eeschema/libedit.cpp:395 #, c-format msgid "Component library <%s> is empty." msgstr "Fichier librairie de composants <%s> vide" -#: eeschema/libedit.cpp:395 +#: eeschema/libedit.cpp:397 msgid "Delete Entry Error" msgstr "Erreur en suppression d'élément" -#: eeschema/libedit.cpp:400 +#: eeschema/libedit.cpp:402 #, c-format msgid "" "Select 1 of %d components to delete\n" @@ -6961,25 +6900,25 @@ msgstr "" "Selection 1 de %d composants a supprimer\n" "de la librairie <%s>." -#: eeschema/libedit.cpp:404 +#: eeschema/libedit.cpp:406 msgid "Delete Component" msgstr "Suppression Composant" -#: eeschema/libedit.cpp:413 +#: eeschema/libedit.cpp:415 #, c-format msgid "Entry <%s> not found in library <%s>." msgstr "Element <%s> non trouvé en librairie <%s>." -#: eeschema/libedit.cpp:420 +#: eeschema/libedit.cpp:422 #, c-format msgid "Delete component \"%s\" from library \"%s\"?" msgstr "Supprimer composant \"%s\" de la librairie \"%s\"?" -#: eeschema/libedit.cpp:440 +#: eeschema/libedit.cpp:442 msgid "The component being deleted has been modified. All changes will be lost. Discard changes?" msgstr "Le composant à supprimer a été modifié. Tous les changements seront perdus. Ignorer les changements?" -#: eeschema/libedit.cpp:495 +#: eeschema/libedit.cpp:497 msgid "" "All changes to the current component will be lost!\n" "\n" @@ -6989,72 +6928,72 @@ msgstr "" "\n" "Supprimer le composant courant de l'écran?" -#: eeschema/libedit.cpp:511 +#: eeschema/libedit.cpp:513 msgid "This new component has no name and cannot be created. Aborted" msgstr "Ce noveau composant n'a pas de nom et ne peut être créé, Abandon" -#: eeschema/libedit.cpp:523 +#: eeschema/libedit.cpp:525 #, c-format msgid "Component \"%s\" already exists in library \"%s\"." msgstr "Composant \"%s\" déjà existant en librairie \"%s\"." -#: eeschema/libedit.cpp:591 +#: eeschema/libedit.cpp:593 msgid "No component to save." msgstr "Pas de composant à sauver." -#: eeschema/libedit.cpp:600 +#: eeschema/libedit.cpp:602 msgid "No library specified." msgstr "Pas de librairie spécifiée." -#: eeschema/libedit.cpp:610 +#: eeschema/libedit.cpp:612 #, c-format msgid "Component \"%s\" exists. Change it?" msgstr "Le composant \" %s\" existe, Le changer ?" -#: eeschema/libedit.cpp:628 +#: eeschema/libedit.cpp:630 #, c-format msgid "Component %s saved in library %s" msgstr "Composant %s sauvé en librairie %s" -#: eeschema/pinedit.cpp:198 +#: eeschema/pinedit.cpp:202 msgid "This position is already occupied by another pin. Continue?" msgstr "Position occupée par une autre pin. Continuer ?" -#: eeschema/pinedit.cpp:623 +#: eeschema/pinedit.cpp:627 msgid "No pins!" msgstr "Pas de Pins!" -#: eeschema/pinedit.cpp:634 +#: eeschema/pinedit.cpp:638 msgid "Marker Information" msgstr "Info Marqueur" -#: eeschema/pinedit.cpp:653 +#: eeschema/pinedit.cpp:657 #, c-format msgid "Duplicate pin %s \"%s\" at location (%.3f, %.3f) conflicts with pin %s \"%s\" at location (%.3f, %.3f)" msgstr "Pin dupliquée %s \"%s\" en position (%.3f, %.3f) en conflit avec pin %s \"%s\" en position (%.3f, %.3f)" -#: eeschema/pinedit.cpp:666 -#: eeschema/pinedit.cpp:705 +#: eeschema/pinedit.cpp:670 +#: eeschema/pinedit.cpp:709 #, c-format msgid " in part %c" msgstr " en composant %c" -#: eeschema/pinedit.cpp:673 -#: eeschema/pinedit.cpp:712 +#: eeschema/pinedit.cpp:677 +#: eeschema/pinedit.cpp:716 msgid " of converted" msgstr " de converti" -#: eeschema/pinedit.cpp:675 -#: eeschema/pinedit.cpp:714 +#: eeschema/pinedit.cpp:679 +#: eeschema/pinedit.cpp:718 msgid " of normal" msgstr " de normal" -#: eeschema/pinedit.cpp:696 +#: eeschema/pinedit.cpp:700 #, c-format msgid "Off grid pin %s \"%s\" at location (%.3f, %.3f)" msgstr "Pin %s hors grille \"%s\" en position (%.3f, %.3f)" -#: eeschema/pinedit.cpp:723 +#: eeschema/pinedit.cpp:727 msgid "No off grid or duplicate pins were found." msgstr "Pas de pins doublées ou hors grille trouvées" @@ -7075,10 +7014,30 @@ msgstr " en librairie" msgid "Deselect current tool" msgstr "Désélection outil courant" +#: eeschema/tool_lib.cpp:43 +#: eeschema/libframe.cpp:675 +msgid "Add pin" +msgstr "Addition de \"pins\"" + #: eeschema/tool_lib.cpp:47 msgid "Add graphic text" msgstr "Addition de textes graphiques (commentaires)" +#: eeschema/tool_lib.cpp:51 +#: eeschema/libframe.cpp:696 +msgid "Add rectangle" +msgstr "Ajout de rectangle" + +#: eeschema/tool_lib.cpp:55 +#: eeschema/libframe.cpp:700 +msgid "Add circle" +msgstr "Ajout de cercle" + +#: eeschema/tool_lib.cpp:59 +#: eeschema/libframe.cpp:704 +msgid "Add arc" +msgstr "Ajout d'arc" + #: eeschema/tool_lib.cpp:63 msgid "Add lines and polygons" msgstr "Addition de lignes ou polygones graphiques" @@ -7189,11 +7148,6 @@ msgstr "" msgid "No new text: no change" msgstr "Pas de nouveau texte: pas de changements" -#: eeschema/symbdraw.cpp:636 -#, c-format -msgid "Arc %.1f deg" -msgstr "Arc %.1f deg" - #: eeschema/sheet.cpp:77 msgid "File name is not valid! Aborted" msgstr "Nom de fichier non valide! Abandon" @@ -7321,6 +7275,10 @@ msgstr "Non connecté" msgid "Pin" msgstr "Pin" +#: eeschema/class_pin.cpp:1609 +msgid "Number" +msgstr "Nombre" + #: eeschema/database.cpp:49 msgid "No components found matching " msgstr "Pas de composants trouvés qui correspondent " @@ -7341,57 +7299,43 @@ msgstr "critère de recherche par clé <" msgid "Select Component" msgstr "Sélection Composant" -#: eeschema/schedit.cpp:183 -msgid "Push/Pop Hierarchy" -msgstr "Naviger dans Hiérarchie" +#: eeschema/libframe.cpp:290 +msgid "" +"Component was modified!\n" +"Discard changes?" +msgstr "" +"Le composant a été modifié\n" +"Perdre les changements" -#: eeschema/schedit.cpp:187 -msgid "Add NoConnect Flag" -msgstr "Ajoutde symboles de non connexion" +#: eeschema/libframe.cpp:303 +#, c-format +msgid "" +"Library \"%s\" was modified!\n" +"Discard changes?" +msgstr "" +"Librairie \"%s\" modifiée!\n" +"Perdre les changements ?" -#: eeschema/schedit.cpp:195 -msgid "Add Bus" -msgstr "Addition de Bus" +#: eeschema/libframe.cpp:413 +#, c-format +msgid "Part %c" +msgstr "Composant %c" -#: eeschema/schedit.cpp:203 -msgid "Add Junction" -msgstr "Ajout jonctions" +#: eeschema/libframe.cpp:679 +msgid "Set pin options" +msgstr "Choix options de pin" -#: eeschema/schedit.cpp:207 -msgid "Add Label" -msgstr "Ajout Label" +#: eeschema/libframe.cpp:708 +msgid "Add line" +msgstr "Addition de lignes" -#: eeschema/schedit.cpp:211 -msgid "Add Global label" -msgstr "Ajout de labels globaux" +#: eeschema/libframe.cpp:712 +msgid "Set anchor position" +msgstr "Ajuster Position Ancre" -#: eeschema/schedit.cpp:215 -msgid "Add Hierarchal label" -msgstr "Ajouter Label Hiérarchique" - -#: eeschema/schedit.cpp:223 -msgid "Add Wire to Bus entry" -msgstr "Addition d'entrées de bus (type fil vers bus)" - -#: eeschema/schedit.cpp:227 -msgid "Add Bus to Bus entry" -msgstr "Addition d'entrées de bus (type bus vers bus)" - -#: eeschema/schedit.cpp:231 -msgid "Add Sheet" -msgstr "Ajout de Feuille" - -#: eeschema/schedit.cpp:235 -msgid "Add PinSheet" -msgstr "Ajout Conn. hiérar." - -#: eeschema/schedit.cpp:239 -msgid "Import PinSheet" -msgstr "Importer Connecteur de hiérarchie" - -#: eeschema/schedit.cpp:247 -msgid "Add Power" -msgstr "Ajouter Alims" +#: eeschema/libframe.cpp:722 +msgid "Export" +msgstr "Exporter" #: eeschema/libarch.cpp:55 #, c-format @@ -7423,6 +7367,10 @@ msgstr "Noir" msgid "Background Color:" msgstr "Couleur du Fond:" +#: eeschema/selpart.cpp:26 +msgid "No component libraries are loaded." +msgstr "Pas de librairies de composants chargées." + #: eeschema/selpart.cpp:32 #, c-format msgid " Select 1 of %d libraries." @@ -7477,9 +7425,10 @@ msgstr "Impossible de créer le fichier <%s>" msgid "Saving symbol in [%s]" msgstr "Symbole sauvé en [%s]" -#: eeschema/viewlibs.cpp:108 -msgid "Library Browser" -msgstr "Visualisateur de Librairies" +#: eeschema/symbdraw.cpp:632 +#, c-format +msgid "Arc %.1f deg" +msgstr "Arc %.1f deg" #: eeschema/delsheet.cpp:43 #, c-format @@ -7595,7 +7544,6 @@ msgid "&New" msgstr "&Nouveau" #: eeschema/menubar.cpp:43 -#: eeschema/tool_sch.cpp:34 msgid "New schematic project" msgstr "Nouveau Projet schématique" @@ -7740,7 +7688,6 @@ msgid "W&ire to bus entry" msgstr "Entrées de bus (type fil vers bus)" #: eeschema/menubar.cpp:215 -#: eeschema/tool_sch.cpp:179 msgid "Place a wire to bus entry" msgstr "Placer une Entrée de Bus (type fil vers bus)" @@ -7749,7 +7696,6 @@ msgid "B&us to bus entry" msgstr "Entrées de bus (type bus vers bus)" #: eeschema/menubar.cpp:221 -#: eeschema/tool_sch.cpp:183 msgid "Place a bus to bus entry" msgstr "Placer une Entrée de Bus (type bus vers bus)" @@ -7766,7 +7712,6 @@ msgid "Net name" msgstr "Net Name" #: eeschema/menubar.cpp:231 -#: eeschema/tool_sch.cpp:192 msgid "Place net name" msgstr "Place nom de net" @@ -7791,7 +7736,6 @@ msgid "Hierarchical label" msgstr "Label Hiérarchique" #: eeschema/menubar.cpp:250 -#: eeschema/tool_sch.cpp:206 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" @@ -7832,7 +7776,6 @@ msgid "Graphic text (comment)" msgstr "Textes graphiques (commentaires)" #: eeschema/menubar.cpp:286 -#: eeschema/tool_sch.cpp:229 msgid "Place graphic text (comment)" msgstr "Placer textes graphiques (commentaires)" @@ -8523,6 +8466,71 @@ msgstr "Ne pas afficher la grille" msgid "HV orientation for wires and bus" msgstr "Force direction H, V pour les fils et bus" +#: eeschema/find.cpp:210 +msgid "Pin " +msgstr "Pin " + +#: eeschema/find.cpp:214 +msgid "Ref " +msgstr "Ref " + +#: eeschema/find.cpp:222 +msgid "Field " +msgstr "Champ " + +#: eeschema/find.cpp:232 +#: eeschema/find.cpp:236 +msgid " found" +msgstr " trouvé " + +#: eeschema/find.cpp:367 +#, c-format +msgid "Marker %d found in %s" +msgstr "Marqueur %d trouvé en %s " + +#: eeschema/find.cpp:374 +msgid "Marker Not Found" +msgstr "Marqueur non trouvé" + +#: eeschema/find.cpp:595 +msgid " Found in " +msgstr " Trouvé en " + +#: eeschema/find.cpp:607 +msgid " Not Found" +msgstr " Non trouvé" + +#: eeschema/find.cpp:663 +#: eeschema/find.cpp:729 +#: eeschema/find.cpp:746 +msgid "Found " +msgstr "Trouvé " + +#: eeschema/find.cpp:663 +msgid " in library " +msgstr " en librairie " + +#: eeschema/find.cpp:671 +msgid " found only in cache" +msgstr "trouvé seulement en cache" + +#: eeschema/find.cpp:674 +msgid "" +"\n" +"Explore All Libraries?" +msgstr "" +"\n" +"Explorer toutes les Librairies?" + +#: eeschema/find.cpp:680 +msgid "Nothing found" +msgstr " Rien trouvé" + +#: eeschema/find.cpp:730 +#: eeschema/find.cpp:747 +msgid " in lib " +msgstr " en libr. " + #: eeschema/classes_body_items.cpp:36 msgid "Undefined" msgstr "Non Défini" @@ -8595,10 +8603,6 @@ msgstr "la position X du point %d de la polyligne n'est pas définie" msgid "polyline point %d Y position not defined" msgstr "la position Y du point %d de la polyligne n'est pas définie" -#: eeschema/classes_body_items.cpp:1564 -msgid "Cannot allocate memory to draw polylines." -msgstr "" - #: eeschema/classes_body_items.cpp:1700 msgid "Bezier" msgstr "Bezier" @@ -8623,15 +8627,67 @@ 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/files-io.cpp:70 +#: eeschema/schedit.cpp:173 +msgid "Push/Pop Hierarchy" +msgstr "Naviger dans Hiérarchie" + +#: eeschema/schedit.cpp:177 +msgid "Add NoConnect Flag" +msgstr "Ajoutde symboles de non connexion" + +#: eeschema/schedit.cpp:185 +msgid "Add Bus" +msgstr "Addition de Bus" + +#: eeschema/schedit.cpp:193 +msgid "Add Junction" +msgstr "Ajout jonctions" + +#: eeschema/schedit.cpp:197 +msgid "Add Label" +msgstr "Ajout Label" + +#: eeschema/schedit.cpp:201 +msgid "Add Global label" +msgstr "Ajout de labels globaux" + +#: eeschema/schedit.cpp:205 +msgid "Add Hierarchal label" +msgstr "Ajouter Label Hiérarchique" + +#: eeschema/schedit.cpp:213 +msgid "Add Wire to Bus entry" +msgstr "Addition d'entrées de bus (type fil vers bus)" + +#: eeschema/schedit.cpp:217 +msgid "Add Bus to Bus entry" +msgstr "Addition d'entrées de bus (type bus vers bus)" + +#: eeschema/schedit.cpp:221 +msgid "Add Sheet" +msgstr "Ajout de Feuille" + +#: eeschema/schedit.cpp:225 +msgid "Add PinSheet" +msgstr "Ajout Conn. hiérar." + +#: eeschema/schedit.cpp:229 +msgid "Import PinSheet" +msgstr "Importer Connecteur de hiérarchie" + +#: eeschema/schedit.cpp:237 +msgid "Add Power" +msgstr "Ajouter Alims" + +#: eeschema/files-io.cpp:71 msgid "Clear schematic hierarchy?" msgstr "Effacer la hiérarchie schématique?" -#: eeschema/files-io.cpp:79 +#: eeschema/files-io.cpp:80 msgid "Open Schematic" msgstr "Ouvrir Schématique" -#: eeschema/files-io.cpp:129 +#: eeschema/files-io.cpp:128 msgid "" "Ready\n" "Working dir: \n" @@ -8639,7 +8695,7 @@ msgstr "" "Prêt\n" "Répertoire de travail: \n" -#: eeschema/files-io.cpp:189 +#: eeschema/files-io.cpp:192 #, c-format msgid "" "Component library <%s> failed to load.\n" @@ -8650,7 +8706,7 @@ msgstr "" "\n" "Erreur: %s" -#: eeschema/files-io.cpp:204 +#: eeschema/files-io.cpp:207 #, c-format msgid "File <%s> not found." msgstr "Fichier <%s> non trouvé" @@ -8946,211 +9002,213 @@ msgstr "Copie Composant" msgid "Move Global Label" msgstr "Déplacer Label Global" -#: eeschema/onrightclick.cpp:370 +#: eeschema/onrightclick.cpp:369 msgid "Rotate Global Label" msgstr "Rot. Label Global" -#: eeschema/onrightclick.cpp:372 +#: eeschema/onrightclick.cpp:373 msgid "Edit Global Label" msgstr "Editer Label Global" -#: eeschema/onrightclick.cpp:374 +#: eeschema/onrightclick.cpp:378 msgid "Delete Global Label" msgstr "Supprimer Label Global" -#: eeschema/onrightclick.cpp:378 -#: eeschema/onrightclick.cpp:443 -#: eeschema/onrightclick.cpp:477 +#: eeschema/onrightclick.cpp:382 +#: eeschema/onrightclick.cpp:455 +#: eeschema/onrightclick.cpp:499 msgid "Change to Hierarchical Label" msgstr "Changer en Label Hiérarchique" -#: eeschema/onrightclick.cpp:380 -#: eeschema/onrightclick.cpp:411 -#: eeschema/onrightclick.cpp:474 +#: eeschema/onrightclick.cpp:384 +#: eeschema/onrightclick.cpp:419 +#: eeschema/onrightclick.cpp:496 msgid "Change to Label" msgstr "Change en Label" -#: eeschema/onrightclick.cpp:382 -#: eeschema/onrightclick.cpp:413 -#: eeschema/onrightclick.cpp:445 +#: eeschema/onrightclick.cpp:386 +#: eeschema/onrightclick.cpp:421 +#: eeschema/onrightclick.cpp:457 msgid "Change to Text" msgstr "Change en Texte" -#: eeschema/onrightclick.cpp:385 -#: eeschema/onrightclick.cpp:418 -#: eeschema/onrightclick.cpp:450 -#: eeschema/onrightclick.cpp:484 +#: eeschema/onrightclick.cpp:389 +#: eeschema/onrightclick.cpp:426 +#: eeschema/onrightclick.cpp:462 +#: eeschema/onrightclick.cpp:506 msgid "Change Type" msgstr "Change Type" -#: eeschema/onrightclick.cpp:396 +#: eeschema/onrightclick.cpp:400 msgid "Move Hierarchical Label" msgstr "Déplacer Label Hiérarchique" -#: eeschema/onrightclick.cpp:403 +#: eeschema/onrightclick.cpp:406 +#: eeschema/onrightclick.cpp:409 msgid "Rotate Hierarchical Label" msgstr "Rot. Label Hiérarchique" -#: eeschema/onrightclick.cpp:405 +#: eeschema/onrightclick.cpp:410 +#: eeschema/onrightclick.cpp:413 msgid "Edit Hierarchical Label" msgstr "Editer Label Hiérarchique" -#: eeschema/onrightclick.cpp:407 +#: eeschema/onrightclick.cpp:415 msgid "Delete Hierarchical label" msgstr "Supprimer Label Hiérarchique" -#: eeschema/onrightclick.cpp:415 -#: eeschema/onrightclick.cpp:447 +#: eeschema/onrightclick.cpp:423 +#: eeschema/onrightclick.cpp:459 msgid "Change to Global Label" msgstr "Change en Label Global" -#: eeschema/onrightclick.cpp:429 +#: eeschema/onrightclick.cpp:437 msgid "Move Label" msgstr "Déplace Label" -#: eeschema/onrightclick.cpp:435 +#: eeschema/onrightclick.cpp:442 msgid "Rotate Label" msgstr "Rot. Label" -#: eeschema/onrightclick.cpp:437 +#: eeschema/onrightclick.cpp:446 msgid "Edit Label" msgstr "Editer Label" -#: eeschema/onrightclick.cpp:439 +#: eeschema/onrightclick.cpp:451 msgid "Delete Label" msgstr "Supprimer Label" -#: eeschema/onrightclick.cpp:460 +#: eeschema/onrightclick.cpp:473 msgid "Move Text" msgstr "Déplacer Texte" -#: eeschema/onrightclick.cpp:461 +#: eeschema/onrightclick.cpp:479 #: eeschema/libedit_onrightclick.cpp:148 msgid "Rotate Text" msgstr "Rot. Texte" -#: eeschema/onrightclick.cpp:463 +#: eeschema/onrightclick.cpp:483 msgid "Edit Text" msgstr "Editer Texte" -#: eeschema/onrightclick.cpp:465 +#: eeschema/onrightclick.cpp:487 msgid "Delete Text" msgstr "Effacer Texte" -#: eeschema/onrightclick.cpp:481 +#: eeschema/onrightclick.cpp:503 msgid "Change to Glabel" msgstr "Change en Label Global" -#: eeschema/onrightclick.cpp:499 -#: eeschema/onrightclick.cpp:539 +#: eeschema/onrightclick.cpp:521 +#: eeschema/onrightclick.cpp:561 msgid "Break Wire" msgstr "Briser Fil" -#: eeschema/onrightclick.cpp:502 +#: eeschema/onrightclick.cpp:524 msgid "Delete Junction" msgstr "Supprimer Jonction" -#: eeschema/onrightclick.cpp:509 -#: eeschema/onrightclick.cpp:532 +#: eeschema/onrightclick.cpp:531 +#: eeschema/onrightclick.cpp:554 msgid "Delete Node" msgstr "Supprimer Noeud" -#: eeschema/onrightclick.cpp:511 -#: eeschema/onrightclick.cpp:535 +#: eeschema/onrightclick.cpp:533 +#: eeschema/onrightclick.cpp:557 msgid "Delete Connection" msgstr "Supprimer Connexion" -#: eeschema/onrightclick.cpp:524 +#: eeschema/onrightclick.cpp:546 msgid "Wire End" msgstr "Terminer Fil" -#: eeschema/onrightclick.cpp:528 +#: eeschema/onrightclick.cpp:550 msgid "Drag Wire" msgstr "Drag Fil" -#: eeschema/onrightclick.cpp:531 +#: eeschema/onrightclick.cpp:553 msgid "Delete Wire" msgstr "Supprimer Fil" -#: eeschema/onrightclick.cpp:553 -#: eeschema/onrightclick.cpp:585 +#: eeschema/onrightclick.cpp:575 +#: eeschema/onrightclick.cpp:607 msgid "Add Global Label" msgstr "Ajout Label Global" -#: eeschema/onrightclick.cpp:565 +#: eeschema/onrightclick.cpp:587 msgid "Bus End" msgstr "Terminer Bus" -#: eeschema/onrightclick.cpp:569 +#: eeschema/onrightclick.cpp:591 msgid "Delete Bus" msgstr "Supprimer Bus" -#: eeschema/onrightclick.cpp:572 +#: eeschema/onrightclick.cpp:594 msgid "Break Bus" msgstr "Briser Bus" -#: eeschema/onrightclick.cpp:594 +#: eeschema/onrightclick.cpp:616 msgid "Enter Sheet" msgstr "Entrer dans Feuille" -#: eeschema/onrightclick.cpp:597 +#: eeschema/onrightclick.cpp:619 msgid "Move Sheet" msgstr "Déplacer Feuille" -#: eeschema/onrightclick.cpp:602 +#: eeschema/onrightclick.cpp:624 msgid "Place Sheet" msgstr "Placer Feuille" -#: eeschema/onrightclick.cpp:607 +#: eeschema/onrightclick.cpp:629 msgid "Edit Sheet" msgstr "Editer Feuille" -#: eeschema/onrightclick.cpp:609 +#: eeschema/onrightclick.cpp:631 msgid "Resize Sheet" msgstr "Redimensionner Feuille" -#: eeschema/onrightclick.cpp:612 +#: eeschema/onrightclick.cpp:634 msgid "Import PinSheets" msgstr "Importer Connecteur de Hiérarchie" -#: eeschema/onrightclick.cpp:616 +#: eeschema/onrightclick.cpp:638 msgid "Cleanup PinSheets" msgstr "Nettoyage des Pins Hiérarchiques" -#: eeschema/onrightclick.cpp:618 +#: eeschema/onrightclick.cpp:640 msgid "Delete Sheet" msgstr "Supprimer Feuille" -#: eeschema/onrightclick.cpp:628 +#: eeschema/onrightclick.cpp:650 msgid "Move PinSheet" msgstr "Déplace Connecteur de hiérarchie" -#: eeschema/onrightclick.cpp:630 +#: eeschema/onrightclick.cpp:652 msgid "Edit PinSheet" msgstr "Edit Connecteur de hiérarchie" -#: eeschema/onrightclick.cpp:634 +#: eeschema/onrightclick.cpp:656 msgid "Delete PinSheet" msgstr "Supprimer Connecteur de hiérarchie" -#: eeschema/onrightclick.cpp:647 +#: eeschema/onrightclick.cpp:669 msgid "Window Zoom" msgstr "Zoom sur Fenètre" -#: eeschema/onrightclick.cpp:656 +#: eeschema/onrightclick.cpp:678 msgid "Save Block" msgstr "Sauver Bloc" -#: eeschema/onrightclick.cpp:659 +#: eeschema/onrightclick.cpp:681 msgid "Drag Block" msgstr "Drag Bloc" -#: eeschema/onrightclick.cpp:664 +#: eeschema/onrightclick.cpp:686 #: eeschema/libedit_onrightclick.cpp:292 msgid "Mirror Block ||" msgstr "Miroir Bloc ||" -#: eeschema/onrightclick.cpp:669 +#: eeschema/onrightclick.cpp:691 msgid "Copy to Clipboard" msgstr "Copie dans Presse papier" @@ -9343,27 +9401,27 @@ msgstr "Ne peut ajouter un double de l'alias <%s> en librairie <%s>." msgid "Conflict in library <%s>: alias <%s> already has root name <%s> and will not be assigned to root name <%s>." msgstr "Conflit en librairie <%s>: l'alias <%s> a déjà un composant racine <%s> et ne peut prendre ce nom <%s>." -#: eeschema/class_library.cpp:469 +#: eeschema/class_library.cpp:452 msgid "The component library file name is not set." msgstr "Le nom du fichier librairie est non sélectionné." -#: eeschema/class_library.cpp:477 +#: eeschema/class_library.cpp:460 msgid "The file could not be opened." msgstr "Le fichier n'a pas pu être ouvert." -#: eeschema/class_library.cpp:483 +#: eeschema/class_library.cpp:466 msgid "The file is empty!" msgstr "Fichier vide!" -#: eeschema/class_library.cpp:506 +#: eeschema/class_library.cpp:489 msgid "The file is NOT an EESCHEMA library!" msgstr "Le fichier n'est PAS une librairie EESCHEMA !" -#: eeschema/class_library.cpp:512 +#: eeschema/class_library.cpp:495 msgid "The file header is missing version and time stamp information." -msgstr "" +msgstr "L'entête de fichier ne comporte pas de numéro de version et de signature temporelle." -#: eeschema/class_library.cpp:530 +#: eeschema/class_library.cpp:513 #, c-format msgid "" "The component library <%s> header version number is invalid.\n" @@ -9371,34 +9429,30 @@ msgid "" "In future versions of EESchema this library may not load correctly. To resolve this problem open the library in the library editor and save it. If this library is the project cache library, save the current schematic." msgstr "" -#: eeschema/class_library.cpp:554 +#: eeschema/class_library.cpp:537 msgid "An error occurred attempting to read the header." msgstr "Une erreur s'est produite lors de la lecture de l'entête." -#: eeschema/class_library.cpp:585 +#: eeschema/class_library.cpp:568 #, c-format msgid "Library <%s> component load error %s." msgstr "Librairie <%s> erreur de chargement du composant %s." -#: eeschema/class_library.cpp:656 +#: eeschema/class_library.cpp:639 #, c-format msgid "Could not open component document library file <%s>." msgstr "Ne peut ouvrir le fichier document librairie <%s>." -#: eeschema/class_library.cpp:663 +#: eeschema/class_library.cpp:646 #, c-format msgid "Component document library file <%s> is empty." msgstr "Fichier document de composants <%s> vide." -#: eeschema/class_library.cpp:671 +#: eeschema/class_library.cpp:654 #, c-format msgid "File <%s> is not a valid component library document file." msgstr "<%s> n'est pas un fichier documentation de composant valide." -#: eeschema/edit_label.cpp:47 -msgid "Empty Text!" -msgstr "Texte vide" - #: eeschema/netlist_control.cpp:130 #: eeschema/netlist_control.cpp:254 msgid "Default format" @@ -9489,7 +9543,7 @@ msgstr "Erreur. Vous devez entrer une ligne de commande" msgid "Error. You must provide a Title" msgstr "Erreur. Vous devez entrer un titre" -#: eeschema/dialog_eeschema_config.cpp:222 +#: eeschema/dialog_eeschema_config.cpp:224 msgid "Library files:" msgstr "Fichiers Librairies:" @@ -9554,26 +9608,30 @@ msgstr "Vert. Justifié" msgid "The vertical height of the currently selected field's text in the schematic" msgstr "La taille du texte du champ actuellement sélectionné" -#: eeschema/dialog_edit_label.cpp:69 +#: eeschema/dialog_edit_label.cpp:74 msgid "Global Label Properties" msgstr "Propriétés du Label Global" -#: eeschema/dialog_edit_label.cpp:73 +#: eeschema/dialog_edit_label.cpp:78 msgid "Hierarchal Label Properties" msgstr "Propriétés du Label Hiérarchique" -#: eeschema/dialog_edit_label.cpp:74 +#: eeschema/dialog_edit_label.cpp:79 msgid "Hlabel Shape" msgstr "Forme HLabel" -#: eeschema/dialog_edit_label.cpp:78 +#: eeschema/dialog_edit_label.cpp:83 msgid "Label Properties" msgstr "Propriétés du label" -#: eeschema/dialog_edit_label.cpp:82 +#: eeschema/dialog_edit_label.cpp:87 msgid "Text Properties" msgstr "Propriétés du Texte" +#: eeschema/dialog_edit_label.cpp:200 +msgid "Empty Text!" +msgstr "Texte vide" + #: eeschema/annotate_dialog.cpp:86 msgid "Clear and annotate all of the components " msgstr "Reinitialisation et réannotation de tous les composants " @@ -10073,46 +10131,54 @@ msgid "Done Loading " msgstr "Chargement terminé " #: eeschema/dialog_lib_edit_pin_base.cpp:24 -msgid "&Name:" -msgstr "&Nom:" +msgid "Pin &name:" +msgstr "Nom pi&n:" #: eeschema/dialog_lib_edit_pin_base.cpp:34 msgid "N&ame text size:" msgstr "Taille du Texte &Nom de Pin" #: eeschema/dialog_lib_edit_pin_base.cpp:45 -msgid "N&umber:" -msgstr "N&ombre:" +msgid "Pin n&umber:" +msgstr "N&uméro de pin:" -#: eeschema/dialog_lib_edit_pin_base.cpp:55 +#: eeschema/dialog_lib_edit_pin_base.cpp:47 +msgid "Pin number: 1 to 4 ASCII letters and/or digits" +msgstr "Numéro de pin: 1 à 4 lettres ou/et chiffres ASCII" + +#: eeschema/dialog_lib_edit_pin_base.cpp:57 msgid "Number te&xt size:" msgstr "Taille Te&xte Numéro de Pin" -#: eeschema/dialog_lib_edit_pin_base.cpp:66 +#: eeschema/dialog_lib_edit_pin_base.cpp:68 msgid "&Orientation:" msgstr "&Orientation:" -#: eeschema/dialog_lib_edit_pin_base.cpp:78 +#: eeschema/dialog_lib_edit_pin_base.cpp:80 msgid "&Length:" msgstr "&Longueur:" -#: eeschema/dialog_lib_edit_pin_base.cpp:89 -msgid "&Electical type:" +#: eeschema/dialog_lib_edit_pin_base.cpp:91 +msgid "&Electrical type:" msgstr "&Type électrique:" -#: eeschema/dialog_lib_edit_pin_base.cpp:110 -msgid "&Style:" -msgstr "&Style:" +#: eeschema/dialog_lib_edit_pin_base.cpp:93 +msgid "Used by the ERC." +msgstr "Utilisé par le contrôle ERC" -#: eeschema/dialog_lib_edit_pin_base.cpp:133 +#: eeschema/dialog_lib_edit_pin_base.cpp:114 +msgid "Graphic &Style:" +msgstr "&Style graphique:" + +#: eeschema/dialog_lib_edit_pin_base.cpp:137 msgid "Add to all &parts in package" msgstr "Ajouter à toutes les &parts du boitier" -#: eeschema/dialog_lib_edit_pin_base.cpp:137 +#: eeschema/dialog_lib_edit_pin_base.cpp:141 msgid "Add to all alternate &body styles (DeMorgan)" msgstr "Ajouter à toutes les forme &alternatives (DeMorgan)" -#: eeschema/dialog_lib_edit_pin_base.cpp:141 +#: eeschema/dialog_lib_edit_pin_base.cpp:145 msgid "&Visible" msgstr "&Visible" @@ -11313,27 +11379,6 @@ msgstr "Fichiers projet GerbView (.cnf)|*.cnf" msgid "GerbView is already running. Continue?" msgstr "Gerbview est en cours d'exécution. Continuer ?" -#: gerbview/initpcb.cpp:27 -msgid "Current data will be lost?" -msgstr "Les données courante seront perdues ?" - -#: gerbview/initpcb.cpp:59 -msgid "Delete zones?" -msgstr "Effacer zones ?" - -#: gerbview/initpcb.cpp:110 -msgid "Delete tracks?" -msgstr "Effacer pistes ?" - -#: gerbview/initpcb.cpp:133 -msgid "Delete pcb text?" -msgstr "Effacer textes pcb" - -#: gerbview/initpcb.cpp:153 -#, c-format -msgid "Delete layer %d?" -msgstr "Effacer couche %d" - #: gerbview/files.cpp:72 msgid "Not yet available..." msgstr "non encore disponible" @@ -11439,6 +11484,15 @@ msgstr "Trop de fichiers inclus!!" msgid "List D codes" msgstr "Liste D-Codes" +#: gerbview/initpcb.cpp:27 +msgid "Current data will be lost?" +msgstr "Les données courante seront perdues ?" + +#: gerbview/initpcb.cpp:62 +#, c-format +msgid "Delete layer %d?" +msgstr "Effacer couche %d" + #: gerbview/select_layers_to_pcb.cpp:213 #: gerbview/tool_gerber.cpp:240 msgid "Layer " @@ -11850,23 +11904,23 @@ msgstr "Couleurs" msgid "Error" msgstr "Erreur" -#: common/zoom.cpp:188 +#: common/zoom.cpp:185 msgid "Center" msgstr "Centrer" -#: common/zoom.cpp:196 +#: common/zoom.cpp:193 msgid "Zoom select" msgstr "Sélection Zoom" -#: common/zoom.cpp:218 +#: common/zoom.cpp:215 msgid "Zoom: " msgstr "Zoom: " -#: common/zoom.cpp:229 +#: common/zoom.cpp:226 msgid "Grid Select" msgstr "Sélection Grille" -#: common/zoom.cpp:250 +#: common/zoom.cpp:247 msgid "Grid: " msgstr "Grille: " @@ -11947,6 +12001,10 @@ msgstr "Pouces" msgid "centimeters" msgstr "centimètres" +#: common/common.cpp:270 +msgid "Unknown" +msgstr "Inconnu" + #: common/common.cpp:348 msgid " \"" msgstr " \"" @@ -12439,6 +12497,10 @@ msgstr "Dialogue Netliste" msgid "Create SVG file" msgstr "Créer Fichier SVG" +#: pcbnew/dialog_layers_setup_base.h:262 +msgid "Layer Setup" +msgstr "Options Couches" + #: pcbnew/dialog_copper_zones_base.h:99 msgid "Fill Zones Options" msgstr "Options de Remplissage de Zone" @@ -12480,10 +12542,6 @@ msgstr "Editeur de Règles de Conception" msgid "Global Edition of Tracks and Vias" msgstr "Edition Globale de Pistes et Vias" -#: pcbnew/dialog_layers_setup_base2.h:264 -msgid "Layer Setup" -msgstr "Options Couches" - #: eeschema/eelayer.h:35 msgid "EESchema Colors" msgstr "Couleurs dans EESchema" @@ -12784,6 +12842,34 @@ msgstr "Options d'Affichage" msgid "Page Settings" msgstr "Ajustage opt Page" +#~ msgid "&Name:" +#~ msgstr "&Nom:" +#~ msgid "N&umber:" +#~ msgstr "N&ombre:" +#~ msgid "&Style:" +#~ msgstr "&Style:" +#~ msgid "On-board, copper" +#~ msgstr "PCB, cuivre" +#~ msgid "All Layers On" +#~ msgstr "Toutes Couches Actives" +#~ msgid "Single Side" +#~ msgstr "Simple Face" +#~ msgid "Single Side, SMD on Back" +#~ msgstr "Simple face, CMS coté Cuivre" +#~ msgid "Two Layers, Parts on Front" +#~ msgstr "2 couches, Composants sur le Dessus" +#~ msgid "Two Layers, Parts on Both Faces" +#~ msgstr "2 couches, Composants sur les 2 faces" +#~ msgid "Four Layers, Parts on Front" +#~ msgstr "4 couches, Composants sur le Dessus" +#~ msgid "Four Layers, Parts on Both Faces" +#~ msgstr "4 couches, Composants sur les 2 faces" +#~ msgid "Delete zones?" +#~ msgstr "Effacer zones ?" +#~ msgid "Delete tracks?" +#~ msgstr "Effacer pistes ?" +#~ msgid "Delete pcb text?" +#~ msgstr "Effacer textes pcb" #~ msgid "Failed to open Symbol File <%s>" #~ msgstr "Ne peut pas ouvrir fichier <%s>" #~ msgid "Sheet properties" @@ -13161,10 +13247,6 @@ msgstr "Ajustage opt Page" #~ msgstr "low clock" #~ msgid "low out" #~ msgstr "low out" -#~ msgid "Pin name" -#~ msgstr "Nom pin" -#~ msgid "Pin number" -#~ msgstr "Numéro de pin" #~ msgid "Pin type" #~ msgstr "Type Pin" #~ msgid "Not visible"