From 3683ab745bafac2ffc783e88d3aa6358ccb7dca3 Mon Sep 17 00:00:00 2001 From: charras Date: Tue, 7 Oct 2008 09:32:56 +0000 Subject: [PATCH] More about copper zones filled without grid (by polygons) --- change_log.txt | 14 + internat/fr/kicad.mo | Bin 160025 -> 160401 bytes internat/fr/kicad.po | 7075 +++++++++-------- pcbnew/class_zone.cpp | 23 +- pcbnew/dialog_zones_by_polygon.cpp | 15 +- pcbnew/zone_filling_algorithm.cpp | 5 +- .../zones_convert_brd_items_to_polygons.cpp | 429 +- 7 files changed, 3921 insertions(+), 3640 deletions(-) diff --git a/change_log.txt b/change_log.txt index 02dfa2b9e1..14ae803f7f 100644 --- a/change_log.txt +++ b/change_log.txt @@ -5,6 +5,20 @@ Started 2007-June-11 Please add newer entries at the top, list the date and your name with email address. +2008-oct-07 UPDATE Jean-Pierre Charras +================================================================================ ++pcbnew: + More about copper zones filled without grid (by polygons) + Currently for eyes and tests only. + now working + thermal reliefs. + texts on copper zones. + To select this feature choose No Grid in zone grid filling. + Work in progress: + currently : not implemented: + Removing insulated copper islands. + trapezoidal pads + 2008-Oct-6 UPDATE Dick Hollenbeck ================================================================================ diff --git a/internat/fr/kicad.mo b/internat/fr/kicad.mo index 691a5b82766bed9110b4ced5b370c3b60a2df9c1..d4da9768f02b5b20d0bf2e7a56fecc1c9c189cf8 100644 GIT binary patch delta 56253 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\n" "MIME-Version: 1.0\n" @@ -24,7 +24,7 @@ msgstr "" #: pcbnew/affiche.cpp:35 msgid "Net Name" -msgstr "Equipot" +msgstr "Nom Equipot" #: pcbnew/affiche.cpp:37 msgid "No Net (not connected)" @@ -253,10 +253,10 @@ msgstr "Long.:" #: pcbnew/class_board_item.cpp:84 #: pcbnew/class_board_item.cpp:93 #: pcbnew/class_board_item.cpp:133 -#: pcbnew/class_board_item.cpp:165 -#: pcbnew/class_board_item.cpp:181 -#: pcbnew/class_board_item.cpp:209 -#: pcbnew/class_board_item.cpp:226 +#: pcbnew/class_board_item.cpp:169 +#: pcbnew/class_board_item.cpp:185 +#: pcbnew/class_board_item.cpp:213 +#: pcbnew/class_board_item.cpp:230 msgid " on " msgstr " sur " @@ -291,7 +291,7 @@ msgid "Track" msgstr "Piste" #: pcbnew/class_board_item.cpp:134 -#: pcbnew/class_board_item.cpp:201 +#: pcbnew/class_board_item.cpp:205 msgid "Net:" msgstr "Net:" @@ -303,39 +303,43 @@ msgstr "Contour de Zone" msgid "(Cutout)" msgstr "(Cutout)" -#: pcbnew/class_board_item.cpp:163 +#: pcbnew/class_board_item.cpp:154 +msgid "Not on copper layer" +msgstr "Pas sur Couches Cuivre" + +#: pcbnew/class_board_item.cpp:167 msgid "Not Found" msgstr " Non Trouvé" -#: pcbnew/class_board_item.cpp:169 +#: pcbnew/class_board_item.cpp:173 msgid "Zone" msgstr "Zone" -#: pcbnew/class_board_item.cpp:187 +#: pcbnew/class_board_item.cpp:191 msgid "Via" msgstr "Via" -#: pcbnew/class_board_item.cpp:191 +#: pcbnew/class_board_item.cpp:195 msgid "Blind/Buried" msgstr "Borgne/Aveugle" -#: pcbnew/class_board_item.cpp:193 +#: pcbnew/class_board_item.cpp:197 msgid "Micro Via" msgstr "Micro Via" -#: pcbnew/class_board_item.cpp:216 +#: pcbnew/class_board_item.cpp:220 msgid "Marker" msgstr "Marqueur" -#: pcbnew/class_board_item.cpp:221 +#: pcbnew/class_board_item.cpp:225 msgid "Dimension" msgstr "Dimension" -#: pcbnew/class_board_item.cpp:226 +#: pcbnew/class_board_item.cpp:230 msgid "Target" msgstr "Mire" -#: pcbnew/class_board_item.cpp:227 +#: pcbnew/class_board_item.cpp:231 msgid "size" msgstr "dimension" @@ -343,7 +347,7 @@ msgstr "dimension" #: pcbnew/class_marker.cpp:133 #: pcbnew/class_text_mod.cpp:503 #: pcbnew/class_track.cpp:852 -#: pcbnew/class_zone.cpp:608 +#: pcbnew/class_zone.cpp:716 msgid "Type" msgstr "Type" @@ -366,7 +370,7 @@ msgstr "Segment" #: pcbnew/class_pcb_text.cpp:190 #: pcbnew/class_text_mod.cpp:516 #: pcbnew/class_track.cpp:909 -#: pcbnew/class_zone.cpp:637 +#: pcbnew/class_zone.cpp:750 msgid "Layer" msgstr "Couche" @@ -567,12 +571,12 @@ msgid "Display" msgstr "Affichage" #: pcbnew/class_track.cpp:868 -#: pcbnew/class_zone.cpp:628 +#: pcbnew/class_zone.cpp:738 msgid "NetName" msgstr "NetName" #: pcbnew/class_track.cpp:873 -#: pcbnew/class_zone.cpp:633 +#: pcbnew/class_zone.cpp:746 msgid "NetCode" msgstr "NetCode" @@ -584,11 +588,23 @@ msgstr "Standard" msgid "Diam" msgstr "Diam" -#: pcbnew/class_zone.cpp:641 +#: pcbnew/class_zone.cpp:741 +msgid "Non Copper Zone" +msgstr "Zone non Cuivre" + +#: pcbnew/class_zone.cpp:754 msgid "Corners" msgstr "Sommets" -#: pcbnew/class_zone.cpp:645 +#: pcbnew/class_zone.cpp:759 +msgid "No Grid" +msgstr "Pas de Grille" + +#: pcbnew/class_zone.cpp:760 +msgid "Fill Grid" +msgstr "Grille de Remplissage" + +#: pcbnew/class_zone.cpp:764 msgid "Hatch lines" msgstr "Lignes de Hachure" @@ -688,7 +704,7 @@ msgstr "Connecte une extrémité de piste en l'air, lorsque elle couvre un pad o msgid "Clean pcb" msgstr "Nettoyage PCB" -#: pcbnew/plot_rtn.cpp:224 +#: pcbnew/plot_rtn.cpp:216 #, c-format msgid "" "Your BOARD has a bad layer number of %u for module\n" @@ -697,7 +713,7 @@ msgstr "" "Votre PCB a un mauvais numero de couche %u pour le module\n" " %s's \"reference\"." -#: pcbnew/plot_rtn.cpp:244 +#: pcbnew/plot_rtn.cpp:236 #, c-format msgid "" "Your BOARD has a bad layer number of %u for module\n" @@ -706,7 +722,7 @@ msgstr "" "Votre PCB a un mauvais numero de couche %u pour le module\n" " %s's \"valeur\"." -#: pcbnew/plot_rtn.cpp:290 +#: pcbnew/plot_rtn.cpp:282 #, c-format msgid "" "Your BOARD has a bad layer number of %u for module\n" @@ -1596,65 +1612,173 @@ 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/dialog_setup_libs.cpp:97 -msgid "from " -msgstr "De " +#: pcbnew/tool_modedit.cpp:44 +msgid "Select working library" +msgstr "Sélection de la librairie de travail" -#: pcbnew/dialog_setup_libs.cpp:153 -msgid "Save Cfg" -msgstr "Sauver config" +#: pcbnew/tool_modedit.cpp:47 +msgid "Save Module in working library" +msgstr "Sauver Module en librairie de travail" -#: pcbnew/dialog_setup_libs.cpp:159 -msgid "Files ext:" -msgstr "Ext. Fichiers" +#: pcbnew/tool_modedit.cpp:51 +msgid "Create new library and save current module" +msgstr "Créer une nouvelle librairie et y sauver le composant" -#: pcbnew/dialog_setup_libs.cpp:175 -msgid "Del" -msgstr "Supprimer" +#: pcbnew/tool_modedit.cpp:56 +msgid "Delete part in current library" +msgstr "Supprimer composant en librairie de travail" -#: pcbnew/dialog_setup_libs.cpp:179 -msgid "Add" -msgstr "Ajouter" +#: pcbnew/tool_modedit.cpp:61 +msgid "New Module" +msgstr "Nouveau Module" -#: pcbnew/dialog_setup_libs.cpp:183 -msgid "Ins" -msgstr "Insérer" +#: pcbnew/tool_modedit.cpp:65 +msgid "Load module from lib" +msgstr "Charger un module a partir d'une librairie" -#: pcbnew/dialog_setup_libs.cpp:191 -msgid "Libraries" -msgstr "Librairies" +#: pcbnew/tool_modedit.cpp:70 +msgid "Load module from current board" +msgstr "Charger module a partir du C.I." -#: pcbnew/dialog_setup_libs.cpp:199 -msgid "Lib Modules Dir:" -msgstr "Repertoire Lib Modules:" +#: pcbnew/tool_modedit.cpp:74 +msgid "Update module in current board" +msgstr "Remplacer module dans le C.I." -#: pcbnew/dialog_setup_libs.cpp:206 -msgid "Module Doc File:" -msgstr "Fichiers Doc des Modules" +#: pcbnew/tool_modedit.cpp:78 +msgid "Insert module into current board" +msgstr "Placer module dans le C.I." -#: pcbnew/dialog_setup_libs.cpp:216 -msgid "Board ext: " -msgstr "Board ext: " +#: pcbnew/tool_modedit.cpp:83 +msgid "import module" +msgstr "Importer Module" -#: pcbnew/dialog_setup_libs.cpp:220 -msgid "Cmp ext: " -msgstr "Cmp ext: " +#: pcbnew/tool_modedit.cpp:87 +msgid "export module" +msgstr "Exporter Module" -#: pcbnew/dialog_setup_libs.cpp:224 -msgid "Lib ext: " -msgstr "Lib ext: " +#: pcbnew/tool_modedit.cpp:92 +msgid "Undo last edition" +msgstr "Defait dernière édition" -#: pcbnew/dialog_setup_libs.cpp:228 -msgid "Net ext: " -msgstr "Net ext: " +#: pcbnew/tool_modedit.cpp:94 +msgid "Redo the last undo command" +msgstr "Refait la dernière commande defaite" -#: pcbnew/dialog_setup_libs.cpp:367 -msgid "Library Files:" -msgstr "Fichiers Librairies:" +#: pcbnew/tool_modedit.cpp:99 +msgid "Module Properties" +msgstr "Propriétés du Module" -#: pcbnew/dialog_setup_libs.cpp:392 -msgid "Library already in use" -msgstr "Librairie déjà en usage" +#: pcbnew/tool_modedit.cpp:103 +msgid "Print Module" +msgstr "Imprimer Module" + +#: pcbnew/tool_modedit.cpp:106 +msgid "Zoom in" +msgstr "Zoom +" + +#: pcbnew/tool_modedit.cpp:110 +msgid "Zoom out" +msgstr "Zoom -" + +#: pcbnew/tool_modedit.cpp:114 +msgid "Redraw view" +msgstr "Redessin de l'écran" + +#: pcbnew/tool_modedit.cpp:119 +msgid "Zoom auto" +msgstr "Zoom Automatique" + +#: pcbnew/tool_modedit.cpp:124 +msgid "Pad Settings" +msgstr "Caract pads" + +#: pcbnew/tool_modedit.cpp:128 +msgid "Module Check" +msgstr "Test module" + +#: pcbnew/tool_modedit.cpp:154 +msgid "Add Pads" +msgstr "Addition de \"pins\"" + +#: pcbnew/tool_modedit.cpp:159 +msgid "Add graphic line or polygon" +msgstr "Addition de lignes ou polygones graphiques" + +#: pcbnew/tool_modedit.cpp:163 +msgid "Add graphic circle" +msgstr "Addition de graphiques (Cercle)" + +#: pcbnew/tool_modedit.cpp:167 +msgid "Add graphic arc" +msgstr "Addition de graphiques (Arc de Cercle)" + +#: pcbnew/tool_modedit.cpp:171 +#: pcbnew/edit.cpp:290 +msgid "Add Text" +msgstr "Ajout de Texte" + +#: pcbnew/tool_modedit.cpp:176 +msgid "Place anchor" +msgstr "Place Ancre" + +#: pcbnew/tool_modedit.cpp:181 +msgid "Delete items" +msgstr "Suppression d'éléments" + +#: pcbnew/tool_modedit.cpp:203 +msgid "Display Grid OFF" +msgstr "Suppression de l'affichage de la grille" + +#: pcbnew/tool_modedit.cpp:207 +msgid "Display Polar Coord ON" +msgstr "Activer affichage coord Polaires" + +#: pcbnew/tool_modedit.cpp:211 +msgid "Units = Inch" +msgstr "Unités = pouce" + +#: pcbnew/tool_modedit.cpp:215 +msgid "Units = mm" +msgstr "Unités = mm" + +#: pcbnew/tool_modedit.cpp:221 +msgid "Change Cursor Shape" +msgstr "Sélection de la forme du curseur" + +#: pcbnew/tool_modedit.cpp:229 +msgid "Show Pads Sketch" +msgstr "Afficher pastilles en contour" + +#: pcbnew/tool_modedit.cpp:236 +msgid "Show Texts Sketch" +msgstr "Afficher textes en contour" + +#: pcbnew/tool_modedit.cpp:243 +msgid "Show Edges Sketch" +msgstr "Afficher Modules en contour" + +#: pcbnew/tool_modedit.cpp:276 +msgid "Auto" +msgstr "Auto" + +#: pcbnew/tool_modedit.cpp:280 +#, c-format +msgid "Zoom %d" +msgstr "Zoom %d" + +#: pcbnew/tool_modedit.cpp:299 +#, c-format +msgid "Grid %.1f" +msgstr "Grille %.1f" + +#: pcbnew/tool_modedit.cpp:301 +#, c-format +msgid "Grid %.3f" +msgstr "Grille %.3f" + +#: pcbnew/tool_modedit.cpp:305 +msgid "User Grid" +msgstr "Grille perso" #: pcbnew/dialog_track_options.cpp:151 msgid "Vias:" @@ -1717,136 +1841,332 @@ msgstr "Epais. Piste" msgid "Mask clearance" msgstr "Retrait Masque" +#: pcbnew/dialog_zones_by_polygon.cpp:153 +#: pcbnew/dialog_zones_by_polygon.cpp:154 #: pcbnew/dialog_zones_by_polygon.cpp:155 #: pcbnew/dialog_zones_by_polygon.cpp:156 -#: pcbnew/dialog_zones_by_polygon.cpp:157 -#: pcbnew/dialog_zones_by_polygon.cpp:158 msgid "0.00000" msgstr "0.00000" -#: pcbnew/dialog_zones_by_polygon.cpp:159 +#: pcbnew/dialog_zones_by_polygon.cpp:157 +msgid "No Grid (For tests only!)" +msgstr "" + +#: pcbnew/dialog_zones_by_polygon.cpp:158 msgid "Grid Size for Filling:" msgstr "Taille de Grille pour Remplissage:" -#: pcbnew/dialog_zones_by_polygon.cpp:163 +#: pcbnew/dialog_zones_by_polygon.cpp:162 msgid "Zone clearance value (mm):" msgstr "Valeur isolation zone (mm):" -#: pcbnew/dialog_zones_by_polygon.cpp:171 +#: pcbnew/dialog_zones_by_polygon.cpp:170 msgid "Hatched Outline" msgstr "Contour Hachuré" -#: pcbnew/dialog_zones_by_polygon.cpp:172 +#: pcbnew/dialog_zones_by_polygon.cpp:171 msgid "Full Hatched" msgstr "Pleinement Hachuré" -#: pcbnew/dialog_zones_by_polygon.cpp:173 +#: pcbnew/dialog_zones_by_polygon.cpp:172 msgid "Outlines Appearance" msgstr "Aspect des Contours" -#: pcbnew/dialog_zones_by_polygon.cpp:183 +#: pcbnew/dialog_zones_by_polygon.cpp:182 msgid "Include Pads" msgstr "Inclure Pads" -#: pcbnew/dialog_zones_by_polygon.cpp:184 +#: pcbnew/dialog_zones_by_polygon.cpp:183 msgid "Thermal" msgstr "Thermique" -#: pcbnew/dialog_zones_by_polygon.cpp:185 +#: pcbnew/dialog_zones_by_polygon.cpp:184 msgid "Exclude Pads" msgstr "Exclure Pads" -#: pcbnew/dialog_zones_by_polygon.cpp:186 +#: pcbnew/dialog_zones_by_polygon.cpp:185 msgid "Pad options:" msgstr "Options pads" -#: pcbnew/dialog_zones_by_polygon.cpp:193 +#: pcbnew/dialog_zones_by_polygon.cpp:192 msgid "Any" msgstr "Tout" -#: pcbnew/dialog_zones_by_polygon.cpp:194 +#: pcbnew/dialog_zones_by_polygon.cpp:193 msgid "H , V and 45 deg" msgstr "H, V et 45 deg" -#: pcbnew/dialog_zones_by_polygon.cpp:195 +#: pcbnew/dialog_zones_by_polygon.cpp:194 msgid "Zone edges orient:" msgstr "Direction contours zone:" -#: pcbnew/dialog_zones_by_polygon.cpp:214 +#: pcbnew/dialog_zones_by_polygon.cpp:213 msgid "Alphabetic" msgstr "Alphabetique" -#: pcbnew/dialog_zones_by_polygon.cpp:215 +#: pcbnew/dialog_zones_by_polygon.cpp:214 msgid "Advanced" msgstr "Avancé" -#: pcbnew/dialog_zones_by_polygon.cpp:216 +#: pcbnew/dialog_zones_by_polygon.cpp:215 msgid "Net sorting:" msgstr "Tri des Equipotentielles:" -#: pcbnew/dialog_zones_by_polygon.cpp:220 +#: pcbnew/dialog_zones_by_polygon.cpp:219 msgid "Filter" msgstr "Filtre" -#: pcbnew/dialog_zones_by_polygon.cpp:225 +#: pcbnew/dialog_zones_by_polygon.cpp:224 msgid "Do not list net names which match with this text, in advanced mode" msgstr "Ne liste pas les noms de nets qui correspondent à ce texte, en mode avancé" -#: pcbnew/dialog_zones_by_polygon.cpp:250 +#: pcbnew/dialog_zones_by_polygon.cpp:263 msgid "Zone clearance value:" msgstr "Valeur isolation zone:" -#: pcbnew/dialog_zones_by_polygon.cpp:253 +#: pcbnew/dialog_zones_by_polygon.cpp:266 msgid "Grid :" msgstr "Grille:" -#: pcbnew/dialog_zones_by_polygon.cpp:537 +#: pcbnew/dialog_zones_by_polygon.cpp:566 msgid "Error : you must choose a layer" msgstr "Erreur. Vous devez choisir une couche" -#: pcbnew/dialog_zones_by_polygon.cpp:546 +#: pcbnew/dialog_zones_by_polygon.cpp:575 msgid "Error : you must choose a net name" msgstr "Erreur. Vous devez choisir une équipotentielle" -#: pcbnew/dsn.cpp:502 -msgid "Line length exceeded" -msgstr "Longueur de ligne dépassée" +#: pcbnew/pcbplot.cpp:147 +#: pcbnew/pcbplot.cpp:272 +msgid "Plot" +msgstr "Tracer" -#: pcbnew/dsn.cpp:616 -msgid "in file" -msgstr "dans le fichier" +#: pcbnew/pcbplot.cpp:191 +msgid "Plot Format" +msgstr "Format de tracé" -#: pcbnew/dsn.cpp:617 -msgid "on line" -msgstr "en ligne" +#: pcbnew/pcbplot.cpp:205 +msgid "HPGL Options:" +msgstr "Options HPGL:" -#: pcbnew/dsn.cpp:618 -msgid "at offset" -msgstr "a l'offset" +#: pcbnew/pcbplot.cpp:209 +msgid "Pen Size" +msgstr "Diam Plume" -#: pcbnew/dsn.cpp:666 -msgid "String delimiter must be a single character of ', \", or $" -msgstr "Le caractère de délimitation de ligne doit être un seul caractère ', \", or $" +#: pcbnew/pcbplot.cpp:214 +msgid "Pen Speed (cm/s)" +msgstr "Vitesse Plume ( cm/s )" -#: pcbnew/dsn.cpp:756 -msgid "Un-terminated delimited string" -msgstr "Ligne délimitée non terminée" +#: pcbnew/pcbplot.cpp:218 +msgid "Set pen speed in cm/s" +msgstr "Ajuster Vitesse plume en centimetres par seconde" -#: pcbnew/modules.cpp:81 -msgid "Footprint name:" -msgstr "Nom Module: " +#: pcbnew/pcbplot.cpp:220 +msgid "Pen ovr" +msgstr "Recouvrement" -#: pcbnew/modules.cpp:81 -msgid "Search Footprint" -msgstr "Cherche Module" +#: pcbnew/pcbplot.cpp:224 +msgid "Set plot overlay for filling" +msgstr "Ajuste recouvrement des tracés pour les remplissages" -#: pcbnew/modules.cpp:305 -msgid "Delete Module" -msgstr "Supprimer Module" +#: pcbnew/pcbplot.cpp:226 +msgid "Lines Width" +msgstr "Epaiss. Lignes" -#: pcbnew/modules.cpp:306 -msgid "Value " -msgstr "Valeur " +#: pcbnew/pcbplot.cpp:230 +msgid "Set lines width used to plot in sketch mode and plot pads outlines on silk screen layers" +msgstr "Ajuste l'épaisseur des lignes utilisée pour tracer en mode contour et pour les contours des pads sur les couches de sérigraphie" + +#: pcbnew/pcbplot.cpp:234 +msgid "Absolute" +msgstr "Absolu" + +#: pcbnew/pcbplot.cpp:234 +msgid "Auxiliary axis" +msgstr "Axe Auxiliaire" + +#: pcbnew/pcbplot.cpp:237 +msgid "Plot Origin" +msgstr "Origine des Coord de Tracé" + +#: pcbnew/pcbplot.cpp:257 +msgid "X scale adjust" +msgstr "Ajustage Echelle X" + +#: pcbnew/pcbplot.cpp:259 +msgid "Set X scale adjust for exact scale plotting" +msgstr "Ajuster échelle X pour traçage à l'échelle exacte" + +#: pcbnew/pcbplot.cpp:262 +msgid "Y scale adjust" +msgstr "Ajustage Echelle Y" + +#: pcbnew/pcbplot.cpp:264 +msgid "Set Y scale adjust for exact scale plotting" +msgstr "Ajuster échelle Y pour traçage à l'échelle exacte" + +#: pcbnew/pcbplot.cpp:266 +msgid "Plot negative" +msgstr "Tracé en Negatif" + +#: pcbnew/pcbplot.cpp:276 +msgid "Save Options" +msgstr "Sauver Options" + +#: pcbnew/pcbplot.cpp:280 +msgid "Generate drill file" +msgstr "Créer Fichier de percage" + +#: pcbnew/pcbplot.cpp:328 +msgid "Exclude Edges_Pcb layer" +msgstr "Exclure Couche Contours PCB" + +#: pcbnew/pcbplot.cpp:332 +msgid "Exclude contents of Edges_Pcb layer from all other layers" +msgstr "Exclure les tracés contour PCB des autres couches" + +#: pcbnew/pcbplot.cpp:338 +msgid "Print sheet ref" +msgstr "Imprimer cartouche" + +#: pcbnew/pcbplot.cpp:348 +msgid "Print pads on silkscreen" +msgstr "Pads sur Sérigraphie" + +#: pcbnew/pcbplot.cpp:353 +msgid "Enable/disable print/plot pads on silkscreen layers" +msgstr "Active/désactive tracé des pastilles sur les couches de sérigraphie" + +#: pcbnew/pcbplot.cpp:357 +msgid "Always print pads" +msgstr "Toujour tracer pads" + +#: pcbnew/pcbplot.cpp:361 +msgid "Force print/plot pads on ALL layers" +msgstr "Force le tracé des pastilles sur TOUTES les couches" + +#: pcbnew/pcbplot.cpp:365 +msgid "Print module value" +msgstr "Imprimer Valeur Module" + +#: pcbnew/pcbplot.cpp:369 +msgid "Enable/disable print/plot module value on silkscreen layers" +msgstr "Active/désactive le tracé des textes valeurs des modules sur couches de sérigraphie" + +#: pcbnew/pcbplot.cpp:372 +msgid "Print module reference" +msgstr "Imprimer Référence Module" + +#: pcbnew/pcbplot.cpp:376 +msgid "Enable/disable print/plot module reference on silkscreen layers" +msgstr "Active/désactive le tracé des textes référence des modules sur couches de sérigraphie" + +#: pcbnew/pcbplot.cpp:380 +msgid "Print other module texts" +msgstr "Imprimer autres textes module" + +#: pcbnew/pcbplot.cpp:384 +msgid "Enable/disable print/plot module field texts on silkscreen layers" +msgstr "Active/désactive le tracé des textes des champs des modules sur couches de sérigraphie" + +#: pcbnew/pcbplot.cpp:389 +msgid "Force print invisible texts" +msgstr "Force tracé textes invisibles" + +#: pcbnew/pcbplot.cpp:393 +msgid "Force print/plot module invisible texts on silkscreen layers" +msgstr "Force le tracé des textes invisibles sur couches de sérigraphie" + +#: pcbnew/pcbplot.cpp:397 +msgid "No drill mark" +msgstr "Pas de marque" + +#: pcbnew/pcbplot.cpp:397 +msgid "Small mark" +msgstr "Petite marque" + +#: pcbnew/pcbplot.cpp:397 +msgid "Real drill" +msgstr "Perçage réel" + +#: pcbnew/pcbplot.cpp:399 +msgid "Pads Drill Opt" +msgstr "Options Perçage Pads" + +#: pcbnew/pcbplot.cpp:406 +msgid "Auto scale" +msgstr "Ech. auto" + +#: pcbnew/pcbplot.cpp:406 +msgid "Scale 1" +msgstr "Echelle 1" + +#: pcbnew/pcbplot.cpp:406 +msgid "Scale 1.5" +msgstr "Echelle 1,5" + +#: pcbnew/pcbplot.cpp:406 +msgid "Scale 2" +msgstr "Echelle 2" + +#: pcbnew/pcbplot.cpp:406 +msgid "Scale 3" +msgstr "Echelle 3" + +#: pcbnew/pcbplot.cpp:409 +msgid "Scale Opt" +msgstr "Echelle" + +#: pcbnew/pcbplot.cpp:417 +msgid "Plot Mode" +msgstr "Mode de Tracé" + +#: pcbnew/pcbplot.cpp:425 +msgid "Plot mirror" +msgstr "Tracé Miroir" + +#: pcbnew/pcbplot.cpp:431 +msgid "Vias on mask" +msgstr "Vias sur masque" + +#: pcbnew/pcbplot.cpp:435 +msgid "Print/plot vias on mask layers. They are in this case not protected" +msgstr "Trace vias sur vernis épargne. Elles seront non protégées" + +#: pcbnew/pcbplot.cpp:439 +msgid "Org = Centre" +msgstr "Org = Centre" + +#: pcbnew/pcbplot.cpp:442 +msgid "Draw origin ( 0,0 ) in sheet center" +msgstr "Origine des tracés au centre de la feuille" + +#: 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:3524 +#: pcbnew/specctra.cpp:3549 +#, c-format +msgid "Unable to open file \"%s\"" +msgstr "Ne peut pas ouvrirle fichier \"%s\"" + +#: pcbnew/specctra.cpp:3468 +#, c-format +msgid "System file error writing to file \"%s\"" +msgstr "Erreur système sur écriture fichier \"%s\"" + +#: pcbnew/specctra.cpp:3644 +msgid "Error writing to STRINGFORMATTER" +msgstr "Error writing to STRINGFORMATTER" #: pcbnew/edit.cpp:179 #: pcbnew/editmod.cpp:45 @@ -1877,10 +2197,6 @@ msgstr "Ajuster Zéro" msgid "Add Graphic" msgstr "Addition éléments graphiques" -#: pcbnew/edit.cpp:290 -msgid "Add Text" -msgstr "Ajout de Texte" - #: pcbnew/edit.cpp:294 msgid "Add Modules" msgstr "Addition de Modules" @@ -1988,9 +2304,6 @@ msgstr "Fichier GenCAD:" #: pcbnew/export_gencad.cpp:83 #: pcbnew/files.cpp:352 -#: pcbnew/gen_modules_placefile.cpp:128 -#: pcbnew/gen_modules_placefile.cpp:139 -#: pcbnew/gen_modules_placefile.cpp:292 msgid "Unable to create " msgstr "Impossible de créer " @@ -2130,22 +2443,6 @@ msgstr "" "Plan de perçage: trop de diametres différents pour tracer 1 symbole par diametre (max 13)\n" "Le tracé utilise des cercles pour quelques valeurs " -#: pcbnew/gen_modules_placefile.cpp:117 -msgid "No Modules for Automated Placement" -msgstr "Pas de Module pour placement Automatisé" - -#: pcbnew/gen_modules_placefile.cpp:151 -msgid "Component side place file:" -msgstr "Fichier placement coté composant:" - -#: pcbnew/gen_modules_placefile.cpp:154 -msgid "Copper side place file:" -msgstr "Fichier placement coté cuivre:" - -#: pcbnew/gen_modules_placefile.cpp:157 -msgid "Module count" -msgstr "Nb Modules" - #: pcbnew/surbrill.cpp:37 msgid "Filter for net names:" msgstr "Filtre pour nets:" @@ -2343,1722 +2640,21 @@ msgstr "Créer Gap MicroOnde " msgid "Gap (inch):" msgstr "Gap (inch):" -#: pcbnew/loadcmp.cpp:103 -msgid "Module name:" -msgstr "Nom module:" - -#: pcbnew/loadcmp.cpp:215 -#, c-format -msgid "Library <%s> not found" -msgstr "Librairie %s non trouvée" - -#: pcbnew/loadcmp.cpp:220 -#, c-format -msgid "Scan Lib: %s" -msgstr "Examen Lib: %s" - -#: pcbnew/loadcmp.cpp:229 -msgid "File is Not a library" -msgstr "Le fichier n'est pas une librairie eeschema" - -#: pcbnew/loadcmp.cpp:298 -#, c-format -msgid "Module <%s> not found" -msgstr "Module <%s> non trouvé" - -#: pcbnew/loadcmp.cpp:368 -msgid "Library: " -msgstr "Librairie: " - -#: pcbnew/loadcmp.cpp:433 -#: pcbnew/loadcmp.cpp:584 -#, c-format -msgid "Modules (%d items)" -msgstr "Modules (%d éléments)" - -#: pcbnew/menubarmodedit.cpp:40 -msgid "Sizes and Widths" -msgstr "Dims. et Epaiss." - -#: pcbnew/menubarmodedit.cpp:41 -#: pcbnew/menubarpcb.cpp:229 -msgid "Adjust width for texts and drawings" -msgstr "Ajuster dims pour textes et graphiques" - -#: pcbnew/menubarmodedit.cpp:45 -#: pcbnew/menubarpcb.cpp:233 -msgid "Pad Settings" -msgstr "Caract pads" - -#: pcbnew/menubarmodedit.cpp:46 -#: pcbnew/menubarpcb.cpp:234 -msgid "Adjust size,shape,layers... for Pads" -msgstr "Ajuster taille, forme, couches... pour pads" - -#: pcbnew/menubarmodedit.cpp:50 -#: pcbnew/menubarpcb.cpp:223 -msgid "User Grid Size" -msgstr "Dim Grille utilisteur" - -#: pcbnew/menubarmodedit.cpp:51 -#: pcbnew/menubarpcb.cpp:224 -msgid "Adjust User Grid" -msgstr "Ajuster Grille utilisateur" - -#: pcbnew/menubarmodedit.cpp:60 -#: pcbnew/menubarpcb.cpp:292 -msgid "&Contents" -msgstr "&Contenu" - -#: pcbnew/menubarmodedit.cpp:60 -#: pcbnew/menubarpcb.cpp:292 -msgid "Open the pcbnew manual" -msgstr "Ouvrir la documentation de pcbnew" - -#: pcbnew/menubarmodedit.cpp:64 -#: pcbnew/menubarpcb.cpp:296 -msgid "&About" -msgstr "&Infos logiciel" - -#: pcbnew/menubarmodedit.cpp:64 -#: pcbnew/menubarpcb.cpp:296 -msgid "About this application" -msgstr "Au sujet de cette application" - -#: pcbnew/menubarmodedit.cpp:72 -#: pcbnew/menubarpcb.cpp:304 -msgid "3D Display" -msgstr "3D Visu" - -#: pcbnew/menubarmodedit.cpp:72 -#: pcbnew/menubarpcb.cpp:304 -msgid "Show Board in 3D Mode" -msgstr "Visualisation en 3D" - -#: pcbnew/menubarmodedit.cpp:76 -#: pcbnew/menubarpcb.cpp:310 -msgid "&Dimensions" -msgstr "&Dimensions" - -#: pcbnew/menubarmodedit.cpp:77 -#: pcbnew/menubarpcb.cpp:313 -msgid "&3D Display" -msgstr "&3D Visu" - -#: pcbnew/menubarmodedit.cpp:78 -#: pcbnew/menubarpcb.cpp:314 -msgid "&Help" -msgstr "&Aide" - -#: pcbnew/menubarpcb.cpp:38 -msgid "Load Board Ctrl-O" -msgstr "Charger Circuit Imprimé (Ctrl O)" - -#: pcbnew/menubarpcb.cpp:39 -msgid "Delete old Board and Load new Board" -msgstr "Effacer ancien C.I. et charger un nouveau" - -#: pcbnew/menubarpcb.cpp:44 -msgid "Append Board" -msgstr "Ajouter Circuit Imprimé" - -#: pcbnew/menubarpcb.cpp:45 -msgid "Add Board to old Board" -msgstr "Ajouter un C.I. au C.I. actuel" - -#: pcbnew/menubarpcb.cpp:50 -msgid "&New board" -msgstr "&Nouveau Circuit Imprimé" - -#: pcbnew/menubarpcb.cpp:51 -msgid "Clear old PCB and init a new one" -msgstr "Effacer C.I. ancien et créer un nouveau" - -#: pcbnew/menubarpcb.cpp:56 -msgid "&Rescue" -msgstr "&Secours" - -#: pcbnew/menubarpcb.cpp:57 -msgid "Clear old board and get last rescue file" -msgstr "Effacer C.I. actuel et reprendre dernier fichier secours" - -#: pcbnew/menubarpcb.cpp:62 -msgid "&Previous version" -msgstr "&Précédente version" - -#: pcbnew/menubarpcb.cpp:63 -msgid "Clear old board and get old version of board" -msgstr "Effacer C.I. actuel et reprendre ancienne version" - -#: pcbnew/menubarpcb.cpp:70 -msgid "&Save board Ctrl-S" -msgstr "Sauver Circuit Imprimé (Ctrl S)" - -#: pcbnew/menubarpcb.cpp:71 -msgid "Save current board" -msgstr "Sauver le C.I. actuel" - -#: pcbnew/menubarpcb.cpp:76 -msgid "Save Board as.." -msgstr "Sauver C.I. sous.." - -#: pcbnew/menubarpcb.cpp:77 -msgid "Save current board as.." -msgstr "Sauver le Circuit Imprimé courant sous.." - -#: pcbnew/menubarpcb.cpp:84 -msgid "P&rint" -msgstr "Imp&rimer" - -#: pcbnew/menubarpcb.cpp:84 -msgid "Print on current printer" -msgstr "Imprimer sur l'imprimante par défaut" - -#: pcbnew/menubarpcb.cpp:89 -msgid "&Plot" -msgstr "&Tracer" - -#: pcbnew/menubarpcb.cpp:90 -msgid "Plot (HPGL, PostScript, or Gerber format)" -msgstr "Tracer ( format HPGL, POSTSCRIPT ou GERBER)" - -#: pcbnew/menubarpcb.cpp:99 -msgid "&Specctra DSN" -msgstr "&Specctra DSN" - -#: pcbnew/menubarpcb.cpp:99 -msgid "Export the current board to a \"Specctra DSN\" file" -msgstr "Exporte le CI courant dans un fichier au format \"Specctra DSN\"" - -#: pcbnew/menubarpcb.cpp:104 -msgid "&GenCAD" -msgstr "&GenCAD" - -#: pcbnew/menubarpcb.cpp:104 -msgid "Export GenCAD Format" -msgstr "Exporter en Format GenCAD" - -#: pcbnew/menubarpcb.cpp:109 -msgid "&Module report" -msgstr "Rapport &Modules" - -#: pcbnew/menubarpcb.cpp:109 -msgid "Create a pcb report (footprint report)" -msgstr "Créer un fichier rapport (rapport sur modules)" - -#: pcbnew/menubarpcb.cpp:113 -msgid "&Export" -msgstr "&Exporter" - -#: pcbnew/menubarpcb.cpp:113 -msgid "Export board" -msgstr "Exporter le C.I." - -#: pcbnew/menubarpcb.cpp:121 -msgid "&Specctra Session" -msgstr "&Specctra Session" - -#: pcbnew/menubarpcb.cpp:121 -msgid "Import a routed \"Specctra Session\" (*.ses) file" -msgstr "Importer un fichier de routage \"Specctra Session\" (*.ses) " - -#: pcbnew/menubarpcb.cpp:133 -msgid "Import" -msgstr "Importer" - -#: pcbnew/menubarpcb.cpp:133 -msgid "Import files" -msgstr "Importer fichiers" - -#: pcbnew/menubarpcb.cpp:140 -msgid "Add new footprints" -msgstr "Archiver nouveaux modules" - -#: pcbnew/menubarpcb.cpp:141 -msgid "Archive new footprints only in a library (keep other footprints in this lib)" -msgstr "Archiver nouveaux modules seuls dans une librairie (garder les autres modules de cette librairie)" - -#: pcbnew/menubarpcb.cpp:145 -msgid "Create footprint archive" -msgstr "Créer Archive des modules" - -#: pcbnew/menubarpcb.cpp:146 -msgid "Archive all footprints in a library(old lib will be deleted)" -msgstr "Archiver tous les modules dans une librairie (ancienne librairie supprimée)" - -#: pcbnew/menubarpcb.cpp:151 -msgid "Archive footprints" -msgstr "Archiver modules" - -#: pcbnew/menubarpcb.cpp:152 -msgid "Archive or Add footprints in a library file" -msgstr "Archiver ou ajouter les modules dans un fichier librairie" - -#: pcbnew/menubarpcb.cpp:156 -msgid "E&xit" -msgstr "&Quitter" - -#: pcbnew/menubarpcb.cpp:156 -msgid "Quit pcbnew" -msgstr "Quitter Pcbnew" - -#: pcbnew/menubarpcb.cpp:174 -msgid "&Libs and Dir" -msgstr "&Libs et Rep" - -#: pcbnew/menubarpcb.cpp:175 -msgid "Setting Libraries, Directories and others..." -msgstr "Sélectionner les librairies et répertoires" - -#: pcbnew/menubarpcb.cpp:179 -msgid "&Colors" -msgstr "&Couleurs" - -#: pcbnew/menubarpcb.cpp:180 -msgid "Select Colors and Display for PCB items" -msgstr "Selection couleurs et affichage des éléments du C.I." - -#: pcbnew/menubarpcb.cpp:184 -msgid "&General Options" -msgstr "Options &Générales" - -#: pcbnew/menubarpcb.cpp:185 -msgid "Select general options for pcbnew" -msgstr " Sélection options générales pour pcbnew" - -#: pcbnew/menubarpcb.cpp:189 -msgid "&Display Options" -msgstr "Options &d'affichage" - -#: pcbnew/menubarpcb.cpp:190 -msgid "Select what items are displayed" -msgstr "Sélectionner les éléments a afficher" - -#: pcbnew/menubarpcb.cpp:200 -msgid "&Save preferences" -msgstr "&Sauver Préférences" - -#: pcbnew/menubarpcb.cpp:201 -msgid "Save application preferences" -msgstr "Sauver préférences" - -#: pcbnew/menubarpcb.cpp:205 -msgid "&Read preferences" -msgstr "&Lire Préférences" - -#: pcbnew/menubarpcb.cpp:206 -msgid "Read application preferences" -msgstr "Lire préférences de l'application" - -#: pcbnew/menubarpcb.cpp:218 -msgid "Tracks and Vias" -msgstr "Pistes et Vias" - -#: pcbnew/menubarpcb.cpp:219 -msgid "Adjust size and width for tracks, vias" -msgstr "Ajuster dims et taille des pistes et vias" - -#: pcbnew/menubarpcb.cpp:228 -msgid "Texts and Drawings" -msgstr "Textes et Tracés" - -#: pcbnew/menubarpcb.cpp:239 -msgid "&Save Setup" -msgstr "&Sauver Options" - -#: pcbnew/menubarpcb.cpp:240 -msgid "Save options in current directory" -msgstr "Sauver les options en répertoire de travail" - -#: pcbnew/menubarpcb.cpp:249 -msgid "Create &Modules Pos" -msgstr "Créer &Modules Pos" - -#: pcbnew/menubarpcb.cpp:250 -msgid "Gen Position modules file" -msgstr "Gen fichier Position des Modules" - -#: pcbnew/menubarpcb.cpp:254 -msgid "Create &Drill file" -msgstr "Créer &Fichier de percage" - -#: pcbnew/menubarpcb.cpp:255 -msgid "Gen Drill (EXCELLON] file and/or Drill sheet" -msgstr "Gen fichier de percage (EXCELLON] et/ou plan de percage" - -#: pcbnew/menubarpcb.cpp:259 -msgid "Create &Cmp file" -msgstr "Créer &Fichier Cmp" - -#: pcbnew/menubarpcb.cpp:260 -msgid "Recreate .cmp file for CvPcb" -msgstr "Recréer le fichier .cmp pour CvPcb" - -#: pcbnew/menubarpcb.cpp:268 -msgid "Global &Deletions" -msgstr "Effacements &Généraux" - -#: pcbnew/menubarpcb.cpp:269 -msgid "Delete Tracks, Modules, Texts... on Board" -msgstr "Effacer Pistes, Modules, Textes... sur le C.I." - -#: pcbnew/menubarpcb.cpp:273 -msgid "&List nets" -msgstr "&Liste équipots" - -#: pcbnew/menubarpcb.cpp:274 -msgid "List nets (names and id)" -msgstr "Lister équipotentielles (noms et numéros d'identification)" - -#: pcbnew/menubarpcb.cpp:278 -msgid "&Track operations" -msgstr "Opéra&tions sur pistes" - -#: pcbnew/menubarpcb.cpp:279 -msgid "Clean stubs, vias, delete break points, or connect dangling tracks to pads and vias" -msgstr "Nettoyer bouts de pistes, vias, points inutiles, or connecter extrémités de pistes mal connectées au centre de pads ou vias" - -#: pcbnew/menubarpcb.cpp:283 -msgid "&Swap layers" -msgstr "&Permutte couches" - -#: pcbnew/menubarpcb.cpp:284 -msgid "Swap tracks on copper layers or drawings on others layers" -msgstr "Permutation de couches" - -#: pcbnew/menubarpcb.cpp:308 -msgid "&File" -msgstr "&Fichiers" - -#: pcbnew/menubarpcb.cpp:309 -msgid "&Preferences" -msgstr "&Préférences" - -#: pcbnew/menubarpcb.cpp:311 -msgid "&Miscellaneous" -msgstr "&Divers" - -#: pcbnew/menubarpcb.cpp:312 -msgid "P&ostprocess" -msgstr "P&ostprocesseurs" - -#: pcbnew/mirepcb.cpp:78 -msgid "Target Properties" -msgstr "Propriétés de la mire" - -#: pcbnew/mirepcb.cpp:118 -msgid "shape +" -msgstr "Forme +" - -#: pcbnew/mirepcb.cpp:118 -msgid "shape X" -msgstr "Forme X" - -#: pcbnew/mirepcb.cpp:120 -msgid "Target Shape:" -msgstr "Forme Mire:" - -#: pcbnew/modedit_onclick.cpp:196 -msgid "End Tool" -msgstr "Fin Outil" - -#: pcbnew/modedit_onclick.cpp:206 -msgid "Cancel Block" -msgstr "Annuler Bloc" - -#: pcbnew/modedit_onclick.cpp:208 -msgid "Zoom Block (drag middle mouse)" -msgstr "Zoom Bloc (drag bouton du milieu souris)" - -#: pcbnew/modedit_onclick.cpp:211 -msgid "Place Block" -msgstr "Place Bloc" - -#: pcbnew/modedit_onclick.cpp:213 -msgid "Copy Block (shift + drag mouse)" -msgstr "Copie Bloc (shift + drag mouse)" - -#: pcbnew/modedit_onclick.cpp:215 -msgid "Mirror Block (alt + drag mouse)" -msgstr "Bloc Miroir (alt + drag mouse)" - -#: pcbnew/modedit_onclick.cpp:217 -msgid "Rotate Block (ctrl + drag mouse)" -msgstr "Rotation Bloc (ctrl + drag mouse)" - -#: pcbnew/modedit_onclick.cpp:219 -msgid "Delete Block (shift+ctrl + drag mouse)" -msgstr "Effacement Bloc (shift+ctrl + drag mouse)" - -#: pcbnew/modedit_onclick.cpp:241 -msgid "Rotate" -msgstr "Rotation" - -#: pcbnew/modedit_onclick.cpp:245 -msgid "Scale" -msgstr "Echelle" - -#: pcbnew/modedit_onclick.cpp:246 -msgid "Scale X" -msgstr "Echelle X" - -#: pcbnew/modedit_onclick.cpp:247 -msgid "Scale Y" -msgstr "Echelle Y" - -#: pcbnew/modedit_onclick.cpp:253 -msgid "Transform Module" -msgstr "Transforme Module" - -#: pcbnew/modedit_onclick.cpp:261 -msgid "Move Pad" -msgstr "Déplace Pad" - -#: pcbnew/modedit_onclick.cpp:263 -msgid "Edit Pad" -msgstr "Edit Pad" - -#: pcbnew/modedit_onclick.cpp:265 -msgid "New Pad Settings" -msgstr "Nouvelles Caract. Pads" - -#: pcbnew/modedit_onclick.cpp:267 -msgid "Export Pad Settings" -msgstr "Exporte Caract. Pads" - -#: pcbnew/modedit_onclick.cpp:269 -msgid "delete Pad" -msgstr "Supprimer Pad" - -#: pcbnew/modedit_onclick.cpp:274 -msgid "Global Pad Settings" -msgstr "Edition Globale des pads" - -#: pcbnew/modedit_onclick.cpp:282 -msgid "Move Text Mod." -msgstr "Move Texte Mod." - -#: pcbnew/modedit_onclick.cpp:285 -msgid "Rotate Text Mod." -msgstr "Rot. Texte Mod." - -#: pcbnew/modedit_onclick.cpp:287 -msgid "Edit Text Mod." -msgstr "Edit Texte Mod." - -#: pcbnew/modedit_onclick.cpp:290 -msgid "Delete Text Mod." -msgstr "Supprimer Texte Mod." - -#: pcbnew/modedit_onclick.cpp:297 -msgid "End edge" -msgstr "Fin contour" - -#: pcbnew/modedit_onclick.cpp:300 -msgid "Move edge" -msgstr "Déplace contour" - -#: pcbnew/modedit_onclick.cpp:303 -msgid "Place edge" -msgstr "Place contour" - -#: pcbnew/modedit_onclick.cpp:306 -msgid "Edit" -msgstr "Editer" - -#: pcbnew/modedit_onclick.cpp:308 -msgid "Edit Width (Current)" -msgstr "Edit Epaisseur (Courant)" - -#: pcbnew/modedit_onclick.cpp:310 -msgid "Edit Width (All)" -msgstr "Edit Epaisseur (Tous)" - -#: pcbnew/modedit_onclick.cpp:312 -msgid "Edit Layer (Current)" -msgstr "Edit Couche (Courant)" - -#: pcbnew/modedit_onclick.cpp:314 -msgid "Edit Layer (All)" -msgstr "Edit Couche (Tous)" - -#: pcbnew/modedit_onclick.cpp:316 -msgid "Delete edge" -msgstr "Effacement contour" - -#: pcbnew/modedit_onclick.cpp:357 -msgid "Set Width" -msgstr "Ajuste Epaiss" - -#: pcbnew/moduleframe.cpp:183 -msgid "Module Editor: module modified!, Continue ?" -msgstr "Editeur de Module: module modifié! Continuer ?" - -#: pcbnew/move-drag_pads.cpp:274 -#, c-format -msgid "Delete Pad (module %s %s) " -msgstr "Effacer Pad (module %s %s) " - -#: pcbnew/move_or_drag_track.cpp:778 -msgid "Unable to drag this segment: too many segments connected" -msgstr "Impossible de drag ce segment: trop de segments connectés" - -#: pcbnew/move_or_drag_track.cpp:832 -msgid "Unable to drag this segment: two collinear segments" -msgstr "Impossible de drag ce segment: 2 segments alignés" - -#: pcbnew/muwave_command.cpp:52 -msgid "Add Line" -msgstr "Addition de lignes" - -#: pcbnew/muwave_command.cpp:56 -msgid "Add Gap" -msgstr "Ajouter gap" - -#: pcbnew/muwave_command.cpp:60 -msgid "Add Stub" -msgstr "Ajout de stub" - -#: pcbnew/muwave_command.cpp:64 -msgid "Add Arc Stub" -msgstr "Ajout de stub (arc)" - -#: pcbnew/muwave_command.cpp:68 -msgid "Add Polynomial Shape" -msgstr "Ajout Forme polynomiale" - -#: pcbnew/netlist.cpp:130 -#, c-format -msgid "Netlist file %s not found" -msgstr "Netliste %s non trouvée" - -#: pcbnew/netlist.cpp:185 -msgid "Read Netlist " -msgstr "Lire Netliste" - -#: pcbnew/netlist.cpp:347 -msgid "Ok to delete footprints not in netlist ?" -msgstr "Ok pour effacer les empreintes non en netliste" - -#: pcbnew/netlist.cpp:497 -#, c-format -msgid "Cmp %s: Mismatch! module is [%s] and netlist said [%s]\n" -msgstr "Composant [%s] err: module est <%s> et netliste dit <%s>\n" - -#: pcbnew/netlist.cpp:538 -#, c-format -msgid "Component [%s] not found" -msgstr "Composant [%s] non trouvé" - -#: pcbnew/netlist.cpp:608 -#, c-format -msgid "Module [%s]: Pad [%s] not found" -msgstr "Module [%s]: Pad [%s] non trouvé" - -#: pcbnew/netlist.cpp:635 -msgid "No Modules" -msgstr "Pas de Modules" - -#: pcbnew/netlist.cpp:650 -msgid "Components" -msgstr "Composants" - -#: pcbnew/netlist.cpp:699 -msgid "No modules" -msgstr "Pas de Modules" - -#: pcbnew/netlist.cpp:709 -msgid "No modules in NetList" -msgstr "Pas de modules en Netliste" - -#: pcbnew/netlist.cpp:712 -msgid "Check Modules" -msgstr "Controle Modules" - -#: pcbnew/netlist.cpp:715 -msgid "Duplicates" -msgstr "Doubles" - -#: pcbnew/netlist.cpp:733 -msgid "Lack:" -msgstr "Manque:" - -#: pcbnew/netlist.cpp:755 -msgid "Not in Netlist:" -msgstr "Pas en Netliste:" - -#: pcbnew/netlist.cpp:901 -#, c-format -msgid "File <%s> not found, use Netlist for lib module selection" -msgstr "Fichier <%s> non trouvé, Netliste utilisée pour selection modules en lib." - -#: pcbnew/netlist.cpp:1036 -#, c-format -msgid "Component [%s]: footprint <%s> not found" -msgstr "Composant [%s]: Module <%s> non trouvé en librairie" - -#: pcbnew/onleftclick.cpp:176 -msgid "Graphic not authorized on Copper layers" -msgstr "Graphique non autorisé sur Couches Cuivre" - -#: pcbnew/onleftclick.cpp:199 -msgid "Tracks on Copper layers only " -msgstr "Pistes sur Couches Cuivre seulement" - -#: pcbnew/onleftclick.cpp:281 -msgid "Cotation not authorized on Copper layers" -msgstr "Cotation non autorisée sur Couches Cuivre" - -#: pcbnew/pcbcfg.cpp:71 -msgid "Read config file" -msgstr "Lire config" - -#: pcbnew/pcbcfg.cpp:85 -#, c-format -msgid "File %s not found" -msgstr " fichier %s non trouvé" - -#: pcbnew/pcbcfg.cpp:205 -msgid "Save preferences" -msgstr "Sauver préférences" - -#: pcbnew/pcbplot.cpp:147 -#: pcbnew/pcbplot.cpp:272 -msgid "Plot" -msgstr "Tracer" - -#: pcbnew/pcbplot.cpp:191 -msgid "Plot Format" -msgstr "Format de tracé" - -#: pcbnew/pcbplot.cpp:205 -msgid "HPGL Options:" -msgstr "Options HPGL:" - -#: pcbnew/pcbplot.cpp:209 -msgid "Pen Size" -msgstr "Diam Plume" - -#: pcbnew/pcbplot.cpp:214 -msgid "Pen Speed (cm/s)" -msgstr "Vitesse Plume ( cm/s )" - -#: pcbnew/pcbplot.cpp:218 -msgid "Set pen speed in cm/s" -msgstr "Ajuster Vitesse plume en centimetres par seconde" - -#: pcbnew/pcbplot.cpp:220 -msgid "Pen ovr" -msgstr "Recouvrement" - -#: pcbnew/pcbplot.cpp:224 -msgid "Set plot overlay for filling" -msgstr "Ajuste recouvrement des tracés pour les remplissages" - -#: pcbnew/pcbplot.cpp:226 -msgid "Lines Width" -msgstr "Epaiss. Lignes" - -#: pcbnew/pcbplot.cpp:230 -msgid "Set lines width used to plot in sketch mode and plot pads outlines on silk screen layers" -msgstr "Ajuste l'épaisseur des lignes utilisée pour tracer en mode contour et pour les contours des pads sur les couches de sérigraphie" - -#: pcbnew/pcbplot.cpp:234 -msgid "Absolute" -msgstr "Absolu" - -#: pcbnew/pcbplot.cpp:234 -msgid "Auxiliary axis" -msgstr "Axe Auxiliaire" - -#: pcbnew/pcbplot.cpp:237 -msgid "Plot Origin" -msgstr "Origine des Coord de Tracé" - -#: pcbnew/pcbplot.cpp:257 -msgid "X scale adjust" -msgstr "Ajustage Echelle X" - -#: pcbnew/pcbplot.cpp:259 -msgid "Set X scale adjust for exact scale plotting" -msgstr "Ajuster échelle X pour traçage à l'échelle exacte" - -#: pcbnew/pcbplot.cpp:262 -msgid "Y scale adjust" -msgstr "Ajustage Echelle Y" - -#: pcbnew/pcbplot.cpp:264 -msgid "Set Y scale adjust for exact scale plotting" -msgstr "Ajuster échelle Y pour traçage à l'échelle exacte" - -#: pcbnew/pcbplot.cpp:266 -msgid "Plot negative" -msgstr "Tracé en Negatif" - -#: pcbnew/pcbplot.cpp:276 -msgid "Save Options" -msgstr "Sauver Options" - -#: pcbnew/pcbplot.cpp:280 -msgid "Create Drill File" -msgstr "Créer Fichier de percage" - -#: pcbnew/pcbplot.cpp:328 -msgid "Exclude Edges_Pcb layer" -msgstr "Exclure Couche Contours PCB" - -#: pcbnew/pcbplot.cpp:332 -msgid "Exclude contents of Edges_Pcb layer from all other layers" -msgstr "Exclure les tracés contour PCB des autres couches" - -#: pcbnew/pcbplot.cpp:338 -msgid "Print sheet ref" -msgstr "Imprimer cartouche" - -#: pcbnew/pcbplot.cpp:348 -msgid "Print pads on silkscreen" -msgstr "Pads sur Sérigraphie" - -#: pcbnew/pcbplot.cpp:353 -msgid "Enable/disable print/plot pads on silkscreen layers" -msgstr "Active/désactive tracé des pastilles sur les couches de sérigraphie" - -#: pcbnew/pcbplot.cpp:357 -msgid "Always print pads" -msgstr "Toujour tracer pads" - -#: pcbnew/pcbplot.cpp:361 -msgid "Force print/plot pads on ALL layers" -msgstr "Force le tracé des pastilles sur TOUTES les couches" - -#: pcbnew/pcbplot.cpp:365 -msgid "Print module value" -msgstr "Imprimer Valeur Module" - -#: pcbnew/pcbplot.cpp:369 -msgid "Enable/disable print/plot module value on silkscreen layers" -msgstr "Active/désactive le tracé des textes valeurs des modules sur couches de sérigraphie" - -#: pcbnew/pcbplot.cpp:372 -msgid "Print module reference" -msgstr "Imprimer Référence Module" - -#: pcbnew/pcbplot.cpp:376 -msgid "Enable/disable print/plot module reference on silkscreen layers" -msgstr "Active/désactive le tracé des textes référence des modules sur couches de sérigraphie" - -#: pcbnew/pcbplot.cpp:380 -msgid "Print other module texts" -msgstr "Imprimer autres textes module" - -#: pcbnew/pcbplot.cpp:384 -msgid "Enable/disable print/plot module field texts on silkscreen layers" -msgstr "Active/désactive le tracé des textes des champs des modules sur couches de sérigraphie" - -#: pcbnew/pcbplot.cpp:389 -msgid "Force print invisible texts" -msgstr "Force tracé textes invisibles" - -#: pcbnew/pcbplot.cpp:393 -msgid "Force print/plot module invisible texts on silkscreen layers" -msgstr "Force le tracé des textes invisibles sur couches de sérigraphie" - -#: pcbnew/pcbplot.cpp:397 -msgid "No drill mark" -msgstr "Pas de marque" - -#: pcbnew/pcbplot.cpp:397 -msgid "Small mark" -msgstr "Petite marque" - -#: pcbnew/pcbplot.cpp:397 -msgid "Real drill" -msgstr "Perçage réel" - -#: pcbnew/pcbplot.cpp:399 -msgid "Pads Drill Opt" -msgstr "Options Perçage Pads" - -#: pcbnew/pcbplot.cpp:406 -msgid "Auto scale" -msgstr "Ech. auto" - -#: pcbnew/pcbplot.cpp:406 -msgid "Scale 1" -msgstr "Echelle 1" - -#: pcbnew/pcbplot.cpp:406 -msgid "Scale 1.5" -msgstr "Echelle 1,5" - -#: pcbnew/pcbplot.cpp:406 -msgid "Scale 2" -msgstr "Echelle 2" - -#: pcbnew/pcbplot.cpp:406 -msgid "Scale 3" -msgstr "Echelle 3" - -#: pcbnew/pcbplot.cpp:409 -msgid "Scale Opt" -msgstr "Echelle" - -#: pcbnew/pcbplot.cpp:417 -msgid "Plot Mode" -msgstr "Mode de Tracé" - -#: pcbnew/pcbplot.cpp:425 -msgid "Plot mirror" -msgstr "Tracé Miroir" - -#: pcbnew/pcbplot.cpp:431 -msgid "Vias on mask" -msgstr "Vias sur masque" - -#: pcbnew/pcbplot.cpp:435 -msgid "Print/plot vias on mask layers. They are in this case not protected" -msgstr "Trace vias sur vernis épargne. Elles seront non protégées" - -#: pcbnew/pcbplot.cpp:439 -msgid "Org = Centre" -msgstr "Org = Centre" - -#: pcbnew/pcbplot.cpp:442 -msgid "Draw origin ( 0,0 ) in sheet center" -msgstr "Origine des tracés au centre de la feuille" - -#: pcbnew/pcbtexte.cpp:88 -msgid "TextPCB properties" -msgstr "Propriétés des textes PCB" - -#: pcbnew/plotgerb.cpp:70 -msgid "unable to create file " -msgstr "Impossible de créer fichier " - -#: pcbnew/plotgerb.cpp:82 -#: pcbnew/plothpgl.cpp:74 -#: pcbnew/plotps.cpp:58 -msgid "File" -msgstr "Fichier" - -#: pcbnew/plotgerb.cpp:827 -#, c-format -msgid "unable to reopen file <%s>" -msgstr "Ne peut pas réouvrir fichier <%s>" - -#: pcbnew/plotps.cpp:392 -msgid "Tracks" -msgstr "Pistes" - -#: pcbnew/router.cpp:60 -msgid "Unable to create temporary file " -msgstr "Impossible de créer le fichier temporaire " - -#: pcbnew/router.cpp:65 -msgid "Create temporary file " -msgstr "Creation fichier temporaire " - -#: pcbnew/router.cpp:565 -msgid "Unable to find data file " -msgstr "Impossible de trouver le fichier de données " - -#: pcbnew/router.cpp:571 -msgid "Reading autorouter data file " -msgstr "Lecture fichier données de l'autorouteur" - -#: pcbnew/sel_layer.cpp:92 -msgid "Select Layer:" -msgstr "Selection couche:" - -#: pcbnew/sel_layer.cpp:138 -msgid "(Deselect)" -msgstr "(Deselection)" - -#: pcbnew/sel_layer.cpp:239 -msgid "Less than two copper layers are being used." -msgstr "Il y a moins de 2 couches cuivre utilisées." - -#: pcbnew/sel_layer.cpp:240 -msgid "Hence Layer Pairs cannot be specified." -msgstr "Donc les paires de couche ne peuvent pas être spécifiées" - -#: pcbnew/sel_layer.cpp:264 -msgid "Select Layer Pair:" -msgstr "Selection paire de couches" - -#: pcbnew/sel_layer.cpp:296 -msgid "Top Layer" -msgstr "Couche Sup." - -#: pcbnew/sel_layer.cpp:301 -msgid "Bottom Layer" -msgstr "Couche Inf." - -#: pcbnew/sel_layer.cpp:341 -msgid "Warning: The Top Layer and Bottom Layer are same." -msgstr "Attention: Les couches dessus et dessous sont les mêmes" - -#: pcbnew/set_color.cpp:269 -#: pcbnew/set_color.cpp:296 -msgid "Show None" -msgstr "Rien Afficher" - -#: pcbnew/set_color.cpp:278 -msgid "Show All" -msgstr "Tout Afficher" - -#: pcbnew/set_color.cpp:290 -msgid "Switch on all of the copper layers" -msgstr "Affiche toutes les couches cuivre" - -#: pcbnew/set_color.cpp:299 -msgid "Switch off all of the copper layers" -msgstr "N'affiche pas les couches cuivre" - -#: pcbnew/set_color.cpp:361 -msgid "Apply" -msgstr "Appliquer" - -#: pcbnew/set_grid.cpp:148 -msgid "mm" -msgstr "mm" - -#: pcbnew/set_grid.cpp:150 -msgid "Grid Size Units" -msgstr "Unites taille Grille" - -#: pcbnew/set_grid.cpp:156 -msgid "User Grid Size X" -msgstr "Grille perso dim X" - -#: pcbnew/set_grid.cpp:162 -msgid "User Grid Size Y" -msgstr "Grille perso dim Y" - -#: pcbnew/solve.cpp:233 -msgid "Abort routing?" -msgstr "Stopper routage?" - -#: pcbnew/modedit.cpp:268 -msgid "Unable to find the footprint source on the main board" -msgstr "Impossible de trouver le module source sur le PCB principal" - -#: pcbnew/modedit.cpp:269 -msgid "" -"\n" -"Cannot update the footprint" -msgstr "" -"\n" -"Ne peut mettre à jour le module" - -#: pcbnew/modedit.cpp:277 -msgid "A footprint source was found on the main board" -msgstr "Un module source a été trouvé sur le PCB principal" - -#: pcbnew/modedit.cpp:278 -msgid "" -"\n" -"Cannot insert this footprint" -msgstr "" -"\n" -"Ne peut insérer cd module" - -#: pcbnew/modedit.cpp:396 -msgid "Add Pad" -msgstr "Ajouter Pastilles" - -#: pcbnew/modedit.cpp:409 -msgid "Add Drawing" -msgstr "Ajout d'éléments graphiques" - -#: pcbnew/modedit.cpp:413 -#: pcbnew/tool_modedit.cpp:176 -msgid "Place anchor" -msgstr "Place Ancre" - -#: 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:3527 -#: pcbnew/specctra.cpp:3552 -#, c-format -msgid "Unable to open file \"%s\"" -msgstr "Ne peut pas ouvrirle fichier \"%s\"" - -#: pcbnew/specctra.cpp:3468 -#, c-format -msgid "System file error writing to file \"%s\"" -msgstr "Erreur système sur écriture fichier \"%s\"" - -#: pcbnew/specctra.cpp:3647 -msgid "Error writing to STRINGFORMATTER" -msgstr "Error writing to STRINGFORMATTER" - -#: pcbnew/edgemod.cpp:204 -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/edgemod.cpp:246 -msgid "New Width (1/10000\"):" -msgstr "Novelle largeur (1/10000\"):" - -#: pcbnew/edgemod.cpp:246 -msgid "Edge Width" -msgstr "Epaisseur Contour" - -#: pcbnew/edgemod.cpp:253 -msgid "Incorrect number, no change" -msgstr "Nombre incorrect, pas de changement" - -#: pcbnew/swap_layers.cpp:70 -msgid "Swap Layers:" -msgstr "Permutte couches" - -#: pcbnew/swap_layers.cpp:191 -#: pcbnew/swap_layers.cpp:196 -#: pcbnew/swap_layers.cpp:279 -msgid "No Change" -msgstr "Garder" - -#: pcbnew/swap_layers.cpp:269 -msgid "Deselect this layer to select the No Change state" -msgstr "Deselectionner cette couche pour restorer l'option Pas de Changement" - -#: pcbnew/tool_modedit.cpp:44 -msgid "Select working library" -msgstr "Sélection de la librairie de travail" - -#: pcbnew/tool_modedit.cpp:47 -msgid "Save Module in working library" -msgstr "Sauver Module en librairie de travail" - -#: pcbnew/tool_modedit.cpp:51 -msgid "Create new library and save current module" -msgstr "Créer une nouvelle librairie et y sauver le composant" - -#: pcbnew/tool_modedit.cpp:56 -msgid "Delete part in current library" -msgstr "Supprimer composant en librairie de travail" - -#: pcbnew/tool_modedit.cpp:61 -msgid "New Module" -msgstr "Nouveau Module" - -#: pcbnew/tool_modedit.cpp:65 -msgid "Load module from lib" -msgstr "Charger un module a partir d'une librairie" - -#: pcbnew/tool_modedit.cpp:70 -msgid "Load module from current board" -msgstr "Charger module a partir du C.I." - -#: pcbnew/tool_modedit.cpp:74 -msgid "Update module in current board" -msgstr "Remplacer module dans le C.I." - -#: pcbnew/tool_modedit.cpp:78 -msgid "Insert module into current board" -msgstr "Placer module dans le C.I." - -#: pcbnew/tool_modedit.cpp:83 -msgid "import module" -msgstr "Importer Module" - -#: pcbnew/tool_modedit.cpp:87 -msgid "export module" -msgstr "Exporter Module" - -#: pcbnew/tool_modedit.cpp:92 -msgid "Undo last edition" -msgstr "Defait dernière édition" - -#: pcbnew/tool_modedit.cpp:94 -msgid "Redo the last undo command" -msgstr "Refait la dernière commande defaite" - -#: pcbnew/tool_modedit.cpp:99 -msgid "Module Properties" -msgstr "Propriétés du Module" - -#: pcbnew/tool_modedit.cpp:103 -msgid "Print Module" -msgstr "Imprimer Module" - -#: pcbnew/tool_modedit.cpp:106 -msgid "zoom +" -msgstr "zoom +" - -#: pcbnew/tool_modedit.cpp:110 -msgid "zoom -" -msgstr "zoom -" - -#: pcbnew/tool_modedit.cpp:114 -msgid "redraw" -msgstr "Redessin" - -#: pcbnew/tool_modedit.cpp:119 -msgid "auto zoom" -msgstr "Zoom automatique" - -#: pcbnew/tool_modedit.cpp:128 -msgid "Module Check" -msgstr "Test module" - -#: pcbnew/tool_modedit.cpp:154 -msgid "Add Pads" -msgstr "Addition de \"pins\"" - -#: pcbnew/tool_modedit.cpp:159 -msgid "Add graphic line or polygon" -msgstr "Addition de lignes ou polygones graphiques" - -#: pcbnew/tool_modedit.cpp:163 -msgid "Add graphic circle" -msgstr "Addition de graphiques (Cercle)" - -#: pcbnew/tool_modedit.cpp:167 -msgid "Add graphic arc" -msgstr "Addition de graphiques (Arc de Cercle)" - -#: pcbnew/tool_modedit.cpp:181 -msgid "Delete items" -msgstr "Suppression d'éléments" - -#: pcbnew/tool_modedit.cpp:203 -msgid "Display Grid OFF" -msgstr "Suppression de l'affichage de la grille" - -#: pcbnew/tool_modedit.cpp:207 -msgid "Display Polar Coord ON" -msgstr "Activer affichage coord Polaires" - -#: pcbnew/tool_modedit.cpp:211 -msgid "Units = Inch" -msgstr "Unités = pouce" - -#: pcbnew/tool_modedit.cpp:215 -msgid "Units = mm" -msgstr "Unités = mm" - -#: pcbnew/tool_modedit.cpp:221 -msgid "Change Cursor Shape" -msgstr "Sélection de la forme du curseur" - -#: pcbnew/tool_modedit.cpp:229 -msgid "Show Pads Sketch" -msgstr "Afficher pastilles en contour" - -#: pcbnew/tool_modedit.cpp:236 -msgid "Show Texts Sketch" -msgstr "Afficher textes en contour" - -#: pcbnew/tool_modedit.cpp:243 -msgid "Show Edges Sketch" -msgstr "Afficher Modules en contour" - -#: pcbnew/tool_modedit.cpp:276 -msgid "Auto" -msgstr "Auto" - -#: pcbnew/tool_modedit.cpp:280 -#, c-format -msgid "Zoom %d" -msgstr "Zoom %d" - -#: pcbnew/tool_modedit.cpp:299 -#, c-format -msgid "Grid %.1f" -msgstr "Grille %.1f" - -#: pcbnew/tool_modedit.cpp:301 -#, c-format -msgid "Grid %.3f" -msgstr "Grille %.3f" - -#: pcbnew/tool_modedit.cpp:305 -msgid "User Grid" -msgstr "Grille perso" - -#: pcbnew/tool_pcb.cpp:33 -msgid "" -"Show active layer selections\n" -"and select layer pair for route and place via" -msgstr "" -"Affiche selections couche active\n" -"et selection paire de couches pour routage and placement via" - -#: pcbnew/tool_pcb.cpp:224 -msgid "New Board" -msgstr "Nouveau Circuit Imprimé" - -#: pcbnew/tool_pcb.cpp:226 -msgid "Open existing Board" -msgstr "Ouvrir C.I. existant" - -#: pcbnew/tool_pcb.cpp:227 -msgid "Save Board" -msgstr "Sauver Circuit Imprimé" - -#: pcbnew/tool_pcb.cpp:231 -msgid "page settings (size, texts)" -msgstr "Ajustage de la feuille de dessin (dimensions, textes)" - -#: pcbnew/tool_pcb.cpp:235 -msgid "Open Module Editor" -msgstr "Ouvrir Editeur de modules" - -#: pcbnew/tool_pcb.cpp:238 -msgid "Cut selected item" -msgstr "Suppression des éléments sélectionnés" - -#: pcbnew/tool_pcb.cpp:242 -msgid "Copy selected item" -msgstr "Copie des éléments sélectionnés" - -#: pcbnew/tool_pcb.cpp:244 -msgid "Paste" -msgstr "Copie des éléments sauvegardés" - -#: pcbnew/tool_pcb.cpp:247 -msgid "Undelete" -msgstr "Annulation du dernier effacement" - -#: pcbnew/tool_pcb.cpp:250 -msgid "Print Board" -msgstr "Imprimer C.I." - -#: pcbnew/tool_pcb.cpp:252 -msgid "Plot (HPGL, PostScript, or GERBER format)" -msgstr "Tracer en format HPGL, POSTSCRIPT ou GERBER" - -#: pcbnew/tool_pcb.cpp:272 -msgid "Find components and texts" -msgstr "Recherche de composants et textes" - -#: pcbnew/tool_pcb.cpp:279 -msgid "Read Netlist" -msgstr "Lire Netliste" - -#: pcbnew/tool_pcb.cpp:281 -msgid "Pcb Design Rules Check" -msgstr "Controle des règles de conception" - -#: pcbnew/tool_pcb.cpp:293 -msgid "Mode Module: Manual and Automatic Move or Place for modules" -msgstr "Mode Module: Déplacements ou Placement Manuel ou Automatique des modules" - -#: pcbnew/tool_pcb.cpp:296 -msgid "Mode Track and Autorouting" -msgstr "Mode Pistes and Autoroutage" - -#: pcbnew/tool_pcb.cpp:301 -msgid "Fast access to theWeb Based FreeROUTE advanced routed" -msgstr "Acces raipde au routeur avancé FreeROUTE sur le Web" - -#: pcbnew/tool_pcb.cpp:326 -msgid "Drc OFF" -msgstr "Drc DESACTIVEE" - -#: pcbnew/tool_pcb.cpp:343 -msgid "Show General Ratsnest" -msgstr "Monter le chevelu général" - -#: pcbnew/tool_pcb.cpp:346 -msgid "Show Module Ratsnest when moving" -msgstr "Monter le chevelu du module pendant déplacement" - -#: pcbnew/tool_pcb.cpp:351 -msgid "Enable Auto Del Track" -msgstr "Autoriser l'effacement automatique des pistes" - -#: pcbnew/tool_pcb.cpp:355 -msgid "Show Zones" -msgstr "Monter Zones" - -#: pcbnew/tool_pcb.cpp:364 -msgid "Show Tracks Sketch" -msgstr "Afficher Pistes en Contour" - -#: pcbnew/tool_pcb.cpp:368 -msgid "Hight Contrast Mode Display" -msgstr "Mode d'affichage Haut Contraste" - -#: pcbnew/tool_pcb.cpp:377 -msgid "" -"Display auxiliary vertical toolbar (tools for micro wave applications)\n" -" This is a very experimental feature (under development)" -msgstr "" -"Affiche toolbar vertical auxiliaire (outils pour applications micro-ondes)\n" -"C'est un outil expérimental (en cours de développement)" - -#: pcbnew/tool_pcb.cpp:407 -msgid "Net highlight" -msgstr "Surbrillance des équipotentielles" - -#: pcbnew/tool_pcb.cpp:411 -msgid "Display local ratsnest (pad or module)" -msgstr "Afficher le chevelu local (pastilles ou modules)" - -#: pcbnew/tool_pcb.cpp:416 -msgid "Add modules" -msgstr "Addition de Modules" - -#: pcbnew/tool_pcb.cpp:420 -msgid "Add tracks and vias" -msgstr "Ajouter pistes et vias" - -#: pcbnew/tool_pcb.cpp:424 -msgid "Add zones" -msgstr "Addition de Zones" - -#: pcbnew/tool_pcb.cpp:441 -msgid "Add text" -msgstr "Ajout de Texte" - -#: pcbnew/tool_pcb.cpp:446 -msgid "Add dimension" -msgstr "Ajout des cotes" - -#: pcbnew/tool_pcb.cpp:450 -msgid "Add layer alignment target" -msgstr "Ajouter Mire de superposition" - -#: pcbnew/tool_pcb.cpp:460 -msgid "Offset adjust for drill and place files" -msgstr "Ajuste offset pour fichier de perçage et placement" - -#: pcbnew/tool_pcb.cpp:486 -msgid "Create line of specified length for microwave applications" -msgstr "Creation de lignes de longueur spécifiée (pour applications micro-ondes)" - -#: pcbnew/tool_pcb.cpp:492 -msgid "Create gap of specified length for microwave applications" -msgstr "Creation de gaps de longueur spécifiée (pour applications micro-ondes)" - -#: pcbnew/tool_pcb.cpp:500 -msgid "Create stub of specified length for microwave applications" -msgstr "Creation de stub de longueur spécifiée (pour applications micro-ondes)" - -#: pcbnew/tool_pcb.cpp:506 -msgid "Create stub (arc) of specified length for microwave applications" -msgstr "Creation de stub (arc) de longueur spécifiée (pour applications micro-ondes)" - -#: pcbnew/tool_pcb.cpp:513 -msgid "Create a polynomial shape for microwave applications" -msgstr "Creation de formes polynomiales (pour applications micro-ondes)" - -#: pcbnew/tool_pcb.cpp:555 -msgid "" -"Auto track width: when starting on an existing track use its width\n" -"otherwise, use current width setting" -msgstr "" -"Largeur de piste automatique: si on démarre sur une piste existante, utiliser sa largeur\n" -" sinon utiliser la largeur courante" - -#: pcbnew/tool_pcb.cpp:581 -msgid "Zoom " -msgstr "Zoom " - -#: pcbnew/tool_pcb.cpp:595 -msgid "Grid" -msgstr "Grille" - -#: pcbnew/tool_pcb.cpp:721 -msgid "+/- to switch" -msgstr "+/- pour commuter" - -#: pcbnew/via_edit.cpp:54 -msgid "Incorrect value for Via drill. No via drill change" -msgstr "Valeur incorrecte pour perçage.Pas de changement pour la via" - -#: pcbnew/xchgmod.cpp:80 -msgid "Exchange Modules" -msgstr "Echange modules:" - -#: pcbnew/xchgmod.cpp:107 -msgid "Change module" -msgstr "Change module" - -#: pcbnew/xchgmod.cpp:113 -msgid "Change same modules" -msgstr "Change modules id." - -#: pcbnew/xchgmod.cpp:119 -msgid "Ch. same module+value" -msgstr "Ch. module+valeur id." - -#: pcbnew/xchgmod.cpp:125 -msgid "Change all" -msgstr "Change tous" - -#: pcbnew/xchgmod.cpp:131 -msgid "Browse Libs modules" -msgstr "Liste modules" - -#: pcbnew/xchgmod.cpp:142 -msgid "Current Module" -msgstr "Module courant" - -#: pcbnew/xchgmod.cpp:149 -msgid "Current Value" -msgstr "Valeur courante" - -#: pcbnew/xchgmod.cpp:223 -#, c-format -msgid "file %s not found" -msgstr " fichier %s non trouvé" - -#: pcbnew/xchgmod.cpp:237 -#, c-format -msgid "Unable to create file %s" -msgstr "Impossible de créer fichier <%s>" - -#: pcbnew/xchgmod.cpp:344 -#, c-format -msgid "Change modules <%s> -> <%s> (val = %s)?" -msgstr "Change modules <%s> -> <%s> (val = %s)?" - -#: pcbnew/xchgmod.cpp:351 -#, c-format -msgid "Change modules <%s> -> <%s> ?" -msgstr "Change modules <%s> -> <%s> ?" - -#: pcbnew/xchgmod.cpp:415 -msgid "Change ALL modules ?" -msgstr "Change TOUS les modules ?" - -#: pcbnew/xchgmod.cpp:477 -#, c-format -msgid "Change module %s (%s) " -msgstr "Change module %s (%s) " - -#: pcbnew/xchgmod.cpp:621 -msgid "Cmp files:" -msgstr "Fichiers Cmp: " - -#: pcbnew/zones_by_polygon.cpp:340 -#: pcbnew/zones_by_polygon.cpp:381 -#: pcbnew/zones_by_polygon.cpp:680 -msgid "Area: DRC outline error" -msgstr "Zone; Erreur DRC sur contour" - -#: pcbnew/zones_by_polygon.cpp:569 -msgid "DRC error: this start point is inside or too close an other area" -msgstr "Erreur DRC: ce point de départ est a l'intérieur d'une autre zone ou trop proche" - -#: pcbnew/zones_by_polygon.cpp:628 -msgid "DRC error: closing this area creates a drc error with an other area" -msgstr "Erreur DRC: la fermeture de cette zone crée une erreur DRC avec une autre zone" - -#: pcbnew/zones_by_polygon.cpp:857 -msgid "No Net" -msgstr "No Net" - -#: pcbnew/zone_filling_algorithm.cpp:200 -msgid "No pads or starting point found to fill this zone outline" -msgstr "Pas de pads ou de points de départ pour remplir ce contour de zone" - -#: pcbnew/zone_filling_algorithm.cpp:246 -msgid "Ok" -msgstr "Ok" - -#: pcbnew/librairi.cpp:61 -msgid "Import Module:" -msgstr "Importer Module:" - -#: pcbnew/librairi.cpp:97 -msgid "Not a module file" -msgstr "N'est pas un fichier de Modules" - -#: pcbnew/librairi.cpp:179 -msgid "Create lib" -msgstr "Créer lib" - -#: pcbnew/librairi.cpp:179 -msgid "Export Module:" -msgstr "Exporter Module:" - -#: pcbnew/librairi.cpp:194 -#: pcbnew/librairi.cpp:441 -#, c-format -msgid "File %s exists, OK to replace ?" -msgstr "Fichier %s existant, OK pour remplacer ?" - -#: pcbnew/librairi.cpp:203 -#, c-format -msgid "Unable to create <%s>" -msgstr "Incapable de créer <%s>" - -#: pcbnew/librairi.cpp:224 -#, c-format -msgid "Module exported in file <%s>" -msgstr "Module exporté en fichier <%s>" - -#: pcbnew/librairi.cpp:246 -#, c-format -msgid "Ok to delete module %s in library %s" -msgstr "Ok pour effacer module %sein librairie %s" - -#: pcbnew/librairi.cpp:256 -msgid "Library " -msgstr "Librairie " - -#: pcbnew/librairi.cpp:267 -msgid "Not a Library file" -msgstr "N'est pas un fichier Librairie" - -#: pcbnew/librairi.cpp:296 -#, c-format -msgid "Module [%s] not found" -msgstr "Module [%s] non trouvé" - -#: pcbnew/librairi.cpp:390 -#, c-format -msgid "Component %s deleted in library %s" -msgstr "Composant %s supprimé en librairie %s" - -#: pcbnew/librairi.cpp:416 -msgid " No modules to archive!" -msgstr "Pas de Modules a archiver" - -#: pcbnew/librairi.cpp:423 -msgid "Library" -msgstr "Librairie" - -#: pcbnew/librairi.cpp:516 -#, c-format -msgid "Library %s not found" -msgstr "Librairie %s non trouvée" - -#: pcbnew/librairi.cpp:527 +#: pcbnew/modules.cpp:81 msgid "Name:" msgstr "Nom:" -#: pcbnew/librairi.cpp:527 -msgid "Save module" -msgstr "Sauver Module" +#: pcbnew/modules.cpp:81 +msgid "Search footprint" +msgstr "Cherche Module" -#: pcbnew/librairi.cpp:537 -#, c-format -msgid "Unable to open %s" -msgstr "Ne peut pas ouvrir \"%s\"" +#: pcbnew/modules.cpp:305 +msgid "Delete Module" +msgstr "Supprimer Module" -#: pcbnew/librairi.cpp:547 -#, c-format -msgid "File %s is not a eeschema library" -msgstr "Fichier %s n'est pas une librairie eeschema" - -#: pcbnew/librairi.cpp:576 -msgid "Module exists Line " -msgstr "Module existe Ligne " - -#: pcbnew/librairi.cpp:695 -msgid "Component " -msgstr "Composant" - -#: pcbnew/librairi.cpp:696 -msgid " added in " -msgstr " ajouté dans " - -#: pcbnew/librairi.cpp:696 -msgid " replaced in " -msgstr " remplacé dans " - -#: pcbnew/librairi.cpp:723 -msgid "Module Reference:" -msgstr "Référence Module" - -#: pcbnew/librairi.cpp:723 -msgid "Create module" -msgstr "Créer Module" - -#: pcbnew/librairi.cpp:775 -msgid "Active Lib:" -msgstr "Librairie Active:" - -#: pcbnew/librairi.cpp:786 -msgid "Module Editor (lib: " -msgstr "Editeur de modules (lib: " - -#: pcbnew/librairi.cpp:801 -msgid "Library exists " -msgstr "Librairie existante " - -#: pcbnew/librairi.cpp:816 -msgid "Create error " -msgstr "Erreur en création " - -#: pcbnew/specctra_import.cpp:73 -msgid "Merge Specctra Session file:" -msgstr "Fichier Specctra Session à Fusionner:" - -#: pcbnew/specctra_import.cpp:100 -msgid "BOARD may be corrupted, do not save it." -msgstr "Le PCB peut être corrompu. Ne pas le sauver" - -#: pcbnew/specctra_import.cpp:102 -msgid "Fix problem and try again." -msgstr "Fixer le problème et recommencer." - -#: pcbnew/specctra_import.cpp:116 -msgid "Session file imported and merged OK." -msgstr "Fichier Session importé et fusionné correctement." - -#: pcbnew/specctra_import.cpp:191 -#: pcbnew/specctra_import.cpp:299 -#, c-format -msgid "Session file uses invalid layer id \"%s\"" -msgstr "Le Fichier Session utilise une couche invalide n° \"%s\"" - -#: pcbnew/specctra_import.cpp:241 -msgid "Session via padstack has no shapes" -msgstr "Manque dans le Fichier Session file la section " - -#: pcbnew/specctra_import.cpp:248 -#: pcbnew/specctra_import.cpp:266 -#: pcbnew/specctra_import.cpp:290 -#, c-format -msgid "Unsupported via shape: \"%s\"" -msgstr "Forme via inconnue: \"%s\"" - -#: pcbnew/specctra_import.cpp:347 -msgid "Session file is missing the \"session\" section" -msgstr "Session file is missing the \"session\" section" - -#: pcbnew/specctra_import.cpp:350 -msgid "Session file is missing the \"placement\" section" -msgstr "Manque dans le Fichier Session file la section \"placement\"" - -#: pcbnew/specctra_import.cpp:353 -msgid "Session file is missing the \"routes\" section" -msgstr "Manque dans le Fichier Session file la section \"routes\"" - -#: pcbnew/specctra_import.cpp:356 -msgid "Session file is missing the \"library_out\" section" -msgstr "Manque dans le Fichier Session file la section \"library_out\"" - -#: pcbnew/specctra_import.cpp:386 -#, c-format -msgid "Session file has 'reference' to non-existent component \"%s\"" -msgstr "Le fichier Session a une 'reference' a un composant non existant \"%s\"" - -#: pcbnew/specctra_import.cpp:530 -#, 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/pcbnew.cpp:43 -msgid "Pcbnew is already running, Continue?" -msgstr "Pcbnew est est cours d'exécution. Continuer ?" +#: pcbnew/modules.cpp:306 +msgid "Value " +msgstr "Valeur " #: pcbnew/onrightclick.cpp:41 msgid "Auto Width" @@ -4088,6 +2684,10 @@ msgstr "Via %.1f" msgid "Via %.3f" msgstr "Via %.3f" +#: pcbnew/onrightclick.cpp:127 +msgid "End tool" +msgstr "Fin Outil" + #: pcbnew/onrightclick.cpp:195 msgid "Lock Module" msgstr "Verrouiller Module" @@ -4244,10 +2844,40 @@ msgstr "Autorouteur Global" msgid "Read Global AutoRouter Data" msgstr "Lire Données de L'autorouteur global" +#: pcbnew/onrightclick.cpp:447 +#: pcbnew/modedit_onclick.cpp:206 +msgid "Cancel Block" +msgstr "Annuler Bloc" + +#: pcbnew/onrightclick.cpp:449 +#: pcbnew/modedit_onclick.cpp:208 +msgid "Zoom Block (drag middle mouse)" +msgstr "Zoom Bloc (drag bouton du milieu souris)" + +#: pcbnew/onrightclick.cpp:452 +#: pcbnew/modedit_onclick.cpp:211 +msgid "Place Block" +msgstr "Place Bloc" + +#: pcbnew/onrightclick.cpp:454 +#: pcbnew/modedit_onclick.cpp:213 +msgid "Copy Block (shift + drag mouse)" +msgstr "Copie Bloc (shift + drag mouse)" + #: pcbnew/onrightclick.cpp:456 msgid "Flip Block (alt + drag mouse)" msgstr "Inversion Bloc (alt + drag mouse)" +#: pcbnew/onrightclick.cpp:458 +#: pcbnew/modedit_onclick.cpp:217 +msgid "Rotate Block (ctrl + drag mouse)" +msgstr "Rotation Bloc (ctrl + drag mouse)" + +#: pcbnew/onrightclick.cpp:460 +#: pcbnew/modedit_onclick.cpp:219 +msgid "Delete Block (shift+ctrl + drag mouse)" +msgstr "Effacement Bloc (shift+ctrl + drag mouse)" + #: pcbnew/onrightclick.cpp:479 msgid "Drag Via" msgstr "Drag Via" @@ -4369,7 +2999,7 @@ msgid "Delete Track" msgstr "Effacer Piste" #: pcbnew/onrightclick.cpp:594 -msgid "Delete Net" +msgid "Delete net" msgstr "Supprimer Net" #: pcbnew/onrightclick.cpp:599 @@ -4480,14 +3110,47 @@ msgstr "Rotation -" msgid "Flip" msgstr "Change côté" +#: pcbnew/onrightclick.cpp:724 +#: pcbnew/onrightclick.cpp:758 +#: pcbnew/onrightclick.cpp:862 +#: pcbnew/modedit_onclick.cpp:306 +msgid "Edit" +msgstr "Editer" + +#: pcbnew/onrightclick.cpp:756 +#: pcbnew/onrightclick.cpp:860 +#: pcbnew/modedit_onclick.cpp:241 +msgid "Rotate" +msgstr "Rotation" + +#: pcbnew/onrightclick.cpp:795 +#: pcbnew/modedit_onclick.cpp:263 +msgid "Edit Pad" +msgstr "Edit Pad" + +#: pcbnew/onrightclick.cpp:799 +#: pcbnew/modedit_onclick.cpp:265 +msgid "New Pad Settings" +msgstr "Nouvelles Caract. Pads" + #: pcbnew/onrightclick.cpp:800 msgid "Copy current pad settings to this pad" msgstr "Copier les réglages courants pour ce pad" +#: pcbnew/onrightclick.cpp:803 +#: pcbnew/modedit_onclick.cpp:267 +msgid "Export Pad Settings" +msgstr "Exporte Caract. Pads" + #: pcbnew/onrightclick.cpp:804 msgid "Copy this pad settings to current pad settings" msgstr "Copier les caractéristiques de ce pad vers les caractéristiques courantes" +#: pcbnew/onrightclick.cpp:810 +#: pcbnew/modedit_onclick.cpp:274 +msgid "Global Pad Settings" +msgstr "Edition Globale des pads" + #: pcbnew/onrightclick.cpp:812 msgid "Copy this pad settings to all pads in this footprint (or similar footprints)" msgstr "Copier les caractéristiques de ce pad vers tous les autres pads de ce module( ou modules similaires)" @@ -4500,6 +3163,1426 @@ msgstr "Autoroute Pad" msgid "Autoroute Net" msgstr "Autoroute Net" +#: pcbnew/tool_pcb.cpp:33 +msgid "" +"Show active layer selections\n" +"and select layer pair for route and place via" +msgstr "" +"Affiche selections couche active\n" +"et selection paire de couches pour routage and placement via" + +#: pcbnew/tool_pcb.cpp:224 +msgid "New board" +msgstr "Nouveau Circuit Imprimé" + +#: pcbnew/tool_pcb.cpp:226 +msgid "Open existing board" +msgstr "Ouvrir C.I. existant" + +#: pcbnew/tool_pcb.cpp:227 +msgid "Save board" +msgstr "Sauver Circuit Imprimé" + +#: pcbnew/tool_pcb.cpp:231 +msgid "Page settings (size, texts)" +msgstr "Ajustage de la feuille de dessin (dimensions, textes)" + +#: pcbnew/tool_pcb.cpp:235 +msgid "Open module editor" +msgstr "Ouvrir Editeur de modules" + +#: pcbnew/tool_pcb.cpp:238 +msgid "Cut selected item" +msgstr "Suppression des éléments sélectionnés" + +#: pcbnew/tool_pcb.cpp:242 +msgid "Copy selected item" +msgstr "Copie des éléments sélectionnés" + +#: pcbnew/tool_pcb.cpp:244 +msgid "Paste" +msgstr "Copie des éléments sauvegardés" + +#: pcbnew/tool_pcb.cpp:247 +msgid "Undelete" +msgstr "Annulation du dernier effacement" + +#: pcbnew/tool_pcb.cpp:250 +msgid "Print board" +msgstr "Imprimer C.I." + +#: pcbnew/tool_pcb.cpp:252 +msgid "Plot (HPGL, PostScript, or GERBER format)" +msgstr "Tracer en format HPGL, POSTSCRIPT ou GERBER" + +#: pcbnew/tool_pcb.cpp:272 +msgid "Find components and texts" +msgstr "Recherche de composants et textes" + +#: pcbnew/tool_pcb.cpp:279 +msgid "Read netlist" +msgstr "Lire Netliste" + +#: pcbnew/tool_pcb.cpp:281 +msgid "Pcb Design Rules Check" +msgstr "Controle des règles de conception" + +#: pcbnew/tool_pcb.cpp:293 +msgid "Mode Module: Manual and Automatic Move or Place for modules" +msgstr "Mode Module: Déplacements ou Placement Manuel ou Automatique des modules" + +#: pcbnew/tool_pcb.cpp:296 +msgid "Mode Track and Autorouting" +msgstr "Mode Pistes and Autoroutage" + +#: pcbnew/tool_pcb.cpp:301 +msgid "Fast access to theWeb Based FreeROUTE advanced routed" +msgstr "Acces raipde au routeur avancé FreeROUTE sur le Web" + +#: pcbnew/tool_pcb.cpp:326 +msgid "Drc OFF" +msgstr "Drc DESACTIVEE" + +#: pcbnew/tool_pcb.cpp:343 +msgid "Show General Ratsnest" +msgstr "Monter le chevelu général" + +#: pcbnew/tool_pcb.cpp:346 +msgid "Show Module Ratsnest when moving" +msgstr "Monter le chevelu du module pendant déplacement" + +#: pcbnew/tool_pcb.cpp:351 +msgid "Enable Auto Del Track" +msgstr "Autoriser l'effacement automatique des pistes" + +#: pcbnew/tool_pcb.cpp:355 +msgid "Show Zones" +msgstr "Monter Zones" + +#: pcbnew/tool_pcb.cpp:364 +msgid "Show Tracks Sketch" +msgstr "Afficher Pistes en Contour" + +#: pcbnew/tool_pcb.cpp:368 +msgid "Hight Contrast Mode Display" +msgstr "Mode d'affichage Haut Contraste" + +#: pcbnew/tool_pcb.cpp:377 +msgid "" +"Display auxiliary vertical toolbar (tools for micro wave applications)\n" +" This is a very experimental feature (under development)" +msgstr "" +"Affiche toolbar vertical auxiliaire (outils pour applications micro-ondes)\n" +"C'est un outil expérimental (en cours de développement)" + +#: pcbnew/tool_pcb.cpp:407 +msgid "Net highlight" +msgstr "Surbrillance des équipotentielles" + +#: pcbnew/tool_pcb.cpp:411 +msgid "Display local ratsnest (pad or module)" +msgstr "Afficher le chevelu local (pastilles ou modules)" + +#: pcbnew/tool_pcb.cpp:416 +msgid "Add modules" +msgstr "Addition de Modules" + +#: pcbnew/tool_pcb.cpp:420 +msgid "Add tracks and vias" +msgstr "Ajouter pistes et vias" + +#: pcbnew/tool_pcb.cpp:424 +msgid "Add zones" +msgstr "Addition de Zones" + +#: pcbnew/tool_pcb.cpp:441 +msgid "Add text" +msgstr "Ajout de Texte" + +#: pcbnew/tool_pcb.cpp:446 +msgid "Add dimension" +msgstr "Ajout des cotes" + +#: pcbnew/tool_pcb.cpp:450 +msgid "Add layer alignment target" +msgstr "Ajouter Mire de superposition" + +#: pcbnew/tool_pcb.cpp:460 +msgid "Offset adjust for drill and place files" +msgstr "Ajuste offset pour fichier de perçage et placement" + +#: pcbnew/tool_pcb.cpp:486 +msgid "Create line of specified length for microwave applications" +msgstr "Creation de lignes de longueur spécifiée (pour applications micro-ondes)" + +#: pcbnew/tool_pcb.cpp:492 +msgid "Create gap of specified length for microwave applications" +msgstr "Creation de gaps de longueur spécifiée (pour applications micro-ondes)" + +#: pcbnew/tool_pcb.cpp:500 +msgid "Create stub of specified length for microwave applications" +msgstr "Creation de stub de longueur spécifiée (pour applications micro-ondes)" + +#: pcbnew/tool_pcb.cpp:506 +msgid "Create stub (arc) of specified length for microwave applications" +msgstr "Creation de stub (arc) de longueur spécifiée (pour applications micro-ondes)" + +#: pcbnew/tool_pcb.cpp:513 +msgid "Create a polynomial shape for microwave applications" +msgstr "Creation de formes polynomiales (pour applications micro-ondes)" + +#: pcbnew/tool_pcb.cpp:555 +msgid "" +"Auto track width: when starting on an existing track use its width\n" +"otherwise, use current width setting" +msgstr "" +"Largeur de piste automatique: si on démarre sur une piste existante, utiliser sa largeur\n" +" sinon utiliser la largeur courante" + +#: pcbnew/tool_pcb.cpp:581 +msgid "Zoom " +msgstr "Zoom " + +#: pcbnew/tool_pcb.cpp:595 +msgid "Grid" +msgstr "Grille" + +#: pcbnew/tool_pcb.cpp:721 +msgid "+/- to switch" +msgstr "+/- pour commuter" + +#: pcbnew/mirepcb.cpp:78 +msgid "Target Properties" +msgstr "Propriétés de la mire" + +#: pcbnew/mirepcb.cpp:118 +msgid "shape +" +msgstr "Forme +" + +#: pcbnew/mirepcb.cpp:118 +msgid "shape X" +msgstr "Forme X" + +#: pcbnew/mirepcb.cpp:120 +msgid "Target Shape:" +msgstr "Forme Mire:" + +#: pcbnew/modedit_onclick.cpp:196 +msgid "End Tool" +msgstr "Fin Outil" + +#: pcbnew/modedit_onclick.cpp:215 +msgid "Mirror Block (alt + drag mouse)" +msgstr "Bloc Miroir (alt + drag mouse)" + +#: pcbnew/modedit_onclick.cpp:245 +msgid "Scale" +msgstr "Echelle" + +#: pcbnew/modedit_onclick.cpp:246 +msgid "Scale X" +msgstr "Echelle X" + +#: pcbnew/modedit_onclick.cpp:247 +msgid "Scale Y" +msgstr "Echelle Y" + +#: pcbnew/modedit_onclick.cpp:253 +msgid "Transform Module" +msgstr "Transforme Module" + +#: pcbnew/modedit_onclick.cpp:261 +msgid "Move Pad" +msgstr "Déplace Pad" + +#: pcbnew/modedit_onclick.cpp:269 +msgid "delete Pad" +msgstr "Supprimer Pad" + +#: pcbnew/modedit_onclick.cpp:282 +msgid "Move Text Mod." +msgstr "Move Texte Mod." + +#: pcbnew/modedit_onclick.cpp:285 +msgid "Rotate Text Mod." +msgstr "Rot. Texte Mod." + +#: pcbnew/modedit_onclick.cpp:287 +msgid "Edit Text Mod." +msgstr "Edit Texte Mod." + +#: pcbnew/modedit_onclick.cpp:290 +msgid "Delete Text Mod." +msgstr "Supprimer Texte Mod." + +#: pcbnew/modedit_onclick.cpp:297 +msgid "End edge" +msgstr "Fin contour" + +#: pcbnew/modedit_onclick.cpp:300 +msgid "Move edge" +msgstr "Déplace contour" + +#: pcbnew/modedit_onclick.cpp:303 +msgid "Place edge" +msgstr "Place contour" + +#: pcbnew/modedit_onclick.cpp:308 +msgid "Edit Width (Current)" +msgstr "Edit Epaisseur (Courant)" + +#: pcbnew/modedit_onclick.cpp:310 +msgid "Edit Width (All)" +msgstr "Edit Epaisseur (Tous)" + +#: pcbnew/modedit_onclick.cpp:312 +msgid "Edit Layer (Current)" +msgstr "Edit Couche (Courant)" + +#: pcbnew/modedit_onclick.cpp:314 +msgid "Edit Layer (All)" +msgstr "Edit Couche (Tous)" + +#: pcbnew/modedit_onclick.cpp:316 +msgid "Delete edge" +msgstr "Effacement contour" + +#: pcbnew/modedit_onclick.cpp:357 +msgid "Set Width" +msgstr "Ajuste Epaiss" + +#: pcbnew/moduleframe.cpp:183 +msgid "Module Editor: module modified!, Continue ?" +msgstr "Editeur de Module: module modifié! Continuer ?" + +#: pcbnew/move-drag_pads.cpp:274 +#, c-format +msgid "Delete Pad (module %s %s) " +msgstr "Effacer Pad (module %s %s) " + +#: pcbnew/move_or_drag_track.cpp:778 +msgid "Unable to drag this segment: too many segments connected" +msgstr "Impossible de drag ce segment: trop de segments connectés" + +#: pcbnew/move_or_drag_track.cpp:832 +msgid "Unable to drag this segment: two collinear segments" +msgstr "Impossible de drag ce segment: 2 segments alignés" + +#: pcbnew/muwave_command.cpp:52 +msgid "Add Line" +msgstr "Addition de lignes" + +#: pcbnew/muwave_command.cpp:56 +msgid "Add Gap" +msgstr "Ajouter gap" + +#: pcbnew/muwave_command.cpp:60 +msgid "Add Stub" +msgstr "Ajout de stub" + +#: pcbnew/muwave_command.cpp:64 +msgid "Add Arc Stub" +msgstr "Ajout de stub (arc)" + +#: pcbnew/muwave_command.cpp:68 +msgid "Add Polynomial Shape" +msgstr "Ajout Forme polynomiale" + +#: pcbnew/netlist.cpp:130 +#, c-format +msgid "Netlist file %s not found" +msgstr "Netliste %s non trouvée" + +#: pcbnew/netlist.cpp:185 +msgid "Read Netlist " +msgstr "Lire Netliste" + +#: pcbnew/netlist.cpp:347 +msgid "Ok to delete footprints not in netlist ?" +msgstr "Ok pour effacer les empreintes non en netliste" + +#: pcbnew/netlist.cpp:497 +#, c-format +msgid "Cmp %s: Mismatch! module is [%s] and netlist said [%s]\n" +msgstr "Composant [%s] err: module est <%s> et netliste dit <%s>\n" + +#: pcbnew/netlist.cpp:538 +#, c-format +msgid "Component [%s] not found" +msgstr "Composant [%s] non trouvé" + +#: pcbnew/netlist.cpp:608 +#, c-format +msgid "Module [%s]: Pad [%s] not found" +msgstr "Module [%s]: Pad [%s] non trouvé" + +#: pcbnew/netlist.cpp:635 +msgid "No Modules" +msgstr "Pas de Modules" + +#: pcbnew/netlist.cpp:650 +msgid "Components" +msgstr "Composants" + +#: pcbnew/netlist.cpp:699 +msgid "No modules" +msgstr "Pas de Modules" + +#: pcbnew/netlist.cpp:709 +msgid "No modules in NetList" +msgstr "Pas de modules en Netliste" + +#: pcbnew/netlist.cpp:712 +msgid "Check Modules" +msgstr "Controle Modules" + +#: pcbnew/netlist.cpp:715 +msgid "Duplicates" +msgstr "Doubles" + +#: pcbnew/netlist.cpp:733 +msgid "Lack:" +msgstr "Manque:" + +#: pcbnew/netlist.cpp:755 +msgid "Not in Netlist:" +msgstr "Pas en Netliste:" + +#: pcbnew/netlist.cpp:901 +#, c-format +msgid "File <%s> not found, use Netlist for lib module selection" +msgstr "Fichier <%s> non trouvé, Netliste utilisée pour selection modules en lib." + +#: pcbnew/netlist.cpp:1036 +#, c-format +msgid "Component [%s]: footprint <%s> not found" +msgstr "Composant [%s]: Module <%s> non trouvé en librairie" + +#: pcbnew/onleftclick.cpp:176 +msgid "Graphic not authorized on Copper layers" +msgstr "Graphique non autorisé sur Couches Cuivre" + +#: pcbnew/onleftclick.cpp:199 +msgid "Tracks on Copper layers only " +msgstr "Pistes sur Couches Cuivre seulement" + +#: pcbnew/onleftclick.cpp:281 +msgid "Cotation not authorized on Copper layers" +msgstr "Cotation non autorisée sur Couches Cuivre" + +#: pcbnew/pcbcfg.cpp:71 +msgid "Read config file" +msgstr "Lire config" + +#: pcbnew/pcbcfg.cpp:85 +#, c-format +msgid "File %s not found" +msgstr " fichier %s non trouvé" + +#: pcbnew/pcbcfg.cpp:205 +msgid "Save preferences" +msgstr "Sauver préférences" + +#: pcbnew/pcbtexte.cpp:88 +msgid "TextPCB properties" +msgstr "Propriétés des textes PCB" + +#: pcbnew/plotgerb.cpp:70 +msgid "unable to create file " +msgstr "Impossible de créer fichier " + +#: pcbnew/plotgerb.cpp:82 +#: pcbnew/plothpgl.cpp:74 +msgid "File" +msgstr "Fichier" + +#: pcbnew/plotgerb.cpp:827 +#, c-format +msgid "unable to reopen file <%s>" +msgstr "Ne peut pas réouvrir fichier <%s>" + +#: pcbnew/plotps.cpp:392 +msgid "Tracks" +msgstr "Pistes" + +#: pcbnew/router.cpp:60 +msgid "Unable to create temporary file " +msgstr "Impossible de créer le fichier temporaire " + +#: pcbnew/router.cpp:65 +msgid "Create temporary file " +msgstr "Creation fichier temporaire " + +#: pcbnew/router.cpp:565 +msgid "Unable to find data file " +msgstr "Impossible de trouver le fichier de données " + +#: pcbnew/router.cpp:571 +msgid "Reading autorouter data file " +msgstr "Lecture fichier données de l'autorouteur" + +#: pcbnew/sel_layer.cpp:92 +msgid "Select Layer:" +msgstr "Selection couche:" + +#: pcbnew/sel_layer.cpp:138 +msgid "(Deselect)" +msgstr "(Deselection)" + +#: pcbnew/sel_layer.cpp:239 +msgid "Less than two copper layers are being used." +msgstr "Il y a moins de 2 couches cuivre utilisées." + +#: pcbnew/sel_layer.cpp:240 +msgid "Hence Layer Pairs cannot be specified." +msgstr "Donc les paires de couche ne peuvent pas être spécifiées" + +#: pcbnew/sel_layer.cpp:264 +msgid "Select Layer Pair:" +msgstr "Selection paire de couches" + +#: pcbnew/sel_layer.cpp:296 +msgid "Top Layer" +msgstr "Couche Sup." + +#: pcbnew/sel_layer.cpp:301 +msgid "Bottom Layer" +msgstr "Couche Inf." + +#: pcbnew/sel_layer.cpp:341 +msgid "Warning: The Top Layer and Bottom Layer are same." +msgstr "Attention: Les couches dessus et dessous sont les mêmes" + +#: pcbnew/set_color.cpp:269 +#: pcbnew/set_color.cpp:296 +msgid "Show None" +msgstr "Rien Afficher" + +#: pcbnew/set_color.cpp:278 +msgid "Show All" +msgstr "Tout Afficher" + +#: pcbnew/set_color.cpp:290 +msgid "Switch on all of the copper layers" +msgstr "Affiche toutes les couches cuivre" + +#: pcbnew/set_color.cpp:299 +msgid "Switch off all of the copper layers" +msgstr "N'affiche pas les couches cuivre" + +#: pcbnew/set_color.cpp:361 +msgid "Apply" +msgstr "Appliquer" + +#: pcbnew/set_grid.cpp:148 +msgid "mm" +msgstr "mm" + +#: pcbnew/set_grid.cpp:150 +msgid "Grid Size Units" +msgstr "Unites taille Grille" + +#: pcbnew/set_grid.cpp:156 +msgid "User Grid Size X" +msgstr "Grille perso dim X" + +#: pcbnew/set_grid.cpp:162 +msgid "User Grid Size Y" +msgstr "Grille perso dim Y" + +#: pcbnew/solve.cpp:233 +msgid "Abort routing?" +msgstr "Stopper routage?" + +#: pcbnew/modedit.cpp:268 +msgid "Unable to find the footprint source on the main board" +msgstr "Impossible de trouver le module source sur le PCB principal" + +#: pcbnew/modedit.cpp:269 +msgid "" +"\n" +"Cannot update the footprint" +msgstr "" +"\n" +"Ne peut mettre à jour le module" + +#: pcbnew/modedit.cpp:277 +msgid "A footprint source was found on the main board" +msgstr "Un module source a été trouvé sur le PCB principal" + +#: pcbnew/modedit.cpp:278 +msgid "" +"\n" +"Cannot insert this footprint" +msgstr "" +"\n" +"Ne peut insérer cd module" + +#: pcbnew/modedit.cpp:396 +msgid "Add Pad" +msgstr "Ajouter Pastilles" + +#: pcbnew/modedit.cpp:409 +msgid "Add Drawing" +msgstr "Ajout d'éléments graphiques" + +#: pcbnew/edgemod.cpp:204 +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/edgemod.cpp:246 +msgid "New Width (1/10000\"):" +msgstr "Novelle largeur (1/10000\"):" + +#: pcbnew/edgemod.cpp:246 +msgid "Edge Width" +msgstr "Epaisseur Contour" + +#: pcbnew/edgemod.cpp:253 +msgid "Incorrect number, no change" +msgstr "Nombre incorrect, pas de changement" + +#: pcbnew/swap_layers.cpp:70 +msgid "Swap Layers:" +msgstr "Permutte couches" + +#: pcbnew/swap_layers.cpp:191 +#: pcbnew/swap_layers.cpp:196 +#: pcbnew/swap_layers.cpp:279 +msgid "No Change" +msgstr "Garder" + +#: pcbnew/swap_layers.cpp:269 +msgid "Deselect this layer to select the No Change state" +msgstr "Deselectionner cette couche pour restorer l'option Pas de Changement" + +#: pcbnew/menubarpcb.cpp:38 +msgid "Load board Ctrl-O" +msgstr "Charger Circuit Imprimé (Ctrl O)" + +#: pcbnew/menubarpcb.cpp:39 +msgid "Delete old Board and Load new Board" +msgstr "Effacer ancien C.I. et charger un nouveau" + +#: pcbnew/menubarpcb.cpp:44 +msgid "Append Board" +msgstr "Ajouter Circuit Imprimé" + +#: pcbnew/menubarpcb.cpp:45 +msgid "Add Board to old Board" +msgstr "Ajouter un C.I. au C.I. actuel" + +#: pcbnew/menubarpcb.cpp:50 +msgid "&New board" +msgstr "&Nouveau Circuit Imprimé" + +#: pcbnew/menubarpcb.cpp:51 +msgid "Clear old PCB and init a new one" +msgstr "Effacer C.I. ancien et créer un nouveau" + +#: pcbnew/menubarpcb.cpp:56 +msgid "&Rescue" +msgstr "&Secours" + +#: pcbnew/menubarpcb.cpp:57 +msgid "Clear old board and get last rescue file" +msgstr "Effacer C.I. actuel et reprendre dernier fichier secours" + +#: pcbnew/menubarpcb.cpp:62 +msgid "&Previous version" +msgstr "&Précédente version" + +#: pcbnew/menubarpcb.cpp:63 +msgid "Clear old board and get old version of board" +msgstr "Effacer C.I. actuel et reprendre ancienne version" + +#: pcbnew/menubarpcb.cpp:70 +msgid "&Save board Ctrl-S" +msgstr "Sauver Circuit Imprimé (Ctrl S)" + +#: pcbnew/menubarpcb.cpp:71 +msgid "Save current board" +msgstr "Sauver le C.I. actuel" + +#: pcbnew/menubarpcb.cpp:76 +msgid "Save board as.." +msgstr "Sauver C.I. sous.." + +#: pcbnew/menubarpcb.cpp:77 +msgid "Save current board as.." +msgstr "Sauver le Circuit Imprimé courant sous.." + +#: pcbnew/menubarpcb.cpp:84 +msgid "P&rint" +msgstr "Imp&rimer" + +#: pcbnew/menubarpcb.cpp:84 +msgid "Print on current printer" +msgstr "Imprimer sur l'imprimante par défaut" + +#: pcbnew/menubarpcb.cpp:89 +msgid "&Plot" +msgstr "&Tracer" + +#: pcbnew/menubarpcb.cpp:90 +msgid "Plot (HPGL, PostScript, or Gerber format)" +msgstr "Tracer ( format HPGL, POSTSCRIPT ou GERBER)" + +#: pcbnew/menubarpcb.cpp:99 +msgid "&Specctra DSN" +msgstr "&Specctra DSN" + +#: pcbnew/menubarpcb.cpp:99 +msgid "Export the current board to a \"Specctra DSN\" file" +msgstr "Exporte le CI courant dans un fichier au format \"Specctra DSN\"" + +#: pcbnew/menubarpcb.cpp:104 +msgid "&GenCAD" +msgstr "&GenCAD" + +#: pcbnew/menubarpcb.cpp:104 +msgid "Export GenCAD Format" +msgstr "Exporter en Format GenCAD" + +#: pcbnew/menubarpcb.cpp:109 +msgid "&Module report" +msgstr "Rapport &Modules" + +#: pcbnew/menubarpcb.cpp:109 +msgid "Create a pcb report (footprint report)" +msgstr "Créer un fichier rapport (rapport sur modules)" + +#: pcbnew/menubarpcb.cpp:113 +msgid "&Export" +msgstr "&Exporter" + +#: pcbnew/menubarpcb.cpp:113 +msgid "Export board" +msgstr "Exporter le C.I." + +#: pcbnew/menubarpcb.cpp:121 +msgid "&Specctra Session" +msgstr "&Specctra Session" + +#: pcbnew/menubarpcb.cpp:121 +msgid "Import a routed \"Specctra Session\" (*.ses) file" +msgstr "Importer un fichier de routage \"Specctra Session\" (*.ses) " + +#: pcbnew/menubarpcb.cpp:133 +msgid "Import" +msgstr "Importer" + +#: pcbnew/menubarpcb.cpp:133 +msgid "Import files" +msgstr "Importer fichiers" + +#: pcbnew/menubarpcb.cpp:140 +msgid "Add new footprints" +msgstr "Archiver nouveaux modules" + +#: pcbnew/menubarpcb.cpp:141 +msgid "Archive new footprints only in a library (keep other footprints in this lib)" +msgstr "Archiver nouveaux modules seuls dans une librairie (garder les autres modules de cette librairie)" + +#: pcbnew/menubarpcb.cpp:145 +msgid "Create footprint archive" +msgstr "Créer Archive des modules" + +#: pcbnew/menubarpcb.cpp:146 +msgid "Archive all footprints in a library(old lib will be deleted)" +msgstr "Archiver tous les modules dans une librairie (ancienne librairie supprimée)" + +#: pcbnew/menubarpcb.cpp:151 +msgid "Archive footprints" +msgstr "Archiver modules" + +#: pcbnew/menubarpcb.cpp:152 +msgid "Archive or Add footprints in a library file" +msgstr "Archiver ou ajouter les modules dans un fichier librairie" + +#: pcbnew/menubarpcb.cpp:156 +msgid "E&xit" +msgstr "&Quitter" + +#: pcbnew/menubarpcb.cpp:156 +msgid "Quit pcbnew" +msgstr "Quitter Pcbnew" + +#: pcbnew/menubarpcb.cpp:174 +msgid "&Library" +msgstr "&Librairie" + +#: pcbnew/menubarpcb.cpp:175 +msgid "Setting Libraries, Directories and others..." +msgstr "Sélectionner les librairies et répertoires" + +#: pcbnew/menubarpcb.cpp:179 +msgid "&Colors" +msgstr "&Couleurs" + +#: pcbnew/menubarpcb.cpp:180 +msgid "Select Colors and Display for PCB items" +msgstr "Selection couleurs et affichage des éléments du C.I." + +#: pcbnew/menubarpcb.cpp:184 +msgid "&General" +msgstr " &Général " + +#: pcbnew/menubarpcb.cpp:185 +msgid "Select general options for pcbnew" +msgstr " Sélection options générales pour pcbnew" + +#: pcbnew/menubarpcb.cpp:189 +msgid "&Display" +msgstr "&Affichage" + +#: pcbnew/menubarpcb.cpp:190 +msgid "Select what items are displayed" +msgstr "Sélectionner les éléments a afficher" + +#: pcbnew/menubarpcb.cpp:200 +msgid "&Save preferences" +msgstr "&Sauver Préférences" + +#: pcbnew/menubarpcb.cpp:201 +msgid "Save application preferences" +msgstr "Sauver préférences" + +#: pcbnew/menubarpcb.cpp:205 +msgid "&Read preferences" +msgstr "&Lire Préférences" + +#: pcbnew/menubarpcb.cpp:206 +msgid "Read application preferences" +msgstr "Lire préférences de l'application" + +#: pcbnew/menubarpcb.cpp:218 +msgid "Tracks and Vias" +msgstr "Pistes et Vias" + +#: pcbnew/menubarpcb.cpp:219 +msgid "Adjust size and width for tracks, vias" +msgstr "Ajuster dims et taille des pistes et vias" + +#: pcbnew/menubarpcb.cpp:224 +msgid "Adjust User Grid" +msgstr "Ajuster Grille utilisateur" + +#: pcbnew/menubarpcb.cpp:228 +msgid "Texts and drawings" +msgstr "&Textes et Tracés" + +#: pcbnew/menubarpcb.cpp:229 +msgid "Adjust width for texts and drawings" +msgstr "Ajuster dims pour textes et graphiques" + +#: pcbnew/menubarpcb.cpp:234 +msgid "Adjust size,shape,layers... for Pads" +msgstr "Ajuster taille, forme, couches... pour pads" + +#: pcbnew/menubarpcb.cpp:239 +msgid "&Save Setup" +msgstr "&Sauver Options" + +#: pcbnew/menubarpcb.cpp:240 +msgid "Save options in current directory" +msgstr "Sauver les options en répertoire de travail" + +#: pcbnew/menubarpcb.cpp:249 +msgid "Generate &modules position" +msgstr "Créer &Modules Pos" + +#: pcbnew/menubarpcb.cpp:250 +msgid "Generate modules position file" +msgstr "Gen fichier Position des Modules" + +#: pcbnew/menubarpcb.cpp:254 +msgid "Create &drill file" +msgstr "Créer &Fichier de percage" + +#: pcbnew/menubarpcb.cpp:255 +msgid "Generate excellon drill file" +msgstr "Créer Fichier de percage" + +#: pcbnew/menubarpcb.cpp:259 +msgid "Create &component file" +msgstr "Créer &Fichier Cmp" + +#: pcbnew/menubarpcb.cpp:260 +msgid "Recreate .cmp file for CvPcb" +msgstr "Recréer le fichier .cmp pour CvPcb" + +#: pcbnew/menubarpcb.cpp:268 +msgid "Global &Deletions" +msgstr "Effacements &Généraux" + +#: pcbnew/menubarpcb.cpp:269 +msgid "Delete Tracks, Modules, Texts... on Board" +msgstr "Effacer Pistes, Modules, Textes... sur le C.I." + +#: pcbnew/menubarpcb.cpp:273 +msgid "&List nets" +msgstr "&Liste équipots" + +#: pcbnew/menubarpcb.cpp:274 +msgid "List nets (names and id)" +msgstr "Lister équipotentielles (noms et numéros d'identification)" + +#: pcbnew/menubarpcb.cpp:278 +msgid "&Track operations" +msgstr "Opéra&tions sur pistes" + +#: pcbnew/menubarpcb.cpp:279 +msgid "Clean stubs, vias, delete break points, or connect dangling tracks to pads and vias" +msgstr "Nettoyer bouts de pistes, vias, points inutiles, or connecter extrémités de pistes mal connectées au centre de pads ou vias" + +#: pcbnew/menubarpcb.cpp:283 +msgid "&Swap layers" +msgstr "&Permutte couches" + +#: pcbnew/menubarpcb.cpp:284 +msgid "Swap tracks on copper layers or drawings on others layers" +msgstr "Permutation de couches" + +#: pcbnew/menubarpcb.cpp:292 +msgid "&Contents" +msgstr "&Contenu" + +#: pcbnew/menubarpcb.cpp:292 +msgid "Open the pcbnew manual" +msgstr "Ouvrir la documentation de pcbnew" + +#: pcbnew/menubarpcb.cpp:296 +msgid "&About" +msgstr "&Infos logiciel" + +#: pcbnew/menubarpcb.cpp:296 +msgid "About this application" +msgstr "Au sujet de cette application" + +#: pcbnew/menubarpcb.cpp:304 +msgid "3D Display" +msgstr "3D Visu" + +#: pcbnew/menubarpcb.cpp:304 +msgid "Show board in 3D viewer" +msgstr "Visualisation du circuit en 3D" + +#: pcbnew/menubarpcb.cpp:308 +msgid "&File" +msgstr "&Fichiers" + +#: pcbnew/menubarpcb.cpp:309 +msgid "&Preferences" +msgstr "&Préférences" + +#: pcbnew/menubarpcb.cpp:310 +msgid "&Dimensions" +msgstr "&Dimensions" + +#: pcbnew/menubarpcb.cpp:311 +msgid "&Miscellaneous" +msgstr "&Divers" + +#: pcbnew/menubarpcb.cpp:312 +msgid "P&ostprocess" +msgstr "P&ostprocesseurs" + +#: pcbnew/menubarpcb.cpp:313 +msgid "&3D Display" +msgstr "&3D Visu" + +#: pcbnew/menubarpcb.cpp:314 +msgid "&Help" +msgstr "&Aide" + +#: pcbnew/via_edit.cpp:54 +msgid "Incorrect value for Via drill. No via drill change" +msgstr "Valeur incorrecte pour perçage.Pas de changement pour la via" + +#: pcbnew/xchgmod.cpp:80 +msgid "Exchange Modules" +msgstr "Echange modules:" + +#: pcbnew/xchgmod.cpp:107 +msgid "Change module" +msgstr "Change module" + +#: pcbnew/xchgmod.cpp:113 +msgid "Change same modules" +msgstr "Change modules id." + +#: pcbnew/xchgmod.cpp:119 +msgid "Ch. same module+value" +msgstr "Ch. module+valeur id." + +#: pcbnew/xchgmod.cpp:125 +msgid "Change all" +msgstr "Change tous" + +#: pcbnew/xchgmod.cpp:131 +msgid "Browse Libs modules" +msgstr "Liste modules" + +#: pcbnew/xchgmod.cpp:142 +msgid "Current Module" +msgstr "Module courant" + +#: pcbnew/xchgmod.cpp:149 +msgid "Current Value" +msgstr "Valeur courante" + +#: pcbnew/xchgmod.cpp:223 +#, c-format +msgid "file %s not found" +msgstr " fichier %s non trouvé" + +#: pcbnew/xchgmod.cpp:237 +#, c-format +msgid "Unable to create file %s" +msgstr "Impossible de créer fichier <%s>" + +#: pcbnew/xchgmod.cpp:344 +#, c-format +msgid "Change modules <%s> -> <%s> (val = %s)?" +msgstr "Change modules <%s> -> <%s> (val = %s)?" + +#: pcbnew/xchgmod.cpp:351 +#, c-format +msgid "Change modules <%s> -> <%s> ?" +msgstr "Change modules <%s> -> <%s> ?" + +#: pcbnew/xchgmod.cpp:415 +msgid "Change ALL modules ?" +msgstr "Change TOUS les modules ?" + +#: pcbnew/xchgmod.cpp:477 +#, c-format +msgid "Change module %s (%s) " +msgstr "Change module %s (%s) " + +#: pcbnew/xchgmod.cpp:621 +msgid "Cmp files:" +msgstr "Fichiers Cmp: " + +#: pcbnew/zones_by_polygon.cpp:330 +#: pcbnew/zones_by_polygon.cpp:386 +#: pcbnew/zones_by_polygon.cpp:703 +msgid "Area: DRC outline error" +msgstr "Zone; Erreur DRC sur contour" + +#: pcbnew/zones_by_polygon.cpp:586 +msgid "DRC error: this start point is inside or too close an other area" +msgstr "Erreur DRC: ce point de départ est a l'intérieur d'une autre zone ou trop proche" + +#: pcbnew/zones_by_polygon.cpp:648 +msgid "DRC error: closing this area creates a drc error with an other area" +msgstr "Erreur DRC: la fermeture de cette zone crée une erreur DRC avec une autre zone" + +#: pcbnew/zones_by_polygon.cpp:887 +msgid "No Net" +msgstr "No Net" + +#: pcbnew/zone_filling_algorithm.cpp:201 +msgid "No pads or starting point found to fill this zone outline" +msgstr "Pas de pads ou de points de départ pour remplir ce contour de zone" + +#: pcbnew/zone_filling_algorithm.cpp:247 +msgid "Ok" +msgstr "Ok" + +#: pcbnew/loadcmp.cpp:103 +msgid "Place module" +msgstr "Place module" + +#: pcbnew/loadcmp.cpp:215 +#, c-format +msgid "Library <%s> not found" +msgstr "Librairie %s non trouvée" + +#: pcbnew/loadcmp.cpp:220 +#, c-format +msgid "Scan Lib: %s" +msgstr "Examen Lib: %s" + +#: pcbnew/loadcmp.cpp:229 +msgid "File is not a library" +msgstr "Le fichier n'est pas une librairie" + +#: pcbnew/loadcmp.cpp:298 +#, c-format +msgid "Module <%s> not found" +msgstr "Module <%s> non trouvé" + +#: pcbnew/loadcmp.cpp:369 +#: pcbnew/librairi.cpp:256 +msgid "Library " +msgstr "Librairie " + +#: pcbnew/loadcmp.cpp:369 +msgid " loaded" +msgstr " chargé" + +#: pcbnew/loadcmp.cpp:434 +#: pcbnew/loadcmp.cpp:585 +#, c-format +msgid "Modules [%d items]" +msgstr "Modules [%d éléments]" + +#: pcbnew/librairi.cpp:61 +msgid "Import Module:" +msgstr "Importer Module:" + +#: pcbnew/librairi.cpp:97 +msgid "Not a module file" +msgstr "N'est pas un fichier de Modules" + +#: pcbnew/librairi.cpp:179 +msgid "Create lib" +msgstr "Créer lib" + +#: pcbnew/librairi.cpp:179 +msgid "Export Module:" +msgstr "Exporter Module:" + +#: pcbnew/librairi.cpp:194 +#: pcbnew/librairi.cpp:441 +#, c-format +msgid "File %s exists, OK to replace ?" +msgstr "Fichier %s existant, OK pour remplacer ?" + +#: pcbnew/librairi.cpp:203 +#, c-format +msgid "Unable to create <%s>" +msgstr "Incapable de créer <%s>" + +#: pcbnew/librairi.cpp:224 +#, c-format +msgid "Module exported in file <%s>" +msgstr "Module exporté en fichier <%s>" + +#: pcbnew/librairi.cpp:246 +#, c-format +msgid "Ok to delete module %s in library %s" +msgstr "Ok pour effacer module %sein librairie %s" + +#: pcbnew/librairi.cpp:267 +msgid "Not a Library file" +msgstr "N'est pas un fichier Librairie" + +#: pcbnew/librairi.cpp:296 +#, c-format +msgid "Module [%s] not found" +msgstr "Module [%s] non trouvé" + +#: pcbnew/librairi.cpp:390 +#, c-format +msgid "Component %s deleted in library %s" +msgstr "Composant %s supprimé en librairie %s" + +#: pcbnew/librairi.cpp:416 +msgid " No modules to archive!" +msgstr "Pas de Modules a archiver" + +#: pcbnew/librairi.cpp:423 +msgid "Library" +msgstr "Librairie" + +#: pcbnew/librairi.cpp:516 +#, c-format +msgid "Library %s not found" +msgstr "Librairie %s non trouvée" + +#: pcbnew/librairi.cpp:527 +msgid "Save module" +msgstr "Sauver Module" + +#: pcbnew/librairi.cpp:537 +#, c-format +msgid "Unable to open %s" +msgstr "Ne peut pas ouvrir \"%s\"" + +#: pcbnew/librairi.cpp:547 +#, c-format +msgid "File %s is not a eeschema library" +msgstr "Fichier %s n'est pas une librairie eeschema" + +#: pcbnew/librairi.cpp:576 +msgid "Module exists Line " +msgstr "Module existe Ligne " + +#: pcbnew/librairi.cpp:695 +msgid "Component " +msgstr "Composant" + +#: pcbnew/librairi.cpp:696 +msgid " added in " +msgstr " ajouté dans " + +#: pcbnew/librairi.cpp:696 +msgid " replaced in " +msgstr " remplacé dans " + +#: pcbnew/librairi.cpp:723 +msgid "Module Reference:" +msgstr "Référence Module" + +#: pcbnew/librairi.cpp:723 +msgid "Create module" +msgstr "Créer Module" + +#: pcbnew/librairi.cpp:775 +msgid "Active Lib:" +msgstr "Librairie Active:" + +#: pcbnew/librairi.cpp:786 +msgid "Module Editor (lib: " +msgstr "Editeur de modules (lib: " + +#: pcbnew/librairi.cpp:801 +msgid "Library exists " +msgstr "Librairie existante " + +#: pcbnew/librairi.cpp:816 +msgid "Create error " +msgstr "Erreur en création " + +#: pcbnew/specctra_import.cpp:73 +msgid "Merge Specctra Session file:" +msgstr "Fichier Specctra Session à Fusionner:" + +#: pcbnew/specctra_import.cpp:100 +msgid "BOARD may be corrupted, do not save it." +msgstr "Le PCB peut être corrompu. Ne pas le sauver" + +#: pcbnew/specctra_import.cpp:102 +msgid "Fix problem and try again." +msgstr "Fixer le problème et recommencer." + +#: pcbnew/specctra_import.cpp:116 +msgid "Session file imported and merged OK." +msgstr "Fichier Session importé et fusionné correctement." + +#: pcbnew/specctra_import.cpp:191 +#: pcbnew/specctra_import.cpp:299 +#, c-format +msgid "Session file uses invalid layer id \"%s\"" +msgstr "Le Fichier Session utilise une couche invalide n° \"%s\"" + +#: pcbnew/specctra_import.cpp:241 +msgid "Session via padstack has no shapes" +msgstr "Manque dans le Fichier Session file la section " + +#: pcbnew/specctra_import.cpp:248 +#: pcbnew/specctra_import.cpp:266 +#: pcbnew/specctra_import.cpp:290 +#, c-format +msgid "Unsupported via shape: \"%s\"" +msgstr "Forme via inconnue: \"%s\"" + +#: pcbnew/specctra_import.cpp:347 +msgid "Session file is missing the \"session\" section" +msgstr "Session file is missing the \"session\" section" + +#: pcbnew/specctra_import.cpp:350 +msgid "Session file is missing the \"placement\" section" +msgstr "Manque dans le Fichier Session file la section \"placement\"" + +#: pcbnew/specctra_import.cpp:353 +msgid "Session file is missing the \"routes\" section" +msgstr "Manque dans le Fichier Session file la section \"routes\"" + +#: pcbnew/specctra_import.cpp:356 +msgid "Session file is missing the \"library_out\" section" +msgstr "Manque dans le Fichier Session file la section \"library_out\"" + +#: pcbnew/specctra_import.cpp:386 +#, c-format +msgid "Session file has 'reference' to non-existent component \"%s\"" +msgstr "Le fichier Session a une 'reference' a un composant non existant \"%s\"" + +#: pcbnew/specctra_import.cpp:530 +#, 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/dsn.cpp:502 +msgid "Line length exceeded" +msgstr "Longueur de ligne dépassée" + +#: pcbnew/dsn.cpp:616 +msgid "in file" +msgstr "dans le fichier" + +#: pcbnew/dsn.cpp:617 +msgid "on line" +msgstr "en ligne" + +#: pcbnew/dsn.cpp:618 +msgid "at offset" +msgstr "a l'offset" + +#: pcbnew/dsn.cpp:666 +msgid "String delimiter must be a single character of ', \", or $" +msgstr "Le caractère de délimitation de ligne doit être un seul caractère ', \", or $" + +#: pcbnew/dsn.cpp:756 +msgid "Un-terminated delimited string" +msgstr "Ligne délimitée non terminée" + +#: pcbnew/pcbnew.cpp:44 +msgid "Pcbnew is already running, Continue?" +msgstr "Pcbnew est est cours d'exécution. Continuer ?" + +#: pcbnew/dialog_gendrill.cpp:166 +msgid "Millimeters" +msgstr "Millimetres" + +#: pcbnew/dialog_gendrill.cpp:168 +msgid "Drill Units:" +msgstr "Unités perçage:" + +#: pcbnew/dialog_gendrill.cpp:173 +msgid "decimal format" +msgstr "Format décimal" + +#: pcbnew/dialog_gendrill.cpp:174 +msgid "suppress leading zeros" +msgstr "Suppression zeros de tête" + +#: pcbnew/dialog_gendrill.cpp:175 +msgid "suppress trailing zeros" +msgstr "Suppression zeros de fin" + +#: pcbnew/dialog_gendrill.cpp:176 +msgid "keep zeros" +msgstr "Garder les zéros" + +#: pcbnew/dialog_gendrill.cpp:177 +msgid "Zeros Format" +msgstr "Format des zéros" + +#: pcbnew/dialog_gendrill.cpp:180 +msgid "Choose excellon numbers notation" +msgstr "Choisir la notation des nombres en format EXCELLON" + +#: pcbnew/dialog_gendrill.cpp:186 +msgid "Precision" +msgstr "Précision" + +#: pcbnew/dialog_gendrill.cpp:189 +msgid "Choose excellon numbers precision" +msgstr "Choisir la précision des nombres en format EXCELLON" + +#: pcbnew/dialog_gendrill.cpp:193 +msgid "absolute" +msgstr "Absolu" + +#: pcbnew/dialog_gendrill.cpp:194 +msgid "auxiliary axis" +msgstr "Axe Auxiliaire" + +#: pcbnew/dialog_gendrill.cpp:195 +msgid "Drill Origin:" +msgstr "Origine des coord de percage:" + +#: pcbnew/dialog_gendrill.cpp:198 +msgid "Choose the coordinate origin: absolute or relative to the auxiliray axis" +msgstr "Choisir l'origine des coordonnées: absolue ou relative à l'axe auxiliaire" + +#: pcbnew/dialog_gendrill.cpp:205 +#: pcbnew/dialog_gendrill.cpp:215 +msgid "None" +msgstr "Aucun" + +#: pcbnew/dialog_gendrill.cpp:206 +msgid "drill sheet (HPGL)" +msgstr "Plan de perçage (HPGL)" + +#: pcbnew/dialog_gendrill.cpp:207 +msgid "drill sheet (PostScript)" +msgstr "Plan de perçage (Postscript)" + +#: pcbnew/dialog_gendrill.cpp:208 +msgid "Drill Sheet:" +msgstr "Plan de perçage:" + +#: pcbnew/dialog_gendrill.cpp:211 +msgid "Creates a drill map in PS or HPGL format" +msgstr "Créer un plan de perçage en format PS ou HPGL" + +#: pcbnew/dialog_gendrill.cpp:216 +msgid "Drill report" +msgstr "Rapport de perçage" + +#: pcbnew/dialog_gendrill.cpp:217 +msgid "Drill Report:" +msgstr "Rapport de perçage:" + +#: pcbnew/dialog_gendrill.cpp:220 +msgid "Creates a plain text report" +msgstr "Créer un fichier rapport ascii" + +#: pcbnew/dialog_gendrill.cpp:223 +msgid "HPGL plotter Options:" +msgstr "Options de Tracé HPGL:" + +#: pcbnew/dialog_gendrill.cpp:227 +msgid "Speed (cm/s)" +msgstr "Vitesse plume ( cm/s )" + +#: pcbnew/dialog_gendrill.cpp:233 +msgid "Pen Number" +msgstr "Numéro de plume" + +#: pcbnew/dialog_gendrill.cpp:243 +msgid "mirror y axis" +msgstr "Miroir sur axe Y" + +#: pcbnew/dialog_gendrill.cpp:247 +msgid "minimal header" +msgstr "Entête minimal" + +#: pcbnew/dialog_gendrill.cpp:250 +msgid "If checked, the excellon header is minimal" +msgstr "Si activé, l'entête di fichier EXELLON est minimale" + +#: pcbnew/dialog_gendrill.cpp:256 +msgid "Info:" +msgstr "Infos:" + +#: pcbnew/dialog_gendrill.cpp:260 +msgid "Default Vias Drill:" +msgstr "Perçage vias par Défaut" + +#: pcbnew/dialog_gendrill.cpp:264 +msgid "Via Drill Value" +msgstr "Perçage des Vias" + +#: pcbnew/dialog_gendrill.cpp:267 +msgid "Micro Vias Drill:" +msgstr "Perçage Micro Via:" + +#: pcbnew/dialog_gendrill.cpp:271 +msgid "Micro Via Drill Value" +msgstr "Valeur Perçage Micro Via" + +#: pcbnew/dialog_gendrill.cpp:274 +msgid "Holes Count:" +msgstr "Nb Trous" + +#: pcbnew/dialog_gendrill.cpp:278 +msgid "Pads:" +msgstr "Pastilles:" + +#: pcbnew/dialog_gendrill.cpp:281 +msgid "Through Vias:" +msgstr "Via Traversantes:" + +#: pcbnew/dialog_gendrill.cpp:287 +msgid "Buried Vias:" +msgstr "Via Enterrées:" + #: pcbnew/specctra_export.cpp:64 msgid "Specctra DSN file:" msgstr "Fichier Specctra DSN" @@ -4535,6 +4618,106 @@ msgstr "Le composant avec valeur \"%s\" a une référence vide." msgid "Multiple components have identical reference IDs of \"%s\"." msgstr "Multiple composants ont une reference identique \"%s\"." +#: pcbnew/menubarmodedit.cpp:40 +msgid "Sizes and Widths" +msgstr "Dims. et Epaiss." + +#: pcbnew/menubarmodedit.cpp:50 +msgid "User Grid Size" +msgstr "Dim Grille utilisteur" + +#: pcbnew/dialog_non_copper_zones_properties.cpp:30 +msgid "Outlines Appearence" +msgstr "Aspect des Contours" + +#: pcbnew/dialog_non_copper_zones_properties.cpp:34 +msgid "H, V and 45 deg" +msgstr "H, V et 45 deg" + +#: pcbnew/dialog_non_copper_zones_properties.cpp:36 +msgid "Zone Edges Orient" +msgstr "Direction contours zone" + +#: pcbnew/dialog_non_copper_zones_properties.cpp:54 +msgid "Layer selection:" +msgstr "Sélection couche:" + +#: pcbnew/dialog_setup_libs.cpp:97 +msgid "from " +msgstr "De " + +#: pcbnew/dialog_setup_libs.cpp:153 +msgid "Save Cfg" +msgstr "Sauver config" + +#: pcbnew/dialog_setup_libs.cpp:159 +msgid "Files ext:" +msgstr "Ext. Fichiers" + +#: pcbnew/dialog_setup_libs.cpp:175 +msgid "Del" +msgstr "Supprimer" + +#: pcbnew/dialog_setup_libs.cpp:179 +msgid "Add" +msgstr "Ajouter" + +#: pcbnew/dialog_setup_libs.cpp:183 +msgid "Ins" +msgstr "Insérer" + +#: pcbnew/dialog_setup_libs.cpp:191 +msgid "Libraries" +msgstr "Librairies" + +#: pcbnew/dialog_setup_libs.cpp:199 +msgid "Lib Modules Dir:" +msgstr "Repertoire Lib Modules:" + +#: pcbnew/dialog_setup_libs.cpp:206 +msgid "Module Doc File:" +msgstr "Fichiers Doc des Modules" + +#: pcbnew/dialog_setup_libs.cpp:216 +msgid "Board ext: " +msgstr "Board ext: " + +#: pcbnew/dialog_setup_libs.cpp:220 +msgid "Cmp ext: " +msgstr "Cmp ext: " + +#: pcbnew/dialog_setup_libs.cpp:224 +msgid "Lib ext: " +msgstr "Lib ext: " + +#: pcbnew/dialog_setup_libs.cpp:228 +msgid "Net ext: " +msgstr "Net ext: " + +#: pcbnew/dialog_setup_libs.cpp:367 +msgid "Library files:" +msgstr "Fichiers Librairies:" + +#: pcbnew/dialog_setup_libs.cpp:392 +msgid "Library already in use" +msgstr "Librairie déjà en usage" + +#: pcbnew/gen_modules_placefile.cpp:131 +msgid "No Modules for Automated Placement" +msgstr "Pas de Module pour placement Automatisé" + +#: pcbnew/gen_modules_placefile.cpp:173 +msgid "Component side place file:" +msgstr "Fichier placement coté composant:" + +#: pcbnew/gen_modules_placefile.cpp:176 +msgid "Copper side place file:" +msgstr "Fichier placement coté cuivre:" + +#: pcbnew/gen_modules_placefile.cpp:179 +msgid "Module count" +msgstr "Nb Modules" + #: pcbnew/dialog_pad_edit.cpp:157 msgid "Pad Num :" msgstr "Num Pad :" @@ -4644,155 +4827,6 @@ msgstr "couche E.C.O.2" msgid "Draft layer" msgstr "Couche dessin" -#: pcbnew/dialog_gendrill.cpp:166 -msgid "Millimeters" -msgstr "Millimetres" - -#: pcbnew/dialog_gendrill.cpp:168 -msgid "Drill Units:" -msgstr "Unités perçage:" - -#: pcbnew/dialog_gendrill.cpp:173 -msgid "decimal format" -msgstr "Format décimal" - -#: pcbnew/dialog_gendrill.cpp:174 -msgid "suppress leading zeros" -msgstr "Suppression zeros de tête" - -#: pcbnew/dialog_gendrill.cpp:175 -msgid "suppress trailing zeros" -msgstr "Suppression zeros de fin" - -#: pcbnew/dialog_gendrill.cpp:176 -msgid "keep zeros" -msgstr "Garder les zéros" - -#: pcbnew/dialog_gendrill.cpp:177 -msgid "Zeros Format" -msgstr "Format des zéros" - -#: pcbnew/dialog_gendrill.cpp:180 -msgid "Choose EXCELLON numbers notation" -msgstr "Choisir la notation des nombres en format EXCELLON" - -#: pcbnew/dialog_gendrill.cpp:186 -msgid "Precision" -msgstr "Précision" - -#: pcbnew/dialog_gendrill.cpp:189 -msgid "Choose EXCELLON numbers precision" -msgstr "Choisir la précision des nombres en format EXCELLON" - -#: pcbnew/dialog_gendrill.cpp:193 -msgid "absolute" -msgstr "Absolu" - -#: pcbnew/dialog_gendrill.cpp:194 -msgid "auxiliary axis" -msgstr "Axe Auxiliaire" - -#: pcbnew/dialog_gendrill.cpp:195 -msgid "Drill Origin:" -msgstr "Origine des coord de percage:" - -#: pcbnew/dialog_gendrill.cpp:198 -msgid "Choose the coordinate origin: absolute or relative to the auxiliray axis" -msgstr "Choisir l'origine des coordonnées: absolue ou relative à l'axe auxiliaire" - -#: pcbnew/dialog_gendrill.cpp:205 -#: pcbnew/dialog_gendrill.cpp:215 -msgid "None" -msgstr "Aucun" - -#: pcbnew/dialog_gendrill.cpp:206 -msgid "drill sheet (HPGL)" -msgstr "Plan de perçage (HPGL)" - -#: pcbnew/dialog_gendrill.cpp:207 -msgid "drill sheet (PostScript)" -msgstr "Plan de perçage (Postscript)" - -#: pcbnew/dialog_gendrill.cpp:208 -msgid "Drill Sheet:" -msgstr "Plan de perçage:" - -#: pcbnew/dialog_gendrill.cpp:211 -msgid "Creates a drill map in PS or HPGL format" -msgstr "Créer un plan de perçage en format PS ou HPGL" - -#: pcbnew/dialog_gendrill.cpp:216 -msgid "Drill report" -msgstr "Rapport de perçage" - -#: pcbnew/dialog_gendrill.cpp:217 -msgid "Drill Report:" -msgstr "Rapport de perçage:" - -#: pcbnew/dialog_gendrill.cpp:220 -msgid "Creates a plain text report" -msgstr "Créer un fichier rapport ascii" - -#: pcbnew/dialog_gendrill.cpp:223 -msgid "HPGL plotter Options:" -msgstr "Options de Tracé HPGL:" - -#: pcbnew/dialog_gendrill.cpp:227 -msgid "Speed (cm/s)" -msgstr "Vitesse plume ( cm/s )" - -#: pcbnew/dialog_gendrill.cpp:233 -msgid "Pen Number" -msgstr "Numéro de plume" - -#: pcbnew/dialog_gendrill.cpp:243 -msgid "mirror y axis" -msgstr "Miroir sur axe Y" - -#: pcbnew/dialog_gendrill.cpp:247 -msgid "minimal header" -msgstr "Entête minimal" - -#: pcbnew/dialog_gendrill.cpp:250 -msgid "If checked, the EXCELLON header is minimal" -msgstr "Si activé, l'entête di fichier EXELLON est minimale" - -#: pcbnew/dialog_gendrill.cpp:256 -msgid "Info:" -msgstr "Infos:" - -#: pcbnew/dialog_gendrill.cpp:260 -msgid "Default Vias Drill:" -msgstr "Perçage vias par Défaut" - -#: pcbnew/dialog_gendrill.cpp:264 -msgid "Via Drill Value" -msgstr "Perçage des Vias" - -#: pcbnew/dialog_gendrill.cpp:267 -msgid "Micro Vias Drill:" -msgstr "Perçage Micro Via:" - -#: pcbnew/dialog_gendrill.cpp:271 -msgid "Micro Via Drill Value" -msgstr "Valeur Perçage Micro Via" - -#: pcbnew/dialog_gendrill.cpp:274 -msgid "Holes Count:" -msgstr "Nb Trous" - -#: pcbnew/dialog_gendrill.cpp:278 -msgid "Pads:" -msgstr "Pastilles:" - -#: pcbnew/dialog_gendrill.cpp:281 -msgid "Through Vias:" -msgstr "Via Traversantes:" - -#: pcbnew/dialog_gendrill.cpp:287 -msgid "Buried Vias:" -msgstr "Via Enterrées:" - #: pcbnew/pcbframe.cpp:280 msgid "Board modified, Save before exit ?" msgstr "Circuit Imprimé modifiée, Sauver avant de quitter ?" @@ -4873,129 +4907,22 @@ msgstr "Afficher pistes en mode plein" msgid "Normal Contrast Mode Display" msgstr "Mode d'affichage Contraste normal" -#: eeschema/affiche.cpp:22 -msgid "Name" -msgstr "Nom" +#: eeschema/backanno.cpp:135 +msgid "Load Stuff File" +msgstr "Charger Fichier d'échange" -#: eeschema/affiche.cpp:23 -msgid "FileName" -msgstr "Nom Fichier" +#: eeschema/backanno.cpp:156 +msgid "Set the Footprint Field to Visible ?" +msgstr "Rendre le Champ Module Visible" -#: eeschema/affiche.cpp:37 -msgid "Ref" -msgstr "Ref" +#: eeschema/backanno.cpp:157 +msgid "Field Display Option" +msgstr "Options d'affichage du Champ" -#: eeschema/affiche.cpp:41 -msgid "Pwr Symb" -msgstr "Symb Alim" - -#: eeschema/affiche.cpp:43 -msgid "Val" -msgstr "Val" - -#: eeschema/affiche.cpp:46 -msgid "RefLib" -msgstr "RefLib" - -#: eeschema/affiche.cpp:49 -msgid "Lib" -msgstr "Lib" - -#: eeschema/affiche.cpp:71 -msgid "PinName" -msgstr "Nom Pin" - -#: eeschema/affiche.cpp:79 -msgid "PinNum" -msgstr "Num Pin" - -#: eeschema/affiche.cpp:83 -msgid "PinType" -msgstr "Type Pin" - -#: eeschema/affiche.cpp:88 -#: eeschema/affiche.cpp:176 -msgid "no" -msgstr "non" - -#: eeschema/affiche.cpp:90 -#: eeschema/affiche.cpp:178 -msgid "yes" -msgstr "oui" - -#: eeschema/affiche.cpp:95 -msgid "Length" -msgstr "Longueur" - -#: eeschema/affiche.cpp:101 -msgid "Up" -msgstr "Haut" - -#: eeschema/affiche.cpp:104 -msgid "Down" -msgstr "Bas" - -#: eeschema/affiche.cpp:107 -msgid "Left" -msgstr "Gauche" - -#: eeschema/affiche.cpp:110 -msgid "Right" -msgstr "Droite" - -#: eeschema/affiche.cpp:168 -#: eeschema/affiche.cpp:174 -msgid "All" -msgstr "Tout" - -#: eeschema/affiche.cpp:171 -msgid "Unit" -msgstr "Unité" - -#: eeschema/affiche.cpp:181 -msgid "Convert" -msgstr "Convert" - -#: eeschema/affiche.cpp:186 -msgid "default" -msgstr "Défaut" - -#: eeschema/annotate.cpp:738 +#: eeschema/backanno.cpp:170 #, c-format -msgid "item not annotated: %s%s" -msgstr "item non numéroté: %s%s" - -#: eeschema/annotate.cpp:743 -#, c-format -msgid "( unit %d)" -msgstr "( Unité %d)" - -#: eeschema/annotate.cpp:760 -#, c-format -msgid "Error item %s%s" -msgstr "Erreur item %s%s" - -#: eeschema/annotate.cpp:763 -#, c-format -msgid " unit %d and no more than %d parts" -msgstr " unité %d et plus que %d parts" - -#: eeschema/annotate.cpp:797 -#: eeschema/annotate.cpp:820 -#, c-format -msgid "Multiple item %s%s" -msgstr "Multipleélément %s%s" - -#: eeschema/annotate.cpp:802 -#: eeschema/annotate.cpp:825 -#, c-format -msgid " (unit %d)" -msgstr " ( Unité %d)" - -#: eeschema/annotate.cpp:842 -#, c-format -msgid "Diff values for %s%d%c (%s) and %s%d%c (%s)" -msgstr "Valeurs différentes pour %s%d%c (%s) et %s%d%c (%s)" +msgid "Failed to open Stuff File <%s>" +msgstr "Ne peut pas ouvrir fichier d'échange <%s>" #: eeschema/annotate_dialog.cpp:159 msgid "Scope" @@ -5089,142 +5016,273 @@ msgstr "" "\n" "Cette opération supprimera l'annotation existante et ne peut être annulée." -#: eeschema/backanno.cpp:134 -msgid "Load Stuff File" -msgstr "Charger Fichier d'échange" - -#: eeschema/backanno.cpp:155 -msgid "Set the Footprint Field to Visible ?" -msgstr "Rendre le Champ Module Visible" - -#: eeschema/backanno.cpp:156 -msgid "Field Display Option" -msgstr "Options d'affichage du Champ" - -#: eeschema/backanno.cpp:169 +#: eeschema/getpart.cpp:106 #, c-format -msgid "Failed to open Stuff File <%s>" -msgstr "Ne peut pas ouvrir fichier d'échange <%s>" +msgid "component selection (%d items loaded):" +msgstr "Sélection Composant (%d items chargés):" -#: eeschema/build_BOM.cpp:71 -msgid "Bill of materials:" -msgstr "Liste du materiel:" +#: eeschema/getpart.cpp:171 +msgid "Failed to find part " +msgstr "Impossible de trouver le composant " -#: eeschema/build_BOM.cpp:122 -#: eeschema/build_BOM.cpp:177 -msgid "Failed to open file " -msgstr "Erreur ouverture " +#: eeschema/getpart.cpp:171 +msgid " in library" +msgstr " en librairie" -#: eeschema/build_BOM.cpp:248 +#: eeschema/annotate.cpp:738 #, c-format +msgid "item not annotated: %s%s" +msgstr "item non numéroté: %s%s" + +#: eeschema/annotate.cpp:743 +#, c-format +msgid "( unit %d)" +msgstr "( Unité %d)" + +#: eeschema/annotate.cpp:760 +#, c-format +msgid "Error item %s%s" +msgstr "Erreur item %s%s" + +#: eeschema/annotate.cpp:763 +#, c-format +msgid " unit %d and no more than %d parts" +msgstr " unité %d et plus que %d parts" + +#: eeschema/annotate.cpp:797 +#: eeschema/annotate.cpp:820 +#, c-format +msgid "Multiple item %s%s" +msgstr "Multipleélément %s%s" + +#: eeschema/annotate.cpp:802 +#: eeschema/annotate.cpp:825 +#, c-format +msgid " (unit %d)" +msgstr " ( Unité %d)" + +#: eeschema/annotate.cpp:842 +#, c-format +msgid "Diff values for %s%d%c (%s) and %s%d%c (%s)" +msgstr "Valeurs différentes pour %s%d%c (%s) et %s%d%c (%s)" + +#: eeschema/affiche.cpp:22 +msgid "Name" +msgstr "Nom" + +#: eeschema/affiche.cpp:23 +msgid "FileName" +msgstr "Nom Fichier" + +#: eeschema/affiche.cpp:37 +msgid "Ref" +msgstr "Ref" + +#: eeschema/affiche.cpp:41 +msgid "Pwr Symb" +msgstr "Symb Alim" + +#: eeschema/affiche.cpp:43 +msgid "Val" +msgstr "Val" + +#: eeschema/affiche.cpp:47 +msgid "RefLib" +msgstr "RefLib" + +#: eeschema/affiche.cpp:50 +msgid "Lib" +msgstr "Lib" + +#: eeschema/affiche.cpp:72 +msgid "PinName" +msgstr "Nom Pin" + +#: eeschema/affiche.cpp:80 +msgid "PinNum" +msgstr "Num Pin" + +#: eeschema/affiche.cpp:84 +msgid "PinType" +msgstr "Type Pin" + +#: eeschema/affiche.cpp:89 +#: eeschema/affiche.cpp:177 +msgid "no" +msgstr "non" + +#: eeschema/affiche.cpp:91 +#: eeschema/affiche.cpp:179 +msgid "yes" +msgstr "oui" + +#: eeschema/affiche.cpp:96 +msgid "Length" +msgstr "Longueur" + +#: eeschema/affiche.cpp:102 +msgid "Up" +msgstr "Haut" + +#: eeschema/affiche.cpp:105 +msgid "Down" +msgstr "Bas" + +#: eeschema/affiche.cpp:108 +msgid "Left" +msgstr "Gauche" + +#: eeschema/affiche.cpp:111 +msgid "Right" +msgstr "Droite" + +#: eeschema/affiche.cpp:169 +#: eeschema/affiche.cpp:175 +msgid "All" +msgstr "Tout" + +#: eeschema/affiche.cpp:172 +msgid "Unit" +msgstr "Unité" + +#: eeschema/affiche.cpp:182 +msgid "Convert" +msgstr "Convert" + +#: eeschema/affiche.cpp:187 +msgid "default" +msgstr "Défaut" + +#: eeschema/find.cpp:212 +msgid "Pin " +msgstr "Pin " + +#: eeschema/find.cpp:216 +msgid "Ref " +msgstr "Ref " + +#: eeschema/find.cpp:224 +msgid "Field " +msgstr "Champ " + +#: eeschema/find.cpp:234 +#: eeschema/find.cpp:238 +msgid " found" +msgstr " trouvé " + +#: eeschema/find.cpp:371 +#, c-format +msgid "Marker %d found in %s" +msgstr "Marqueur %d trouvé en %s " + +#: eeschema/find.cpp:377 +msgid "Marker Not Found" +msgstr "Marqueur non trouvé" + +#: eeschema/find.cpp:609 +msgid " Found in " +msgstr " Trouvé en " + +#: eeschema/find.cpp:621 +msgid " Not Found" +msgstr " Non trouvé" + +#: eeschema/find.cpp:653 +msgid "No libraries are loaded" +msgstr "Pas de librairies chargées" + +#: eeschema/find.cpp:680 +#: eeschema/find.cpp:745 +#: eeschema/find.cpp:761 +msgid "Found " +msgstr "Trouvé " + +#: eeschema/find.cpp:682 +#: eeschema/find.cpp:746 +#: eeschema/find.cpp:762 +msgid " in lib " +msgstr " en libr. " + +#: eeschema/find.cpp:693 +msgid " found only in cache" +msgstr "trouvé seulement en cache" + +#: eeschema/find.cpp:696 msgid "" "\n" -"#Global, Hierarchical Labels and PinSheets ( order = Sheet Number ) count = %d\n" +"Explore All Libraries?" msgstr "" "\n" -"#Labels globaux, hiérarchiques et pins de feuille ( ordre = Numéro de feuille ) nombre = %d\n" +"Explorer toutes les Librairies?" -#: eeschema/build_BOM.cpp:261 +#: eeschema/find.cpp:702 +msgid "Nothing found" +msgstr " Rien trouvé" + +#: eeschema/edit_component_in_schematic.cpp:200 +msgid "Field to edit" +msgstr "Champ à éditer" + +#: eeschema/edit_component_in_schematic.cpp:206 +msgid "Field Name:" +msgstr "Nom Champ" + +#: eeschema/edit_component_in_schematic.cpp:216 +msgid "Field Text:" +msgstr "Texte du Champ:" + +#: eeschema/edit_component_in_schematic.cpp:224 +msgid "Pos" +msgstr "Pos" + +#: eeschema/edit_component_in_schematic.cpp:331 +msgid "No Component Name!" +msgstr "Pas de nom de composant!" + +#: eeschema/edit_component_in_schematic.cpp:337 #, c-format +msgid "Component [%s] not found!" +msgstr "Composant [%s] non trouvé!" + +#: eeschema/edit_component_in_schematic.cpp:458 +msgid "No Field to move" +msgstr "Pas de champ a déplacer" + +#: eeschema/edit_component_in_schematic.cpp:521 +msgid "No Field To Edit" +msgstr "Pas de champ a éditer" + +#: eeschema/edit_component_in_schematic.cpp:535 msgid "" -"\n" -"#Global, Hierarchical Labels and PinSheets ( order = Alphab. ) count = %d\n" -"\n" +"Part is a POWER, value cannot be modified!\n" +"You must create a new power" msgstr "" -"\n" -"##Labels globaux, hiérarchiques et pins de feuille ( ordre = Alphab. ) nombre = %d\n" -"\n" +"Composant type ALIMENTATION!\n" +"valeur non modifiable, Vous devez créer un nouveau composant alimentation " -#: eeschema/build_BOM.cpp:269 -msgid "" -"\n" -"#End List\n" -msgstr "" -"\n" -"#End List\n" +#: eeschema/edit_component_in_schematic.cpp:559 +msgid "Component field text" +msgstr "Champ de Composant" -#: eeschema/build_BOM.cpp:691 -msgid "Field" -msgstr "Champ" +#: eeschema/edit_component_in_schematic.cpp:582 +msgid "Reference needed !, No change" +msgstr "Référence NECESSAIRE: changement refusé" -#: eeschema/build_BOM.cpp:699 -msgid "" -"\n" -"#Cmp ( order = Reference )" -msgstr "" -"\n" -"#Cmp ( ordre = Reference )" +#: eeschema/edit_component_in_schematic.cpp:586 +msgid "Value needed !, No change" +msgstr "Valeur NECESSAIRE: changement refusé" -#: eeschema/build_BOM.cpp:702 -#: eeschema/build_BOM.cpp:789 -msgid " (with SubCmp)" -msgstr "avec sub-composants" +#: eeschema/edit_component_in_schematic.cpp:759 +msgid "Component Reference" +msgstr "Référence du Composant" -#: eeschema/build_BOM.cpp:764 -#: eeschema/build_BOM.cpp:835 -msgid "#End Cmp\n" -msgstr "#End Cmp\n" +#: eeschema/edit_component_in_schematic.cpp:797 +msgid "Component Value" +msgstr "Valeur du Composant" -#: eeschema/build_BOM.cpp:786 -msgid "" -"\n" -"#Cmp ( order = Value )" -msgstr "" -"\n" -"#Cmp ( ordre = Valeur )" - -#: eeschema/build_BOM.cpp:869 -#, c-format -msgid "> %-28.28s %s (Sheet %s) pos: %3.3f, %3.3f\n" -msgstr "> %-28.28s %s (Feuille %s) pos: %3.3f, %3.3f\n" - -#: eeschema/build_BOM.cpp:889 -#, c-format -msgid "> %-28.28s PinSheet %-7.7s (Sheet %s) pos: %3.3f, %3.3f\n" -msgstr "> %-28.28s PinSheet %-7.7s (Feuille %s) pos: %3.3f, %3.3f\n" - -#: eeschema/build_BOM.cpp:904 -msgid "#End labels\n" -msgstr "#End labels\n" - -#: eeschema/class_drawsheet.cpp:250 -msgid "Ok to cleanup this sheet" -msgstr "Ok pour nettoyer cette feuille" - -#: eeschema/class_drawsheet.cpp:560 -#, c-format -msgid "A Sub Hierarchy named %s exists, Use it (The data in this sheet will be replaced)?" -msgstr "Une sous Hiérarchie nommée %s existe, L'utiliser (Les données de cette page seront remplacées)?" - -#: eeschema/class_drawsheet.cpp:564 -msgid "Sheet Filename Renaming Aborted" -msgstr " Renommage de Fichier de Feuille Abandonné" - -#: eeschema/class_drawsheet.cpp:572 -#, c-format -msgid "A file named %s exists, load it (otherwise keep current sheet data if possible)?" -msgstr "Un fichier %s existe, Le charger (autrement garder le contenu de la feuille active, si c'est possible) ?" - -#: eeschema/class_drawsheet.cpp:590 -msgid "This sheet uses shared data in a complex hierarchy" -msgstr "Cette feuille utilise des données partagées dans une hiérarchie complexe" - -#: eeschema/class_drawsheet.cpp:593 -msgid "Do we convert it in a simple hierarchical sheet (otherwise delete current sheet data)" -msgstr "Doit on la convertir en une feuille de hiérarchie simple (autrement supprimer les données courantes)" - -#: eeschema/class_drawsheet.cpp:752 -#, c-format -msgid "%8.8lX/" -msgstr "%8.8lX/" - -#: eeschema/component_class.cpp:72 -msgid "Sheet" -msgstr "Feuille" - -#: eeschema/component_class.cpp:313 -msgid "U" -msgstr "U" +#: eeschema/edit_component_in_schematic.cpp:837 +msgid "Component Footprint" +msgstr "Module du Composant" #: eeschema/database.cpp:70 msgid "No Component found" @@ -5239,6 +5297,11 @@ msgstr "Sélection" msgid "Sheet %s (file %s) modified. Save it?" msgstr "Feuille %s (fichier %s) modifiée. La sauver?" +#: eeschema/netform.cpp:60 +#: eeschema/netform.cpp:278 +msgid "Failed to create file " +msgstr "Impossible de créer le fichier " + #: eeschema/dialog_build_BOM.cpp:244 msgid "List items:" msgstr " Liste éléments: " @@ -5363,6 +5426,10 @@ msgstr "Fond Plein" msgid "Fill:" msgstr "Remplissage:" +#: eeschema/dialog_create_component.cpp:171 +msgid "U" +msgstr "U" + #: eeschema/dialog_create_component.cpp:183 msgid "As Convert" msgstr "A une forme \"convertie\"" @@ -5807,10 +5874,6 @@ msgstr "Ext fichier Symbole: " msgid "Schematic file Ext: " msgstr "Ext fichier Schema: " -#: eeschema/dialog_eeschema_config.cpp:368 -msgid "Library files:" -msgstr "Fichiers Librairies:" - #: eeschema/dialog_eeschema_config.cpp:470 msgid " Default Path for libraries" msgstr "Chemin par défaut des librairies" @@ -5966,276 +6029,145 @@ msgstr "Epaiss. ligne par défaut" msgid "Default Label Size" msgstr "Taille Label par défaut:" -#: eeschema/menubar.cpp:41 -msgid "&New" -msgstr "&Nouveau" +#: eeschema/tool_sch.cpp:39 +msgid "New schematic project" +msgstr "Nouveau Projet schématique" -#: eeschema/menubar.cpp:42 -msgid "New schematic" -msgstr "Nouvelle schématique" - -#: eeschema/menubar.cpp:47 -msgid "&Open" -msgstr "&Ouvrir " - -#: eeschema/menubar.cpp:48 -msgid "Open a schematic" +#: eeschema/tool_sch.cpp:42 +msgid "Open schematic project" msgstr "Ouvrir un Projet schématique" -#: eeschema/menubar.cpp:54 -msgid "&Save" -msgstr "&Sauver" - -#: eeschema/menubar.cpp:55 +#: eeschema/tool_sch.cpp:45 msgid "Save schematic project" msgstr "Sauver le Projet schématique" -#: eeschema/menubar.cpp:61 -msgid "Save &Current sheet" -msgstr "Sauver &Feuille active" +#: eeschema/tool_sch.cpp:49 +msgid "Page settings" +msgstr "Ajustage opt Page" -#: eeschema/menubar.cpp:62 -msgid "Save current sheet only" -msgstr "Sauver la feuille active uniquement" +#: eeschema/tool_sch.cpp:53 +msgid "Library editor" +msgstr "Editeur de librairies" -#: eeschema/menubar.cpp:67 -msgid "Save Current sheet &as.." -msgstr "Sauver la feuille &active sous.." +#: eeschema/tool_sch.cpp:56 +msgid "Library browser" +msgstr "Visualisateur des librairies" -#: eeschema/menubar.cpp:68 -msgid "Save current sheet as.." -msgstr "Sauver la feuille active sous un autre nom" +#: eeschema/tool_sch.cpp:60 +msgid "Schematic hierarchy navigator" +msgstr "Navigation dans la hierarchie" -#: eeschema/menubar.cpp:82 -msgid "Plot PostScript" -msgstr "Tracé Postscript" +#: eeschema/tool_sch.cpp:82 +msgid "Print schematic" +msgstr "Impression des feuilles de schéma" -#: eeschema/menubar.cpp:82 -msgid "Plotting in PostScript format" -msgstr "Générer un tracé en format Postscript" +#: eeschema/tool_sch.cpp:86 +msgid "Run Cvpcb" +msgstr "Appel de CvPcb (Gestion des associations composants/module)" -#: eeschema/menubar.cpp:87 -msgid "Plot HPGL" -msgstr "Tracé HPGL" +#: eeschema/tool_sch.cpp:89 +msgid "Run pcbnew" +msgstr "Appel de Pcbnew" -#: eeschema/menubar.cpp:87 -msgid "Plotting in HPGL format" -msgstr "Générer un tracé en format HPGL" +#: eeschema/tool_sch.cpp:113 +msgid "Netlist generation" +msgstr "Génération de la netliste" -#: eeschema/menubar.cpp:92 -msgid "Plot SVG" -msgstr "Tracé SVG" +#: eeschema/tool_sch.cpp:116 +msgid "Schematic Annotation" +msgstr "Annotation des composants" -#: eeschema/menubar.cpp:92 -msgid "Plotting in SVG format" -msgstr "Générer un tracé en format SVG" +#: eeschema/tool_sch.cpp:119 +msgid "Schematic Electric Rules Check" +msgstr "Controle des regles électriques" -#: eeschema/menubar.cpp:99 -msgid "Plot to Clipboard" -msgstr "Tracé dans Presse papier" +#: eeschema/tool_sch.cpp:122 +msgid "Bill of material and/or Crossreferences" +msgstr "Liste des composants et références croisées" -#: eeschema/menubar.cpp:99 -msgid "Export drawings to clipboard" -msgstr " Export du dessin dans le presse-papier" +#: eeschema/tool_sch.cpp:125 +msgid "BackAnnotate Footprint" +msgstr "Rétroannotation Module" -#: eeschema/menubar.cpp:106 -msgid "Plot HPGL, PostScript, SVG" -msgstr "Tracer en format HPGL, POSTSCRIPT ou SVG" +#: eeschema/tool_sch.cpp:151 +msgid "Hierarchy Push/Pop" +msgstr "Navigation dans la hierarchie" -#: eeschema/menubar.cpp:109 -msgid "Quit Eeschema" -msgstr "Quitter Eeschema" - -#: eeschema/menubar.cpp:127 -msgid "&Undo\t" -msgstr "&Undo\t" - -#: eeschema/menubar.cpp:135 -msgid "&Redo\t" -msgstr "&Redo\t" - -#: eeschema/menubar.cpp:154 -msgid "Find" -msgstr "Chercher" - -#: eeschema/menubar.cpp:162 -msgid "BackAnno" -msgstr "Rétro Annotation" - -#: eeschema/menubar.cpp:162 -msgid "Back Annotated Footprint Fields" -msgstr "Rétroannotation des Champs Modules" - -#: eeschema/menubar.cpp:169 -#: eeschema/menubar.cpp:172 -msgid "Zoom in" -msgstr "Zoom +" - -#: eeschema/menubar.cpp:177 -#: eeschema/menubar.cpp:180 -msgid "Zoom out" -msgstr "Zoom -" - -#: eeschema/menubar.cpp:186 -#: eeschema/menubar.cpp:196 -msgid "Zoom auto" -msgstr "Zoom Automatique" - -#: eeschema/menubar.cpp:206 -msgid "&Component" -msgstr "&Composant" - -#: eeschema/menubar.cpp:206 +#: eeschema/tool_sch.cpp:156 msgid "Place the component" msgstr "Placer le Composant" -#: eeschema/menubar.cpp:212 -msgid "&Power port" -msgstr "Power Symbole" - -#: eeschema/menubar.cpp:212 +#: eeschema/tool_sch.cpp:160 msgid "Place the power port" msgstr "Placer le Symbole Power" -#: eeschema/menubar.cpp:218 -msgid "&Wire" -msgstr "&Fil" - -#: eeschema/menubar.cpp:218 +#: eeschema/tool_sch.cpp:165 msgid "Place the wire" msgstr "Place fil" -#: eeschema/menubar.cpp:226 -msgid "&Bus" -msgstr "&Bus" +#: eeschema/tool_sch.cpp:169 +msgid "Place the bus" +msgstr "Placer le Bus" -#: eeschema/menubar.cpp:227 -msgid "Place a bus" -msgstr "Placer un Bus" +#: eeschema/tool_sch.cpp:173 +msgid "Place the wire to bus entry" +msgstr "Placer des entrées de bus (type fil vers bus)" -#: eeschema/menubar.cpp:236 -msgid "W&ire to bus entry" -msgstr "Entrées de bus (type fil vers bus)" +#: eeschema/tool_sch.cpp:177 +msgid "Place the bus to bus entry" +msgstr "Placer des entrées de bus (type bus vers bus)" -#: eeschema/menubar.cpp:237 -msgid "Place a wire to bus entry" -msgstr "Placer une Entrée de Bus (type fil vers bus)" +#: eeschema/tool_sch.cpp:182 +msgid "Place the no connect flag" +msgstr "Placer le symbole de non connexion" -#: eeschema/menubar.cpp:246 -msgid "B&us to bus entry" -msgstr "Entrées de bus (type bus vers bus)" +#: eeschema/tool_sch.cpp:186 +msgid "Place the net name" +msgstr "Placer le nom de net" -#: eeschema/menubar.cpp:247 -msgid "Place a bus to bus entry" -msgstr "Placer une Entrée de Bus (type bus vers bus)" +#: eeschema/tool_sch.cpp:190 +msgid "" +"Place the global label.\n" +"Warning: all global labels with the same name are connected in whole hierarchy" +msgstr "" +"Placer le label global.\n" +"Attention: tous les labels globaux de même nom sont connecté dans toute la hiérarchie" -#: eeschema/menubar.cpp:256 -msgid "No connect flag" -msgstr "Symbole de Non Connexion" +#: eeschema/tool_sch.cpp:195 +msgid "Place the junction" +msgstr "Placer la Jonction" -#: eeschema/menubar.cpp:257 -msgid "Place a no connect flag" -msgstr "Placer un Symbole de Non Connexion" +#: eeschema/tool_sch.cpp:200 +msgid "Place the hierarchical label. This label will be seen as a pin sheet in the sheet symbol" +msgstr "Placer le label hiérachique. Ce label sera vu comme une pin dans la feuille mère symbole" -#: eeschema/menubar.cpp:266 -msgid "Net name" -msgstr "Net Name" +#: eeschema/tool_sch.cpp:205 +msgid "Place the hierarchical sheet" +msgstr "Placer la Feuille Hiérachique" -#: eeschema/menubar.cpp:267 -msgid "Place a net name" -msgstr "Placer un Nom de Net" +#: eeschema/tool_sch.cpp:209 +msgid "Place the pin sheet (imported hierarchical label from sheet)" +msgstr "Placer la pin hiérarchique ( Importer un label hiérarchique vers la feuille)" -#: eeschema/menubar.cpp:274 -msgid "Global label" -msgstr "Label Global" +#: eeschema/tool_sch.cpp:214 +msgid "Place the hierachical pin to sheet" +msgstr "Place une pin de hierarchie dans la feuille" -#: eeschema/menubar.cpp:275 -msgid "Place a global label. Warning: all global labels with the same name are connected in whole hierarchy" -msgstr "Placer un label global. Attention: tous les labels globaux avec le même nom sont connectés dans toute la hierarchie" +#: eeschema/tool_sch.cpp:219 +msgid "Place the graphic line or polygon" +msgstr "Placer la ligne ou le polygones graphique" -#: eeschema/menubar.cpp:284 -msgid "Junction" -msgstr "Jonction" - -#: eeschema/menubar.cpp:285 -msgid "Place a junction" -msgstr "Placer une Jonction" - -#: eeschema/menubar.cpp:296 -msgid "Hierarchical label" -msgstr "Label Hiérarchique" - -#: eeschema/menubar.cpp:297 -msgid "Place a hierarchical label. This label will be seen as a pin sheet in the sheet symbol" -msgstr "Placer un label hiérachique. Ce label sera vu comme une pin dans la feuille mère symbole" - -#: eeschema/menubar.cpp:306 -msgid "Hierarchical sheet" -msgstr "Feuille Hiérrachique" - -#: eeschema/menubar.cpp:307 -msgid "Create a hierarchical sheet" -msgstr "Créer une Feuille Hiérachique" - -#: eeschema/menubar.cpp:316 -msgid "Import Hierarchical Label" -msgstr "Importer Label Hiérarchique" - -#: eeschema/menubar.cpp:317 -msgid "Place a pin sheet created by importing a hierarchical label from sheet" -msgstr "Placer une pin hiérarchique créée par importation d'un label hiérarchique de la feuille" - -#: eeschema/menubar.cpp:326 -msgid "Add Hierarchical Pin to Sheet" -msgstr "Ajouter Pins de Hierarchie dans feuille" - -#: eeschema/menubar.cpp:327 -msgid "Place a hierarchical pin to sheet" -msgstr "Addition de pins de hierarchie dans les feuilles symboles de hierarchie" - -#: eeschema/menubar.cpp:338 -msgid "Graphic line or poligon" -msgstr "Ligne ou polygone graphique" - -#: eeschema/menubar.cpp:339 -msgid "Place the graphic line or poligon" -msgstr "Placer des lignes ou polygones graphiques" - -#: eeschema/menubar.cpp:348 -msgid "Graphic text (comment)" -msgstr "Ttextes graphiques (commentaires)" - -#: eeschema/menubar.cpp:349 +#: eeschema/tool_sch.cpp:223 msgid "Place the graphic text (comment)" msgstr "Placer le textes graphique (commentaire)" -#: eeschema/menubar.cpp:365 -msgid "Setting colors..." -msgstr "Choisir les couleurs d'affichage..." +#: eeschema/tool_sch.cpp:267 +msgid "Show Hidden Pins" +msgstr "Force affichage des pins invisibles" -#: eeschema/menubar.cpp:371 -msgid "&Options" -msgstr "&Options" - -#: eeschema/menubar.cpp:372 -msgid "Select general options..." -msgstr "Sélection options générales..." - -#: eeschema/menubar.cpp:397 -msgid "Open the eeschema manual" -msgstr "Ouvrir la documentation de eeschema" - -#: eeschema/menubar.cpp:408 -msgid "&Edit" -msgstr "&Editer" - -#: eeschema/menubar.cpp:409 -msgid "&View" -msgstr "&Voir" - -#: eeschema/menubar.cpp:410 -msgid "&Place" -msgstr "&Placer" +#: eeschema/tool_sch.cpp:272 +msgid "HV orientation for Wires and Bus" +msgstr "Force direction H, V et X pour les fils et bus" #: eeschema/libfield.cpp:206 msgid "Edit field" @@ -6261,9 +6193,33 @@ msgstr "Pin de Feuille de Hiérarchie" msgid "No New Hierarchal Label found" msgstr "Pas de nouvea Label Hiérarchique trouvé" -#: eeschema/viewlib_frame.cpp:53 -msgid "Library browser" -msgstr "Visualisateur des librairies" +#: eeschema/selpart.cpp:44 +msgid "Select Lib" +msgstr "Sélection librairie" + +#: eeschema/selpart.cpp:94 +#, c-format +msgid "Select component (%d items)" +msgstr "Selection composant (%d items)" + +#: eeschema/viewlibs.cpp:123 +msgid "none selected" +msgstr "Pas de sélection" + +#: eeschema/viewlibs.cpp:312 +#, c-format +msgid "Current Part: <%s> (is Alias of <%s>)" +msgstr "Cmp courant: <%s> (est Alias de <%s>)" + +#: eeschema/viewlibs.cpp:318 +#, c-format +msgid "Error: Root Part <%s> not found" +msgstr "Erreur: Root Part <%s> non trouvé" + +#: eeschema/viewlibs.cpp:337 +#, c-format +msgid "Current Part: <%s>" +msgstr "Cmp Courant: <%s>" #: eeschema/edit_label.cpp:49 msgid "Empty Text!" @@ -6294,30 +6250,9 @@ msgstr "Couleur du Fond:" msgid "Arc %.1f deg" msgstr "Arc %.1f deg" -#: eeschema/eelibs_read_libraryfiles.cpp:115 -msgid "Start loading schematic libs" -msgstr "Demarre chargement des librairies schématiques" - -#: eeschema/eelibs_read_libraryfiles.cpp:302 -#: eeschema/eelibs_read_libraryfiles.cpp:309 -msgid "File <" -msgstr "Fichier <" - -#: eeschema/eelibs_read_libraryfiles.cpp:302 -msgid "> is empty!" -msgstr "> est vide" - -#: eeschema/eelibs_read_libraryfiles.cpp:309 -msgid "> is NOT EESCHEMA library!" -msgstr "> nest PAS une librairie EESCHEMA !" - -#: eeschema/eelibs_read_libraryfiles.cpp:328 -msgid "Library <" -msgstr "Librairie <" - -#: eeschema/eelibs_read_libraryfiles.cpp:328 -msgid "> header read error" -msgstr "> erreur lecture entête" +#: eeschema/eeredraw.cpp:130 +msgid "Sheet" +msgstr "Feuille" #: eeschema/eeschema.cpp:54 msgid "Eeschema is already running, Continue?" @@ -6403,105 +6338,21 @@ msgstr "" "\n" " >> Erreurs ERC: %d\n" -#: eeschema/files-io.cpp:72 -msgid "Clear Schematic Hierarchy (modified!)?" -msgstr "Effacer la hiérarchie schématique (modifiée!)?" +#: eeschema/symbtext.cpp:133 +msgid " Text : " +msgstr " Texte : " -#: eeschema/files-io.cpp:82 -msgid "Schematic files:" -msgstr "Fichiers schématiques:" +#: eeschema/symbtext.cpp:143 +msgid "Component name:" +msgstr "Nom du Composant:" -#: eeschema/files-io.cpp:133 -msgid "" -"Ready\n" -"Working dir: \n" -msgstr "" -"Pret\n" -"Répertoire de travail: \n" +#: eeschema/symbtext.cpp:152 +msgid "Size:" +msgstr "Taille:" -#: eeschema/files-io.cpp:181 -#, c-format -msgid "File %s not found (new project ?)" -msgstr " fichier %s non trouvé (nouveau projet ?)" - -#: eeschema/find.cpp:212 -msgid "Pin " -msgstr "Pin " - -#: eeschema/find.cpp:216 -msgid "Ref " -msgstr "Ref " - -#: eeschema/find.cpp:224 -msgid "Field " -msgstr "Champ " - -#: eeschema/find.cpp:234 -#: eeschema/find.cpp:238 -msgid " found" -msgstr " trouvé " - -#: eeschema/find.cpp:371 -#, c-format -msgid "Marker %d found in %s" -msgstr "Marqueur %d trouvé en %s " - -#: eeschema/find.cpp:377 -msgid "Marker Not Found" -msgstr "Marqueur non trouvé" - -#: eeschema/find.cpp:609 -msgid " Found in " -msgstr " Trouvé en " - -#: eeschema/find.cpp:621 -msgid " Not Found" -msgstr " Non trouvé" - -#: eeschema/find.cpp:653 -msgid "No libraries are loaded" -msgstr "Pas de librairies chargées" - -#: eeschema/find.cpp:680 -#: eeschema/find.cpp:745 -#: eeschema/find.cpp:761 -msgid "Found " -msgstr "Trouvé " - -#: eeschema/find.cpp:682 -#: eeschema/find.cpp:746 -#: eeschema/find.cpp:762 -msgid " in lib " -msgstr " en libr. " - -#: eeschema/find.cpp:693 -msgid " found only in cache" -msgstr "trouvé seulement en cache" - -#: eeschema/find.cpp:696 -msgid "" -"\n" -"Explore All Libraries?" -msgstr "" -"\n" -"Explorer toutes les Librairies?" - -#: eeschema/find.cpp:702 -msgid "Nothing found" -msgstr " Rien trouvé" - -#: eeschema/getpart.cpp:106 -#, c-format -msgid "component selection (%d items loaded):" -msgstr "Sélection Composant (%d items chargés):" - -#: eeschema/getpart.cpp:171 -msgid "Failed to find part " -msgstr "Impossible de trouver le composant " - -#: eeschema/getpart.cpp:171 -msgid " in library" -msgstr " en librairie" +#: eeschema/symbtext.cpp:158 +msgid " Text Options : " +msgstr "Options du Texte: " #: eeschema/hierarch.cpp:122 msgid "Navigator" @@ -6527,111 +6378,6 @@ msgstr "Impossible de créer le fichier librairie archive " msgid "Failed to create doc lib file " msgstr "Impossible de créer le fichier lib document" -#: eeschema/libedit.cpp:38 -msgid " Part: " -msgstr "Composant " - -#: eeschema/libedit.cpp:52 -msgid " Convert" -msgstr " Convert" - -#: eeschema/libedit.cpp:53 -msgid " Normal" -msgstr " Normal" - -#: eeschema/libedit.cpp:56 -msgid " (Power Symbol)" -msgstr " (Symbole Alimentation)" - -#: eeschema/libedit.cpp:90 -msgid "" -"Current Part not saved.\n" -"Continue?" -msgstr "" -"Composant courant non sauvé.\n" -"Continuer ?" - -#: eeschema/libedit.cpp:112 -#: eeschema/libedit.cpp:388 -msgid "Component \"" -msgstr "Composant \"" - -#: eeschema/libedit.cpp:112 -msgid "\" not found." -msgstr "\" non trouvé" - -#: eeschema/libedit.cpp:233 -msgid "Modify Library File \"" -msgstr "Ok pour modifier le fichier Librairie \"" - -#: eeschema/libedit.cpp:233 -msgid "\"?" -msgstr "\"?" - -#: eeschema/libedit.cpp:242 -msgid "Error while saving Library File \"" -msgstr "Erreur en sauvant le fichier Librairie \"" - -#: eeschema/libedit.cpp:242 -#: eeschema/libedit.cpp:389 -msgid "\"." -msgstr "\"." - -#: eeschema/libedit.cpp:248 -msgid "Library File \"" -msgstr "Fichier Librairie \"" - -#: eeschema/libedit.cpp:250 -msgid "Document File \"" -msgstr "Fichier de Doc \"" - -#: eeschema/libedit.cpp:303 -msgid "No Active Library" -msgstr "Pas de Librairie Active" - -#: eeschema/libedit.cpp:319 -#, c-format -msgid "Select Component (%d items)" -msgstr "Selection composant (%d items)" - -#: eeschema/libedit.cpp:342 -msgid "Component not found" -msgstr "Composant non trouvé" - -#: eeschema/libedit.cpp:346 -msgid "Delete component \"" -msgstr "Suppression Composant \"" - -#: eeschema/libedit.cpp:347 -msgid "\" from library \"" -msgstr "\" de la librairie \"" - -#: eeschema/libedit.cpp:371 -msgid "Clear old component from screen (changes will be lost)?" -msgstr "Supprimer l'ancien composant de l'écran (les changements seront perdus)?" - -#: eeschema/libedit.cpp:389 -msgid "\" exists in library \"" -msgstr "\" existe en librairie \"" - -#: eeschema/libedit.cpp:556 -msgid "No component to Save." -msgstr "Pas de composant à sauver" - -#: eeschema/libedit.cpp:563 -msgid "No Library specified." -msgstr "Pas de Librairie spécifiée." - -#: eeschema/libedit.cpp:574 -#, c-format -msgid "Component \"%s\" exists. Change it?" -msgstr "Le composant \" %s\" existe, Le changer ?" - -#: eeschema/libedit.cpp:613 -#, c-format -msgid "Component %s saved in %s" -msgstr "Composant %s sauvé en %s" - #: eeschema/libedit_onrightclick.cpp:77 msgid "Move Arc " msgstr "Déplacer arc" @@ -6857,30 +6603,87 @@ msgstr "" msgid "Error while create " msgstr "Erreur en création de " -#: eeschema/load_one_schematic_file.cpp:104 -msgid "Failed to open " +#: eeschema/build_BOM.cpp:71 +msgid "Bill of materials:" +msgstr "Liste du materiel:" + +#: eeschema/build_BOM.cpp:122 +#: eeschema/build_BOM.cpp:177 +msgid "Failed to open file " msgstr "Erreur ouverture " -#: eeschema/load_one_schematic_file.cpp:109 -msgid "Loading " -msgstr "Chargement " +#: eeschema/build_BOM.cpp:248 +#, c-format +msgid "" +"\n" +"#Global, Hierarchical Labels and PinSheets ( order = Sheet Number ) count = %d\n" +msgstr "" +"\n" +"#Labels globaux, hiérarchiques et pins de feuille ( ordre = Numéro de feuille ) nombre = %d\n" -#: eeschema/load_one_schematic_file.cpp:116 -#: eeschema/load_one_schematic_file.cpp:141 -msgid " is NOT an EESchema file!" -msgstr " n'est PAS un fichier EESchema!" +#: eeschema/build_BOM.cpp:261 +#, c-format +msgid "" +"\n" +"#Global, Hierarchical Labels and PinSheets ( order = Alphab. ) count = %d\n" +"\n" +msgstr "" +"\n" +"##Labels globaux, hiérarchiques et pins de feuille ( ordre = Alphab. ) nombre = %d\n" +"\n" -#: eeschema/load_one_schematic_file.cpp:126 -msgid " was created by a more recent version of EESchema and may not load correctly. Please consider updating!" -msgstr " a été créé par une version plus récente de Eeschema et peut ne pas être chargé correctement. SVP mettez a jour Eeschema!" +#: eeschema/build_BOM.cpp:269 +msgid "" +"\n" +"#End List\n" +msgstr "" +"\n" +"#End List\n" -#: eeschema/load_one_schematic_file.cpp:133 -msgid " was created by an older version of EESchema. It will be stored in the new file format when you save this file again." -msgstr " a été créé par une version plus ancienne de Eeschema. Il sera enregistré au nouveau format après la prochaine sauvegarde." +#: eeschema/build_BOM.cpp:694 +#: eeschema/component_class.cpp:119 +msgid "Field" +msgstr "Champ" -#: eeschema/load_one_schematic_file.cpp:484 -msgid "Done Loading " -msgstr "Chargement terminé" +#: eeschema/build_BOM.cpp:702 +msgid "" +"\n" +"#Cmp ( order = Reference )" +msgstr "" +"\n" +"#Cmp ( ordre = Reference )" + +#: eeschema/build_BOM.cpp:705 +#: eeschema/build_BOM.cpp:792 +msgid " (with SubCmp)" +msgstr "avec sub-composants" + +#: eeschema/build_BOM.cpp:767 +#: eeschema/build_BOM.cpp:838 +msgid "#End Cmp\n" +msgstr "#End Cmp\n" + +#: eeschema/build_BOM.cpp:789 +msgid "" +"\n" +"#Cmp ( order = Value )" +msgstr "" +"\n" +"#Cmp ( ordre = Valeur )" + +#: eeschema/build_BOM.cpp:872 +#, c-format +msgid "> %-28.28s %s (Sheet %s) pos: %3.3f, %3.3f\n" +msgstr "> %-28.28s %s (Feuille %s) pos: %3.3f, %3.3f\n" + +#: eeschema/build_BOM.cpp:892 +#, c-format +msgid "> %-28.28s PinSheet %-7.7s (Sheet %s) pos: %3.3f, %3.3f\n" +msgstr "> %-28.28s PinSheet %-7.7s (Feuille %s) pos: %3.3f, %3.3f\n" + +#: eeschema/build_BOM.cpp:907 +msgid "#End labels\n" +msgstr "#End labels\n" #: eeschema/plothpgl.cpp:222 msgid "Sheet Size" @@ -7061,6 +6864,827 @@ msgstr "Erreur. Vous devez entre une ligne de commande" msgid "Error. You must provide a Title" msgstr "Erreur. Vous devez entre un titre" +#: eeschema/component_class.cpp:111 +msgid "Datasheet" +msgstr "Documentation" + +#: eeschema/pinedit.cpp:22 +msgid "line" +msgstr "Ligne" + +#: eeschema/pinedit.cpp:22 +msgid "invert" +msgstr "invert" + +#: eeschema/pinedit.cpp:22 +msgid "clock" +msgstr "clock" + +#: eeschema/pinedit.cpp:22 +msgid "clock inv" +msgstr "clock inv" + +#: eeschema/pinedit.cpp:23 +msgid "low in" +msgstr "low in" + +#: eeschema/pinedit.cpp:23 +msgid "low clock" +msgstr "low clock" + +#: eeschema/pinedit.cpp:23 +msgid "low out" +msgstr "low out" + +#: eeschema/pinedit.cpp:216 +msgid "Occupied by other pin. Continue?" +msgstr "Occupé une autre pin, Continuer ?" + +#: eeschema/pinedit.cpp:1004 +#, c-format +msgid "Duplicate Pin %4.4s (Pin %s loc %d, %d, and Pin %s loc %d, %d)" +msgstr "Pin dupliquée %4.4s (Pin %s loc %d, %d, etPin %s loc %d, %d)" + +#: eeschema/pinedit.cpp:1010 +#, c-format +msgid " Part %d" +msgstr "Composant %d" + +#: eeschema/pinedit.cpp:1016 +msgid " Convert" +msgstr " Convert" + +#: eeschema/pinedit.cpp:1018 +msgid " Normal" +msgstr " Normal" + +#: eeschema/plotps.cpp:198 +msgid "Plot Options:" +msgstr "Options de Tracé:" + +#: eeschema/plotps.cpp:203 +msgid "B/W" +msgstr "N/B" + +#: eeschema/plotps.cpp:204 +msgid "Color" +msgstr "Couleur" + +#: eeschema/plotps.cpp:205 +msgid "Plot Color:" +msgstr "Tracé et Couleurs:" + +#: eeschema/plotps.cpp:209 +msgid "Print Sheet Ref" +msgstr "Imprimer cartouche" + +#: eeschema/plotps.cpp:234 +msgid "Messages :" +msgstr "Messages :" + +#: eeschema/plotps.cpp:440 +#, c-format +msgid "Plot: %s\n" +msgstr "Trace: %s\n" + +#: eeschema/save_schemas.cpp:61 +msgid "Schematic files:" +msgstr "Fichiers schématiques:" + +#: eeschema/save_schemas.cpp:96 +msgid "File write operation failed." +msgstr "Erreur sur écriture sur fichier." + +#: eeschema/schedit.cpp:181 +msgid "Push/Pop Hierarchy" +msgstr "Naviger dans Hiérarchie" + +#: eeschema/schedit.cpp:185 +msgid "Add NoConnect Flag" +msgstr "Ajoutde symboles de non connexion" + +#: eeschema/schedit.cpp:193 +msgid "Add Bus" +msgstr "Addition de Bus" + +#: eeschema/schedit.cpp:201 +msgid "Add Junction" +msgstr "Ajout jonctions" + +#: eeschema/schedit.cpp:205 +msgid "Add Label" +msgstr "Ajout Label" + +#: eeschema/schedit.cpp:209 +msgid "Add Global label" +msgstr "Ajout de labels globaux" + +#: eeschema/schedit.cpp:213 +msgid "Add Hierarchal label" +msgstr "Ajouter Label Hiérarchique" + +#: eeschema/schedit.cpp:221 +msgid "Add Wire to Bus Entry" +msgstr "Addition d'entrées de bus (type fil vers bus)" + +#: eeschema/schedit.cpp:225 +msgid "Add Bus to Bus entry" +msgstr "Addition d'entrées de bus (type bus vers bus)" + +#: eeschema/schedit.cpp:229 +msgid "Add Sheet" +msgstr "Ajout de Feuille" + +#: eeschema/schedit.cpp:233 +msgid "Add PinSheet" +msgstr "Ajout Conn. hiérar." + +#: eeschema/schedit.cpp:237 +msgid "Import PinSheet" +msgstr "Importer Connecteur de hiérarchie" + +#: eeschema/schedit.cpp:245 +msgid "Add Power" +msgstr "Add Alims" + +#: eeschema/sheet.cpp:162 +msgid "Filename:" +msgstr "Nom Fichier:" + +#: eeschema/sheet.cpp:168 +msgid "Sheetname:" +msgstr "Nom feuille" + +#: eeschema/sheet.cpp:266 +msgid "No Filename! Aborted" +msgstr "Pas de Nom de Fichier! Abandon" + +#: eeschema/sheet.cpp:281 +msgid "Changing a Filename can change all the schematic structure and cannot be undone" +msgstr "Cette opération changera l'annotation actuelle et ne pourra être annulée." + +#: eeschema/sheet.cpp:283 +msgid "Ok to continue renaming?" +msgstr "Ok pour continuer le changement de nom?" + +#: eeschema/symbedit.cpp:52 +msgid "Import symbol drawings:" +msgstr "Importer les symboles:" + +#: eeschema/symbedit.cpp:74 +#, c-format +msgid "Failed to open Symbol File <%s>" +msgstr "Ne peut pas ouvrir fichier <%s>" + +#: eeschema/symbedit.cpp:87 +msgid "Warning: more than 1 part in Symbol File" +msgstr "Warning: plus de 1élément dans le fichier symbole" + +#: eeschema/symbedit.cpp:92 +msgid "Symbol File is void" +msgstr "Fichier Symbole vide" + +#: eeschema/symbedit.cpp:150 +msgid "Export symbol drawings:" +msgstr "Exporter le symbole" + +#: eeschema/symbedit.cpp:170 +#, c-format +msgid "Save Symbol in [%s]" +msgstr "Symbole sauvé en [%s]" + +#: eeschema/libedit.cpp:38 +msgid " Part: " +msgstr "Composant " + +#: eeschema/libedit.cpp:52 +msgid " Convert" +msgstr " Convert" + +#: eeschema/libedit.cpp:53 +msgid " Normal" +msgstr " Normal" + +#: eeschema/libedit.cpp:56 +msgid " (Power Symbol)" +msgstr " (Symbole Alimentation)" + +#: eeschema/libedit.cpp:90 +msgid "" +"Current Part not saved.\n" +"Continue?" +msgstr "" +"Composant courant non sauvé.\n" +"Continuer ?" + +#: eeschema/libedit.cpp:112 +#: eeschema/libedit.cpp:388 +msgid "Component \"" +msgstr "Composant \"" + +#: eeschema/libedit.cpp:112 +msgid "\" not found." +msgstr "\" non trouvé" + +#: eeschema/libedit.cpp:233 +msgid "Modify Library File \"" +msgstr "Ok pour modifier le fichier Librairie \"" + +#: eeschema/libedit.cpp:233 +msgid "\"?" +msgstr "\"?" + +#: eeschema/libedit.cpp:242 +msgid "Error while saving Library File \"" +msgstr "Erreur en sauvant le fichier Librairie \"" + +#: eeschema/libedit.cpp:242 +#: eeschema/libedit.cpp:389 +msgid "\"." +msgstr "\"." + +#: eeschema/libedit.cpp:248 +msgid "Library File \"" +msgstr "Fichier Librairie \"" + +#: eeschema/libedit.cpp:250 +msgid "Document File \"" +msgstr "Fichier de Doc \"" + +#: eeschema/libedit.cpp:303 +msgid "No Active Library" +msgstr "Pas de Librairie Active" + +#: eeschema/libedit.cpp:319 +#, c-format +msgid "Select Component (%d items)" +msgstr "Selection composant (%d items)" + +#: eeschema/libedit.cpp:342 +msgid "Component not found" +msgstr "Composant non trouvé" + +#: eeschema/libedit.cpp:346 +msgid "Delete component \"" +msgstr "Suppression Composant \"" + +#: eeschema/libedit.cpp:347 +msgid "\" from library \"" +msgstr "\" de la librairie \"" + +#: eeschema/libedit.cpp:371 +msgid "Clear old component from screen (changes will be lost)?" +msgstr "Supprimer l'ancien composant de l'écran (les changements seront perdus)?" + +#: eeschema/libedit.cpp:389 +msgid "\" exists in library \"" +msgstr "\" existe en librairie \"" + +#: eeschema/libedit.cpp:556 +msgid "No component to Save." +msgstr "Pas de composant à sauver" + +#: eeschema/libedit.cpp:563 +msgid "No Library specified." +msgstr "Pas de Librairie spécifiée." + +#: eeschema/libedit.cpp:574 +#, c-format +msgid "Component \"%s\" exists. Change it?" +msgstr "Le composant \" %s\" existe, Le changer ?" + +#: eeschema/libedit.cpp:613 +#, c-format +msgid "Component %s saved in %s" +msgstr "Composant %s sauvé en %s" + +#: eeschema/tool_lib.cpp:45 +msgid "deselect current tool" +msgstr "Désélection outil courant" + +#: eeschema/tool_lib.cpp:51 +msgid "Add Pins" +msgstr "Addition de \"pins\"" + +#: eeschema/tool_lib.cpp:55 +msgid "Add graphic text" +msgstr "Addition de textes graphiques (commentaires)" + +#: eeschema/tool_lib.cpp:59 +msgid "Add rectangles" +msgstr "Addition de rectangles" + +#: eeschema/tool_lib.cpp:63 +msgid "Add circles" +msgstr "Addition de cercles" + +#: eeschema/tool_lib.cpp:67 +msgid "Add arcs" +msgstr "Addition d'arc" + +#: eeschema/tool_lib.cpp:71 +msgid "Add lines and polygons" +msgstr "Addition de lignes ou polygones graphiques" + +#: eeschema/tool_lib.cpp:76 +msgid "Move part anchor" +msgstr "Positionner l'ancre du composant" + +#: eeschema/tool_lib.cpp:81 +msgid "Import existing drawings" +msgstr "Importer des dessins existants" + +#: eeschema/tool_lib.cpp:85 +msgid "Export current drawing" +msgstr "Exporter le dessin en cours" + +#: eeschema/tool_lib.cpp:117 +msgid "Save current loaded library on disk (file update)" +msgstr "Sauver librairie chargée courante sur disque (mise à jour du fichier)" + +#: eeschema/tool_lib.cpp:123 +msgid "Delete component in current library" +msgstr "Supprimer composant en librairie de travail" + +#: eeschema/tool_lib.cpp:127 +msgid "New component" +msgstr "Nouveau composant" + +#: eeschema/tool_lib.cpp:130 +msgid "Select component to edit" +msgstr "Sélectionner le composant a éditer" + +#: eeschema/tool_lib.cpp:134 +msgid "Save current component into current loaded library (in memory)" +msgstr "Sauver le composant courant en librairie courante (en mémoire)" + +#: eeschema/tool_lib.cpp:137 +msgid "import component" +msgstr "Importer composant" + +#: eeschema/tool_lib.cpp:140 +msgid "export component" +msgstr "Exporter composant" + +#: eeschema/tool_lib.cpp:144 +msgid "Create a new library an save current component into" +msgstr "Créer une nouvelle librairie et y sauver le composant" + +#: eeschema/tool_lib.cpp:157 +msgid "Edit component properties" +msgstr "Editer ropriétés du composant" + +#: eeschema/tool_lib.cpp:164 +msgid "Test duplicate pins" +msgstr "Test duplicate pins" + +#: eeschema/tool_lib.cpp:186 +msgid "show as \"De Morgan\" normal part" +msgstr "Afficher sous représentation normale" + +#: eeschema/tool_lib.cpp:192 +msgid "show as \"De Morgan\" convert part" +msgstr "Afficher sous présentation \" De Morgan\"" + +#: eeschema/tool_lib.cpp:201 +msgid "Documents" +msgstr "Documents" + +#: eeschema/tool_lib.cpp:218 +msgid "Edit pins part per part (Carefully use!)" +msgstr "Editer pins unité par unité (Utiliser en connaissance de cause)" + +#: eeschema/tool_lib.cpp:238 +#: eeschema/tool_viewlib.cpp:128 +#, c-format +msgid "Part %c" +msgstr "Composant %c" + +#: eeschema/edit_component_in_lib.cpp:168 +msgid "Lib Component Properties" +msgstr "Propriétés du composant librairie" + +#: eeschema/edit_component_in_lib.cpp:172 +msgid "Properties for " +msgstr "Propriétés pour " + +#: eeschema/edit_component_in_lib.cpp:177 +msgid "(alias of " +msgstr "(alias de " + +#: eeschema/edit_component_in_lib.cpp:245 +#: eeschema/edit_component_in_lib.cpp:328 +msgid "Delete All" +msgstr "Tout Supprimer" + +#: eeschema/edit_component_in_lib.cpp:281 +#: eeschema/edit_component_in_lib.cpp:1189 +msgid "Footprint Filter" +msgstr "Filtrage Modules" + +#: eeschema/edit_component_in_lib.cpp:293 +msgid "Footprints" +msgstr "Modules" + +#: eeschema/edit_component_in_lib.cpp:407 +msgid "Show Pin Num" +msgstr "Montre Numéro de Pin" + +#: eeschema/edit_component_in_lib.cpp:476 +msgid "Left justify" +msgstr "Justifié à gauche" + +#: eeschema/edit_component_in_lib.cpp:476 +#: eeschema/edit_component_in_lib.cpp:478 +msgid "Center" +msgstr "Centrer" + +#: eeschema/edit_component_in_lib.cpp:476 +msgid "Right justify" +msgstr "Justifié à droite" + +#: eeschema/edit_component_in_lib.cpp:478 +msgid "Bottom justify" +msgstr "Justifié en bas" + +#: eeschema/edit_component_in_lib.cpp:478 +msgid "Top justify" +msgstr "Justifié en haut" + +#: eeschema/edit_component_in_lib.cpp:529 +msgid "Hor Justify" +msgstr "Justifié horiz" + +#: eeschema/edit_component_in_lib.cpp:536 +msgid "Vert Justify" +msgstr "Justifié Vert." + +#: eeschema/edit_component_in_lib.cpp:551 +msgid "Chip Name" +msgstr "Nom en librairie" + +#: eeschema/edit_component_in_lib.cpp:890 +msgid "Ok to Delete Alias LIST" +msgstr "Ok pour effacer la LISTE des Alias" + +#: eeschema/edit_component_in_lib.cpp:915 +msgid "New alias:" +msgstr "Noveau alias" + +#: eeschema/edit_component_in_lib.cpp:915 +msgid "Component Alias" +msgstr "Alias de Composant" + +#: eeschema/edit_component_in_lib.cpp:923 +msgid "This is the Root Part" +msgstr "Ceci est le composant racine" + +#: eeschema/edit_component_in_lib.cpp:932 +#: eeschema/edit_component_in_lib.cpp:1200 +msgid "Already in use" +msgstr "Déja en usage" + +#: eeschema/edit_component_in_lib.cpp:957 +msgid " is Current Selected Alias!" +msgstr " est l' Alias actuellement sélectionné!" + +#: eeschema/edit_component_in_lib.cpp:1010 +msgid "Delete units" +msgstr "Supprimer unité" + +#: eeschema/edit_component_in_lib.cpp:1080 +msgid "Create pins for Convert items" +msgstr "Créér les pins des unitées converties" + +#: eeschema/edit_component_in_lib.cpp:1084 +msgid "Part as \"De Morgan\" anymore" +msgstr "Le composant a une représentation convertie" + +#: eeschema/edit_component_in_lib.cpp:1109 +msgid "Delete Convert items" +msgstr "Suppression des éléments convertis" + +#: eeschema/edit_component_in_lib.cpp:1144 +msgid "Doc Files" +msgstr "Fichiers de Doc" + +#: eeschema/edit_component_in_lib.cpp:1167 +msgid "Ok to Delete FootprintFilter LIST" +msgstr "Ok pour effacer la LISTE des filtres de modules" + +#: eeschema/edit_component_in_lib.cpp:1189 +msgid "New FootprintFilter:" +msgstr "Nouveau Filtre de Modules:" + +#: eeschema/menubar.cpp:41 +msgid "&New" +msgstr "&Nouveau" + +#: eeschema/menubar.cpp:42 +msgid "New schematic" +msgstr "Nouvelle schématique" + +#: eeschema/menubar.cpp:47 +msgid "&Open" +msgstr "&Ouvrir " + +#: eeschema/menubar.cpp:48 +msgid "Open a schematic" +msgstr "Ouvrir un Projet schématique" + +#: eeschema/menubar.cpp:54 +msgid "&Save" +msgstr "&Sauver" + +#: eeschema/menubar.cpp:61 +msgid "Save &Current sheet" +msgstr "Sauver &Feuille active" + +#: eeschema/menubar.cpp:62 +msgid "Save current sheet only" +msgstr "Sauver la feuille active uniquement" + +#: eeschema/menubar.cpp:67 +msgid "Save Current sheet &as.." +msgstr "Sauver la feuille &active sous.." + +#: eeschema/menubar.cpp:68 +msgid "Save current sheet as.." +msgstr "Sauver la feuille active sous un autre nom" + +#: eeschema/menubar.cpp:82 +msgid "Plot PostScript" +msgstr "Tracé Postscript" + +#: eeschema/menubar.cpp:82 +msgid "Plotting in PostScript format" +msgstr "Générer un tracé en format Postscript" + +#: eeschema/menubar.cpp:87 +msgid "Plot HPGL" +msgstr "Tracé HPGL" + +#: eeschema/menubar.cpp:87 +msgid "Plotting in HPGL format" +msgstr "Générer un tracé en format HPGL" + +#: eeschema/menubar.cpp:92 +msgid "Plot SVG" +msgstr "Tracé SVG" + +#: eeschema/menubar.cpp:92 +msgid "Plotting in SVG format" +msgstr "Générer un tracé en format SVG" + +#: eeschema/menubar.cpp:99 +msgid "Plot to Clipboard" +msgstr "Tracé dans Presse papier" + +#: eeschema/menubar.cpp:99 +msgid "Export drawings to clipboard" +msgstr " Export du dessin dans le presse-papier" + +#: eeschema/menubar.cpp:106 +msgid "Plot HPGL, PostScript, SVG" +msgstr "Tracer en format HPGL, POSTSCRIPT ou SVG" + +#: eeschema/menubar.cpp:109 +msgid "Quit Eeschema" +msgstr "Quitter Eeschema" + +#: eeschema/menubar.cpp:127 +msgid "&Undo\t" +msgstr "&Undo\t" + +#: eeschema/menubar.cpp:135 +msgid "&Redo\t" +msgstr "&Redo\t" + +#: eeschema/menubar.cpp:154 +msgid "Find" +msgstr "Chercher" + +#: eeschema/menubar.cpp:162 +msgid "BackAnno" +msgstr "Rétro Annotation" + +#: eeschema/menubar.cpp:162 +msgid "Back Annotated Footprint Fields" +msgstr "Rétroannotation des Champs Modules" + +#: eeschema/menubar.cpp:206 +msgid "&Component" +msgstr "&Composant" + +#: eeschema/menubar.cpp:212 +msgid "&Power port" +msgstr "Power Symbole" + +#: eeschema/menubar.cpp:218 +msgid "&Wire" +msgstr "&Fil" + +#: eeschema/menubar.cpp:226 +msgid "&Bus" +msgstr "&Bus" + +#: eeschema/menubar.cpp:227 +msgid "Place a bus" +msgstr "Placer un Bus" + +#: eeschema/menubar.cpp:236 +msgid "W&ire to bus entry" +msgstr "Entrées de bus (type fil vers bus)" + +#: eeschema/menubar.cpp:237 +msgid "Place a wire to bus entry" +msgstr "Placer une Entrée de Bus (type fil vers bus)" + +#: eeschema/menubar.cpp:246 +msgid "B&us to bus entry" +msgstr "Entrées de bus (type bus vers bus)" + +#: eeschema/menubar.cpp:247 +msgid "Place a bus to bus entry" +msgstr "Placer une Entrée de Bus (type bus vers bus)" + +#: eeschema/menubar.cpp:256 +msgid "No connect flag" +msgstr "Symbole de Non Connexion" + +#: eeschema/menubar.cpp:257 +msgid "Place a no connect flag" +msgstr "Placer un Symbole de Non Connexion" + +#: eeschema/menubar.cpp:266 +msgid "Net name" +msgstr "Net Name" + +#: eeschema/menubar.cpp:267 +msgid "Place a net name" +msgstr "Placer un Nom de Net" + +#: eeschema/menubar.cpp:274 +msgid "Global label" +msgstr "Label Global" + +#: eeschema/menubar.cpp:275 +msgid "Place a global label. Warning: all global labels with the same name are connected in whole hierarchy" +msgstr "Placer un label global. Attention: tous les labels globaux avec le même nom sont connectés dans toute la hierarchie" + +#: eeschema/menubar.cpp:284 +msgid "Junction" +msgstr "Jonction" + +#: eeschema/menubar.cpp:285 +msgid "Place a junction" +msgstr "Placer une Jonction" + +#: eeschema/menubar.cpp:296 +msgid "Hierarchical label" +msgstr "Label Hiérarchique" + +#: eeschema/menubar.cpp:297 +msgid "Place a hierarchical label. This label will be seen as a pin sheet in the sheet symbol" +msgstr "Placer un label hiérachique. Ce label sera vu comme une pin dans la feuille mère symbole" + +#: eeschema/menubar.cpp:306 +msgid "Hierarchical sheet" +msgstr "Feuille Hiérrachique" + +#: eeschema/menubar.cpp:307 +msgid "Create a hierarchical sheet" +msgstr "Créer une Feuille Hiérachique" + +#: eeschema/menubar.cpp:316 +msgid "Import Hierarchical Label" +msgstr "Importer Label Hiérarchique" + +#: eeschema/menubar.cpp:317 +msgid "Place a pin sheet created by importing a hierarchical label from sheet" +msgstr "Placer une pin hiérarchique créée par importation d'un label hiérarchique de la feuille" + +#: eeschema/menubar.cpp:326 +msgid "Add Hierarchical Pin to Sheet" +msgstr "Ajouter Pins de Hierarchie dans feuille" + +#: eeschema/menubar.cpp:327 +msgid "Place a hierarchical pin to sheet" +msgstr "Addition de pins de hierarchie dans les feuilles symboles de hierarchie" + +#: eeschema/menubar.cpp:338 +msgid "Graphic line or poligon" +msgstr "Ligne ou polygone graphique" + +#: eeschema/menubar.cpp:339 +msgid "Place the graphic line or poligon" +msgstr "Placer des lignes ou polygones graphiques" + +#: eeschema/menubar.cpp:348 +msgid "Graphic text (comment)" +msgstr "Ttextes graphiques (commentaires)" + +#: eeschema/menubar.cpp:365 +msgid "Color preferences" +msgstr "Préférences de couleurs" + +#: eeschema/menubar.cpp:371 +msgid "&Options" +msgstr "&Options" + +#: eeschema/menubar.cpp:372 +msgid "Select general options..." +msgstr "Sélection options générales..." + +#: eeschema/menubar.cpp:397 +msgid "Open the eeschema manual" +msgstr "Ouvrir la documentation de eeschema" + +#: eeschema/menubar.cpp:408 +msgid "&Edit" +msgstr "&Editer" + +#: eeschema/menubar.cpp:409 +msgid "&View" +msgstr "&Voir" + +#: eeschema/menubar.cpp:410 +msgid "&Place" +msgstr "&Placer" + +#: eeschema/files-io.cpp:72 +msgid "Clear Schematic Hierarchy (modified!)?" +msgstr "Effacer la hiérarchie schématique (modifiée!)?" + +#: eeschema/files-io.cpp:133 +msgid "" +"Ready\n" +"Working dir: \n" +msgstr "" +"Pret\n" +"Répertoire de travail: \n" + +#: eeschema/files-io.cpp:181 +#, c-format +msgid "File <%s> not found." +msgstr "Fichier <%s> non trouvé" + +#: eeschema/load_one_schematic_file.cpp:105 +msgid "Failed to open " +msgstr "Erreur ouverture " + +#: eeschema/load_one_schematic_file.cpp:110 +msgid "Loading " +msgstr "Chargement " + +#: eeschema/load_one_schematic_file.cpp:117 +#: eeschema/load_one_schematic_file.cpp:146 +msgid " is NOT an EESchema file!" +msgstr " n'est PAS un fichier EESchema!" + +#: eeschema/load_one_schematic_file.cpp:129 +msgid " was created by a more recent version of EESchema and may not load correctly. Please consider updating!" +msgstr " a été créé par une version plus récente de Eeschema et peut ne pas être chargé correctement. SVP mettez a jour Eeschema!" + +#: eeschema/load_one_schematic_file.cpp:138 +msgid " was created by an older version of EESchema. It will be stored in the new file format when you save this file again." +msgstr " a été créé par une version plus ancienne de Eeschema. Il sera enregistré au nouveau format après la prochaine sauvegarde." + +#: eeschema/load_one_schematic_file.cpp:497 +msgid "Done Loading " +msgstr "Chargement terminé" + +#: eeschema/class_drawsheet.cpp:250 +msgid "Ok to cleanup this sheet" +msgstr "Ok pour nettoyer cette feuille" + +#: eeschema/class_drawsheet.cpp:560 +#, c-format +msgid "A Sub Hierarchy named %s exists, Use it (The data in this sheet will be replaced)?" +msgstr "Une sous Hiérarchie nommée %s existe, L'utiliser (Les données de cette page seront remplacées)?" + +#: eeschema/class_drawsheet.cpp:564 +msgid "Sheet Filename Renaming Aborted" +msgstr " Renommage de Fichier de Feuille Abandonné" + +#: eeschema/class_drawsheet.cpp:572 +#, c-format +msgid "A file named %s exists, load it (otherwise keep current sheet data if possible)?" +msgstr "Un fichier %s existe, Le charger (autrement garder le contenu de la feuille active, si c'est possible) ?" + +#: eeschema/class_drawsheet.cpp:590 +msgid "This sheet uses shared data in a complex hierarchy" +msgstr "Cette feuille utilise des données partagées dans une hiérarchie complexe" + +#: eeschema/class_drawsheet.cpp:593 +msgid "Do we convert it in a simple hierarchical sheet (otherwise delete current sheet data)" +msgstr "Doit on la convertir en une feuille de hiérarchie simple (autrement supprimer les données courantes)" + +#: eeschema/class_drawsheet.cpp:752 +#, c-format +msgid "%8.8lX/" +msgstr "%8.8lX/" + #: eeschema/onrightclick.cpp:119 msgid "Leave Sheet" msgstr "Quitter sous-feuille" @@ -7259,18 +7883,6 @@ msgstr "Fin Fil" msgid "Delete Wire" msgstr "Supprimer Fil" -#: eeschema/onrightclick.cpp:513 -#: eeschema/onrightclick.cpp:545 -#: eeschema/schedit.cpp:201 -msgid "Add Junction" -msgstr "Ajout jonctions" - -#: eeschema/onrightclick.cpp:514 -#: eeschema/onrightclick.cpp:546 -#: eeschema/schedit.cpp:205 -msgid "Add Label" -msgstr "Ajout Label" - #: eeschema/onrightclick.cpp:519 #: eeschema/onrightclick.cpp:551 msgid "Add Global Label" @@ -7352,422 +7964,6 @@ msgstr "Miroir Bloc ||" msgid "Copy to Clipboard" msgstr "Copie dans Presse papier" -#: eeschema/pinedit.cpp:22 -msgid "line" -msgstr "Ligne" - -#: eeschema/pinedit.cpp:22 -msgid "invert" -msgstr "invert" - -#: eeschema/pinedit.cpp:22 -msgid "clock" -msgstr "clock" - -#: eeschema/pinedit.cpp:22 -msgid "clock inv" -msgstr "clock inv" - -#: eeschema/pinedit.cpp:23 -msgid "low in" -msgstr "low in" - -#: eeschema/pinedit.cpp:23 -msgid "low clock" -msgstr "low clock" - -#: eeschema/pinedit.cpp:23 -msgid "low out" -msgstr "low out" - -#: eeschema/pinedit.cpp:216 -msgid "Occupied by other pin. Continue?" -msgstr "Occupé une autre pin, Continuer ?" - -#: eeschema/pinedit.cpp:1004 -#, c-format -msgid "Duplicate Pin %4.4s (Pin %s loc %d, %d, and Pin %s loc %d, %d)" -msgstr "Pin dupliquée %4.4s (Pin %s loc %d, %d, etPin %s loc %d, %d)" - -#: eeschema/pinedit.cpp:1010 -#, c-format -msgid " Part %d" -msgstr "Composant %d" - -#: eeschema/pinedit.cpp:1016 -msgid " Convert" -msgstr " Convert" - -#: eeschema/pinedit.cpp:1018 -msgid " Normal" -msgstr " Normal" - -#: eeschema/plotps.cpp:198 -msgid "Plot Options:" -msgstr "Options de Tracé:" - -#: eeschema/plotps.cpp:203 -msgid "B/W" -msgstr "N/B" - -#: eeschema/plotps.cpp:204 -msgid "Color" -msgstr "Couleur" - -#: eeschema/plotps.cpp:205 -msgid "Plot Color:" -msgstr "Tracé et Couleurs:" - -#: eeschema/plotps.cpp:209 -msgid "Print Sheet Ref" -msgstr "Imprimer cartouche" - -#: eeschema/plotps.cpp:234 -msgid "Messages :" -msgstr "Messages :" - -#: eeschema/plotps.cpp:440 -#, c-format -msgid "Plot: %s\n" -msgstr "Trace: %s\n" - -#: eeschema/save_schemas.cpp:86 -msgid "Failed to create file " -msgstr "Impossible de créer le fichier " - -#: eeschema/save_schemas.cpp:96 -msgid "File write operation failed." -msgstr "Erreur sur écriture sur fichier." - -#: eeschema/schedit.cpp:181 -msgid "Push/Pop Hierarchy" -msgstr "Naviger dans Hiérarchie" - -#: eeschema/schedit.cpp:185 -msgid "Add NoConnect Flag" -msgstr "Ajoutde symboles de non connexion" - -#: eeschema/schedit.cpp:193 -msgid "Add Bus" -msgstr "Addition de Bus" - -#: eeschema/schedit.cpp:209 -msgid "Add Global label" -msgstr "Ajout de labels globaux" - -#: eeschema/schedit.cpp:213 -msgid "Add Hierarchal label" -msgstr "Ajouter Label Hiérarchique" - -#: eeschema/schedit.cpp:221 -msgid "Add Wire to Bus Entry" -msgstr "Addition d'entrées de bus (type fil vers bus)" - -#: eeschema/schedit.cpp:225 -msgid "Add Bus to Bus entry" -msgstr "Addition d'entrées de bus (type bus vers bus)" - -#: eeschema/schedit.cpp:229 -msgid "Add Sheet" -msgstr "Ajout de Feuille" - -#: eeschema/schedit.cpp:233 -msgid "Add PinSheet" -msgstr "Ajout Conn. hiérar." - -#: eeschema/schedit.cpp:237 -msgid "Import PinSheet" -msgstr "Importer Connecteur de hiérarchie" - -#: eeschema/schedit.cpp:245 -msgid "Add Power" -msgstr "Add Alims" - -#: eeschema/selpart.cpp:45 -msgid "Select Lib" -msgstr "Sélection librairie" - -#: eeschema/selpart.cpp:94 -#, c-format -msgid "Select component (%d items)" -msgstr "Selection composant (%d items)" - -#: eeschema/sheet.cpp:162 -msgid "Filename:" -msgstr "Nom Fichier:" - -#: eeschema/sheet.cpp:168 -msgid "Sheetname:" -msgstr "Nom feuille" - -#: eeschema/sheet.cpp:266 -msgid "No Filename! Aborted" -msgstr "Pas de Nom de Fichier! Abandon" - -#: eeschema/sheet.cpp:281 -msgid "Changing a Filename can change all the schematic structure and cannot be undone" -msgstr "Cette opération changera l'annotation actuelle et ne pourra être annulée." - -#: eeschema/sheet.cpp:283 -msgid "Ok to continue renaming?" -msgstr "Ok pour continuer le changement de nom?" - -#: eeschema/symbedit.cpp:52 -msgid "Import symbol drawings:" -msgstr "Importer les symboles:" - -#: eeschema/symbedit.cpp:74 -#, c-format -msgid "Failed to open Symbol File <%s>" -msgstr "Ne peut pas ouvrir fichier <%s>" - -#: eeschema/symbedit.cpp:87 -msgid "Warning: more than 1 part in Symbol File" -msgstr "Warning: plus de 1élément dans le fichier symbole" - -#: eeschema/symbedit.cpp:92 -msgid "Symbol File is void" -msgstr "Fichier Symbole vide" - -#: eeschema/symbedit.cpp:150 -msgid "Export symbol drawings:" -msgstr "Exporter le symbole" - -#: eeschema/symbedit.cpp:170 -#, c-format -msgid "Save Symbol in [%s]" -msgstr "Symbole sauvé en [%s]" - -#: eeschema/symbtext.cpp:133 -msgid " Text : " -msgstr " Texte : " - -#: eeschema/symbtext.cpp:152 -msgid "Size:" -msgstr "Taille:" - -#: eeschema/symbtext.cpp:158 -msgid " Text Options : " -msgstr "Options du Texte: " - -#: eeschema/tool_lib.cpp:45 -msgid "deselect current tool" -msgstr "Désélection outil courant" - -#: eeschema/tool_lib.cpp:51 -msgid "Add Pins" -msgstr "Addition de \"pins\"" - -#: eeschema/tool_lib.cpp:55 -msgid "Add graphic text" -msgstr "Addition de textes graphiques (commentaires)" - -#: eeschema/tool_lib.cpp:59 -msgid "Add rectangles" -msgstr "Addition de rectangles" - -#: eeschema/tool_lib.cpp:63 -msgid "Add circles" -msgstr "Addition de cercles" - -#: eeschema/tool_lib.cpp:67 -msgid "Add arcs" -msgstr "Addition d'arc" - -#: eeschema/tool_lib.cpp:71 -msgid "Add lines and polygons" -msgstr "Addition de lignes ou polygones graphiques" - -#: eeschema/tool_lib.cpp:76 -msgid "Move part anchor" -msgstr "Positionner l'ancre du composant" - -#: eeschema/tool_lib.cpp:81 -msgid "Import existing drawings" -msgstr "Importer des dessins existants" - -#: eeschema/tool_lib.cpp:85 -msgid "Export current drawing" -msgstr "Exporter le dessin en cours" - -#: eeschema/tool_lib.cpp:117 -msgid "Save current loaded library on disk (file update)" -msgstr "Sauver librairie chargée courante sur disque (mise à jour du fichier)" - -#: eeschema/tool_lib.cpp:123 -msgid "Delete component in current library" -msgstr "Supprimer composant en librairie de travail" - -#: eeschema/tool_lib.cpp:127 -msgid "New component" -msgstr "Nouveau composant" - -#: eeschema/tool_lib.cpp:130 -msgid "Select component to edit" -msgstr "Sélectionner le composant a éditer" - -#: eeschema/tool_lib.cpp:134 -msgid "Save current component into current loaded library (in memory)" -msgstr "Sauver le composant courant en librairie courante (en mémoire)" - -#: eeschema/tool_lib.cpp:137 -msgid "import component" -msgstr "Importer composant" - -#: eeschema/tool_lib.cpp:140 -msgid "export component" -msgstr "Exporter composant" - -#: eeschema/tool_lib.cpp:144 -msgid "Create a new library an save current component into" -msgstr "Créer une nouvelle librairie et y sauver le composant" - -#: eeschema/tool_lib.cpp:157 -msgid "Edit component properties" -msgstr "Editer ropriétés du composant" - -#: eeschema/tool_lib.cpp:164 -msgid "Test duplicate pins" -msgstr "Test duplicate pins" - -#: eeschema/tool_lib.cpp:186 -msgid "show as \"De Morgan\" normal part" -msgstr "Afficher sous représentation normale" - -#: eeschema/tool_lib.cpp:192 -msgid "show as \"De Morgan\" convert part" -msgstr "Afficher sous présentation \" De Morgan\"" - -#: eeschema/tool_lib.cpp:201 -msgid "Documents" -msgstr "Documents" - -#: eeschema/tool_lib.cpp:218 -msgid "Edit pins part per part (Carefully use!)" -msgstr "Editer pins unité par unité (Utiliser en connaissance de cause)" - -#: eeschema/tool_lib.cpp:238 -#: eeschema/tool_viewlib.cpp:128 -#, c-format -msgid "Part %c" -msgstr "Composant %c" - -#: eeschema/tool_sch.cpp:39 -msgid "New schematic project" -msgstr "Nouveau Projet schématique" - -#: eeschema/tool_sch.cpp:42 -msgid "Open schematic project" -msgstr "Ouvrir un Projet schématique" - -#: eeschema/tool_sch.cpp:53 -msgid "go to library editor" -msgstr "Appel de l'editeur de librairies et de composants" - -#: eeschema/tool_sch.cpp:56 -msgid "go to library browse" -msgstr "Appel du visualisateur des contenus de librairies" - -#: eeschema/tool_sch.cpp:60 -msgid "Schematic Hierarchy Navigator" -msgstr "Navigation dans la hierarchie" - -#: eeschema/tool_sch.cpp:82 -msgid "Print schematic" -msgstr "Impression des feuilles de schéma" - -#: eeschema/tool_sch.cpp:86 -msgid "Run Cvpcb" -msgstr "Appel de CvPcb (Gestion des associations composants/module)" - -#: eeschema/tool_sch.cpp:89 -msgid "Run Pcbnew" -msgstr "Appel de Pcbnew (Editeur de Circuits Imprimés)" - -#: eeschema/tool_sch.cpp:113 -msgid "Netlist generation" -msgstr "Génération de la netliste" - -#: eeschema/tool_sch.cpp:116 -msgid "Schematic Annotation" -msgstr "Annotation des composants" - -#: eeschema/tool_sch.cpp:119 -msgid "Schematic Electric Rules Check" -msgstr "Controle des regles électriques" - -#: eeschema/tool_sch.cpp:122 -msgid "Bill of material and/or Crossreferences" -msgstr "Liste des composants et références croisées" - -#: eeschema/tool_sch.cpp:125 -msgid "BackAnnotate Footprint" -msgstr "Rétroannotation Module" - -#: eeschema/tool_sch.cpp:151 -msgid "Hierarchy Push/Pop" -msgstr "Navigation dans la hierarchie" - -#: eeschema/tool_sch.cpp:169 -msgid "Place the bus" -msgstr "Placer le Bus" - -#: eeschema/tool_sch.cpp:173 -msgid "Place the wire to bus entry" -msgstr "Placer des entrées de bus (type fil vers bus)" - -#: eeschema/tool_sch.cpp:177 -msgid "Place the bus to bus entry" -msgstr "Placer des entrées de bus (type bus vers bus)" - -#: eeschema/tool_sch.cpp:182 -msgid "Place the no connect flag" -msgstr "Placer le symbole de non connexion" - -#: eeschema/tool_sch.cpp:186 -msgid "Place the net name" -msgstr "Placer le nom de net" - -#: eeschema/tool_sch.cpp:190 -msgid "" -"Place the global label.\n" -"Warning: all global labels with the same name are connected in whole hierarchy" -msgstr "" -"Placer le label global.\n" -"Attention: tous les labels globaux de même nom sont connecté dans toute la hiérarchie" - -#: eeschema/tool_sch.cpp:195 -msgid "Place the junction" -msgstr "Placer la Jonction" - -#: eeschema/tool_sch.cpp:200 -msgid "Place the hierarchical label. This label will be seen as a pin sheet in the sheet symbol" -msgstr "Placer le label hiérachique. Ce label sera vu comme une pin dans la feuille mère symbole" - -#: eeschema/tool_sch.cpp:205 -msgid "Place the hierarchical sheet" -msgstr "Placer la Feuille Hiérachique" - -#: eeschema/tool_sch.cpp:209 -msgid "Place the pin sheet (imported hierarchical label from sheet)" -msgstr "Placer la pin hiérarchique ( Importer un label hiérarchique vers la feuille)" - -#: eeschema/tool_sch.cpp:214 -msgid "Place the hierachical pin to sheet" -msgstr "Place une pin de hierarchie dans la feuille" - -#: eeschema/tool_sch.cpp:219 -msgid "Place the graphic line or polygon" -msgstr "Placer la ligne ou le polygones graphique" - -#: eeschema/tool_sch.cpp:267 -msgid "Show Hidden Pins" -msgstr "Force affichage des pins invisibles" - -#: eeschema/tool_sch.cpp:272 -msgid "HV orientation for Wires and Bus" -msgstr "Force direction H, V et X pour les fils et bus" - #: eeschema/tool_viewlib.cpp:49 msgid "Select library to browse" msgstr "Sélection de la librairie a examiner" @@ -7784,20 +7980,8 @@ msgstr "Afficher composant précédent" msgid "Display next part" msgstr "Afficher composant suivant" -#: eeschema/tool_viewlib.cpp:67 -msgid "zoom + (F1)" -msgstr "zoom + (F1)" - -#: eeschema/tool_viewlib.cpp:71 -msgid "zoom - (F2)" -msgstr "zoom - (F2)" - -#: eeschema/tool_viewlib.cpp:75 -msgid "redraw (F3)" -msgstr "Redessin (F3)" - #: eeschema/tool_viewlib.cpp:79 -msgid "best zoom" +msgid "Best zoom" msgstr "Meilleur Zoom" #: eeschema/tool_viewlib.cpp:84 @@ -7813,212 +7997,37 @@ msgid "View component documents" msgstr "Voir documents des composants" #: eeschema/tool_viewlib.cpp:106 -msgid "Export to schematic" -msgstr "Exportervers schematique" +msgid "Insert component in schematic" +msgstr "Placer composant en schématique" -#: eeschema/viewlibs.cpp:118 -msgid "Browse library: " -msgstr "Examen librairie: " +#: eeschema/eelibs_read_libraryfiles.cpp:115 +msgid "Start loading schematic libs" +msgstr "Demarre chargement des librairies schématiques" -#: eeschema/viewlibs.cpp:307 -#, c-format -msgid "Current Part: <%s> (is Alias of <%s>)" -msgstr "Cmp courant: <%s> (est Alias de <%s>)" +#: eeschema/eelibs_read_libraryfiles.cpp:150 +msgid " error!" +msgstr " erreur!" -#: eeschema/viewlibs.cpp:313 -#, c-format -msgid "Error: Root Part <%s> not found" -msgstr "Erreur: Root Part <%s> non trouvé" +#: eeschema/eelibs_read_libraryfiles.cpp:306 +#: eeschema/eelibs_read_libraryfiles.cpp:313 +msgid "File <" +msgstr "Fichier <" -#: eeschema/viewlibs.cpp:332 -#, c-format -msgid "Current Part: <%s>" -msgstr "Cmp Courant: <%s>" +#: eeschema/eelibs_read_libraryfiles.cpp:306 +msgid "> is empty!" +msgstr "> est vide" -#: eeschema/edit_component_in_lib.cpp:168 -msgid "Lib Component Properties" -msgstr "Propriétés du composant librairie" +#: eeschema/eelibs_read_libraryfiles.cpp:313 +msgid "> is NOT EESCHEMA library!" +msgstr "> nest PAS une librairie EESCHEMA !" -#: eeschema/edit_component_in_lib.cpp:172 -msgid "Properties for " -msgstr "Propriétés pour " +#: eeschema/eelibs_read_libraryfiles.cpp:332 +msgid "Library <" +msgstr "Librairie <" -#: eeschema/edit_component_in_lib.cpp:177 -msgid "(alias of " -msgstr "(alias de " - -#: eeschema/edit_component_in_lib.cpp:245 -#: eeschema/edit_component_in_lib.cpp:328 -msgid "Delete All" -msgstr "Tout Supprimer" - -#: eeschema/edit_component_in_lib.cpp:281 -#: eeschema/edit_component_in_lib.cpp:1189 -msgid "Footprint Filter" -msgstr "Filtrage Modules" - -#: eeschema/edit_component_in_lib.cpp:293 -msgid "Footprints" -msgstr "Modules" - -#: eeschema/edit_component_in_lib.cpp:407 -msgid "Show Pin Num" -msgstr "Montre Numéro de Pin" - -#: eeschema/edit_component_in_lib.cpp:476 -msgid "Left justify" -msgstr "Justifié à gauche" - -#: eeschema/edit_component_in_lib.cpp:476 -#: eeschema/edit_component_in_lib.cpp:478 -msgid "Center" -msgstr "Centrer" - -#: eeschema/edit_component_in_lib.cpp:476 -msgid "Right justify" -msgstr "Justifié à droite" - -#: eeschema/edit_component_in_lib.cpp:478 -msgid "Bottom justify" -msgstr "Justifié en bas" - -#: eeschema/edit_component_in_lib.cpp:478 -msgid "Top justify" -msgstr "Justifié en haut" - -#: eeschema/edit_component_in_lib.cpp:508 -#: eeschema/edit_component_in_schematic.cpp:205 -msgid "Field Name:" -msgstr "Nom Champ" - -#: eeschema/edit_component_in_lib.cpp:518 -#: eeschema/edit_component_in_schematic.cpp:215 -msgid "Field Text:" -msgstr "Texte du Champ:" - -#: eeschema/edit_component_in_lib.cpp:524 -#: eeschema/edit_component_in_schematic.cpp:223 -msgid "Pos" -msgstr "Pos" - -#: eeschema/edit_component_in_lib.cpp:529 -msgid "Hor Justify" -msgstr "Justifié horiz" - -#: eeschema/edit_component_in_lib.cpp:536 -msgid "Vert Justify" -msgstr "Justifié Vert." - -#: eeschema/edit_component_in_lib.cpp:551 -msgid "Chip Name" -msgstr "Nom en librairie" - -#: eeschema/edit_component_in_lib.cpp:554 -#: eeschema/edit_component_in_schematic.cpp:199 -msgid "Field to edit" -msgstr "Champ à éditer" - -#: eeschema/edit_component_in_lib.cpp:890 -msgid "Ok to Delete Alias LIST" -msgstr "Ok pour effacer la LISTE des Alias" - -#: eeschema/edit_component_in_lib.cpp:915 -msgid "New alias:" -msgstr "Noveau alias" - -#: eeschema/edit_component_in_lib.cpp:915 -msgid "Component Alias" -msgstr "Alias de Composant" - -#: eeschema/edit_component_in_lib.cpp:923 -msgid "This is the Root Part" -msgstr "Ceci est le composant racine" - -#: eeschema/edit_component_in_lib.cpp:932 -#: eeschema/edit_component_in_lib.cpp:1200 -msgid "Already in use" -msgstr "Déja en usage" - -#: eeschema/edit_component_in_lib.cpp:957 -msgid " is Current Selected Alias!" -msgstr " est l' Alias actuellement sélectionné!" - -#: eeschema/edit_component_in_lib.cpp:1010 -msgid "Delete units" -msgstr "Supprimer unité" - -#: eeschema/edit_component_in_lib.cpp:1080 -msgid "Create pins for Convert items" -msgstr "Créér les pins des unitées converties" - -#: eeschema/edit_component_in_lib.cpp:1084 -msgid "Part as \"De Morgan\" anymore" -msgstr "Le composant a une représentation convertie" - -#: eeschema/edit_component_in_lib.cpp:1109 -msgid "Delete Convert items" -msgstr "Suppression des éléments convertis" - -#: eeschema/edit_component_in_lib.cpp:1144 -msgid "Doc Files" -msgstr "Fichiers de Doc" - -#: eeschema/edit_component_in_lib.cpp:1167 -msgid "Ok to Delete FootprintFilter LIST" -msgstr "Ok pour effacer la LISTE des filtres de modules" - -#: eeschema/edit_component_in_lib.cpp:1189 -msgid "New FootprintFilter:" -msgstr "Nouveau Filtre de Modules:" - -#: eeschema/edit_component_in_schematic.cpp:330 -msgid "No Component Name!" -msgstr "Pas de nom de composant!" - -#: eeschema/edit_component_in_schematic.cpp:336 -#, c-format -msgid "Component [%s] not found!" -msgstr "Composant [%s] non trouvé!" - -#: eeschema/edit_component_in_schematic.cpp:457 -msgid "No Field to move" -msgstr "Pas de champ a déplacer" - -#: eeschema/edit_component_in_schematic.cpp:520 -msgid "No Field To Edit" -msgstr "Pas de champ a éditer" - -#: eeschema/edit_component_in_schematic.cpp:534 -msgid "" -"Part is a POWER, value cannot be modified!\n" -"You must create a new power" -msgstr "" -"Composant type ALIMENTATION!\n" -"valeur non modifiable, Vous devez créer un nouveau composant alimentation " - -#: eeschema/edit_component_in_schematic.cpp:558 -msgid "Component field text" -msgstr "Champ de Composant" - -#: eeschema/edit_component_in_schematic.cpp:581 -msgid "Reference needed !, No change" -msgstr "Référence NECESSAIRE: changement refusé" - -#: eeschema/edit_component_in_schematic.cpp:585 -msgid "Value needed !, No change" -msgstr "Valeur NECESSAIRE: changement refusé" - -#: eeschema/edit_component_in_schematic.cpp:758 -msgid "Component Reference" -msgstr "Référence du Composant" - -#: eeschema/edit_component_in_schematic.cpp:796 -msgid "Component Value" -msgstr "Valeur du Composant" - -#: eeschema/edit_component_in_schematic.cpp:835 -msgid "Component Footprint" -msgstr "Module du Composant" +#: eeschema/eelibs_read_libraryfiles.cpp:332 +msgid "> header read error" +msgstr "> erreur lecture entête" #: eeschema/pinedit-dialog.cpp:160 msgid "Pin Name :" @@ -8053,6 +8062,7 @@ msgid "3 States" msgstr "3 Etats" #: eeschema/pinedit-dialog.cpp:269 +#: eeschema/component_wizard/dialog_component_setup.cpp:206 msgid "Unspecified" msgstr "Non specifié" @@ -8260,6 +8270,18 @@ msgstr "Cvpcb est est cours d'exécution. Continuer ?" msgid "Display Options" msgstr "Options d'Affichage" +#: cvpcb/displayframe.cpp:123 +msgid "zoom + (F1)" +msgstr "zoom + (F1)" + +#: cvpcb/displayframe.cpp:126 +msgid "zoom - (F2)" +msgstr "zoom - (F2)" + +#: cvpcb/displayframe.cpp:129 +msgid "redraw (F3)" +msgstr "Redessin (F3)" + #: cvpcb/displayframe.cpp:132 #: cvpcb/displayframe.cpp:136 msgid "1:1 zoom" @@ -8330,37 +8352,37 @@ msgstr "Le fichier n'est pas une librairie eeschema" msgid "Module %s not found" msgstr "Module %s non trouvé" -#: cvpcb/menucfg.cpp:52 -msgid "Lib Dir:" -msgstr "Rep Lib:" +#: cvpcb/cvframe.cpp:176 +msgid "Netlist and Cmp list modified, Save before exit ?" +msgstr "Netlist et liste composants modifiés, Sauver avant de quitter ?" -#: cvpcb/menucfg.cpp:56 -msgid "Net Input Ext:" -msgstr "Netl. entrée Ext:" +#: cvpcb/cvframe.cpp:199 +msgid "Problem when saving files, Exit anyway" +msgstr "Problemes en sauvant les fichiers, quitter quand même" -#: cvpcb/menucfg.cpp:68 -msgid "Cmp ext:" -msgstr "Cmp ext:" +#: cvpcb/cvframe.cpp:326 +msgid "Delete selections" +msgstr "Effacement des associations existantes" -#: cvpcb/menucfg.cpp:72 -msgid "Lib ext:" -msgstr "Lib ext:" +#: cvpcb/cvframe.cpp:424 +msgid "font for dialog boxes" +msgstr "fonte pour boites de dialogue" -#: cvpcb/menucfg.cpp:76 -msgid "NetOut ext:" -msgstr "NetOut ext:" +#: cvpcb/cvframe.cpp:426 +msgid "font for Lists" +msgstr "fonte pour listes" -#: cvpcb/menucfg.cpp:80 -msgid "Equiv ext:" -msgstr "Equiv ext:" +#: cvpcb/cvframe.cpp:428 +msgid "font for Status Line" +msgstr "fonte pour Ligne d'état" -#: cvpcb/menucfg.cpp:84 -msgid "Retro ext:" -msgstr "Retro ext:" +#: cvpcb/cvframe.cpp:431 +msgid "&Font" +msgstr "&Fonte" -#: cvpcb/menucfg.cpp:271 -msgid "Equiv Files:" -msgstr "Fichiers d'Equiv:" +#: cvpcb/cvframe.cpp:433 +msgid "Choose font type and size for dialogs, infos and status box" +msgstr "Choisir les fontes et leur taille pour les dialogues, infos et ligne d'état" #: cvpcb/readschematicnetlist.cpp:132 #, c-format @@ -8461,6 +8483,38 @@ msgstr "Sauver les options en répertoire de travail" msgid "Open the cvpcb manual" msgstr "Ouvrir la documentation de cvpcb" +#: cvpcb/menucfg.cpp:52 +msgid "Lib Dir:" +msgstr "Rep Lib:" + +#: cvpcb/menucfg.cpp:56 +msgid "Net Input Ext:" +msgstr "Netl. entrée Ext:" + +#: cvpcb/menucfg.cpp:68 +msgid "Cmp ext:" +msgstr "Cmp ext:" + +#: cvpcb/menucfg.cpp:72 +msgid "Lib ext:" +msgstr "Lib ext:" + +#: cvpcb/menucfg.cpp:76 +msgid "NetOut ext:" +msgstr "NetOut ext:" + +#: cvpcb/menucfg.cpp:80 +msgid "Equiv ext:" +msgstr "Equiv ext:" + +#: cvpcb/menucfg.cpp:84 +msgid "Retro ext:" +msgstr "Retro ext:" + +#: cvpcb/menucfg.cpp:271 +msgid "Equiv Files:" +msgstr "Fichiers d'Equiv:" + #: cvpcb/dialog_display_options.cpp:148 #: cvpcb/dialog_display_options.cpp:156 msgid "&Line" @@ -8504,38 +8558,6 @@ msgstr "Lire Cfg" msgid "Equiv" msgstr "Equiv" -#: cvpcb/cvframe.cpp:176 -msgid "Netlist and Cmp list modified, Save before exit ?" -msgstr "Netlist et liste composants modifiés, Sauver avant de quitter ?" - -#: cvpcb/cvframe.cpp:199 -msgid "Problem when saving files, Exit anyway" -msgstr "Problemes en sauvant les fichiers, quitter quand même" - -#: cvpcb/cvframe.cpp:326 -msgid "Delete selections" -msgstr "Effacement des associations existantes" - -#: cvpcb/cvframe.cpp:424 -msgid "font for dialog boxes" -msgstr "fonte pour boites de dialogue" - -#: cvpcb/cvframe.cpp:426 -msgid "font for Lists" -msgstr "fonte pour listes" - -#: cvpcb/cvframe.cpp:428 -msgid "font for Status Line" -msgstr "fonte pour Ligne d'état" - -#: cvpcb/cvframe.cpp:431 -msgid "&Font selection" -msgstr "Sélection Fonte" - -#: cvpcb/cvframe.cpp:433 -msgid "Choose font type and size for dialogs, infos and status box" -msgstr "Choisir les fontes et leur taille pour les dialogues, infos et ligne d'état" - #: kicad/buildmnu.cpp:92 msgid "&Open Project Descr" msgstr "&Ouvrir Descr de projet" @@ -8947,26 +8969,6 @@ msgstr "Changer Nom Fichier: " msgid "Change Filename" msgstr "Changer Nom Fichier" -#: gerbview/affiche.cpp:34 -msgid "Layer " -msgstr "Couche " - -#: gerbview/affiche.cpp:97 -msgid "Tool" -msgstr "Outils" - -#: gerbview/affiche.cpp:102 -msgid "D CODE" -msgstr "D CODE" - -#: gerbview/affiche.cpp:104 -msgid "D type" -msgstr "D type" - -#: gerbview/affiche.cpp:105 -msgid "????" -msgstr "????" - #: gerbview/block.cpp:267 msgid "Ok to delete block ?" msgstr "Ok pour effacer le bloc" @@ -9004,10 +9006,6 @@ msgstr "Fichiers Gerber:" msgid "D codes files:" msgstr "Fichiers D-Codes:" -#: gerbview/gerbview.cpp:37 -msgid "GerbView is already running. Continue?" -msgstr "Gerbview est est cours d'exécution. Continuer ?" - #: gerbview/gerbview_config.cpp:147 msgid "Save config file" msgstr "Sauver config" @@ -9099,10 +9097,6 @@ msgstr "Commande <%c%c> ignorée par Gerbview" msgid "Too many include files!!" msgstr "Trop de fichiers inclus!!" -#: gerbview/select_layers_to_pcb.cpp:91 -msgid "Layer selection:" -msgstr "Sélection couche:" - #: gerbview/select_layers_to_pcb.cpp:214 msgid "Gerber layer " msgstr "Couche Gerber " @@ -9120,6 +9114,31 @@ msgstr "Affiche toutes les couches Gerber" msgid "Switch off all of the Gerber layers" msgstr "N'affiche pas les couches Gerber" +#: gerbview/gerbview.cpp:37 +msgid "GerbView is already running. Continue?" +msgstr "Gerbview est est cours d'exécution. Continuer ?" + +#: gerbview/affiche.cpp:34 +#: gerbview/tool_gerber.cpp:310 +msgid "Layer " +msgstr "Couche " + +#: gerbview/affiche.cpp:97 +msgid "Tool" +msgstr "Outils" + +#: gerbview/affiche.cpp:102 +msgid "D-code" +msgstr "D-code" + +#: gerbview/affiche.cpp:104 +msgid "D-type" +msgstr "D-type" + +#: gerbview/affiche.cpp:105 +msgid "????" +msgstr "????" + #: gerbview/tool_gerber.cpp:37 msgid "Clear and Load Gerber file" msgstr "Effacer et charger fichier Gerber" @@ -9153,12 +9172,12 @@ msgid "Load D-Codes File" msgstr "Charger Fichier de DCodes" #: gerbview/tool_gerber.cpp:57 -msgid "Load Drill" +msgid "Load drill" msgstr "Charger fichier de perçage" #: gerbview/tool_gerber.cpp:58 -msgid "Load Drill File (EXCELLON Format)" -msgstr "Charger fichier de perçage ( Format EXCELLON)" +msgid "Load excellon drill file" +msgstr "Charger Fichier Excellon" #: gerbview/tool_gerber.cpp:64 msgid "Clear all layers" @@ -9221,7 +9240,7 @@ msgid "&List DCodes" msgstr "&Liste DCodes" #: gerbview/tool_gerber.cpp:140 -msgid "List and Edit DCodes" +msgid "List and edit D-codes" msgstr "Lister et Editer DCodes" #: gerbview/tool_gerber.cpp:141 @@ -9233,7 +9252,7 @@ msgid "Show source file for the current layer" msgstr "Monter fichier source pour la couche courante" #: gerbview/tool_gerber.cpp:144 -msgid "&Delete Layer" +msgid "&Delete layer" msgstr "&Effacer couche" #: gerbview/tool_gerber.cpp:145 @@ -9256,12 +9275,16 @@ msgstr "Ouvrir couche existante" msgid "Save World" msgstr "Sauver photo" +#: gerbview/tool_gerber.cpp:232 +msgid "page settings (size, texts)" +msgstr "Ajustage de la feuille de dessin (dimensions, textes)" + #: gerbview/tool_gerber.cpp:268 msgid "Print World" msgstr "Imprimer photo" #: gerbview/tool_gerber.cpp:303 -msgid "Find D Codes" +msgid "Find D-codes" msgstr "Chercher DCodes" #: gerbview/tool_gerber.cpp:321 @@ -9373,22 +9396,6 @@ msgstr "" msgid "Unable to find a PDF viewer for" msgstr "Impossible de trouver un visualisateur PDF pour" -#: common/get_component_dialog.cpp:105 -msgid "History list:" -msgstr "Historique:" - -#: common/get_component_dialog.cpp:117 -msgid "Search KeyWord" -msgstr "Chercher mot clé" - -#: common/get_component_dialog.cpp:125 -msgid "List All" -msgstr "Liste tous" - -#: common/get_component_dialog.cpp:133 -msgid "By Lib Browser" -msgstr "Par Visualisateur libs" - #: common/hotkeys_basic.cpp:301 msgid "" "Current hotkey list:\n" @@ -9479,6 +9486,22 @@ msgstr "Couleurs" msgid "Pos " msgstr "Pos " +#: common/get_component_dialog.cpp:105 +msgid "History list:" +msgstr "Historique:" + +#: common/get_component_dialog.cpp:117 +msgid "Search KeyWord" +msgstr "Chercher mot clé" + +#: common/get_component_dialog.cpp:125 +msgid "List All" +msgstr "Liste tous" + +#: common/get_component_dialog.cpp:133 +msgid "By Lib Browser" +msgstr "Par Visualisateur libs" + #: common/common.cpp:98 msgid " (\"):" msgstr " (\"):" @@ -9816,18 +9839,6 @@ msgstr "Couche ECO1 On/Off" msgid "Eco2 Layer On/Off" msgstr "Couche ECO2 On/Off" -#: share/drawframe.cpp:136 -msgid "font for info display" -msgstr "fonte pour affichage infos" - -#: share/drawframe.cpp:373 -msgid "Inch" -msgstr "Pouce" - -#: share/drawframe.cpp:381 -msgid "??" -msgstr "??" - #: share/setpage.cpp:276 msgid "Size A4" msgstr "Format A4 " @@ -9928,30 +9939,6 @@ msgstr "Commentaire3:" msgid "Comment4:" msgstr "Commentaire4:" -#: share/zoom.cpp:326 -msgid "Zoom: " -msgstr "Zoom: " - -#: share/zoom.cpp:327 -msgid "Grid: " -msgstr "Grille: " - -#: share/zoom.cpp:366 -msgid "Zoom Select" -msgstr "Sélection Zoom" - -#: share/zoom.cpp:369 -msgid "Redraw" -msgstr "Redessin" - -#: share/zoom.cpp:385 -msgid "Grid Select" -msgstr "Sélection Grille" - -#: share/zoom.cpp:407 -msgid "grid user" -msgstr "grille user" - #: share/wxprint.cpp:163 msgid "Error Init Printer info" msgstr "Erreur Init info imprimante" @@ -10083,6 +10070,38 @@ msgstr "Créer Fichier " msgid " error" msgstr " erreur" +#: share/zoom.cpp:326 +msgid "Zoom: " +msgstr "Zoom: " + +#: share/zoom.cpp:327 +msgid "Grid: " +msgstr "Grille: " + +#: share/zoom.cpp:367 +msgid "Zoom select" +msgstr "Sélection Zoom" + +#: share/zoom.cpp:385 +msgid "Grid Select" +msgstr "Sélection Grille" + +#: share/zoom.cpp:407 +msgid "grid user" +msgstr "grille user" + +#: share/drawframe.cpp:136 +msgid "font for info display" +msgstr "fonte pour affichage infos" + +#: share/drawframe.cpp:373 +msgid "Inch" +msgstr "Pouce" + +#: share/drawframe.cpp:381 +msgid "??" +msgstr "??" + #: pcbnew/cleaningoptions_dialog.h:48 msgid "Cleaning options" msgstr "Options de Nettoyage" @@ -10103,6 +10122,10 @@ msgstr "dialog_freeroute_exchange" msgid "General Options" msgstr "Options Générales" +#: pcbnew/dialog_graphic_items_options.h:47 +msgid "Texts and Drawings" +msgstr "Textes et Tracés" + #: pcbnew/dialog_initpcb.h:38 msgid "Global Delete" msgstr "Effacements Généraux" @@ -10223,6 +10246,10 @@ msgstr "Afficher Modules Cmp" msgid "Show Modules Cu" msgstr "Afficher Modules Cu" +#: pcbnew/dialog_non_copper_zones_properties.h:56 +msgid "Non Copper Zones Properties" +msgstr "Propriétés des Zones sur couches non cuivre" + #: pcbnew/dialog_pad_edit.h:62 msgid "Pad properties" msgstr "Propriétés des Pads" @@ -10535,6 +10562,50 @@ msgstr "Imprimer" msgid "Create SVG file" msgstr "Créer Fichier SVG" +#~ msgid "Library Files:" +#~ msgstr "Fichiers Librairies:" +#~ msgid "Footprint name:" +#~ msgstr "Nom Module: " +#~ msgid "Module name:" +#~ msgstr "Nom module:" +#~ msgid "Library: " +#~ msgstr "Librairie: " +#~ msgid "&Libs and Dir" +#~ msgstr "&Libs et Rep" +#~ msgid "&General Options" +#~ msgstr "Options &Générales" +#~ msgid "&Display Options" +#~ msgstr "Options &d'affichage" +#~ msgid "Gen Drill (EXCELLON] file and/or Drill sheet" +#~ msgstr "Gen fichier de percage (EXCELLON] et/ou plan de percage" +#~ msgid "Create Drill File" +#~ msgstr "Créer Fichier de percage" +#~ msgid "zoom +" +#~ msgstr "zoom +" +#~ msgid "zoom -" +#~ msgstr "zoom -" +#~ msgid "redraw" +#~ msgstr "Redessin" +#~ msgid "auto zoom" +#~ msgstr "Zoom automatique" +#~ msgid "New Board" +#~ msgstr "Nouveau Circuit Imprimé" +#~ msgid "Setting colors..." +#~ msgstr "Choisir les couleurs d'affichage..." +#~ msgid "File %s not found (new project ?)" +#~ msgstr " fichier %s non trouvé (nouveau projet ?)" +#~ msgid "go to library browse" +#~ msgstr "Appel du visualisateur des contenus de librairies" +#~ msgid "Export to schematic" +#~ msgstr "Exportervers schematique" +#~ msgid "Browse library: " +#~ msgstr "Examen librairie: " +#~ msgid "&Font selection" +#~ msgstr "Sélection Fonte" +#~ msgid "D CODE" +#~ msgstr "D CODE" +#~ msgid "Load Drill File (EXCELLON Format)" +#~ msgstr "Charger fichier de perçage ( Format EXCELLON)" #~ msgid "EESchema Back Annotate" #~ msgstr "Eeschema Retro Annotation" #~ msgid "MyComponent" diff --git a/pcbnew/class_zone.cpp b/pcbnew/class_zone.cpp index b7b6294add..8051598711 100644 --- a/pcbnew/class_zone.cpp +++ b/pcbnew/class_zone.cpp @@ -136,6 +136,11 @@ bool ZONE_CONTAINER::Save( FILE* aFile ) const if( ret < 2 ) return false; + ret = fprintf( aFile, "ZOptions %d\n", m_GridFillValue); + if( ret < 1 ) + return false; + + // Save the corner list for( item_pos = 0; item_pos < corners_count; item_pos++ ) { @@ -246,7 +251,17 @@ int ZONE_CONTAINER::ReadDescr( FILE* aFile, int* aLineNum ) } } } - if( strnicmp( Line, "ZClearance", 10 ) == 0 ) // aux info found + if( strnicmp( Line, "ZOptions", 8 ) == 0 ) // Options info found + { + int gridsize = 50; + text = Line + 8; + ret = sscanf( text, "%d", &gridsize ); + if( ret < 1 ) + return false; + else + m_GridFillValue = gridsize; + } + if( strnicmp( Line, "ZClearance", 10 ) == 0 ) // Clearence and pad options info found { int clearance = 200; char padoption; @@ -738,6 +753,12 @@ void ZONE_CONTAINER::Display_Infos( WinEDA_DrawFrame* frame ) msg.Printf( wxT( "%d" ), m_Poly->corner.size() ); Affiche_1_Parametre( frame, text_pos, _( "Corners" ), msg, BLUE ); + text_pos += 8; + if ( m_GridFillValue ) + msg.Printf( wxT( "%d" ), m_GridFillValue ); + else msg = _("No Grid"); + Affiche_1_Parametre( frame, text_pos, _( "Fill Grid" ), msg, BROWN ); + text_pos += 8; msg.Printf( wxT( "%d" ), m_Poly->m_HatchLines.size() ); Affiche_1_Parametre( frame, text_pos, _( "Hatch lines" ), msg, BLUE ); diff --git a/pcbnew/dialog_zones_by_polygon.cpp b/pcbnew/dialog_zones_by_polygon.cpp index 5d34a3326b..cb87ccf2dd 100644 --- a/pcbnew/dialog_zones_by_polygon.cpp +++ b/pcbnew/dialog_zones_by_polygon.cpp @@ -257,6 +257,8 @@ void WinEDA_ZoneFrame::OnInitDialog( wxInitDialogEvent& event ) BOARD* board = m_Parent->m_Pcb; SetFont( *g_DialogFont ); + + SetFocus(); // Required under wxGTK if we want to demiss the dialog with the ESC key wxString title = _( "Zone clearance value:" ) + ReturnUnitSymbol( g_UnitMetric ); m_ClearanceValueTitle->SetLabel( title ); @@ -277,16 +279,23 @@ void WinEDA_ZoneFrame::OnInitDialog( wxInitDialogEvent& event ) static const int GridList[4] = { 25, 50, 100, 250 }; int selection = 0; + int grid_routing = g_GridRoutingSize; + + if( m_Zone_Container ) + grid_routing = m_Zone_Container->m_GridFillValue; + for( unsigned ii = 0; ii < 4; ii++ ) { wxString msg = ReturnStringFromValue( g_UnitMetric, GridList[ii], m_Parent->m_InternalUnits ); m_GridCtrl->SetString( ii, msg ); - if( g_GridRoutingSize == GridList[ii] ) + if( grid_routing == GridList[ii] ) selection = ii; } - + if( grid_routing == 0 ) // No Grid: fill with polygons + selection = 4; + m_GridCtrl->SetSelection( selection ); if( m_Zone_Container ) @@ -536,9 +545,9 @@ bool WinEDA_ZoneFrame::AcceptOptions(bool aPromptForErrors) g_GridRoutingSize = 250; break; case 4: + g_GridRoutingSize = 0; wxMessageBox( wxT( "You are using No grid for filling zones\nThis is currently in development and for tests only.\n Do not use for production")); - g_GridRoutingSize = 0; break; } diff --git a/pcbnew/zone_filling_algorithm.cpp b/pcbnew/zone_filling_algorithm.cpp index 480401cee5..18c8edd0d4 100644 --- a/pcbnew/zone_filling_algorithm.cpp +++ b/pcbnew/zone_filling_algorithm.cpp @@ -42,6 +42,9 @@ int ZONE_CONTAINER::Fill_Zone( WinEDA_PcbFrame* frame, wxDC* DC, bool verbose ) wxString msg; BOARD* Pcb = frame->m_Pcb; + if( g_GridRoutingSize < 25 ) + g_GridRoutingSize = 25; + // Set the g_DesignSettings.m_TrackClearence (used to fill board map) to the max of m_TrackClearence and m_ZoneClearence g_DesignSettings.m_TrackClearence = max ( g_DesignSettings.m_TrackClearence, g_DesignSettings.m_ZoneClearence); @@ -59,8 +62,6 @@ int ZONE_CONTAINER::Fill_Zone( WinEDA_PcbFrame* frame, wxDC* DC, bool verbose ) // calculate the fixed step of the routing matrix as 25 mils or more E_scale = g_GridRoutingSize / 25; - if( g_GridRoutingSize < 1 ) - g_GridRoutingSize = 1; // calculate the Ncols and Nrows, size of the routing matrix ComputeMatriceSize( frame, g_GridRoutingSize ); diff --git a/pcbnew/zones_convert_brd_items_to_polygons.cpp b/pcbnew/zones_convert_brd_items_to_polygons.cpp index 3b31ea7e23..1904014366 100644 --- a/pcbnew/zones_convert_brd_items_to_polygons.cpp +++ b/pcbnew/zones_convert_brd_items_to_polygons.cpp @@ -13,15 +13,22 @@ using namespace std; #include "PolyLine.h" +// Local Functions: void AddTrackWithClearancePolygon( Bool_Engine* aBooleng, TRACK& aTrack, int aClearanceValue ); -void AddPadWithClearancePolygon( Bool_Engine* aBooleng, - D_PAD& aPad, int aClearanceValue, - bool bThermal, int spoke_w ); +void AddPadWithClearancePolygon( Bool_Engine* aBooleng, D_PAD& aPad, int aClearanceValue ); +void AddThermalReliefPadPolygon( Bool_Engine* aBooleng, + D_PAD& aPad, + int aThermalGap, + int aCopperTickness ); void AddRoundedEndsSegmentPolygon( Bool_Engine* aBooleng, wxPoint aStart, wxPoint aEnd, int aWidth ); +void AddTextBoxWithClearancePolygon( Bool_Engine* aBooleng, + TEXTE_PCB* aText, int aClearanceValue ); + +// Local Variables: /* how many segments are used to create a polygon from a circle: */ static int s_CircleToSegmentsCount = 16; @@ -82,10 +89,26 @@ void ZONE_CONTAINER::AddClearanceAreasPolygonsToPolysList( BOARD* aPcb ) { if( !pad->IsOnLayer( GetLayer() ) ) continue; - if ( pad->GetNet() == GetNet() ) + + if( pad->GetNet() != GetNet() ) + { + AddPadWithClearancePolygon( booleng, *pad, m_ZoneClearance ); continue; - AddPadWithClearancePolygon( booleng, *pad, m_ZoneClearance, - false, 0 ); + } + + switch( m_PadOption ) + { + case PAD_NOT_IN_ZONE: + AddPadWithClearancePolygon( booleng, *pad, m_ZoneClearance ); + break; + + case THERMAL_PAD: + AddThermalReliefPadPolygon( booleng, *pad, 100, 100 ); + break; + + case PAD_IN_ZONE: + break; + } } } @@ -97,7 +120,7 @@ void ZONE_CONTAINER::AddClearanceAreasPolygonsToPolysList( BOARD* aPcb ) { if( !track->IsOnLayer( GetLayer() ) ) continue; - if ( track->GetNet() == GetNet() ) + if( track->GetNet() == GetNet() ) continue; AddTrackWithClearancePolygon( booleng, *track, m_ZoneClearance ); } @@ -105,16 +128,22 @@ void ZONE_CONTAINER::AddClearanceAreasPolygonsToPolysList( BOARD* aPcb ) // Draw graphic items (copper texts) and board edges for( BOARD_ITEM* item = aPcb->m_Drawings; item; item = item->Next() ) { + if( item->GetLayer() != GetLayer() && item->GetLayer() != EDGE_N ) + continue; + switch( item->Type() ) { case TYPEDRAWSEGMENT: - - // TODO: add segment + AddRoundedEndsSegmentPolygon( booleng, + ( (DRAWSEGMENT*) item )->m_Start, + ( (DRAWSEGMENT*) item )->m_End, + ( (DRAWSEGMENT*) item )->m_Width + (2 * m_ZoneClearance) ); break; case TYPETEXTE: - - // TODO: add rectangular area + if( ( (TEXTE_PCB*) item )->GetLength() == 0 ) + break; + AddTextBoxWithClearancePolygon( booleng, (TEXTE_PCB*) item, m_ZoneClearance ); break; default: @@ -153,155 +182,247 @@ void ZONE_CONTAINER::AddClearanceAreasPolygonsToPolysList( BOARD* aPcb ) * Convert arcs and circles to multiple straight lines */ void AddPadWithClearancePolygon( Bool_Engine* aBooleng, - D_PAD& aPad, int aClearanceValue, - bool bThermal, int spoke_w ) + D_PAD& aPad, int aClearanceValue ) { + if( aBooleng->StartPolygonAdd( GROUP_B ) == 0 ) + return; wxPoint corner_position; int ii, angle; int dx = (aPad.m_Size.x / 2) + aClearanceValue; int dy = (aPad.m_Size.y / 2) + aClearanceValue; int delta = 3600 / s_CircleToSegmentsCount; // rot angle in 0.1 degree + wxPoint PadShapePos = aPad.ReturnShapePos(); /* Note: for pad having a shape offset, + * the pad position is NOT the shape position */ - if( !bThermal ) + switch( aPad.m_PadShape ) { - switch( aPad.m_PadShape ) + case PAD_CIRCLE: + for( ii = 0; ii < s_CircleToSegmentsCount; ii++ ) + { + corner_position = wxPoint( dx, 0 ); + angle = ii * delta; + RotatePoint( &corner_position, angle ); + corner_position += PadShapePos; + aBooleng->AddPoint( corner_position.x, corner_position.y ); + } + + break; + + case PAD_OVAL: + case PAD_RECT: + angle = aPad.m_Orient; + corner_position = wxPoint( -dx, -dy ); + RotatePoint( &corner_position, angle ); + corner_position += PadShapePos; + aBooleng->AddPoint( corner_position.x, corner_position.y ); + + corner_position = wxPoint( -dx, +dy ); + RotatePoint( &corner_position, angle ); + corner_position += aPad.ReturnShapePos(); + aBooleng->AddPoint( corner_position.x, corner_position.y ); + + corner_position = wxPoint( +dx, +dy ); + RotatePoint( &corner_position, angle ); + corner_position += PadShapePos; + aBooleng->AddPoint( corner_position.x, corner_position.y ); + + corner_position = wxPoint( +dx, -dy ); + RotatePoint( &corner_position, angle ); + corner_position += PadShapePos; + aBooleng->AddPoint( corner_position.x, corner_position.y ); + break; + } + + aBooleng->EndPolygonAdd(); +} + + +/** function AddThermalReliefPadPolygon + * Add holes around a pad to create a thermal relief + * copper tickness is min (dx/2, aCopperWitdh) or min (dy/2, aCopperWitdh) + * gap is aThermalGap + */ + +/* thermal reliefs are created as 4 polygons. + * each corner of a polygon if calculated for a pad at position 0, 0, orient 0, + * and then moved and rotated acroding to the pad position and orientation + */ +void AddThermalReliefPadPolygon( Bool_Engine* aBooleng, + D_PAD& aPad, + int aThermalGap, + int aCopperTickness ) +{ + wxPoint corner, corner_start, corner_end; + wxPoint PadShapePos = aPad.ReturnShapePos(); /* Note: for pad having a shape offset, + * the pad position is NOT the shape position */ + int angle = 0; + wxSize copper_tickness; + int dx = aPad.m_Size.x / 2; + int dy = aPad.m_Size.y / 2; + + int delta = 3600 / s_CircleToSegmentsCount; // rot angle in 0.1 degree + + copper_tickness.x = min( dx, aCopperTickness ); + copper_tickness.y = min( dy, aCopperTickness ); + + switch( aPad.m_PadShape ) + { + case PAD_CIRCLE: // Add 4 similar holes + { + // Build the hole pattern, for the hole in the X >0, Y > 0 plane: + std::vector corners_buffer; + + // calculate the starting point of the inner arc + corner.y = copper_tickness.x / 2; // note dx is the pad radius, so copper_tickness.x is the value to use + double dtmp = ( (double) dx * dx ) - ( (double) corner.y * corner.y ); + corner.x = (int) sqrt( dtmp ); + corner_start = corner; + + // calculate the ending point of the inner arc + corner_end.x = corner.y; + corner_end.y = corner.x; + + // calculate intermediate points (y coordinate from corner.y to corner_end.y) + while( (corner.y < corner_end.y) && (corner.x > corner_end.x) ) + { + corners_buffer.push_back( corner.x ); + corners_buffer.push_back( corner.y ); + RotatePoint( &corner, -delta ); + } + + corners_buffer.push_back( corner_end.x ); + corners_buffer.push_back( corner_end.y ); + + // calculate the starting point of the outter arc + dx += aThermalGap; // The radius of the outter arc is dx = pad radius + aThermalGap + corner.x = corner_end.x; + dtmp = ( (double) dx * dx ) - ( (double) corner.x * corner.x ); + corner.y = (int) sqrt( dtmp ); + + // calculate the ending point of the outter arc + corner_end.x = corner.y; + corner_end.y = corner_start.y; + + // calculate intermediate points (y coordinate from corner.y to corner_end.y + while( (corner.y > corner_end.y) && (corner.x < corner_end.x)) + { + corners_buffer.push_back( corner.x ); + corners_buffer.push_back( corner.y ); + RotatePoint( &corner, delta ); + } + + corners_buffer.push_back( corner_end.x ); + corners_buffer.push_back( corner_end.y ); + + // Now, add the 4 holes ( each is the pattern, rotated by 0, 90, 180 and 270 deg + angle = 0; + for( unsigned ihole = 0; ihole < 4; ihole++ ) { - case PAD_CIRCLE: if( aBooleng->StartPolygonAdd( GROUP_B ) ) { - for( ii = 0; ii < s_CircleToSegmentsCount; ii++ ) + for( unsigned ii = 0; ii < corners_buffer.size(); ii += 2 ) { - corner_position = wxPoint( dx, 0 ); - angle = ii * delta; - RotatePoint( &corner_position, angle ); - corner_position += aPad.ReturnShapePos(); - aBooleng->AddPoint( corner_position.x, corner_position.y ); + corner = wxPoint( corners_buffer[ii], corners_buffer[ii+1] ); + RotatePoint( &corner, angle ); + corner += PadShapePos; + aBooleng->AddPoint( corner.x, corner.y ); } aBooleng->EndPolygonAdd(); - } - break; - case PAD_OVAL: - case PAD_RECT: + angle += 900; // Note: angle in in 0.1 deg. + } + } + } + break; + + case PAD_OVAL: + case PAD_RECT: // draw 4 Holes + { + // First, create an hole like: + // 1 ------- 2 + // 0 ----- | + // 5 | | + // | | + // 4 | | 3 + wxPoint corners_hole[6]; // buffer for 6 corners + // Create 1 hole, for a pad centered at0,0, orient 0 + // Calculate coordinates for corner 0 to corner 5: + corners_hole[0] = wxPoint( (copper_tickness.x / 2), -dy ); + corners_hole[1] = wxPoint( (copper_tickness.x / 2), -dy - aThermalGap ); + corners_hole[2] = wxPoint( dx + aThermalGap, -dy - aThermalGap ); + corners_hole[3] = wxPoint( dx + aThermalGap, -(copper_tickness.y / 2) ); + corners_hole[4] = wxPoint( dx, -(copper_tickness.y / 2) ); + corners_hole[5] = wxPoint( dx, -dy ); + + /* Create 2 holes, rotated by pad rotation. + * corners_hole[6] is the hole 1 + * hole 3 is the same as hole 1, rotated 180 deg + * 4 ------ 1 + * | | + * | | + * | | + * | | + * 3 ------ 2 + */ + angle = aPad.m_Orient; + for( int irect = 0; irect < 2; irect++ ) + { if( aBooleng->StartPolygonAdd( GROUP_B ) ) { - angle = aPad.m_Orient; - corner_position = wxPoint( -dx, -dy ); - RotatePoint( &corner_position, angle ); - corner_position += aPad.ReturnShapePos(); - aBooleng->AddPoint( corner_position.x, corner_position.y ); - - corner_position = wxPoint( -dx, +dy ); - RotatePoint( &corner_position, angle ); - corner_position += aPad.ReturnShapePos(); - aBooleng->AddPoint( corner_position.x, corner_position.y ); - - corner_position = wxPoint( +dx, +dy ); - RotatePoint( &corner_position, angle ); - corner_position += aPad.ReturnShapePos(); - aBooleng->AddPoint( corner_position.x, corner_position.y ); - - corner_position = wxPoint( +dx, -dy ); - RotatePoint( &corner_position, angle ); - corner_position += aPad.ReturnShapePos(); - aBooleng->AddPoint( corner_position.x, corner_position.y ); + for( int ic = 0; ic < 6; ic++ ) + { + wxPoint cpos = corners_hole[ic]; + RotatePoint( &cpos, angle ); + cpos += PadShapePos; + aBooleng->AddPoint( cpos.x, cpos.y ); + } aBooleng->EndPolygonAdd(); + angle += 1800; // this is calculate hole 3 + if( angle >= 3600 ) + angle -= 3600; } - break; } - } - else - { - // thermal relief (from FreePCB: must be converted to pcbnew data) -#if 0 - if( type == PAD_ROUND || (type == PAD_NONE && hole_w > 0) ) + + // Create a holes, like: + // ------- + // | ----- + // | | + // | | + // | | + // this is the mirrored of the previous hole + corners_hole[0].x = -corners_hole[0].x; + corners_hole[1].x = -corners_hole[1].x; + corners_hole[2].x = -corners_hole[2].x; + corners_hole[3].x = -corners_hole[3].x; + corners_hole[4].x = -corners_hole[4].x; + corners_hole[5].x = -corners_hole[5].x; + + // Now add corner 4 and 2 (2 is the corner 4 rotated by 180 deg + angle = aPad.m_Orient; + for( int irect = 0; irect < 2; irect++ ) { - // draw 4 "wedges" - double r = max( w / 2 + fill_clearance, hole_w / 2 + hole_clearance ); - double start_angle = asin( spoke_w / (2.0 * r) ); - double th1, th2, corner_x, corner_y; - th1 = th2 = corner_x = corner_y = 0; // gcc warning fix - for( int i = 0; i<4; i++ ) + if( aBooleng->StartPolygonAdd( GROUP_B ) ) { - if( i == 0 ) + for( int ic = 0; ic < 6; ic++ ) { - corner_x = spoke_w / 2; - corner_y = spoke_w / 2; - th1 = start_angle; - th2 = pi / 2.0 - start_angle; + wxPoint cpos = corners_hole[ic]; + RotatePoint( &cpos, angle ); + cpos += PadShapePos; + aBooleng->AddPoint( cpos.x, cpos.y ); } - else if( i == 1 ) - { - corner_x = -spoke_w / 2; - corner_y = spoke_w / 2; - th1 = pi / 2.0 + start_angle; - th2 = pi - start_angle; - } - else if( i == 2 ) - { - corner_x = -spoke_w / 2; - corner_y = -spoke_w / 2; - th1 = -pi + start_angle; - th2 = -pi / 2.0 - start_angle; - } - else if( i == 3 ) - { - corner_x = spoke_w / 2; - corner_y = -spoke_w / 2; - th1 = -pi / 2.0 + start_angle; - th2 = -start_angle; - } - AppendCorner( to_int( x + corner_x ), to_int( y + corner_y ), STRAIGHT, 0 ); - AppendCorner( to_int( x + r * cos( th1 ) ), to_int( y + r * sin( - th1 ) ), STRAIGHT, 0 ); - AppendCorner( to_int( x + r * cos( th2 ) ), to_int( y + r * sin( - th2 ) ), ARC_CCW, 0 ); - Close( STRAIGHT ); + + aBooleng->EndPolygonAdd(); + angle += 1800; + if( angle >= 3600 ) + angle -= 3600; } } - else if( type == PAD_SQUARE || type == PAD_RECT - || type == PAD_RRECT || type == PAD_OVAL ) - { - // draw 4 rectangles - int xL = x - dx; - int xR = x - spoke_w / 2; - int yB = y - dy; - int yT = y - spoke_w / 2; - AppendCorner( xL, yB, STRAIGHT, 0 ); - AppendCorner( xR, yB, STRAIGHT, 0 ); - AppendCorner( xR, yT, STRAIGHT, 0 ); - AppendCorner( xL, yT, STRAIGHT, 0 ); - Close( STRAIGHT ); - xL = x + spoke_w / 2; - xR = x + dx; - AppendCorner( xL, yB, STRAIGHT, 0 ); - AppendCorner( xR, yB, STRAIGHT, 0 ); - AppendCorner( xR, yT, STRAIGHT, 0 ); - AppendCorner( xL, yT, STRAIGHT, 0 ); - Close( STRAIGHT ); - xL = x - dx; - xR = x - spoke_w / 2; - yB = y + spoke_w / 2; - yT = y + dy; - AppendCorner( xL, yB, STRAIGHT, 0 ); - AppendCorner( xR, yB, STRAIGHT, 0 ); - AppendCorner( xR, yT, STRAIGHT, 0 ); - AppendCorner( xL, yT, STRAIGHT, 0 ); - Close( STRAIGHT ); - xL = x + spoke_w / 2; - xR = x + dx; - AppendCorner( xL, yB, STRAIGHT, 0 ); - AppendCorner( xR, yB, STRAIGHT, 0 ); - AppendCorner( xR, yT, STRAIGHT, 0 ); - AppendCorner( xL, yT, STRAIGHT, 0 ); - Close( STRAIGHT ); - } -#endif } - return; + break; + } } @@ -391,7 +512,7 @@ void AddRoundedEndsSegmentPolygon( Bool_Engine* aBooleng, RotatePoint( &corner, ii ); corner.x += seg_len; RotatePoint( &corner, -delta_angle ); - corner += startp; + corner += startp; aBooleng->AddPoint( corner.x, corner.y ); } @@ -411,8 +532,52 @@ void AddRoundedEndsSegmentPolygon( Bool_Engine* aBooleng, corner = wxPoint( 0, -rayon ); RotatePoint( &corner, ii ); RotatePoint( &corner, -delta_angle ); - corner += startp; + corner += startp; aBooleng->AddPoint( corner.x, corner.y ); } + aBooleng->EndPolygonAdd(); } + + +/** function AddTextBoxWithClearancePolygon + * creates a polygon containing the text and add it to bool engine + */ +void AddTextBoxWithClearancePolygon( Bool_Engine* aBooleng, + TEXTE_PCB* aText, int aClearanceValue ) +{ + int corners[8]; // Buffer of coordinates + int ii; + + int dx = aText->Pitch() * aText->GetLength(); + int dy = aText->m_Size.y + aText->m_Width; + + /* Creates bounding box (rectangle) for an horizontal text */ + dx /= 2; dy /= 2; /* dx et dy = demi dimensionx X et Y */ + dx += aClearanceValue; + dy += aClearanceValue; + corners[0] = aText->m_Pos.x - dx; + corners[1] = aText->m_Pos.y - dy; + corners[2] = aText->m_Pos.x + dx; + corners[3] = aText->m_Pos.y - dy; + corners[4] = aText->m_Pos.x + dx; + corners[5] = aText->m_Pos.y + dy; + corners[6] = aText->m_Pos.x - dx; + corners[7] = aText->m_Pos.y + dy; + + // Rotate rectangle + RotatePoint( &corners[0], &corners[1], aText->m_Pos.x, aText->m_Pos.y, aText->m_Orient ); + RotatePoint( &corners[2], &corners[3], aText->m_Pos.x, aText->m_Pos.y, aText->m_Orient ); + RotatePoint( &corners[4], &corners[5], aText->m_Pos.x, aText->m_Pos.y, aText->m_Orient ); + RotatePoint( &corners[6], &corners[7], aText->m_Pos.x, aText->m_Pos.y, aText->m_Orient ); + + if( aBooleng->StartPolygonAdd( GROUP_B ) ) + { + for( ii = 0; ii < 8; ii += 2 ) + { + aBooleng->AddPoint( corners[ii], corners[ii + 1] ); + } + + aBooleng->EndPolygonAdd(); + } +}