From c116a9b5a7c77ea4ed49db0f58383b86ef855211 Mon Sep 17 00:00:00 2001 From: CHARRAS Date: Tue, 21 Aug 2007 19:37:31 +0000 Subject: [PATCH] first version of programmable hotkeys (work in progress) --- bitmaps/Reload.xpm | 134 ++ change_log.txt | 6 + common/eda_dde.cpp | 13 +- common/hotkeys_basic.cpp | 374 +++- eeschema/controle.cpp | 9 +- eeschema/eeconfig.cpp | 42 +- eeschema/eeschema.cpp | 1 + eeschema/hotkeys.cpp | 10 +- eeschema/menubar.cpp | 10 + eeschema/protos.h | 1 + eeschema/schframe.cpp | 2 + gerbview/files.cpp | 6 +- gerbview/gerbview.h | 2 +- gerbview/lay2plot.cpp | 12 - gerbview/protos.h | 3 +- gerbview/tracepcb.cpp | 22 +- gerbview/trpiste.cpp | 33 +- include/bitmaps.h | 1 + include/build_version.h | 2 +- include/hotkeys_basic.h | 10 + include/id.h | 16 +- include/wxstruct.h | 9 +- internat/fr/kicad.mo | Bin 130367 -> 131142 bytes internat/fr/kicad.po | 4467 +++++++++++++++++++------------------- pcbnew/hotkeys.cpp | 4 +- pcbnew/lay2plot.cpp | 12 - pcbnew/menubarpcb.cpp | 10 + pcbnew/pcbcfg.cpp | 45 +- pcbnew/pcbframe.cpp | 2 + pcbnew/pcbnew.cpp | 1 + pcbnew/protos.h | 2 +- 31 files changed, 2893 insertions(+), 2368 deletions(-) create mode 100644 bitmaps/Reload.xpm diff --git a/bitmaps/Reload.xpm b/bitmaps/Reload.xpm new file mode 100644 index 0000000000..c6a41da0b9 --- /dev/null +++ b/bitmaps/Reload.xpm @@ -0,0 +1,134 @@ +/* XPM */ +#ifndef XPMMAIN +extern char * reload_xpm[]; + +#else +char * reload_xpm[] = { +"16 16 110 2", +" c None", +". c #000000", +"+ c #766B3F", +"@ c #F7F8FA", +"# c #CBDDEB", +"$ c #5D5332", +"% c #EFE5BA", +"& c #7A7A7A", +"* c #E9E9E9", +"= c #EAEAEA", +"- c #F1F1F1", +"; c #BFD5E8", +"> c #DCE5E8", +", c #5A5230", +"' c #EEE5BB", +") c #EED680", +"! c #231F13", +"~ c #2A2516", +"{ c #12100A", +"] c #707070", +"^ c #ABABAB", +"/ c #C0C0C0", +"( c #E0E0E0", +"_ c #8DA9BE", +": c #54697C", +"< c #574F2E", +"[ c #EFE4B6", +"} c #CCB76D", +"| c #96864F", +"1 c #636363", +"2 c #FEFEFE", +"3 c #F9F9F9", +"4 c #84A0B5", +"5 c #4F6475", +"6 c #4B4428", +"7 c #EEE2B2", +"8 c #AF9D5D", +"9 c #919191", +"0 c #819AAE", +"a c #496072", +"b c #494227", +"c c #8F6406", +"d c #D1940C", +"e c #D7A328", +"f c #DEB446", +"g c #A49357", +"h c #CFCFCF", +"i c #302C19", +"j c #765204", +"k c #9E7009", +"l c #D9AA35", +"m c #909090", +"n c #666E75", +"o c #272315", +"p c #986B07", +"q c #737373", +"r c #5C4003", +"s c #B07D0A", +"t c #767676", +"u c #CFE0ED", +"v c #6C7E87", +"w c #1E1A0F", +"x c #896611", +"y c #676D73", +"z c #54595E", +"A c #986B08", +"B c #57626A", +"C c #6B7C85", +"D c #221E11", +"E c #0B0B06", +"F c #576876", +"G c #AE9141", +"H c #847645", +"I c #8CA8BD", +"J c #8E96A0", +"K c #616161", +"L c #C5C5C5", +"M c #CECECE", +"N c #E0C978", +"O c #131D24", +"P c #A0A8AF", +"Q c #183042", +"R c #C9B46B", +"S c #817444", +"T c #0E222D", +"U c #586D80", +"V c #97A5B0", +"W c #86A4B9", +"X c #CDCDCD", +"Y c #AE9C5C", +"Z c #626262", +"` c #112835", +" . c #5A7082", +".. c #9DA9B0", +"+. c #6B7882", +"@. c #839EB2", +"#. c #E6E6E6", +"$. c #213648", +"%. c #666666", +"&. c #8D8D8D", +"*. c #112C3A", +"=. c #9FA9B0", +"-. c #59636D", +";. c #A1A1A1", +">. c #868686", +",. c #6E6E6E", +"'. c #2D3949", +"). c #3E4F5C", +"!. c #80878F", +"~. c #1A3140", +" . . . + . . . . . . . . . . ", +". @ # $ % . & * * * = * - ; ; . ", +". > , ' ) . ! ~ { ] ^ / ( _ : . ", +". < [ ) ) ) ) } | . 1 2 3 4 5 . ", +"6 7 ) ) ) ) ) ) ) 8 . 9 - 0 a . ", +"b c d d d d d e f ) g . h 0 a . ", +". i c d d . . j k l } . m 0 a . ", +". n o p d . q . r s ) . t 0 a . ", +". u v w x . y z . A ) . B 0 a . ", +". u _ C D E F 0 . G H . 0 0 a . ", +". u _ I J K L M . N . O P 0 a . ", +". u _ 4 L L Q . R S . T U V a . ", +". u W 0 L X . Y | . Z ` ...a . ", +". +.@.0 X #.$.. . %.&.*. .=.a . ", +" . -.5 ;./ m m >.,.& '.).!.~.. ", +" . . . . . . . . . . . . . "}; +#endif diff --git a/change_log.txt b/change_log.txt index 12dcd7766e..7c07c90831 100644 --- a/change_log.txt +++ b/change_log.txt @@ -4,6 +4,12 @@ Started 2007-June-11 Please add newer entries at the top, list the date and your name with email address. +2007-aug-21 UPDATE Jean-Pierre Charras +================================================================================ ++ eeschema & pcbnew + First version of programmable hotkeys by editing hotkey configuration files. + some hotkeys are not programmable (Zoom)(work in progress) + 2007-Aug-21 UPDATE Dick Hollenbeck ================================================================================ diff --git a/common/eda_dde.cpp b/common/eda_dde.cpp index f6679d0838..c0f9e17f85 100644 --- a/common/eda_dde.cpp +++ b/common/eda_dde.cpp @@ -27,10 +27,9 @@ wxString HOSTNAME( wxT( "localhost" ) ); /* variables locales */ -// buffers for read and write data in socket connections +// buffer for read and write data in socket connections #define IPC_BUF_SIZE 4096 static char client_ipc_buffer[IPC_BUF_SIZE]; -static char server_ipc_buffer[IPC_BUF_SIZE]; static wxServer* server; @@ -80,15 +79,15 @@ void WinEDA_DrawFrame::OnSockRequest( wxSocketEvent& evt ) switch( evt.GetSocketEvent() ) { case wxSOCKET_INPUT: - sock->Read( server_ipc_buffer, 1 ); + sock->Read( client_ipc_buffer, 1 ); if( sock->LastCount() == 0 ) - break; // No data: Occurs on open connection + break; // No data: Occurs on opening connection - sock->Read( server_ipc_buffer + 1, IPC_BUF_SIZE - 2 ); + sock->Read( client_ipc_buffer + 1, IPC_BUF_SIZE - 2 ); len = 1 + sock->LastCount(); - server_ipc_buffer[len] = 0; + client_ipc_buffer[len] = 0; if( RemoteFct ) - RemoteFct( server_ipc_buffer ); + RemoteFct( client_ipc_buffer ); break; case wxSOCKET_LOST: diff --git a/common/hotkeys_basic.cpp b/common/hotkeys_basic.cpp index 5586876d8e..6b856a7ea7 100644 --- a/common/hotkeys_basic.cpp +++ b/common/hotkeys_basic.cpp @@ -6,7 +6,9 @@ */ #include "fctsys.h" #include "common.h" +#include "wxstruct.h" #include "hotkeys_basic.h" +#include "macros.h" /* Class to handle hotkey commnands. hotkeys have a default value This class allows (for the future..) the real key code changed by user(from a key code list file, TODO) @@ -19,6 +21,100 @@ Ki_HotkeyInfo::Ki_HotkeyInfo(const wxChar * infomsg, int idcommand, int keycode) m_Idcommand = idcommand; // internal id for the corresponding command (see hotkey_id_commnand list) } +/* class to handle the printable name and the keycode +*/ +struct hotkey_name_descr { + wxChar * m_Name; + int m_KeyCode; +}; + +struct hotkey_name_descr s_Notkey_Name_List[] = { + {wxT("F1"), WXK_F1}, + {wxT("F2"), WXK_F2}, + {wxT("F3"), WXK_F3}, + {wxT("F4"), WXK_F4}, + {wxT("F5"), WXK_F5}, + {wxT("F6"), WXK_F6}, + {wxT("F7"), WXK_F7}, + {wxT("F8"), WXK_F8}, + {wxT("F9"), WXK_F9}, + {wxT("F10"), WXK_F10}, + {wxT("F11"), WXK_F11}, + {wxT("F12"), WXK_F12}, + + {wxT("Esc"), WXK_ESCAPE}, + {wxT("Delete"), WXK_DELETE}, + {wxT("Esc"), WXK_ESCAPE}, + {wxT("Tab"), '\t'}, + {wxT("Backspace"), WXK_BACK}, + {wxT("Insert"), WXK_INSERT}, + + {wxT("End"), WXK_END}, + {wxT("Page Up"), WXK_PAGEUP}, + {wxT("Page Down"), WXK_PAGEDOWN}, + {wxT("+"), WXK_ADD}, + {wxT("-"), WXK_SUBTRACT}, + + {wxT("space"), ' '}, + {wxT("?"), '?'}, + {wxT("A"), 'A'}, + {wxT("B"), 'B'}, + {wxT("C"), 'C'}, + {wxT("D"), 'D'}, + {wxT("E"), 'E'}, + {wxT("F"), 'F'}, + {wxT("G"), 'G'}, + {wxT("H"), 'H'}, + {wxT("I"), 'I'}, + {wxT("J"), 'J'}, + {wxT("K"), 'K'}, + {wxT("L"), 'L'}, + {wxT("M"), 'M'}, + {wxT("N"), 'N'}, + {wxT("O"), 'O'}, + {wxT("P"), 'P'}, + {wxT("Q"), 'Q'}, + {wxT("R"), 'R'}, + {wxT("S"), 'S'}, + {wxT("T"), 'T'}, + {wxT("U"), 'U'}, + {wxT("V"), 'V'}, + {wxT("W"), 'W'}, + {wxT("X"), 'X'}, + {wxT("Y"), 'Y'}, + {wxT("Z"), 'Z'}, + + {wxT("Ctrl A"), GR_KB_CTRL + 'A'}, + {wxT("Ctrl B"), GR_KB_CTRL + 'B'}, + {wxT("Ctrl C"), GR_KB_CTRL + 'C'}, + {wxT("Ctrl D"), GR_KB_CTRL + 'D'}, + {wxT("Ctrl E"), GR_KB_CTRL + 'E'}, + {wxT("Ctrl F"), GR_KB_CTRL + 'F'}, + {wxT("Ctrl G"), GR_KB_CTRL + 'G'}, + {wxT("Ctrl H"), GR_KB_CTRL + 'H'}, + {wxT("Ctrl I"), GR_KB_CTRL + 'I'}, + {wxT("Ctrl J"), GR_KB_CTRL + 'J'}, + {wxT("Ctrl K"), GR_KB_CTRL + 'K'}, + {wxT("Ctrl L"), GR_KB_CTRL + 'L'}, + {wxT("Ctrl M"), GR_KB_CTRL + 'M'}, + {wxT("Ctrl N"), GR_KB_CTRL + 'N'}, + {wxT("Ctrl O"), GR_KB_CTRL + 'O'}, + {wxT("Ctrl P"), GR_KB_CTRL + 'P'}, + {wxT("Ctrl Q"), GR_KB_CTRL + 'Q'}, + {wxT("Ctrl R"), GR_KB_CTRL + 'R'}, + {wxT("Ctrl S"), GR_KB_CTRL + 'S'}, + {wxT("Ctrl T"), GR_KB_CTRL + 'T'}, + {wxT("Ctrl U"), GR_KB_CTRL + 'U'}, + {wxT("Ctrl V"), GR_KB_CTRL + 'V'}, + {wxT("Ctrl W"), GR_KB_CTRL + 'W'}, + {wxT("Ctrl X"), GR_KB_CTRL + 'X'}, + {wxT("Ctrl Y"), GR_KB_CTRL + 'Y'}, + {wxT("Ctrl Z"), GR_KB_CTRL + 'Z'}, + + {wxT(""), 0} // Do not change: end of list +}; + + /****************************************************/ wxString ReturnKeyNameFromKeyCode(int keycode) /****************************************************/ @@ -30,83 +126,56 @@ wxString ReturnKeyNameFromKeyCode(int keycode) */ { wxString keyname, modifier, fullkeyname; - +int ii; + if ( (keycode & GR_KB_CTRL) != 0 ) modifier << wxT("Ctrl "); if ( (keycode & GR_KB_ALT) != 0 ) modifier << wxT("Alt "); if ( (keycode & GR_KB_SHIFT) != 0 ) modifier << wxT("Shift "); - switch ( keycode) + keycode &= ~(GR_KB_CTRL|GR_KB_ALT|GR_KB_SHIFT); + for ( ii = 0; ; ii++) { - default: - keycode &= ~(GR_KB_CTRL|GR_KB_ALT|GR_KB_SHIFT); - keyname.Printf(wxT("%c"), keycode); + if ( s_Notkey_Name_List[ii].m_KeyCode == 0 ) + { + keyname = wxT(""); break; - - case WXK_ESCAPE: - keyname = wxT("Esc"); - break; - - case WXK_F1: - case WXK_F2: - case WXK_F3: - case WXK_F4: - case WXK_F5: - case WXK_F6: - case WXK_F7: - case WXK_F8: - case WXK_F9: - case WXK_F10: - case WXK_F11: - case WXK_F12: - keyname.Printf(wxT("F%d"), keycode - WXK_F1 + 1); - break; - - case ' ': - keyname = wxT("space"); - break; - - case '\t': - keyname = wxT("Tab"); - break; - - case WXK_DELETE: - keyname = wxT("Delete"); - break; - - case WXK_BACK: - keyname = wxT("Backspace"); - break; - - case WXK_INSERT: - keyname = wxT("Insert"); - break; - - case WXK_END: - keyname = wxT("End"); - break; - - case WXK_PAGEUP: - keyname = wxT("Page Up"); - break; - - case WXK_PAGEDOWN: - keyname = wxT("Page Down"); - break; - - case WXK_ADD: - keyname = wxT("+"); - break; - - case WXK_SUBTRACT: - keyname = wxT("-"); - break; - } + if ( s_Notkey_Name_List[ii].m_KeyCode == keycode) + { + keyname = s_Notkey_Name_List[ii].m_Name; + break; + } + } fullkeyname = modifier + keyname; return fullkeyname; } +/************************************************************/ +static int ReturnKeyCodeFromKeyName(const wxString & keyname) +/************************************************************/ +/* + * return the key code from its key name + * Only some wxWidgets key values are handled for function key + * @param keyname = wxString key name to find in s_Notkey_Name_List[] + * @return the key code +*/ +{ +int ii, keycode = 0; + + for ( ii = 0; ; ii++) + { + if ( s_Notkey_Name_List[ii].m_KeyCode == 0 ) break; + if ( s_Notkey_Name_List[ii].m_Name == keyname) + { + keycode = s_Notkey_Name_List[ii].m_KeyCode; + break; + } + } + + return keycode; +} + /****************************************************************************/ void DisplayHotkeyList(WinEDA_DrawFrame * frame, Ki_HotkeyInfo ** List) /*****************************************************************************/ @@ -123,7 +192,6 @@ wxString keyname; for ( ; * List != NULL; List++ ) { Ki_HotkeyInfo * hk_decr = * List; - if ( hk_decr->m_InfoMsg.IsEmpty() ) break; msg += _("key "); keyname = ReturnKeyNameFromKeyCode(hk_decr->m_KeyCode); msg += keyname + wxT(": ") + hk_decr->m_InfoMsg + wxT("\n"); @@ -150,3 +218,177 @@ int GetCommandCodeFromHotkey(int key, Ki_HotkeyInfo ** List) return 0; } +/*************************************************************************/ +int WinEDA_BasicFrame::WriteHotkeyConfigFile(const wxString & Filename, + Ki_HotkeyInfo ** List, bool verbose) +/*************************************************************************/ +/* + * Create a configuration file (*.key) from the current hotkey list + * @param Filename = default full file name to create. If void, A filename will be asked + * @param List = pointer to the current hotkey list. + * the ouput format is: shortcut "key" "function" + * lines starting by # are comments + * +*/ +{ + wxString FullFilename = Filename; + FILE * cfgfile; + wxString msg; + if ( FullFilename.IsEmpty() || verbose) + { + wxString Mask, Path, Ext; + Ext = DEFAULT_HOTKEY_FILENAME_EXT; + Mask = wxT("*") + Ext; + Path = DEFAULT_HOTKEY_FILENAME_PATH; + FullFilename = EDA_FileSelector( _("Hotkey configuration file:"), + Path, /* Chemin par defaut */ + FullFilename, /* nom fichier par defaut */ + Ext, /* extension par defaut */ + Mask, /* Masque d'affichage */ + this, + wxFD_SAVE, + TRUE + ); + } + if ( FullFilename.IsEmpty() ) return 0; + + cfgfile = wxFopen(FullFilename, wxT("wt")); + + if ( cfgfile == NULL ) + { + if ( verbose ) + { + msg = _("Unable to create ") + FullFilename; + DisplayError(this, msg); + } + return 0; + } + +wxString keyname, infokey; + + msg = wxT("$hotkey list\n"); + fprintf(cfgfile, CONV_TO_UTF8(msg)); + + /* print the allowed keys, for info + */ + msg = wxT("# "); msg += _("Allowed keys:\n"); + fprintf(cfgfile, CONV_TO_UTF8(msg)); + msg.Empty(); + for ( int ii = 0; ; ii ++ ) + { + if ( s_Notkey_Name_List[ii].m_KeyCode == 0 ) break;; + if ( msg.IsEmpty() ) msg = wxT("# "); + else msg += wxT(", "); + msg += s_Notkey_Name_List[ii].m_Name; + if ( msg.Len() > 60 ) + { + msg += wxT("\n"); + fprintf(cfgfile, CONV_TO_UTF8(msg)); + msg.Empty(); + } + } + /* print the last line */ + if ( ! msg.IsEmpty() ) msg += wxT("\n"); + msg += wxT("#\n#\n"); + fprintf(cfgfile, CONV_TO_UTF8(msg)); + + /* Print the current list */ + for ( ; * List != NULL; List++ ) + { + Ki_HotkeyInfo * hk_decr = * List; + msg = wxT("shortcut "); + keyname = ReturnKeyNameFromKeyCode(hk_decr->m_KeyCode); + AddDelimiterString( keyname ); + infokey = hk_decr->m_InfoMsg; + AddDelimiterString( infokey ); + msg += keyname + wxT(": ") + infokey + wxT("\n"); + fprintf(cfgfile, CONV_TO_UTF8(msg)); + } + msg = wxT("$Endlist\n"); + fprintf(cfgfile, CONV_TO_UTF8(msg)); + fclose(cfgfile); + return 1; +} + + +/********************************************************************************************/ +int WinEDA_BasicFrame::ReadHotkeyConfigFile(const wxString & Filename, + Ki_HotkeyInfo ** CurrentHotkeyList, bool verbose) +/********************************************************************************************/ +/* + * Read a configuration file (.key) and fill the current hotkey list with hotkeys + * @param Filename = default full file name to create. If void, A filename will be asked + * @param CurrentHotkeyList = current hotkey list to initialise. + * the input format is: shortcut "key" "function" + * lines starting by # are ignored (comments) +* +*/ +{ + wxString FullFilename = Filename; + FILE * cfgfile; + wxString msg; + if ( FullFilename.IsEmpty() || verbose ) + { + wxString Mask, Path, Ext; + Ext = DEFAULT_HOTKEY_FILENAME_EXT; + Mask = wxT("*") + Ext; + Path = DEFAULT_HOTKEY_FILENAME_PATH; + FullFilename = EDA_FileSelector( _("Hotkey configuration file:"), + Path, /* Chemin par defaut */ + FullFilename, /* nom fichier par defaut */ + Ext, /* extension par defaut */ + Mask, /* Masque d'affichage */ + this, + wxFD_OPEN, + TRUE + ); + if ( FullFilename.IsEmpty() ) return 0; + } + + cfgfile = wxFopen(FullFilename, wxT("rt")); + + if ( cfgfile == NULL ) + { + if ( verbose ) + { + msg = _("Unable to read ") + FullFilename; + DisplayError(this, msg); + } + return 0; + } + + wxString keyname; + char Line[1024]; + int LineNum = 0; + /* Read the file */ + while( GetLine( cfgfile, Line, &LineNum ) != NULL ) + { + char * line_type, * keyname, *fctname; + line_type = strtok(Line, " \t\n\r"); + msg = CONV_FROM_UTF8(line_type); + if( msg != wxT("shortcut") ) continue; + if( msg == wxT("$Endlist") ) break; + + /* Get the key name */ + strtok(NULL, "\"\n\r"); + keyname = strtok(NULL, "\"\n\r"); + strtok(NULL, "\"\n\r"); + /* Get the command name */ + fctname = strtok(NULL, "\"\n\r"); + msg = CONV_FROM_UTF8(fctname); + /* search the hotkey in current hotkey list */ + for (Ki_HotkeyInfo ** List = CurrentHotkeyList; * List != NULL; List++ ) + { + Ki_HotkeyInfo * hk_decr = * List; + if (hk_decr->m_InfoMsg == msg ) + { + msg = CONV_FROM_UTF8(keyname); + int code = ReturnKeyCodeFromKeyName(msg); + if ( code ) hk_decr->m_KeyCode = code; + break; + } + } + } + fclose(cfgfile); + return 1; +} diff --git a/eeschema/controle.cpp b/eeschema/controle.cpp index 66debf52c1..33e1c140f1 100644 --- a/eeschema/controle.cpp +++ b/eeschema/controle.cpp @@ -333,10 +333,6 @@ void WinEDA_DrawFrame::GeneralControle( wxDC* DC, wxPoint MousePositionInPixels curpos = m_CurrentScreen->m_Curseur; break; - case ' ': // Remise a zero coord relatives - m_CurrentScreen->m_O_Curseur = m_CurrentScreen->m_Curseur; - break; - case WXK_NUMPAD8: /* Deplacement curseur vers le haut */ case WXK_UP: MousePositionInPixels.y -= delta.y; @@ -391,8 +387,6 @@ void WinEDA_DrawFrame::GeneralControle( wxDC* DC, wxPoint MousePositionInPixels } } - Affiche_Status_Box(); /* Affichage des coord curseur */ - if( hotkey ) { if( m_CurrentScreen->GetCurItem() @@ -401,4 +395,7 @@ void WinEDA_DrawFrame::GeneralControle( wxDC* DC, wxPoint MousePositionInPixels else OnHotKey( DC, hotkey, NULL ); } + + Affiche_Status_Box(); /* Affichage des coord curseur */ + } diff --git a/eeschema/eeconfig.cpp b/eeschema/eeconfig.cpp index 590e873a74..a96610097b 100644 --- a/eeschema/eeconfig.cpp +++ b/eeschema/eeconfig.cpp @@ -10,9 +10,13 @@ #include "protos.h" #include "eeconfig.h" #include "worksheet.h" +#include "hotkeys_basic.h" #include "id.h" +extern Ki_HotkeyInfo *s_Schematic_Hotkey_List[]; +extern Ki_HotkeyInfo *s_LibEdit_Hotkey_List[]; + /* Variables locales */ @@ -22,7 +26,8 @@ void WinEDA_SchematicFrame::Process_Config(wxCommandEvent& event) { int id = event.GetId(); wxPoint pos; - +wxString FullFileName; + wxGetMousePosition(&pos.x, &pos.y); pos.y += 5; @@ -49,7 +54,7 @@ wxPoint pos; case ID_CONFIG_READ: { wxString mask( wxT("*") ); mask += g_Prj_Config_Filename_ext; - wxString FullFileName = ScreenSch->m_FileName; + FullFileName = ScreenSch->m_FileName; ChangeFileNameExt( FullFileName, g_Prj_Config_Filename_ext ); FullFileName = EDA_FileSelector(_("Read config file"), @@ -71,12 +76,45 @@ wxPoint pos; } break; + case ID_PREFERENCES_CREATE_CONFIG_HOTKEYS: + FullFileName = DEFAULT_HOTKEY_FILENAME_PATH; + FullFileName += wxT("eeschema"); + FullFileName += DEFAULT_HOTKEY_FILENAME_EXT; + WriteHotkeyConfigFile(FullFileName, s_Schematic_Hotkey_List, true); + FullFileName = DEFAULT_HOTKEY_FILENAME_PATH; + FullFileName += wxT("libedit"); + FullFileName += DEFAULT_HOTKEY_FILENAME_EXT; + WriteHotkeyConfigFile(FullFileName, s_LibEdit_Hotkey_List, true); + break; + + case ID_PREFERENCES_READ_CONFIG_HOTKEYS: + Read_Hotkey_Config( this, true); + break; + default: DisplayError(this, wxT("WinEDA_SchematicFrame::Process_Config internal error") ); } } +/***************************************************************/ +bool Read_Hotkey_Config( WinEDA_DrawFrame * frame, bool verbose ) +/***************************************************************/ +/* + * Read the hotkey files config for eeschema and libedit +*/ +{ + wxString FullFileName = DEFAULT_HOTKEY_FILENAME_PATH; + FullFileName += wxT("eeschema"); + FullFileName += DEFAULT_HOTKEY_FILENAME_EXT; + frame->ReadHotkeyConfigFile(FullFileName, s_Schematic_Hotkey_List, verbose); + FullFileName = DEFAULT_HOTKEY_FILENAME_PATH; + FullFileName += wxT("libedit"); + FullFileName += DEFAULT_HOTKEY_FILENAME_EXT; + frame->ReadHotkeyConfigFile(FullFileName, s_LibEdit_Hotkey_List, verbose); +} + + /***********************************************************************/ bool Read_Config( const wxString & CfgFileName, bool ForceRereadConfig ) /***********************************************************************/ diff --git a/eeschema/eeschema.cpp b/eeschema/eeschema.cpp index 983db41e15..2e63d0808c 100644 --- a/eeschema/eeschema.cpp +++ b/eeschema/eeschema.cpp @@ -80,6 +80,7 @@ wxString FFileName; } SchematicFrame->Zoom_Automatique(TRUE); + Read_Hotkey_Config(SchematicFrame, false); /* Load file specified in the command line. */ if( ! FFileName.IsEmpty() ) diff --git a/eeschema/hotkeys.cpp b/eeschema/hotkeys.cpp index 7cd9e52d99..014bd87c4d 100644 --- a/eeschema/hotkeys.cpp +++ b/eeschema/hotkeys.cpp @@ -60,7 +60,7 @@ static Ki_HotkeyInfo HkZoomIn(wxT("Zoom In"), HK_ZOOM_IN, WXK_F1); static Ki_HotkeyInfo HkHelp(wxT("Help: this message"), HK_HELP, '?'); // List of hotkey descriptors for schematic -static Ki_HotkeyInfo *s_Schematic_Hotkey_List[] = { +Ki_HotkeyInfo *s_Schematic_Hotkey_List[] = { &HkHelp, &HkZoomIn, &HkZoomOut, &HkZoomRedraw, &HkZoomCenter, &HkNextSearch, &HkResetLocalCoord, @@ -71,12 +71,11 @@ static Ki_HotkeyInfo *s_Schematic_Hotkey_List[] = { NULL }; - // Library editor: static Ki_HotkeyInfo HkInsertPin(wxT("Repeat Pin"), HK_REPEAT_LAST, WXK_INSERT); // List of hotkey descriptors for libray editor -static Ki_HotkeyInfo *s_LibEdit_Hotkey_List[] = +Ki_HotkeyInfo *s_LibEdit_Hotkey_List[] = { &HkHelp, &HkZoomIn, &HkZoomOut, &HkZoomRedraw, &HkZoomCenter, @@ -120,11 +119,14 @@ wxPoint MousePos = m_CurrentScreen->m_MousePosition; DisplayHotkeyList(this, s_Schematic_Hotkey_List); break; + case HK_RESET_LOCAL_COORD: /* Reset the relative coord */ + m_CurrentScreen->m_O_Curseur = m_CurrentScreen->m_Curseur; + break; + case HK_ZOOM_IN: case HK_ZOOM_OUT: case HK_ZOOM_REDRAW: case HK_ZOOM_CENTER: - case HK_RESET_LOCAL_COORD: break; case HK_MOVEBLOCK_TO_DRAGBLOCK: // Switch to drag mode, when block moving diff --git a/eeschema/menubar.cpp b/eeschema/menubar.cpp index 32b14b9d37..a6cbf18fd7 100644 --- a/eeschema/menubar.cpp +++ b/eeschema/menubar.cpp @@ -146,6 +146,16 @@ wxMenuBar * menuBar = GetMenuBar(); item->SetBitmap(read_setup_xpm); configmenu->Append(item); + configmenu->AppendSeparator(); + item = new wxMenuItem(configmenu, ID_PREFERENCES_CREATE_CONFIG_HOTKEYS, _("Create Eeschema &Hotkey config file"), + _("Create or Recreate the hotkey config file from current hotkey list") ); + item->SetBitmap(save_setup_xpm); + configmenu->Append(item); + item = new wxMenuItem(configmenu, ID_PREFERENCES_READ_CONFIG_HOTKEYS, _("Reread &Eeschema Hotkey config file"), + _("Reread the hotkey config file") ); + item->SetBitmap( reload_xpm); + configmenu->Append(item); + // Menu Help: wxMenu *helpMenu = new wxMenu; item = new wxMenuItem(helpMenu , ID_GENERAL_HELP, diff --git a/eeschema/protos.h b/eeschema/protos.h index f6da989c3f..7c5c0c1cd8 100644 --- a/eeschema/protos.h +++ b/eeschema/protos.h @@ -227,6 +227,7 @@ int CountCmpNumber(void); /* EECONFIG.CPP */ /***************/ bool Read_Config( const wxString & CfgFileName, bool ForceRereadConfig ); +bool Read_Hotkey_Config( WinEDA_DrawFrame * frame, bool verbose ); /**************/ diff --git a/eeschema/schframe.cpp b/eeschema/schframe.cpp index e134742098..50ee66083d 100644 --- a/eeschema/schframe.cpp +++ b/eeschema/schframe.cpp @@ -61,6 +61,8 @@ BEGIN_EVENT_TABLE(WinEDA_SchematicFrame, wxFrame) EVT_MENU(ID_CONFIG_SAVE, WinEDA_SchematicFrame::Process_Config) EVT_MENU(ID_COLORS_SETUP, WinEDA_SchematicFrame::Process_Config) EVT_MENU(ID_OPTIONS_SETUP, WinEDA_SchematicFrame::Process_Config) + EVT_MENU(ID_PREFERENCES_CREATE_CONFIG_HOTKEYS, WinEDA_SchematicFrame::Process_Config) + EVT_MENU(ID_PREFERENCES_READ_CONFIG_HOTKEYS, WinEDA_SchematicFrame::Process_Config) EVT_MENU_RANGE(ID_LANGUAGE_CHOICE, ID_LANGUAGE_CHOICE_END, WinEDA_DrawFrame::SetLanguage) diff --git a/gerbview/files.cpp b/gerbview/files.cpp index ba90bcc873..70f0709cb2 100644 --- a/gerbview/files.cpp +++ b/gerbview/files.cpp @@ -124,11 +124,11 @@ wxString path = wxPathOnly(FullFileName); if( filename == wxEmptyString) { wxString mask = wxT("*") + g_PhotoFilenameExt; - mask += wxT(";*.gbr;*.lgr;*.ger"); + mask += wxT(";*.gbr;*.gbx;*.lgr;*.ger"); filename = EDA_FileSelector(_("Gerber files:"), path, /* Chemin par defaut */ - wxEmptyString, /* nom fichier par defaut */ - g_PhotoFilenameExt, /* extension par defaut */ + wxEmptyString, /* nom fichier par defaut */ + g_PhotoFilenameExt, /* extension par defaut */ mask, /* Masque d'affichage */ this, 0, diff --git a/gerbview/gerbview.h b/gerbview/gerbview.h index ad58eaa359..dc215019d6 100644 --- a/gerbview/gerbview.h +++ b/gerbview/gerbview.h @@ -84,7 +84,7 @@ enum Gerb_GCommand }; -#define MAX_TOOLS 512 +#define MAX_TOOLS 2048 #define FIRST_DCODE 10 enum Gerb_Analyse_Cmd diff --git a/gerbview/lay2plot.cpp b/gerbview/lay2plot.cpp index fd055a894e..c1829b33d2 100644 --- a/gerbview/lay2plot.cpp +++ b/gerbview/lay2plot.cpp @@ -13,18 +13,6 @@ /* Variables locales : */ /* Routines Locales */ - /****************************/ - /* int GetLayerNumber(void) */ - /****************************/ -/* retourne le nombre de couches a tracer -*/ -int GetLayerNumber(void) -{ -int ii = 0; -//TO REDO -return ii; -} - /*******************************************************************************/ void Print_PcbItems(BOARD * Pcb, wxDC *DC, int drawmode, int printmasklayer) diff --git a/gerbview/protos.h b/gerbview/protos.h index fb7b2ad293..7e5f24c6c9 100644 --- a/gerbview/protos.h +++ b/gerbview/protos.h @@ -23,7 +23,6 @@ void Plume(int state); /****************/ /* lay2plot.cpp */ -int GetLayerNumber(void); void Print_PcbItems(BOARD * Pcb, wxDC *DC, int drawmode, int printmasklayer); /*****************/ @@ -116,7 +115,7 @@ void PlotArcPS(int x, int y, int StAngle, int EndAngle, int rayon, int width); /***************/ /* trpiste.cpp */ /***************/ -void Trace_Pistes(WinEDA_DrawPanel * panel, wxDC * DC, BOARD * Pcb, int drawmode); +void Draw_Track_Buffer(WinEDA_DrawPanel * panel, wxDC * DC, BOARD * Pcb, int drawmode, int printmasklayer); void Trace_Segment(WinEDA_DrawPanel * panel, wxDC * DC, TRACK* pt_piste, int draw_mode); void Trace_DrawSegmentPcb(WinEDA_DrawPanel * panel, wxDC * DC, DRAWSEGMENT * PtDrawSegment, int draw_mode); diff --git a/gerbview/tracepcb.cpp b/gerbview/tracepcb.cpp index ed65ab686b..11d04e9baf 100644 --- a/gerbview/tracepcb.cpp +++ b/gerbview/tracepcb.cpp @@ -44,7 +44,7 @@ void WinEDA_DrawPanel::PrintPage( wxDC* DC, bool Print_Sheet_Ref, int printmaskl DisplayOpt.DisplayDrawItems = FILLED; DisplayOpt.DisplayZones = 1; - ( (WinEDA_GerberFrame*) m_Parent )->Trace_Gerber( DC, GR_COPY ); + ( (WinEDA_GerberFrame*) m_Parent )->Trace_Gerber( DC, GR_COPY, printmasklayer ); if( Print_Sheet_Ref ) m_Parent->TraceWorkSheet( DC, GetScreen(), 0 ); @@ -72,7 +72,7 @@ void WinEDA_GerberFrame::RedrawActiveWindow( wxDC* DC, bool EraseBg ) DrawPanel->DrawBackGround( DC ); - Trace_Gerber( DC, GR_OR ); + Trace_Gerber( DC, GR_OR, -1 ); TraceWorkSheet( DC, screen, 0 ); Affiche_Status_Box(); @@ -83,16 +83,21 @@ void WinEDA_GerberFrame::RedrawActiveWindow( wxDC* DC, bool EraseBg ) } -/********************************************************/ -void WinEDA_GerberFrame::Trace_Gerber( wxDC* DC, int mode ) -/********************************************************/ -/* Trace l'ensemble des elements du PCB sur l'ecran actif*/ +/***********************************************************************************/ +void WinEDA_GerberFrame::Trace_Gerber( wxDC* DC, int draw_mode, int printmasklayer ) +/***********************************************************************************/ +/* +* Trace l'ensemble des elements du PCB sur l'ecran actif +* @param DC = device context to draw +* @param draw_mode = draw mode for the device context (GR_COPY, GR_OR, GR_XOR ..) +* @param printmasklayer = mask for allowed layer (=-1 to draw all layers) +*/ { if( !m_Pcb ) return; // Draw tracks and flashes - Trace_Pistes( DrawPanel, DC, m_Pcb, mode ); + Draw_Track_Buffer( DrawPanel, DC, m_Pcb, draw_mode, printmasklayer ); // Draw filled polygons #define NBMAX 2000 @@ -104,6 +109,9 @@ void WinEDA_GerberFrame::Trace_Gerber( wxDC* DC, int mode ) track = m_Pcb->m_Zone; for( ; track != NULL; track = track->Next() ) { + if ( printmasklayer != -1 ) + if ( (track->ReturnMaskLayer() & printmasklayer) == 0 ) continue; + if( track->m_NetCode == 0 ) // StartPoint { if( nbpoints ) diff --git a/gerbview/trpiste.cpp b/gerbview/trpiste.cpp index 513a18ebdf..3bf495e3e7 100644 --- a/gerbview/trpiste.cpp +++ b/gerbview/trpiste.cpp @@ -16,12 +16,18 @@ /* variables locales : */ -/********************************************************************************/ -void Trace_Pistes(WinEDA_DrawPanel * panel, wxDC * DC, BOARD * Pcb, int drawmode) -/********************************************************************************/ -/* Routine de trace des pistes et zones */ +/***************************************************************************************************/ +void Draw_Track_Buffer(WinEDA_DrawPanel * panel, wxDC * DC, BOARD * Pcb, int draw_mode, int printmasklayer) +/***************************************************************************************************/ +/* Function to draw the tracks (i.e Sports or lines) in gerbview + Polygons are not handled here (there are in Pcb->m_Zone) + * @param DC = device context to draw + * @param Pcb = Board to draw (only Pcb->m_Track is used) + * @param draw_mode = draw mode for the device context (GR_COPY, GR_OR, GR_XOR ..) + * @param printmasklayer = mask for allowed layer (=-1 to draw all layers) +*/ { -TRACK * pt_piste; +TRACK * Track; int layer = ((PCB_SCREEN*)panel->GetScreen())->m_Active_Layer; GERBER_Descr * gerber_layer = g_GERBER_Descr_List[layer]; int dcode_hightlight = 0; @@ -29,13 +35,16 @@ int dcode_hightlight = 0; if ( gerber_layer ) dcode_hightlight = gerber_layer->m_Selected_Tool; - pt_piste = Pcb->m_Track; - for ( ; pt_piste != NULL ; pt_piste = (TRACK*) pt_piste->Pnext ) + Track = Pcb->m_Track; + for ( ; Track != NULL ; Track = (TRACK*) Track->Pnext ) { - if ( (dcode_hightlight == pt_piste->m_NetCode) && - (pt_piste->m_Layer == layer) ) - Trace_Segment(panel, DC, pt_piste, drawmode | GR_SURBRILL); - else Trace_Segment(panel, DC, pt_piste, drawmode ); + if ( printmasklayer != -1 ) + if ( (Track->ReturnMaskLayer() & printmasklayer) == 0 ) continue; + + if ( (dcode_hightlight == Track->m_NetCode) && + (Track->m_Layer == layer) ) + Trace_Segment(panel, DC, Track, draw_mode | GR_SURBRILL); + else Trace_Segment(panel, DC, Track, draw_mode ); } } @@ -45,7 +54,7 @@ void Trace_Segment(WinEDA_DrawPanel * panel, wxDC * DC, TRACK* track, int draw_m /***********************************************************************************/ /* routine de trace de 1 segment de piste. Parametres : - pt_piste = adresse de la description de la piste en buflib + track = adresse de la description de la piste en buflib draw_mode = mode ( GR_XOR, GR_OR..) */ { diff --git a/include/bitmaps.h b/include/bitmaps.h index b8a0ebf689..ab93ba5cfd 100644 --- a/include/bitmaps.h +++ b/include/bitmaps.h @@ -5,6 +5,7 @@ #include "../bitmaps/Cancel.xpm" #include "../bitmaps/cancel_tool.xpm" #include "../bitmaps/Apply.xpm" + #include "../bitmaps/reload.xpm" #include "../bitmaps/icon_txt.xpm" #include "../bitmaps/new_txt.xpm" diff --git a/include/build_version.h b/include/build_version.h index 84219f782d..396abeaae5 100644 --- a/include/build_version.h +++ b/include/build_version.h @@ -5,7 +5,7 @@ COMMON_GLOBL wxString g_BuildVersion #ifdef EDA_BASE - (wxT("(2007-08-19)")) + (wxT("(2007-08-21)")) #endif ; diff --git a/include/hotkeys_basic.h b/include/hotkeys_basic.h index 0564510f7c..a53dbe5cf3 100644 --- a/include/hotkeys_basic.h +++ b/include/hotkeys_basic.h @@ -8,6 +8,16 @@ #ifndef HOTKEYS_BASIC_H #define HOTKEYS_BASIC_H +#define DEFAULT_HOTKEY_FILENAME_EXT wxT(".key") + +/* define default path for config key file */ +#ifdef __WINDOWS__ +#define DEFAULT_HOTKEY_FILENAME_PATH EDA_Appl->m_BinDir + wxT("../template/") +#else +#define DEFAULT_HOTKEY_FILENAME_PATH wxGetHomeDir() + wxT("/") +#endif + + /* Class to handle hotkey commnands. hotkeys have a default value This class allows (for the future..) the real key code changed by user(from a key code list file, TODO) */ diff --git a/include/id.h b/include/id.h index 0bf1146f01..2ff8cbfa56 100644 --- a/include/id.h +++ b/include/id.h @@ -64,6 +64,12 @@ enum main_id { ID_CONFIG_REQ, ID_CONFIG_SAVE, ID_CONFIG_READ, + ID_PREFERENCES_CREATE_CONFIG_HOTKEYS, + ID_PREFERENCES_READ_CONFIG_HOTKEYS, + ID_PREFERENCES_UNUSED0, + ID_PREFERENCES_UNUSED1, + ID_PREFERENCES_UNUSED2, + ID_PREFERENCES_UNUSED3, ID_GEN_PRINT, ID_GEN_PLOT, @@ -93,11 +99,11 @@ enum main_id { ID_PREFERENCES_FONT_INFOSCREEN, ID_PREFERENCES_FONT_DIALOG, ID_PREFERENCES_FONT_STATUS, - ID_PREFERENCES_UNUSED3, - ID_PREFERENCES_UNUSED4, - ID_PREFERENCES_UNUSED5, - ID_PREFERENCES_UNUSED6, - ID_PREFERENCES_UNUSED7, + ID_PREFERENCES_FONT_UNUSED3, + ID_PREFERENCES_FONT_UNUSED4, + ID_PREFERENCES_FONT_UNUSED5, + ID_PREFERENCES_FONT_UNUSED6, + ID_PREFERENCES_FONT_UNUSED7, ID_PREFERENCES_FONT_END, // Find id menu diff --git a/include/wxstruct.h b/include/wxstruct.h index 2e5b9837f3..5e202723a4 100644 --- a/include/wxstruct.h +++ b/include/wxstruct.h @@ -65,7 +65,7 @@ class WinEDAChoiceBox; #define WinEDA_Menu wxMenu #define WinEDA_MenuItem wxMenuItem -// Utilis�es mais non definies ici : +// Utilisees mais non definies ici : class LibraryStruct; class EDA_LibComponentStruct; class LibEDA_BaseStruct; @@ -97,6 +97,7 @@ class EDGE_MODULE; class WinEDA3D_DrawFrame; class PARAM_CFG_BASE; class Ki_PageDescr; +class Ki_HotkeyInfo; enum id_librarytype { @@ -176,7 +177,9 @@ public: void PrintMsg( const wxString& text ); void GetSettings( void ); void SaveSettings( void ); - void SetLanguage( wxCommandEvent& event ); + int WriteHotkeyConfigFile(const wxString & Filename, Ki_HotkeyInfo ** List, bool verbose); + int ReadHotkeyConfigFile(const wxString & Filename, Ki_HotkeyInfo ** List, bool verbose); + void SetLanguage( wxCommandEvent& event ); void ProcessFontPreferences( int id ); wxString GetLastProject( int rang ); @@ -802,7 +805,7 @@ public: void Liste_D_Codes( wxDC* DC ); /* Fonctions specifiques */ - void Trace_Gerber( wxDC* DC, int mode ); + void Trace_Gerber( wxDC* DC, int draw_mode, int printmasklayer ); // Gestion des textes sur pcb void Rotate_Texte_Pcb( TEXTE_PCB* TextePcb, wxDC* DC ); diff --git a/internat/fr/kicad.mo b/internat/fr/kicad.mo index ddb17324ceadcdd80a856c7d2ea94b4cce234ac9..864caa6306188d677407832e79471bff7c90d381 100644 GIT binary patch delta 48150 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 z%0D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 diff --git a/internat/fr/kicad.po b/internat/fr/kicad.po index 9a10d5aa4a..131e8b8aca 100644 --- a/internat/fr/kicad.po +++ b/internat/fr/kicad.po @@ -2,7 +2,7 @@ msgid "" msgstr "" "Project-Id-Version: kicad\n" "POT-Creation-Date: \n" -"PO-Revision-Date: 2007-08-19 16:13+0100\n" +"PO-Revision-Date: 2007-08-21 19:18+0100\n" "Last-Translator: \n" "Language-Team: kicad team \n" "MIME-Version: 1.0\n" @@ -104,117 +104,212 @@ msgstr "Max" msgid "Segm" msgstr "Segm" -#: pcbnew/loadcmp.cpp:94 -msgid "Module name:" -msgstr "Nom module:" - -#: pcbnew/loadcmp.cpp:201 -#: eeschema/eelibs_read_libraryfiles.cpp:66 -#, c-format -msgid "Library <%s> not found" -msgstr "Librairie %s non trouvée" - -#: pcbnew/loadcmp.cpp:206 -#, c-format -msgid "Scan Lib: %s" -msgstr "Examen Lib: %s" - -#: pcbnew/loadcmp.cpp:215 -msgid "File is Not a library" -msgstr "Le fichier n'est pas une librairie eeschema" - -#: pcbnew/loadcmp.cpp:277 -#, c-format -msgid "Module <%s> not found" -msgstr "Module <%s> non trouvé" - -#: pcbnew/loadcmp.cpp:342 -msgid "Library: " -msgstr "Librairie: " - -#: pcbnew/loadcmp.cpp:401 -#: pcbnew/loadcmp.cpp:534 -#, c-format -msgid "Modules (%d items)" -msgstr "Modules (%d éléments)" - #: pcbnew/edit.cpp:165 msgid "Graphic not autorized on Copper layers" msgstr "Graphique non autorisé sur couches cuivre" -#: pcbnew/edit.cpp:189 +#: pcbnew/edit.cpp:188 msgid "Tracks on Copper layers only " msgstr "Pistes sur couches cuivre seulement" -#: pcbnew/edit.cpp:267 +#: pcbnew/edit.cpp:264 msgid "Cotation not autorized on Copper layers" msgstr "Cotation non autorisée sur couches cuivre" -#: pcbnew/edit.cpp:489 -#: pcbnew/editmod.cpp:43 +#: pcbnew/edit.cpp:486 +#: pcbnew/editmod.cpp:45 msgid "Module Editor" msgstr "Ouvrir Editeur de modules" -#: pcbnew/edit.cpp:569 +#: pcbnew/edit.cpp:565 msgid "Add Tracks" msgstr "Addition de pistes" -#: pcbnew/edit.cpp:578 +#: pcbnew/edit.cpp:574 #: pcbnew/tool_pcb.cpp:420 msgid "Add Zones" msgstr "Addition de Zones" -#: pcbnew/edit.cpp:580 +#: pcbnew/edit.cpp:576 msgid "Warning: Display Zone is OFF!!!" msgstr "Attention: Affichage zones désactivé !!!" -#: pcbnew/edit.cpp:587 +#: pcbnew/edit.cpp:583 msgid "Add Mire" msgstr "Ajouter Mires de superposition" -#: pcbnew/edit.cpp:591 +#: pcbnew/edit.cpp:587 msgid "Adjust Zero" msgstr "Ajuster Zéro" -#: pcbnew/edit.cpp:597 +#: pcbnew/edit.cpp:593 msgid "Add Graphic" msgstr "Addition éléments graphiques" -#: pcbnew/edit.cpp:601 +#: pcbnew/edit.cpp:597 #: pcbnew/tool_pcb.cpp:437 #: pcbnew/tool_modedit.cpp:170 -#: eeschema/schedit.cpp:309 +#: eeschema/schedit.cpp:313 #: eeschema/libframe.cpp:487 #: gerbview/tool_gerber.cpp:361 msgid "Add Text" msgstr "Ajout de Texte" -#: pcbnew/edit.cpp:605 +#: pcbnew/edit.cpp:601 msgid "Add Modules" msgstr "Addition de Modules" -#: pcbnew/edit.cpp:609 +#: pcbnew/edit.cpp:605 #: pcbnew/tool_pcb.cpp:442 msgid "Add Cotation" msgstr "Addition de Cotations" -#: pcbnew/edit.cpp:617 +#: pcbnew/edit.cpp:613 msgid "Net Highlight" msgstr "Surbrillance des équipotentielles" -#: pcbnew/edit.cpp:621 +#: pcbnew/edit.cpp:617 msgid "Local Ratsnest" msgstr "Monter le chevelu général" -#: pcbnew/edit.cpp:778 -#: pcbnew/modedit.cpp:327 -#: eeschema/schedit.cpp:443 +#: pcbnew/edit.cpp:774 +#: pcbnew/modedit.cpp:344 +#: eeschema/schedit.cpp:453 #: eeschema/libframe.cpp:554 msgid "Delete item" msgstr "Suppression d'éléments" +#: pcbnew/pcbtexte.cpp:91 +msgid "TextPCB properties" +msgstr "Propriétés des textes PCB" + +#: pcbnew/pcbtexte.cpp:114 +#: pcbnew/muonde.cpp:351 +#: pcbnew/block.cpp:119 +#: pcbnew/cotation.cpp:110 +#: pcbnew/zones.cpp:984 +#: pcbnew/mirepcb.cpp:103 +#: pcbnew/dialog_edit_module.cpp:119 +#: eeschema/fieldedi.cpp:208 +#: eeschema/sheetlab.cpp:100 +#: eeschema/editpart.cpp:196 +#: eeschema/libedpart.cpp:230 +#: common/displlst.cpp:102 +msgid "Ok" +msgstr "Ok" + +#: pcbnew/pcbtexte.cpp:119 +#: pcbnew/muonde.cpp:355 +#: pcbnew/block.cpp:124 +#: pcbnew/onrightclick.cpp:164 +#: pcbnew/onrightclick.cpp:182 +#: pcbnew/cotation.cpp:115 +#: pcbnew/globaleditpad.cpp:111 +#: pcbnew/mirepcb.cpp:107 +#: pcbnew/swap_layers.cpp:86 +#: pcbnew/pcbpiste.cpp:87 +#: pcbnew/sel_layer.cpp:136 +#: pcbnew/sel_layer.cpp:267 +#: pcbnew/dialog_edit_module.cpp:124 +#: pcbnew/modedit_onclick.cpp:201 +#: pcbnew/modedit_onclick.cpp:233 +#: eeschema/libedit_onrightclick.cpp:68 +#: eeschema/libedit_onrightclick.cpp:83 +#: eeschema/sheetlab.cpp:105 +#: eeschema/optionsframe.cpp:155 +#: eeschema/onrightclick.cpp:113 +#: eeschema/onrightclick.cpp:128 +#: eeschema/options.cpp:114 +#: eeschema/libedpart.cpp:219 +#: gerbview/options.cpp:175 +#: gerbview/options.cpp:305 +#: gerbview/select_layers_to_pcb.cpp:127 +#: gerbview/onrightclick.cpp:40 +#: gerbview/onrightclick.cpp:59 +#: common/get_component_dialog.cpp:121 +#: common/displlst.cpp:106 +msgid "Cancel" +msgstr "Annuler" + +#: pcbnew/pcbtexte.cpp:123 +#: pcbnew/dialog_edit_mod_text.cpp:314 +#: eeschema/sheetlab.cpp:109 +#: common/confirm.cpp:131 +msgid "Text:" +msgstr "Texte:" + +#: pcbnew/pcbtexte.cpp:129 +#: pcbnew/muonde.cpp:370 +#: pcbnew/cotation.cpp:131 +#: pcbnew/mirepcb.cpp:112 +#: eeschema/sheet.cpp:189 +#: eeschema/sheet.cpp:200 +#: eeschema/pinedit-dialog.cpp:273 +#: eeschema/pinedit-dialog.cpp:279 +#: common/wxwineda.cpp:91 +msgid "Size" +msgstr "Taille " + +#: pcbnew/pcbtexte.cpp:133 +#: pcbnew/dialog_edit_mod_text.cpp:204 +#: pcbnew/cotation.cpp:135 +#: pcbnew/affiche.cpp:52 +#: pcbnew/affiche.cpp:118 +#: pcbnew/affiche.cpp:238 +#: pcbnew/affiche.cpp:280 +#: pcbnew/affiche.cpp:313 +#: pcbnew/mirepcb.cpp:117 +#: eeschema/dialog_cmp_graphic_properties.cpp:188 +#: eeschema/affiche.cpp:147 +#: gerbview/affiche.cpp:46 +#: gerbview/affiche.cpp:106 +msgid "Width" +msgstr "Epaisseur" + +#: pcbnew/pcbtexte.cpp:137 +msgid "Position" +msgstr "Position" + +#: pcbnew/pcbtexte.cpp:155 +#: pcbnew/dialog_edit_mod_text.cpp:225 +msgid "Orientation" +msgstr "Orientation" + +#: pcbnew/pcbtexte.cpp:179 +#: pcbnew/muonde.cpp:363 +#: pcbnew/cotation.cpp:119 +#: pcbnew/dialog_edit_module.cpp:245 +#: pcbnew/dialog_edit_module.cpp:291 +#: eeschema/dialog_options.cpp:229 +#: eeschema/editpart.cpp:323 +#: eeschema/options.cpp:177 +#: eeschema/dialog_edit_component_in_schematic.cpp:182 +msgid "Normal" +msgstr "Normal" + +#: pcbnew/pcbtexte.cpp:179 +#: pcbnew/cotation.cpp:119 +#: pcbnew/affiche.cpp:42 +#: pcbnew/affiche.cpp:112 +#: pcbnew/modedit_onclick.cpp:252 +#: gerbview/affiche.cpp:36 +#: share/dialog_print.cpp:178 +msgid "Mirror" +msgstr "Miroir" + +#: pcbnew/pcbtexte.cpp:180 +#: pcbnew/dialog_edit_mod_text.cpp:232 +#: pcbnew/cotation.cpp:120 +#: pcbnew/affiche.cpp:93 +#: pcbnew/dialog_general_options.cpp:264 +#: eeschema/affiche.cpp:85 +#: gerbview/options.cpp:182 +#: gerbview/tool_gerber.cpp:110 +msgid "Display" +msgstr "Affichage" + #: pcbnew/pcbcfg.cpp:67 -#: eeschema/eeconfig.cpp:55 +#: eeschema/eeconfig.cpp:60 #: cvpcb/menucfg.cpp:170 msgid "Read config file" msgstr "Lire config" @@ -226,7 +321,7 @@ msgid "File %s not found" msgstr " fichier %s non trouvé" #: pcbnew/pcbcfg.cpp:151 -#: eeschema/eeconfig.cpp:142 +#: eeschema/eeconfig.cpp:180 #: cvpcb/cfg.cpp:71 #: gerbview/cfg.cpp:99 msgid "Save config file" @@ -462,6 +557,7 @@ msgstr "Module [%s] non trouv #: eeschema/plothpgl.cpp:560 #: cvpcb/genequiv.cpp:42 #: gerbview/export_to_pcbnew.cpp:53 +#: common/hotkeys_basic.cpp:261 msgid "Unable to create " msgstr "Impossible de créer " @@ -558,161 +654,6 @@ msgstr "Ajout de stub (arc)" msgid "Add Polynomial Shape" msgstr "Ajout Forme polynomiale" -#: pcbnew/muonde.cpp:149 -msgid "Gap" -msgstr "Gap" - -#: pcbnew/muonde.cpp:154 -msgid "Stub" -msgstr "Stub" - -#: pcbnew/muonde.cpp:160 -msgid "Arc Stub" -msgstr "Arc Stub" - -#: pcbnew/muonde.cpp:175 -#: common/common.cpp:48 -msgid " (mm):" -msgstr " (mm):" - -#: pcbnew/muonde.cpp:182 -msgid " (inch):" -msgstr " (pouce):" - -#: pcbnew/muonde.cpp:189 -#: pcbnew/muonde.cpp:202 -#: pcbnew/gen_self.h:231 -msgid "Incorrect number, abort" -msgstr "Nombre incorrect, arret" - -#: pcbnew/muonde.cpp:198 -msgid "Angle (0.1deg):" -msgstr "Angle (0.1deg):" - -#: pcbnew/muonde.cpp:333 -msgid "Complex shape" -msgstr "Formr complexe" - -#: pcbnew/muonde.cpp:351 -#: pcbnew/pcbtexte.cpp:113 -#: pcbnew/zones.cpp:981 -#: pcbnew/block.cpp:117 -#: pcbnew/cotation.cpp:109 -#: pcbnew/mirepcb.cpp:102 -#: pcbnew/dialog_edit_module.cpp:119 -#: eeschema/fieldedi.cpp:208 -#: eeschema/sheetlab.cpp:99 -#: eeschema/libedpart.cpp:230 -#: eeschema/editpart.cpp:193 -#: common/displlst.cpp:102 -msgid "Ok" -msgstr "Ok" - -#: pcbnew/muonde.cpp:355 -#: pcbnew/pcbtexte.cpp:118 -#: pcbnew/modedit_onclick.cpp:195 -#: pcbnew/modedit_onclick.cpp:228 -#: pcbnew/block.cpp:122 -#: pcbnew/globaleditpad.cpp:111 -#: pcbnew/cotation.cpp:114 -#: pcbnew/swap_layers.cpp:86 -#: pcbnew/pcbpiste.cpp:87 -#: pcbnew/mirepcb.cpp:106 -#: pcbnew/sel_layer.cpp:136 -#: pcbnew/sel_layer.cpp:267 -#: pcbnew/dialog_edit_module.cpp:124 -#: pcbnew/onrightclick.cpp:153 -#: pcbnew/onrightclick.cpp:172 -#: eeschema/libedit_onrightclick.cpp:68 -#: eeschema/libedit_onrightclick.cpp:83 -#: eeschema/optionsframe.cpp:155 -#: eeschema/onrightclick.cpp:111 -#: eeschema/onrightclick.cpp:125 -#: eeschema/sheetlab.cpp:104 -#: eeschema/options.cpp:114 -#: eeschema/libedpart.cpp:219 -#: gerbview/onrightclick.cpp:39 -#: gerbview/onrightclick.cpp:57 -#: gerbview/options.cpp:175 -#: gerbview/options.cpp:305 -#: gerbview/select_layers_to_pcb.cpp:127 -#: common/get_component_dialog.cpp:121 -#: common/displlst.cpp:106 -msgid "Cancel" -msgstr "Annuler" - -#: pcbnew/muonde.cpp:359 -msgid "Read Shape Descr File" -msgstr "Lire fichier de description de forme" - -#: pcbnew/muonde.cpp:363 -#: pcbnew/pcbtexte.cpp:177 -#: pcbnew/cotation.cpp:118 -#: pcbnew/dialog_edit_module.cpp:237 -#: pcbnew/dialog_edit_module.cpp:279 -#: eeschema/dialog_options.cpp:229 -#: eeschema/options.cpp:177 -#: eeschema/dialog_edit_component_in_schematic.cpp:182 -#: eeschema/editpart.cpp:312 -msgid "Normal" -msgstr "Normal" - -#: pcbnew/muonde.cpp:363 -msgid "Symmetrical" -msgstr "Symétrique" - -#: pcbnew/muonde.cpp:363 -msgid "mirrored" -msgstr "Miroir" - -#: pcbnew/muonde.cpp:365 -msgid "ShapeOption" -msgstr "Option Forme" - -#: pcbnew/muonde.cpp:370 -#: pcbnew/pcbtexte.cpp:128 -#: pcbnew/cotation.cpp:129 -#: pcbnew/mirepcb.cpp:111 -#: eeschema/sheet.cpp:166 -#: eeschema/sheet.cpp:172 -#: eeschema/pinedit-dialog.cpp:273 -#: eeschema/pinedit-dialog.cpp:279 -#: common/wxwineda.cpp:91 -msgid "Size" -msgstr "Taille " - -#: pcbnew/muonde.cpp:432 -msgid "Read descr shape file" -msgstr "Lire fichier de description de forme" - -#: pcbnew/muonde.cpp:448 -msgid "File not found" -msgstr "fichier non trouvé" - -#: pcbnew/muonde.cpp:552 -msgid "Shape has a null size!" -msgstr "La forme a une taille nulle" - -#: pcbnew/muonde.cpp:557 -msgid "Shape has no points!" -msgstr "La forme n'a pas de points" - -#: pcbnew/muonde.cpp:683 -msgid "No pad for this module" -msgstr "Pas de pad dans ce module" - -#: pcbnew/muonde.cpp:688 -msgid "Only one pad for this module" -msgstr "Seulement un pad dans ce module" - -#: pcbnew/muonde.cpp:702 -msgid "Gap (mm):" -msgstr "Gap (mm):" - -#: pcbnew/muonde.cpp:708 -msgid "Gap (inch):" -msgstr "Gap (inch):" - #: pcbnew/gendrill.cpp:146 msgid "Drill tools" msgstr "Outils de perçage" @@ -886,8 +827,8 @@ msgstr "Outils" #: pcbnew/gendrill.cpp:399 #: pcbnew/gendrill.cpp:1008 #: pcbnew/gendrill.cpp:1521 -#: pcbnew/affiche.cpp:208 -#: pcbnew/affiche.cpp:210 +#: pcbnew/affiche.cpp:230 +#: pcbnew/affiche.cpp:235 #: pcbnew/class_pad.cpp:935 msgid "Drill" msgstr "Perçage" @@ -1009,63 +950,6 @@ msgstr "%d Err type %d: %s (net %s) et piste (net %s) @ %d,%d\n" msgid "%d Drc Err: PAD %s (%s) net %s @ %d,%d and PAD %s (%s) net %s @ %d,%d\n" msgstr "%d Err Drc: PAD %s (%s) net %s @ %d,%d et PAD %s (%s) net %s @ %d,%d\n" -#: pcbnew/pcbtexte.cpp:90 -msgid "TextPCB properties" -msgstr "Propriétés des textes PCB" - -#: pcbnew/pcbtexte.cpp:122 -#: pcbnew/dialog_edit_mod_text.cpp:314 -#: eeschema/sheetlab.cpp:108 -#: common/confirm.cpp:131 -msgid "Text:" -msgstr "Texte:" - -#: pcbnew/pcbtexte.cpp:132 -#: pcbnew/dialog_edit_mod_text.cpp:204 -#: pcbnew/cotation.cpp:133 -#: pcbnew/affiche.cpp:50 -#: pcbnew/affiche.cpp:106 -#: pcbnew/affiche.cpp:212 -#: pcbnew/affiche.cpp:248 -#: pcbnew/affiche.cpp:279 -#: pcbnew/mirepcb.cpp:116 -#: eeschema/dialog_cmp_graphic_properties.cpp:188 -#: eeschema/affiche.cpp:147 -#: gerbview/affiche.cpp:46 -#: gerbview/affiche.cpp:106 -msgid "Width" -msgstr "Epaisseur" - -#: pcbnew/pcbtexte.cpp:136 -msgid "Position" -msgstr "Position" - -#: pcbnew/pcbtexte.cpp:153 -#: pcbnew/dialog_edit_mod_text.cpp:225 -msgid "Orientation" -msgstr "Orientation" - -#: pcbnew/pcbtexte.cpp:177 -#: pcbnew/modedit_onclick.cpp:246 -#: pcbnew/cotation.cpp:118 -#: pcbnew/affiche.cpp:40 -#: pcbnew/affiche.cpp:100 -#: gerbview/affiche.cpp:36 -#: share/dialog_print.cpp:178 -msgid "Mirror" -msgstr "Miroir" - -#: pcbnew/pcbtexte.cpp:178 -#: pcbnew/dialog_edit_mod_text.cpp:232 -#: pcbnew/cotation.cpp:119 -#: pcbnew/affiche.cpp:84 -#: pcbnew/dialog_general_options.cpp:264 -#: eeschema/affiche.cpp:85 -#: gerbview/options.cpp:182 -#: gerbview/tool_gerber.cpp:110 -msgid "Display" -msgstr "Affichage" - #: pcbnew/autorout.cpp:52 msgid "Net not selected" msgstr " Net non sélectionné" @@ -1086,6 +970,89 @@ msgstr "Pas de memoire pour autoroutage" msgid "Place Cells" msgstr "Place Cells" +#: pcbnew/muonde.cpp:149 +msgid "Gap" +msgstr "Gap" + +#: pcbnew/muonde.cpp:154 +msgid "Stub" +msgstr "Stub" + +#: pcbnew/muonde.cpp:160 +msgid "Arc Stub" +msgstr "Arc Stub" + +#: pcbnew/muonde.cpp:175 +#: common/common.cpp:48 +msgid " (mm):" +msgstr " (mm):" + +#: pcbnew/muonde.cpp:182 +msgid " (inch):" +msgstr " (pouce):" + +#: pcbnew/muonde.cpp:189 +#: pcbnew/muonde.cpp:202 +#: pcbnew/gen_self.h:231 +msgid "Incorrect number, abort" +msgstr "Nombre incorrect, arret" + +#: pcbnew/muonde.cpp:198 +msgid "Angle (0.1deg):" +msgstr "Angle (0.1deg):" + +#: pcbnew/muonde.cpp:333 +msgid "Complex shape" +msgstr "Formr complexe" + +#: pcbnew/muonde.cpp:359 +msgid "Read Shape Descr File" +msgstr "Lire fichier de description de forme" + +#: pcbnew/muonde.cpp:363 +msgid "Symmetrical" +msgstr "Symétrique" + +#: pcbnew/muonde.cpp:363 +msgid "mirrored" +msgstr "Miroir" + +#: pcbnew/muonde.cpp:365 +msgid "ShapeOption" +msgstr "Option Forme" + +#: pcbnew/muonde.cpp:432 +msgid "Read descr shape file" +msgstr "Lire fichier de description de forme" + +#: pcbnew/muonde.cpp:448 +msgid "File not found" +msgstr "fichier non trouvé" + +#: pcbnew/muonde.cpp:552 +msgid "Shape has a null size!" +msgstr "La forme a une taille nulle" + +#: pcbnew/muonde.cpp:557 +msgid "Shape has no points!" +msgstr "La forme n'a pas de points" + +#: pcbnew/muonde.cpp:683 +msgid "No pad for this module" +msgstr "Pas de pad dans ce module" + +#: pcbnew/muonde.cpp:688 +msgid "Only one pad for this module" +msgstr "Seulement un pad dans ce module" + +#: pcbnew/muonde.cpp:702 +msgid "Gap (mm):" +msgstr "Gap (mm):" + +#: pcbnew/muonde.cpp:708 +msgid "Gap (inch):" +msgstr "Gap (inch):" + #: pcbnew/files.cpp:57 msgid "Recovery file " msgstr "Fichier de secours " @@ -1099,9 +1066,12 @@ msgid "Board Modified: Continue ?" msgstr "Circuit imprimé modifié, Continuer ?" #: pcbnew/files.cpp:161 +msgid "Load board files:" +msgstr "Charger Fichiers C.I.:" + #: pcbnew/files.cpp:263 -msgid "Board files:" -msgstr "Fichiers C.I.:" +msgid "Save board files:" +msgstr "Saver Fichiers C.I.:" #: pcbnew/files.cpp:299 msgid "Warning: unable to create bakfile " @@ -1129,12 +1099,86 @@ msgstr "Filtre pour nets:" msgid "List Nets" msgstr "Liste équipots" +#: pcbnew/controle.cpp:55 +#, c-format +msgid "Locate module %s %s" +msgstr "Module localisé %s %s" + +#: pcbnew/controle.cpp:108 +#, c-format +msgid "module %s not found" +msgstr "module %s non trouvé" + +#: pcbnew/controle.cpp:110 +#, c-format +msgid "Pin %s (module %s) not found" +msgstr "Pin %s (module %s) non trouvée" + +#: pcbnew/controle.cpp:112 +#, c-format +msgid "Locate Pin %s (module %s)" +msgstr "Pin localisée %s (module %s)" + +#: pcbnew/modedit.cpp:181 +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:182 +msgid "" +"\n" +"Cannot update the footprint" +msgstr "" +"\n" +"Ne peut mettre à jour le module" + +#: pcbnew/modedit.cpp:190 +msgid "A footprint source was found on the main board" +msgstr "Un module source a été trouvé sur le PCB principal" + +#: pcbnew/modedit.cpp:191 +msgid "" +"\n" +"Cannot insert this footprint" +msgstr "" +"\n" +"Ne peut insérer cd module" + +#: pcbnew/modedit.cpp:313 +msgid "Add Pad" +msgstr "Ajouter Pastilles" + +#: pcbnew/modedit.cpp:316 +#: pcbnew/globaleditpad.cpp:96 +#: pcbnew/menubarpcb.cpp:205 +#: pcbnew/menubarmodedit.cpp:45 +#: pcbnew/tool_modedit.cpp:125 +msgid "Pad Settings" +msgstr "Caract pads" + +#: pcbnew/modedit.cpp:326 +#: eeschema/schedit.cpp:297 +msgid "Add Drawing" +msgstr "Ajout d'éléments graphiques" + +#: pcbnew/modedit.cpp:330 +#: pcbnew/tool_modedit.cpp:175 +msgid "Place anchor" +msgstr "Place Ancre" + +#: pcbnew/edgemod.cpp:229 +msgid "New Width (1/10000\"):" +msgstr "Novelle largeur (1/10000\"):" + +#: pcbnew/edgemod.cpp:236 +msgid "Incorrect number, no change" +msgstr "Nombre incorrect, pas de changement" + #: pcbnew/modules.cpp:81 msgid "Footprint name:" msgstr "Nom Module: " #: pcbnew/modules.cpp:281 -#: pcbnew/onrightclick.cpp:640 +#: pcbnew/onrightclick.cpp:667 msgid "Delete Module" msgstr "Supprimer Module" @@ -1194,9 +1238,9 @@ msgstr "Largeur Texte Module" #: pcbnew/set_grid.cpp:171 #: pcbnew/dialog_pad_edit.cpp:221 #: pcbnew/dialog_general_options.cpp:364 +#: eeschema/sheet.cpp:221 #: eeschema/symbtext.cpp:174 #: eeschema/dialog_options.cpp:274 -#: eeschema/sheet.cpp:187 #: eeschema/dialog_edit_component_in_lib.cpp:218 #: eeschema/dialog_edit_label.cpp:176 #: eeschema/dialog_create_component.cpp:195 @@ -1211,15 +1255,15 @@ msgstr "&OK" #: pcbnew/dialog_graphic_items_options.cpp:265 #: pcbnew/dialog_edit_mod_text.cpp:217 #: pcbnew/dialog_initpcb.cpp:164 -#: pcbnew/zones.cpp:216 #: pcbnew/dialog_track_options.cpp:185 #: pcbnew/dialog_display_options.cpp:284 +#: pcbnew/zones.cpp:216 #: pcbnew/set_grid.cpp:176 #: pcbnew/dialog_pad_edit.cpp:225 #: pcbnew/dialog_general_options.cpp:368 +#: eeschema/sheet.cpp:216 #: eeschema/symbtext.cpp:178 #: eeschema/dialog_options.cpp:278 -#: eeschema/sheet.cpp:183 #: eeschema/dialog_edit_component_in_lib.cpp:214 #: eeschema/dialog_create_component.cpp:200 #: eeschema/dialog_cmp_graphic_properties.cpp:182 @@ -1412,7 +1456,7 @@ msgid "Enable Auto Del Track" msgstr "Autoriser l'effacement automatique des pistes" #: pcbnew/tool_pcb.cpp:352 -#: pcbnew/pcbframe.cpp:384 +#: pcbnew/pcbframe.cpp:428 #: pcbnew/set_color.cpp:387 msgid "Show Zones" msgstr "Monter Zones" @@ -1427,7 +1471,7 @@ msgid "Show Tracks Sketch" msgstr "Afficher pistes en contour" #: pcbnew/tool_pcb.cpp:365 -#: pcbnew/pcbframe.cpp:399 +#: pcbnew/pcbframe.cpp:449 msgid "Hight Contrast Mode Display" msgstr "Mode d'affichage Haut Contraste" @@ -1511,7 +1555,7 @@ msgstr "Creation de formes polynomiales (pour applications micro-ondes)" #: pcbnew/tool_pcb.cpp:558 #: pcbnew/tool_modedit.cpp:273 #: eeschema/plotps.cpp:168 -#: share/zoom.cpp:353 +#: share/zoom.cpp:369 msgid "Auto" msgstr "Auto" @@ -1552,12 +1596,21 @@ msgstr "Larg. piste: %s Diam Vias : %s" msgid "Drc error, cancelled" msgstr "Erreur DRC, annulation" +#: pcbnew/hotkeys.cpp:263 +#, c-format +msgid "Footprint %s found, but locked" +msgstr "Module %s trouvé, mais verrouillé" + +#: pcbnew/hotkeys.cpp:409 +msgid "Delete module?" +msgstr "Effacer Module?" + #: pcbnew/dialog_netlist.cpp:133 -#: eeschema/edit_component_in_schematic.cpp:682 -#: eeschema/onrightclick.cpp:288 +#: eeschema/editpart.cpp:741 +#: eeschema/onrightclick.cpp:303 #: eeschema/dialog_create_component.cpp:164 -#: eeschema/editpart.cpp:703 #: eeschema/eelayer.cpp:99 +#: eeschema/edit_component_in_schematic.cpp:744 msgid "Reference" msgstr "Référence" @@ -1575,9 +1628,9 @@ msgid "Keep" msgstr "Garder" #: pcbnew/dialog_netlist.cpp:141 -#: pcbnew/onrightclick.cpp:575 -#: pcbnew/onrightclick.cpp:684 -#: pcbnew/onrightclick.cpp:757 +#: pcbnew/onrightclick.cpp:597 +#: pcbnew/onrightclick.cpp:714 +#: pcbnew/onrightclick.cpp:787 #: eeschema/fieldedi.cpp:311 #: eeschema/libedpart.cpp:279 #: eeschema/edit_component_in_lib.cpp:217 @@ -1622,25 +1675,130 @@ msgstr "Test Modules" msgid "Compile" msgstr "Compile" -#: pcbnew/controle.cpp:53 -#, c-format -msgid "Locate module %s %s" -msgstr "Module localisé %s %s" +#: pcbnew/block.cpp:130 +msgid "Include Modules" +msgstr "Inclure Modules" -#: pcbnew/controle.cpp:108 -#, c-format -msgid "module %s not found" -msgstr "module %s non trouvé" +#: pcbnew/block.cpp:134 +msgid "Include tracks" +msgstr "Inclure Pistes" -#: pcbnew/controle.cpp:110 -#, c-format -msgid "Pin %s (module %s) not found" -msgstr "Pin %s (module %s) non trouvée" +#: pcbnew/block.cpp:138 +#: pcbnew/dialog_drc.cpp:165 +msgid "Include zones" +msgstr "Inclure zones" -#: pcbnew/controle.cpp:112 -#, c-format -msgid "Locate Pin %s (module %s)" -msgstr "Pin localisée %s (module %s)" +#: pcbnew/block.cpp:143 +msgid "Include Text on copper layers" +msgstr "Inclure Texte sur couches cuivre" + +#: pcbnew/block.cpp:147 +msgid "Include drawings" +msgstr "Inclure tracés" + +#: pcbnew/block.cpp:151 +msgid "Include egde layer" +msgstr "Inclure couche Edge" + +#: pcbnew/block.cpp:436 +msgid "Delete Block" +msgstr "Effacer Bloc" + +#: pcbnew/block.cpp:447 +msgid "Delete Footprints" +msgstr "Suppression modules" + +#: pcbnew/block.cpp:467 +msgid "Delete tracks" +msgstr "Suppression Pistes" + +#: pcbnew/block.cpp:486 +msgid "Delete draw layers" +msgstr "Suppression couches sessin" + +#: pcbnew/block.cpp:551 +msgid "Delete zones" +msgstr "SuppressionZones" + +#: pcbnew/block.cpp:585 +msgid "Rotate Block" +msgstr "Rotation Bloc" + +#: pcbnew/block.cpp:600 +msgid "Footprint rotation" +msgstr "Rotation modules" + +#: pcbnew/block.cpp:634 +msgid "Track rotation" +msgstr "Rotation pistes" + +#: pcbnew/block.cpp:655 +msgid "Zone rotation" +msgstr "Rotation Zones" + +#: pcbnew/block.cpp:676 +msgid "Draw layers rotation" +msgstr "Rotation couches dessin" + +#: pcbnew/block.cpp:795 +msgid "Block mirroring" +msgstr "Bloc Miroir" + +#: pcbnew/block.cpp:810 +msgid "Footprint mirroring" +msgstr "Miroir modules" + +#: pcbnew/block.cpp:843 +msgid "Track mirroring" +msgstr "Miroir Pistes" + +#: pcbnew/block.cpp:869 +msgid "Zone mirroring" +msgstr "Miroir zone" + +#: pcbnew/block.cpp:891 +msgid "Draw layers mirroring" +msgstr "Draw layers mirroring" + +#: pcbnew/block.cpp:1018 +msgid "Move Block" +msgstr "Déplacer Bloc" + +#: pcbnew/block.cpp:1030 +msgid "Move footprints" +msgstr "Déplacement modules" + +#: pcbnew/block.cpp:1063 +msgid "Move tracks" +msgstr "Déplacement pistes" + +#: pcbnew/block.cpp:1084 +msgid "Move zones" +msgstr "Déplacement zones" + +#: pcbnew/block.cpp:1105 +msgid "Move draw layers" +msgstr "Déplacement couches dessin" + +#: pcbnew/block.cpp:1210 +msgid "Copy Block" +msgstr "Copie Bloc" + +#: pcbnew/block.cpp:1222 +msgid "Module copy" +msgstr "Copie Modules" + +#: pcbnew/block.cpp:1261 +msgid "Track copy" +msgstr "Copie Piste" + +#: pcbnew/block.cpp:1284 +msgid "Zone copy" +msgstr "Copie Zone" + +#: pcbnew/block.cpp:1308 +msgid "Draw layers copy" +msgstr "Cpoie des couches dessin" #: pcbnew/dialog_edit_mod_text.cpp:156 #, c-format @@ -1684,8 +1842,8 @@ msgid "no show" msgstr "Invisible" #: pcbnew/dialog_edit_mod_text.cpp:313 -#: eeschema/edit_component_in_schematic.cpp:190 #: eeschema/edit_component_in_lib.cpp:445 +#: eeschema/edit_component_in_schematic.cpp:210 msgid "Value:" msgstr "Valeur:" @@ -1737,265 +1895,500 @@ msgstr "Inclure pistes autorout msgid "Include Locked Tracks" msgstr "Inclure pistes verrouillées" -#: pcbnew/zones.cpp:152 -#: pcbnew/zones.cpp:153 -#: pcbnew/zones.cpp:154 -#: pcbnew/zones.cpp:155 -msgid "0.00000" -msgstr "0.00000" +#: pcbnew/automove.cpp:208 +#: pcbnew/xchgmod.cpp:573 +msgid "No Modules!" +msgstr "Pas de Modules" -#: pcbnew/zones.cpp:159 -msgid "Grid size:" -msgstr "Dim Grille" +#: pcbnew/automove.cpp:212 +msgid "Move Modules ?" +msgstr "Déplacer Modules ?" -#: pcbnew/zones.cpp:164 -msgid "Zone clearance value (mm):" -msgstr "Valeur isolation zone (mm):" +#: pcbnew/automove.cpp:221 +msgid "Autoplace modules: No boad edges detected, unable to place modules" +msgstr "Autoplace modules: pas de contours sur pcb, impossible de placer les modules" -#: pcbnew/zones.cpp:181 -msgid "Include Pads" -msgstr "Inclure Pads" - -#: pcbnew/zones.cpp:182 -msgid "Thermal" -msgstr "Thermique" - -#: pcbnew/zones.cpp:183 -msgid "Exclude Pads" -msgstr "Exclure Pads" - -#: pcbnew/zones.cpp:187 -msgid "Pad options:" -msgstr "Options pads" - -#: pcbnew/zones.cpp:192 -#: eeschema/dialog_options.cpp:257 -#: eeschema/options.cpp:194 -msgid "Any" -msgstr "Tout" - -#: pcbnew/zones.cpp:193 -msgid "H , V and 45 deg" -msgstr "H, V et 45 deg" - -#: pcbnew/zones.cpp:197 -msgid "Zone edges orient:" -msgstr "Direction contours zone:" - -#: pcbnew/zones.cpp:209 -msgid "Fill" -msgstr "Remplissage" - -#: pcbnew/zones.cpp:222 -msgid "Update Options" -msgstr "Maj Options" - -#: pcbnew/zones.cpp:230 -msgid "Zone clearance value:" -msgstr "Valeur isolation zone:" - -#: pcbnew/zones.cpp:233 -msgid "Grid :" -msgstr "Grille:" - -#: pcbnew/zones.cpp:398 -msgid "New zone segment width: " -msgstr "Nouvelle largeur des segments zone:" - -#: pcbnew/zones.cpp:598 -msgid "Zone: No net selected" -msgstr "Zone: Net non sélectionné" - -#: pcbnew/zones.cpp:643 -msgid "Delete Current Zone Edges" -msgstr "Effacer contour zone courant" - -#: pcbnew/zones.cpp:911 -msgid "No Net" -msgstr "No Net" - -#: pcbnew/zones.cpp:913 -#: pcbnew/affiche.cpp:160 -msgid "NetName" -msgstr "NetName" +#: pcbnew/automove.cpp:349 +#, c-format +msgid "Ok to set module orientation to %d degrees ?" +msgstr "Ok pour orientation module à %d degrés ?" #: pcbnew/export_gencad.cpp:66 msgid "GenCAD file:" msgstr "Fichier GenCAD:" -#: pcbnew/hotkeys.cpp:174 +#: pcbnew/onrightclick.cpp:94 #, c-format -msgid "Footprint %s found, but locked" -msgstr "Module %s trouvé, mais verrouillé" +msgid "Track %.1f" +msgstr "Piste %.1f" -#: pcbnew/hotkeys.cpp:327 -msgid "Delete module?" -msgstr "Effacer Module?" +#: pcbnew/onrightclick.cpp:96 +#, c-format +msgid "Track %.3f" +msgstr "Piste %.3f" -#: pcbnew/modedit_onclick.cpp:199 -#: pcbnew/onrightclick.cpp:158 +#: pcbnew/onrightclick.cpp:112 +#, c-format +msgid "Via %.1f" +msgstr "Via %.1f" + +#: pcbnew/onrightclick.cpp:114 +#, c-format +msgid "Via %.3f" +msgstr "Via %.3f" + +#: pcbnew/onrightclick.cpp:169 +#: pcbnew/modedit_onclick.cpp:205 #: eeschema/libedit_onrightclick.cpp:73 -#: eeschema/onrightclick.cpp:115 -#: gerbview/onrightclick.cpp:40 +#: eeschema/onrightclick.cpp:117 +#: gerbview/onrightclick.cpp:42 msgid "End Tool" msgstr "Fin Outil" -#: pcbnew/modedit_onclick.cpp:210 -#: pcbnew/onrightclick.cpp:467 +#: pcbnew/onrightclick.cpp:203 +msgid "Get and Move Footprint" +msgstr "Sel et Dépl.t module" + +#: pcbnew/onrightclick.cpp:218 +msgid "Lock Module" +msgstr "Verrouiller Modules" + +#: pcbnew/onrightclick.cpp:220 +msgid "Free Module" +msgstr "Libère Module" + +#: pcbnew/onrightclick.cpp:224 +msgid "Auto place Module" +msgstr "Auto place Module" + +#: pcbnew/onrightclick.cpp:230 +msgid "Autoroute" +msgstr "Autoroute" + +#: pcbnew/onrightclick.cpp:249 +msgid "Autoroute Pad" +msgstr "Autoroute Pad" + +#: pcbnew/onrightclick.cpp:250 +msgid "Autoroute Net" +msgstr "Autoroute Net" + +#: pcbnew/onrightclick.cpp:272 +msgid "Move Drawing" +msgstr "Déplace Tracé" + +#: pcbnew/onrightclick.cpp:277 +msgid "End Drawing" +msgstr "Fin tracé" + +#: pcbnew/onrightclick.cpp:279 +msgid "Edit Drawing" +msgstr "Edit Tracé" + +#: pcbnew/onrightclick.cpp:280 +msgid "Delete Drawing" +msgstr "Supprimer Tracé" + +#: pcbnew/onrightclick.cpp:287 +msgid "End edge zone" +msgstr "Fin contour Zone" + +#: pcbnew/onrightclick.cpp:290 +msgid "Delete edge zone" +msgstr "Supprimer Contour Zone" + +#: pcbnew/onrightclick.cpp:306 +msgid "Edit Zone" +msgstr "Editer Zone" + +#: pcbnew/onrightclick.cpp:308 +msgid "Delete Zone" +msgstr "Supprimer Zone" + +#: pcbnew/onrightclick.cpp:313 +msgid "Delete Marker" +msgstr "Effacer Marqueur" + +#: pcbnew/onrightclick.cpp:320 +msgid "Edit Cotation" +msgstr "Editer Cotation" + +#: pcbnew/onrightclick.cpp:323 +msgid "Delete Cotation" +msgstr "Supprimer Cotation" + +#: pcbnew/onrightclick.cpp:330 +msgid "Move Mire" +msgstr "Déplace Mire" + +#: pcbnew/onrightclick.cpp:333 +msgid "Edit Mire" +msgstr "Edit Mire" + +#: pcbnew/onrightclick.cpp:335 +msgid "Delete Mire" +msgstr "Supprimer Mire" + +#: pcbnew/onrightclick.cpp:366 +msgid "Fill zone" +msgstr "Remplir zone" + +#: pcbnew/onrightclick.cpp:374 +msgid "Select Net" +msgstr "Sélection Net" + +#: pcbnew/onrightclick.cpp:379 +msgid "Delete Zone Limit" +msgstr "Supprimer Limite de Zone" + +#: pcbnew/onrightclick.cpp:384 +#: pcbnew/onrightclick.cpp:395 +#: pcbnew/onrightclick.cpp:408 +#: pcbnew/onrightclick.cpp:468 +msgid "Select Working Layer" +msgstr "Sélection de la couche de travail" + +#: pcbnew/onrightclick.cpp:393 +#: pcbnew/onrightclick.cpp:465 +msgid "Select Track Width" +msgstr "Sélection Epais. Piste" + +#: pcbnew/onrightclick.cpp:397 +msgid "Select layer pair for vias" +msgstr "Selection couple de couches pour Vias" + +#: pcbnew/onrightclick.cpp:414 +msgid "Footprint documentation" +msgstr "Documentation des modules" + +#: pcbnew/onrightclick.cpp:424 +msgid "Glob Move and Place" +msgstr "Move et Place Globaux" + +#: pcbnew/onrightclick.cpp:426 +msgid "Free All Modules" +msgstr "Libère tous les Modules" + +#: pcbnew/onrightclick.cpp:428 +msgid "Fixe All Modules" +msgstr "Verrouille tous les Modules" + +#: pcbnew/onrightclick.cpp:431 +msgid "Move All Modules" +msgstr "Déplace tous les Modules" + +#: pcbnew/onrightclick.cpp:432 +msgid "Move New Modules" +msgstr "Déplace nouveaux Modules" + +#: pcbnew/onrightclick.cpp:434 +msgid "Autoplace All Modules" +msgstr "Autoplace Tous Modules" + +#: pcbnew/onrightclick.cpp:435 +msgid "Autoplace New Modules" +msgstr "AutoPlace nouveaux Modules" + +#: pcbnew/onrightclick.cpp:436 +msgid "Autoplace Next Module" +msgstr "Autoplace Module suivant" + +#: pcbnew/onrightclick.cpp:439 +msgid "Orient All Modules" +msgstr "Oriente Tous Modules" + +#: pcbnew/onrightclick.cpp:445 +msgid "Global Autoroute" +msgstr "Autoroutage global" + +#: pcbnew/onrightclick.cpp:447 +msgid "Select layer pair" +msgstr "Selection couple de couches" + +#: pcbnew/onrightclick.cpp:449 +msgid "Autoroute All Modules" +msgstr "Autoroute Tous Modules" + +#: pcbnew/onrightclick.cpp:451 +msgid "Reset Unrouted" +msgstr "Réinit Non routés" + +#: pcbnew/onrightclick.cpp:456 +msgid "Global AutoRouter" +msgstr "Autorouteur Global" + +#: pcbnew/onrightclick.cpp:458 +msgid "Read Global AutoRouter Data" +msgstr "Lire Données de L'autorouteur global" + +#: pcbnew/onrightclick.cpp:485 +#: pcbnew/modedit_onclick.cpp:215 #: eeschema/libedit_onrightclick.cpp:251 -#: eeschema/onrightclick.cpp:528 -#: gerbview/onrightclick.cpp:50 +#: eeschema/onrightclick.cpp:567 +#: gerbview/onrightclick.cpp:51 msgid "Cancel Block" msgstr "Annuler Bloc" -#: pcbnew/modedit_onclick.cpp:212 -#: pcbnew/onrightclick.cpp:469 -#: gerbview/onrightclick.cpp:51 +#: pcbnew/onrightclick.cpp:487 +#: pcbnew/modedit_onclick.cpp:217 +#: gerbview/onrightclick.cpp:52 msgid "Zoom Block (Midd butt drag)" msgstr "Zoom Bloc (drag+bouton milieu)" -#: pcbnew/modedit_onclick.cpp:215 -#: pcbnew/onrightclick.cpp:472 +#: pcbnew/onrightclick.cpp:490 +#: pcbnew/modedit_onclick.cpp:220 #: eeschema/libedit_onrightclick.cpp:259 -#: eeschema/onrightclick.cpp:536 -#: gerbview/onrightclick.cpp:53 +#: eeschema/onrightclick.cpp:575 +#: gerbview/onrightclick.cpp:54 msgid "Place Block" msgstr "Place Bloc" -#: pcbnew/modedit_onclick.cpp:217 -#: pcbnew/onrightclick.cpp:474 +#: pcbnew/onrightclick.cpp:492 +#: pcbnew/modedit_onclick.cpp:222 #: eeschema/libedit_onrightclick.cpp:265 -#: eeschema/onrightclick.cpp:545 +#: eeschema/onrightclick.cpp:584 msgid "Copy Block (shift + drag mouse)" msgstr "Copie Bloc (shift + drag mouse)" -#: pcbnew/modedit_onclick.cpp:219 -msgid "Mirror Block (alt + drag mouse)" -msgstr "Bloc Miroir (alt + drag mouse)" +#: pcbnew/onrightclick.cpp:494 +msgid "Flip Block (alt + drag mouse)" +msgstr "Inversion Bloc (alt + drag mouse)" -#: pcbnew/modedit_onclick.cpp:221 -#: pcbnew/onrightclick.cpp:478 +#: pcbnew/onrightclick.cpp:496 +#: pcbnew/modedit_onclick.cpp:226 msgid "Rotate Block (ctrl + drag mouse)" msgstr "Rotation Bloc (ctrl + drag mouse)" -#: pcbnew/modedit_onclick.cpp:223 -#: pcbnew/onrightclick.cpp:480 +#: pcbnew/onrightclick.cpp:498 +#: pcbnew/modedit_onclick.cpp:228 msgid "Delete Block (shift+ctrl + drag mouse)" msgstr "Effacement Bloc (shift+ctrl + drag mouse)" -#: pcbnew/modedit_onclick.cpp:244 -#: pcbnew/onrightclick.cpp:679 -#: pcbnew/onrightclick.cpp:751 -msgid "Rotate" -msgstr "Rotation" +#: pcbnew/onrightclick.cpp:516 +msgid "Drag Via" +msgstr "Drag Via" -#: pcbnew/modedit_onclick.cpp:248 -msgid "Scale" -msgstr "Echelle" +#: pcbnew/onrightclick.cpp:519 +msgid "Edit Via" +msgstr "Edit Via" -#: pcbnew/modedit_onclick.cpp:249 -msgid "Scale X" -msgstr "Echelle X" +#: pcbnew/onrightclick.cpp:521 +msgid "Set via hole to Default" +msgstr "Ajuste perçage via à défaut" -#: pcbnew/modedit_onclick.cpp:250 -msgid "Scale Y" -msgstr "Echelle Y" +#: pcbnew/onrightclick.cpp:523 +msgid "Set via hole to alt value" +msgstr "Ajuste perçage via à valeur alternative" -#: pcbnew/modedit_onclick.cpp:253 -msgid "Edit Module" -msgstr "Edit Module" +#: pcbnew/onrightclick.cpp:525 +msgid "Set the via hole alt value" +msgstr "Ajuste la valeur alt. perçage via" -#: pcbnew/modedit_onclick.cpp:256 -msgid "Transform Module" -msgstr "Transforme Module" +#: pcbnew/onrightclick.cpp:527 +msgid "Export Via hole to alt value" +msgstr "Exporte perçage via à valeur alt." -#: pcbnew/modedit_onclick.cpp:264 -msgid "Move Pad" -msgstr "Déplace Pad" +#: pcbnew/onrightclick.cpp:529 +msgid "Export via hole to others id vias" +msgstr "Exporte perçage via aux autres semblables." -#: pcbnew/modedit_onclick.cpp:266 -#: pcbnew/onrightclick.cpp:709 -msgid "Edit Pad" -msgstr "Edit Pad" +#: pcbnew/onrightclick.cpp:531 +msgid "Set ALL via holes to default" +msgstr "Ajuste perçage TOUTES vias au défaut" -#: pcbnew/modedit_onclick.cpp:268 -#: pcbnew/onrightclick.cpp:712 -msgid "New Pad Settings" -msgstr "Nouvelles Caract. Pads" +#: pcbnew/onrightclick.cpp:544 +msgid "Move Node" +msgstr "Déplace Noeud" -#: pcbnew/modedit_onclick.cpp:270 -#: pcbnew/onrightclick.cpp:714 -msgid "Export Pad Settings" -msgstr "Exporte Caract. Pads" +#: pcbnew/onrightclick.cpp:549 +msgid "Drag Segments, keep slope" +msgstr "Drag Segments, garder direction" -#: pcbnew/modedit_onclick.cpp:272 -msgid "delete Pad" -msgstr "Supprimer Pad" +#: pcbnew/onrightclick.cpp:551 +msgid "Drag Segment" +msgstr "Drag Segment" -#: pcbnew/modedit_onclick.cpp:277 -#: pcbnew/onrightclick.cpp:719 -msgid "Global Pad Settings" -msgstr "Edition Globale des pads" +#: pcbnew/onrightclick.cpp:554 +msgid "Move Segment" +msgstr "Déplace Segment" -#: pcbnew/modedit_onclick.cpp:285 -msgid "Move Text Mod." -msgstr "Move Texte Mod." +#: pcbnew/onrightclick.cpp:557 +msgid "Break Track" +msgstr "Briser piste" -#: pcbnew/modedit_onclick.cpp:288 -msgid "Rotate Text Mod." -msgstr "Rot. Texte Mod." +#: pcbnew/onrightclick.cpp:564 +msgid "Place Node" +msgstr "Place noeud" -#: pcbnew/modedit_onclick.cpp:290 -msgid "Edit Text Mod." -msgstr "Edit Texte Mod." +#: pcbnew/onrightclick.cpp:570 +msgid "End Track (end)" +msgstr "Terminer Pistes (end)" -#: pcbnew/modedit_onclick.cpp:293 -msgid "Delete Text Mod." -msgstr "Supprimer Texte Mod." +#: pcbnew/onrightclick.cpp:571 +msgid "Place Via (V)" +msgstr "Place Via (V)" -#: pcbnew/modedit_onclick.cpp:300 -msgid "End edge" -msgstr "Fin contour" +#: pcbnew/onrightclick.cpp:577 +msgid "Change Width" +msgstr "Change Largeur" -#: pcbnew/modedit_onclick.cpp:303 -msgid "Move edge" -msgstr "Déplace contour" +#: pcbnew/onrightclick.cpp:579 +msgid "Edit Segment" +msgstr "Edit Segment" -#: pcbnew/modedit_onclick.cpp:306 -msgid "Place edge" -msgstr "Place contour" +#: pcbnew/onrightclick.cpp:583 +msgid "Edit Track" +msgstr "Editer Piste" -#: pcbnew/modedit_onclick.cpp:309 -#: pcbnew/onrightclick.cpp:634 -#: pcbnew/onrightclick.cpp:681 -#: pcbnew/onrightclick.cpp:753 -#: eeschema/onrightclick.cpp:283 +#: pcbnew/onrightclick.cpp:585 +msgid "Edit Net" +msgstr "Edit Net" + +#: pcbnew/onrightclick.cpp:587 +msgid "Edit ALL Tracks and Vias" +msgstr "Editer TOUTES Pistes et Vias" + +#: pcbnew/onrightclick.cpp:589 +msgid "Edit ALL Vias (no track)" +msgstr "Editer TOUTES Vias (pas les pistes)" + +#: pcbnew/onrightclick.cpp:591 +msgid "Edit ALL Tracks (no via)" +msgstr "Editer TOUTES Pistes (pas les vias)" + +#: pcbnew/onrightclick.cpp:599 +msgid "Delete Segment (backspace)" +msgstr "Supprimer Segment (backspace)" + +#: pcbnew/onrightclick.cpp:603 +msgid "Delete Track (delete)" +msgstr "Supprimer Piste (Suppr)" + +#: pcbnew/onrightclick.cpp:605 +msgid "Delete Net" +msgstr "Supprimer Net" + +#: pcbnew/onrightclick.cpp:610 +msgid "Set Flags" +msgstr "Ajust. Flags" + +#: pcbnew/onrightclick.cpp:611 +msgid "Locked: Yes" +msgstr "Verrou: Oui" + +#: pcbnew/onrightclick.cpp:612 +msgid "Locked: No" +msgstr "Verrou: Non" + +#: pcbnew/onrightclick.cpp:622 +msgid "Track Locked: Yes" +msgstr "Piste verrouillée: Oui" + +#: pcbnew/onrightclick.cpp:623 +msgid "Track Locked: No" +msgstr "Piste verrouillée: Non" + +#: pcbnew/onrightclick.cpp:625 +msgid "Net Locked: Yes" +msgstr "Net verrouillé: Oui" + +#: pcbnew/onrightclick.cpp:626 +msgid "Net Locked: No" +msgstr "Net verrouillé: Non" + +#: pcbnew/onrightclick.cpp:642 +#: eeschema/component_class.cpp:51 +msgid "Footprint" +msgstr "Module" + +#: pcbnew/onrightclick.cpp:650 +msgid "Move (M)" +msgstr "Move (M)" + +#: pcbnew/onrightclick.cpp:652 +msgid "Drag (G)" +msgstr "Drag (G)" + +#: pcbnew/onrightclick.cpp:655 +msgid "Rotate + (R)" +msgstr "Rotation + (R)" + +#: pcbnew/onrightclick.cpp:657 +#: eeschema/onrightclick.cpp:289 +msgid "Rotate -" +msgstr "Rotation -" + +#: pcbnew/onrightclick.cpp:659 +msgid "Flip (S)" +msgstr "Change face (S)" + +#: pcbnew/onrightclick.cpp:661 +#: pcbnew/onrightclick.cpp:710 +#: pcbnew/onrightclick.cpp:783 +#: pcbnew/modedit_onclick.cpp:315 +#: eeschema/onrightclick.cpp:298 msgid "Edit" msgstr "Editer" -#: pcbnew/modedit_onclick.cpp:311 -msgid "Edit Width (Current)" -msgstr "Edit Epaisseur (Courant)" +#: pcbnew/onrightclick.cpp:686 +msgid "Footprint ref" +msgstr "Référence Module" -#: pcbnew/modedit_onclick.cpp:313 -msgid "Edit Width (All)" -msgstr "Edit Epaisseur (Tous)" +#: pcbnew/onrightclick.cpp:690 +msgid "Footprint value" +msgstr "Valeur Module" -#: pcbnew/modedit_onclick.cpp:315 -msgid "Edit Layer (Current)" -msgstr "Edit Couche (Courant)" +#: pcbnew/onrightclick.cpp:694 +msgid "Footprint text" +msgstr "Texte Module" -#: pcbnew/modedit_onclick.cpp:317 -msgid "Edit Layer (All)" -msgstr "Edit Couche (Tous)" +#: pcbnew/onrightclick.cpp:705 +#: pcbnew/onrightclick.cpp:735 +#: pcbnew/onrightclick.cpp:778 +msgid "Move" +msgstr "Move" -#: pcbnew/modedit_onclick.cpp:319 -msgid "Delete edge" -msgstr "Effacement contour" +#: pcbnew/onrightclick.cpp:708 +#: pcbnew/onrightclick.cpp:781 +#: pcbnew/modedit_onclick.cpp:250 +msgid "Rotate" +msgstr "Rotation" -#: pcbnew/modedit_onclick.cpp:359 -msgid "Set Width" -msgstr "Ajuste Epaiss" +#: pcbnew/onrightclick.cpp:727 +msgid "Pad" +msgstr "Pad" + +#: pcbnew/onrightclick.cpp:737 +msgid "Drag" +msgstr "Drag" + +#: pcbnew/onrightclick.cpp:739 +#: pcbnew/modedit_onclick.cpp:272 +msgid "Edit Pad" +msgstr "Edit Pad" + +#: pcbnew/onrightclick.cpp:742 +#: pcbnew/modedit_onclick.cpp:274 +msgid "New Pad Settings" +msgstr "Nouvelles Caract. Pads" + +#: pcbnew/onrightclick.cpp:744 +#: pcbnew/modedit_onclick.cpp:276 +msgid "Export Pad Settings" +msgstr "Exporte Caract. Pads" + +#: pcbnew/onrightclick.cpp:749 +#: pcbnew/modedit_onclick.cpp:283 +msgid "Global Pad Settings" +msgstr "Edition Globale des pads" + +#: pcbnew/onrightclick.cpp:752 +msgid "delete" +msgstr "Effacer" + +#: pcbnew/onrightclick.cpp:766 +msgid "Pcb Text" +msgstr "Texte Pcb" #: pcbnew/editpads.cpp:74 msgid "Pad Position" @@ -2182,8 +2575,8 @@ msgid "Display other items:" msgstr "Afficher autres éléments" #: pcbnew/dialog_display_options.cpp:272 -#: pcbnew/affiche.cpp:43 -#: pcbnew/affiche.cpp:87 +#: pcbnew/affiche.cpp:46 +#: pcbnew/affiche.cpp:97 #: eeschema/dialog_options.cpp:264 #: eeschema/options.cpp:202 #: gerbview/affiche.cpp:39 @@ -2191,8 +2584,8 @@ msgid "Yes" msgstr "Oui" #: pcbnew/dialog_display_options.cpp:273 -#: pcbnew/affiche.cpp:42 -#: pcbnew/affiche.cpp:86 +#: pcbnew/affiche.cpp:44 +#: pcbnew/affiche.cpp:95 #: eeschema/dialog_options.cpp:265 #: eeschema/options.cpp:202 #: gerbview/affiche.cpp:38 @@ -2205,155 +2598,345 @@ msgstr "Non" msgid "Show page limits" msgstr " Afficher limites de page" -#: pcbnew/edgemod.cpp:212 -msgid "New Width (1/10000\"):" -msgstr "Novelle largeur (1/10000\"):" +#: pcbnew/editmod.cpp:144 +msgid "Text is REFERENCE!" +msgstr "Le texte est la REFERENCE!" -#: pcbnew/edgemod.cpp:217 -msgid "Incorrect number, no change" -msgstr "Nombre incorrect, pas de changement" +#: pcbnew/editmod.cpp:149 +msgid "Text is VALUE!" +msgstr "Le texte est la VALEUR!" #: pcbnew/reglage.cpp:124 msgid "Lib Modules:" msgstr "Lib Modules:" -#: pcbnew/block.cpp:128 -msgid "Include Modules" -msgstr "Inclure Modules" +#: pcbnew/initpcb.cpp:126 +msgid "Current Board will be lost ?" +msgstr "Le C.I. courant sera perdu ?" -#: pcbnew/block.cpp:132 -msgid "Include tracks" -msgstr "Inclure Pistes" +#: pcbnew/initpcb.cpp:212 +msgid "Delete Zones ?" +msgstr "Effacer Zones ?" -#: pcbnew/block.cpp:136 -#: pcbnew/dialog_drc.cpp:165 -msgid "Include zones" -msgstr "Inclure zones" +#: pcbnew/initpcb.cpp:238 +msgid "Delete Board edges ?" +msgstr "Effacement contour PCB" -#: pcbnew/block.cpp:141 -msgid "Include Text on copper layers" -msgstr "Inclure Texte sur couches cuivre" +#: pcbnew/initpcb.cpp:243 +msgid "Delete draw items?" +msgstr "Suppression éléments graphiques?" -#: pcbnew/block.cpp:145 -msgid "Include drawings" -msgstr "Inclure tracés" +#: pcbnew/initpcb.cpp:297 +#: gerbview/initpcb.cpp:161 +msgid "Delete Tracks?" +msgstr "Effacer Pistes ?" -#: pcbnew/block.cpp:149 -msgid "Include egde layer" -msgstr "Inclure couche Edge" +#: pcbnew/initpcb.cpp:318 +msgid "Delete Modules?" +msgstr "Effacement des Modules?" -#: pcbnew/block.cpp:423 -msgid "Delete Block" -msgstr "Effacer Bloc" +#: pcbnew/initpcb.cpp:341 +#: gerbview/initpcb.cpp:181 +msgid "Delete Pcb Texts" +msgstr "Effacer Textes Pcb" -#: pcbnew/block.cpp:433 -msgid "Delete Footprints" -msgstr "Suppression modules" +#: pcbnew/pcbframe.cpp:278 +msgid "Board modified, Save before exit ?" +msgstr "Circuit Imprimé modifiée, Sauver avant de quitter ?" -#: pcbnew/block.cpp:452 -msgid "Delete tracks" -msgstr "Suppression Pistes" +#: pcbnew/pcbframe.cpp:279 +#: eeschema/schframe.cpp:187 +#: cvpcb/cvframe.cpp:169 +#: common/confirm.cpp:109 +msgid "Confirmation" +msgstr "Confirmation" -#: pcbnew/block.cpp:469 -msgid "Delete draw layers" -msgstr "Suppression couches sessin" +#: pcbnew/pcbframe.cpp:379 +msgid "DRC Off (Disable !!!), Currently: DRC is active" +msgstr "DRC off (désactivée !!!), actuellement DRC active" -#: pcbnew/block.cpp:524 -msgid "Delete zones" -msgstr "SuppressionZones" +#: pcbnew/pcbframe.cpp:380 +msgid "DRC On (Currently: DRC is inactive !!!)" +msgstr "DRC On (Actuellement, DRC désactivée !!!)" -#: pcbnew/block.cpp:556 -msgid "Rotate Block" -msgstr "Rotation Bloc" +#: pcbnew/pcbframe.cpp:391 +msgid "Polar Coords not show" +msgstr "Coord Polaires non affichées" -#: pcbnew/block.cpp:570 -msgid "Footprint rotation" -msgstr "Rotation modules" +#: pcbnew/pcbframe.cpp:392 +msgid "Display Polar Coords" +msgstr "Affichage coord Polaires" -#: pcbnew/block.cpp:603 -msgid "Track rotation" -msgstr "Rotation pistes" +#: pcbnew/pcbframe.cpp:397 +#: eeschema/schframe.cpp:265 +msgid "Grid not show" +msgstr "Grille non montrée" -#: pcbnew/block.cpp:624 -msgid "Zone rotation" -msgstr "Rotation Zones" +#: pcbnew/pcbframe.cpp:397 +#: eeschema/schframe.cpp:265 +msgid "Show Grid" +msgstr "Afficher grille" -#: pcbnew/block.cpp:643 -msgid "Draw layers rotation" -msgstr "Rotation couches dessin" +#: pcbnew/pcbframe.cpp:406 +msgid "General ratsnest not show" +msgstr "Chevelu général non affiché" -#: pcbnew/block.cpp:750 -msgid "Block mirroring" -msgstr "Bloc Miroir" +#: pcbnew/pcbframe.cpp:406 +msgid "Show General ratsnest" +msgstr "Afficher le chevelu général" -#: pcbnew/block.cpp:764 -msgid "Footprint mirroring" -msgstr "Miroir modules" +#: pcbnew/pcbframe.cpp:412 +msgid "Module ratsnest not show" +msgstr "Ne pas montrer le chevelu du module pendant déplacement" -#: pcbnew/block.cpp:795 -msgid "Track mirroring" -msgstr "Miroir Pistes" +#: pcbnew/pcbframe.cpp:413 +msgid "Show Module ratsnest" +msgstr "Montrer le chevelu du module" -#: pcbnew/block.cpp:821 -msgid "Zone mirroring" -msgstr "Miroir zone" +#: pcbnew/pcbframe.cpp:420 +msgid "Disable Auto Delete old Track" +msgstr "Ne pas Autoriser l'effacement automatique des pistes" -#: pcbnew/block.cpp:841 -msgid "Draw layers mirroring" -msgstr "Draw layers mirroring" +#: pcbnew/pcbframe.cpp:421 +msgid "Enable Auto Delete old Track" +msgstr "Autoriser l'effacement automatique des pistes" -#: pcbnew/block.cpp:957 -msgid "Move Block" -msgstr "Déplacer Bloc" +#: pcbnew/pcbframe.cpp:428 +msgid "Do not Show Zones" +msgstr "Ne pas monter Zones" -#: pcbnew/block.cpp:968 -msgid "Move footprints" -msgstr "Déplacement modules" +#: pcbnew/pcbframe.cpp:434 +msgid "Show Pads Sketch mode" +msgstr "Afficher pastilles en contour" -#: pcbnew/block.cpp:999 -msgid "Move tracks" -msgstr "Déplacement pistes" +#: pcbnew/pcbframe.cpp:435 +msgid "Show pads filled mode" +msgstr "Afficher pastilles en mode plein" -#: pcbnew/block.cpp:1020 -msgid "Move zones" -msgstr "Déplacement zones" +#: pcbnew/pcbframe.cpp:441 +msgid "Show Tracks Sketch mode" +msgstr "Afficher pistes en contour" -#: pcbnew/block.cpp:1039 -msgid "Move draw layers" -msgstr "Déplacement couches dessin" +#: pcbnew/pcbframe.cpp:442 +msgid "Show Tracks filled mode" +msgstr "Afficher pistes en mode plein" -#: pcbnew/block.cpp:1132 -msgid "Copy Block" -msgstr "Copie Bloc" +#: pcbnew/pcbframe.cpp:448 +msgid "Normal Contrast Mode Display" +msgstr "Mode d'affichage Contraste normal" -#: pcbnew/block.cpp:1143 -msgid "Module copy" -msgstr "Copie Modules" +#: pcbnew/pcbframe.cpp:459 +#: pcbnew/affiche.cpp:147 +msgid "Track" +msgstr "Piste" -#: pcbnew/block.cpp:1180 -msgid "Track copy" -msgstr "Copie Piste" +#: pcbnew/pcbframe.cpp:491 +msgid "Via" +msgstr "Via" -#: pcbnew/block.cpp:1203 -msgid "Zone copy" -msgstr "Copie Zone" +#: pcbnew/cotation.cpp:89 +msgid "Cotation properties" +msgstr "Propriétés des Cotations" -#: pcbnew/block.cpp:1225 -msgid "Draw layers copy" -msgstr "Cpoie des couches dessin" +#: pcbnew/cotation.cpp:139 +#: gerbview/affiche.cpp:34 +msgid "Layer:" +msgstr "Couche:" + +#: pcbnew/affiche.cpp:33 +#: gerbview/affiche.cpp:28 +msgid "COTATION" +msgstr "COTATION" + +#: pcbnew/affiche.cpp:36 +#: gerbview/affiche.cpp:31 +msgid "PCB Text" +msgstr "Texte Pcb" + +#: pcbnew/affiche.cpp:38 +#: pcbnew/affiche.cpp:101 +#: pcbnew/affiche.cpp:105 +#: pcbnew/affiche.cpp:215 +#: pcbnew/affiche.cpp:275 +#: pcbnew/sel_layer.cpp:121 +#: pcbnew/class_pad.cpp:908 +#: pcbnew/class_module.cpp:1112 +#: pcbnew/dialog_edit_module.cpp:237 +#: gerbview/affiche.cpp:102 +msgid "Layer" +msgstr "Couche" + +#: pcbnew/affiche.cpp:49 +#: pcbnew/affiche.cpp:115 +#: pcbnew/class_pad.cpp:954 +#: pcbnew/class_module.cpp:1135 +#: pcbnew/dialog_edit_module.cpp:248 +#: eeschema/affiche.cpp:101 +#: gerbview/affiche.cpp:43 +msgid "Orient" +msgstr "Orient" + +#: pcbnew/affiche.cpp:55 +#: pcbnew/affiche.cpp:121 +#: pcbnew/class_pad.cpp:925 +#: gerbview/affiche.cpp:49 +msgid "H Size" +msgstr "Taille H" + +#: pcbnew/affiche.cpp:58 +#: pcbnew/affiche.cpp:124 +#: pcbnew/class_pad.cpp:929 +#: gerbview/affiche.cpp:52 +msgid "V Size" +msgstr "Taille V" + +#: pcbnew/affiche.cpp:77 +msgid "Ref." +msgstr "Ref." + +#: pcbnew/affiche.cpp:77 +#: pcbnew/affiche.cpp:302 +#: eeschema/editpart.cpp:776 +#: eeschema/onrightclick.cpp:302 +#: eeschema/component_class.cpp:50 +#: eeschema/eelayer.cpp:105 +#: eeschema/edit_component_in_schematic.cpp:783 +msgid "Value" +msgstr "Valeur" + +#: pcbnew/affiche.cpp:77 +#: pcbnew/affiche.cpp:85 +msgid "Text" +msgstr "Texte" + +#: pcbnew/affiche.cpp:82 +#: pcbnew/affiche.cpp:300 +#: pcbnew/class_pad.cpp:819 +#: pcbnew/class_module.cpp:1138 +#: cvpcb/setvisu.cpp:29 +msgid "Module" +msgstr "Module" + +#: pcbnew/affiche.cpp:91 +#: pcbnew/affiche.cpp:158 +#: pcbnew/affiche.cpp:259 +#: gerbview/affiche.cpp:86 +msgid "Type" +msgstr "Type" + +#: pcbnew/affiche.cpp:151 +msgid "Zone" +msgstr "Zone" + +#: pcbnew/affiche.cpp:173 +#: pcbnew/zones.cpp:916 +msgid "NetName" +msgstr "NetName" + +#: pcbnew/affiche.cpp:178 +msgid "NetCode" +msgstr "NetCode" + +#: pcbnew/affiche.cpp:182 +#: pcbnew/affiche.cpp:273 +msgid "Segment" +msgstr "Segment" + +#: pcbnew/affiche.cpp:184 +#: pcbnew/affiche.cpp:264 +#: pcbnew/dialog_pad_edit.cpp:176 +#: pcbnew/dialog_pad_edit.cpp:198 +msgid "Circle" +msgstr "Cercle" + +#: pcbnew/affiche.cpp:186 +#: pcbnew/dialog_pad_edit.cpp:208 +msgid "Standard" +msgstr "Standard" + +#: pcbnew/affiche.cpp:199 +#: pcbnew/class_module.cpp:1131 +msgid "Stat" +msgstr "Stat" + +#: pcbnew/affiche.cpp:223 +msgid "Diam" +msgstr "Diam" + +#: pcbnew/affiche.cpp:261 +msgid "Shape" +msgstr "Forme" + +#: pcbnew/affiche.cpp:268 +msgid " Arc " +msgstr " Arc " + +#: pcbnew/affiche.cpp:299 +msgid "Seg" +msgstr "Seg" + +#: pcbnew/affiche.cpp:305 +#: pcbnew/class_module.cpp:1108 +msgid "TimeStamp" +msgstr "TimeStamp" + +#: pcbnew/affiche.cpp:307 +msgid "Mod Layer" +msgstr "Couche Mod." + +#: pcbnew/affiche.cpp:309 +msgid "Seg Layer" +msgstr "Couche Seg." + +#: pcbnew/affiche.cpp:336 +#: pcbnew/affiche.cpp:399 +#: pcbnew/class_module.cpp:1123 +msgid "Pads" +msgstr "Pads" + +#: pcbnew/affiche.cpp:346 +#: pcbnew/affiche.cpp:410 +#: pcbnew/plotps.cpp:336 +msgid "Vias" +msgstr "Vias" + +#: pcbnew/affiche.cpp:349 +msgid "Nodes" +msgstr "Nodes" + +#: pcbnew/affiche.cpp:352 +msgid "Links" +msgstr "Liens" + +#: pcbnew/affiche.cpp:355 +msgid "Nets" +msgstr "Nets" + +#: pcbnew/affiche.cpp:358 +msgid "Connect" +msgstr "Connect" + +#: pcbnew/affiche.cpp:361 +#: eeschema/eelayer.cpp:177 +msgid "NoConn" +msgstr "Non Conn" + +#: pcbnew/affiche.cpp:381 +msgid "Net Name" +msgstr "Equipot" + +#: pcbnew/affiche.cpp:383 +msgid "No Net (not connected)" +msgstr "Pas de Net (non connecté)" + +#: pcbnew/affiche.cpp:386 +msgid "Net Code" +msgstr "Net Code" #: pcbnew/globaleditpad.cpp:79 msgid "Pads Global Edit" msgstr "Pads: Edition globale" -#: pcbnew/globaleditpad.cpp:96 -#: pcbnew/menubarpcb.cpp:205 -#: pcbnew/menubarmodedit.cpp:45 -#: pcbnew/tool_modedit.cpp:125 -#: pcbnew/modedit.cpp:299 -msgid "Pad Settings" -msgstr "Caract pads" - #: pcbnew/globaleditpad.cpp:101 msgid "Change Module" msgstr "Change module" @@ -2430,52 +3013,86 @@ msgstr "It msgid "Ok to abort ?" msgstr "Ok pour arrêter ?" -#: pcbnew/editmod.cpp:137 -msgid "Text is REFERENCE!" -msgstr "Le texte est la REFERENCE!" +#: pcbnew/deltrack.cpp:153 +msgid "Delete NET ?" +msgstr "Supprimer Net ?" -#: pcbnew/editmod.cpp:142 -msgid "Text is VALUE!" -msgstr "Le texte est la VALEUR!" +#: pcbnew/zones.cpp:152 +#: pcbnew/zones.cpp:153 +#: pcbnew/zones.cpp:154 +#: pcbnew/zones.cpp:155 +msgid "0.00000" +msgstr "0.00000" -#: pcbnew/initpcb.cpp:126 -msgid "Current Board will be lost ?" -msgstr "Le C.I. courant sera perdu ?" +#: pcbnew/zones.cpp:159 +msgid "Grid size:" +msgstr "Dim Grille" -#: pcbnew/initpcb.cpp:208 -msgid "Delete Zones ?" -msgstr "Effacer Zones ?" +#: pcbnew/zones.cpp:164 +msgid "Zone clearance value (mm):" +msgstr "Valeur isolation zone (mm):" -#: pcbnew/initpcb.cpp:231 -msgid "Delete Board edges ?" -msgstr "Effacement contour PCB" +#: pcbnew/zones.cpp:181 +msgid "Include Pads" +msgstr "Inclure Pads" -#: pcbnew/initpcb.cpp:235 -msgid "Delete draw items?" -msgstr "Suppression éléments graphiques?" +#: pcbnew/zones.cpp:182 +msgid "Thermal" +msgstr "Thermique" -#: pcbnew/initpcb.cpp:285 -#: gerbview/initpcb.cpp:161 -msgid "Delete Tracks?" -msgstr "Effacer Pistes ?" +#: pcbnew/zones.cpp:183 +msgid "Exclude Pads" +msgstr "Exclure Pads" -#: pcbnew/initpcb.cpp:304 -msgid "Delete Modules?" -msgstr "Effacement des Modules?" +#: pcbnew/zones.cpp:187 +msgid "Pad options:" +msgstr "Options pads" -#: pcbnew/initpcb.cpp:325 -#: gerbview/initpcb.cpp:181 -msgid "Delete Pcb Texts" -msgstr "Effacer Textes Pcb" +#: pcbnew/zones.cpp:192 +#: eeschema/dialog_options.cpp:257 +#: eeschema/options.cpp:194 +msgid "Any" +msgstr "Tout" -#: pcbnew/cotation.cpp:88 -msgid "Cotation properties" -msgstr "Propriétés des Cotations" +#: pcbnew/zones.cpp:193 +msgid "H , V and 45 deg" +msgstr "H, V et 45 deg" -#: pcbnew/cotation.cpp:137 -#: gerbview/affiche.cpp:34 -msgid "Layer:" -msgstr "Couche:" +#: pcbnew/zones.cpp:197 +msgid "Zone edges orient:" +msgstr "Direction contours zone:" + +#: pcbnew/zones.cpp:209 +msgid "Fill" +msgstr "Remplissage" + +#: pcbnew/zones.cpp:223 +msgid "Update Options" +msgstr "Maj Options" + +#: pcbnew/zones.cpp:232 +msgid "Zone clearance value:" +msgstr "Valeur isolation zone:" + +#: pcbnew/zones.cpp:235 +msgid "Grid :" +msgstr "Grille:" + +#: pcbnew/zones.cpp:400 +msgid "New zone segment width: " +msgstr "Nouvelle largeur des segments zone:" + +#: pcbnew/zones.cpp:601 +msgid "Zone: No net selected" +msgstr "Zone: Net non sélectionné" + +#: pcbnew/zones.cpp:646 +msgid "Delete Current Zone Edges" +msgstr "Effacer contour zone courant" + +#: pcbnew/zones.cpp:914 +msgid "No Net" +msgstr "No Net" #: pcbnew/router.cpp:60 msgid "Unable to create temporary file " @@ -2493,199 +3110,33 @@ msgstr "Impossible de trouver le fichier de donn msgid "Reading autorouter data file " msgstr "Lecture fichier données de l'autorouteur" -#: pcbnew/affiche.cpp:31 -#: gerbview/affiche.cpp:28 -msgid "COTATION" -msgstr "COTATION" +#: pcbnew/editedge.cpp:166 +msgid "Copper layer global delete not allowed!" +msgstr " Effacement global sur couche cuivre non autorisé" -#: pcbnew/affiche.cpp:34 -#: gerbview/affiche.cpp:31 -msgid "PCB Text" -msgstr "Texte Pcb" +#: pcbnew/editedge.cpp:172 +msgid "Segment is being edited" +msgstr "Segment en cours d'édition" -#: pcbnew/affiche.cpp:36 -#: pcbnew/affiche.cpp:91 -#: pcbnew/affiche.cpp:95 -#: pcbnew/affiche.cpp:195 -#: pcbnew/affiche.cpp:244 -#: pcbnew/sel_layer.cpp:121 -#: pcbnew/class_pad.cpp:908 -#: pcbnew/class_module.cpp:1112 -#: pcbnew/dialog_edit_module.cpp:230 -#: gerbview/affiche.cpp:102 -msgid "Layer" -msgstr "Couche" +#: pcbnew/editedge.cpp:176 +msgid "Delete Layer " +msgstr "Effacer Couche" -#: pcbnew/affiche.cpp:47 -#: pcbnew/affiche.cpp:103 -#: pcbnew/class_pad.cpp:954 -#: pcbnew/class_module.cpp:1135 -#: pcbnew/dialog_edit_module.cpp:238 -#: eeschema/affiche.cpp:101 -#: gerbview/affiche.cpp:43 -msgid "Orient" -msgstr "Orient" +#: pcbnew/mirepcb.cpp:82 +msgid "Mire properties" +msgstr "Propriétés des Mires" -#: pcbnew/affiche.cpp:53 -#: pcbnew/affiche.cpp:109 -#: pcbnew/class_pad.cpp:925 -#: gerbview/affiche.cpp:49 -msgid "H Size" -msgstr "Taille H" +#: pcbnew/mirepcb.cpp:122 +msgid "shape +" +msgstr "Forme +" -#: pcbnew/affiche.cpp:56 -#: pcbnew/affiche.cpp:112 -#: pcbnew/class_pad.cpp:929 -#: gerbview/affiche.cpp:52 -msgid "V Size" -msgstr "Taille V" +#: pcbnew/mirepcb.cpp:122 +msgid "shape X" +msgstr "Forme X" -#: pcbnew/affiche.cpp:69 -msgid "Ref." -msgstr "Ref." - -#: pcbnew/affiche.cpp:69 -#: pcbnew/affiche.cpp:268 -#: eeschema/edit_component_in_schematic.cpp:716 -#: eeschema/onrightclick.cpp:287 -#: eeschema/component_class.cpp:50 -#: eeschema/editpart.cpp:734 -#: eeschema/eelayer.cpp:105 -msgid "Value" -msgstr "Valeur" - -#: pcbnew/affiche.cpp:69 -#: pcbnew/affiche.cpp:79 -msgid "Text" -msgstr "Texte" - -#: pcbnew/affiche.cpp:76 -#: pcbnew/affiche.cpp:266 -#: pcbnew/class_pad.cpp:819 -#: pcbnew/class_module.cpp:1138 -#: cvpcb/setvisu.cpp:29 -msgid "Module" -msgstr "Module" - -#: pcbnew/affiche.cpp:82 -#: pcbnew/affiche.cpp:146 -#: pcbnew/affiche.cpp:231 -#: gerbview/affiche.cpp:86 -msgid "Type" -msgstr "Type" - -#: pcbnew/affiche.cpp:136 -#: pcbnew/pcbframe.cpp:410 -msgid "Track" -msgstr "Piste" - -#: pcbnew/affiche.cpp:140 -msgid "Zone" -msgstr "Zone" - -#: pcbnew/affiche.cpp:165 -msgid "NetCode" -msgstr "NetCode" - -#: pcbnew/affiche.cpp:170 -#: pcbnew/affiche.cpp:242 -msgid "Segment" -msgstr "Segment" - -#: pcbnew/affiche.cpp:172 -#: pcbnew/affiche.cpp:235 -#: pcbnew/dialog_pad_edit.cpp:176 -#: pcbnew/dialog_pad_edit.cpp:198 -msgid "Circle" -msgstr "Cercle" - -#: pcbnew/affiche.cpp:173 -#: pcbnew/dialog_pad_edit.cpp:208 -msgid "Standard" -msgstr "Standard" - -#: pcbnew/affiche.cpp:182 -#: pcbnew/class_module.cpp:1131 -msgid "Stat" -msgstr "Stat" - -#: pcbnew/affiche.cpp:202 -msgid "Diam" -msgstr "Diam" - -#: pcbnew/affiche.cpp:233 -msgid "Shape" -msgstr "Forme" - -#: pcbnew/affiche.cpp:238 -msgid " Arc " -msgstr " Arc " - -#: pcbnew/affiche.cpp:265 -msgid "Seg" -msgstr "Seg" - -#: pcbnew/affiche.cpp:271 -#: pcbnew/class_module.cpp:1108 -msgid "TimeStamp" -msgstr "TimeStamp" - -#: pcbnew/affiche.cpp:273 -msgid "Mod Layer" -msgstr "Couche Mod." - -#: pcbnew/affiche.cpp:275 -msgid "Seg Layer" -msgstr "Couche Seg." - -#: pcbnew/affiche.cpp:302 -#: pcbnew/affiche.cpp:362 -#: pcbnew/class_module.cpp:1123 -msgid "Pads" -msgstr "Pads" - -#: pcbnew/affiche.cpp:311 -#: pcbnew/affiche.cpp:372 -#: pcbnew/plotps.cpp:336 -msgid "Vias" -msgstr "Vias" - -#: pcbnew/affiche.cpp:314 -msgid "Nodes" -msgstr "Nodes" - -#: pcbnew/affiche.cpp:317 -msgid "Links" -msgstr "Liens" - -#: pcbnew/affiche.cpp:320 -msgid "Nets" -msgstr "Nets" - -#: pcbnew/affiche.cpp:323 -msgid "Connect" -msgstr "Connect" - -#: pcbnew/affiche.cpp:326 -#: eeschema/eelayer.cpp:177 -msgid "NoConn" -msgstr "Non Conn" - -#: pcbnew/affiche.cpp:345 -msgid "Net Name" -msgstr "Equipot" - -#: pcbnew/affiche.cpp:347 -msgid "No Net (not connected)" -msgstr "Pas de Net (non connecté)" - -#: pcbnew/affiche.cpp:350 -msgid "Net Code" -msgstr "Net Code" - -#: pcbnew/deltrack.cpp:146 -msgid "Delete NET ?" -msgstr "Supprimer Net ?" +#: pcbnew/mirepcb.cpp:124 +msgid "Mire Shape:" +msgstr "Forme Mire:" #: pcbnew/swap_layers.cpp:60 #: pcbnew/pcbpiste.cpp:62 @@ -2722,24 +3173,6 @@ msgstr "OK" msgid "Deselect" msgstr "Deselection" -#: pcbnew/automove.cpp:200 -#: pcbnew/xchgmod.cpp:573 -msgid "No Modules!" -msgstr "Pas de Modules" - -#: pcbnew/automove.cpp:204 -msgid "Move Modules ?" -msgstr "Déplacer Modules ?" - -#: pcbnew/automove.cpp:211 -msgid "Autoplace modules: No boad edges detected, unable to place modules" -msgstr "Autoplace modules: pas de contours sur pcb, impossible de placer les modules" - -#: pcbnew/automove.cpp:329 -#, c-format -msgid "Ok to set module orientation to %d degrees ?" -msgstr "Ok pour orientation module à %d degrés ?" - #: pcbnew/set_grid.cpp:147 #: pcbnew/dialog_general_options.cpp:270 #: gerbview/options.cpp:191 @@ -2763,34 +3196,6 @@ msgstr "Grille perso dim X" msgid "User Grid Size Y" msgstr "Grille perso dim Y" -#: pcbnew/editedge.cpp:158 -msgid "Copper layer global delete not allowed!" -msgstr " Effacement global sur couche cuivre non autorisé" - -#: pcbnew/editedge.cpp:164 -msgid "Segment is being edited" -msgstr "Segment en cours d'édition" - -#: pcbnew/editedge.cpp:168 -msgid "Delete Layer " -msgstr "Effacer Couche" - -#: pcbnew/mirepcb.cpp:81 -msgid "Mire properties" -msgstr "Propriétés des Mires" - -#: pcbnew/mirepcb.cpp:121 -msgid "shape +" -msgstr "Forme +" - -#: pcbnew/mirepcb.cpp:121 -msgid "shape X" -msgstr "Forme X" - -#: pcbnew/mirepcb.cpp:123 -msgid "Mire Shape:" -msgstr "Forme Mire:" - #: pcbnew/dialog_pad_edit.cpp:157 msgid "Pad Num :" msgstr "Num Pad :" @@ -2823,7 +3228,7 @@ msgid "180" msgstr "180" #: pcbnew/dialog_pad_edit.cpp:191 -#: pcbnew/dialog_edit_module.cpp:237 +#: pcbnew/dialog_edit_module.cpp:245 msgid "User" msgstr "User" @@ -2951,8 +3356,8 @@ msgstr "Liste modules" #: pcbnew/xchgmod.cpp:128 #: pcbnew/pcbplot.cpp:207 #: eeschema/fieldedi.cpp:198 -#: eeschema/editpart.cpp:171 -#: share/zoom.cpp:413 +#: eeschema/editpart.cpp:174 +#: share/zoom.cpp:432 msgid "Close" msgstr "Fermer" @@ -3018,6 +3423,40 @@ msgstr "Couche Sup." msgid "Bottom Layer" msgstr "Couche Inf." +#: pcbnew/loadcmp.cpp:103 +msgid "Module name:" +msgstr "Nom module:" + +#: pcbnew/loadcmp.cpp:215 +#: eeschema/eelibs_read_libraryfiles.cpp:66 +#, c-format +msgid "Library <%s> not found" +msgstr "Librairie %s non trouvée" + +#: pcbnew/loadcmp.cpp:220 +#, c-format +msgid "Scan Lib: %s" +msgstr "Examen Lib: %s" + +#: pcbnew/loadcmp.cpp:229 +msgid "File is Not a library" +msgstr "Le fichier n'est pas une librairie eeschema" + +#: pcbnew/loadcmp.cpp:298 +#, c-format +msgid "Module <%s> not found" +msgstr "Module <%s> non trouvé" + +#: pcbnew/loadcmp.cpp:368 +msgid "Library: " +msgstr "Librairie: " + +#: pcbnew/loadcmp.cpp:433 +#: pcbnew/loadcmp.cpp:584 +#, c-format +msgid "Modules (%d items)" +msgstr "Modules (%d éléments)" + #: pcbnew/pcbplot.cpp:114 #: pcbnew/pcbplot.cpp:203 #: gerbview/tool_gerber.cpp:88 @@ -3253,11 +3692,11 @@ msgstr "Y pos" #: pcbnew/dialog_drc.cpp:141 #: eeschema/fieldedi.cpp:223 #: eeschema/dialog_erc.cpp:237 +#: eeschema/editpart.cpp:207 #: eeschema/dialog_edit_component_in_lib.cpp:166 #: eeschema/dialog_create_component.cpp:176 #: eeschema/libedpart.cpp:241 #: eeschema/dialog_edit_component_in_schematic.cpp:204 -#: eeschema/editpart.cpp:204 #: eeschema/dialog_build_BOM.cpp:279 #: cvpcb/dialog_display_options.h:44 msgid "Options" @@ -3300,7 +3739,7 @@ msgid "Report File" msgstr "Fichier rapport" #: pcbnew/dialog_drc.cpp:208 -#: pcbnew/dialog_edit_module.cpp:375 +#: pcbnew/dialog_edit_module.cpp:397 #: eeschema/dialog_eeschema_config.cpp:227 msgid "Browse" msgstr "Examiner" @@ -3614,7 +4053,7 @@ msgstr "Permutation de couches" #: pcbnew/menubarpcb.cpp:264 #: pcbnew/menubarmodedit.cpp:60 -#: eeschema/menubar.cpp:152 +#: eeschema/menubar.cpp:162 #: cvpcb/tool_cvpcb.cpp:158 #: kicad/buildmnu.cpp:199 #: gerbview/tool_gerber.cpp:139 @@ -3628,7 +4067,7 @@ msgstr "Ouvrir la documentation de pcbnew" #: pcbnew/menubarpcb.cpp:268 #: pcbnew/menubarmodedit.cpp:64 -#: eeschema/menubar.cpp:157 +#: eeschema/menubar.cpp:167 #: cvpcb/tool_cvpcb.cpp:162 #: kicad/buildmnu.cpp:204 #: gerbview/tool_gerber.cpp:141 @@ -3637,7 +4076,7 @@ msgstr "&Infos logiciel" #: pcbnew/menubarpcb.cpp:268 #: pcbnew/menubarmodedit.cpp:64 -#: eeschema/menubar.cpp:157 +#: eeschema/menubar.cpp:167 #: cvpcb/tool_cvpcb.cpp:163 #: kicad/buildmnu.cpp:204 #: gerbview/tool_gerber.cpp:142 @@ -3655,7 +4094,7 @@ msgid "Show Board in 3D Mode" msgstr "Visualisation en 3D" #: pcbnew/menubarpcb.cpp:280 -#: eeschema/menubar.cpp:162 +#: eeschema/menubar.cpp:172 #: cvpcb/tool_cvpcb.cpp:167 #: gerbview/tool_gerber.cpp:144 #: 3d-viewer/3d_toolbar.cpp:107 @@ -3663,7 +4102,7 @@ msgid "&File" msgstr "&Fichiers" #: pcbnew/menubarpcb.cpp:281 -#: eeschema/menubar.cpp:163 +#: eeschema/menubar.cpp:173 #: cvpcb/tool_cvpcb.cpp:168 #: kicad/buildmnu.cpp:211 #: gerbview/tool_gerber.cpp:145 @@ -3692,169 +4131,20 @@ msgstr "&3D Visu" #: pcbnew/menubarpcb.cpp:286 #: pcbnew/menubarmodedit.cpp:78 -#: eeschema/menubar.cpp:164 +#: eeschema/menubar.cpp:174 #: cvpcb/tool_cvpcb.cpp:169 #: kicad/buildmnu.cpp:212 #: gerbview/tool_gerber.cpp:148 msgid "&Help" msgstr "&Aide" -#: pcbnew/dialog_edit_module.cpp:41 -msgid "Module properties" -msgstr "Propriétés du Module" +#: pcbnew/move_or_drag_track.cpp:710 +msgid "Unable to drag this segment: too many segments connected" +msgstr "Impossible de drag ce segment: trop de segments connectés" -#: pcbnew/dialog_edit_module.cpp:94 -msgid "Properties" -msgstr "Propriétés" - -#: pcbnew/dialog_edit_module.cpp:98 -#: pcbnew/dialog_edit_module.cpp:107 -#: pcbnew/dialog_edit_module.cpp:138 -msgid "3D settings" -msgstr "3D Caract" - -#: pcbnew/dialog_edit_module.cpp:179 -msgid "Change module(s)" -msgstr "Change module(s)" - -#: pcbnew/dialog_edit_module.cpp:183 -msgid "Goto Module Editor" -msgstr "Ouvrir Editeur de modules" - -#: pcbnew/dialog_edit_module.cpp:189 -#: eeschema/fieldedi.cpp:283 -#: eeschema/onrightclick.cpp:315 -#: eeschema/dialog_edit_component_in_lib.cpp:203 -#: eeschema/libedpart.cpp:246 -msgid "Doc" -msgstr "Doc" - -#: pcbnew/dialog_edit_module.cpp:195 -msgid "Keywords" -msgstr "Mots Cles" - -#: pcbnew/dialog_edit_module.cpp:202 -msgid "Fields:" -msgstr "Champs:" - -#: pcbnew/dialog_edit_module.cpp:212 -msgid "Add Field" -msgstr "Ajouter Champ" - -#: pcbnew/dialog_edit_module.cpp:217 -#: eeschema/onrightclick.cpp:253 -msgid "Edit Field" -msgstr "Editer Champ" - -#: pcbnew/dialog_edit_module.cpp:222 -msgid "Delete Field" -msgstr "Supprimer Champ" - -#: pcbnew/dialog_edit_module.cpp:229 -#: common/common.cpp:242 -msgid "Component" -msgstr "Composant" - -#: pcbnew/dialog_edit_module.cpp:229 -msgid "Copper" -msgstr "Cuivre" - -#: pcbnew/dialog_edit_module.cpp:270 -msgid "Orient (0.1 deg)" -msgstr "Orient (0.1 deg)" - -#: pcbnew/dialog_edit_module.cpp:279 -msgid "Normal+Insert" -msgstr "Normal+Insert" - -#: pcbnew/dialog_edit_module.cpp:279 -msgid "Virtual" -msgstr "Virtuel" - -#: pcbnew/dialog_edit_module.cpp:280 -msgid "Attributs" -msgstr "Attributs" - -#: pcbnew/dialog_edit_module.cpp:283 -msgid "Use this attribute for most non smd components" -msgstr "Utiliser cet attribut pour la plupart des composants" - -#: pcbnew/dialog_edit_module.cpp:285 -msgid "" -"Use this attribute for smd components.\n" -"Only components with this option are put in the footprint position list file" -msgstr "" -"Uiliser cet attribut pour les composants CMS.\n" -"Seuls les composantsavec cette option sont mis dans le fichier de position des composants" - -#: pcbnew/dialog_edit_module.cpp:287 -msgid "Use this attribute for \"virtual\" components drawn on board (like a old ISA PC bus connector)" -msgstr "Uiliser cet attribut pour les composants \"virtuels\" directement dessinés sur le PCB (tel que les vieux connecteurs ISA de PC)" - -#: pcbnew/dialog_edit_module.cpp:311 -msgid "Free" -msgstr "Libre" - -#: pcbnew/dialog_edit_module.cpp:311 -msgid "Locked" -msgstr "Verrouillé" - -#: pcbnew/dialog_edit_module.cpp:312 -msgid "Move and Auto Place" -msgstr "Move et Placement Automatique" - -#: pcbnew/dialog_edit_module.cpp:317 -msgid "Enable hotkey move commands and Auto Placement" -msgstr "Autoriser les commandes clavier de déplacement et l'auto placement" - -#: pcbnew/dialog_edit_module.cpp:318 -msgid "Disable hotkey move commands and Auto Placement" -msgstr "Interdire les commandes clavier de déplacement et l'auto placement" - -#: pcbnew/dialog_edit_module.cpp:322 -msgid "Rot 90" -msgstr "Rot 90" - -#: pcbnew/dialog_edit_module.cpp:329 -msgid "Rot 180" -msgstr "Rot 180" - -#: pcbnew/dialog_edit_module.cpp:359 -msgid "3D Shape Name" -msgstr "3D forme" - -#: pcbnew/dialog_edit_module.cpp:379 -msgid "Add 3D Shape" -msgstr "Ajout Forme 3D" - -#: pcbnew/dialog_edit_module.cpp:385 -msgid "Remove 3D Shape" -msgstr "Suppr. Forme 3D:" - -#: pcbnew/dialog_edit_module.cpp:391 -msgid "Shape Scale:" -msgstr "Echelle de la forme:" - -#: pcbnew/dialog_edit_module.cpp:397 -msgid "Shape Offset:" -msgstr "Offset forme:" - -#: pcbnew/dialog_edit_module.cpp:404 -msgid "Shape Rotation:" -msgstr "Rot de la forme" - -#: pcbnew/dialog_edit_module.cpp:441 -msgid "3D Shape:" -msgstr "Forme 3D:" - -#: pcbnew/dialog_edit_module.cpp:730 -msgid "Reference or Value cannot be deleted" -msgstr "Référence ou Valeur ne peut etre effacée" - -#: pcbnew/dialog_edit_module.cpp:734 -#, c-format -msgid "Delete [%s]" -msgstr "Supprimer [%s]" +#: pcbnew/move_or_drag_track.cpp:763 +msgid "Unable to drag this segment: two collinear segments" +msgstr "Impossible de drag ce segment: 2 segments alignés" #: pcbnew/gen_modules_placefile.cpp:71 msgid "No Modules for Automated Placement" @@ -3872,405 +4162,250 @@ msgstr "Fichier placement cot msgid "Module count" msgstr "Nb Modules" -#: pcbnew/onrightclick.cpp:91 +#: pcbnew/dialog_edit_module.cpp:40 +msgid "Module properties" +msgstr "Propriétés du Module" + +#: pcbnew/dialog_edit_module.cpp:95 +msgid "Properties" +msgstr "Propriétés" + +#: pcbnew/dialog_edit_module.cpp:99 +#: pcbnew/dialog_edit_module.cpp:108 +#: pcbnew/dialog_edit_module.cpp:139 +msgid "3D settings" +msgstr "3D Caract" + +#: pcbnew/dialog_edit_module.cpp:184 +msgid "Change module(s)" +msgstr "Change module(s)" + +#: pcbnew/dialog_edit_module.cpp:188 +msgid "Goto Module Editor" +msgstr "Ouvrir Editeur de modules" + +#: pcbnew/dialog_edit_module.cpp:195 +#: eeschema/fieldedi.cpp:283 +#: eeschema/onrightclick.cpp:334 +#: eeschema/dialog_edit_component_in_lib.cpp:203 +#: eeschema/libedpart.cpp:246 +msgid "Doc" +msgstr "Doc" + +#: pcbnew/dialog_edit_module.cpp:202 +msgid "Keywords" +msgstr "Mots Cles" + +#: pcbnew/dialog_edit_module.cpp:209 +msgid "Fields:" +msgstr "Champs:" + +#: pcbnew/dialog_edit_module.cpp:219 +msgid "Add Field" +msgstr "Ajouter Champ" + +#: pcbnew/dialog_edit_module.cpp:224 +#: eeschema/onrightclick.cpp:264 +msgid "Edit Field" +msgstr "Editer Champ" + +#: pcbnew/dialog_edit_module.cpp:229 +msgid "Delete Field" +msgstr "Supprimer Champ" + +#: pcbnew/dialog_edit_module.cpp:236 +#: common/common.cpp:242 +msgid "Component" +msgstr "Composant" + +#: pcbnew/dialog_edit_module.cpp:236 +msgid "Copper" +msgstr "Cuivre" + +#: pcbnew/dialog_edit_module.cpp:281 +msgid "Orient (0.1 deg)" +msgstr "Orient (0.1 deg)" + +#: pcbnew/dialog_edit_module.cpp:291 +msgid "Normal+Insert" +msgstr "Normal+Insert" + +#: pcbnew/dialog_edit_module.cpp:291 +msgid "Virtual" +msgstr "Virtuel" + +#: pcbnew/dialog_edit_module.cpp:292 +msgid "Attributs" +msgstr "Attributs" + +#: pcbnew/dialog_edit_module.cpp:295 +msgid "Use this attribute for most non smd components" +msgstr "Utiliser cet attribut pour la plupart des composants" + +#: pcbnew/dialog_edit_module.cpp:297 +msgid "" +"Use this attribute for smd components.\n" +"Only components with this option are put in the footprint position list file" +msgstr "" +"Uiliser cet attribut pour les composants CMS.\n" +"Seuls les composantsavec cette option sont mis dans le fichier de position des composants" + +#: pcbnew/dialog_edit_module.cpp:299 +msgid "Use this attribute for \"virtual\" components drawn on board (like a old ISA PC bus connector)" +msgstr "Uiliser cet attribut pour les composants \"virtuels\" directement dessinés sur le PCB (tel que les vieux connecteurs ISA de PC)" + +#: pcbnew/dialog_edit_module.cpp:323 +msgid "Free" +msgstr "Libre" + +#: pcbnew/dialog_edit_module.cpp:323 +msgid "Locked" +msgstr "Verrouillé" + +#: pcbnew/dialog_edit_module.cpp:325 +msgid "Move and Auto Place" +msgstr "Move et Placement Automatique" + +#: pcbnew/dialog_edit_module.cpp:330 +msgid "Enable hotkey move commands and Auto Placement" +msgstr "Autoriser les commandes clavier de déplacement et l'auto placement" + +#: pcbnew/dialog_edit_module.cpp:331 +msgid "Disable hotkey move commands and Auto Placement" +msgstr "Interdire les commandes clavier de déplacement et l'auto placement" + +#: pcbnew/dialog_edit_module.cpp:335 +msgid "Rot 90" +msgstr "Rot 90" + +#: pcbnew/dialog_edit_module.cpp:343 +msgid "Rot 180" +msgstr "Rot 180" + +#: pcbnew/dialog_edit_module.cpp:380 +msgid "3D Shape Name" +msgstr "3D forme" + +#: pcbnew/dialog_edit_module.cpp:401 +msgid "Add 3D Shape" +msgstr "Ajout Forme 3D" + +#: pcbnew/dialog_edit_module.cpp:407 +msgid "Remove 3D Shape" +msgstr "Suppr. Forme 3D:" + +#: pcbnew/dialog_edit_module.cpp:413 +msgid "Shape Scale:" +msgstr "Echelle de la forme:" + +#: pcbnew/dialog_edit_module.cpp:420 +msgid "Shape Offset:" +msgstr "Offset forme:" + +#: pcbnew/dialog_edit_module.cpp:429 +msgid "Shape Rotation:" +msgstr "Rot de la forme" + +#: pcbnew/dialog_edit_module.cpp:469 +msgid "3D Shape:" +msgstr "Forme 3D:" + +#: pcbnew/dialog_edit_module.cpp:774 +msgid "Reference or Value cannot be deleted" +msgstr "Référence ou Valeur ne peut etre effacée" + +#: pcbnew/dialog_edit_module.cpp:778 #, c-format -msgid "Track %.1f" -msgstr "Piste %.1f" +msgid "Delete [%s]" +msgstr "Supprimer [%s]" -#: pcbnew/onrightclick.cpp:93 -#, c-format -msgid "Track %.3f" -msgstr "Piste %.3f" +#: pcbnew/modedit_onclick.cpp:224 +msgid "Mirror Block (alt + drag mouse)" +msgstr "Bloc Miroir (alt + drag mouse)" -#: pcbnew/onrightclick.cpp:106 -#, c-format -msgid "Via %.1f" -msgstr "Via %.1f" +#: pcbnew/modedit_onclick.cpp:254 +msgid "Scale" +msgstr "Echelle" -#: pcbnew/onrightclick.cpp:108 -#, c-format -msgid "Via %.3f" -msgstr "Via %.3f" +#: pcbnew/modedit_onclick.cpp:255 +msgid "Scale X" +msgstr "Echelle X" -#: pcbnew/onrightclick.cpp:190 -msgid "Get and Move Footprint" -msgstr "Sel et Dépl.t module" +#: pcbnew/modedit_onclick.cpp:256 +msgid "Scale Y" +msgstr "Echelle Y" -#: pcbnew/onrightclick.cpp:203 -msgid "Lock Module" -msgstr "Verrouiller Modules" +#: pcbnew/modedit_onclick.cpp:259 +msgid "Edit Module" +msgstr "Edit Module" -#: pcbnew/onrightclick.cpp:205 -msgid "Free Module" -msgstr "Libère Module" +#: pcbnew/modedit_onclick.cpp:262 +msgid "Transform Module" +msgstr "Transforme Module" -#: pcbnew/onrightclick.cpp:209 -msgid "Auto place Module" -msgstr "Auto place Module" +#: pcbnew/modedit_onclick.cpp:270 +msgid "Move Pad" +msgstr "Déplace Pad" -#: pcbnew/onrightclick.cpp:215 -msgid "Autoroute" -msgstr "Autoroute" +#: pcbnew/modedit_onclick.cpp:278 +msgid "delete Pad" +msgstr "Supprimer Pad" -#: pcbnew/onrightclick.cpp:234 -msgid "Autoroute Pad" -msgstr "Autoroute Pad" +#: pcbnew/modedit_onclick.cpp:291 +msgid "Move Text Mod." +msgstr "Move Texte Mod." -#: pcbnew/onrightclick.cpp:235 -msgid "Autoroute Net" -msgstr "Autoroute Net" +#: pcbnew/modedit_onclick.cpp:294 +msgid "Rotate Text Mod." +msgstr "Rot. Texte Mod." -#: pcbnew/onrightclick.cpp:257 -msgid "Move Drawing" -msgstr "Déplace Tracé" +#: pcbnew/modedit_onclick.cpp:296 +msgid "Edit Text Mod." +msgstr "Edit Texte Mod." -#: pcbnew/onrightclick.cpp:262 -msgid "End Drawing" -msgstr "Fin tracé" +#: pcbnew/modedit_onclick.cpp:299 +msgid "Delete Text Mod." +msgstr "Supprimer Texte Mod." -#: pcbnew/onrightclick.cpp:264 -msgid "Edit Drawing" -msgstr "Edit Tracé" +#: pcbnew/modedit_onclick.cpp:306 +msgid "End edge" +msgstr "Fin contour" -#: pcbnew/onrightclick.cpp:265 -msgid "Delete Drawing" -msgstr "Supprimer Tracé" +#: pcbnew/modedit_onclick.cpp:309 +msgid "Move edge" +msgstr "Déplace contour" -#: pcbnew/onrightclick.cpp:272 -msgid "End edge zone" -msgstr "Fin contour Zone" +#: pcbnew/modedit_onclick.cpp:312 +msgid "Place edge" +msgstr "Place contour" -#: pcbnew/onrightclick.cpp:275 -msgid "Delete edge zone" -msgstr "Supprimer Contour Zone" +#: pcbnew/modedit_onclick.cpp:317 +msgid "Edit Width (Current)" +msgstr "Edit Epaisseur (Courant)" -#: pcbnew/onrightclick.cpp:291 -msgid "Edit Zone" -msgstr "Editer Zone" +#: pcbnew/modedit_onclick.cpp:319 +msgid "Edit Width (All)" +msgstr "Edit Epaisseur (Tous)" -#: pcbnew/onrightclick.cpp:293 -msgid "Delete Zone" -msgstr "Supprimer Zone" +#: pcbnew/modedit_onclick.cpp:321 +msgid "Edit Layer (Current)" +msgstr "Edit Couche (Courant)" -#: pcbnew/onrightclick.cpp:298 -msgid "Delete Marker" -msgstr "Effacer Marqueur" +#: pcbnew/modedit_onclick.cpp:323 +msgid "Edit Layer (All)" +msgstr "Edit Couche (Tous)" -#: pcbnew/onrightclick.cpp:305 -msgid "Edit Cotation" -msgstr "Editer Cotation" +#: pcbnew/modedit_onclick.cpp:325 +msgid "Delete edge" +msgstr "Effacement contour" -#: pcbnew/onrightclick.cpp:308 -msgid "Delete Cotation" -msgstr "Supprimer Cotation" +#: pcbnew/modedit_onclick.cpp:366 +msgid "Set Width" +msgstr "Ajuste Epaiss" -#: pcbnew/onrightclick.cpp:315 -msgid "Move Mire" -msgstr "Déplace Mire" - -#: pcbnew/onrightclick.cpp:318 -msgid "Edit Mire" -msgstr "Edit Mire" - -#: pcbnew/onrightclick.cpp:320 -msgid "Delete Mire" -msgstr "Supprimer Mire" - -#: pcbnew/onrightclick.cpp:350 -msgid "Fill zone" -msgstr "Remplir zone" - -#: pcbnew/onrightclick.cpp:358 -msgid "Select Net" -msgstr "Sélection Net" - -#: pcbnew/onrightclick.cpp:363 -msgid "Delete Zone Limit" -msgstr "Supprimer Limite de Zone" - -#: pcbnew/onrightclick.cpp:367 -#: pcbnew/onrightclick.cpp:378 -#: pcbnew/onrightclick.cpp:391 -#: pcbnew/onrightclick.cpp:450 -msgid "Select Working Layer" -msgstr "Sélection de la couche de travail" - -#: pcbnew/onrightclick.cpp:376 -#: pcbnew/onrightclick.cpp:447 -msgid "Select Track Width" -msgstr "Sélection Epais. Piste" - -#: pcbnew/onrightclick.cpp:380 -msgid "Select layer pair for vias" -msgstr "Selection couple de couches pour Vias" - -#: pcbnew/onrightclick.cpp:397 -msgid "Footprint documentation" -msgstr "Documentation des modules" - -#: pcbnew/onrightclick.cpp:406 -msgid "Glob Move and Place" -msgstr "Move et Place Globaux" - -#: pcbnew/onrightclick.cpp:408 -msgid "Free All Modules" -msgstr "Libère tous les Modules" - -#: pcbnew/onrightclick.cpp:410 -msgid "Fixe All Modules" -msgstr "Verrouille tous les Modules" - -#: pcbnew/onrightclick.cpp:413 -msgid "Move All Modules" -msgstr "Déplace tous les Modules" - -#: pcbnew/onrightclick.cpp:414 -msgid "Move New Modules" -msgstr "Déplace nouveaux Modules" - -#: pcbnew/onrightclick.cpp:416 -msgid "Autoplace All Modules" -msgstr "Autoplace Tous Modules" - -#: pcbnew/onrightclick.cpp:417 -msgid "Autoplace New Modules" -msgstr "AutoPlace nouveaux Modules" - -#: pcbnew/onrightclick.cpp:418 -msgid "Autoplace Next Module" -msgstr "Autoplace Module suivant" - -#: pcbnew/onrightclick.cpp:421 -msgid "Orient All Modules" -msgstr "Oriente Tous Modules" - -#: pcbnew/onrightclick.cpp:427 -msgid "Global Autoroute" -msgstr "Autoroutage global" - -#: pcbnew/onrightclick.cpp:429 -msgid "Select layer pair" -msgstr "Selection couple de couches" - -#: pcbnew/onrightclick.cpp:431 -msgid "Autoroute All Modules" -msgstr "Autoroute Tous Modules" - -#: pcbnew/onrightclick.cpp:433 -msgid "Reset Unrouted" -msgstr "Réinit Non routés" - -#: pcbnew/onrightclick.cpp:438 -msgid "Global AutoRouter" -msgstr "Autorouteur Global" - -#: pcbnew/onrightclick.cpp:440 -msgid "Read Global AutoRouter Data" -msgstr "Lire Données de L'autorouteur global" - -#: pcbnew/onrightclick.cpp:476 -msgid "Flip Block (alt + drag mouse)" -msgstr "Inversion Bloc (alt + drag mouse)" - -#: pcbnew/onrightclick.cpp:497 -msgid "Drag Via" -msgstr "Drag Via" - -#: pcbnew/onrightclick.cpp:500 -msgid "Edit Via" -msgstr "Edit Via" - -#: pcbnew/onrightclick.cpp:502 -msgid "Set via hole to Default" -msgstr "Ajuste perçage via à défaut" - -#: pcbnew/onrightclick.cpp:503 -msgid "Set via hole to alt value" -msgstr "Ajuste perçage via à valeur alternative" - -#: pcbnew/onrightclick.cpp:504 -msgid "Set the via hole alt value" -msgstr "Ajuste la valeur alt. perçage via" - -#: pcbnew/onrightclick.cpp:505 -msgid "Export Via hole to alt value" -msgstr "Exporte perçage via à valeur alt." - -#: pcbnew/onrightclick.cpp:506 -msgid "Export via hole to others id vias" -msgstr "Exporte perçage via aux autres semblables." - -#: pcbnew/onrightclick.cpp:507 -msgid "Set ALL via holes to default" -msgstr "Ajuste perçage TOUTES vias au défaut" - -#: pcbnew/onrightclick.cpp:520 -msgid "Move Node" -msgstr "Déplace Noeud" - -#: pcbnew/onrightclick.cpp:525 -msgid "Drag Segments, keep slope" -msgstr "Drag Segments, garder direction" - -#: pcbnew/onrightclick.cpp:527 -msgid "Drag Segment" -msgstr "Drag Segment" - -#: pcbnew/onrightclick.cpp:530 -msgid "Move Segment" -msgstr "Déplace Segment" - -#: pcbnew/onrightclick.cpp:533 -msgid "Break Track" -msgstr "Briser piste" - -#: pcbnew/onrightclick.cpp:541 -msgid "Place Node" -msgstr "Place noeud" - -#: pcbnew/onrightclick.cpp:548 -msgid "End Track (end)" -msgstr "Terminer Pistes (end)" - -#: pcbnew/onrightclick.cpp:549 -msgid "Place Via (V)" -msgstr "Place Via (V)" - -#: pcbnew/onrightclick.cpp:555 -msgid "Change Width" -msgstr "Change Largeur" - -#: pcbnew/onrightclick.cpp:557 -msgid "Edit Segment" -msgstr "Edit Segment" - -#: pcbnew/onrightclick.cpp:561 -msgid "Edit Track" -msgstr "Editer Piste" - -#: pcbnew/onrightclick.cpp:563 -msgid "Edit Net" -msgstr "Edit Net" - -#: pcbnew/onrightclick.cpp:565 -msgid "Edit ALL Tracks and Vias" -msgstr "Editer TOUTES Pistes et Vias" - -#: pcbnew/onrightclick.cpp:567 -msgid "Edit ALL Vias (no track)" -msgstr "Editer TOUTES Vias (pas les pistes)" - -#: pcbnew/onrightclick.cpp:569 -msgid "Edit ALL Tracks (no via)" -msgstr "Editer TOUTES Pistes (pas les vias)" - -#: pcbnew/onrightclick.cpp:577 -msgid "Delete Segment (backspace)" -msgstr "Supprimer Segment (backspace)" - -#: pcbnew/onrightclick.cpp:581 -msgid "Delete Track (delete)" -msgstr "Supprimer Piste (Suppr)" - -#: pcbnew/onrightclick.cpp:583 -msgid "Delete Net" -msgstr "Supprimer Net" - -#: pcbnew/onrightclick.cpp:587 -msgid "Set Flags" -msgstr "Ajust. Flags" - -#: pcbnew/onrightclick.cpp:588 -msgid "Locked: Yes" -msgstr "Verrou: Oui" - -#: pcbnew/onrightclick.cpp:589 -msgid "Locked: No" -msgstr "Verrou: Non" - -#: pcbnew/onrightclick.cpp:597 -msgid "Track Locked: Yes" -msgstr "Piste verrouillée: Oui" - -#: pcbnew/onrightclick.cpp:598 -msgid "Track Locked: No" -msgstr "Piste verrouillée: Non" - -#: pcbnew/onrightclick.cpp:600 -msgid "Net Locked: Yes" -msgstr "Net verrouillé: Oui" - -#: pcbnew/onrightclick.cpp:601 -msgid "Net Locked: No" -msgstr "Net verrouillé: Non" - -#: pcbnew/onrightclick.cpp:615 -#: eeschema/component_class.cpp:51 -msgid "Footprint" -msgstr "Module" - -#: pcbnew/onrightclick.cpp:623 -msgid "Move (M)" -msgstr "Move (M)" - -#: pcbnew/onrightclick.cpp:625 -msgid "Drag (G)" -msgstr "Drag (G)" - -#: pcbnew/onrightclick.cpp:628 -msgid "Rotate + (R)" -msgstr "Rotation + (R)" - -#: pcbnew/onrightclick.cpp:630 -#: eeschema/onrightclick.cpp:275 -msgid "Rotate -" -msgstr "Rotation -" - -#: pcbnew/onrightclick.cpp:632 -msgid "Flip (S)" -msgstr "Change face (S)" - -#: pcbnew/onrightclick.cpp:658 -msgid "Footprint ref" -msgstr "Référence Module" - -#: pcbnew/onrightclick.cpp:662 -msgid "Footprint value" -msgstr "Valeur Module" - -#: pcbnew/onrightclick.cpp:666 -msgid "Footprint text" -msgstr "Texte Module" - -#: pcbnew/onrightclick.cpp:676 -#: pcbnew/onrightclick.cpp:705 -#: pcbnew/onrightclick.cpp:748 -msgid "Move" -msgstr "Move" - -#: pcbnew/onrightclick.cpp:697 -msgid "Pad" -msgstr "Pad" - -#: pcbnew/onrightclick.cpp:707 -msgid "Drag" -msgstr "Drag" - -#: pcbnew/onrightclick.cpp:722 -msgid "delete" -msgstr "Effacer" - -#: pcbnew/onrightclick.cpp:736 -msgid "Pcb Text" -msgstr "Texte Pcb" - -#: pcbnew/move_or_drag_track.cpp:710 -msgid "Unable to drag this segment: too many segments connected" -msgstr "Impossible de drag ce segment: trop de segments connectés" - -#: pcbnew/move_or_drag_track.cpp:763 -msgid "Unable to drag this segment: two collinear segments" -msgstr "Impossible de drag ce segment: 2 segments alignés" +#: pcbnew/moduleframe.cpp:177 +msgid "Module Editor: module modified!, Continue ?" +msgstr "Editeur de Module: module modifié! Continuer ?" #: pcbnew/netlist.cpp:95 #, c-format @@ -4342,95 +4477,6 @@ msgstr "S msgid "Component [%s]: footprint <%s> not found" msgstr "Composant [%s]: Module <%sw non trouvé en librairies" -#: pcbnew/pcbframe.cpp:253 -msgid "Board modified, Save before exit ?" -msgstr "Circuit Imprimé modifiée, Sauver avant de quitter ?" - -#: pcbnew/pcbframe.cpp:254 -#: eeschema/schframe.cpp:185 -#: cvpcb/cvframe.cpp:169 -#: common/confirm.cpp:109 -msgid "Confirmation" -msgstr "Confirmation" - -#: pcbnew/pcbframe.cpp:346 -msgid "DRC Off (Disable !!!), Currently: DRC is active" -msgstr "DRC off (désactivée !!!), actuellement DRC active" - -#: pcbnew/pcbframe.cpp:346 -msgid "DRC On (Currently: DRC is inactive !!!)" -msgstr "DRC On (Actuellement, DRC désactivée !!!)" - -#: pcbnew/pcbframe.cpp:356 -msgid "Polar Coords not show" -msgstr "Coord Polaires non affichées" - -#: pcbnew/pcbframe.cpp:356 -msgid "Display Polar Coords" -msgstr "Affichage coord Polaires" - -#: pcbnew/pcbframe.cpp:361 -#: eeschema/schframe.cpp:263 -msgid "Grid not show" -msgstr "Grille non montrée" - -#: pcbnew/pcbframe.cpp:361 -#: eeschema/schframe.cpp:263 -msgid "Show Grid" -msgstr "Afficher grille" - -#: pcbnew/pcbframe.cpp:369 -msgid "General ratsnest not show" -msgstr "Chevelu général non affiché" - -#: pcbnew/pcbframe.cpp:369 -msgid "Show General ratsnest" -msgstr "Afficher le chevelu général" - -#: pcbnew/pcbframe.cpp:374 -msgid "Module ratsnest not show" -msgstr "Ne pas montrer le chevelu du module pendant déplacement" - -#: pcbnew/pcbframe.cpp:374 -msgid "Show Module ratsnest" -msgstr "Montrer le chevelu du module" - -#: pcbnew/pcbframe.cpp:379 -msgid "Disable Auto Delete old Track" -msgstr "Ne pas Autoriser l'effacement automatique des pistes" - -#: pcbnew/pcbframe.cpp:379 -msgid "Enable Auto Delete old Track" -msgstr "Autoriser l'effacement automatique des pistes" - -#: pcbnew/pcbframe.cpp:384 -msgid "Do not Show Zones" -msgstr "Ne pas monter Zones" - -#: pcbnew/pcbframe.cpp:389 -msgid "Show Pads Sketch mode" -msgstr "Afficher pastilles en contour" - -#: pcbnew/pcbframe.cpp:389 -msgid "Show pads filled mode" -msgstr "Afficher pastilles en mode plein" - -#: pcbnew/pcbframe.cpp:394 -msgid "Show Tracks Sketch mode" -msgstr "Afficher pistes en contour" - -#: pcbnew/pcbframe.cpp:394 -msgid "Show Tracks filled mode" -msgstr "Afficher pistes en mode plein" - -#: pcbnew/pcbframe.cpp:399 -msgid "Normal Contrast Mode Display" -msgstr "Mode d'affichage Contraste normal" - -#: pcbnew/pcbframe.cpp:433 -msgid "Via" -msgstr "Via" - #: pcbnew/plotgerb.cpp:72 msgid "unable to create file " msgstr "Impossible de créer fichier " @@ -4723,11 +4769,6 @@ msgstr "Test module" msgid "Add Pads" msgstr "Addition de \"pins\"" -#: pcbnew/tool_modedit.cpp:175 -#: pcbnew/modedit.cpp:313 -msgid "Place anchor" -msgstr "Place Ancre" - #: pcbnew/tool_modedit.cpp:234 msgid "Show Texts Sketch" msgstr "Afficher textes en contour" @@ -4751,46 +4792,9 @@ msgstr "Grille %.1f" msgid "Grid %.3f" msgstr "Grille %.3f" -#: pcbnew/modedit.cpp:175 -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:176 -msgid "" -"\n" -"Cannot update the footprint" -msgstr "" -"\n" -"Ne peut mettre à jour le module" - -#: pcbnew/modedit.cpp:184 -msgid "A footprint source was found on the main board" -msgstr "Un module source a été trouvé sur le PCB principal" - -#: pcbnew/modedit.cpp:185 -msgid "" -"\n" -"Cannot insert this footprint" -msgstr "" -"\n" -"Ne peut insérer cd module" - -#: pcbnew/modedit.cpp:296 -msgid "Add Pad" -msgstr "Ajouter Pastilles" - -#: pcbnew/modedit.cpp:309 -#: eeschema/schedit.cpp:293 -msgid "Add Drawing" -msgstr "Ajout d'éléments graphiques" - -#: pcbnew/moduleframe.cpp:176 -msgid "Module Editor: module modified!, Continue ?" -msgstr "Editeur de Module: module modifié! Continuer ?" - #: eeschema/save_schemas.cpp:71 #: eeschema/files-io.cpp:62 -#: eeschema/eeload.cpp:56 +#: eeschema/eeload.cpp:59 msgid "Schematic files:" msgstr "Fichiers schématiques:" @@ -4809,6 +4813,29 @@ msgstr "Sauver fichier " msgid "File write operation failed." msgstr "Erreur sur écriture sur fichier." +#: eeschema/sheet.cpp:162 +#: common/svg_print.cpp:224 +#: share/svg_print.cpp:226 +msgid "Filename:" +msgstr "Nom Fichier:" + +#: eeschema/sheet.cpp:174 +msgid "Sheetname:" +msgstr "Nom feuille" + +#: eeschema/sheet.cpp:284 +msgid "No Filename! Aborted" +msgstr "Pas de Nom de Fichier! Abandon" + +#: eeschema/sheet.cpp:297 +#, c-format +msgid "A file named %s exists, load it ?" +msgstr "Un fichier %s existe, Le charger ?" + +#: eeschema/sheet.cpp:564 +msgid "Ok to cleanup this sheet" +msgstr "Ok pour nettoyer cette feuille" + #: eeschema/fieldedi.cpp:143 msgid "Componant properties" msgstr "Propriétés du composant" @@ -4893,19 +4920,19 @@ msgid "Delete All" msgstr "Tout Supprimer" #: eeschema/fieldedi.cpp:346 +#: eeschema/editpart.cpp:223 #: eeschema/libedpart.cpp:500 #: eeschema/edit_component_in_lib.cpp:429 #: eeschema/dialog_edit_component_in_schematic.cpp:214 -#: eeschema/editpart.cpp:220 msgid "Show Text" msgstr "Texte visible" #: eeschema/fieldedi.cpp:352 #: eeschema/symbtext.cpp:167 +#: eeschema/editpart.cpp:229 #: eeschema/libedpart.cpp:507 #: eeschema/edit_component_in_lib.cpp:433 #: eeschema/dialog_edit_component_in_schematic.cpp:218 -#: eeschema/editpart.cpp:226 msgid "Vertical" msgstr "Vertical" @@ -4995,7 +5022,7 @@ msgid "Rect Delete" msgstr "Supprimer Rect" #: eeschema/libedit_onrightclick.cpp:148 -#: eeschema/onrightclick.cpp:374 +#: eeschema/onrightclick.cpp:398 msgid "Move Text" msgstr "Déplacer Texte" @@ -5032,7 +5059,7 @@ msgid "Segment Delete" msgstr "Supprimer segment" #: eeschema/libedit_onrightclick.cpp:192 -#: eeschema/onrightclick.cpp:251 +#: eeschema/onrightclick.cpp:262 msgid "Move Field" msgstr "Déplace Champ" @@ -5085,7 +5112,7 @@ msgid "Pin Num Size to others" msgstr "Change taille Num pin autres pins" #: eeschema/libedit_onrightclick.cpp:255 -#: eeschema/onrightclick.cpp:534 +#: eeschema/onrightclick.cpp:573 msgid "Win. Zoom (Midd butt drag mouse)" msgstr "Win. Zoom (Midd butt drag mouse)" @@ -5098,18 +5125,18 @@ msgid "Mirror Block (ctrl + drag mouse)" msgstr "Bloc Miroir (ctrl + drag mouse)" #: eeschema/libedit_onrightclick.cpp:268 -#: eeschema/onrightclick.cpp:548 +#: eeschema/onrightclick.cpp:588 msgid "Del. Block (shift+ctrl + drag mouse)" msgstr "Effacement Bloc (shift+ctrl + drag mouse)" -#: eeschema/eeconfig.cpp:67 +#: eeschema/eeconfig.cpp:72 #: kicad/files-io.cpp:124 #: gerbview/dcode.cpp:260 #: gerbview/readgerb.cpp:141 msgid "File " msgstr "Fichier " -#: eeschema/eeconfig.cpp:67 +#: eeschema/eeconfig.cpp:72 msgid "not found" msgstr " non trouvé" @@ -5264,14 +5291,14 @@ msgid "Add wire or bus label" msgstr "Addition de labels sur fils ou bus" #: eeschema/tool_sch.cpp:194 -#: eeschema/onrightclick.cpp:447 -#: eeschema/onrightclick.cpp:475 +#: eeschema/onrightclick.cpp:477 +#: eeschema/onrightclick.cpp:509 msgid "Add global label" msgstr "Addition de labels globaux" #: eeschema/tool_sch.cpp:198 -#: eeschema/onrightclick.cpp:441 -#: eeschema/onrightclick.cpp:470 +#: eeschema/onrightclick.cpp:471 +#: eeschema/onrightclick.cpp:503 msgid "Add junction" msgstr "Addition de jonctions" @@ -5292,7 +5319,7 @@ msgid "Add graphic text (comment)" msgstr "Addition de textes graphiques (commentaires)" #: eeschema/tool_sch.cpp:263 -#: eeschema/schframe.cpp:273 +#: eeschema/schframe.cpp:275 msgid "Show Hidden Pins" msgstr "Force affichage des pins invisibles" @@ -5463,18 +5490,79 @@ msgstr " ( Unit msgid "Diff values for %s%d%c (%s) and %s%d%c (%s)" msgstr "Valeurs différentes pour %s%d%c (%s) et %s%d%c (%s)" -#: eeschema/load_one_schematic_file.cpp:100 -msgid "Failed to open " -msgstr "Erreur ouverture " +#: eeschema/sheetlab.cpp:78 +msgid "PinSheet Properties:" +msgstr "Propriétés des Pins de Hierarchie" -#: eeschema/load_one_schematic_file.cpp:105 -msgid "Loading " -msgstr "Chargement " +#: eeschema/sheetlab.cpp:114 +msgid "PinSheet Shape:" +msgstr "Forme Pin de hiérarchie:" -#: eeschema/load_one_schematic_file.cpp:112 -#: eeschema/load_one_schematic_file.cpp:121 -msgid " is NOT EESchema file" -msgstr " n'est PAS un fichier EESchema" +#: eeschema/sheetlab.cpp:395 +msgid "No New Global Label found" +msgstr "Pas de nouveau Global Label trouvé" + +#: eeschema/edit_label.cpp:49 +msgid "Empty Text!" +msgstr "Texte vide" + +#: eeschema/schedit.cpp:281 +msgid "Push/Pop Hierarchy" +msgstr "Naviger dans Hiérarchie" + +#: eeschema/schedit.cpp:285 +msgid "Add NoConnect Flag" +msgstr "Ajoutde symboles de non connexion" + +#: eeschema/schedit.cpp:289 +#: eeschema/hotkeys.cpp:178 +msgid "Add Wire" +msgstr "Ajouter Fils" + +#: eeschema/schedit.cpp:293 +msgid "Add Bus" +msgstr "Addition de Bus" + +#: eeschema/schedit.cpp:301 +msgid "Add Junction" +msgstr "Ajout jonctions" + +#: eeschema/schedit.cpp:305 +msgid "Add Label" +msgstr "Ajout Label" + +#: eeschema/schedit.cpp:309 +msgid "Add Global label" +msgstr "Ajout de labels globaux" + +#: eeschema/schedit.cpp:317 +msgid "Add Wire to Bus Entry" +msgstr "Addition d'entrées de bus (type fil vers bus)" + +#: eeschema/schedit.cpp:321 +msgid "Add Bus to Bus entry" +msgstr "Addition d'entrées de bus (type bus vers bus)" + +#: eeschema/schedit.cpp:325 +msgid "Add Sheet" +msgstr "Ajout de Feuille" + +#: eeschema/schedit.cpp:329 +msgid "Add PinSheet" +msgstr "Ajout Conn. hiérar." + +#: eeschema/schedit.cpp:333 +msgid "Import PinSheet" +msgstr "Importer Connecteur de hiérarchie" + +#: eeschema/schedit.cpp:337 +#: eeschema/hotkeys.cpp:160 +msgid "Add Component" +msgstr "Ajout Composant" + +#: eeschema/schedit.cpp:341 +msgid "Add Power" +msgstr "Add Alims" #: eeschema/optionsframe.cpp:106 #: eeschema/dialog_options.cpp:212 @@ -5643,19 +5731,19 @@ msgstr "Incr msgid "Default Label Size" msgstr "Taille Label par défaut:" -#: eeschema/schframe.cpp:184 +#: eeschema/schframe.cpp:186 msgid "Schematic modified, Save before exit ?" msgstr "Schematique modifiée, Sauver avant de quitter ?" -#: eeschema/schframe.cpp:273 +#: eeschema/schframe.cpp:275 msgid "No show Hidden Pins" msgstr "N'affichage pas les pins invisibles" -#: eeschema/schframe.cpp:276 +#: eeschema/schframe.cpp:278 msgid "Draw lines at any direction" msgstr "Tracer traits de direction quelconque" -#: eeschema/schframe.cpp:277 +#: eeschema/schframe.cpp:279 msgid "Draw lines H, V or 45 deg only" msgstr "Tracer traits H, V ou 45 deg seulement" @@ -5705,28 +5793,18 @@ msgstr "erc" msgid "Reset" msgstr "Défaut" -#: eeschema/sheet.cpp:151 -#: common/svg_print.cpp:224 -#: share/svg_print.cpp:226 -msgid "Filename:" -msgstr "Nom Fichier:" - -#: eeschema/sheet.cpp:157 -msgid "Sheetname:" -msgstr "Nom feuille" - -#: eeschema/sheet.cpp:245 -msgid "No Filename! Aborted" -msgstr "Pas de Nom de Fichier! Abandon" - -#: eeschema/sheet.cpp:258 +#: eeschema/getpart.cpp:106 #, c-format -msgid "A file named %s exists, load it ?" -msgstr "Un fichier %s existe, Le charger ?" +msgid "component selection (%d items loaded):" +msgstr "Sélection Composant (%d items chargés):" -#: eeschema/sheet.cpp:518 -msgid "Ok to cleanup this sheet" -msgstr "Ok pour nettoyer cette feuille" +#: eeschema/getpart.cpp:171 +msgid "Failed to find part " +msgstr "Impossible de trouver le composant " + +#: eeschema/getpart.cpp:171 +msgid " in library" +msgstr " en librairie" #: eeschema/libedit.cpp:38 msgid " Part: " @@ -5865,63 +5943,119 @@ msgstr "" msgid "Nothing found" msgstr " Rien trouvé" -#: eeschema/schedit.cpp:277 -msgid "Push/Pop Hierarchy" -msgstr "Naviger dans Hiérarchie" +#: eeschema/editpart.cpp:139 +#: eeschema/dialog_edit_component_in_schematic.h:53 +msgid "Component properties" +msgstr "Propriétés du composant" -#: eeschema/schedit.cpp:281 -msgid "Add NoConnect Flag" -msgstr "Ajoutde symboles de non connexion" +#: eeschema/editpart.cpp:156 +#: eeschema/dialog_edit_component_in_schematic.cpp:70 +msgid "Component properties (Not found in lib)" +msgstr "Propriétés du composant : non trouvé en librairie" -#: eeschema/schedit.cpp:285 -#: eeschema/hotkeys.cpp:294 -msgid "Add Wire" -msgstr "Ajouter Fils" +#: eeschema/editpart.cpp:185 +#: eeschema/dialog_edit_component_in_schematic.cpp:239 +msgid "Defaults" +msgstr "Defauts" -#: eeschema/schedit.cpp:289 -msgid "Add Bus" -msgstr "Addition de Bus" +#: eeschema/editpart.cpp:246 +#: eeschema/libedpart.cpp:544 +#: eeschema/libedpart.cpp:572 +#: eeschema/libedpart.cpp:616 +#: eeschema/edit_component_in_lib.cpp:451 +#: eeschema/edit_component_in_schematic.cpp:218 +msgid "Pos" +msgstr "Pos" -#: eeschema/schedit.cpp:297 -msgid "Add Junction" -msgstr "Ajout jonctions" +#: eeschema/editpart.cpp:293 +#: eeschema/onrightclick.cpp:319 +#: eeschema/affiche.cpp:137 +msgid "Unit" +msgstr "Unité" -#: eeschema/schedit.cpp:301 -msgid "Add Label" -msgstr "Ajout Label" +#: eeschema/editpart.cpp:295 +#: eeschema/dialog_edit_component_in_schematic.cpp:163 +msgid "Unit:" +msgstr "Unité:" -#: eeschema/schedit.cpp:305 -msgid "Add Global label" -msgstr "Ajout de labels globaux" +#: eeschema/editpart.cpp:310 +#: eeschema/dialog_edit_component_in_schematic.cpp:177 +msgid "Orient:" +msgstr "Orient:" -#: eeschema/schedit.cpp:313 -msgid "Add Wire to Bus Entry" -msgstr "Addition d'entrées de bus (type fil vers bus)" +#: eeschema/editpart.cpp:323 +#: eeschema/dialog_edit_component_in_schematic.cpp:183 +msgid "Mirror --" +msgstr "Miroir--" -#: eeschema/schedit.cpp:317 -msgid "Add Bus to Bus entry" -msgstr "Addition d'entrées de bus (type bus vers bus)" +#: eeschema/editpart.cpp:323 +msgid "Mirror |" +msgstr "Miroir |" -#: eeschema/schedit.cpp:321 -msgid "Add Sheet" -msgstr "Ajout de Feuille" +#: eeschema/editpart.cpp:324 +#: eeschema/dialog_edit_component_in_schematic.cpp:186 +msgid "Mirror:" +msgstr "Miroir:" -#: eeschema/schedit.cpp:325 -msgid "Add PinSheet" -msgstr "Ajout Conn. hiérar." +#: eeschema/editpart.cpp:336 +#: eeschema/onrightclick.cpp:306 +#: eeschema/dialog_edit_component_in_schematic.cpp:193 +#: eeschema/affiche.cpp:143 +msgid "Convert" +msgstr "Convert" -#: eeschema/schedit.cpp:329 -msgid "Import PinSheet" -msgstr "Importer Connecteur de hiérarchie" +#: eeschema/editpart.cpp:348 +#: eeschema/dialog_edit_component_in_lib.cpp:162 +#: eeschema/dialog_create_component.cpp:188 +#: eeschema/libedpart.cpp:466 +#: eeschema/dialog_edit_component_in_schematic.cpp:190 +msgid "Parts are locked" +msgstr "Les parts sont verrouillées" -#: eeschema/schedit.cpp:333 -#: eeschema/hotkeys.cpp:276 -msgid "Add Component" -msgstr "Ajout Composant" +#: eeschema/editpart.cpp:355 +#: eeschema/dialog_edit_component_in_schematic.cpp:197 +msgid "Chip Name:" +msgstr "Nom en librairie" -#: eeschema/schedit.cpp:337 -msgid "Add Power" -msgstr "Add Alims" +#: eeschema/editpart.cpp:381 +#: eeschema/edit_component_in_schematic.cpp:325 +msgid "No Component Name!" +msgstr "Pas de nom de composant!" + +#: eeschema/editpart.cpp:387 +#: eeschema/edit_component_in_schematic.cpp:331 +#, c-format +msgid "Component [%s] not found!" +msgstr "Composant [%s] non trouvé!" + +#: eeschema/editpart.cpp:498 +#: eeschema/edit_component_in_schematic.cpp:448 +msgid "No Field to move" +msgstr "Pas de champ a déplacer" + +#: eeschema/editpart.cpp:531 +#: eeschema/edit_component_in_schematic.cpp:511 +msgid "No Field To Edit" +msgstr "Pas de champ a éditer" + +#: eeschema/editpart.cpp:544 +#: eeschema/edit_component_in_schematic.cpp:525 +msgid "" +"Part is a POWER, value cannot be modified!\n" +"You must create a new power" +msgstr "" +"Composant type ALIMENTATION!\n" +"valeur non modifiable, Vous devez créer un nouveau composant alimentation " + +#: eeschema/editpart.cpp:581 +#: eeschema/edit_component_in_schematic.cpp:568 +msgid "Reference needed !, No change" +msgstr "Référence NECESSAIRE: changement refusé" + +#: eeschema/editpart.cpp:585 +#: eeschema/edit_component_in_schematic.cpp:572 +msgid "Value needed !, No change" +msgstr "Valeur NECESSAIRE: changement refusé" #: eeschema/pinedit.cpp:22 #: eeschema/pinedit-dialog.cpp:317 @@ -5980,6 +6114,256 @@ msgstr " Convert" msgid " Normal" msgstr " Normal" +#: eeschema/onrightclick.cpp:139 +msgid "Leave Sheet" +msgstr "Quitter sous-feuille" + +#: eeschema/onrightclick.cpp:155 +msgid "delete noconn" +msgstr "Supprimer non connexion" + +#: eeschema/onrightclick.cpp:165 +msgid "Move bus entry" +msgstr "Déplacer entrée de bus" + +#: eeschema/onrightclick.cpp:167 +msgid "set bus entry /" +msgstr "Entrée de bus /" + +#: eeschema/onrightclick.cpp:169 +msgid "set bus entry \\" +msgstr "Entrée de bus \\" + +#: eeschema/onrightclick.cpp:171 +msgid "delete bus entry" +msgstr "Supprimer entrée de bus" + +#: eeschema/onrightclick.cpp:175 +msgid "delete Marker" +msgstr "Supprimer Marqueur" + +#: eeschema/onrightclick.cpp:225 +msgid "End drawing" +msgstr "Fin tracé" + +#: eeschema/onrightclick.cpp:227 +msgid "Delete drawing" +msgstr "Supprimer Tracé" + +#: eeschema/onrightclick.cpp:263 +msgid "Rotate Field" +msgstr "Rotation Champ" + +#: eeschema/onrightclick.cpp:282 +msgid "Move Component (M)" +msgstr "Déplace Composant \t(M)" + +#: eeschema/onrightclick.cpp:288 +msgid "Rotate + (R)" +msgstr "Rotation + (R)" + +#: eeschema/onrightclick.cpp:290 +msgid "Mirror -- (X)" +msgstr "Miroir-- (X)" + +#: eeschema/onrightclick.cpp:291 +msgid "Mirror || (Y)" +msgstr "Miroir || (Y)" + +#: eeschema/onrightclick.cpp:292 +msgid "Normal (N)" +msgstr "Normal (N)" + +#: eeschema/onrightclick.cpp:295 +msgid "Orient Component" +msgstr "Oriente Composant" + +#: eeschema/onrightclick.cpp:313 +#, c-format +msgid "Unit %d %c" +msgstr "Unité %d %c" + +#: eeschema/onrightclick.cpp:324 +msgid "Edit Component" +msgstr "Edite Composant" + +#: eeschema/onrightclick.cpp:328 +msgid "Copy Component" +msgstr "Copie composant" + +#: eeschema/onrightclick.cpp:329 +msgid "Delete Component" +msgstr "Supprime Composant" + +#: eeschema/onrightclick.cpp:348 +msgid "Move Glabel" +msgstr "Déplace Label Global" + +#: eeschema/onrightclick.cpp:349 +msgid "Rotate GLabel (R)" +msgstr "Rot. Label Global (R)" + +#: eeschema/onrightclick.cpp:350 +msgid "Edit GLabel" +msgstr "Editer Label Global" + +#: eeschema/onrightclick.cpp:351 +msgid "Delete Glabel" +msgstr "Supprimer Label Global" + +#: eeschema/onrightclick.cpp:355 +#: eeschema/onrightclick.cpp:405 +msgid "Change to Label" +msgstr "Change en Label" + +#: eeschema/onrightclick.cpp:357 +#: eeschema/onrightclick.cpp:382 +msgid "Change to Text" +msgstr "Change en Texte" + +#: eeschema/onrightclick.cpp:359 +#: eeschema/onrightclick.cpp:384 +#: eeschema/onrightclick.cpp:409 +msgid "Change Type" +msgstr "Change Type" + +#: eeschema/onrightclick.cpp:373 +msgid "Move Label" +msgstr "Déplace Label" + +#: eeschema/onrightclick.cpp:374 +msgid "Rotate Label (R)" +msgstr "Rot. Label (R)" + +#: eeschema/onrightclick.cpp:375 +msgid "Edit Label" +msgstr "Editer Label" + +#: eeschema/onrightclick.cpp:376 +msgid "Delete Label" +msgstr "Supprimer Label:" + +#: eeschema/onrightclick.cpp:380 +#: eeschema/onrightclick.cpp:407 +msgid "Change to Glabel" +msgstr "Change en Label Global" + +#: eeschema/onrightclick.cpp:399 +msgid "Rotate Text (R)" +msgstr "Rot. Texte (R)" + +#: eeschema/onrightclick.cpp:400 +msgid "Edit Text" +msgstr "Editer Texte" + +#: eeschema/onrightclick.cpp:401 +msgid "Delete Text" +msgstr "Supprimer Texte" + +#: eeschema/onrightclick.cpp:427 +#: eeschema/onrightclick.cpp:467 +msgid "Break Wire" +msgstr "Briser fil" + +#: eeschema/onrightclick.cpp:430 +msgid "delete junction" +msgstr "Supprimer jonction" + +#: eeschema/onrightclick.cpp:435 +#: eeschema/onrightclick.cpp:461 +msgid "Delete node" +msgstr "Supprimer Noeud" + +#: eeschema/onrightclick.cpp:437 +#: eeschema/onrightclick.cpp:463 +msgid "Delete connection" +msgstr "Supprimer connexion" + +#: eeschema/onrightclick.cpp:454 +msgid "End Wire" +msgstr "Fin Fil" + +#: eeschema/onrightclick.cpp:456 +msgid "Delete Wire" +msgstr "Supprimer Fil" + +#: eeschema/onrightclick.cpp:472 +#: eeschema/onrightclick.cpp:504 +msgid "Add label" +msgstr "Ajout Label" + +#: eeschema/onrightclick.cpp:493 +msgid "End Bus" +msgstr "Fin Bus" + +#: eeschema/onrightclick.cpp:496 +msgid "Delete Bus" +msgstr "Supprimer Bus" + +#: eeschema/onrightclick.cpp:500 +msgid "Break Bus" +msgstr "Briser Bus" + +#: eeschema/onrightclick.cpp:522 +msgid "Enter Sheet" +msgstr "Enter dans Feuille" + +#: eeschema/onrightclick.cpp:524 +msgid "Move Sheet" +msgstr "Déplace Feuille" + +#: eeschema/onrightclick.cpp:529 +msgid "Place Sheet" +msgstr "Place Feuille" + +#: eeschema/onrightclick.cpp:533 +msgid "Edit Sheet" +msgstr "Edite Feuille" + +#: eeschema/onrightclick.cpp:534 +msgid "Resize Sheet" +msgstr "Redimensionne feuille" + +#: eeschema/onrightclick.cpp:537 +msgid "Cleanup PinSheets" +msgstr "Nettoyage de la feuille" + +#: eeschema/onrightclick.cpp:538 +msgid "Delete Sheet" +msgstr "Supprimer Feuille" + +#: eeschema/onrightclick.cpp:551 +msgid "Move PinSheet" +msgstr "Déplace Connecteur de hiérarchie" + +#: eeschema/onrightclick.cpp:553 +msgid "Edit PinSheet" +msgstr "Edit Connecteur de hiérarchie" + +#: eeschema/onrightclick.cpp:556 +msgid "Delete PinSheet" +msgstr "Supprimer Connecteur de hiérarchie" + +#: eeschema/onrightclick.cpp:581 +msgid "Other block commands" +msgstr "Autres commandes de bloc" + +#: eeschema/onrightclick.cpp:582 +msgid "Save Block" +msgstr "Sauver Bloc" + +#: eeschema/onrightclick.cpp:586 +msgid "Drag Block (ctrl + drag mouse)" +msgstr "Drag Bloc (ctrl + drag mouse)" + +#: eeschema/onrightclick.cpp:590 +msgid "Mirror Block ||" +msgstr "Miroir Bloc ||" + +#: eeschema/onrightclick.cpp:594 +msgid "Copy to Clipboard" +msgstr "Copie dans Presse papier" + #: eeschema/netlist_control.cpp:98 #: eeschema/netlist_control.cpp:252 #: gerbview/options.cpp:207 @@ -6185,65 +6569,6 @@ msgstr "> %-28.28s Sheet %-7.7s (feuille %.2d) pos: %3.3f, %3.3f\n" msgid "#End labels\n" msgstr "#End labels\n" -#: eeschema/edit_component_in_schematic.cpp:177 -#: eeschema/edit_component_in_lib.cpp:477 -msgid "Field to edit" -msgstr "Champ à éditer" - -#: eeschema/edit_component_in_schematic.cpp:183 -#: eeschema/edit_component_in_lib.cpp:438 -msgid "Field Name:" -msgstr "Nom Champ" - -#: eeschema/edit_component_in_schematic.cpp:197 -#: eeschema/libedpart.cpp:544 -#: eeschema/libedpart.cpp:572 -#: eeschema/libedpart.cpp:616 -#: eeschema/edit_component_in_lib.cpp:451 -#: eeschema/editpart.cpp:242 -msgid "Pos" -msgstr "Pos" - -#: eeschema/edit_component_in_schematic.cpp:291 -#: eeschema/editpart.cpp:366 -msgid "No Component Name!" -msgstr "Pas de nom de composant!" - -#: eeschema/edit_component_in_schematic.cpp:297 -#: eeschema/editpart.cpp:372 -#, c-format -msgid "Component [%s] not found!" -msgstr "Composant [%s] non trouvé!" - -#: eeschema/edit_component_in_schematic.cpp:404 -#: eeschema/editpart.cpp:474 -msgid "No Field to move" -msgstr "Pas de champ a déplacer" - -#: eeschema/edit_component_in_schematic.cpp:464 -#: eeschema/editpart.cpp:506 -msgid "No Field To Edit" -msgstr "Pas de champ a éditer" - -#: eeschema/edit_component_in_schematic.cpp:477 -#: eeschema/editpart.cpp:518 -msgid "" -"Part is a POWER, value cannot be modified!\n" -"You must create a new power" -msgstr "" -"Composant type ALIMENTATION!\n" -"valeur non modifiable, Vous devez créer un nouveau composant alimentation " - -#: eeschema/edit_component_in_schematic.cpp:518 -#: eeschema/editpart.cpp:554 -msgid "Reference needed !, No change" -msgstr "Référence NECESSAIRE: changement refusé" - -#: eeschema/edit_component_in_schematic.cpp:522 -#: eeschema/editpart.cpp:558 -msgid "Value needed !, No change" -msgstr "Valeur NECESSAIRE: changement refusé" - #: eeschema/dialog_set_status.cpp:135 #: cvpcb/dialog_cvpcb_config.cpp:140 msgid "&PcbNew" @@ -6316,269 +6641,6 @@ msgstr "Librairies:" msgid "Library files path:" msgstr "Chemin Fichiers Librairies:" -#: eeschema/onrightclick.cpp:135 -msgid "Leave Sheet" -msgstr "Quitter sous-feuille" - -#: eeschema/onrightclick.cpp:150 -msgid "delete noconn" -msgstr "Supprimer non connexion" - -#: eeschema/onrightclick.cpp:160 -msgid "Move bus entry" -msgstr "Déplacer entrée de bus" - -#: eeschema/onrightclick.cpp:162 -msgid "set bus entry /" -msgstr "Entrée de bus /" - -#: eeschema/onrightclick.cpp:163 -msgid "set bus entry \\" -msgstr "Entrée de bus \\" - -#: eeschema/onrightclick.cpp:165 -msgid "delete bus entry" -msgstr "Supprimer entrée de bus" - -#: eeschema/onrightclick.cpp:169 -msgid "delete Marker" -msgstr "Supprimer Marqueur" - -#: eeschema/onrightclick.cpp:216 -msgid "End drawing" -msgstr "Fin tracé" - -#: eeschema/onrightclick.cpp:218 -msgid "Delete drawing" -msgstr "Supprimer Tracé" - -#: eeschema/onrightclick.cpp:252 -msgid "Rotate Field" -msgstr "Rotation Champ" - -#: eeschema/onrightclick.cpp:269 -msgid "Move Component (M)" -msgstr "Déplace Composant \t(M)" - -#: eeschema/onrightclick.cpp:274 -msgid "Rotate + (R)" -msgstr "Rotation + (R)" - -#: eeschema/onrightclick.cpp:276 -msgid "Mirror -- (X)" -msgstr "Miroir-- (X)" - -#: eeschema/onrightclick.cpp:277 -msgid "Mirror || (Y)" -msgstr "Miroir || (Y)" - -#: eeschema/onrightclick.cpp:278 -msgid "Normal (N)" -msgstr "Normal (N)" - -#: eeschema/onrightclick.cpp:280 -msgid "Orient Component" -msgstr "Oriente Composant" - -#: eeschema/onrightclick.cpp:291 -#: eeschema/dialog_edit_component_in_schematic.cpp:193 -#: eeschema/editpart.cpp:323 -#: eeschema/affiche.cpp:143 -msgid "Convert" -msgstr "Convert" - -#: eeschema/onrightclick.cpp:297 -#, c-format -msgid "Unit %d %c" -msgstr "Unité %d %c" - -#: eeschema/onrightclick.cpp:301 -#: eeschema/editpart.cpp:287 -#: eeschema/affiche.cpp:137 -msgid "Unit" -msgstr "Unité" - -#: eeschema/onrightclick.cpp:305 -msgid "Edit Component" -msgstr "Edite Composant" - -#: eeschema/onrightclick.cpp:309 -msgid "Copy Component" -msgstr "Copie composant" - -#: eeschema/onrightclick.cpp:310 -msgid "Delete Component" -msgstr "Supprime Composant" - -#: eeschema/onrightclick.cpp:328 -msgid "Move Glabel" -msgstr "Déplace Label Global" - -#: eeschema/onrightclick.cpp:329 -msgid "Rotate GLabel (R)" -msgstr "Rot. Label Global (R)" - -#: eeschema/onrightclick.cpp:330 -msgid "Edit GLabel" -msgstr "Editer Label Global" - -#: eeschema/onrightclick.cpp:331 -msgid "Delete Glabel" -msgstr "Supprimer Label Global" - -#: eeschema/onrightclick.cpp:335 -#: eeschema/onrightclick.cpp:381 -msgid "Change to Label" -msgstr "Change en Label" - -#: eeschema/onrightclick.cpp:337 -#: eeschema/onrightclick.cpp:360 -msgid "Change to Text" -msgstr "Change en Texte" - -#: eeschema/onrightclick.cpp:339 -#: eeschema/onrightclick.cpp:362 -#: eeschema/onrightclick.cpp:385 -msgid "Change Type" -msgstr "Change Type" - -#: eeschema/onrightclick.cpp:351 -msgid "Move Label" -msgstr "Déplace Label" - -#: eeschema/onrightclick.cpp:352 -msgid "Rotate Label (R)" -msgstr "Rot. Label (R)" - -#: eeschema/onrightclick.cpp:353 -msgid "Edit Label" -msgstr "Editer Label" - -#: eeschema/onrightclick.cpp:354 -msgid "Delete Label" -msgstr "Supprimer Label:" - -#: eeschema/onrightclick.cpp:358 -#: eeschema/onrightclick.cpp:383 -msgid "Change to Glabel" -msgstr "Change en Label Global" - -#: eeschema/onrightclick.cpp:375 -msgid "Rotate Text (R)" -msgstr "Rot. Texte (R)" - -#: eeschema/onrightclick.cpp:376 -msgid "Edit Text" -msgstr "Editer Texte" - -#: eeschema/onrightclick.cpp:377 -msgid "Delete Text" -msgstr "Supprimer Texte" - -#: eeschema/onrightclick.cpp:402 -#: eeschema/onrightclick.cpp:437 -msgid "Break Wire" -msgstr "Briser fil" - -#: eeschema/onrightclick.cpp:405 -msgid "delete junction" -msgstr "Supprimer jonction" - -#: eeschema/onrightclick.cpp:410 -#: eeschema/onrightclick.cpp:432 -msgid "Delete node" -msgstr "Supprimer Noeud" - -#: eeschema/onrightclick.cpp:411 -#: eeschema/onrightclick.cpp:433 -msgid "Delete connection" -msgstr "Supprimer connexion" - -#: eeschema/onrightclick.cpp:426 -msgid "End Wire" -msgstr "Fin Fil" - -#: eeschema/onrightclick.cpp:428 -msgid "Delete Wire" -msgstr "Supprimer Fil" - -#: eeschema/onrightclick.cpp:442 -#: eeschema/onrightclick.cpp:471 -msgid "Add label" -msgstr "Ajout Label" - -#: eeschema/onrightclick.cpp:460 -msgid "End Bus" -msgstr "Fin Bus" - -#: eeschema/onrightclick.cpp:463 -msgid "Delete Bus" -msgstr "Supprimer Bus" - -#: eeschema/onrightclick.cpp:467 -msgid "Break Bus" -msgstr "Briser Bus" - -#: eeschema/onrightclick.cpp:486 -msgid "Enter Sheet" -msgstr "Enter dans Feuille" - -#: eeschema/onrightclick.cpp:488 -msgid "Move Sheet" -msgstr "Déplace Feuille" - -#: eeschema/onrightclick.cpp:493 -msgid "Place Sheet" -msgstr "Place Feuille" - -#: eeschema/onrightclick.cpp:497 -msgid "Edit Sheet" -msgstr "Edite Feuille" - -#: eeschema/onrightclick.cpp:498 -msgid "Resize Sheet" -msgstr "Redimensionne feuille" - -#: eeschema/onrightclick.cpp:501 -msgid "Cleanup PinSheets" -msgstr "Nettoyage de la feuille" - -#: eeschema/onrightclick.cpp:502 -msgid "Delete Sheet" -msgstr "Supprimer Feuille" - -#: eeschema/onrightclick.cpp:514 -msgid "Move PinSheet" -msgstr "Déplace Connecteur de hiérarchie" - -#: eeschema/onrightclick.cpp:516 -msgid "Edit PinSheet" -msgstr "Edit Connecteur de hiérarchie" - -#: eeschema/onrightclick.cpp:519 -msgid "Delete PinSheet" -msgstr "Supprimer Connecteur de hiérarchie" - -#: eeschema/onrightclick.cpp:542 -msgid "Other block commands" -msgstr "Autres commandes de bloc" - -#: eeschema/onrightclick.cpp:543 -msgid "Save Block" -msgstr "Sauver Bloc" - -#: eeschema/onrightclick.cpp:546 -msgid "Drag Block (ctrl + drag mouse)" -msgstr "Drag Bloc (ctrl + drag mouse)" - -#: eeschema/onrightclick.cpp:549 -msgid "Mirror Block ||" -msgstr "Miroir Bloc ||" - -#: eeschema/onrightclick.cpp:553 -msgid "Copy to Clipboard" -msgstr "Copie dans Presse papier" - #: eeschema/component_class.cpp:49 #: eeschema/affiche.cpp:35 msgid "Ref" @@ -6594,17 +6656,26 @@ msgstr "Feuille" msgid "Field" msgstr "Champ" -#: eeschema/sheetlab.cpp:77 -msgid "PinSheet Properties:" -msgstr "Propriétés des Pins de Hierarchie" +#: eeschema/eeload.cpp:46 +msgid "Clear Schematic Hierarchy (modified!)?" +msgstr "Effacer la hiérarchie schématique (modifiée!)?" -#: eeschema/sheetlab.cpp:113 -msgid "PinSheet Shape:" -msgstr "Forme Pin de hiérarchie:" +#: eeschema/eeload.cpp:107 +msgid "" +"Ready\n" +"Working dir: \n" +msgstr "" +"Pret\n" +"Répertoire de travail: \n" -#: eeschema/sheetlab.cpp:374 -msgid "No New Global Label found" -msgstr "Pas de nouveau Global Label trouvé" +#: eeschema/eeload.cpp:153 +#, c-format +msgid "File %s not found (new project ?)" +msgstr " fichier %s non trouvé (nouveau projet ?)" + +#: eeschema/eeload.cpp:203 +msgid "No FileName in SubSheet" +msgstr "Pas de Nom de Fichier dans la sous-feuille" #: eeschema/options.cpp:96 #: eeschema/eelayer.cpp:282 @@ -6664,14 +6735,6 @@ msgstr " G msgid "Power Symbol" msgstr "Symbole Alimentation" -#: eeschema/dialog_edit_component_in_lib.cpp:162 -#: eeschema/dialog_create_component.cpp:188 -#: eeschema/libedpart.cpp:466 -#: eeschema/dialog_edit_component_in_schematic.cpp:190 -#: eeschema/editpart.cpp:334 -msgid "Parts are locked" -msgstr "Les parts sont verrouillées" - #: eeschema/dialog_edit_component_in_lib.cpp:195 #: eeschema/libedpart.cpp:380 msgid "Copy Doc" @@ -6921,7 +6984,7 @@ msgstr "Justifi #: eeschema/libedpart.cpp:486 #: eeschema/edit_component_in_lib.cpp:412 #: eeschema/edit_component_in_lib.cpp:414 -#: share/zoom.cpp:345 +#: share/zoom.cpp:361 msgid "Center" msgstr "Centrer" @@ -7045,6 +7108,16 @@ msgstr "Modules" msgid "Fields" msgstr "Champs" +#: eeschema/edit_component_in_lib.cpp:438 +#: eeschema/edit_component_in_schematic.cpp:200 +msgid "Field Name:" +msgstr "Nom Champ" + +#: eeschema/edit_component_in_lib.cpp:477 +#: eeschema/edit_component_in_schematic.cpp:194 +msgid "Field to edit" +msgstr "Champ à éditer" + #: eeschema/edit_component_in_lib.cpp:1049 msgid "Ok to Delete FootprintFilter LIST" msgstr "Ok pour effacer la LISTE des filtres de modules" @@ -7053,11 +7126,6 @@ msgstr "Ok pour effacer la LISTE des filtres de modules" msgid "New FootprintFilter:" msgstr "Nouveau \"Filtre de Modules" -#: eeschema/dialog_edit_component_in_schematic.cpp:70 -#: eeschema/editpart.cpp:153 -msgid "Component properties (Not found in lib)" -msgstr "Propriétés du composant : non trouvé en librairie" - #: eeschema/dialog_edit_component_in_schematic.cpp:135 msgid "Unit 1" msgstr "Unité 1" @@ -7163,44 +7231,14 @@ msgstr "Unit msgid "Unit 26" msgstr "Unité 26" -#: eeschema/dialog_edit_component_in_schematic.cpp:163 -#: eeschema/editpart.cpp:288 -msgid "Unit:" -msgstr "Unité:" - #: eeschema/dialog_edit_component_in_schematic.cpp:173 msgid "+90" msgstr "+90" -#: eeschema/dialog_edit_component_in_schematic.cpp:177 -#: eeschema/editpart.cpp:302 -msgid "Orient:" -msgstr "Orient:" - -#: eeschema/dialog_edit_component_in_schematic.cpp:183 -#: eeschema/editpart.cpp:312 -msgid "Mirror --" -msgstr "Miroir--" - #: eeschema/dialog_edit_component_in_schematic.cpp:184 msgid "Mirror !" msgstr "Miroir |" -#: eeschema/dialog_edit_component_in_schematic.cpp:186 -#: eeschema/editpart.cpp:313 -msgid "Mirror:" -msgstr "Miroir:" - -#: eeschema/dialog_edit_component_in_schematic.cpp:197 -#: eeschema/editpart.cpp:341 -msgid "Chip Name:" -msgstr "Nom en librairie" - -#: eeschema/dialog_edit_component_in_schematic.cpp:239 -#: eeschema/editpart.cpp:182 -msgid "Defaults" -msgstr "Defauts" - #: eeschema/database.cpp:70 msgid "No Component found" msgstr "Pas de composants trouvés" @@ -7209,19 +7247,6 @@ msgstr "Pas de composants trouv msgid "Selection" msgstr "Sélection" -#: eeschema/getpart.cpp:101 -#, c-format -msgid "component selection (%d items loaded):" -msgstr "Sélection Composant (%d items chargés):" - -#: eeschema/getpart.cpp:168 -msgid "Failed to find part " -msgstr "Impossible de trouver le composant " - -#: eeschema/getpart.cpp:168 -msgid " in library" -msgstr " en librairie" - #: eeschema/dialog_cmp_graphic_properties.cpp:151 msgid "Options :" msgstr "Options :" @@ -7251,15 +7276,6 @@ msgstr "S msgid "Select component (%d items)" msgstr "Selection composant (%d items)" -#: eeschema/editpart.cpp:136 -#: eeschema/dialog_edit_component_in_schematic.h:53 -msgid "Component properties" -msgstr "Propriétés du composant" - -#: eeschema/editpart.cpp:312 -msgid "Mirror |" -msgstr "Miroir |" - #: eeschema/symbedit.cpp:51 msgid "Import symbol drawings:" msgstr "Importer les symboles:" @@ -7398,39 +7414,6 @@ msgstr "Tout" msgid "default" msgstr "Défaut" -#: eeschema/hotkeys.cpp:178 -msgid "" -"Current hotkey list:\n" -"\n" -msgstr "" -"Liste des Hotkeys courantes:\n" -"\n" - -#: eeschema/hotkeys.cpp:183 -msgid "key " -msgstr "touche: " - -#: eeschema/eeload.cpp:44 -msgid "Clear Schematic Hierarchy (modified!)?" -msgstr "Effacer la hiérarchie schématique (modifiée!)?" - -#: eeschema/eeload.cpp:101 -msgid "" -"Ready\n" -"Working dir: \n" -msgstr "" -"Pret\n" -"Répertoire de travail: \n" - -#: eeschema/eeload.cpp:145 -#, c-format -msgid "File %s not found (new project ?)" -msgstr " fichier %s non trouvé (nouveau projet ?)" - -#: eeschema/eeload.cpp:192 -msgid "No FileName in SubSheet" -msgstr "Pas de Nom de Fichier dans la sous-feuille" - #: eeschema/delsheet.cpp:42 #, c-format msgid "Sheet %s (file %s) modified. Save it?" @@ -7725,9 +7708,18 @@ msgstr "** Fin de Trac msgid "Plot " msgstr "Trace " -#: eeschema/edit_label.cpp:48 -msgid "Empty Text!" -msgstr "Texte vide" +#: eeschema/load_one_schematic_file.cpp:103 +msgid "Failed to open " +msgstr "Erreur ouverture " + +#: eeschema/load_one_schematic_file.cpp:108 +msgid "Loading " +msgstr "Chargement " + +#: eeschema/load_one_schematic_file.cpp:115 +#: eeschema/load_one_schematic_file.cpp:124 +msgid " is NOT EESchema file" +msgstr " n'est PAS un fichier EESchema" #: eeschema/erc.cpp:284 msgid "Annotation Required!" @@ -7991,7 +7983,23 @@ msgstr "&Sauver Eeschema Options" msgid "Save options in .pro" msgstr "Sauver les options en .pro" -#: eeschema/menubar.cpp:152 +#: eeschema/menubar.cpp:150 +msgid "Create Eeschema &Hotkey config file" +msgstr "Créer les fichiers configuration des &Hotkeys de Eeschema " + +#: eeschema/menubar.cpp:151 +msgid "Create or Recreate the hotkey config file from current hotkey list" +msgstr "Créer ou recréer les fichiers configuration des Hotkeys de Eeschema " + +#: eeschema/menubar.cpp:154 +msgid "Reread &Eeschema Hotkey config file" +msgstr "Relire les fichiers configuration des Hotkeys de &Eeschema " + +#: eeschema/menubar.cpp:155 +msgid "Reread the hotkey config file" +msgstr "Relire les fichiers configuration des Hotkeys" + +#: eeschema/menubar.cpp:162 msgid "Open the eeschema manual" msgstr "Ouvrir la documentation de eeschema" @@ -8811,17 +8819,13 @@ msgstr "Ext. Fichiers DCodes" msgid "List D-Codes" msgstr "Liste D-Codes" -#: gerbview/onrightclick.cpp:54 -msgid "Copy Block (shift mouse)" -msgstr "Copie Bloc (shift mouse)" +#: gerbview/edit.cpp:246 +msgid "No layer selected" +msgstr "Pas de couche sélectionnée" -#: gerbview/onrightclick.cpp:55 -msgid "Delete Block (ctrl + drag mouse)" -msgstr "Effacement Bloc (ctrl + drag mouse)" - -#: gerbview/onrightclick.cpp:64 -msgid "Delete Dcode items" -msgstr "Suppression d'éléments par DCode" +#: gerbview/block.cpp:267 +msgid "Ok to delete block ?" +msgstr "Ok pour effacer le bloc" #: gerbview/affiche.cpp:33 #: gerbview/tool_gerber.cpp:292 @@ -8844,14 +8848,6 @@ msgstr "D type" msgid "????" msgstr "????" -#: gerbview/edit.cpp:234 -msgid "No layer selected" -msgstr "Pas de couche sélectionnée" - -#: gerbview/block.cpp:260 -msgid "Ok to delete block ?" -msgstr "Ok pour effacer le bloc" - #: gerbview/options.cpp:155 msgid "Gerbview Options" msgstr "Gerbview Options " @@ -8920,6 +8916,18 @@ msgstr "Effacer Couche %d" msgid "Gerbview Layer Colors:" msgstr "Gerbview: Couleur des couches" +#: gerbview/onrightclick.cpp:55 +msgid "Copy Block (shift mouse)" +msgstr "Copie Bloc (shift mouse)" + +#: gerbview/onrightclick.cpp:56 +msgid "Delete Block (ctrl + drag mouse)" +msgstr "Effacement Bloc (ctrl + drag mouse)" + +#: gerbview/onrightclick.cpp:67 +msgid "Delete Dcode items" +msgstr "Suppression d'éléments par DCode" + #: gerbview/export_to_pcbnew.cpp:31 msgid "Board file name:" msgstr "Nom Fichier C.I.:" @@ -9174,6 +9182,46 @@ msgstr "Y" msgid "Help file %s not found" msgstr "Fichier d'aide %s non trouvé" +#: common/block_commande.cpp:56 +msgid "Block Move" +msgstr "Move Bloc" + +#: common/block_commande.cpp:60 +msgid "Block Drag" +msgstr "Drag Bloc" + +#: common/block_commande.cpp:64 +msgid "Block Copy" +msgstr "Copie Bloc" + +#: common/block_commande.cpp:68 +msgid "Block Delete" +msgstr "Efface Bloc" + +#: common/block_commande.cpp:72 +msgid "Block Save" +msgstr "Sauve Bloc" + +#: common/block_commande.cpp:76 +msgid "Block Paste" +msgstr "Duplic. Bloc" + +#: common/block_commande.cpp:80 +msgid "Win Zoom" +msgstr "Win Zoom" + +#: common/block_commande.cpp:84 +msgid "Block Rotate" +msgstr "Rotation Bloc" + +#: common/block_commande.cpp:88 +msgid "Block Invert" +msgstr "Inversion Bloc" + +#: common/block_commande.cpp:93 +msgid "Block Mirror" +msgstr "Bloc Miroir" + #: common/svg_print.cpp:183 #: share/svg_print.cpp:243 #: share/dialog_print.cpp:236 @@ -9231,45 +9279,30 @@ msgstr "Couleurs" msgid "No default editor found, you must choose it" msgstr "Pas d'éditeur par défaut trouvé, vous devez en choisir un" -#: common/block_commande.cpp:55 -msgid "Block Move" -msgstr "Move Bloc" +#: common/hotkeys_basic.cpp:191 +msgid "" +"Current hotkey list:\n" +"\n" +msgstr "" +"Liste des Hotkeys courantes:\n" +"\n" -#: common/block_commande.cpp:59 -msgid "Block Drag" -msgstr "Drag Bloc" +#: common/hotkeys_basic.cpp:195 +msgid "key " +msgstr "touche: " -#: common/block_commande.cpp:63 -msgid "Block Copy" -msgstr "Copie Bloc" +#: common/hotkeys_basic.cpp:243 +#: common/hotkeys_basic.cpp:336 +msgid "Hotkey configuration file:" +msgstr "Fichier configuration des Hotkeys:" -#: common/block_commande.cpp:67 -msgid "Block Delete" -msgstr "Efface Bloc" +#: common/hotkeys_basic.cpp:274 +msgid "Allowed keys:\n" +msgstr "Touches autorisées:\n" -#: common/block_commande.cpp:71 -msgid "Block Save" -msgstr "Sauve Bloc" - -#: common/block_commande.cpp:75 -msgid "Block Paste" -msgstr "Duplic. Bloc" - -#: common/block_commande.cpp:79 -msgid "Win Zoom" -msgstr "Win Zoom" - -#: common/block_commande.cpp:83 -msgid "Block Rotate" -msgstr "Rotation Bloc" - -#: common/block_commande.cpp:87 -msgid "Block Invert" -msgstr "Inversion Bloc" - -#: common/block_commande.cpp:92 -msgid "Block Mirror" -msgstr "Bloc Miroir" +#: common/hotkeys_basic.cpp:354 +msgid "Unable to read " +msgstr "Impossible de lire " #: common/eda_doc.cpp:144 msgid "Doc File " @@ -9457,64 +9490,6 @@ msgstr "Contour Pcb" msgid "--- " msgstr "--- " -#: 3d-viewer/3d_canvas.cpp:290 -#: share/zoom.cpp:346 -msgid "Zoom +" -msgstr "Zoom +" - -#: 3d-viewer/3d_canvas.cpp:295 -#: share/zoom.cpp:347 -msgid "Zoom -" -msgstr "Zoom -" - -#: 3d-viewer/3d_canvas.cpp:301 -msgid "Top View" -msgstr "Vue de dessus" - -#: 3d-viewer/3d_canvas.cpp:306 -msgid "Bottom View" -msgstr "Vue de dessous" - -#: 3d-viewer/3d_canvas.cpp:312 -msgid "Right View" -msgstr "Vue a Droite" - -#: 3d-viewer/3d_canvas.cpp:317 -msgid "Left View" -msgstr "Vue à Gauche" - -#: 3d-viewer/3d_canvas.cpp:324 -msgid "Front View" -msgstr "Vue de face" - -#: 3d-viewer/3d_canvas.cpp:329 -msgid "Back View" -msgstr "Vue arrière" - -#: 3d-viewer/3d_canvas.cpp:335 -#: 3d-viewer/3d_toolbar.cpp:77 -msgid "Move left <-" -msgstr "Vers la gauche <-" - -#: 3d-viewer/3d_canvas.cpp:340 -#: 3d-viewer/3d_toolbar.cpp:80 -msgid "Move right ->" -msgstr "Vers la droite ->" - -#: 3d-viewer/3d_canvas.cpp:345 -#: 3d-viewer/3d_toolbar.cpp:83 -msgid "Move Up ^" -msgstr "Vers le haut ^" - -#: 3d-viewer/3d_canvas.cpp:350 -#: 3d-viewer/3d_toolbar.cpp:86 -msgid "Move Down" -msgstr "Vers le bas" - -#: 3d-viewer/3d_canvas.cpp:592 -msgid "3D Image filename:" -msgstr "Non fichier Image 3D:" - #: 3d-viewer/3d_aux.cpp:193 msgid "Vertex " msgstr "Vertex " @@ -9551,6 +9526,26 @@ msgstr "Rotation Z <-" msgid "Rotate Z ->" msgstr "Rotation Z ->" +#: 3d-viewer/3d_toolbar.cpp:77 +#: 3d-viewer/3d_canvas.cpp:363 +msgid "Move left <-" +msgstr "Vers la gauche <-" + +#: 3d-viewer/3d_toolbar.cpp:80 +#: 3d-viewer/3d_canvas.cpp:368 +msgid "Move right ->" +msgstr "Vers la droite ->" + +#: 3d-viewer/3d_toolbar.cpp:83 +#: 3d-viewer/3d_canvas.cpp:373 +msgid "Move Up ^" +msgstr "Vers le haut ^" + +#: 3d-viewer/3d_toolbar.cpp:86 +#: 3d-viewer/3d_canvas.cpp:378 +msgid "Move Down" +msgstr "Vers le bas" + #: 3d-viewer/3d_toolbar.cpp:109 msgid "Create Image (png format)" msgstr "Créer fichier Image (format png)" @@ -9563,6 +9558,44 @@ msgstr "Cr msgid "Choose background color" msgstr "Choix Couleur du fond" +#: 3d-viewer/3d_canvas.cpp:318 +#: share/zoom.cpp:362 +msgid "Zoom +" +msgstr "Zoom +" + +#: 3d-viewer/3d_canvas.cpp:323 +#: share/zoom.cpp:363 +msgid "Zoom -" +msgstr "Zoom -" + +#: 3d-viewer/3d_canvas.cpp:329 +msgid "Top View" +msgstr "Vue de dessus" + +#: 3d-viewer/3d_canvas.cpp:334 +msgid "Bottom View" +msgstr "Vue de dessous" + +#: 3d-viewer/3d_canvas.cpp:340 +msgid "Right View" +msgstr "Vue a Droite" + +#: 3d-viewer/3d_canvas.cpp:345 +msgid "Left View" +msgstr "Vue à Gauche" + +#: 3d-viewer/3d_canvas.cpp:352 +msgid "Front View" +msgstr "Vue de face" + +#: 3d-viewer/3d_canvas.cpp:357 +msgid "Back View" +msgstr "Vue arrière" + +#: 3d-viewer/3d_canvas.cpp:629 +msgid "3D Image filename:" +msgstr "Non fichier Image 3D:" + #: share/wxprint.cpp:146 msgid "Error Init Printer info" msgstr "Erreur Init info imprimante" @@ -9744,31 +9777,6 @@ msgstr "Commentaire4:" msgid "Export to other sheets" msgstr "Exporter vers autres feuilles" -#: share/zoom.cpp:311 -msgid "Zoom: " -msgstr "Zoom: " - -#: share/zoom.cpp:312 -msgid "Grid:" -msgstr "Grille:" - -#: share/zoom.cpp:330 -#: share/zoom.cpp:341 -msgid "grid user" -msgstr "grille user" - -#: share/zoom.cpp:351 -msgid "Zoom Select" -msgstr "Sélection Zoom" - -#: share/zoom.cpp:354 -msgid "Redraw" -msgstr "Redessin" - -#: share/zoom.cpp:370 -msgid "Grid Select" -msgstr "Sélection Grille" - #: share/drawframe.cpp:130 msgid "font for info display" msgstr "fonte pour affichage infos" @@ -9813,6 +9821,31 @@ msgstr "" "\n" "Sites Web:\n" +#: share/zoom.cpp:327 +msgid "Zoom: " +msgstr "Zoom: " + +#: share/zoom.cpp:328 +msgid "Grid:" +msgstr "Grille:" + +#: share/zoom.cpp:346 +#: share/zoom.cpp:357 +msgid "grid user" +msgstr "grille user" + +#: share/zoom.cpp:367 +msgid "Zoom Select" +msgstr "Sélection Zoom" + +#: share/zoom.cpp:370 +msgid "Redraw" +msgstr "Redessin" + +#: share/zoom.cpp:386 +msgid "Grid Select" +msgstr "Sélection Grille" + #: pcbnew/find.h:39 msgid "Find" msgstr "Chercher" @@ -9842,10 +9875,6 @@ msgstr "Nbr segm = %d, Longueur = " msgid "TextMod properties" msgstr "Propriétés du Texte sur Module" -#: pcbnew/dialog_drc.h:57 -msgid "DRC Control" -msgstr "Controle ERC" - #: pcbnew/zones.h:54 msgid "Fill Zones Options" msgstr "Options de remplissage de Zone" @@ -9883,6 +9912,10 @@ msgstr "Effacements G msgid "General Options" msgstr "Options générales" +#: pcbnew/dialog_drc.h:56 +msgid "DRC Control" +msgstr "Controle ERC" + #: eeschema/symbtext.h:43 msgid "Graphic text properties" msgstr "Propriétés du texte" diff --git a/pcbnew/hotkeys.cpp b/pcbnew/hotkeys.cpp index 4d4321fe73..3426e8c9c6 100644 --- a/pcbnew/hotkeys.cpp +++ b/pcbnew/hotkeys.cpp @@ -62,7 +62,7 @@ static Ki_HotkeyInfo HkTrackDisplayMode(wxT("Track Display Mode"), HK_SWITCH_TRA // List of hotkey descriptors for pcbnew -static Ki_HotkeyInfo *s_board_edit_Hotkey_List[] = { +Ki_HotkeyInfo *s_board_edit_Hotkey_List[] = { &HkHelp, &HkZoomIn, &HkZoomOut, &HkZoomRedraw, &HkZoomCenter, &HkResetLocalCoord, &HkSwitchUnits, &HkTrackDisplayMode, @@ -75,7 +75,7 @@ static Ki_HotkeyInfo *s_board_edit_Hotkey_List[] = { NULL }; -static Ki_HotkeyInfo *s_module_edit_Hotkey_List[] = { +Ki_HotkeyInfo *s_module_edit_Hotkey_List[] = { &HkHelp, &HkZoomIn, &HkZoomOut, &HkZoomRedraw, &HkZoomCenter, &HkSwitchUnits, &HkResetLocalCoord, diff --git a/pcbnew/lay2plot.cpp b/pcbnew/lay2plot.cpp index 0625664820..6ce820a0a4 100644 --- a/pcbnew/lay2plot.cpp +++ b/pcbnew/lay2plot.cpp @@ -19,18 +19,6 @@ static void Plot_Module(WinEDA_DrawPanel * panel, wxDC * DC, MODULE * Module, int draw_mode, int masklayer); -/****************************/ -int GetLayerNumber(void) -/****************************/ -/* Return the number of layers which can be printed -*/ -{ -int ii = 29; -//TO REDO -return ii; -} - - /**********************************************************************************/ void WinEDA_DrawPanel::PrintPage(wxDC *DC, bool Print_Sheet_Ref, int printmasklayer) /**********************************************************************************/ diff --git a/pcbnew/menubarpcb.cpp b/pcbnew/menubarpcb.cpp index 8e5119ff28..a65bbc9aeb 100644 --- a/pcbnew/menubarpcb.cpp +++ b/pcbnew/menubarpcb.cpp @@ -182,6 +182,16 @@ wxMenuBar * menuBar = GetMenuBar(); item->SetBitmap(read_setup_xpm); configmenu->Append(item); + configmenu->AppendSeparator(); + item = new wxMenuItem(configmenu, ID_PREFERENCES_CREATE_CONFIG_HOTKEYS, _("Create Eeschema &Hotkey config file"), + _("Create or Recreate the hotkey config file from current hotkey list") ); + item->SetBitmap(save_setup_xpm); + configmenu->Append(item); + item = new wxMenuItem(configmenu, ID_PREFERENCES_READ_CONFIG_HOTKEYS, _("Reread &Eeschema Hotkey config file"), + _("Reread the hotkey config file") ); + item->SetBitmap( reload_xpm); + configmenu->Append(item); + ///////////////////////////// // Ajustage de dimensions: // ///////////////////////////// diff --git a/pcbnew/pcbcfg.cpp b/pcbnew/pcbcfg.cpp index 8b548744d3..94ece1e740 100644 --- a/pcbnew/pcbcfg.cpp +++ b/pcbnew/pcbcfg.cpp @@ -12,9 +12,13 @@ #include "pcbcfg.h" #include "worksheet.h" #include "id.h" +#include "hotkeys_basic.h" #include "protos.h" +extern Ki_HotkeyInfo *s_board_edit_Hotkey_List[]; +extern Ki_HotkeyInfo *s_module_edit_Hotkey_List[]; + /* Routines Locales */ /* Variables locales */ @@ -27,6 +31,7 @@ void WinEDA_PcbFrame::Process_Config(wxCommandEvent& event) int id = event.GetId(); wxPoint pos; wxClientDC dc(DrawPanel); +wxString FullFileName; DrawPanel->PrepareGraphicContext(&dc); @@ -40,10 +45,8 @@ wxClientDC dc(DrawPanel); break; case ID_CONFIG_REQ : // Creation de la fenetre de configuration - { InstallConfigFrame(pos); break; - } case ID_PCB_TRACK_SIZE_SETUP: case ID_PCB_LOOK_SETUP: @@ -61,8 +64,7 @@ wxClientDC dc(DrawPanel); break; case ID_CONFIG_READ: - { - wxString FullFileName = GetScreen()->m_FileName.AfterLast('/'); + FullFileName = GetScreen()->m_FileName.AfterLast('/'); ChangeFileNameExt(FullFileName, g_Prj_Config_Filename_ext); FullFileName = EDA_FileSelector(_("Read config file"), wxPathOnly(GetScreen()->m_FileName),/* Chemin par defaut */ @@ -81,7 +83,21 @@ wxClientDC dc(DrawPanel); DisplayError(this, msg); break; } Read_Config(FullFileName ); - } + break; + + case ID_PREFERENCES_CREATE_CONFIG_HOTKEYS: + FullFileName = DEFAULT_HOTKEY_FILENAME_PATH; + FullFileName += wxT("pcbnew"); + FullFileName += DEFAULT_HOTKEY_FILENAME_EXT; + WriteHotkeyConfigFile(FullFileName, s_board_edit_Hotkey_List, true); + FullFileName = DEFAULT_HOTKEY_FILENAME_PATH; + FullFileName += wxT("module_edit"); + FullFileName += DEFAULT_HOTKEY_FILENAME_EXT; + WriteHotkeyConfigFile(FullFileName, s_module_edit_Hotkey_List, true); + break; + + case ID_PREFERENCES_READ_CONFIG_HOTKEYS: + Read_Hotkey_Config( this, true); break; default: @@ -90,6 +106,25 @@ wxClientDC dc(DrawPanel); } +/***************************************************************/ +bool Read_Hotkey_Config( WinEDA_DrawFrame * frame, bool verbose ) +/***************************************************************/ +/* + * Read the hotkey files config for eeschema and libedit +*/ +{ + wxString FullFileName = DEFAULT_HOTKEY_FILENAME_PATH; + FullFileName += wxT("pcbnew"); + FullFileName += DEFAULT_HOTKEY_FILENAME_EXT; + frame->ReadHotkeyConfigFile(FullFileName, s_board_edit_Hotkey_List, verbose); + FullFileName = DEFAULT_HOTKEY_FILENAME_PATH; + FullFileName += wxT("module_edit"); + FullFileName += DEFAULT_HOTKEY_FILENAME_EXT; + frame->ReadHotkeyConfigFile(FullFileName, s_module_edit_Hotkey_List, verbose); +} + + + /**************************************************************************/ bool Read_Config(const wxString & project_name) /*************************************************************************/ diff --git a/pcbnew/pcbframe.cpp b/pcbnew/pcbframe.cpp index 4e4996b018..0043bfeac8 100644 --- a/pcbnew/pcbframe.cpp +++ b/pcbnew/pcbframe.cpp @@ -69,6 +69,8 @@ BEGIN_EVENT_TABLE( WinEDA_PcbFrame, wxFrame ) EVT_MENU( ID_CONFIG_REQ, WinEDA_PcbFrame::Process_Config ) EVT_MENU( ID_COLORS_SETUP, WinEDA_PcbFrame::Process_Config ) EVT_MENU( ID_OPTIONS_SETUP, WinEDA_PcbFrame::Process_Config ) + EVT_MENU(ID_PREFERENCES_CREATE_CONFIG_HOTKEYS, WinEDA_PcbFrame::Process_Config) + EVT_MENU(ID_PREFERENCES_READ_CONFIG_HOTKEYS, WinEDA_PcbFrame::Process_Config) EVT_MENU( ID_PCB_TRACK_SIZE_SETUP, WinEDA_PcbFrame::Process_Config ) EVT_MENU( ID_PCB_DRAWINGS_WIDTHS_SETUP, WinEDA_PcbFrame::Process_Config ) EVT_MENU( ID_PCB_PAD_SETUP, WinEDA_PcbFrame::Process_Config ) diff --git a/pcbnew/pcbnew.cpp b/pcbnew/pcbnew.cpp index d38ba25613..c924e596cd 100644 --- a/pcbnew/pcbnew.cpp +++ b/pcbnew/pcbnew.cpp @@ -79,6 +79,7 @@ bool WinEDA_App::OnInit( void ) SetTopWindow( m_PcbFrame ); m_PcbFrame->Show( TRUE ); + Read_Hotkey_Config(m_PcbFrame, false); if( CreateServer( m_PcbFrame, KICAD_PCB_PORT_SERVICE_NUMBER ) ) { diff --git a/pcbnew/protos.h b/pcbnew/protos.h index 0fca3e6803..cc99d22034 100644 --- a/pcbnew/protos.h +++ b/pcbnew/protos.h @@ -17,6 +17,7 @@ LISTE_PAD* CreateSortedPadListByXCoord(BOARD * pcb); /* PCBCFG.CPP */ /**************/ bool Read_Config(const wxString & project_name); +bool Read_Hotkey_Config( WinEDA_DrawFrame * frame, bool verbose ); /***************/ /* TRACEPCB.CPP */ @@ -400,7 +401,6 @@ MODULE * ListAndSelectModuleName(COMMAND * Cmd); /***************/ /* LAY2PLOT.CPP */ /***************/ -int GetLayerNumber(void); /* retourne le nombre de couches a tracer */ /*****************/ /* SEL_COLOR.CPP */