# DrakX e Brezhoneg. # Copyright (C) 1999-2005 Mandriva # Thierry Vignaud , 1999-2007 # Jañ-Mai Drapier , 1999-2000 # msgid "" msgstr "" "Project-Id-Version: DrakX 10.2\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2009-10-29 18:09+0100\n" "PO-Revision-Date: 2009-10-29 18:17+0100\n" "Last-Translator: Thierry Vignaud \n" "Language-Team: Brezhoneg \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1;plural=0\n" #: display_help:49 display_help:54 drakbug:186 drakperm:136 #, c-format msgid "Help" msgstr "Skoazell" #: display_help:62 drakbug:191 drakfont:506 #, c-format msgid "Close" msgstr "Kuitaat" #: drakauth:24 drakauth:26 draksec:164 #, c-format msgid "Authentication" msgstr "Dilesadur" #: drakauth:37 drakclock:111 drakclock:125 drakdvb:74 drakfont:213 #: drakfont:226 drakfont:264 draksplash:202 finish-install:119 logdrake:170 #: logdrake:445 logdrake:450 scannerdrake:59 scannerdrake:101 scannerdrake:142 #: scannerdrake:200 scannerdrake:259 scannerdrake:729 scannerdrake:740 #: scannerdrake:879 scannerdrake:890 scannerdrake:960 #, c-format msgid "Error" msgstr "Fazi" #: drakboot:53 #, c-format msgid "No bootloader found, creating a new configuration" msgstr "N'eus karger loc'hañ ebet, o krouiñ ur gefluniadur nevez" #: drakboot:88 harddrake2:198 harddrake2:199 logdrake:71 #, c-format msgid "/_File" msgstr "/_Restr" #: drakboot:89 logdrake:77 #, c-format msgid "/File/_Quit" msgstr "/Restr/_Kuitaat" #: drakboot:89 harddrake2:199 logdrake:77 #, c-format msgid "Q" msgstr "Q" #: drakboot:129 #, c-format msgid "Text only" msgstr "Skrid hepken" #: drakboot:130 #, c-format msgid "Verbose" msgstr "Flapañ" #: drakboot:131 #, c-format msgid "Silent" msgstr "Didrouz" #: drakboot:137 drakbug:260 drakdvb:57 drakfont:682 drakperm:376 drakperm:386 #: drakups:27 harddrake2:527 localedrake:43 notify-x11-free-driver-switch:15 #: scannerdrake:51 scannerdrake:54 scannerdrake:297 scannerdrake:302 #: scannerdrake:954 #, c-format msgid "Warning" msgstr "Ho evezh" #: drakboot:138 #, c-format msgid "" "Your system bootloader is not in framebuffer mode. To activate graphical " "boot, select a graphic video mode from the bootloader configuration tool." msgstr "" #: drakboot:139 #, c-format msgid "Do you want to configure it now?" msgstr "Mennout a rit kefluniañ anezhañ bremañ ?" #: drakboot:148 #, c-format msgid "Install themes" msgstr "Staliañ ar gizioù" #: drakboot:150 #, c-format msgid "Graphical boot theme selection" msgstr "Dibabit ar c'hiz loc'hañ ar reizhiad" #: drakboot:153 #, c-format msgid "Graphical boot mode:" msgstr "Mod loc'hañ gant grafikoù :" #: drakboot:155 #, c-format msgid "Theme" msgstr "Giz" #: drakboot:158 #, c-format msgid "" "Display theme\n" "under console" msgstr "" "Diskouez ar c'hiz\n" "ouzh al letrin" #: drakboot:163 draksplash:26 #, c-format msgid "Create new theme" msgstr "Krouiñ gizioù nevez" #: drakboot:195 #, c-format msgid "Default user" msgstr "Arveriad dre ziouer" #: drakboot:196 #, c-format msgid "Default desktop" msgstr "Burev dre ziouer" #: drakboot:199 #, c-format msgid "No, I do not want autologin" msgstr "Ne fell ket din emereañ gant an dra-se" #: drakboot:200 #, c-format msgid "Yes, I want autologin with this (user, desktop)" msgstr "Ya, plijout a ra din gant emereañ (averiad, burev)" #: drakboot:207 #, c-format msgid "System mode" msgstr "Mod ar reizhiad" #: drakboot:210 #, c-format msgid "Launch the graphical environment when your system starts" msgstr "Lañsañ an endro grafikel pa vez loc'het ho reizhiad" #: drakboot:262 #, c-format msgid "Boot Style Configuration" msgstr "Kefluniadur giz al loc'hañ" #: drakboot:264 drakboot:268 #, c-format msgid "Video mode" msgstr "Mod video" #: drakboot:265 #, c-format msgid "" "Please choose a video mode, it will be applied to each of the boot entries " "selected below.\n" "Be sure your video card supports the mode you choose." msgstr "" #: drakbug:65 drakbug:152 #, c-format msgid "The \"%s\" program has crashed with the following error:" msgstr "" #: drakbug:76 #, c-format msgid "Mandriva Linux Bug Report Tool" msgstr "" #: drakbug:81 #, c-format msgid "Mandriva Linux Control Center" msgstr "Kreizenn ren Mandriva Linux" #: drakbug:82 #, c-format msgid "First Time Wizard" msgstr "Pratikoù/Arveriaded" #: drakbug:83 #, c-format msgid "Synchronization tool" msgstr "" #: drakbug:84 drakbug:216 #, c-format msgid "Standalone Tools" msgstr "" #: drakbug:86 drakbug:87 #, c-format msgid "Mandriva Online" msgstr "Mandriva Online" #: drakbug:88 #, c-format msgid "Remote Control" msgstr "Ren a-bell" #: drakbug:89 #, c-format msgid "Software Manager" msgstr "Merour Poelladoù" #: drakbug:90 #, c-format msgid "Windows Migration tool" msgstr "Ostil broierezh deus Windows" #: drakbug:91 #, c-format msgid "Configuration Wizards" msgstr "Skoazellerien kefluniadur" #: drakbug:113 #, c-format msgid "Select Mandriva Tool:" msgstr "Dibabit un ostilh Mandriva :" #: drakbug:114 #, c-format msgid "" "or Application Name\n" "(or Full Path):" msgstr "" "pe anv ar meziant\n" "(pe un hent leun) :" #: drakbug:117 #, c-format msgid "Find Package" msgstr "Klask Pakad" #: drakbug:118 #, c-format msgid "Browse" msgstr "Furchal" #: drakbug:120 #, c-format msgid "Package: " msgstr "Pakad : " #: drakbug:121 #, c-format msgid "Kernel:" msgstr "Kalon :" #: drakbug:151 #, c-format msgid "The \"%s\" program has segfaulted with the following error:" msgstr "" #: drakbug:155 #, c-format msgid "Its GDB trace is:" msgstr "Setu Gdb hent anezhañ  :" #: drakbug:158 #, c-format msgid "" "To submit a bug report, click on the report button. \n" "This will open a web browser window on %s where you'll find a form to fill " "in. The information displayed above will be transferred to that server" msgstr "" #: drakbug:160 #, c-format msgid "" "It would be very useful to attach to your report the output of the following " "command: %s." msgid_plural "" "Things useful to attach to your report are the output of the following " "commands: %s." msgstr[0] "" #: drakbug:163 #, c-format msgid "'%s'" msgstr "« %s »" #: drakbug:166 #, fuzzy, c-format msgid "You should also attach the following files: %s as well as %s." msgstr "Gwell e vefe koulz deoc'h staliañ ar pakadoù-mañ : %s" #: drakbug:173 #, c-format msgid "Please describe what you were doing when it crashed:" msgstr "" "Skrivit ar pezh e oac'h oc'h ober pa eo bet c'hoarvezhet ar gwallzarvoud :" #: drakbug:190 #, c-format msgid "Report" msgstr "Dezrevell" #: drakbug:226 #, c-format msgid "Not installed" msgstr "N'eo ket staliet" #: drakbug:236 #, c-format msgid "Package not installed" msgstr "N'eo ket staliet ar pakad" #: drakbug:261 #, c-format msgid "" "You must type in what you were doing when this bug happened in order to " "enable us to reproduce this bug and to increase the odds of fixing it" msgstr "" #: drakbug:262 #, c-format msgid "Thanks." msgstr "Mersi bras deoc'h." #: drakclock:30 draksec:170 #, c-format msgid "Date, Clock & Time Zone Settings" msgstr "Kefluniadur an deizid, an eurier hag an amzer" #: drakclock:39 #, c-format msgid "not defined" msgstr "n'eo ket lakaet" #: drakclock:41 #, c-format msgid "Change Time Zone" msgstr "Kemmañ an takad-eur" #: drakclock:44 #, c-format msgid "Timezone - DrakClock" msgstr "Takad-eur - DrakClock" #: drakclock:44 #, c-format msgid "Which is your timezone?" msgstr "Petra 'zo ar takad-eur ?" #: drakclock:45 #, c-format msgid "GMT - DrakClock" msgstr "GMT - DrakClock" #: drakclock:45 #, c-format msgid "Is your hardware clock set to GMT?" msgstr "Ha war GMT eo lakaet ho eurier periantel ?" #: drakclock:70 #, c-format msgid "Network Time Protocol" msgstr "Komenad Eur Rouedad (NTP)" #: drakclock:72 #, c-format msgid "" "Your computer can synchronize its clock\n" " with a remote time server using NTP" msgstr "" "Gellout a ra hoc'h urziataer gwiriekaat\n" " e eurier gant ur servijer a eur a-bell dre NTP" #: drakclock:73 #, c-format msgid "Enable Network Time Protocol" msgstr "Bevaat ar c'homenad Eur Rouedad (NTP)" #: drakclock:81 #, c-format msgid "Server:" msgstr "Servijer :" #: drakclock:95 #, c-format msgid "Timezone" msgstr "Takad-eur" #: drakclock:111 #, c-format msgid "Please enter a valid NTP server address." msgstr "Roit ur chomlec'h mat evit ar servijer NTP mar plij." #: drakclock:126 #, c-format msgid "Could not synchronize with %s." msgstr "" #: drakclock:127 drakdvb:149 draksplash:125 logdrake:175 scannerdrake:491 #, c-format msgid "Quit" msgstr "Kuitaat" #: drakclock:128 #, c-format msgid "Retry" msgstr "Adklask" #: drakclock:151 drakclock:161 #, c-format msgid "Reset" msgstr "Deraouekaat" #: drakdvb:30 #, c-format msgid "DVB" msgstr "DVB" #: drakdvb:39 harddrake2:101 #, c-format msgid "Channel" msgstr "Kanol" #: drakdvb:57 #, c-format msgid "%s already exists and its contents will be lost" msgstr "" #: drakdvb:74 #, c-format msgid "Could not get the list of available channels" msgstr "" #: drakdvb:80 draksec:73 drakups:99 harddrake2:381 scannerdrake:66 #: scannerdrake:70 scannerdrake:78 scannerdrake:319 scannerdrake:368 #: scannerdrake:504 scannerdrake:508 scannerdrake:530 service_harddrake:264 #, c-format msgid "Please wait" msgstr "Gortozit mar plij" #: drakdvb:84 #, c-format msgid "Detecting DVB channels, this will take a few minutes" msgstr "" #: drakdvb:85 drakfont:572 drakfont:652 drakfont:736 draksplash:213 #: drakups:217 logdrake:175 #, c-format msgid "Cancel" msgstr "Nullañ" #: drakdvb:148 #, fuzzy, c-format msgid "Detect Channels" msgstr "Kanol" #: drakdvb:150 #, fuzzy, c-format msgid "View Channel" msgstr "Kanol" #: drakedm:41 #, c-format msgid "GDM (GNOME Display Manager)" msgstr "GDM (merour diskwel GNOME)" #: drakedm:42 #, c-format msgid "KDM (KDE Display Manager)" msgstr "KDM (merour diskwel KDE)" #: drakedm:43 #, c-format msgid "XDM (X Display Manager)" msgstr "XDM (merour diskwel X)" #: drakedm:54 #, c-format msgid "Choosing a display manager" msgstr "O tibab ur merour diskwel" #: drakedm:55 #, c-format msgid "" "X11 Display Manager allows you to graphically log\n" "into your system with the X Window System running and supports running\n" "several different X sessions on your local machine at the same time." msgstr "" #: drakedm:74 #, c-format msgid "The change is done, do you want to restart the dm service?" msgstr "Great eo ar c'hemm, C'hoant ho peus e adloc'hañ ar servij dm ?" #: drakedm:75 #, c-format msgid "" "You are going to close all running programs and lose your current session. " "Are you really sure that you want to restart the dm service?" msgstr "" #: drakfont:187 #, c-format msgid "Search installed fonts" msgstr "Klask an nodrezhoù staliet" #: drakfont:189 #, c-format msgid "Unselect fonts installed" msgstr "Andiuz an nodrezhoù staliet" #: drakfont:213 #, c-format msgid "No fonts found" msgstr "Nodrezhoù ebet kavet" #: drakfont:217 #, c-format msgid "parse all fonts" msgstr "o lenn pep nodrezh" #: drakfont:222 drakfont:263 drakfont:338 drakfont:379 drakfont:383 #: drakfont:409 drakfont:427 drakfont:435 #, c-format msgid "done" msgstr "graet" #: drakfont:226 #, c-format msgid "Could not find any font in your mounted partitions" msgstr "Ne m'eus ket kavout un nodrezh e-barzh ho barzhadurioù marc'het" #: drakfont:261 #, c-format msgid "Reselect correct fonts" msgstr "Adibabit nodrezhoù mat" #: drakfont:264 #, c-format msgid "Could not find any font.\n" msgstr "Ne m'eus ket gallet kavout un nodrezh.\n" #: drakfont:274 #, c-format msgid "Search for fonts in installed list" msgstr "Klask an nodrezhoù e roll ar re staliet" #: drakfont:298 #, c-format msgid "%s fonts conversion" msgstr "" #: drakfont:336 #, c-format msgid "Fonts copy" msgstr "Adskrivañ nodrezhoù" #: drakfont:339 #, c-format msgid "True Type fonts installation" msgstr "Staliadur an nodrezhoù True Type" #: drakfont:347 #, c-format msgid "please wait during ttmkfdir..." msgstr "gortozit mar plij en ur ttmkfdir ..." #: drakfont:348 #, c-format msgid "True Type install done" msgstr "Graet eo staliadur an nodrezhoù True Type" #: drakfont:354 drakfont:369 #, c-format msgid "type1inst building" msgstr "o sevel gant type1inst" #: drakfont:363 #, c-format msgid "Ghostscript referencing" msgstr "" #: drakfont:380 #, c-format msgid "Suppress Temporary Files" msgstr "Lemel ar restroù padennek" #: drakfont:425 drakfont:431 #, c-format msgid "Suppress Fonts Files" msgstr "Lemel restroù ar fontoù" #: drakfont:439 #, c-format msgid "" "Before installing any fonts, be sure that you have the right to use and " "install them on your system.\n" "\n" "You can install the fonts the normal way. In rare cases, bogus fonts may " "hang up your X Server." msgstr "" #: drakfont:478 #, c-format msgid "Font Installation" msgstr "Staliadur ar fontoù" #: drakfont:489 #, c-format msgid "DrakFont" msgstr "DrakFont" #: drakfont:490 drakfont:642 #, c-format msgid "Font List" msgstr "Listenn nodrezhoù" #: drakfont:493 #, c-format msgid "Get Windows Fonts" msgstr "Tapout nodrezhoù Windows" #: drakfont:499 #, c-format msgid "About" msgstr "A-brepoz" #: drakfont:500 drakfont:541 #, c-format msgid "Options" msgstr "Dibarzhoù" #: drakfont:501 drakfont:721 #, c-format msgid "Uninstall" msgstr "Distaliañ" #: drakfont:502 #, c-format msgid "Import" msgstr "Enporzh" #: drakfont:520 #, c-format msgid "Drakfont" msgstr "Drakfont" #: drakfont:522 harddrake2:236 #, c-format msgid "Copyright (C) %s by Mandriva" msgstr "Copyright (C) %s gant Mandriva" #: drakfont:524 #, c-format msgid "Font installer." msgstr "Stalier fontoù." #: drakfont:526 harddrake2:240 #, c-format msgid "Mandriva Linux" msgstr "Mandriva Linux" #. -PO: put here name(s) and email(s) of translator(s) (eg: "John Smith ") #. -PO: put here name(s) and email(s) of translator(s) (eg: "John Smith ") #: drakfont:533 harddrake2:245 #, c-format msgid "_: Translator(s) name(s) & email(s)\n" msgstr "" "Jañ-Mai Drapier \n" "Thierry Vignaud \n" #: drakfont:543 #, c-format msgid "Choose the applications that will support the fonts:" msgstr "Dibabit ar meziantoù a implij an nodrezhioù :" #: drakfont:554 #, c-format msgid "Ghostscript" msgstr "Ghostscript" #: drakfont:555 #, c-format msgid "OpenOffice.org" msgstr "OpenOffice.org" #: drakfont:556 #, c-format msgid "Abiword" msgstr "Abiword" #: drakfont:557 #, c-format msgid "Generic Printers" msgstr "Moullerezioù boutin" #: drakfont:562 drakfont:572 draksplash:213 drakups:210 #, c-format msgid "Ok" msgstr "Ya" #: drakfont:571 #, c-format msgid "Select the font file or directory and click on 'Add'" msgstr "Dibabit restr pe renkell an nodrezh ha klikit ouzh « Ouzhpennañ »" #: drakfont:572 #, c-format msgid "File Selection" msgstr "Choazh ar restr" #: drakfont:576 #, c-format msgid "Fonts" msgstr "Nodrezhoù" #: drakfont:640 draksec:166 #, c-format msgid "Import fonts" msgstr "Enporzh an nodrezhoù" #: drakfont:646 drakups:299 drakups:361 drakups:381 #, c-format msgid "Add" msgstr "Ouzhpennañ" #: drakfont:647 drakfont:735 drakups:301 drakups:363 drakups:383 #, c-format msgid "Remove" msgstr "Lemel" #: drakfont:653 #, c-format msgid "Install" msgstr "Staliañ" #: drakfont:684 #, c-format msgid "Are you sure you want to uninstall the following fonts?" msgstr "Ha sur oc'h bezañ mennet da zistaliañ an nodezhoù a-heul ?" #: drakfont:688 draksec:60 harddrake2:326 #, c-format msgid "Yes" msgstr "Ya" #: drakfont:690 draksec:59 harddrake2:327 #, c-format msgid "No" msgstr "N'eo ket" #: drakfont:729 #, c-format msgid "Unselect All" msgstr "Andiuz an holl re" #: drakfont:732 #, c-format msgid "Select All" msgstr "Diuz an holl re" #: drakfont:749 #, c-format msgid "Importing fonts" msgstr "Oc'h enporzh an nodrezhoù" #: drakfont:753 drakfont:773 #, c-format msgid "Initial tests" msgstr "" #: drakfont:754 #, c-format msgid "Copy fonts on your system" msgstr "Eiliañ an nodrezhoù war ho reizhiad" #: drakfont:755 #, c-format msgid "Install & convert Fonts" msgstr "Staliañ & amdreiñ an nodrezhoù" #: drakfont:756 #, c-format msgid "Post Install" msgstr "Pa vez echu ar staliadur" #: drakfont:768 #, c-format msgid "Removing fonts" msgstr "O lemel an nodrezhoù" #: drakfont:774 #, c-format msgid "Remove fonts on your system" msgstr "Lemel an nodrezhoù eus ho reizhiad" #: drakfont:775 #, c-format msgid "Post Uninstall" msgstr "Goude an distaliadur" #: drakhelp:17 #, c-format msgid "" " drakhelp 0.1\n" "Copyright (C) %s Mandriva.\n" "This is free software and may be redistributed under the terms of the GNU " "GPL.\n" "\n" "Usage: \n" msgstr "" "drakhelp 0.1\n" "Copyright (C) %s Mandriva.\n" "Ur meziant frank eo an hini-mañ ha moien zo da zal'ch anezhañ hervez GNU " "GPL.\n" "\n" "Arveriadur :\n" #: drakhelp:22 #, c-format msgid " --help - display this help \n" msgstr " --help - diskouez an tamm-sikour-mañ\n" #: drakhelp:23 #, c-format msgid "" " --id - load the html help page which refers to id_label\n" msgstr "" #: drakhelp:24 #, c-format msgid "" " --doc - link to another web page ( for WM welcome " "frontend)\n" msgstr "" #: drakhelp:52 #, c-format msgid "Mandriva Linux Help Center" msgstr "Kreizenn sikourMandriva Linux" #: drakhelp:52 #, c-format msgid "No Help entry for %s\n" msgstr "Skoazell ebet evit %s\n" #: drakperm:23 #, c-format msgid "System settings" msgstr "Dibarzhoù ar reizhiad" #: drakperm:24 #, c-format msgid "Custom settings" msgstr "Kefluniadur diouzhoc'h" #: drakperm:25 #, c-format msgid "Custom & system settings" msgstr "Kefluniadur diouzhoc'h ha reizhiad" #: drakperm:33 #, c-format msgid "Security Permissions" msgstr "Aotreoù surantez" #: drakperm:45 #, c-format msgid "Editable" msgstr "Aozabl" #: drakperm:50 drakperm:320 #, c-format msgid "Path" msgstr "Hent" #: drakperm:50 drakperm:249 #, c-format msgid "User" msgstr "Arveriad" #: drakperm:50 drakperm:249 #, c-format msgid "Group" msgstr "Strollad" #: drakperm:50 drakperm:109 drakperm:332 draksec:181 #, c-format msgid "Permissions" msgstr "Aotreoù " #: drakperm:60 #, c-format msgid "Add a new rule" msgstr "Ouzhpennañ ur reollin nevez" #: drakperm:67 drakperm:102 drakperm:128 #, c-format msgid "Edit current rule" msgstr "Aozañ ar reollen red" #: drakperm:110 #, c-format msgid "" "Here you can see files to use in order to fix permissions, owners, and " "groups via msec.\n" "You can also edit your own rules which will owerwrite the default rules." msgstr "" #: drakperm:112 #, c-format msgid "" "The current security level is %s.\n" "Select permissions to see/edit" msgstr "" "%s eo al live surantez o ren.\n" "Dibabit an aotreoù da sellet ouzh pe da aozañ" #: drakperm:124 #, c-format msgid "Up" msgstr "Sevel" #: drakperm:124 #, c-format msgid "Move selected rule up one level" msgstr "Pignit ar reolenn dibabet" #: drakperm:125 #, c-format msgid "Down" msgstr "Diskenn" #: drakperm:125 #, c-format msgid "Move selected rule down one level" msgstr "Diskennit ar reolenn dibabet" #: drakperm:126 #, c-format msgid "Add a rule" msgstr "Ouzhpennañ ur reollin" #: drakperm:126 #, c-format msgid "Add a new rule at the end" msgstr "Ouzhpennañ ur reollin nevez d'ar fin" #: drakperm:127 #, c-format msgid "Delete" msgstr "Dilemel" #: drakperm:127 #, c-format msgid "Delete selected rule" msgstr "Lemel ar reollin dibabet" #: drakperm:128 drakups:300 drakups:362 drakups:382 #, c-format msgid "Edit" msgstr "Kemmañ" #: drakperm:241 #, c-format msgid "browse" msgstr "ergerzhet" #: drakperm:246 #, c-format msgid "user" msgstr "arveriad" #: drakperm:246 #, c-format msgid "group" msgstr "strollad" #: drakperm:246 #, c-format msgid "other" msgstr "all" #: drakperm:249 #, c-format msgid "Other" msgstr "All" #: drakperm:251 #, c-format msgid "Read" msgstr "Lenn" #. -PO: here %s will be either "user", "group" or "other" #: drakperm:254 #, c-format msgid "Enable \"%s\" to read the file" msgstr "" #: drakperm:258 #, c-format msgid "Write" msgstr "Skriv" #. -PO: here %s will be either "user", "group" or "other" #: drakperm:261 #, c-format msgid "Enable \"%s\" to write the file" msgstr "" #: drakperm:265 #, c-format msgid "Execute" msgstr "Seveniñ" #. -PO: here %s will be either "user", "group" or "other" #: drakperm:268 #, c-format msgid "Enable \"%s\" to execute the file" msgstr "" #: drakperm:271 #, c-format msgid "Sticky-bit" msgstr "" #: drakperm:271 #, c-format msgid "" "Used for directory:\n" " only owner of directory or file in this directory can delete it" msgstr "" #: drakperm:272 #, c-format msgid "Set-UID" msgstr "Set-UID" #: drakperm:272 #, c-format msgid "Use owner id for execution" msgstr "" #: drakperm:273 #, c-format msgid "Set-GID" msgstr "Set-GID" #: drakperm:273 #, c-format msgid "Use group id for execution" msgstr "" #: drakperm:290 #, c-format msgid "User:" msgstr "Arveriad :" #: drakperm:291 #, c-format msgid "Group:" msgstr "Strollad :" #: drakperm:295 #, c-format msgid "Current user" msgstr "Arveriad red" #: drakperm:296 #, c-format msgid "When checked, owner and group will not be changed" msgstr "" #: drakperm:306 #, c-format msgid "Path selection" msgstr "Diuzadenn an hent" #: drakperm:326 #, c-format msgid "Property" msgstr "Perzhioù" #: drakperm:376 #, c-format msgid "" "The first character of the path must be a slash (\"/\"):\n" "\"%s\"" msgstr "" #: drakperm:386 #, c-format msgid "Both the username and the group must valid!" msgstr "" #: drakperm:387 #, c-format msgid "User: %s" msgstr "Arveriad : %s" #: drakperm:388 #, c-format msgid "Group: %s" msgstr "Strollad : %s" #: draksec:54 #, c-format msgid "ALL" msgstr "HOLL" #: draksec:55 #, c-format msgid "LOCAL" msgstr "LEC'HEL" #: draksec:56 #, c-format msgid "NONE" msgstr "EBET" #: draksec:57 #, c-format msgid "Default" msgstr "Dre ziouer" #: draksec:58 #, c-format msgid "Ignore" msgstr "Tremen e-biou" #: draksec:91 #, c-format msgid "Security Level and Checks" msgstr "Live ha gwiriekaat surentez" #: draksec:114 #, c-format msgid "Configure authentication required to access Mandriva tools" msgstr "" #: draksec:117 #, c-format msgid "No password" msgstr "Tremenger ebet" #: draksec:118 #, c-format msgid "Root password" msgstr "Tremenger root" #: draksec:119 #, c-format msgid "User password" msgstr "Tremenger an arveriad" #: draksec:149 draksec:204 #, c-format msgid "Software Management" msgstr "Merour ar meziantoù" #: draksec:150 #, c-format msgid "Mandriva Update" msgstr "Mandriva Update" #: draksec:151 #, c-format msgid "Software Media Manager" msgstr "Merour ar pakadoù" #: draksec:152 #, c-format msgid "Configure 3D Desktop effects" msgstr "Kefluniañ efedoù ar vurev 3D" #: draksec:153 #, c-format msgid "Graphical Server Configuration" msgstr "Kefluniadur ar servijer graphek" #: draksec:154 #, c-format msgid "Mouse Configuration" msgstr "Kefluniadur logod" #: draksec:155 #, c-format msgid "Keyboard Configuration" msgstr "Kefluniadur ar stokellaoueg" #: draksec:156 #, c-format msgid "UPS Configuration" msgstr "Kefluniadur UPS" #: draksec:157 #, c-format msgid "Network Configuration" msgstr "Kefluniadur an rouedad" #: draksec:158 #, c-format msgid "Hosts definitions" msgstr "Liketennoù ostiz" #: draksec:159 #, c-format msgid "Network Center" msgstr "Kreizenn ren rouedad" #: draksec:160 #, c-format msgid "Wireless Network Roaming" msgstr "" #: draksec:161 #, c-format msgid "VPN" msgstr "VPN" #: draksec:162 #, c-format msgid "Proxy Configuration" msgstr "Kefluniadur ar proksi" #: draksec:163 #, c-format msgid "Connection Sharing" msgstr "Rannañ ar gevreadenn" #: draksec:165 #, c-format msgid "Backups" msgstr "Dielloù" #: draksec:167 logdrake:52 #, c-format msgid "Logs" msgstr "Kazetennoù" #: draksec:168 #, c-format msgid "Services" msgstr "Servijerioù" #: draksec:169 #, c-format msgid "Users" msgstr "Arveriaded" #: draksec:171 #, c-format msgid "Boot Configuration" msgstr "Kefluniadur loc'hañ" #: draksec:205 #, c-format msgid "Hardware" msgstr "Periantel" #: draksec:206 #, c-format msgid "Network" msgstr "Rouedad" #: draksec:207 #, c-format msgid "System" msgstr "Reizhiad" #: draksec:208 #, c-format msgid "Boot" msgstr "Loc'hañ" #: draksound:48 #, c-format msgid "No Sound Card detected!" msgstr "Kartenn gwelet ebet !" #. -PO: keep the double empty lines between sections, this is formatted a la LaTeX #: draksound:51 #, c-format msgid "" "No Sound Card has been detected on your machine. Please verify that a Linux-" "supported Sound Card is correctly plugged in.\n" "\n" "\n" "You can visit our hardware database at:\n" "\n" "\n" "http://www.mandrivalinux.com/en/hardware.php3" msgstr "" #: draksound:58 #, c-format msgid "" "\n" "\n" "\n" "Note: if you've an ISA PnP sound card, you'll have to use the alsaconf or " "the sndconfig program. Just type \"alsaconf\" or \"sndconfig\" in a console." msgstr "" #: draksplash:33 #, c-format msgid "X coordinate of text box" msgstr "Lec'h x ar bouest skrid" #: draksplash:34 #, c-format msgid "Y coordinate of text box" msgstr "Lec'h y ar bouest skrid" #: draksplash:35 #, c-format msgid "Text box width" msgstr "Ledander ar bouest skrid" #: draksplash:36 #, c-format msgid "Text box height" msgstr "Uhelder ar bouest skrid" #: draksplash:37 #, c-format msgid "" "The progress bar X coordinate\n" "of its upper left corner" msgstr "" #: draksplash:38 #, c-format msgid "" "The progress bar Y coordinate\n" "of its upper left corner" msgstr "" #: draksplash:39 #, c-format msgid "The width of the progress bar" msgstr "Ledander ar varrenn araogenn" #: draksplash:40 #, c-format msgid "The height of the progress bar" msgstr "Uhelder ar varrenn araogenn" #: draksplash:41 #, c-format msgid "X coordinate of the text" msgstr "Lec'h x ar skrid" #: draksplash:42 #, c-format msgid "Y coordinate of the text" msgstr "Lec'h y ar skrid" #: draksplash:43 #, c-format msgid "Text box transparency" msgstr "" #: draksplash:44 #, c-format msgid "Progress box transparency" msgstr "" #: draksplash:45 #, c-format msgid "Text size" msgstr "Ment ar skrid" #: draksplash:62 #, c-format msgid "Progress Bar" msgstr "" #: draksplash:65 #, c-format msgid "Choose progress bar color 1" msgstr "Dibabit liv 1 ar varrenn araogenn" #: draksplash:67 #, c-format msgid "Choose progress bar color 2" msgstr "Dibabit liv 2 ar varrenn araogenn" #: draksplash:69 #, c-format msgid "Choose progress bar background" msgstr "Dibabit drekleur ar varrenn araogenn" #: draksplash:72 #, c-format msgid "Gradient type" msgstr "" #: draksplash:78 #, c-format msgid "Text" msgstr "Skrid" #: draksplash:80 #, c-format msgid "Choose text color" msgstr "Dibabit liv ar skrid" #: draksplash:83 draksplash:102 #, c-format msgid "Choose picture" msgstr "Dibabit ur skeudenn" #: draksplash:87 #, c-format msgid "Silent bootsplash" msgstr "Skeudenn loc'hañ didrouz" #: draksplash:90 #, c-format msgid "Choose text zone color" msgstr "Dibabit liv gorread ar skrid" #: draksplash:93 #, c-format msgid "Text color" msgstr "Liv ar skrid" #: draksplash:97 #, c-format msgid "Background color" msgstr "Liv an drekleur" #: draksplash:103 #, c-format msgid "Verbose bootsplash" msgstr "Mod flapañ" #: draksplash:110 #, c-format msgid "Theme name" msgstr "Anv ar giz" #: draksplash:115 #, c-format msgid "Final resolution" msgstr "Spister diwezhañ" #: draksplash:119 #, c-format msgid "Display logo on Console" msgstr "Diskouez al logo ouzh al letrin" #: draksplash:124 #, c-format msgid "Save theme" msgstr "Enrollañ ar c'hiz" #: draksplash:187 #, c-format msgid "Please enter a theme name" msgstr "Roit anv ur c'hiz mar plij" #: draksplash:190 #, c-format msgid "Please select a splash image" msgstr "Dibabit ur skeudenn loc'hañ, mar plij" #: draksplash:193 #, c-format msgid "saving Bootsplash theme..." msgstr "emon oc'h enrollañ giz ar skeudenn loc'hañ ..." #: draksplash:202 #, c-format msgid "Unable to load image file %s" msgstr "N'hell ket kargañ ar restr skeudenn %s" #: draksplash:213 #, c-format msgid "choose image" msgstr "dibabit ur skeudenn" #: draksplash:228 #, c-format msgid "Color selection" msgstr "Choazh al liv" #: drakups:71 #, c-format msgid "Connected through a serial port or an usb cable" msgstr "" #: drakups:72 #, c-format msgid "Manual configuration" msgstr "Kefluniadur-dorn" #: drakups:78 #, c-format msgid "Add an UPS device" msgstr "Ouzhpennañ un drobarzhell UPS" #: drakups:81 #, c-format msgid "" "Welcome to the UPS configuration utility.\n" "\n" "Here, you'll add a new UPS to your system.\n" msgstr "" #: drakups:88 #, c-format msgid "" "We're going to add an UPS device.\n" "\n" "Do you want to autodetect UPS devices connected to this machine or to " "manually select them?" msgstr "" #: drakups:91 #, c-format msgid "Autodetection" msgstr "Dinoiñ dre ardivink" #: drakups:99 harddrake2:381 #, c-format msgid "Detection in progress" msgstr "O klask" #: drakups:118 drakups:157 logdrake:457 logdrake:463 #, c-format msgid "Congratulations" msgstr "Brav" #: drakups:119 #, c-format msgid "The wizard successfully added the following UPS devices:" msgstr "" #: drakups:121 #, c-format msgid "No new UPS devices was found" msgstr "N'eus trobarzhelloù UPS nevez kavet" #: drakups:126 drakups:138 #, c-format msgid "UPS driver configuration" msgstr "Kefluniadur ar sturier UPS" #: drakups:126 #, c-format msgid "Please select your UPS model." msgstr "Dibabit seurt hoc'h UPS, mar plij." #: drakups:127 #, c-format msgid "Manufacturer / Model:" msgstr "Farder / Gobari :" #: drakups:138 #, c-format msgid "" "We are configuring the \"%s\" UPS from \"%s\".\n" "Please fill in its name, its driver and its port." msgstr "" #: drakups:143 #, c-format msgid "Name:" msgstr "Anv :" #: drakups:143 #, c-format msgid "The name of your ups" msgstr "Anv hon UPS" #: drakups:144 #, c-format msgid "Driver:" msgstr "Sturier :" #: drakups:144 #, c-format msgid "The driver that manages your ups" msgstr "Sturier hoc'h UPS" #: drakups:145 #, c-format msgid "Port:" msgstr "Porzh :" #: drakups:147 #, c-format msgid "The port on which is connected your ups" msgstr "Ar porzh a-steud m'eo luget ho ups outañ" #: drakups:157 #, c-format msgid "The wizard successfully configured the new \"%s\" UPS device." msgstr "" #: drakups:248 #, c-format msgid "UPS devices" msgstr "Trobarzhelloù UPS" #: drakups:249 drakups:268 drakups:284 harddrake2:89 harddrake2:115 #: harddrake2:122 #, c-format msgid "Name" msgstr "Anv" #: drakups:249 harddrake2:137 #, c-format msgid "Driver" msgstr "Sturier" #: drakups:249 harddrake2:55 #, c-format msgid "Port" msgstr "Porzh" #: drakups:267 #, c-format msgid "UPS users" msgstr "Arveriaded UPS" #: drakups:283 #, c-format msgid "Access Control Lists" msgstr "" #: drakups:284 #, c-format msgid "IP address" msgstr "Chomlec'h IP" #: drakups:284 #, c-format msgid "IP mask" msgstr "Maskl IP" #: drakups:296 #, c-format msgid "Rules" msgstr "Reolennoù" #: drakups:297 #, c-format msgid "Action" msgstr "Gwezhiad" #: drakups:297 harddrake2:86 #, c-format msgid "Level" msgstr "Live" #: drakups:297 #, c-format msgid "ACL name" msgstr "Anv an ACL" #: drakups:297 finish-install:179 #, c-format msgid "Password" msgstr "Tremenger" #: drakups:329 #, c-format msgid "UPS Management" msgstr "Melestradur UPS" #: drakups:333 drakups:342 #, c-format msgid "DrakUPS" msgstr "DrakUPS" #: drakups:339 #, c-format msgid "Welcome to the UPS configuration tools" msgstr "Degemer en ostilh ar c'hefluniadur UPS" #: drakxtv:67 #, c-format msgid "No TV Card detected!" msgstr "Kartenn TV ebet !" #. -PO: keep the double empty lines between sections, this is formatted a la LaTeX #: drakxtv:69 #, c-format msgid "" "No TV Card has been detected on your machine. Please verify that a Linux-" "supported Video/TV Card is correctly plugged in.\n" "\n" "\n" "You can visit our hardware database at:\n" "\n" "\n" "http://www.mandrivalinux.com/en/hardware.php3" msgstr "" #: finish-install:56 #, c-format msgid "Keyboard" msgstr "Stokellaoueg" #: finish-install:57 #, c-format msgid "Please, choose your keyboard layout." msgstr "Dibabit reizhadur ho stokellaoueg, mar plij." #: finish-install:177 finish-install:195 finish-install:207 #, c-format msgid "Encrypted home partition" msgstr "" #: finish-install:177 #, c-format msgid "Please enter a password for the %s user" msgstr "Roit un tremenger evit an arveriad %s mar plij" #: finish-install:180 #, c-format msgid "Password (again)" msgstr "Tremenger (adarre)" #: finish-install:195 #, c-format msgid "Creating encrypted home partition" msgstr "" #: finish-install:207 #, c-format msgid "Formatting encrypted home partition" msgstr "" #: harddrake2:29 #, c-format msgid "Alternative drivers" msgstr "Sturierien all" #: harddrake2:30 #, c-format msgid "the list of alternative drivers for this sound card" msgstr "roll ar sturierien all evit ar gartenn gwelet-mañ" #: harddrake2:32 harddrake2:124 #, c-format msgid "Bus" msgstr "Bus" #: harddrake2:33 #, c-format msgid "" "this is the physical bus on which the device is plugged (eg: PCI, USB, ...)" msgstr "" #: harddrake2:35 harddrake2:150 #, c-format msgid "Bus identification" msgstr "" #: harddrake2:36 #, c-format msgid "" "- PCI and USB devices: this lists the vendor, device, subvendor and " "subdevice PCI/USB ids" msgstr "" #: harddrake2:38 #, c-format msgid "Location on the bus" msgstr "Lec'hel war ar bus" #: harddrake2:39 #, c-format msgid "" "- pci devices: this gives the PCI slot, device and function of this card\n" "- eide devices: the device is either a slave or a master device\n" "- scsi devices: the scsi bus and the scsi device ids" msgstr "" #: harddrake2:42 #, c-format msgid "Drive capacity" msgstr "" #: harddrake2:42 #, c-format msgid "special capacities of the driver (burning ability and or DVD support)" msgstr "" #: harddrake2:43 #, c-format msgid "Description" msgstr "Deskrivadur" #: harddrake2:43 #, c-format msgid "this field describes the device" msgstr "" #: harddrake2:44 #, c-format msgid "Old device file" msgstr "Trobarzhell kozh ar restr" #: harddrake2:45 #, c-format msgid "old static device name used in dev package" msgstr "" #. -PO: here "module" is the "jargon term" for a kernel driver #: harddrake2:48 #, c-format msgid "Module" msgstr "Mollad" #: harddrake2:48 #, c-format msgid "the module of the GNU/Linux kernel that handles the device" msgstr "Mollad ar galon GNU/Linux hag a ra tro-dro an drobarzhell" #: harddrake2:49 #, c-format msgid "Extended partitions" msgstr "Parzhadurioù astennet" #: harddrake2:49 #, c-format msgid "the number of extended partitions" msgstr "niver a parzhadurioù astennet" #: harddrake2:50 #, c-format msgid "Geometry" msgstr "Mentoniezh" #: harddrake2:50 #, c-format msgid "Cylinder/head/sectors geometry of the disk" msgstr "" #: harddrake2:51 #, c-format msgid "Disk controller" msgstr "Kontroller pladenn" #: harddrake2:51 #, c-format msgid "the disk controller on the host side" msgstr "ar gontroller pladenn ouzh an ostiz" #: harddrake2:52 #, c-format msgid "Identifier" msgstr "Anavezoud" #: harddrake2:52 #, c-format msgid "usually the device serial number" msgstr "" #: harddrake2:53 #, c-format msgid "Media class" msgstr "Renkad ar vedia" #: harddrake2:53 #, c-format msgid "class of hardware device" msgstr "Renkad an drobarzhell" #: harddrake2:54 harddrake2:87 #, c-format msgid "Model" msgstr "Gobari" #: harddrake2:54 #, c-format msgid "hard disk model" msgstr "Gobari ar bladenn" #: harddrake2:55 #, c-format msgid "network printer port" msgstr "porzh ar voullerez rouedad" #: harddrake2:56 #, c-format msgid "Primary partitions" msgstr "Parzhadurioù kentañ" #: harddrake2:56 #, c-format msgid "the number of the primary partitions" msgstr "niver a parzhadurioù kentañ" #: harddrake2:57 harddrake2:92 #, c-format msgid "Vendor" msgstr "Gwerzher" #: harddrake2:57 #, c-format msgid "the vendor name of the device" msgstr "anv gwerzher an drobarzhell" #: harddrake2:58 #, c-format msgid "PCI domain" msgstr "Domani PCI" #: harddrake2:58 #, c-format msgid "the PCI domain of the device" msgstr "domani PCI an drobarzhell" #: harddrake2:60 #, fuzzy, c-format msgid "PCI revision" msgstr "Aotreoù " #: harddrake2:61 #, c-format msgid "Bus PCI #" msgstr "Bus PCI #" #: harddrake2:59 #, c-format msgid "the PCI bus on which the device is plugged" msgstr "Ar bus PCI a-benn lugellañ an drobarzhell" #: harddrake2:60 #, c-format msgid "PCI device #" msgstr "Trobarzhell PCI #" #: harddrake2:60 #, c-format msgid "PCI device number" msgstr "niverenn an drobarzhell PCI" #: harddrake2:61 #, c-format msgid "PCI function #" msgstr "Fonksion PCI niv." #: harddrake2:61 #, c-format msgid "PCI function number" msgstr "Niver a fonksion PCI" #: harddrake2:62 #, c-format msgid "Vendor ID" msgstr "ID ar werzher" #: harddrake2:62 #, c-format msgid "this is the standard numerical identifier of the vendor" msgstr "" #: harddrake2:63 #, c-format msgid "Device ID" msgstr "ID an drobarzhell" #: harddrake2:63 #, c-format msgid "this is the numerical identifier of the device" msgstr "" #: harddrake2:64 #, c-format msgid "Sub vendor ID" msgstr "" #: harddrake2:64 #, c-format msgid "this is the minor numerical identifier of the vendor" msgstr "" #: harddrake2:65 #, c-format msgid "Sub device ID" msgstr "IsID an drobarzhell" #: harddrake2:65 #, c-format msgid "this is the minor numerical identifier of the device" msgstr "" #: harddrake2:66 #, c-format msgid "Device USB ID" msgstr "ID an drobarzhell USB" #: harddrake2:66 #, c-format msgid ".." msgstr ".." #: harddrake2:70 #, c-format msgid "Bogomips" msgstr "Bogomips" #: harddrake2:70 #, c-format msgid "" "the GNU/Linux kernel needs to run a calculation loop at boot time to " "initialize a timer counter. Its result is stored as bogomips as a way to " "\"benchmark\" the cpu." msgstr "" #: harddrake2:71 #, c-format msgid "Cache size" msgstr "Ment ar grubuilh" #: harddrake2:71 #, c-format msgid "size of the (second level) cpu cache" msgstr "" #. -PO: here "comas" is the medical coma, not the lexical coma!! #: harddrake2:74 #, c-format msgid "Coma bug" msgstr "" #: harddrake2:74 #, c-format msgid "whether this cpu has the Cyrix 6x86 Coma bug" msgstr "" #: harddrake2:75 #, c-format msgid "Cpuid family" msgstr "Familh cpuid" #: harddrake2:75 #, c-format msgid "family of the cpu (eg: 6 for i686 class)" msgstr "" #: harddrake2:76 #, c-format msgid "Cpuid level" msgstr "Live cpuid" #: harddrake2:76 #, c-format msgid "information level that can be obtained through the cpuid instruction" msgstr "" #: harddrake2:77 #, c-format msgid "Frequency (MHz)" msgstr "Frekañs (Mhz)" #: harddrake2:77 #, c-format msgid "" "the CPU frequency in MHz (Megahertz which in first approximation may be " "coarsely assimilated to number of instructions the cpu is able to execute " "per second)" msgstr "" #: harddrake2:78 #, c-format msgid "Flags" msgstr "Bannielloù" #: harddrake2:78 #, c-format msgid "CPU flags reported by the kernel" msgstr "" #: harddrake2:79 #, c-format msgid "Fdiv bug" msgstr "Bug fdiv" #: harddrake2:80 #, c-format msgid "" "Early Intel Pentium chips manufactured have a bug in their floating point " "processor which did not achieve the required precision when performing a " "Floating point DIVision (FDIV)" msgstr "" #: harddrake2:81 #, c-format msgid "Is FPU present" msgstr "Bez eus un UNS" #: harddrake2:81 #, c-format msgid "yes means the processor has an arithmetic coprocessor" msgstr "" #: harddrake2:82 #, c-format msgid "Whether the FPU has an irq vector" msgstr "Ma 'z eus ur vektor IRQ gant an UNS" #: harddrake2:82 #, c-format msgid "yes means the arithmetic coprocessor has an exception vector attached" msgstr "" #: harddrake2:83 #, c-format msgid "F00f bug" msgstr "Buf f00f" #: harddrake2:83 #, c-format msgid "early pentiums were buggy and freezed when decoding the F00F bytecode" msgstr "" #: harddrake2:84 #, c-format msgid "Halt bug" msgstr "Bug halt" #: harddrake2:85 #, c-format msgid "" "Some of the early i486DX-100 chips cannot reliably return to operating mode " "after the \"halt\" instruction is used" msgstr "" #: harddrake2:86 #, c-format msgid "sub generation of the cpu" msgstr "" #: harddrake2:87 #, c-format msgid "generation of the cpu (eg: 8 for Pentium III, ...)" msgstr "" #: harddrake2:88 #, c-format msgid "Model name" msgstr "Anv ar gobari" #: harddrake2:88 #, c-format msgid "official vendor name of the cpu" msgstr "" #: harddrake2:89 #, c-format msgid "the name of the CPU" msgstr "Anv an UTK" #: harddrake2:90 #, c-format msgid "Processor ID" msgstr "ID ar c'hewerier" #: harddrake2:90 #, c-format msgid "the number of the processor" msgstr "Niver ar c'hewerier" #: harddrake2:91 #, c-format msgid "Model stepping" msgstr "" #: harddrake2:91 #, c-format msgid "stepping of the cpu (sub model (generation) number)" msgstr "" #: harddrake2:92 #, c-format msgid "the vendor name of the processor" msgstr "Anv gwerzhour ar c'hewerier" #: harddrake2:93 #, c-format msgid "Write protection" msgstr "Anskrivadus" #: harddrake2:93 #, c-format msgid "" "the WP flag in the CR0 register of the cpu enforce write protection at the " "memory page level, thus enabling the processor to prevent unchecked kernel " "accesses to user memory (aka this is a bug guard)" msgstr "" #: harddrake2:97 #, c-format msgid "Floppy format" msgstr "Furmad ar bladennig" #: harddrake2:97 #, c-format msgid "format of floppies supported by the drive" msgstr "" #: harddrake2:101 #, c-format msgid "EIDE/SCSI channel" msgstr "Kanol EIDE/SCSI" #: harddrake2:102 #, c-format msgid "Disk identifier" msgstr "Anavezoud ar bladenn" #: harddrake2:102 #, c-format msgid "usually the disk serial number" msgstr "" #: harddrake2:103 #, c-format msgid "Logical unit number" msgstr "" #: harddrake2:103 #, c-format msgid "" "the SCSI target number (LUN). SCSI devices connected to a host are uniquely " "identified by a\n" "channel number, a target id and a logical unit number" msgstr "" #. -PO: here, "size" is the size of the ram chip (eg: 128Mo, 256Mo, ...) #: harddrake2:110 #, c-format msgid "Installed size" msgstr "Ment staliet" #: harddrake2:110 #, c-format msgid "Installed size of the memory bank" msgstr "" #: harddrake2:111 #, c-format msgid "Enabled Size" msgstr "Ment bev" #: harddrake2:111 #, c-format msgid "Enabled size of the memory bank" msgstr "" #: harddrake2:112 harddrake2:121 #, c-format msgid "Type" msgstr "Seurt" #: harddrake2:112 #, c-format msgid "type of the memory device" msgstr "seurt an drobarzhell vemor" #: harddrake2:113 #, c-format msgid "Speed" msgstr "Tizh" #: harddrake2:113 #, c-format msgid "Speed of the memory bank" msgstr "" #: harddrake2:114 #, c-format msgid "Bank connections" msgstr "" #: harddrake2:115 #, c-format msgid "Socket designation of the memory bank" msgstr "" #: harddrake2:119 #, c-format msgid "Device file" msgstr "Restr an drobarzhell" #: harddrake2:119 #, c-format msgid "" "the device file used to communicate with the kernel driver for the mouse" msgstr "" #: harddrake2:120 #, c-format msgid "Emulated wheel" msgstr "" #: harddrake2:120 #, c-format msgid "whether the wheel is emulated or not" msgstr "" #: harddrake2:121 #, c-format msgid "the type of the mouse" msgstr "seurt al logodenn" #: harddrake2:122 #, c-format msgid "the name of the mouse" msgstr "anv al logodenn" #: harddrake2:123 #, c-format msgid "Number of buttons" msgstr "Niver a nozelioù" #: harddrake2:123 #, c-format msgid "the number of buttons the mouse has" msgstr "niver a nozelioù gand al logodenn" #: harddrake2:124 #, c-format msgid "the type of bus on which the mouse is connected" msgstr "" #: harddrake2:125 #, c-format msgid "Mouse protocol used by X11" msgstr "Komenad logod implijet gant X11" #: harddrake2:125 #, c-format msgid "the protocol that the graphical desktop use with the mouse" msgstr "" #: harddrake2:132 harddrake2:141 harddrake2:148 harddrake2:156 harddrake2:337 #, c-format msgid "Identification" msgstr "Dilesadur" #: harddrake2:133 harddrake2:149 #, c-format msgid "Connection" msgstr "Kevreadenn" #: harddrake2:142 #, c-format msgid "Performances" msgstr "" #: harddrake2:143 #, c-format msgid "Bugs" msgstr "Bugoù" #: harddrake2:144 #, c-format msgid "FPU" msgstr "UNS" #: harddrake2:151 #, c-format msgid "Device" msgstr "Trobarzhell" #: harddrake2:152 #, c-format msgid "Partitions" msgstr "Parzhadurioù" #: harddrake2:157 #, c-format msgid "Features" msgstr "Arc'hweloù" #. -PO: please keep all "/" characters !!! #: harddrake2:180 logdrake:78 #, c-format msgid "/_Options" msgstr "/_Dibarzhoù" #: harddrake2:181 harddrake2:210 logdrake:80 #, c-format msgid "/_Help" msgstr "/_Skoazell" #: harddrake2:185 #, c-format msgid "/Autodetect _printers" msgstr "/Kavout _moullerezioù" #: harddrake2:186 #, c-format msgid "/Autodetect _modems" msgstr "/Kavout m_odemioù" #: harddrake2:187 #, c-format msgid "/Autodetect _jaz drives" msgstr "/Kavout an drobarzhelloù _jaz" #: harddrake2:188 #, c-format msgid "/Autodetect parallel _zip drives" msgstr "" #: harddrake2:192 #, c-format msgid "Hardware Configuration" msgstr "Kefluniadur ar periantal" #: harddrake2:199 #, c-format msgid "/_Quit" msgstr "/_Kuitaat" #: harddrake2:212 #, c-format msgid "/_Fields description" msgstr "/Deskrivadur an _tachennoù" #: harddrake2:214 #, c-format msgid "Harddrake help" msgstr "Skoazell Harddrake" #: harddrake2:215 #, c-format msgid "" "Description of the fields:\n" "\n" msgstr "" "Deskrivadur an tachennoù :\n" "\n" #: harddrake2:223 #, c-format msgid "Select a device!" msgstr "Dibabit un drobarzhell !" #: harddrake2:223 #, c-format msgid "" "Once you've selected a device, you'll be able to see the device information " "in fields displayed on the right frame (\"Information\")" msgstr "" #: harddrake2:229 #, c-format msgid "/_Report Bug" msgstr "/_Reiñ da c'houzout ur gudenn" #: harddrake2:231 #, c-format msgid "/_About..." msgstr "/_A-brepoz ..." #: harddrake2:234 #, c-format msgid "Harddrake" msgstr "Harddrake" #: harddrake2:238 #, c-format msgid "This is HardDrake, a %s hardware configuration tool." msgstr "Setu HardDrake, an ostilh %s evit kefluniañ ar periantel." #: harddrake2:271 #, c-format msgid "Detected hardware" msgstr "Periantel kavet" #: harddrake2:274 scannerdrake:286 #, c-format msgid "Information" msgstr "Titouroù" #: harddrake2:276 #, c-format msgid "Set current driver options" msgstr "Lakaat dibarzhoù ar sturier red" #: harddrake2:283 #, c-format msgid "Run config tool" msgstr "Seveniñ an ostilh kefluniadur" #: harddrake2:303 #, c-format msgid "" "Click on a device in the left tree in order to display its information here." msgstr "" "Klikit ouzh un drobarzhell e-barzh ar wezenn a-gleiz a-benn ma ziskouez " "titouroù anezhañ amañ." #: harddrake2:324 notify-x11-free-driver-switch:13 #, c-format msgid "unknown" msgstr "anavez" #: harddrake2:325 #, c-format msgid "Unknown" msgstr "Anavez" #: harddrake2:345 #, c-format msgid "Misc" msgstr "A bep seurt" #: harddrake2:429 #, c-format msgid "secondary" msgstr "eil derez" #: harddrake2:429 #, c-format msgid "primary" msgstr "kentañ" #: harddrake2:433 #, c-format msgid "burner" msgstr "engraver" #: harddrake2:433 #, c-format msgid "DVD" msgstr "DVD" #: harddrake2:531 #, c-format msgid "The following packages need to be installed:\n" msgstr "Ar pakadoù a-heul zo war-nes bezañ staliet :\n" #: localedrake:38 #, c-format msgid "LocaleDrake" msgstr "LocaleDrake" #: localedrake:44 #, c-format msgid "You should install the following packages: %s" msgstr "Gwell e vefe koulz deoc'h staliañ ar pakadoù-mañ : %s" #. -PO: the following is used to combine packages names. eg: "initscripts, harddrake, yudit" #: localedrake:47 #, c-format msgid ", " msgstr ", " #: logdrake:51 #, c-format msgid "Mandriva Linux Tools Logs" msgstr "" #: logdrake:65 #, c-format msgid "Show only for the selected day" msgstr "Diskouez hepken an deiz dibabet" #: logdrake:72 #, c-format msgid "/File/_New" msgstr "/Rest/_Nevez" #: logdrake:72 #, c-format msgid "N" msgstr "N" #: logdrake:73 #, c-format msgid "/File/_Open" msgstr "/Restr/_Digoriñ" #: logdrake:73 #, c-format msgid "O" msgstr "D" #: logdrake:74 #, c-format msgid "/File/_Save" msgstr "/Restr/_Enrollañ" #: logdrake:74 #, c-format msgid "S" msgstr "G" #: logdrake:75 #, c-format msgid "/File/Save _As" msgstr "/Restr/_Gwarediñ dindan" #: logdrake:76 #, c-format msgid "/File/-" msgstr "/Restr/-" #: logdrake:79 #, c-format msgid "/Options/Test" msgstr "/Dibarzhoù/Arnodenn" #: logdrake:81 #, c-format msgid "/Help/_About..." msgstr "/Skoazell/_A-brepoz ..." #: logdrake:110 #, c-format msgid "" "_:this is the auth.log log file\n" "Authentication" msgstr "Dilesadur" #: logdrake:111 #, c-format msgid "" "_:this is the user.log log file\n" "User" msgstr "Arveriad" #: logdrake:112 #, c-format msgid "" "_:this is the /var/log/messages log file\n" "Messages" msgstr "Kemenandoù" #: logdrake:113 #, c-format msgid "" "_:this is the /var/log/syslog log file\n" "Syslog" msgstr "Reizhiad" #: logdrake:117 #, c-format msgid "search" msgstr "klask" #: logdrake:129 #, c-format msgid "A tool to monitor your logs" msgstr "" #: logdrake:131 #, c-format msgid "Settings" msgstr "Dibarzhoù" #: logdrake:134 #, c-format msgid "Matching" msgstr "Gant" #: logdrake:135 #, c-format msgid "but not matching" msgstr "met hep" #: logdrake:138 #, c-format msgid "Choose file" msgstr "Dibabit ur restr" #: logdrake:150 #, c-format msgid "Calendar" msgstr "Deiziadur" #: logdrake:159 #, c-format msgid "Content of the file" msgstr "Restrad" #: logdrake:163 logdrake:407 #, c-format msgid "Mail alert" msgstr "" #: logdrake:170 #, c-format msgid "The alert wizard has failed unexpectedly:" msgstr "" #: logdrake:174 #, c-format msgid "Save" msgstr "Enrollañ" #: logdrake:222 #, c-format msgid "please wait, parsing file: %s" msgstr "gortozit mar plij, o lenn ar restr : %s" #: logdrake:244 #, c-format msgid "Sorry, log file isn't available!" msgstr "" #: logdrake:292 #, c-format msgid "Error while opening \"%s\" log file: %s\n" msgstr "" #: logdrake:385 #, c-format msgid "Apache World Wide Web Server" msgstr "Servijer gwiad bedel Apache" #: logdrake:386 #, c-format msgid "Domain Name Resolver" msgstr "" #: logdrake:387 #, c-format msgid "Ftp Server" msgstr "Servijer FTP" #: logdrake:388 #, c-format msgid "Postfix Mail Server" msgstr "Servijer postel Postfix" #: logdrake:389 #, c-format msgid "Samba Server" msgstr "Servijer Samba" #: logdrake:390 #, c-format msgid "SSH Server" msgstr "Servijer SSH" #: logdrake:391 #, c-format msgid "Webmin Service" msgstr "Servijer Webmin" #: logdrake:392 #, c-format msgid "Xinetd Service" msgstr "Servijer xinetd" #: logdrake:401 #, c-format msgid "Configure the mail alert system" msgstr "Kefluniañ ar reizhiad diwall dre post" #: logdrake:402 #, c-format msgid "Stop the mail alert system" msgstr "Paouez ar reizhiad diwall dre post" #: logdrake:410 #, c-format msgid "Mail alert configuration" msgstr "Kefluniadur an diwall dre post" #: logdrake:411 #, c-format msgid "" "Welcome to the mail configuration utility.\n" "\n" "Here, you'll be able to set up the alert system.\n" msgstr "" #: logdrake:414 #, c-format msgid "What do you want to do?" msgstr "Petra e fell deoc'h da ober ?" #: logdrake:421 #, c-format msgid "Services settings" msgstr "Dibarzhoù ar serjivioù" #: logdrake:422 #, c-format msgid "" "You will receive an alert if one of the selected services is no longer " "running" msgstr "" #: logdrake:429 #, c-format msgid "Load setting" msgstr "Kargañ an dibarzhoù" #: logdrake:430 #, c-format msgid "You will receive an alert if the load is higher than this value" msgstr "" #: logdrake:431 #, c-format msgid "" "_: load here is a noun, the load of the system\n" "Load" msgstr "Sammad" #: logdrake:436 #, c-format msgid "Alert configuration" msgstr "Kefluniadur an diwall" #: logdrake:437 #, c-format msgid "Please enter your email address below " msgstr "Roit ho chomlec'h postel mar plij " #: logdrake:438 #, c-format msgid "and enter the name (or the IP) of the SMTP server you wish to use" msgstr "" #: logdrake:445 #, c-format msgid "\"%s\" neither is a valid email nor is an existing local user!" msgstr "" #: logdrake:450 #, c-format msgid "" "\"%s\" is a local user, but you did not select a local smtp, so you must use " "a complete email address!" msgstr "" #: logdrake:457 #, c-format msgid "The wizard successfully configured the mail alert." msgstr "" #: logdrake:463 #, c-format msgid "The wizard successfully disabled the mail alert." msgstr "" #: logdrake:522 #, c-format msgid "Save as.." msgstr "Enrollañ e ..." #: notify-x11-free-driver-switch:15 #, c-format msgid "" "The proprietary driver for your graphic card can not be found, the system is " "now using the free software driver (%s)." msgstr "" #: notify-x11-free-driver-switch:21 #, c-format msgid "Reason: %s." msgstr "" #: scannerdrake:51 #, c-format msgid "" "SANE packages need to be installed to use scanners.\n" "\n" "Do you want to install the SANE packages?" msgstr "" "Ar pakadoù SANE zo war-nes bezañ staliet evit implij an eiltreseroù :\n" "\n" "Mennout a rit staliañ ar pakadoù SANE ?" #: scannerdrake:55 #, c-format msgid "Aborting Scannerdrake." msgstr "O terriñ Scannerdrake." #: scannerdrake:60 #, c-format msgid "" "Could not install the packages needed to set up a scanner with Scannerdrake." msgstr "" #: scannerdrake:61 #, c-format msgid "Scannerdrake will not be started now." msgstr "Ne vo ket loc'het Scannerdrake bremañ." #: scannerdrake:67 scannerdrake:505 #, c-format msgid "Searching for configured scanners..." msgstr "O klask an eiltreseroù kefluniet ..." #: scannerdrake:71 scannerdrake:509 #, c-format msgid "Searching for new scanners..." msgstr "O klask eiltreseroù nevez ..." #: scannerdrake:79 scannerdrake:531 #, c-format msgid "Re-generating list of configured scanners..." msgstr "" #: scannerdrake:101 #, c-format msgid "The %s is not supported by this version of %s." msgstr "" #: scannerdrake:104 scannerdrake:115 #, c-format msgid "Confirmation" msgstr "Kadarnadur" #: scannerdrake:104 #, c-format msgid "%s found on %s, configure it automatically?" msgstr "%s kavet war %s, kefluniañ anezhi ent emgefreek ?" #: scannerdrake:116 #, c-format msgid "%s is not in the scanner database, configure it manually?" msgstr "" #: scannerdrake:130 #, c-format msgid "Scanner configuration" msgstr "Kefluniadur ar skanner" #: scannerdrake:131 #, c-format msgid "Select a scanner model (Detected model: %s, Port: %s)" msgstr "Dibabit ur gobari scanner (doare kavet : %s, porzh : %s)" #: scannerdrake:133 #, c-format msgid "Select a scanner model (Detected model: %s)" msgstr "Dibabit ur gobari scanner (doare kavet : %s)" #: scannerdrake:134 #, c-format msgid "Select a scanner model (Port: %s)" msgstr "Dibabit ur gobari scanner (porzh : %s)" #: scannerdrake:136 scannerdrake:139 #, c-format msgid " (UNSUPPORTED)" msgstr " (N'EO KET SKORAET)" #: scannerdrake:142 #, c-format msgid "The %s is not supported under Linux." msgstr "N'eo ket skoraet gant Linux %s." #: scannerdrake:169 scannerdrake:183 #, c-format msgid "Do not install firmware file" msgstr "Ne staliit ket restr ar meriant" #: scannerdrake:172 scannerdrake:222 #, c-format msgid "Scanner Firmware" msgstr "" #: scannerdrake:173 scannerdrake:225 #, c-format msgid "" "It is possible that your %s needs its firmware to be uploaded everytime when " "it is turned on." msgstr "" #: scannerdrake:174 scannerdrake:226 #, c-format msgid "If this is the case, you can make this be done automatically." msgstr "" #: scannerdrake:175 scannerdrake:229 #, c-format msgid "" "To do so, you need to supply the firmware file for your scanner so that it " "can be installed." msgstr "" #: scannerdrake:176 scannerdrake:230 #, c-format msgid "" "You find the file on the CD or floppy coming with the scanner, on the " "manufacturer's home page, or on your Windows partition." msgstr "" #: scannerdrake:178 scannerdrake:237 #, c-format msgid "Install firmware file from" msgstr "Staliañ restr ar meriant eus" #: scannerdrake:180 scannerdrake:188 scannerdrake:239 scannerdrake:246 #, c-format msgid "CD-ROM" msgstr "CD-ROM" #: scannerdrake:181 scannerdrake:190 scannerdrake:240 scannerdrake:248 #, c-format msgid "Floppy Disk" msgstr "Bladennig" #: scannerdrake:182 scannerdrake:192 scannerdrake:241 scannerdrake:250 #, c-format msgid "Other place" msgstr "Lec'hiadur all" #: scannerdrake:198 #, c-format msgid "Select firmware file" msgstr "Dibabit restr ar meriant" #: scannerdrake:201 scannerdrake:260 #, c-format msgid "The firmware file %s does not exist or is unreadable!" msgstr "" #: scannerdrake:224 #, c-format msgid "" "It is possible that your scanners need their firmware to be uploaded " "everytime when they are turned on." msgstr "" #: scannerdrake:228 #, c-format msgid "" "To do so, you need to supply the firmware files for your scanners so that it " "can be installed." msgstr "" #: scannerdrake:231 #, c-format msgid "" "If you have already installed your scanner's firmware you can update the " "firmware here by supplying the new firmware file." msgstr "" #: scannerdrake:233 #, c-format msgid "Install firmware for the" msgstr "Staliañ restroù ar meriant evit" #: scannerdrake:256 #, c-format msgid "Select firmware file for the %s" msgstr "Dibabit restr ar meriant evit %s" #: scannerdrake:274 #, c-format msgid "Could not install the firmware file for the %s!" msgstr "Ne m'eus ket staliañ restroù ar meriant evit %s !" #: scannerdrake:287 #, c-format msgid "The firmware file for your %s was successfully installed." msgstr "" #: scannerdrake:297 #, c-format msgid "The %s is unsupported" msgstr "N'eo ket skoraet %s" #: scannerdrake:302 #, c-format msgid "" "The %s must be configured by system-config-printer.\n" "You can launch system-config-printer from the %s Control Center in Hardware " "section." msgstr "" #: scannerdrake:320 #, c-format msgid "Setting up kernel modules..." msgstr "O lakaat molladoù ar c'halon ..." #: scannerdrake:330 scannerdrake:337 scannerdrake:367 #, c-format msgid "Auto-detect available ports" msgstr "" #: scannerdrake:331 scannerdrake:377 #, c-format msgid "Device choice" msgstr "Choazh an drobarzhell" #: scannerdrake:332 scannerdrake:378 #, c-format msgid "Please select the device where your %s is attached" msgstr "" #: scannerdrake:333 #, c-format msgid "(Note: Parallel ports cannot be auto-detected)" msgstr "" #: scannerdrake:335 scannerdrake:380 #, c-format msgid "choose device" msgstr "dibabit ur drobarzhell" #: scannerdrake:369 #, c-format msgid "Searching for scanners..." msgstr "O klask eiltreseroù ..." #: scannerdrake:405 scannerdrake:412 #, c-format msgid "Attention!" msgstr "Ho evezh !" #: scannerdrake:406 #, c-format msgid "" "Your %s cannot be configured fully automatically.\n" "\n" "Manual adjustments are required. Please edit the configuration file /etc/" "sane.d/%s.conf. " msgstr "" #: scannerdrake:407 scannerdrake:416 #, c-format msgid "" "More info in the driver's manual page. Run the command \"man sane-%s\" to " "read it." msgstr "" #: scannerdrake:409 scannerdrake:418 #, c-format msgid "" "After that you may scan documents using \"XSane\" or \"Kooka\" from " "Multimedia/Graphics in the applications menu." msgstr "" #: scannerdrake:413 #, c-format msgid "" "Your %s has been configured, but it is possible that additional manual " "adjustments are needed to get it to work. " msgstr "" #: scannerdrake:414 #, c-format msgid "" "If it does not appear in the list of configured scanners in the main window " "of Scannerdrake or if it does not work correctly, " msgstr "" #: scannerdrake:415 #, c-format msgid "edit the configuration file /etc/sane.d/%s.conf. " msgstr "aozañ ar restr kefluniadur /etc/sane.d/%s.conf. " #: scannerdrake:420 #, c-format msgid "Congratulations!" msgstr "Gourc'hemennoù !" #: scannerdrake:421 #, c-format msgid "" "Your %s has been configured.\n" "You may now scan documents using \"XSane\" or \"Kooka\" from Multimedia/" "Graphics in the applications menu." msgstr "" #: scannerdrake:446 #, c-format msgid "" "The following scanners\n" "\n" "%s\n" "are available on your system.\n" msgstr "" #: scannerdrake:447 #, c-format msgid "" "The following scanner\n" "\n" "%s\n" "is available on your system.\n" msgstr "" #: scannerdrake:449 scannerdrake:452 #, c-format msgid "There are no scanners found which are available on your system.\n" msgstr "" #: scannerdrake:460 #, c-format msgid "Scanner Management" msgstr "Melestradur ar skannerioù" #: scannerdrake:466 #, c-format msgid "Search for new scanners" msgstr "Klask an eiltreserien nevez" #: scannerdrake:472 #, c-format msgid "Add a scanner manually" msgstr "Ouzhpennañ un eiltreser gant an dorn" #: scannerdrake:479 #, c-format msgid "Install/Update firmware files" msgstr "Staliañ/Bremañaat ar restroù meriant" #: scannerdrake:485 #, c-format msgid "Scanner sharing" msgstr "Rannañ ar skanner" #: scannerdrake:544 scannerdrake:709 #, c-format msgid "All remote machines" msgstr "Reizhiadoù a-bell holl" #: scannerdrake:556 scannerdrake:859 #, c-format msgid "This machine" msgstr "Ar reizhiad-mañ" #: scannerdrake:595 #, c-format msgid "Scanner Sharing" msgstr "Rannañ ar skanner" #: scannerdrake:596 #, c-format msgid "" "Here you can choose whether the scanners connected to this machine should be " "accessible by remote machines and by which remote machines." msgstr "" #: scannerdrake:597 #, c-format msgid "" "You can also decide here whether scanners on remote machines should be made " "available on this machine." msgstr "" #: scannerdrake:600 #, c-format msgid "The scanners on this machine are available to other computers" msgstr "" #: scannerdrake:602 #, c-format msgid "Scanner sharing to hosts: " msgstr "" #: scannerdrake:607 scannerdrake:624 #, c-format msgid "No remote machines" msgstr "Reizhiadoù a-bell ebet" #: scannerdrake:616 #, c-format msgid "Use scanners on remote computers" msgstr "Implij an eiltreserioù war urzhiataerioù a-bell" #: scannerdrake:619 #, c-format msgid "Use the scanners on hosts: " msgstr "Implij an eiltreserioù war ostizioù : " #: scannerdrake:646 scannerdrake:718 scannerdrake:868 #, c-format msgid "Sharing of local scanners" msgstr "" #: scannerdrake:647 #, c-format msgid "" "These are the machines on which the locally connected scanner(s) should be " "available:" msgstr "" #: scannerdrake:658 scannerdrake:808 #, c-format msgid "Add host" msgstr "Ouzhpennañ un ostiz" #: scannerdrake:664 scannerdrake:814 #, c-format msgid "Edit selected host" msgstr "Kemmañ an ostiz diuzet" #: scannerdrake:673 scannerdrake:823 #, c-format msgid "Remove selected host" msgstr "Lemel an ostiz diuzet" #: scannerdrake:682 scannerdrake:832 #, c-format msgid "Done" msgstr "Echu" #: scannerdrake:697 scannerdrake:705 scannerdrake:710 scannerdrake:756 #: scannerdrake:847 scannerdrake:855 scannerdrake:860 scannerdrake:906 #, c-format msgid "Name/IP address of host:" msgstr "Chomlec'h IP/Anv an oztiz :" #: scannerdrake:719 scannerdrake:869 #, c-format msgid "Choose the host on which the local scanners should be made available:" msgstr "" #: scannerdrake:730 scannerdrake:880 #, c-format msgid "You must enter a host name or an IP address.\n" msgstr "Ret eo deoc'h reiñ an anv-ostiz pe ur chomlec'h IP.\n" #: scannerdrake:741 scannerdrake:891 #, c-format msgid "This host is already in the list, it cannot be added again.\n" msgstr "Er roll eo dija an ostiz-se. N'eo ket bet ouzhpennet ur wech all\n" #: scannerdrake:796 #, c-format msgid "Usage of remote scanners" msgstr "Arveriadur an eiltreserioù a-bell" #: scannerdrake:797 #, c-format msgid "These are the machines from which the scanners should be used:" msgstr "" #: scannerdrake:954 #, c-format msgid "" "saned needs to be installed to share the local scanner(s).\n" "\n" "Do you want to install the saned package?" msgstr "" "staliet e tle bezañ saned evit rannañ ar skanner(où) lec'hel.\n" "\n" "Ha sur oc'h e mennit staliañ ar pakad saned ?" #: scannerdrake:958 scannerdrake:962 #, c-format msgid "Your scanner(s) will not be available on the network." msgstr "" #: scannerdrake:961 #, c-format msgid "Could not install the packages needed to share your scanner(s)." msgstr "N'eo ket evit staliañ evit ranañ hoc'h eiltreser." #: service_harddrake:138 #, c-format msgid "The graphic card '%s' is no more supported by the '%s' driver" msgstr "" #: service_harddrake:167 #, c-format msgid "The proprietary kernel driver was not found for '%s' X.org driver" msgstr "" #: service_harddrake:206 #, c-format msgid "Some devices in the \"%s\" hardware class were removed:\n" msgstr "Bez eus trobarzhelloù lemet er c'hlass « %s » :\n" #: service_harddrake:135 #, c-format msgid "- %s was removed\n" msgstr "- Dilemet oa %s\n" #: service_harddrake:138 #, c-format msgid "Some devices were added: %s\n" msgstr "Ouzhpennet oa lod a eus trobarzhelloù : %s\n" #: service_harddrake:139 #, c-format msgid "- %s was added\n" msgstr "- Ouzhpennet oa %s\n" #: service_harddrake:264 #, c-format msgid "Hardware probing in progress" msgstr "O klask ar perientel" #: service_harddrake_confirm:7 #, c-format msgid "Hardware changes in \"%s\" class (%s seconds to answer)" msgstr "Bez eus kemmoù gant ar c'hlass « %s » (%s eil evit respont)" #: service_harddrake_confirm:8 #, c-format msgid "Do you want to run the appropriate config tool?" msgstr "Mennout a rit lañsañ an ostilh dereat ?" #: ../menu/localedrake-system.desktop.in.h:1 msgid "System Regional Settings" msgstr "Dibarzhoù lec'hel evit ar reizhiad" #: ../menu/localedrake-system.desktop.in.h:2 msgid "System wide language & country configurator" msgstr "Kefluniadur yezh hag bro ar reizhiad" #: ../menu/harddrake.desktop.in.h:1 msgid "HardDrake" msgstr "HardDrake" #: ../menu/harddrake.desktop.in.h:2 #, fuzzy msgid "Hardware Central Configuration/information tool" msgstr "Kefluniadur ar periantal" #: ../menu/harddrake.desktop.in.h:3 #, fuzzy msgid "Hardware Configuration Tool" msgstr "Kefluniadur ar periantal" #: ../menu/localedrake-user.desktop.in.h:1 msgid "Language & country configuration" msgstr "Kefluniadur ar yezh hag ar vro" #: ../menu/localedrake-user.desktop.in.h:2 msgid "Regional Settings" msgstr "Dibarzhoù lec'hel" #~ msgid "Unknown/Others" #~ msgstr "Anavez/All" #~ msgid "" #~ "Here, you can setup the security level and administrator of your " #~ "machine.\n" #~ "\n" #~ "\n" #~ "The 'Security Administrator' is the one who " #~ "will receive security alerts if the\n" #~ "'Security Alerts' option is set. It can be a " #~ "username or an email.\n" #~ "\n" #~ "\n" #~ "The 'Security Level' menu allows you to " #~ "select one of the six preconfigured security levels\n" #~ "provided with msec. These levels range from 'poor' security and ease of use, to\n" #~ "'paranoid' config, suitable for very " #~ "sensitive server applications:\n" #~ "\n" #~ "\n" #~ "Poor: This is a totally unsafe but " #~ "very\n" #~ "easy to use security level. It should only be used for machines not " #~ "connected to\n" #~ "any network and that are not accessible to everybody.\n" #~ "\n" #~ "\n" #~ "Standard: This is the standard " #~ "security\n" #~ "recommended for a computer that will be used to connect to the Internet " #~ "as a\n" #~ "client.\n" #~ "\n" #~ "\n" #~ "High: There are already some\n" #~ "restrictions, and more automatic checks are run every night.\n" #~ "\n" #~ "\n" #~ "Higher: The security is now high " #~ "enough\n" #~ "to use the system as a server which can accept connections from many " #~ "clients. If\n" #~ "your machine is only a client on the Internet, you should choose a lower " #~ "level.\n" #~ "\n" #~ "\n" #~ "Paranoid: This is similar to the " #~ "previous\n" #~ "level, but the system is entirely closed and security features are at " #~ "their\n" #~ "maximum" #~ msgstr "" #~ "Amañ e c'hellit kefluniañ al live surantez hag melestradur an surentez\n" #~ "hoc'h urziataer.\n" #~ "\n" #~ "\n" #~ "Ar « Melestradur an surentez » a vo o resev posteloù surantez ma vez\n" #~ "bev an dibarzh « Posteloù surantez ». Un\n" #~ "anv arveriad pe ur chomlec'h postel e c'hell bezañ.\n" #~ "\n" #~ "\n" #~ "Gant ar meuziad « Live surantez », moaien\n" #~ "eo dibab unan eus ar c'hwec'h live surantez hag a zo pourvezet. Etre\n" #~ "« Paour » hag « Ankeniet » eo al live surantez. Aes da implij eo\n" #~ "« Paour ». Evit ar servijerien eo « Ankeniet ».\n" #~ "\n" #~ "\n" #~ "Paour : N'eo ket surantezet ar\n" #~ "reizhiat met aez da implij eo gant al live-surantez-mañ. Gwell deoc'h\n" #~ "implij kement-mañ evit un urzhiatazer hag na vez ket ouzh ur rouedad.\n" #~ "\n" #~ "\n" #~ "Skouer : Setu al live surentez\n" #~ "standard a vez erbedet evit un urzhiataer a vo implijet evit kevreañ\n" #~ "evel kliant ouzh ar Genrouedad.\n" #~ "\n" #~ "\n" #~ "Uhel : Bremañ ez eus gwiriadennoù\n" #~ "surentez hag a zo sevenet d'an noz.\n" #~ "\n" #~ "\n" #~ "Uheloc'h : Uhel a-walc'h eo\n" #~ "bremañ ar surentez evit implijout ar reizhiad evel ur servijer o\n" #~ "tigemer kevreadennoù a-berzh kliantoù niverus. Ma vez ur c'hliant\n" #~ "kenrouedad hepken, neuze e vefe moarvat gwelloc'h deoc'h dibab ul live\n" #~ "izeloc'h.\n" #~ "\n" #~ "\n" #~ "Ankeniet : Kemer a reomp\n" #~ "arc'hweloù al live diaraok, hogen bremañ eo peurserret ar reizhiad hag\n" #~ "an arc'hweloù surentez zo en o muiañ." #~ msgid "(default value: %s)" #~ msgstr "(gwerzh dre ziouer : %s)" #~ msgid "Security Level:" #~ msgstr "Live Surentez :" #~ msgid "Security Alerts:" #~ msgstr "Posteloù surantez :" #~ msgid "Security Administrator:" #~ msgstr "Merour surentez :" #~ msgid "Basic options" #~ msgstr "Dibarzhoù diazeg" #~ msgid "Network Options" #~ msgstr "Dibarzhoù ar rouedad" #~ msgid "System Options" #~ msgstr "Dibarzhoù ar reizhiad" #~ msgid "Please wait, setting security level..." #~ msgstr "O lakaat al live surentez, gortoz mar plij ..." #~ msgid "Please wait, setting security options..." #~ msgstr "O lakaat an dibarzhoù surentez, gortoz mar plij ..." #, fuzzy #~ msgid "" #~ "The following localization packages do not seem to be useful for your " #~ "system:" #~ msgstr "Ar pakadoù a-heul zo war-nes bezañ staliet :\n" #, fuzzy #~ msgid "Do you want to remove these packages?" #~ msgstr "Mennout a rit lañsañ an ostilh dereat ?" #, fuzzy #~ msgid "" #~ "The following hardware packages do not seem to be useful for your system:" #~ msgstr "Ar pakadoù a-heul zo war-nes bezañ staliet :\n" #~ msgid "Please wait, adding media..." #~ msgstr "Gortozit mar plij, emaon oc'h ouzhpennañ ur media ..." #~ msgid "Restart XFS" #~ msgstr "Adloc'hañ XFS" #~ msgid "Copyright (C) 2001-2008 by Mandriva" #~ msgstr "Copyright (C) 2001-2008 gant Mandriva" #~ msgid "Error!" #~ msgstr "Fazi !" #~ msgid "I can not find needed image file `%s'." #~ msgstr "N'hellan ket kavour ar restr skeudenn red « %s »." #~ msgid "Auto Install Configurator" #~ msgstr "Keflunier ar staliadur emgefreek" #~ msgid "replay" #~ msgstr "adc'hoari" #~ msgid "manual" #~ msgstr "diwar zorn" #~ msgid "Automatic Steps Configuration" #~ msgstr "Kefluniadur staliañ emgefreek" #~ msgid "Insert a blank floppy in drive %s" #~ msgstr "Lakait ur bladennig gwerc'h el lenner %s" #~ msgid "Creating auto install floppy" #~ msgstr "O krouiñ ur bladennig staliañ emgefreek" #~ msgid "Insert another blank floppy in drive %s (for drivers disk)" #~ msgstr "" #~ "Lakait ur bladennig gwerc'h all el lenner %s (evit pladenn ar sturieroù)" #~ msgid "Creating auto install floppy (drivers disk)" #~ msgstr "O krouiñ ur bladennig staliañ emgefreek (pladenn ar sturieroù)" #~ msgid "Auto Install" #~ msgstr "Staliañ emgefreek" #~ msgid "Add an item" #~ msgstr "Ouzhpennañ un hini" #~ msgid "Remove the last item" #~ msgstr "Lemel an hini diwezhañ" #~ msgid "Menudrake" #~ msgstr "Menudrake" #~ msgid "Msec" #~ msgstr "Msec" #~ msgid "Urpmi" #~ msgstr "Urpmi" #~ msgid "Userdrake" #~ msgstr "Userdrake" hl opt">); sleep(3); } sub ask_url { my ($in, $o_url) = @_; my $url = $o_url; $in->ask_from_({ messages => N("URL of the mirror?"), focus_first => 1 }, [ { val => \$url, validate => sub { if ($url =~ m!^(http|ftp)://!) { 1; } else { $in->ask_warn('', N("URL must start with ftp:// or http://")); 0; } } } ]) && $url; } sub ask_mirror { my ($o, $type, $o_url) = @_; require mirror; my $mirrors = eval { my $_w = $o->wait_message('', N("Contacting Mandriva Linux web site to get the list of available mirrors...")); mirror::list($o->{product_id}, $type); }; my $err = $@; if (!$mirrors) { $o->ask_warn('', N("Failed contacting Mandriva Linux web site to get the list of available mirrors") . "\n$err"); return ask_url($o, $o_url); } my $give_url = { country => '-', host => 'URL' }; my $mirror = $o_url ? (find { $_->{url} eq $o_url } @$mirrors) || $give_url #- use current time zone to select best mirror : mirror::nearest($o->{timezone}{timezone}, $mirrors); $o->ask_from_({ messages => N("Choose a mirror from which to get the packages"), cancel => N("Cancel"), }, [ { separator => '|', format => \&mirror::mirror2text, list => [ @$mirrors, $give_url ], val => \$mirror, }, ]) or return; my $url; if ($mirror eq $give_url) { $url = ask_url($o, $o_url) or goto &ask_mirror; } else { $url = $mirror->{url}; } $url =~ s!/main/?$!!; log::l("chosen mirror: $url"); $url; } sub ask_suppl_media_url { my ($o, $method, $o_url) = @_; if ($method eq 'ftp' || $method eq 'http') { install::any::ask_mirror($o, 'distrib', $o_url); } elsif ($method eq 'cdrom') { 'cdrom://'; } elsif ($method eq 'nfs') { my ($host, $dir) = $o_url ? $o_url =~ m!nfs://(.*?)(/.*)! : (); $o->ask_from_( { title => N("NFS setup"), messages => N("Please enter the hostname and directory of your NFS media"), focus_first => 1, callbacks => { complete => sub { $host or $o->ask_warn('', N("Hostname missing")), return 1, 0; $dir eq '' || begins_with($dir, '/') or $o->ask_warn('', N("Directory must begin with \"/\"")), return 1, 1; 0; }, } }, [ { label => N("Hostname of the NFS mount ?"), val => \$host }, { label => N("Directory"), val => \$dir } ], ) or return; $dir =~ s!/+$!!; $dir ||= '/'; "nfs://$host$dir"; } else { internal_error("bad method $method") } } sub selectSupplMedia { my ($o) = @_; my $url; ask_method: my $method = ask_suppl_media_method($o) or return; #- configure network if needed if (!scalar keys %{$o->{net}{ifcfg}} && $method !~ /^(?:cdrom|disk)/ && !$::local_install) { prep_net_suppl_media($o); } ask_url: $url = ask_suppl_media_url($o, $method, $url) or goto ask_method; my $phys_medium = install::media::url2mounted_phys_medium($o, $url, undef, N("Supplementary")) or $o->ask_warn('', formatError($@)), goto ask_url; $phys_medium->{is_suppl} = 1; $phys_medium->{unknown_CD} = 1; my $arch = $o->{product_id}{arch}; my $field = $phys_medium->{device} ? 'rel_path' : 'url'; my $val = $phys_medium->{$field}; my $val0 = $val =~ m!^(.*?)(/media)?/?$! && "$1/media"; my $val2 = $val =~ m!^(.*?)(/\Q$arch\E)?(/media)?/?$! && "$1/$arch/media"; foreach (uniq($val0, $val, $val2)) { log::l("trying with $field set to $_"); $phys_medium->{$field} = $_; #- first, try to find a media.cfg file eval { install::media::get_media_cfg($o, $phys_medium, $o->{packages}, undef, 'force_rpmsrate') }; if (!$@) { delete $phys_medium->{unknown_CD}; #- we have a known CD now return 1; } } #- restore it $phys_medium->{$field} = $val; #- try using media_info/hdlist.cz my $medium_id = int(@{$o->{packages}{media}}); eval { install::media::get_standalone_medium($o, $phys_medium, $o->{packages}, { name => "Supplementary media $medium_id" }) }; if (!$@) { log::l("read suppl hdlist (via $method)"); delete $phys_medium->{unknown_CD}; #- we have a known CD now return 1; } install::media::umount_phys_medium($phys_medium); install::media::remove_from_fstab($o->{all_hds}, $phys_medium); $o->ask_warn('', N("Can't find a package list file on this mirror. Make sure the location is correct.")); goto ask_url; } sub load_rate_files { my ($o) = @_; #- must be done after getProvides require pkgs; pkgs::read_rpmsrate($o->{packages}, $o->{rpmsrate_flags_chosen}, '/tmp/rpmsrate', $o->{match_all_hardware}); ($o->{compssUsers}, $o->{gtk_display_compssUsers}) = install::pkgs::readCompssUsers('/tmp/compssUsers.pl'); defined $o->{compssUsers} or die "Can't read compssUsers.pl file, aborting installation\n"; } sub setPackages { my ($o) = @_; require install::pkgs; { $o->{packages} = install::pkgs::empty_packages($o->{keep_unrequested_dependencies}); my $media = $o->{media} || [ { type => 'media_cfg', url => 'drakx://media' } ]; my ($suppl_method, $copy_rpms_on_disk) = install::media::get_media($o, $media, $o->{packages}); if ($suppl_method) { 1 while $o->selectSupplMedia; } #- open rpm db according to right mode needed $o->{packages}{rpmdb} ||= install::pkgs::rpmDbOpen('rebuild_if_needed', $o->{rpm_dbapi}); { my $_wait = $o->wait_message('', N("Looking at packages already installed...")); install::pkgs::selectPackagesAlreadyInstalled($o->{packages}); } if (my $extension = $o->{upgrade_by_removing_pkgs_matching}) { my $time = time(); my ($_w, $wait_message) = $o->wait_message_with_progress_bar; $wait_message->(N("Removing packages prior to upgrade...")); my ($current, $total); my $callback = sub { my (undef, $type, $_id, $subtype, $amount) = @_; if ($type eq 'user') { ($current, $total) = (0, $amount); } elsif ($type eq 'uninst' && $subtype eq 'stop') { $wait_message->('', $current++, $total); } }; push @{$o->{default_packages}}, install::pkgs::upgrade_by_removing_pkgs($o->{packages}, $callback, $extension, $o->{isUpgrade}); log::l("Removing packages took: ", formatTimeRaw(time() - $time)); } mark_skipped_packages($o); #- always try to select basic kernel (else on upgrade, kernel will never be updated provided a kernel is already #- installed and provides what is necessary). my $kernel_pkg = install::pkgs::bestKernelPackage($o->{packages}, $o->{match_all_hardware}); install::pkgs::selectPackage($o->{packages}, $kernel_pkg, 1); if ($o->{isUpgrade} && $o->{packages}{sizes}{dkms}) { log::l("selecting kernel-desktop-devel-latest (since dkms was installed)"); install::pkgs::select_by_package_names($o->{packages}, ['kernel-desktop-devel-latest'], 1); } install::pkgs::select_by_package_names_or_die($o->{packages}, ['basesystem'], 1); my $rpmsrate_flags_was_chosen = $o->{rpmsrate_flags_chosen}; put_in_hash($o->{rpmsrate_flags_chosen} ||= {}, rpmsrate_always_flags($o)); #- must be done before pkgs::read_rpmsrate() load_rate_files($o); install::media::copy_rpms_on_disk($o) if $copy_rpms_on_disk; set_rpmsrate_default_category_flags($o, $rpmsrate_flags_was_chosen); push @{$o->{default_packages}}, default_packages($o); select_default_packages($o); } if ($o->{isUpgrade}) { { my $_w = $o->wait_message('', N("Finding packages to upgrade...")); install::pkgs::selectPackagesToUpgrade($o->{packages}); } if ($o->{packages}{sizes}{'kdebase-progs'}) { log::l("selecting task-kde (since kdebase-progs was installed)"); install::pkgs::select_by_package_names($o->{packages}, ['task-kde']); } } } sub count_files { my ($dir) = @_; -d $dir or return 0; opendir my $dh, $dir or return 0; my @list = grep { !/^\.\.?$/ } readdir $dh; closedir $dh; my $c = 0; foreach my $n (@list) { my $p = "$dir/$n"; if (-d $p) { $c += count_files($p) } else { ++$c } } $c; } sub cp_with_progress { my $wait_message = shift; my $current = shift; my $total = shift; my $dest = pop @_; cp_with_progress_({ keep_special => 1 }, $wait_message, $total, \@_, $dest); } sub cp_with_progress_ { my ($options, $wait_message, $total, $list, $dest) = @_; @$list or return; @$list == 1 || -d $dest or die "cp: copying multiple files, but last argument ($dest) is not a directory\n"; -d $dest or $dest = dirname($dest); _cp_with_progress($options, $wait_message, 0, $total, $list, $dest); } sub _cp_with_progress { my ($options, $wait_message, $current, $total, $list, $dest) = @_; foreach my $src (@$list) { my $dest = $dest; -d $dest and $dest .= '/' . basename($src); unlink $dest; if (-l $src && $options->{keep_special}) { unless (symlink(readlink($src) || die("readlink failed: $!"), $dest)) { warn "symlink: can't create symlink $dest: $!\n"; } } elsif (-d $src) { -d $dest or mkdir $dest, (stat($src))[2] or die "mkdir: can't create directory $dest: $!\n"; _cp_with_progress($options, $wait_message, $current, $total, [ glob_($src) ], $dest); } else { open(my $F, $src) or die "can't open $src for reading: $!\n"; open(my $G, ">", $dest) or die "can't cp to file $dest: $!\n"; local $/ = \4096; local $_; while (<$F>) { print $G $_ } chmod((stat($src))[2], $dest); $wait_message->('', ++$current, $total); } } 1; } sub set_rpmsrate_default_category_flags { my ($o, $rpmsrate_flags_was_chosen) = @_; #- if no cleaning needed, populate by default, clean is used for second or more call to this function. if ($::auto_install && ($o->{rpmsrate_flags_chosen} || {})->{CAT_ALL}) { $o->{rpmsrate_flags_chosen}{"CAT_$_"} = 1 foreach map { @{$_->{flags}} } @{$o->{compssUsers}}; } if (!$rpmsrate_flags_was_chosen && !$o->{isUpgrade}) { #- use default selection seen in compssUsers directly. $_->{selected} = $_->{default_selected} foreach @{$o->{compssUsers}}; set_rpmsrate_category_flags($o, $o->{compssUsers}); } } sub set_rpmsrate_category_flags { my ($o, $compssUsers) = @_; $o->{rpmsrate_flags_chosen}{$_} = 0 foreach grep { /^CAT_/ } keys %{$o->{rpmsrate_flags_chosen}}; $o->{rpmsrate_flags_chosen}{"CAT_$_"} = 1 foreach map { @{$_->{flags}} } grep { $_->{selected} } @$compssUsers; $o->{rpmsrate_flags_chosen}{CAT_SYSTEM} = 1; $o->{rpmsrate_flags_chosen}{CAT_MINIMAL_DOCS} = 1; } sub rpmsrate_always_flags { my ($o) = @_; my $rpmsrate_flags_chosen = {}; $rpmsrate_flags_chosen->{qq(META_CLASS"$o->{meta_class}")} = 1; $rpmsrate_flags_chosen->{uc($_)} = 1 foreach grep { $o->{match_all_hardware} || detect_devices::probe_category("multimedia/$_") } modules::sub_categories('multimedia'); $rpmsrate_flags_chosen->{uc($_)} = 1 foreach detect_devices::probe_name('Flag'); $rpmsrate_flags_chosen->{UTF8} = $o->{locale}{utf8}; $rpmsrate_flags_chosen->{BURNER} = 1 if $o->{match_all_hardware} || detect_devices::burners(); $rpmsrate_flags_chosen->{DVD} = 1 if $o->{match_all_hardware} || detect_devices::dvdroms(); $rpmsrate_flags_chosen->{USB} = 1 if $o->{match_all_hardware} || $o->{modules_conf}->get_probeall("usb-interface"); $rpmsrate_flags_chosen->{PCMCIA} = 1 if $o->{match_all_hardware} || detect_devices::hasPCMCIA(); $rpmsrate_flags_chosen->{HIGH_SECURITY} = 1 if $o->{security} > 3; $rpmsrate_flags_chosen->{BIGMEM} = 1 if detect_devices::BIGMEM(); $rpmsrate_flags_chosen->{SMP} = 1 if $o->{match_all_hardware} || detect_devices::hasSMP(); $rpmsrate_flags_chosen->{CDCOM} = 1 if any { $_->{name} =~ /commercial/i } install::media::allMediums($o->{packages}); $rpmsrate_flags_chosen->{'3D'} = 1 if $o->{match_all_hardware} || detect_devices::matching_desc__regexp('Matrox.* G[245][05]0') || detect_devices::matching_desc__regexp('Rage X[CL]') || detect_devices::matching_desc__regexp('3D Rage (?:LT|Pro)') || detect_devices::matching_desc__regexp('Voodoo [35]') || detect_devices::matching_desc__regexp('Voodoo Banshee') || detect_devices::matching_desc__regexp('8281[05].* CGC') || detect_devices::matching_desc__regexp('Rage 128') || detect_devices::matching_desc__regexp('Radeon ') || #- all Radeon card are now 3D with 4.3.0 detect_devices::matching_desc__regexp('[nN]Vidia.*T[nN]T2') || #- TNT2 cards detect_devices::matching_desc__regexp('[nN][vV]idia.*NV[56]') || detect_devices::matching_desc__regexp('[nN][vV]idia.*Vanta') || detect_devices::matching_desc__regexp('[nN][vV]idia.*[gG]e[fF]orce') || #- GeForce cards detect_devices::matching_desc__regexp('[nN][vV]idia.*NV1[15]') || detect_devices::matching_desc__regexp('[nN][vV]idia.*Quadro'); foreach (lang::langsLANGUAGE($o->{locale}{langs})) { $rpmsrate_flags_chosen->{qq(LOCALES"$_")} = 1; } $rpmsrate_flags_chosen->{'CHARSET"' . lang::l2charset($o->{locale}{lang}) . '"'} = 1; $rpmsrate_flags_chosen; } sub default_packages { my ($o) = @_; my @l; push @l, "brltty" if cat_("/proc/cmdline") =~ /brltty=/; push @l, "nfs-utils-clients" if $o->{method} eq "nfs"; push @l, "mdadm" if !is_empty_array_ref($o->{all_hds}{raids}); push @l, "lvm2" if !is_empty_array_ref($o->{all_hds}{lvms}); push @l, "dmraid" if any { fs::type::is_dmraid($_) } @{$o->{all_hds}{hds}}; push @l, 'powernowd' if cat_('/proc/cpuinfo') =~ /AuthenticAMD/ && arch() =~ /x86_64/ || cat_('/proc/cpuinfo') =~ /model name.*Intel\(R\) Core\(TM\)2 CPU/; push @l, detect_devices::probe_name('Pkg'); my $dmi_BIOS = detect_devices::dmidecode_category('BIOS'); my $dmi_Base_Board = detect_devices::dmidecode_category('Base Board'); if ($dmi_BIOS->{Vendor} eq 'COMPAL' && $dmi_BIOS->{Characteristics} =~ /Function key-initiated network boot is supported/ || $dmi_Base_Board->{Manufacturer} =~ /^ACER/ && $dmi_Base_Board->{'Product Name'} =~ /TravelMate 610/) { #- FIXME : append correct options (wireless, ...) modules::append_to_modules_loaded_at_startup_for_all_kernels('acerhk'); } push @l, 'quota' if any { $_->{options} =~ /usrquota|grpquota/ } @{$o->{fstab}}; push @l, uniq(grep { $_ } map { fs::format::package_needed_for_partition_type($_) } @{$o->{fstab}}); push @l, 'ntfs-3g' if any { $_->{fs_type} eq 'ntfs-3g' } @{$o->{fstab}}; # handle locales with specified scripting: my @languages = map { s/\@.*//; $_ } lang::langsLANGUAGE($o->{locale}{langs}); my @locale_pkgs = map { URPM::packages_providing($o->{packages}, 'locales-' . $_) } @languages; unshift @l, uniq(map { $_->name } @locale_pkgs); @l; } sub mark_skipped_packages { my ($o) = @_; install::pkgs::skip_packages($o->{packages}, $o->{skipped_packages}) if $o->{skipped_packages}; } sub select_default_packages { my ($o) = @_; install::pkgs::select_by_package_names($o->{packages}, $o->{default_packages}); } sub unselectMostPackages { my ($o) = @_; install::pkgs::unselectAllPackages($o->{packages}); select_default_packages($o); } sub warnAboutNaughtyServers { my ($o) = @_; my @naughtyServers = install::pkgs::naughtyServers($o->{packages}) or return 1; my $r = $o->ask_from_list_('', formatAlaTeX( #-PO: keep the double empty lines between sections, this is formatted a la LaTeX N("You have selected the following server(s): %s These servers are activated by default. They do not have any known security issues, but some new ones could be found. In that case, you must make sure to upgrade as soon as possible. Do you really want to install these servers? ", join(", ", @naughtyServers))), [ N_("Yes"), N_("No") ], 'Yes') or return; if ($r ne 'Yes') { log::l("unselecting naughty servers: " . join(' ', @naughtyServers)); install::pkgs::unselectPackage($o->{packages}, install::pkgs::packageByName($o->{packages}, $_)) foreach @naughtyServers; } 1; } sub warnAboutRemovedPackages { my ($o, $packages) = @_; my @removedPackages = keys %{$packages->{state}{ask_remove} || {}} or return; if (!$o->ask_yesorno('', formatAlaTeX( #-PO: keep the double empty lines between sections, this is formatted a la LaTeX N("The following packages will be removed to allow upgrading your system: %s Do you really want to remove these packages? ", join(", ", @removedPackages))), 1)) { $packages->{state}{ask_remove} = {}; } } sub addToBeDone(&$) { my ($f, $step) = @_; return &$f() if $::o->{steps}{$step}{done}; push @{$::o->{steps}{$step}{toBeDone}}, $f; } sub set_authentication { my ($o) = @_; my $when_network_is_up = sub { my ($f) = @_; #- defer running xxx - no network yet addToBeDone { require install::steps; install::steps::upNetwork($o, 'pppAvoided'); $f->(); } 'configureNetwork'; }; require authentication; authentication::set($o, $o->{net}, $o->{authentication} ||= {}, $when_network_is_up); } #-############################################################################### #- kde stuff #-############################################################################### sub kdemove_desktop_file { my ($prefix) = @_; my @toMove = qw(doc.kdelnk news.kdelnk updates.kdelnk home.kdelnk printer.kdelnk floppy.kdelnk cdrom.kdelnk FLOPPY.kdelnk CDROM.kdelnk); #- remove any existing save in Trash of each user and #- move appropriate file there after an upgrade. foreach my $dir (grep { -d $_ } list_skels($prefix, 'Desktop')) { renamef("$dir/$_", "$dir/Trash/$_") foreach grep { -e "$dir/$_" } @toMove, grep { /\.rpmorig$/ } all($dir); } } #-############################################################################### #- auto_install stuff #-############################################################################### sub auto_inst_file() { "$::prefix/root/drakx/auto_inst.cfg.pl" } sub report_bug() { any::report_bug('auto_inst' => g_auto_install('', 1)); } sub g_auto_install { my ($b_replay, $b_respect_privacy) = @_; my $o = {}; require install::pkgs; $o->{default_packages} = install::pkgs::selected_leaves($::o->{packages}); my @fields = qw(mntpoint fs_type size); $o->{partitions} = [ map { my %l; @l{@fields} = @$_{@fields}; \%l; } grep { $_->{mntpoint} && fs::format::known_type($_); } @{$::o->{fstab}} ]; exists $::o->{$_} and $o->{$_} = $::o->{$_} foreach qw(locale authentication mouse net timezone superuser keyboard users partitioning isUpgrade manualFstab nomouseprobe crypto security security_user autoExitInstall X services postInstall postInstallNonRooted); #- TODO modules bootloader local $o->{partitioning}{auto_allocate} = !$b_replay; $o->{autoExitInstall} = !$b_replay; $o->{interactiveSteps} = [ 'doPartitionDisks', 'formatPartitions' ] if $b_replay; #- deep copy because we're modifying it below $o->{users} = $b_respect_privacy ? [] : [ @{$o->{users} || []} ]; my @user_info_to_remove = ( if_($b_respect_privacy, qw(realname pw)), qw(oldu oldg password password2), ); $_ = { %{$_ || {}} }, delete @$_{@user_info_to_remove} foreach $o->{superuser}, @{$o->{users} || []}; if ($b_respect_privacy && $o->{net}) { if (my $type = $o->{net}{type}) { my @net_type_to_remove = qw(passwd login phone_in phone_out); $_ = { %{$_ || {}} }, delete @$_{@net_type_to_remove} foreach $o->{net}{$type}; } } my $warn_privacy = $b_respect_privacy ? "!! This file has been simplified to respect privacy when reporting problems. # You should use /root/drakx/auto_inst.cfg.pl instead !!\n#" : ''; require Data::Dumper; my $str = join('', "#!/usr/bin/perl -cw # $warn_privacy # You should check the syntax of this file before using it in an auto-install. # You can do this with 'perl -cw auto_inst.cfg.pl' or by executing this file # (note the '#!/usr/bin/perl -cw' on the first line). ", Data::Dumper->Dump([$o], ['$o'])); $str =~ s/ {8}/\t/g; #- replace all 8 space char by only one tabulation, this reduces file size so much :-) $str; } sub getAndSaveAutoInstallFloppies { my ($o, $replay) = @_; my $name = ($replay ? 'replay' : 'auto') . '_install'; my $dest_dir = "$::prefix/root/drakx"; eval { modules::load('loop') }; if (arch() =~ /ia64/) { #- nothing yet } else { my $mountdir = "$::prefix/root/aif-mount"; -d $mountdir or mkdir $mountdir, 0755; my $param = 'kickstart=floppy ' . generate_automatic_stage1_params($o); my $img = install::media::getAndSaveInstallFloppies($o, $dest_dir, $name) or return; { my $dev = devices::set_loop($img) or log::l("couldn't set loopback device"), return; find { eval { fs::mount::mount($dev, $mountdir, $_, 0); 1 } } qw(ext2 vfat) or return; if (-e "$mountdir/menu.lst") { # hd_grub boot disk is different than others substInFile { s/^(\s*timeout.*)/timeout 1/; s/\bautomatic=method:disk/$param/; } "$mountdir/menu.lst"; } elsif (-e "$mountdir/syslinux.cfg") { #- make room first unlink "$mountdir/help.msg", "$mountdir/boot.msg"; substInFile { s/timeout.*/$replay ? 'timeout 1' : ''/e; s/^(\s*append)/$1 $param/; } "$mountdir/syslinux.cfg"; output "$mountdir/boot.msg", $replay ? '' : "\n0c" . "!! If you press enter, an auto-install is going to start. All data on this computer is going to be lost, including any Windows partitions !! " . "07\n"; } { local $o->{partitioning}{clearall} = !$replay; eval { output("$mountdir/auto_inst.cfg", g_auto_install($replay)) }; $@ and log::l("Warning: <", formatError($@), ">"); } fs::mount::umount($mountdir); devices::del_loop($dev); } rmdir $mountdir; $img; } } sub g_default_packages { my ($o) = @_; my ($_h, $file) = media_browser($o, 'save', 'package_list.pl') or return; require Data::Dumper; my $str = Data::Dumper->Dump([ { default_packages => install::pkgs::selected_leaves($o->{packages}) } ], ['$o']); $str =~ s/ {8}/\t/g; output($file, "# You should always check the syntax with 'perl -cw auto_inst.cfg.pl'\n" . "# before testing. To use it, boot with ``linux defcfg=floppy''\n" . $str); } sub loadO { my ($O, $f) = @_; $f ||= auto_inst_file(); if ($f =~ /^(floppy|patch)$/) { my $f = $f eq "floppy" ? 'auto_inst.cfg' : "patch"; my $o; foreach (removable_media__early_in_install()) { my $dev = devices::make($_->{device}); foreach my $fs (arch() =~ /sparc/ ? 'romfs' : ('ext2', 'vfat')) { eval { fs::mount::mount($dev, '/mnt', $fs, 'readonly'); 1 } or next; if (my $abs_f = find { -e $_ } "/mnt/$f", "/mnt/$f.pl") { $o = loadO_($O, $abs_f); } fs::mount::umount("/mnt"); goto found if $o; } } die "Could not find $f"; found: modules::unload(qw(vfat fat)); $o; } else { loadO_($O, $f); } } sub loadO_ { my ($O, $f) = @_; my $o; { my $fh; if (ref $f) { $fh = $f; } else { -e "$f.pl" and $f .= ".pl" unless -e $f; $fh = -e $f ? common::open_file($f) : getFile_($O->{stage2_phys_medium}, $f) || die N("Error reading file %s", $f); } my $s = cat__($fh); close $fh; { no strict; eval $s; $@ and die; } $O and add2hash_($o ||= {}, $O); } $O and bless $o, ref $O; handle_old_auto_install_format($o); $o; } sub handle_old_auto_install_format { my ($o) = @_; #- handle backward compatibility for things that changed foreach (@{$o->{partitions} || []}, @{$o->{manualFstab} || []}) { if (my $type = delete $_->{type}) { if ($type =~ /^(0x)?(\d*)$/) { fs::type::set_pt_type($_, $type); } else { fs::type::set_fs_type($_, $type); } } } #- {rpmsrate_flags_chosen} was called {compssUsersChoice} if (my $rpmsrate_flags_chosen = delete $o->{compssUsersChoice}) { $o->{rpmsrate_flags_chosen} = $rpmsrate_flags_chosen; } #- compssUsers flags are now named CAT_XXX if ($o->{rpmsrate_flags_chosen} && ! any { /^CAT_/ } keys %{$o->{rpmsrate_flags_chosen}}) { #- we don't really know if this is needed for compatibility, but it won't hurt :) foreach (keys %{$o->{rpmsrate_flags_chosen}}) { $o->{rpmsrate_flags_chosen}{"CAT_$_"} = $o->{rpmsrate_flags_chosen}{$_}; } #- it used to be always selected $o->{rpmsrate_flags_chosen}{CAT_SYSTEM} = 1; } if ($o->{updates} && $o->{updates}{mirror}) { $o->{updates}{url} = delete $o->{updates}{mirror}; } #- backward compatibility for network fields exists $o->{intf} and $o->{net}{ifcfg} = delete $o->{intf}; exists $o->{netcnx}{type} and $o->{net}{type} = delete $o->{netcnx}{type}; exists $o->{netc}{NET_INTERFACE} and $o->{net}{net_interface} = delete $o->{netc}{NET_INTERFACE}; my %netc_translation = ( resolv => [ qw(dnsServer dnsServer2 dnsServer3 DOMAINNAME DOMAINNAME2 DOMAINNAME3) ], network => [ qw(NETWORKING FORWARD_IPV4 NETWORKING_IPV6 HOSTNAME GATEWAY GATEWAYDEV NISDOMAIN) ], auth => [ qw(LDAPDOMAIN WINDOMAIN) ], ); foreach my $dest (keys %netc_translation) { exists $o->{netc}{$_} and $o->{net}{$dest}{$_} = delete $o->{netc}{$_} foreach @{$netc_translation{$dest}}; } delete @$o{qw(netc netcnx)}; $o; } sub generate_automatic_stage1_params { my ($o) = @_; my $method = $o->{method}; my @ks; if ($o->{method} eq 'http') { $ENV{URLPREFIX} =~ m!(http|ftp)://([^/:]+)(.*)! or die; $method = $1; #- in stage1, FTP via HTTP proxy is available through FTP config, not HTTP @ks = (server => $2, directory => $3); } elsif ($o->{method} eq 'ftp') { my @l = install::ftp::parse_ftp_url($ENV{URLPREFIX}); @ks = (server => $l[0], directory => $l[1], user => $l[2], pass => $l[3]); } elsif ($o->{method} eq 'nfs') { cat_("/proc/mounts") =~ m|(\S+):(\S+)\s+/tmp/media| or internal_error("can not find nfsimage"); @ks = (server => $1, directory => $2); } @ks = (method => $method, @ks); if (is_network_install($o)) { if ($ENV{PROXY}) { push @ks, proxy_host => $ENV{PROXY}, proxy_port => $ENV{PROXYPORT}; } my $intf = first(values %{$o->{net}{ifcfg}}); push @ks, interface => $intf->{DEVICE}; if ($intf->{BOOTPROTO} eq 'dhcp') { push @ks, network => 'dhcp'; } else { push @ks, network => 'static', ip => $intf->{IPADDR}, netmask => $intf->{NETMASK}, gateway => $o->{net}{network}{GATEWAY}; require network::network; if (my @dnss = network::network::dnsServers($o->{net})) { push @ks, dns => $dnss[0]; } } } #- sync it with ../mdk-stage1/automatic.c my %aliases = (method => 'met', network => 'netw', interface => 'int', gateway => 'gat', netmask => 'netm', adsluser => 'adslu', adslpass => 'adslp', hostname => 'hos', domain => 'dom', server => 'ser', directory => 'dir', user => 'use', pass => 'pas', disk => 'dis', partition => 'par'); 'automatic=' . join(',', map { ($aliases{$_->[0]} || $_->[0]) . ':' . $_->[1] } group_by2(@ks)); } sub find_root_parts { my ($fstab, $prefix) = @_; grep { $_->{release} =~ /\b(mandrake|mandriva|conectiva)\b/i } _find_root_parts($fstab, $prefix); } sub _find_root_parts { my ($fstab, $prefix) = @_; if ($::local_install) { my $f = common::release_file('/mnt') or return; return common::parse_release_file('/mnt', $f, {}); } map { my $handle = any::inspect($_, $prefix); if (my $f = $handle && common::release_file($handle->{dir})) { common::parse_release_file($handle->{dir}, $f, $_); } else { () } } grep { isTrueLocalFS($_) } @$fstab; } sub migrate_device_names { my ($all_hds, $from_fstab, $new_root, $root_from_fstab, $o_in) = @_; log::l("warning: fstab says root partition is $root_from_fstab->{device}, whereas we were reading fstab from $new_root->{device}"); my ($old_prefix, $old_part_number) = devices::simple_partition_scan($root_from_fstab); my ($new_prefix, $new_part_number) = devices::simple_partition_scan($new_root); if ($old_part_number != $new_part_number) { log::l("argh, $root_from_fstab->{device} and $old_part_number->{device} are not the same partition number"); return; } log::l("replacing $old_prefix with $new_prefix"); my %h; foreach (@$from_fstab) { if ($_->{device} =~ s!^\Q$old_prefix!$new_prefix!) { #- this is simple to handle, nothing more to do } elsif ($_->{part_number}) { my $device_prefix = devices::part_prefix($_); push @{$h{$device_prefix}}, $_; } else { #- hopefully this does not need anything special } } my @from_fstab_per_hds = values %h or return; my @current_hds = grep { $new_root->{rootDevice} ne $_->{device} } fs::get::hds($all_hds); found_one: @from_fstab_per_hds or return; foreach my $from_fstab_per_hd (@from_fstab_per_hds) { my ($matching, $other) = partition { my $hd = $_; every { my $wanted = $_; my $part = find { $_->{part_number} eq $wanted->{part_number} } partition_table::get_normal_parts($hd); $part && $part->{fs_type} && fs::type::can_be_this_fs_type($wanted, $part->{fs_type}); } @$from_fstab_per_hd; } @current_hds; @$matching == 1 or next; my ($hd) = @$matching; @current_hds = @$other; @from_fstab_per_hds = grep { $_ != $from_fstab_per_hd } @from_fstab_per_hds; log::l("$hd->{device} nicely corresponds to " . join(' ', map { $_->{device} } @$from_fstab_per_hd)); foreach (@$from_fstab_per_hd) { partition_table::compute_device_name($_, $hd); } goto found_one; } #- we can not find one and only one matching hd my @from_fstab_not_handled = map { @$_ } @from_fstab_per_hds; log::l("we still do not know what to do with: " . join(' ', map { $_->{device} } @from_fstab_not_handled)); if (!$o_in) { log::l("well, ignoring them!"); return; } my $propositions_valid = every { my $wanted = $_; my @parts = grep { $_->{part_number} eq $wanted->{part_number} && $_->{fs_type} && fs::type::can_be_this_fs_type($wanted, $_->{fs_type}) } fs::get::hds_fstab(@current_hds); $wanted->{propositions} = \@parts; @parts > 0; } @from_fstab_not_handled; $o_in->ask_from('', N("The following disk(s) were renamed:"), [ map { { label => N("%s (previously named as %s)", $_->{mntpoint}, $_->{device}), val => \$_->{device}, format => sub { $_[0] && $_->{device} }, list => [ '', $propositions_valid ? @{$_->{propositions}} : fs::get::hds_fstab(@current_hds) ] }; } @from_fstab_not_handled ]); } sub use_root_part { my ($all_hds, $part, $o_in) = @_; return if $::local_install; my $migrate_device_names; { my $handle = any::inspect($part, $::prefix) or internal_error(); my @from_fstab = fs::read_fstab($handle->{dir}, '/etc/fstab', 'keep_default'); my $root_from_fstab = fs::get::root_(\@from_fstab); if (!fs::get::is_same_hd($root_from_fstab, $part)) { $migrate_device_names = 1; log::l("from_fstab contained: $_->{device} $_->{mntpoint}") foreach @from_fstab; migrate_device_names($all_hds, \@from_fstab, $part, $root_from_fstab, $o_in); log::l("from_fstab now contains: $_->{device} $_->{mntpoint}") foreach @from_fstab; } fs::add2all_hds($all_hds, @from_fstab); log::l("fstab is now: $_->{device} $_->{mntpoint}") foreach fs::get::fstab($all_hds); } isSwap($_) and $_->{mntpoint} = 'swap' foreach fs::get::really_all_fstab($all_hds); #- use all available swap. $migrate_device_names; } sub getHds { my ($o, $o_in) = @_; fs::any::get_hds($o->{all_hds} ||= {}, $o->{fstab} ||= [], $o->{manualFstab}, $o->{partitioning}, $::local_install, $o_in); } sub removable_media__early_in_install() { eval { modules::load('usb_storage', 'sd_mod') } if detect_devices::usbStorage(); my $all_hds = fsedit::get_hds({}); fs::get_raw_hds('', $all_hds); my @l1 = grep { detect_devices::isKeyUsb($_) } @{$all_hds->{hds}}; my @l2 = grep { $_->{media_type} eq 'fd' || detect_devices::isKeyUsb($_) } @{$all_hds->{raw_hds}}; (fs::get::hds_fstab(@l1), @l2); } my %media_browser; sub media_browser { my ($in, $save, $o_suggested_name) = @_; my %media_type2text = ( fd => N("Floppy"), hd => N("Hard Disk"), cdrom => N("CDROM"), ); my @network_protocols = (if_(!$save, N_("HTTP")), if_(0, N_("FTP")), N_("NFS")); my $to_text = sub { my ($hd) = @_; ($media_type2text{$hd->{media_type}} || $hd->{media_type}) . ': ' . partition_table::description($hd); }; ask_media: my $all_hds = fsedit::get_hds({}, $in); fs::get_raw_hds('', $all_hds); my @raw_hds = grep { !$save || $_->{media_type} ne 'cdrom' } @{$all_hds->{raw_hds}}; my @dev_and_text = group_by2( (map { $_ => $to_text->($_) } @raw_hds), (map { my $hd = $to_text->($_); map { $_ => join('\1', $hd, partition_table::description($_)) } grep { isTrueFS($_) || isOtherAvailableFS($_) } fs::get::hds_fstab($_); } fs::get::hds($all_hds)), if_(is_network_install($::o) || install::steps::hasNetwork($::o), map { $_ => join('\1', N("Network"), translate($_)) } @network_protocols), ); $in->ask_from_({ messages => N("Please choose a media"), }, [ { val => \$media_browser{dev}, separator => '\1', list => [ map { $_->[1] } @dev_and_text ] }, ]) or return; my $dev = (find { $_->[1] eq $media_browser{dev} } @dev_and_text)->[0]; my $browse = sub { my ($dir) = @_; browse: my $file = $in->ask_filename({ save => $save, directory => $dir, if_($o_suggested_name, file => "$dir/$o_suggested_name"), }) or return; if (-e $file && $save) { $in->ask_yesorno('', N("File already exists. Overwrite it?")) or goto browse; } if ($save) { if (!open(my $_fh, ">>$file")) { $in->ask_warn('', N("Permission denied")); goto browse; } $file; } else { common::open_file($file) || goto browse; } }; my $inspect_and_browse = sub { my ($dev) = @_; if (my $h = any::inspect($dev, $::prefix, $save)) { if (my $file = $browse->($h->{dir})) { return $h, $file; } undef $h; #- help perl } else { $in->ask_warn(N("Error"), formatError($@)); } (); }; if (member($dev, @network_protocols)) { require install::interactive; install::interactive::upNetwork($::o); if ($dev eq 'HTTP') { require install::http; $media_browser{url} ||= 'http://'; while (1) { $in->ask_from('', 'URL', [ { val => \$media_browser{url} } ]) or last; if ($dev eq 'HTTP') { my $fh = install::http::getFile($media_browser{url}); $fh and return '', $fh; } } } elsif ($dev eq 'NFS') { while (1) { $in->ask_from('', 'NFS', [ { val => \$media_browser{nfs} } ]) or last; my ($kind) = fs::wild_device::analyze($media_browser{nfs}); if ($kind ne 'nfs') { $in->ask_warn('', N("Bad NFS name")); next; } my $nfs = fs::wild_device::to_subpart($media_browser{nfs}); $nfs->{fs_type} = 'nfs'; if (my ($h, $file) = $inspect_and_browse->($nfs)) { return $h, $file; } } } else { $in->ask_warn('', 'todo'); goto ask_media; } } else { if (!$dev->{fs_type} || $dev->{fs_type} eq 'auto' || $dev->{fs_type} =~ /:/) { if (my $p = fs::type::type_subpart_from_magic($dev)) { add2hash($p, $dev); $dev = $p; } else { $in->ask_warn(N("Error"), N("Bad media %s", partition_table::description($dev))); goto ask_media; } } if (my ($h, $file) = $inspect_and_browse->($dev)) { return $h, $file; } goto ask_media; } } sub X_options_from_o { my ($o) = @_; { freedriver => $o->{freedriver}, allowFB => $o->{allowFB}, ignore_bad_conf => $o->{isUpgrade} =~ /redhat|conectiva/, }; } sub screenshot_dir__and_move() { my ($dir0, $dir1, $dir2) = ('/root', "$::prefix/root", '/tmp'); if (-e $dir0 && ! -e '/root/non-chrooted-marker.DrakX') { ($dir0, 'nowarn'); #- it occurs during pkgs install when we are chrooted } elsif (-e $dir1) { if (-e "$dir2/DrakX-screenshots") { cp_af("$dir2/DrakX-screenshots", $dir1); rm_rf("$dir2/DrakX-screenshots"); } $dir1; } else { $dir2; } } my $warned; sub take_screenshot { my ($in) = @_; my ($base_dir, $nowarn) = screenshot_dir__and_move(); my $dir = "$base_dir/DrakX-screenshots"; if (!-e $dir) { mkdir $dir or $in->ask_warn('', N("Can not make screenshots before partitioning")), return; } my $nb = 1; $nb++ while -e "$dir/$nb.png"; system("fb2png /dev/fb0 $dir/$nb.png 0"); if (!$warned && !$nowarn) { $warned = 1; $in->ask_warn('', N("Screenshots will be available after install in %s", "/root/DrakX-screenshots")); } } sub copy_advertising { my ($o) = @_; return if $::rootwidth < 800; my $f; my $source_dir = "install/extra/advertising"; foreach ("." . $o->{locale}{lang}, "." . substr($o->{locale}{lang},0,2), '') { $f = getFile_($o->{stage2_phys_medium}, "$source_dir$_/list") or next; $source_dir = "$source_dir$_"; } if (my @files = <$f>) { my $dir = "$::prefix/tmp/drakx-images"; mkdir $dir; unlink glob_("$dir/*"); foreach (@files) { chomp; install::media::getAndSaveFile_($o->{stage2_phys_medium}, "$source_dir/$_", "$dir/$_"); (my $pl = $_) =~ s/\.png/.pl/; install::media::getAndSaveFile_($o->{stage2_phys_medium}, "$source_dir/$pl", "$dir/$pl"); } @advertising_images = map { "$dir/$_" } @files; } } sub remove_advertising() { eval { rm_rf("$::prefix/tmp/drakx-images") }; @advertising_images = (); } sub disable_user_view() { substInFile { s/^UserView=.*/UserView=true/ } "$::prefix/etc/kde/kdm/kdmrc"; substInFile { s/^Browser=.*/Browser=0/ } "$::prefix/etc/X11/gdm/custom.conf"; } sub set_security { my ($o) = @_; require security::various; security::level::set($o->{security}); security::various::config_security_user($::prefix, $o->{security_user}); } sub write_fstab { my ($o) = @_; fs::write_fstab($o->{all_hds}, $::prefix) if !$o->{isUpgrade} || $o->{isUpgrade} =~ /redhat|conectiva/ || $o->{migrate_device_names}; } sub adjust_files_mtime_to_timezone() { #- to ensure linuxconf does not cry against those files being in the future #- to ensure fc-cache works correctly on fonts installed after reboot my $timezone_shift = run_program::rooted_get_stdout($::prefix, 'date', '+%z'); my ($h, $m) = $timezone_shift =~ /\+(..)(..)/ or return; my $now = time() - ($h * 60 + $m * 60) * 60; my @files = ( (map { "$::prefix/$_" } '/etc/modules.conf', '/etc/crontab', '/etc/sysconfig/mouse', '/etc/sysconfig/network', '/etc/X11/fs/config'), glob_("$::prefix/var/cache/fontconfig/*"), ); log::l("adjust_files_mtime_to_timezone: setting time back $h:$m for files " . join(' ', @files)); foreach (@files) { utime $now, $now, $_; } } sub move_compressed_image_to_disk { my ($o) = @_; our $compressed_image_on_disk; return if $compressed_image_on_disk || $::local_install; my $name = 'mdkinst.sqfs'; my ($loop, $current_image) = devices::find_compressed_image($name) or return; my $compressed_image_size = (-s $current_image) / 1024; #- put in KiB my $dir; if (availableRamMB() > 400) { $dir = '/tmp'; #- on tmpfs } else { my $tmp = fs::get::mntpoint2part('/tmp', $o->{fstab}); if ($tmp && fs::df($tmp, $::prefix) / 2 > $compressed_image_size * 1.2) { #- we want at least 20% free afterwards $dir = "$::prefix/tmp"; } else { my $root = fs::get::mntpoint2part('/', $o->{fstab}); my $root_free_MB = fs::df($root, $::prefix) / 2 / 1024; my $wanted_size_MB = $o->{isUpgrade} || fs::get::mntpoint2part('/usr', $o->{fstab}) ? 150 : 300; log::l("compressed image: root free $root_free_MB MB, wanted at least $wanted_size_MB MB"); if ($root_free_MB > $wanted_size_MB) { $dir = $tmp ? $::prefix : "$::prefix/tmp"; } else { $dir = '/tmp'; #- on tmpfs if (availableRamMB() < 200) { log::l("ERROR: not much ram (" . availableRamMB() . " MB), we're going in the wall!"); } } } } $compressed_image_on_disk = "$dir/$name"; if ($current_image ne $compressed_image_on_disk) { log::l("move_compressed_image_to_disk: copying $current_image to $compressed_image_on_disk"); cp_af($current_image, $compressed_image_on_disk); run_program::run('losetup', '-r', $loop, $compressed_image_on_disk); unlink $current_image if $current_image eq "/tmp/$name"; } } sub deploy_server_notify { my ($o) = @_; my $fallback_intf = "eth0"; my $fallback_port = 3710; my ($server, $port) = $o->{deploy_server} =~ /^(.*?)(?::(\d+))?$/; if ($server) { require network::tools; require IO::Socket; $port ||= $fallback_port; my $intf = network::tools::get_current_gateway_interface() || $fallback_intf; my $mac = c::get_hw_address($intf); my $sock = IO::Socket::INET->new(PeerAddr => $server, PeerPort => $port, Proto => 'tcp'); if ($sock) { print $sock "$mac\n"; close($sock); log::l(qq(successfully notified deploy server $server on port $port)); } else { log::l(qq(unable to contact deploy server $server on port $port)); } } else { log::l(qq(unable to parse deploy server in string $o->{deploy_server})); } } #-############################################################################### #- pcmcia various #-############################################################################### sub configure_pcmcia { my ($o) = @_; my $controller = detect_devices::pcmcia_controller_probe(); $o->{pcmcia} ||= $controller && $controller->{driver} or return; log::l("configuring PCMCIA controller ($o->{pcmcia})"); symlink "/tmp/stage2/$_", $_ foreach "/etc/pcmcia"; eval { modules::load($o->{pcmcia}, 'pcmcia') }; run_program::run("/lib/udev/pcmcia-socket-startup"); } 1;