From cad5f9da245c4053f424b1879091e498f66b753b Mon Sep 17 00:00:00 2001 From: charras Date: Tue, 8 Dec 2009 13:41:20 +0000 Subject: [PATCH] minor bug fixed and minor enhancements --- eeschema/tool_viewlib.cpp | 8 +- eeschema/viewlibs.cpp | 12 +- internat/fr/kicad.mo | Bin 214626 -> 216776 bytes internat/fr/kicad.po | 2572 +++++++++-------- ...ialog_edit_module_for_BoardEditor_base.cpp | 4 +- ...ialog_edit_module_for_BoardEditor_base.fbp | 4 +- .../dialog_edit_module_for_Modedit_base.cpp | 2 +- .../dialog_edit_module_for_Modedit_base.fbp | 2 +- pcbnew/dialog_mask_clearance.cpp | 11 +- pcbnew/dialog_mask_clearance_base.cpp | 5 +- pcbnew/dialog_mask_clearance_base.fbp | 53 +- pcbnew/dialog_mask_clearance_base.h | 3 +- pcbnew/hotkeys.cpp | 116 +- 13 files changed, 1518 insertions(+), 1274 deletions(-) diff --git a/eeschema/tool_viewlib.cpp b/eeschema/tool_viewlib.cpp index 6dde142973..e7f394bb0d 100644 --- a/eeschema/tool_viewlib.cpp +++ b/eeschema/tool_viewlib.cpp @@ -144,11 +144,11 @@ void WinEDA_ViewlibFrame::ReCreateHToolbar() } - int jj = 1; + int parts_count = 1; if( component ) - jj = MAX( component->GetPartCount(), 1 ); + parts_count = MAX( component->GetPartCount(), 1 ); SelpartBox->Clear(); - for( ii = 0; ii < jj; ii++ ) + for( ii = 0; ii < parts_count; ii++ ) { wxString msg; msg.Printf( _( "Part %c" ), 'A' + ii ); @@ -156,7 +156,7 @@ void WinEDA_ViewlibFrame::ReCreateHToolbar() } SelpartBox->SetSelection( (m_unit > 0 ) ? m_unit - 1 : 0 ); - SelpartBox->Enable( component && component->HasConversion() ); + SelpartBox->Enable( parts_count > 1 ); m_HToolBar->EnableTool( ID_LIBVIEW_VIEWDOC, entry && ( entry->m_DocFile != wxEmptyString ) ); diff --git a/eeschema/viewlibs.cpp b/eeschema/viewlibs.cpp index 7afcc8dae3..32032892eb 100644 --- a/eeschema/viewlibs.cpp +++ b/eeschema/viewlibs.cpp @@ -98,7 +98,7 @@ bool WinEDA_ViewlibFrame::OnRightClick( const wxPoint& MousePos, } -/* Affiche en Ligne d'info la librairie en cours de visualisation */ +/* Displays the name of the current opened library in the caption */ void WinEDA_ViewlibFrame::DisplayLibInfos() { wxString msg; @@ -120,7 +120,7 @@ void WinEDA_ViewlibFrame::DisplayLibInfos() /*****************************************/ -/* Routine to Select Current library */ +/* Function to Select Current library */ /*****************************************/ void WinEDA_ViewlibFrame::SelectCurrentLibrary() { @@ -246,10 +246,10 @@ void WinEDA_ViewlibFrame::ViewOneLibraryContent( CMP_LIBRARY* Lib, int Flag ) } -/*****************************************************************************/ -/* Routine d'affichage du composant selectionne */ -/* Si Le composant est un alias, le composant ROOT est recherche et affiche */ -/*****************************************************************************/ +/** function RedrawActiveWindow + * Display the current selected component. + * If the component is an alias, the ROOT component is displayed +*/ void WinEDA_ViewlibFrame::RedrawActiveWindow( wxDC* DC, bool EraseBg ) { LIB_COMPONENT* component; diff --git a/internat/fr/kicad.mo b/internat/fr/kicad.mo index dec8ce57fbd4547f3e40e2d239591bec5d5ed635..547b3e4a3c47c5b3f25d278be6f13c0e5d8bb9de 100644 GIT binary patch delta 65767 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 P(ILiLuSOkv9_#-At!T54 delta 63691 zcmXWkci@gy|G@FvS7e4%sPL7&x2(+U6&g}#DQzWb-=y?ZO2cTA(vpfIQbLJJN=l@n zL4$}w5<_Q0~?5IlzR^H>t!#uM-(EQi~WCNqbzHx~OVlQ|8~!qWHx z@?18vh>MC;tVIW~3(I4Py{Vz_!{T?8{_|LP4~HlGql@;+=RJ=HADGl)pzKur=xr z;SrRJ?9XJ5#gceDR>iXPpJ~U1AsK)^cp=*0h;S4df!pv%yfeHn>Zjl_)IWjFY%V(E zx3C0$5ao4fL^h-C9KftID)4t2`H^VH#nFKr7oLEwaXy}e4e%1|kE3xB8mWc{l1BNZmkOf(mkpfmXfZD1?9G<(ps&HE>l>4e8&3p^WL zk_WIEeiG%pgPBY{%I&cUUV#pDI=WOd4-$Vbo{Nf?!dJq1;ezn3a7nm4`~YqEqbPq8 zt_{BoH-_Ja-)G}uE84)X=-Taw^55aX@Nih*-}L+u;gM*L6hk9b23@i$XapNZxh_sN;k@(9aqEZ*d)q>(1=`&4)j_yX>Ue59Ea|nN22~kw1ZcX4l-{>{fFp4 zK8^bubF%*5b78~3q8;r)J2;FL@QA}{V3pA4>V?hG=h~q&I~9#gf3%%*(FlwP$Dk3L zfVOiV9^w9<%7rgHjyCW-nw0ax1!zZap&c#7%J>P|(C=vE_Msgd@n3qrINDwrwEYv& z_iLe%X^vShx<$p=Xako=`C9aaJFq-Hh=%qhJRawvx$y}))6da?eviKQGurWAcr=`oh3?U>N$sHE74Tp);Kj_a{gFbLexgpliH1$}7;0K1U<* z6FR|N=s@>nvITM>{Fe$lC{!TbD2cvM77cMFwBedj-#Ba=c0(H+fSz=N(DnwSk+}fv z_!@KqH=s*AAj2jP!)8hW)==ty@8uA%YKMT$N=i~lDwBf~3em7hmt_W9! z*^lF54f=Ij8|9zF-_QnsM`yS@>i44q|0l}-hW~|md1=6f!Xjbu@F=9+Y^F@Q$Q+9{ zSOFc#2~poTY>tMq6}mLt@dO-*>=P_P|Cx^Pl>b5pwhtX>fr14xHLx@`#*?u*UWyKEIu@k=%p5MN;anVp z>(K}M9#J6oRl5UQQeK9B#s0xISievzUy9y;0-f2HXav4Tmu?R_(0x%pfF|c5%nsn9 zP~if(-)4ib0p%C*aom7@Uavc{K<0d$jZLv+kph|V*b(dF3UtPQqM^G ziB)h|l*ge<_d-$jzenu*RJhH)Lr4BIK7@axGrG4}s-K4L=NHhKy@l@kCE>^D%r>CE zh_;}i-iv+}3l>l1vS_15M6VS6C3vKwk@G^8@*P-v-8Qzb+H!aFD z(OonfeSaDHwfq=c;SbmvvnQ4;kZH)pS?CLQp%HizePI^b@Y`r8SE4ie5)JA1=*)Jb zYkI^{X@L1?BpRaw?TrrP47A;0NITig^;~qI;&!y-_t1_$Mqk{BC*luS5C21d1J)~* z8tj0BDEEx=GvORGqHm%DeIJe77w81GVh#8IZZ6z@CY^{Up}V9Ox($b+9Xx_<@mX{r--kQVh#th^?*GC^rg0`$wPyxC&kK+pso180E!iM{CdlZA6p!H#7qOp%W}|Tq>77j{RSiii%X! z$Bt-6S7R+4jjs7qXvZI;2hAq5q2JJkccLLbh%U{M<QIL;v#f=+!W8$S^jzX96F*IT`&~|5` z1AQIoFPnLj3p@A_UGtsji{(yCYhE#|kB0mdbO8O)2n|I;eRb5|6y>|Zhob(;D8Gc} z%KThC`)^s?Sc67jBYJXeM@L+^V(RD^bpKaJXVe`%u=+/B0FXrwMi2YO}H--Lbz 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 o(%Z)cSeB=VE>_7>G\n" "MIME-Version: 1.0\n" @@ -22,6 +22,59 @@ msgstr "" "X-Poedit-SearchPath-6: 3d-viewer\n" "X-Poedit-SearchPath-7: share\n" +#: pcbnew/edit.cpp:162 +msgid "Module Editor" +msgstr "Ouvrir Editeur de modules" + +#: pcbnew/edit.cpp:232 +msgid "Add Tracks" +msgstr "Addition de Pistes" + +#: pcbnew/edit.cpp:240 +msgid "Add Zones" +msgstr "Addition de Zones" + +#: pcbnew/edit.cpp:242 +msgid "Warning: Display Zone is OFF!!!" +msgstr "Attention: Affichage zones désactivé !!!" + +#: pcbnew/edit.cpp:248 +msgid "Add Layer Alignment Target" +msgstr "Ajouter Mire de superposition" + +#: pcbnew/edit.cpp:252 +msgid "Adjust Zero" +msgstr "Ajuster Zéro" + +#: pcbnew/edit.cpp:258 +msgid "Add Graphic" +msgstr "Addition éléments graphiques" + +#: pcbnew/edit.cpp:262 +msgid "Add Text" +msgstr "Ajout de Texte" + +#: pcbnew/edit.cpp:266 +msgid "Add Modules" +msgstr "Addition de Modules" + +#: pcbnew/edit.cpp:270 +msgid "Add Dimension" +msgstr "Ajout de cotes" + +#: pcbnew/edit.cpp:278 +msgid "Net Highlight" +msgstr "Surbrillance des équipotentielles" + +#: pcbnew/edit.cpp:282 +msgid "Local Ratsnest" +msgstr "Montrer le chevelu général" + +#: pcbnew/edit.cpp:576 +#: pcbnew/modedit.cpp:458 +msgid "Delete item" +msgstr "Suppression d'éléments" + #: pcbnew/pcbnew.cpp:80 msgid "Pcbnew is already running, Continue?" msgstr "Pcbnew est en cours d'exécution. Continuer ?" @@ -216,21 +269,21 @@ msgstr "OK" msgid "Cancel" msgstr "Annuler" -#: pcbnew/edgemod.cpp:180 -msgid "The graphic item will be on a copper layer. It is very dangerous. Are you sure?" -msgstr "L'élément graphique sera sur une couche cuivre. C'est très dangereux. Etes vous sûr" +#: pcbnew/modules.cpp:70 +msgid "Name:" +msgstr "Nom:" -#: pcbnew/edgemod.cpp:219 -msgid "New Width (1/10000\"):" -msgstr "Nouvelle largeur (1/10000\"):" +#: pcbnew/modules.cpp:70 +msgid "Search footprint" +msgstr "Cherche Module" -#: pcbnew/edgemod.cpp:219 -msgid "Edge Width" -msgstr "Epaisseur Contour" +#: pcbnew/modules.cpp:310 +msgid "Delete Module" +msgstr "Supprimer Module" -#: pcbnew/edgemod.cpp:227 -msgid "Incorrect number, no change" -msgstr "Nombre incorrect, pas de changement" +#: pcbnew/modules.cpp:311 +msgid "Value " +msgstr "Valeur " #: pcbnew/surbrill.cpp:31 msgid "Filter for net names:" @@ -380,9 +433,37 @@ msgstr "Ajout d'éléments graphiques" msgid "Place anchor" msgstr "Place Ancre" -#: pcbnew/modedit.cpp:458 -msgid "Delete item" -msgstr "Suppression d'éléments" +#: pcbnew/autoplac.cpp:104 +msgid "Footprints NOT LOCKED will be moved" +msgstr "Les modules NON FIXES vont être déplacés" + +#: pcbnew/autoplac.cpp:109 +msgid "Footprints NOT PLACED will be moved" +msgstr "Les modules NON PLACES vont être déplacés" + +#: pcbnew/autoplac.cpp:390 +msgid "No PCB edge found, unknown board size!" +msgstr "Pas de contour PCB, la taille du PCB est inconnue!" + +#: pcbnew/autoplac.cpp:413 +msgid "Cols" +msgstr "Cols" + +#: pcbnew/autoplac.cpp:415 +msgid "Lines" +msgstr "Lignes" + +#: pcbnew/autoplac.cpp:417 +msgid "Cells." +msgstr "Cells." + +#: pcbnew/autoplac.cpp:480 +msgid "Loop" +msgstr "Itération" + +#: pcbnew/autoplac.cpp:630 +msgid "Ok to abort?" +msgstr "Ok pour abandonner?" #: pcbnew/automove.cpp:200 msgid "No modules found!" @@ -396,58 +477,21 @@ msgstr "Déplacer modules ?" msgid "Could not automatically place modules. No board edges detected." msgstr " Impossible de placer automatiquement les modules. Pas de contours sur pcb." -#: pcbnew/loadcmp.cpp:101 -msgid "Place Module" -msgstr "Place Module" +#: pcbnew/edgemod.cpp:180 +msgid "The graphic item will be on a copper layer. It is very dangerous. Are you sure?" +msgstr "L'élément graphique sera sur une couche cuivre. C'est très dangereux. Etes vous sûr" -#: pcbnew/loadcmp.cpp:232 -#: pcbnew/loadcmp.cpp:384 -#, c-format -msgid "PCB footprint library file <%s> not found in search paths." -msgstr "Librairie modules PCB %s non trouvée dans les chemins de recherche" +#: pcbnew/edgemod.cpp:219 +msgid "New Width (1/10000\"):" +msgstr "Nouvelle largeur (1/10000\"):" -#: pcbnew/loadcmp.cpp:234 -#: pcbnew/loadcmp.cpp:246 -#: pcbnew/loadcmp.cpp:262 -#: pcbnew/loadcmp.cpp:386 -#: pcbnew/loadcmp.cpp:422 -msgid "Library Load Error" -msgstr "Erreur en Chargement de librairie" +#: pcbnew/edgemod.cpp:219 +msgid "Edge Width" +msgstr "Epaisseur Contour" -#: pcbnew/loadcmp.cpp:244 -#, c-format -msgid "Could not open PCB footprint library file <%s>." -msgstr "Ne peut ouvrir le fichier librairie de modules PCB <%s>." - -#: pcbnew/loadcmp.cpp:251 -#, c-format -msgid "Scan Lib: %s" -msgstr "Examen Lib: %s" - -#: pcbnew/loadcmp.cpp:260 -#: pcbnew/loadcmp.cpp:420 -#, c-format -msgid "<%s> is not a valid Kicad PCB footprint library file." -msgstr "<%s> n'est pas un fichier librarire de modules Kicad PCB valide." - -#: pcbnew/loadcmp.cpp:326 -#, c-format -msgid "Module <%s> not found" -msgstr "Module <%s> non trouvé" - -#: pcbnew/loadcmp.cpp:411 -msgid "Library " -msgstr "Librairie " - -#: pcbnew/loadcmp.cpp:411 -msgid " loaded" -msgstr " chargé" - -#: pcbnew/loadcmp.cpp:482 -#: pcbnew/loadcmp.cpp:620 -#, c-format -msgid "Modules [%d items]" -msgstr "Modules [%d éléments]" +#: pcbnew/edgemod.cpp:227 +msgid "Incorrect number, no change" +msgstr "Nombre incorrect, pas de changement" #: pcbnew/tool_pcb.cpp:30 msgid "" @@ -733,6 +777,171 @@ msgstr "+/- pour commuter" msgid "Delete NET?" msgstr "Supprimer Net?" +#: pcbnew/specctra.cpp:133 +#: pcbnew/specctra.cpp:140 +msgid "Expecting" +msgstr "Attendu" + +#: pcbnew/specctra.cpp:147 +#: pcbnew/specctra.cpp:154 +msgid "Unexpected" +msgstr "Inattendu" + +#: pcbnew/specctra.cpp:324 +#: pcbnew/specctra.cpp:354 +#: pcbnew/specctra.cpp:3569 +#: pcbnew/specctra.cpp:3594 +#, c-format +msgid "Unable to open file \"%s\"" +msgstr "Ne peut pas ouvrirle fichier \"%s\"" + +#: pcbnew/specctra.cpp:3512 +#, c-format +msgid "System file error writing to file \"%s\"" +msgstr "Erreur système sur écriture fichier \"%s\"" + +#: pcbnew/specctra.cpp:3689 +msgid "Error writing to STRINGFORMATTER" +msgstr "Erreur d'écriture à STRINGFORMATTER" + +#: pcbnew/autorout.cpp:71 +msgid "Net not selected" +msgstr "Net non sélectionné" + +#: pcbnew/autorout.cpp:79 +msgid "Module not selected" +msgstr "Module non selectionné" + +#: pcbnew/autorout.cpp:88 +msgid "Pad not selected" +msgstr "Pad non sélectionné" + +#: pcbnew/autorout.cpp:156 +msgid "No memory for autorouting" +msgstr "Pas de mémoire pour autoroutage" + +#: pcbnew/autorout.cpp:161 +msgid "Place Cells" +msgstr "Place Cells" + +#: pcbnew/muonde.cpp:227 +msgid "Length(inch):" +msgstr "Longueur (pouces):" + +#: pcbnew/muonde.cpp:227 +#: pcbnew/muonde.cpp:233 +msgid "Length" +msgstr "Longueur" + +#: pcbnew/muonde.cpp:233 +msgid "Length(mm):" +msgstr "Long. (mm):" + +#: pcbnew/muonde.cpp:241 +#: pcbnew/muonde.cpp:697 +#: pcbnew/muonde.cpp:710 +msgid "Incorrect number, abort" +msgstr "Nombre incorrect, arrêt" + +#: pcbnew/muonde.cpp:249 +msgid "Requested length < minimum length" +msgstr "Longueur demandée < longueur minimum" + +#: pcbnew/muonde.cpp:271 +msgid "Unable to create line: Requested length is too big" +msgstr "Incapable de créer la ligne: longueur demandée trop grande" + +#: pcbnew/muonde.cpp:283 +#, c-format +msgid "Segment count = %d, length = " +msgstr "Nbr segm = %d, longueur = " + +#: pcbnew/muonde.cpp:658 +msgid "Gap" +msgstr "Gap" + +#: pcbnew/muonde.cpp:663 +msgid "Stub" +msgstr "Stub" + +#: pcbnew/muonde.cpp:669 +msgid "Arc Stub" +msgstr "Arc Stub" + +#: pcbnew/muonde.cpp:684 +msgid " (mm):" +msgstr " (mm):" + +#: pcbnew/muonde.cpp:690 +msgid " (inch):" +msgstr " (pouce):" + +#: pcbnew/muonde.cpp:692 +#: pcbnew/muonde.cpp:707 +msgid "Create microwave module" +msgstr "Créer Module MicroOnde" + +#: pcbnew/muonde.cpp:706 +msgid "Angle (0.1deg):" +msgstr "Angle (0.1deg):" + +#: pcbnew/muonde.cpp:828 +msgid "Complex shape" +msgstr "Forme complexe" + +#: pcbnew/muonde.cpp:853 +msgid "Read Shape Description File..." +msgstr "Lire Fichier de Description de Forme..." + +#: pcbnew/muonde.cpp:856 +msgid "Symmetrical" +msgstr "Symétrique" + +#: pcbnew/muonde.cpp:857 +msgid "Mirrored" +msgstr "Miroir" + +#: pcbnew/muonde.cpp:858 +msgid "Shape Option" +msgstr "Option Forme" + +#: pcbnew/muonde.cpp:918 +msgid "Read descr shape file" +msgstr "Lire fichier de description de forme" + +#: pcbnew/muonde.cpp:933 +msgid "File not found" +msgstr "fichier non trouvé" + +#: pcbnew/muonde.cpp:1041 +msgid "Shape has a null size!" +msgstr "La forme a une taille nulle" + +#: pcbnew/muonde.cpp:1046 +msgid "Shape has no points!" +msgstr "La forme n'a pas de points" + +#: pcbnew/muonde.cpp:1150 +msgid "No pad for this module" +msgstr "Pas de pad dans ce module" + +#: pcbnew/muonde.cpp:1156 +msgid "Only one pad for this module" +msgstr "Seulement un pad dans ce module" + +#: pcbnew/muonde.cpp:1170 +msgid "Gap (mm):" +msgstr "Gap (mm):" + +#: pcbnew/muonde.cpp:1170 +#: pcbnew/muonde.cpp:1176 +msgid "Create Microwave Gap" +msgstr "Créer Gap MicroOnde " + +#: pcbnew/muonde.cpp:1176 +msgid "Gap (inch):" +msgstr "Gap (inch):" + #: pcbnew/xchgmod.cpp:165 #, c-format msgid "file %s not found" @@ -882,17 +1091,74 @@ msgstr "Diamètre uVia en NetClass < limite globale" msgid "NetClass uVia Drill < global limit" msgstr "Diamètre de perçage de uVia en NetClassl < limite globale" -#: pcbnew/export_gencad.cpp:73 -msgid "GenCAD 1.4 board files (.cad)|*.cad" -msgstr "Fichiers PCB GenCAD 1.4 (.cad)|*.cad" +#: pcbnew/class_pad.cpp:482 +msgid "Unknown pad shape" +msgstr "Forme pad inconnue" -#: pcbnew/export_gencad.cpp:76 -msgid "Save GenCAD Board File" -msgstr "Sauver Fichier PCB format GenCAD" +#: pcbnew/class_pad.cpp:564 +msgid "Module" +msgstr "Module" -#: pcbnew/export_gencad.cpp:85 -msgid "Unable to create " -msgstr "Impossible de créer " +#: pcbnew/class_pad.cpp:566 +msgid "RefP" +msgstr "RefP" + +#: pcbnew/class_pad.cpp:569 +msgid "Net" +msgstr "Net" + +#: pcbnew/class_pad.cpp:640 +msgid "Non-copper" +msgstr "Non-cuivre" + +#: pcbnew/class_pad.cpp:648 +msgid " & int" +msgstr " & int" + +#: pcbnew/class_pad.cpp:676 +msgid "internal" +msgstr "interne" + +#: pcbnew/class_pad.cpp:679 +msgid "Layer" +msgstr "Couche" + +#: pcbnew/class_pad.cpp:689 +msgid "H Size" +msgstr "Taille H" + +#: pcbnew/class_pad.cpp:692 +msgid "V Size" +msgstr "Taille V" + +#: pcbnew/class_pad.cpp:697 +msgid "Drill" +msgstr "Perçage" + +#: pcbnew/class_pad.cpp:705 +msgid "Drill X / Y" +msgstr "Perçage X/Y" + +#: pcbnew/class_pad.cpp:716 +msgid "Orient" +msgstr "Orient" + +#: pcbnew/class_pad.cpp:719 +msgid "X Pos" +msgstr "X Pos" + +#: pcbnew/class_pad.cpp:722 +msgid "Y pos" +msgstr "Y pos" + +#: pcbnew/hotkeys.cpp:558 +#, c-format +msgid "Footprint %s found, but locked" +msgstr "Module %s trouvé, mais verrouillé" + +#: pcbnew/hotkeys.cpp:740 +msgid "Delete module?" +msgstr "Effacer Module?" #: pcbnew/editrack.cpp:807 msgid "Track Len" @@ -973,22 +1239,6 @@ msgstr "Fichier <%s> non trouvé, Netliste utilisée pour sélection des module msgid "Component [%s]: footprint <%s> not found" msgstr "Composant [%s]: Module <%s> non trouvé en librairie" -#: pcbnew/modules.cpp:70 -msgid "Name:" -msgstr "Nom:" - -#: pcbnew/modules.cpp:70 -msgid "Search footprint" -msgstr "Cherche Module" - -#: pcbnew/modules.cpp:310 -msgid "Delete Module" -msgstr "Supprimer Module" - -#: pcbnew/modules.cpp:311 -msgid "Value " -msgstr "Valeur " - #: pcbnew/pcbframe.cpp:319 msgid "Board modified, Save before exit ?" msgstr "Circuit Imprimé modifié, Sauver avant de quitter ?" @@ -1005,127 +1255,58 @@ msgstr "Fenêtre 3D déjà ouverte" msgid "3D Viewer" msgstr "Visu 3D" -#: pcbnew/muonde.cpp:227 -msgid "Length(inch):" -msgstr "Longueur (pouces):" +#: pcbnew/gendrill.cpp:27 +msgid "Drill files (*.drl)|*.drl" +msgstr "Fichiers de Perçage (*.drl)|*.drl" -#: pcbnew/muonde.cpp:227 -#: pcbnew/muonde.cpp:233 -msgid "Length" -msgstr "Longueur" +#: pcbnew/gendrill.cpp:94 +#: pcbnew/gendrill.cpp:96 +msgid "Use Netclasses values" +msgstr "Utiliser les valeurs des Netclass" -#: pcbnew/muonde.cpp:233 -msgid "Length(mm):" -msgstr "Long. (mm):" +#: pcbnew/gendrill.cpp:309 +msgid "Save Drill File" +msgstr "Sauver Fichier de Perçage" -#: pcbnew/muonde.cpp:241 -#: pcbnew/muonde.cpp:697 -#: pcbnew/muonde.cpp:710 -msgid "Incorrect number, abort" -msgstr "Nombre incorrect, arrêt" +#: pcbnew/gendrill.cpp:395 +msgid "3:2" +msgstr "3:2" -#: pcbnew/muonde.cpp:249 -msgid "Requested length < minimum length" -msgstr "Longueur demandée < longueur minimum" +#: pcbnew/gendrill.cpp:396 +msgid "3:3" +msgstr "3:3" -#: pcbnew/muonde.cpp:271 -msgid "Unable to create line: Requested length is too big" -msgstr "Incapable de créer la ligne: longueur demandée trop grande" +#: pcbnew/gendrill.cpp:748 +msgid "HPGL plot files (.plt)|*.plt" +msgstr "Fichiers Tracé HPGL (.plt)|*.plt" -#: pcbnew/muonde.cpp:283 -#, c-format -msgid "Segment count = %d, length = " -msgstr "Nbr segm = %d, longueur = " +#: pcbnew/gendrill.cpp:753 +msgid "PostScript files (.ps)|*.ps" +msgstr "Fichiers PostScript (.ps)|*.ps" -#: pcbnew/muonde.cpp:658 -msgid "Gap" -msgstr "Gap" +#: pcbnew/gendrill.cpp:758 +msgid "Gerber files (.pho)|*.pho" +msgstr "Fichiers Gerber (*.pho)|*.pho" -#: pcbnew/muonde.cpp:663 -msgid "Stub" -msgstr "Stub" +#: pcbnew/gendrill.cpp:763 +msgid "DXF files (.dxf)|*.dxf" +msgstr "Fichiers DXF (.dxf)|*.dxf" -#: pcbnew/muonde.cpp:669 -msgid "Arc Stub" -msgstr "Arc Stub" +#: pcbnew/gendrill.cpp:776 +msgid "Save Drill Plot File" +msgstr "Sauver Plan de Perçage" -#: pcbnew/muonde.cpp:684 -msgid " (mm):" -msgstr " (mm):" +#: pcbnew/gendrill.cpp:787 +msgid "Unable to create file" +msgstr "Impossible de créer le fichier" -#: pcbnew/muonde.cpp:690 -msgid " (inch):" -msgstr " (pouce):" +#: pcbnew/gendrill.cpp:811 +msgid "Drill report files (.rpt)|*.rpt" +msgstr "Fichiers rapport de perçage (.rpt)*.rpt" -#: pcbnew/muonde.cpp:692 -#: pcbnew/muonde.cpp:707 -msgid "Create microwave module" -msgstr "Créer Module MicroOnde" - -#: pcbnew/muonde.cpp:706 -msgid "Angle (0.1deg):" -msgstr "Angle (0.1deg):" - -#: pcbnew/muonde.cpp:828 -msgid "Complex shape" -msgstr "Forme complexe" - -#: pcbnew/muonde.cpp:853 -msgid "Read Shape Description File..." -msgstr "Lire Fichier de Description de Forme..." - -#: pcbnew/muonde.cpp:856 -msgid "Symmetrical" -msgstr "Symétrique" - -#: pcbnew/muonde.cpp:857 -msgid "Mirrored" -msgstr "Miroir" - -#: pcbnew/muonde.cpp:858 -msgid "Shape Option" -msgstr "Option Forme" - -#: pcbnew/muonde.cpp:918 -msgid "Read descr shape file" -msgstr "Lire fichier de description de forme" - -#: pcbnew/muonde.cpp:933 -msgid "File not found" -msgstr "fichier non trouvé" - -#: pcbnew/muonde.cpp:1041 -msgid "Shape has a null size!" -msgstr "La forme a une taille nulle" - -#: pcbnew/muonde.cpp:1046 -msgid "Shape has no points!" -msgstr "La forme n'a pas de points" - -#: pcbnew/muonde.cpp:1150 -msgid "No pad for this module" -msgstr "Pas de pad dans ce module" - -#: pcbnew/muonde.cpp:1156 -msgid "Only one pad for this module" -msgstr "Seulement un pad dans ce module" - -#: pcbnew/muonde.cpp:1170 -msgid "Gap (mm):" -msgstr "Gap (mm):" - -#: pcbnew/muonde.cpp:1170 -#: pcbnew/muonde.cpp:1176 -msgid "Create Microwave Gap" -msgstr "Créer Gap MicroOnde " - -#: pcbnew/muonde.cpp:1176 -msgid "Gap (inch):" -msgstr "Gap (inch):" - -#: pcbnew/editmod.cpp:42 -msgid "Module Editor" -msgstr "Ouvrir Editeur de modules" +#: pcbnew/gendrill.cpp:817 +msgid "Save Drill Report File" +msgstr "Sauver Fichier Rapport de Perçage" #: pcbnew/editmod.cpp:128 msgid "Text is REFERENCE!" @@ -1135,6 +1316,75 @@ msgstr "Le texte est la REFERENCE!" msgid "Text is VALUE!" msgstr "Le texte est la VALEUR!" +#: pcbnew/class_pcb_text.cpp:225 +msgid "COTATION" +msgstr "COTATION" + +#: pcbnew/class_pcb_text.cpp:227 +msgid "PCB Text" +msgstr "Texte PCB" + +#: pcbnew/class_pcb_text.cpp:233 +msgid "No" +msgstr "Non" + +#: pcbnew/class_pcb_text.cpp:235 +msgid "Yes" +msgstr "Oui" + +#: pcbnew/loadcmp.cpp:101 +msgid "Place Module" +msgstr "Place Module" + +#: pcbnew/loadcmp.cpp:232 +#: pcbnew/loadcmp.cpp:384 +#, c-format +msgid "PCB footprint library file <%s> not found in search paths." +msgstr "Librairie modules PCB %s non trouvée dans les chemins de recherche" + +#: pcbnew/loadcmp.cpp:234 +#: pcbnew/loadcmp.cpp:246 +#: pcbnew/loadcmp.cpp:262 +#: pcbnew/loadcmp.cpp:386 +#: pcbnew/loadcmp.cpp:422 +msgid "Library Load Error" +msgstr "Erreur en Chargement de librairie" + +#: pcbnew/loadcmp.cpp:244 +#, c-format +msgid "Could not open PCB footprint library file <%s>." +msgstr "Ne peut ouvrir le fichier librairie de modules PCB <%s>." + +#: pcbnew/loadcmp.cpp:251 +#, c-format +msgid "Scan Lib: %s" +msgstr "Examen Lib: %s" + +#: pcbnew/loadcmp.cpp:260 +#: pcbnew/loadcmp.cpp:420 +#, c-format +msgid "<%s> is not a valid Kicad PCB footprint library file." +msgstr "<%s> n'est pas un fichier librarire de modules Kicad PCB valide." + +#: pcbnew/loadcmp.cpp:326 +#, c-format +msgid "Module <%s> not found" +msgstr "Module <%s> non trouvé" + +#: pcbnew/loadcmp.cpp:411 +msgid "Library " +msgstr "Librairie " + +#: pcbnew/loadcmp.cpp:411 +msgid " loaded" +msgstr " chargé" + +#: pcbnew/loadcmp.cpp:482 +#: pcbnew/loadcmp.cpp:620 +#, c-format +msgid "Modules [%d items]" +msgstr "Modules [%d éléments]" + #: pcbnew/cleaningoptions_dialog.cpp:146 msgid "Static" msgstr "Statique" @@ -1275,38 +1525,6 @@ msgstr "Inclure Pistes Verrouillées" msgid "File" msgstr "Fichier" -#: pcbnew/autoplac.cpp:104 -msgid "Footprints NOT LOCKED will be moved" -msgstr "Les modules NON FIXES vont être déplacés" - -#: pcbnew/autoplac.cpp:109 -msgid "Footprints NOT PLACED will be moved" -msgstr "Les modules NON PLACES vont être déplacés" - -#: pcbnew/autoplac.cpp:390 -msgid "No PCB edge found, unknown board size!" -msgstr "Pas de contour PCB, la taille du PCB est inconnue!" - -#: pcbnew/autoplac.cpp:413 -msgid "Cols" -msgstr "Cols" - -#: pcbnew/autoplac.cpp:415 -msgid "Lines" -msgstr "Lignes" - -#: pcbnew/autoplac.cpp:417 -msgid "Cells." -msgstr "Cells." - -#: pcbnew/autoplac.cpp:480 -msgid "Loop" -msgstr "Itération" - -#: pcbnew/autoplac.cpp:630 -msgid "Ok to abort?" -msgstr "Ok pour abandonner?" - #: pcbnew/set_color.cpp:277 #: pcbnew/set_color.cpp:303 msgid "Show None" @@ -1373,6 +1591,10 @@ msgstr "Sauver Fichier C.I." msgid "Warning: unable to create backup file " msgstr "Attention: impossible de créer un fichier backup " +#: pcbnew/files.cpp:370 +msgid "Unable to create " +msgstr "Impossible de créer " + #: pcbnew/files.cpp:389 msgid "Backup file: " msgstr "Fichier backup: " @@ -1432,93 +1654,6 @@ msgstr "Erreur DRC: la fermeture de cette zone crée une erreur DRC avec une aut msgid "Abort routing?" msgstr "Arrêter le routage?" -#: pcbnew/dialog_copper_zones.cpp:277 -msgid "Error : Zone clearance is set to an unreasonnable value" -msgstr "Erreur: l'isolation de zone est réglée à une valeur déraisonnable." - -#: pcbnew/dialog_copper_zones.cpp:288 -msgid "" -"Error :\n" -"you must choose a copper min thickness value bigger than 0.001 inch (or 0.0254 mm)" -msgstr "" -"Erreur :\n" -"vous devez choisir une valeur pour l'épaisseur de cuivre dans les freins thermiques plus grande que 0,001 pouce (ou 0,0254 mm)" - -#: pcbnew/dialog_copper_zones.cpp:313 -msgid "" -"Error :\n" -"you must choose a copper bridge value for thermal reliefs bigger than the min zone thickness" -msgstr "" -"Erreur :\n" -"vous devez choisir une valeur pour l'épaisseur de cuivre dans les freins thermiques plus grande que l'épaisseur de cuivre minimum des zones" - -#: pcbnew/dialog_copper_zones.cpp:325 -msgid "Error : you must choose a layer" -msgstr "Erreur. Vous devez choisir une couche" - -#: pcbnew/dialog_copper_zones.cpp:337 -msgid "Error : you must choose a net name" -msgstr "Erreur. Vous devez choisir une équipotentielle" - -#: pcbnew/dialog_copper_zones.cpp:344 -msgid "You have chosen the \"not connected\" option. This will create insulated copper islands. Are you sure ?" -msgstr "Vous avez choisi l'option \"non connecté\". Cela créera des blocs non connectés. Etes vous sûr ?" - -#: pcbnew/class_text_mod.cpp:442 -msgid "Ref." -msgstr "Ref." - -#: pcbnew/class_text_mod.cpp:442 -msgid "Value" -msgstr "Valeur" - -#: pcbnew/class_text_mod.cpp:442 -#: pcbnew/class_text_mod.cpp:451 -msgid "Text" -msgstr "Texte" - -#: pcbnew/class_text_mod.cpp:448 -msgid "Module" -msgstr "Module" - -#: pcbnew/class_text_mod.cpp:456 -#: pcbnew/class_zone.cpp:915 -msgid "Type" -msgstr "Type" - -#: pcbnew/class_text_mod.cpp:459 -msgid "No" -msgstr "Non" - -#: pcbnew/class_text_mod.cpp:461 -msgid "Yes" -msgstr "Oui" - -#: pcbnew/class_text_mod.cpp:471 -#: pcbnew/class_zone.cpp:945 -msgid "Layer" -msgstr "Couche" - -#: pcbnew/class_text_mod.cpp:473 -msgid " No" -msgstr "Non" - -#: pcbnew/class_text_mod.cpp:475 -msgid " Yes" -msgstr "Oui" - -#: pcbnew/class_text_mod.cpp:479 -msgid "Orient" -msgstr "Orient" - -#: pcbnew/class_text_mod.cpp:485 -msgid "H Size" -msgstr "Taille H" - -#: pcbnew/class_text_mod.cpp:488 -msgid "V Size" -msgstr "Taille V" - #: pcbnew/class_zone.cpp:909 msgid "Zone Outline" msgstr "Contour de Zone" @@ -1527,6 +1662,10 @@ msgstr "Contour de Zone" msgid "(Cutout)" msgstr "(Cutout)" +#: pcbnew/class_zone.cpp:915 +msgid "Type" +msgstr "Type" + #: pcbnew/class_zone.cpp:932 msgid "Not Found" msgstr " Non Trouvé" @@ -1579,49 +1718,67 @@ msgstr "Le circuit actuel sera perdu et cette opération ne pourra pas être ann msgid "Current Footprint will be lost and this operation cannot be undone. Continue ?" msgstr "Le module actuel sera perdu et cette opération ne pourra pas être annulée. Continuer ?" -#: pcbnew/edit.cpp:232 -msgid "Add Tracks" -msgstr "Addition de Pistes" +#: pcbnew/drc.cpp:201 +msgid "Compile ratsnest...\n" +msgstr "Calcul du chevelu...\n" -#: pcbnew/edit.cpp:240 -msgid "Add Zones" -msgstr "Addition de Zones" +#: pcbnew/drc.cpp:217 +msgid "Aborting\n" +msgstr "Arrêt\n" -#: pcbnew/edit.cpp:242 -msgid "Warning: Display Zone is OFF!!!" -msgstr "Attention: Affichage zones désactivé !!!" +#: pcbnew/drc.cpp:230 +msgid "Pad clearances...\n" +msgstr "Isolations pads...\n" -#: pcbnew/edit.cpp:248 -msgid "Add Layer Alignment Target" -msgstr "Ajouter Mire de superposition" +#: pcbnew/drc.cpp:240 +msgid "Track clearances...\n" +msgstr "Isolations pistes...\n" -#: pcbnew/edit.cpp:252 -msgid "Adjust Zero" -msgstr "Ajuster Zéro" +#: pcbnew/drc.cpp:250 +msgid "Fill zones...\n" +msgstr "Remplissage zones...\n" -#: pcbnew/edit.cpp:258 -msgid "Add Graphic" -msgstr "Addition éléments graphiques" +#: pcbnew/drc.cpp:258 +msgid "Test zones...\n" +msgstr "Test zones...\n" -#: pcbnew/edit.cpp:262 -msgid "Add Text" -msgstr "Ajout de Texte" +#: pcbnew/drc.cpp:269 +msgid "Unconnected pads...\n" +msgstr "Pads non connectés...\n" -#: pcbnew/edit.cpp:266 -msgid "Add Modules" -msgstr "Addition de Modules" +#: pcbnew/drc.cpp:283 +msgid "Finished" +msgstr "Fini" -#: pcbnew/edit.cpp:270 -msgid "Add Dimension" -msgstr "Ajout de cotes" +#: pcbnew/drc.cpp:325 +#, c-format +msgid "NETCLASS: '%s' has Clearance:%s which is less than global:%s" +msgstr "NETCLASS: '%s' a une isolation:%s qui est moins que la valeur globale:%s" -#: pcbnew/edit.cpp:278 -msgid "Net Highlight" -msgstr "Surbrillance des équipotentielles" +#: pcbnew/drc.cpp:340 +#, c-format +msgid "NETCLASS: '%s' has TrackWidth:%s which is less than global:%s" +msgstr "NETCLASS: '%s' a une largeur de piste: %s plust petite que la valeur globale:%s" -#: pcbnew/edit.cpp:282 -msgid "Local Ratsnest" -msgstr "Montrer le chevelu général" +#: pcbnew/drc.cpp:354 +#, c-format +msgid "NETCLASS: '%s' has Via Dia:%s which is less than global:%s" +msgstr "NETCLASS: '%s' a un diamètre de via: %s qui est plus petit que la valeur globale: %s" + +#: pcbnew/drc.cpp:368 +#, c-format +msgid "NETCLASS: '%s' has Via Drill:%s which is less than global:%s" +msgstr "NETCLASS: '%s' a un perçage de via: %s qui est plus petit que la valeur globale: %s" + +#: pcbnew/drc.cpp:382 +#, c-format +msgid "NETCLASS: '%s' has uVia Dia:%s which is less than global:%s" +msgstr "NETCLASS: '%s' a un diamètre de microvia: %s qui est plus petit que la valeur globale: %s" + +#: pcbnew/drc.cpp:396 +#, c-format +msgid "NETCLASS: '%s' has uVia Drill:%s which is less than global:%s" +msgstr "NETCLASS: '%s' a un perçage de microvia: %s qui est plus petit que la valeur globale: %s" #: pcbnew/librairi.cpp:32 msgid "Kicad foot print export files (*.emp)|*.emp" @@ -1752,58 +1909,9 @@ msgstr "Librairie existante " msgid "Create error " msgstr "Erreur en création " -#: pcbnew/gendrill.cpp:27 -msgid "Drill files (*.drl)|*.drl" -msgstr "Fichiers de Perçage (*.drl)|*.drl" - -#: pcbnew/gendrill.cpp:94 -#: pcbnew/gendrill.cpp:96 -msgid "Use Netclasses values" -msgstr "Utiliser les valeurs des Netclass" - -#: pcbnew/gendrill.cpp:309 -msgid "Save Drill File" -msgstr "Sauver Fichier de Perçage" - -#: pcbnew/gendrill.cpp:395 -msgid "3:2" -msgstr "3:2" - -#: pcbnew/gendrill.cpp:396 -msgid "3:3" -msgstr "3:3" - -#: pcbnew/gendrill.cpp:748 -msgid "HPGL plot files (.plt)|*.plt" -msgstr "Fichiers Tracé HPGL (.plt)|*.plt" - -#: pcbnew/gendrill.cpp:753 -msgid "PostScript files (.ps)|*.ps" -msgstr "Fichiers PostScript (.ps)|*.ps" - -#: pcbnew/gendrill.cpp:758 -msgid "Gerber files (.pho)|*.pho" -msgstr "Fichiers Gerber (*.pho)|*.pho" - -#: pcbnew/gendrill.cpp:763 -msgid "DXF files (.dxf)|*.dxf" -msgstr "Fichiers DXF (.dxf)|*.dxf" - -#: pcbnew/gendrill.cpp:776 -msgid "Save Drill Plot File" -msgstr "Sauver Plan de Perçage" - -#: pcbnew/gendrill.cpp:787 -msgid "Unable to create file" -msgstr "Impossible de créer le fichier" - -#: pcbnew/gendrill.cpp:811 -msgid "Drill report files (.rpt)|*.rpt" -msgstr "Fichiers rapport de perçage (.rpt)*.rpt" - -#: pcbnew/gendrill.cpp:817 -msgid "Save Drill Report File" -msgstr "Sauver Fichier Rapport de Perçage" +#: pcbnew/ioascii.cpp:173 +msgid "Error: Unexpected end of file !" +msgstr "Erreur: Fin de fichier inattendue !" #: pcbnew/clean.cpp:183 msgid "Delete unconnected tracks:" @@ -1861,10 +1969,6 @@ msgstr "Max" msgid "Segm" msgstr "Segm" -#: pcbnew/ioascii.cpp:173 -msgid "Error: Unexpected end of file !" -msgstr "Erreur: Fin de fichier inattendue !" - #: pcbnew/find.cpp:112 msgid "Marker found" msgstr "Marqueur trouvé" @@ -1903,42 +2007,6 @@ msgstr "Chercher Marqueur" msgid "Find Next Marker" msgstr "Marqueur Suivant" -#: pcbnew/hotkeys.cpp:544 -#, c-format -msgid "Footprint %s found, but locked" -msgstr "Module %s trouvé, mais verrouillé" - -#: pcbnew/hotkeys.cpp:726 -msgid "Delete module?" -msgstr "Effacer Module?" - -#: pcbnew/specctra.cpp:133 -#: pcbnew/specctra.cpp:140 -msgid "Expecting" -msgstr "Attendu" - -#: pcbnew/specctra.cpp:147 -#: pcbnew/specctra.cpp:154 -msgid "Unexpected" -msgstr "Inattendu" - -#: pcbnew/specctra.cpp:324 -#: pcbnew/specctra.cpp:354 -#: pcbnew/specctra.cpp:3569 -#: pcbnew/specctra.cpp:3594 -#, c-format -msgid "Unable to open file \"%s\"" -msgstr "Ne peut pas ouvrirle fichier \"%s\"" - -#: pcbnew/specctra.cpp:3512 -#, c-format -msgid "System file error writing to file \"%s\"" -msgstr "Erreur système sur écriture fichier \"%s\"" - -#: pcbnew/specctra.cpp:3689 -msgid "Error writing to STRINGFORMATTER" -msgstr "Erreur d'écriture à STRINGFORMATTER" - #: pcbnew/menubarpcb.cpp:29 msgid "&New Board" msgstr "&Nouveau Circuit Imprimé" @@ -2596,26 +2664,6 @@ msgstr "Rot de la forme" msgid "3D Shape:" msgstr "Forme 3D:" -#: pcbnew/autorout.cpp:71 -msgid "Net not selected" -msgstr "Net non sélectionné" - -#: pcbnew/autorout.cpp:79 -msgid "Module not selected" -msgstr "Module non selectionné" - -#: pcbnew/autorout.cpp:88 -msgid "Pad not selected" -msgstr "Pad non sélectionné" - -#: pcbnew/autorout.cpp:156 -msgid "No memory for autorouting" -msgstr "Pas de mémoire pour autoroutage" - -#: pcbnew/autorout.cpp:161 -msgid "Place Cells" -msgstr "Place Cells" - #: pcbnew/plotgerb.cpp:54 msgid "unable to create file " msgstr "Impossible de créer fichier " @@ -2658,49 +2706,21 @@ msgstr "Le caractère de délimitation de ligne doit être un seul caractère ' msgid "Un-terminated delimited string" msgstr "Ligne délimitée non terminée" -#: pcbnew/class_pad.cpp:482 -msgid "Unknown pad shape" -msgstr "Forme pad inconnue" - -#: pcbnew/class_pad.cpp:571 -msgid "RefP" -msgstr "RefP" - -#: pcbnew/class_pad.cpp:573 -msgid "Net" -msgstr "Net" - -#: pcbnew/class_pad.cpp:674 -msgid "Drill" -msgstr "Perçage" - -#: pcbnew/class_pad.cpp:682 -msgid "Drill X / Y" -msgstr "Perçage X/Y" - -#: pcbnew/class_pad.cpp:696 -msgid "X Pos" -msgstr "X Pos" - -#: pcbnew/class_pad.cpp:699 -msgid "Y pos" -msgstr "Y pos" - #: pcbnew/dialog_layers_setup.cpp:104 msgid "Unknown" msgstr "Inconnu" #: pcbnew/dialog_layers_setup.cpp:105 msgid "Off-board, manufacturing" -msgstr "" +msgstr "Hors PCB, fabrication" #: pcbnew/dialog_layers_setup.cpp:106 msgid "On-board, non-copper" -msgstr "" +msgstr "PCB, non cuivre" #: pcbnew/dialog_layers_setup.cpp:107 msgid "On-board, copper" -msgstr "" +msgstr "PCB, cuivre" #: pcbnew/dialog_layers_setup.cpp:108 msgid "Board contour" @@ -2784,55 +2804,55 @@ msgstr "..." msgid "Messages:" msgstr "Messages:" -#: pcbnew/dialog_drc_base.cpp:113 +#: pcbnew/dialog_drc_base.cpp:115 msgid "Start DRC" msgstr "Démarrer DRC" -#: pcbnew/dialog_drc_base.cpp:115 +#: pcbnew/dialog_drc_base.cpp:117 msgid "Start the Design Rule Checker" msgstr "Démarrer le Contrôle des Règles de Conception (DRC)" -#: pcbnew/dialog_drc_base.cpp:119 +#: pcbnew/dialog_drc_base.cpp:121 msgid "List Unconnected" msgstr "Liste Non Conn." -#: pcbnew/dialog_drc_base.cpp:120 +#: pcbnew/dialog_drc_base.cpp:122 msgid "List unconnected pads or tracks" msgstr "Lister pads ou pistes non connectées" -#: pcbnew/dialog_drc_base.cpp:124 +#: pcbnew/dialog_drc_base.cpp:126 msgid "Delete All Markers" msgstr "Effacer tous les Marqueurs" -#: pcbnew/dialog_drc_base.cpp:125 +#: pcbnew/dialog_drc_base.cpp:127 msgid "Delete every marker" msgstr "Effacer Chaque Marqueur" -#: pcbnew/dialog_drc_base.cpp:129 +#: pcbnew/dialog_drc_base.cpp:131 msgid "Delete Current Marker" msgstr "Effacer Marqueur Courant" -#: pcbnew/dialog_drc_base.cpp:130 +#: pcbnew/dialog_drc_base.cpp:132 msgid "Delete the marker selected in the listBox below" msgstr "Supprimer le marqueur sélectionné dans la liste ci dessous" -#: pcbnew/dialog_drc_base.cpp:138 +#: pcbnew/dialog_drc_base.cpp:140 msgid "Error Messages:" msgstr "Messages d'Erreur:" -#: pcbnew/dialog_drc_base.cpp:148 +#: pcbnew/dialog_drc_base.cpp:150 msgid "MARKERs, double click any to go there in PCB, right click for popup menu" msgstr "MARQUEURS, double clic pour aller sur le PCB, clic droit pour ouvrir menu" -#: pcbnew/dialog_drc_base.cpp:156 +#: pcbnew/dialog_drc_base.cpp:158 msgid "Problems / Markers" msgstr "Problèmes / Marqueurs" -#: pcbnew/dialog_drc_base.cpp:162 +#: pcbnew/dialog_drc_base.cpp:164 msgid "A list of unconnected pads, right click for popup menu" msgstr "Pour une liste de pads non connecté, clic droit pour ouvrir un menu" -#: pcbnew/dialog_drc_base.cpp:169 +#: pcbnew/dialog_drc_base.cpp:171 msgid "Unconnected" msgstr "Non connecté" @@ -2884,125 +2904,6 @@ msgstr "Afficher pastilles en mode contour" msgid "Show pads in filled mode" msgstr "Afficher pastilles en mode plein" -#: pcbnew/class_board_item.cpp:24 -msgid "Rect" -msgstr "Rect" - -#: pcbnew/class_board_item.cpp:25 -msgid "Arc" -msgstr "Arc" - -#: pcbnew/class_board_item.cpp:26 -msgid "Circle" -msgstr "Cercle" - -#: pcbnew/class_board_item.cpp:27 -msgid "Bezier Curve" -msgstr "Courbe de Bezier" - -#: pcbnew/class_board_item.cpp:58 -msgid "Footprint" -msgstr "Module" - -#: pcbnew/class_board_item.cpp:64 -msgid "Pad" -msgstr "Pad" - -#: pcbnew/class_board_item.cpp:67 -msgid "all copper layers" -msgstr "Toutes Couches Cuivre" - -#: pcbnew/class_board_item.cpp:72 -msgid "???" -msgstr "???" - -#: pcbnew/class_board_item.cpp:73 -msgid ") of " -msgstr ") de " - -#: pcbnew/class_board_item.cpp:77 -msgid "Pcb Graphic" -msgstr "Pcb Graphic" - -#: pcbnew/class_board_item.cpp:79 -#: pcbnew/class_board_item.cpp:131 -msgid "Length:" -msgstr "Long.:" - -#: pcbnew/class_board_item.cpp:80 -#: pcbnew/class_board_item.cpp:89 -#: pcbnew/class_board_item.cpp:129 -#: pcbnew/class_board_item.cpp:165 -#: pcbnew/class_board_item.cpp:181 -#: pcbnew/class_board_item.cpp:209 -#: pcbnew/class_board_item.cpp:226 -msgid " on " -msgstr " sur " - -#: pcbnew/class_board_item.cpp:84 -msgid "Pcb Text" -msgstr "Texte Pcb" - -#: pcbnew/class_board_item.cpp:96 -msgid "Reference" -msgstr "Référence" - -#: pcbnew/class_board_item.cpp:100 -#: pcbnew/class_board_item.cpp:106 -#: pcbnew/class_board_item.cpp:116 -msgid " of " -msgstr " de " - -#: pcbnew/class_board_item.cpp:113 -msgid "Graphic" -msgstr "Graphique" - -#: pcbnew/class_board_item.cpp:123 -msgid "Track" -msgstr "Piste" - -#: pcbnew/class_board_item.cpp:130 -#: pcbnew/class_board_item.cpp:201 -#: pcbnew/dialog_copper_zones_base.cpp:197 -msgid "Net:" -msgstr "Net:" - -#: pcbnew/class_board_item.cpp:150 -msgid "Not on copper layer" -msgstr "Pas sur Couches Cuivre" - -#: pcbnew/class_board_item.cpp:169 -msgid "Zone" -msgstr "Zone" - -#: pcbnew/class_board_item.cpp:187 -msgid "Via" -msgstr "Via" - -#: pcbnew/class_board_item.cpp:191 -msgid "Blind/Buried" -msgstr "Borgne/Aveugle" - -#: pcbnew/class_board_item.cpp:193 -msgid "Micro Via" -msgstr "Micro Via" - -#: pcbnew/class_board_item.cpp:216 -msgid "Marker" -msgstr "Marqueur" - -#: pcbnew/class_board_item.cpp:221 -msgid "Dimension" -msgstr "Dimension" - -#: pcbnew/class_board_item.cpp:226 -msgid "Target" -msgstr "Mire" - -#: pcbnew/class_board_item.cpp:227 -msgid "size" -msgstr "dimension" - #: pcbnew/dialog_non_copper_zones_properties_base.cpp:28 #: pcbnew/dialog_copper_zones_base.cpp:38 msgid "Zone Fill Options:" @@ -3228,6 +3129,10 @@ msgstr "" "Modèle en mode avancé, pour filtrer les noms de net en liste\n" "Les noms de net correspondant à ce modèle ne sont pas listés" +#: pcbnew/dialog_copper_zones_base.cpp:197 +msgid "Net:" +msgstr "Net:" + #: pcbnew/dialog_pcb_text_properties.cpp:76 msgid "PCB Text properties" msgstr "Propriétés du Texte PCB" @@ -3324,11 +3229,22 @@ msgstr "Forme delta X" msgid "Shape delta Y" msgstr "Forme delta Y" +#: pcbnew/dialog_pad_properties_base.cpp:189 +#: pcbnew/dialog_pad_properties_base.cpp:195 +#: pcbnew/class_board_item.cpp:26 +msgid "Circle" +msgstr "Cercle" + #: pcbnew/dialog_pad_properties_base.cpp:189 #: pcbnew/dialog_pad_properties_base.cpp:195 msgid "Oval" msgstr "Ovale" +#: pcbnew/dialog_pad_properties_base.cpp:189 +#: pcbnew/class_board_item.cpp:24 +msgid "Rect" +msgstr "Rect" + #: pcbnew/dialog_pad_properties_base.cpp:189 msgid "Trapezoidal" msgstr "Trapézoidal" @@ -3510,9 +3426,37 @@ msgstr "couche E.C.O.2" msgid "Draft layer" msgstr "Couche dessin" -#: pcbnew/editrack-part2.cpp:105 -msgid "Drc error, canceled" -msgstr "Erreur DRC, annulation" +#: pcbnew/dialog_copper_zones.cpp:277 +msgid "Error : Zone clearance is set to an unreasonnable value" +msgstr "Erreur: l'isolation de zone est réglée à une valeur déraisonnable." + +#: pcbnew/dialog_copper_zones.cpp:288 +msgid "" +"Error :\n" +"you must choose a copper min thickness value bigger than 0.001 inch (or 0.0254 mm)" +msgstr "" +"Erreur :\n" +"vous devez choisir une valeur pour l'épaisseur de cuivre dans les freins thermiques plus grande que 0,001 pouce (ou 0,0254 mm)" + +#: pcbnew/dialog_copper_zones.cpp:313 +msgid "" +"Error :\n" +"you must choose a copper bridge value for thermal reliefs bigger than the min zone thickness" +msgstr "" +"Erreur :\n" +"vous devez choisir une valeur pour l'épaisseur de cuivre dans les freins thermiques plus grande que l'épaisseur de cuivre minimum des zones" + +#: pcbnew/dialog_copper_zones.cpp:325 +msgid "Error : you must choose a layer" +msgstr "Erreur. Vous devez choisir une couche" + +#: pcbnew/dialog_copper_zones.cpp:337 +msgid "Error : you must choose a net name" +msgstr "Erreur. Vous devez choisir une équipotentielle" + +#: pcbnew/dialog_copper_zones.cpp:344 +msgid "You have chosen the \"not connected\" option. This will create insulated copper islands. Are you sure ?" +msgstr "Vous avez choisi l'option \"non connecté\". Cela créera des blocs non connectés. Etes vous sûr ?" #: pcbnew/dialog_SVG_print_base.cpp:25 msgid "Copper Layers:" @@ -3620,65 +3564,6 @@ msgstr "Start Point X" msgid "Start Point Y" msgstr "Start Point Y" -#: pcbnew/specctra_import.cpp:77 -msgid "Merge Specctra Session file:" -msgstr "Fichier Specctra Session à Fusionner:" - -#: pcbnew/specctra_import.cpp:104 -msgid "BOARD may be corrupted, do not save it." -msgstr "Le PCB peut être corrompu. Ne pas le sauver" - -#: pcbnew/specctra_import.cpp:106 -msgid "Fix problem and try again." -msgstr "Fixer le problème et recommencer." - -#: pcbnew/specctra_import.cpp:128 -msgid "Session file imported and merged OK." -msgstr "Fichier Session importé et fusionné correctement." - -#: pcbnew/specctra_import.cpp:203 -#: pcbnew/specctra_import.cpp:311 -#, c-format -msgid "Session file uses invalid layer id \"%s\"" -msgstr "Le Fichier Session utilise une couche invalide n° \"%s\"" - -#: pcbnew/specctra_import.cpp:253 -msgid "Session via padstack has no shapes" -msgstr "Dans le fichier Session une via n'a pas de forme" - -#: pcbnew/specctra_import.cpp:260 -#: pcbnew/specctra_import.cpp:278 -#: pcbnew/specctra_import.cpp:302 -#, c-format -msgid "Unsupported via shape: \"%s\"" -msgstr "Forme via non supportée: \"%s\"" - -#: pcbnew/specctra_import.cpp:359 -msgid "Session file is missing the \"session\" section" -msgstr "Manque dans le Fichier Session file la section \"session\"" - -#: pcbnew/specctra_import.cpp:362 -msgid "Session file is missing the \"placement\" section" -msgstr "Manque dans le Fichier Session file la section \"placement\"" - -#: pcbnew/specctra_import.cpp:365 -msgid "Session file is missing the \"routes\" section" -msgstr "Manque dans le Fichier Session file la section \"routes\"" - -#: pcbnew/specctra_import.cpp:368 -msgid "Session file is missing the \"library_out\" section" -msgstr "Manque dans le Fichier Session file la section \"library_out\"" - -#: pcbnew/specctra_import.cpp:394 -#, c-format -msgid "Session file has 'reference' to non-existent component \"%s\"" -msgstr "Le fichier Session a une 'reference' à un composant non existant \"%s\"" - -#: pcbnew/specctra_import.cpp:538 -#, c-format -msgid "A wire_via references a missing padstack \"%s\"" -msgstr "Une piste ou via a une référence vers un pad \"%s\" manquant" - #: pcbnew/dialog_design_rules.cpp:57 msgid "* (Any)" msgstr "* (Tout)" @@ -3809,6 +3694,120 @@ msgstr "Couche Inf." msgid "Warning: The Top Layer and Bottom Layer are same." msgstr "Attention: Les couches dessus et dessous sont les mêmes" +#: pcbnew/class_board_item.cpp:25 +msgid "Arc" +msgstr "Arc" + +#: pcbnew/class_board_item.cpp:27 +msgid "Bezier Curve" +msgstr "Courbe de Bezier" + +#: pcbnew/class_board_item.cpp:58 +msgid "Footprint" +msgstr "Module" + +#: pcbnew/class_board_item.cpp:64 +msgid "Pad" +msgstr "Pad" + +#: pcbnew/class_board_item.cpp:67 +msgid "all copper layers" +msgstr "Toutes Couches Cuivre" + +#: pcbnew/class_board_item.cpp:72 +msgid "???" +msgstr "???" + +#: pcbnew/class_board_item.cpp:73 +msgid ") of " +msgstr ") de " + +#: pcbnew/class_board_item.cpp:77 +msgid "Pcb Graphic" +msgstr "Pcb Graphic" + +#: pcbnew/class_board_item.cpp:79 +#: pcbnew/class_board_item.cpp:131 +msgid "Length:" +msgstr "Long.:" + +#: pcbnew/class_board_item.cpp:80 +#: pcbnew/class_board_item.cpp:89 +#: pcbnew/class_board_item.cpp:129 +#: pcbnew/class_board_item.cpp:165 +#: pcbnew/class_board_item.cpp:181 +#: pcbnew/class_board_item.cpp:209 +#: pcbnew/class_board_item.cpp:226 +msgid " on " +msgstr " sur " + +#: pcbnew/class_board_item.cpp:84 +msgid "Pcb Text" +msgstr "Texte Pcb" + +#: pcbnew/class_board_item.cpp:96 +msgid "Reference" +msgstr "Référence" + +#: pcbnew/class_board_item.cpp:100 +#: pcbnew/class_edge_mod.cpp:304 +msgid "Value" +msgstr "Valeur" + +#: pcbnew/class_board_item.cpp:100 +#: pcbnew/class_board_item.cpp:106 +#: pcbnew/class_board_item.cpp:116 +msgid " of " +msgstr " de " + +#: pcbnew/class_board_item.cpp:105 +msgid "Text" +msgstr "Texte" + +#: pcbnew/class_board_item.cpp:113 +msgid "Graphic" +msgstr "Graphique" + +#: pcbnew/class_board_item.cpp:123 +msgid "Track" +msgstr "Piste" + +#: pcbnew/class_board_item.cpp:150 +msgid "Not on copper layer" +msgstr "Pas sur Couches Cuivre" + +#: pcbnew/class_board_item.cpp:169 +msgid "Zone" +msgstr "Zone" + +#: pcbnew/class_board_item.cpp:187 +msgid "Via" +msgstr "Via" + +#: pcbnew/class_board_item.cpp:191 +msgid "Blind/Buried" +msgstr "Borgne/Aveugle" + +#: pcbnew/class_board_item.cpp:193 +msgid "Micro Via" +msgstr "Micro Via" + +#: pcbnew/class_board_item.cpp:216 +msgid "Marker" +msgstr "Marqueur" + +#: pcbnew/class_board_item.cpp:221 +msgid "Dimension" +msgstr "Dimension" + +#: pcbnew/class_board_item.cpp:226 +msgid "Target" +msgstr "Mire" + +#: pcbnew/class_board_item.cpp:227 +msgid "size" +msgstr "dimension" + #: pcbnew/class_edge_mod.cpp:300 msgid "Graphic Item" msgstr "Element Graphique" @@ -4004,6 +4003,38 @@ msgstr "Visible" msgid "Invisible" msgstr "Invisible" +#: pcbnew/class_track.cpp:920 +msgid "Track Length" +msgstr "Long. Piste" + +#: pcbnew/class_track.cpp:979 +msgid "Flags" +msgstr "Flags" + +#: pcbnew/class_track.cpp:991 +msgid "Status" +msgstr "Status" + +#: pcbnew/class_track.cpp:1014 +msgid "Diam" +msgstr "Diam" + +#: pcbnew/class_track.cpp:1025 +msgid "(Specific)" +msgstr "(Specifique)" + +#: pcbnew/class_track.cpp:1027 +msgid "(Default)" +msgstr "(Défaut)" + +#: pcbnew/class_track.cpp:1040 +msgid "Net Class" +msgstr "Classe d'Equipot" + +#: pcbnew/class_track.cpp:1047 +msgid "Segment Length" +msgstr "Long. Segment" + #: pcbnew/class_drawsegment.cpp:373 msgid "Shape" msgstr "Forme" @@ -4024,6 +4055,10 @@ msgstr "Segment" msgid "Netlist Selection:" msgstr "Sélection de la netliste" +#: pcbnew/editrack-part2.cpp:105 +msgid "Drc error, canceled" +msgstr "Erreur DRC, annulation" + #: pcbnew/modedit_onclick.cpp:206 msgid "End Tool" msgstr "Fin Outil" @@ -4329,106 +4364,80 @@ msgstr "Recalculer le chevelu complet ( utile après une édition manuelle de no msgid "Netlist File:" msgstr "Fichier Netliste:" -#: pcbnew/drc.cpp:201 -msgid "Compile ratsnest...\n" -msgstr "Calcul du chevelu...\n" - -#: pcbnew/drc.cpp:217 -msgid "Aborting\n" -msgstr "Arrêt\n" - -#: pcbnew/drc.cpp:230 -msgid "Pad clearances...\n" -msgstr "Isolations pads...\n" - -#: pcbnew/drc.cpp:240 -msgid "Track clearances...\n" -msgstr "Isolations pistes...\n" - -#: pcbnew/drc.cpp:250 -msgid "Fill zones...\n" -msgstr "Remplissage zones...\n" - -#: pcbnew/drc.cpp:258 -msgid "Test zones...\n" -msgstr "Test zones...\n" - -#: pcbnew/drc.cpp:269 -msgid "Unconnected pads...\n" -msgstr "Pads non connectés...\n" - -#: pcbnew/drc.cpp:283 -msgid "Finished" -msgstr "Fini" - -#: pcbnew/drc.cpp:325 -#, c-format -msgid "NETCLASS: '%s' has Clearance:%s which is less than global:%s" -msgstr "NETCLASS: '%s' a une isolation:%s qui est moins que la valeur globale:%s" - -#: pcbnew/drc.cpp:340 -#, c-format -msgid "NETCLASS: '%s' has TrackWidth:%s which is less than global:%s" -msgstr "NETCLASS: '%s' a une largeur de piste: %s plust petite que la valeur globale:%s" - -#: pcbnew/drc.cpp:354 -#, c-format -msgid "NETCLASS: '%s' has Via Dia:%s which is less than global:%s" -msgstr "NETCLASS: '%s' a un diamètre de via: %s qui est plus petit que la valeur globale: %s" - -#: pcbnew/drc.cpp:368 -#, c-format -msgid "NETCLASS: '%s' has Via Drill:%s which is less than global:%s" -msgstr "NETCLASS: '%s' a un perçage de via: %s qui est plus petit que la valeur globale: %s" - -#: pcbnew/drc.cpp:382 -#, c-format -msgid "NETCLASS: '%s' has uVia Dia:%s which is less than global:%s" -msgstr "NETCLASS: '%s' a un diamètre de microvia: %s qui est plus petit que la valeur globale: %s" - -#: pcbnew/drc.cpp:396 -#, c-format -msgid "NETCLASS: '%s' has uVia Drill:%s which is less than global:%s" -msgstr "NETCLASS: '%s' a un perçage de microvia: %s qui est plus petit que la valeur globale: %s" - #: pcbnew/class_marker_pcb.cpp:68 msgid "ErrType" msgstr "Type Err" -#: pcbnew/specctra_export.cpp:78 -msgid "Specctra DSN file:" -msgstr "Fichier Specctra DSN" +#: pcbnew/class_text_mod.cpp:442 +msgid "Ref." +msgstr "Ref." -#: pcbnew/specctra_export.cpp:137 -msgid "BOARD exported OK." -msgstr "PCB exporté Ok." +#: pcbnew/class_text_mod.cpp:473 +msgid " No" +msgstr "Non" -#: pcbnew/specctra_export.cpp:142 -msgid "Unable to export, please fix and try again." -msgstr "Impossible d'exporter, fixer le problème et recommencer" +#: pcbnew/class_text_mod.cpp:475 +msgid " Yes" +msgstr "Oui" -#: pcbnew/specctra_export.cpp:806 +#: pcbnew/specctra_import.cpp:77 +msgid "Merge Specctra Session file:" +msgstr "Fichier Specctra Session à Fusionner:" + +#: pcbnew/specctra_import.cpp:104 +msgid "BOARD may be corrupted, do not save it." +msgstr "Le PCB peut être corrompu. Ne pas le sauver" + +#: pcbnew/specctra_import.cpp:106 +msgid "Fix problem and try again." +msgstr "Fixer le problème et recommencer." + +#: pcbnew/specctra_import.cpp:128 +msgid "Session file imported and merged OK." +msgstr "Fichier Session importé et fusionné correctement." + +#: pcbnew/specctra_import.cpp:203 +#: pcbnew/specctra_import.cpp:311 #, c-format -msgid "Unsupported DRAWSEGMENT type %s" -msgstr "DRAWSEGMENT type %s non supporté" +msgid "Session file uses invalid layer id \"%s\"" +msgstr "Le Fichier Session utilise une couche invalide n° \"%s\"" -#: pcbnew/specctra_export.cpp:841 -msgid "Unable to find the next segment with an endpoint of " -msgstr "Impossible de trouver le segment suivant avec une extrémité à " +#: pcbnew/specctra_import.cpp:253 +msgid "Session via padstack has no shapes" +msgstr "Dans le fichier Session une via n'a pas de forme" -#: pcbnew/specctra_export.cpp:844 -msgid "Edit Edges_Pcb segments, making them contiguous." -msgstr "Modifier les segments du contour PCB pour les rendre contigus." - -#: pcbnew/specctra_export.cpp:896 +#: pcbnew/specctra_import.cpp:260 +#: pcbnew/specctra_import.cpp:278 +#: pcbnew/specctra_import.cpp:302 #, c-format -msgid "Component with value of \"%s\" has empty reference id." -msgstr "Le composant avec valeur \"%s\" a une référence vide." +msgid "Unsupported via shape: \"%s\"" +msgstr "Forme via non supportée: \"%s\"" -#: pcbnew/specctra_export.cpp:904 +#: pcbnew/specctra_import.cpp:359 +msgid "Session file is missing the \"session\" section" +msgstr "Manque dans le Fichier Session file la section \"session\"" + +#: pcbnew/specctra_import.cpp:362 +msgid "Session file is missing the \"placement\" section" +msgstr "Manque dans le Fichier Session file la section \"placement\"" + +#: pcbnew/specctra_import.cpp:365 +msgid "Session file is missing the \"routes\" section" +msgstr "Manque dans le Fichier Session file la section \"routes\"" + +#: pcbnew/specctra_import.cpp:368 +msgid "Session file is missing the \"library_out\" section" +msgstr "Manque dans le Fichier Session file la section \"library_out\"" + +#: pcbnew/specctra_import.cpp:394 #, c-format -msgid "Multiple components have identical reference IDs of \"%s\"." -msgstr "Multiple composants ont une reference identique \"%s\"." +msgid "Session file has 'reference' to non-existent component \"%s\"" +msgstr "Le fichier Session a une 'reference' à un composant non existant \"%s\"" + +#: pcbnew/specctra_import.cpp:538 +#, c-format +msgid "A wire_via references a missing padstack \"%s\"" +msgstr "Une piste ou via a une référence vers un pad \"%s\" manquant" #: pcbnew/dialog_orient_footprints.cpp:138 msgid "Orientation:" @@ -4467,13 +4476,13 @@ msgstr "Ok pour ajuster l'orientation des modules à %g degrés ?" msgid "Bad value for footprints orientation" msgstr "Mauvaise valeur pour l'orientation des empreintes" -#: pcbnew/gen_drill_report_files.cpp:263 -msgid "" -" Drill map: Too many diameter values to draw to draw one symbol per drill value (max 13)\n" -"Plot uses circle shape for some drill values" -msgstr "" -"Plan de perçage: trop de diamètres différents pour tracer 1 symbole par diamètre (max 13)\n" -"Le tracé utilise des cercles pour quelques valeurs " +#: pcbnew/export_gencad.cpp:73 +msgid "GenCAD 1.4 board files (.cad)|*.cad" +msgstr "Fichiers PCB GenCAD 1.4 (.cad)|*.cad" + +#: pcbnew/export_gencad.cpp:76 +msgid "Save GenCAD Board File" +msgstr "Sauver Fichier PCB format GenCAD" #: pcbnew/onrightclick.cpp:130 msgid "Lock Module" @@ -5002,6 +5011,34 @@ msgstr "Prévisualisation" msgid "There was a problem printing" msgstr "Il y a un problème d'impression" +#: pcbnew/class_module.cpp:839 +msgid "Last Change" +msgstr "Last Change" + +#: pcbnew/class_module.cpp:844 +msgid "Netlist path" +msgstr "Chemin Netliste " + +#: pcbnew/class_module.cpp:865 +msgid "Stat" +msgstr "Stat" + +#: pcbnew/class_module.cpp:875 +msgid "No 3D shape" +msgstr "Pas de forme 3D" + +#: pcbnew/class_module.cpp:876 +msgid "3D-Shape" +msgstr "Forme 3D" + +#: pcbnew/class_module.cpp:878 +msgid "Doc: " +msgstr "Doc: " + +#: pcbnew/class_module.cpp:879 +msgid "KeyW: " +msgstr "KeyW: " + #: pcbnew/dialog_design_rules_base.cpp:25 msgid "Net Classes:" msgstr "Classes d'Equipots:" @@ -5244,33 +5281,40 @@ msgstr "Piste 7" msgid "Global Design Rules" msgstr "Règles Générales" -#: pcbnew/class_module.cpp:839 -msgid "Last Change" -msgstr "Last Change" +#: pcbnew/specctra_export.cpp:78 +msgid "Specctra DSN file:" +msgstr "Fichier Specctra DSN" -#: pcbnew/class_module.cpp:844 -msgid "Netlist path" -msgstr "Chemin Netliste " +#: pcbnew/specctra_export.cpp:137 +msgid "BOARD exported OK." +msgstr "PCB exporté Ok." -#: pcbnew/class_module.cpp:865 -msgid "Stat" -msgstr "Stat" +#: pcbnew/specctra_export.cpp:142 +msgid "Unable to export, please fix and try again." +msgstr "Impossible d'exporter, fixer le problème et recommencer" -#: pcbnew/class_module.cpp:875 -msgid "No 3D shape" -msgstr "Pas de forme 3D" +#: pcbnew/specctra_export.cpp:806 +#, c-format +msgid "Unsupported DRAWSEGMENT type %s" +msgstr "DRAWSEGMENT type %s non supporté" -#: pcbnew/class_module.cpp:876 -msgid "3D-Shape" -msgstr "Forme 3D" +#: pcbnew/specctra_export.cpp:841 +msgid "Unable to find the next segment with an endpoint of " +msgstr "Impossible de trouver le segment suivant avec une extrémité à " -#: pcbnew/class_module.cpp:878 -msgid "Doc: " -msgstr "Doc: " +#: pcbnew/specctra_export.cpp:844 +msgid "Edit Edges_Pcb segments, making them contiguous." +msgstr "Modifier les segments du contour PCB pour les rendre contigus." -#: pcbnew/class_module.cpp:879 -msgid "KeyW: " -msgstr "KeyW: " +#: pcbnew/specctra_export.cpp:896 +#, c-format +msgid "Component with value of \"%s\" has empty reference id." +msgstr "Le composant avec valeur \"%s\" a une référence vide." + +#: pcbnew/specctra_export.cpp:904 +#, c-format +msgid "Multiple components have identical reference IDs of \"%s\"." +msgstr "Multiple composants ont une reference identique \"%s\"." #: pcbnew/dialog_exchange_modules_base.cpp:25 msgid "Current Module" @@ -5300,64 +5344,32 @@ msgstr "Change tous" msgid "Browse Libs modules" msgstr "Liste modules" -#: pcbnew/dialog_drc.cpp:181 -#: pcbnew/dialog_drc.cpp:255 +#: pcbnew/dialog_drc.cpp:183 +#: pcbnew/dialog_drc.cpp:257 #, c-format msgid "Report file \"%s\" created" msgstr "Fichier rapport \"%s\" créé" -#: pcbnew/dialog_drc.cpp:183 -#: pcbnew/dialog_drc.cpp:256 +#: pcbnew/dialog_drc.cpp:185 +#: pcbnew/dialog_drc.cpp:258 msgid "Disk File Report Completed" msgstr "Fichier rapport terminé" -#: pcbnew/dialog_drc.cpp:276 +#: pcbnew/dialog_drc.cpp:278 msgid "DRC report files (.rpt)|*.rpt" msgstr "Fichier rapport DRC (.rpt)|*.rpt" -#: pcbnew/dialog_drc.cpp:282 +#: pcbnew/dialog_drc.cpp:284 msgid "Save DRC Report File" msgstr "Sauver Fichier Rapport DRC:" -#: pcbnew/class_pcb_text.cpp:225 -msgid "COTATION" -msgstr "COTATION" - -#: pcbnew/class_pcb_text.cpp:227 -msgid "PCB Text" -msgstr "Texte PCB" - -#: pcbnew/class_track.cpp:920 -msgid "Track Length" -msgstr "Long. Piste" - -#: pcbnew/class_track.cpp:979 -msgid "Flags" -msgstr "Flags" - -#: pcbnew/class_track.cpp:991 -msgid "Status" -msgstr "Status" - -#: pcbnew/class_track.cpp:1014 -msgid "Diam" -msgstr "Diam" - -#: pcbnew/class_track.cpp:1025 -msgid "(Specific)" -msgstr "(Specifique)" - -#: pcbnew/class_track.cpp:1027 -msgid "(Default)" -msgstr "(Défaut)" - -#: pcbnew/class_track.cpp:1040 -msgid "Net Class" -msgstr "Classe d'Equipot" - -#: pcbnew/class_track.cpp:1047 -msgid "Segment Length" -msgstr "Long. Segment" +#: pcbnew/gen_drill_report_files.cpp:263 +msgid "" +" Drill map: Too many diameter values to draw to draw one symbol per drill value (max 13)\n" +"Plot uses circle shape for some drill values" +msgstr "" +"Plan de perçage: trop de diamètres différents pour tracer 1 symbole par diamètre (max 13)\n" +"Le tracé utilise des cercles pour quelques valeurs " #: pcbnew/dialog_edit_module_for_Modedit_base.cpp:24 #: pcbnew/dialog_edit_module_for_BoardEditor_base.cpp:24 @@ -5696,21 +5708,269 @@ msgstr "" "La marge finale est la somme de cette valeur et du rapport de marge\n" "Une valeur négative signifie que le masque est plus petit que le pad." -#: pcbnew/gen_modules_placefile.cpp:131 -msgid "No modules for automated placement." -msgstr "Pas de module pour placement automatisé" +#: pcbnew/dialog_layers_setup_base2.cpp:23 +msgid "Preset Layer Groupings" +msgstr "Groupes Prédéterminés de Couches" -#: pcbnew/gen_modules_placefile.cpp:172 -msgid "Component side place file:" -msgstr "Fichier placement côté composant:" +#: pcbnew/dialog_layers_setup_base2.cpp:25 +msgid "Single Sided" +msgstr "Simple Face" -#: pcbnew/gen_modules_placefile.cpp:176 -msgid "Copper side place file:" -msgstr "Fichier placement côté cuivre:" +#: pcbnew/dialog_layers_setup_base2.cpp:25 +msgid "Single Sided, SMD on Back" +msgstr "Simple face, CMS coté Cuivre" -#: pcbnew/gen_modules_placefile.cpp:180 -msgid "Module count" -msgstr "Nb Modules" +#: pcbnew/dialog_layers_setup_base2.cpp:34 +msgid "Copper Layers" +msgstr "Couches Cuivre." + +#: pcbnew/dialog_layers_setup_base2.cpp:36 +msgid "1" +msgstr "1" + +#: pcbnew/dialog_layers_setup_base2.cpp:36 +msgid "2" +msgstr "2" + +#: pcbnew/dialog_layers_setup_base2.cpp:36 +msgid "4" +msgstr "4" + +#: pcbnew/dialog_layers_setup_base2.cpp:36 +msgid "6" +msgstr "6" + +#: pcbnew/dialog_layers_setup_base2.cpp:36 +msgid "8" +msgstr "8" + +#: pcbnew/dialog_layers_setup_base2.cpp:36 +msgid "10" +msgstr "10" + +#: pcbnew/dialog_layers_setup_base2.cpp:36 +msgid "12" +msgstr "12" + +#: pcbnew/dialog_layers_setup_base2.cpp:36 +msgid "14" +msgstr "14" + +#: pcbnew/dialog_layers_setup_base2.cpp:36 +msgid "16" +msgstr "16" + +#: pcbnew/dialog_layers_setup_base2.cpp:47 +msgid "Layers" +msgstr "Couches" + +#: pcbnew/dialog_layers_setup_base2.cpp:52 +msgid "Name" +msgstr "Nom" + +#: pcbnew/dialog_layers_setup_base2.cpp:58 +msgid "Enabled" +msgstr "Activé" + +#: pcbnew/dialog_layers_setup_base2.cpp:80 +msgid "Adhes_Front_later" +msgstr "Adhes_Dessus_réserve" + +#: pcbnew/dialog_layers_setup_base2.cpp:92 +msgid "If you want an adhesive template for the front side of the board" +msgstr "Si vous voulez un motif sur couche adhésive sur le dessus du PCB" + +#: pcbnew/dialog_layers_setup_base2.cpp:105 +msgid "SoldP_Front_later" +msgstr "SoldP_Dessus_réserve" + +#: pcbnew/dialog_layers_setup_base2.cpp:117 +msgid "If you want a solder paster layer for front side of the board" +msgstr "Si vous voulez une couche de pate à braser sur le dessus du PCB" + +#: pcbnew/dialog_layers_setup_base2.cpp:130 +msgid "SilkS_Front_later" +msgstr "SilkS_Dessus_réserve" + +#: pcbnew/dialog_layers_setup_base2.cpp:153 +msgid "Mask_Front_later" +msgstr "Mask_Dessus_réserve" + +#: pcbnew/dialog_layers_setup_base2.cpp:176 +msgid "Front_later" +msgstr "Dessus_réserve" + +#: pcbnew/dialog_layers_setup_base2.cpp:195 +#: pcbnew/dialog_layers_setup_base2.cpp:219 +#: pcbnew/dialog_layers_setup_base2.cpp:243 +#: pcbnew/dialog_layers_setup_base2.cpp:267 +#: pcbnew/dialog_layers_setup_base2.cpp:291 +#: pcbnew/dialog_layers_setup_base2.cpp:315 +#: pcbnew/dialog_layers_setup_base2.cpp:339 +#: pcbnew/dialog_layers_setup_base2.cpp:363 +#: pcbnew/dialog_layers_setup_base2.cpp:387 +#: pcbnew/dialog_layers_setup_base2.cpp:411 +#: pcbnew/dialog_layers_setup_base2.cpp:435 +#: pcbnew/dialog_layers_setup_base2.cpp:459 +#: pcbnew/dialog_layers_setup_base2.cpp:483 +#: pcbnew/dialog_layers_setup_base2.cpp:507 +#: pcbnew/dialog_layers_setup_base2.cpp:531 +#: pcbnew/dialog_layers_setup_base2.cpp:555 +msgid "signal" +msgstr "signal" + +#: pcbnew/dialog_layers_setup_base2.cpp:195 +#: pcbnew/dialog_layers_setup_base2.cpp:219 +#: pcbnew/dialog_layers_setup_base2.cpp:243 +#: pcbnew/dialog_layers_setup_base2.cpp:267 +#: pcbnew/dialog_layers_setup_base2.cpp:291 +#: pcbnew/dialog_layers_setup_base2.cpp:315 +#: pcbnew/dialog_layers_setup_base2.cpp:339 +#: pcbnew/dialog_layers_setup_base2.cpp:363 +#: pcbnew/dialog_layers_setup_base2.cpp:387 +#: pcbnew/dialog_layers_setup_base2.cpp:411 +#: pcbnew/dialog_layers_setup_base2.cpp:435 +#: pcbnew/dialog_layers_setup_base2.cpp:459 +#: pcbnew/dialog_layers_setup_base2.cpp:483 +#: pcbnew/dialog_layers_setup_base2.cpp:507 +#: pcbnew/dialog_layers_setup_base2.cpp:531 +#: pcbnew/dialog_layers_setup_base2.cpp:555 +msgid "power" +msgstr "power" + +#: pcbnew/dialog_layers_setup_base2.cpp:195 +#: pcbnew/dialog_layers_setup_base2.cpp:219 +#: pcbnew/dialog_layers_setup_base2.cpp:243 +#: pcbnew/dialog_layers_setup_base2.cpp:267 +#: pcbnew/dialog_layers_setup_base2.cpp:291 +#: pcbnew/dialog_layers_setup_base2.cpp:315 +#: pcbnew/dialog_layers_setup_base2.cpp:339 +#: pcbnew/dialog_layers_setup_base2.cpp:363 +#: pcbnew/dialog_layers_setup_base2.cpp:387 +#: pcbnew/dialog_layers_setup_base2.cpp:411 +#: pcbnew/dialog_layers_setup_base2.cpp:435 +#: pcbnew/dialog_layers_setup_base2.cpp:459 +#: pcbnew/dialog_layers_setup_base2.cpp:483 +#: pcbnew/dialog_layers_setup_base2.cpp:507 +#: pcbnew/dialog_layers_setup_base2.cpp:531 +#: pcbnew/dialog_layers_setup_base2.cpp:555 +msgid "mixed" +msgstr "mélangé" + +#: pcbnew/dialog_layers_setup_base2.cpp:195 +#: pcbnew/dialog_layers_setup_base2.cpp:219 +#: pcbnew/dialog_layers_setup_base2.cpp:243 +#: pcbnew/dialog_layers_setup_base2.cpp:267 +#: pcbnew/dialog_layers_setup_base2.cpp:291 +#: pcbnew/dialog_layers_setup_base2.cpp:315 +#: pcbnew/dialog_layers_setup_base2.cpp:339 +#: pcbnew/dialog_layers_setup_base2.cpp:363 +#: pcbnew/dialog_layers_setup_base2.cpp:387 +#: pcbnew/dialog_layers_setup_base2.cpp:411 +#: pcbnew/dialog_layers_setup_base2.cpp:435 +#: pcbnew/dialog_layers_setup_base2.cpp:459 +#: pcbnew/dialog_layers_setup_base2.cpp:483 +#: pcbnew/dialog_layers_setup_base2.cpp:507 +#: pcbnew/dialog_layers_setup_base2.cpp:531 +#: pcbnew/dialog_layers_setup_base2.cpp:555 +msgid "jumper" +msgstr "jumper" + +#: pcbnew/dialog_layers_setup_base2.cpp:201 +msgid "Inner2" +msgstr "Interne2" + +#: pcbnew/dialog_layers_setup_base2.cpp:225 +msgid "Inner3" +msgstr "Interne3" + +#: pcbnew/dialog_layers_setup_base2.cpp:249 +msgid "Inner4" +msgstr "Interne4" + +#: pcbnew/dialog_layers_setup_base2.cpp:273 +msgid "Inner5" +msgstr "Interne5" + +#: pcbnew/dialog_layers_setup_base2.cpp:297 +msgid "Inner6" +msgstr "Interne6" + +#: pcbnew/dialog_layers_setup_base2.cpp:321 +msgid "Inner7" +msgstr "Interne7" + +#: pcbnew/dialog_layers_setup_base2.cpp:345 +msgid "Inner8" +msgstr "Interne8" + +#: pcbnew/dialog_layers_setup_base2.cpp:369 +msgid "Inner9" +msgstr "Interne9" + +#: pcbnew/dialog_layers_setup_base2.cpp:393 +msgid "Inner10" +msgstr "Interne10" + +#: pcbnew/dialog_layers_setup_base2.cpp:417 +msgid "Inner11" +msgstr "Interne11" + +#: pcbnew/dialog_layers_setup_base2.cpp:441 +msgid "Inner12" +msgstr "Interne12" + +#: pcbnew/dialog_layers_setup_base2.cpp:465 +msgid "Inner13" +msgstr "Interne13" + +#: pcbnew/dialog_layers_setup_base2.cpp:489 +msgid "Inner14" +msgstr "Interne14" + +#: pcbnew/dialog_layers_setup_base2.cpp:513 +msgid "Inner15" +msgstr "Interne15" + +#: pcbnew/dialog_layers_setup_base2.cpp:537 +msgid "Back" +msgstr "Dessous" + +#: pcbnew/dialog_layers_setup_base2.cpp:561 +msgid "Mask_Back_later" +msgstr "Mask_Dessous_réserve" + +#: pcbnew/dialog_layers_setup_base2.cpp:584 +msgid "SilkS_Back_later" +msgstr "SilkS_Dessous_réserver" + +#: pcbnew/dialog_layers_setup_base2.cpp:607 +msgid "SoldP_Back_later" +msgstr "SoldP_Dessous_réserve" + +#: pcbnew/dialog_layers_setup_base2.cpp:630 +msgid "Adhes_Back_later" +msgstr "Adhes_Dessous_réserve" + +#: pcbnew/dialog_layers_setup_base2.cpp:653 +msgid "PCB_Edges_later" +msgstr "PCB_Edges_réserve" + +#: pcbnew/dialog_layers_setup_base2.cpp:676 +msgid "Eco2_later" +msgstr "Eco2_réserve" + +#: pcbnew/dialog_layers_setup_base2.cpp:699 +msgid "Eco1_later" +msgstr "Eco1_réserve" + +#: pcbnew/dialog_layers_setup_base2.cpp:722 +msgid "Comments_later" +msgstr "Commentaires_réserve" + +#: pcbnew/dialog_layers_setup_base2.cpp:745 +msgid "Drawings_later" +msgstr "Drawings_réserve" #: pcbnew/dialog_global_edit_tracks_and_vias.cpp:154 msgid "Set current Net tracks and vias sizes and drill to the current values?" @@ -5759,8 +6019,6 @@ msgstr "Sélectionner comment les pistes sont affichées" #: pcbnew/dialog_display_options_base.cpp:30 #: pcbnew/dialog_display_options_base.cpp:38 -#: pcbnew/dialog_general_options_BoardEditor_base.cpp:137 -#: pcbnew/dialog_general_options_BoardEditor_base.cpp:145 msgid "Never" msgstr "Jamais" @@ -5774,8 +6032,6 @@ msgstr "Nouvelle piste avec via" #: pcbnew/dialog_display_options_base.cpp:30 #: pcbnew/dialog_display_options_base.cpp:38 -#: pcbnew/dialog_general_options_BoardEditor_base.cpp:137 -#: pcbnew/dialog_general_options_BoardEditor_base.cpp:145 msgid "Always" msgstr "Toujours" @@ -5924,6 +6180,7 @@ msgid "Net Code" msgstr "Net Code" #: pcbnew/class_netinfo_item.cpp:164 +#: pcbnew/class_board.cpp:751 msgid "Vias" msgstr "Vias" @@ -5943,6 +6200,102 @@ msgstr "Echelle 8" msgid "Scale 16" msgstr "Echelle 16" +#: pcbnew/class_board.cpp:52 +msgid "This is the default net class." +msgstr "Ceci est la Netclass par défaut" + +#: pcbnew/class_board.cpp:212 +msgid "Front" +msgstr "Dessus" + +#: pcbnew/class_board.cpp:228 +msgid "Adhes_Back" +msgstr "Adhes_Dessous" + +#: pcbnew/class_board.cpp:229 +msgid "Adhes_Front" +msgstr "Adhes_Dessus" + +#: pcbnew/class_board.cpp:230 +msgid "SoldP_Back" +msgstr "SoldP_Dessous" + +#: pcbnew/class_board.cpp:231 +msgid "SoldP_Front" +msgstr "SoldP_Dessus" + +#: pcbnew/class_board.cpp:232 +msgid "SilkS_Back" +msgstr "SilkS_Dessous" + +#: pcbnew/class_board.cpp:233 +msgid "SilkS_Front" +msgstr "Sérigr_Dessus" + +#: pcbnew/class_board.cpp:234 +msgid "Mask_Back" +msgstr "Masque_Dessous" + +#: pcbnew/class_board.cpp:235 +msgid "Mask_Front" +msgstr "Masque_Dessus" + +#: pcbnew/class_board.cpp:236 +msgid "Drawings" +msgstr "Drawings " + +#: pcbnew/class_board.cpp:237 +msgid "Comments" +msgstr "Commentaires " + +#: pcbnew/class_board.cpp:238 +msgid "Eco1" +msgstr "Eco1 " + +#: pcbnew/class_board.cpp:239 +msgid "Eco2" +msgstr "Eco2 " + +#: pcbnew/class_board.cpp:240 +msgid "PCB_Edges" +msgstr "Contours_PCB" + +#: pcbnew/class_board.cpp:241 +msgid "BAD INDEX" +msgstr "BAD INDEX" + +#: pcbnew/class_board.cpp:754 +msgid "Nodes" +msgstr "Nodes" + +#: pcbnew/class_board.cpp:757 +msgid "Nets" +msgstr "Nets" + +#: pcbnew/class_board.cpp:765 +msgid "Links" +msgstr "Liens" + +#: pcbnew/class_board.cpp:768 +msgid "Connect" +msgstr "Connect" + +#: pcbnew/gen_modules_placefile.cpp:131 +msgid "No modules for automated placement." +msgstr "Pas de module pour placement automatisé" + +#: pcbnew/gen_modules_placefile.cpp:172 +msgid "Component side place file:" +msgstr "Fichier placement côté composant:" + +#: pcbnew/gen_modules_placefile.cpp:176 +msgid "Copper side place file:" +msgstr "Fichier placement côté cuivre:" + +#: pcbnew/gen_modules_placefile.cpp:180 +msgid "Module count" +msgstr "Nb Modules" + #: pcbnew/dialog_general_options_BoardEditor_base.cpp:22 msgid "No Display" msgstr "Pas d'affichage" @@ -6176,26 +6529,6 @@ msgstr "Ajout de stub (arc)" msgid "Add Polynomial Shape" msgstr "Ajout Forme polynomiale" -#: pcbnew/class_board.cpp:52 -msgid "This is the default net class." -msgstr "Ceci est la Netclass par défaut" - -#: pcbnew/class_board.cpp:707 -msgid "Nodes" -msgstr "Nodes" - -#: pcbnew/class_board.cpp:710 -msgid "Nets" -msgstr "Nets" - -#: pcbnew/class_board.cpp:718 -msgid "Links" -msgstr "Liens" - -#: pcbnew/class_board.cpp:721 -msgid "Connect" -msgstr "Connect" - #: pcbnew/toolbars_update_user_interface.cpp:39 msgid " mils" msgstr " mils" @@ -6685,45 +7018,45 @@ msgstr "" "Changer un nom de fichier peut changer toute la structure schématique et ne pourra être annulée.\n" "Ok pour renommer?" -#: eeschema/pinedit.cpp:194 +#: eeschema/pinedit.cpp:198 msgid "This position is already occupied by another pin. Continue?" msgstr "Position occupée par une autre pin. Continuer ?" -#: eeschema/pinedit.cpp:626 +#: eeschema/pinedit.cpp:623 msgid "No pins!" msgstr "Pas de Pins!" -#: eeschema/pinedit.cpp:637 +#: eeschema/pinedit.cpp:634 msgid "Marker Information" msgstr "Info Marqueur" -#: eeschema/pinedit.cpp:656 +#: eeschema/pinedit.cpp:653 #, c-format msgid "Duplicate pin %s \"%s\" at location (%.3f, %.3f) conflicts with pin %s \"%s\" at location (%.3f, %.3f)" msgstr "Pin dupliquée %s \"%s\" en position (%.3f, %.3f) en conflit avec pin %s \"%s\" en position (%.3f, %.3f)" -#: eeschema/pinedit.cpp:669 -#: eeschema/pinedit.cpp:708 +#: eeschema/pinedit.cpp:666 +#: eeschema/pinedit.cpp:705 #, c-format msgid " in part %c" msgstr " en composant %c" -#: eeschema/pinedit.cpp:676 -#: eeschema/pinedit.cpp:715 +#: eeschema/pinedit.cpp:673 +#: eeschema/pinedit.cpp:712 msgid " of converted" msgstr " de converti" -#: eeschema/pinedit.cpp:678 -#: eeschema/pinedit.cpp:717 +#: eeschema/pinedit.cpp:675 +#: eeschema/pinedit.cpp:714 msgid " of normal" msgstr " de normal" -#: eeschema/pinedit.cpp:699 +#: eeschema/pinedit.cpp:696 #, c-format msgid "Off grid pin %s \"%s\" at location (%.3f, %.3f)" msgstr "Pin %s hors grille \"%s\" en position (%.3f, %.3f)" -#: eeschema/pinedit.cpp:726 +#: eeschema/pinedit.cpp:723 msgid "No off grid or duplicate pins were found." msgstr "Pas de pins doublées ou hors grille trouvées" @@ -6939,38 +7272,34 @@ msgstr "Eeschema est en cours d'exécution. Continuer ?" msgid "PinSheet Properties:" msgstr "Propriétés des Pins de Hiérarchie" -#: eeschema/sheetlab.cpp:96 +#: eeschema/sheetlab.cpp:95 #: eeschema/class_pin.cpp:77 msgid "Input" msgstr "Entrée" -#: eeschema/sheetlab.cpp:96 +#: eeschema/sheetlab.cpp:95 #: eeschema/class_pin.cpp:78 msgid "Output" msgstr "Sortie" -#: eeschema/sheetlab.cpp:96 +#: eeschema/sheetlab.cpp:95 msgid "Bidi" msgstr "Bidi" -#: eeschema/sheetlab.cpp:96 +#: eeschema/sheetlab.cpp:95 msgid "TriState" msgstr "3 états" -#: eeschema/sheetlab.cpp:97 +#: eeschema/sheetlab.cpp:96 #: eeschema/class_pin.cpp:81 msgid "Passive" msgstr "Passive" -#: eeschema/sheetlab.cpp:99 +#: eeschema/sheetlab.cpp:98 msgid "PinSheet Shape:" msgstr "Forme Pin de hiérarchie:" -#: eeschema/sheetlab.cpp:299 -msgid "PinSheet" -msgstr "Pin de Feuille de Hiérarchie" - -#: eeschema/sheetlab.cpp:357 +#: eeschema/sheetlab.cpp:339 msgid "No new hierarchical labels found" msgstr "Pas de nouveau label hiérarchique trouvé" @@ -7050,10 +7379,6 @@ msgstr "Non connecté" msgid "Pin" msgstr "Pin" -#: eeschema/class_pin.cpp:1602 -msgid "Name" -msgstr "Nom" - #: eeschema/annotate.cpp:285 #, c-format msgid "%d duplicate time stamps replaced." @@ -7707,70 +8032,34 @@ msgstr "Ne peut pas ouvrir fichier d'échange <%s>" msgid "Options" msgstr "Options" -#: eeschema/dialog_edit_component_in_schematic_fbp.cpp:28 -msgid "1" -msgstr "1" - -#: eeschema/dialog_edit_component_in_schematic_fbp.cpp:28 -msgid "2" -msgstr "2" - #: eeschema/dialog_edit_component_in_schematic_fbp.cpp:28 msgid "3" msgstr "3" -#: eeschema/dialog_edit_component_in_schematic_fbp.cpp:28 -msgid "4" -msgstr "4" - #: eeschema/dialog_edit_component_in_schematic_fbp.cpp:28 msgid "5" msgstr "5" -#: eeschema/dialog_edit_component_in_schematic_fbp.cpp:28 -msgid "6" -msgstr "6" - #: eeschema/dialog_edit_component_in_schematic_fbp.cpp:28 msgid "7" msgstr "7" -#: eeschema/dialog_edit_component_in_schematic_fbp.cpp:28 -msgid "8" -msgstr "8" - #: eeschema/dialog_edit_component_in_schematic_fbp.cpp:28 msgid "9" msgstr "9" -#: eeschema/dialog_edit_component_in_schematic_fbp.cpp:28 -msgid "10" -msgstr "10" - #: eeschema/dialog_edit_component_in_schematic_fbp.cpp:28 msgid "11" msgstr "11" -#: eeschema/dialog_edit_component_in_schematic_fbp.cpp:28 -msgid "12" -msgstr "12" - #: eeschema/dialog_edit_component_in_schematic_fbp.cpp:28 msgid "13" msgstr "13" -#: eeschema/dialog_edit_component_in_schematic_fbp.cpp:28 -msgid "14" -msgstr "14" - #: eeschema/dialog_edit_component_in_schematic_fbp.cpp:28 msgid "15" msgstr "15" -#: eeschema/dialog_edit_component_in_schematic_fbp.cpp:28 -msgid "16" -msgstr "16" - #: eeschema/dialog_edit_component_in_schematic_fbp.cpp:28 msgid "17" msgstr "17" @@ -8731,51 +9020,51 @@ msgstr "Rotation Champ" msgid "Field Edit" msgstr "Edition du champ" -#: eeschema/libedit_onrightclick.cpp:232 -msgid "Move Pin" -msgstr "Déplace pin" +#: eeschema/libedit_onrightclick.cpp:233 +msgid "Move Pin " +msgstr "Déplace Pin" -#: eeschema/libedit_onrightclick.cpp:235 +#: eeschema/libedit_onrightclick.cpp:239 msgid "Edit Pin " msgstr "Editer Pin" -#: eeschema/libedit_onrightclick.cpp:240 +#: eeschema/libedit_onrightclick.cpp:244 msgid "Delete Pin " msgstr "Supprimer Pin" -#: eeschema/libedit_onrightclick.cpp:248 +#: eeschema/libedit_onrightclick.cpp:252 msgid "Global" msgstr "Global" -#: eeschema/libedit_onrightclick.cpp:251 +#: eeschema/libedit_onrightclick.cpp:255 msgid "Pin Size to selected pins" msgstr "Change taille pins sélectionnées" -#: eeschema/libedit_onrightclick.cpp:252 +#: eeschema/libedit_onrightclick.cpp:256 msgid "Pin Size to Others" msgstr "Change Taille autres Pins" -#: eeschema/libedit_onrightclick.cpp:255 +#: eeschema/libedit_onrightclick.cpp:259 msgid "Pin Name Size to selected pin" msgstr "Change taille Nom pin sélectionnées" -#: eeschema/libedit_onrightclick.cpp:256 +#: eeschema/libedit_onrightclick.cpp:260 msgid "Pin Name Size to Others" msgstr "Change taille Nom Pin autres Pins" -#: eeschema/libedit_onrightclick.cpp:259 +#: eeschema/libedit_onrightclick.cpp:263 msgid "Pin Num Size to selected pin" msgstr "Change taille Num pins sélectionnées" -#: eeschema/libedit_onrightclick.cpp:260 +#: eeschema/libedit_onrightclick.cpp:264 msgid "Pin Num Size to Others" msgstr "Change Taille Num Pin autres Pins" -#: eeschema/libedit_onrightclick.cpp:284 +#: eeschema/libedit_onrightclick.cpp:288 msgid "Select Items" msgstr "Sélection des Eléments" -#: eeschema/libedit_onrightclick.cpp:288 +#: eeschema/libedit_onrightclick.cpp:292 msgid "Mirror Block ||" msgstr "Miroir Bloc ||" @@ -11098,7 +11387,7 @@ msgstr "Simple face, CMS coté Cuivre." #: gerbview/files.cpp:123 msgid "Top overlay (*.GTO)|*.GTO;*.gto|" -msgstr "" +msgstr "Top overlay (*.GTO)|*.GTO;*.gto|" #: gerbview/files.cpp:124 msgid "Bottom paste (*.GBP)|*.GBP;*.gbp|" @@ -11118,11 +11407,11 @@ msgstr "Couches mécaniques (*.GMx)|*.GM1;*.gm1;*.GM2;*.gm2;*.GM3;*.gm3|" #: gerbview/files.cpp:128 msgid "Top Pad Master (*.GPT)|*.GPT;*.gpt|" -msgstr "" +msgstr "Top Pad Master (*.GPT)|*.GPT;*.gpt|" #: gerbview/files.cpp:129 msgid "Bottom Pad Master (*.GPB)|*.GPB;*.gpb|" -msgstr "" +msgstr "Bottom Pad Master (*.GPB)|*.GPB;*.gpb|" #: gerbview/files.cpp:139 msgid "Open Gerber File" @@ -11608,35 +11897,6 @@ msgstr "Sélection Grille" msgid "Grid: " msgstr "Grille: " -#: common/eda_doc.cpp:149 -msgid "Doc File " -msgstr "Fichier de Doc " - -#: common/eda_doc.cpp:190 -#, c-format -msgid "Unknown MIME type for doc file <%s>" -msgstr "MIME type inconnu pour fichier Doc <%s>" - -#: common/pcbcommon.cpp:61 -msgid "??? Via" -msgstr "??? Via" - -#: common/pcbcommon.cpp:64 -msgid "Blind/Buried Via" -msgstr "Via Aveugle/Enterrée" - -#: common/pcbcommon.cpp:66 -msgid "Through Via" -msgstr "Via Traversante" - -#: common/pcbcommon.cpp:84 -msgid "Kicad footprint library files (*.mod)|*.mod" -msgstr "Fichiers Modules Kicad (*.mod)|*.mod" - -#: common/pcbcommon.cpp:87 -msgid "Printed circuit board files (*.brd)|*.brd" -msgstr "Fichiers circuits imprimés (*.brd)|*.brd" - #: common/common.cpp:60 msgid "Kicad project files (*.pro)|*.pro" msgstr "Fichiers projet Kicad (*.pro)|*.pro" @@ -11681,121 +11941,34 @@ msgstr "centimètres" msgid " \"" msgstr " \"" -#: common/common.cpp:553 -msgid "Copper " -msgstr "Cuivre " +#: common/eda_doc.cpp:149 +msgid "Doc File " +msgstr "Fichier de Doc " -#: common/common.cpp:553 -msgid "Inner L1 " -msgstr "Interne 1" +#: common/eda_doc.cpp:190 +#, c-format +msgid "Unknown MIME type for doc file <%s>" +msgstr "MIME type inconnu pour fichier Doc <%s>" -#: common/common.cpp:553 -msgid "Inner L2 " -msgstr "Interne 2" +#: common/pcbcommon.cpp:61 +msgid "??? Via" +msgstr "??? Via" -#: common/common.cpp:553 -msgid "Inner L3 " -msgstr "Interne 3" +#: common/pcbcommon.cpp:64 +msgid "Blind/Buried Via" +msgstr "Via Aveugle/Enterrée" -#: common/common.cpp:554 -msgid "Inner L4 " -msgstr "Interne 4" +#: common/pcbcommon.cpp:66 +msgid "Through Via" +msgstr "Via Traversante" -#: common/common.cpp:554 -msgid "Inner L5 " -msgstr "Interne 5" +#: common/pcbcommon.cpp:84 +msgid "Kicad footprint library files (*.mod)|*.mod" +msgstr "Fichiers Modules Kicad (*.mod)|*.mod" -#: common/common.cpp:554 -msgid "Inner L6 " -msgstr "Interne 6" - -#: common/common.cpp:554 -msgid "Inner L7 " -msgstr "Interne 7" - -#: common/common.cpp:555 -msgid "Inner L8 " -msgstr "Interne 8" - -#: common/common.cpp:555 -msgid "Inner L9 " -msgstr "Interne 9" - -#: common/common.cpp:555 -msgid "Inner L10" -msgstr "Interne 10" - -#: common/common.cpp:555 -msgid "Inner L11" -msgstr "Interne 11" - -#: common/common.cpp:556 -msgid "Inner L12" -msgstr "Interne 12" - -#: common/common.cpp:556 -msgid "Inner L13" -msgstr "Interne 13" - -#: common/common.cpp:556 -msgid "Inner L14" -msgstr "Interne 14" - -#: common/common.cpp:557 -msgid "Adhes Cop" -msgstr "Adhes Cu " - -#: common/common.cpp:557 -msgid "Adhes Cmp" -msgstr "Adhes Cmp" - -#: common/common.cpp:557 -msgid "SoldP Cop" -msgstr "SoldP Cu " - -#: common/common.cpp:557 -msgid "SoldP Cmp" -msgstr "SoldP Cmp" - -#: common/common.cpp:558 -msgid "SilkS Cop" -msgstr "Sérigr Cu " - -#: common/common.cpp:558 -msgid "SilkS Cmp" -msgstr "Sérigr Cmp" - -#: common/common.cpp:558 -msgid "Mask Cop " -msgstr "Masque Cu " - -#: common/common.cpp:558 -msgid "Mask Cmp " -msgstr "Masque Cmp" - -#: common/common.cpp:559 -msgid "Drawings " -msgstr "Drawings " - -#: common/common.cpp:559 -msgid "Comments " -msgstr "Commentaires " - -#: common/common.cpp:559 -msgid "Eco1 " -msgstr "Eco1 " - -#: common/common.cpp:559 -msgid "Eco2 " -msgstr "Eco2 " - -#: common/common.cpp:560 -msgid "Edges Pcb" -msgstr "Contour Pcb" - -#: common/common.cpp:560 -msgid "BAD INDEX" -msgstr "BAD INDEX" +#: common/pcbcommon.cpp:87 +msgid "Printed circuit board files (*.brd)|*.brd" +msgstr "Fichiers circuits imprimés (*.brd)|*.brd" #: common/get_component_dialog.cpp:69 msgid "History list:" @@ -12203,6 +12376,58 @@ msgstr "Effacements Globaux" msgid "Footprints Orientation" msgstr "Orientation des Modules" +#: pcbnew/set_color.h:36 +msgid "Pcbnew Layer Colors:" +msgstr "Pcbnew: Couleur des Couches" + +#: pcbnew/set_color.h:224 +msgid "Tech Layers" +msgstr "Couches Tech." + +#: pcbnew/set_color.h:335 +msgid "Others" +msgstr "Autres" + +#: pcbnew/set_color.h:366 +msgid "Ratsnest" +msgstr "Chevelu" + +#: pcbnew/set_color.h:375 +msgid "Pad Back" +msgstr "Pad Dessous" + +#: pcbnew/set_color.h:383 +msgid "Pad Front" +msgstr "Pad Dessus" + +#: pcbnew/set_color.h:391 +msgid "Text Module Back" +msgstr "Texte Module Dessous" + +#: pcbnew/set_color.h:399 +msgid "Text Module Front" +msgstr "Texte Module Dessus" + +#: pcbnew/set_color.h:407 +msgid "Text Module invisible" +msgstr "Texte Module invisible" + +#: pcbnew/set_color.h:415 +msgid "Anchors" +msgstr "Ancres" + +#: pcbnew/set_color.h:432 +msgid "Show Noconnect" +msgstr "Montrer Non Conn" + +#: pcbnew/set_color.h:441 +msgid "Show Modules Front" +msgstr "Afficher Modules Dessus" + +#: pcbnew/set_color.h:450 +msgid "Show Modules Back" +msgstr "Afficher Modules Dessous" + #: pcbnew/dialog_netlist_fbp.h:68 msgid "Netlist Dialog" msgstr "Dialogue Netliste" @@ -12235,67 +12460,16 @@ msgstr "Propriétés du texte du module" msgid "General settings" msgstr "Options Générales" -#: pcbnew/set_color.h:36 -msgid "Pcbnew Layer Colors:" -msgstr "Pcbnew: Couleur des Couches" - -#: pcbnew/set_color.h:89 -msgid "Copper Layers" -msgstr "Couches Cuivre." - -#: pcbnew/set_color.h:224 -msgid "Tech Layers" -msgstr "Couches Tech." - -#: pcbnew/set_color.h:335 -msgid "Others" -msgstr "Autres" - -#: pcbnew/set_color.h:366 -msgid "Ratsnest" -msgstr "Chevelu" - -#: pcbnew/set_color.h:375 -msgid "Pad Cu" -msgstr "Pad Cu" - -#: pcbnew/set_color.h:383 -msgid "Pad Cmp" -msgstr "Pad Cmp" - -#: pcbnew/set_color.h:391 -msgid "Text Module Cu" -msgstr "Texte Module Cu" - -#: pcbnew/set_color.h:399 -msgid "Text Module Cmp" -msgstr "Texte Module Cmp" - -#: pcbnew/set_color.h:407 -msgid "Text Module invisible" -msgstr "Texte Module invisible" - -#: pcbnew/set_color.h:415 -msgid "Anchors" -msgstr "Ancres" - -#: pcbnew/set_color.h:432 -msgid "Show Noconnect" -msgstr "Montrer Non Conn" - -#: pcbnew/set_color.h:441 -msgid "Show Modules Cmp" -msgstr "Afficher Modules Cmp" - -#: pcbnew/set_color.h:450 -msgid "Show Modules Cu" -msgstr "Afficher Modules Cu" +#: pcbnew/dialog_layers_setup_base2.h:260 +msgid "Layer Setup" +msgstr "Options Couches" #: pcbnew/dialog_exchange_modules_base.h:57 msgid "Exchange Modules" msgstr "Echange modules:" #: pcbnew/dialog_edit_module_for_Modedit_base.h:105 +#: pcbnew/dialog_edit_module_for_BoardEditor_base.h:118 msgid "Module properties" msgstr "Propriétés du Module" @@ -12607,6 +12781,58 @@ msgstr "Options d'Affichage" msgid "Page Settings" msgstr "Ajustage opt Page" +#~ msgid "PinSheet" +#~ msgstr "Pin de Feuille de Hiérarchie" +#~ msgid "Copper " +#~ msgstr "Cuivre " +#~ msgid "Inner L1 " +#~ msgstr "Interne 1" +#~ msgid "Inner L2 " +#~ msgstr "Interne 2" +#~ msgid "Inner L3 " +#~ msgstr "Interne 3" +#~ msgid "Inner L4 " +#~ msgstr "Interne 4" +#~ msgid "Inner L5 " +#~ msgstr "Interne 5" +#~ msgid "Inner L6 " +#~ msgstr "Interne 6" +#~ msgid "Inner L7 " +#~ msgstr "Interne 7" +#~ msgid "Inner L8 " +#~ msgstr "Interne 8" +#~ msgid "Inner L9 " +#~ msgstr "Interne 9" +#~ msgid "Inner L10" +#~ msgstr "Interne 10" +#~ msgid "Inner L11" +#~ msgstr "Interne 11" +#~ msgid "Inner L12" +#~ msgstr "Interne 12" +#~ msgid "Inner L13" +#~ msgstr "Interne 13" +#~ msgid "Inner L14" +#~ msgstr "Interne 14" +#~ msgid "Adhes Cmp" +#~ msgstr "Adhes Cmp" +#~ msgid "SoldP Cmp" +#~ msgstr "SoldP Cmp" +#~ msgid "SilkS Cmp" +#~ msgstr "Sérigr Cmp" +#~ msgid "Mask Cop " +#~ msgstr "Masque Cu " +#~ msgid "Mask Cmp " +#~ msgstr "Masque Cmp" +#~ msgid "Edges Pcb" +#~ msgstr "Contour Pcb" +#~ msgid "Pad Cu" +#~ msgstr "Pad Cu" +#~ msgid "Pad Cmp" +#~ msgstr "Pad Cmp" +#~ msgid "Text Module Cmp" +#~ msgstr "Texte Module Cmp" +#~ msgid "Show Modules Cmp" +#~ msgstr "Afficher Modules Cmp" #~ msgid "Initial pin position (%d, %d)" #~ msgstr "Position initiane de la pin (%d, %d)" #~ msgid "3D part library <%s> could not be found." @@ -12867,32 +13093,6 @@ msgstr "Ajustage opt Page" #~ msgstr "Nombre de Couches" #~ msgid "Active" #~ msgstr "Active" -#~ msgid "Inner 14" -#~ msgstr "Interne 14" -#~ msgid "Inner 13" -#~ msgstr "Interne 13" -#~ msgid "Inner 12" -#~ msgstr "Interne 12" -#~ msgid "Inner 11" -#~ msgstr "Interne 11" -#~ msgid "Inner 10" -#~ msgstr "Interne 10" -#~ msgid "Inner 9" -#~ msgstr "Interne 9" -#~ msgid "Inner 8" -#~ msgstr "Interne 8" -#~ msgid "Inner 7" -#~ msgstr "Interne 7" -#~ msgid "Inner 6" -#~ msgstr "Interne 6" -#~ msgid "Inner 5" -#~ msgstr "Interne 5" -#~ msgid "Inner 4" -#~ msgstr "Interne 4" -#~ msgid "Inner 3" -#~ msgstr "Interne 3" -#~ msgid "Inner 2" -#~ msgstr "Interne 2" #~ msgid "Inner 1" #~ msgstr "Interne 1" #~ msgid "Remove the currently select Net Class" @@ -12939,8 +13139,6 @@ msgstr "Ajustage opt Page" #~ msgstr "Forme Pin:" #~ msgid "3 States" #~ msgstr "3 Etats" -#~ msgid "Power In" -#~ msgstr "Power In" #~ msgid "Power Out" #~ msgstr "Power Out" #~ msgid "Open coll" @@ -13110,8 +13308,6 @@ msgstr "Ajustage opt Page" #~ msgstr " Ok\n" #~ msgid "List unconnected pads" #~ msgstr "Liste pads non connectés" -#~ msgid "Layers" -#~ msgstr "Couches" #~ msgid "Net classes:" #~ msgstr "Classes d'Equipotentielles:" #~ msgid "Vias size" diff --git a/pcbnew/dialog_edit_module_for_BoardEditor_base.cpp b/pcbnew/dialog_edit_module_for_BoardEditor_base.cpp index a9194d86ca..8c360292d4 100644 --- a/pcbnew/dialog_edit_module_for_BoardEditor_base.cpp +++ b/pcbnew/dialog_edit_module_for_BoardEditor_base.cpp @@ -65,7 +65,7 @@ DIALOG_MODULE_BOARD_EDITOR_BASE::DIALOG_MODULE_BOARD_EDITOR_BASE( wxWindow* pare sbSizerOrientation->Add( m_staticText4, 0, wxTOP|wxRIGHT|wxLEFT, 5 ); m_OrientValue = new wxTextCtrl( m_PanelProperties, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 ); - sbSizerOrientation->Add( m_OrientValue, 0, wxEXPAND|wxBOTTOM|wxRIGHT|wxLEFT, 5 ); + sbSizerOrientation->Add( m_OrientValue, 0, wxBOTTOM|wxRIGHT|wxLEFT|wxEXPAND, 5 ); PropLeftSizer->Add( sbSizerOrientation, 0, wxEXPAND, 5 ); @@ -271,7 +271,7 @@ DIALOG_MODULE_BOARD_EDITOR_BASE::DIALOG_MODULE_BOARD_EDITOR_BASE( wxWindow* pare m_sdbSizerStdButtonsCancel = new wxButton( this, wxID_CANCEL ); m_sdbSizerStdButtons->AddButton( m_sdbSizerStdButtonsCancel ); m_sdbSizerStdButtons->Realize(); - m_GeneralBoxSizer->Add( m_sdbSizerStdButtons, 0, wxEXPAND|wxALIGN_RIGHT, 5 ); + m_GeneralBoxSizer->Add( m_sdbSizerStdButtons, 0, wxEXPAND|wxALIGN_RIGHT|wxALL, 5 ); this->SetSizer( m_GeneralBoxSizer ); this->Layout(); diff --git a/pcbnew/dialog_edit_module_for_BoardEditor_base.fbp b/pcbnew/dialog_edit_module_for_BoardEditor_base.fbp index cc71fb4aab..97cf5b353a 100644 --- a/pcbnew/dialog_edit_module_for_BoardEditor_base.fbp +++ b/pcbnew/dialog_edit_module_for_BoardEditor_base.fbp @@ -603,7 +603,7 @@ 5 - wxEXPAND|wxBOTTOM|wxRIGHT|wxLEFT + wxBOTTOM|wxRIGHT|wxLEFT|wxEXPAND 0 @@ -2605,7 +2605,7 @@ 5 - wxEXPAND|wxALIGN_RIGHT + wxEXPAND|wxALIGN_RIGHT|wxALL 0 0 diff --git a/pcbnew/dialog_edit_module_for_Modedit_base.cpp b/pcbnew/dialog_edit_module_for_Modedit_base.cpp index 3be23aee1c..205408f372 100644 --- a/pcbnew/dialog_edit_module_for_Modedit_base.cpp +++ b/pcbnew/dialog_edit_module_for_Modedit_base.cpp @@ -240,7 +240,7 @@ DIALOG_MODULE_MODULE_EDITOR_BASE::DIALOG_MODULE_MODULE_EDITOR_BASE( wxWindow* pa m_sdbSizerStdButtonsCancel = new wxButton( this, wxID_CANCEL ); m_sdbSizerStdButtons->AddButton( m_sdbSizerStdButtonsCancel ); m_sdbSizerStdButtons->Realize(); - m_GeneralBoxSizer->Add( m_sdbSizerStdButtons, 0, wxEXPAND|wxALIGN_RIGHT, 5 ); + m_GeneralBoxSizer->Add( m_sdbSizerStdButtons, 0, wxEXPAND|wxALIGN_RIGHT|wxALL, 5 ); this->SetSizer( m_GeneralBoxSizer ); this->Layout(); diff --git a/pcbnew/dialog_edit_module_for_Modedit_base.fbp b/pcbnew/dialog_edit_module_for_Modedit_base.fbp index f71ee17bba..b2699217b7 100644 --- a/pcbnew/dialog_edit_module_for_Modedit_base.fbp +++ b/pcbnew/dialog_edit_module_for_Modedit_base.fbp @@ -2195,7 +2195,7 @@ 5 - wxEXPAND|wxALIGN_RIGHT + wxEXPAND|wxALIGN_RIGHT|wxALL 0 0 diff --git a/pcbnew/dialog_mask_clearance.cpp b/pcbnew/dialog_mask_clearance.cpp index 7137ef3ae8..be33af611c 100644 --- a/pcbnew/dialog_mask_clearance.cpp +++ b/pcbnew/dialog_mask_clearance.cpp @@ -42,11 +42,20 @@ void DIALOG_PADS_MASK_CLEARANCE::MyInit() PutValueInLocalUnits( *m_SolderMaskMarginCtrl, g_DesignSettings.m_SolderMaskMargin, Internal_Unit ); + + // These 2 parameters are usually < 0, so prepare entering a negative + // value, if current is 0 PutValueInLocalUnits( *m_SolderPasteMarginCtrl, g_DesignSettings.m_SolderPasteMargin, Internal_Unit ); + if( g_DesignSettings.m_SolderPasteMargin == 0 ) + m_SolderPasteMarginCtrl->SetValue( wxT( "-" ) + + m_SolderPasteMarginCtrl->GetValue() ); wxString msg; - msg.Printf( wxT( "%f" ), g_DesignSettings.m_SolderPasteMarginRatio * 100.0 ); + if( g_DesignSettings.m_SolderPasteMarginRatio == 0 ) + msg.Printf( wxT( "-%f" ), g_DesignSettings.m_SolderPasteMarginRatio * 100.0 ); + else + msg.Printf( wxT( "%f" ), g_DesignSettings.m_SolderPasteMarginRatio * 100.0 ); m_SolderPasteMarginRatioCtrl->SetValue( msg ); } diff --git a/pcbnew/dialog_mask_clearance_base.cpp b/pcbnew/dialog_mask_clearance_base.cpp index b91c3072ee..1483f20239 100644 --- a/pcbnew/dialog_mask_clearance_base.cpp +++ b/pcbnew/dialog_mask_clearance_base.cpp @@ -84,13 +84,16 @@ DIALOG_PADS_MASK_CLEARANCE_BASE::DIALOG_PADS_MASK_CLEARANCE_BASE( wxWindow* pare bMainSizer->Add( bMainUpperSizer, 1, wxEXPAND, 5 ); + m_staticline11 = new wxStaticLine( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL ); + bMainSizer->Add( m_staticline11, 0, wxEXPAND | wxALL, 5 ); + m_sdbButtonsSizer = new wxStdDialogButtonSizer(); m_sdbButtonsSizerOK = new wxButton( this, wxID_OK ); m_sdbButtonsSizer->AddButton( m_sdbButtonsSizerOK ); m_sdbButtonsSizerCancel = new wxButton( this, wxID_CANCEL ); m_sdbButtonsSizer->AddButton( m_sdbButtonsSizerCancel ); m_sdbButtonsSizer->Realize(); - bMainSizer->Add( m_sdbButtonsSizer, 0, wxALIGN_CENTER_HORIZONTAL, 5 ); + bMainSizer->Add( m_sdbButtonsSizer, 0, wxALIGN_CENTER_HORIZONTAL|wxBOTTOM, 5 ); this->SetSizer( bMainSizer ); this->Layout(); diff --git a/pcbnew/dialog_mask_clearance_base.fbp b/pcbnew/dialog_mask_clearance_base.fbp index ab21f15eff..293613539f 100644 --- a/pcbnew/dialog_mask_clearance_base.fbp +++ b/pcbnew/dialog_mask_clearance_base.fbp @@ -32,7 +32,7 @@ DIALOG_PADS_MASK_CLEARANCE_BASE - 358,237 + 361,253 wxDEFAULT_DIALOG_STYLE|wxRESIZE_BORDER Pads Mask Clearance @@ -691,7 +691,56 @@ 5 - wxALIGN_CENTER_HORIZONTAL + wxEXPAND | wxALL + 0 + + + + 1 + + + 0 + wxID_ANY + + + m_staticline11 + protected + + + wxLI_HORIZONTAL + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxALIGN_CENTER_HORIZONTAL|wxBOTTOM 0 0 diff --git a/pcbnew/dialog_mask_clearance_base.h b/pcbnew/dialog_mask_clearance_base.h index b789fd1ae8..5ceb834e69 100644 --- a/pcbnew/dialog_mask_clearance_base.h +++ b/pcbnew/dialog_mask_clearance_base.h @@ -50,6 +50,7 @@ class DIALOG_PADS_MASK_CLEARANCE_BASE : public wxDialog wxStaticText* m_staticTextRatio; wxTextCtrl* m_SolderPasteMarginRatioCtrl; wxStaticText* m_SolderPasteRatioMarginUnits; + wxStaticLine* m_staticline11; wxStdDialogButtonSizer* m_sdbButtonsSizer; wxButton* m_sdbButtonsSizerOK; wxButton* m_sdbButtonsSizerCancel; @@ -60,7 +61,7 @@ class DIALOG_PADS_MASK_CLEARANCE_BASE : public wxDialog public: - DIALOG_PADS_MASK_CLEARANCE_BASE( wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("Pads Mask Clearance"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize( 358,237 ), long style = wxDEFAULT_DIALOG_STYLE|wxRESIZE_BORDER ); + DIALOG_PADS_MASK_CLEARANCE_BASE( wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("Pads Mask Clearance"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize( 361,253 ), long style = wxDEFAULT_DIALOG_STYLE|wxRESIZE_BORDER ); ~DIALOG_PADS_MASK_CLEARANCE_BASE(); }; diff --git a/pcbnew/hotkeys.cpp b/pcbnew/hotkeys.cpp index 12e1019d37..6896065e50 100644 --- a/pcbnew/hotkeys.cpp +++ b/pcbnew/hotkeys.cpp @@ -35,9 +35,9 @@ /* local variables */ /* Hotkey list: */ static Ki_HotkeyInfo HkSwitch2CopperLayer( wxT( "Switch to Copper layer" ), - HK_SWITCH_LAYER_TO_COPPER, WXK_PAGEUP ); + HK_SWITCH_LAYER_TO_COPPER, WXK_PAGEDOWN ); static Ki_HotkeyInfo HkSwitch2ComponentLayer( wxT( "Switch to Component layer" ), - HK_SWITCH_LAYER_TO_COMPONENT, WXK_PAGEDOWN ); + HK_SWITCH_LAYER_TO_COMPONENT, WXK_PAGEUP ); static Ki_HotkeyInfo HkSwitch2InnerLayer1( wxT( "Switch to Inner layer 1" ), HK_SWITCH_LAYER_TO_INNER1, WXK_F5 ); static Ki_HotkeyInfo HkSwitch2InnerLayer2( wxT( "Switch to Inner layer 2" ), @@ -112,7 +112,7 @@ Ki_HotkeyInfo* s_board_edit_Hotkey_List[] = { &HkTrackDisplayMode, &HkDelete, &HkBackspace, - &HkAddNewTrack, &HkAddVia, &HkAddMicroVia, + &HkAddNewTrack, &HkAddVia, &HkAddMicroVia, &HkEndTrack, &HkMoveFootprint, &HkFlipFootprint, &HkRotateFootprint, &HkDragFootprint, &HkGetAndMoveFootprint, &HkLock_Unlock_Footprint, &HkSavefile, @@ -128,55 +128,40 @@ Ki_HotkeyInfo* s_board_edit_Hotkey_List[] = Ki_HotkeyInfo* s_module_edit_Hotkey_List[] = { NULL }; // list of sections and corresponding hotkey list for pcbnew (used to create an hotkey config file) -struct Ki_HotkeyInfoSectionDescriptor s_Pcbnew_Editor_Hokeys_Descr[] = { { - &g_CommonSectionTag, - s_Common_Hotkey_List, - "Common keys" - }, - { - & - g_BoardEditorSectionTag, - s_board_edit_Hotkey_List, - "Board editor keys" - }, { - & - g_ModuleEditSectionTag, - s_module_edit_Hotkey_List, - "Footprint editor keys" - }, { - NULL, - NULL, NULL - } }; +struct Ki_HotkeyInfoSectionDescriptor s_Pcbnew_Editor_Hokeys_Descr[] = +{ { + &g_CommonSectionTag, s_Common_Hotkey_List, "Common keys" + }, + { + &g_BoardEditorSectionTag, s_board_edit_Hotkey_List, "Board editor keys" + },{ + &g_ModuleEditSectionTag, s_module_edit_Hotkey_List, "Footprint editor keys" + },{ + NULL, NULL, NULL + } }; // list of sections and corresponding hotkey list for the board editor (used to list current hotkeys) -struct Ki_HotkeyInfoSectionDescriptor s_Board_Editor_Hokeys_Descr[] = { { - &g_CommonSectionTag, - s_Common_Hotkey_List, - NULL - }, { - & - g_BoardEditorSectionTag, - s_board_edit_Hotkey_List, - NULL - }, { - NULL, - NULL, NULL - } }; +struct Ki_HotkeyInfoSectionDescriptor s_Board_Editor_Hokeys_Descr[] = +{ { + &g_CommonSectionTag, + s_Common_Hotkey_List, + NULL + },{ + &g_BoardEditorSectionTag, s_board_edit_Hotkey_List, NULL + },{ + NULL, NULL, NULL + } }; // list of sections and corresponding hotkey list for the footprint editor (used to list current hotkeys) -struct Ki_HotkeyInfoSectionDescriptor s_Module_Editor_Hokeys_Descr[] = { { - &g_CommonSectionTag, - s_Common_Hotkey_List, - NULL - }, { - & - g_ModuleEditSectionTag, - s_module_edit_Hotkey_List, - NULL - }, { - NULL, - NULL, NULL - } }; +struct Ki_HotkeyInfoSectionDescriptor +s_Module_Editor_Hokeys_Descr[] = +{ { + &g_CommonSectionTag, s_Common_Hotkey_List, NULL + },{ + &g_ModuleEditSectionTag, s_module_edit_Hotkey_List, NULL + },{ + NULL, NULL, NULL + } }; /***********************************************************/ void WinEDA_PcbFrame::OnHotKey( wxDC* DC, int hotkey, EDA_BaseStruct* DrawStruct ) @@ -475,22 +460,23 @@ void WinEDA_PcbFrame::OnHotKey( wxDC* DC, int hotkey, EDA_BaseStruct* DrawStruct if( m_ID_current_state != ID_TRACK_BUTT ) break; - if( ItemFree ) // no track in progress: - { - TRACK* track = Begin_Route( NULL, DC ); - SetCurItem( track ); - if( track ) - DrawPanel->m_AutoPAN_Request = true; - } - else if( GetCurItem()->m_Flags & IS_NEW ) - { - TRACK* track = Begin_Route( (TRACK*) GetCurItem(), DC ); - // SetCurItem() must not write to the msg panel - // because a track info is displayed while moving the mouse cursor - if( track ) // A new segment was created - SetCurItem( track, false ); + if( ItemFree ) // no track in progress: + { + TRACK* track = Begin_Route( NULL, DC ); + SetCurItem( track ); + if( track ) DrawPanel->m_AutoPAN_Request = true; - } + } + else if( GetCurItem()->m_Flags & IS_NEW ) + { + TRACK* track = Begin_Route( (TRACK*) GetCurItem(), DC ); + + // SetCurItem() must not write to the msg panel + // because a track info is displayed while moving the mouse cursor + if( track ) // A new segment was created + SetCurItem( track, false ); + DrawPanel->m_AutoPAN_Request = true; + } break; // Footprint edition: @@ -605,13 +591,13 @@ void WinEDA_PcbFrame::OnHotKey( wxDC* DC, int hotkey, EDA_BaseStruct* DrawStruct switch( HK_Descr->m_Idcommand ) { - case HK_ROTATE_FOOTPRINT: // Rotation + case HK_ROTATE_FOOTPRINT: // Rotation if( module->m_Flags == 0 ) // not currently in edit, prepare undo command SaveCopyInUndoList( module, UR_ROTATED, module->m_Pos ); Rotate_Module( DC, module, 900, TRUE ); break; - case HK_FLIP_FOOTPRINT: // move to other side + case HK_FLIP_FOOTPRINT: // move to other side if( module->m_Flags == 0 ) // not currently in edit, prepare undo command SaveCopyInUndoList( module, UR_FLIPPED, module->m_Pos ); Change_Side_Module( module, DC );