webdruid-0.5.4.orig/0000755000000000000000000000000010066113350014215 5ustar rootroot00000000000000webdruid-0.5.4.orig/skins/0000755000000000000000000000000010066113350015344 5ustar rootroot00000000000000webdruid-0.5.4.orig/skins/classic/0000755000000000000000000000000010066113350016765 5ustar rootroot00000000000000webdruid-0.5.4.orig/skins/classic/skin-classic.xml.conf0000644000000000000000000000211010066113350023010 0ustar rootroot00000000000000 25yes
15yes
webdruid-0.5.4.orig/skins/classic/bullet2.png0000644000000000000000000000052510066113350021046 0ustar rootroot00000000000000PNG  IHDR a{PLTE2.+)\)B  AG:A╗ޑ ӓʻ:?wzBFmn28=A48!yp"f"8{0bKGDH pHYs  ~tIME 8`IDATxc` 7TTEH," ( p0 )8 uebr*Jb`8y$e$xvq df{IENDB`webdruid-0.5.4.orig/skins/classic/right_arrow.png0000644000000000000000000000064210066113350022024 0ustar rootroot00000000000000PNG  IHDR aPLTEľܖunu}exdcUGzDp@^=s8s4o2h*f*`)e'^&]&\%\!RXOKy7XbKGDH pHYs  ~tIME .2ObIDATxc`@6 unknown . .

Top of Total Sites
# Hits Files KBytes Visits Hits Files KBytes Visits Hostname
View All Sites

Top of Total Sites (sorted per Kilobytes)
# Hits Files KBytes Visits Hits Files KBytes Visits Hostname
View All Sites
Statistics for <xsl:value-of select="/body/globalsettings/setting[@name='HostName']/value"/> - Sites sites
Sites sites

Here is the list of the Sites.
It is the location of users on the internet.
With this you can know which users became 'addicted' to . Beware, that the users are located using their IP addresses. This has some pitfalls :

  • Users connecting with modems don't usually have fixed IP addresses. This means that if someone with a modem connects to , drops the line, and then connects again, it is very likely that he will have a different IP address, and thus, will be considered as coming from another site.
  • Large corporate users are likely to connect from behind an http proxy server. This means if two users from such a company connect to , they will appear as coming from the same site.

webdruid-0.5.4.orig/skins/classic/apply_skin.sh0000755000000000000000000000411410066113350021475 0ustar rootroot00000000000000#!/bin/sh # This is a WebDruid skin shell script # It is part of The WebDruid software package # (http://www.webdruid.org) # # Copyright 2003-2004 Fabien Chevalier # # # This file is distributed under the GNU GPL version 2, # or at our option, any later version. skin_version="0.5.0" if [ $# -ne 6 ]; then echo ""; echo "This is a WedDruid internal shell sript."; echo "It is to be called only by The WebDruid."; echo ""; exit 1; fi # Script arguments # Keep in mind when reading this that The WebDruid does # a chdir to its global output directory. # $1 : Run mode - one of MONTH, SUMMARY # $2 : Relative path to directory where xml files are stored # $3 : The xml file name to process # Either monthly_yyyy_mm or summary.xml # $4 : Full path to xml file containing skin settings # $5 : This skin's relative output directory # This script MUST NOT write anywhere else # Please note that the directory may not yet exist # $6 : Absolute path to skins ressource directory # Contains all skins specific data (pictures, xslt stylesheets, ...) # Ressources specific to this skin are in subdirectory named with # the name of the skin run_mode=$1; xml_dir=$2; raw_xml_file=$3; skin_settings_file=$4; output_dir=$5; skins_ressource_dir=$6; # Trying to create output directory if required, exit if it fails test -d "$output_dir" || mkdir -p "$output_dir" || exit 1; # Begin of 'classic' skin specific part if [ $run_mode = "SUMMARY" ]; then # Let's create summary echo "Run mode SUMMARY not impemented"; else # Let's deal with monthly files; xsltproc --nonet \ --param output_dir \"$output_dir\" \ --param xml_dir \"$PWD/$xml_dir\" \ --param skin_settings_file \"$skin_settings_file\" \ --param skin_version \"$skin_version\" \ "$skins_ressource_dir/classic/classic.xsl" \ "$xml_dir/$raw_xml_file" > /dev/null \ && cp -f "$skins_ressource_dir"/classic/*.png "$output_dir" \ && cp -f "$skins_ressource_dir"/classic/classic.css "$output_dir"; exit $?; fi webdruid-0.5.4.orig/skins/classic/separator.png0000644000000000000000000000021610066113350021472 0ustar rootroot00000000000000PNG  IHDR(~PLTEOgfbKGDH pHYs  ~tIME 7iIDATxc````6IENDB`webdruid-0.5.4.orig/skins/classic/classic.css0000644000000000000000000000315210066113350021121 0ustar rootroot00000000000000/************************ Welcome page (aka WP) ***********************/ /* BODY */ #WelcomePage {} #WP_welcome {font-style: italic; font-size: 28; text-align: center} #WP_welcometext {} /************************ Left Panel (aka LP) ************************/ /* BODY */ #LeftPanel {} /*.LP_section_header {font-size: 12px; font-weight: bold; font-family: Verdana, Arial, Helvetica, sans-serif; color: #064FAB}*/ .LP_section_header {font-size: 12px; font-weight: bold; font-family: Verdana, Arial, Helvetica, sans-serif; color: #FFFFFF} .LP_section_item {font-size: 9px; font-family: Verdana, Arial, Helvetica, sans-serif} /************************ Report Pages (aka RP) ************************/ /* This is where all styles common to all report pages are stored */ /* BODY */ .ReportPage {margin: 25px 25px 25px 25px} .RP_title {text-align: center; font-family: Verdana, Arial, Helvetica, sans-serif; color: #064FAB; font-size: 12px; font-weight: bold} .RP_site_name {font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 9px; font-weight: bold; text-align: center} .RP_description_text {font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 9px} .RP_link {font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 9px} .RP_current_link {color: #D40710} .RP_report_date {font-style: italic; font-size: 10px; text-align: center; font-family: Verdana, Arial, Helvetica, sans-serif} /************************ Common part (aka CP) ************************/ .RP_month_text { font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 9px; font-weight: bold} webdruid-0.5.4.orig/skins/classic/left_arrow.png0000644000000000000000000000064410066113350021643 0ustar rootroot00000000000000PNG  IHDR aPLTEľܖunu}exdcUGzDp@^=s8s4o2h*f*`)e'^&]&\%\!RXOKy7XbKGDH pHYs  ~tIME dIDATxc`8$L~yc~ɯifb! [9;8X8P#!m c(FXVYAf?0?0 mj+IENDB`webdruid-0.5.4.orig/skins/classic/shared.xsl0000644000000000000000000004652210066113350020774 0ustar rootroot00000000000000
The WebDruid
index.html RP_current_link Welcome
glossary.html RP_current_link Glossary
about.html RP_current_link About
Statistics
summary.html RP_current_link Summary
daily___.html RP_current_link Daily statistics
hourly___.html RP_current_link Hourly statistics
topurls___.html RP_current_link Most viewed Urls
lazyurls___.html RP_current_link Less viewed Urls
path___.html RP_current_link Path graph
entry_page___.html RP_current_link Entry pages
exit_page___.html RP_current_link Exit pages
sites___.html RP_current_link Sites
response_codes___.html RP_current_link Response codes
search_engines___.html RP_current_link Search engines
referrers___.html RP_current_link Referrers
users___.html RP_current_link Users
browsers___.html RP_current_link Browsers
countries___.html RP_current_link Countries
page title page_name

Previous month - month window.location = window.document.form.month.value; yes - Next Month

month year

Document generated on by The WebDruid 'classic' skin release
Figures computed by The WebDruid engine release

webdruid-0.5.4.orig/po/0000755000000000000000000000000010066113350014633 5ustar rootroot00000000000000webdruid-0.5.4.orig/po/it.po0000644000000000000000000006626310066113350015624 0ustar rootroot00000000000000msgid "" msgstr "" "Project-Id-Version: 1.0\n" "PO-Revision-Date: 2003-05-25 23:29+0200\n" "Last-Translator: Johan Poirier \n" "Language-Team: French \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=ISO-8859-1\n" "Content-Transfer-Encoding: 8bit" msgid "-A num = Display num top agents" msgstr "-A num = visualizza 'num' browser nella classifica" msgid "-C num = Display num top countries" msgstr "-C num = visualizza 'num' paesi nella classifica" msgid "-D name = Use DNS Cache file 'name'" msgstr "-D nome = utilizza 'nome' come file di cache DNS" msgid "-E num = Display num top Exit Pages" msgstr "-E num = visualizza 'num' pagine in uscita nella classifica" msgid "-F type = Log type. type= (clf | ftp | squid)" msgstr "-F tipo = specifica il tipo di log (clf | ftp | squid)" msgid "-G = supress hourly graph" msgstr "-G = non visualizza il grafico orario" msgid "-H = supress hourly stats" msgstr "-H = non visualizza le statistiche orarie" msgid "-I name = Index alias 'name'" msgstr "-I nome = utilizza 'nome' come file di indice" msgid "-L = supress color coded graph legends" msgstr "-L = non visualizza le legende policromatiche nei grafici" msgid "-N num = Number of DNS processes (0=disable)" msgstr "-N num = numero massimo di thread per la risoluzione DNS (0=non abilitata)" msgid "-P name = Page type extension 'name'" msgstr "-P ext = utilizza 'ext' come estensione per le pagine" msgid "-Q = supress _ALL_ messages" msgstr "-Q = non visualizza alcun messaggio" msgid "-R num = Display num top referrers" msgstr "-R num = visualizza 'num' referrer nella classifica" msgid "-S num = Display num top sites" msgstr "-S num = visualizza 'num' nomi di host nella classifica" msgid "-T = print timing information" msgstr "-T = visualizza informazioni sul tempo di esecuzione" msgid "-U num = Display num top URLs" msgstr "-U num = visualizza 'num' URL nella classifica" msgid "-X = Hide individual sites" msgstr "-X = non visualizza i singoli hostname" msgid "-Y = supress country graph" msgstr "-Y = non visualizza il grafico relativo ai paesi" msgid "-a name = hide user agent 'name'" msgstr "-a nome = ignora il browser specificato" msgid "-c file = use configuration file 'file'" msgstr "-c file = utilizza 'file' per le impostazioni di configurazione" msgid "-d = print additional debug info" msgstr "-d = visualizza informazioni di debug addizionali" msgid "-e num = Display num top Entry Pages" msgstr "-e num = visualizza 'num' pagine in ingresso nella classifica" msgid "-f = Fold sequence errors" msgstr "-f = elenca sequenzialmente gli errori" msgid "-g num = Group Domains to 'num' levels" msgstr "-g num = raggruppa i domini fino a 'num' livelli" msgid "-h = print this help message" msgstr "-h = visualizza questa schermata" msgid "-i = ignore history file" msgstr "-i = tralascia il file di history" msgid "-l num = use num background lines on graph" msgstr "-l num = utilizza num linee nello sfondo dei grafici" msgid "-m num = Visit timout value (seconds)" msgstr "-m num = valore di timeout per gli accessi (seconds)" msgid "-n name = hostname to use" msgstr "-n nome = nome dell'host da utilizzare" msgid "-o dir = output directory to use" msgstr "-o dir = directory in cui collocare i file di output" msgid "-p = preserve state (incremental)" msgstr "-p = conserva le statistiche (modalita' incrementale)" msgid "-q = supress informational messages" msgstr "-q = non visualizza i messaggi informativi" msgid "-r name = hide referrer 'name'" msgstr "-r nome = ignora il referrer specificato" msgid "-s name = hide site 'name'" msgstr "-s nome = ignora l'host specificato" msgid "-t name = report title 'name'" msgstr "-t nome = nome da utilizzare per il titolo del rapporto statistico" msgid "-u name = hide URL 'name'" msgstr "-u nome = ignora l'URL specificato" msgid "-v -V = print version information" msgstr "-v -V = mostra il numero di versione" msgid "-x name = Use filename extension 'name'" msgstr "-x ext = utilizza 'ext' come estensione per i file" msgid "Afghanistan" msgstr "Afghanistan" msgid "Agents" msgstr "Browser" msgid "Albania" msgstr "Albania" msgid "Algeria" msgstr "Algeria" msgid "American Samoa" msgstr "Samoa Americana" msgid "Andorra" msgstr "Andorra" msgid "Angola" msgstr "Angola" msgid "Anguilla" msgstr "Anguilla" msgid "Antarctica" msgstr "Antartica" msgid "Antigua and Barbuda" msgstr "Antigua e Barbuda" msgid "Apr" msgstr "Apr" msgid "April" msgstr "Aprile" msgid "Argentina" msgstr "Argentina" msgid "Armenia" msgstr "Armenia" msgid "Aruba" msgstr "Aruba" msgid "Aug" msgstr "Ago" msgid "August" msgstr "Agosto" msgid "Australia" msgstr "Australia" msgid "Austria" msgstr "Austria" msgid "Avg" msgstr "Media" msgid "Azerbaijan" msgstr "Azerbaijan" msgid "Bahamas" msgstr "Bahamas" msgid "Bahrain" msgstr "Bahrain" msgid "Bangladesh" msgstr "Bangladesh" msgid "Barbados" msgstr "Barbados" msgid "Belarus" msgstr "Belarus" msgid "Belgium" msgstr "Belgio" msgid "Belize" msgstr "Belize" msgid "Benin" msgstr "Benin" msgid "Bermuda" msgstr "Bermuda" msgid "Bhutan" msgstr "Bhutan" msgid "Bolivia" msgstr "Bolivia" msgid "Bosnia and Herzegovina" msgstr "Bosnia e Herzegovina" msgid "Botswana" msgstr "Botswana" msgid "Bouvet Island" msgstr "Isole Bouvet" msgid "Brazil" msgstr "Brasile" msgid "British Indian Ocean Territory" msgstr "Territori Britannici nell'Oceano Indiano" msgid "Brunei Darussalam" msgstr "Sultanato del Brunei" msgid "Bulgaria" msgstr "Bulgaria" msgid "Burkina Faso" msgstr "Burkina Faso" msgid "Burundi" msgstr "Burundi" msgid "By" msgstr "Per" msgid "Cambodia" msgstr "Cambodia" msgid "Cameroon" msgstr "Camerun" msgid "Can't allocate enough memory, Top Countries disabled!" msgstr "Impossibile allocare abbastanza memoria, classifica dei paesi disabilitata" msgid "Can't allocate enough memory, Top Referrers disabled!" msgstr "Impossibile allocare abbastanza memoria, classifica dei referrer disabilitata" msgid "Can't allocate enough memory, Top Search Strings disabled!" msgstr "Impossibile allocare abbastanza memoria, classifica dei termini di ricerca disabilitata" msgid "Can't allocate enough memory, Top Sites disabled!" msgstr "Impossibile allocare abbastanza memoria, classifica degli host disabilitata" msgid "Can't allocate enough memory, Top URLs disabled!" msgstr "Impossibile allocare abbastanza memoria, classifica degli URL disabilitata" msgid "Can't allocate enough memory, Top User Agents disabled!" msgstr "Impossibile allocare abbastanza memoria, classifica dei browser disabilitata" msgid "Can't allocate enough memory, Top Usernames disabled!" msgstr "Impossibile allocare abbastanza memoria, classifica degli username disabilitata" msgid "Canada" msgstr "Canada" msgid "Cape Verde" msgstr "Capo Verde" msgid "Cayman Islands" msgstr "Isole Cayman" msgid "Central African Republic" msgstr "Africa Centrale" msgid "Chad" msgstr "Chad" msgid "Chile" msgstr "Cile" msgid "China" msgstr "Cina" msgid "Christmas Island" msgstr "Isola di Natale" msgid "Cocos (Keeling) Islands" msgstr "Isole Cocos" msgid "Code 100 - Continue" msgstr "Code 100 - Continua" msgid "Code 101 - Switching Protocols" msgstr "Code 101 - Scambio di Protocollo" msgid "Code 200 - OK" msgstr "Code 200 - OK" msgid "Code 201 - Created" msgstr "Code 201 - Creato" msgid "Code 202 - Accepted" msgstr "Code 202 - Accettato" msgid "Code 203 - Non-Authoritative Information" msgstr "Code 203 - Informazione non Autoritativa" msgid "Code 204 - No Content" msgstr "Code 204 - Nessun Contenuto" msgid "Code 205 - Reset Content" msgstr "Code 205 - Contenuto Reimpostato" msgid "Code 206 - Partial Content" msgstr "Code 206 - Contenuto Parziale" msgid "Code 300 - Multiple Choices" msgstr "Code 300 - Scelta Multipla" msgid "Code 301 - Moved Permanently" msgstr "Code 301 - Spostato Permanentemente" msgid "Code 302 - Found" msgstr "Code 302 - Trovato" msgid "Code 303 - See Other" msgstr "Code 303 - Vedere Altro" msgid "Code 304 - Not Modified" msgstr "Code 304 - Non Modificato" msgid "Code 305 - Use Proxy" msgstr "Code 305 - Utilizzare Proxy" msgid "Code 307 - Moved Temporarily" msgstr "Code 307 - Spostato Temporaneamente" msgid "Code 400 - Bad Request" msgstr "Code 400 - Richiesta Errata" msgid "Code 401 - Unauthorized" msgstr "Code 401 - Non Autorizzato" msgid "Code 402 - Payment Required" msgstr "Code 402 - Richiesto Pagamento" msgid "Code 403 - Forbidden" msgstr "Code 403 - Proibito" msgid "Code 404 - Not Found" msgstr "Code 404 - Non Trovato" msgid "Code 405 - Method Not Allowed" msgstr "Code 405 - Metodo Non Permesso" msgid "Code 406 - Not Acceptable" msgstr "Code 406 - Non Accettabile" msgid "Code 407 - Proxy Authentication Required" msgstr "Code 407 - Il Proxy Richiede Autenticazione" msgid "Code 408 - Request Timeout" msgstr "Code 408 - Richiesta Scaduta" msgid "Code 409 - Conflict" msgstr "Code 409 - Conflitto" msgid "Code 410 - Gone" msgstr "Code 410 - Abbandonato" msgid "Code 411 - Length Required" msgstr "Code 411 - Lunghezza Richiesta" msgid "Code 412 - Precondition Failed" msgstr "Code 412 - Prerequisito Fallito" msgid "Code 413 - Request Entity Too Large" msgstr "Code 413 - Entita' Richiesta Troppo Estesa" msgid "Code 414 - Request-URI Too Long" msgstr "Code 414 - Indirizzo Richiesto Troppo Lungo" msgid "Code 415 - Unsupported Media Type" msgstr "Code 415 - Media Non Supportato" msgid "Code 416 - Requested Range Not Satisfiable" msgstr "Code 416 - Intervallo di Richiesta Non Soddisfabile" msgid "Code 417 - Expectation Failed" msgstr "Code 417 - Aspettativa non Soddisfatta" msgid "Code 500 - Internal Server Error" msgstr "Code 500 - Errore Interno del Server" msgid "Code 501 - Not Implemented" msgstr "Code 501 - Non Implementato" msgid "Code 502 - Bad Gateway" msgstr "Code 502 - Gateway Errato" msgid "Code 503 - Service Unavailable" msgstr "Code 503 - Servizio non Disponibile" msgid "Code 504 - Gateway Timeout" msgstr "Code 504 - Timeout nell'Accesso al Gateway" msgid "Code 505 - HTTP Version Not Supported" msgstr "Code 505 - Versione HTTP Non Supportata" msgid "Colombia" msgstr "Colombia" msgid "Comoros" msgstr "Comoros" msgid "Congo" msgstr "Congo" msgid "Cook Islands" msgstr "Isole Cook" msgid "Costa Rica" msgstr "Costa Rica" msgid "Cote D'Ivoire (Ivory Coast)" msgstr "Costa D'Avorio" msgid "Countries" msgstr "Paesi" msgid "Country" msgstr "Paese" msgid "Creating output in" msgstr "Creo i file di output nella directory" msgid "Croatia (Hrvatska)" msgstr "Croazia" msgid "Cuba" msgstr "Cuba" msgid "Cyprus" msgstr "Cipro" msgid "Czech Republic" msgstr "Repubblica Ceca" msgid "Czechoslovakia (former)" msgstr "Cecoslovacchia" msgid "DNS Lookup" msgstr "Risoluzione DNS" msgid "Daily Avg" msgstr "Media giornaliera" msgid "Daily Statistics" msgstr "Statistiche Giornaliere" msgid "Daily Statistics for" msgstr "Statistiche Giornaliere per" msgid "Daily usage for" msgstr "Contatti giornalieri per" msgid "Day" msgstr "Giorno" msgid "Dec" msgstr "Dic" msgid "December" msgstr "Dicembre" msgid "Denmark" msgstr "Danimarca" msgid "Djibouti" msgstr "Djibouti" msgid "Dominica" msgstr "Dominica" msgid "Dominican Republic" msgstr "Repubblica Dominicana" msgid "East Timor" msgstr "Timor Est" msgid "Ecuador" msgstr "Ecuador" msgid "Egypt" msgstr "Egitto" msgid "El Salvador" msgstr "El Salvador" msgid "English" msgstr "Italian" msgid "Entry" msgstr "Ingressi" msgid "Equatorial Guinea" msgstr "Guinea Equatoriale" msgid "Eritrea" msgstr "Eritrea" msgid "Error adding Referrer node, skipping" msgstr "Errore nell'aggiungere il referrer, tralasciato" msgid "Error adding Search String Node, skipping" msgstr "Errore nell'aggiungere la stringa di ricerca, tralasciato" msgid "Error adding URL node, skipping" msgstr "Errore nell'aggiungere l'URL, tralasciato" msgid "Error adding User Agent node, skipping" msgstr "Errore nell'aggiungere il browser, tralasciato" msgid "Error adding Username node, skipping" msgstr "Errore nell'aggiungere l'username, tralasciato" msgid "Error adding host node (daily), skipping" msgstr "Errore nell'aggiungere il nome dell'host (giornaliero), tralasciato" msgid "Error adding host node (monthly), skipping" msgstr "Errore nell'aggiungere il nome dell'host (mensile), tralasciato" msgid "Error: Can't change directory to" msgstr "Errore: Impossibile accedere alla directory" msgid "Error: Can't open log file" msgstr "Errore: Impossibile elaborare il file di log" msgid "Error: Ignoring invalid history record" msgstr "Errore: Tralascio il record non valido nel file di history" msgid "Error: Skipping oversized log record" msgstr "Attenzione: Tralascio il record di dimensione eccessiva" msgid "Error: Skipping record (bad date)" msgstr "Errore: Tralascio il record (data errata)" msgid "Error: Unable to lock DNS cache file" msgstr "Errore: Impossibile effettuare il locking del file contenente la cache DNS" msgid "Error: Unable to open DNS cache file" msgstr "Errore: Impossibile accedere al file contenente la cache DNS" msgid "Error: Unable to open configuration file" msgstr "Errore: Impossibile accedere al file di configurazione" msgid "Error: Unable to open file" msgstr "Errore: Impossibile accedere al file" msgid "Error: Unable to restore run data" msgstr "Errore: Impossibile ripristinare i dati dell'esecuzione precedente" msgid "Error: Unable to save current run data" msgstr "Errore: Impossibile salvare i dati dell'esecuzione attuale" msgid "Error: Unable to write history file" msgstr "Errore: Impossibile modificare il file di history" msgid "Estonia" msgstr "Estonia" msgid "Ethiopia" msgstr "Etiopia" msgid "Exit" msgstr "Uscite" msgid "Falkland Islands (Malvinas)" msgstr "Isole Falkland (Malvine)" msgid "Faroe Islands" msgstr "Isole Faroe" msgid "Feb" msgstr "Feb" msgid "February" msgstr "Febbraio" msgid "Fiji" msgstr "Fiji" msgid "Files" msgstr "File" msgid "Files per Day" msgstr "File Giornalieri" msgid "Finland" msgstr "Finlandia" msgid "France" msgstr "Francia" msgid "France; Metropolitan" msgstr "Francia, Metropolitana" msgid "French Guiana" msgstr "Guiana Francese" msgid "French Polynesia" msgstr "Polinesia Francese" msgid "French Southern Territories" msgstr "Territori Francesi Meridionali" msgid "Gabon" msgstr "Gabon" msgid "Gambia" msgstr "Gambia" msgid "Generated" msgstr "Generato" msgid "Generating report for" msgstr "Creo l'analisi statistica per" msgid "Generating summary report" msgstr "Creo il riassunto statistico" msgid "Georgia" msgstr "Georgia" msgid "Germany" msgstr "Germania" msgid "Ghana" msgstr "Ghana" msgid "Gibraltar" msgstr "Gibilterra" msgid "Great Britain (UK)" msgstr "Gran Bretagna" msgid "Greece" msgstr "Grecia" msgid "Greenland" msgstr "Groenlandia" msgid "Grenada" msgstr "Grenada" msgid "Guadeloupe" msgstr "Guadalupa" msgid "Guam" msgstr "Guam" msgid "Guatemala" msgstr "Guatemala" msgid "Guinea" msgstr "Guinea" msgid "Guinea-Bissau" msgstr "Guinea-Bissau" msgid "Guyana" msgstr "Guyana" msgid "Haiti" msgstr "Haiti" msgid "Heard and McDonald Islands" msgstr "Isole Heard e McDonald" msgid "History file not found..." msgstr "Impossibile trovare il file di history" msgid "Hits" msgstr "Contatti" msgid "Hits by Response Code" msgstr "Contatti per Codice di Risposta" msgid "Hits per Day" msgstr "Contatti Giornalieri" msgid "Hits per Hour" msgstr "Contatti Orari" msgid "Honduras" msgstr "Honduras" msgid "Hong Kong" msgstr "Hong Kong" msgid "Hostname" msgstr "Nomi di Host" msgid "Hostname for reports is" msgstr "Il nome dell'host per il riepilogo e'" msgid "Hour" msgstr "Ora" msgid "Hourly Statistics" msgstr "Statistiche Orarie" msgid "Hourly Statistics for" msgstr "Statistiche Orarie per" msgid "Hourly usage for" msgstr "Contatti orari per" msgid "Hungary" msgstr "Ungaria" msgid "Iceland" msgstr "Islanda" msgid "Ignoring previous history..." msgstr "Ignoro il precedente file di history" msgid "India" msgstr "India" msgid "Indonesia" msgstr "Indonesia" msgid "International (int)" msgstr "Enti Internazionali (.int)" msgid "Iran" msgstr "Iran" msgid "Iraq" msgstr "Iraq" msgid "Ireland" msgstr "Irlanda" msgid "Israel" msgstr "Israele" msgid "Italy" msgstr "Italia" msgid "Jamaica" msgstr "Jamaica" msgid "Jan" msgstr "Gen" msgid "January" msgstr "Gennaio" msgid "Japan" msgstr "Giappone" msgid "Jordan" msgstr "Giordania" msgid "Jul" msgstr "Lug" msgid "July" msgstr "Luglio" msgid "Jun" msgstr "Giu" msgid "June" msgstr "Giugno" msgid "KBytes" msgstr "KBytes" msgid "KBytes per Day" msgstr "KBytes Giornalieri" msgid "Kazakhstan" msgstr "Kazakhstan" msgid "Kenya" msgstr "Kenya" msgid "Kiribati" msgstr "Kiribati" msgid "Korea (North)" msgstr "Corea (Nord)" msgid "Korea (South)" msgstr "Corea (Sud)" msgid "Kuwait" msgstr "Kuwait" msgid "Kyrgyzstan" msgstr "Kyrgyzstan" msgid "Laos" msgstr "Laos" msgid "Last 12 Months" msgstr "Ultimi 12 mesi" msgid "Latvia" msgstr "Latvia" msgid "Lebanon" msgstr "Libano" msgid "Lesotho" msgstr "Lesotho" msgid "Liberia" msgstr "Liberia" msgid "Libya" msgstr "Libia" msgid "Liechtenstein" msgstr "Liechtenstein" msgid "Lithuania" msgstr "Lituania" msgid "Luxembourg" msgstr "Lussemburgo" msgid "Macau" msgstr "Macau" msgid "Macedonia" msgstr "Macedonia" msgid "Madagascar" msgstr "Madagascar" msgid "Malawi" msgstr "Malawi" msgid "Malaysia" msgstr "Malaysia" msgid "Maldives" msgstr "Maldive" msgid "Mali" msgstr "Mali" msgid "Malta" msgstr "Malta" msgid "Mar" msgstr "Mar" msgid "March" msgstr "Marzo" msgid "Marshall Islands" msgstr "Isole Marshall" msgid "Martinique" msgstr "Martinica" msgid "Mauritania" msgstr "Mauritania" msgid "Mauritius" msgstr "Mauritius" msgid "Max" msgstr "Max" msgid "May" msgstr "Maggio" msgid "Mayotte" msgstr "Mayotte" msgid "Mexico" msgstr "Messico" msgid "Micronesia" msgstr "Micronesia" msgid "Moldova" msgstr "Moldova" msgid "Monaco" msgstr "Monaco" msgid "Mongolia" msgstr "Mongolia" msgid "Month" msgstr "Mese" msgid "Monthly Statistics for" msgstr "Statistiche Mensili per" msgid "Monthly Totals" msgstr "Totale mensile" msgid "Montserrat" msgstr "Montserrat" msgid "Morocco" msgstr "Marocco" msgid "Mozambique" msgstr "Mozambico" msgid "Myanmar" msgstr "Myanmar" msgid "Namibia" msgstr "Namibia" msgid "Nato field (nato)" msgstr "Nato (.nato)" msgid "Nauru" msgstr "Nauru" msgid "Nepal" msgstr "Nepal" msgid "Netherlands" msgstr "Olanda" msgid "Netherlands Antilles" msgstr "Antille Olandesi" msgid "Network" msgstr "Reti (.net)" msgid "Neutral Zone" msgstr "Zona Neutrale" msgid "New Caledonia" msgstr "Nuova Caledonia" msgid "New Zealand (Aotearoa)" msgstr "Nuova Zealanda" msgid "Nicaragua" msgstr "Nicaragua" msgid "Niger" msgstr "Nigeria" msgid "Nigeria" msgstr "Nigeria" msgid "Niue" msgstr "Niue" msgid "No cache file specified, aborting..." msgstr "Nessun file di cache specificato" msgid "No valid records found!" msgstr "Nessun record valido rilevato" msgid "Non-Profit Organization" msgstr "Organizzazioni Generiche (.org)" msgid "None to process" msgstr "Nessun dato da elaborare" msgid "Norfolk Island" msgstr "Isole Norfolk" msgid "Northern Mariana Islands" msgstr "Isole Mariana del Nord" msgid "Norway" msgstr "Norvegia" msgid "Nov" msgstr "Nov" msgid "November" msgstr "Novembre" msgid "Oct" msgstr "Ott" msgid "October" msgstr "Ottobre" msgid "Old style Arpanet (arpa)" msgstr "Arpanet (.arpa)" msgid "Oman" msgstr "Oman" msgid "Other" msgstr "Altri" msgid "Pages" msgstr "Pagine" msgid "Pages per Day" msgstr "Pagine Giornaliere" msgid "Pakistan" msgstr "Pakistan" msgid "Palau" msgstr "Palau" msgid "Panama" msgstr "Panama" msgid "Papua New Guinea" msgstr "Papua e Nuova Guinea" msgid "Paraguay" msgstr "Paraguay" msgid "Peru" msgstr "Peru" msgid "Philippines" msgstr "Filippine" msgid "Pitcairn" msgstr "Pitcairn" msgid "Poland" msgstr "Polonia" msgid "Portugal" msgstr "Portogallo" msgid "Previous run data not found..." msgstr "Impossibile trovare i dati sull'esecuzione precedente" msgid "Puerto Rico" msgstr "Porto Rico" msgid "Qatar" msgstr "Qatar" msgid "Reading history file..." msgstr "Elaboro il file di history" msgid "Reading previous run data..." msgstr "Elaboro i dati sull'esecuzione precedente" msgid "Referrer" msgstr "Referrer" msgid "Referrers" msgstr "Referrer" msgid "Reunion" msgstr "Reunion" msgid "Romania" msgstr "Romania" msgid "Russian Federation" msgstr "Federazione Russa" msgid "Rwanda" msgstr "Ruanda" msgid "S. Georgia and S. Sandwich Isls." msgstr "Isole di S. Georgia e S. Sandwich" msgid "Saint Kitts and Nevis" msgstr "Saint Kitts e Nevis" msgid "Saint Lucia" msgstr "Santa Lucia" msgid "Saint Vincent and the Grenadines" msgstr "Saint Vincent e Grenadines" msgid "Samoa" msgstr "Samoa" msgid "San Marino" msgstr "San Marino" msgid "Sao Tome and Principe" msgstr "Sao Tome e Principe" msgid "Saudi Arabia" msgstr "Arabia Saudita" msgid "Saving current run data..." msgstr "Salvo i dati sull'esecuzione attuale" msgid "Saving history information..." msgstr "Salvo le statistiche degli accessi nel file di history" msgid "Search" msgstr "Ricerca" msgid "Search String" msgstr "Termini di Ricerca" msgid "Senegal" msgstr "Senegal" msgid "Sep" msgstr "Set" msgid "September" msgstr "Settembre" msgid "Seychelles" msgstr "Seychelles" msgid "Sierra Leone" msgstr "Sierra Leone" msgid "Singapore" msgstr "Singapore" msgid "Sites" msgstr "Nomi di Host" msgid "Skipping Netscape header record" msgstr "Tralascio il record dell'header di Netscape" msgid "Skipping bad record" msgstr "Tralascio il record errato" msgid "Slovak Republic" msgstr "Repubblica Slovacca" msgid "Slovenia" msgstr "Slovenia" msgid "Solomon Islands" msgstr "Isole Solomon" msgid "Somalia" msgstr "Somalia" msgid "South Africa" msgstr "Sud Africa" msgid "Spain" msgstr "Spagna" msgid "Sri Lanka" msgstr "Sri Lanka" msgid "St. Helena" msgstr "St. Helena" msgid "St. Pierre and Miquelon" msgstr "St. Pierre and Miquelon" msgid "Sudan" msgstr "Sudan" msgid "Summary Period" msgstr "Riepilogo per il periodo" msgid "Summary by Month" msgstr "Riepilogo mensile" msgid "Suriname" msgstr "Suriname" msgid "Svalbard and Jan Mayen Islands" msgstr "Isole Svalbard e Jan Mayen" msgid "Swaziland" msgstr "Swaziland" msgid "Sweden" msgstr "Svezia" msgid "Switzerland" msgstr "Svizzera" msgid "Syria" msgstr "Siria" msgid "Taiwan" msgstr "Taiwan" msgid "Tajikistan" msgstr "Tajikistan" msgid "Tanzania" msgstr "Tanzania" msgid "Thailand" msgstr "Thailandia" msgid "Togo" msgstr "Togo" msgid "Tokelau" msgstr "Tokelau" msgid "Tonga" msgstr "Tonga" msgid "Top" msgstr "Top" msgid "Total" msgstr "Totale" msgid "Total Countries" msgstr "Paesi Totali" msgid "Total Entry Pages" msgstr "Pagine in Ingresso Totali" msgid "Total Exit Pages" msgstr "Pagine in Uscita Totali" msgid "Total Files" msgstr "File" msgid "Total Hits" msgstr "Contatti" msgid "Total KBytes" msgstr "KBytes" msgid "Total Referrers" msgstr "Referrer Totali" msgid "Total Search Strings" msgstr "Total Search Strings" msgid "Total Sites" msgstr "Nomi di Host Totali" msgid "Total URLs" msgstr "URL Totali" msgid "Total Unique Referrers" msgstr "Referrer" msgid "Total Unique Sites" msgstr "Nomi di Host" msgid "Total Unique URLs" msgstr "URL" msgid "Total Unique User Agents" msgstr "Browser" msgid "Total Unique Usernames" msgstr "Username" msgid "Total User Agents" msgstr "Browser Totali" msgid "Total Usernames" msgstr "Total Usernames" msgid "Totals" msgstr "Totali" msgid "Trinidad and Tobago" msgstr "Trinidad e Tobago" msgid "Tunisia" msgstr "Tunisia" msgid "Turkey" msgstr "Turchia" msgid "Turkmenistan" msgstr "Turkmenistan" msgid "Turks and Caicos Islands" msgstr "Isole Turks e Caicos" msgid "Tuvalu" msgstr "Tuvalu" msgid "URL" msgstr "URL" msgid "URLs" msgstr "URL" msgid "US Commercial" msgstr "Commerciali (.com)" msgid "US Educational" msgstr "Universita' (.edu)" msgid "US Government" msgstr "Enti Governativo (.gov)" msgid "US Military" msgstr "Enti Militari (.mil)" msgid "US Minor Outlying Islands" msgstr "Isole US Minori" msgid "USSR (former)" msgstr "Ex USSR" msgid "Uganda" msgstr "Uganda" msgid "Ukraine" msgstr "Ucraina" msgid "Undefined response code" msgstr "Undefined response code" msgid "United Arab Emirates" msgstr "Emirati Arabi" msgid "United Kingdom" msgstr "Regno Unito" msgid "United States" msgstr "Stati Uniti" msgid "Unresolved/Unknown" msgstr "Non Risolto/Sconosciuto" msgid "Uruguay" msgstr "Uruguay" msgid "Usage" msgstr "Sintassi" msgid "Usage Statistics for" msgstr "Statistiche per" msgid "Usage by Country for" msgstr "Riepilogo dei Paesi per" msgid "Usage summary for" msgstr "Riepilogo statistico per" msgid "User Agent" msgstr "Browser" msgid "Username" msgstr "Username" msgid "Users" msgstr "Utenti" msgid "Using DNS cache file" msgstr "Utilizzo il file di cache DNS" msgid "Using logfile" msgstr "Utilizzo il file di log" msgid "Uzbekistan" msgstr "Uzbekistan" msgid "Vanuatu" msgstr "Vanuatu" msgid "Vatican City State (Holy See)" msgstr "Citta' del Vaticano" msgid "Venezuela" msgstr "Venezuela" msgid "Viet Nam" msgstr "Vietnam" msgid "View All Referrers" msgstr "Visualizza ogni Referrer" msgid "View All Search Strings" msgstr "Visualizza ogni Termine di Ricerca" msgid "View All Sites" msgstr "Visualizza ogni Nome di Host" msgid "View All URLs" msgstr "Visualizza ogni URL" msgid "View All User Agents" msgstr "Visualizza ogni Browser" msgid "View All Usernames" msgstr "Visualizza ogni Username" msgid "Virgin Islands (British)" msgstr "Isole Vergini (Britanniche)" msgid "Virgin Islands (U.S.)" msgstr "Isole Vergini (Statunitensi)" msgid "Visits" msgstr "Visite" msgid "Visits per Day" msgstr "Visite Giornaliere" msgid "Wallis and Futuna Islands" msgstr "Isole Wallis e Futuna" msgid "Warning: Invalid keyword" msgstr "Attenzione: Keyword non valida" msgid "Warning: Possible duplicate data found" msgstr "Attenzione: Possibile individuazione di dati duplicati" msgid "Warning: String exceeds storage size" msgstr "Attenzione: La stringa e' di dimensione eccessiva" msgid "Warning: Truncating oversized date field" msgstr "Attenzione: Troncata il record della data in quanto di dimensione eccessiva" msgid "Warning: Truncating oversized hostname" msgstr "Attenzione: Troncato il record dell'hostname in quanto di dimensione eccessiva" msgid "Warning: Truncating oversized referrer field" msgstr "Attenzione: Troncato il record del referrer in quanto di dimensione eccessiva" msgid "Warning: Truncating oversized request field" msgstr "Attenzione: Troncato il record della richiesta in quanto di dimensione eccessiva" msgid "Warning: Truncating oversized username" msgstr "Attenzione: Troncato il record dell'username in quanto di dimensione eccessiva" msgid "Western Sahara" msgstr "Sahara Occidentale" msgid "Yemen" msgstr "Yemen" msgid "Yugoslavia" msgstr "Yugoslavia" msgid "Zaire" msgstr "Zaire" msgid "Zambia" msgstr "Zambia" msgid "Zimbabwe" msgstr "Zimbabwe" msgid "[options] [log file]" msgstr "[parametri] [file di log]" msgid "addresses" msgstr "indirizzi" msgid "bad" msgstr "errato/i" msgid "current directory" msgstr "Directory attuale" msgid "ignored" msgstr "ignorato/i" msgid "in" msgstr "in" msgid "of" msgstr "di" msgid "records" msgstr "record" msgid "seconds" msgstr "secondi" webdruid-0.5.4.orig/po/sl.po0000644000000000000000000006324610066113350015624 0ustar rootroot00000000000000msgid "" msgstr "" "Project-Id-Version: 1.0\n" "PO-Revision-Date: 2003-05-25 23:29+0200\n" "Last-Translator: Johan Poirier \n" "Language-Team: French \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=ISO-8859-1\n" "Content-Transfer-Encoding: 8bit" msgid "-A num = Display num top agents" msgstr "-A num = Display num top agents" msgid "-C num = Display num top countries" msgstr "-C num = Display num top countries" msgid "-D name = Use DNS Cache file 'name'" msgstr "-D name = Use DNS Cache file 'name'" msgid "-E num = Display num top Exit Pages" msgstr "-E num = Display num top Exit Pages" msgid "-F type = Log type. type= (clf | ftp | squid)" msgstr "-F type = Log type. type= (clf | ftp | squid)" msgid "-G = supress hourly graph" msgstr "-G = supress hourly graph" msgid "-H = supress hourly stats" msgstr "-H = supress hourly stats" msgid "-I name = Index alias 'name'" msgstr "-I name = Index alias 'name'" msgid "-L = supress color coded graph legends" msgstr "-L = supress color coded graph legends" msgid "-N num = Number of DNS processes (0=disable)" msgstr "-N num = Number of DNS processes (0=disable)" msgid "-P name = Page type extension 'name'" msgstr "-P name = Page type extension 'name'" msgid "-Q = supress _ALL_ messages" msgstr "-Q = supress _ALL_ messages" msgid "-R num = Display num top referrers" msgstr "-R num = Display num top referrers" msgid "-S num = Display num top sites" msgstr "-S num = Display num top sites" msgid "-T = print timing information" msgstr "-T = print timing information" msgid "-U num = Display num top URLs" msgstr "-U num = Display num top URLs" msgid "-X = Hide individual sites" msgstr "-X = Hide individual sites" msgid "-Y = supress country graph" msgstr "-Y = supress country graph" msgid "-a name = hide user agent 'name'" msgstr "-a name = hide user agent 'name'" msgid "-c file = use configuration file 'file'" msgstr "-c file = use configuration file 'file'" msgid "-d = print additional debug info" msgstr "-d = print additional debug info" msgid "-e num = Display num top Entry Pages" msgstr "-e num = Display num top Entry Pages" msgid "-f = Fold sequence errors" msgstr "-f = Fold sequence errors" msgid "-g num = Group Domains to 'num' levels" msgstr "-g num = Group Domains to 'num' levels" msgid "-h = print this help message" msgstr "-h = print this help message" msgid "-i = ignore history file" msgstr "-i = ignore history file" msgid "-l num = use num background lines on graph" msgstr "-l num = use num background lines on graph" msgid "-m num = Visit timout value (seconds)" msgstr "-m num = Visit timout value (seconds)" msgid "-n name = hostname to use" msgstr "-n name = hostname to use" msgid "-o dir = output directory to use" msgstr "-o dir = output directory to use" msgid "-p = preserve state (incremental)" msgstr "-p = preserve state (incremental)" msgid "-q = supress informational messages" msgstr "-q = supress informational messages" msgid "-r name = hide referrer 'name'" msgstr "-r name = hide referrer 'name'" msgid "-s name = hide site 'name'" msgstr "-s name = hide site 'name'" msgid "-t name = report title 'name'" msgstr "-t name = report title 'name'" msgid "-u name = hide URL 'name'" msgstr "-u name = hide URL 'name'" msgid "-v -V = print version information" msgstr "-v -V = print version information" msgid "-x name = Use filename extension 'name'" msgstr "-x name = Use filename extension 'name'" msgid "Afghanistan" msgstr "Afghanistan" msgid "Agents" msgstr "Agents" msgid "Albania" msgstr "Albania" msgid "Algeria" msgstr "Algeria" msgid "American Samoa" msgstr "American Samoa" msgid "Andorra" msgstr "Andorra" msgid "Angola" msgstr "Angola" msgid "Anguilla" msgstr "Anguilla" msgid "Antarctica" msgstr "Antarctica" msgid "Antigua and Barbuda" msgstr "Antigua and Barbuda" msgid "Apr" msgstr "Apr" msgid "April" msgstr "April" msgid "Argentina" msgstr "Argentina" msgid "Armenia" msgstr "Armenia" msgid "Aruba" msgstr "Aruba" msgid "Aug" msgstr "Avg" msgid "August" msgstr "Avgust" msgid "Australia" msgstr "Australia" msgid "Austria" msgstr "Austria" msgid "Avg" msgstr "povpr." msgid "Azerbaijan" msgstr "Azerbaijan" msgid "Bahamas" msgstr "Bahamas" msgid "Bahrain" msgstr "Bahrain" msgid "Bangladesh" msgstr "Bangladesh" msgid "Barbados" msgstr "Barbados" msgid "Belarus" msgstr "Belarus" msgid "Belgium" msgstr "Belgium" msgid "Belize" msgstr "Belize" msgid "Benin" msgstr "Benin" msgid "Bermuda" msgstr "Bermuda" msgid "Bhutan" msgstr "Bhutan" msgid "Bolivia" msgstr "Bolivia" msgid "Bosnia and Herzegovina" msgstr "Bosnia and Herzegovina" msgid "Botswana" msgstr "Botswana" msgid "Bouvet Island" msgstr "Bouvet Island" msgid "Brazil" msgstr "Brazil" msgid "British Indian Ocean Territory" msgstr "British Indian Ocean Territory" msgid "Brunei Darussalam" msgstr "Brunei Darussalam" msgid "Bulgaria" msgstr "Bulgaria" msgid "Burkina Faso" msgstr "Burkina Faso" msgid "Burundi" msgstr "Burundi" msgid "By" msgstr "po" msgid "Cambodia" msgstr "Cambodia" msgid "Cameroon" msgstr "Cameroon" msgid "Can't allocate enough memory, Top Countries disabled!" msgstr "Can't allocate enough memory, Top Countries disabled!" msgid "Can't allocate enough memory, Top Referrers disabled!" msgstr "Can't allocate enough memory, Top Referrers disabled!" msgid "Can't allocate enough memory, Top Search Strings disabled!" msgstr "Can't allocate enough memory, Top Search Strings disabled!" msgid "Can't allocate enough memory, Top Sites disabled!" msgstr "Can't allocate enough memory, Top Sites disabled!" msgid "Can't allocate enough memory, Top URLs disabled!" msgstr "Can't allocate enough memory, Top URLs disabled!" msgid "Can't allocate enough memory, Top User Agents disabled!" msgstr "Can't allocate enough memory, Top User Agents disabled!" msgid "Can't allocate enough memory, Top Usernames disabled!" msgstr "Can't allocate enough memory, Top Usernames disabled!" msgid "Canada" msgstr "Canada" msgid "Cape Verde" msgstr "Cape Verde" msgid "Cayman Islands" msgstr "Cayman Islands" msgid "Central African Republic" msgstr "Central African Republic" msgid "Chad" msgstr "Chad" msgid "Chile" msgstr "Chile" msgid "China" msgstr "China" msgid "Christmas Island" msgstr "Christmas Island" msgid "Cocos (Keeling) Islands" msgstr "Cocos (Keeling) Islands" msgid "Code 100 - Continue" msgstr "Code 100 - Continue" msgid "Code 101 - Switching Protocols" msgstr "Code 101 - Switching Protocols" msgid "Code 200 - OK" msgstr "Code 200 - OK" msgid "Code 201 - Created" msgstr "Code 201 - Created" msgid "Code 202 - Accepted" msgstr "Code 202 - Accepted" msgid "Code 203 - Non-Authoritative Information" msgstr "Code 203 - Non-Authoritative Information" msgid "Code 204 - No Content" msgstr "Code 204 - No Content" msgid "Code 205 - Reset Content" msgstr "Code 205 - Reset Content" msgid "Code 206 - Partial Content" msgstr "Code 206 - Partial Content" msgid "Code 300 - Multiple Choices" msgstr "Code 300 - Multiple Choices" msgid "Code 301 - Moved Permanently" msgstr "Code 301 - Moved Permanently" msgid "Code 302 - Found" msgstr "Code 302 - Found" msgid "Code 303 - See Other" msgstr "Code 303 - See Other" msgid "Code 304 - Not Modified" msgstr "Code 304 - Not Modified" msgid "Code 305 - Use Proxy" msgstr "Code 305 - Use Proxy" msgid "Code 307 - Moved Temporarily" msgstr "Code 307 - Moved Temporarily" msgid "Code 400 - Bad Request" msgstr "Code 400 - Bad Request" msgid "Code 401 - Unauthorized" msgstr "Code 401 - Unauthorized" msgid "Code 402 - Payment Required" msgstr "Code 402 - Payment Required" msgid "Code 403 - Forbidden" msgstr "Code 403 - Forbidden" msgid "Code 404 - Not Found" msgstr "Code 404 - Not Found" msgid "Code 405 - Method Not Allowed" msgstr "Code 405 - Method Not Allowed" msgid "Code 406 - Not Acceptable" msgstr "Code 406 - Not Acceptable" msgid "Code 407 - Proxy Authentication Required" msgstr "Code 407 - Proxy Authentication Required" msgid "Code 408 - Request Timeout" msgstr "Code 408 - Request Timeout" msgid "Code 409 - Conflict" msgstr "Code 409 - Conflict" msgid "Code 410 - Gone" msgstr "Code 410 - Gone" msgid "Code 411 - Length Required" msgstr "Code 411 - Length Required" msgid "Code 412 - Precondition Failed" msgstr "Code 412 - Precondition Failed" msgid "Code 413 - Request Entity Too Large" msgstr "Code 413 - Request Entity Too Large" msgid "Code 414 - Request-URI Too Long" msgstr "Code 414 - Request-URI Too Long" msgid "Code 415 - Unsupported Media Type" msgstr "Code 415 - Unsupported Media Type" msgid "Code 416 - Requested Range Not Satisfiable" msgstr "Code 416 - Requested Range Not Satisfiable" msgid "Code 417 - Expectation Failed" msgstr "Code 417 - Expectation Failed" msgid "Code 500 - Internal Server Error" msgstr "Code 500 - Internal Server Error" msgid "Code 501 - Not Implemented" msgstr "Code 501 - Not Implemented" msgid "Code 502 - Bad Gateway" msgstr "Code 502 - Bad Gateway" msgid "Code 503 - Service Unavailable" msgstr "Code 503 - Service Unavailable" msgid "Code 504 - Gateway Timeout" msgstr "Code 504 - Gateway Timeout" msgid "Code 505 - HTTP Version Not Supported" msgstr "Code 505 - HTTP Version Not Supported" msgid "Colombia" msgstr "Colombia" msgid "Comoros" msgstr "Comoros" msgid "Congo" msgstr "Congo" msgid "Cook Islands" msgstr "Cook Islands" msgid "Costa Rica" msgstr "Costa Rica" msgid "Cote D'Ivoire (Ivory Coast)" msgstr "Cote D'Ivoire (Ivory Coast)" msgid "Countries" msgstr "Drave" msgid "Country" msgstr "Drava" msgid "Creating output in" msgstr "Creating output in" msgid "Croatia (Hrvatska)" msgstr "Croatia (Hrvatska)" msgid "Cuba" msgstr "Cuba" msgid "Cyprus" msgstr "Cyprus" msgid "Czech Republic" msgstr "Czech Republic" msgid "Czechoslovakia (former)" msgstr "Czechoslovakia (former)" msgid "DNS Lookup" msgstr "DNS Lookup" msgid "Daily Avg" msgstr "Dnevno povpreje" msgid "Daily Statistics" msgstr "Dnevna statistika" msgid "Daily Statistics for" msgstr "Dnevna statistika za" msgid "Daily usage for" msgstr "Poroilo po dnevih za" msgid "Day" msgstr "Dan" msgid "Dec" msgstr "Dec" msgid "December" msgstr "December" msgid "Denmark" msgstr "Denmark" msgid "Djibouti" msgstr "Djibouti" msgid "Dominica" msgstr "Dominica" msgid "Dominican Republic" msgstr "Dominican Republic" msgid "East Timor" msgstr "East Timor" msgid "Ecuador" msgstr "Ecuador" msgid "Egypt" msgstr "Egypt" msgid "El Salvador" msgstr "El Salvador" msgid "English" msgstr "Slovene" msgid "Entry" msgstr "Vstop" msgid "Equatorial Guinea" msgstr "Equatorial Guinea" msgid "Eritrea" msgstr "Eritrea" msgid "Error adding Referrer node, skipping" msgstr "Error adding Referrer node, skipping" msgid "Error adding Search String Node, skipping" msgstr "Error adding Search String Node, skipping" msgid "Error adding URL node, skipping" msgstr "Error adding URL node, skipping" msgid "Error adding User Agent node, skipping" msgstr "Error adding User Agent node, skipping" msgid "Error adding Username node, skipping" msgstr "Error adding Username node, skipping" msgid "Error adding host node (daily), skipping" msgstr "Error adding host node (daily), skipping" msgid "Error adding host node (monthly), skipping" msgstr "Error adding host node (monthly), skipping" msgid "Error: Can't change directory to" msgstr "Error: Can't change directory to" msgid "Error: Can't open log file" msgstr "Error: Can't open log file" msgid "Error: Ignoring invalid history record" msgstr "Error: Ignoring invalid history record" msgid "Error: Skipping oversized log record" msgstr "Error: Skipping oversized log record" msgid "Error: Skipping record (bad date)" msgstr "Error: Skipping record (bad date)" msgid "Error: Unable to lock DNS cache file" msgstr "Error: Unable to lock DNS cache file" msgid "Error: Unable to open DNS cache file" msgstr "Error: Unable to open DNS cache file" msgid "Error: Unable to open configuration file" msgstr "Error: Unable to open configuration file" msgid "Error: Unable to open file" msgstr "Error: Unable to open file" msgid "Error: Unable to restore run data" msgstr "Error: Unable to restore run data" msgid "Error: Unable to save current run data" msgstr "Error: Unable to save current run data" msgid "Error: Unable to write history file" msgstr "Error: Unable to write history file" msgid "Estonia" msgstr "Estonia" msgid "Ethiopia" msgstr "Ethiopia" msgid "Exit" msgstr "Izhod" msgid "Falkland Islands (Malvinas)" msgstr "Falkland Islands (Malvinas)" msgid "Faroe Islands" msgstr "Faroe Islands" msgid "Feb" msgstr "Feb" msgid "February" msgstr "Februar" msgid "Fiji" msgstr "Fiji" msgid "Files" msgstr "Datotek" msgid "Files per Day" msgstr "Datotek dnevno" msgid "Finland" msgstr "Finland" msgid "France" msgstr "France" msgid "France; Metropolitan" msgstr "France, Metropolitan" msgid "French Guiana" msgstr "French Guiana" msgid "French Polynesia" msgstr "French Polynesia" msgid "French Southern Territories" msgstr "French Southern Territories" msgid "Gabon" msgstr "Gabon" msgid "Gambia" msgstr "Gambia" msgid "Generated" msgstr "Izdelano" msgid "Generating report for" msgstr "Generating report for" msgid "Generating summary report" msgstr "Generating summary report" msgid "Georgia" msgstr "Georgia" msgid "Germany" msgstr "Germany" msgid "Ghana" msgstr "Ghana" msgid "Gibraltar" msgstr "Gibraltar" msgid "Great Britain (UK)" msgstr "Great Britain (UK)" msgid "Greece" msgstr "Greece" msgid "Greenland" msgstr "Greenland" msgid "Grenada" msgstr "Grenada" msgid "Guadeloupe" msgstr "Guadeloupe" msgid "Guam" msgstr "Guam" msgid "Guatemala" msgstr "Guatemala" msgid "Guinea" msgstr "Guinea" msgid "Guinea-Bissau" msgstr "Guinea-Bissau" msgid "Guyana" msgstr "Guyana" msgid "Haiti" msgstr "Haiti" msgid "Heard and McDonald Islands" msgstr "Heard and McDonald Islands" msgid "History file not found..." msgstr "History file not found..." msgid "Hits" msgstr "Zahtevkov" msgid "Hits by Response Code" msgstr "Zahtevki po odzivnih kodah" msgid "Hits per Day" msgstr "Zahtevkov dnevno" msgid "Hits per Hour" msgstr "Zahtevkov na uro" msgid "Honduras" msgstr "Honduras" msgid "Hong Kong" msgstr "Hong Kong" msgid "Hostname" msgstr "Gostitelj" msgid "Hostname for reports is" msgstr "Hostname for reports is" msgid "Hour" msgstr "Ura" msgid "Hourly Statistics" msgstr "Statistika po urah" msgid "Hourly Statistics for" msgstr "Statistika po urah za" msgid "Hourly usage for" msgstr "Poroilo po urah za" msgid "Hungary" msgstr "Hungary" msgid "Iceland" msgstr "Iceland" msgid "Ignoring previous history..." msgstr "Ignoring previous history..." msgid "India" msgstr "India" msgid "Indonesia" msgstr "Indonesia" msgid "International (int)" msgstr "International (int)" msgid "Iran" msgstr "Iran" msgid "Iraq" msgstr "Iraq" msgid "Ireland" msgstr "Ireland" msgid "Israel" msgstr "Israel" msgid "Italy" msgstr "Italy" msgid "Jamaica" msgstr "Jamaica" msgid "Jan" msgstr "Jan" msgid "January" msgstr "Januar" msgid "Japan" msgstr "Japan" msgid "Jordan" msgstr "Jordan" msgid "Jul" msgstr "Jul" msgid "July" msgstr "Julij" msgid "Jun" msgstr "Jun" msgid "June" msgstr "Junij" msgid "KBytes" msgstr "KB" msgid "KBytes per Day" msgstr "KB dnevno" msgid "Kazakhstan" msgstr "Kazakhstan" msgid "Kenya" msgstr "Kenya" msgid "Kiribati" msgstr "Kiribati" msgid "Korea (North)" msgstr "Korea (North)" msgid "Korea (South)" msgstr "Korea (South)" msgid "Kuwait" msgstr "Kuwait" msgid "Kyrgyzstan" msgstr "Kyrgyzstan" msgid "Laos" msgstr "Laos" msgid "Last 12 Months" msgstr "Zadnjih 12 mesecev" msgid "Latvia" msgstr "Latvia" msgid "Lebanon" msgstr "Lebanon" msgid "Lesotho" msgstr "Lesotho" msgid "Liberia" msgstr "Liberia" msgid "Libya" msgstr "Libya" msgid "Liechtenstein" msgstr "Liechtenstein" msgid "Lithuania" msgstr "Lithuania" msgid "Luxembourg" msgstr "Luxembourg" msgid "Macau" msgstr "Macau" msgid "Macedonia" msgstr "Macedonia" msgid "Madagascar" msgstr "Madagascar" msgid "Malawi" msgstr "Malawi" msgid "Malaysia" msgstr "Malaysia" msgid "Maldives" msgstr "Maldives" msgid "Mali" msgstr "Mali" msgid "Malta" msgstr "Malta" msgid "Mar" msgstr "Mar" msgid "March" msgstr "Marec" msgid "Marshall Islands" msgstr "Marshall Islands" msgid "Martinique" msgstr "Martinique" msgid "Mauritania" msgstr "Mauritania" msgid "Mauritius" msgstr "Mauritius" msgid "Max" msgstr "Max" msgid "May" msgstr "Maj" msgid "Mayotte" msgstr "Mayotte" msgid "Mexico" msgstr "Mexico" msgid "Micronesia" msgstr "Micronesia" msgid "Moldova" msgstr "Moldova" msgid "Monaco" msgstr "Monaco" msgid "Mongolia" msgstr "Mongolia" msgid "Month" msgstr "Mesec" msgid "Monthly Statistics for" msgstr "Meseno poroilo za" msgid "Monthly Totals" msgstr "Meseni setevki" msgid "Montserrat" msgstr "Montserrat" msgid "Morocco" msgstr "Morocco" msgid "Mozambique" msgstr "Mozambique" msgid "Myanmar" msgstr "Myanmar" msgid "Namibia" msgstr "Namibia" msgid "Nato field (nato)" msgstr "Nato field (nato)" msgid "Nauru" msgstr "Nauru" msgid "Nepal" msgstr "Nepal" msgid "Netherlands" msgstr "Netherlands" msgid "Netherlands Antilles" msgstr "Netherlands Antilles" msgid "Network" msgstr "Network" msgid "Neutral Zone" msgstr "Neutral Zone" msgid "New Caledonia" msgstr "New Caledonia" msgid "New Zealand (Aotearoa)" msgstr "New Zealand (Aotearoa)" msgid "Nicaragua" msgstr "Nicaragua" msgid "Niger" msgstr "Niger" msgid "Nigeria" msgstr "Nigeria" msgid "Niue" msgstr "Niue" msgid "No cache file specified, aborting..." msgstr "No cache file specified, aborting..." msgid "No valid records found!" msgstr "No valid records found!" msgid "Non-Profit Organization" msgstr "Non-Profit Organization" msgid "None to process" msgstr "None to process" msgid "Norfolk Island" msgstr "Norfolk Island" msgid "Northern Mariana Islands" msgstr "Northern Mariana Islands" msgid "Norway" msgstr "Norway" msgid "Nov" msgstr "Nov" msgid "November" msgstr "November" msgid "Oct" msgstr "Okt" msgid "October" msgstr "Oktober" msgid "Old style Arpanet (arpa)" msgstr "Old style Arpanet (arpa)" msgid "Oman" msgstr "Oman" msgid "Other" msgstr "Ostalo" msgid "Pages" msgstr "Strani" msgid "Pages per Day" msgstr "Strani dnevno" msgid "Pakistan" msgstr "Pakistan" msgid "Palau" msgstr "Palau" msgid "Panama" msgstr "Panama" msgid "Papua New Guinea" msgstr "Papua New Guinea" msgid "Paraguay" msgstr "Paraguay" msgid "Peru" msgstr "Peru" msgid "Philippines" msgstr "Philippines" msgid "Pitcairn" msgstr "Pitcairn" msgid "Poland" msgstr "Poland" msgid "Portugal" msgstr "Portugal" msgid "Previous run data not found..." msgstr "Previous run data not found..." msgid "Puerto Rico" msgstr "Puerto Rico" msgid "Qatar" msgstr "Qatar" msgid "Reading history file..." msgstr "Reading history file..." msgid "Reading previous run data..." msgstr "Reading previous run data.." msgid "Referrer" msgstr "Napotitelj" msgid "Referrers" msgstr "Preusmeritev z" msgid "Reunion" msgstr "Reunion" msgid "Romania" msgstr "Romania" msgid "Russian Federation" msgstr "Russian Federation" msgid "Rwanda" msgstr "Rwanda" msgid "S. Georgia and S. Sandwich Isls." msgstr "S. Georgia and S. Sandwich Isls." msgid "Saint Kitts and Nevis" msgstr "Saint Kitts and Nevis" msgid "Saint Lucia" msgstr "Saint Lucia" msgid "Saint Vincent and the Grenadines" msgstr "Saint Vincent and the Grenadines" msgid "Samoa" msgstr "Samoa" msgid "San Marino" msgstr "San Marino" msgid "Sao Tome and Principe" msgstr "Sao Tome and Principe" msgid "Saudi Arabia" msgstr "Saudi Arabia" msgid "Saving current run data..." msgstr "Saving current run data..." msgid "Saving history information..." msgstr "Saving history information..." msgid "Search" msgstr "Iskanje" msgid "Search String" msgstr "Iskani niz" msgid "Senegal" msgstr "Senegal" msgid "Sep" msgstr "Sep" msgid "September" msgstr "September" msgid "Seychelles" msgstr "Seychelles" msgid "Sierra Leone" msgstr "Sierra Leone" msgid "Singapore" msgstr "Singapore" msgid "Sites" msgstr "Podroja" msgid "Skipping Netscape header record" msgstr "Skipping Netscape header record" msgid "Skipping bad record" msgstr "Skipping bad record" msgid "Slovak Republic" msgstr "Slovak Republic" msgid "Slovenia" msgstr "Slovenia" msgid "Solomon Islands" msgstr "Solomon Islands" msgid "Somalia" msgstr "Somalia" msgid "South Africa" msgstr "South Africa" msgid "Spain" msgstr "Spain" msgid "Sri Lanka" msgstr "Sri Lanka" msgid "St. Helena" msgstr "St. Helena" msgid "St. Pierre and Miquelon" msgstr "St. Pierre and Miquelon" msgid "Sudan" msgstr "Sudan" msgid "Summary Period" msgstr "Poroilo za mesec" msgid "Summary by Month" msgstr "Povzetek po mesecih" msgid "Suriname" msgstr "Suriname" msgid "Svalbard and Jan Mayen Islands" msgstr "Svalbard and Jan Mayen Islands" msgid "Swaziland" msgstr "Swaziland" msgid "Sweden" msgstr "Sweden" msgid "Switzerland" msgstr "Switzerland" msgid "Syria" msgstr "Syria" msgid "Taiwan" msgstr "Taiwan" msgid "Tajikistan" msgstr "Tajikistan" msgid "Tanzania" msgstr "Tanzania" msgid "Thailand" msgstr "Thailand" msgid "Togo" msgstr "Togo" msgid "Tokelau" msgstr "Tokelau" msgid "Tonga" msgstr "Tonga" msgid "Top" msgstr "Prvih" msgid "Total" msgstr "Skupaj" msgid "Total Countries" msgstr "(vseh) drav" msgid "Total Entry Pages" msgstr "(vseh) vstopnih strani" msgid "Total Exit Pages" msgstr "(vseh) izhodnih strani" msgid "Total Files" msgstr "Skupaj datotek" msgid "Total Hits" msgstr "Skupaj zahtevkov" msgid "Total KBytes" msgstr "Skupaj KB" msgid "Total Referrers" msgstr "(vseh) napotiteljev" msgid "Total Search Strings" msgstr "(vseh) iskani nizi" msgid "Total Sites" msgstr "(vseh) podroij" msgid "Total URLs" msgstr "(vseh) URL naslovov" msgid "Total Unique Referrers" msgstr "Skupaj enkr. napotiteljev" msgid "Total Unique Sites" msgstr "Skupaj enkr. podroij" msgid "Total Unique URLs" msgstr "Skupaj enkr. URL-jev" msgid "Total Unique User Agents" msgstr "Skupaj enkr. brskalnikov" msgid "Total Unique Usernames" msgstr "Skupaj enkr. uporab.imen" msgid "Total User Agents" msgstr "(vseh) brskalnikov" msgid "Total Usernames" msgstr "(vseh) uporab.imen" msgid "Totals" msgstr "Skupaj vsi" msgid "Trinidad and Tobago" msgstr "Trinidad and Tobago" msgid "Tunisia" msgstr "Tunisia" msgid "Turkey" msgstr "Turkey" msgid "Turkmenistan" msgstr "Turkmenistan" msgid "Turks and Caicos Islands" msgstr "Turks and Caicos Islands" msgid "Tuvalu" msgstr "Tuvalu" msgid "URL" msgstr "URL" msgid "URLs" msgstr "URLs" msgid "US Commercial" msgstr "US Commercial" msgid "US Educational" msgstr "US Educational" msgid "US Government" msgstr "US Government" msgid "US Military" msgstr "US Military" msgid "US Minor Outlying Islands" msgstr "US Minor Outlying Islands" msgid "USSR (former)" msgstr "USSR (former)" msgid "Uganda" msgstr "Uganda" msgid "Ukraine" msgstr "Ukraine" msgid "Undefined response code" msgstr "Undefined response code" msgid "United Arab Emirates" msgstr "United Arab Emirates" msgid "United Kingdom" msgstr "United Kingdom" msgid "United States" msgstr "United States" msgid "Unresolved/Unknown" msgstr "Nereeni/Neznani" msgid "Uruguay" msgstr "Uruguay" msgid "Usage" msgstr "Usage" msgid "Usage Statistics for" msgstr "Statistika dostopov za spletni strenik" msgid "Usage by Country for" msgstr "Dostopi po dravah za" msgid "Usage summary for" msgstr "Povzetek dostopov za" msgid "User Agent" msgstr "Brskalnik" msgid "Username" msgstr "Uporabnik" msgid "Users" msgstr "Uporabnikov" msgid "Using DNS cache file" msgstr "Using DNS cache file" msgid "Using logfile" msgstr "Using logfile" msgid "Uzbekistan" msgstr "Uzbekistan" msgid "Vanuatu" msgstr "Vanuatu" msgid "Vatican City State (Holy See)" msgstr "Vatican City State (Holy See)" msgid "Venezuela" msgstr "Venezuela" msgid "Viet Nam" msgstr "Viet Nam" msgid "View All Referrers" msgstr "Pregled vseh napotiteljev" msgid "View All Search Strings" msgstr "Pregled vseh iskanih nizov" msgid "View All Sites" msgstr "Pregled vseh podroij" msgid "View All URLs" msgstr "Pregled vseh URL-jev" msgid "View All User Agents" msgstr "Pregled vseh UA" msgid "View All Usernames" msgstr "Pregled vseh uporabnikov" msgid "Virgin Islands (British)" msgstr "Virgin Islands (British)" msgid "Virgin Islands (U.S.)" msgstr "Virgin Islands (U.S.)" msgid "Visits" msgstr "Obiskov" msgid "Visits per Day" msgstr "Obiskov dnevno" msgid "Wallis and Futuna Islands" msgstr "Wallis and Futuna Islands" msgid "Warning: Invalid keyword" msgstr "Warning: Invalid keyword" msgid "Warning: Possible duplicate data found" msgstr "Warning: Possible duplicate data found" msgid "Warning: String exceeds storage size" msgstr "Warning: String exceeds storage size" msgid "Warning: Truncating oversized date field" msgstr "Warning: Truncating oversized date field" msgid "Warning: Truncating oversized hostname" msgstr "Warning: Truncating oversized hostname" msgid "Warning: Truncating oversized referrer field" msgstr "Warning: Truncating oversized referrer field" msgid "Warning: Truncating oversized request field" msgstr "Warning: Truncating oversized request field" msgid "Warning: Truncating oversized username" msgstr "Warning: Truncating oversized username" msgid "Western Sahara" msgstr "Western Sahara" msgid "Yemen" msgstr "Yemen" msgid "Yugoslavia" msgstr "Yugoslavia" msgid "Zaire" msgstr "Zaire" msgid "Zambia" msgstr "Zambia" msgid "Zimbabwe" msgstr "Zimbabwe" msgid "[options] [log file]" msgstr "[options] [log file]" msgid "addresses" msgstr "addresses" msgid "bad" msgstr "bad" msgid "current directory" msgstr "current directory" msgid "ignored" msgstr "ignored" msgid "in" msgstr "in" msgid "of" msgstr "od" msgid "records" msgstr "records" msgid "seconds" msgstr "seconds" webdruid-0.5.4.orig/po/lv.po0000644000000000000000000006346710066113350015634 0ustar rootroot00000000000000msgid "" msgstr "" "Project-Id-Version: 1.0\n" "PO-Revision-Date: 2003-05-25 23:29+0200\n" "Last-Translator: Johan Poirier \n" "Language-Team: French \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=ISO-8859-1\n" "Content-Transfer-Encoding: 8bit" msgid "-A num = Display num top agents" msgstr "-A num = Display num top agents" msgid "-C num = Display num top countries" msgstr "-C num = Display num top countries" msgid "-D name = Use DNS Cache file 'name'" msgstr "-D name = Use DNS Cache file 'name'" msgid "-E num = Display num top Exit Pages" msgstr "-E num = Display num top Exit Pages" msgid "-F type = Log type. type= (clf | ftp | squid)" msgstr "-F type = Log type. type= (clf | ftp | squid)" msgid "-G = supress hourly graph" msgstr "-G = supress hourly graph" msgid "-H = supress hourly stats" msgstr "-H = supress hourly stats" msgid "-I name = Index alias 'name'" msgstr "-I name = Index alias 'name'" msgid "-L = supress color coded graph legends" msgstr "-L = supress color coded graph legends" msgid "-N num = Number of DNS processes (0=disable)" msgstr "-N num = Number of DNS processes (0=disable)" msgid "-P name = Page type extension 'name'" msgstr "-P name = Page type extension 'name'" msgid "-Q = supress _ALL_ messages" msgstr "-Q = supress _ALL_ messages" msgid "-R num = Display num top referrers" msgstr "-R num = Display num top referrers" msgid "-S num = Display num top sites" msgstr "-S num = Display num top sites" msgid "-T = print timing information" msgstr "-T = print timing information" msgid "-U num = Display num top URLs" msgstr "-U num = Display num top URL's" msgid "-X = Hide individual sites" msgstr "-X = Hide individual sites" msgid "-Y = supress country graph" msgstr "-Y = supress country graph" msgid "-a name = hide user agent 'name'" msgstr "-a name = hide user agent 'name'" msgid "-c file = use configuration file 'file'" msgstr "-c file = use configuration file 'file'" msgid "-d = print additional debug info" msgstr "-d = print additional debug info" msgid "-e num = Display num top Entry Pages" msgstr "-e num = Display num top Entry Pages" msgid "-f = Fold sequence errors" msgstr "-f = Fold sequence errors" msgid "-g num = Group Domains to 'num' levels" msgstr "-g num = Group Domains to 'num' levels" msgid "-h = print this help message" msgstr "-h = print this help message" msgid "-i = ignore history file" msgstr "-i = ignore history file" msgid "-l num = use num background lines on graph" msgstr "-l num = use num background lines on graph" msgid "-m num = Visit timout value (seconds)" msgstr "-m num = Visit timout value (HHMMSS format)" msgid "-n name = hostname to use" msgstr "-n name = hostname to use" msgid "-o dir = output directory to use" msgstr "-o dir = output directory to use" msgid "-p = preserve state (incremental)" msgstr "-p = preserve state (incremental)" msgid "-q = supress informational messages" msgstr "-q = supress informational messages" msgid "-r name = hide referrer 'name'" msgstr "-r name = hide referrer 'name'" msgid "-s name = hide site 'name'" msgstr "-s name = hide site 'name'" msgid "-t name = report title 'name'" msgstr "-t name = report title 'name'" msgid "-u name = hide URL 'name'" msgstr "-u name = hide URL 'name'" msgid "-v -V = print version information" msgstr "-v -V = print version information" msgid "-x name = Use filename extension 'name'" msgstr "-x name = Use filename extension 'name'" msgid "Afghanistan" msgstr "Afghanistan" msgid "Agents" msgstr "Programmas" msgid "Albania" msgstr "Albania" msgid "Algeria" msgstr "Algeria" msgid "American Samoa" msgstr "American Samoa" msgid "Andorra" msgstr "Andorra" msgid "Angola" msgstr "Angola" msgid "Anguilla" msgstr "Anguilla" msgid "Antarctica" msgstr "Antarctica" msgid "Antigua and Barbuda" msgstr "Antigua and Barbuda" msgid "Apr" msgstr "Apr" msgid "April" msgstr "Aprlis" msgid "Argentina" msgstr "Argentina" msgid "Armenia" msgstr "Armenia" msgid "Aruba" msgstr "Aruba" msgid "Aug" msgstr "Aug" msgid "August" msgstr "Augusts" msgid "Australia" msgstr "Australia" msgid "Austria" msgstr "Austria" msgid "Avg" msgstr "Avg" msgid "Azerbaijan" msgstr "Azerbaijan" msgid "Bahamas" msgstr "Bahamas" msgid "Bahrain" msgstr "Bahrain" msgid "Bangladesh" msgstr "Bangladesh" msgid "Barbados" msgstr "Barbados" msgid "Belarus" msgstr "Belarus" msgid "Belgium" msgstr "Belgium" msgid "Belize" msgstr "Belize" msgid "Benin" msgstr "Benin" msgid "Bermuda" msgstr "Bermuda" msgid "Bhutan" msgstr "Bhutan" msgid "Bolivia" msgstr "Bolivia" msgid "Bosnia and Herzegovina" msgstr "Bosnia and Herzegovina" msgid "Botswana" msgstr "Botswana" msgid "Bouvet Island" msgstr "Bouvet Island" msgid "Brazil" msgstr "Brazil" msgid "British Indian Ocean Territory" msgstr "British Indian Ocean Territory" msgid "Brunei Darussalam" msgstr "Brunei Darussalam" msgid "Bulgaria" msgstr "Bulgaria" msgid "Burkina Faso" msgstr "Burkina Faso" msgid "Burundi" msgstr "Burundi" msgid "By" msgstr "By" msgid "Cambodia" msgstr "Cambodia" msgid "Cameroon" msgstr "Cameroon" msgid "Can't allocate enough memory, Top Countries disabled!" msgstr "Can't allocate enough memory, Top Countries disabled!" msgid "Can't allocate enough memory, Top Referrers disabled!" msgstr "Can't allocate enough memory, Top Referrers disabled!" msgid "Can't allocate enough memory, Top Search Strings disabled!" msgstr "Can't allocate enough memory, Top Search Strings disabled!" msgid "Can't allocate enough memory, Top Sites disabled!" msgstr "Can't allocate enough memory, Top Sites disabled!" msgid "Can't allocate enough memory, Top URLs disabled!" msgstr "Can't allocate enough memory, Top URLs disabled!" msgid "Can't allocate enough memory, Top User Agents disabled!" msgstr "Can't allocate enough memory, Top User Agents disabled!" msgid "Can't allocate enough memory, Top Usernames disabled!" msgstr "Can't allocate enough memory, Top Usernames disabled!" msgid "Canada" msgstr "Canada" msgid "Cape Verde" msgstr "Cape Verde" msgid "Cayman Islands" msgstr "Cayman Islands" msgid "Central African Republic" msgstr "Central African Republic" msgid "Chad" msgstr "Chad" msgid "Chile" msgstr "Chile" msgid "China" msgstr "China" msgid "Christmas Island" msgstr "Christmas Island" msgid "Cocos (Keeling) Islands" msgstr "Cocos (Keeling) Islands" msgid "Code 100 - Continue" msgstr "Code 100 - Continue" msgid "Code 101 - Switching Protocols" msgstr "Code 101 - Switching Protocols" msgid "Code 200 - OK" msgstr "Code 200 - OK" msgid "Code 201 - Created" msgstr "Code 201 - Created" msgid "Code 202 - Accepted" msgstr "Code 202 - Accepted" msgid "Code 203 - Non-Authoritative Information" msgstr "Code 203 - Non-Authoritative Information" msgid "Code 204 - No Content" msgstr "Code 204 - No Content" msgid "Code 205 - Reset Content" msgstr "Code 205 - Reset Content" msgid "Code 206 - Partial Content" msgstr "Code 206 - Partial Content" msgid "Code 300 - Multiple Choices" msgstr "Code 300 - Multiple Choices" msgid "Code 301 - Moved Permanently" msgstr "Code 301 - Moved Permanently" msgid "Code 302 - Found" msgstr "Code 302 - Found" msgid "Code 303 - See Other" msgstr "Code 303 - See Other" msgid "Code 304 - Not Modified" msgstr "Code 304 - Not Modified" msgid "Code 305 - Use Proxy" msgstr "Code 305 - Use Proxy" msgid "Code 307 - Moved Temporarily" msgstr "Code 307 - Moved Temporarily" msgid "Code 400 - Bad Request" msgstr "Code 400 - Bad Request" msgid "Code 401 - Unauthorized" msgstr "Code 401 - Unauthorized" msgid "Code 402 - Payment Required" msgstr "Code 402 - Payment Required" msgid "Code 403 - Forbidden" msgstr "Code 403 - Forbidden" msgid "Code 404 - Not Found" msgstr "Code 404 - Not Found" msgid "Code 405 - Method Not Allowed" msgstr "Code 405 - Method Not Allowed" msgid "Code 406 - Not Acceptable" msgstr "Code 406 - Not Acceptable" msgid "Code 407 - Proxy Authentication Required" msgstr "Code 407 - Proxy Authentication Required" msgid "Code 408 - Request Timeout" msgstr "Code 408 - Request Timeout" msgid "Code 409 - Conflict" msgstr "Code 409 - Conflict" msgid "Code 410 - Gone" msgstr "Code 410 - Gone" msgid "Code 411 - Length Required" msgstr "Code 411 - Length Required" msgid "Code 412 - Precondition Failed" msgstr "Code 412 - Precondition Failed" msgid "Code 413 - Request Entity Too Large" msgstr "Code 413 - Request Entity Too Large" msgid "Code 414 - Request-URI Too Long" msgstr "Code 414 - Request-URI Too Long" msgid "Code 415 - Unsupported Media Type" msgstr "Code 415 - Unsupported Media Type" msgid "Code 416 - Requested Range Not Satisfiable" msgstr "Code 416 - Requested Range Not Satisfiable" msgid "Code 417 - Expectation Failed" msgstr "Code 417 - Expectation Failed" msgid "Code 500 - Internal Server Error" msgstr "Code 500 - Internal Server Error" msgid "Code 501 - Not Implemented" msgstr "Code 501 - Not Implemented" msgid "Code 502 - Bad Gateway" msgstr "Code 502 - Bad Gateway" msgid "Code 503 - Service Unavailable" msgstr "Code 503 - Service Unavailable" msgid "Code 504 - Gateway Timeout" msgstr "Code 504 - Gateway Timeout" msgid "Code 505 - HTTP Version Not Supported" msgstr "Code 505 - HTTP Version Not Supported" msgid "Colombia" msgstr "Colombia" msgid "Comoros" msgstr "Comoros" msgid "Congo" msgstr "Congo" msgid "Cook Islands" msgstr "Cook Islands" msgid "Costa Rica" msgstr "Costa Rica" msgid "Cote D'Ivoire (Ivory Coast)" msgstr "Cote D'Ivoire (Ivory Coast)" msgid "Countries" msgstr "Valstis" msgid "Country" msgstr "Valsts" msgid "Creating output in" msgstr "Izvietojam Statistiku iek" msgid "Croatia (Hrvatska)" msgstr "Croatia (Hrvatska)" msgid "Cuba" msgstr "Cuba" msgid "Cyprus" msgstr "Cyprus" msgid "Czech Republic" msgstr "Czech Republic" msgid "Czechoslovakia (former)" msgstr "Czechoslovakia (former)" msgid "DNS Lookup" msgstr "DNS Lookup" msgid "Daily Avg" msgstr "Ikdienas prskati" msgid "Daily Statistics" msgstr "Dienas statistika" msgid "Daily Statistics for" msgstr "Ikdienas statistika par" msgid "Daily usage for" msgstr "Dienas prskati par " msgid "Day" msgstr "Diena" msgid "Dec" msgstr "Dec" msgid "December" msgstr "Decembris" msgid "Denmark" msgstr "Denmark" msgid "Djibouti" msgstr "Djibouti" msgid "Dominica" msgstr "Dominica" msgid "Dominican Republic" msgstr "Dominican Republic" msgid "East Timor" msgstr "East Timor" msgid "Ecuador" msgstr "Ecuador" msgid "Egypt" msgstr "Egypt" msgid "El Salvador" msgstr "El Salvador" msgid "English" msgstr "Latvian" msgid "Entry" msgstr "Ieraksti" msgid "Equatorial Guinea" msgstr "Equatorial Guinea" msgid "Eritrea" msgstr "Eritrea" msgid "Error adding Referrer node, skipping" msgstr "Error adding Referrer node, skipping" msgid "Error adding Search String Node, skipping" msgstr "Error adding Search String Node, skipping" msgid "Error adding URL node, skipping" msgstr "Error adding URL node, skipping" msgid "Error adding User Agent node, skipping" msgstr "Error adding User Agent node, skipping" msgid "Error adding Username node, skipping" msgstr "Error adding Username node, skipping" msgid "Error adding host node (daily), skipping" msgstr "Error adding host node (daily), skipping" msgid "Error adding host node (monthly), skipping" msgstr "Error adding host node (monthly), skipping" msgid "Error: Can't change directory to" msgstr "Error: Nepareiza direktorija" msgid "Error: Can't open log file" msgstr "Error: Nevaru atvrt Log failu" msgid "Error: Ignoring invalid history record" msgstr "Error: Bojti vstures ieraksti" msgid "Error: Skipping oversized log record" msgstr "Error: Skipping oversized log record" msgid "Error: Skipping record (bad date)" msgstr "Error: Izlaiam ierakstu (kda datum)" msgid "Error: Unable to lock DNS cache file" msgstr "Error: Nevar noslgt DNS cache failu" msgid "Error: Unable to open DNS cache file" msgstr "Error: Nevar atvrt DNS cache failu" msgid "Error: Unable to open configuration file" msgstr "Error: Nevar atvrt konfigurcijas failu" msgid "Error: Unable to open file" msgstr "Error: Unable to open file" msgid "Error: Unable to restore run data" msgstr "Error: Nav iespjams atjaunot iepriekjos datus" msgid "Error: Unable to save current run data" msgstr "Error: Nav iespjams saglabt pareizjos datus" msgid "Error: Unable to write history file" msgstr "Error: Nevar saglabt vstures failus" msgid "Estonia" msgstr "Estonia" msgid "Ethiopia" msgstr "Ethiopia" msgid "Exit" msgstr "Exit" msgid "Falkland Islands (Malvinas)" msgstr "Falkland Islands (Malvinas)" msgid "Faroe Islands" msgstr "Faroe Islands" msgid "Feb" msgstr "Feb" msgid "February" msgstr "Februris" msgid "Fiji" msgstr "Fiji" msgid "Files" msgstr "Faili" msgid "Files per Day" msgstr "Faili Dien" msgid "Finland" msgstr "Finland" msgid "France" msgstr "France" msgid "France; Metropolitan" msgstr "France, Metropolitan" msgid "French Guiana" msgstr "French Guiana" msgid "French Polynesia" msgstr "French Polynesia" msgid "French Southern Territories" msgstr "French Southern Territories" msgid "Gabon" msgstr "Gabon" msgid "Gambia" msgstr "Gambia" msgid "Generated" msgstr "Izveidots" msgid "Generating report for" msgstr "Veidojam prskatu par" msgid "Generating summary report" msgstr "Veidojam summro prskatu par" msgid "Georgia" msgstr "Georgia" msgid "Germany" msgstr "Germany" msgid "Ghana" msgstr "Ghana" msgid "Gibraltar" msgstr "Gibraltar" msgid "Great Britain (UK)" msgstr "Great Britain (UK)" msgid "Greece" msgstr "Greece" msgid "Greenland" msgstr "Greenland" msgid "Grenada" msgstr "Grenada" msgid "Guadeloupe" msgstr "Guadeloupe" msgid "Guam" msgstr "Guam" msgid "Guatemala" msgstr "Guatemala" msgid "Guinea" msgstr "Guinea" msgid "Guinea-Bissau" msgstr "Guinea-Bissau" msgid "Guyana" msgstr "Guyana" msgid "Haiti" msgstr "Haiti" msgid "Heard and McDonald Islands" msgstr "Heard and McDonald Islands" msgid "History file not found..." msgstr "Nav informcijas par vsturi..." msgid "Hits" msgstr "Hits" msgid "Hits by Response Code" msgstr "Hits by Response Code" msgid "Hits per Day" msgstr "Pieprasjumi Dien" msgid "Hits per Hour" msgstr "Pieprasjumi Stunds" msgid "Honduras" msgstr "Honduras" msgid "Hong Kong" msgstr "Hong Kong" msgid "Hostname" msgstr "Hostname" msgid "Hostname for reports is" msgstr " prskata Hostname ir" msgid "Hour" msgstr "Stundas" msgid "Hourly Statistics" msgstr "Stundu statistika" msgid "Hourly Statistics for" msgstr "Stundu statistika par" msgid "Hourly usage for" msgstr "Stundu prskati par" msgid "Hungary" msgstr "Hungary" msgid "Iceland" msgstr "Iceland" msgid "Ignoring previous history..." msgstr "Ignorjam iepriekjos datus..." msgid "India" msgstr "India" msgid "Indonesia" msgstr "Indonesia" msgid "International (int)" msgstr "International (int)" msgid "Iran" msgstr "Iran" msgid "Iraq" msgstr "Iraq" msgid "Ireland" msgstr "Ireland" msgid "Israel" msgstr "Israel" msgid "Italy" msgstr "Italy" msgid "Jamaica" msgstr "Jamaica" msgid "Jan" msgstr "Jan" msgid "January" msgstr "Janvris" msgid "Japan" msgstr "Japan" msgid "Jordan" msgstr "Jordan" msgid "Jul" msgstr "Jul" msgid "July" msgstr "Jlijs" msgid "Jun" msgstr "Jun" msgid "June" msgstr "Jnijs" msgid "KBytes" msgstr "KBytes" msgid "KBytes per Day" msgstr "KBaiti dien" msgid "Kazakhstan" msgstr "Kazakhstan" msgid "Kenya" msgstr "Kenya" msgid "Kiribati" msgstr "Kiribati" msgid "Korea (North)" msgstr "Korea (North)" msgid "Korea (South)" msgstr "Korea (South)" msgid "Kuwait" msgstr "Kuwait" msgid "Kyrgyzstan" msgstr "Kyrgyzstan" msgid "Laos" msgstr "Laos" msgid "Last 12 Months" msgstr "Pdjie 12 Mnei" msgid "Latvia" msgstr "Latvia" msgid "Lebanon" msgstr "Lebanon" msgid "Lesotho" msgstr "Lesotho" msgid "Liberia" msgstr "Liberia" msgid "Libya" msgstr "Libya" msgid "Liechtenstein" msgstr "Liechtenstein" msgid "Lithuania" msgstr "Lithuania" msgid "Luxembourg" msgstr "Luxembourg" msgid "Macau" msgstr "Macau" msgid "Macedonia" msgstr "Macedonia" msgid "Madagascar" msgstr "Madagascar" msgid "Malawi" msgstr "Malawi" msgid "Malaysia" msgstr "Malaysia" msgid "Maldives" msgstr "Maldives" msgid "Mali" msgstr "Mali" msgid "Malta" msgstr "Malta" msgid "Mar" msgstr "Mar" msgid "March" msgstr "Marts" msgid "Marshall Islands" msgstr "Marshall Islands" msgid "Martinique" msgstr "Martinique" msgid "Mauritania" msgstr "Mauritania" msgid "Mauritius" msgstr "Mauritius" msgid "Max" msgstr "Max" msgid "May" msgstr "Maijs" msgid "Mayotte" msgstr "Mayotte" msgid "Mexico" msgstr "Mexico" msgid "Micronesia" msgstr "Micronesia" msgid "Moldova" msgstr "Moldova" msgid "Monaco" msgstr "Monaco" msgid "Mongolia" msgstr "Mongolia" msgid "Month" msgstr "Mnei" msgid "Monthly Statistics for" msgstr "Mneu prskats pr" msgid "Monthly Totals" msgstr "Mneu kopsummas" msgid "Montserrat" msgstr "Montserrat" msgid "Morocco" msgstr "Morocco" msgid "Mozambique" msgstr "Mozambique" msgid "Myanmar" msgstr "Myanmar" msgid "Namibia" msgstr "Namibia" msgid "Nato field (nato)" msgstr "Nato field (nato)" msgid "Nauru" msgstr "Nauru" msgid "Nepal" msgstr "Nepal" msgid "Netherlands" msgstr "Netherlands" msgid "Netherlands Antilles" msgstr "Netherlands Antilles" msgid "Network" msgstr "Network" msgid "Neutral Zone" msgstr "Neutral Zone" msgid "New Caledonia" msgstr "New Caledonia" msgid "New Zealand (Aotearoa)" msgstr "New Zealand (Aotearoa)" msgid "Nicaragua" msgstr "Nicaragua" msgid "Niger" msgstr "Niger" msgid "Nigeria" msgstr "Nigeria" msgid "Niue" msgstr "Niue" msgid "No cache file specified, aborting..." msgstr "Cache fails nav atrasts, prtraucam..." msgid "No valid records found!" msgstr "Nav atrasti dergi ieraksti!" msgid "Non-Profit Organization" msgstr "Non-Profit Organization" msgid "None to process" msgstr "None to process" msgid "Norfolk Island" msgstr "Norfolk Island" msgid "Northern Mariana Islands" msgstr "Northern Mariana Islands" msgid "Norway" msgstr "Norway" msgid "Nov" msgstr "Nov" msgid "November" msgstr "Novembris" msgid "Oct" msgstr "Oct" msgid "October" msgstr "Oktobris" msgid "Old style Arpanet (arpa)" msgstr "Old style Arpanet (arpa)" msgid "Oman" msgstr "Oman" msgid "Other" msgstr "Other" msgid "Pages" msgstr "Lapas" msgid "Pages per Day" msgstr "Lapas Dien" msgid "Pakistan" msgstr "Pakistan" msgid "Palau" msgstr "Palau" msgid "Panama" msgstr "Panama" msgid "Papua New Guinea" msgstr "Papua New Guinea" msgid "Paraguay" msgstr "Paraguay" msgid "Peru" msgstr "Peru" msgid "Philippines" msgstr "Philippines" msgid "Pitcairn" msgstr "Pitcairn" msgid "Poland" msgstr "Poland" msgid "Portugal" msgstr "Portugal" msgid "Previous run data not found..." msgstr "Iepriekjie dati nav atrasti..." msgid "Puerto Rico" msgstr "Puerto Rico" msgid "Qatar" msgstr "Qatar" msgid "Reading history file..." msgstr "Lasm vstures failus..." msgid "Reading previous run data..." msgstr "Lasm iepriekjos datus.." msgid "Referrer" msgstr "Referrer" msgid "Referrers" msgstr "Referrers" msgid "Reunion" msgstr "Reunion" msgid "Romania" msgstr "Romania" msgid "Russian Federation" msgstr "Russian Federation" msgid "Rwanda" msgstr "Rwanda" msgid "S. Georgia and S. Sandwich Isls." msgstr "S. Georgia and S. Sandwich Isls." msgid "Saint Kitts and Nevis" msgstr "Saint Kitts and Nevis" msgid "Saint Lucia" msgstr "Saint Lucia" msgid "Saint Vincent and the Grenadines" msgstr "Saint Vincent and the Grenadines" msgid "Samoa" msgstr "Samoa" msgid "San Marino" msgstr "San Marino" msgid "Sao Tome and Principe" msgstr "Sao Tome and Principe" msgid "Saudi Arabia" msgstr "Saudi Arabia" msgid "Saving current run data..." msgstr "Saglabjam pareizjos datus..." msgid "Saving history information..." msgstr "Saglabjam vstures informciju..." msgid "Search" msgstr "Meklt" msgid "Search String" msgstr "Search String" msgid "Senegal" msgstr "Senegal" msgid "Sep" msgstr "Sep" msgid "September" msgstr "Septembris" msgid "Seychelles" msgstr "Seychelles" msgid "Sierra Leone" msgstr "Sierra Leone" msgid "Singapore" msgstr "Singapore" msgid "Sites" msgstr "Saites" msgid "Skipping Netscape header record" msgstr "Izlaiam Netscape header ierakstu" msgid "Skipping bad record" msgstr "Izlaiam sliktu ierakstu" msgid "Slovak Republic" msgstr "Slovak Republic" msgid "Slovenia" msgstr "Slovenia" msgid "Solomon Islands" msgstr "Solomon Islands" msgid "Somalia" msgstr "Somalia" msgid "South Africa" msgstr "South Africa" msgid "Spain" msgstr "Spain" msgid "Sri Lanka" msgstr "Sri Lanka" msgid "St. Helena" msgstr "St. Helena" msgid "St. Pierre and Miquelon" msgstr "St. Pierre and Miquelon" msgid "Sudan" msgstr "Sudan" msgid "Summary Period" msgstr "Sumrais Periods" msgid "Summary by Month" msgstr "Prskati par mneiem" msgid "Suriname" msgstr "Suriname" msgid "Svalbard and Jan Mayen Islands" msgstr "Svalbard and Jan Mayen Islands" msgid "Swaziland" msgstr "Swaziland" msgid "Sweden" msgstr "Sweden" msgid "Switzerland" msgstr "Switzerland" msgid "Syria" msgstr "Syria" msgid "Taiwan" msgstr "Taiwan" msgid "Tajikistan" msgstr "Tajikistan" msgid "Tanzania" msgstr "Tanzania" msgid "Thailand" msgstr "Thailand" msgid "Togo" msgstr "Togo" msgid "Tokelau" msgstr "Tokelau" msgid "Tonga" msgstr "Tonga" msgid "Top" msgstr "Top" msgid "Total" msgstr "Total" msgid "Total Countries" msgstr "Visas valstis" msgid "Total Entry Pages" msgstr "Total Entry Pages" msgid "Total Exit Pages" msgstr "Total Exit Pages" msgid "Total Files" msgstr "Kopjie Faili" msgid "Total Hits" msgstr "Kopjie Apmekljumi" msgid "Total KBytes" msgstr "Kopjie KBaiti" msgid "Total Referrers" msgstr "Visi Reffereri" msgid "Total Search Strings" msgstr "Total Search Strings" msgid "Total Sites" msgstr "Visas Saites" msgid "Total URLs" msgstr "Visi URL" msgid "Total Unique Referrers" msgstr "Kopjie Uniklie Referreri" msgid "Total Unique Sites" msgstr "Kopjs Unikls Saites" msgid "Total Unique URLs" msgstr "Kopjie Uniklie URL" msgid "Total Unique User Agents" msgstr "Kopjs Unikls Lietotju Programmas" msgid "Total Unique Usernames" msgstr "Total Unique Usernames" msgid "Total User Agents" msgstr "Visas apmekltju prlkprogrammas" msgid "Total Usernames" msgstr "Total Usernames" msgid "Totals" msgstr "Totals" msgid "Trinidad and Tobago" msgstr "Trinidad and Tobago" msgid "Tunisia" msgstr "Tunisia" msgid "Turkey" msgstr "Turkey" msgid "Turkmenistan" msgstr "Turkmenistan" msgid "Turks and Caicos Islands" msgstr "Turks and Caicos Islands" msgid "Tuvalu" msgstr "Tuvalu" msgid "URL" msgstr "URL" msgid "URLs" msgstr "URL's" msgid "US Commercial" msgstr "US Commercial" msgid "US Educational" msgstr "US Educational" msgid "US Government" msgstr "US Government" msgid "US Military" msgstr "US Military" msgid "US Minor Outlying Islands" msgstr "US Minor Outlying Islands" msgid "USSR (former)" msgstr "USSR (former)" msgid "Uganda" msgstr "Uganda" msgid "Ukraine" msgstr "Ukraine" msgid "Undefined response code" msgstr "Undefined response code" msgid "United Arab Emirates" msgstr "United Arab Emirates" msgid "United Kingdom" msgstr "United Kingdom" msgid "United States" msgstr "United States" msgid "Unresolved/Unknown" msgstr "Unresolved/Unknown" msgid "Uruguay" msgstr "Uruguay" msgid "Usage" msgstr "Usage" msgid "Usage Statistics for" msgstr "Usage Statistics for" msgid "Usage by Country for" msgstr "rvalstu apmekltju statistika par" msgid "Usage summary for" msgstr "Apmekljumu prskats pr" msgid "User Agent" msgstr "Lietotja programma" msgid "Username" msgstr "Lietotja vrds" msgid "Users" msgstr "Lietotji" msgid "Using DNS cache file" msgstr "Lietojam DNS cache file" msgid "Using logfile" msgstr "Izmantojam logfailu" msgid "Uzbekistan" msgstr "Uzbekistan" msgid "Vanuatu" msgstr "Vanuatu" msgid "Vatican City State (Holy See)" msgstr "Vatican City State (Holy See)" msgid "Venezuela" msgstr "Venezuela" msgid "Viet Nam" msgstr "Viet Nam" msgid "View All Referrers" msgstr "Apskatt visus Referrerus" msgid "View All Search Strings" msgstr "View All Search Strings" msgid "View All Sites" msgstr "Apskatt visas saites" msgid "View All URLs" msgstr "Apskatt visus URL" msgid "View All User Agents" msgstr "Apskatt visas prlkprogrammas" msgid "View All Usernames" msgstr "View All Usernames" msgid "Virgin Islands (British)" msgstr "Virgin Islands (British)" msgid "Virgin Islands (U.S.)" msgstr "Virgin Islands (U.S.)" msgid "Visits" msgstr "Apmekljumi" msgid "Visits per Day" msgstr "Apmekljumi Dien" msgid "Wallis and Futuna Islands" msgstr "Wallis and Futuna Islands" msgid "Warning: Invalid keyword" msgstr "Warning: Nepareizs keyword" msgid "Warning: Possible duplicate data found" msgstr "Warning: Iespjams, ka dati atkrtojas" msgid "Warning: String exceeds storage size" msgstr "Warning: String exceeds storage size" msgid "Warning: Truncating oversized date field" msgstr "Warning: Truncating oversized date field" msgid "Warning: Truncating oversized hostname" msgstr "Warning: Truncating oversized hostname" msgid "Warning: Truncating oversized referrer field" msgstr "Warning: Truncating oversized referrer field" msgid "Warning: Truncating oversized request field" msgstr "Warning: Truncating oversized request field" msgid "Warning: Truncating oversized username" msgstr "Warning: Truncating oversized username" msgid "Western Sahara" msgstr "Western Sahara" msgid "Yemen" msgstr "Yemen" msgid "Yugoslavia" msgstr "Yugoslavia" msgid "Zaire" msgstr "Zaire" msgid "Zambia" msgstr "Zambia" msgid "Zimbabwe" msgstr "Zimbabwe" msgid "[options] [log file]" msgstr "[options] [log file]" msgid "addresses" msgstr "addreses" msgid "bad" msgstr "slikti" msgid "current directory" msgstr "Eso Direktorija" msgid "ignored" msgstr "ignorti" msgid "in" msgstr "ienkoie" msgid "of" msgstr "par" msgid "records" msgstr "ieraksti" msgid "seconds" msgstr "sekundes" webdruid-0.5.4.orig/po/is.po0000644000000000000000000006277410066113350015626 0ustar rootroot00000000000000msgid "" msgstr "" "Project-Id-Version: 1.0\n" "PO-Revision-Date: 2003-05-25 23:29+0200\n" "Last-Translator: Johan Poirier \n" "Language-Team: French \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=ISO-8859-1\n" "Content-Transfer-Encoding: 8bit" msgid "-A num = Display num top agents" msgstr "-A num = Display num top agents" msgid "-C num = Display num top countries" msgstr "-C num = Display num top countries" msgid "-D name = Use DNS Cache file 'name'" msgstr "-D name = Use DNS Cache file 'name'" msgid "-E num = Display num top Exit Pages" msgstr "-E num = Display num top Exit Pages" msgid "-F type = Log type. type= (clf | ftp | squid)" msgstr "-F tegund = Annla tegund. tegund= (clf | ftp | squid)" msgid "-G = supress hourly graph" msgstr "-G = supress hourly graph" msgid "-H = supress hourly stats" msgstr "-H = supress hourly stats" msgid "-I name = Index alias 'name'" msgstr "-I name = Index alias 'name'" msgid "-L = supress color coded graph legends" msgstr "-L = supress color coded graph legends" msgid "-N num = Number of DNS processes (0=disable)" msgstr "-N num = Number of DNS processes (0=disable)" msgid "-P name = Page type extension 'name'" msgstr "-P name = Page type extension 'name'" msgid "-Q = supress _ALL_ messages" msgstr "-Q = supress _ALL_ messages" msgid "-R num = Display num top referrers" msgstr "-R num = Display num top referrers" msgid "-S num = Display num top sites" msgstr "-S num = Display num top sites" msgid "-T = print timing information" msgstr "-T = print timing information" msgid "-U num = Display num top URLs" msgstr "-U num = Display num top URLs" msgid "-X = Hide individual sites" msgstr "-X = Hide individual sites" msgid "-Y = supress country graph" msgstr "-Y = supress country graph" msgid "-a name = hide user agent 'name'" msgstr "-a name = hide user agent 'name'" msgid "-c file = use configuration file 'file'" msgstr "-c file = use configuration file 'file'" msgid "-d = print additional debug info" msgstr "-d = print additional debug info" msgid "-e num = Display num top Entry Pages" msgstr "-e num = Display num top Entry Pages" msgid "-f = Fold sequence errors" msgstr "-f = Fold sequence errors" msgid "-g num = Group Domains to 'num' levels" msgstr "-g num = Group Domains to 'num' levels" msgid "-h = print this help message" msgstr "-h = prentar essa hjlp" msgid "-i = ignore history file" msgstr "-i = hunsa history skr" msgid "-l num = use num background lines on graph" msgstr "-l num = use num background lines on graph" msgid "-m num = Visit timout value (seconds)" msgstr "-m num = Visit timout value (seconds)" msgid "-n name = hostname to use" msgstr "-n name = hostname to use" msgid "-o dir = output directory to use" msgstr "-o dir = output directory to use" msgid "-p = preserve state (incremental)" msgstr "-p = preserve state (incremental)" msgid "-q = supress informational messages" msgstr "-q = supress informational messages" msgid "-r name = hide referrer 'name'" msgstr "-r name = hide referrer 'name'" msgid "-s name = hide site 'name'" msgstr "-s name = hide site 'name'" msgid "-t name = report title 'name'" msgstr "-t name = report title 'name'" msgid "-u name = hide URL 'name'" msgstr "-u name = hide URL 'name'" msgid "-v -V = print version information" msgstr "-v -V = prentar tgfu upplsingar" msgid "-x name = Use filename extension 'name'" msgstr "-x name = Use filename extension 'name'" msgid "Afghanistan" msgstr "Afganistan" msgid "Agents" msgstr "Agents" msgid "Albania" msgstr "Albana" msgid "Algeria" msgstr "Algeria" msgid "American Samoa" msgstr "Amersku Samoa" msgid "Andorra" msgstr "Andorra" msgid "Angola" msgstr "Angla" msgid "Anguilla" msgstr "Anguilla" msgid "Antarctica" msgstr "Antarctica" msgid "Antigua and Barbuda" msgstr "Antigua og Barbuda" msgid "Apr" msgstr "Apr" msgid "April" msgstr "Aprl" msgid "Argentina" msgstr "Argentna" msgid "Armenia" msgstr "Armena" msgid "Aruba" msgstr "Aruba" msgid "Aug" msgstr "Ag" msgid "August" msgstr "gst" msgid "Australia" msgstr "strala" msgid "Austria" msgstr "Austurrki" msgid "Avg" msgstr "Mealtal" msgid "Azerbaijan" msgstr "Azerbaijan" msgid "Bahamas" msgstr "Bahamas" msgid "Bahrain" msgstr "Bahrain" msgid "Bangladesh" msgstr "Bangladesh" msgid "Barbados" msgstr "Barbados" msgid "Belarus" msgstr "Belarus" msgid "Belgium" msgstr "Belga" msgid "Belize" msgstr "Belize" msgid "Benin" msgstr "Benin" msgid "Bermuda" msgstr "Bermda" msgid "Bhutan" msgstr "Bhutan" msgid "Bolivia" msgstr "Bliva" msgid "Bosnia and Herzegovina" msgstr "Bosna and Herzegovina" msgid "Botswana" msgstr "Botswana" msgid "Bouvet Island" msgstr "Bouvet Island" msgid "Brazil" msgstr "Brasila" msgid "British Indian Ocean Territory" msgstr "British Indian Ocean Territory" msgid "Brunei Darussalam" msgstr "Brunei Darussalam" msgid "Bulgaria" msgstr "Blgara" msgid "Burkina Faso" msgstr "Burkina Faso" msgid "Burundi" msgstr "Burundi" msgid "By" msgstr "By" msgid "Cambodia" msgstr "Kambda" msgid "Cameroon" msgstr "Kamern" msgid "Can't allocate enough memory, Top Countries disabled!" msgstr "Get ekki fundi ng minni, Top Countries!" msgid "Can't allocate enough memory, Top Referrers disabled!" msgstr "Get ekki fundi ng minni, Top Referrers!" msgid "Can't allocate enough memory, Top Search Strings disabled!" msgstr "Get ekki fundi ng minni, Top Search Strings!" msgid "Can't allocate enough memory, Top Sites disabled!" msgstr "Get ekki fundi ng minni, sleppi Top Sites!" msgid "Can't allocate enough memory, Top URLs disabled!" msgstr "Get ekki fundi ng minni, Top URLs!" msgid "Can't allocate enough memory, Top User Agents disabled!" msgstr "Get ekki fundi ng minni, Top User Agents!" msgid "Can't allocate enough memory, Top Usernames disabled!" msgstr "Get ekki fundi ng minni, Top Usernames!" msgid "Canada" msgstr "Kanada" msgid "Cape Verde" msgstr "Cape Verde" msgid "Cayman Islands" msgstr "Cayman Eyjur" msgid "Central African Republic" msgstr "Mi Afrkulveldi " msgid "Chad" msgstr "Chad" msgid "Chile" msgstr "Chile" msgid "China" msgstr "Kna" msgid "Christmas Island" msgstr "Jlaeyja" msgid "Cocos (Keeling) Islands" msgstr "Kkos (Keeling) Eyjur" msgid "Code 100 - Continue" msgstr "Code 100 - fram" msgid "Code 101 - Switching Protocols" msgstr "Code 101 - Switching Protocols" msgid "Code 200 - OK" msgstr "Code 200 - I Lagi" msgid "Code 201 - Created" msgstr "Code 201 - Bi til" msgid "Code 202 - Accepted" msgstr "Code 202 - Samykkt" msgid "Code 203 - Non-Authoritative Information" msgstr "Code 203 - Non-Authoritative Information" msgid "Code 204 - No Content" msgstr "Code 204 - Ekkert Innihald" msgid "Code 205 - Reset Content" msgstr "Code 205 - Reset Content" msgid "Code 206 - Partial Content" msgstr "Code 206 - Partial Content" msgid "Code 300 - Multiple Choices" msgstr "Code 300 - Margir Mguleikar" msgid "Code 301 - Moved Permanently" msgstr "Code 301 - Frt" msgid "Code 302 - Found" msgstr "Code 302 - Fundi" msgid "Code 303 - See Other" msgstr "Code 303 - Sj Anna" msgid "Code 304 - Not Modified" msgstr "Code 304 - Ekki Breytt" msgid "Code 305 - Use Proxy" msgstr "Code 305 - Nota Proxy" msgid "Code 307 - Moved Temporarily" msgstr "Code 307 - Frt Um Stundarsakir" msgid "Code 400 - Bad Request" msgstr "Code 400 - Slm Beini" msgid "Code 401 - Unauthorized" msgstr "Code 401 - leyfilegt" msgid "Code 402 - Payment Required" msgstr "Code 402 - Greislu Krafist" msgid "Code 403 - Forbidden" msgstr "Code 403 - leyfilegt" msgid "Code 404 - Not Found" msgstr "Code 404 - Fannst Ekki" msgid "Code 405 - Method Not Allowed" msgstr "Code 405 - Afer Ekki Leyf" msgid "Code 406 - Not Acceptable" msgstr "Code 406 - Ekki sttanlegt" msgid "Code 407 - Proxy Authentication Required" msgstr "Code 407 - Proxy Aukenning Nausynleg" msgid "Code 408 - Request Timeout" msgstr "Code 408 - Request Timeout" msgid "Code 409 - Conflict" msgstr "Code 409 - rekstur" msgid "Code 410 - Gone" msgstr "Code 410 - Gone" msgid "Code 411 - Length Required" msgstr "Code 411 - Length Required" msgid "Code 412 - Precondition Failed" msgstr "Code 412 - Precondition Failed" msgid "Code 413 - Request Entity Too Large" msgstr "Code 413 - Request Entity Of Strt" msgid "Code 414 - Request-URI Too Long" msgstr "Code 414 - Request-URI Of Langt" msgid "Code 415 - Unsupported Media Type" msgstr "Code 415 - studd Media Tegund" msgid "Code 416 - Requested Range Not Satisfiable" msgstr "Code 416 - Umbei svi Ekki sttanlegt" msgid "Code 417 - Expectation Failed" msgstr "Code 417 - Expectation Failed" msgid "Code 500 - Internal Server Error" msgstr "Code 500 - Innlg jna villa" msgid "Code 501 - Not Implemented" msgstr "Code 501 - Not Implemented" msgid "Code 502 - Bad Gateway" msgstr "Code 502 - Rangur Gateway" msgid "Code 503 - Service Unavailable" msgstr "Code 503 - jnusta Ekki Fyrir Hendi" msgid "Code 504 - Gateway Timeout" msgstr "Code 504 - Gateway Timeout" msgid "Code 505 - HTTP Version Not Supported" msgstr "Code 505 - HTTP tgfa Ekki Studd" msgid "Colombia" msgstr "Klumba" msgid "Comoros" msgstr "Comoros" msgid "Congo" msgstr "Kong" msgid "Cook Islands" msgstr "Cook Islands" msgid "Costa Rica" msgstr "Kosta Rica" msgid "Cote D'Ivoire (Ivory Coast)" msgstr "Flabeinsstrndin (Ivory Coast)" msgid "Countries" msgstr "Lnd" msgid "Country" msgstr "Land" msgid "Creating output in" msgstr "B til ttak " msgid "Croatia (Hrvatska)" msgstr "Krata (Hrvatska)" msgid "Cuba" msgstr "Kba" msgid "Cyprus" msgstr "Kpur" msgid "Czech Republic" msgstr "Tkkneska Lveldi" msgid "Czechoslovakia (former)" msgstr "Tkkslvaka (fyrrverandi)" msgid "DNS Lookup" msgstr "DNS Lookup" msgid "Daily Avg" msgstr "Dags mealtal" msgid "Daily Statistics" msgstr "Daglegar samtlur" msgid "Daily Statistics for" msgstr "Daglegar Samtlur fyrir" msgid "Daily usage for" msgstr "Notkun dag fyrir" msgid "Day" msgstr "Dagur" msgid "Dec" msgstr "Des" msgid "December" msgstr "Desember" msgid "Denmark" msgstr "Danmrk" msgid "Djibouti" msgstr "Djibouti" msgid "Dominica" msgstr "Dminka" msgid "Dominican Republic" msgstr "Dminska Lveldi" msgid "East Timor" msgstr "Eaustur Timor" msgid "Ecuador" msgstr "Ecuador" msgid "Egypt" msgstr "Egyptaland" msgid "El Salvador" msgstr "El Salvador" msgid "English" msgstr "Icelandic" msgid "Entry" msgstr "Byrjunar" msgid "Equatorial Guinea" msgstr "Equatorial Guinea" msgid "Eritrea" msgstr "Eritrea" msgid "Error adding Referrer node, skipping" msgstr "Error adding Referrer node, skipping" msgid "Error adding Search String Node, skipping" msgstr "Error adding Search String Node, skipping" msgid "Error adding URL node, skipping" msgstr "Error adding URL node, skipping" msgid "Error adding User Agent node, skipping" msgstr "Error adding User Agent node, skipping" msgid "Error adding Username node, skipping" msgstr "Error adding Username node, skipping" msgid "Error adding host node (daily), skipping" msgstr "Error adding host node (daily), skipping" msgid "Error adding host node (monthly), skipping" msgstr "Error adding host node (monthly), skipping" msgid "Error: Can't change directory to" msgstr "Villa: Get ekki fari mppuna:" msgid "Error: Can't open log file" msgstr "Villa: Get ekki opna annla" msgid "Error: Ignoring invalid history record" msgstr "Villa: Gllu atburaskrning" msgid "Error: Skipping oversized log record" msgstr "Villa: Sleppi of strum annlum" msgid "Error: Skipping record (bad date)" msgstr "Villa: Sleppi skrningu, gllu dagsetning" msgid "Error: Unable to lock DNS cache file" msgstr "Villa: Get get ekki lsta DNS cache skr" msgid "Error: Unable to open DNS cache file" msgstr "Villa: Get ekki opna DNS cache skr" msgid "Error: Unable to open configuration file" msgstr "Villa: Get ekki opna stillingaskr" msgid "Error: Unable to open file" msgstr "Villa: Get ekki opna skr" msgid "Error: Unable to restore run data" msgstr "Villa: Get ekki endurheimt ggn" msgid "Error: Unable to save current run data" msgstr "Villa: Get ekki vista nverandi ggn" msgid "Error: Unable to write history file" msgstr "Villa: Get ekki skrifa atburaskr" msgid "Estonia" msgstr "Estna" msgid "Ethiopia" msgstr "Epa" msgid "Exit" msgstr "loka" msgid "Falkland Islands (Malvinas)" msgstr "Flkeyjur (Malvinas)" msgid "Faroe Islands" msgstr "Faroe Islands" msgid "Feb" msgstr "Feb" msgid "February" msgstr "Febrar" msgid "Fiji" msgstr "Fj" msgid "Files" msgstr "Skrr" msgid "Files per Day" msgstr "Skrr Dag" msgid "Finland" msgstr "Finland" msgid "France" msgstr "Frakkland" msgid "France; Metropolitan" msgstr "France, Metropolitan" msgid "French Guiana" msgstr "Franska Guiana" msgid "French Polynesia" msgstr "Franska Plnesa" msgid "French Southern Territories" msgstr "French Southern Territories" msgid "Gabon" msgstr "Gabon" msgid "Gambia" msgstr "Gambia" msgid "Generated" msgstr "Skrsla ger" msgid "Generating report for" msgstr "B til skrningu fyrir" msgid "Generating summary report" msgstr "B til stutta skrningu" msgid "Georgia" msgstr "Georga" msgid "Germany" msgstr "skaland" msgid "Ghana" msgstr "Ghana" msgid "Gibraltar" msgstr "Gbraltar" msgid "Great Britain (UK)" msgstr "Stra Bretland (UK)" msgid "Greece" msgstr "Grikkland" msgid "Greenland" msgstr "Grnland" msgid "Grenada" msgstr "Grenada" msgid "Guadeloupe" msgstr "Guadeloupe" msgid "Guam" msgstr "Guam" msgid "Guatemala" msgstr "Guatemala" msgid "Guinea" msgstr "Guinea" msgid "Guinea-Bissau" msgstr "Guinea-Bissau" msgid "Guyana" msgstr "Guyana" msgid "Haiti" msgstr "Hat" msgid "Heard and McDonald Islands" msgstr "Heard og McDonald Eyjur" msgid "History file not found..." msgstr "Finn ekki atburaskr..." msgid "Hits" msgstr "Beinir" msgid "Hits by Response Code" msgstr "Hits by Response Code" msgid "Hits per Day" msgstr "Beinir Dag" msgid "Hits per Hour" msgstr "Beinir Klukkustund" msgid "Honduras" msgstr "Hondras" msgid "Hong Kong" msgstr "Hong Kong" msgid "Hostname" msgstr "Host nafn" msgid "Hostname for reports is" msgstr "Nafn jns fyrir skrslur er:" msgid "Hour" msgstr "Klukkustund" msgid "Hourly Statistics" msgstr "Klukkustundar samtlur" msgid "Hourly Statistics for" msgstr "Klukkustundar Samtlur fyrir" msgid "Hourly usage for" msgstr "Notkun klukkustund fyrir" msgid "Hungary" msgstr "Ungverjaland" msgid "Iceland" msgstr "sland" msgid "Ignoring previous history..." msgstr "Hunsa fyrri atburi..." msgid "India" msgstr "Inda" msgid "Indonesia" msgstr "Indnesa" msgid "International (int)" msgstr "International (int)" msgid "Iran" msgstr "ran" msgid "Iraq" msgstr "rak" msgid "Ireland" msgstr "rland" msgid "Israel" msgstr "srael" msgid "Italy" msgstr "tala" msgid "Jamaica" msgstr "Jamaica" msgid "Jan" msgstr "Jan" msgid "January" msgstr "Janar" msgid "Japan" msgstr "Japan" msgid "Jordan" msgstr "Jordan" msgid "Jul" msgstr "Jl" msgid "July" msgstr "Jl" msgid "Jun" msgstr "Jn" msgid "June" msgstr "Jn" msgid "KBytes" msgstr "KBti" msgid "KBytes per Day" msgstr "KBti Dag" msgid "Kazakhstan" msgstr "Kazakhstan" msgid "Kenya" msgstr "Kenya" msgid "Kiribati" msgstr "Kiribati" msgid "Korea (North)" msgstr "Krea (Norur)" msgid "Korea (South)" msgstr "Krea (Suur)" msgid "Kuwait" msgstr "Kweit" msgid "Kyrgyzstan" msgstr "Kyrgyzstan" msgid "Laos" msgstr "Laos" msgid "Last 12 Months" msgstr "Sustu 12 mnuir " msgid "Latvia" msgstr "Lettland" msgid "Lebanon" msgstr "Lebanon" msgid "Lesotho" msgstr "Lesotho" msgid "Liberia" msgstr "Liberia" msgid "Libya" msgstr "Liba" msgid "Liechtenstein" msgstr "Liechtenstein" msgid "Lithuania" msgstr "Lithuania" msgid "Luxembourg" msgstr "Lxembourg" msgid "Macau" msgstr "Macau" msgid "Macedonia" msgstr "Makedna" msgid "Madagascar" msgstr "Madagaskar" msgid "Malawi" msgstr "Malawi" msgid "Malaysia" msgstr "Malasa" msgid "Maldives" msgstr "Maldives" msgid "Mali" msgstr "Mali" msgid "Malta" msgstr "Malta" msgid "Mar" msgstr "Mar" msgid "March" msgstr "Mars" msgid "Marshall Islands" msgstr "Marshall Eyjur" msgid "Martinique" msgstr "Martinique" msgid "Mauritania" msgstr "Mauritana" msgid "Mauritius" msgstr "Mauritius" msgid "Max" msgstr "Mest" msgid "May" msgstr "Ma" msgid "Mayotte" msgstr "Mayotte" msgid "Mexico" msgstr "Mexko" msgid "Micronesia" msgstr "Mkrnesa" msgid "Moldova" msgstr "Moldva" msgid "Monaco" msgstr "Mnak" msgid "Mongolia" msgstr "Mongla" msgid "Month" msgstr "Mnuur" msgid "Monthly Statistics for" msgstr "Mnaar Samtlur fyrir" msgid "Monthly Totals" msgstr "Samtals mnui" msgid "Montserrat" msgstr "Montserrat" msgid "Morocco" msgstr "Marokko" msgid "Mozambique" msgstr "Mozambk" msgid "Myanmar" msgstr "Myanmar" msgid "Namibia" msgstr "Namiba" msgid "Nato field (nato)" msgstr "Nato (nato)" msgid "Nauru" msgstr "Nauru" msgid "Nepal" msgstr "Nepal" msgid "Netherlands" msgstr "Netherlands" msgid "Netherlands Antilles" msgstr "Holland" msgid "Network" msgstr "Network" msgid "Neutral Zone" msgstr "Neutral Zone" msgid "New Caledonia" msgstr "Nja Caledonia" msgid "New Zealand (Aotearoa)" msgstr "Nja Sjland (Aotearoa)" msgid "Nicaragua" msgstr "Nicaragua" msgid "Niger" msgstr "Niger" msgid "Nigeria" msgstr "Nigera" msgid "Niue" msgstr "Niue" msgid "No cache file specified, aborting..." msgstr "Enginn cache skr skilgreind, htti vi..." msgid "No valid records found!" msgstr "Engar skrningar fundnar lagi!" msgid "Non-Profit Organization" msgstr "Non-Profit Organization" msgid "None to process" msgstr "Enginn til a vinna" msgid "Norfolk Island" msgstr "Norfolk Island" msgid "Northern Mariana Islands" msgstr "Norur Mariana eyjur" msgid "Norway" msgstr "Noregur" msgid "Nov" msgstr "Nv" msgid "November" msgstr "Nvember" msgid "Oct" msgstr "Okt" msgid "October" msgstr "Oktber" msgid "Old style Arpanet (arpa)" msgstr "Gamla Arpanet (arpa)" msgid "Oman" msgstr "man" msgid "Other" msgstr "Anna" msgid "Pages" msgstr "Sur" msgid "Pages per Day" msgstr "Sur Dag" msgid "Pakistan" msgstr "Pakistan" msgid "Palau" msgstr "Palau" msgid "Panama" msgstr "Panama" msgid "Papua New Guinea" msgstr "Papua Nja Guinea" msgid "Paraguay" msgstr "Paraguay" msgid "Peru" msgstr "Peru" msgid "Philippines" msgstr "Filippseyjar" msgid "Pitcairn" msgstr "Pitcairn" msgid "Poland" msgstr "Plland" msgid "Portugal" msgstr "Portgal" msgid "Previous run data not found..." msgstr "Eldri ggn fundust ekki..." msgid "Puerto Rico" msgstr "Perto Rko" msgid "Qatar" msgstr "Qatar" msgid "Reading history file..." msgstr "Les atburaskr..." msgid "Reading previous run data..." msgstr "Les eldri ggn.." msgid "Referrer" msgstr "Referrer" msgid "Referrers" msgstr "Referrers" msgid "Reunion" msgstr "Reunion" msgid "Romania" msgstr "Rmena" msgid "Russian Federation" msgstr "Rssneska Sambandi" msgid "Rwanda" msgstr "Randa" msgid "S. Georgia and S. Sandwich Isls." msgstr "S. Georgia og S. Samloku Eyjur." msgid "Saint Kitts and Nevis" msgstr "Saint Kitts and Nevis" msgid "Saint Lucia" msgstr "Saint Lucia" msgid "Saint Vincent and the Grenadines" msgstr "Saint Vincent og Grenadines" msgid "Samoa" msgstr "Sama" msgid "San Marino" msgstr "San Marin" msgid "Sao Tome and Principe" msgstr "Sao Tome og Principe" msgid "Saudi Arabia" msgstr "Saudi Araba" msgid "Saving current run data..." msgstr "Vista nverandi ggn..." msgid "Saving history information..." msgstr "Vista atburaskr..." msgid "Search" msgstr "Leita" msgid "Search String" msgstr "Leitarstrengur" msgid "Senegal" msgstr "Senegal" msgid "Sep" msgstr "Sep" msgid "September" msgstr "September" msgid "Seychelles" msgstr "Seychelles" msgid "Sierra Leone" msgstr "Serra Lone" msgid "Singapore" msgstr "Singapr" msgid "Sites" msgstr "Sur" msgid "Skipping Netscape header record" msgstr "Sleppi Netscape hausskrningu" msgid "Skipping bad record" msgstr "Sleppi gallari skrningu" msgid "Slovak Republic" msgstr "Slvenska lveldi" msgid "Slovenia" msgstr "Slvena" msgid "Solomon Islands" msgstr "Solomon Eyjur" msgid "Somalia" msgstr "Smala" msgid "South Africa" msgstr "Suur Africa" msgid "Spain" msgstr "Spnn" msgid "Sri Lanka" msgstr "Sri Lanka" msgid "St. Helena" msgstr "St. Helena" msgid "St. Pierre and Miquelon" msgstr "St. Pierre og Miquelon" msgid "Sudan" msgstr "Sdan" msgid "Summary Period" msgstr "Tmabil" msgid "Summary by Month" msgstr "Yfirlit eftir mnuum" msgid "Suriname" msgstr "Suriname" msgid "Svalbard and Jan Mayen Islands" msgstr "Svalbari og Jan Mayen Eyjarnar" msgid "Swaziland" msgstr "Swaziland" msgid "Sweden" msgstr "Svj" msgid "Switzerland" msgstr "Swiss" msgid "Syria" msgstr "Srland" msgid "Taiwan" msgstr "Tawan" msgid "Tajikistan" msgstr "Tajikistan" msgid "Tanzania" msgstr "Tanzania" msgid "Thailand" msgstr "Taland" msgid "Togo" msgstr "Togo" msgid "Tokelau" msgstr "Tokelau" msgid "Tonga" msgstr "Tonga" msgid "Top" msgstr "Efstu" msgid "Total" msgstr "Samtals" msgid "Total Countries" msgstr "Heildar Lnd" msgid "Total Entry Pages" msgstr "Heildar Byrjunarsum" msgid "Total Exit Pages" msgstr "Heildar Lokasum" msgid "Total Files" msgstr "Samtals Skrr" msgid "Total Hits" msgstr "Samtals Beinir" msgid "Total KBytes" msgstr "Samtals KBti" msgid "Total Referrers" msgstr "Heildar Referrers" msgid "Total Search Strings" msgstr "Heildar Leitarstrengir" msgid "Total Sites" msgstr "Heildar Sur" msgid "Total URLs" msgstr "Heildar slir" msgid "Total Unique Referrers" msgstr "Samtals Unique Referrers" msgid "Total Unique Sites" msgstr "Samtals Einstakar Sur" msgid "Total Unique URLs" msgstr "Samtals Einstakar Slir" msgid "Total Unique User Agents" msgstr "Samtals Unique User Agents" msgid "Total Unique Usernames" msgstr "Samtals Einstk Notandanfn" msgid "Total User Agents" msgstr "Heildar User Agents" msgid "Total Usernames" msgstr "Heildar Notendanfn" msgid "Totals" msgstr "Samtals" msgid "Trinidad and Tobago" msgstr "Trindad og Tobago" msgid "Tunisia" msgstr "Tnis" msgid "Turkey" msgstr "Tyrkland" msgid "Turkmenistan" msgstr "Trkmenistan" msgid "Turks and Caicos Islands" msgstr "Turks and Caicos Eyjurnar" msgid "Tuvalu" msgstr "Tuvalu" msgid "URL" msgstr "Sl" msgid "URLs" msgstr "Slir" msgid "US Commercial" msgstr "US Commercial" msgid "US Educational" msgstr "US Menntanet" msgid "US Government" msgstr "US Rkisnet" msgid "US Military" msgstr "US Her" msgid "US Minor Outlying Islands" msgstr "US Minor Outlying Islands" msgid "USSR (former)" msgstr "USSR (fyrrverandi)" msgid "Uganda" msgstr "ganda" msgid "Ukraine" msgstr "krane" msgid "Undefined response code" msgstr "Undefined response code" msgid "United Arab Emirates" msgstr "Sameiginlegu Arabsku Furstadmin" msgid "United Kingdom" msgstr "Bretland" msgid "United States" msgstr "USA" msgid "Unresolved/Unknown" msgstr "ekkt" msgid "Uruguay" msgstr "Uruguay" msgid "Usage" msgstr "notkun" msgid "Usage Statistics for" msgstr "Yfirlit Heimskna fyrir" msgid "Usage by Country for" msgstr "Notkun eftir Landi fyrir" msgid "Usage summary for" msgstr "Yfirlit heimskn fyrir" msgid "User Agent" msgstr "User Agent" msgid "Username" msgstr "Notandanafn" msgid "Users" msgstr "Notendur" msgid "Using DNS cache file" msgstr "Nota DNS cache skr" msgid "Using logfile" msgstr "Nota annla" msgid "Uzbekistan" msgstr "sbekistan" msgid "Vanuatu" msgstr "Vanuatu" msgid "Vatican City State (Holy See)" msgstr "Vatikani (Holy See)" msgid "Venezuela" msgstr "Venesela" msgid "Viet Nam" msgstr "Vet Nam" msgid "View All Referrers" msgstr "Skoa Allar Referrers" msgid "View All Search Strings" msgstr "Skoa Alla Leitarstrengi" msgid "View All Sites" msgstr "Skoa Allar sur" msgid "View All URLs" msgstr "Skoa Allar Slir" msgid "View All User Agents" msgstr "Skoa Alla User Agents" msgid "View All Usernames" msgstr "Skoa ll Notandanfn" msgid "Virgin Islands (British)" msgstr "Jmfreyjar-eyjar (Bresku)" msgid "Virgin Islands (U.S.)" msgstr "Jmfreyjar-eyjar (U.S.)" msgid "Visits" msgstr "Heimsknir" msgid "Visits per Day" msgstr "Heimsknir Dag" msgid "Wallis and Futuna Islands" msgstr "Wallis og Futuna Islands" msgid "Warning: Invalid keyword" msgstr "Var: Rangt lykilor" msgid "Warning: Possible duplicate data found" msgstr "Avrun: Mguleiki tvskrum ggnum" msgid "Warning: String exceeds storage size" msgstr "Avrun: Strengur er strri en geymsluplss" msgid "Warning: Truncating oversized date field" msgstr "Avrun: Minnka of stra dags. lnu" msgid "Warning: Truncating oversized hostname" msgstr "Avrun: Minnka of strt host nafn" msgid "Warning: Truncating oversized referrer field" msgstr "Avrun: Minnka of stra referrer lnu" msgid "Warning: Truncating oversized request field" msgstr "Avrun: Minnka of stra request lnu" msgid "Warning: Truncating oversized username" msgstr "Avrun: Minnka of strt notandanafn" msgid "Western Sahara" msgstr "Vestur Sahara" msgid "Yemen" msgstr "Yemen" msgid "Yugoslavia" msgstr "jgslava" msgid "Zaire" msgstr "Zare" msgid "Zambia" msgstr "Zamba" msgid "Zimbabwe" msgstr "Zimbabwe" msgid "[options] [log file]" msgstr "[rofar] [log file]" msgid "addresses" msgstr "fr" msgid "bad" msgstr "gallaar" msgid "current directory" msgstr "Nverandi mappa" msgid "ignored" msgstr "hunsaar" msgid "in" msgstr "" msgid "of" msgstr "af" msgid "records" msgstr "skrningar" msgid "seconds" msgstr "sekndum" webdruid-0.5.4.orig/po/hr.po0000644000000000000000000006337710066113350015624 0ustar rootroot00000000000000msgid "" msgstr "" "Project-Id-Version: 1.0\n" "PO-Revision-Date: 2003-05-25 23:29+0200\n" "Last-Translator: Johan Poirier \n" "Language-Team: French \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=ISO-8859-1\n" "Content-Transfer-Encoding: 8bit" msgid "-A num = Display num top agents" msgstr "-A num = Display num top agents" msgid "-C num = Display num top countries" msgstr "-C num = Display num top countries" msgid "-D name = Use DNS Cache file 'name'" msgstr "-D name = Use DNS Cache file 'name'" msgid "-E num = Display num top Exit Pages" msgstr "-E num = Display num top Exit Pages" msgid "-F type = Log type. type= (clf | ftp | squid)" msgstr "-F type = Log type. type= (clf | ftp | squid)" msgid "-G = supress hourly graph" msgstr "-G = supress hourly graph" msgid "-H = supress hourly stats" msgstr "-H = supress hourly stats" msgid "-I name = Index alias 'name'" msgstr "-I name = Index alias 'name'" msgid "-L = supress color coded graph legends" msgstr "-L = supress color coded graph legends" msgid "-N num = Number of DNS processes (0=disable)" msgstr "-N num = Number of DNS processes (0=disable)" msgid "-P name = Page type extension 'name'" msgstr "-P name = Page type extension 'name'" msgid "-Q = supress _ALL_ messages" msgstr "-Q = supress _ALL_ messages" msgid "-R num = Display num top referrers" msgstr "-R num = Display num top referrers" msgid "-S num = Display num top sites" msgstr "-S num = Display num top sites" msgid "-T = print timing information" msgstr "-T = print timing information" msgid "-U num = Display num top URLs" msgstr "-U num = Display num top URLs" msgid "-X = Hide individual sites" msgstr "-X = Hide individual sites" msgid "-Y = supress country graph" msgstr "-Y = supress country graph" msgid "-a name = hide user agent 'name'" msgstr "-a name = hide user agent 'name'" msgid "-c file = use configuration file 'file'" msgstr "-c file = use configuration file 'file'" msgid "-d = print additional debug info" msgstr "-d = print additional debug info" msgid "-e num = Display num top Entry Pages" msgstr "-e num = Display num top Entry Pages" msgid "-f = Fold sequence errors" msgstr "-f = Fold sequence errors" msgid "-g num = Group Domains to 'num' levels" msgstr "-g num = Group Domains to 'num' levels" msgid "-h = print this help message" msgstr "-h = print this help message" msgid "-i = ignore history file" msgstr "-i = ignore history file" msgid "-l num = use num background lines on graph" msgstr "-l num = use num background lines on graph" msgid "-m num = Visit timout value (seconds)" msgstr "-m num = Visit timout value (seconds)" msgid "-n name = hostname to use" msgstr "-n name = hostname to use" msgid "-o dir = output directory to use" msgstr "-o dir = output directory to use" msgid "-p = preserve state (incremental)" msgstr "-p = preserve state (incremental)" msgid "-q = supress informational messages" msgstr "-q = supress informational messages" msgid "-r name = hide referrer 'name'" msgstr "-r name = hide referrer 'name'" msgid "-s name = hide site 'name'" msgstr "-s name = hide site 'name'" msgid "-t name = report title 'name'" msgstr "-t name = report title 'name'" msgid "-u name = hide URL 'name'" msgstr "-u name = hide URL 'name'" msgid "-v -V = print version information" msgstr "-v -V = print version information" msgid "-x name = Use filename extension 'name'" msgstr "-x name = Use filename extension 'name'" msgid "Afghanistan" msgstr "Afganistan" msgid "Agents" msgstr "Browseri" msgid "Albania" msgstr "Albanija" msgid "Algeria" msgstr "Algerija" msgid "American Samoa" msgstr "Americka Samoa" msgid "Andorra" msgstr "Andora" msgid "Angola" msgstr "Angola" msgid "Anguilla" msgstr "Anguila" msgid "Antarctica" msgstr "Antartik" msgid "Antigua and Barbuda" msgstr "Antigua i Barbuda" msgid "Apr" msgstr "Tra" msgid "April" msgstr "Travanj" msgid "Argentina" msgstr "Argentina" msgid "Armenia" msgstr "Armenija" msgid "Aruba" msgstr "Aruba" msgid "Aug" msgstr "Kol" msgid "August" msgstr "Kolovoz" msgid "Australia" msgstr "Australija" msgid "Austria" msgstr "Austrija" msgid "Avg" msgstr "prosjek" msgid "Azerbaijan" msgstr "Azerbedzan" msgid "Bahamas" msgstr "Bahami" msgid "Bahrain" msgstr "Bahrain" msgid "Bangladesh" msgstr "Banglades" msgid "Barbados" msgstr "Barbados" msgid "Belarus" msgstr "Belarus" msgid "Belgium" msgstr "Belgija" msgid "Belize" msgstr "Belize" msgid "Benin" msgstr "Benin" msgid "Bermuda" msgstr "Bermude" msgid "Bhutan" msgstr "Butan" msgid "Bolivia" msgstr "Bolivija" msgid "Bosnia and Herzegovina" msgstr "Bosna i Hercegovina" msgid "Botswana" msgstr "Bocvana" msgid "Bouvet Island" msgstr "Bouvet otok" msgid "Brazil" msgstr "Brazil" msgid "British Indian Ocean Territory" msgstr "Britanski Indijski oceanski teritorij" msgid "Brunei Darussalam" msgstr "Brunei Darussalam" msgid "Bulgaria" msgstr "Bugarska" msgid "Burkina Faso" msgstr "Burkina Faso" msgid "Burundi" msgstr "Burundi" msgid "By" msgstr "po" msgid "Cambodia" msgstr "Kambodza" msgid "Cameroon" msgstr "Kamerun" msgid "Can't allocate enough memory, Top Countries disabled!" msgstr "Can't allocate enough memory, Top Countries disabled!" msgid "Can't allocate enough memory, Top Referrers disabled!" msgstr "Can't allocate enough memory, Top Referrers disabled!" msgid "Can't allocate enough memory, Top Search Strings disabled!" msgstr "Can't allocate enough memory, Top Search Strings disabled!" msgid "Can't allocate enough memory, Top Sites disabled!" msgstr "Can't allocate enough memory, Top Sites disabled!" msgid "Can't allocate enough memory, Top URLs disabled!" msgstr "Can't allocate enough memory, Top URLs disabled!" msgid "Can't allocate enough memory, Top User Agents disabled!" msgstr "Can't allocate enough memory, Top User Agents disabled!" msgid "Can't allocate enough memory, Top Usernames disabled!" msgstr "Can't allocate enough memory, Top Usernames disabled!" msgid "Canada" msgstr "Kanada" msgid "Cape Verde" msgstr "Cape Verde" msgid "Cayman Islands" msgstr "Kajmanski otoci" msgid "Central African Republic" msgstr "Centralnoafricka republika" msgid "Chad" msgstr "Chad" msgid "Chile" msgstr "Cile" msgid "China" msgstr "Kina" msgid "Christmas Island" msgstr "Bozicni otok" msgid "Cocos (Keeling) Islands" msgstr "Cocos (Keeling) otoci" msgid "Code 100 - Continue" msgstr "Code 100 - Continue" msgid "Code 101 - Switching Protocols" msgstr "Code 101 - Switching Protocols" msgid "Code 200 - OK" msgstr "Code 200 - OK" msgid "Code 201 - Created" msgstr "Code 201 - Created" msgid "Code 202 - Accepted" msgstr "Code 202 - Accepted" msgid "Code 203 - Non-Authoritative Information" msgstr "Code 203 - Non-Authoritative Information" msgid "Code 204 - No Content" msgstr "Code 204 - No Content" msgid "Code 205 - Reset Content" msgstr "Code 205 - Reset Content" msgid "Code 206 - Partial Content" msgstr "Code 206 - Partial Content" msgid "Code 300 - Multiple Choices" msgstr "Code 300 - Multiple Choices" msgid "Code 301 - Moved Permanently" msgstr "Code 301 - Moved Permanently" msgid "Code 302 - Found" msgstr "Code 302 - Found" msgid "Code 303 - See Other" msgstr "Code 303 - See Other" msgid "Code 304 - Not Modified" msgstr "Code 304 - Not Modified" msgid "Code 305 - Use Proxy" msgstr "Code 305 - Use Proxy" msgid "Code 307 - Moved Temporarily" msgstr "Code 307 - Moved Temporarily" msgid "Code 400 - Bad Request" msgstr "Code 400 - Bad Request" msgid "Code 401 - Unauthorized" msgstr "Code 401 - Unauthorized" msgid "Code 402 - Payment Required" msgstr "Code 402 - Payment Required" msgid "Code 403 - Forbidden" msgstr "Code 403 - Forbidden" msgid "Code 404 - Not Found" msgstr "Code 404 - Not Found" msgid "Code 405 - Method Not Allowed" msgstr "Code 405 - Method Not Allowed" msgid "Code 406 - Not Acceptable" msgstr "Code 406 - Not Acceptable" msgid "Code 407 - Proxy Authentication Required" msgstr "Code 407 - Proxy Authentication Required" msgid "Code 408 - Request Timeout" msgstr "Code 408 - Request Timeout" msgid "Code 409 - Conflict" msgstr "Code 409 - Conflict" msgid "Code 410 - Gone" msgstr "Code 410 - Gone" msgid "Code 411 - Length Required" msgstr "Code 411 - Length Required" msgid "Code 412 - Precondition Failed" msgstr "Code 412 - Precondition Failed" msgid "Code 413 - Request Entity Too Large" msgstr "Code 413 - Request Entity Too Large" msgid "Code 414 - Request-URI Too Long" msgstr "Code 414 - Request-URI Too Long" msgid "Code 415 - Unsupported Media Type" msgstr "Code 415 - Unsupported Media Type" msgid "Code 416 - Requested Range Not Satisfiable" msgstr "Code 416 - Requested Range Not Satisfiable" msgid "Code 417 - Expectation Failed" msgstr "Code 417 - Expectation Failed" msgid "Code 500 - Internal Server Error" msgstr "Code 500 - Internal Server Error" msgid "Code 501 - Not Implemented" msgstr "Code 501 - Not Implemented" msgid "Code 502 - Bad Gateway" msgstr "Code 502 - Bad Gateway" msgid "Code 503 - Service Unavailable" msgstr "Code 503 - Service Unavailable" msgid "Code 504 - Gateway Timeout" msgstr "Code 504 - Gateway Timeout" msgid "Code 505 - HTTP Version Not Supported" msgstr "Code 505 - HTTP Version Not Supported" msgid "Colombia" msgstr "Kolumbija" msgid "Comoros" msgstr "Komoros" msgid "Congo" msgstr "Kongo" msgid "Cook Islands" msgstr "Cookovi otoci" msgid "Costa Rica" msgstr "Kostarika" msgid "Cote D'Ivoire (Ivory Coast)" msgstr "Obala bjelokosti" msgid "Countries" msgstr "Zemlje" msgid "Country" msgstr "Zemlja" msgid "Creating output in" msgstr "Creating output in" msgid "Croatia (Hrvatska)" msgstr "Hrvatska" msgid "Cuba" msgstr "Kuba" msgid "Cyprus" msgstr "Cipar" msgid "Czech Republic" msgstr "Ceska republika" msgid "Czechoslovakia (former)" msgstr "Cehoslovacka (bivsa)" msgid "DNS Lookup" msgstr "DNS Lookup" msgid "Daily Avg" msgstr "Dnevni prosjek" msgid "Daily Statistics" msgstr "Dnevna statistika" msgid "Daily Statistics for" msgstr "Dnevna statistika za" msgid "Daily usage for" msgstr "Pristupi po danu za" msgid "Day" msgstr "Dan" msgid "Dec" msgstr "Pro" msgid "December" msgstr "Prosinac" msgid "Denmark" msgstr "Danska" msgid "Djibouti" msgstr "Djibouti" msgid "Dominica" msgstr "Dominica" msgid "Dominican Republic" msgstr "Dominikanska republika" msgid "East Timor" msgstr "Istocni Timor" msgid "Ecuador" msgstr "Ekvador" msgid "Egypt" msgstr "Egipat" msgid "El Salvador" msgstr "Salvador" msgid "English" msgstr "Croatian" msgid "Entry" msgstr "Ulaz" msgid "Equatorial Guinea" msgstr "Ekvatorijalna Gvineja" msgid "Eritrea" msgstr "Eritreja" msgid "Error adding Referrer node, skipping" msgstr "Error adding Referrer node, skipping" msgid "Error adding Search String Node, skipping" msgstr "Error adding Search String Node, skipping" msgid "Error adding URL node, skipping" msgstr "Error adding URL node, skipping" msgid "Error adding User Agent node, skipping" msgstr "Error adding User Agent node, skipping" msgid "Error adding Username node, skipping" msgstr "Error adding Username node, skipping" msgid "Error adding host node (daily), skipping" msgstr "Error adding host node (daily), skipping" msgid "Error adding host node (monthly), skipping" msgstr "Error adding host node (monthly), skipping" msgid "Error: Can't change directory to" msgstr "Error: Can't change directory to" msgid "Error: Can't open log file" msgstr "Error: Can't open log file" msgid "Error: Ignoring invalid history record" msgstr "Error: Ignoring invalid history record" msgid "Error: Skipping oversized log record" msgstr "Error: Skipping oversized log record" msgid "Error: Skipping record (bad date)" msgstr "Error: Skipping record (bad date)" msgid "Error: Unable to lock DNS cache file" msgstr "Error: Unable to lock DNS cache file" msgid "Error: Unable to open DNS cache file" msgstr "Error: Unable to open DNS cache file" msgid "Error: Unable to open configuration file" msgstr "Error: Unable to open configuration file" msgid "Error: Unable to open file" msgstr "Error: Unable to open file" msgid "Error: Unable to restore run data" msgstr "Error: Unable to restore run data" msgid "Error: Unable to save current run data" msgstr "Error: Unable to save current run data" msgid "Error: Unable to write history file" msgstr "Error: Unable to write history file" msgid "Estonia" msgstr "Estonija" msgid "Ethiopia" msgstr "Etiopija" msgid "Exit" msgstr "Izlaz" msgid "Falkland Islands (Malvinas)" msgstr "Falklandski otoci (Malvinas)" msgid "Faroe Islands" msgstr "Faroe otoci" msgid "Feb" msgstr "Vel" msgid "February" msgstr "Veljaca" msgid "Fiji" msgstr "Fidzi" msgid "Files" msgstr "Datoteka" msgid "Files per Day" msgstr "Datoteka na dan" msgid "Finland" msgstr "Finska" msgid "France" msgstr "Francuska" msgid "France; Metropolitan" msgstr "Francuska, Metropolitan" msgid "French Guiana" msgstr "Francuska Guiana" msgid "French Polynesia" msgstr "Francuska Polinezija" msgid "French Southern Territories" msgstr "Francuski juzni teritoriji" msgid "Gabon" msgstr "Gabon" msgid "Gambia" msgstr "Gambia" msgid "Generated" msgstr "Generirano" msgid "Generating report for" msgstr "Generating report for" msgid "Generating summary report" msgstr "Generating summary report" msgid "Georgia" msgstr "Georgia" msgid "Germany" msgstr "Njemacka" msgid "Ghana" msgstr "Gana" msgid "Gibraltar" msgstr "Gibraltar" msgid "Great Britain (UK)" msgstr "Velika Britanija (UK)" msgid "Greece" msgstr "Grcka" msgid "Greenland" msgstr "Grenland" msgid "Grenada" msgstr "Grenada" msgid "Guadeloupe" msgstr "Gvadelopa" msgid "Guam" msgstr "Guam" msgid "Guatemala" msgstr "Gvatemala" msgid "Guinea" msgstr "Gvineja" msgid "Guinea-Bissau" msgstr "Gvinea-Bissau" msgid "Guyana" msgstr "Gvajana" msgid "Haiti" msgstr "Haiti" msgid "Heard and McDonald Islands" msgstr "Heard i McDonald otoci" msgid "History file not found..." msgstr "History file not found..." msgid "Hits" msgstr "Pristupa" msgid "Hits by Response Code" msgstr "Pristupa po kodu" msgid "Hits per Day" msgstr "Pristupa na dan" msgid "Hits per Hour" msgstr "Pristupa na sat" msgid "Honduras" msgstr "Honduras" msgid "Hong Kong" msgstr "Hong Kong" msgid "Hostname" msgstr "Kompjuter" msgid "Hostname for reports is" msgstr "Hostname for reports is" msgid "Hour" msgstr "Sat" msgid "Hourly Statistics" msgstr "Statistika po satu" msgid "Hourly Statistics for" msgstr "Statistika po satu za" msgid "Hourly usage for" msgstr "Pristupi po satu za" msgid "Hungary" msgstr "Madjarska" msgid "Iceland" msgstr "Iceland" msgid "Ignoring previous history..." msgstr "Ignoring previous history..." msgid "India" msgstr "Indija" msgid "Indonesia" msgstr "Indonezija" msgid "International (int)" msgstr "Medjunarodni (int)" msgid "Iran" msgstr "Iran" msgid "Iraq" msgstr "Irak" msgid "Ireland" msgstr "Irska" msgid "Israel" msgstr "Izrael" msgid "Italy" msgstr "Italija" msgid "Jamaica" msgstr "Jamajka" msgid "Jan" msgstr "Sij" msgid "January" msgstr "Sijecanj" msgid "Japan" msgstr "Japan" msgid "Jordan" msgstr "Jordan" msgid "Jul" msgstr "Srp" msgid "July" msgstr "Srpanj" msgid "Jun" msgstr "Lip" msgid "June" msgstr "Lipanj" msgid "KBytes" msgstr "KB" msgid "KBytes per Day" msgstr "KBajta na dan" msgid "Kazakhstan" msgstr "Kazahstan" msgid "Kenya" msgstr "Kenija" msgid "Kiribati" msgstr "Kiribati" msgid "Korea (North)" msgstr "Koreja (Sjeverna)" msgid "Korea (South)" msgstr "Koreja (Juzna)" msgid "Kuwait" msgstr "Kuvajt" msgid "Kyrgyzstan" msgstr "Kirgistan" msgid "Laos" msgstr "Laos" msgid "Last 12 Months" msgstr "Posljednjih 12 mjeseci" msgid "Latvia" msgstr "Latvija" msgid "Lebanon" msgstr "Libanon" msgid "Lesotho" msgstr "Lesoto" msgid "Liberia" msgstr "Liberija" msgid "Libya" msgstr "Libija" msgid "Liechtenstein" msgstr "Lihtenstajn" msgid "Lithuania" msgstr "Litva" msgid "Luxembourg" msgstr "Luksemburg" msgid "Macau" msgstr "Makao" msgid "Macedonia" msgstr "Makedonija" msgid "Madagascar" msgstr "Madagaskar" msgid "Malawi" msgstr "Malawi" msgid "Malaysia" msgstr "Malezija" msgid "Maldives" msgstr "Maldivi" msgid "Mali" msgstr "Mali" msgid "Malta" msgstr "Malta" msgid "Mar" msgstr "Ozu" msgid "March" msgstr "Ozujak" msgid "Marshall Islands" msgstr "Marshall otoci" msgid "Martinique" msgstr "Martinik" msgid "Mauritania" msgstr "Mauritanija" msgid "Mauritius" msgstr "Mauricij" msgid "Max" msgstr "Max" msgid "May" msgstr "Svibanj" msgid "Mayotte" msgstr "Mayotte" msgid "Mexico" msgstr "Meksiko" msgid "Micronesia" msgstr "Mikronezija" msgid "Moldova" msgstr "Moldova" msgid "Monaco" msgstr "Monako" msgid "Mongolia" msgstr "Mongolija" msgid "Month" msgstr "Mjesec" msgid "Monthly Statistics for" msgstr "Mjesecna statistika za" msgid "Monthly Totals" msgstr "Mjesecni zbrojevi" msgid "Montserrat" msgstr "Monserat" msgid "Morocco" msgstr "Maroko" msgid "Mozambique" msgstr "Mozambija" msgid "Myanmar" msgstr "Myanmar" msgid "Namibia" msgstr "Namibija" msgid "Nato field (nato)" msgstr "NATO (nato)" msgid "Nauru" msgstr "Nauru" msgid "Nepal" msgstr "Nepal" msgid "Netherlands" msgstr "Nizozemska" msgid "Netherlands Antilles" msgstr "Nizozemski Antili" msgid "Network" msgstr "Mrezne domene (net)" msgid "Neutral Zone" msgstr "Neutralna zona" msgid "New Caledonia" msgstr "Nova Kaledonija" msgid "New Zealand (Aotearoa)" msgstr "Novi Zeland (Aotearoa)" msgid "Nicaragua" msgstr "Nikaragva" msgid "Niger" msgstr "Niger" msgid "Nigeria" msgstr "Nigerija" msgid "Niue" msgstr "Niue" msgid "No cache file specified, aborting..." msgstr "No cache file specified, aborting..." msgid "No valid records found!" msgstr "No valid records found!" msgid "Non-Profit Organization" msgstr "Organizacije (org)" msgid "None to process" msgstr "None to process" msgid "Norfolk Island" msgstr "Norfolk otok" msgid "Northern Mariana Islands" msgstr "Sjeverni Marijanski otoci" msgid "Norway" msgstr "Norveska" msgid "Nov" msgstr "Stu" msgid "November" msgstr "Studeni" msgid "Oct" msgstr "Lis" msgid "October" msgstr "Listopad" msgid "Old style Arpanet (arpa)" msgstr "Stari Arpanet (arpa)" msgid "Oman" msgstr "Oman" msgid "Other" msgstr "Ostalo" msgid "Pages" msgstr "Stranica" msgid "Pages per Day" msgstr "Datoteka na sat" msgid "Pakistan" msgstr "Pakistan" msgid "Palau" msgstr "Palau" msgid "Panama" msgstr "Panama" msgid "Papua New Guinea" msgstr "Papua Nova Gvineja" msgid "Paraguay" msgstr "Paragvaj" msgid "Peru" msgstr "Peru" msgid "Philippines" msgstr "Filipini" msgid "Pitcairn" msgstr "Pitcairn" msgid "Poland" msgstr "Poljska" msgid "Portugal" msgstr "Portugal" msgid "Previous run data not found..." msgstr "Previous run data not found..." msgid "Puerto Rico" msgstr "Portoriko" msgid "Qatar" msgstr "Qatar" msgid "Reading history file..." msgstr "Reading history file..." msgid "Reading previous run data..." msgstr "Reading previous run data.." msgid "Referrer" msgstr "Referer" msgid "Referrers" msgstr "Referiranja" msgid "Reunion" msgstr "Reunion" msgid "Romania" msgstr "Rumunjska" msgid "Russian Federation" msgstr "Ruska federacija" msgid "Rwanda" msgstr "Ruanda" msgid "S. Georgia and S. Sandwich Isls." msgstr "Juzna Georgia and Juzni Sandwich otoci" msgid "Saint Kitts and Nevis" msgstr "Saint Kitts i Nevis" msgid "Saint Lucia" msgstr "Sveta Lucija" msgid "Saint Vincent and the Grenadines" msgstr "Saint Vincent i Grenadines" msgid "Samoa" msgstr "Samoa" msgid "San Marino" msgstr "San Marino" msgid "Sao Tome and Principe" msgstr "Sao Tome i Principe" msgid "Saudi Arabia" msgstr "Saudijska Arabija" msgid "Saving current run data..." msgstr "Saving current run data..." msgid "Saving history information..." msgstr "Saving history information..." msgid "Search" msgstr "Pretraga" msgid "Search String" msgstr "Tekst pretrazivanja" msgid "Senegal" msgstr "Senegal" msgid "Sep" msgstr "Ruj" msgid "September" msgstr "Rujan" msgid "Seychelles" msgstr "Sejseli" msgid "Sierra Leone" msgstr "Sierra Leone" msgid "Singapore" msgstr "Singapur" msgid "Sites" msgstr "Kompjuteri" msgid "Skipping Netscape header record" msgstr "Skipping Netscape header record" msgid "Skipping bad record" msgstr "Skipping bad record" msgid "Slovak Republic" msgstr "Slovacka republika" msgid "Slovenia" msgstr "Slovenija" msgid "Solomon Islands" msgstr "Solomonski otoci" msgid "Somalia" msgstr "Somalija" msgid "South Africa" msgstr "Juzna Afrika" msgid "Spain" msgstr "Spanjolska" msgid "Sri Lanka" msgstr "Sri Lanka" msgid "St. Helena" msgstr "Sveta Helena" msgid "St. Pierre and Miquelon" msgstr "St. Pierre i Miquelon" msgid "Sudan" msgstr "Sudan" msgid "Summary Period" msgstr "Period zbrajanja" msgid "Summary by Month" msgstr "Pregled po mjesecima" msgid "Suriname" msgstr "Surinam" msgid "Svalbard and Jan Mayen Islands" msgstr "Svalbard i Jan Mayen otoci" msgid "Swaziland" msgstr "Svazilend" msgid "Sweden" msgstr "Svedska" msgid "Switzerland" msgstr "Svicarska" msgid "Syria" msgstr "Sirija" msgid "Taiwan" msgstr "Tajvan" msgid "Tajikistan" msgstr "Tadjikistan" msgid "Tanzania" msgstr "Tanzanija" msgid "Thailand" msgstr "Tajland" msgid "Togo" msgstr "Togo" msgid "Tokelau" msgstr "Tokelau" msgid "Tonga" msgstr "Tonga" msgid "Top" msgstr "Prvih" msgid "Total" msgstr "Ukupno" msgid "Total Countries" msgstr "zemalja" msgid "Total Entry Pages" msgstr "ulaznih stranica" msgid "Total Exit Pages" msgstr "izlaznih stranica" msgid "Total Files" msgstr "Ukupno datoteka" msgid "Total Hits" msgstr "Ukupno pristupa" msgid "Total KBytes" msgstr "Ukupno KBajta" msgid "Total Referrers" msgstr "referiranja" msgid "Total Search Strings" msgstr "tekstova pretrazivanja" msgid "Total Sites" msgstr "kompjutera" msgid "Total URLs" msgstr "URL-ova" msgid "Total Unique Referrers" msgstr "Ukupno razlicitih referiranja" msgid "Total Unique Sites" msgstr "Ukupno razlicitih kompjutera" msgid "Total Unique URLs" msgstr "Ukupno razlicitih URL-ova" msgid "Total Unique User Agents" msgstr "Ukupno razlicitih browsera" msgid "Total Unique Usernames" msgstr "Ukupno razlicitih korisnickih imena" msgid "Total User Agents" msgstr "korisnickih programa" msgid "Total Usernames" msgstr "korisnickih imena" msgid "Totals" msgstr "Ukupno za sve" msgid "Trinidad and Tobago" msgstr "Trinidad i Tobago" msgid "Tunisia" msgstr "Tunizija" msgid "Turkey" msgstr "Turska" msgid "Turkmenistan" msgstr "Turkmenistan" msgid "Turks and Caicos Islands" msgstr "Turks i Caicos otoci" msgid "Tuvalu" msgstr "Tuvalu" msgid "URL" msgstr "URL" msgid "URLs" msgstr "URL-ovi" msgid "US Commercial" msgstr "SAD komercijalni (com)" msgid "US Educational" msgstr "SAD obrazovni (edu)" msgid "US Government" msgstr "SAD vlada (gov)" msgid "US Military" msgstr "SAD vojni (mil)" msgid "US Minor Outlying Islands" msgstr "US Minor Outlying otoci" msgid "USSR (former)" msgstr "SSSR (bivsi)" msgid "Uganda" msgstr "Uganda" msgid "Ukraine" msgstr "Ukrajina" msgid "Undefined response code" msgstr "Undefined response code" msgid "United Arab Emirates" msgstr "Ujedinjeni Arapski Emirati" msgid "United Kingdom" msgstr "Ujedinjeno kraljevstvo (UK)" msgid "United States" msgstr "Sjedinjene americke drzave" msgid "Unresolved/Unknown" msgstr "Nedefinirano/Nepoznato" msgid "Uruguay" msgstr "Urugvaj" msgid "Usage" msgstr "Usage" msgid "Usage Statistics for" msgstr "Statistika pristupa za" msgid "Usage by Country for" msgstr "Pristup po zemljama za" msgid "Usage summary for" msgstr "Pregled pristupa za" msgid "User Agent" msgstr "Korisnicki program" msgid "Username" msgstr "Korisnik" msgid "Users" msgstr "Korisnici" msgid "Using DNS cache file" msgstr "Using DNS cache file" msgid "Using logfile" msgstr "Using logfile" msgid "Uzbekistan" msgstr "Uzbekistan" msgid "Vanuatu" msgstr "Vanuatu" msgid "Vatican City State (Holy See)" msgstr "Vatican City State (Holy See)" msgid "Venezuela" msgstr "Venecuela" msgid "Viet Nam" msgstr "Vijetnam" msgid "View All Referrers" msgstr "Pregled svih referisanja" msgid "View All Search Strings" msgstr "Pregled svih tekstova pretrazivanja" msgid "View All Sites" msgstr "Pregled svih kompjutera" msgid "View All URLs" msgstr "Pregled svih URL-ova" msgid "View All User Agents" msgstr "Pregled svih korisnickih programa" msgid "View All Usernames" msgstr "Pregled svih korisnickih imena" msgid "Virgin Islands (British)" msgstr "Djevicanski otoci (British)" msgid "Virgin Islands (U.S.)" msgstr "Djevicanski otoci (U.S.)" msgid "Visits" msgstr "Posjeta" msgid "Visits per Day" msgstr "Posjeta na dan" msgid "Wallis and Futuna Islands" msgstr "Wallis i Futuna otoci" msgid "Warning: Invalid keyword" msgstr "Warning: Invalid keyword" msgid "Warning: Possible duplicate data found" msgstr "Warning: Possible duplicate data found" msgid "Warning: String exceeds storage size" msgstr "Warning: String exceeds storage size" msgid "Warning: Truncating oversized date field" msgstr "Warning: Truncating oversized date field" msgid "Warning: Truncating oversized hostname" msgstr "Warning: Truncating oversized hostname" msgid "Warning: Truncating oversized referrer field" msgstr "Warning: Truncating oversized referrer field" msgid "Warning: Truncating oversized request field" msgstr "Warning: Truncating oversized request field" msgid "Warning: Truncating oversized username" msgstr "Warning: Truncating oversized username" msgid "Western Sahara" msgstr "Zapadna Sahara" msgid "Yemen" msgstr "Jemen" msgid "Yugoslavia" msgstr "Jugoslavija" msgid "Zaire" msgstr "Zair" msgid "Zambia" msgstr "Zambija" msgid "Zimbabwe" msgstr "Zimbabve" msgid "[options] [log file]" msgstr "[options] [log file]" msgid "addresses" msgstr "addresses" msgid "bad" msgstr "bad" msgid "current directory" msgstr "current directory" msgid "ignored" msgstr "ignored" msgid "in" msgstr "in" msgid "of" msgstr "od" msgid "records" msgstr "records" msgid "seconds" msgstr "seconds" webdruid-0.5.4.orig/po/ja.po0000644000000000000000000006272510066113350015601 0ustar rootroot00000000000000msgid "" msgstr "" "Project-Id-Version: 1.0\n" "PO-Revision-Date: 2003-05-25 23:29+0200\n" "Last-Translator: Johan Poirier \n" "Language-Team: French \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=ISO-8859-1\n" "Content-Transfer-Encoding: 8bit" msgid "-A num = Display num top agents" msgstr "-A num = Display num top agents" msgid "-C num = Display num top countries" msgstr "-C num = Display num top countries" msgid "-D name = Use DNS Cache file 'name'" msgstr "-D name = Use DNS Cache file 'name'" msgid "-E num = Display num top Exit Pages" msgstr "-E num = Display num top Exit Pages" msgid "-F type = Log type. type= (clf | ftp | squid)" msgstr "-F type = Log type. type= (clf | ftp | squid)" msgid "-G = supress hourly graph" msgstr "-G = supress hourly graph" msgid "-H = supress hourly stats" msgstr "-H = supress hourly stats" msgid "-I name = Index alias 'name'" msgstr "-I name = Index alias 'name'" msgid "-L = supress color coded graph legends" msgstr "-L = supress color coded graph legends" msgid "-N num = Number of DNS processes (0=disable)" msgstr "-N num = Number of DNS processes (0=disable)" msgid "-P name = Page type extension 'name'" msgstr "-P name = Page type extension 'name'" msgid "-Q = supress _ALL_ messages" msgstr "-Q = supress _ALL_ messages" msgid "-R num = Display num top referrers" msgstr "-R num = Display num top referrers" msgid "-S num = Display num top sites" msgstr "-S num = Display num top sites" msgid "-T = print timing information" msgstr "-T = print timing information" msgid "-U num = Display num top URLs" msgstr "-U num = Display num top URLs" msgid "-X = Hide individual sites" msgstr "-X = Hide individual sites" msgid "-Y = supress country graph" msgstr "-Y = supress country graph" msgid "-a name = hide user agent 'name'" msgstr "-a name = hide user agent 'name'" msgid "-c file = use configuration file 'file'" msgstr "-c file = use configuration file 'file'" msgid "-d = print additional debug info" msgstr "-d = print additional debug info" msgid "-e num = Display num top Entry Pages" msgstr "-e num = Display num top Entry Pages" msgid "-f = Fold sequence errors" msgstr "-f = Fold sequence errors" msgid "-g num = Group Domains to 'num' levels" msgstr "-g num = Group Domains to 'num' levels" msgid "-h = print this help message" msgstr "-h = print this help message" msgid "-i = ignore history file" msgstr "-i = ignore history file" msgid "-l num = use num background lines on graph" msgstr "-l num = use num background lines on graph" msgid "-m num = Visit timout value (seconds)" msgstr "-m num = Visit timout value (seconds)" msgid "-n name = hostname to use" msgstr "-n name = hostname to use" msgid "-o dir = output directory to use" msgstr "-o dir = output directory to use" msgid "-p = preserve state (incremental)" msgstr "-p = preserve state (incremental)" msgid "-q = supress informational messages" msgstr "-q = supress informational messages" msgid "-r name = hide referrer 'name'" msgstr "-r name = hide referrer 'name'" msgid "-s name = hide site 'name'" msgstr "-s name = hide site 'name'" msgid "-t name = report title 'name'" msgstr "-t name = report title 'name'" msgid "-u name = hide URL 'name'" msgstr "-u name = hide URL 'name'" msgid "-v -V = print version information" msgstr "-v -V = print version information" msgid "-x name = Use filename extension 'name'" msgstr "-x name = Use filename extension 'name'" msgid "Afghanistan" msgstr "Afghanistan" msgid "Agents" msgstr "" msgid "Albania" msgstr "Albania" msgid "Algeria" msgstr "Algeria" msgid "American Samoa" msgstr "American Samoa" msgid "Andorra" msgstr "Andorra" msgid "Angola" msgstr "Angola" msgid "Anguilla" msgstr "Anguilla" msgid "Antarctica" msgstr "Antarctica" msgid "Antigua and Barbuda" msgstr "Antigua and Barbuda" msgid "Apr" msgstr "Apr" msgid "April" msgstr "April" msgid "Argentina" msgstr "Argentina" msgid "Armenia" msgstr "Armenia" msgid "Aruba" msgstr "Aruba" msgid "Aug" msgstr "Aug" msgid "August" msgstr "August" msgid "Australia" msgstr "Australia" msgid "Austria" msgstr "Austria" msgid "Avg" msgstr "ʿ" msgid "Azerbaijan" msgstr "Azerbaijan" msgid "Bahamas" msgstr "Bahamas" msgid "Bahrain" msgstr "Bahrain" msgid "Bangladesh" msgstr "Bangladesh" msgid "Barbados" msgstr "Barbados" msgid "Belarus" msgstr "Belarus" msgid "Belgium" msgstr "Belgium" msgid "Belize" msgstr "Belize" msgid "Benin" msgstr "Benin" msgid "Bermuda" msgstr "Bermuda" msgid "Bhutan" msgstr "Bhutan" msgid "Bolivia" msgstr "Bolivia" msgid "Bosnia and Herzegovina" msgstr "Bosnia and Herzegovina" msgid "Botswana" msgstr "Botswana" msgid "Bouvet Island" msgstr "Bouvet Island" msgid "Brazil" msgstr "Brazil" msgid "British Indian Ocean Territory" msgstr "British Indian Ocean Territory" msgid "Brunei Darussalam" msgstr "Brunei Darussalam" msgid "Bulgaria" msgstr "Bulgaria" msgid "Burkina Faso" msgstr "Burkina Faso" msgid "Burundi" msgstr "Burundi" msgid "By" msgstr "By" msgid "Cambodia" msgstr "Cambodia" msgid "Cameroon" msgstr "Cameroon" msgid "Can't allocate enough memory, Top Countries disabled!" msgstr "Can't allocate enough memory, Top Countries disabled!" msgid "Can't allocate enough memory, Top Referrers disabled!" msgstr "Can't allocate enough memory, Top Referrers disabled!" msgid "Can't allocate enough memory, Top Search Strings disabled!" msgstr "Can't allocate enough memory, Top Search Strings disabled!" msgid "Can't allocate enough memory, Top Sites disabled!" msgstr "Can't allocate enough memory, Top Sites disabled!" msgid "Can't allocate enough memory, Top URLs disabled!" msgstr "Can't allocate enough memory, Top URLs disabled!" msgid "Can't allocate enough memory, Top User Agents disabled!" msgstr "Can't allocate enough memory, Top User Agents disabled!" msgid "Can't allocate enough memory, Top Usernames disabled!" msgstr "Can't allocate enough memory, Top Usernames disabled!" msgid "Canada" msgstr "Canada" msgid "Cape Verde" msgstr "Cape Verde" msgid "Cayman Islands" msgstr "Cayman Islands" msgid "Central African Republic" msgstr "Central African Republic" msgid "Chad" msgstr "Chad" msgid "Chile" msgstr "Chile" msgid "China" msgstr "China" msgid "Christmas Island" msgstr "Christmas Island" msgid "Cocos (Keeling) Islands" msgstr "Cocos (Keeling) Islands" msgid "Code 100 - Continue" msgstr "Code 100 - Continue" msgid "Code 101 - Switching Protocols" msgstr "Code 101 - Switching Protocols" msgid "Code 200 - OK" msgstr "Code 200 - OK" msgid "Code 201 - Created" msgstr "Code 201 - Created" msgid "Code 202 - Accepted" msgstr "Code 202 - Accepted" msgid "Code 203 - Non-Authoritative Information" msgstr "Code 203 - Non-Authoritative Information" msgid "Code 204 - No Content" msgstr "Code 204 - No Content" msgid "Code 205 - Reset Content" msgstr "Code 205 - Reset Content" msgid "Code 206 - Partial Content" msgstr "Code 206 - Partial Content" msgid "Code 300 - Multiple Choices" msgstr "Code 300 - Multiple Choices" msgid "Code 301 - Moved Permanently" msgstr "Code 301 - Moved Permanently" msgid "Code 302 - Found" msgstr "Code 302 - Found" msgid "Code 303 - See Other" msgstr "Code 303 - See Other" msgid "Code 304 - Not Modified" msgstr "Code 304 - Not Modified" msgid "Code 305 - Use Proxy" msgstr "Code 305 - Use Proxy" msgid "Code 307 - Moved Temporarily" msgstr "Code 307 - Moved Temporarily" msgid "Code 400 - Bad Request" msgstr "Code 400 - Bad Request" msgid "Code 401 - Unauthorized" msgstr "Code 401 - Unauthorized" msgid "Code 402 - Payment Required" msgstr "Code 402 - Payment Required" msgid "Code 403 - Forbidden" msgstr "Code 403 - Forbidden" msgid "Code 404 - Not Found" msgstr "Code 404 - Not Found" msgid "Code 405 - Method Not Allowed" msgstr "Code 405 - Method Not Allowed" msgid "Code 406 - Not Acceptable" msgstr "Code 406 - Not Acceptable" msgid "Code 407 - Proxy Authentication Required" msgstr "Code 407 - Proxy Authentication Required" msgid "Code 408 - Request Timeout" msgstr "Code 408 - Request Timeout" msgid "Code 409 - Conflict" msgstr "Code 409 - Conflict" msgid "Code 410 - Gone" msgstr "Code 410 - Gone" msgid "Code 411 - Length Required" msgstr "Code 411 - Length Required" msgid "Code 412 - Precondition Failed" msgstr "Code 412 - Precondition Failed" msgid "Code 413 - Request Entity Too Large" msgstr "Code 413 - Request Entity Too Large" msgid "Code 414 - Request-URI Too Long" msgstr "Code 414 - Request-URI Too Long" msgid "Code 415 - Unsupported Media Type" msgstr "Code 415 - Unsupported Media Type" msgid "Code 416 - Requested Range Not Satisfiable" msgstr "Code 416 - Requested Range Not Satisfiable" msgid "Code 417 - Expectation Failed" msgstr "Code 417 - Expectation Failed" msgid "Code 500 - Internal Server Error" msgstr "Code 500 - Internal Server Error" msgid "Code 501 - Not Implemented" msgstr "Code 501 - Not Implemented" msgid "Code 502 - Bad Gateway" msgstr "Code 502 - Bad Gateway" msgid "Code 503 - Service Unavailable" msgstr "Code 503 - Service Unavailable" msgid "Code 504 - Gateway Timeout" msgstr "Code 504 - Gateway Timeout" msgid "Code 505 - HTTP Version Not Supported" msgstr "Code 505 - HTTP Version Not Supported" msgid "Colombia" msgstr "Colombia" msgid "Comoros" msgstr "Comoros" msgid "Congo" msgstr "Congo" msgid "Cook Islands" msgstr "Cook Islands" msgid "Costa Rica" msgstr "Costa Rica" msgid "Cote D'Ivoire (Ivory Coast)" msgstr "Cote D'Ivoire (Ivory Coast)" msgid "Countries" msgstr "" msgid "Country" msgstr "" msgid "Creating output in" msgstr "Creating output in" msgid "Croatia (Hrvatska)" msgstr "Croatia (Hrvatska)" msgid "Cuba" msgstr "Cuba" msgid "Cyprus" msgstr "Cyprus" msgid "Czech Republic" msgstr "Czech Republic" msgid "Czechoslovakia (former)" msgstr "Czechoslovakia (former)" msgid "DNS Lookup" msgstr "DNS Lookup" msgid "Daily Avg" msgstr "ʿ" msgid "Daily Statistics" msgstr "Ȥ" msgid "Daily Statistics for" msgstr "Ȥ" msgid "Daily usage for" msgstr "Daily usage for" msgid "Day" msgstr "" msgid "Dec" msgstr "Dec" msgid "December" msgstr "December" msgid "Denmark" msgstr "Denmark" msgid "Djibouti" msgstr "Djibouti" msgid "Dominica" msgstr "Dominica" msgid "Dominican Republic" msgstr "Dominican Republic" msgid "East Timor" msgstr "East Timor" msgid "Ecuador" msgstr "Ecuador" msgid "Egypt" msgstr "Egypt" msgid "El Salvador" msgstr "El Salvador" msgid "English" msgstr "Japanese" msgid "Entry" msgstr "ȥ꡼" msgid "Equatorial Guinea" msgstr "Equatorial Guinea" msgid "Eritrea" msgstr "Eritrea" msgid "Error adding Referrer node, skipping" msgstr "Error adding Referrer node, skipping" msgid "Error adding Search String Node, skipping" msgstr "Error adding Search String Node, skipping" msgid "Error adding URL node, skipping" msgstr "Error adding URL node, skipping" msgid "Error adding User Agent node, skipping" msgstr "Error adding User Agent node, skipping" msgid "Error adding Username node, skipping" msgstr "Error adding Username node, skipping" msgid "Error adding host node (daily), skipping" msgstr "Error adding host node (daily), skipping" msgid "Error adding host node (monthly), skipping" msgstr "Error adding host node (monthly), skipping" msgid "Error: Can't change directory to" msgstr "Error: Can't change directory to" msgid "Error: Can't open log file" msgstr "Error: Can't open log file" msgid "Error: Ignoring invalid history record" msgstr "Error: Ignoring invalid history record" msgid "Error: Skipping oversized log record" msgstr "Error: Skipping oversized log record" msgid "Error: Skipping record (bad date)" msgstr "Error: Skipping record (bad date)" msgid "Error: Unable to lock DNS cache file" msgstr "Error: Unable to lock DNS cache file" msgid "Error: Unable to open DNS cache file" msgstr "Error: Unable to open DNS cache file" msgid "Error: Unable to open configuration file" msgstr "Error: Unable to open configuration file" msgid "Error: Unable to open file" msgstr "Error: Unable to open file" msgid "Error: Unable to restore run data" msgstr "Error: Unable to restore run data" msgid "Error: Unable to save current run data" msgstr "Error: Unable to save current run data" msgid "Error: Unable to write history file" msgstr "Error: Unable to write history file" msgid "Estonia" msgstr "Estonia" msgid "Ethiopia" msgstr "Ethiopia" msgid "Exit" msgstr "Exit" msgid "Falkland Islands (Malvinas)" msgstr "Falkland Islands (Malvinas)" msgid "Faroe Islands" msgstr "Faroe Islands" msgid "Feb" msgstr "Feb" msgid "February" msgstr "February" msgid "Fiji" msgstr "Fiji" msgid "Files" msgstr "Files" msgid "Files per Day" msgstr "Υե" msgid "Finland" msgstr "Finland" msgid "France" msgstr "France" msgid "France; Metropolitan" msgstr "France, Metropolitan" msgid "French Guiana" msgstr "French Guiana" msgid "French Polynesia" msgstr "French Polynesia" msgid "French Southern Territories" msgstr "French Southern Territories" msgid "Gabon" msgstr "Gabon" msgid "Gambia" msgstr "Gambia" msgid "Generated" msgstr "" msgid "Generating report for" msgstr "Generating report for" msgid "Generating summary report" msgstr "Generating summary report" msgid "Georgia" msgstr "Georgia" msgid "Germany" msgstr "Germany" msgid "Ghana" msgstr "Ghana" msgid "Gibraltar" msgstr "Gibraltar" msgid "Great Britain (UK)" msgstr "Great Britain (UK)" msgid "Greece" msgstr "Greece" msgid "Greenland" msgstr "Greenland" msgid "Grenada" msgstr "Grenada" msgid "Guadeloupe" msgstr "Guadeloupe" msgid "Guam" msgstr "Guam" msgid "Guatemala" msgstr "Guatemala" msgid "Guinea" msgstr "Guinea" msgid "Guinea-Bissau" msgstr "Guinea-Bissau" msgid "Guyana" msgstr "Guyana" msgid "Haiti" msgstr "Haiti" msgid "Heard and McDonald Islands" msgstr "Heard and McDonald Islands" msgid "History file not found..." msgstr "History file not found..." msgid "Hits" msgstr "Hits" msgid "Hits by Response Code" msgstr "쥹ݥ󥹥ɤȤΥҥåȿ" msgid "Hits per Day" msgstr "Υҥåȿ" msgid "Hits per Hour" msgstr "֤Υҥåȿ" msgid "Honduras" msgstr "Honduras" msgid "Hong Kong" msgstr "Hong Kong" msgid "Hostname" msgstr "ۥ̾" msgid "Hostname for reports is" msgstr "Hostname for reports is" msgid "Hour" msgstr "" msgid "Hourly Statistics" msgstr "֤Ȥ" msgid "Hourly Statistics for" msgstr "֤Ȥ" msgid "Hourly usage for" msgstr "Hourly usage for" msgid "Hungary" msgstr "Hungary" msgid "Iceland" msgstr "Iceland" msgid "Ignoring previous history..." msgstr "Ignoring previous history..." msgid "India" msgstr "India" msgid "Indonesia" msgstr "Indonesia" msgid "International (int)" msgstr "International (int)" msgid "Iran" msgstr "Iran" msgid "Iraq" msgstr "Iraq" msgid "Ireland" msgstr "Ireland" msgid "Israel" msgstr "Israel" msgid "Italy" msgstr "Italy" msgid "Jamaica" msgstr "Jamaica" msgid "Jan" msgstr "Jan" msgid "January" msgstr "January" msgid "Japan" msgstr "Japan" msgid "Jordan" msgstr "Jordan" msgid "Jul" msgstr "Jul" msgid "July" msgstr "July" msgid "Jun" msgstr "Jun" msgid "June" msgstr "June" msgid "KBytes" msgstr "KBytes" msgid "KBytes per Day" msgstr "KBytes" msgid "Kazakhstan" msgstr "Kazakhstan" msgid "Kenya" msgstr "Kenya" msgid "Kiribati" msgstr "Kiribati" msgid "Korea (North)" msgstr "Korea (North)" msgid "Korea (South)" msgstr "Korea (South)" msgid "Kuwait" msgstr "Kuwait" msgid "Kyrgyzstan" msgstr "Kyrgyzstan" msgid "Laos" msgstr "Laos" msgid "Last 12 Months" msgstr "12" msgid "Latvia" msgstr "Latvia" msgid "Lebanon" msgstr "Lebanon" msgid "Lesotho" msgstr "Lesotho" msgid "Liberia" msgstr "Liberia" msgid "Libya" msgstr "Libya" msgid "Liechtenstein" msgstr "Liechtenstein" msgid "Lithuania" msgstr "Lithuania" msgid "Luxembourg" msgstr "Luxembourg" msgid "Macau" msgstr "Macau" msgid "Macedonia" msgstr "Macedonia" msgid "Madagascar" msgstr "Madagascar" msgid "Malawi" msgstr "Malawi" msgid "Malaysia" msgstr "Malaysia" msgid "Maldives" msgstr "Maldives" msgid "Mali" msgstr "Mali" msgid "Malta" msgstr "Malta" msgid "Mar" msgstr "Mar" msgid "March" msgstr "March" msgid "Marshall Islands" msgstr "Marshall Islands" msgid "Martinique" msgstr "Martinique" msgid "Mauritania" msgstr "Mauritania" msgid "Mauritius" msgstr "Mauritius" msgid "Max" msgstr "" msgid "May" msgstr "May" msgid "Mayotte" msgstr "Mayotte" msgid "Mexico" msgstr "Mexico" msgid "Micronesia" msgstr "Micronesia" msgid "Moldova" msgstr "Moldova" msgid "Monaco" msgstr "Monaco" msgid "Mongolia" msgstr "Mongolia" msgid "Month" msgstr "" msgid "Monthly Statistics for" msgstr "" msgid "Monthly Totals" msgstr "" msgid "Montserrat" msgstr "Montserrat" msgid "Morocco" msgstr "Morocco" msgid "Mozambique" msgstr "Mozambique" msgid "Myanmar" msgstr "Myanmar" msgid "Namibia" msgstr "Namibia" msgid "Nato field (nato)" msgstr "Nato field (nato)" msgid "Nauru" msgstr "Nauru" msgid "Nepal" msgstr "Nepal" msgid "Netherlands" msgstr "Netherlands" msgid "Netherlands Antilles" msgstr "Netherlands Antilles" msgid "Network" msgstr "Network" msgid "Neutral Zone" msgstr "Neutral Zone" msgid "New Caledonia" msgstr "New Caledonia" msgid "New Zealand (Aotearoa)" msgstr "New Zealand (Aotearoa)" msgid "Nicaragua" msgstr "Nicaragua" msgid "Niger" msgstr "Niger" msgid "Nigeria" msgstr "Nigeria" msgid "Niue" msgstr "Niue" msgid "No cache file specified, aborting..." msgstr "No cache file specified, aborting..." msgid "No valid records found!" msgstr "No valid records found!" msgid "Non-Profit Organization" msgstr "Non-Profit Organization" msgid "None to process" msgstr "None to process" msgid "Norfolk Island" msgstr "Norfolk Island" msgid "Northern Mariana Islands" msgstr "Northern Mariana Islands" msgid "Norway" msgstr "Norway" msgid "Nov" msgstr "Nov" msgid "November" msgstr "November" msgid "Oct" msgstr "Oct" msgid "October" msgstr "October" msgid "Old style Arpanet (arpa)" msgstr "Old style Arpanet (arpa)" msgid "Oman" msgstr "Oman" msgid "Other" msgstr "Other" msgid "Pages" msgstr "Pages" msgid "Pages per Day" msgstr "Υڡ" msgid "Pakistan" msgstr "Pakistan" msgid "Palau" msgstr "Palau" msgid "Panama" msgstr "Panama" msgid "Papua New Guinea" msgstr "Papua New Guinea" msgid "Paraguay" msgstr "Paraguay" msgid "Peru" msgstr "Peru" msgid "Philippines" msgstr "Philippines" msgid "Pitcairn" msgstr "Pitcairn" msgid "Poland" msgstr "Poland" msgid "Portugal" msgstr "Portugal" msgid "Previous run data not found..." msgstr "Previous run data not found..." msgid "Puerto Rico" msgstr "Puerto Rico" msgid "Qatar" msgstr "Qatar" msgid "Reading history file..." msgstr "Reading history file..." msgid "Reading previous run data..." msgstr "Reading previous run data.." msgid "Referrer" msgstr "ե顼" msgid "Referrers" msgstr "ե顼" msgid "Reunion" msgstr "Reunion" msgid "Romania" msgstr "Romania" msgid "Russian Federation" msgstr "Russian Federation" msgid "Rwanda" msgstr "Rwanda" msgid "S. Georgia and S. Sandwich Isls." msgstr "S. Georgia and S. Sandwich Isls." msgid "Saint Kitts and Nevis" msgstr "Saint Kitts and Nevis" msgid "Saint Lucia" msgstr "Saint Lucia" msgid "Saint Vincent and the Grenadines" msgstr "Saint Vincent and the Grenadines" msgid "Samoa" msgstr "Samoa" msgid "San Marino" msgstr "San Marino" msgid "Sao Tome and Principe" msgstr "Sao Tome and Principe" msgid "Saudi Arabia" msgstr "Saudi Arabia" msgid "Saving current run data..." msgstr "Saving current run data..." msgid "Saving history information..." msgstr "Saving history information..." msgid "Search" msgstr "ʸ" msgid "Search String" msgstr "ʸ" msgid "Senegal" msgstr "Senegal" msgid "Sep" msgstr "Sep" msgid "September" msgstr "September" msgid "Seychelles" msgstr "Seychelles" msgid "Sierra Leone" msgstr "Sierra Leone" msgid "Singapore" msgstr "Singapore" msgid "Sites" msgstr "" msgid "Skipping Netscape header record" msgstr "Skipping Netscape header record" msgid "Skipping bad record" msgstr "Skipping bad record" msgid "Slovak Republic" msgstr "Slovak Republic" msgid "Slovenia" msgstr "Slovenia" msgid "Solomon Islands" msgstr "Solomon Islands" msgid "Somalia" msgstr "Somalia" msgid "South Africa" msgstr "South Africa" msgid "Spain" msgstr "Spain" msgid "Sri Lanka" msgstr "Sri Lanka" msgid "St. Helena" msgstr "St. Helena" msgid "St. Pierre and Miquelon" msgstr "St. Pierre and Miquelon" msgid "Sudan" msgstr "Sudan" msgid "Summary Period" msgstr "״" msgid "Summary by Month" msgstr "" msgid "Suriname" msgstr "Suriname" msgid "Svalbard and Jan Mayen Islands" msgstr "Svalbard and Jan Mayen Islands" msgid "Swaziland" msgstr "Swaziland" msgid "Sweden" msgstr "Sweden" msgid "Switzerland" msgstr "Switzerland" msgid "Syria" msgstr "Syria" msgid "Taiwan" msgstr "Taiwan" msgid "Tajikistan" msgstr "Tajikistan" msgid "Tanzania" msgstr "Tanzania" msgid "Thailand" msgstr "Thailand" msgid "Togo" msgstr "Togo" msgid "Tokelau" msgstr "Tokelau" msgid "Tonga" msgstr "Tonga" msgid "Top" msgstr "ȥå" msgid "Total" msgstr "" msgid "Total Countries" msgstr "" msgid "Total Entry Pages" msgstr "Total Entry Pages" msgid "Total Exit Pages" msgstr "Total Exit Pages" msgid "Total Files" msgstr "ե" msgid "Total Hits" msgstr "ҥåȿ" msgid "Total KBytes" msgstr " KBytes" msgid "Total Referrers" msgstr "ե顼" msgid "Total Search Strings" msgstr "Total Search Strings" msgid "Total Sites" msgstr "" msgid "Total URLs" msgstr "URL" msgid "Total Unique Referrers" msgstr "̥ե顼" msgid "Total Unique Sites" msgstr "̥ȿ" msgid "Total Unique URLs" msgstr "URL" msgid "Total Unique User Agents" msgstr "̥桼ȿ" msgid "Total Unique Usernames" msgstr "̥桼" msgid "Total User Agents" msgstr "桼" msgid "Total Usernames" msgstr "Total Usernames" msgid "Totals" msgstr "" msgid "Trinidad and Tobago" msgstr "Trinidad and Tobago" msgid "Tunisia" msgstr "Tunisia" msgid "Turkey" msgstr "Turkey" msgid "Turkmenistan" msgstr "Turkmenistan" msgid "Turks and Caicos Islands" msgstr "Turks and Caicos Islands" msgid "Tuvalu" msgstr "Tuvalu" msgid "URL" msgstr "URL" msgid "URLs" msgstr "URL" msgid "US Commercial" msgstr "US Commercial" msgid "US Educational" msgstr "US Educational" msgid "US Government" msgstr "US Government" msgid "US Military" msgstr "US Military" msgid "US Minor Outlying Islands" msgstr "US Minor Outlying Islands" msgid "USSR (former)" msgstr "USSR (former)" msgid "Uganda" msgstr "Uganda" msgid "Ukraine" msgstr "Ukraine" msgid "Undefined response code" msgstr "Undefined response code" msgid "United Arab Emirates" msgstr "United Arab Emirates" msgid "United Kingdom" msgstr "United Kingdom" msgid "United States" msgstr "United States" msgid "Unresolved/Unknown" msgstr "Unresolved/Unknown" msgid "Uruguay" msgstr "Uruguay" msgid "Usage" msgstr "Usage" msgid "Usage Statistics for" msgstr "" msgid "Usage by Country for" msgstr "Usage by Country for" msgid "Usage summary for" msgstr "Usage summary for" msgid "User Agent" msgstr "桼" msgid "Username" msgstr "桼̾" msgid "Users" msgstr "桼" msgid "Using DNS cache file" msgstr "Using DNS cache file" msgid "Using logfile" msgstr "Using logfile" msgid "Uzbekistan" msgstr "Uzbekistan" msgid "Vanuatu" msgstr "Vanuatu" msgid "Vatican City State (Holy See)" msgstr "Vatican City State (Holy See)" msgid "Venezuela" msgstr "Venezuela" msgid "Viet Nam" msgstr "Viet Nam" msgid "View All Referrers" msgstr "View All Referrers" msgid "View All Search Strings" msgstr "View All Search Strings" msgid "View All Sites" msgstr "View All Sites" msgid "View All URLs" msgstr "View All URLs" msgid "View All User Agents" msgstr "View All User Agents" msgid "View All Usernames" msgstr "View All Usernames" msgid "Virgin Islands (British)" msgstr "Virgin Islands (British)" msgid "Virgin Islands (U.S.)" msgstr "Virgin Islands (U.S.)" msgid "Visits" msgstr "Visits" msgid "Visits per Day" msgstr "ˬԿ" msgid "Wallis and Futuna Islands" msgstr "Wallis and Futuna Islands" msgid "Warning: Invalid keyword" msgstr "Warning: Invalid keyword" msgid "Warning: Possible duplicate data found" msgstr "Warning: Possible duplicate data found" msgid "Warning: String exceeds storage size" msgstr "Warning: String exceeds storage size" msgid "Warning: Truncating oversized date field" msgstr "Warning: Truncating oversized date field" msgid "Warning: Truncating oversized hostname" msgstr "Warning: Truncating oversized hostname" msgid "Warning: Truncating oversized referrer field" msgstr "Warning: Truncating oversized referrer field" msgid "Warning: Truncating oversized request field" msgstr "Warning: Truncating oversized request field" msgid "Warning: Truncating oversized username" msgstr "Warning: Truncating oversized username" msgid "Western Sahara" msgstr "Western Sahara" msgid "Yemen" msgstr "Yemen" msgid "Yugoslavia" msgstr "Yugoslavia" msgid "Zaire" msgstr "Zaire" msgid "Zambia" msgstr "Zambia" msgid "Zimbabwe" msgstr "Zimbabwe" msgid "[options] [log file]" msgstr "[options] [log file]" msgid "addresses" msgstr "addresses" msgid "bad" msgstr "bad" msgid "current directory" msgstr "current directory" msgid "ignored" msgstr "ignored" msgid "in" msgstr "in" msgid "of" msgstr "of" msgid "records" msgstr "records" msgid "seconds" msgstr "seconds" webdruid-0.5.4.orig/po/uk.po0000644000000000000000000006605310066113350015624 0ustar rootroot00000000000000msgid "" msgstr "" "Project-Id-Version: 1.0\n" "PO-Revision-Date: 2003-05-25 23:29+0200\n" "Last-Translator: Johan Poirier \n" "Language-Team: French \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=ISO-8859-1\n" "Content-Transfer-Encoding: 8bit" msgid "-A num = Display num top agents" msgstr "-A num = Display num top agents" msgid "-C num = Display num top countries" msgstr "-C num = Display num top countries" msgid "-D name = Use DNS Cache file 'name'" msgstr "-D name = Use DNS Cache file 'name'" msgid "-E num = Display num top Exit Pages" msgstr "-E num = Display num top Exit Pages" msgid "-F type = Log type. type= (clf | ftp | squid)" msgstr "-F type = Log type. type= (clf | ftp | squid)" msgid "-G = supress hourly graph" msgstr "-G = supress hourly graph" msgid "-H = supress hourly stats" msgstr "-H = supress hourly stats" msgid "-I name = Index alias 'name'" msgstr "-I name = Index alias 'name'" msgid "-L = supress color coded graph legends" msgstr "-L = supress color coded graph legends" msgid "-N num = Number of DNS processes (0=disable)" msgstr "-N num = Number of DNS processes (0=disable)" msgid "-P name = Page type extension 'name'" msgstr "-P name = Page type extension 'name'" msgid "-Q = supress _ALL_ messages" msgstr "-Q = supress _ALL_ messages" msgid "-R num = Display num top referrers" msgstr "-R num = Display num top referrers" msgid "-S num = Display num top sites" msgstr "-S num = Display num top sites" msgid "-T = print timing information" msgstr "-T = print timing information" msgid "-U num = Display num top URLs" msgstr "-U num = Display num top URLs" msgid "-X = Hide individual sites" msgstr "-X = Hide individual sites" msgid "-Y = supress country graph" msgstr "-Y = supress country graph" msgid "-a name = hide user agent 'name'" msgstr "-a name = hide user agent 'name'" msgid "-c file = use configuration file 'file'" msgstr "-c file = use configuration file 'file'" msgid "-d = print additional debug info" msgstr "-d = print additional debug info" msgid "-e num = Display num top Entry Pages" msgstr "-e num = Display num top Entry Pages" msgid "-f = Fold sequence errors" msgstr "-f = Fold sequence errors" msgid "-g num = Group Domains to 'num' levels" msgstr "-g num = Group Domains to 'num' levels" msgid "-h = print this help message" msgstr "-h = print this help message" msgid "-i = ignore history file" msgstr "-i = ignore history file" msgid "-l num = use num background lines on graph" msgstr "-l num = use num background lines on graph" msgid "-m num = Visit timout value (seconds)" msgstr "-m num = Visit timout value (seconds)" msgid "-n name = hostname to use" msgstr "-n name = hostname to use" msgid "-o dir = output directory to use" msgstr "-o dir = output directory to use" msgid "-p = preserve state (incremental)" msgstr "-p = preserve state (incremental)" msgid "-q = supress informational messages" msgstr "-q = supress informational messages" msgid "-r name = hide referrer 'name'" msgstr "-r name = hide referrer 'name'" msgid "-s name = hide site 'name'" msgstr "-s name = hide site 'name'" msgid "-t name = report title 'name'" msgstr "-t name = report title 'name'" msgid "-u name = hide URL 'name'" msgstr "-u name = hide URL 'name'" msgid "-v -V = print version information" msgstr "-v -V = print version information" msgid "-x name = Use filename extension 'name'" msgstr "-x name = Use filename extension 'name'" msgid "Afghanistan" msgstr "Φ (af)" msgid "Agents" msgstr " " msgid "Albania" msgstr "Φ (al)" msgid "Algeria" msgstr "Ҧ (dz)" msgid "American Samoa" msgstr " (as)" msgid "Andorra" msgstr " (ad)" msgid "Angola" msgstr " (ao)" msgid "Anguilla" msgstr "Ǧ (ai)" msgid "Antarctica" msgstr " (aq)" msgid "Antigua and Barbuda" msgstr "ҦΦ (ag)" msgid "Apr" msgstr "צ" msgid "April" msgstr "צ" msgid "Argentina" msgstr " (ar)" msgid "Armenia" msgstr "Φ (am)" msgid "Aruba" msgstr " (aw)" msgid "Aug" msgstr "" msgid "August" msgstr "" msgid "Australia" msgstr "̦ (au)" msgid "Austria" msgstr "Ҧ (at)" msgid "Avg" msgstr "." msgid "Azerbaijan" msgstr " (az)" msgid "Bahamas" msgstr " (bs)" msgid "Bahrain" msgstr " (bh)" msgid "Bangladesh" msgstr " (bd)" msgid "Barbados" msgstr " (bb)" msgid "Belarus" msgstr " (by)" msgid "Belgium" msgstr "Ǧ (be)" msgid "Belize" msgstr "̦ (bz)" msgid "Benin" msgstr "Φ (bj)" msgid "Bermuda" msgstr " (bm)" msgid "Bhutan" msgstr " (bt)" msgid "Bolivia" msgstr "̦צ (bo)" msgid "Bosnia and Herzegovina" msgstr "Φ (ba)" msgid "Botswana" msgstr " (bw)" msgid "Bouvet Island" msgstr "Ҧ (bv)" msgid "Brazil" msgstr "̦ (br)" msgid "British Indian Ocean Territory" msgstr "˦ . Ħ Φ (io)" msgid "Brunei Darussalam" msgstr " (bn)" msgid "Bulgaria" msgstr "Ҧ (bg)" msgid "Burkina Faso" msgstr "˦ (bf)" msgid "Burundi" msgstr "Ħ (bi)" msgid "By" msgstr "" msgid "Cambodia" msgstr " (kh)" msgid "Cameroon" msgstr " (cm)" msgid "Can't allocate enough memory, Top Countries disabled!" msgstr "Can't allocate enough memory, Top Countries disabled!" msgid "Can't allocate enough memory, Top Referrers disabled!" msgstr "Can't allocate enough memory, Top Referrers disabled!" msgid "Can't allocate enough memory, Top Search Strings disabled!" msgstr "Can't allocate enough memory, Top Search Strings disabled!" msgid "Can't allocate enough memory, Top Sites disabled!" msgstr "Can't allocate enough memory, Top Sites disabled!" msgid "Can't allocate enough memory, Top URLs disabled!" msgstr "Can't allocate enough memory, Top URLs disabled!" msgid "Can't allocate enough memory, Top User Agents disabled!" msgstr "Can't allocate enough memory, Top User Agents disabled!" msgid "Can't allocate enough memory, Top Usernames disabled!" msgstr "Can't allocate enough memory, Top Usernames disabled!" msgid "Canada" msgstr " (ca)" msgid "Cape Verde" msgstr " (cv)" msgid "Cayman Islands" msgstr "˦ (ky)" msgid "Central African Republic" msgstr " ̦ (cf)" msgid "Chad" msgstr " (td)" msgid "Chile" msgstr "̦ (cl)" msgid "China" msgstr " (cn)" msgid "Christmas Island" msgstr "Ҧ (cx)" msgid "Cocos (Keeling) Islands" msgstr "צ (cc)" msgid "Code 100 - Continue" msgstr "Code 100 - Continue" msgid "Code 101 - Switching Protocols" msgstr "Code 101 - Switching Protocols" msgid "Code 200 - OK" msgstr "Code 200 - OK" msgid "Code 201 - Created" msgstr "Code 201 - Created" msgid "Code 202 - Accepted" msgstr "Code 202 - Accepted" msgid "Code 203 - Non-Authoritative Information" msgstr "Code 203 - Non-Authoritative Information" msgid "Code 204 - No Content" msgstr "Code 204 - No Content" msgid "Code 205 - Reset Content" msgstr "Code 205 - Reset Content" msgid "Code 206 - Partial Content" msgstr "Code 206 - Partial Content" msgid "Code 300 - Multiple Choices" msgstr "Code 300 - Multiple Choices" msgid "Code 301 - Moved Permanently" msgstr "Code 301 - Moved Permanently" msgid "Code 302 - Found" msgstr "Code 302 - Found" msgid "Code 303 - See Other" msgstr "Code 303 - See Other" msgid "Code 304 - Not Modified" msgstr "Code 304 - Not Modified" msgid "Code 305 - Use Proxy" msgstr "Code 305 - Use Proxy" msgid "Code 307 - Moved Temporarily" msgstr "Code 307 - Moved Temporarily" msgid "Code 400 - Bad Request" msgstr "Code 400 - Bad Request" msgid "Code 401 - Unauthorized" msgstr "Code 401 - Unauthorized" msgid "Code 402 - Payment Required" msgstr "Code 402 - Payment Required" msgid "Code 403 - Forbidden" msgstr "Code 403 - Forbidden" msgid "Code 404 - Not Found" msgstr "Code 404 - Not Found" msgid "Code 405 - Method Not Allowed" msgstr "Code 405 - Method Not Allowed" msgid "Code 406 - Not Acceptable" msgstr "Code 406 - Not Acceptable" msgid "Code 407 - Proxy Authentication Required" msgstr "Code 407 - Proxy Authentication Required" msgid "Code 408 - Request Timeout" msgstr "Code 408 - Request Timeout" msgid "Code 409 - Conflict" msgstr "Code 409 - Conflict" msgid "Code 410 - Gone" msgstr "Code 410 - Gone" msgid "Code 411 - Length Required" msgstr "Code 411 - Length Required" msgid "Code 412 - Precondition Failed" msgstr "Code 412 - Precondition Failed" msgid "Code 413 - Request Entity Too Large" msgstr "Code 413 - Request Entity Too Large" msgid "Code 414 - Request-URI Too Long" msgstr "Code 414 - Request-URI Too Long" msgid "Code 415 - Unsupported Media Type" msgstr "Code 415 - Unsupported Media Type" msgid "Code 416 - Requested Range Not Satisfiable" msgstr "Code 416 - Requested Range Not Satisfiable" msgid "Code 417 - Expectation Failed" msgstr "Code 417 - Expectation Failed" msgid "Code 500 - Internal Server Error" msgstr "Code 500 - Internal Server Error" msgid "Code 501 - Not Implemented" msgstr "Code 501 - Not Implemented" msgid "Code 502 - Bad Gateway" msgstr "Code 502 - Bad Gateway" msgid "Code 503 - Service Unavailable" msgstr "Code 503 - Service Unavailable" msgid "Code 504 - Gateway Timeout" msgstr "Code 504 - Gateway Timeout" msgid "Code 505 - HTTP Version Not Supported" msgstr "Code 505 - HTTP Version Not Supported" msgid "Colombia" msgstr "¦ (co)" msgid "Comoros" msgstr "˦ (km)" msgid "Congo" msgstr " (cg)" msgid "Cook Islands" msgstr " (cg)" msgid "Costa Rica" msgstr " (cr)" msgid "Cote D'Ivoire (Ivory Coast)" msgstr " Ҧ (ci)" msgid "Countries" msgstr "" msgid "Country" msgstr "" msgid "Creating output in" msgstr "Creating output in" msgid "Croatia (Hrvatska)" msgstr "Ԧ (hr)" msgid "Cuba" msgstr " (cu)" msgid "Cyprus" msgstr " (cy)" msgid "Czech Republic" msgstr " ̦ (cz)" msgid "Czechoslovakia (former)" msgstr " (, cs)" msgid "DNS Lookup" msgstr "DNS Lookup" msgid "Daily Avg" msgstr " " msgid "Daily Statistics" msgstr " " msgid "Daily Statistics for" msgstr " " msgid "Daily usage for" msgstr " " msgid "Day" msgstr "" msgid "Dec" msgstr "" msgid "December" msgstr "" msgid "Denmark" msgstr "Φ (dk)" msgid "Djibouti" msgstr "Ԧ (dj)" msgid "Dominica" msgstr "ͦΦ (dm)" msgid "Dominican Republic" msgstr "ͦΦ ̦ (do)" msgid "East Timor" msgstr "Ȧ (tp)" msgid "Ecuador" msgstr " (ec)" msgid "Egypt" msgstr " (eg)" msgid "El Salvador" msgstr " (sv)" msgid "English" msgstr "Ukrainian" msgid "Entry" msgstr "צ Ҧ" msgid "Equatorial Guinea" msgstr "Ҧ צ (gq)" msgid "Eritrea" msgstr "Ҧ (er)" msgid "Error adding Referrer node, skipping" msgstr "Error adding Referrer node, skipping" msgid "Error adding Search String Node, skipping" msgstr "Error adding Search String Node, skipping" msgid "Error adding URL node, skipping" msgstr "Error adding URL node, skipping" msgid "Error adding User Agent node, skipping" msgstr "Error adding User Agent node, skipping" msgid "Error adding Username node, skipping" msgstr "Error adding Username node, skipping" msgid "Error adding host node (daily), skipping" msgstr "Error adding host node (daily), skipping" msgid "Error adding host node (monthly), skipping" msgstr "Error adding host node (monthly), skipping" msgid "Error: Can't change directory to" msgstr "Error: Can't change directory to" msgid "Error: Can't open log file" msgstr "Error: Can't open log file" msgid "Error: Ignoring invalid history record" msgstr "Error: Ignoring invalid history record" msgid "Error: Skipping oversized log record" msgstr "Error: Skipping oversized log record" msgid "Error: Skipping record (bad date)" msgstr "Error: Skipping record (bad date)" msgid "Error: Unable to lock DNS cache file" msgstr "Error: Unable to lock DNS cache file" msgid "Error: Unable to open DNS cache file" msgstr "Error: Unable to open DNS cache file" msgid "Error: Unable to open configuration file" msgstr "Error: Unable to open configuration file" msgid "Error: Unable to open file" msgstr "Error: Unable to open file" msgid "Error: Unable to restore run data" msgstr "Error: Unable to restore run data" msgid "Error: Unable to save current run data" msgstr "Error: Unable to save current run data" msgid "Error: Unable to write history file" msgstr "Error: Unable to write history file" msgid "Estonia" msgstr "Φ (ee)" msgid "Ethiopia" msgstr "ƦЦ (et)" msgid "Exit" msgstr "צ Ҧ" msgid "Falkland Islands (Malvinas)" msgstr "˦ (fk)" msgid "Faroe Islands" msgstr "˦ (fo)" msgid "Feb" msgstr "" msgid "February" msgstr "" msgid "Fiji" msgstr "֦ (fj)" msgid "Files" msgstr "̦" msgid "Files per Day" msgstr "̦ " msgid "Finland" msgstr "AĦ (fi)" msgid "France" msgstr "æ (fr)" msgid "France; Metropolitan" msgstr "æ (̦, fx)" msgid "French Guiana" msgstr " (gf)" msgid "French Polynesia" msgstr " ̦ڦ (pf)" msgid "French Southern Territories" msgstr "Φ ˦ Ҧ (tf)" msgid "Gabon" msgstr " (ga)" msgid "Gambia" msgstr "¦ (gm)" msgid "Generated" msgstr "" msgid "Generating report for" msgstr "Generating report for" msgid "Generating summary report" msgstr "Generating summary report" msgid "Georgia" msgstr "ڦ (ge)" msgid "Germany" msgstr " (de)" msgid "Ghana" msgstr " (gh)" msgid "Gibraltar" msgstr " (gi)" msgid "Great Britain (UK)" msgstr "Φ (gb)" msgid "Greece" msgstr "æ (gr)" msgid "Greenland" msgstr "Ħ (gl)" msgid "Grenada" msgstr " (gd)" msgid "Guadeloupe" msgstr " (gp)" msgid "Guam" msgstr " (gu)" msgid "Guatemala" msgstr " (gt)" msgid "Guinea" msgstr "צ (gn)" msgid "Guinea-Bissau" msgstr "צ- (gw)" msgid "Guyana" msgstr " (gy)" msgid "Haiti" msgstr "Ԧ (ht)" msgid "Heard and McDonald Islands" msgstr " (hm)" msgid "History file not found..." msgstr "History file not found..." msgid "Hits" msgstr "Ԧ" msgid "Hits by Response Code" msgstr " צצĦ" msgid "Hits per Day" msgstr " " msgid "Hits per Hour" msgstr " " msgid "Honduras" msgstr " (hn)" msgid "Hong Kong" msgstr " (hk)" msgid "Hostname" msgstr "' " msgid "Hostname for reports is" msgstr "Hostname for reports is" msgid "Hour" msgstr "" msgid "Hourly Statistics" msgstr " " msgid "Hourly Statistics for" msgstr " " msgid "Hourly usage for" msgstr " " msgid "Hungary" msgstr "Φ (hu)" msgid "Iceland" msgstr "Ħ (is)" msgid "Ignoring previous history..." msgstr "Ignoring previous history..." msgid "India" msgstr "Ħ (in)" msgid "Indonesia" msgstr "ڦ (id)" msgid "International (int)" msgstr "æΦ (int)" msgid "Iran" msgstr " (ir)" msgid "Iraq" msgstr " (iq)" msgid "Ireland" msgstr "Ħ (ie)" msgid "Israel" msgstr " (il)" msgid "Italy" msgstr "̦ (it)" msgid "Jamaica" msgstr " (jm)" msgid "Jan" msgstr "" msgid "January" msgstr "" msgid "Japan" msgstr "Φ (jp)" msgid "Jordan" msgstr " (jo)" msgid "Jul" msgstr "" msgid "July" msgstr "" msgid "Jun" msgstr "" msgid "June" msgstr "" msgid "KBytes" msgstr "" msgid "KBytes per Day" msgstr "K " msgid "Kazakhstan" msgstr " (kz)" msgid "Kenya" msgstr "Φ (ke)" msgid "Kiribati" msgstr "ҦԦ (ki)" msgid "Korea (North)" msgstr " (Φ) (kp)" msgid "Korea (South)" msgstr " () (kr)" msgid "Kuwait" msgstr " (kw)" msgid "Kyrgyzstan" msgstr " (kg)" msgid "Laos" msgstr " (la)" msgid "Last 12 Months" msgstr "Φ 12 ͦæ" msgid "Latvia" msgstr "צ (lv)" msgid "Lebanon" msgstr " (lb)" msgid "Lesotho" msgstr " (ls)" msgid "Liberia" msgstr "Ҧ (lr)" msgid "Libya" msgstr "צ (ly)" msgid "Liechtenstein" msgstr " (li)" msgid "Lithuania" msgstr " (lt)" msgid "Luxembourg" msgstr " (lu)" msgid "Macau" msgstr " (mo)" msgid "Macedonia" msgstr "Φ (mk)" msgid "Madagascar" msgstr " (mg)" msgid "Malawi" msgstr "צ (mw)" msgid "Malaysia" msgstr "ڦ (my)" msgid "Maldives" msgstr "Ħ ̦ (mv)" msgid "Mali" msgstr "̦ (ml)" msgid "Malta" msgstr " (mt)" msgid "Mar" msgstr "" msgid "March" msgstr "" msgid "Marshall Islands" msgstr "צ (mh)" msgid "Martinique" msgstr "ԦΦ (mq)" msgid "Mauritania" msgstr "Φ (mr)" msgid "Mauritius" msgstr "Φ (mu)" msgid "Max" msgstr "." msgid "May" msgstr "" msgid "Mayotte" msgstr "Ҧ (yt)" msgid "Mexico" msgstr " (mx)" msgid "Micronesia" msgstr "ڦ (fm)" msgid "Moldova" msgstr " (md)" msgid "Monaco" msgstr " (mc)" msgid "Mongolia" msgstr "̦ (mn)" msgid "Month" msgstr "ͦ" msgid "Monthly Statistics for" msgstr " " msgid "Monthly Totals" msgstr " ͦ" msgid "Montserrat" msgstr " (ms)" msgid "Morocco" msgstr " (ma)" msgid "Mozambique" msgstr "¦ (mz)" msgid "Myanmar" msgstr " (mm)" msgid "Namibia" msgstr "ͦ¦ (na)" msgid "Nato field (nato)" msgstr " Nato (nato)" msgid "Nauru" msgstr " (nr)" msgid "Nepal" msgstr " (np)" msgid "Netherlands" msgstr " (nl)" msgid "Netherlands Antilles" msgstr "˦ ˦ (an)" msgid "Network" msgstr "צ (net)" msgid "Neutral Zone" msgstr " (nt)" msgid "New Caledonia" msgstr " Φ (nc)" msgid "New Zealand (Aotearoa)" msgstr " Ħ (nz)" msgid "Nicaragua" msgstr " (ni)" msgid "Niger" msgstr " (ne)" msgid "Nigeria" msgstr "Ҧ (ng)" msgid "Niue" msgstr " (nu)" msgid "No cache file specified, aborting..." msgstr "No cache file specified, aborting..." msgid "No valid records found!" msgstr "No valid records found!" msgid "Non-Profit Organization" msgstr "æΦ Φæ (org)" msgid "None to process" msgstr "None to process" msgid "Norfolk Island" msgstr "Ҧ (nf)" msgid "Northern Mariana Islands" msgstr "ΦΦ Ҧ˦ (mp)" msgid "Norway" msgstr "Ǧ (no)" msgid "Nov" msgstr "" msgid "November" msgstr "" msgid "Oct" msgstr "" msgid "October" msgstr "" msgid "Old style Arpanet (arpa)" msgstr "Arpanet (arpa)" msgid "Oman" msgstr " (om)" msgid "Other" msgstr "ۦ" msgid "Pages" msgstr "." msgid "Pages per Day" msgstr "Ҧ " msgid "Pakistan" msgstr "˦ (pk)" msgid "Palau" msgstr " (pw)" msgid "Panama" msgstr " (pa)" msgid "Papua New Guinea" msgstr " צ (pg)" msgid "Paraguay" msgstr " (py)" msgid "Peru" msgstr " (pr)" msgid "Philippines" msgstr "̦Ц (ph)" msgid "Pitcairn" msgstr " (pn)" msgid "Poland" msgstr " (pl)" msgid "Portugal" msgstr "̦ (pt)" msgid "Previous run data not found..." msgstr "Previous run data not found..." msgid "Puerto Rico" msgstr " (pr)" msgid "Qatar" msgstr " (qa)" msgid "Reading history file..." msgstr "Reading history file..." msgid "Reading previous run data..." msgstr "Reading previous run data.." msgid "Referrer" msgstr "" msgid "Referrers" msgstr "" msgid "Reunion" msgstr "Ҧ (re)" msgid "Romania" msgstr "Φ (po)" msgid "Russian Federation" msgstr "Ӧ æ (ru)" msgid "Rwanda" msgstr " (rw)" msgid "S. Georgia and S. Sandwich Isls." msgstr ". Ǧ . צ (gs)" msgid "Saint Kitts and Nevis" msgstr " . צ (kn)" msgid "Saint Lucia" msgstr " ަ (lc)" msgid "Saint Vincent and the Grenadines" msgstr " . Ħ (vc)" msgid "Samoa" msgstr " (ws)" msgid "San Marino" msgstr " Ҧ (sm)" msgid "Sao Tome and Principe" msgstr " צ (st)" msgid "Saudi Arabia" msgstr "Ħ צ (sa)" msgid "Saving current run data..." msgstr "Saving current run data..." msgid "Saving history information..." msgstr "Saving history information..." msgid "Search" msgstr "" msgid "Search String" msgstr "Ҧ " msgid "Senegal" msgstr " (sn)" msgid "Sep" msgstr "" msgid "September" msgstr "" msgid "Seychelles" msgstr "˦ (sc)" msgid "Sierra Leone" msgstr " (sl)" msgid "Singapore" msgstr " (sg)" msgid "Sites" msgstr "" msgid "Skipping Netscape header record" msgstr "Skipping Netscape header record" msgid "Skipping bad record" msgstr "Skipping bad record" msgid "Slovak Republic" msgstr "̦ ˦ (sk)" msgid "Slovenia" msgstr "Φ (si)" msgid "Solomon Islands" msgstr "צ (sb)" msgid "Somalia" msgstr "̦ (so)" msgid "South Africa" msgstr " (za)" msgid "Spain" msgstr "Φ (es)" msgid "Sri Lanka" msgstr "Ҧ (lk)" msgid "St. Helena" msgstr "Ҧ . (sh)" msgid "St. Pierre and Miquelon" msgstr "Ҧ . (pm)" msgid "Sudan" msgstr " (sd)" msgid "Summary Period" msgstr "Ҧ " msgid "Summary by Month" msgstr "ͦ Ц" msgid "Suriname" msgstr "Ҧ (sr)" msgid "Svalbard and Jan Mayen Islands" msgstr " - (sj)" msgid "Swaziland" msgstr "ڦ (sz)" msgid "Sweden" msgstr "æ (se)" msgid "Switzerland" msgstr "Ҧ (ch)" msgid "Syria" msgstr "Ҧ (sy)" msgid "Taiwan" msgstr " (tw)" msgid "Tajikistan" msgstr " (tj)" msgid "Tanzania" msgstr "Φ (tz)" msgid "Thailand" msgstr " (th)" msgid "Togo" msgstr " (tg)" msgid "Tokelau" msgstr " (tk)" msgid "Tonga" msgstr " (to)" msgid "Top" msgstr "ۦ" msgid "Total" msgstr "" msgid "Total Countries" msgstr "" msgid "Total Entry Pages" msgstr " Ҧ" msgid "Total Exit Pages" msgstr "˦ Ҧ" msgid "Total Files" msgstr " ̦" msgid "Total Hits" msgstr " Ԧ" msgid "Total KBytes" msgstr " " msgid "Total Referrers" msgstr "" msgid "Total Search Strings" msgstr "Ҧ " msgid "Total Sites" msgstr "Ԧ" msgid "Total URLs" msgstr "URL'" msgid "Total Unique Referrers" msgstr " Φ " msgid "Total Unique Sites" msgstr " Φ Ԧ" msgid "Total Unique URLs" msgstr " Φ URL'" msgid "Total Unique User Agents" msgstr " Φ Ԧ " msgid "Total Unique Usernames" msgstr " Φ " msgid "Total User Agents" msgstr "Ԧ " msgid "Total Usernames" msgstr " " msgid "Totals" msgstr "" msgid "Trinidad and Tobago" msgstr "̦ ҦΦ (tt)" msgid "Tunisia" msgstr "Φ (tn)" msgid "Turkey" msgstr " (tr)" msgid "Turkmenistan" msgstr " (tm)" msgid "Turks and Caicos Islands" msgstr " (tc)" msgid "Tuvalu" msgstr " (tv)" msgid "URL" msgstr "URL" msgid "URLs" msgstr "URL'" msgid "US Commercial" msgstr "æΦ (com)" msgid "US Educational" msgstr "צΦ (edu)" msgid "US Government" msgstr "צ (gov)" msgid "US Military" msgstr "צ (mil)" msgid "US Minor Outlying Islands" msgstr "̦ ΦΦ (um)" msgid "USSR (former)" msgstr " (Φ, su)" msgid "Uganda" msgstr " (ug)" msgid "Ukraine" msgstr " (ua)" msgid "Undefined response code" msgstr "צ צצĦ" msgid "United Arab Emirates" msgstr "'Φ ˦ ͦ (ae)" msgid "United Kingdom" msgstr "Φ (uk)" msgid "United States" msgstr "CΦ (us)" msgid "Unresolved/Unknown" msgstr "'Φ/צͦ" msgid "Uruguay" msgstr " (uy)" msgid "Usage" msgstr "Usage" msgid "Usage Statistics for" msgstr " צצ" msgid "Usage by Country for" msgstr "C " msgid "Usage summary for" msgstr " " msgid "User Agent" msgstr " " msgid "Username" msgstr "' " msgid "Users" msgstr "ަ" msgid "Using DNS cache file" msgstr "Using DNS cache file" msgid "Using logfile" msgstr "Using logfile" msgid "Uzbekistan" msgstr "E (uz)" msgid "Vanuatu" msgstr " (vu)" msgid "Vatican City State (Holy See)" msgstr "Ԧ (va)" msgid "Venezuela" msgstr " (ve)" msgid "Viet Nam" msgstr "' (vn)" msgid "View All Referrers" msgstr " Ӧ " msgid "View All Search Strings" msgstr " Ӧ cҦ " msgid "View All Sites" msgstr " Ӧ " msgid "View All URLs" msgstr " Ӧ URL'" msgid "View All User Agents" msgstr " Ӧ " msgid "View All Usernames" msgstr " Ӧ ަ" msgid "Virgin Islands (British)" msgstr "˦ (˦, vg)" msgid "Virgin Islands (U.S.)" msgstr "˦ (, vi)" msgid "Visits" msgstr "צצ." msgid "Visits per Day" msgstr "צ " msgid "Wallis and Futuna Islands" msgstr " ̦ (wf)" msgid "Warning: Invalid keyword" msgstr "Warning: Invalid keyword" msgid "Warning: Possible duplicate data found" msgstr "Warning: Possible duplicate data found" msgid "Warning: String exceeds storage size" msgstr "Warning: String exceeds storage size" msgid "Warning: Truncating oversized date field" msgstr "Warning: Truncating oversized date field" msgid "Warning: Truncating oversized hostname" msgstr "Warning: Truncating oversized hostname" msgid "Warning: Truncating oversized referrer field" msgstr "Warning: Truncating oversized referrer field" msgid "Warning: Truncating oversized request field" msgstr "Warning: Truncating oversized request field" msgid "Warning: Truncating oversized username" msgstr "Warning: Truncating oversized username" msgid "Western Sahara" msgstr "Ȧ (eh)" msgid "Yemen" msgstr " (ye)" msgid "Yugoslavia" msgstr "צ (, yu)" msgid "Zaire" msgstr " (zr)" msgid "Zambia" msgstr "¦ (zm)" msgid "Zimbabwe" msgstr " (zw)" msgid "[options] [log file]" msgstr "[options] [log file]" msgid "addresses" msgstr "addresses" msgid "bad" msgstr "bad" msgid "current directory" msgstr "current directory" msgid "ignored" msgstr "ignored" msgid "in" msgstr "in" msgid "of" msgstr "" msgid "records" msgstr "records" msgid "seconds" msgstr "seconds" webdruid-0.5.4.orig/po/el.po0000644000000000000000000006315010066113350015600 0ustar rootroot00000000000000msgid "" msgstr "" "Project-Id-Version: 1.0\n" "PO-Revision-Date: 2003-05-25 23:29+0200\n" "Last-Translator: Johan Poirier \n" "Language-Team: French \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=ISO-8859-1\n" "Content-Transfer-Encoding: 8bit" msgid "-A num = Display num top agents" msgstr "-A num = Display num top agents" msgid "-C num = Display num top countries" msgstr "-C num = Display num top countries" msgid "-D name = Use DNS Cache file 'name'" msgstr "-D name = Use DNS Cache file 'name'" msgid "-E num = Display num top Exit Pages" msgstr "-E num = Display num top Exit Pages" msgid "-F type = Log type. type= (clf | ftp | squid)" msgstr "-F = Use FTP log format" msgid "-G = supress hourly graph" msgstr "-G = supress hourly graph" msgid "-H = supress hourly stats" msgstr "-H = supress hourly stats" msgid "-I name = Index alias 'name'" msgstr "-I name = Index alias 'name'" msgid "-L = supress color coded graph legends" msgstr "-L = supress color coded graph legends" msgid "-N num = Number of DNS processes (0=disable)" msgstr "-N num = Number of DNS processes (0=disable)" msgid "-P name = Page type extension 'name'" msgstr "-P name = Page type extension 'name'" msgid "-Q = supress _ALL_ messages" msgstr "-Q = supress _ALL_ messages" msgid "-R num = Display num top referrers" msgstr "-R num = Display num top referrers" msgid "-S num = Display num top sites" msgstr "-S num = Display num top sites" msgid "-T = print timing information" msgstr "-T = print timing information" msgid "-U num = Display num top URLs" msgstr "-U num = Display num top URLs" msgid "-X = Hide individual sites" msgstr "-X = Hide individual sites" msgid "-Y = supress country graph" msgstr "-Y = supress country graph" msgid "-a name = hide user agent 'name'" msgstr "-a name = hide user agent 'name'" msgid "-c file = use configuration file 'file'" msgstr "-c file = use configuration file 'file'" msgid "-d = print additional debug info" msgstr "-d = print additional debug info" msgid "-e num = Display num top Entry Pages" msgstr "-e num = Display num top Entry Pages" msgid "-f = Fold sequence errors" msgstr "-f = Fold sequence errors" msgid "-g num = Group Domains to 'num' levels" msgstr "-g num = Group Domains to 'num' levels" msgid "-h = print this help message" msgstr "-h = print this help message" msgid "-i = ignore history file" msgstr "-i = ignore history file" msgid "-l num = use num background lines on graph" msgstr "-l num = use num background lines on graph" msgid "-m num = Visit timout value (seconds)" msgstr "-m num = Visit timout value (seconds)" msgid "-n name = hostname to use" msgstr "-n name = hostname to use" msgid "-o dir = output directory to use" msgstr "-o dir = output directory to use" msgid "-p = preserve state (incremental)" msgstr "-p = preserve state (incremental)" msgid "-q = supress informational messages" msgstr "-q = supress informational messages" msgid "-r name = hide referrer 'name'" msgstr "-r name = hide referrer 'name'" msgid "-s name = hide site 'name'" msgstr "-s name = hide site 'name'" msgid "-t name = report title 'name'" msgstr "-t name = report title 'name'" msgid "-u name = hide URL 'name'" msgstr "-u name = hide URL 'name'" msgid "-v -V = print version information" msgstr "-v -V = print version information" msgid "-x name = Use filename extension 'name'" msgstr "-x name = Use filename extension 'name'" msgid "Afghanistan" msgstr "" msgid "Agents" msgstr "" msgid "Albania" msgstr "" msgid "Algeria" msgstr "" msgid "American Samoa" msgstr " " msgid "Andorra" msgstr "" msgid "Angola" msgstr "" msgid "Anguilla" msgstr "" msgid "Antarctica" msgstr "" msgid "Antigua and Barbuda" msgstr " " msgid "Apr" msgstr "" msgid "April" msgstr "" msgid "Argentina" msgstr "" msgid "Armenia" msgstr "" msgid "Aruba" msgstr "" msgid "Aug" msgstr "" msgid "August" msgstr "" msgid "Australia" msgstr "" msgid "Austria" msgstr "" msgid "Avg" msgstr "" msgid "Azerbaijan" msgstr "" msgid "Bahamas" msgstr "" msgid "Bahrain" msgstr "" msgid "Bangladesh" msgstr "" msgid "Barbados" msgstr "" msgid "Belarus" msgstr "" msgid "Belgium" msgstr "" msgid "Belize" msgstr "" msgid "Benin" msgstr "" msgid "Bermuda" msgstr "" msgid "Bhutan" msgstr "" msgid "Bolivia" msgstr "" msgid "Bosnia and Herzegovina" msgstr " " msgid "Botswana" msgstr "" msgid "Bouvet Island" msgstr "" msgid "Brazil" msgstr "" msgid "British Indian Ocean Territory" msgstr " " msgid "Brunei Darussalam" msgstr " " msgid "Bulgaria" msgstr "" msgid "Burkina Faso" msgstr " " msgid "Burundi" msgstr "" msgid "By" msgstr "" msgid "Cambodia" msgstr "" msgid "Cameroon" msgstr "" msgid "Can't allocate enough memory, Top Countries disabled!" msgstr "Can't allocate enough memory, Top Countries disabled!" msgid "Can't allocate enough memory, Top Referrers disabled!" msgstr "Can't allocate enough memory, Top Referrers disabled!" msgid "Can't allocate enough memory, Top Search Strings disabled!" msgstr "Can't allocate enough memory, Top Search Strings disabled!" msgid "Can't allocate enough memory, Top Sites disabled!" msgstr "Can't allocate enough memory, Top Sites disabled!" msgid "Can't allocate enough memory, Top URLs disabled!" msgstr "Can't allocate enough memory, Top URLs disabled!" msgid "Can't allocate enough memory, Top User Agents disabled!" msgstr "Can't allocate enough memory, Top User Agents disabled!" msgid "Can't allocate enough memory, Top Usernames disabled!" msgstr "Can't allocate enough memory, Top Usernames disabled!" msgid "Canada" msgstr "" msgid "Cape Verde" msgstr " " msgid "Cayman Islands" msgstr " " msgid "Central African Republic" msgstr " " msgid "Chad" msgstr "" msgid "Chile" msgstr "" msgid "China" msgstr "" msgid "Christmas Island" msgstr " " msgid "Cocos (Keeling) Islands" msgstr " " msgid "Code 100 - Continue" msgstr "Code 100 - Continue" msgid "Code 101 - Switching Protocols" msgstr "Code 101 - Switching Protocols" msgid "Code 200 - OK" msgstr "Code 200 - OK" msgid "Code 201 - Created" msgstr "Code 201 - Created" msgid "Code 202 - Accepted" msgstr "Code 202 - Accepted" msgid "Code 203 - Non-Authoritative Information" msgstr "Code 203 - Non-Authoritative Information" msgid "Code 204 - No Content" msgstr "Code 204 - No Content" msgid "Code 205 - Reset Content" msgstr "Code 205 - Reset Content" msgid "Code 206 - Partial Content" msgstr "Code 206 - Partial Content" msgid "Code 300 - Multiple Choices" msgstr "Code 300 - Multiple Choices" msgid "Code 301 - Moved Permanently" msgstr "Code 301 - Moved Permanently" msgid "Code 302 - Found" msgstr "Code 302 - Found" msgid "Code 303 - See Other" msgstr "Code 303 - See Other" msgid "Code 304 - Not Modified" msgstr "Code 304 - Not Modified" msgid "Code 305 - Use Proxy" msgstr "Code 305 - Use Proxy" msgid "Code 307 - Moved Temporarily" msgstr "Code 307 - Moved Temporarily" msgid "Code 400 - Bad Request" msgstr "Code 400 - Bad Request" msgid "Code 401 - Unauthorized" msgstr "Code 401 - Unauthorized" msgid "Code 402 - Payment Required" msgstr "Code 402 - Payment Required" msgid "Code 403 - Forbidden" msgstr "Code 403 - Forbidden" msgid "Code 404 - Not Found" msgstr "Code 404 - Not Found" msgid "Code 405 - Method Not Allowed" msgstr "Code 405 - Method Not Allowed" msgid "Code 406 - Not Acceptable" msgstr "Code 406 - Not Acceptable" msgid "Code 407 - Proxy Authentication Required" msgstr "Code 407 - Proxy Authentication Required" msgid "Code 408 - Request Timeout" msgstr "Code 408 - Request Timeout" msgid "Code 409 - Conflict" msgstr "Code 409 - Conflict" msgid "Code 410 - Gone" msgstr "Code 410 - Gone" msgid "Code 411 - Length Required" msgstr "Code 411 - Length Required" msgid "Code 412 - Precondition Failed" msgstr "Code 412 - Precondition Failed" msgid "Code 413 - Request Entity Too Large" msgstr "Code 413 - Request Entity Too Large" msgid "Code 414 - Request-URI Too Long" msgstr "Code 414 - Request-URI Too Long" msgid "Code 415 - Unsupported Media Type" msgstr "Code 415 - Unsupported Media Type" msgid "Code 416 - Requested Range Not Satisfiable" msgstr "Code 416 - Requested Range Not Satisfiable" msgid "Code 417 - Expectation Failed" msgstr "Code 417 - Expectation Failed" msgid "Code 500 - Internal Server Error" msgstr "Code 500 - Internal Server Error" msgid "Code 501 - Not Implemented" msgstr "Code 501 - Not Implemented" msgid "Code 502 - Bad Gateway" msgstr "Code 502 - Bad Gateway" msgid "Code 503 - Service Unavailable" msgstr "Code 503 - Service Unavailable" msgid "Code 504 - Gateway Timeout" msgstr "Code 504 - Gateway Timeout" msgid "Code 505 - HTTP Version Not Supported" msgstr "Code 505 - HTTP Version Not Supported" msgid "Colombia" msgstr "" msgid "Comoros" msgstr "" msgid "Congo" msgstr "" msgid "Cook Islands" msgstr " " msgid "Costa Rica" msgstr " " msgid "Cote D'Ivoire (Ivory Coast)" msgstr " " msgid "Countries" msgstr "" msgid "Country" msgstr "" msgid "Creating output in" msgstr "Creating output in" msgid "Croatia (Hrvatska)" msgstr "" msgid "Cuba" msgstr "" msgid "Cyprus" msgstr "" msgid "Czech Republic" msgstr "" msgid "Czechoslovakia (former)" msgstr " ()" msgid "DNS Lookup" msgstr "DNS Lookup" msgid "Daily Avg" msgstr " " msgid "Daily Statistics" msgstr " " msgid "Daily Statistics for" msgstr " -" msgid "Daily usage for" msgstr " : " msgid "Day" msgstr "" msgid "Dec" msgstr "" msgid "December" msgstr "" msgid "Denmark" msgstr "" msgid "Djibouti" msgstr "" msgid "Dominica" msgstr "" msgid "Dominican Republic" msgstr " " msgid "East Timor" msgstr " " msgid "Ecuador" msgstr "" msgid "Egypt" msgstr "" msgid "El Salvador" msgstr " " msgid "English" msgstr "Greek" msgid "Entry" msgstr " " msgid "Equatorial Guinea" msgstr " " msgid "Eritrea" msgstr "" msgid "Error adding Referrer node, skipping" msgstr "Error adding Referrer node, skipping" msgid "Error adding Search String Node, skipping" msgstr "Error adding Search String Node, skipping" msgid "Error adding URL node, skipping" msgstr "Error adding URL node, skipping" msgid "Error adding User Agent node, skipping" msgstr "Error adding User Agent node, skipping" msgid "Error adding Username node, skipping" msgstr "Error adding Username node, skipping" msgid "Error adding host node (daily), skipping" msgstr "Error adding host node (daily), skipping" msgid "Error adding host node (monthly), skipping" msgstr "Error adding host node (monthly), skipping" msgid "Error: Can't change directory to" msgstr "Error: Can't change directory to" msgid "Error: Can't open log file" msgstr "Error: Can't open log file" msgid "Error: Ignoring invalid history record" msgstr "Error: Ignoring invalid history record" msgid "Error: Skipping oversized log record" msgstr "Error: Skipping oversized log record" msgid "Error: Skipping record (bad date)" msgstr "Error: Skipping record (bad date)" msgid "Error: Unable to lock DNS cache file" msgstr "Error: Unable to lock DNS cache file" msgid "Error: Unable to open DNS cache file" msgstr "Error: Unable to open DNS cache file" msgid "Error: Unable to open configuration file" msgstr "Error: Unable to open configuration file" msgid "Error: Unable to open file" msgstr "Error: Unable to open file" msgid "Error: Unable to restore run data" msgstr "Error: Unable to restore run data" msgid "Error: Unable to save current run data" msgstr "Error: Unable to save current run data" msgid "Error: Unable to write history file" msgstr "Error: Unable to write history file" msgid "Estonia" msgstr "" msgid "Ethiopia" msgstr "" msgid "Exit" msgstr " " msgid "Falkland Islands (Malvinas)" msgstr " " msgid "Faroe Islands" msgstr " " msgid "Feb" msgstr "" msgid "February" msgstr "" msgid "Fiji" msgstr "" msgid "Files" msgstr "" msgid "Files per Day" msgstr " " msgid "Finland" msgstr "" msgid "France" msgstr "" msgid "France; Metropolitan" msgstr "" msgid "French Guiana" msgstr " " msgid "French Polynesia" msgstr " " msgid "French Southern Territories" msgstr " " msgid "Gabon" msgstr "" msgid "Gambia" msgstr "" msgid "Generated" msgstr " " msgid "Generating report for" msgstr "Generating report for" msgid "Generating summary report" msgstr "Generating summary report" msgid "Georgia" msgstr "" msgid "Germany" msgstr "" msgid "Ghana" msgstr "" msgid "Gibraltar" msgstr "" msgid "Great Britain (UK)" msgstr " " msgid "Greece" msgstr "" msgid "Greenland" msgstr "" msgid "Grenada" msgstr "" msgid "Guadeloupe" msgstr "" msgid "Guam" msgstr "" msgid "Guatemala" msgstr "" msgid "Guinea" msgstr "" msgid "Guinea-Bissau" msgstr " " msgid "Guyana" msgstr "" msgid "Haiti" msgstr "" msgid "Heard and McDonald Islands" msgstr " " msgid "History file not found..." msgstr "History file not found..." msgid "Hits" msgstr "Hits" msgid "Hits by Response Code" msgstr "Hits " msgid "Hits per Day" msgstr "Hits " msgid "Hits per Hour" msgstr "Hits " msgid "Honduras" msgstr "" msgid "Hong Kong" msgstr " " msgid "Hostname" msgstr "" msgid "Hostname for reports is" msgstr "Hostname for reports is" msgid "Hour" msgstr "" msgid "Hourly Statistics" msgstr " " msgid "Hourly Statistics for" msgstr " -" msgid "Hourly usage for" msgstr " : " msgid "Hungary" msgstr "" msgid "Iceland" msgstr "" msgid "Ignoring previous history..." msgstr "Ignoring previous history..." msgid "India" msgstr "" msgid "Indonesia" msgstr "" msgid "International (int)" msgstr " " msgid "Iran" msgstr "" msgid "Iraq" msgstr "" msgid "Ireland" msgstr "" msgid "Israel" msgstr "" msgid "Italy" msgstr "" msgid "Jamaica" msgstr "" msgid "Jan" msgstr "" msgid "January" msgstr "" msgid "Japan" msgstr "" msgid "Jordan" msgstr "" msgid "Jul" msgstr "" msgid "July" msgstr "" msgid "Jun" msgstr "" msgid "June" msgstr "" msgid "KBytes" msgstr "KBytes" msgid "KBytes per Day" msgstr "KBytes " msgid "Kazakhstan" msgstr "" msgid "Kenya" msgstr "" msgid "Kiribati" msgstr "" msgid "Korea (North)" msgstr " " msgid "Korea (South)" msgstr " " msgid "Kuwait" msgstr "" msgid "Kyrgyzstan" msgstr "" msgid "Laos" msgstr "" msgid "Last 12 Months" msgstr " 12 " msgid "Latvia" msgstr "" msgid "Lebanon" msgstr "" msgid "Lesotho" msgstr "" msgid "Liberia" msgstr "" msgid "Libya" msgstr "" msgid "Liechtenstein" msgstr "" msgid "Lithuania" msgstr "" msgid "Luxembourg" msgstr "" msgid "Macau" msgstr "" msgid "Macedonia" msgstr "" msgid "Madagascar" msgstr "" msgid "Malawi" msgstr "" msgid "Malaysia" msgstr "" msgid "Maldives" msgstr "" msgid "Mali" msgstr "" msgid "Malta" msgstr "" msgid "Mar" msgstr "" msgid "March" msgstr "" msgid "Marshall Islands" msgstr " " msgid "Martinique" msgstr "" msgid "Mauritania" msgstr "" msgid "Mauritius" msgstr "" msgid "Max" msgstr "" msgid "May" msgstr "" msgid "Mayotte" msgstr "" msgid "Mexico" msgstr "" msgid "Micronesia" msgstr "" msgid "Moldova" msgstr "" msgid "Monaco" msgstr "" msgid "Mongolia" msgstr "" msgid "Month" msgstr "" msgid "Monthly Statistics for" msgstr " " msgid "Monthly Totals" msgstr " " msgid "Montserrat" msgstr "" msgid "Morocco" msgstr "" msgid "Mozambique" msgstr "" msgid "Myanmar" msgstr "" msgid "Namibia" msgstr "" msgid "Nato field (nato)" msgstr "...." msgid "Nauru" msgstr "" msgid "Nepal" msgstr "" msgid "Netherlands" msgstr "" msgid "Netherlands Antilles" msgstr " " msgid "Network" msgstr " " msgid "Neutral Zone" msgstr " " msgid "New Caledonia" msgstr " " msgid "New Zealand (Aotearoa)" msgstr " " msgid "Nicaragua" msgstr "" msgid "Niger" msgstr "" msgid "Nigeria" msgstr "" msgid "Niue" msgstr "" msgid "No cache file specified, aborting..." msgstr "No cache file specified, aborting..." msgid "No valid records found!" msgstr "No valid records found!" msgid "Non-Profit Organization" msgstr " " msgid "None to process" msgstr "None to process" msgid "Norfolk Island" msgstr " " msgid "Northern Mariana Islands" msgstr " " msgid "Norway" msgstr "" msgid "Nov" msgstr "" msgid "November" msgstr "" msgid "Oct" msgstr "" msgid "October" msgstr "" msgid "Old style Arpanet (arpa)" msgstr " (arpa)" msgid "Oman" msgstr "" msgid "Other" msgstr "" msgid "Pages" msgstr "" msgid "Pages per Day" msgstr " " msgid "Pakistan" msgstr "" msgid "Palau" msgstr "" msgid "Panama" msgstr "" msgid "Papua New Guinea" msgstr " " msgid "Paraguay" msgstr "" msgid "Peru" msgstr "" msgid "Philippines" msgstr "" msgid "Pitcairn" msgstr "" msgid "Poland" msgstr "" msgid "Portugal" msgstr "" msgid "Previous run data not found..." msgstr "Previous run data not found..." msgid "Puerto Rico" msgstr " " msgid "Qatar" msgstr "" msgid "Reading history file..." msgstr "Reading history file..." msgid "Reading previous run data..." msgstr "Reading previous run data.." msgid "Referrer" msgstr "" msgid "Referrers" msgstr "" msgid "Reunion" msgstr "" msgid "Romania" msgstr "" msgid "Russian Federation" msgstr "" msgid "Rwanda" msgstr "" msgid "S. Georgia and S. Sandwich Isls." msgstr " " msgid "Saint Kitts and Nevis" msgstr " " msgid "Saint Lucia" msgstr " " msgid "Saint Vincent and the Grenadines" msgstr " " msgid "Samoa" msgstr "" msgid "San Marino" msgstr " " msgid "Sao Tome and Principe" msgstr " " msgid "Saudi Arabia" msgstr " " msgid "Saving current run data..." msgstr "Saving current run data..." msgid "Saving history information..." msgstr "Saving history information..." msgid "Search" msgstr "" msgid "Search String" msgstr "" msgid "Senegal" msgstr "" msgid "Sep" msgstr "" msgid "September" msgstr "" msgid "Seychelles" msgstr "" msgid "Sierra Leone" msgstr " " msgid "Singapore" msgstr "" msgid "Sites" msgstr "" msgid "Skipping Netscape header record" msgstr "Skipping Netscape header record" msgid "Skipping bad record" msgstr "Skipping bad record" msgid "Slovak Republic" msgstr "" msgid "Slovenia" msgstr "" msgid "Solomon Islands" msgstr " " msgid "Somalia" msgstr "" msgid "South Africa" msgstr " " msgid "Spain" msgstr "" msgid "Sri Lanka" msgstr " " msgid "St. Helena" msgstr " " msgid "St. Pierre and Miquelon" msgstr " " msgid "Sudan" msgstr "" msgid "Summary Period" msgstr " " msgid "Summary by Month" msgstr " " msgid "Suriname" msgstr "" msgid "Svalbard and Jan Mayen Islands" msgstr " " msgid "Swaziland" msgstr "" msgid "Sweden" msgstr "" msgid "Switzerland" msgstr "" msgid "Syria" msgstr "" msgid "Taiwan" msgstr "" msgid "Tajikistan" msgstr "" msgid "Tanzania" msgstr "" msgid "Thailand" msgstr "" msgid "Togo" msgstr "" msgid "Tokelau" msgstr "" msgid "Tonga" msgstr "" msgid "Top" msgstr "" msgid "Total" msgstr "" msgid "Total Countries" msgstr "" msgid "Total Entry Pages" msgstr " " msgid "Total Exit Pages" msgstr " " msgid "Total Files" msgstr " " msgid "Total Hits" msgstr " Hits" msgid "Total KBytes" msgstr " KBytes" msgid "Total Referrers" msgstr "" msgid "Total Search Strings" msgstr "" msgid "Total Sites" msgstr "" msgid "Total URLs" msgstr "URLs" msgid "Total Unique Referrers" msgstr " " msgid "Total Unique Sites" msgstr " " msgid "Total Unique URLs" msgstr " URLs" msgid "Total Unique User Agents" msgstr " " msgid "Total Unique Usernames" msgstr "Total Unique Usernames" msgid "Total User Agents" msgstr "" msgid "Total Usernames" msgstr "Total Usernames" msgid "Totals" msgstr "" msgid "Trinidad and Tobago" msgstr " " msgid "Tunisia" msgstr "" msgid "Turkey" msgstr "" msgid "Turkmenistan" msgstr "" msgid "Turks and Caicos Islands" msgstr " " msgid "Tuvalu" msgstr "" msgid "URL" msgstr "URL" msgid "URLs" msgstr "URLs" msgid "US Commercial" msgstr " (...)" msgid "US Educational" msgstr " (...)" msgid "US Government" msgstr " (...)" msgid "US Military" msgstr " (...)" msgid "US Minor Outlying Islands" msgstr " ..." msgid "USSR (former)" msgstr " ...." msgid "Uganda" msgstr "" msgid "Ukraine" msgstr "" msgid "Undefined response code" msgstr "Undefined response code" msgid "United Arab Emirates" msgstr " " msgid "United Kingdom" msgstr " " msgid "United States" msgstr "..." msgid "Unresolved/Unknown" msgstr "" msgid "Uruguay" msgstr "" msgid "Usage" msgstr "Usage" msgid "Usage Statistics for" msgstr " " msgid "Usage by Country for" msgstr " -" msgid "Usage summary for" msgstr " " msgid "User Agent" msgstr "" msgid "Username" msgstr "Username" msgid "Users" msgstr "Users" msgid "Using DNS cache file" msgstr "Using DNS cache file" msgid "Using logfile" msgstr "Using logfile" msgid "Uzbekistan" msgstr "" msgid "Vanuatu" msgstr "" msgid "Vatican City State (Holy See)" msgstr "" msgid "Venezuela" msgstr "" msgid "Viet Nam" msgstr "" msgid "View All Referrers" msgstr "View All Referrers" msgid "View All Search Strings" msgstr "View All Search Strings" msgid "View All Sites" msgstr "View All Sites" msgid "View All URLs" msgstr "View All URLs" msgid "View All User Agents" msgstr "View All User Agents" msgid "View All Usernames" msgstr "View All Usernames" msgid "Virgin Islands (British)" msgstr " " msgid "Virgin Islands (U.S.)" msgstr " (...)" msgid "Visits" msgstr "" msgid "Visits per Day" msgstr " " msgid "Wallis and Futuna Islands" msgstr " " msgid "Warning: Invalid keyword" msgstr "Warning: Invalid keyword" msgid "Warning: Possible duplicate data found" msgstr "Warning: Possible duplicate data found" msgid "Warning: String exceeds storage size" msgstr "Warning: String exceeds storage size" msgid "Warning: Truncating oversized date field" msgstr "Warning: Truncating oversized date field" msgid "Warning: Truncating oversized hostname" msgstr "Warning: Truncating oversized hostname" msgid "Warning: Truncating oversized referrer field" msgstr "Warning: Truncating oversized referrer field" msgid "Warning: Truncating oversized request field" msgstr "Warning: Truncating oversized request field" msgid "Warning: Truncating oversized username" msgstr "Warning: Truncating oversized username field" msgid "Western Sahara" msgstr " " msgid "Yemen" msgstr "" msgid "Yugoslavia" msgstr "" msgid "Zaire" msgstr "" msgid "Zambia" msgstr "" msgid "Zimbabwe" msgstr "" msgid "[options] [log file]" msgstr "[options] [log file]" msgid "addresses" msgstr "addresses" msgid "bad" msgstr "" msgid "current directory" msgstr "current directory" msgid "ignored" msgstr "" msgid "in" msgstr "" msgid "of" msgstr "" msgid "records" msgstr "" msgid "seconds" msgstr "" webdruid-0.5.4.orig/po/gl.po0000644000000000000000000006410410066113350015602 0ustar rootroot00000000000000msgid "" msgstr "" "Project-Id-Version: 1.0\n" "PO-Revision-Date: 2003-05-25 23:29+0200\n" "Last-Translator: Johan Poirier \n" "Language-Team: French \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=ISO-8859-1\n" "Content-Transfer-Encoding: 8bit" msgid "-A num = Display num top agents" msgstr "-A n = Mostra-los n primeiros programas visores" msgid "-C num = Display num top countries" msgstr "-C n = Mostra-los n primeiros pases" msgid "-D name = Use DNS Cache file 'name'" msgstr "-D name = Use DNS Cache file 'name'" msgid "-E num = Display num top Exit Pages" msgstr "-E n = Mostra-las n primeiras pxinas de sada" msgid "-F type = Log type. type= (clf | ftp | squid)" msgstr "-F type = Log type. type= (clf | ftp | squid)" msgid "-G = supress hourly graph" msgstr "-G = suprimir grfico horario" msgid "-H = supress hourly stats" msgstr "-H = suprimir estatsticas horarias" msgid "-I name = Index alias 'name'" msgstr "-I nome = Alias do ndice 'nome'" msgid "-L = supress color coded graph legends" msgstr "-L = suprimir lendas coloreadas dos grficos" msgid "-N num = Number of DNS processes (0=disable)" msgstr "-N num = Number of DNS processes (0=disable)" msgid "-P name = Page type extension 'name'" msgstr "-P nome = usa extensin de pxinas 'nome'" msgid "-Q = supress _ALL_ messages" msgstr "-Q = suprimir TDALAS mensaxes" msgid "-R num = Display num top referrers" msgstr "-R n = Mostra-las n primeiras ligazns orixe" msgid "-S num = Display num top sites" msgstr "-S n = Mostra-los n primeiros clientes" msgid "-T = print timing information" msgstr "-T = sacar informacion de horario" msgid "-U num = Display num top URLs" msgstr "-U n = Mostra-los n primeiros URLs" msgid "-X = Hide individual sites" msgstr "-X = Hide individual sites" msgid "-Y = supress country graph" msgstr "-Y = suprimir grafico de pases" msgid "-a name = hide user agent 'name'" msgstr "-a nome = acocha-lo programa cliente 'nome'" msgid "-c file = use configuration file 'file'" msgstr "-c arquivo= usar arquivo de configuracion 'arquivo'" msgid "-d = print additional debug info" msgstr "-d = sacar informacin adicional para depuracin" msgid "-e num = Display num top Entry Pages" msgstr "-e n = Mostra-las n primeiras pxinas de entrada" msgid "-f = Fold sequence errors" msgstr "-f = procesa historicos fra de secuencia (ver man)" msgid "-g num = Group Domains to 'num' levels" msgstr "-g n = Group Domains to n levels" msgid "-h = print this help message" msgstr "-h = sacar esta mensaxe" msgid "-i = ignore history file" msgstr "-i = ignorar arquivo" msgid "-l num = use num background lines on graph" msgstr "-l num = usar num las de fondo nos grficos" msgid "-m num = Visit timout value (seconds)" msgstr "-m num = especificar temporizador de visitas (seconds)" msgid "-n name = hostname to use" msgstr "-n nome = nome de mquina" msgid "-o dir = output directory to use" msgstr "-o dir = directorio de sada" msgid "-p = preserve state (incremental)" msgstr "-p = lembrar estado (incremental)" msgid "-q = supress informational messages" msgstr "-q = suprimir mensaxes de informacion" msgid "-r name = hide referrer 'name'" msgstr "-r nome = acocha-la ligazn orixe 'nome'" msgid "-s name = hide site 'name'" msgstr "-s nome = acocha-lo servidor 'nome'" msgid "-t name = report title 'name'" msgstr "-t nome = titula-lo informe 'nome'" msgid "-u name = hide URL 'name'" msgstr "-u nome = acocha-lo URL 'nome'" msgid "-v -V = print version information" msgstr "-v -V = ver informacion de versin" msgid "-x name = Use filename extension 'name'" msgstr "-x nome = usa extensin de arquivos 'nome'" msgid "Afghanistan" msgstr "Afganistn" msgid "Agents" msgstr "Programas visores" msgid "Albania" msgstr "Albania" msgid "Algeria" msgstr "Arxelia" msgid "American Samoa" msgstr "Samoa Americana" msgid "Andorra" msgstr "Andorra" msgid "Angola" msgstr "Angola" msgid "Anguilla" msgstr "Anguilla" msgid "Antarctica" msgstr "Antrtida" msgid "Antigua and Barbuda" msgstr "Antigua e Barbuda" msgid "Apr" msgstr "Abr" msgid "April" msgstr "Abril" msgid "Argentina" msgstr "Arxentina" msgid "Armenia" msgstr "Armenia" msgid "Aruba" msgstr "Aruba" msgid "Aug" msgstr "Ago" msgid "August" msgstr "Agosto" msgid "Australia" msgstr "Australia" msgid "Austria" msgstr "Austria" msgid "Avg" msgstr "Meda" msgid "Azerbaijan" msgstr "Azerbaixn" msgid "Bahamas" msgstr "Bahamas" msgid "Bahrain" msgstr "Bahrain" msgid "Bangladesh" msgstr "Bangladesh" msgid "Barbados" msgstr "Barbados" msgid "Belarus" msgstr "Bielorusia" msgid "Belgium" msgstr "Blxica" msgid "Belize" msgstr "Belize" msgid "Benin" msgstr "Benin" msgid "Bermuda" msgstr "Bermuda" msgid "Bhutan" msgstr "Bhutn" msgid "Bolivia" msgstr "Bolivia" msgid "Bosnia and Herzegovina" msgstr "Bosnia e Herzegovina" msgid "Botswana" msgstr "Botswana" msgid "Bouvet Island" msgstr "Illa Bouvet" msgid "Brazil" msgstr "Brasil" msgid "British Indian Ocean Territory" msgstr "Territorios Britanicos do Ocano ndico" msgid "Brunei Darussalam" msgstr "Brunei Darussalam" msgid "Bulgaria" msgstr "Bulgaria" msgid "Burkina Faso" msgstr "Burkina Faso" msgid "Burundi" msgstr "Burundi" msgid "By" msgstr "Por" msgid "Cambodia" msgstr "Cambodia" msgid "Cameroon" msgstr "Camern" msgid "Can't allocate enough memory, Top Countries disabled!" msgstr "Non podo reservar suficiente memoria, quito os principais pases" msgid "Can't allocate enough memory, Top Referrers disabled!" msgstr "Non podo reservar suficiente memoria, quito as principais ligazns" msgid "Can't allocate enough memory, Top Search Strings disabled!" msgstr "Non podo reservar suficiente memoria, quito as principais cadeas de busca" msgid "Can't allocate enough memory, Top Sites disabled!" msgstr "Non podo reservar suficiente memoria, quito os principais sitios" msgid "Can't allocate enough memory, Top URLs disabled!" msgstr "Non podo reservar suficiente memoria, quito os principais URLs" msgid "Can't allocate enough memory, Top User Agents disabled!" msgstr "Non podo reservar suficiente memoria, quito os principais programas cliente" msgid "Can't allocate enough memory, Top Usernames disabled!" msgstr "Can't allocate enough memory, Top Usernames disabled!" msgid "Canada" msgstr "Canad" msgid "Cape Verde" msgstr "Cabo Verde" msgid "Cayman Islands" msgstr "Illas Caimn" msgid "Central African Republic" msgstr "Repblica Centroafricana" msgid "Chad" msgstr "Chad" msgid "Chile" msgstr "Chile" msgid "China" msgstr "China" msgid "Christmas Island" msgstr "Illa de Pascua" msgid "Cocos (Keeling) Islands" msgstr "Illas Cocos (Keeling)" msgid "Code 100 - Continue" msgstr "100 - Contnua" msgid "Code 101 - Switching Protocols" msgstr "101 - Cambiando de protocolo" msgid "Code 200 - OK" msgstr "200 - OK" msgid "Code 201 - Created" msgstr "201 - Creado" msgid "Code 202 - Accepted" msgstr "202 - Aceptado" msgid "Code 203 - Non-Authoritative Information" msgstr "203 - Informacin non autorizada" msgid "Code 204 - No Content" msgstr "204 - Non hai contido" msgid "Code 205 - Reset Content" msgstr "205 - Contido renovado" msgid "Code 206 - Partial Content" msgstr "206 - Contido parcial" msgid "Code 300 - Multiple Choices" msgstr "300 - Varias opcins" msgid "Code 301 - Moved Permanently" msgstr "301 - Movido permanentemente" msgid "Code 302 - Found" msgstr "302 - Atopado" msgid "Code 303 - See Other" msgstr "303 - Ver outros" msgid "Code 304 - Not Modified" msgstr "304 - Non modificado" msgid "Code 305 - Use Proxy" msgstr "305 - Utilizar proxy" msgid "Code 307 - Moved Temporarily" msgstr "307 - Movido temporalmente" msgid "Code 400 - Bad Request" msgstr "400 - Peticin errnea" msgid "Code 401 - Unauthorized" msgstr "401 - Non autorizado" msgid "Code 402 - Payment Required" msgstr "402 - precisoun pago" msgid "Code 403 - Forbidden" msgstr "403 - Prohibido" msgid "Code 404 - Not Found" msgstr "404 - Non se atopa" msgid "Code 405 - Method Not Allowed" msgstr "405 - Mtodo non permitido" msgid "Code 406 - Not Acceptable" msgstr "406 - Non aceptable" msgid "Code 407 - Proxy Authentication Required" msgstr "407 - precisa a autentificacin de proxy" msgid "Code 408 - Request Timeout" msgstr "408 - Fn de tempo de espera" msgid "Code 409 - Conflict" msgstr "409 - Conflicto" msgid "Code 410 - Gone" msgstr "410 - Abandoado" msgid "Code 411 - Length Required" msgstr "411 - precisa a lonxitude" msgid "Code 412 - Precondition Failed" msgstr "412 - Falla a condicin previa" msgid "Code 413 - Request Entity Too Large" msgstr "413 - Entidad de peticin grande de abondo" msgid "Code 414 - Request-URI Too Long" msgstr "414 - URL de peticin demasiado longa" msgid "Code 415 - Unsupported Media Type" msgstr "415 - Medio non soportado" msgid "Code 416 - Requested Range Not Satisfiable" msgstr "416 - Non se pode satisface-lo rango pedido" msgid "Code 417 - Expectation Failed" msgstr "417 - Falla o que agardbase" msgid "Code 500 - Internal Server Error" msgstr "500 - Erro interno do servidor" msgid "Code 501 - Not Implemented" msgstr "501 - Non implementado" msgid "Code 502 - Bad Gateway" msgstr "502 - Porta de ligazn incorrecta" msgid "Code 503 - Service Unavailable" msgstr "503 - Servicio non disponible" msgid "Code 504 - Gateway Timeout" msgstr "504 - Fn de tempo de espera para a porta de ligazn" msgid "Code 505 - HTTP Version Not Supported" msgstr "505 - Versin de HTTP non soportada" msgid "Colombia" msgstr "Colombia" msgid "Comoros" msgstr "Comoros" msgid "Congo" msgstr "Congo" msgid "Cook Islands" msgstr "Illas Cook" msgid "Costa Rica" msgstr "Costa Rica" msgid "Cote D'Ivoire (Ivory Coast)" msgstr "Costa de Marfil" msgid "Countries" msgstr "Pases" msgid "Country" msgstr "Pases" msgid "Creating output in" msgstr "Creando informe en" msgid "Croatia (Hrvatska)" msgstr "Croacia (Hrvatska)" msgid "Cuba" msgstr "Cuba" msgid "Cyprus" msgstr "Chipre" msgid "Czech Republic" msgstr "Repblica Checa" msgid "Czechoslovakia (former)" msgstr "Checoslovaquia (antigua)" msgid "DNS Lookup" msgstr "DNS Lookup" msgid "Daily Avg" msgstr "Meda daria" msgid "Daily Statistics" msgstr "Estatsiticas darias" msgid "Daily Statistics for" msgstr "Estatsticas diarias de" msgid "Daily usage for" msgstr "Uso dario en" msgid "Day" msgstr "Da" msgid "Dec" msgstr "Dec" msgid "December" msgstr "Decembro" msgid "Denmark" msgstr "Dinamarca" msgid "Djibouti" msgstr "Djibouti" msgid "Dominica" msgstr "Dominica" msgid "Dominican Republic" msgstr "Repblica Dominicana" msgid "East Timor" msgstr "Timor Leste" msgid "Ecuador" msgstr "Ecuador" msgid "Egypt" msgstr "Exipto" msgid "El Salvador" msgstr "O Salvador" msgid "English" msgstr "Galician" msgid "Entry" msgstr "Entrada" msgid "Equatorial Guinea" msgstr "Guinea Ecuatorial" msgid "Eritrea" msgstr "Eritrea" msgid "Error adding Referrer node, skipping" msgstr "Erro engadindo nodo de ligazn orixe, mo salto" msgid "Error adding Search String Node, skipping" msgstr "Erro engadindo nodo de caenas de busca, mo salto" msgid "Error adding URL node, skipping" msgstr "Erro engadindo nodo de URL, mo salto" msgid "Error adding User Agent node, skipping" msgstr "Erro engadindo nodo de programa visor, mo salto" msgid "Error adding Username node, skipping" msgstr "Erro adding Username node, skipping" msgid "Error adding host node (daily), skipping" msgstr "Erro engadindo nodo de servidor (dario), mo salto" msgid "Error adding host node (monthly), skipping" msgstr "Erro engadindo nodo de servidor (mensual), mo salto" msgid "Error: Can't change directory to" msgstr "Erro: non se pode cambiar directorio" msgid "Error: Can't open log file" msgstr "Erro: Non podo abrir histrico" msgid "Error: Ignoring invalid history record" msgstr "Erro: Ignorando un rexistro non vlido no arquivo" msgid "Error: Skipping oversized log record" msgstr "Erro: Saltando rexistro de histrico grande de abondoh" msgid "Error: Skipping record (bad date)" msgstr "Erro: ignorando rexistro (data errnea)" msgid "Error: Unable to lock DNS cache file" msgstr "Erro: Unable to lock DNS cache file" msgid "Error: Unable to open DNS cache file" msgstr "Erro: Unable to open DNS cache file" msgid "Error: Unable to open configuration file" msgstr "Erro: non podo abri-lo arquivo de configuracin" msgid "Error: Unable to open file" msgstr "Erro: Non podo abrir un arquivo" msgid "Error: Unable to restore run data" msgstr "Erro: Non podo carga-os datos da execucin" msgid "Error: Unable to save current run data" msgstr "Erro: Non podo graba-os datos da execucin actual" msgid "Error: Unable to write history file" msgstr "Erro: Non podo abri-lo arquivo de arquivo" msgid "Estonia" msgstr "Estonia" msgid "Ethiopia" msgstr "Etiopia" msgid "Exit" msgstr "Sada" msgid "Falkland Islands (Malvinas)" msgstr "Malvinas" msgid "Faroe Islands" msgstr "Illas Faroe" msgid "Feb" msgstr "Feb" msgid "February" msgstr "Febreiro" msgid "Fiji" msgstr "Fiji" msgid "Files" msgstr "Arquivos" msgid "Files per Day" msgstr "Arquivos por Da" msgid "Finland" msgstr "Finlanda" msgid "France" msgstr "Francia" msgid "France; Metropolitan" msgstr "Francia (Metropolitana)" msgid "French Guiana" msgstr "Guinea francesa" msgid "French Polynesia" msgstr "Polinesia francesa" msgid "French Southern Territories" msgstr "Territorios Franceses do Sur" msgid "Gabon" msgstr "Gabn" msgid "Gambia" msgstr "Gambia" msgid "Generated" msgstr "Xerado o" msgid "Generating report for" msgstr "Xerando informe de" msgid "Generating summary report" msgstr "Xerando informe resumido" msgid "Georgia" msgstr "Xeorxia" msgid "Germany" msgstr "Alemaa" msgid "Ghana" msgstr "Ghana" msgid "Gibraltar" msgstr "Gibraltar" msgid "Great Britain (UK)" msgstr "Gran Bretaa (RU)" msgid "Greece" msgstr "Grecia" msgid "Greenland" msgstr "Greenland" msgid "Grenada" msgstr "Granada" msgid "Guadeloupe" msgstr "Guadalupe" msgid "Guam" msgstr "Guam" msgid "Guatemala" msgstr "Guatemala" msgid "Guinea" msgstr "Guinea" msgid "Guinea-Bissau" msgstr "Guinea-Bissau" msgid "Guyana" msgstr "Guiana" msgid "Haiti" msgstr "Hait" msgid "Heard and McDonald Islands" msgstr "Illas Heard e McDonald" msgid "History file not found..." msgstr "Non atopo o arquivo histrico..." msgid "Hits" msgstr "Accesos" msgid "Hits by Response Code" msgstr "Accesos por cdigo de resposta" msgid "Hits per Day" msgstr "Accesos por Da" msgid "Hits per Hour" msgstr "Accesos por Hora" msgid "Honduras" msgstr "Honduras" msgid "Hong Kong" msgstr "Hong Kong" msgid "Hostname" msgstr "Mquina" msgid "Hostname for reports is" msgstr "O nome da mquina no informe " msgid "Hour" msgstr "Hora" msgid "Hourly Statistics" msgstr "Estatsticas por horas" msgid "Hourly Statistics for" msgstr "Estatsticas horarias de" msgid "Hourly usage for" msgstr "Uso por horas en" msgid "Hungary" msgstr "Hungria" msgid "Iceland" msgstr "Islanda" msgid "Ignoring previous history..." msgstr "Ignorando rexistro anterior..." msgid "India" msgstr "ndia" msgid "Indonesia" msgstr "Indonesia" msgid "International (int)" msgstr "Internacional (int)" msgid "Iran" msgstr "Irn" msgid "Iraq" msgstr "Iraq" msgid "Ireland" msgstr "Irlanda" msgid "Israel" msgstr "Israel" msgid "Italy" msgstr "Italia" msgid "Jamaica" msgstr "Xamaica" msgid "Jan" msgstr "Xan" msgid "January" msgstr "Xaneiro" msgid "Japan" msgstr "Xapn" msgid "Jordan" msgstr "Xordania" msgid "Jul" msgstr "Xul" msgid "July" msgstr "Xullo" msgid "Jun" msgstr "Xu" msgid "June" msgstr "Xuo" msgid "KBytes" msgstr "KBytes" msgid "KBytes per Day" msgstr "KBytes por Da" msgid "Kazakhstan" msgstr "Cazacstn" msgid "Kenya" msgstr "Quenia" msgid "Kiribati" msgstr "Kiribati" msgid "Korea (North)" msgstr "Corea (Norte)" msgid "Korea (South)" msgstr "Corea (Sur)" msgid "Kuwait" msgstr "Kuwait" msgid "Kyrgyzstan" msgstr "Quirxizstn" msgid "Laos" msgstr "Laos" msgid "Last 12 Months" msgstr "ltimos 12 meses" msgid "Latvia" msgstr "Latvia" msgid "Lebanon" msgstr "Libano" msgid "Lesotho" msgstr "Lesotho" msgid "Liberia" msgstr "Liberia" msgid "Libya" msgstr "Libia" msgid "Liechtenstein" msgstr "Liechtenstein" msgid "Lithuania" msgstr "Lituania" msgid "Luxembourg" msgstr "Luxemburgo" msgid "Macau" msgstr "Macau" msgid "Macedonia" msgstr "Macedonia" msgid "Madagascar" msgstr "Madagascar" msgid "Malawi" msgstr "Malawi" msgid "Malaysia" msgstr "Malaisia" msgid "Maldives" msgstr "Maldivas" msgid "Mali" msgstr "Mali" msgid "Malta" msgstr "Malta" msgid "Mar" msgstr "Mar" msgid "March" msgstr "Marzo" msgid "Marshall Islands" msgstr "Illas Marshall" msgid "Martinique" msgstr "Martinica" msgid "Mauritania" msgstr "Mauritania" msgid "Mauritius" msgstr "Mauricio" msgid "Max" msgstr "Mx." msgid "May" msgstr "Maio" msgid "Mayotte" msgstr "Maiotte" msgid "Mexico" msgstr "Mxico" msgid "Micronesia" msgstr "Micronesia" msgid "Moldova" msgstr "Moldavia" msgid "Monaco" msgstr "Mnaco" msgid "Mongolia" msgstr "Mongolia" msgid "Month" msgstr "Mes" msgid "Monthly Statistics for" msgstr "Estatsticas mensuais de" msgid "Monthly Totals" msgstr "Totais mensuais" msgid "Montserrat" msgstr "Montserrat" msgid "Morocco" msgstr "Marrocos" msgid "Mozambique" msgstr "Mozambique" msgid "Myanmar" msgstr "Myanmar" msgid "Namibia" msgstr "Namibia" msgid "Nato field (nato)" msgstr "OTAN" msgid "Nauru" msgstr "Nauru" msgid "Nepal" msgstr "Nepal" msgid "Netherlands" msgstr "Holanda" msgid "Netherlands Antilles" msgstr "Antillas Holandesas" msgid "Network" msgstr "Redo" msgid "Neutral Zone" msgstr "Zona Neutral" msgid "New Caledonia" msgstr "Nova Caledonia" msgid "New Zealand (Aotearoa)" msgstr "Nova Celandia" msgid "Nicaragua" msgstr "Nicaragua" msgid "Niger" msgstr "Nigeria" msgid "Nigeria" msgstr "Nixeria" msgid "Niue" msgstr "Niue" msgid "No cache file specified, aborting..." msgstr "Non cache file specified, aborting..." msgid "No valid records found!" msgstr "Non atopo ningun rexistro vlido" msgid "Non-Profit Organization" msgstr "Organizacins sen fins de lucro" msgid "None to process" msgstr "None to process" msgid "Norfolk Island" msgstr "Illa Norfolk" msgid "Northern Mariana Islands" msgstr "Illas Marianas do Norte" msgid "Norway" msgstr "Noruega" msgid "Nov" msgstr "Nov" msgid "November" msgstr "Novembro" msgid "Oct" msgstr "Out" msgid "October" msgstr "Outubro" msgid "Old style Arpanet (arpa)" msgstr "Arpanet" msgid "Oman" msgstr "Omn" msgid "Other" msgstr "Outro" msgid "Pages" msgstr "Pxinas" msgid "Pages per Day" msgstr " Pxinas por Da" msgid "Pakistan" msgstr "Paquistn" msgid "Palau" msgstr "Palau" msgid "Panama" msgstr "Panam" msgid "Papua New Guinea" msgstr "Papua Nova Guinea" msgid "Paraguay" msgstr "Paraguai" msgid "Peru" msgstr "Per" msgid "Philippines" msgstr "Filipinas" msgid "Pitcairn" msgstr "Pitcairn" msgid "Poland" msgstr "Polonia" msgid "Portugal" msgstr "Portugal" msgid "Previous run data not found..." msgstr "Datos de execucin previa non atopados..." msgid "Puerto Rico" msgstr "Puerto Rico" msgid "Qatar" msgstr "Qatar" msgid "Reading history file..." msgstr "Lendo arquivo..." msgid "Reading previous run data..." msgstr "Lendo datos dunha execucin previa..." msgid "Referrer" msgstr "Ligazn orixe" msgid "Referrers" msgstr "Ligazns orixe" msgid "Reunion" msgstr "Reunin" msgid "Romania" msgstr "Rumania" msgid "Russian Federation" msgstr "Federacin rusa" msgid "Rwanda" msgstr "Ruanda" msgid "S. Georgia and S. Sandwich Isls." msgstr "Illas S. Georgia e S. Sandwich" msgid "Saint Kitts and Nevis" msgstr "Saint Kitts e Nevis" msgid "Saint Lucia" msgstr "Santa Luca" msgid "Saint Vincent and the Grenadines" msgstr "San Vincente e as Granadinas" msgid "Samoa" msgstr "Samoa" msgid "San Marino" msgstr "San Marino" msgid "Sao Tome and Principe" msgstr "San Tom e Principe" msgid "Saudi Arabia" msgstr "Arabia Saud" msgid "Saving current run data..." msgstr "Grabando datos da execucin actual..." msgid "Saving history information..." msgstr "Gardando informacion de arquivo..." msgid "Search" msgstr "Busca" msgid "Search String" msgstr "Cadea de Bsca" msgid "Senegal" msgstr "Senegal" msgid "Sep" msgstr "Set" msgid "September" msgstr "Setembro" msgid "Seychelles" msgstr "Seychelles" msgid "Sierra Leone" msgstr "Serra Leona" msgid "Singapore" msgstr "Singapur" msgid "Sites" msgstr "Clientes" msgid "Skipping Netscape header record" msgstr "Saltando rexistro de cabeceira Netscape" msgid "Skipping bad record" msgstr "Saltando rexistro errneo" msgid "Slovak Republic" msgstr "Repblica Eslovaca" msgid "Slovenia" msgstr "Eslovenia" msgid "Solomon Islands" msgstr "Illas Slomon" msgid "Somalia" msgstr "Somalia" msgid "South Africa" msgstr "Sudfrica" msgid "Spain" msgstr "Espaa" msgid "Sri Lanka" msgstr "Sri Lanka" msgid "St. Helena" msgstr "Sta. Elena" msgid "St. Pierre and Miquelon" msgstr "Santos Pierre e Miquelon" msgid "Sudan" msgstr "Sudn" msgid "Summary Period" msgstr "Perodo resumido" msgid "Summary by Month" msgstr "Resumo por meses" msgid "Suriname" msgstr "Surinam" msgid "Svalbard and Jan Mayen Islands" msgstr "Illas Svalbard e Jan Mayen" msgid "Swaziland" msgstr "Swazilanda" msgid "Sweden" msgstr "Suecia" msgid "Switzerland" msgstr "Suza" msgid "Syria" msgstr "Siria" msgid "Taiwan" msgstr "Taiwan" msgid "Tajikistan" msgstr "Taxiquistn" msgid "Tanzania" msgstr "Tanzania" msgid "Thailand" msgstr "Tailanda" msgid "Togo" msgstr "Togo" msgid "Tokelau" msgstr "Tokelau" msgid "Tonga" msgstr "Tonga" msgid "Top" msgstr "Os" msgid "Total" msgstr "Total" msgid "Total Countries" msgstr "pases" msgid "Total Entry Pages" msgstr "Total Pxinas de Entrada" msgid "Total Exit Pages" msgstr "Total Pxinas de Sada" msgid "Total Files" msgstr "Total Arquivos" msgid "Total Hits" msgstr "Total Accesos" msgid "Total KBytes" msgstr "Total KBytes" msgid "Total Referrers" msgstr "ligazns orixe" msgid "Total Search Strings" msgstr "Total Cadeas de Busca" msgid "Total Sites" msgstr "clientes" msgid "Total URLs" msgstr "URLs" msgid "Total Unique Referrers" msgstr "Total Ligazns orixe" msgid "Total Unique Sites" msgstr "Total Clientes" msgid "Total Unique URLs" msgstr "Total URLs" msgid "Total Unique User Agents" msgstr "Total Programas visores" msgid "Total Unique Usernames" msgstr "Total Unique Usernames" msgid "Total User Agents" msgstr "programas de cliente" msgid "Total Usernames" msgstr "Total Usernames" msgid "Totals" msgstr "Totais" msgid "Trinidad and Tobago" msgstr "Trinidade e Tobago" msgid "Tunisia" msgstr "Tunez" msgid "Turkey" msgstr "Turqua" msgid "Turkmenistan" msgstr "Turcmenistn" msgid "Turks and Caicos Islands" msgstr "Illas Turcos e Caicos" msgid "Tuvalu" msgstr "Tuvalu" msgid "URL" msgstr "URL" msgid "URLs" msgstr "URLs" msgid "US Commercial" msgstr "Comercial" msgid "US Educational" msgstr "Educacin EUA" msgid "US Government" msgstr "Goberno EUA" msgid "US Military" msgstr "Exrcito EUA" msgid "US Minor Outlying Islands" msgstr "Illas Menores Exteriores Norteamericanas" msgid "USSR (former)" msgstr "URSS (ant.)" msgid "Uganda" msgstr "Uganda" msgid "Ukraine" msgstr "Ucrania" msgid "Undefined response code" msgstr "Cdigo de resposta indefinido" msgid "United Arab Emirates" msgstr "Emiratos rabes Unidos" msgid "United Kingdom" msgstr "Reino Unido" msgid "United States" msgstr "Estados Unidos" msgid "Unresolved/Unknown" msgstr "Non resolve/descoecido" msgid "Uruguay" msgstr "Uruguai" msgid "Usage" msgstr "Forma de uso" msgid "Usage Statistics for" msgstr "Estatsticas de uso para" msgid "Usage by Country for" msgstr "Accesos por pases en" msgid "Usage summary for" msgstr "Resumo de uso de" msgid "User Agent" msgstr "Programa cliente" msgid "Username" msgstr "Username" msgid "Users" msgstr "Users" msgid "Using DNS cache file" msgstr "Using DNS cache file" msgid "Using logfile" msgstr "Utilizando histrico" msgid "Uzbekistan" msgstr "Uzbequistn" msgid "Vanuatu" msgstr "Vanuatu" msgid "Vatican City State (Holy See)" msgstr "Cidade Estado Vaticano (Sta. Se)" msgid "Venezuela" msgstr "Venezuela" msgid "Viet Nam" msgstr "Viet Nam" msgid "View All Referrers" msgstr "View All Referrers" msgid "View All Search Strings" msgstr "View All Search Strings" msgid "View All Sites" msgstr "View All Sites" msgid "View All URLs" msgstr "View All URLs" msgid "View All User Agents" msgstr "View All User Agents" msgid "View All Usernames" msgstr "View All Usernames" msgid "Virgin Islands (British)" msgstr "Illas Vrxenes (Britnicas)" msgid "Virgin Islands (U.S.)" msgstr "Illas Vrxenes (U.S.A)" msgid "Visits" msgstr "Visitas" msgid "Visits per Day" msgstr "Visitas por Da" msgid "Wallis and Futuna Islands" msgstr "Illas Wallis e Futuna" msgid "Warning: Invalid keyword" msgstr "Aviso: palabra chave errnea" msgid "Warning: Possible duplicate data found" msgstr "Aviso: Posibles datos duplicados atopados" msgid "Warning: String exceeds storage size" msgstr "Aviso: Una cadena sobrepasa o almacenamento disponible" msgid "Warning: Truncating oversized date field" msgstr "Aviso: Cortando campo de data grande de abondo" msgid "Warning: Truncating oversized hostname" msgstr "Aviso: Cortando nome de mquina grande de abondo" msgid "Warning: Truncating oversized referrer field" msgstr "Aviso: Cortando campo de ligazn orixe grande de abondo" msgid "Warning: Truncating oversized request field" msgstr "Aviso: Cortando campo de peticion grande de abondo" msgid "Warning: Truncating oversized username" msgstr "Warning: Truncating oversized username" msgid "Western Sahara" msgstr "Shara Occidental" msgid "Yemen" msgstr "Iemen" msgid "Yugoslavia" msgstr "Iugoslavia" msgid "Zaire" msgstr "Zaire" msgid "Zambia" msgstr "Zambia" msgid "Zimbabwe" msgstr "Zimbabwe" msgid "[options] [log file]" msgstr "[opcins] [arquivo histrico]" msgid "addresses" msgstr "addresses" msgid "bad" msgstr "errneos" msgid "current directory" msgstr "directorio actual" msgid "ignored" msgstr "ignorados" msgid "in" msgstr "en" msgid "of" msgstr "primeiros dun total de" msgid "records" msgstr "rexistros" msgid "seconds" msgstr "segundos" webdruid-0.5.4.orig/po/pt.po0000644000000000000000000006413410066113350015626 0ustar rootroot00000000000000msgid "" msgstr "" "Project-Id-Version: 1.0\n" "PO-Revision-Date: 2003-05-25 23:29+0200\n" "Last-Translator: Johan Poirier \n" "Language-Team: French \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=ISO-8859-1\n" "Content-Transfer-Encoding: 8bit" msgid "-A num = Display num top agents" msgstr "-A num = Mostrar num top agents" msgid "-C num = Display num top countries" msgstr "-C num = Mostrar num top countries" msgid "-D name = Use DNS Cache file 'name'" msgstr "-D name = Use DNS Cache file 'name'" msgid "-E num = Display num top Exit Pages" msgstr "-E num = Mostrar num top Exit Pages" msgid "-F type = Log type. type= (clf | ftp | squid)" msgstr "-F type = Log type. type= (clf | ftp | squid)" msgid "-G = supress hourly graph" msgstr "-G = suprimir grafico por horas" msgid "-H = supress hourly stats" msgstr "-H = suprimir estatisticas por horas" msgid "-I name = Index alias 'name'" msgstr "-I nome = alias para Index 'nome'" msgid "-L = supress color coded graph legends" msgstr "-L = supress color coded graph legends" msgid "-N num = Number of DNS processes (0=disable)" msgstr "-N num = Number of DNS processes (0=disable)" msgid "-P name = Page type extension 'name'" msgstr "-P name = Page type extension 'name'" msgid "-Q = supress _ALL_ messages" msgstr "-Q = suprimir _TODAS_ as mensagens" msgid "-R num = Display num top referrers" msgstr "-R num = Mostrar num top referrers" msgid "-S num = Display num top sites" msgstr "-S num = Mostrar num top sites" msgid "-T = print timing information" msgstr "-T = mostra informacao de timing" msgid "-U num = Display num top URLs" msgstr "-U num = Mostrar num top URLs" msgid "-X = Hide individual sites" msgstr "-X = Hide individual sites" msgid "-Y = supress country graph" msgstr "-Y = supress country graph" msgid "-a name = hide user agent 'name'" msgstr "-a nome = esconder user agent 'nome'" msgid "-c file = use configuration file 'file'" msgstr "-c fich = usar ficheiro de configuracao 'fich'" msgid "-d = print additional debug info" msgstr "-d = mostra info adicional para debug" msgid "-e num = Display num top Entry Pages" msgstr "-e num = Mostrar num top Entry Pages" msgid "-f = Fold sequence errors" msgstr "-f = fold sequence errors" msgid "-g num = Group Domains to 'num' levels" msgstr "-g num = Group Domains to 'num' levels" msgid "-h = print this help message" msgstr "-h = mostra esta mensagem de ajuda" msgid "-i = ignore history file" msgstr "-i = ignorar ficheiro de historico" msgid "-l num = use num background lines on graph" msgstr "-l num = use num background lines on graph" msgid "-m num = Visit timout value (seconds)" msgstr "-m num = Visit timeout value (seconds)" msgid "-n name = hostname to use" msgstr "-n nome = usar hostname 'nome'" msgid "-o dir = output directory to use" msgstr "-o dir = directorio de output a usar" msgid "-p = preserve state (incremental)" msgstr "-p = preservar estado (incremental)" msgid "-q = supress informational messages" msgstr "-q = suprimir mensagens de informacao" msgid "-r name = hide referrer 'name'" msgstr "-r nome = esconder referrer 'nome'" msgid "-s name = hide site 'name'" msgstr "-s nome = esconder site 'nome'" msgid "-t name = report title 'name'" msgstr "-t nome = titulo do relatorio" msgid "-u name = hide URL 'name'" msgstr "-u nome = esconder URL 'nome'" msgid "-v -V = print version information" msgstr "-v -V = mostra info sobre versao" msgid "-x name = Use filename extension 'name'" msgstr "-x name = Use filename extension 'name'" msgid "Afghanistan" msgstr "Afghanistan" msgid "Agents" msgstr "Agents" msgid "Albania" msgstr "Albania" msgid "Algeria" msgstr "Algeria" msgid "American Samoa" msgstr "American Samoa" msgid "Andorra" msgstr "Andorra" msgid "Angola" msgstr "Angola" msgid "Anguilla" msgstr "Anguilla" msgid "Antarctica" msgstr "Antarctica" msgid "Antigua and Barbuda" msgstr "Antigua and Barbuda" msgid "Apr" msgstr "Abr" msgid "April" msgstr "Abril" msgid "Argentina" msgstr "Argentina" msgid "Armenia" msgstr "Armenia" msgid "Aruba" msgstr "Aruba" msgid "Aug" msgstr "Ago" msgid "August" msgstr "Agosto" msgid "Australia" msgstr "Australia" msgid "Austria" msgstr "Austria" msgid "Avg" msgstr "Med" msgid "Azerbaijan" msgstr "Azerbaijan" msgid "Bahamas" msgstr "Bahamas" msgid "Bahrain" msgstr "Bahrain" msgid "Bangladesh" msgstr "Bangladesh" msgid "Barbados" msgstr "Barbados" msgid "Belarus" msgstr "Belarus" msgid "Belgium" msgstr "Belgium" msgid "Belize" msgstr "Belize" msgid "Benin" msgstr "Benin" msgid "Bermuda" msgstr "Bermuda" msgid "Bhutan" msgstr "Bhutan" msgid "Bolivia" msgstr "Bolivia" msgid "Bosnia and Herzegovina" msgstr "Bosnia and Herzegovina" msgid "Botswana" msgstr "Botswana" msgid "Bouvet Island" msgstr "Bouvet Island" msgid "Brazil" msgstr "Brazil" msgid "British Indian Ocean Territory" msgstr "British Indian Ocean Territory" msgid "Brunei Darussalam" msgstr "Brunei Darussalam" msgid "Bulgaria" msgstr "Bulgaria" msgid "Burkina Faso" msgstr "Burkina Faso" msgid "Burundi" msgstr "Burundi" msgid "By" msgstr "By" msgid "Cambodia" msgstr "Cambodia" msgid "Cameroon" msgstr "Cameroon" msgid "Can't allocate enough memory, Top Countries disabled!" msgstr "Impossivel alocar memoria suficiente, Top Countries desligado!" msgid "Can't allocate enough memory, Top Referrers disabled!" msgstr "Impossivel alocar memoria suficiente, Top Referrers desligado!" msgid "Can't allocate enough memory, Top Search Strings disabled!" msgstr "Can't allocate enough memory, Top Search Strings disabled!" msgid "Can't allocate enough memory, Top Sites disabled!" msgstr "Impossivel alocar memoria suficiente, Top Sites desligado!" msgid "Can't allocate enough memory, Top URLs disabled!" msgstr "Impossivel alocar memoria suficiente, Top URLs desligado!" msgid "Can't allocate enough memory, Top User Agents disabled!" msgstr "Impossivel alocar memoria suficiente, Top User Agents desligado!" msgid "Can't allocate enough memory, Top Usernames disabled!" msgstr "Can't allocate enough memory, Top Usernames disabled!" msgid "Canada" msgstr "Canada" msgid "Cape Verde" msgstr "Cape Verde" msgid "Cayman Islands" msgstr "Cayman Islands" msgid "Central African Republic" msgstr "Central African Republic" msgid "Chad" msgstr "Chad" msgid "Chile" msgstr "Chile" msgid "China" msgstr "China" msgid "Christmas Island" msgstr "Christmas Island" msgid "Cocos (Keeling) Islands" msgstr "Cocos (Keeling) Islands" msgid "Code 100 - Continue" msgstr "Code 100 - Continuar" msgid "Code 101 - Switching Protocols" msgstr "Code 101 - Mudana de Protocolos" msgid "Code 200 - OK" msgstr "Code 200 - OK" msgid "Code 201 - Created" msgstr "Code 201 - Criado" msgid "Code 202 - Accepted" msgstr "Code 202 - Aceite" msgid "Code 203 - Non-Authoritative Information" msgstr "Code 203 - Informao no Autoritria" msgid "Code 204 - No Content" msgstr "Code 204 - Sem Contedo" msgid "Code 205 - Reset Content" msgstr "Code 205 - Reinicializa Contedo" msgid "Code 206 - Partial Content" msgstr "Code 206 - Contedo Parcial" msgid "Code 300 - Multiple Choices" msgstr "Code 300 - Vrias Opes" msgid "Code 301 - Moved Permanently" msgstr "Code 301 - Mudana Permanente" msgid "Code 302 - Found" msgstr "Code 302 - Found" msgid "Code 303 - See Other" msgstr "Code 303 - Ver Outro" msgid "Code 304 - Not Modified" msgstr "Code 304 - No Modificado" msgid "Code 305 - Use Proxy" msgstr "Code 305 - Use Proxy" msgid "Code 307 - Moved Temporarily" msgstr "Code 307 - Mudana Temporria" msgid "Code 400 - Bad Request" msgstr "Code 400 - Pedido Invlido" msgid "Code 401 - Unauthorized" msgstr "Code 401 - No Autorizado" msgid "Code 402 - Payment Required" msgstr "Code 402 - Pagamento Necessrio" msgid "Code 403 - Forbidden" msgstr "Code 403 - Proibido" msgid "Code 404 - Not Found" msgstr "Code 404 - No Encontrado" msgid "Code 405 - Method Not Allowed" msgstr "Code 405 - Metodo no Permitido" msgid "Code 406 - Not Acceptable" msgstr "Code 406 - No Aceitvel" msgid "Code 407 - Proxy Authentication Required" msgstr "Code 407 - Necessria Autenticao pelo Proxy" msgid "Code 408 - Request Timeout" msgstr "Code 408 - Timeout do Pedido" msgid "Code 409 - Conflict" msgstr "Code 409 - Conflito" msgid "Code 410 - Gone" msgstr "Code 410 - Desapareceu" msgid "Code 411 - Length Required" msgstr "Code 411 - Necessrio Tamanho" msgid "Code 412 - Precondition Failed" msgstr "Code 412 - Precondio Falhou" msgid "Code 413 - Request Entity Too Large" msgstr "Code 413 - Entidade de Pedido muito Grande" msgid "Code 414 - Request-URI Too Long" msgstr "Code 414 - Entidade de URI muito Granda" msgid "Code 415 - Unsupported Media Type" msgstr "Code 415 - Tipo de Media No Suportado" msgid "Code 416 - Requested Range Not Satisfiable" msgstr "Code 416 - Requested Range Not Satisfiable" msgid "Code 417 - Expectation Failed" msgstr "Code 417 - Expectation Failed" msgid "Code 500 - Internal Server Error" msgstr "Code 500 - Erro Interno do Servidor" msgid "Code 501 - Not Implemented" msgstr "Code 501 - No Implementado" msgid "Code 502 - Bad Gateway" msgstr "Code 502 - Gateway Errado" msgid "Code 503 - Service Unavailable" msgstr "Code 503 - Servio No Disponivel" msgid "Code 504 - Gateway Timeout" msgstr "Code 504 - Timeout do Gateway" msgid "Code 505 - HTTP Version Not Supported" msgstr "Code 505 - Verso de HTTP No Suportada" msgid "Colombia" msgstr "Colombia" msgid "Comoros" msgstr "Comoros" msgid "Congo" msgstr "Congo" msgid "Cook Islands" msgstr "Cook Islands" msgid "Costa Rica" msgstr "Costa Rica" msgid "Cote D'Ivoire (Ivory Coast)" msgstr "Cote D'Ivoire (Ivory Coast)" msgid "Countries" msgstr "Paises" msgid "Country" msgstr "Pais" msgid "Creating output in" msgstr "A gerar saida no" msgid "Croatia (Hrvatska)" msgstr "Croatia (Hrvatska)" msgid "Cuba" msgstr "Cuba" msgid "Cyprus" msgstr "Cyprus" msgid "Czech Republic" msgstr "Czech Republic" msgid "Czechoslovakia (former)" msgstr "Czechoslovakia (former)" msgid "DNS Lookup" msgstr "DNS Lookup" msgid "Daily Avg" msgstr "Mdia Diria" msgid "Daily Statistics" msgstr "Estatstica Diria" msgid "Daily Statistics for" msgstr "Estatstica Diria de" msgid "Daily usage for" msgstr "Uso dirio de" msgid "Day" msgstr "Dia" msgid "Dec" msgstr "Dez" msgid "December" msgstr "Dezembro" msgid "Denmark" msgstr "Denmark" msgid "Djibouti" msgstr "Djibouti" msgid "Dominica" msgstr "Dominica" msgid "Dominican Republic" msgstr "Dominican Republic" msgid "East Timor" msgstr "East Timor" msgid "Ecuador" msgstr "Ecuador" msgid "Egypt" msgstr "Egypt" msgid "El Salvador" msgstr "El Salvador" msgid "English" msgstr "Portuguese" msgid "Entry" msgstr "Entrada" msgid "Equatorial Guinea" msgstr "Equatorial Guinea" msgid "Eritrea" msgstr "Eritrea" msgid "Error adding Referrer node, skipping" msgstr "Erro ao adicionar Referrer, a ignorar" msgid "Error adding Search String Node, skipping" msgstr "Error adding Search String node, skipping" msgid "Error adding URL node, skipping" msgstr "Erro ao adicionar URL, a ignorar" msgid "Error adding User Agent node, skipping" msgstr "Erro ao adicionar User Agent, a ignorar" msgid "Error adding Username node, skipping" msgstr "Error adding Username node, skipping" msgid "Error adding host node (daily), skipping" msgstr "Erro ao adicionar host (diario), a ignorar" msgid "Error adding host node (monthly), skipping" msgstr "Erro ao adicionar host (mensal), a ignorar" msgid "Error: Can't change directory to" msgstr "Erro: Nao foi possivel mudar directorio para" msgid "Error: Can't open log file" msgstr "Erro: Nao foi possivel abrir ficheiro de registo" msgid "Error: Ignoring invalid history record" msgstr "Erro: A ignorar registo invalido no ficheiro de historico" msgid "Error: Skipping oversized log record" msgstr "Erro: A ignorar registo grande de mais" msgid "Error: Skipping record (bad date)" msgstr "Erro: A ignorar registo (data invalida)" msgid "Error: Unable to lock DNS cache file" msgstr "Error: Unable to lock DNS cache file" msgid "Error: Unable to open DNS cache file" msgstr "Error: Unable to open DNS cache file" msgid "Error: Unable to open configuration file" msgstr "Erro: Impossivel abrir ficheiro de configuracao" msgid "Error: Unable to open file" msgstr "Erro: Impossivel abrir ficheiro" msgid "Error: Unable to restore run data" msgstr "Error: Unable to restore run data" msgid "Error: Unable to save current run data" msgstr "Erro: Impossivel guardar dados da execucao currente" msgid "Error: Unable to write history file" msgstr "Erro: Impossivel escrever no ficheiro de historico" msgid "Estonia" msgstr "Estonia" msgid "Ethiopia" msgstr "Ethiopia" msgid "Exit" msgstr "Saida" msgid "Falkland Islands (Malvinas)" msgstr "Falkland Islands (Malvinas)" msgid "Faroe Islands" msgstr "Faroe Islands" msgid "Feb" msgstr "Fev" msgid "February" msgstr "Fevereiro" msgid "Fiji" msgstr "Fiji" msgid "Files" msgstr "Ficheiros" msgid "Files per Day" msgstr "Files por Dia" msgid "Finland" msgstr "Finland" msgid "France" msgstr "France" msgid "France; Metropolitan" msgstr "France, Metropolitan" msgid "French Guiana" msgstr "French Guiana" msgid "French Polynesia" msgstr "French Polynesia" msgid "French Southern Territories" msgstr "French Southern Territories" msgid "Gabon" msgstr "Gabon" msgid "Gambia" msgstr "Gambia" msgid "Generated" msgstr "Gerado em" msgid "Generating report for" msgstr "A gerar relatorio de" msgid "Generating summary report" msgstr "A gerar relatorio sumario" msgid "Georgia" msgstr "Georgia" msgid "Germany" msgstr "Germany" msgid "Ghana" msgstr "Ghana" msgid "Gibraltar" msgstr "Gibraltar" msgid "Great Britain (UK)" msgstr "Great Britain (UK)" msgid "Greece" msgstr "Greece" msgid "Greenland" msgstr "Greenland" msgid "Grenada" msgstr "Grenada" msgid "Guadeloupe" msgstr "Guadeloupe" msgid "Guam" msgstr "Guam" msgid "Guatemala" msgstr "Guatemala" msgid "Guinea" msgstr "Guinea" msgid "Guinea-Bissau" msgstr "Guinea-Bissau" msgid "Guyana" msgstr "Guyana" msgid "Haiti" msgstr "Haiti" msgid "Heard and McDonald Islands" msgstr "Heard and McDonald Islands" msgid "History file not found..." msgstr "Ficheiro de historico nao encontrado..." msgid "Hits" msgstr "Hits" msgid "Hits by Response Code" msgstr "Hits por Cdigo de Resposta" msgid "Hits per Day" msgstr "Hits por Dia" msgid "Hits per Hour" msgstr "Hits por Hora" msgid "Honduras" msgstr "Honduras" msgid "Hong Kong" msgstr "Hong Kong" msgid "Hostname" msgstr "Hostname" msgid "Hostname for reports is" msgstr "Hostname para relatorios e'" msgid "Hour" msgstr "Hora" msgid "Hourly Statistics" msgstr "Estatstica por Hora" msgid "Hourly Statistics for" msgstr "Estatstica por Hora de" msgid "Hourly usage for" msgstr "Uso por hora de" msgid "Hungary" msgstr "Hungary" msgid "Iceland" msgstr "Iceland" msgid "Ignoring previous history..." msgstr "A ignorar historico anterior..." msgid "India" msgstr "India" msgid "Indonesia" msgstr "Indonesia" msgid "International (int)" msgstr "International (int)" msgid "Iran" msgstr "Iran" msgid "Iraq" msgstr "Iraq" msgid "Ireland" msgstr "Ireland" msgid "Israel" msgstr "Israel" msgid "Italy" msgstr "Italy" msgid "Jamaica" msgstr "Jamaica" msgid "Jan" msgstr "Jan" msgid "January" msgstr "Janeiro" msgid "Japan" msgstr "Japan" msgid "Jordan" msgstr "Jordan" msgid "Jul" msgstr "Jul" msgid "July" msgstr "Julho" msgid "Jun" msgstr "Jun" msgid "June" msgstr "Junho" msgid "KBytes" msgstr "KBytes" msgid "KBytes per Day" msgstr "KBytes por Dia" msgid "Kazakhstan" msgstr "Kazakhstan" msgid "Kenya" msgstr "Kenya" msgid "Kiribati" msgstr "Kiribati" msgid "Korea (North)" msgstr "Korea (North)" msgid "Korea (South)" msgstr "Korea (South)" msgid "Kuwait" msgstr "Kuwait" msgid "Kyrgyzstan" msgstr "Kyrgyzstan" msgid "Laos" msgstr "Laos" msgid "Last 12 Months" msgstr "ltimos 12 Meses" msgid "Latvia" msgstr "Latvia" msgid "Lebanon" msgstr "Lebanon" msgid "Lesotho" msgstr "Lesotho" msgid "Liberia" msgstr "Liberia" msgid "Libya" msgstr "Libya" msgid "Liechtenstein" msgstr "Liechtenstein" msgid "Lithuania" msgstr "Lithuania" msgid "Luxembourg" msgstr "Luxembourg" msgid "Macau" msgstr "Macau" msgid "Macedonia" msgstr "Macedonia" msgid "Madagascar" msgstr "Madagascar" msgid "Malawi" msgstr "Malawi" msgid "Malaysia" msgstr "Malaysia" msgid "Maldives" msgstr "Maldives" msgid "Mali" msgstr "Mali" msgid "Malta" msgstr "Malta" msgid "Mar" msgstr "Mar" msgid "March" msgstr "Maro" msgid "Marshall Islands" msgstr "Marshall Islands" msgid "Martinique" msgstr "Martinique" msgid "Mauritania" msgstr "Mauritania" msgid "Mauritius" msgstr "Mauritius" msgid "Max" msgstr "Max" msgid "May" msgstr "Maio" msgid "Mayotte" msgstr "Mayotte" msgid "Mexico" msgstr "Mexico" msgid "Micronesia" msgstr "Micronesia" msgid "Moldova" msgstr "Moldova" msgid "Monaco" msgstr "Monaco" msgid "Mongolia" msgstr "Mongolia" msgid "Month" msgstr "Ms" msgid "Monthly Statistics for" msgstr "Estatstica Mensal de" msgid "Monthly Totals" msgstr "Totais Mensais" msgid "Montserrat" msgstr "Montserrat" msgid "Morocco" msgstr "Morocco" msgid "Mozambique" msgstr "Mozambique" msgid "Myanmar" msgstr "Myanmar" msgid "Namibia" msgstr "Namibia" msgid "Nato field (nato)" msgstr "Nato field (nato)" msgid "Nauru" msgstr "Nauru" msgid "Nepal" msgstr "Nepal" msgid "Netherlands" msgstr "Netherlands" msgid "Netherlands Antilles" msgstr "Netherlands Antilles" msgid "Network" msgstr "Network" msgid "Neutral Zone" msgstr "Neutral Zone" msgid "New Caledonia" msgstr "New Caledonia" msgid "New Zealand (Aotearoa)" msgstr "New Zealand (Aotearoa)" msgid "Nicaragua" msgstr "Nicaragua" msgid "Niger" msgstr "Niger" msgid "Nigeria" msgstr "Nigeria" msgid "Niue" msgstr "Niue" msgid "No cache file specified, aborting..." msgstr "No cache file specified, aborting..." msgid "No valid records found!" msgstr "Nao foram encontrado registo validos!" msgid "Non-Profit Organization" msgstr "Non-Profit Organization" msgid "None to process" msgstr "None to process" msgid "Norfolk Island" msgstr "Norfolk Island" msgid "Northern Mariana Islands" msgstr "Northern Mariana Islands" msgid "Norway" msgstr "Norway" msgid "Nov" msgstr "Nov" msgid "November" msgstr "Novembro" msgid "Oct" msgstr "Out" msgid "October" msgstr "Outubro" msgid "Old style Arpanet (arpa)" msgstr "Old style Arpanet (arpa)" msgid "Oman" msgstr "Oman" msgid "Other" msgstr "Outros" msgid "Pages" msgstr "Pages" msgid "Pages per Day" msgstr "Paginas por Dia" msgid "Pakistan" msgstr "Pakistan" msgid "Palau" msgstr "Palau" msgid "Panama" msgstr "Panama" msgid "Papua New Guinea" msgstr "Papua New Guinea" msgid "Paraguay" msgstr "Paraguay" msgid "Peru" msgstr "Peru" msgid "Philippines" msgstr "Philippines" msgid "Pitcairn" msgstr "Pitcairn" msgid "Poland" msgstr "Poland" msgid "Portugal" msgstr "Portugal" msgid "Previous run data not found..." msgstr "Dados da execucao anterior nao encontrados..." msgid "Puerto Rico" msgstr "Puerto Rico" msgid "Qatar" msgstr "Qatar" msgid "Reading history file..." msgstr "A ler ficheiro de historico..." msgid "Reading previous run data..." msgstr "A ler dados da execucao anterior..." msgid "Referrer" msgstr "Referrer" msgid "Referrers" msgstr "Referrers" msgid "Reunion" msgstr "Reunion" msgid "Romania" msgstr "Romania" msgid "Russian Federation" msgstr "Russian Federation" msgid "Rwanda" msgstr "Rwanda" msgid "S. Georgia and S. Sandwich Isls." msgstr "S. Georgia and S. Sandwich Isls." msgid "Saint Kitts and Nevis" msgstr "Saint Kitts and Nevis" msgid "Saint Lucia" msgstr "Saint Lucia" msgid "Saint Vincent and the Grenadines" msgstr "Saint Vincent and the Grenadines" msgid "Samoa" msgstr "Samoa" msgid "San Marino" msgstr "San Marino" msgid "Sao Tome and Principe" msgstr "Sao Tome and Principe" msgid "Saudi Arabia" msgstr "Saudi Arabia" msgid "Saving current run data..." msgstr "A guardar dados da execucao currente..." msgid "Saving history information..." msgstr "A guardar informacao no historico..." msgid "Search" msgstr "Pesquisa" msgid "Search String" msgstr "String de Pesquisa" msgid "Senegal" msgstr "Senegal" msgid "Sep" msgstr "Set" msgid "September" msgstr "Setembro" msgid "Seychelles" msgstr "Seychelles" msgid "Sierra Leone" msgstr "Sierra Leone" msgid "Singapore" msgstr "Singapore" msgid "Sites" msgstr "Sites" msgid "Skipping Netscape header record" msgstr "A ignorar registo com cabecalho do Netscape" msgid "Skipping bad record" msgstr "A ignorar registo invalido" msgid "Slovak Republic" msgstr "Slovak Republic" msgid "Slovenia" msgstr "Slovenia" msgid "Solomon Islands" msgstr "Solomon Islands" msgid "Somalia" msgstr "Somalia" msgid "South Africa" msgstr "South Africa" msgid "Spain" msgstr "Spain" msgid "Sri Lanka" msgstr "Sri Lanka" msgid "St. Helena" msgstr "St. Helena" msgid "St. Pierre and Miquelon" msgstr "St. Pierre and Miquelon" msgid "Sudan" msgstr "Sudan" msgid "Summary Period" msgstr "Sumrio do Periodo" msgid "Summary by Month" msgstr "Sumrio por Ms" msgid "Suriname" msgstr "Suriname" msgid "Svalbard and Jan Mayen Islands" msgstr "Svalbard and Jan Mayen Islands" msgid "Swaziland" msgstr "Swaziland" msgid "Sweden" msgstr "Sweden" msgid "Switzerland" msgstr "Switzerland" msgid "Syria" msgstr "Syria" msgid "Taiwan" msgstr "Taiwan" msgid "Tajikistan" msgstr "Tajikistan" msgid "Tanzania" msgstr "Tanzania" msgid "Thailand" msgstr "Thailand" msgid "Togo" msgstr "Togo" msgid "Tokelau" msgstr "Tokelau" msgid "Tonga" msgstr "Tonga" msgid "Top" msgstr "Top" msgid "Total" msgstr "Total" msgid "Total Countries" msgstr "Paises" msgid "Total Entry Pages" msgstr "Total Pginas de Entrada" msgid "Total Exit Pages" msgstr "Total Pginas de Sada" msgid "Total Files" msgstr "Total de Ficheiros" msgid "Total Hits" msgstr "Total de Hits" msgid "Total KBytes" msgstr "Total de KBytes" msgid "Total Referrers" msgstr "Referrers" msgid "Total Search Strings" msgstr "Total Strings de Pesquisa" msgid "Total Sites" msgstr "Sites" msgid "Total URLs" msgstr "URLs" msgid "Total Unique Referrers" msgstr "Total de Referrers nicos" msgid "Total Unique Sites" msgstr "Total de Sites nicos" msgid "Total Unique URLs" msgstr "Total de URLs nicos" msgid "Total Unique User Agents" msgstr "Total de User Agents nicos" msgid "Total Unique Usernames" msgstr "Total de Usernames unicos" msgid "Total User Agents" msgstr "User Agents" msgid "Total Usernames" msgstr "Total Usernames" msgid "Totals" msgstr "Totais" msgid "Trinidad and Tobago" msgstr "Trinidad and Tobago" msgid "Tunisia" msgstr "Tunisia" msgid "Turkey" msgstr "Turkey" msgid "Turkmenistan" msgstr "Turkmenistan" msgid "Turks and Caicos Islands" msgstr "Turks and Caicos Islands" msgid "Tuvalu" msgstr "Tuvalu" msgid "URL" msgstr "URL" msgid "URLs" msgstr "URLs" msgid "US Commercial" msgstr "US Commercial" msgid "US Educational" msgstr "US Educational" msgid "US Government" msgstr "US Government" msgid "US Military" msgstr "US Military" msgid "US Minor Outlying Islands" msgstr "US Minor Outlying Islands" msgid "USSR (former)" msgstr "USSR (former)" msgid "Uganda" msgstr "Uganda" msgid "Ukraine" msgstr "Ukraine" msgid "Undefined response code" msgstr "Undefined response code" msgid "United Arab Emirates" msgstr "United Arab Emirates" msgid "United Kingdom" msgstr "United Kingdom" msgid "United States" msgstr "United States" msgid "Unresolved/Unknown" msgstr "Unresolved/Unknown" msgid "Uruguay" msgstr "Uruguay" msgid "Usage" msgstr "Utilizacao" msgid "Usage Statistics for" msgstr "Estatsticas de Utilizao de" msgid "Usage by Country for" msgstr "Utilizao por Pas de" msgid "Usage summary for" msgstr "Sumrio de utilizao de" msgid "User Agent" msgstr "User Agent" msgid "Username" msgstr "Username" msgid "Users" msgstr "Utilizadores" msgid "Using DNS cache file" msgstr "Using DNS cache file" msgid "Using logfile" msgstr "A usar registo" msgid "Uzbekistan" msgstr "Uzbekistan" msgid "Vanuatu" msgstr "Vanuatu" msgid "Vatican City State (Holy See)" msgstr "Vatican City State (Holy See)" msgid "Venezuela" msgstr "Venezuela" msgid "Viet Nam" msgstr "Viet Nam" msgid "View All Referrers" msgstr "Ver todos os Referrers" msgid "View All Search Strings" msgstr "Ver todas as Strings de Pesquisa" msgid "View All Sites" msgstr "Ver todos os Sites" msgid "View All URLs" msgstr "Ver todos os URLs" msgid "View All User Agents" msgstr "Ver todos os User Agents" msgid "View All Usernames" msgstr "Ver todos os Usernames" msgid "Virgin Islands (British)" msgstr "Virgin Islands (British)" msgid "Virgin Islands (U.S.)" msgstr "Virgin Islands (U.S.)" msgid "Visits" msgstr "Visitas" msgid "Visits per Day" msgstr "Visitas por Dia" msgid "Wallis and Futuna Islands" msgstr "Wallis and Futuna Islands" msgid "Warning: Invalid keyword" msgstr "Aviso: Parametro invalido" msgid "Warning: Possible duplicate data found" msgstr "Aviso: Encontrados dados possivelmente duplicados" msgid "Warning: String exceeds storage size" msgstr "Aviso: Cadeia de caracteres excede tamanho de armazenamento" msgid "Warning: Truncating oversized date field" msgstr "Aviso: A truncar campo de data grande de mais" msgid "Warning: Truncating oversized hostname" msgstr "Aviso: A truncar hostname grande de mais" msgid "Warning: Truncating oversized referrer field" msgstr "Aviso: A truncar campo de referrer grande de mais" msgid "Warning: Truncating oversized request field" msgstr "Aviso: A truncar campo de pedido grande de mais" msgid "Warning: Truncating oversized username" msgstr "Warning: Truncating oversized username" msgid "Western Sahara" msgstr "Western Sahara" msgid "Yemen" msgstr "Yemen" msgid "Yugoslavia" msgstr "Yugoslavia" msgid "Zaire" msgstr "Zaire" msgid "Zambia" msgstr "Zambia" msgid "Zimbabwe" msgstr "Zimbabwe" msgid "[options] [log file]" msgstr "[opcoes] [ficheiro de log]" msgid "addresses" msgstr "enderecos" msgid "bad" msgstr "maus" msgid "current directory" msgstr "directorio corrente" msgid "ignored" msgstr "ignorados" msgid "in" msgstr "em" msgid "of" msgstr "de" msgid "records" msgstr "registos" msgid "seconds" msgstr "segundos" webdruid-0.5.4.orig/po/ko.po0000644000000000000000000006161210066113350015612 0ustar rootroot00000000000000msgid "" msgstr "" "Project-Id-Version: 1.0\n" "PO-Revision-Date: 2003-05-25 23:29+0200\n" "Last-Translator: Johan Poirier \n" "Language-Team: French \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=ISO-8859-1\n" "Content-Transfer-Encoding: 8bit" msgid "-A num = Display num top agents" msgstr "-A num = ' Ʈ' " msgid "-C num = Display num top countries" msgstr "-C num = ' ' " msgid "-D name = Use DNS Cache file 'name'" msgstr "-D name = Use DNS Cache file 'name'" msgid "-E num = Display num top Exit Pages" msgstr "-E num = Display num top Exit Pages" msgid "-F type = Log type. type= (clf | ftp | squid)" msgstr "-F type = Log type. type= (clf | ftp | squid)" msgid "-G = supress hourly graph" msgstr "-G = Ϻ ׷ " msgid "-H = supress hourly stats" msgstr "-H = ð " msgid "-I name = Index alias 'name'" msgstr "-I name = ϸ" msgid "-L = supress color coded graph legends" msgstr "-L = supress color coded graph legends" msgid "-N num = Number of DNS processes (0=disable)" msgstr "-N num = Number of DNS processes (0=disable)" msgid "-P name = Page type extension 'name'" msgstr "-P name = Page type extension 'name'" msgid "-Q = supress _ALL_ messages" msgstr "-Q = " msgid "-R num = Display num top referrers" msgstr "-R num = ' ۷' " msgid "-S num = Display num top sites" msgstr "-S num = ' Ʈ' " msgid "-T = print timing information" msgstr "-T = ð " msgid "-U num = Display num top URLs" msgstr "-U num = ' URL' " msgid "-X = Hide individual sites" msgstr "-X = Hide individual sites" msgid "-Y = supress country graph" msgstr "-Y = supress country graph" msgid "-a name = hide user agent 'name'" msgstr "-a name = ش Ʈ " msgid "-c file = use configuration file 'file'" msgstr "-c file = " msgid "-d = print additional debug info" msgstr "-d = ߰ " msgid "-e num = Display num top Entry Pages" msgstr "-e num = Display num top Entry Pages" msgid "-f = Fold sequence errors" msgstr "-f = fold sequence errors" msgid "-g num = Group Domains to 'num' levels" msgstr "-g num = Group Domains to 'num' levels" msgid "-h = print this help message" msgstr "-h = ȭ " msgid "-i = ignore history file" msgstr "-i = 丮 " msgid "-l num = use num background lines on graph" msgstr "-l num = use num background lines on graph" msgid "-m num = Visit timout value (seconds)" msgstr "-m num = Visit timeout value (seconds)" msgid "-n name = hostname to use" msgstr "-n name = ȣƮ" msgid "-o dir = output directory to use" msgstr "-o dir = 丮" msgid "-p = preserve state (incremental)" msgstr "-p = (incremental)" msgid "-q = supress informational messages" msgstr "-q = Ϲ " msgid "-r name = hide referrer 'name'" msgstr "-r name = ش ۷ " msgid "-s name = hide site 'name'" msgstr "-s name = ش Ʈ " msgid "-t name = report title 'name'" msgstr "-t name = ŸƲ" msgid "-u name = hide URL 'name'" msgstr "-u name = ش URL " msgid "-v -V = print version information" msgstr "-v -V = ǹȣ " msgid "-x name = Use filename extension 'name'" msgstr "-x name = Ȯ" msgid "Afghanistan" msgstr "Afghanistan" msgid "Agents" msgstr "Ʈ" msgid "Albania" msgstr "Albania" msgid "Algeria" msgstr "Algeria" msgid "American Samoa" msgstr "American Samoa" msgid "Andorra" msgstr "Andorra" msgid "Angola" msgstr "Angola" msgid "Anguilla" msgstr "Anguilla" msgid "Antarctica" msgstr "Antarctica" msgid "Antigua and Barbuda" msgstr "Antigua and Barbuda" msgid "Apr" msgstr "Apr" msgid "April" msgstr "April" msgid "Argentina" msgstr "Argentina" msgid "Armenia" msgstr "Armenia" msgid "Aruba" msgstr "Aruba" msgid "Aug" msgstr "Aug" msgid "August" msgstr "August" msgid "Australia" msgstr "Australia" msgid "Austria" msgstr "Austria" msgid "Avg" msgstr "" msgid "Azerbaijan" msgstr "Azerbaijan" msgid "Bahamas" msgstr "Bahamas" msgid "Bahrain" msgstr "Bahrain" msgid "Bangladesh" msgstr "Bangladesh" msgid "Barbados" msgstr "Barbados" msgid "Belarus" msgstr "Belarus" msgid "Belgium" msgstr "Belgium" msgid "Belize" msgstr "Belize" msgid "Benin" msgstr "Benin" msgid "Bermuda" msgstr "Bermuda" msgid "Bhutan" msgstr "Bhutan" msgid "Bolivia" msgstr "Bolivia" msgid "Bosnia and Herzegovina" msgstr "Bosnia and Herzegovina" msgid "Botswana" msgstr "Botswana" msgid "Bouvet Island" msgstr "Bouvet Island" msgid "Brazil" msgstr "Brazil" msgid "British Indian Ocean Territory" msgstr "British Indian Ocean Territory" msgid "Brunei Darussalam" msgstr "Brunei Darussalam" msgid "Bulgaria" msgstr "Bulgaria" msgid "Burkina Faso" msgstr "Burkina Faso" msgid "Burundi" msgstr "Burundi" msgid "By" msgstr "By" msgid "Cambodia" msgstr "Cambodia" msgid "Cameroon" msgstr "Cameroon" msgid "Can't allocate enough memory, Top Countries disabled!" msgstr "޸ , ' ' dzʶ!" msgid "Can't allocate enough memory, Top Referrers disabled!" msgstr "޸ , ' ۷' dzʶ!" msgid "Can't allocate enough memory, Top Search Strings disabled!" msgstr "Can't allocate enough memory, Top Search Strings disabled!" msgid "Can't allocate enough memory, Top Sites disabled!" msgstr "޸ , ' Ʈ' dzʶ!" msgid "Can't allocate enough memory, Top URLs disabled!" msgstr "޸ , ' URL' dzʶ!" msgid "Can't allocate enough memory, Top User Agents disabled!" msgstr "޸ , ' Ʈ' dzʶ!" msgid "Can't allocate enough memory, Top Usernames disabled!" msgstr "Can't allocate enough memory, Top Usernames disabled!" msgid "Canada" msgstr "Canada" msgid "Cape Verde" msgstr "Cape Verde" msgid "Cayman Islands" msgstr "Cayman Islands" msgid "Central African Republic" msgstr "Central African Republic" msgid "Chad" msgstr "Chad" msgid "Chile" msgstr "Chile" msgid "China" msgstr "China" msgid "Christmas Island" msgstr "Christmas Island" msgid "Cocos (Keeling) Islands" msgstr "Cocos (Keeling) Islands" msgid "Code 100 - Continue" msgstr "Code 100 - Continue" msgid "Code 101 - Switching Protocols" msgstr "Code 101 - Switching Protocols" msgid "Code 200 - OK" msgstr "Code 200 - OK" msgid "Code 201 - Created" msgstr "Code 201 - Created" msgid "Code 202 - Accepted" msgstr "Code 202 - Accepted" msgid "Code 203 - Non-Authoritative Information" msgstr "Code 203 - Non-Authoritative Information" msgid "Code 204 - No Content" msgstr "Code 204 - No Content" msgid "Code 205 - Reset Content" msgstr "Code 205 - Reset Content" msgid "Code 206 - Partial Content" msgstr "Code 206 - Partial Content" msgid "Code 300 - Multiple Choices" msgstr "Code 300 - Multiple Choices" msgid "Code 301 - Moved Permanently" msgstr "Code 301 - Moved Permanently" msgid "Code 302 - Found" msgstr "Code 302 - Found" msgid "Code 303 - See Other" msgstr "Code 303 - See Other" msgid "Code 304 - Not Modified" msgstr "Code 304 - Not Modified" msgid "Code 305 - Use Proxy" msgstr "Code 305 - Use Proxy" msgid "Code 307 - Moved Temporarily" msgstr "Code 307 - Moved Temporarily" msgid "Code 400 - Bad Request" msgstr "Code 400 - Bad Request" msgid "Code 401 - Unauthorized" msgstr "Code 401 - Unauthorized" msgid "Code 402 - Payment Required" msgstr "Code 402 - Payment Required" msgid "Code 403 - Forbidden" msgstr "Code 403 - Forbidden" msgid "Code 404 - Not Found" msgstr "Code 404 - Not Found" msgid "Code 405 - Method Not Allowed" msgstr "Code 405 - Method Not Allowed" msgid "Code 406 - Not Acceptable" msgstr "Code 406 - Not Acceptable" msgid "Code 407 - Proxy Authentication Required" msgstr "Code 407 - Proxy Authentication Required" msgid "Code 408 - Request Timeout" msgstr "Code 408 - Request Timeout" msgid "Code 409 - Conflict" msgstr "Code 409 - Conflict" msgid "Code 410 - Gone" msgstr "Code 410 - Gone" msgid "Code 411 - Length Required" msgstr "Code 411 - Length Required" msgid "Code 412 - Precondition Failed" msgstr "Code 412 - Precondition Failed" msgid "Code 413 - Request Entity Too Large" msgstr "Code 413 - Request Entity Too Large" msgid "Code 414 - Request-URI Too Long" msgstr "Code 414 - Request-URI Too Long" msgid "Code 415 - Unsupported Media Type" msgstr "Code 415 - Unsupported Media Type" msgid "Code 416 - Requested Range Not Satisfiable" msgstr "Code 416 - Requested Range Not Satisfiable" msgid "Code 417 - Expectation Failed" msgstr "Code 417 - Expectation Failed" msgid "Code 500 - Internal Server Error" msgstr "Code 500 - Internal Server Error" msgid "Code 501 - Not Implemented" msgstr "Code 501 - Not Implemented" msgid "Code 502 - Bad Gateway" msgstr "Code 502 - Bad Gateway" msgid "Code 503 - Service Unavailable" msgstr "Code 503 - Service Unavailable" msgid "Code 504 - Gateway Timeout" msgstr "Code 504 - Gateway Timeout" msgid "Code 505 - HTTP Version Not Supported" msgstr "Code 505 - HTTP Version Not Supported" msgid "Colombia" msgstr "Colombia" msgid "Comoros" msgstr "Comoros" msgid "Congo" msgstr "Congo" msgid "Cook Islands" msgstr "Cook Islands" msgid "Costa Rica" msgstr "Costa Rica" msgid "Cote D'Ivoire (Ivory Coast)" msgstr "Cote D'Ivoire (Ivory Coast)" msgid "Countries" msgstr "" msgid "Country" msgstr "" msgid "Creating output in" msgstr " 丮:" msgid "Croatia (Hrvatska)" msgstr "Croatia (Hrvatska)" msgid "Cuba" msgstr "Cuba" msgid "Cyprus" msgstr "Cyprus" msgid "Czech Republic" msgstr "Czech Republic" msgid "Czechoslovakia (former)" msgstr "Czechoslovakia (former)" msgid "DNS Lookup" msgstr "DNS Lookup" msgid "Daily Avg" msgstr " " msgid "Daily Statistics" msgstr "Ϻ " msgid "Daily Statistics for" msgstr "Ϻ " msgid "Daily usage for" msgstr "Daily usage for" msgid "Day" msgstr "" msgid "Dec" msgstr "Dec" msgid "December" msgstr "December" msgid "Denmark" msgstr "Denmark" msgid "Djibouti" msgstr "Djibouti" msgid "Dominica" msgstr "Dominica" msgid "Dominican Republic" msgstr "Dominican Republic" msgid "East Timor" msgstr "East Timor" msgid "Ecuador" msgstr "Ecuador" msgid "Egypt" msgstr "Egypt" msgid "El Salvador" msgstr "El Salvador" msgid "English" msgstr "Korean" msgid "Entry" msgstr "Entry" msgid "Equatorial Guinea" msgstr "Equatorial Guinea" msgid "Eritrea" msgstr "Eritrea" msgid "Error adding Referrer node, skipping" msgstr "۷ ߰ , " msgid "Error adding Search String Node, skipping" msgstr "Error adding Search String node, skipping" msgid "Error adding URL node, skipping" msgstr "URL ߰ , " msgid "Error adding User Agent node, skipping" msgstr "Ʈ ߰ , " msgid "Error adding Username node, skipping" msgstr "Error adding Username node, skipping" msgid "Error adding host node (daily), skipping" msgstr "ȣƮ ߰ (Ϻ), " msgid "Error adding host node (monthly), skipping" msgstr "ȣƮ ߰ (), " msgid "Error: Can't change directory to" msgstr ": 丮 " msgid "Error: Can't open log file" msgstr ": α ã " msgid "Error: Ignoring invalid history record" msgstr ": 丮 ڵ " msgid "Error: Skipping oversized log record" msgstr ": ʰ α ڵ " msgid "Error: Skipping record (bad date)" msgstr ": ڵ (߸ ¥)" msgid "Error: Unable to lock DNS cache file" msgstr "Error: Unable to lock DNS cache file" msgid "Error: Unable to open DNS cache file" msgstr "Error: Unable to open DNS cache file" msgid "Error: Unable to open configuration file" msgstr ": ã " msgid "Error: Unable to open file" msgstr ": ã " msgid "Error: Unable to restore run data" msgstr ": ؼ " msgid "Error: Unable to save current run data" msgstr ": " msgid "Error: Unable to write history file" msgstr ": 丮 " msgid "Estonia" msgstr "Estonia" msgid "Ethiopia" msgstr "Ethiopia" msgid "Exit" msgstr "Exit" msgid "Falkland Islands (Malvinas)" msgstr "Falkland Islands (Malvinas)" msgid "Faroe Islands" msgstr "Faroe Islands" msgid "Feb" msgstr "Feb" msgid "February" msgstr "February" msgid "Fiji" msgstr "Fiji" msgid "Files" msgstr "Files" msgid "Files per Day" msgstr "Files per Day" msgid "Finland" msgstr "Finland" msgid "France" msgstr "France" msgid "France; Metropolitan" msgstr "France, Metropolitan" msgid "French Guiana" msgstr "French Guiana" msgid "French Polynesia" msgstr "French Polynesia" msgid "French Southern Territories" msgstr "French Southern Territories" msgid "Gabon" msgstr "Gabon" msgid "Gambia" msgstr "Gambia" msgid "Generated" msgstr " " msgid "Generating report for" msgstr "Ʈ :" msgid "Generating summary report" msgstr "Ʈ " msgid "Georgia" msgstr "Georgia" msgid "Germany" msgstr "Germany" msgid "Ghana" msgstr "Ghana" msgid "Gibraltar" msgstr "Gibraltar" msgid "Great Britain (UK)" msgstr "Great Britain (UK)" msgid "Greece" msgstr "Greece" msgid "Greenland" msgstr "Greenland" msgid "Grenada" msgstr "Grenada" msgid "Guadeloupe" msgstr "Guadeloupe" msgid "Guam" msgstr "Guam" msgid "Guatemala" msgstr "Guatemala" msgid "Guinea" msgstr "Guinea" msgid "Guinea-Bissau" msgstr "Guinea-Bissau" msgid "Guyana" msgstr "Guyana" msgid "Haiti" msgstr "Haiti" msgid "Heard and McDonald Islands" msgstr "Heard and McDonald Islands" msgid "History file not found..." msgstr "丮 ã " msgid "Hits" msgstr "Hits" msgid "Hits by Response Code" msgstr " ڵ庰 Ʈ" msgid "Hits per Day" msgstr "Hits per Day" msgid "Hits per Hour" msgstr "Hits per Hour" msgid "Honduras" msgstr "Honduras" msgid "Hong Kong" msgstr "Hong Kong" msgid "Hostname" msgstr "ȣƮ" msgid "Hostname for reports is" msgstr "ȣƮ:" msgid "Hour" msgstr "ð" msgid "Hourly Statistics" msgstr "ð뺰 " msgid "Hourly Statistics for" msgstr "ð뺰 " msgid "Hourly usage for" msgstr "Hourly usage for" msgid "Hungary" msgstr "Hungary" msgid "Iceland" msgstr "Iceland" msgid "Ignoring previous history..." msgstr " 丮 " msgid "India" msgstr "India" msgid "Indonesia" msgstr "Indonesia" msgid "International (int)" msgstr "International (int)" msgid "Iran" msgstr "Iran" msgid "Iraq" msgstr "Iraq" msgid "Ireland" msgstr "Ireland" msgid "Israel" msgstr "Israel" msgid "Italy" msgstr "Italy" msgid "Jamaica" msgstr "Jamaica" msgid "Jan" msgstr "Jan" msgid "January" msgstr "January" msgid "Japan" msgstr "Japan" msgid "Jordan" msgstr "Jordan" msgid "Jul" msgstr "Jul" msgid "July" msgstr "July" msgid "Jun" msgstr "Jun" msgid "June" msgstr "June" msgid "KBytes" msgstr "KBytes" msgid "KBytes per Day" msgstr "KBytes per Day" msgid "Kazakhstan" msgstr "Kazakhstan" msgid "Kenya" msgstr "Kenya" msgid "Kiribati" msgstr "Kiribati" msgid "Korea (North)" msgstr "Korea (North)" msgid "Korea (South)" msgstr "Korea (South)" msgid "Kuwait" msgstr "Kuwait" msgid "Kyrgyzstan" msgstr "Kyrgyzstan" msgid "Laos" msgstr "Laos" msgid "Last 12 Months" msgstr "Last 12 Months" msgid "Latvia" msgstr "Latvia" msgid "Lebanon" msgstr "Lebanon" msgid "Lesotho" msgstr "Lesotho" msgid "Liberia" msgstr "Liberia" msgid "Libya" msgstr "Libya" msgid "Liechtenstein" msgstr "Liechtenstein" msgid "Lithuania" msgstr "Lithuania" msgid "Luxembourg" msgstr "Luxembourg" msgid "Macau" msgstr "Macau" msgid "Macedonia" msgstr "Macedonia" msgid "Madagascar" msgstr "Madagascar" msgid "Malawi" msgstr "Malawi" msgid "Malaysia" msgstr "Malaysia" msgid "Maldives" msgstr "Maldives" msgid "Mali" msgstr "Mali" msgid "Malta" msgstr "Malta" msgid "Mar" msgstr "Mar" msgid "March" msgstr "March" msgid "Marshall Islands" msgstr "Marshall Islands" msgid "Martinique" msgstr "Martinique" msgid "Mauritania" msgstr "Mauritania" msgid "Mauritius" msgstr "Mauritius" msgid "Max" msgstr "Max" msgid "May" msgstr "May" msgid "Mayotte" msgstr "Mayotte" msgid "Mexico" msgstr "Mexico" msgid "Micronesia" msgstr "Micronesia" msgid "Moldova" msgstr "Moldova" msgid "Monaco" msgstr "Monaco" msgid "Mongolia" msgstr "Mongolia" msgid "Month" msgstr "" msgid "Monthly Statistics for" msgstr " " msgid "Monthly Totals" msgstr " Ѱ" msgid "Montserrat" msgstr "Montserrat" msgid "Morocco" msgstr "Morocco" msgid "Mozambique" msgstr "Mozambique" msgid "Myanmar" msgstr "Myanmar" msgid "Namibia" msgstr "Namibia" msgid "Nato field (nato)" msgstr "Nato field (nato)" msgid "Nauru" msgstr "Nauru" msgid "Nepal" msgstr "Nepal" msgid "Netherlands" msgstr "Netherlands" msgid "Netherlands Antilles" msgstr "Netherlands Antilles" msgid "Network" msgstr "Network" msgid "Neutral Zone" msgstr "Neutral Zone" msgid "New Caledonia" msgstr "New Caledonia" msgid "New Zealand (Aotearoa)" msgstr "New Zealand (Aotearoa)" msgid "Nicaragua" msgstr "Nicaragua" msgid "Niger" msgstr "Niger" msgid "Nigeria" msgstr "Nigeria" msgid "Niue" msgstr "Niue" msgid "No cache file specified, aborting..." msgstr "No cache file specified, aborting..." msgid "No valid records found!" msgstr "ó ڵ !" msgid "Non-Profit Organization" msgstr "Non-Profit Organization" msgid "None to process" msgstr "None to process" msgid "Norfolk Island" msgstr "Norfolk Island" msgid "Northern Mariana Islands" msgstr "Northern Mariana Islands" msgid "Norway" msgstr "Norway" msgid "Nov" msgstr "Nov" msgid "November" msgstr "November" msgid "Oct" msgstr "Oct" msgid "October" msgstr "October" msgid "Old style Arpanet (arpa)" msgstr "Old style Arpanet (arpa)" msgid "Oman" msgstr "Oman" msgid "Other" msgstr "Ÿ" msgid "Pages" msgstr "Pages" msgid "Pages per Day" msgstr "Pages per Day" msgid "Pakistan" msgstr "Pakistan" msgid "Palau" msgstr "Palau" msgid "Panama" msgstr "Panama" msgid "Papua New Guinea" msgstr "Papua New Guinea" msgid "Paraguay" msgstr "Paraguay" msgid "Peru" msgstr "Peru" msgid "Philippines" msgstr "Philippines" msgid "Pitcairn" msgstr "Pitcairn" msgid "Poland" msgstr "Poland" msgid "Portugal" msgstr "Portugal" msgid "Previous run data not found..." msgstr " ã " msgid "Puerto Rico" msgstr "Puerto Rico" msgid "Qatar" msgstr "Qatar" msgid "Reading history file..." msgstr " 丮 ؼ:" msgid "Reading previous run data..." msgstr " ؼ:" msgid "Referrer" msgstr "۷" msgid "Referrers" msgstr "۷" msgid "Reunion" msgstr "Reunion" msgid "Romania" msgstr "Romania" msgid "Russian Federation" msgstr "Russian Federation" msgid "Rwanda" msgstr "Rwanda" msgid "S. Georgia and S. Sandwich Isls." msgstr "S. Georgia and S. Sandwich Isls." msgid "Saint Kitts and Nevis" msgstr "Saint Kitts and Nevis" msgid "Saint Lucia" msgstr "Saint Lucia" msgid "Saint Vincent and the Grenadines" msgstr "Saint Vincent and the Grenadines" msgid "Samoa" msgstr "Samoa" msgid "San Marino" msgstr "San Marino" msgid "Sao Tome and Principe" msgstr "Sao Tome and Principe" msgid "Saudi Arabia" msgstr "Saudi Arabia" msgid "Saving current run data..." msgstr " " msgid "Saving history information..." msgstr "丮 " msgid "Search" msgstr "Search" msgid "Search String" msgstr "Search String" msgid "Senegal" msgstr "Senegal" msgid "Sep" msgstr "Sep" msgid "September" msgstr "September" msgid "Seychelles" msgstr "Seychelles" msgid "Sierra Leone" msgstr "Sierra Leone" msgid "Singapore" msgstr "Singapore" msgid "Sites" msgstr "Ʈ" msgid "Skipping Netscape header record" msgstr "ݽ ڵ " msgid "Skipping bad record" msgstr " ڵ " msgid "Slovak Republic" msgstr "Slovak Republic" msgid "Slovenia" msgstr "Slovenia" msgid "Solomon Islands" msgstr "Solomon Islands" msgid "Somalia" msgstr "Somalia" msgid "South Africa" msgstr "South Africa" msgid "Spain" msgstr "Spain" msgid "Sri Lanka" msgstr "Sri Lanka" msgid "St. Helena" msgstr "St. Helena" msgid "St. Pierre and Miquelon" msgstr "St. Pierre and Miquelon" msgid "Sudan" msgstr "Sudan" msgid "Summary Period" msgstr " Ⱓ" msgid "Summary by Month" msgstr " 12" msgid "Suriname" msgstr "Suriname" msgid "Svalbard and Jan Mayen Islands" msgstr "Svalbard and Jan Mayen Islands" msgid "Swaziland" msgstr "Swaziland" msgid "Sweden" msgstr "Sweden" msgid "Switzerland" msgstr "Switzerland" msgid "Syria" msgstr "Syria" msgid "Taiwan" msgstr "Taiwan" msgid "Tajikistan" msgstr "Tajikistan" msgid "Tanzania" msgstr "Tanzania" msgid "Thailand" msgstr "Thailand" msgid "Togo" msgstr "Togo" msgid "Tokelau" msgstr "Tokelau" msgid "Tonga" msgstr "Tonga" msgid "Top" msgstr "" msgid "Total" msgstr "ü" msgid "Total Countries" msgstr "" msgid "Total Entry Pages" msgstr "Total Entry Pages" msgid "Total Exit Pages" msgstr "Total Exit Pages" msgid "Total Files" msgstr " ϼ" msgid "Total Hits" msgstr " Ʈ" msgid "Total KBytes" msgstr " KByte" msgid "Total Referrers" msgstr "۷" msgid "Total Search Strings" msgstr "Total Search Strings" msgid "Total Sites" msgstr "Ʈ" msgid "Total URLs" msgstr "URL" msgid "Total Unique Referrers" msgstr " ۷" msgid "Total Unique Sites" msgstr " Ʈ" msgid "Total Unique URLs" msgstr " URL" msgid "Total Unique User Agents" msgstr " Ʈ" msgid "Total Unique Usernames" msgstr "Total Unique Usernames" msgid "Total User Agents" msgstr "Ʈ" msgid "Total Usernames" msgstr "Total Usernames" msgid "Totals" msgstr "Ѱ" msgid "Trinidad and Tobago" msgstr "Trinidad and Tobago" msgid "Tunisia" msgstr "Tunisia" msgid "Turkey" msgstr "Turkey" msgid "Turkmenistan" msgstr "Turkmenistan" msgid "Turks and Caicos Islands" msgstr "Turks and Caicos Islands" msgid "Tuvalu" msgstr "Tuvalu" msgid "URL" msgstr "URL" msgid "URLs" msgstr "URL" msgid "US Commercial" msgstr "US Commercial" msgid "US Educational" msgstr "US Educational" msgid "US Government" msgstr "US Government" msgid "US Military" msgstr "US Military" msgid "US Minor Outlying Islands" msgstr "US Minor Outlying Islands" msgid "USSR (former)" msgstr "USSR (former)" msgid "Uganda" msgstr "Uganda" msgid "Ukraine" msgstr "Ukraine" msgid "Undefined response code" msgstr "Undefined response code" msgid "United Arab Emirates" msgstr "United Arab Emirates" msgid "United Kingdom" msgstr "United Kingdom" msgid "United States" msgstr "United States" msgid "Unresolved/Unknown" msgstr "Unresolved/Unknown" msgid "Uruguay" msgstr "Uruguay" msgid "Usage" msgstr "" msgid "Usage Statistics for" msgstr "뷮 :" msgid "Usage by Country for" msgstr "Usage by Country for" msgid "Usage summary for" msgstr "Usage summary for" msgid "User Agent" msgstr "Ʈ" msgid "Username" msgstr "Username" msgid "Users" msgstr "Users" msgid "Using DNS cache file" msgstr "Using DNS cache file" msgid "Using logfile" msgstr " α :" msgid "Uzbekistan" msgstr "Uzbekistan" msgid "Vanuatu" msgstr "Vanuatu" msgid "Vatican City State (Holy See)" msgstr "Vatican City State (Holy See)" msgid "Venezuela" msgstr "Venezuela" msgid "Viet Nam" msgstr "Viet Nam" msgid "View All Referrers" msgstr "View All Referrers" msgid "View All Search Strings" msgstr "View All Search Strings" msgid "View All Sites" msgstr "View All Sites" msgid "View All URLs" msgstr "View All URLs" msgid "View All User Agents" msgstr "View All User Agents" msgid "View All Usernames" msgstr "View All Usernames" msgid "Virgin Islands (British)" msgstr "Virgin Islands (British)" msgid "Virgin Islands (U.S.)" msgstr "Virgin Islands (U.S.)" msgid "Visits" msgstr "Visits" msgid "Visits per Day" msgstr "Visits per Day" msgid "Wallis and Futuna Islands" msgstr "Wallis and Futuna Islands" msgid "Warning: Invalid keyword" msgstr ": ˼ Ű" msgid "Warning: Possible duplicate data found" msgstr ": ߺ " msgid "Warning: String exceeds storage size" msgstr ": ڿ ʰ" msgid "Warning: Truncating oversized date field" msgstr ": ¥ ʵ ¥" msgid "Warning: Truncating oversized hostname" msgstr ": ȣƮ ¥" msgid "Warning: Truncating oversized referrer field" msgstr ": ۷ ʵ ¥" msgid "Warning: Truncating oversized request field" msgstr ": û ʵ ¥" msgid "Warning: Truncating oversized username" msgstr "Warning: Truncating oversized username" msgid "Western Sahara" msgstr "Western Sahara" msgid "Yemen" msgstr "Yemen" msgid "Yugoslavia" msgstr "Yugoslavia" msgid "Zaire" msgstr "Zaire" msgid "Zambia" msgstr "Zambia" msgid "Zimbabwe" msgstr "Zimbabwe" msgid "[options] [log file]" msgstr "[ɼ] [α ]" msgid "addresses" msgstr "addresses" msgid "bad" msgstr "ҷ" msgid "current directory" msgstr " 丮" msgid "ignored" msgstr "" msgid "in" msgstr "۽ð" msgid "of" msgstr "/" msgid "records" msgstr "ڵ" msgid "seconds" msgstr "" webdruid-0.5.4.orig/po/sv.po0000644000000000000000000006363610066113350015641 0ustar rootroot00000000000000msgid "" msgstr "" "Project-Id-Version: 1.0\n" "PO-Revision-Date: 2003-05-25 23:29+0200\n" "Last-Translator: Johan Poirier \n" "Language-Team: French \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=ISO-8859-1\n" "Content-Transfer-Encoding: 8bit" msgid "-A num = Display num top agents" msgstr "-A antal = visa 'antal' i listan ver klienter" msgid "-C num = Display num top countries" msgstr "-C antal = visa 'antal' i listan ver lnder" msgid "-D name = Use DNS Cache file 'name'" msgstr "-D namn = Anvnd DNS-cachfil 'namn'" msgid "-E num = Display num top Exit Pages" msgstr "-E antal = Visa 'antal' i listan ver utgngssidor" msgid "-F type = Log type. type= (clf | ftp | squid)" msgstr "-F typ = Loggtyp. typ= (clf | ftp | squid)" msgid "-G = supress hourly graph" msgstr "-G = skapa ej graf fr timmar" msgid "-H = supress hourly stats" msgstr "-H = skapa ej statistik fr timmar" msgid "-I name = Index alias 'name'" msgstr "-I namn = ha 'namn' som alias till index.html" msgid "-L = supress color coded graph legends" msgstr "-L = supress color coded graph legends" msgid "-N num = Number of DNS processes (0=disable)" msgstr "-N num = Antal DNS-processer (0=stng av)" msgid "-P name = Page type extension 'name'" msgstr "-P namn = Page type extension 'namn'" msgid "-Q = supress _ALL_ messages" msgstr "-Q = visa ej ngon information" msgid "-R num = Display num top referrers" msgstr "-R antal = visa 'antal' i listan ver hnvisningar" msgid "-S num = Display num top sites" msgstr "-S antal = visa 'antal' i ursprungsadress-listan" msgid "-T = print timing information" msgstr "-T = skriv information om tidstgng" msgid "-U num = Display num top URLs" msgstr "-U antal = visa 'antal' i listan ver URL-er" msgid "-X = Hide individual sites" msgstr "-X = Gm individuella platser" msgid "-Y = supress country graph" msgstr "-Y = skapa ej graf fr lnder" msgid "-a name = hide user agent 'name'" msgstr "-a namn = dlj anvndarklient 'namn'" msgid "-c file = use configuration file 'file'" msgstr "-c fil = anvnd konfigurationsfilen 'fil'" msgid "-d = print additional debug info" msgstr "-d = skriv ytterligare debuginformation" msgid "-e num = Display num top Entry Pages" msgstr "-e antal = Visa 'antal' i listan ver ingngssidor" msgid "-f = Fold sequence errors" msgstr "-f = hantera sekvensfel" msgid "-g num = Group Domains to 'num' levels" msgstr "-g antal = Group Domains to 'antal' levels" msgid "-h = print this help message" msgstr "-h = skriv hjlptext" msgid "-i = ignore history file" msgstr "-i = ignorera historiefilen" msgid "-l num = use num background lines on graph" msgstr "-l num = skapa 'num' referenslinjer fr grafer" msgid "-m num = Visit timout value (seconds)" msgstr "-m num = Visit timeout value (seconds)" msgid "-n name = hostname to use" msgstr "-n namn = datornamn att anvnda" msgid "-o dir = output directory to use" msgstr "-o katalog = katalog fr utmatning" msgid "-p = preserve state (incremental)" msgstr "-p = bevara tillstnd (inkrementell)" msgid "-q = supress informational messages" msgstr "-q = visa ej informationsmeddelanden" msgid "-r name = hide referrer 'name'" msgstr "-r namn = dlj hnvisning 'namn'" msgid "-s name = hide site 'name'" msgstr "-s namn = dlj klientursprungsadress 'namn'" msgid "-t name = report title 'name'" msgstr "-t namn = anvnd 'namn' som titel" msgid "-u name = hide URL 'name'" msgstr "-u namn = dlj URL 'namn'" msgid "-v -V = print version information" msgstr "-v -V = skriv versionsinformation" msgid "-x name = Use filename extension 'name'" msgstr "-x namn = Anvnd filnamnsndelse 'namn'" msgid "Afghanistan" msgstr "Afganistan" msgid "Agents" msgstr "Klienttyper" msgid "Albania" msgstr "Albanien" msgid "Algeria" msgstr "Algeriet" msgid "American Samoa" msgstr "Amerikanska Samoa" msgid "Andorra" msgstr "Andorra" msgid "Angola" msgstr "Angola" msgid "Anguilla" msgstr "Anguilla" msgid "Antarctica" msgstr "Antarktis" msgid "Antigua and Barbuda" msgstr "Antigua and Barbuda" msgid "Apr" msgstr "Apr" msgid "April" msgstr "April" msgid "Argentina" msgstr "Argentina" msgid "Armenia" msgstr "Armenien" msgid "Aruba" msgstr "Aruba" msgid "Aug" msgstr "Aug" msgid "August" msgstr "Augusti" msgid "Australia" msgstr "Australien" msgid "Austria" msgstr "sterrike" msgid "Avg" msgstr "Medel" msgid "Azerbaijan" msgstr "Azerbadjan" msgid "Bahamas" msgstr "Bahamas" msgid "Bahrain" msgstr "Bahrain" msgid "Bangladesh" msgstr "Bangladesh" msgid "Barbados" msgstr "Barbados" msgid "Belarus" msgstr "Belarus" msgid "Belgium" msgstr "Belgien" msgid "Belize" msgstr "Belize" msgid "Benin" msgstr "Benin" msgid "Bermuda" msgstr "Bermuda" msgid "Bhutan" msgstr "Bhutan" msgid "Bolivia" msgstr "Bolivia" msgid "Bosnia and Herzegovina" msgstr "Bosnien Herzegovina" msgid "Botswana" msgstr "Botswana" msgid "Bouvet Island" msgstr "Bouvet Island" msgid "Brazil" msgstr "Brazilien" msgid "British Indian Ocean Territory" msgstr "Irak" msgid "Brunei Darussalam" msgstr "Brunei Darussalam" msgid "Bulgaria" msgstr "Bulgarien" msgid "Burkina Faso" msgstr "Burkina Faso" msgid "Burundi" msgstr "Burundi" msgid "By" msgstr "By" msgid "Cambodia" msgstr "Kiribati" msgid "Cameroon" msgstr "Kamerun" msgid "Can't allocate enough memory, Top Countries disabled!" msgstr "Kan inte allokera minne, stnger av 'Top Countries'" msgid "Can't allocate enough memory, Top Referrers disabled!" msgstr "Kan inte allokera minne, stnger av 'Top referrers'" msgid "Can't allocate enough memory, Top Search Strings disabled!" msgstr "Kan inte allokera minne, stnger av 'Top Search Strings'" msgid "Can't allocate enough memory, Top Sites disabled!" msgstr "Kan inte allokera minne, stnger av 'Top sites'" msgid "Can't allocate enough memory, Top URLs disabled!" msgstr "Kan inte allokera minne, stnger av 'Top URLs'" msgid "Can't allocate enough memory, Top User Agents disabled!" msgstr "Kan inte allokera minne, stnger av 'Top User Agents'" msgid "Can't allocate enough memory, Top Usernames disabled!" msgstr "Kan inte allokera minne, stnger av 'Top Usernames'" msgid "Canada" msgstr "Canada" msgid "Cape Verde" msgstr "Cape Verde" msgid "Cayman Islands" msgstr "Kazachstan" msgid "Central African Republic" msgstr "Centralafrikanska republiken" msgid "Chad" msgstr "Sdra Franska territorierna" msgid "Chile" msgstr "Chile" msgid "China" msgstr "Kina" msgid "Christmas Island" msgstr "Juln" msgid "Cocos (Keeling) Islands" msgstr "Cocosarna" msgid "Code 100 - Continue" msgstr "Kod 100 - Fortstt" msgid "Code 101 - Switching Protocols" msgstr "Kod 101 - Byter protokoll" msgid "Code 200 - OK" msgstr "Kod 200 - OK" msgid "Code 201 - Created" msgstr "Kod 201 - Skapad" msgid "Code 202 - Accepted" msgstr "Kod 202 - Accepterad" msgid "Code 203 - Non-Authoritative Information" msgstr "Kod 203 - Icke auktoritativ information" msgid "Code 204 - No Content" msgstr "Kod 204 - Inget innehll" msgid "Code 205 - Reset Content" msgstr "Kod 205 - terstll innehll" msgid "Code 206 - Partial Content" msgstr "Kod 206 - Partiellt innehll" msgid "Code 300 - Multiple Choices" msgstr "Kod 300 - Multipla val" msgid "Code 301 - Moved Permanently" msgstr "Kod 301 - Permanent flyttad" msgid "Code 302 - Found" msgstr "Kod 302 - Hittad" msgid "Code 303 - See Other" msgstr "Kod 303 - Se annan" msgid "Code 304 - Not Modified" msgstr "Kod 304 - Ofrndrad" msgid "Code 305 - Use Proxy" msgstr "Kod 305 - Anvnd proxy" msgid "Code 307 - Moved Temporarily" msgstr "Kod 307 - Tillflligt flyttad" msgid "Code 400 - Bad Request" msgstr "Kod 400 - Felaktig frfrgan" msgid "Code 401 - Unauthorized" msgstr "Kod 401 - Icke auktoriserad" msgid "Code 402 - Payment Required" msgstr "Kod 402 - Betalning krvs" msgid "Code 403 - Forbidden" msgstr "Kod 403 - Frbjuden" msgid "Code 404 - Not Found" msgstr "Kod 404 - Hittades ej" msgid "Code 405 - Method Not Allowed" msgstr "Kod 405 - Otillten metod" msgid "Code 406 - Not Acceptable" msgstr "Kod 406 - Icke accepterbar" msgid "Code 407 - Proxy Authentication Required" msgstr "Kod 407 - Verifiering frn proxy krvs" msgid "Code 408 - Request Timeout" msgstr "Kod 408 - Frfrgan gick ver tiden" msgid "Code 409 - Conflict" msgstr "Kod 409 - Konflikt" msgid "Code 410 - Gone" msgstr "Kod 410 - Borta" msgid "Code 411 - Length Required" msgstr "Kod 411 - Behver lngd" msgid "Code 412 - Precondition Failed" msgstr "Kod 412 - Misslyckades med villkor" msgid "Code 413 - Request Entity Too Large" msgstr "Kod 413 - Frfrgeenhet fr stor" msgid "Code 414 - Request-URI Too Long" msgstr "Kod 414 - Frfrge-URI fr lng" msgid "Code 415 - Unsupported Media Type" msgstr "Kod 415 - Ej stdd medietyp" msgid "Code 416 - Requested Range Not Satisfiable" msgstr "Kod 416 - Efterfrgat intervall ej mjligt" msgid "Code 417 - Expectation Failed" msgstr "Kod 417 - Expectation Failed" msgid "Code 500 - Internal Server Error" msgstr "Kod 500 - Internt serverfel" msgid "Code 501 - Not Implemented" msgstr "Kod 501 - Ej implementerad" msgid "Code 502 - Bad Gateway" msgstr "Kod 502 - Felaktig gateway" msgid "Code 503 - Service Unavailable" msgstr "Kod 503 - Tjnsten otillgnglig" msgid "Code 504 - Gateway Timeout" msgstr "Kod 504 - Gateway gick ver tiden" msgid "Code 505 - HTTP Version Not Supported" msgstr "Kod 505 - denna HTTP-version stds icke" msgid "Colombia" msgstr "Colombia" msgid "Comoros" msgstr "Saint Kitts och Nevis" msgid "Congo" msgstr "Congo" msgid "Cook Islands" msgstr "Cook Islands" msgid "Costa Rica" msgstr "Costa Rica" msgid "Cote D'Ivoire (Ivory Coast)" msgstr "Elfenbenskusten" msgid "Countries" msgstr "Lnder" msgid "Country" msgstr "Land" msgid "Creating output in" msgstr "Skapar utdata i" msgid "Croatia (Hrvatska)" msgstr "Haiti" msgid "Cuba" msgstr "Kuba" msgid "Cyprus" msgstr "Cypern" msgid "Czech Republic" msgstr "Tjeckien" msgid "Czechoslovakia (former)" msgstr "Tjeckoslovakien" msgid "DNS Lookup" msgstr "DNS Anrop" msgid "Daily Avg" msgstr "Medel ver dagen" msgid "Daily Statistics" msgstr "Daglig statistik" msgid "Daily Statistics for" msgstr "Daglig statistik fr" msgid "Daily usage for" msgstr "Daglig anvndning fr" msgid "Day" msgstr "Dag" msgid "Dec" msgstr "Dec" msgid "December" msgstr "December" msgid "Denmark" msgstr "Danmark" msgid "Djibouti" msgstr "Djibouti" msgid "Dominica" msgstr "Dominica" msgid "Dominican Republic" msgstr "Dominikanska Republiken" msgid "East Timor" msgstr "Turkiet" msgid "Ecuador" msgstr "Ekvador" msgid "Egypt" msgstr "Egypten" msgid "El Salvador" msgstr "Syrien" msgid "English" msgstr "Swedish" msgid "Entry" msgstr "Ingng" msgid "Equatorial Guinea" msgstr "Grekland" msgid "Eritrea" msgstr "Eritrea" msgid "Error adding Referrer node, skipping" msgstr "Fel vid tillgg av hnvisning i lista, hoppar ver" msgid "Error adding Search String Node, skipping" msgstr "Fel vid tillgg av skstrng, hoppar ver" msgid "Error adding URL node, skipping" msgstr "Fel vid tillgg av URL i lista, hoppar ver" msgid "Error adding User Agent node, skipping" msgstr "Fel vid tillgg av klienttyp i lista, hoppar ver" msgid "Error adding Username node, skipping" msgstr "Fel vid tillgg av anvndarnamn, hoppar ver" msgid "Error adding host node (daily), skipping" msgstr "Fel vid tillgg av dator i lista (daglig), hoppar ver" msgid "Error adding host node (monthly), skipping" msgstr "Fel vid tillgg av dator i lista (mnatlig), hoppar ver" msgid "Error: Can't change directory to" msgstr "Fel: kan inte byta katalog till" msgid "Error: Can't open log file" msgstr "Fel: kan inte ppna loggfilen" msgid "Error: Ignoring invalid history record" msgstr "Fel: Ignorerar felaktig historiepost" msgid "Error: Skipping oversized log record" msgstr "Fel: hoppar ver fr stor post i loggfil" msgid "Error: Skipping record (bad date)" msgstr "Fel: hoppar ver post (felaktigt datum)" msgid "Error: Unable to lock DNS cache file" msgstr "Fel: Kan inte lsa DNS-cachefilen" msgid "Error: Unable to open DNS cache file" msgstr "Fel: Kan inte ppna DNS-cachefilen" msgid "Error: Unable to open configuration file" msgstr "Fel: Kan inte ppna konfigurationsfilen" msgid "Error: Unable to open file" msgstr "Fel: kan inte ppna fil" msgid "Error: Unable to restore run data" msgstr "Error: Unable to restore run data" msgid "Error: Unable to save current run data" msgstr "Fel: kan inte spara data frn denna omgng" msgid "Error: Unable to write history file" msgstr "Fel: kan inte skriva till historefil" msgid "Estonia" msgstr "Estland" msgid "Ethiopia" msgstr "Etiopien" msgid "Exit" msgstr "Utgng" msgid "Falkland Islands (Malvinas)" msgstr "Falklandsarna" msgid "Faroe Islands" msgstr "Faraoarna" msgid "Feb" msgstr "Feb" msgid "February" msgstr "Februari" msgid "Fiji" msgstr "Fiji" msgid "Files" msgstr "Filer" msgid "Files per Day" msgstr "Filer per dag" msgid "Finland" msgstr "Finland" msgid "France" msgstr "Frankrike" msgid "France; Metropolitan" msgstr "Gabon" msgid "French Guiana" msgstr "Ghana" msgid "French Polynesia" msgstr "Papua Nya Guinea" msgid "French Southern Territories" msgstr "Togo" msgid "Gabon" msgstr "England" msgid "Gambia" msgstr "Guinea" msgid "Generated" msgstr "Skapad" msgid "Generating report for" msgstr "Genererar rapport fr" msgid "Generating summary report" msgstr "Genererar versiktsinformation" msgid "Georgia" msgstr "Franska Guiana" msgid "Germany" msgstr "Tyskland" msgid "Ghana" msgstr "Gibraltar" msgid "Gibraltar" msgstr "Grnland" msgid "Great Britain (UK)" msgstr "Grenada" msgid "Greece" msgstr "S. Georgia och S. Sandwicharna" msgid "Greenland" msgstr "Gambia" msgid "Grenada" msgstr "Georgien" msgid "Guadeloupe" msgstr "Ekvatorialguinea" msgid "Guam" msgstr "Guinea-Bissau" msgid "Guatemala" msgstr "Guam" msgid "Guinea" msgstr "Guadeloupe" msgid "Guinea-Bissau" msgstr "Guyana" msgid "Guyana" msgstr "Hong Kong" msgid "Haiti" msgstr "Ungern" msgid "Heard and McDonald Islands" msgstr "Honduras" msgid "History file not found..." msgstr "Hittade inte historiefilen..." msgid "Hits" msgstr "Trffar" msgid "Hits by Response Code" msgstr "Trffar sorterade efter svarskod" msgid "Hits per Day" msgstr "Trffar per dag" msgid "Hits per Hour" msgstr "Trffar per timme" msgid "Honduras" msgstr "Kroatien" msgid "Hong Kong" msgstr "Heard- och McDonaldarna" msgid "Hostname" msgstr "Vrdnamn" msgid "Hostname for reports is" msgstr "Datornamn fr rapporterna r" msgid "Hour" msgstr "Timme" msgid "Hourly Statistics" msgstr "Statistik timme fr timme" msgid "Hourly Statistics for" msgstr "Statistik timme fr timme fr" msgid "Hourly usage for" msgstr "Anvndning timme fr timme fr" msgid "Hungary" msgstr "Indonesien" msgid "Iceland" msgstr "Italien" msgid "Ignoring previous history..." msgstr "Ignorerar tidigare historia..." msgid "India" msgstr "British Indian Ocean Territory" msgid "Indonesia" msgstr "Irland" msgid "International (int)" msgstr "Interationell (int)" msgid "Iran" msgstr "Island" msgid "Iraq" msgstr "Iran" msgid "Ireland" msgstr "Israel" msgid "Israel" msgstr "Indien" msgid "Italy" msgstr "Jamaica" msgid "Jamaica" msgstr "Jordanien" msgid "Jan" msgstr "Jan" msgid "January" msgstr "Januari" msgid "Japan" msgstr "Kenya" msgid "Jordan" msgstr "Japan" msgid "Jul" msgstr "Jul" msgid "July" msgstr "Juli" msgid "Jun" msgstr "Jun" msgid "June" msgstr "Juni" msgid "KBytes" msgstr "kilobyte" msgid "KBytes per Day" msgstr "Kilobytes per dag" msgid "Kazakhstan" msgstr "Laos" msgid "Kenya" msgstr "Kirgistan" msgid "Kiribati" msgstr "Comoros" msgid "Korea (North)" msgstr "Sydkorea" msgid "Korea (South)" msgstr "Kuwait" msgid "Kuwait" msgstr "Caymanarna" msgid "Kyrgyzstan" msgstr "Kambodja" msgid "Laos" msgstr "Libanon" msgid "Last 12 Months" msgstr "Senaste 12 mnaderna" msgid "Latvia" msgstr "Libyen" msgid "Lebanon" msgstr "Saint Lucia" msgid "Lesotho" msgstr "Litauen" msgid "Liberia" msgstr "Lesotho" msgid "Libya" msgstr "Marocco" msgid "Liechtenstein" msgstr "Sri Lanka" msgid "Lithuania" msgstr "Luxembourg" msgid "Luxembourg" msgstr "Lettland" msgid "Macau" msgstr "Norra Marianaarna" msgid "Macedonia" msgstr "Mali" msgid "Madagascar" msgstr "Marshallarna" msgid "Malawi" msgstr "Mexico" msgid "Malaysia" msgstr "Moambique" msgid "Maldives" msgstr "Malawi" msgid "Mali" msgstr "Myanmar" msgid "Malta" msgstr "Mauritius" msgid "Mar" msgstr "Mar" msgid "March" msgstr "Mars" msgid "Marshall Islands" msgstr "Makedonien" msgid "Martinique" msgstr "Mauritania" msgid "Mauritania" msgstr "Montserrat" msgid "Mauritius" msgstr "Maldiverna" msgid "Max" msgstr "Max" msgid "May" msgstr "Maj" msgid "Mayotte" msgstr "Jugoslavien" msgid "Mexico" msgstr "Malaysia" msgid "Micronesia" msgstr "Mikronesien" msgid "Moldova" msgstr "Malagasy" msgid "Monaco" msgstr "Moldavien" msgid "Mongolia" msgstr "Macau" msgid "Month" msgstr "Mnad" msgid "Monthly Statistics for" msgstr "Mnatlig statistik fr" msgid "Monthly Totals" msgstr "Mnatliga summor" msgid "Montserrat" msgstr "Malta" msgid "Morocco" msgstr "Monaco" msgid "Mozambique" msgstr "Namibia" msgid "Myanmar" msgstr "Mongoliet" msgid "Namibia" msgstr "Nya Caledonien" msgid "Nato field (nato)" msgstr "Nato (nato)" msgid "Nauru" msgstr "Neutral Zone" msgid "Nepal" msgstr "Nauru" msgid "Netherlands" msgstr "Norge" msgid "Netherlands Antilles" msgstr "Nederlnderna" msgid "Network" msgstr "Ntverk" msgid "Neutral Zone" msgstr "Niue" msgid "New Caledonia" msgstr "Niger" msgid "New Zealand (Aotearoa)" msgstr "Oman" msgid "Nicaragua" msgstr "Nederlnderna" msgid "Niger" msgstr "Norfolk Island" msgid "Nigeria" msgstr "Nicaragua" msgid "Niue" msgstr "Nya Zeeland" msgid "No cache file specified, aborting..." msgstr "Ingen cachefil specificerad..." msgid "No valid records found!" msgstr "Hittade inga giltiga poster!" msgid "Non-Profit Organization" msgstr "Ideell organisation" msgid "None to process" msgstr "Ingen att bearbeta" msgid "Norfolk Island" msgstr "Nigeria" msgid "Northern Mariana Islands" msgstr "Martinique" msgid "Norway" msgstr "Nepal" msgid "Nov" msgstr "Nov" msgid "November" msgstr "November" msgid "Oct" msgstr "Okt" msgid "October" msgstr "Oktober" msgid "Old style Arpanet (arpa)" msgstr "Arpanet (arpa)" msgid "Oman" msgstr "Panama" msgid "Other" msgstr "Annan" msgid "Pages" msgstr "Sidor" msgid "Pages per Day" msgstr "Sidor per dag" msgid "Pakistan" msgstr "Polen" msgid "Palau" msgstr "Paraguay" msgid "Panama" msgstr "Peru" msgid "Papua New Guinea" msgstr "Filippinerna" msgid "Paraguay" msgstr "Qatar" msgid "Peru" msgstr "Franska Polynesien" msgid "Philippines" msgstr "Pakistan" msgid "Pitcairn" msgstr "Puerto Rico" msgid "Poland" msgstr "St. Pierre och Miquelon" msgid "Portugal" msgstr "Palau" msgid "Previous run data not found..." msgstr "Hittade inte data om fregende genomgng..." msgid "Puerto Rico" msgstr "Portugal" msgid "Qatar" msgstr "Reunion" msgid "Reading history file..." msgstr "Lser historiefil..." msgid "Reading previous run data..." msgstr "Lser data om fregende genomgng..." msgid "Referrer" msgstr "Refererare" msgid "Referrers" msgstr "Hnvisare" msgid "Reunion" msgstr "Rumnien" msgid "Romania" msgstr "Ryssland" msgid "Russian Federation" msgstr "Rwanda" msgid "Rwanda" msgstr "Saudiarabien" msgid "S. Georgia and S. Sandwich Isls." msgstr "Guatemala" msgid "Saint Kitts and Nevis" msgstr "Nordkorea" msgid "Saint Lucia" msgstr "Liechtenstein" msgid "Saint Vincent and the Grenadines" msgstr "Venezuela" msgid "Samoa" msgstr "Yemen" msgid "San Marino" msgstr "Senegal" msgid "Sao Tome and Principe" msgstr "Sovjet (fre detta)" msgid "Saudi Arabia" msgstr "Solomonarna" msgid "Saving current run data..." msgstr "Sparar data om denna genomgng..." msgid "Saving history information..." msgstr "Sparar historieinformation..." msgid "Search" msgstr "Sk" msgid "Search String" msgstr "Skstrng" msgid "Senegal" msgstr "Somalia" msgid "Sep" msgstr "Sep" msgid "September" msgstr "September" msgid "Seychelles" msgstr "Sudan" msgid "Sierra Leone" msgstr "San Marino" msgid "Singapore" msgstr "St. Helena" msgid "Sites" msgstr "Klientadresser" msgid "Skipping Netscape header record" msgstr "Hoppar ver Netscape-specifik inledningsrad" msgid "Skipping bad record" msgstr "Hoppar ver felaktig post" msgid "Slovak Republic" msgstr "Sierra Leone" msgid "Slovenia" msgstr "Svalbard och Jan Mayen-arna" msgid "Solomon Islands" msgstr "Seychelles" msgid "Somalia" msgstr "Surinam" msgid "South Africa" msgstr "Zambia" msgid "Spain" msgstr "Spanien" msgid "Sri Lanka" msgstr "Liberia" msgid "St. Helena" msgstr "Slovenien" msgid "St. Pierre and Miquelon" msgstr "Pitcairn" msgid "Sudan" msgstr "Sverige" msgid "Summary Period" msgstr "Period fr summering" msgid "Summary by Month" msgstr "Summering mnad fr mnad" msgid "Suriname" msgstr "Sao Tome och Principe" msgid "Svalbard and Jan Mayen Islands" msgstr "Slovakien" msgid "Swaziland" msgstr "Turks och Caicosarna" msgid "Sweden" msgstr "Singapore" msgid "Switzerland" msgstr "Schweiz" msgid "Syria" msgstr "Swaziland" msgid "Taiwan" msgstr "Tanzania" msgid "Tajikistan" msgstr "Tokelau" msgid "Tanzania" msgstr "Ukraina" msgid "Thailand" msgstr "Tajikistan" msgid "Togo" msgstr "Thailand" msgid "Tokelau" msgstr "Turkmenistan" msgid "Tonga" msgstr "sttimor" msgid "Top" msgstr "Vanligaste" msgid "Total" msgstr "Summa" msgid "Total Countries" msgstr "lnder" msgid "Total Entry Pages" msgstr "totalt ingngssidor" msgid "Total Exit Pages" msgstr "totalt utgngssidor" msgid "Total Files" msgstr "Totalt antal filer" msgid "Total Hits" msgstr "Totalt antal trffar" msgid "Total KBytes" msgstr "Totalt antal kilobytes" msgid "Total Referrers" msgstr "hnvisnigar" msgid "Total Search Strings" msgstr "totalt skstrngar" msgid "Total Sites" msgstr "klientursprung" msgid "Total URLs" msgstr "URLer" msgid "Total Unique Referrers" msgstr "Totalt antal unika hnvisningar" msgid "Total Unique Sites" msgstr "Totalt antal unika klientadresser" msgid "Total Unique URLs" msgstr "Totalt antal unika URLer" msgid "Total Unique User Agents" msgstr "Totalt antal unika klienttyper" msgid "Total Unique Usernames" msgstr "Totalt antal unika anvndarnamn" msgid "Total User Agents" msgstr "klienttyper" msgid "Total Usernames" msgstr "totalt anvndarnamn" msgid "Totals" msgstr "Summor" msgid "Trinidad and Tobago" msgstr "Tuvalu" msgid "Tunisia" msgstr "Tonga" msgid "Turkey" msgstr "Trinidad och Tobago" msgid "Turkmenistan" msgstr "Tunisien" msgid "Turks and Caicos Islands" msgstr "Chad" msgid "Tuvalu" msgstr "Taiwan" msgid "URL" msgstr "URL" msgid "URLs" msgstr "URLer" msgid "US Commercial" msgstr "Kommersiell" msgid "US Educational" msgstr "USA, utbildning" msgid "US Government" msgstr "USA, staten" msgid "US Military" msgstr "USA, militr" msgid "US Minor Outlying Islands" msgstr "USA" msgid "USSR (former)" msgstr "El Salvador" msgid "Uganda" msgstr "Storbritanien" msgid "Ukraine" msgstr "Uganda" msgid "Undefined response code" msgstr "Oidentifierad svarskod" msgid "United Arab Emirates" msgstr "Frenade arabemiraten" msgid "United Kingdom" msgstr "US Minor Outlying Islands" msgid "United States" msgstr "Uruguay" msgid "Unresolved/Unknown" msgstr "Ej uppslagen/oknd" msgid "Uruguay" msgstr "Uzbekistan" msgid "Usage" msgstr "Anvndning" msgid "Usage Statistics for" msgstr "Statistik ver anvndning fr" msgid "Usage by Country for" msgstr "Statsistik sorterat efter land fr" msgid "Usage summary for" msgstr "Summering fr" msgid "User Agent" msgstr "Klienttyp" msgid "Username" msgstr "Username" msgid "Users" msgstr "Users" msgid "Using DNS cache file" msgstr "Anvnder DNS-cachefilen" msgid "Using logfile" msgstr "Anvnder loggfil" msgid "Uzbekistan" msgstr "Vatikanstaten" msgid "Vanuatu" msgstr "Wallis och Futunaarna" msgid "Vatican City State (Holy See)" msgstr "Saint Vincent och Grenadinerna" msgid "Venezuela" msgstr "Virgin-arna (Brittiska)" msgid "Viet Nam" msgstr "Vanuatu" msgid "View All Referrers" msgstr "View All Referrers" msgid "View All Search Strings" msgstr "View All Search Strings" msgid "View All Sites" msgstr "View All Sites" msgid "View All URLs" msgstr "View All URLs" msgid "View All User Agents" msgstr "View All User Agents" msgid "View All Usernames" msgstr "View All Usernames" msgid "Virgin Islands (British)" msgstr "Virgin-arna (Amerikanska)" msgid "Virgin Islands (U.S.)" msgstr "Vietnam" msgid "Visits" msgstr "Beskare" msgid "Visits per Day" msgstr "Besk per dag" msgid "Wallis and Futuna Islands" msgstr "Samoa" msgid "Warning: Invalid keyword" msgstr "Varning: Ogiltigt nyckelord" msgid "Warning: Possible duplicate data found" msgstr "Varning: Hittar data som sannolikt r duplicerad" msgid "Warning: String exceeds storage size" msgstr "Varning: Strng verskrider storleken p lagringsutrymme" msgid "Warning: Truncating oversized date field" msgstr "Varning: Anpassar (kapar) fr lngt datumflt" msgid "Warning: Truncating oversized hostname" msgstr "Varning: Anpassar (kapar) fr lngt datornamn" msgid "Warning: Truncating oversized referrer field" msgstr "Varning: Anpassar (kapar) fr lngt hnvisningsflt" msgid "Warning: Truncating oversized request field" msgstr "Varning: Anpassar (kapar) fr lngt frgeflt" msgid "Warning: Truncating oversized username" msgstr "Warning: Anpassar (kapar) fr lngt anvndarnamn" msgid "Western Sahara" msgstr "Vstsahara" msgid "Yemen" msgstr "Mayotte" msgid "Yugoslavia" msgstr "Sydafrika" msgid "Zaire" msgstr "Zimbabwe" msgid "Zambia" msgstr "Zaire" msgid "[options] [log file]" msgstr "[flaggor] [loggfil]" msgid "addresses" msgstr "adresser" msgid "bad" msgstr "felaktiga" msgid "current directory" msgstr "aktuell katalog" msgid "ignored" msgstr "ignorerade" msgid "in" msgstr "i" msgid "of" msgstr "utav totalt" msgid "records" msgstr "poster" msgid "seconds" msgstr "sekunder" webdruid-0.5.4.orig/po/ru.po0000644000000000000000000006566410066113350015642 0ustar rootroot00000000000000msgid "" msgstr "" "Project-Id-Version: 1.0\n" "PO-Revision-Date: 2003-05-25 23:29+0200\n" "Last-Translator: Johan Poirier \n" "Language-Team: French \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=ISO-8859-1\n" "Content-Transfer-Encoding: 8bit" msgid "-A num = Display num top agents" msgstr "-A = '' " msgid "-C num = Display num top countries" msgstr "-C = '' " msgid "-D name = Use DNS Cache file 'name'" msgstr "-D = DNS '' -" msgid "-E num = Display num top Exit Pages" msgstr "-E = '' " msgid "-F type = Log type. type= (clf | ftp | squid)" msgstr "-F = . = (clf | ftp | squid)" msgid "-G = supress hourly graph" msgstr "-G = " msgid "-H = supress hourly stats" msgstr "-H = " msgid "-I name = Index alias 'name'" msgstr "-I = " msgid "-L = supress color coded graph legends" msgstr "-L = " msgid "-N num = Number of DNS processes (0=disable)" msgstr "-N = DNS (0=)" msgid "-P name = Page type extension 'name'" msgstr "-P = '' - " msgid "-Q = supress _ALL_ messages" msgstr "-Q = __ " msgid "-R num = Display num top referrers" msgstr "-R = '' " msgid "-S num = Display num top sites" msgstr "-S = '' " msgid "-T = print timing information" msgstr "-T = " msgid "-U num = Display num top URLs" msgstr "-U = '' URL" msgid "-X = Hide individual sites" msgstr "-X = " msgid "-Y = supress country graph" msgstr "-Y = " msgid "-a name = hide user agent 'name'" msgstr "-a = ''" msgid "-c file = use configuration file 'file'" msgstr "-c = ''" msgid "-d = print additional debug info" msgstr "-d = " msgid "-e num = Display num top Entry Pages" msgstr "-e = '' " msgid "-f = Fold sequence errors" msgstr "-f = fold sequence errors" msgid "-g num = Group Domains to 'num' levels" msgstr "-g = ''" msgid "-h = print this help message" msgstr "-h = " msgid "-i = ignore history file" msgstr "-i = " msgid "-l num = use num background lines on graph" msgstr "-l = '' " msgid "-m num = Visit timout value (seconds)" msgstr "-m = '' (seconds)" msgid "-n name = hostname to use" msgstr "-n = " msgid "-o dir = output directory to use" msgstr "-o . = " msgid "-p = preserve state (incremental)" msgstr "-p = ()" msgid "-q = supress informational messages" msgstr "-q = " msgid "-r name = hide referrer 'name'" msgstr "-r = ''" msgid "-s name = hide site 'name'" msgstr "-s = ''" msgid "-t name = report title 'name'" msgstr "-t = ޣ ''" msgid "-u name = hide URL 'name'" msgstr "-u = URL ''" msgid "-v -V = print version information" msgstr "-v -V = " msgid "-x name = Use filename extension 'name'" msgstr "-x = '' HTML-" msgid "Afghanistan" msgstr "" msgid "Agents" msgstr "" msgid "Albania" msgstr "" msgid "Algeria" msgstr "" msgid "American Samoa" msgstr " " msgid "Andorra" msgstr "" msgid "Angola" msgstr "" msgid "Anguilla" msgstr "" msgid "Antarctica" msgstr "" msgid "Antigua and Barbuda" msgstr " " msgid "Apr" msgstr "" msgid "April" msgstr "" msgid "Argentina" msgstr "" msgid "Armenia" msgstr "" msgid "Aruba" msgstr "" msgid "Aug" msgstr "" msgid "August" msgstr "" msgid "Australia" msgstr "" msgid "Austria" msgstr "" msgid "Avg" msgstr " " msgid "Azerbaijan" msgstr "" msgid "Bahamas" msgstr "" msgid "Bahrain" msgstr "" msgid "Bangladesh" msgstr "" msgid "Barbados" msgstr "" msgid "Belarus" msgstr "" msgid "Belgium" msgstr "" msgid "Belize" msgstr "" msgid "Benin" msgstr "" msgid "Bermuda" msgstr " " msgid "Bhutan" msgstr "" msgid "Bolivia" msgstr "" msgid "Bosnia and Herzegovina" msgstr " " msgid "Botswana" msgstr "" msgid "Bouvet Island" msgstr " " msgid "Brazil" msgstr "" msgid "British Indian Ocean Territory" msgstr " . . " msgid "Brunei Darussalam" msgstr " " msgid "Bulgaria" msgstr "" msgid "Burkina Faso" msgstr " " msgid "Burundi" msgstr "" msgid "By" msgstr "" msgid "Cambodia" msgstr "" msgid "Cameroon" msgstr "" msgid "Can't allocate enough memory, Top Countries disabled!" msgstr " , !" msgid "Can't allocate enough memory, Top Referrers disabled!" msgstr " , !" msgid "Can't allocate enough memory, Top Search Strings disabled!" msgstr " , !" msgid "Can't allocate enough memory, Top Sites disabled!" msgstr " , !" msgid "Can't allocate enough memory, Top URLs disabled!" msgstr " , URL !" msgid "Can't allocate enough memory, Top User Agents disabled!" msgstr " , !" msgid "Can't allocate enough memory, Top Usernames disabled!" msgstr " , ͣ !" msgid "Canada" msgstr "" msgid "Cape Verde" msgstr "-" msgid "Cayman Islands" msgstr " " msgid "Central African Republic" msgstr " " msgid "Chad" msgstr " " msgid "Chile" msgstr "" msgid "China" msgstr "" msgid "Christmas Island" msgstr " " msgid "Cocos (Keeling) Islands" msgstr " " msgid "Code 100 - Continue" msgstr " 100 - Continue" msgid "Code 101 - Switching Protocols" msgstr " 101 - Switching Protocols" msgid "Code 200 - OK" msgstr " 200 - OK" msgid "Code 201 - Created" msgstr " 201 - Created" msgid "Code 202 - Accepted" msgstr " 202 - Accepted" msgid "Code 203 - Non-Authoritative Information" msgstr " 203 - Non-Authoritative Information" msgid "Code 204 - No Content" msgstr " 204 - No Content" msgid "Code 205 - Reset Content" msgstr " 205 - Reset Content" msgid "Code 206 - Partial Content" msgstr " 206 - Partial Content" msgid "Code 300 - Multiple Choices" msgstr " 300 - Multiple Choices" msgid "Code 301 - Moved Permanently" msgstr " 301 - Moved Permanently" msgid "Code 302 - Found" msgstr " 302 - Found" msgid "Code 303 - See Other" msgstr " 303 - See Other" msgid "Code 304 - Not Modified" msgstr " 304 - Not Modified" msgid "Code 305 - Use Proxy" msgstr " 305 - Use Proxy" msgid "Code 307 - Moved Temporarily" msgstr " 307 - Moved Temporarily" msgid "Code 400 - Bad Request" msgstr " 400 - Bad Request" msgid "Code 401 - Unauthorized" msgstr " 401 - Unauthorized" msgid "Code 402 - Payment Required" msgstr " 402 - Payment Required" msgid "Code 403 - Forbidden" msgstr " 403 - Forbidden" msgid "Code 404 - Not Found" msgstr " 404 - Not Found" msgid "Code 405 - Method Not Allowed" msgstr " 405 - Method Not Allowed" msgid "Code 406 - Not Acceptable" msgstr " 406 - Not Acceptable" msgid "Code 407 - Proxy Authentication Required" msgstr " 407 - Proxy Authentication Required" msgid "Code 408 - Request Timeout" msgstr " 408 - Request Timeout" msgid "Code 409 - Conflict" msgstr " 409 - Conflict" msgid "Code 410 - Gone" msgstr " 410 - Gone" msgid "Code 411 - Length Required" msgstr " 411 - Length Required" msgid "Code 412 - Precondition Failed" msgstr " 412 - Precondition Failed" msgid "Code 413 - Request Entity Too Large" msgstr " 413 - Request Entity Too Large" msgid "Code 414 - Request-URI Too Long" msgstr " 414 - Request-URI Too Long" msgid "Code 415 - Unsupported Media Type" msgstr " 415 - Unsupported Media Type" msgid "Code 416 - Requested Range Not Satisfiable" msgstr " 416 - Requested Range Not Satisfiable" msgid "Code 417 - Expectation Failed" msgstr " 417 - Expectation Failed" msgid "Code 500 - Internal Server Error" msgstr " 500 - Internal Server Error" msgid "Code 501 - Not Implemented" msgstr " 501 - Not Implemented" msgid "Code 502 - Bad Gateway" msgstr " 502 - Bad Gateway" msgid "Code 503 - Service Unavailable" msgstr " 503 - Service Unavailable" msgid "Code 504 - Gateway Timeout" msgstr " 504 - Gateway Timeout" msgid "Code 505 - HTTP Version Not Supported" msgstr " 505 - HTTP Version Not Supported" msgid "Colombia" msgstr "" msgid "Comoros" msgstr " " msgid "Congo" msgstr "" msgid "Cook Islands" msgstr " " msgid "Costa Rica" msgstr "-" msgid "Cote D'Ivoire (Ivory Coast)" msgstr " " msgid "Countries" msgstr "" msgid "Country" msgstr "" msgid "Creating output in" msgstr " " msgid "Croatia (Hrvatska)" msgstr " (Hrvatska)" msgid "Cuba" msgstr "" msgid "Cyprus" msgstr "" msgid "Czech Republic" msgstr " " msgid "Czechoslovakia (former)" msgstr " " msgid "DNS Lookup" msgstr "DNS " msgid "Daily Avg" msgstr " " msgid "Daily Statistics" msgstr " " msgid "Daily Statistics for" msgstr " " msgid "Daily usage for" msgstr " " msgid "Day" msgstr "" msgid "Dec" msgstr "" msgid "December" msgstr "" msgid "Denmark" msgstr "" msgid "Djibouti" msgstr "" msgid "Dominica" msgstr "" msgid "Dominican Republic" msgstr " " msgid "East Timor" msgstr " " msgid "Ecuador" msgstr "" msgid "Egypt" msgstr "" msgid "El Salvador" msgstr "" msgid "English" msgstr "Russian" msgid "Entry" msgstr " " msgid "Equatorial Guinea" msgstr " " msgid "Eritrea" msgstr "" msgid "Error adding Referrer node, skipping" msgstr " , " msgid "Error adding Search String Node, skipping" msgstr " , " msgid "Error adding URL node, skipping" msgstr " URL, " msgid "Error adding User Agent node, skipping" msgstr " , " msgid "Error adding Username node, skipping" msgstr " , " msgid "Error adding host node (daily), skipping" msgstr " ( ޣ), " msgid "Error adding host node (monthly), skipping" msgstr " ( ޣ), " msgid "Error: Can't change directory to" msgstr ": " msgid "Error: Can't open log file" msgstr ": ޣ " msgid "Error: Ignoring invalid history record" msgstr ": " msgid "Error: Skipping oversized log record" msgstr ": ޣ " msgid "Error: Skipping record (bad date)" msgstr ": ( )" msgid "Error: Unable to lock DNS cache file" msgstr ": - DNS" msgid "Error: Unable to open DNS cache file" msgstr ": - DNS" msgid "Error: Unable to open configuration file" msgstr ": " msgid "Error: Unable to open file" msgstr ": " msgid "Error: Unable to restore run data" msgstr ": " msgid "Error: Unable to save current run data" msgstr ": " msgid "Error: Unable to write history file" msgstr ": " msgid "Estonia" msgstr "" msgid "Ethiopia" msgstr "" msgid "Exit" msgstr " " msgid "Falkland Islands (Malvinas)" msgstr " () -" msgid "Faroe Islands" msgstr " " msgid "Feb" msgstr "" msgid "February" msgstr "" msgid "Fiji" msgstr "" msgid "Files" msgstr "" msgid "Files per Day" msgstr " " msgid "Finland" msgstr "" msgid "France" msgstr "" msgid "France; Metropolitan" msgstr " ()" msgid "French Guiana" msgstr " " msgid "French Polynesia" msgstr " " msgid "French Southern Territories" msgstr " " msgid "Gabon" msgstr "" msgid "Gambia" msgstr "" msgid "Generated" msgstr " " msgid "Generating report for" msgstr " ޣ " msgid "Generating summary report" msgstr " ޣ" msgid "Georgia" msgstr "" msgid "Germany" msgstr "" msgid "Ghana" msgstr "" msgid "Gibraltar" msgstr "" msgid "Great Britain (UK)" msgstr " (UK)" msgid "Greece" msgstr "" msgid "Greenland" msgstr "" msgid "Grenada" msgstr "" msgid "Guadeloupe" msgstr "" msgid "Guam" msgstr "" msgid "Guatemala" msgstr "" msgid "Guinea" msgstr "" msgid "Guinea-Bissau" msgstr "-" msgid "Guyana" msgstr "" msgid "Haiti" msgstr "" msgid "Heard and McDonald Islands" msgstr " " msgid "History file not found..." msgstr " ..." msgid "Hits" msgstr "" msgid "Hits by Response Code" msgstr " " msgid "Hits per Day" msgstr " " msgid "Hits per Hour" msgstr " " msgid "Honduras" msgstr "" msgid "Hong Kong" msgstr "" msgid "Hostname" msgstr " " msgid "Hostname for reports is" msgstr " ޣ " msgid "Hour" msgstr "" msgid "Hourly Statistics" msgstr " " msgid "Hourly Statistics for" msgstr " " msgid "Hourly usage for" msgstr " " msgid "Hungary" msgstr "" msgid "Iceland" msgstr "" msgid "Ignoring previous history..." msgstr " ..." msgid "India" msgstr "" msgid "Indonesia" msgstr "" msgid "International (int)" msgstr " (int)" msgid "Iran" msgstr "" msgid "Iraq" msgstr "" msgid "Ireland" msgstr "" msgid "Israel" msgstr "" msgid "Italy" msgstr "" msgid "Jamaica" msgstr "" msgid "Jan" msgstr "" msgid "January" msgstr "" msgid "Japan" msgstr "" msgid "Jordan" msgstr "" msgid "Jul" msgstr "" msgid "July" msgstr "" msgid "Jun" msgstr "" msgid "June" msgstr "" msgid "KBytes" msgstr "" msgid "KBytes per Day" msgstr "ߣ ()" msgid "Kazakhstan" msgstr "" msgid "Kenya" msgstr "" msgid "Kiribati" msgstr "" msgid "Korea (North)" msgstr " " msgid "Korea (South)" msgstr " " msgid "Kuwait" msgstr "" msgid "Kyrgyzstan" msgstr "" msgid "Laos" msgstr "" msgid "Last 12 Months" msgstr " 12 " msgid "Latvia" msgstr "" msgid "Lebanon" msgstr "" msgid "Lesotho" msgstr "" msgid "Liberia" msgstr "" msgid "Libya" msgstr "" msgid "Liechtenstein" msgstr "" msgid "Lithuania" msgstr "" msgid "Luxembourg" msgstr "" msgid "Macau" msgstr "" msgid "Macedonia" msgstr "" msgid "Madagascar" msgstr "" msgid "Malawi" msgstr "" msgid "Malaysia" msgstr "" msgid "Maldives" msgstr " " msgid "Mali" msgstr "" msgid "Malta" msgstr "" msgid "Mar" msgstr "" msgid "March" msgstr "" msgid "Marshall Islands" msgstr " " msgid "Martinique" msgstr "" msgid "Mauritania" msgstr "" msgid "Mauritius" msgstr "" msgid "Max" msgstr "Max" msgid "May" msgstr "" msgid "Mayotte" msgstr " " msgid "Mexico" msgstr "" msgid "Micronesia" msgstr "" msgid "Moldova" msgstr "" msgid "Monaco" msgstr "" msgid "Mongolia" msgstr "" msgid "Month" msgstr "" msgid "Monthly Statistics for" msgstr " " msgid "Monthly Totals" msgstr " " msgid "Montserrat" msgstr "" msgid "Morocco" msgstr "" msgid "Mozambique" msgstr "" msgid "Myanmar" msgstr "" msgid "Namibia" msgstr "" msgid "Nato field (nato)" msgstr " (nato)" msgid "Nauru" msgstr "" msgid "Nepal" msgstr "" msgid "Netherlands" msgstr "" msgid "Netherlands Antilles" msgstr " " msgid "Network" msgstr " " msgid "Neutral Zone" msgstr " " msgid "New Caledonia" msgstr " " msgid "New Zealand (Aotearoa)" msgstr " " msgid "Nicaragua" msgstr "" msgid "Niger" msgstr "" msgid "Nigeria" msgstr "" msgid "Niue" msgstr "" msgid "No cache file specified, aborting..." msgstr " -, ..." msgid "No valid records found!" msgstr " !" msgid "Non-Profit Organization" msgstr " " msgid "None to process" msgstr " " msgid "Norfolk Island" msgstr " " msgid "Northern Mariana Islands" msgstr " " msgid "Norway" msgstr "" msgid "Nov" msgstr "" msgid "November" msgstr "" msgid "Oct" msgstr "" msgid "October" msgstr "" msgid "Old style Arpanet (arpa)" msgstr " Arpanet (arpa)" msgid "Oman" msgstr "" msgid "Other" msgstr "" msgid "Pages" msgstr "" msgid "Pages per Day" msgstr " " msgid "Pakistan" msgstr "" msgid "Palau" msgstr "" msgid "Panama" msgstr "" msgid "Papua New Guinea" msgstr " " msgid "Paraguay" msgstr "" msgid "Peru" msgstr "" msgid "Philippines" msgstr "" msgid "Pitcairn" msgstr "" msgid "Poland" msgstr "" msgid "Portugal" msgstr "" msgid "Previous run data not found..." msgstr " ..." msgid "Puerto Rico" msgstr " " msgid "Qatar" msgstr "" msgid "Reading history file..." msgstr " ..." msgid "Reading previous run data..." msgstr " ..." msgid "Referrer" msgstr " " msgid "Referrers" msgstr " " msgid "Reunion" msgstr " " msgid "Romania" msgstr "" msgid "Russian Federation" msgstr " " msgid "Rwanda" msgstr "" msgid "S. Georgia and S. Sandwich Isls." msgstr ". . -" msgid "Saint Kitts and Nevis" msgstr " " msgid "Saint Lucia" msgstr " " msgid "Saint Vincent and the Grenadines" msgstr "- . " msgid "Samoa" msgstr "" msgid "San Marino" msgstr " " msgid "Sao Tome and Principe" msgstr " " msgid "Saudi Arabia" msgstr " " msgid "Saving current run data..." msgstr " ..." msgid "Saving history information..." msgstr " ..." msgid "Search" msgstr "" msgid "Search String" msgstr " " msgid "Senegal" msgstr "" msgid "Sep" msgstr "" msgid "September" msgstr "" msgid "Seychelles" msgstr " " msgid "Sierra Leone" msgstr " " msgid "Singapore" msgstr "" msgid "Sites" msgstr "" msgid "Skipping Netscape header record" msgstr " Netscape" msgid "Skipping bad record" msgstr " " msgid "Slovak Republic" msgstr " " msgid "Slovenia" msgstr "" msgid "Solomon Islands" msgstr " " msgid "Somalia" msgstr "" msgid "South Africa" msgstr " " msgid "Spain" msgstr "" msgid "Sri Lanka" msgstr " " msgid "St. Helena" msgstr " " msgid "St. Pierre and Miquelon" msgstr " " msgid "Sudan" msgstr "" msgid "Summary Period" msgstr " " msgid "Summary by Month" msgstr " " msgid "Suriname" msgstr "" msgid "Svalbard and Jan Mayen Islands" msgstr " -" msgid "Swaziland" msgstr "" msgid "Sweden" msgstr "" msgid "Switzerland" msgstr "" msgid "Syria" msgstr "" msgid "Taiwan" msgstr "" msgid "Tajikistan" msgstr "" msgid "Tanzania" msgstr "" msgid "Thailand" msgstr "" msgid "Togo" msgstr "" msgid "Tokelau" msgstr " " msgid "Tonga" msgstr " " msgid "Top" msgstr "" msgid "Total" msgstr "" msgid "Total Countries" msgstr "" msgid "Total Entry Pages" msgstr " " msgid "Total Exit Pages" msgstr " " msgid "Total Files" msgstr " " msgid "Total Hits" msgstr " " msgid "Total KBytes" msgstr " " msgid "Total Referrers" msgstr " " msgid "Total Search Strings" msgstr " " msgid "Total Sites" msgstr "" msgid "Total URLs" msgstr "URL" msgid "Total Unique Referrers" msgstr " " msgid "Total Unique Sites" msgstr " " msgid "Total Unique URLs" msgstr " URL" msgid "Total Unique User Agents" msgstr " " msgid "Total Unique Usernames" msgstr " ͣ" msgid "Total User Agents" msgstr "" msgid "Total Usernames" msgstr "ͣ " msgid "Totals" msgstr "" msgid "Trinidad and Tobago" msgstr " " msgid "Tunisia" msgstr "" msgid "Turkey" msgstr "" msgid "Turkmenistan" msgstr "" msgid "Turks and Caicos Islands" msgstr " " msgid "Tuvalu" msgstr "" msgid "URL" msgstr "URL" msgid "URLs" msgstr "URL" msgid "US Commercial" msgstr " " msgid "US Educational" msgstr " " msgid "US Government" msgstr " " msgid "US Military" msgstr " " msgid "US Minor Outlying Islands" msgstr " ()" msgid "USSR (former)" msgstr " (SU)" msgid "Uganda" msgstr "" msgid "Ukraine" msgstr "" msgid "Undefined response code" msgstr " " msgid "United Arab Emirates" msgstr "Σ " msgid "United Kingdom" msgstr "Σ " msgid "United States" msgstr "Σ " msgid "Unresolved/Unknown" msgstr "/" msgid "Uruguay" msgstr "" msgid "Usage" msgstr "" msgid "Usage Statistics for" msgstr " " msgid "Usage by Country for" msgstr " " msgid "Usage summary for" msgstr " " msgid "User Agent" msgstr "" msgid "Username" msgstr " " msgid "Users" msgstr "" msgid "Using DNS cache file" msgstr " DNS -" msgid "Using logfile" msgstr " ޣ " msgid "Uzbekistan" msgstr "" msgid "Vanuatu" msgstr "" msgid "Vatican City State (Holy See)" msgstr "" msgid "Venezuela" msgstr "" msgid "Viet Nam" msgstr "" msgid "View All Referrers" msgstr " " msgid "View All Search Strings" msgstr " " msgid "View All Sites" msgstr " " msgid "View All URLs" msgstr " URL-" msgid "View All User Agents" msgstr " " msgid "View All Usernames" msgstr " " msgid "Virgin Islands (British)" msgstr " ()" msgid "Virgin Islands (U.S.)" msgstr " ()" msgid "Visits" msgstr "" msgid "Visits per Day" msgstr " " msgid "Wallis and Futuna Islands" msgstr " " msgid "Warning: Invalid keyword" msgstr ": " msgid "Warning: Possible duplicate data found" msgstr ": " msgid "Warning: String exceeds storage size" msgstr ": ߣ" msgid "Warning: Truncating oversized date field" msgstr ": " msgid "Warning: Truncating oversized hostname" msgstr ": " msgid "Warning: Truncating oversized referrer field" msgstr ": " msgid "Warning: Truncating oversized request field" msgstr ": " msgid "Warning: Truncating oversized username" msgstr ": " msgid "Western Sahara" msgstr " " msgid "Yemen" msgstr "" msgid "Yugoslavia" msgstr "" msgid "Zaire" msgstr "" msgid "Zambia" msgstr "" msgid "Zimbabwe" msgstr "" msgid "[options] [log file]" msgstr "[] [ޣ ]" msgid "addresses" msgstr "" msgid "bad" msgstr "" msgid "current directory" msgstr " " msgid "ignored" msgstr "" msgid "in" msgstr "" msgid "of" msgstr "" msgid "records" msgstr "" msgid "seconds" msgstr "" webdruid-0.5.4.orig/po/fi.po0000644000000000000000000006354010066113350015601 0ustar rootroot00000000000000msgid "" msgstr "" "Project-Id-Version: 1.0\n" "PO-Revision-Date: 2003-05-25 23:29+0200\n" "Last-Translator: Johan Poirier \n" "Language-Team: French \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=ISO-8859-1\n" "Content-Transfer-Encoding: 8bit" msgid "-A num = Display num top agents" msgstr "-A num = Display num top agents" msgid "-C num = Display num top countries" msgstr "-C num = Display num top countries" msgid "-D name = Use DNS Cache file 'name'" msgstr "-D name = Use DNS Cache file 'name'" msgid "-E num = Display num top Exit Pages" msgstr "-E num = Display num top Exit Pages" msgid "-F type = Log type. type= (clf | ftp | squid)" msgstr "-F type = Log type. type= (clf | ftp | squid)" msgid "-G = supress hourly graph" msgstr "-G = supress hourly graph" msgid "-H = supress hourly stats" msgstr "-H = supress hourly stats" msgid "-I name = Index alias 'name'" msgstr "-I name = Index alias 'name'" msgid "-L = supress color coded graph legends" msgstr "-L = supress color coded graph legends" msgid "-N num = Number of DNS processes (0=disable)" msgstr "-N num = Number of DNS processes (0=disable)" msgid "-P name = Page type extension 'name'" msgstr "-P name = Page type extension 'name'" msgid "-Q = supress _ALL_ messages" msgstr "-Q = supress _ALL_ messages" msgid "-R num = Display num top referrers" msgstr "-R num = Display num top referrers" msgid "-S num = Display num top sites" msgstr "-S num = Display num top sites" msgid "-T = print timing information" msgstr "-T = print timing information" msgid "-U num = Display num top URLs" msgstr "-U num = Display num top URLs" msgid "-X = Hide individual sites" msgstr "-X = Hide individual sites" msgid "-Y = supress country graph" msgstr "-Y = supress country graph" msgid "-a name = hide user agent 'name'" msgstr "-a name = hide user agent 'name'" msgid "-c file = use configuration file 'file'" msgstr "-c file = use configuration file 'file'" msgid "-d = print additional debug info" msgstr "-d = print additional debug info" msgid "-e num = Display num top Entry Pages" msgstr "-e num = Display num top Entry Pages" msgid "-f = Fold sequence errors" msgstr "-f = Fold sequence errors" msgid "-g num = Group Domains to 'num' levels" msgstr "-g num = Group Domains to 'num' levels" msgid "-h = print this help message" msgstr "-h = print this help message" msgid "-i = ignore history file" msgstr "-i = ignore history file" msgid "-l num = use num background lines on graph" msgstr "-l num = use num background lines on graph" msgid "-m num = Visit timout value (seconds)" msgstr "-m num = Visit timout value (seconds)" msgid "-n name = hostname to use" msgstr "-n name = hostname to use" msgid "-o dir = output directory to use" msgstr "-o dir = output directory to use" msgid "-p = preserve state (incremental)" msgstr "-p = preserve state (incremental)" msgid "-q = supress informational messages" msgstr "-q = supress informational messages" msgid "-r name = hide referrer 'name'" msgstr "-r name = hide referrer 'name'" msgid "-s name = hide site 'name'" msgstr "-s name = hide site 'name'" msgid "-t name = report title 'name'" msgstr "-t name = report title 'name'" msgid "-u name = hide URL 'name'" msgstr "-u name = hide URL 'name'" msgid "-v -V = print version information" msgstr "-v -V = print version information" msgid "-x name = Use filename extension 'name'" msgstr "-x name = Use filename extension 'name'" msgid "Afghanistan" msgstr "Afganistan" msgid "Agents" msgstr "Selaimet" msgid "Albania" msgstr "Albania" msgid "Algeria" msgstr "Algeria" msgid "American Samoa" msgstr "Amerikan Samoa" msgid "Andorra" msgstr "Andorra" msgid "Angola" msgstr "Angola" msgid "Anguilla" msgstr "Anguilla" msgid "Antarctica" msgstr "Etelnapamantere" msgid "Antigua and Barbuda" msgstr "Antigua and Barbuda" msgid "Apr" msgstr "Huh" msgid "April" msgstr "huhtikuussa" msgid "Argentina" msgstr "Argentiina" msgid "Armenia" msgstr "Armenia" msgid "Aruba" msgstr "Aruba" msgid "Aug" msgstr "Elo" msgid "August" msgstr "elokuussa" msgid "Australia" msgstr "Australia" msgid "Austria" msgstr "Itvalta" msgid "Avg" msgstr "Keskiarvo" msgid "Azerbaijan" msgstr "Azerbaijan" msgid "Bahamas" msgstr "Bahama" msgid "Bahrain" msgstr "Bahrain" msgid "Bangladesh" msgstr "Bangladesh" msgid "Barbados" msgstr "Barbados" msgid "Belarus" msgstr "Valko-Venj" msgid "Belgium" msgstr "Belgia" msgid "Belize" msgstr "Belize" msgid "Benin" msgstr "Benin" msgid "Bermuda" msgstr "Bermuda" msgid "Bhutan" msgstr "Bhutan" msgid "Bolivia" msgstr "Bolivia" msgid "Bosnia and Herzegovina" msgstr "Bosnia ja Herzegovina" msgid "Botswana" msgstr "Botswana" msgid "Bouvet Island" msgstr "Bouvet Island" msgid "Brazil" msgstr "Brasilia" msgid "British Indian Ocean Territory" msgstr "British Indian Ocean Territory" msgid "Brunei Darussalam" msgstr "Brunei Darussalam" msgid "Bulgaria" msgstr "Bulgaria" msgid "Burkina Faso" msgstr "Burkina Faso" msgid "Burundi" msgstr "Burundi" msgid "By" msgstr "/" msgid "Cambodia" msgstr "Kambodza" msgid "Cameroon" msgstr "Camerun" msgid "Can't allocate enough memory, Top Countries disabled!" msgstr "Can't allocate enough memory, Top Countries disabled!" msgid "Can't allocate enough memory, Top Referrers disabled!" msgstr "Can't allocate enough memory, Top Referrers disabled!" msgid "Can't allocate enough memory, Top Search Strings disabled!" msgstr "Can't allocate enough memory, Top Search Strings disabled!" msgid "Can't allocate enough memory, Top Sites disabled!" msgstr "Can't allocate enough memory, Top Sites disabled!" msgid "Can't allocate enough memory, Top URLs disabled!" msgstr "Can't allocate enough memory, Top URLs disabled!" msgid "Can't allocate enough memory, Top User Agents disabled!" msgstr "Can't allocate enough memory, Top User Agents disabled!" msgid "Can't allocate enough memory, Top Usernames disabled!" msgstr "Can't allocate enough memory, Top Usernames disabled!" msgid "Canada" msgstr "Kanada" msgid "Cape Verde" msgstr "Cape Verde" msgid "Cayman Islands" msgstr "Cayman Saaret" msgid "Central African Republic" msgstr "Central African Republic" msgid "Chad" msgstr "Chad" msgid "Chile" msgstr "Chile" msgid "China" msgstr "Kiina" msgid "Christmas Island" msgstr "Joulusaaret" msgid "Cocos (Keeling) Islands" msgstr "Cocos (Keeling) Islands" msgid "Code 100 - Continue" msgstr "Code 100 - Jatka" msgid "Code 101 - Switching Protocols" msgstr "Code 101 - Vaihda Protokollaa" msgid "Code 200 - OK" msgstr "Code 200 - OK" msgid "Code 201 - Created" msgstr "Code 201 - Luotu" msgid "Code 202 - Accepted" msgstr "Code 202 - Hyvksytty" msgid "Code 203 - Non-Authoritative Information" msgstr "Code 203 - Non-Authoritative Information" msgid "Code 204 - No Content" msgstr "Code 204 - Ei sislt" msgid "Code 205 - Reset Content" msgstr "Code 205 - Tyhjenn sislt" msgid "Code 206 - Partial Content" msgstr "Code 206 - Osittainen sislt" msgid "Code 300 - Multiple Choices" msgstr "Code 300 - Useita vaihtoehtoja" msgid "Code 301 - Moved Permanently" msgstr "Code 301 - Siirretty pysyvsti" msgid "Code 302 - Found" msgstr "Code 302 - Lytyi" msgid "Code 303 - See Other" msgstr "Code 303 - Katso toinen" msgid "Code 304 - Not Modified" msgstr "Code 304 - Ei muutettu" msgid "Code 305 - Use Proxy" msgstr "Code 305 - Kyt vlityspalvelinta" msgid "Code 307 - Moved Temporarily" msgstr "Code 307 - Siirretty tilapisesti" msgid "Code 400 - Bad Request" msgstr "Code 400 - Huono pyynt" msgid "Code 401 - Unauthorized" msgstr "Code 401 - Ei kyttoikeutta" msgid "Code 402 - Payment Required" msgstr "Code 402 - Maksu vaaditaan" msgid "Code 403 - Forbidden" msgstr "Code 403 - Kielletty" msgid "Code 404 - Not Found" msgstr "Code 404 - Ei lytynyt" msgid "Code 405 - Method Not Allowed" msgstr "Code 405 - Metodi ei ole sallittu" msgid "Code 406 - Not Acceptable" msgstr "Code 406 - Ei hyvksyttv" msgid "Code 407 - Proxy Authentication Required" msgstr "Code 407 - Proxy Authentication Required" msgid "Code 408 - Request Timeout" msgstr "Code 408 - Request Timeout" msgid "Code 409 - Conflict" msgstr "Code 409 - Konflikti" msgid "Code 410 - Gone" msgstr "Code 410 - Mennytt" msgid "Code 411 - Length Required" msgstr "Code 411 - Pituus vaaditaan" msgid "Code 412 - Precondition Failed" msgstr "Code 412 - Precondition Failed" msgid "Code 413 - Request Entity Too Large" msgstr "Code 413 - Request Entity Too Large" msgid "Code 414 - Request-URI Too Long" msgstr "Code 414 - Pyydetty URL liian pitk" msgid "Code 415 - Unsupported Media Type" msgstr "Code 415 - Mediatyyppi ei tueta" msgid "Code 416 - Requested Range Not Satisfiable" msgstr "Code 416 - Requested Range Not Satisfiable" msgid "Code 417 - Expectation Failed" msgstr "Code 417 - Expectation Failed" msgid "Code 500 - Internal Server Error" msgstr "Code 500 - Palvelimen sisinen virhe" msgid "Code 501 - Not Implemented" msgstr "Code 501 - Not Implemented" msgid "Code 502 - Bad Gateway" msgstr "Code 502 - Bad Gateway" msgid "Code 503 - Service Unavailable" msgstr "Code 503 - Palvelu ei ole saatavilla" msgid "Code 504 - Gateway Timeout" msgstr "Code 504 - Gateway Timeout" msgid "Code 505 - HTTP Version Not Supported" msgstr "Code 505 - HTTP-versiota ei tueta" msgid "Colombia" msgstr "Kolumbia" msgid "Comoros" msgstr "Comoros" msgid "Congo" msgstr "Kongo" msgid "Cook Islands" msgstr "Cook Islands" msgid "Costa Rica" msgstr "Costa Rica" msgid "Cote D'Ivoire (Ivory Coast)" msgstr "Norsunluurannikko" msgid "Countries" msgstr "Valtiot" msgid "Country" msgstr "Valtiot" msgid "Creating output in" msgstr "Creating output in" msgid "Croatia (Hrvatska)" msgstr "Kroatia (Hrvatska)" msgid "Cuba" msgstr "Kuuba" msgid "Cyprus" msgstr "Kypros" msgid "Czech Republic" msgstr "Tsekki" msgid "Czechoslovakia (former)" msgstr "Tsekkoslovakia (entinen)" msgid "DNS Lookup" msgstr "DNS Lookup" msgid "Daily Avg" msgstr "Pivien keskiarvo" msgid "Daily Statistics" msgstr "Pivtilastot" msgid "Daily Statistics for" msgstr "Pivittiset tilastot" msgid "Daily usage for" msgstr "Pivittinen kytt" msgid "Day" msgstr "Piv" msgid "Dec" msgstr "Jou" msgid "December" msgstr "joulukuussa" msgid "Denmark" msgstr "Tanska" msgid "Djibouti" msgstr "Djibouti" msgid "Dominica" msgstr "Dominica" msgid "Dominican Republic" msgstr "Dominikaaninen Tasavalta" msgid "East Timor" msgstr "It Timori" msgid "Ecuador" msgstr "Ecuador" msgid "Egypt" msgstr "Egypti" msgid "El Salvador" msgstr "El Salvador" msgid "English" msgstr "Finnish" msgid "Entry" msgstr "Sisntulosivut" msgid "Equatorial Guinea" msgstr "Equatorial Guinea" msgid "Eritrea" msgstr "Eritrea" msgid "Error adding Referrer node, skipping" msgstr "Error adding Referrer node, skipping" msgid "Error adding Search String Node, skipping" msgstr "Error adding Search String Node, skipping" msgid "Error adding URL node, skipping" msgstr "Error adding URL node, skipping" msgid "Error adding User Agent node, skipping" msgstr "Error adding User Agent node, skipping" msgid "Error adding Username node, skipping" msgstr "Error adding Username node, skipping" msgid "Error adding host node (daily), skipping" msgstr "Error adding host node (daily), skipping" msgid "Error adding host node (monthly), skipping" msgstr "Error adding host node (monthly), skipping" msgid "Error: Can't change directory to" msgstr "Error: Can't change directory to" msgid "Error: Can't open log file" msgstr "Error: Can't open log file" msgid "Error: Ignoring invalid history record" msgstr "Error: Ignoring invalid history record" msgid "Error: Skipping oversized log record" msgstr "Error: Skipping oversized log record" msgid "Error: Skipping record (bad date)" msgstr "Error: Skipping record (bad date)" msgid "Error: Unable to lock DNS cache file" msgstr "Error: Unable to lock DNS cache file" msgid "Error: Unable to open DNS cache file" msgstr "Error: Unable to open DNS cache file" msgid "Error: Unable to open configuration file" msgstr "Error: Unable to open configuration file" msgid "Error: Unable to open file" msgstr "Virhe: Tiedostoa ei voi avata:" msgid "Error: Unable to restore run data" msgstr "Error: Unable to restore run data" msgid "Error: Unable to save current run data" msgstr "Error: Unable to save current run data" msgid "Error: Unable to write history file" msgstr "Error: Unable to write history file" msgid "Estonia" msgstr "Viro" msgid "Ethiopia" msgstr "Etiopia" msgid "Exit" msgstr "Ulosmenosivut" msgid "Falkland Islands (Malvinas)" msgstr "Falklandin Saaret (Malvinas)" msgid "Faroe Islands" msgstr "Frsaaret" msgid "Feb" msgstr "Hel" msgid "February" msgstr "helmikuussa" msgid "Fiji" msgstr "Fiji" msgid "Files" msgstr "tiedostoja" msgid "Files per Day" msgstr "Tiedostoja / piv" msgid "Finland" msgstr "Suomi" msgid "France" msgstr "Ranska" msgid "France; Metropolitan" msgstr "Ranska, Metropolitan" msgid "French Guiana" msgstr "Ranskan Guiana" msgid "French Polynesia" msgstr "Ranskan Polynesia" msgid "French Southern Territories" msgstr "French Southern Territories" msgid "Gabon" msgstr "Gabon" msgid "Gambia" msgstr "Gambia" msgid "Generated" msgstr "Luotu" msgid "Generating report for" msgstr "Generating report for" msgid "Generating summary report" msgstr "Generating summary report" msgid "Georgia" msgstr "Georgia" msgid "Germany" msgstr "Saksa" msgid "Ghana" msgstr "Ghana" msgid "Gibraltar" msgstr "Gibraltar" msgid "Great Britain (UK)" msgstr "Iso-Britannia (UK)" msgid "Greece" msgstr "Kreikka" msgid "Greenland" msgstr "Greenland" msgid "Grenada" msgstr "Grenada" msgid "Guadeloupe" msgstr "Guadeloupe" msgid "Guam" msgstr "Guam" msgid "Guatemala" msgstr "Guatemala" msgid "Guinea" msgstr "Guinea" msgid "Guinea-Bissau" msgstr "Guinea-Bissau" msgid "Guyana" msgstr "Guajana" msgid "Haiti" msgstr "Haiti" msgid "Heard and McDonald Islands" msgstr "Heard and McDonald Islands" msgid "History file not found..." msgstr "History file not found..." msgid "Hits" msgstr "osumia" msgid "Hits by Response Code" msgstr "Osumien vastauskoodit" msgid "Hits per Day" msgstr "Osumia / piv" msgid "Hits per Hour" msgstr "Osumia / tunti" msgid "Honduras" msgstr "Honduras" msgid "Hong Kong" msgstr "Hong Kong" msgid "Hostname" msgstr "Vlityspalvelin" msgid "Hostname for reports is" msgstr "Hostname for reports is" msgid "Hour" msgstr "Tunti" msgid "Hourly Statistics" msgstr "Tuntitilastot" msgid "Hourly Statistics for" msgstr "Tuntitilastot" msgid "Hourly usage for" msgstr "Tunnittainen kytt" msgid "Hungary" msgstr "Unkari" msgid "Iceland" msgstr "Islanti" msgid "Ignoring previous history..." msgstr "Ignoring previous history..." msgid "India" msgstr "Intia" msgid "Indonesia" msgstr "Indonesia" msgid "International (int)" msgstr "Kansainvlinen (.int)" msgid "Iran" msgstr "Iran" msgid "Iraq" msgstr "Irak" msgid "Ireland" msgstr "Irlanti" msgid "Israel" msgstr "Israel" msgid "Italy" msgstr "Italia" msgid "Jamaica" msgstr "Jamaica" msgid "Jan" msgstr "Tam" msgid "January" msgstr "tammikuussa" msgid "Japan" msgstr "Japani" msgid "Jordan" msgstr "Jordania" msgid "Jul" msgstr "Hei" msgid "July" msgstr "heinkuussa" msgid "Jun" msgstr "Kes" msgid "June" msgstr "keskuussa" msgid "KBytes" msgstr "kilotavuja" msgid "KBytes per Day" msgstr "Kilotavuja / piv" msgid "Kazakhstan" msgstr "Kazakhstan" msgid "Kenya" msgstr "Kenia" msgid "Kiribati" msgstr "Kiribati" msgid "Korea (North)" msgstr "Pohjois-Korea" msgid "Korea (South)" msgstr "Etel-Korea" msgid "Kuwait" msgstr "Kuwait" msgid "Kyrgyzstan" msgstr "Kyrgyzstan" msgid "Laos" msgstr "Laos" msgid "Last 12 Months" msgstr "Viimeisimmt 12 kuukautta" msgid "Latvia" msgstr "Latvia" msgid "Lebanon" msgstr "Libanon" msgid "Lesotho" msgstr "Lesotho" msgid "Liberia" msgstr "Liberia" msgid "Libya" msgstr "Libya" msgid "Liechtenstein" msgstr "Liechtenstein" msgid "Lithuania" msgstr "Liettua" msgid "Luxembourg" msgstr "Luxemburg" msgid "Macau" msgstr "Macao" msgid "Macedonia" msgstr "Makedonia" msgid "Madagascar" msgstr "Madagascar" msgid "Malawi" msgstr "Malawi" msgid "Malaysia" msgstr "Malesia" msgid "Maldives" msgstr "Malediivit" msgid "Mali" msgstr "Mali" msgid "Malta" msgstr "Malta" msgid "Mar" msgstr "Maa" msgid "March" msgstr "maaliskuussa" msgid "Marshall Islands" msgstr "Marshall Islands" msgid "Martinique" msgstr "Martinique" msgid "Mauritania" msgstr "Mauritania" msgid "Mauritius" msgstr "Mauritius" msgid "Max" msgstr "Max" msgid "May" msgstr "toukokuussa" msgid "Mayotte" msgstr "Mayotte" msgid "Mexico" msgstr "Meksiko" msgid "Micronesia" msgstr "Mikronesia" msgid "Moldova" msgstr "Moldova" msgid "Monaco" msgstr "Monaco" msgid "Mongolia" msgstr "Mongolia" msgid "Month" msgstr "Kuukausi" msgid "Monthly Statistics for" msgstr "Kuukausitilastot" msgid "Monthly Totals" msgstr "Yhteens kuukaudessa" msgid "Montserrat" msgstr "Montserrat" msgid "Morocco" msgstr "Marokko" msgid "Mozambique" msgstr "Mosambik" msgid "Myanmar" msgstr "Myanmar" msgid "Namibia" msgstr "Namibia" msgid "Nato field (nato)" msgstr "Naton tukikohta (.nato)" msgid "Nauru" msgstr "Nauru" msgid "Nepal" msgstr "Nepali" msgid "Netherlands" msgstr "Hollanti" msgid "Netherlands Antilles" msgstr "Hollannin Antillit" msgid "Network" msgstr "Verkko (.net)" msgid "Neutral Zone" msgstr "Neutraali alue" msgid "New Caledonia" msgstr "Uusi Caledonia" msgid "New Zealand (Aotearoa)" msgstr "Uusi-Seelanti (Aotearoa)" msgid "Nicaragua" msgstr "Nicaragua" msgid "Niger" msgstr "Nigeria" msgid "Nigeria" msgstr "Nigeria" msgid "Niue" msgstr "Niue" msgid "No cache file specified, aborting..." msgstr "No cache file specified, aborting..." msgid "No valid records found!" msgstr "No valid records found!" msgid "Non-Profit Organization" msgstr "Ei-kaupallinen yhteis (.org)" msgid "None to process" msgstr "None to process" msgid "Norfolk Island" msgstr "Norfolk Island" msgid "Northern Mariana Islands" msgstr "Northern Mariana Islands" msgid "Norway" msgstr "Norja" msgid "Nov" msgstr "Mar" msgid "November" msgstr "marraskuussa" msgid "Oct" msgstr "Lok" msgid "October" msgstr "lokakuussa" msgid "Old style Arpanet (arpa)" msgstr "Vanhan tyylin Arpanet (.arpa)" msgid "Oman" msgstr "Oman" msgid "Other" msgstr "Muut" msgid "Pages" msgstr "sivuja" msgid "Pages per Day" msgstr "Sivuja / piv" msgid "Pakistan" msgstr "Pakistan" msgid "Palau" msgstr "Palau" msgid "Panama" msgstr "Panama" msgid "Papua New Guinea" msgstr "Papua Uusi Guinea" msgid "Paraguay" msgstr "Paraguai" msgid "Peru" msgstr "Peru" msgid "Philippines" msgstr "Filippiinit" msgid "Pitcairn" msgstr "Pitcairn" msgid "Poland" msgstr "Puola" msgid "Portugal" msgstr "Portugali" msgid "Previous run data not found..." msgstr "Previous run data not found..." msgid "Puerto Rico" msgstr "Puerto Rico" msgid "Qatar" msgstr "Qatar" msgid "Reading history file..." msgstr "Reading history file..." msgid "Reading previous run data..." msgstr "Reading previous run data.." msgid "Referrer" msgstr "Hakupalvelimet / Linkit sivuille" msgid "Referrers" msgstr "Hakupalvelimet" msgid "Reunion" msgstr "Reunion" msgid "Romania" msgstr "Romania" msgid "Russian Federation" msgstr "Venj" msgid "Rwanda" msgstr "Rwanda" msgid "S. Georgia and S. Sandwich Isls." msgstr "S. Georgia and S. Sandwich Isls." msgid "Saint Kitts and Nevis" msgstr "Saint Kitts and Nevis" msgid "Saint Lucia" msgstr "Saint Lucia" msgid "Saint Vincent and the Grenadines" msgstr "Saint Vincent and the Grenadines" msgid "Samoa" msgstr "Samoa" msgid "San Marino" msgstr "San Marino" msgid "Sao Tome and Principe" msgstr "Sao Tome and Principe" msgid "Saudi Arabia" msgstr "Saudi Arabia" msgid "Saving current run data..." msgstr "Saving current run data..." msgid "Saving history information..." msgstr "Saving history information..." msgid "Search" msgstr "Hakusanat" msgid "Search String" msgstr "Hakusana" msgid "Senegal" msgstr "Senegali" msgid "Sep" msgstr "Syy" msgid "September" msgstr "syyskuussa" msgid "Seychelles" msgstr "Seychelles" msgid "Sierra Leone" msgstr "Sierra Leone" msgid "Singapore" msgstr "Singapore" msgid "Sites" msgstr "Koneet" msgid "Skipping Netscape header record" msgstr "Skipping Netscape header record" msgid "Skipping bad record" msgstr "Skipping bad record" msgid "Slovak Republic" msgstr "Slovakian Tasavalta" msgid "Slovenia" msgstr "Slovenia" msgid "Solomon Islands" msgstr "Solomon Islands" msgid "Somalia" msgstr "Somalia" msgid "South Africa" msgstr "Etel-Afrikka" msgid "Spain" msgstr "Espanja" msgid "Sri Lanka" msgstr "Sri Lanka" msgid "St. Helena" msgstr "St. Helena" msgid "St. Pierre and Miquelon" msgstr "St. Pierre and Miquelon" msgid "Sudan" msgstr "Sudan" msgid "Summary Period" msgstr "Yhteenveto ajalta" msgid "Summary by Month" msgstr "Kuukausittainen yhteenveto" msgid "Suriname" msgstr "Surinam" msgid "Svalbard and Jan Mayen Islands" msgstr "Svalbard and Jan Mayen Islands" msgid "Swaziland" msgstr "Swazimaa" msgid "Sweden" msgstr "Ruotsi" msgid "Switzerland" msgstr "Sveitsi" msgid "Syria" msgstr "Syyria" msgid "Taiwan" msgstr "Taiwan" msgid "Tajikistan" msgstr "Tajikistan" msgid "Tanzania" msgstr "Tansania" msgid "Thailand" msgstr "Thaimaa" msgid "Togo" msgstr "Togo" msgid "Tokelau" msgstr "Tokelau" msgid "Tonga" msgstr "Tonga" msgid "Top" msgstr "Parhaat " msgid "Total" msgstr "Yhteens" msgid "Total Countries" msgstr "valtiosta" msgid "Total Entry Pages" msgstr "sisntulosivusta" msgid "Total Exit Pages" msgstr "ulosmenosivusta" msgid "Total Files" msgstr "Tiedostoja yhteens" msgid "Total Hits" msgstr "Osumia yhteens" msgid "Total KBytes" msgstr "Kilotavuja yhteens" msgid "Total Referrers" msgstr "hakupalvelimesta" msgid "Total Search Strings" msgstr "hakusanasta" msgid "Total Sites" msgstr "koneesta" msgid "Total URLs" msgstr "URL:st" msgid "Total Unique Referrers" msgstr "Yhteens erilaisia hakupalvelimia" msgid "Total Unique Sites" msgstr "Yhteens erilaisia koneita" msgid "Total Unique URLs" msgstr "Yhteens erilaisia URL:i" msgid "Total Unique User Agents" msgstr "Yhteens erilaisia selaimia" msgid "Total Unique Usernames" msgstr "Yhteens erilaisia kyttjnimi" msgid "Total User Agents" msgstr "selaimesta" msgid "Total Usernames" msgstr "kyttjnimest" msgid "Totals" msgstr "Kaikki yhteens" msgid "Trinidad and Tobago" msgstr "Trinidad ja Tobago" msgid "Tunisia" msgstr "Tunisia" msgid "Turkey" msgstr "Turkki" msgid "Turkmenistan" msgstr "Turkmenistan" msgid "Turks and Caicos Islands" msgstr "Turks and Caicos Islands" msgid "Tuvalu" msgstr "Tuvalu" msgid "URL" msgstr "URL" msgid "URLs" msgstr "URL:t" msgid "US Commercial" msgstr "Kaupallinen (.com)" msgid "US Educational" msgstr "USA Educational (.edu)" msgid "US Government" msgstr "USA Hallitus (.gov)" msgid "US Military" msgstr "USA Armeija (.mil)" msgid "US Minor Outlying Islands" msgstr "US Minor Outlying Islands" msgid "USSR (former)" msgstr "Neuvostoliitto (ent.)" msgid "Uganda" msgstr "Uganda" msgid "Ukraine" msgstr "Ukraina" msgid "Undefined response code" msgstr "Tuntematon vastauskoodi" msgid "United Arab Emirates" msgstr "Yhdistyneet Arabiemiraatit" msgid "United Kingdom" msgstr "Iso-Britannia" msgid "United States" msgstr "Yhdysvallat" msgid "Unresolved/Unknown" msgstr "Tuntematon" msgid "Uruguay" msgstr "Uruguai" msgid "Usage" msgstr "Usage" msgid "Usage Statistics for" msgstr "Kytttilastot" msgid "Usage by Country for" msgstr "Kyttji valtioittain" msgid "Usage summary for" msgstr "Kyttyhteenveto:" msgid "User Agent" msgstr "Kytetyt selaimet" msgid "Username" msgstr "Kyttjnimi" msgid "Users" msgstr "Kyttjt" msgid "Using DNS cache file" msgstr "Using DNS cache file" msgid "Using logfile" msgstr "Using logfile" msgid "Uzbekistan" msgstr "Uzbekistan" msgid "Vanuatu" msgstr "Vanuatu" msgid "Vatican City State (Holy See)" msgstr "Vatikaani" msgid "Venezuela" msgstr "Venezuela" msgid "Viet Nam" msgstr "Vietnam" msgid "View All Referrers" msgstr "Katso kaikki linkit sivuille" msgid "View All Search Strings" msgstr "Katso kaikki hakusanat" msgid "View All Sites" msgstr "Katso kaikki koneet" msgid "View All URLs" msgstr "Katso kaikki URL:t" msgid "View All User Agents" msgstr "Katso kaikki selaimet" msgid "View All Usernames" msgstr "Katso kaikki kyttjnimet" msgid "Virgin Islands (British)" msgstr "Virgin Islands (British)" msgid "Virgin Islands (U.S.)" msgstr "Virgin Islands (U.S.)" msgid "Visits" msgstr "vierailuja" msgid "Visits per Day" msgstr "Vierailuja / piv" msgid "Wallis and Futuna Islands" msgstr "Wallis and Futuna Islands" msgid "Warning: Invalid keyword" msgstr "Warning: Invalid keyword" msgid "Warning: Possible duplicate data found" msgstr "Warning: Possible duplicate data found" msgid "Warning: String exceeds storage size" msgstr "Warning: String exceeds storage size" msgid "Warning: Truncating oversized date field" msgstr "Warning: Truncating oversized date field" msgid "Warning: Truncating oversized hostname" msgstr "Warning: Truncating oversized hostname" msgid "Warning: Truncating oversized referrer field" msgstr "Warning: Truncating oversized referrer field" msgid "Warning: Truncating oversized request field" msgstr "Warning: Truncating oversized request field" msgid "Warning: Truncating oversized username" msgstr "Warning: Truncating oversized username" msgid "Western Sahara" msgstr "Lntinen Sahara" msgid "Yemen" msgstr "Jemen" msgid "Yugoslavia" msgstr "Jugoslavia" msgid "Zaire" msgstr "Zaire" msgid "Zambia" msgstr "Sambia" msgid "Zimbabwe" msgstr "Zimbabwe" msgid "[options] [log file]" msgstr "[options] [log file]" msgid "addresses" msgstr "addresses" msgid "bad" msgstr "bad" msgid "current directory" msgstr "current directory" msgid "ignored" msgstr "ignored" msgid "in" msgstr "in" msgid "of" msgstr "yht." msgid "records" msgstr "records" msgid "seconds" msgstr "seconds" webdruid-0.5.4.orig/po/no.po0000644000000000000000000006370110066113350015616 0ustar rootroot00000000000000msgid "" msgstr "" "Project-Id-Version: 1.0\n" "PO-Revision-Date: 2003-05-25 23:29+0200\n" "Last-Translator: Johan Poirier \n" "Language-Team: French \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=ISO-8859-1\n" "Content-Transfer-Encoding: 8bit" msgid "-A num = Display num top agents" msgstr "-A antall = vis 'antall' i listen over klienter" msgid "-C num = Display num top countries" msgstr "-C antall = vis 'antall' i listen over land" msgid "-D name = Use DNS Cache file 'name'" msgstr "-D navn = Bruk DNS-cachfil 'navn'" msgid "-E num = Display num top Exit Pages" msgstr "-E antall = Vis 'antall' i listen over sluttsider" msgid "-F type = Log type. type= (clf | ftp | squid)" msgstr "-F typ = Loggtype. type= (clf | ftp | squid)" msgid "-G = supress hourly graph" msgstr "-G = ikke opprett graf for timmar" msgid "-H = supress hourly stats" msgstr "-H = ikke opprett statistikk for timmar" msgid "-I name = Index alias 'name'" msgstr "-I navn = ha 'navn' som alias till index.html" msgid "-L = supress color coded graph legends" msgstr "-L = ikke opprett fargekodet grafer" msgid "-N num = Number of DNS processes (0=disable)" msgstr "-N num = Antall DNS-processer (0=stng av)" msgid "-P name = Page type extension 'name'" msgstr "-P navn = Endelse for sidefiler 'navn'" msgid "-Q = supress _ALL_ messages" msgstr "-Q = vis ikke noe informasjon" msgid "-R num = Display num top referrers" msgstr "-R antall = vis 'antall' i listen over henvisninger" msgid "-S num = Display num top sites" msgstr "-S antall = vis 'antall' i fraadresse-listen" msgid "-T = print timing information" msgstr "-T = skriv informasjon om tidsbruk" msgid "-U num = Display num top URLs" msgstr "-U antall = vis 'antall' i listen over URL-er" msgid "-X = Hide individual sites" msgstr "-X = Skjul indiveduelle plasser" msgid "-Y = supress country graph" msgstr "-Y = ikke opprettgraf for land" msgid "-a name = hide user agent 'name'" msgstr "-a navn = skjul brukernavn 'navn'" msgid "-c file = use configuration file 'file'" msgstr "-c fil = bruk konfigurasjonsfilen 'fil'" msgid "-d = print additional debug info" msgstr "-d = skriv ytterligere debuginformasjon" msgid "-e num = Display num top Entry Pages" msgstr "-e antall = Vis 'antall' i listen over startsider" msgid "-f = Fold sequence errors" msgstr "-f = hantere sekvensfeil" msgid "-g num = Group Domains to 'num' levels" msgstr "-g antall = Group Domains to 'antall' levels" msgid "-h = print this help message" msgstr "-h = skriv hjelpetekst" msgid "-i = ignore history file" msgstr "-i = ignorerer historiefilen" msgid "-l num = use num background lines on graph" msgstr "-l num = opprett 'num' referenslinjer for grafer" msgid "-m num = Visit timout value (seconds)" msgstr "-m num = Verdi for timeout for besk (sekunder)" msgid "-n name = hostname to use" msgstr "-n navn = datonavn som skal brukes" msgid "-o dir = output directory to use" msgstr "-o katalog = katalog for utskrift" msgid "-p = preserve state (incremental)" msgstr "-p = bevar tillstand (inkrementell)" msgid "-q = supress informational messages" msgstr "-q = vis ikke informasjonsbeskjeder" msgid "-r name = hide referrer 'name'" msgstr "-r navn = skjul henvisning 'navn'" msgid "-s name = hide site 'name'" msgstr "-s navn = skjul klientadresse 'navn'" msgid "-t name = report title 'name'" msgstr "-t navn = bruk 'navn' som tittel" msgid "-u name = hide URL 'name'" msgstr "-u navn = skjul URL 'navn'" msgid "-v -V = print version information" msgstr "-v -V = skriv versjonsinforasjon" msgid "-x name = Use filename extension 'name'" msgstr "-x navn = Bruk filnavnsending 'navn'" msgid "Afghanistan" msgstr "Afghanistan" msgid "Agents" msgstr "Klienttyper" msgid "Albania" msgstr "Albania" msgid "Algeria" msgstr "Algeri" msgid "American Samoa" msgstr "Amerikansk Samoa" msgid "Andorra" msgstr "Andorra" msgid "Angola" msgstr "Angola" msgid "Anguilla" msgstr "Anguilla" msgid "Antarctica" msgstr "Antarktis" msgid "Antigua and Barbuda" msgstr "Antigua and Barbuda" msgid "Apr" msgstr "Apr" msgid "April" msgstr "April" msgid "Argentina" msgstr "Argentina" msgid "Armenia" msgstr "Armenia" msgid "Aruba" msgstr "Aruba" msgid "Aug" msgstr "Aug" msgid "August" msgstr "August" msgid "Australia" msgstr "Australia" msgid "Austria" msgstr "sterrike" msgid "Avg" msgstr "Snitt" msgid "Azerbaijan" msgstr "Azerbadjan" msgid "Bahamas" msgstr "Bahamas" msgid "Bahrain" msgstr "Bahrain" msgid "Bangladesh" msgstr "Bangladesh" msgid "Barbados" msgstr "Barbados" msgid "Belarus" msgstr "Belarus" msgid "Belgium" msgstr "Belgia" msgid "Belize" msgstr "Belize" msgid "Benin" msgstr "Benin" msgid "Bermuda" msgstr "Bermuda" msgid "Bhutan" msgstr "Bhutan" msgid "Bolivia" msgstr "Bolivia" msgid "Bosnia and Herzegovina" msgstr "Bosnia Herzegovina" msgid "Botswana" msgstr "Botswana" msgid "Bouvet Island" msgstr "Bouvet Island" msgid "Brazil" msgstr "Brazil" msgid "British Indian Ocean Territory" msgstr "Irak" msgid "Brunei Darussalam" msgstr "Brunei Darussalam" msgid "Bulgaria" msgstr "Bulgaria" msgid "Burkina Faso" msgstr "Burkina Faso" msgid "Burundi" msgstr "Burundi" msgid "By" msgstr "Av" msgid "Cambodia" msgstr "Kiribati" msgid "Cameroon" msgstr "Kamerun" msgid "Can't allocate enough memory, Top Countries disabled!" msgstr "Kan ikke allokere minne, stenger av 'Top Countries'" msgid "Can't allocate enough memory, Top Referrers disabled!" msgstr "Kan ikke allokere minne, stenger av 'Top referrers'" msgid "Can't allocate enough memory, Top Search Strings disabled!" msgstr "Kan ikke allokere minne, stenger av 'Top Search Strings'" msgid "Can't allocate enough memory, Top Sites disabled!" msgstr "Kan ikke allokere minne, stenger av 'Top sites'" msgid "Can't allocate enough memory, Top URLs disabled!" msgstr "Kan ikke allokere minne, stenger av 'Top URLs'" msgid "Can't allocate enough memory, Top User Agents disabled!" msgstr "Kan ikke allokere minne, stenger av 'Top User Agents'" msgid "Can't allocate enough memory, Top Usernames disabled!" msgstr "Kan ikke allokere minne, stenger av 'Top Usernames'" msgid "Canada" msgstr "Canada" msgid "Cape Verde" msgstr "Cape Verde" msgid "Cayman Islands" msgstr "Kazachstan" msgid "Central African Republic" msgstr "Sentralafrikanske republikk" msgid "Chad" msgstr "Sndre Fransk territorier" msgid "Chile" msgstr "Chile" msgid "China" msgstr "Kina" msgid "Christmas Island" msgstr "Juln" msgid "Cocos (Keeling) Islands" msgstr "Cocosyene" msgid "Code 100 - Continue" msgstr "Kode 100 - Fortsett" msgid "Code 101 - Switching Protocols" msgstr "Kode 101 - Bytter protokoll" msgid "Code 200 - OK" msgstr "Kode 200 - OK" msgid "Code 201 - Created" msgstr "Kode 201 - Opprettet" msgid "Code 202 - Accepted" msgstr "Kode 202 - Akseptert" msgid "Code 203 - Non-Authoritative Information" msgstr "Kode 203 - Ikke-authorativ informasjon" msgid "Code 204 - No Content" msgstr "Kode 204 - Ikke noe innehold" msgid "Code 205 - Reset Content" msgstr "Kode 205 - Tilbakestiller innehold" msgid "Code 206 - Partial Content" msgstr "Kode 206 - Partiellt innehold" msgid "Code 300 - Multiple Choices" msgstr "Kode 300 - Flervalg" msgid "Code 301 - Moved Permanently" msgstr "Kode 301 - Permanent flyttet" msgid "Code 302 - Found" msgstr "Kode 302 - Funnet" msgid "Code 303 - See Other" msgstr "Kode 303 - Se annen" msgid "Code 304 - Not Modified" msgstr "Kode 304 - Uforandret" msgid "Code 305 - Use Proxy" msgstr "Kode 305 - Bruk proxy" msgid "Code 307 - Moved Temporarily" msgstr "Kode 307 - Tilfeldig flyttet" msgid "Code 400 - Bad Request" msgstr "Kode 400 - Feilaktig foresprsel" msgid "Code 401 - Unauthorized" msgstr "Kode 401 - Ikke autorisert" msgid "Code 402 - Payment Required" msgstr "Kode 402 - Betaling kreves" msgid "Code 403 - Forbidden" msgstr "Kode 403 - ikke tillatt" msgid "Code 404 - Not Found" msgstr "Kode 404 - Ikke funnet" msgid "Code 405 - Method Not Allowed" msgstr "Kode 405 - Metode ikke tillatt" msgid "Code 406 - Not Acceptable" msgstr "Kode 406 - Ikke aksepterbar" msgid "Code 407 - Proxy Authentication Required" msgstr "Kode 407 - Verifiering fra proxy kreves" msgid "Code 408 - Request Timeout" msgstr "Kode 408 - Foresprselen gikk over tiden" msgid "Code 409 - Conflict" msgstr "Kode 409 - Konflikt" msgid "Code 410 - Gone" msgstr "Kode 410 - Borte" msgid "Code 411 - Length Required" msgstr "Kode 411 - Trenger lengde" msgid "Code 412 - Precondition Failed" msgstr "Kode 412 - Vilkr misslyktes" msgid "Code 413 - Request Entity Too Large" msgstr "Kode 413 - Foresprselsenhet for stor" msgid "Code 414 - Request-URI Too Long" msgstr "Kode 414 - Foresprrsels-URL for lang" msgid "Code 415 - Unsupported Media Type" msgstr "Kode 415 - Medietype ikke stttet" msgid "Code 416 - Requested Range Not Satisfiable" msgstr "Kode 416 - Forespurt intervall ikke tilgjengelig" msgid "Code 417 - Expectation Failed" msgstr "Kode 417 - Expectation Failed" msgid "Code 500 - Internal Server Error" msgstr "Kode 500 - Intern serverfeil" msgid "Code 501 - Not Implemented" msgstr "Kode 501 - Ikke implementert" msgid "Code 502 - Bad Gateway" msgstr "Kode 502 - Feil gateway" msgid "Code 503 - Service Unavailable" msgstr "Kode 503 - Tjenesten utilgjengelig" msgid "Code 504 - Gateway Timeout" msgstr "Kode 504 - Gateway gikk over tiden" msgid "Code 505 - HTTP Version Not Supported" msgstr "Kode 505 - denne HTTP-versionen stttes ikke" msgid "Colombia" msgstr "Colombia" msgid "Comoros" msgstr "Saint Kitts och Nevis" msgid "Congo" msgstr "Congo" msgid "Cook Islands" msgstr "Cook Islands" msgid "Costa Rica" msgstr "Costa Rica" msgid "Cote D'Ivoire (Ivory Coast)" msgstr "Elfensbenkysten" msgid "Countries" msgstr "Land" msgid "Country" msgstr "Land" msgid "Creating output in" msgstr "Oppretter utdata i" msgid "Croatia (Hrvatska)" msgstr "Haiti" msgid "Cuba" msgstr "Cuba" msgid "Cyprus" msgstr "Cypros" msgid "Czech Republic" msgstr "Tsjekkia" msgid "Czechoslovakia (former)" msgstr "Tsjekkoslovakia" msgid "DNS Lookup" msgstr "DNS Anrop" msgid "Daily Avg" msgstr "Snitt over dagen" msgid "Daily Statistics" msgstr "Daglig statistikkk" msgid "Daily Statistics for" msgstr "Daglig statistikk for" msgid "Daily usage for" msgstr "Daglig bruk for" msgid "Day" msgstr "Dag" msgid "Dec" msgstr "Des" msgid "December" msgstr "Desember" msgid "Denmark" msgstr "Danmark" msgid "Djibouti" msgstr "Djibouti" msgid "Dominica" msgstr "Dominica" msgid "Dominican Republic" msgstr "Dominikanske Republikk" msgid "East Timor" msgstr "Tyrkia" msgid "Ecuador" msgstr "Equador" msgid "Egypt" msgstr "Egypt" msgid "El Salvador" msgstr "Syria" msgid "English" msgstr "Norwegian" msgid "Entry" msgstr "Inngang" msgid "Equatorial Guinea" msgstr "Hellas" msgid "Eritrea" msgstr "Eritrea" msgid "Error adding Referrer node, skipping" msgstr "Feil ved tillegging av henvisning i listen, hopper over" msgid "Error adding Search String Node, skipping" msgstr "Feil ved tillegging av skestreng, hopper over" msgid "Error adding URL node, skipping" msgstr "Feil ved tillegging av URL i listen, hopper over" msgid "Error adding User Agent node, skipping" msgstr "Feil ved tillegging av klienttype i listen, hopper over" msgid "Error adding Username node, skipping" msgstr "Feil ved tillegging av brukernavn, hopper over" msgid "Error adding host node (daily), skipping" msgstr "Feil ved tillegging av dato i listen (daglig), hopper over" msgid "Error adding host node (monthly), skipping" msgstr "Feil ved tillegging av dato i listen (mnedlig), hopper over" msgid "Error: Can't change directory to" msgstr "Feil: kan ikke skifte katalog til" msgid "Error: Can't open log file" msgstr "Feil: kan ikke pne loggfilen" msgid "Error: Ignoring invalid history record" msgstr "Feil: Ignorerer feilaktig historiepost" msgid "Error: Skipping oversized log record" msgstr "Feil: hopper over for stor post i loggfil" msgid "Error: Skipping record (bad date)" msgstr "Feil: hopper over post (feilaktig dato)" msgid "Error: Unable to lock DNS cache file" msgstr "Feil: Kan ikke lse DNS-cachefilen" msgid "Error: Unable to open DNS cache file" msgstr "Feil: Kan ikke pne DNS-cachefilen" msgid "Error: Unable to open configuration file" msgstr "Feil: Kan ikke pne konfigurasjonsfilen" msgid "Error: Unable to open file" msgstr "Feil: kan ikke pne fil" msgid "Error: Unable to restore run data" msgstr "Feil: kan ikke gjenopprette lagret data" msgid "Error: Unable to save current run data" msgstr "Feil: kan ikke lagre data for denne genereringen" msgid "Error: Unable to write history file" msgstr "Feil: kan ikke skrive til historefil" msgid "Estonia" msgstr "Estland" msgid "Ethiopia" msgstr "Etiopia" msgid "Exit" msgstr "Utgang" msgid "Falkland Islands (Malvinas)" msgstr "Falklandsyene" msgid "Faroe Islands" msgstr "Faraoyene" msgid "Feb" msgstr "Feb" msgid "February" msgstr "Februar" msgid "Fiji" msgstr "Fiji" msgid "Files" msgstr "Filer" msgid "Files per Day" msgstr "Filer per dag" msgid "Finland" msgstr "Finland" msgid "France" msgstr "Frankrike" msgid "France; Metropolitan" msgstr "Gabon" msgid "French Guiana" msgstr "Ghana" msgid "French Polynesia" msgstr "Papua Nya Guinea" msgid "French Southern Territories" msgstr "Togo" msgid "Gabon" msgstr "England" msgid "Gambia" msgstr "Guinea" msgid "Generated" msgstr "Opprettet" msgid "Generating report for" msgstr "Genererer rapport for" msgid "Generating summary report" msgstr "Genererar oversiktsinformasjon" msgid "Georgia" msgstr "Franska Guiana" msgid "Germany" msgstr "Tyskland" msgid "Ghana" msgstr "Gibraltar" msgid "Gibraltar" msgstr "Grnnland" msgid "Great Britain (UK)" msgstr "Grenada" msgid "Greece" msgstr "S. Georgia och S. Sandwichyene" msgid "Greenland" msgstr "Gambia" msgid "Grenada" msgstr "Georgia" msgid "Guadeloupe" msgstr "Ekvatorialguinea" msgid "Guam" msgstr "Guinea-Bissau" msgid "Guatemala" msgstr "Guam" msgid "Guinea" msgstr "Guadeloupe" msgid "Guinea-Bissau" msgstr "Guyana" msgid "Guyana" msgstr "Hong Kong" msgid "Haiti" msgstr "Ungarn" msgid "Heard and McDonald Islands" msgstr "Honduras" msgid "History file not found..." msgstr "Fant ikke historiefilen..." msgid "Hits" msgstr "Treff" msgid "Hits by Response Code" msgstr "Treff sortert etter responskode" msgid "Hits per Day" msgstr "Treff per dag" msgid "Hits per Hour" msgstr "Treff per time" msgid "Honduras" msgstr "Kroatia" msgid "Hong Kong" msgstr "Heard- och McDonaldyene" msgid "Hostname" msgstr "Servernavn" msgid "Hostname for reports is" msgstr "Maskinnavn for rapportene er" msgid "Hour" msgstr "Time" msgid "Hourly Statistics" msgstr "Statistikkk time for time" msgid "Hourly Statistics for" msgstr "Statistikk time for time for" msgid "Hourly usage for" msgstr "Bruk time for time for" msgid "Hungary" msgstr "Indonesia" msgid "Iceland" msgstr "Italia" msgid "Ignoring previous history..." msgstr "Ignorerer tidigere historie..." msgid "India" msgstr "British Indian Ocean Territory" msgid "Indonesia" msgstr "Irland" msgid "International (int)" msgstr "Internasjonalt (int)" msgid "Iran" msgstr "Island" msgid "Iraq" msgstr "Iran" msgid "Ireland" msgstr "Israel" msgid "Israel" msgstr "India" msgid "Italy" msgstr "Jamaica" msgid "Jamaica" msgstr "Jordanien" msgid "Jan" msgstr "Jan" msgid "January" msgstr "Januar" msgid "Japan" msgstr "Kenya" msgid "Jordan" msgstr "Japan" msgid "Jul" msgstr "Jul" msgid "July" msgstr "Juli" msgid "Jun" msgstr "Jun" msgid "June" msgstr "Juni" msgid "KBytes" msgstr "kilobyte" msgid "KBytes per Day" msgstr "Kilobytes per dag" msgid "Kazakhstan" msgstr "Laos" msgid "Kenya" msgstr "Kirgistan" msgid "Kiribati" msgstr "Comoros" msgid "Korea (North)" msgstr "Sydkorea" msgid "Korea (South)" msgstr "Kuwait" msgid "Kuwait" msgstr "Caymanyene" msgid "Kyrgyzstan" msgstr "Kambodja" msgid "Laos" msgstr "Libanon" msgid "Last 12 Months" msgstr "Siste 12 mnedene" msgid "Latvia" msgstr "Libya" msgid "Lebanon" msgstr "Saint Lucia" msgid "Lesotho" msgstr "Litauen" msgid "Liberia" msgstr "Lesotho" msgid "Libya" msgstr "Marocco" msgid "Liechtenstein" msgstr "Sri Lanka" msgid "Lithuania" msgstr "Luxembourg" msgid "Luxembourg" msgstr "Lettland" msgid "Macau" msgstr "Norra Marianayene" msgid "Macedonia" msgstr "Mali" msgid "Madagascar" msgstr "Marshallyene" msgid "Malawi" msgstr "Mexico" msgid "Malaysia" msgstr "Moambique" msgid "Maldives" msgstr "Malawi" msgid "Mali" msgstr "Myanmar" msgid "Malta" msgstr "Mauritius" msgid "Mar" msgstr "Mar" msgid "March" msgstr "Mars" msgid "Marshall Islands" msgstr "Makedonia" msgid "Martinique" msgstr "Mauritania" msgid "Mauritania" msgstr "Montserrat" msgid "Mauritius" msgstr "Maldivene" msgid "Max" msgstr "Maks" msgid "May" msgstr "Mai" msgid "Mayotte" msgstr "Jugoslavia" msgid "Mexico" msgstr "Malaysia" msgid "Micronesia" msgstr "Mikronesia" msgid "Moldova" msgstr "Malagasy" msgid "Monaco" msgstr "Moldavia" msgid "Mongolia" msgstr "Macau" msgid "Month" msgstr "Mned" msgid "Monthly Statistics for" msgstr "Mnedlig statistikk for" msgid "Monthly Totals" msgstr "Summer pr. mned" msgid "Montserrat" msgstr "Malta" msgid "Morocco" msgstr "Monaco" msgid "Mozambique" msgstr "Namibia" msgid "Myanmar" msgstr "Mongolia" msgid "Namibia" msgstr "Nye Caledonia" msgid "Nato field (nato)" msgstr "Nato (nato)" msgid "Nauru" msgstr "Neutral Zone" msgid "Nepal" msgstr "Nauru" msgid "Netherlands" msgstr "Norge" msgid "Netherlands Antilles" msgstr "Nederland" msgid "Network" msgstr "Nettverk" msgid "Neutral Zone" msgstr "Niue" msgid "New Caledonia" msgstr "Niger" msgid "New Zealand (Aotearoa)" msgstr "Oman" msgid "Nicaragua" msgstr "Nederland" msgid "Niger" msgstr "Norfolk Island" msgid "Nigeria" msgstr "Nicaragua" msgid "Niue" msgstr "Nye Zeeland" msgid "No cache file specified, aborting..." msgstr "Ingen cachefil spesifisert..." msgid "No valid records found!" msgstr "Fant ingen gyldige poster!" msgid "Non-Profit Organization" msgstr "Ideell organisasjon" msgid "None to process" msgstr "Ingen ting bearbeide" msgid "Norfolk Island" msgstr "Nigeria" msgid "Northern Mariana Islands" msgstr "Martinique" msgid "Norway" msgstr "Nepal" msgid "Nov" msgstr "Nov" msgid "November" msgstr "November" msgid "Oct" msgstr "Okt" msgid "October" msgstr "Oktober" msgid "Old style Arpanet (arpa)" msgstr "Arpanet (arpa)" msgid "Oman" msgstr "Panama" msgid "Other" msgstr "Annen" msgid "Pages" msgstr "Sider" msgid "Pages per Day" msgstr "Sider per dag" msgid "Pakistan" msgstr "Polen" msgid "Palau" msgstr "Paraguay" msgid "Panama" msgstr "Peru" msgid "Papua New Guinea" msgstr "Filippinene" msgid "Paraguay" msgstr "Qatar" msgid "Peru" msgstr "Fransk Polynesia" msgid "Philippines" msgstr "Pakistan" msgid "Pitcairn" msgstr "Puerto Rico" msgid "Poland" msgstr "St. Pierre och Miquelon" msgid "Portugal" msgstr "Palau" msgid "Previous run data not found..." msgstr "Fant ikke tidligere genererte data..." msgid "Puerto Rico" msgstr "Portugal" msgid "Qatar" msgstr "Reunion" msgid "Reading history file..." msgstr "Leser historiefil..." msgid "Reading previous run data..." msgstr "Leser tidligere genererte data..." msgid "Referrer" msgstr "Referent" msgid "Referrers" msgstr "Referanser" msgid "Reunion" msgstr "Romania" msgid "Romania" msgstr "Russland" msgid "Russian Federation" msgstr "Rwanda" msgid "Rwanda" msgstr "Saudiarabia" msgid "S. Georgia and S. Sandwich Isls." msgstr "Guatemala" msgid "Saint Kitts and Nevis" msgstr "Nordkorea" msgid "Saint Lucia" msgstr "Liechtenstein" msgid "Saint Vincent and the Grenadines" msgstr "Venezuela" msgid "Samoa" msgstr "Yemen" msgid "San Marino" msgstr "Senegal" msgid "Sao Tome and Principe" msgstr "Sovjet (tidligere)" msgid "Saudi Arabia" msgstr "Solomonyene" msgid "Saving current run data..." msgstr "Lagrer data fra denne generering..." msgid "Saving history information..." msgstr "Lagrer historieinformasjon..." msgid "Search" msgstr "Sk" msgid "Search String" msgstr "Skstreng" msgid "Senegal" msgstr "Somalia" msgid "Sep" msgstr "Sep" msgid "September" msgstr "September" msgid "Seychelles" msgstr "Sudan" msgid "Sierra Leone" msgstr "San Marino" msgid "Singapore" msgstr "St. Helena" msgid "Sites" msgstr "Klientadresser" msgid "Skipping Netscape header record" msgstr "Hopper over Netscape-spesifikk innledningsrad" msgid "Skipping bad record" msgstr "Hopper over feilaktig post" msgid "Slovak Republic" msgstr "Sierra Leone" msgid "Slovenia" msgstr "Svalbard och Jan Mayen-yene" msgid "Solomon Islands" msgstr "Seychelles" msgid "Somalia" msgstr "Surinam" msgid "South Africa" msgstr "Zambia" msgid "Spain" msgstr "Spania" msgid "Sri Lanka" msgstr "Liberia" msgid "St. Helena" msgstr "Slovenien" msgid "St. Pierre and Miquelon" msgstr "Pitcairn" msgid "Sudan" msgstr "Sverige" msgid "Summary Period" msgstr "Periode for summering" msgid "Summary by Month" msgstr "Summering mned for mned" msgid "Suriname" msgstr "Sao Tome och Principe" msgid "Svalbard and Jan Mayen Islands" msgstr "Slovakien" msgid "Swaziland" msgstr "Turks och Caicosyene" msgid "Sweden" msgstr "Singapore" msgid "Switzerland" msgstr "Sveits" msgid "Syria" msgstr "Swaziland" msgid "Taiwan" msgstr "Tanzania" msgid "Tajikistan" msgstr "Tokelau" msgid "Tanzania" msgstr "Ukraina" msgid "Thailand" msgstr "Tajikistan" msgid "Togo" msgstr "Thailand" msgid "Tokelau" msgstr "Turkmenistan" msgid "Tonga" msgstr "st-timor" msgid "Top" msgstr "Vanligste" msgid "Total" msgstr "Total" msgid "Total Countries" msgstr "land" msgid "Total Entry Pages" msgstr "totalt inngangssider" msgid "Total Exit Pages" msgstr "totalt utgangssider" msgid "Total Files" msgstr "Totalt antall filer" msgid "Total Hits" msgstr "Totalt antall treff" msgid "Total KBytes" msgstr "Totalt antall kilobytes" msgid "Total Referrers" msgstr "henvisniger" msgid "Total Search Strings" msgstr "totalt skestrenger" msgid "Total Sites" msgstr "sider" msgid "Total URLs" msgstr "URLer" msgid "Total Unique Referrers" msgstr "Totalt antall unike henvisninger" msgid "Total Unique Sites" msgstr "Totalt antall unike klientadresser" msgid "Total Unique URLs" msgstr "Totalt antall unike URLer" msgid "Total Unique User Agents" msgstr "Totalt antall unike klienttyper" msgid "Total Unique Usernames" msgstr "Totalt antall unike brukernavn" msgid "Total User Agents" msgstr "klienttyper" msgid "Total Usernames" msgstr "totalt brukernavn" msgid "Totals" msgstr "Totaler" msgid "Trinidad and Tobago" msgstr "Tuvalu" msgid "Tunisia" msgstr "Tonga" msgid "Turkey" msgstr "Trinidad og Tobago" msgid "Turkmenistan" msgstr "Tunisien" msgid "Turks and Caicos Islands" msgstr "Chad" msgid "Tuvalu" msgstr "Taiwan" msgid "URL" msgstr "URL" msgid "URLs" msgstr "URLer" msgid "US Commercial" msgstr "Kommersiell" msgid "US Educational" msgstr "USA, utdanning" msgid "US Government" msgstr "USA, staten" msgid "US Military" msgstr "USA, militr" msgid "US Minor Outlying Islands" msgstr "USA" msgid "USSR (former)" msgstr "El Salvador" msgid "Uganda" msgstr "Storbritannia" msgid "Ukraine" msgstr "Uganda" msgid "Undefined response code" msgstr "Oidentifierad svarskod" msgid "United Arab Emirates" msgstr "Forenede Arabiske Emirater" msgid "United Kingdom" msgstr "US Minor Outlying Islands" msgid "United States" msgstr "Uruguay" msgid "Unresolved/Unknown" msgstr "Ikke oppsltt/ukjent" msgid "Uruguay" msgstr "Uzbekistan" msgid "Usage" msgstr "Bruk" msgid "Usage Statistics for" msgstr "Statistikk over bruk for" msgid "Usage by Country for" msgstr "Statsistik sortert etter land for" msgid "Usage summary for" msgstr "Summering for" msgid "User Agent" msgstr "Klienttype" msgid "Username" msgstr "Brukernavn" msgid "Users" msgstr "Brukere" msgid "Using DNS cache file" msgstr "Bruker DNS-cachefilen" msgid "Using logfile" msgstr "Bruker loggfil" msgid "Uzbekistan" msgstr "Vatikanstaten" msgid "Vanuatu" msgstr "Wallis och Futunayene" msgid "Vatican City State (Holy See)" msgstr "Saint Vincent och Grenadinerna" msgid "Venezuela" msgstr "Virgin-yene (Britiske)" msgid "Viet Nam" msgstr "Vanuatu" msgid "View All Referrers" msgstr "View All Referrers" msgid "View All Search Strings" msgstr "View All Search Strings" msgid "View All Sites" msgstr "View All Sites" msgid "View All URLs" msgstr "View All URLs" msgid "View All User Agents" msgstr "View All User Agents" msgid "View All Usernames" msgstr "View All Usernames" msgid "Virgin Islands (British)" msgstr "Virgin-yene (Amerikanske)" msgid "Virgin Islands (U.S.)" msgstr "Vietnam" msgid "Visits" msgstr "Besk" msgid "Visits per Day" msgstr "Besk per dag" msgid "Wallis and Futuna Islands" msgstr "Samoa" msgid "Warning: Invalid keyword" msgstr "Advarsel: ugyldig nkkelord" msgid "Warning: Possible duplicate data found" msgstr "Advarsel: Mulige dobble oppfringer funnet" msgid "Warning: String exceeds storage size" msgstr "Advarsel: Streng overskrider strrelsen p lagringsplass" msgid "Warning: Truncating oversized date field" msgstr "Advarsel: Tilpasser (kapper) for langt datofelt" msgid "Warning: Truncating oversized hostname" msgstr "Advarsel: Tilpasser (kapper) for langt datonavn" msgid "Warning: Truncating oversized referrer field" msgstr "Advarsel: Tilpasser (kapper) for langt henvisningsfelt" msgid "Warning: Truncating oversized request field" msgstr "Advarsel: Tilpasser (kapper) for langt sprrefelt" msgid "Warning: Truncating oversized username" msgstr "Advarsel: Tilpasser (kapper) for langt brukernavn" msgid "Western Sahara" msgstr "Vestsahara" msgid "Yemen" msgstr "Mayotte" msgid "Yugoslavia" msgstr "Sydafrika" msgid "Zaire" msgstr "Zimbabwe" msgid "Zambia" msgstr "Zaire" msgid "[options] [log file]" msgstr "[flaggor] [loggfil]" msgid "addresses" msgstr "adresser" msgid "bad" msgstr "feilaktige" msgid "current directory" msgstr "aktuell katalog" msgid "ignored" msgstr "ignorerte" msgid "in" msgstr "i" msgid "of" msgstr "utav totalt" msgid "records" msgstr "poster" msgid "seconds" msgstr "sekunder" webdruid-0.5.4.orig/po/de.po0000644000000000000000000013353710066113350015577 0ustar rootroot00000000000000msgid "" msgstr "" "Project-Id-Version: 1.0\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2003-08-20 17:01+0200\n" "PO-Revision-Date: 2004-02-28 14:00+0100\n" "Last-Translator: Klaus Reimer \n" "Language-Team: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=ISO-8859-1\n" "Content-Transfer-Encoding: 8bit\n" #. Error: Unable to open DNS cache file #: dns_resolv.c:224 dns_resolv.c:806 msgid "Error: Unable to open DNS cache file" msgstr "Fehler: Datei fr den DNS-Cache konnte nicht geffnet werden." #. Error: Unable to lock DNS cache file #: dns_resolv.c:237 dns_resolv.c:816 msgid "Error: Unable to lock DNS cache file" msgstr "Fehler: Datei fr den DNS-Cache konnte nicht verriegelt werden." #. No valid addresses found... #: dns_resolv.c:336 msgid "None to process" msgstr "Nichts zu bearbeiten" #: dns_resolv.c:351 msgid "addresses" msgstr "Adressen" #: dns_resolv.c:355 webalizer.c:1490 msgid "in" msgstr "in" #: dns_resolv.c:355 webalizer.c:1490 msgid "seconds" msgstr "Sekunden" #: dot_output.c:127 #, c-format msgid "Top followed paths for %s" msgstr "Top Pfade fr %s" #: dot_output.c:292 #, c-format msgid "Users flow for %s" msgstr "Besucherfluss fr %s" #: dot_output.c:504 dot_output.c:507 msgid "Home page" msgstr "Homepage" #: dot_output.c:527 msgid "Error: killed child, timeout elapsed" msgstr "Fehler: Kindprozess wegen Timeout beendet" #. error #: dot_output.c:537 msgid "Error: could not fork :" msgstr "Fehler: fork fehlgeschlagen :" #. should never get there #: dot_output.c:545 msgid "Error: could not exec" msgstr "Fehler: exec fehlgeschlagen" #. Kbytes Legend #: graphs.c:147 graphs.c:148 graphs.c:149 graphs.c:365 graphs.c:366 #: output.c:755 output.c:830 output.c:924 output.c:936 output.c:1027 #: output.c:1111 output.c:1123 output.c:1234 output.c:2112 output.c:2198 #: output.c:2368 output.c:2453 output.c:2495 output.c:2614 output.c:2717 msgid "KBytes" msgstr "kb" #. Sites/Visits Legend #: graphs.c:152 graphs.c:154 graphs.c:155 graphs.c:374 graphs.c:375 #: output.c:611 output.c:747 output.c:938 output.c:1027 output.c:1330 #: output.c:2114 output.c:2198 output.c:2453 output.c:2614 output.c:2713 #: output.c:2719 msgid "Visits" msgstr "Besuche" #. Sites/Visits Legend #: graphs.c:153 graphs.c:158 graphs.c:159 graphs.c:369 graphs.c:370 #: graphs.c:371 output.c:558 output.c:751 output.c:1021 output.c:2715 msgid "Sites" msgstr "Rechner" #. Hits/Files/Pages Legend #: graphs.c:162 graphs.c:164 graphs.c:165 graphs.c:378 graphs.c:381 #: graphs.c:382 graphs.c:542 graphs.c:545 graphs.c:546 output.c:607 #: output.c:743 output.c:826 output.c:2711 output.c:2721 msgid "Pages" msgstr "Seiten" #: graphs.c:163 graphs.c:168 graphs.c:169 graphs.c:379 graphs.c:385 #: graphs.c:386 graphs.c:543 graphs.c:549 graphs.c:550 output.c:739 #: output.c:825 output.c:934 output.c:1027 output.c:2110 output.c:2198 #: output.c:2366 output.c:2453 output.c:2614 output.c:2709 output.c:2723 msgid "Files" msgstr "Dateien" #: graphs.c:172 graphs.c:173 graphs.c:380 graphs.c:389 graphs.c:390 #: graphs.c:544 graphs.c:553 graphs.c:554 output.c:735 output.c:819 #: output.c:932 output.c:1027 output.c:1120 output.c:1234 output.c:1327 #: output.c:1422 output.c:1506 output.c:1586 output.c:1660 output.c:2108 #: output.c:2198 output.c:2364 output.c:2453 output.c:2495 output.c:2535 #: output.c:2574 output.c:2614 output.c:2707 output.c:2725 msgid "Hits" msgstr "Anfragen" #: graphs.c:672 msgid "Other" msgstr "Sonstige" #: hashtab.c:114 hashtab.c:305 hashtab.c:438 hashtab.c:558 hashtab.c:675 #: hashtab.c:846 linklist.c:212 linklist.c:269 sengine.c:723 msgid "Warning: String exceeds storage size" msgstr "Warnung: berlangen Text abgeschnitten" #: hashtab.c:1013 hashtab.c:1047 msgid "Warning: out of memory - could not create open path" msgstr "Warnung: Nicht genug Speicher - Pfad kann nicht erstellt werden" #: hashtab.c:1033 hashtab.c:1213 #, fuzzy msgid "Error flushing path, skipping" msgstr "Pfad kann nicht geleert werden, bersprungen" #: hashtab.c:1071 msgid "Warning: out of memory - could not add url to open path" msgstr "Warnung: Nicht genug Speicher - URL kann nicht zu Pfad hinzugefgt werden" #: hashtab.c:1298 hashtab.c:1344 msgid "Warning: out of memory - could not put path to path list" msgstr "Warnung: Nicht genug Speicher - Pfad kann nicht in Liste eingefgt werden." #: output.c:187 output.c:209 msgid "Usage Statistics for" msgstr "Aufruf-Statistik fr" #: output.c:210 msgid "Summary Period" msgstr "Auslastungsstatistik fr den Zeitraum" #: output.c:211 msgid "Generated" msgstr "Erstellt am" #. We never now what can happen... #. These will help us prevent dead #. links #: output.c:288 msgid "Generating report for" msgstr "Erzeuge Bericht fr" #: output.c:316 msgid "Daily usage for" msgstr "Tages-Statistik im Monat" #: output.c:332 msgid "Hourly usage for" msgstr "Stunden-Statistik im Monat" #: output.c:393 msgid "Can't allocate enough memory, Top URLs disabled!" msgstr "Nicht genug Speicher, Top URLs deaktiviert!" #: output.c:423 msgid "Can't allocate enough memory, Top Sites disabled!" msgstr "Nicht genug Speicher, Top Sites deaktiviert!" #: output.c:440 msgid "Can't allocate enough memory, Top Referrers disabled!" msgstr "Nicht genug Speicher, Top Verweise deaktiviert!" #: output.c:463 msgid "Search String" msgstr "Suche" #: output.c:509 msgid "Can't allocate enough memory, Top Usernames disabled!" msgstr "Nicht genug Speicher, Top Benutzer deaktiviert!" #: output.c:526 msgid "Can't allocate enough memory, Top User Agents disabled!" msgstr "Nicht genug Speicher, Top User Agents deaktiviert!" #: output.c:544 msgid "Daily Statistics" msgstr "Tages-Statistik" #: output.c:546 msgid "Hourly Statistics" msgstr "Stunden-Statistik" #: output.c:548 msgid "URLs" msgstr "URLs" #: output.c:550 msgid "Entry" msgstr "Eingang" #: output.c:552 msgid "Exit" msgstr "Ausgang" #: output.c:554 msgid "Top Path" msgstr "Top Pfad" #: output.c:556 msgid "Users Flow" msgstr "Besucherfluss" #: output.c:560 msgid "Referrers" msgstr "Verweise" #: output.c:562 msgid "Search Phrases" msgstr "Suchbegriffe" #: output.c:564 msgid "Users" msgstr "Benutzer" #: output.c:566 msgid "Agents" msgstr "Anwenderprogramme" #: output.c:568 msgid "Countries" msgstr "Lnder" #: output.c:594 msgid "Monthly Statistics for" msgstr "Monats-Statistik fr" #. Total Hits #: output.c:599 msgid "Total Hits" msgstr "Summe Anfragen" #. Total Files #: output.c:603 msgid "Total Files" msgstr "Summe Dateien" #. Total Pages #: output.c:607 output.c:611 output.c:836 output.c:841 output.c:846 #: output.c:851 msgid "Total" msgstr "Summe" #. Total XFer #: output.c:615 msgid "Total KBytes" msgstr "Summe kb" #. ******************************************** #. Unique Sites #: output.c:622 msgid "Total Unique Sites" msgstr "Summe unterschiedlicher Rechner (IP-Adressen)" #. Unique URL's #: output.c:627 msgid "Total Unique URLs" msgstr "Summe unterschiedlicher URLs" #: output.c:633 msgid "Total Unique Referrers" msgstr "Summe unterschiedlicher Verweise" #: output.c:639 msgid "Total Unique Usernames" msgstr "Summe unterschiedlicher Benutzer" #: output.c:645 msgid "Total Unique User Agents" msgstr "Summe unterschiedlicher Anwenderprogramme" #: output.c:655 output.c:836 output.c:841 output.c:846 output.c:851 msgid "Avg" msgstr "Schnitt" #: output.c:655 msgid "Max" msgstr "Maximum" #. Max/Avg Hits per Hour #: output.c:662 msgid "Hits per Hour" msgstr "Anfragen pro Stunde" #. Max/Avg Hits per Day #: output.c:668 msgid "Hits per Day" msgstr "Anfragen pro Tag" #. Max/Avg Files per Day #: output.c:674 msgid "Files per Day" msgstr "Dateien pro Tag" #. Max/Avg Pages per Day #: output.c:680 msgid "Pages per Day" msgstr "Seiten pro Tag" #. Max/Avg Visits per Day #: output.c:686 msgid "Visits per Day" msgstr "Besuche pro Tag" #. Max/Avg KBytes per Day #: output.c:692 msgid "KBytes per Day" msgstr "kb pro Tag" #. ******************************************** #. response code totals #: output.c:698 msgid "Hits by Response Code" msgstr "Anfragen nach Status-Code" #. Daily statistics for ... #: output.c:727 msgid "Daily Statistics for" msgstr "Tages-Statistik im Monat" #: output.c:731 msgid "Day" msgstr "Tag" #: output.c:812 msgid "Hourly Statistics for" msgstr "Stunden-Statistik im Monat" #: output.c:818 msgid "Hour" msgstr "Stunde" #: output.c:923 output.c:927 output.c:1110 output.c:1114 output.c:1319 #: output.c:1415 output.c:1579 output.c:2103 output.c:2359 msgid "Top" msgstr "Top" #: output.c:923 output.c:927 output.c:1110 output.c:1114 output.c:1319 #: output.c:1415 output.c:1579 output.c:2103 output.c:2359 msgid "of" msgstr "von" #: output.c:924 output.c:927 msgid "Total Sites" msgstr "Rechnern (IP-Adressen)" #: output.c:924 output.c:1111 msgid "By" msgstr "sortiert nach" #: output.c:940 output.c:1027 output.c:2453 msgid "Hostname" msgstr "Rechnername" #: output.c:993 msgid "View All Sites" msgstr "Zeige alle Rechner (IP-Adressen)" #: output.c:1111 output.c:1114 msgid "Total URLs" msgstr "URLs" #: output.c:1126 output.c:1228 output.c:1234 output.c:1333 output.c:2495 msgid "URL" msgstr "URL" #: output.c:1200 msgid "View All URLs" msgstr "Zeige alle URLs" #: output.c:1320 msgid "Total Exit Pages" msgstr "Ausgangsseiten Gesamt" #: output.c:1320 msgid "Total Entry Pages" msgstr "Eingangsseiten Gesamt" #: output.c:1415 msgid "Total Referrers" msgstr "Verweise" #: output.c:1425 output.c:1501 output.c:1506 output.c:2535 msgid "Referrer" msgstr "Verweise" #: output.c:1476 msgid "View All Referrers" msgstr "Zeige alle Verweise" #: output.c:1579 msgid "Total User Agents" msgstr "Anwenderprogramme" #: output.c:1589 output.c:1655 output.c:1660 output.c:2574 msgid "User Agent" msgstr "Anwenderprogramm" #: output.c:1630 msgid "View All User Agents" msgstr "Zeige alle Anwenderprogramme" #: output.c:1779 #, fuzzy msgid "Can't allocate enough memory, Search engines report disabled!" msgstr "Nicht genug Speicher, Suchmaschinen-Statistik deaktiviert!" #: output.c:1802 #, fuzzy msgid "Can't allocate enough memory, Search engines report will be incomplete!" msgstr "Nicht genug Speicher, Suchmaschinen-Statistik deaktiviert!" #: output.c:1832 #, c-format msgid "%u most used search phrases grouped per search engine" msgstr "%u hufigsten Suchbegriffe gruppiert nach Suchmaschine" #: output.c:1839 output.c:1944 output.c:2024 msgid "Key phrases" msgstr "Suchbegriffe" #: output.c:1840 output.c:1945 output.c:2026 msgid "Nb Times" msgstr "Anzahl" #: output.c:1841 msgid "This engine" msgstr "Diese Gruppe" #: output.c:1842 msgid "All engines" msgstr "Alle Gruppen" #: output.c:1843 output.c:1945 output.c:2028 msgid "Target URLs" msgstr "Ziel-URLs" #: output.c:1864 #, c-format msgid "%.0f%% of all requests" msgstr "%.0f%% aller Anfragen" #: output.c:1866 #, c-format msgid "less than 1%% of all requests" msgstr "weniger als 1%% aller Anfragen" #: output.c:1911 msgid "View all search phrases" msgstr "Alle Suchbegriffe anzeigen" #: output.c:1940 #, c-format msgid "%.2f%% of all requests" msgstr "%.2f%% aller Anfragen" #: output.c:1945 output.c:2026 msgid "% This engine" msgstr "% Diese Gruppe" #: output.c:1945 output.c:2028 #, c-format msgid "% All engines" msgstr "% Alle Gruppen" #: output.c:2024 msgid "Search Engines" msgstr "Suchmaschinen" #: output.c:2103 msgid "Total Usernames" msgstr "Benutzer Gesamt" #: output.c:2116 output.c:2192 output.c:2198 output.c:2614 msgid "Username" msgstr "Benutzer" #: output.c:2167 msgid "View All Usernames" msgstr "Zeige alle Benutzer" #: output.c:2343 msgid "Usage by Country for" msgstr "Anfragen aus Lndern im Monat" #: output.c:2359 msgid "Total Countries" msgstr "Lndern" #: output.c:2370 msgid "Country" msgstr "Land" #. put our anchor tag first... #: output.c:2402 msgid "Top followed paths" msgstr "Top Besucherpfade" #. put our anchor tag first... #: output.c:2420 msgid "Users flow" msgstr "Besucherfluss" #: output.c:2654 msgid "Generating summary report" msgstr "Erzeuge Zusammenfassung" #: output.c:2656 msgid "Usage summary for" msgstr "Zusammenfassung der Anfragen an" #: output.c:2687 utils.c:155 msgid "Error: Unable to open file" msgstr "Fehler: Kann Datei nicht ffnen." #: output.c:2690 msgid "Last 12 Months" msgstr "Letzte 12 Monate" #: output.c:2698 msgid "Summary by Month" msgstr "Zusammenfassung nach Monaten" #: output.c:2701 msgid "Month" msgstr "Monat" #: output.c:2703 msgid "Daily Avg" msgstr "Tagesdurchschnitt" #: output.c:2705 msgid "Monthly Totals" msgstr "Monats-Summe" #: output.c:2762 msgid "Totals" msgstr "Summen" #: parser.c:243 parser.c:418 msgid "Warning: Truncating oversized hostname" msgstr "Warnung: berlanges Rechner-Feld abgeschnitten" #: parser.c:275 msgid "Warning: Truncating oversized username" msgstr "Warnung: berlanges Benutzer-Feld abgeschnitten" #: parser.c:297 msgid "Warning: Truncating oversized date field" msgstr "Warnung: berlanges Datums-Feld abgeschnitten" #: parser.c:322 parser.c:455 parser.c:476 webalizer.c:979 msgid "Warning: Truncating oversized request field" msgstr "Warnung: berlanges Request-Feld abgeschnitten" #: parser.c:359 webalizer.c:971 msgid "Warning: Truncating oversized referrer field" msgstr "Warnung: berlanges Verweis-Feld abgeschnitten" #: preserve.c:112 msgid "Reading history file..." msgstr "Lese Datei mit historischen Daten..." #: preserve.c:119 msgid "Error: Ignoring invalid history record" msgstr "Fehler: Ignoriere ungltigen historischen Eintrag." #: preserve.c:144 msgid "History file not found..." msgstr "Datei mit historischen Daten nicht gefunden..." #: preserve.c:160 msgid "Saving history information..." msgstr "Speichere historische Daten..." #: preserve.c:182 msgid "Error: Unable to write history file" msgstr "Fehler: Kann Datei mit historischen Daten nicht schreiben." #: preserve.c:212 msgid "Saving current run data..." msgstr "Speichere Daten des aktuellen Programmlaufes..." #. Previous run data not found... #: preserve.c:476 msgid "Previous run data not found..." msgstr "Daten des letzten Programmlaufes nicht gefunden..." #. Reading previous run data... #: preserve.c:481 msgid "Reading previous run data..." msgstr "Lese vorherige Daten..." #. Error adding URL node, skipping ... #: preserve.c:578 webalizer.c:1215 webalizer.c:1304 msgid "Error adding URL node, skipping" msgstr "Fehler beim Hinzufgen URL-node, berspringe Eintrag." #. Error adding host node (monthly), skipping .... #: preserve.c:618 webalizer.c:1191 webalizer.c:1317 webalizer.c:1335 msgid "Error adding host node (monthly), skipping" msgstr "Fehler beim Hinzufgen Rechner-node (monthly), berspringe Eintrag." #. Error adding host node (daily), skipping .... #: preserve.c:658 webalizer.c:1181 msgid "Error adding host node (daily), skipping" msgstr "Fehler beim Hinzufgen Rechner-node (daily), berspringe Eintrag." #. Error adding Referrer node, skipping ... #: preserve.c:683 webalizer.c:1170 webalizer.c:1348 msgid "Error adding Referrer node, skipping" msgstr "Fehler beim Hinzufgen Verweis-node, berspringe Eintrag." #. Error adding User Agent node, skipping ... #: preserve.c:708 webalizer.c:1201 webalizer.c:1359 msgid "Error adding User Agent node, skipping" msgstr "Fehler beim Hinzufgen User-Agent-node, berspringe Eintrag." #: preserve.c:755 #, c-format msgid "Could not find search engine named %s, dropping...\n" msgstr "Suchmaschine %s nicht gefunden, wird ignoriert...\n" #. Error adding username node, skipping .... #: preserve.c:791 webalizer.c:1225 webalizer.c:1372 msgid "Error adding Username node, skipping" msgstr "Fehler beim Hinzufgen Benutzer-node, berspringe Eintrag." #: preserve.c:848 preserve.c:1041 webalizer.c:1287 #, fuzzy msgid "Error adding path node element, skipping" msgstr "Fehler beim Hinzufgen Path-node Element, berspringe Eintrag." #: preserve.c:1109 #, fuzzy msgid "Error adding search node element, skipping" msgstr "Fehler beim Hinzufgen Search-node Element, berspringe Eintrag." #: sengine.c:307 #, c-format msgid "" "[sengine_search_phrase] Failed to convert search phrase from %s to UTF-8 " "(engine %s): Cannot open iconv handle\n" msgstr "" #: sengine.c:323 #, c-format msgid "" "[sengine_search_phrase] Failed to convert search phrase from %s to UTF-8 " "(engine %s) :%s\n" msgstr "" #: sengine.c:449 #, fuzzy msgid "Error: Unable to open search engines file" msgstr "Fehler: Suchmaschinen Datei kann nicht geffnet werden" #: sengine.c:468 msgid "Error: expected , got" msgstr "Fehler: Erwartet: , erhalten:" #: sengine.c:507 msgid "Error: too many querytags value, maximum is " msgstr "Fehler: Zu viele querytags Werte, Maximum ist " #: sengine.c:516 msgid "Error: empy querytags value" msgstr "Fehler: Leerer querytags Wert" #: sengine.c:522 msgid "Error: invalid querytags value, should end with '='" msgstr "Fehler: Ungltiger querytags Wert, muss mit '=' enden" #: sengine.c:540 msgid "Error: invalid charsettag value, should end with '='" msgstr "Fehler: Ungltiger charsettag Wert, muss mit '=' enden" #: sengine.c:566 #, fuzzy msgid "Error: invalid host name " msgstr "Fehler: Ungltiger Hostname " #: sengine.c:579 msgid "Error: invalid line: " msgstr "Fehler: ngltige Zeile: " #: sengine.c:589 msgid "Error: search engine lacks some config lines: " msgstr "Fehler: Bei Suchmaschine fehlen einige Konfigurationszeilen: " #: sengine.c:643 #, c-format msgid "Error:Duplicated search engines %s(%s.%s.%s) and %s(%s.%s.%s)\n" msgstr "Fehler: Doppelte Suchmaschinen %s(%s.%s.%s) und %s(%s.%s.%s)\n" #: sengine.c:673 sengine.c:756 msgid "Error: out of memory" msgstr "Fehler: Zu wenig Speicher" #: utils.c:286 #, c-format msgid "_2utf8: cannot open iconv handle %s->UTF8: %s\n" msgstr "_2utf8: iconv Handle %s->UTF8 kann nicht geffnet werden: %s\n" #: utils.c:302 #, c-format msgid "_2utf8: cannot convert string %s from %s to UTF8: %s\n" msgstr "_2utf8: String %s kann nicht von %s nach UTF8 konvertiert werden: %s\n" #: webalizer.c:413 webalizer.c:1862 msgid "locale" msgstr "locale" #. Error: Can't open log file ... #: webalizer.c:432 webalizer.c:444 msgid "Error: Can't open log file" msgstr "Fehler: Kann die Protokolldatei nicht ffnen." #: webalizer.c:453 msgid "Using logfile" msgstr "Verwende Protokolldatei" #. Error: Can't change directory to ... #: webalizer.c:470 msgid "Error: Can't change directory to" msgstr "Fehler: Kann nicht in das Verzeichnis wechseln." #. No cache file specified, aborting... #: webalizer.c:482 msgid "No cache file specified, aborting..." msgstr "Keine Datei fr den DNS-Cache angegeben, breche ab..." #. DNS Lookup (#children): #: webalizer.c:491 msgid "DNS Lookup" msgstr "DNS Abfrage" #. Using DNS cache file #: webalizer.c:505 msgid "Using DNS cache file" msgstr "Benutze Datei fr den DNS-Cache" #: webalizer.c:514 msgid "Loading search engines list..." msgstr "Lade Suchmaschinen-Liste..." #: webalizer.c:522 msgid "Could not load search engines list, aborting." msgstr "Suchmaschinen-Liste kann nicht geladen werden. Abbruch." #: webalizer.c:527 msgid "Ok" msgstr "Ok" #: webalizer.c:534 msgid "Creating output in" msgstr "Erzeuge Dateien in" #: webalizer.c:534 msgid "current directory" msgstr "dem aktuellen Verzeichnis" #. Hostname for reports is ... #: webalizer.c:544 msgid "Hostname for reports is" msgstr "Rechnername fr Bericht ist" #. get past history #: webalizer.c:547 msgid "Ignoring previous history..." msgstr "Ignoriere vorhandene historische Daten..." #. Error: Unable to restore run data (error num) #. if (verbose) fprintf(stderr,"%s (%d)\n",_("msg_bad_data"),i); #: webalizer.c:556 msgid "Error: Unable to restore run data" msgstr "Fehler: Kann Daten des letzten Programmlaufes nicht wiederherstellen" #. Can't get memory, Top Countries disabled! #: webalizer.c:565 msgid "Can't allocate enough memory, Top Countries disabled!" msgstr "Nicht genug Speicher, Top Countries deaktiviert!" #: webalizer.c:573 #, c-format msgid "We won't be able execute %s : disabling TopPath & UsersFlow outputs\n" msgstr "%s kann nicht ausgefhrt werden : TopPath & UsersFlow Ausgaben deaktiviert\n" #: webalizer.c:593 msgid "Error: Skipping oversized log record" msgstr "Fehler: berspringe berlangen Eintrag" #: webalizer.c:649 msgid "Error: Skipping record (bad date)" msgstr "Fehler: Eintrag wird bersprungen (Datum ungltig)." #: webalizer.c:1264 msgid "Warning: could not extract search phrase from :\n" msgstr "Warnung: Suchbegriff kann nicht extrahiert werden von :\n" #. Skipping Netscape header record #: webalizer.c:1387 msgid "Skipping Netscape header record" msgstr "berspringe Netscape Kopfeintrag." #: webalizer.c:1397 msgid "Skipping bad record" msgstr "berspringe ungltigen Eintrag." #. let's display computation statistics #: webalizer.c:1426 msgid "Opened path hash table statistics:\n" msgstr "Hash-Tabellen Statistik der geffneten Pfade:\n" #: webalizer.c:1428 msgid "" "Global path hash table statistics (before flush from opened path hash " "table):\n" msgstr "" #. Error: Unable to save current run data #: webalizer.c:1437 msgid "Error: Unable to save current run data" msgstr "Fehler: Kann Daten des letzten Programmlaufes nicht speichern" #: webalizer.c:1456 msgid "" "Opened path hash table statistics (after flush to global path hash table):\n" msgstr "" #: webalizer.c:1463 msgid "Global path hash table statistics:\n" msgstr "Global path hash table statistics:\n" #: webalizer.c:1470 msgid "Users flow hash table statistics:\n" msgstr "Users flow hash table statistics:\n" #: webalizer.c:1479 msgid "records" msgstr "Eintrge" #: webalizer.c:1482 msgid "ignored" msgstr "ignoriert" #: webalizer.c:1483 webalizer.c:1486 msgid "bad" msgstr "ungltig" #. No valid records found... exit with error (1) #: webalizer.c:1511 msgid "No valid records found!" msgstr "Keine gltigen Eintrge gefunden!" #: webalizer.c:1631 msgid "Error: Unable to open configuration file" msgstr "Fehler: Kann Konfigurations-Datei nicht lesen." #. Invalid keyword #: webalizer.c:1660 webalizer.c:1764 msgid "Warning: Invalid keyword" msgstr "Warnung: unbekanntes Schlsselwort" #: webalizer.c:1732 msgid "" "\n" "WARNING: The keyword 'SearchEngine' is not supported anymore. Please add " "your search engines to 'engines.list' instead. Look at README for more " "information.\n" "\n" msgstr "" #: webalizer.c:1847 msgid "Usage" msgstr "Syntax" #: webalizer.c:1847 msgid "[options] [log file]" msgstr "[Optionen] [Protokolldatei]" #: webalizer.c:2132 #, c-format msgid "--> %u path(s), %.2f%% of hash table used\n" msgstr "--> %u Pfade(e), %.2f%% der Hash-Tabelle benutzt\n" #: webalizer.c:2135 #, c-format msgid "--> %u maximum path count\n" msgstr "--> %u Maximale Pfad Anzahl\n" #: webalizer.c:2136 #, c-format msgid "--> %u path with count > 1, for a total of %u equivalent path(s)\n" msgstr "--> %u Pfade mit Anzahl > 1, ergibt %u equivalente Pfade\n" #: webalizer.c:2140 #, c-format msgid "--> %u maximum element(s) per node\n" msgstr "--> %u Maximale Elemente pro Node\n" #: webalizer.c:2141 #, c-format msgid "--> %.2f average element(s) per not empty nodes\n" msgstr "--> %.2f durchschnittliche Elemente pro nicht leerem Node\n" #: webalizer.c:2142 #, c-format msgid "--> %d maximum path length\n" msgstr "--> %d Maximale Pfad-Lnge\n" #: lang2.h:37 msgid "-h = print this help message" msgstr "-h = diese Hilfe ausgeben" #: lang2.h:38 msgid "-v -V = print version information" msgstr "-v = Version ausgeben" #: lang2.h:39 msgid "-d = print additional debug info" msgstr "-d = zustzliche Kontrolldaten ausgeben" #: lang2.h:40 msgid "-F type = Log type. type= (clf | ftp | squid)" msgstr "-F type = Art der Protokolldatei. type= (clf | ftp | squid)" #: lang2.h:41 msgid "-f = Fold sequence errors" msgstr "-f = Ignoriere zeitliche Fehler bei Besuchen" #: lang2.h:42 msgid "-i = ignore history file" msgstr "-i = Datei mit historischen Daten ignorieren" #: lang2.h:43 msgid "-p = preserve state (incremental)" msgstr "-p = sichere Programmzustand (inkrementell)" #: lang2.h:44 msgid "-q = supress informational messages" msgstr "-q = Statusmeldungen unterdrcken" #: lang2.h:45 msgid "-Q = supress _ALL_ messages" msgstr "-Q = alle Meldungen unterdrcken" #: lang2.h:46 msgid "-Y = supress country graph" msgstr "-Y = Lndergrafik unterdrcken" #: lang2.h:47 msgid "-G = supress hourly graph" msgstr "-G = Stundengrafik unterdrcken" #: lang2.h:48 msgid "-H = supress hourly stats" msgstr "-H = Stundenstatistik unterdrcken" #: lang2.h:49 msgid "-L = supress color coded graph legends" msgstr "-L = Farbige Lnderlegende unterdrcken" #: lang2.h:50 msgid "-l num = use num background lines on graph" msgstr "-l anz = 'Anz' Hintergrundlinien in Grafik verwenden" #: lang2.h:51 msgid "-m num = Visit timout value (seconds)" msgstr "-m num = Timeout fr Besuch (seconds)" #: lang2.h:52 msgid "-T = print timing information" msgstr "-T = Laufzeit ausgeben" #: lang2.h:53 msgid "-c file = use configuration file 'file'" msgstr "-c datei = Konfigurationsdatei 'datei' verwenden" #: lang2.h:54 msgid "-n name = hostname to use" msgstr "-n name = 'name' als Namen des Servers verwenden" #: lang2.h:55 msgid "-o dir = output directory to use" msgstr "-o dir = Dateien im Verzeichnis 'dir' speichern" #: lang2.h:56 msgid "-t name = report title 'name'" msgstr "-t name = berschrift 'name' setzen" #: lang2.h:57 msgid "-a name = hide user agent 'name'" msgstr "-a name = Anwenderprogramm 'name' unterdrcken" #: lang2.h:58 msgid "-r name = hide referrer 'name'" msgstr "-r name = Verweiser 'name' unterdrcken" #: lang2.h:59 msgid "-s name = hide site 'name'" msgstr "-s name = Rechner 'name' unterdrcken" #: lang2.h:60 msgid "-u name = hide URL 'name'" msgstr "-u name = URL 'name' unterdrcken" #: lang2.h:61 msgid "-x name = Use filename extension 'name'" msgstr "-x name = Dateiendung 'name' verwenden" #: lang2.h:62 msgid "-P name = Page type extension 'name'" msgstr "-P name = Seitenendung 'name' verwenden" #: lang2.h:63 msgid "-I name = Index alias 'name'" msgstr "-I name = weitere Name fr den Index setzen" #: lang2.h:64 msgid "-A num = Display num top agents" msgstr "-A anz = die Top 'anz' Anwenderprogramme darstellen" #: lang2.h:65 msgid "-C num = Display num top countries" msgstr "-C anz = die Top 'anz' Lnder darstellen" #: lang2.h:66 msgid "-R num = Display num top referrers" msgstr "-R anz = die Top 'anz' Verweiser darstellen" #: lang2.h:67 msgid "-S num = Display num top sites" msgstr "-S anz = die Top 'anz' Rechner (IPs) darstellen" #: lang2.h:68 msgid "-U num = Display num top URLs" msgstr "-U anz = die Top 'anz' URLs darstellen" #: lang2.h:69 msgid "-e num = Display num top Entry Pages" msgstr "-e anz = die Top 'anz' Startseiten darstellen" #: lang2.h:70 msgid "-E num = Display num top Exit Pages" msgstr "-E anz = die Top 'anz' Endseiten darstellen" #: lang2.h:71 msgid "-g num = Group Domains to 'num' levels" msgstr "-g anz = Gruppiere Domnen zu 'anz' Ebenen" #: lang2.h:72 msgid "-X = Hide individual sites" msgstr "-X = Verstecke einzelne Rechner" #: lang2.h:73 msgid "-D name = Use DNS Cache file 'name'" msgstr "-D name = Benutze Datei 'name' fr DNS-Cache" #: lang2.h:74 msgid "-N num = Number of DNS processes (0=disable)" msgstr "-N num = Anzahl Prozesse fr DNS Abfragen (0=deaktiviert)" #. short month names MUST BE 3 CHARS in size... pad if needed #: lang2.h:78 msgid "Jan" msgstr "Jan" #: lang2.h:78 msgid "Feb" msgstr "Feb" #: lang2.h:78 msgid "Mar" msgstr "Mar" #: lang2.h:79 msgid "Apr" msgstr "Apr" #: lang2.h:79 lang2.h:85 msgid "May" msgstr "Mai" #: lang2.h:79 msgid "Jun" msgstr "Jun" #: lang2.h:80 msgid "Jul" msgstr "Jul" #: lang2.h:80 msgid "Aug" msgstr "Aug" #: lang2.h:80 msgid "Sep" msgstr "Sep" #: lang2.h:81 msgid "Oct" msgstr "Okt" #: lang2.h:81 msgid "Nov" msgstr "Nov" #: lang2.h:81 msgid "Dec" msgstr "Dez" #. long month names - can be any length #: lang2.h:84 msgid "January" msgstr "Januar" #: lang2.h:84 msgid "February" msgstr "Februar" #: lang2.h:84 msgid "March" msgstr "Mrz" #: lang2.h:84 msgid "April" msgstr "April" #: lang2.h:85 msgid "June" msgstr "Juni" #: lang2.h:85 msgid "July" msgstr "Juli" #: lang2.h:85 msgid "August" msgstr "August" #: lang2.h:86 msgid "September" msgstr "September" #: lang2.h:86 msgid "October" msgstr "Oktober" #: lang2.h:86 msgid "November" msgstr "November" #: lang2.h:86 msgid "December" msgstr "Dezember" #: lang2.h:90 msgid "Undefined response code" msgstr "Unbekannter Antwort-Code" #: lang2.h:91 msgid "Code 100 - Continue" msgstr "Code 100 - Weiter" #: lang2.h:92 msgid "Code 101 - Switching Protocols" msgstr "Code 101 - Wechsel des Protokolls" #: lang2.h:93 msgid "Code 200 - OK" msgstr "Code 200 - OK" #: lang2.h:94 msgid "Code 201 - Created" msgstr "Code 201 - Erzeugt" #: lang2.h:95 msgid "Code 202 - Accepted" msgstr "Code 202 - Angenommen" #: lang2.h:96 msgid "Code 203 - Non-Authoritative Information" msgstr "Code 203 - Keine endgltige Information" #: lang2.h:97 msgid "Code 204 - No Content" msgstr "Code 204 - Kein Inhalt" #: lang2.h:98 msgid "Code 205 - Reset Content" msgstr "Code 205 - Lsche Inhalt" #: lang2.h:99 msgid "Code 206 - Partial Content" msgstr "Code 206 - Unvollstndiger Inhalt" #: lang2.h:100 msgid "Code 300 - Multiple Choices" msgstr "Code 300 - Mehrere Auswahlmglichkeiten" #: lang2.h:101 msgid "Code 301 - Moved Permanently" msgstr "Code 301 - Seite dauerhaft an anderer Stelle" #: lang2.h:102 msgid "Code 302 - Found" msgstr "Code 302 - Seite an anderer Stelle gefunden" #: lang2.h:103 msgid "Code 303 - See Other" msgstr "Code 303 - Hole Seite von anderer Position" #: lang2.h:104 msgid "Code 304 - Not Modified" msgstr "Code 304 - Seite nicht gendert" #: lang2.h:105 msgid "Code 305 - Use Proxy" msgstr "Code 305 - Benutzung des Proxys erforderlich" #: lang2.h:106 msgid "Code 307 - Moved Temporarily" msgstr "Code 307 - Seite vorbergehend an anderer Stelle" #: lang2.h:107 msgid "Code 400 - Bad Request" msgstr "Code 400 - Ungltige Anfrage" #: lang2.h:108 msgid "Code 401 - Unauthorized" msgstr "Code 401 - Authentifizierung fehlt/ungltig" #: lang2.h:109 msgid "Code 402 - Payment Required" msgstr "Code 402 - Bezahlung erforderlich" #: lang2.h:110 msgid "Code 403 - Forbidden" msgstr "Code 403 - Antwort verweigert" #: lang2.h:111 msgid "Code 404 - Not Found" msgstr "Code 404 - Seite nicht gefunden!" #: lang2.h:112 msgid "Code 405 - Method Not Allowed" msgstr "Code 405 - Methode nicht erlaubt" #: lang2.h:113 msgid "Code 406 - Not Acceptable" msgstr "Code 406 - Nicht akzeptabel" #: lang2.h:114 msgid "Code 407 - Proxy Authentication Required" msgstr "Code 407 - Proxy-Autorisierung erforderlich" #: lang2.h:115 msgid "Code 408 - Request Timeout" msgstr "Code 408 - Zeitberschreitung durch Anwenderprogramm..." #: lang2.h:116 msgid "Code 409 - Conflict" msgstr "Code 409 - Konflikt" #: lang2.h:117 msgid "Code 410 - Gone" msgstr "Code 410 - Verloren" #: lang2.h:118 msgid "Code 411 - Length Required" msgstr "Code 411 - Lngenangabe erforderlich" #: lang2.h:119 msgid "Code 412 - Precondition Failed" msgstr "Code 412 - Fehlende Voraussetzung" #: lang2.h:120 msgid "Code 413 - Request Entity Too Large" msgstr "Code 413 - Request-Entity zu gro" #: lang2.h:121 msgid "Code 414 - Request-URI Too Long" msgstr "Code 414 - Request-URI zu lang" #: lang2.h:122 msgid "Code 415 - Unsupported Media Type" msgstr "Code 415 - Nicht untersttzter Medientyp" #: lang2.h:123 msgid "Code 416 - Requested Range Not Satisfiable" msgstr "Code 416 - Angegebener Bereich nicht in Ordnung" #: lang2.h:124 msgid "Code 417 - Expectation Failed" msgstr "Code 417 - Erwartung fehlgeschlagen" #: lang2.h:125 msgid "Code 500 - Internal Server Error" msgstr "Code 500 - Interner Server-Fehler (CGI?)" #: lang2.h:126 msgid "Code 501 - Not Implemented" msgstr "Code 501 - Nicht implementiert" #: lang2.h:127 msgid "Code 502 - Bad Gateway" msgstr "Code 502 - Fehlerhaftes Gateway" #: lang2.h:128 msgid "Code 503 - Service Unavailable" msgstr "Code 503 - Service nicht verfgbar" #: lang2.h:129 msgid "Code 504 - Gateway Timeout" msgstr "Code 504 - Gateway Zeitberschreitung..." #: lang2.h:130 msgid "Code 505 - HTTP Version Not Supported" msgstr "Code 505 - HTTP-Version wird nicht untersttzt" #: lang2.h:138 msgid "Unresolved/Unknown" msgstr "Unbekannte Adressen" #: lang2.h:139 msgid "US Commercial" msgstr "Firmen (COM)" #: lang2.h:140 msgid "US Educational" msgstr "USA-Univers./Schulen" #: lang2.h:141 msgid "US Government" msgstr "USA-Behrden" #: lang2.h:142 msgid "International (int)" msgstr "Intern. Einrichtungen" #: lang2.h:143 msgid "US Military" msgstr "USA-Militr" #: lang2.h:144 msgid "Network" msgstr "Netzwerke (NET)" #: lang2.h:145 msgid "Non-Profit Organization" msgstr "Organisationen (ORG)" #: lang2.h:146 msgid "Old style Arpanet (arpa)" msgstr "Alte Arpanet-Adressen" #: lang2.h:147 msgid "Nato field (nato)" msgstr "NATO-Adressen" #: lang2.h:148 msgid "Andorra" msgstr "Andorra" #: lang2.h:149 msgid "United Arab Emirates" msgstr "Arabische Emirate" #: lang2.h:150 msgid "Afghanistan" msgstr "Afghanistan" #: lang2.h:151 msgid "Antigua and Barbuda" msgstr "Antigua und Barbuda" #: lang2.h:152 msgid "Anguilla" msgstr "Anguilla" #: lang2.h:153 msgid "Albania" msgstr "Albanien" #: lang2.h:154 msgid "Armenia" msgstr "Armenien" #: lang2.h:155 msgid "Netherlands Antilles" msgstr "Niederlndische Antillen" #: lang2.h:156 msgid "Angola" msgstr "Angola" #: lang2.h:157 msgid "Antarctica" msgstr "Antarktis" #: lang2.h:158 msgid "Argentina" msgstr "Argentinien" #: lang2.h:159 msgid "American Samoa" msgstr "Amerikanisch Samoa" #: lang2.h:160 msgid "Austria" msgstr "sterreich" #: lang2.h:161 msgid "Australia" msgstr "Australien" #: lang2.h:162 msgid "Aruba" msgstr "Aruba" #: lang2.h:163 msgid "Azerbaijan" msgstr "Aserbaidschan" #: lang2.h:164 msgid "Bosnia and Herzegovina" msgstr "Bosnien und Herzegowina" #: lang2.h:165 msgid "Barbados" msgstr "Barbados" #: lang2.h:166 msgid "Bangladesh" msgstr "Bangladesch" #: lang2.h:167 msgid "Belgium" msgstr "Belgien" #: lang2.h:168 msgid "Burkina Faso" msgstr "Burkina Faso" #: lang2.h:169 msgid "Bulgaria" msgstr "Bulgarien" #: lang2.h:170 msgid "Bahrain" msgstr "Bahrain" #: lang2.h:171 msgid "Burundi" msgstr "Burundi" #: lang2.h:172 msgid "Benin" msgstr "Benin" #: lang2.h:173 msgid "Bermuda" msgstr "Bermuda" #: lang2.h:174 msgid "Brunei Darussalam" msgstr "Brunei" #: lang2.h:175 msgid "Bolivia" msgstr "Bolivien" #: lang2.h:176 msgid "Brazil" msgstr "Brasilien" #: lang2.h:177 msgid "Bahamas" msgstr "Bahamas" #: lang2.h:178 msgid "Bhutan" msgstr "Bhutan" #: lang2.h:179 msgid "Bouvet Island" msgstr "Bouvet Insel" #: lang2.h:180 msgid "Botswana" msgstr "Botswana" #: lang2.h:181 msgid "Belarus" msgstr "Weissrussland" #: lang2.h:182 msgid "Belize" msgstr "Belize" #: lang2.h:183 msgid "Canada" msgstr "Kanada" #: lang2.h:184 msgid "Cocos (Keeling) Islands" msgstr "Kokos-Inseln" #: lang2.h:185 msgid "Central African Republic" msgstr "Zentralafrikanische Republik" #: lang2.h:186 msgid "Congo" msgstr "Kongo" #: lang2.h:187 msgid "Switzerland" msgstr "Schweiz" #: lang2.h:188 msgid "Cote D'Ivoire (Ivory Coast)" msgstr "Elfenbeinkste" #: lang2.h:189 msgid "Cook Islands" msgstr "Cook-Inseln" #: lang2.h:190 msgid "Chile" msgstr "Chile" #: lang2.h:191 msgid "Cameroon" msgstr "Kamerun" #: lang2.h:192 msgid "China" msgstr "China" #: lang2.h:193 msgid "Colombia" msgstr "Kolumbien" #: lang2.h:194 msgid "Costa Rica" msgstr "Costa Rica" #: lang2.h:195 msgid "Czechoslovakia (former)" msgstr "Tschechoslowakei" #: lang2.h:196 msgid "Cuba" msgstr "Kuba" #: lang2.h:197 msgid "Cape Verde" msgstr "Kapverden" #: lang2.h:198 msgid "Christmas Island" msgstr "Weihnachtsinsel" #: lang2.h:199 msgid "Cyprus" msgstr "Zypern" #: lang2.h:200 msgid "Czech Republic" msgstr "Tschechien" #: lang2.h:201 msgid "Germany" msgstr "Deutschland" #: lang2.h:202 msgid "Djibouti" msgstr "Djibuti" #: lang2.h:203 msgid "Denmark" msgstr "Dnemark" #: lang2.h:204 msgid "Dominica" msgstr "Dominika" #: lang2.h:205 msgid "Dominican Republic" msgstr "Dominikanische Republik" #: lang2.h:206 msgid "Algeria" msgstr "Algerien" #: lang2.h:207 msgid "Ecuador" msgstr "Ekuador" #: lang2.h:208 msgid "Estonia" msgstr "Estland" #: lang2.h:209 msgid "Egypt" msgstr "gypten" #: lang2.h:210 msgid "Western Sahara" msgstr "West-Sahara" #: lang2.h:211 msgid "Eritrea" msgstr "Eritrea" #: lang2.h:212 msgid "Spain" msgstr "Spanien" #: lang2.h:213 msgid "Ethiopia" msgstr "thiopien" #: lang2.h:214 msgid "Finland" msgstr "Finnland" #: lang2.h:215 msgid "Fiji" msgstr "Fidschi-Inseln" #: lang2.h:216 msgid "Falkland Islands (Malvinas)" msgstr "Falkland Inseln" #: lang2.h:217 msgid "Micronesia" msgstr "Mikronesien" #: lang2.h:218 msgid "Faroe Islands" msgstr "Frer Inseln" #: lang2.h:219 msgid "France" msgstr "Frankreich" #: lang2.h:220 msgid "France, Metropolitan" msgstr "Frankreich, Metropolitan" #: lang2.h:221 msgid "Gabon" msgstr "Gabun" #: lang2.h:222 msgid "Great Britain (UK)" msgstr "Grobritannien (alt)" #: lang2.h:223 msgid "Grenada" msgstr "Grenada" #: lang2.h:224 msgid "Georgia" msgstr "Georgien" #: lang2.h:225 msgid "French Guiana" msgstr "Franz. Guayana" #: lang2.h:226 msgid "Ghana" msgstr "Ghana" #: lang2.h:227 msgid "Gibraltar" msgstr "Gibraltar" #: lang2.h:228 msgid "Greenland" msgstr "Grnland" #: lang2.h:229 msgid "Gambia" msgstr "Gambia" #: lang2.h:230 msgid "Guinea" msgstr "Guinea" #: lang2.h:231 msgid "Guadeloupe" msgstr "Guadeloupe" #: lang2.h:232 msgid "Equatorial Guinea" msgstr "quatorial Guinea" #: lang2.h:233 msgid "Greece" msgstr "Griechenland" #: lang2.h:234 msgid "S. Georgia and S. Sandwich Isls." msgstr "Georgien und Sandwich Inseln" #: lang2.h:235 msgid "Guatemala" msgstr "Guatemala" #: lang2.h:236 msgid "Guam" msgstr "Guam" #: lang2.h:237 msgid "Guinea-Bissau" msgstr "Guinea-Bissau" #: lang2.h:238 msgid "Guyana" msgstr "Guyana" #: lang2.h:239 msgid "Hong Kong" msgstr "Hong Kong" #: lang2.h:240 msgid "Heard and McDonald Islands" msgstr "Heard und McDonald Inseln" #: lang2.h:241 msgid "Honduras" msgstr "Honduras" #: lang2.h:242 msgid "Croatia (Hrvatska)" msgstr "Kroatien (Hrvatska)" #: lang2.h:243 msgid "Haiti" msgstr "Haiti" #: lang2.h:244 msgid "Hungary" msgstr "Ungarn" #: lang2.h:245 msgid "Indonesia" msgstr "Indonesien" #: lang2.h:246 msgid "Ireland" msgstr "Irland" #: lang2.h:247 msgid "Israel" msgstr "Israel" #: lang2.h:248 msgid "India" msgstr "Indien" #: lang2.h:249 msgid "British Indian Ocean Territory" msgstr "Brit. Indischer Ozean" #: lang2.h:250 msgid "Iraq" msgstr "Irak" #: lang2.h:251 msgid "Iran" msgstr "Iran" #: lang2.h:252 msgid "Iceland" msgstr "Island" #: lang2.h:253 msgid "Italy" msgstr "Italien" #: lang2.h:254 msgid "Jamaica" msgstr "Jamaika" #: lang2.h:255 msgid "Jordan" msgstr "Jordanien" #: lang2.h:256 msgid "Japan" msgstr "Japan" #: lang2.h:257 msgid "Kenya" msgstr "Kenia" #: lang2.h:258 msgid "Kyrgyzstan" msgstr "Kirgistan" #: lang2.h:259 msgid "Cambodia" msgstr "Kambodscha" #: lang2.h:260 msgid "Kiribati" msgstr "Kiribati" #: lang2.h:261 msgid "Comoros" msgstr "Komoren" #: lang2.h:262 msgid "Saint Kitts and Nevis" msgstr "Saint Kitts und Nevis" #: lang2.h:263 msgid "Korea (North)" msgstr "Nordkorea" #: lang2.h:264 msgid "Korea (South)" msgstr "Sdkorea" #: lang2.h:265 msgid "Kuwait" msgstr "Kuwait" #: lang2.h:266 msgid "Cayman Islands" msgstr "Cayman Inseln" #: lang2.h:267 msgid "Kazakhstan" msgstr "Kasachstan" #: lang2.h:268 msgid "Laos" msgstr "Laos" #: lang2.h:269 msgid "Lebanon" msgstr "Libanon" #: lang2.h:270 msgid "Saint Lucia" msgstr "Saint Luzia" #: lang2.h:271 msgid "Liechtenstein" msgstr "Liechtenstein" #: lang2.h:272 msgid "Sri Lanka" msgstr "Sri Lanka" #: lang2.h:273 msgid "Liberia" msgstr "Liberia" #: lang2.h:274 msgid "Lesotho" msgstr "Lesotho" #: lang2.h:275 msgid "Lithuania" msgstr "Litauen" #: lang2.h:276 msgid "Luxembourg" msgstr "Luxemburg" #: lang2.h:277 msgid "Latvia" msgstr "Lettland" #: lang2.h:278 msgid "Libya" msgstr "Libyen" #: lang2.h:279 msgid "Morocco" msgstr "Marokko" #: lang2.h:280 msgid "Monaco" msgstr "Monaco" #: lang2.h:281 msgid "Moldova" msgstr "Moldawien" #: lang2.h:282 msgid "Madagascar" msgstr "Madagaskar" #: lang2.h:283 msgid "Marshall Islands" msgstr "Marshall Inseln" #: lang2.h:284 msgid "Macedonia" msgstr "Mazedonien" #: lang2.h:285 msgid "Mali" msgstr "Mali" #: lang2.h:286 msgid "Myanmar" msgstr "Myanmar (Birma)" #: lang2.h:287 msgid "Mongolia" msgstr "Mongolei" #: lang2.h:288 msgid "Macau" msgstr "Makao" #: lang2.h:289 msgid "Northern Mariana Islands" msgstr "Nord-Marianen" #: lang2.h:290 msgid "Martinique" msgstr "Martinique" #: lang2.h:291 msgid "Mauritania" msgstr "Mauretanien" #: lang2.h:292 msgid "Montserrat" msgstr "Montserrat" #: lang2.h:293 msgid "Malta" msgstr "Malta" #: lang2.h:294 msgid "Mauritius" msgstr "Mauritius" #: lang2.h:295 msgid "Maldives" msgstr "Malediven" #: lang2.h:296 msgid "Malawi" msgstr "Malawi" #: lang2.h:297 msgid "Mexico" msgstr "Mexiko" #: lang2.h:298 msgid "Malaysia" msgstr "Malaysien" #: lang2.h:299 msgid "Mozambique" msgstr "Mosambik" #: lang2.h:300 msgid "Namibia" msgstr "Namibia" #: lang2.h:301 msgid "New Caledonia" msgstr "Neukaledonien" #: lang2.h:302 msgid "Niger" msgstr "Niger" #: lang2.h:303 msgid "Norfolk Island" msgstr "Norfolk Insel" #: lang2.h:304 msgid "Nigeria" msgstr "Nigeria" #: lang2.h:305 msgid "Nicaragua" msgstr "Nikaragua" #: lang2.h:306 msgid "Netherlands" msgstr "Niederlande" #: lang2.h:307 msgid "Norway" msgstr "Norwegen" #: lang2.h:308 msgid "Nepal" msgstr "Nepal" #: lang2.h:309 msgid "Nauru" msgstr "Nauru" #: lang2.h:310 msgid "Neutral Zone" msgstr "Neutrale Zone" #: lang2.h:311 msgid "Niue" msgstr "Niue" #: lang2.h:312 msgid "New Zealand (Aotearoa)" msgstr "Neuseeland" #: lang2.h:313 msgid "Oman" msgstr "Oman" #: lang2.h:314 msgid "Panama" msgstr "Panama" #: lang2.h:315 msgid "Peru" msgstr "Peru" #: lang2.h:316 msgid "French Polynesia" msgstr "Franz. Polynesien" #: lang2.h:317 msgid "Papua New Guinea" msgstr "Papua Neu-Guinea" #: lang2.h:318 msgid "Philippines" msgstr "Philippinen" #: lang2.h:319 msgid "Pakistan" msgstr "Pakistan" #: lang2.h:320 msgid "Poland" msgstr "Polen" #: lang2.h:321 msgid "St. Pierre and Miquelon" msgstr "St. Pierre und Miquelon" #: lang2.h:322 msgid "Pitcairn" msgstr "Pitcairn" #: lang2.h:323 msgid "Puerto Rico" msgstr "Puerto Rico" #: lang2.h:324 msgid "Portugal" msgstr "Portugal" #: lang2.h:325 msgid "Palau" msgstr "Palau (Belau)" #: lang2.h:326 msgid "Paraguay" msgstr "Paraguay" #: lang2.h:327 msgid "Qatar" msgstr "Katar" #: lang2.h:328 msgid "Reunion" msgstr "Reunion" #: lang2.h:329 msgid "Romania" msgstr "Rumnien" #: lang2.h:330 msgid "Russian Federation" msgstr "Russische Fderation" #: lang2.h:331 msgid "Rwanda" msgstr "Ruanda" #: lang2.h:332 msgid "Saudi Arabia" msgstr "Saudi Arabien" #: lang2.h:333 msgid "Solomon Islands" msgstr "Solomonen" #: lang2.h:334 msgid "Seychelles" msgstr "Seychellen" #: lang2.h:335 msgid "Sudan" msgstr "Sudan" #: lang2.h:336 msgid "Sweden" msgstr "Schweden" #: lang2.h:337 msgid "Singapore" msgstr "Singapur" #: lang2.h:338 msgid "St. Helena" msgstr "Sankt Helena" #: lang2.h:339 msgid "Slovenia" msgstr "Slowenien" #: lang2.h:340 msgid "Svalbard and Jan Mayen Islands" msgstr "Spitzbergen und Jan Mayen Inseln" #: lang2.h:341 msgid "Slovak Republic" msgstr "Slowakei" #: lang2.h:342 msgid "Sierra Leone" msgstr "Sierra Leone" #: lang2.h:343 msgid "San Marino" msgstr "San Marino" #: lang2.h:344 msgid "Senegal" msgstr "Senegal" #: lang2.h:345 msgid "Somalia" msgstr "Somalia" #: lang2.h:346 msgid "Suriname" msgstr "Surinam" #: lang2.h:347 msgid "Sao Tome and Principe" msgstr "Sao Tome und Principe" #: lang2.h:348 msgid "USSR (former)" msgstr "UdSSR (alt)" #: lang2.h:349 msgid "El Salvador" msgstr "El Salvador" #: lang2.h:350 msgid "Syria" msgstr "Syrien" #: lang2.h:351 msgid "Swaziland" msgstr "Swasiland" #: lang2.h:352 msgid "Turks and Caicos Islands" msgstr "Turks und Caicos Inseln" #: lang2.h:353 msgid "Chad" msgstr "Tschad" #: lang2.h:354 msgid "French Southern Territories" msgstr "Franz. Sd-Territorien" #: lang2.h:355 msgid "Togo" msgstr "Togo" #: lang2.h:356 msgid "Thailand" msgstr "Thailand" #: lang2.h:357 msgid "Tajikistan" msgstr "Tadschikistan" #: lang2.h:358 msgid "Tokelau" msgstr "Tokelau" #: lang2.h:359 msgid "Turkmenistan" msgstr "Turkmenistan" #: lang2.h:360 msgid "Tunisia" msgstr "Tunesien" #: lang2.h:361 msgid "Tonga" msgstr "Tonga" #: lang2.h:362 msgid "East Timor" msgstr "Ost-Timor" #: lang2.h:363 msgid "Turkey" msgstr "Trkei" #: lang2.h:364 msgid "Trinidad and Tobago" msgstr "Trinidad und Tobago" #: lang2.h:365 msgid "Tuvalu" msgstr "Tuvalu" #: lang2.h:366 msgid "Taiwan" msgstr "Taiwan" #: lang2.h:367 msgid "Tanzania" msgstr "Tansania" #: lang2.h:368 msgid "Ukraine" msgstr "Ukraine" #: lang2.h:369 msgid "Uganda" msgstr "Uganda (alt)" #: lang2.h:370 msgid "United Kingdom" msgstr "Grobritannien" #: lang2.h:371 msgid "US Minor Outlying Islands" msgstr "USA Inseln" #: lang2.h:372 msgid "United States" msgstr "USA" #: lang2.h:373 msgid "Uruguay" msgstr "Uruguay" #: lang2.h:374 msgid "Uzbekistan" msgstr "Usbekistan" #: lang2.h:375 msgid "Vatican City State (Holy See)" msgstr "Vatikan" #: lang2.h:376 msgid "Saint Vincent and the Grenadines" msgstr "Saint Vincent und Grenadinen" #: lang2.h:377 msgid "Venezuela" msgstr "Venezuela" #: lang2.h:378 msgid "Virgin Islands (British)" msgstr "Jungferninseln (Britisch)" #: lang2.h:379 msgid "Virgin Islands (U.S.)" msgstr "Jungferninseln (U.S.)" #: lang2.h:380 msgid "Viet Nam" msgstr "Vietnam" #: lang2.h:381 msgid "Vanuatu" msgstr "Vanuatu (Neue Hebriden)" #: lang2.h:382 msgid "Wallis and Futuna Islands" msgstr "Wallis und Futuna Inseln" #: lang2.h:383 msgid "Samoa" msgstr "Samoa" #: lang2.h:384 msgid "Yemen" msgstr "Jemen" #: lang2.h:385 msgid "Mayotte" msgstr "Mayotte" #: lang2.h:386 msgid "Yugoslavia" msgstr "Jugoslawien (Serbien)" #: lang2.h:387 msgid "South Africa" msgstr "Sdafrika" #: lang2.h:388 msgid "Zambia" msgstr "Sambia" #: lang2.h:389 msgid "Zaire" msgstr "Zaire" #: lang2.h:390 msgid "Zimbabwe" msgstr "Simbabwe" #~ msgid "English" #~ msgstr "French" #~ msgid "Total Search Strings" #~ msgstr "groupes de mots-clés" #~ msgid "Warning: Possible duplicate data found" #~ msgstr "Warning: Possible duplicate data found" webdruid-0.5.4.orig/po/zh.po0000644000000000000000000006250710066113350015626 0ustar rootroot00000000000000msgid "" msgstr "" "Project-Id-Version: 1.0\n" "PO-Revision-Date: 2003-05-25 23:29+0200\n" "Last-Translator: Johan Poirier \n" "Language-Team: French \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=ISO-8859-1\n" "Content-Transfer-Encoding: 8bit" msgid "-A num = Display num top agents" msgstr "-A num = Display num top agents" msgid "-C num = Display num top countries" msgstr "-C num = Display num top countries" msgid "-D name = Use DNS Cache file 'name'" msgstr "-D name = Use DNS Cache file 'name'" msgid "-E num = Display num top Exit Pages" msgstr "-E num = Display num top Exit Pages" msgid "-F type = Log type. type= (clf | ftp | squid)" msgstr "-F type = Log type. type= (clf | ftp | squid)" msgid "-G = supress hourly graph" msgstr "-G = supress hourly graph" msgid "-H = supress hourly stats" msgstr "-H = supress hourly stats" msgid "-I name = Index alias 'name'" msgstr "-I name = Index alias 'name'" msgid "-L = supress color coded graph legends" msgstr "-L = supress color coded graph legends" msgid "-N num = Number of DNS processes (0=disable)" msgstr "-N num = Number of DNS processes (0=disable)" msgid "-P name = Page type extension 'name'" msgstr "-P name = Page type extension 'name'" msgid "-Q = supress _ALL_ messages" msgstr "-Q = supress _ALL_ messages" msgid "-R num = Display num top referrers" msgstr "-R num = Display num top referrers" msgid "-S num = Display num top sites" msgstr "-S num = Display num top sites" msgid "-T = print timing information" msgstr "-T = print timing information" msgid "-U num = Display num top URLs" msgstr "-U num = Display num top URLs" msgid "-X = Hide individual sites" msgstr "-X = Hide individual sites" msgid "-Y = supress country graph" msgstr "-Y = supress country graph" msgid "-a name = hide user agent 'name'" msgstr "-a name = hide user agent 'name'" msgid "-c file = use configuration file 'file'" msgstr "-c file = use configuration file 'file'" msgid "-d = print additional debug info" msgstr "-d = print additional debug info" msgid "-e num = Display num top Entry Pages" msgstr "-e num = Display num top Entry Pages" msgid "-f = Fold sequence errors" msgstr "-f = fold sequence errors" msgid "-g num = Group Domains to 'num' levels" msgstr "-g num = Group Domains to 'num' levels" msgid "-h = print this help message" msgstr "-h = print this help message" msgid "-i = ignore history file" msgstr "-i = ignore history file" msgid "-l num = use num background lines on graph" msgstr "-l num = use num background lines on graph" msgid "-m num = Visit timout value (seconds)" msgstr "-m num = Visit timeout value (seconds)" msgid "-n name = hostname to use" msgstr "-n name = hostname to use" msgid "-o dir = output directory to use" msgstr "-o dir = output directory to use" msgid "-p = preserve state (incremental)" msgstr "-p = preserve state (incremental)" msgid "-q = supress informational messages" msgstr "-q = supress informational messages" msgid "-r name = hide referrer 'name'" msgstr "-r name = hide referrer 'name'" msgid "-s name = hide site 'name'" msgstr "-s name = hide site 'name'" msgid "-t name = report title 'name'" msgstr "-t name = report title 'name'" msgid "-u name = hide URL 'name'" msgstr "-u name = hide URL 'name'" msgid "-v -V = print version information" msgstr "-v -V = print version information" msgid "-x name = Use filename extension 'name'" msgstr "-x name = Use filename extension 'name'" msgid "Afghanistan" msgstr "Afghanistan" msgid "Agents" msgstr "s" msgid "Albania" msgstr "Albania" msgid "Algeria" msgstr "Algeria" msgid "American Samoa" msgstr "American Samoa" msgid "Andorra" msgstr "Andorra" msgid "Angola" msgstr "Angola" msgid "Anguilla" msgstr "Anguilla" msgid "Antarctica" msgstr "Antarctica" msgid "Antigua and Barbuda" msgstr "Antigua and Barbuda" msgid "Apr" msgstr "|" msgid "April" msgstr "|" msgid "Argentina" msgstr "Argentina" msgid "Armenia" msgstr "Armenia" msgid "Aruba" msgstr "Aruba" msgid "Aug" msgstr "K" msgid "August" msgstr "K" msgid "Australia" msgstr "Australia" msgid "Austria" msgstr "Austria" msgid "Avg" msgstr "" msgid "Azerbaijan" msgstr "Azerbaijan" msgid "Bahamas" msgstr "Bahamas" msgid "Bahrain" msgstr "Bahrain" msgid "Bangladesh" msgstr "Bangladesh" msgid "Barbados" msgstr "Barbados" msgid "Belarus" msgstr "Belarus" msgid "Belgium" msgstr "Belgium" msgid "Belize" msgstr "Belize" msgid "Benin" msgstr "Benin" msgid "Bermuda" msgstr "Bermuda" msgid "Bhutan" msgstr "Bhutan" msgid "Bolivia" msgstr "Bolivia" msgid "Bosnia and Herzegovina" msgstr "Bosnia and Herzegovina" msgid "Botswana" msgstr "Botswana" msgid "Bouvet Island" msgstr "Bouvet Island" msgid "Brazil" msgstr "Brazil" msgid "British Indian Ocean Territory" msgstr "British Indian Ocean Territory" msgid "Brunei Darussalam" msgstr "Brunei Darussalam" msgid "Bulgaria" msgstr "Bulgaria" msgid "Burkina Faso" msgstr "Burkina Faso" msgid "Burundi" msgstr "Burundi" msgid "By" msgstr "By" msgid "Cambodia" msgstr "Cambodia" msgid "Cameroon" msgstr "Cameroon" msgid "Can't allocate enough memory, Top Countries disabled!" msgstr "Can't allocate enough memory, Top Countries disabled!" msgid "Can't allocate enough memory, Top Referrers disabled!" msgstr "Can't allocate enough memory, Top Referrers disabled!" msgid "Can't allocate enough memory, Top Search Strings disabled!" msgstr "Can't Allocate enough memory, Top Search Strings disabled!" msgid "Can't allocate enough memory, Top Sites disabled!" msgstr "Can't allocate enough memory, Top Sites disabled!" msgid "Can't allocate enough memory, Top URLs disabled!" msgstr "Can't allocate enough memory, Top URLs disabled!" msgid "Can't allocate enough memory, Top User Agents disabled!" msgstr "Can't allocate enough memory, Top User Agents disabled!" msgid "Can't allocate enough memory, Top Usernames disabled!" msgstr "Can't allocate enough memory, Top Usernames disabled!" msgid "Canada" msgstr "Canada" msgid "Cape Verde" msgstr "Cape Verde" msgid "Cayman Islands" msgstr "Cayman Islands" msgid "Central African Republic" msgstr "Central African Republic" msgid "Chad" msgstr "Chad" msgid "Chile" msgstr "Chile" msgid "China" msgstr "China" msgid "Christmas Island" msgstr "Christmas Island" msgid "Cocos (Keeling) Islands" msgstr "Cocos (Keeling) Islands" msgid "Code 100 - Continue" msgstr "Code 100 - Continue" msgid "Code 101 - Switching Protocols" msgstr "Code 101 - Switching Protocols" msgid "Code 200 - OK" msgstr "Code 200 - OK" msgid "Code 201 - Created" msgstr "Code 201 - Created" msgid "Code 202 - Accepted" msgstr "Code 202 - Accepted" msgid "Code 203 - Non-Authoritative Information" msgstr "Code 203 - Non-Authoritative Information" msgid "Code 204 - No Content" msgstr "Code 204 - No Content" msgid "Code 205 - Reset Content" msgstr "Code 205 - Reset Content" msgid "Code 206 - Partial Content" msgstr "Code 206 - Partial Content" msgid "Code 300 - Multiple Choices" msgstr "Code 300 - Multiple Choices" msgid "Code 301 - Moved Permanently" msgstr "Code 301 - Moved Permanently" msgid "Code 302 - Found" msgstr "Code 302 - Found" msgid "Code 303 - See Other" msgstr "Code 303 - See Other" msgid "Code 304 - Not Modified" msgstr "Code 304 - Not Modified" msgid "Code 305 - Use Proxy" msgstr "Code 305 - Use Proxy" msgid "Code 307 - Moved Temporarily" msgstr "Code 307 - Moved Temporarily" msgid "Code 400 - Bad Request" msgstr "Code 400 - Bad Request" msgid "Code 401 - Unauthorized" msgstr "Code 401 - Unauthorized" msgid "Code 402 - Payment Required" msgstr "Code 402 - Payment Required" msgid "Code 403 - Forbidden" msgstr "Code 403 - Forbidden" msgid "Code 404 - Not Found" msgstr "Code 404 - Not Found" msgid "Code 405 - Method Not Allowed" msgstr "Code 405 - Method Not Allowed" msgid "Code 406 - Not Acceptable" msgstr "Code 406 - Not Acceptable" msgid "Code 407 - Proxy Authentication Required" msgstr "Code 407 - Proxy Authentication Required" msgid "Code 408 - Request Timeout" msgstr "Code 408 - Request Timeout" msgid "Code 409 - Conflict" msgstr "Code 409 - Conflict" msgid "Code 410 - Gone" msgstr "Code 410 - Gone" msgid "Code 411 - Length Required" msgstr "Code 411 - Length Required" msgid "Code 412 - Precondition Failed" msgstr "Code 412 - Precondition Failed" msgid "Code 413 - Request Entity Too Large" msgstr "Code 413 - Request Entity Too Large" msgid "Code 414 - Request-URI Too Long" msgstr "Code 414 - Request-URI Too Long" msgid "Code 415 - Unsupported Media Type" msgstr "Code 415 - Unsupported Media Type" msgid "Code 416 - Requested Range Not Satisfiable" msgstr "Code 416 - Requested Range Not Satisfiable" msgid "Code 417 - Expectation Failed" msgstr "Code 417 - Expectation Failed" msgid "Code 500 - Internal Server Error" msgstr "Code 500 - Internal Server Error" msgid "Code 501 - Not Implemented" msgstr "Code 501 - Not Implemented" msgid "Code 502 - Bad Gateway" msgstr "Code 502 - Bad Gateway" msgid "Code 503 - Service Unavailable" msgstr "Code 503 - Service Unavailable" msgid "Code 504 - Gateway Timeout" msgstr "Code 504 - Gateway Timeout" msgid "Code 505 - HTTP Version Not Supported" msgstr "Code 505 - HTTP Version Not Supported" msgid "Colombia" msgstr "Colombia" msgid "Comoros" msgstr "Comoros" msgid "Congo" msgstr "Congo" msgid "Cook Islands" msgstr "Cook Islands" msgid "Costa Rica" msgstr "Costa Rica" msgid "Cote D'Ivoire (Ivory Coast)" msgstr "Cote D'Ivoire (Ivory Coast)" msgid "Countries" msgstr "a" msgid "Country" msgstr "a" msgid "Creating output in" msgstr "ͿX" msgid "Croatia (Hrvatska)" msgstr "Croatia (Hrvatska)" msgid "Cuba" msgstr "Cuba" msgid "Cyprus" msgstr "Cyprus" msgid "Czech Republic" msgstr "Czech Republic" msgid "Czechoslovakia (former)" msgstr "Czechoslovakia (former)" msgid "DNS Lookup" msgstr "DNS Lookup" msgid "Daily Avg" msgstr "C饭" msgid "Daily Statistics" msgstr "Cέp" msgid "Daily Statistics for" msgstr "Cέp " msgid "Daily usage for" msgstr "Daily usage for" msgid "Day" msgstr "" msgid "Dec" msgstr "QG" msgid "December" msgstr "QG" msgid "Denmark" msgstr "Denmark" msgid "Djibouti" msgstr "Djibouti" msgid "Dominica" msgstr "Dominica" msgid "Dominican Republic" msgstr "Dominican Republic" msgid "East Timor" msgstr "East Timor" msgid "Ecuador" msgstr "Ecuador" msgid "Egypt" msgstr "Egypt" msgid "El Salvador" msgstr "El Salvador" msgid "English" msgstr "Chinese" msgid "Entry" msgstr "Entry" msgid "Equatorial Guinea" msgstr "Equatorial Guinea" msgid "Eritrea" msgstr "Eritrea" msgid "Error adding Referrer node, skipping" msgstr "Error adding Referrer node, skipping" msgid "Error adding Search String Node, skipping" msgstr "Error adding Search String node, skipping" msgid "Error adding URL node, skipping" msgstr "Error adding URL node, skipping" msgid "Error adding User Agent node, skipping" msgstr "Error adding User Agent node, skipping" msgid "Error adding Username node, skipping" msgstr "Error adding Username node, skipping" msgid "Error adding host node (daily), skipping" msgstr "Error adding host node (daily), skipping" msgid "Error adding host node (monthly), skipping" msgstr "Error adding host node (monthly), skipping" msgid "Error: Can't change directory to" msgstr "~GLkܧؿ" msgid "Error: Can't open log file" msgstr "~GLk}ҰO" msgid "Error: Ignoring invalid history record" msgstr "~GLĪvO" msgid "Error: Skipping oversized log record" msgstr "Error: Skipping oversized log record" msgid "Error: Skipping record (bad date)" msgstr "~GLӵO]榡D^" msgid "Error: Unable to lock DNS cache file" msgstr "Error: Unable to lock DNS cache file" msgid "Error: Unable to open DNS cache file" msgstr "Error: Unable to open DNS cache file" msgid "Error: Unable to open configuration file" msgstr "~GLk}ҳ]w" msgid "Error: Unable to open file" msgstr "Error: Unable to open file" msgid "Error: Unable to restore run data" msgstr "Error: Unable to restore run data" msgid "Error: Unable to save current run data" msgstr "Error: Unable to save current run data" msgid "Error: Unable to write history file" msgstr "~GLkgJvO" msgid "Estonia" msgstr "Estonia" msgid "Ethiopia" msgstr "Ethiopia" msgid "Exit" msgstr "Exit" msgid "Falkland Islands (Malvinas)" msgstr "Falkland Islands (Malvinas)" msgid "Faroe Islands" msgstr "Faroe Islands" msgid "Feb" msgstr "G" msgid "February" msgstr "G" msgid "Fiji" msgstr "Fiji" msgid "Files" msgstr "ɮ" msgid "Files per Day" msgstr "Files per Day" msgid "Finland" msgstr "Finland" msgid "France" msgstr "France" msgid "France; Metropolitan" msgstr "France, Metropolitan" msgid "French Guiana" msgstr "French Guiana" msgid "French Polynesia" msgstr "French Polynesia" msgid "French Southern Territories" msgstr "French Southern Territories" msgid "Gabon" msgstr "Gabon" msgid "Gambia" msgstr "Gambia" msgid "Generated" msgstr "ͮɶG" msgid "Generating report for" msgstr "ͳ" msgid "Generating summary report" msgstr "ͷJ`" msgid "Georgia" msgstr "Georgia" msgid "Germany" msgstr "Germany" msgid "Ghana" msgstr "Ghana" msgid "Gibraltar" msgstr "Gibraltar" msgid "Great Britain (UK)" msgstr "Great Britain (UK)" msgid "Greece" msgstr "Greece" msgid "Greenland" msgstr "Greenland" msgid "Grenada" msgstr "Grenada" msgid "Guadeloupe" msgstr "Guadeloupe" msgid "Guam" msgstr "Guam" msgid "Guatemala" msgstr "Guatemala" msgid "Guinea" msgstr "Guinea" msgid "Guinea-Bissau" msgstr "Guinea-Bissau" msgid "Guyana" msgstr "Guyana" msgid "Haiti" msgstr "Haiti" msgid "Heard and McDonald Islands" msgstr "Heard and McDonald Islands" msgid "History file not found..." msgstr "vO(history file)䤣K" msgid "Hits" msgstr "Ū" msgid "Hits by Response Code" msgstr "Ūɤ^NX" msgid "Hits per Day" msgstr "Hits per Day" msgid "Hits per Hour" msgstr "Hits per Hour" msgid "Honduras" msgstr "Honduras" msgid "Hong Kong" msgstr "Hong Kong" msgid "Hostname" msgstr "DW" msgid "Hostname for reports is" msgstr "DW٬O" msgid "Hour" msgstr "p" msgid "Hourly Statistics" msgstr "Cpɲέp" msgid "Hourly Statistics for" msgstr "Cpɲέp " msgid "Hourly usage for" msgstr "Hourly usage for" msgid "Hungary" msgstr "Hungary" msgid "Iceland" msgstr "Iceland" msgid "Ignoring previous history..." msgstr "evO(history)" msgid "India" msgstr "India" msgid "Indonesia" msgstr "Indonesia" msgid "International (int)" msgstr "International (int)" msgid "Iran" msgstr "Iran" msgid "Iraq" msgstr "Iraq" msgid "Ireland" msgstr "Ireland" msgid "Israel" msgstr "Israel" msgid "Italy" msgstr "Italy" msgid "Jamaica" msgstr "Jamaica" msgid "Jan" msgstr "@" msgid "January" msgstr "@" msgid "Japan" msgstr "Japan" msgid "Jordan" msgstr "Jordan" msgid "Jul" msgstr "C" msgid "July" msgstr "C" msgid "Jun" msgstr "" msgid "June" msgstr "" msgid "KBytes" msgstr "ǰeq]KB^" msgid "KBytes per Day" msgstr "KBytes per Day" msgid "Kazakhstan" msgstr "Kazakhstan" msgid "Kenya" msgstr "Kenya" msgid "Kiribati" msgstr "Kiribati" msgid "Korea (North)" msgstr "Korea (North)" msgid "Korea (South)" msgstr "Korea (South)" msgid "Kuwait" msgstr "Kuwait" msgid "Kyrgyzstan" msgstr "Kyrgyzstan" msgid "Laos" msgstr "Laos" msgid "Last 12 Months" msgstr " 12 Ӥ" msgid "Latvia" msgstr "Latvia" msgid "Lebanon" msgstr "Lebanon" msgid "Lesotho" msgstr "Lesotho" msgid "Liberia" msgstr "Liberia" msgid "Libya" msgstr "Libya" msgid "Liechtenstein" msgstr "Liechtenstein" msgid "Lithuania" msgstr "Lithuania" msgid "Luxembourg" msgstr "Luxembourg" msgid "Macau" msgstr "Macau" msgid "Macedonia" msgstr "Macedonia" msgid "Madagascar" msgstr "Madagascar" msgid "Malawi" msgstr "Malawi" msgid "Malaysia" msgstr "Malaysia" msgid "Maldives" msgstr "Maldives" msgid "Mali" msgstr "Mali" msgid "Malta" msgstr "Malta" msgid "Mar" msgstr "T" msgid "March" msgstr "T" msgid "Marshall Islands" msgstr "Marshall Islands" msgid "Martinique" msgstr "Martinique" msgid "Mauritania" msgstr "Mauritania" msgid "Mauritius" msgstr "Mauritius" msgid "Max" msgstr "Max" msgid "May" msgstr "" msgid "Mayotte" msgstr "Mayotte" msgid "Mexico" msgstr "Mexico" msgid "Micronesia" msgstr "Micronesia" msgid "Moldova" msgstr "Moldova" msgid "Monaco" msgstr "Monaco" msgid "Mongolia" msgstr "Mongolia" msgid "Month" msgstr "" msgid "Monthly Statistics for" msgstr "Cέp--" msgid "Monthly Totals" msgstr "C`p" msgid "Montserrat" msgstr "Montserrat" msgid "Morocco" msgstr "Morocco" msgid "Mozambique" msgstr "Mozambique" msgid "Myanmar" msgstr "Myanmar" msgid "Namibia" msgstr "Namibia" msgid "Nato field (nato)" msgstr "Nato field (nato)" msgid "Nauru" msgstr "Nauru" msgid "Nepal" msgstr "Nepal" msgid "Netherlands" msgstr "Netherlands" msgid "Netherlands Antilles" msgstr "Netherlands Antilles" msgid "Network" msgstr "Network" msgid "Neutral Zone" msgstr "Neutral Zone" msgid "New Caledonia" msgstr "New Caledonia" msgid "New Zealand (Aotearoa)" msgstr "New Zealand (Aotearoa)" msgid "Nicaragua" msgstr "Nicaragua" msgid "Niger" msgstr "Niger" msgid "Nigeria" msgstr "Nigeria" msgid "Niue" msgstr "Niue" msgid "No cache file specified, aborting..." msgstr "No cache file specified, aborting..." msgid "No valid records found!" msgstr "䤣즳ĪOI" msgid "Non-Profit Organization" msgstr "Non-Profit Organization" msgid "None to process" msgstr "None to process" msgid "Norfolk Island" msgstr "Norfolk Island" msgid "Northern Mariana Islands" msgstr "Northern Mariana Islands" msgid "Norway" msgstr "Norway" msgid "Nov" msgstr "Q@" msgid "November" msgstr "Q@" msgid "Oct" msgstr "Q" msgid "October" msgstr "Q" msgid "Old style Arpanet (arpa)" msgstr "Old style Arpanet (arpa)" msgid "Oman" msgstr "Oman" msgid "Other" msgstr "Other" msgid "Pages" msgstr "Pages" msgid "Pages per Day" msgstr "Pages per Day" msgid "Pakistan" msgstr "Pakistan" msgid "Palau" msgstr "Palau" msgid "Panama" msgstr "Panama" msgid "Papua New Guinea" msgstr "Papua New Guinea" msgid "Paraguay" msgstr "Paraguay" msgid "Peru" msgstr "Peru" msgid "Philippines" msgstr "Philippines" msgid "Pitcairn" msgstr "Pitcairn" msgid "Poland" msgstr "Poland" msgid "Portugal" msgstr "Portugal" msgid "Previous run data not found..." msgstr "Previous run data not found..." msgid "Puerto Rico" msgstr "Puerto Rico" msgid "Qatar" msgstr "Qatar" msgid "Reading history file..." msgstr "ŪvO" msgid "Reading previous run data..." msgstr "Reading previous run data.." msgid "Referrer" msgstr "ӷ" msgid "Referrers" msgstr "ӷ" msgid "Reunion" msgstr "Reunion" msgid "Romania" msgstr "Romania" msgid "Russian Federation" msgstr "Russian Federation" msgid "Rwanda" msgstr "Rwanda" msgid "S. Georgia and S. Sandwich Isls." msgstr "S. Georgia and S. Sandwich Isls." msgid "Saint Kitts and Nevis" msgstr "Saint Kitts and Nevis" msgid "Saint Lucia" msgstr "Saint Lucia" msgid "Saint Vincent and the Grenadines" msgstr "Saint Vincent and the Grenadines" msgid "Samoa" msgstr "Samoa" msgid "San Marino" msgstr "San Marino" msgid "Sao Tome and Principe" msgstr "Sao Tome and Principe" msgid "Saudi Arabia" msgstr "Saudi Arabia" msgid "Saving current run data..." msgstr "Saving current run data..." msgid "Saving history information..." msgstr "xsvOT" msgid "Search" msgstr "Search" msgid "Search String" msgstr "Search String" msgid "Senegal" msgstr "Senegal" msgid "Sep" msgstr "E" msgid "September" msgstr "E" msgid "Seychelles" msgstr "Seychelles" msgid "Sierra Leone" msgstr "Sierra Leone" msgid "Singapore" msgstr "Singapore" msgid "Sites" msgstr "ӷ" msgid "Skipping Netscape header record" msgstr "Skipping Netscape header record" msgid "Skipping bad record" msgstr "Skipping bad record" msgid "Slovak Republic" msgstr "Slovak Republic" msgid "Slovenia" msgstr "Slovenia" msgid "Solomon Islands" msgstr "Solomon Islands" msgid "Somalia" msgstr "Somalia" msgid "South Africa" msgstr "South Africa" msgid "Spain" msgstr "Spain" msgid "Sri Lanka" msgstr "Sri Lanka" msgid "St. Helena" msgstr "St. Helena" msgid "St. Pierre and Miquelon" msgstr "St. Pierre and Miquelon" msgid "Sudan" msgstr "Sudan" msgid "Summary Period" msgstr "Summary Period" msgid "Summary by Month" msgstr "CJ`έp" msgid "Suriname" msgstr "Suriname" msgid "Svalbard and Jan Mayen Islands" msgstr "Svalbard and Jan Mayen Islands" msgid "Swaziland" msgstr "Swaziland" msgid "Sweden" msgstr "Sweden" msgid "Switzerland" msgstr "Switzerland" msgid "Syria" msgstr "Syria" msgid "Taiwan" msgstr "Taiwan" msgid "Tajikistan" msgstr "Tajikistan" msgid "Tanzania" msgstr "Tanzania" msgid "Thailand" msgstr "Thailand" msgid "Togo" msgstr "Togo" msgid "Tokelau" msgstr "Tokelau" msgid "Tonga" msgstr "Tonga" msgid "Top" msgstr "CXe" msgid "Total" msgstr "`M" msgid "Total Countries" msgstr "Ӱa" msgid "Total Entry Pages" msgstr "Total Entry Pages" msgid "Total Exit Pages" msgstr "Total Exit Pages" msgid "Total Files" msgstr "`ɮ׼" msgid "Total Hits" msgstr "`Ū" msgid "Total KBytes" msgstr "`ǰeq]KB^" msgid "Total Referrers" msgstr "Өӷ" msgid "Total Search Strings" msgstr "Total Search Strings" msgid "Total Sites" msgstr "Ӻ" msgid "Total URLs" msgstr "|" msgid "Total Unique Referrers" msgstr "ӷ`ơ]]tЪ̡^" msgid "Total Unique Sites" msgstr "ӷ`ơ]]tЪ̡^" msgid "Total Unique URLs" msgstr "QŪ|`ơ]]tЪ̡^" msgid "Total Unique User Agents" msgstr "ӷs`ơ]]tЪ̡^" msgid "Total Unique Usernames" msgstr "Total Unique Usernames" msgid "Total User Agents" msgstr "s" msgid "Total Usernames" msgstr "Total Usernames" msgid "Totals" msgstr "`M" msgid "Trinidad and Tobago" msgstr "Trinidad and Tobago" msgid "Tunisia" msgstr "Tunisia" msgid "Turkey" msgstr "Turkey" msgid "Turkmenistan" msgstr "Turkmenistan" msgid "Turks and Caicos Islands" msgstr "Turks and Caicos Islands" msgid "Tuvalu" msgstr "Tuvalu" msgid "URL" msgstr "|" msgid "URLs" msgstr "|" msgid "US Commercial" msgstr "US Commercial" msgid "US Educational" msgstr "US Educational" msgid "US Government" msgstr "US Government" msgid "US Military" msgstr "US Military" msgid "US Minor Outlying Islands" msgstr "US Minor Outlying Islands" msgid "USSR (former)" msgstr "USSR (former)" msgid "Uganda" msgstr "Uganda" msgid "Ukraine" msgstr "Ukraine" msgid "Undefined response code" msgstr "Undefined response code" msgid "United Arab Emirates" msgstr "United Arab Emirates" msgid "United Kingdom" msgstr "United Kingdom" msgid "United States" msgstr "United States" msgid "Unresolved/Unknown" msgstr "Unresolved/Unknown" msgid "Uruguay" msgstr "Uruguay" msgid "Usage" msgstr "Usage" msgid "Usage Statistics for" msgstr "Usage Statistics for" msgid "Usage by Country for" msgstr "ӷaέp " msgid "Usage summary for" msgstr "Usage Statistics for" msgid "User Agent" msgstr "s" msgid "Username" msgstr "Username" msgid "Users" msgstr "Users" msgid "Using DNS cache file" msgstr "Using DNS cache file" msgid "Using logfile" msgstr "ϥΰO" msgid "Uzbekistan" msgstr "Uzbekistan" msgid "Vanuatu" msgstr "Vanuatu" msgid "Vatican City State (Holy See)" msgstr "Vatican City State (Holy See)" msgid "Venezuela" msgstr "Venezuela" msgid "Viet Nam" msgstr "Viet Nam" msgid "View All Referrers" msgstr "View All Referrers" msgid "View All Search Strings" msgstr "View All Search Strings" msgid "View All Sites" msgstr "View All Sites" msgid "View All URLs" msgstr "View All URLs" msgid "View All User Agents" msgstr "View All User Agents" msgid "View All Usernames" msgstr "View All Usernames" msgid "Virgin Islands (British)" msgstr "Virgin Islands (British)" msgid "Virgin Islands (U.S.)" msgstr "Virgin Islands (U.S.)" msgid "Visits" msgstr "Visits" msgid "Visits per Day" msgstr "Visits per Day" msgid "Wallis and Futuna Islands" msgstr "Wallis and Futuna Islands" msgid "Warning: Invalid keyword" msgstr "ĵiGLĪr" msgid "Warning: Possible duplicate data found" msgstr "Warning: Possible duplicate data found" msgid "Warning: String exceeds storage size" msgstr "Warning: String exceeds storage size" msgid "Warning: Truncating oversized date field" msgstr "Warning: Truncating oversized date field" msgid "Warning: Truncating oversized hostname" msgstr "Warning: Truncating oversized hostname" msgid "Warning: Truncating oversized referrer field" msgstr "Warning: Truncating oversized referrer field" msgid "Warning: Truncating oversized request field" msgstr "Warning: Truncating oversized request field" msgid "Warning: Truncating oversized username" msgstr "Warning: Truncating oversized username" msgid "Western Sahara" msgstr "Western Sahara" msgid "Yemen" msgstr "Yemen" msgid "Yugoslavia" msgstr "Yugoslavia" msgid "Zaire" msgstr "Zaire" msgid "Zambia" msgstr "Zambia" msgid "Zimbabwe" msgstr "Zimbabwe" msgid "[options] [log file]" msgstr "[options] [log file]" msgid "addresses" msgstr "addresses" msgid "bad" msgstr "bad" msgid "current directory" msgstr "ثeؿ" msgid "ignored" msgstr "" msgid "in" msgstr "in" msgid "of" msgstr "WA@" msgid "records" msgstr "O" msgid "seconds" msgstr "" webdruid-0.5.4.orig/po/sr.po0000644000000000000000000006330310066113350015624 0ustar rootroot00000000000000msgid "" msgstr "" "Project-Id-Version: 1.0\n" "PO-Revision-Date: 2003-05-25 23:29+0200\n" "Last-Translator: Johan Poirier \n" "Language-Team: French \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=ISO-8859-1\n" "Content-Transfer-Encoding: 8bit" msgid "-A num = Display num top agents" msgstr "-A num = Display num top agents" msgid "-C num = Display num top countries" msgstr "-C num = Display num top countries" msgid "-D name = Use DNS Cache file 'name'" msgstr "-D name = Use DNS Cache file 'name'" msgid "-E num = Display num top Exit Pages" msgstr "-E num = Display num top Exit Pages" msgid "-F type = Log type. type= (clf | ftp | squid)" msgstr "-F type = Log type. type= (clf | ftp | squid)" msgid "-G = supress hourly graph" msgstr "-G = supress hourly graph" msgid "-H = supress hourly stats" msgstr "-H = supress hourly stats" msgid "-I name = Index alias 'name'" msgstr "-I name = Index alias 'name'" msgid "-L = supress color coded graph legends" msgstr "-L = supress color coded graph legends" msgid "-N num = Number of DNS processes (0=disable)" msgstr "-N num = Number of DNS processes (0=disable)" msgid "-P name = Page type extension 'name'" msgstr "-P name = Page type extension 'name'" msgid "-Q = supress _ALL_ messages" msgstr "-Q = supress _ALL_ messages" msgid "-R num = Display num top referrers" msgstr "-R num = Display num top referrers" msgid "-S num = Display num top sites" msgstr "-S num = Display num top sites" msgid "-T = print timing information" msgstr "-T = print timing information" msgid "-U num = Display num top URLs" msgstr "-U num = Display num top URLs" msgid "-X = Hide individual sites" msgstr "-X = Hide individual sites" msgid "-Y = supress country graph" msgstr "-Y = supress country graph" msgid "-a name = hide user agent 'name'" msgstr "-a name = hide user agent 'name'" msgid "-c file = use configuration file 'file'" msgstr "-c file = use configuration file 'file'" msgid "-d = print additional debug info" msgstr "-d = print additional debug info" msgid "-e num = Display num top Entry Pages" msgstr "-e num = Display num top Entry Pages" msgid "-f = Fold sequence errors" msgstr "-f = Fold sequence errors" msgid "-g num = Group Domains to 'num' levels" msgstr "-g num = Group Domains to 'num' levels" msgid "-h = print this help message" msgstr "-h = print this help message" msgid "-i = ignore history file" msgstr "-i = ignore history file" msgid "-l num = use num background lines on graph" msgstr "-l num = use num background lines on graph" msgid "-m num = Visit timout value (seconds)" msgstr "-m num = Visit timout value (seconds)" msgid "-n name = hostname to use" msgstr "-n name = hostname to use" msgid "-o dir = output directory to use" msgstr "-o dir = output directory to use" msgid "-p = preserve state (incremental)" msgstr "-p = preserve state (incremental)" msgid "-q = supress informational messages" msgstr "-q = supress informational messages" msgid "-r name = hide referrer 'name'" msgstr "-r name = hide referrer 'name'" msgid "-s name = hide site 'name'" msgstr "-s name = hide site 'name'" msgid "-t name = report title 'name'" msgstr "-t name = report title 'name'" msgid "-u name = hide URL 'name'" msgstr "-u name = hide URL 'name'" msgid "-v -V = print version information" msgstr "-v -V = print version information" msgid "-x name = Use filename extension 'name'" msgstr "-x name = Use filename extension 'name'" msgid "Afghanistan" msgstr "Afghanistan" msgid "Agents" msgstr "Browseri" msgid "Albania" msgstr "Albania" msgid "Algeria" msgstr "Algeria" msgid "American Samoa" msgstr "American Samoa" msgid "Andorra" msgstr "Andorra" msgid "Angola" msgstr "Angola" msgid "Anguilla" msgstr "Anguilla" msgid "Antarctica" msgstr "Antarctica" msgid "Antigua and Barbuda" msgstr "Antigua and Barbuda" msgid "Apr" msgstr "Apr" msgid "April" msgstr "April" msgid "Argentina" msgstr "Argentina" msgid "Armenia" msgstr "Armenia" msgid "Aruba" msgstr "Aruba" msgid "Aug" msgstr "Avg" msgid "August" msgstr "Avgust" msgid "Australia" msgstr "Australia" msgid "Austria" msgstr "Austria" msgid "Avg" msgstr "prosek" msgid "Azerbaijan" msgstr "Azerbaijan" msgid "Bahamas" msgstr "Bahamas" msgid "Bahrain" msgstr "Bahrain" msgid "Bangladesh" msgstr "Bangladesh" msgid "Barbados" msgstr "Barbados" msgid "Belarus" msgstr "Belarus" msgid "Belgium" msgstr "Belgium" msgid "Belize" msgstr "Belize" msgid "Benin" msgstr "Benin" msgid "Bermuda" msgstr "Bermuda" msgid "Bhutan" msgstr "Bhutan" msgid "Bolivia" msgstr "Bolivia" msgid "Bosnia and Herzegovina" msgstr "Bosnia and Herzegovina" msgid "Botswana" msgstr "Botswana" msgid "Bouvet Island" msgstr "Bouvet Island" msgid "Brazil" msgstr "Brazil" msgid "British Indian Ocean Territory" msgstr "British Indian Ocean Territory" msgid "Brunei Darussalam" msgstr "Brunei Darussalam" msgid "Bulgaria" msgstr "Bulgaria" msgid "Burkina Faso" msgstr "Burkina Faso" msgid "Burundi" msgstr "Burundi" msgid "By" msgstr "po" msgid "Cambodia" msgstr "Cambodia" msgid "Cameroon" msgstr "Cameroon" msgid "Can't allocate enough memory, Top Countries disabled!" msgstr "Can't allocate enough memory, Top Countries disabled!" msgid "Can't allocate enough memory, Top Referrers disabled!" msgstr "Can't allocate enough memory, Top Referrers disabled!" msgid "Can't allocate enough memory, Top Search Strings disabled!" msgstr "Can't allocate enough memory, Top Search Strings disabled!" msgid "Can't allocate enough memory, Top Sites disabled!" msgstr "Can't allocate enough memory, Top Sites disabled!" msgid "Can't allocate enough memory, Top URLs disabled!" msgstr "Can't allocate enough memory, Top URLs disabled!" msgid "Can't allocate enough memory, Top User Agents disabled!" msgstr "Can't allocate enough memory, Top User Agents disabled!" msgid "Can't allocate enough memory, Top Usernames disabled!" msgstr "Can't allocate enough memory, Top Usernames disabled!" msgid "Canada" msgstr "Canada" msgid "Cape Verde" msgstr "Cape Verde" msgid "Cayman Islands" msgstr "Cayman Islands" msgid "Central African Republic" msgstr "Central African Republic" msgid "Chad" msgstr "Chad" msgid "Chile" msgstr "Chile" msgid "China" msgstr "China" msgid "Christmas Island" msgstr "Christmas Island" msgid "Cocos (Keeling) Islands" msgstr "Cocos (Keeling) Islands" msgid "Code 100 - Continue" msgstr "Code 100 - Continue" msgid "Code 101 - Switching Protocols" msgstr "Code 101 - Switching Protocols" msgid "Code 200 - OK" msgstr "Code 200 - OK" msgid "Code 201 - Created" msgstr "Code 201 - Created" msgid "Code 202 - Accepted" msgstr "Code 202 - Accepted" msgid "Code 203 - Non-Authoritative Information" msgstr "Code 203 - Non-Authoritative Information" msgid "Code 204 - No Content" msgstr "Code 204 - No Content" msgid "Code 205 - Reset Content" msgstr "Code 205 - Reset Content" msgid "Code 206 - Partial Content" msgstr "Code 206 - Partial Content" msgid "Code 300 - Multiple Choices" msgstr "Code 300 - Multiple Choices" msgid "Code 301 - Moved Permanently" msgstr "Code 301 - Moved Permanently" msgid "Code 302 - Found" msgstr "Code 302 - Found" msgid "Code 303 - See Other" msgstr "Code 303 - See Other" msgid "Code 304 - Not Modified" msgstr "Code 304 - Not Modified" msgid "Code 305 - Use Proxy" msgstr "Code 305 - Use Proxy" msgid "Code 307 - Moved Temporarily" msgstr "Code 307 - Moved Temporarily" msgid "Code 400 - Bad Request" msgstr "Code 400 - Bad Request" msgid "Code 401 - Unauthorized" msgstr "Code 401 - Unauthorized" msgid "Code 402 - Payment Required" msgstr "Code 402 - Payment Required" msgid "Code 403 - Forbidden" msgstr "Code 403 - Forbidden" msgid "Code 404 - Not Found" msgstr "Code 404 - Not Found" msgid "Code 405 - Method Not Allowed" msgstr "Code 405 - Method Not Allowed" msgid "Code 406 - Not Acceptable" msgstr "Code 406 - Not Acceptable" msgid "Code 407 - Proxy Authentication Required" msgstr "Code 407 - Proxy Authentication Required" msgid "Code 408 - Request Timeout" msgstr "Code 408 - Request Timeout" msgid "Code 409 - Conflict" msgstr "Code 409 - Conflict" msgid "Code 410 - Gone" msgstr "Code 410 - Gone" msgid "Code 411 - Length Required" msgstr "Code 411 - Length Required" msgid "Code 412 - Precondition Failed" msgstr "Code 412 - Precondition Failed" msgid "Code 413 - Request Entity Too Large" msgstr "Code 413 - Request Entity Too Large" msgid "Code 414 - Request-URI Too Long" msgstr "Code 414 - Request-URI Too Long" msgid "Code 415 - Unsupported Media Type" msgstr "Code 415 - Unsupported Media Type" msgid "Code 416 - Requested Range Not Satisfiable" msgstr "Code 416 - Requested Range Not Satisfiable" msgid "Code 417 - Expectation Failed" msgstr "Code 417 - Expectation Failed" msgid "Code 500 - Internal Server Error" msgstr "Code 500 - Internal Server Error" msgid "Code 501 - Not Implemented" msgstr "Code 501 - Not Implemented" msgid "Code 502 - Bad Gateway" msgstr "Code 502 - Bad Gateway" msgid "Code 503 - Service Unavailable" msgstr "Code 503 - Service Unavailable" msgid "Code 504 - Gateway Timeout" msgstr "Code 504 - Gateway Timeout" msgid "Code 505 - HTTP Version Not Supported" msgstr "Code 505 - HTTP Version Not Supported" msgid "Colombia" msgstr "Colombia" msgid "Comoros" msgstr "Comoros" msgid "Congo" msgstr "Congo" msgid "Cook Islands" msgstr "Cook Islands" msgid "Costa Rica" msgstr "Costa Rica" msgid "Cote D'Ivoire (Ivory Coast)" msgstr "Cote D'Ivoire (Ivory Coast)" msgid "Countries" msgstr "Zemlje" msgid "Country" msgstr "Zemlja" msgid "Creating output in" msgstr "Creating output in" msgid "Croatia (Hrvatska)" msgstr "Croatia (Hrvatska)" msgid "Cuba" msgstr "Cuba" msgid "Cyprus" msgstr "Cyprus" msgid "Czech Republic" msgstr "Czech Republic" msgid "Czechoslovakia (former)" msgstr "Czechoslovakia (former)" msgid "DNS Lookup" msgstr "DNS Lookup" msgid "Daily Avg" msgstr "Dnevni prosek" msgid "Daily Statistics" msgstr "Dnevna statistika" msgid "Daily Statistics for" msgstr "Dnevna statistika za" msgid "Daily usage for" msgstr "Pristupi po danu za" msgid "Day" msgstr "Dan" msgid "Dec" msgstr "Dec" msgid "December" msgstr "Decembar" msgid "Denmark" msgstr "Denmark" msgid "Djibouti" msgstr "Djibouti" msgid "Dominica" msgstr "Dominica" msgid "Dominican Republic" msgstr "Dominican Republic" msgid "East Timor" msgstr "East Timor" msgid "Ecuador" msgstr "Ecuador" msgid "Egypt" msgstr "Egypt" msgid "El Salvador" msgstr "El Salvador" msgid "English" msgstr "Serbian" msgid "Entry" msgstr "Ulaz" msgid "Equatorial Guinea" msgstr "Equatorial Guinea" msgid "Eritrea" msgstr "Eritrea" msgid "Error adding Referrer node, skipping" msgstr "Error adding Referrer node, skipping" msgid "Error adding Search String Node, skipping" msgstr "Error adding Search String Node, skipping" msgid "Error adding URL node, skipping" msgstr "Error adding URL node, skipping" msgid "Error adding User Agent node, skipping" msgstr "Error adding User Agent node, skipping" msgid "Error adding Username node, skipping" msgstr "Error adding Username node, skipping" msgid "Error adding host node (daily), skipping" msgstr "Error adding host node (daily), skipping" msgid "Error adding host node (monthly), skipping" msgstr "Error adding host node (monthly), skipping" msgid "Error: Can't change directory to" msgstr "Error: Can't change directory to" msgid "Error: Can't open log file" msgstr "Error: Can't open log file" msgid "Error: Ignoring invalid history record" msgstr "Error: Ignoring invalid history record" msgid "Error: Skipping oversized log record" msgstr "Error: Skipping oversized log record" msgid "Error: Skipping record (bad date)" msgstr "Error: Skipping record (bad date)" msgid "Error: Unable to lock DNS cache file" msgstr "Error: Unable to lock DNS cache file" msgid "Error: Unable to open DNS cache file" msgstr "Error: Unable to open DNS cache file" msgid "Error: Unable to open configuration file" msgstr "Error: Unable to open configuration file" msgid "Error: Unable to open file" msgstr "Error: Unable to open file" msgid "Error: Unable to restore run data" msgstr "Error: Unable to restore run data" msgid "Error: Unable to save current run data" msgstr "Error: Unable to save current run data" msgid "Error: Unable to write history file" msgstr "Error: Unable to write history file" msgid "Estonia" msgstr "Estonia" msgid "Ethiopia" msgstr "Ethiopia" msgid "Exit" msgstr "Izlaz" msgid "Falkland Islands (Malvinas)" msgstr "Falkland Islands (Malvinas)" msgid "Faroe Islands" msgstr "Faroe Islands" msgid "Feb" msgstr "Feb" msgid "February" msgstr "Februar" msgid "Fiji" msgstr "Fiji" msgid "Files" msgstr "Fajlova" msgid "Files per Day" msgstr "Fajlova na dan" msgid "Finland" msgstr "Finland" msgid "France" msgstr "France" msgid "France; Metropolitan" msgstr "France, Metropolitan" msgid "French Guiana" msgstr "French Guiana" msgid "French Polynesia" msgstr "French Polynesia" msgid "French Southern Territories" msgstr "French Southern Territories" msgid "Gabon" msgstr "Gabon" msgid "Gambia" msgstr "Gambia" msgid "Generated" msgstr "Generisano" msgid "Generating report for" msgstr "Generating report for" msgid "Generating summary report" msgstr "Generating summary report" msgid "Georgia" msgstr "Georgia" msgid "Germany" msgstr "Germany" msgid "Ghana" msgstr "Ghana" msgid "Gibraltar" msgstr "Gibraltar" msgid "Great Britain (UK)" msgstr "Great Britain (UK)" msgid "Greece" msgstr "Greece" msgid "Greenland" msgstr "Greenland" msgid "Grenada" msgstr "Grenada" msgid "Guadeloupe" msgstr "Guadeloupe" msgid "Guam" msgstr "Guam" msgid "Guatemala" msgstr "Guatemala" msgid "Guinea" msgstr "Guinea" msgid "Guinea-Bissau" msgstr "Guinea-Bissau" msgid "Guyana" msgstr "Guyana" msgid "Haiti" msgstr "Haiti" msgid "Heard and McDonald Islands" msgstr "Heard and McDonald Islands" msgid "History file not found..." msgstr "History file not found..." msgid "Hits" msgstr "Pristupa" msgid "Hits by Response Code" msgstr "Pristupa po kodu" msgid "Hits per Day" msgstr "Pristupa na dan" msgid "Hits per Hour" msgstr "Pristupa na sat" msgid "Honduras" msgstr "Honduras" msgid "Hong Kong" msgstr "Hong Kong" msgid "Hostname" msgstr "Racunar" msgid "Hostname for reports is" msgstr "Hostname for reports is" msgid "Hour" msgstr "Sat" msgid "Hourly Statistics" msgstr "Statistika po satu" msgid "Hourly Statistics for" msgstr "Statistika po satu za" msgid "Hourly usage for" msgstr "Pristupi po satu za" msgid "Hungary" msgstr "Hungary" msgid "Iceland" msgstr "Iceland" msgid "Ignoring previous history..." msgstr "Ignoring previous history..." msgid "India" msgstr "India" msgid "Indonesia" msgstr "Indonesia" msgid "International (int)" msgstr "Internacionalni (int)" msgid "Iran" msgstr "Iran" msgid "Iraq" msgstr "Iraq" msgid "Ireland" msgstr "Ireland" msgid "Israel" msgstr "Israel" msgid "Italy" msgstr "Italy" msgid "Jamaica" msgstr "Jamaica" msgid "Jan" msgstr "Jan" msgid "January" msgstr "Januar" msgid "Japan" msgstr "Japan" msgid "Jordan" msgstr "Jordan" msgid "Jul" msgstr "Jul" msgid "July" msgstr "Jul" msgid "Jun" msgstr "Jun" msgid "June" msgstr "Jun" msgid "KBytes" msgstr "KB" msgid "KBytes per Day" msgstr "KBajta na dan" msgid "Kazakhstan" msgstr "Kazakhstan" msgid "Kenya" msgstr "Kenya" msgid "Kiribati" msgstr "Kiribati" msgid "Korea (North)" msgstr "Korea (North)" msgid "Korea (South)" msgstr "Korea (South)" msgid "Kuwait" msgstr "Kuwait" msgid "Kyrgyzstan" msgstr "Kyrgyzstan" msgid "Laos" msgstr "Laos" msgid "Last 12 Months" msgstr "Poslednjih 12 meseci" msgid "Latvia" msgstr "Latvia" msgid "Lebanon" msgstr "Lebanon" msgid "Lesotho" msgstr "Lesotho" msgid "Liberia" msgstr "Liberia" msgid "Libya" msgstr "Libya" msgid "Liechtenstein" msgstr "Liechtenstein" msgid "Lithuania" msgstr "Lithuania" msgid "Luxembourg" msgstr "Luxembourg" msgid "Macau" msgstr "Macau" msgid "Macedonia" msgstr "Macedonia" msgid "Madagascar" msgstr "Madagascar" msgid "Malawi" msgstr "Malawi" msgid "Malaysia" msgstr "Malaysia" msgid "Maldives" msgstr "Maldives" msgid "Mali" msgstr "Mali" msgid "Malta" msgstr "Malta" msgid "Mar" msgstr "Mar" msgid "March" msgstr "Mart" msgid "Marshall Islands" msgstr "Marshall Islands" msgid "Martinique" msgstr "Martinique" msgid "Mauritania" msgstr "Mauritania" msgid "Mauritius" msgstr "Mauritius" msgid "Max" msgstr "Max" msgid "May" msgstr "Maj" msgid "Mayotte" msgstr "Mayotte" msgid "Mexico" msgstr "Mexico" msgid "Micronesia" msgstr "Micronesia" msgid "Moldova" msgstr "Moldova" msgid "Monaco" msgstr "Monaco" msgid "Mongolia" msgstr "Mongolia" msgid "Month" msgstr "Mesec" msgid "Monthly Statistics for" msgstr "Mesecna statistika za" msgid "Monthly Totals" msgstr "Mesecni zbirovi" msgid "Montserrat" msgstr "Montserrat" msgid "Morocco" msgstr "Morocco" msgid "Mozambique" msgstr "Mozambique" msgid "Myanmar" msgstr "Myanmar" msgid "Namibia" msgstr "Namibia" msgid "Nato field (nato)" msgstr "Nato (nato)" msgid "Nauru" msgstr "Nauru" msgid "Nepal" msgstr "Nepal" msgid "Netherlands" msgstr "Netherlands" msgid "Netherlands Antilles" msgstr "Netherlands Antilles" msgid "Network" msgstr "Mrezni domeni (net)" msgid "Neutral Zone" msgstr "Neutral Zone" msgid "New Caledonia" msgstr "New Caledonia" msgid "New Zealand (Aotearoa)" msgstr "New Zealand (Aotearoa)" msgid "Nicaragua" msgstr "Nicaragua" msgid "Niger" msgstr "Niger" msgid "Nigeria" msgstr "Nigeria" msgid "Niue" msgstr "Niue" msgid "No cache file specified, aborting..." msgstr "No cache file specified, aborting..." msgid "No valid records found!" msgstr "No valid records found!" msgid "Non-Profit Organization" msgstr "Organizacije (org)" msgid "None to process" msgstr "None to process" msgid "Norfolk Island" msgstr "Norfolk Island" msgid "Northern Mariana Islands" msgstr "Northern Mariana Islands" msgid "Norway" msgstr "Norway" msgid "Nov" msgstr "Nov" msgid "November" msgstr "Novembar" msgid "Oct" msgstr "Okt" msgid "October" msgstr "Oktobar" msgid "Old style Arpanet (arpa)" msgstr "Stari Arpanet (arpa)" msgid "Oman" msgstr "Oman" msgid "Other" msgstr "Ostalo" msgid "Pages" msgstr "Strana" msgid "Pages per Day" msgstr "Fajlova na sat" msgid "Pakistan" msgstr "Pakistan" msgid "Palau" msgstr "Palau" msgid "Panama" msgstr "Panama" msgid "Papua New Guinea" msgstr "Papua New Guinea" msgid "Paraguay" msgstr "Paraguay" msgid "Peru" msgstr "Peru" msgid "Philippines" msgstr "Philippines" msgid "Pitcairn" msgstr "Pitcairn" msgid "Poland" msgstr "Poland" msgid "Portugal" msgstr "Portugal" msgid "Previous run data not found..." msgstr "Previous run data not found..." msgid "Puerto Rico" msgstr "Puerto Rico" msgid "Qatar" msgstr "Qatar" msgid "Reading history file..." msgstr "Reading history file..." msgid "Reading previous run data..." msgstr "Reading previous run data.." msgid "Referrer" msgstr "Referer" msgid "Referrers" msgstr "Referisanja" msgid "Reunion" msgstr "Reunion" msgid "Romania" msgstr "Romania" msgid "Russian Federation" msgstr "Russian Federation" msgid "Rwanda" msgstr "Rwanda" msgid "S. Georgia and S. Sandwich Isls." msgstr "S. Georgia and S. Sandwich Isls." msgid "Saint Kitts and Nevis" msgstr "Saint Kitts and Nevis" msgid "Saint Lucia" msgstr "Saint Lucia" msgid "Saint Vincent and the Grenadines" msgstr "Saint Vincent and the Grenadines" msgid "Samoa" msgstr "Samoa" msgid "San Marino" msgstr "San Marino" msgid "Sao Tome and Principe" msgstr "Sao Tome and Principe" msgid "Saudi Arabia" msgstr "Saudi Arabia" msgid "Saving current run data..." msgstr "Saving current run data..." msgid "Saving history information..." msgstr "Saving history information..." msgid "Search" msgstr "Pretraga" msgid "Search String" msgstr "Tekst pretrazivanja" msgid "Senegal" msgstr "Senegal" msgid "Sep" msgstr "Sep" msgid "September" msgstr "Septembar" msgid "Seychelles" msgstr "Seychelles" msgid "Sierra Leone" msgstr "Sierra Leone" msgid "Singapore" msgstr "Singapore" msgid "Sites" msgstr "Racunari" msgid "Skipping Netscape header record" msgstr "Skipping Netscape header record" msgid "Skipping bad record" msgstr "Skipping bad record" msgid "Slovak Republic" msgstr "Slovak Republic" msgid "Slovenia" msgstr "Slovenia" msgid "Solomon Islands" msgstr "Solomon Islands" msgid "Somalia" msgstr "Somalia" msgid "South Africa" msgstr "South Africa" msgid "Spain" msgstr "Spain" msgid "Sri Lanka" msgstr "Sri Lanka" msgid "St. Helena" msgstr "St. Helena" msgid "St. Pierre and Miquelon" msgstr "St. Pierre and Miquelon" msgid "Sudan" msgstr "Sudan" msgid "Summary Period" msgstr "Period sumiranja" msgid "Summary by Month" msgstr "Pregled po mesecima" msgid "Suriname" msgstr "Suriname" msgid "Svalbard and Jan Mayen Islands" msgstr "Svalbard and Jan Mayen Islands" msgid "Swaziland" msgstr "Swaziland" msgid "Sweden" msgstr "Sweden" msgid "Switzerland" msgstr "Switzerland" msgid "Syria" msgstr "Syria" msgid "Taiwan" msgstr "Taiwan" msgid "Tajikistan" msgstr "Tajikistan" msgid "Tanzania" msgstr "Tanzania" msgid "Thailand" msgstr "Thailand" msgid "Togo" msgstr "Togo" msgid "Tokelau" msgstr "Tokelau" msgid "Tonga" msgstr "Tonga" msgid "Top" msgstr "Prvih" msgid "Total" msgstr "Ukupno" msgid "Total Countries" msgstr "zemalja" msgid "Total Entry Pages" msgstr "ulaznih strana" msgid "Total Exit Pages" msgstr "izlaznih strana" msgid "Total Files" msgstr "Ukupno fajlova" msgid "Total Hits" msgstr "Ukupno pristupa" msgid "Total KBytes" msgstr "Ukupno KBajta" msgid "Total Referrers" msgstr "referisanja" msgid "Total Search Strings" msgstr "tekstova pretrazivanja" msgid "Total Sites" msgstr "racunara" msgid "Total URLs" msgstr "URL-ova" msgid "Total Unique Referrers" msgstr "Ukupno razlicitih referisanja" msgid "Total Unique Sites" msgstr "Ukupno razlicitih racunara" msgid "Total Unique URLs" msgstr "Ukupno razlicitih URL-ova" msgid "Total Unique User Agents" msgstr "Ukupno razlicitih browsera" msgid "Total Unique Usernames" msgstr "Ukupno razlicitih korisnickih imena" msgid "Total User Agents" msgstr "korisnickih programa" msgid "Total Usernames" msgstr "korisnickih imena" msgid "Totals" msgstr "Ukupno za sve" msgid "Trinidad and Tobago" msgstr "Trinidad and Tobago" msgid "Tunisia" msgstr "Tunisia" msgid "Turkey" msgstr "Turkey" msgid "Turkmenistan" msgstr "Turkmenistan" msgid "Turks and Caicos Islands" msgstr "Turks and Caicos Islands" msgid "Tuvalu" msgstr "Tuvalu" msgid "URL" msgstr "URL" msgid "URLs" msgstr "URL-ovi" msgid "US Commercial" msgstr "SAD komercijalni - (com)" msgid "US Educational" msgstr "SAD obrazovni (edu)" msgid "US Government" msgstr "SAD vlada (gov)" msgid "US Military" msgstr "SAD vojni (mil)" msgid "US Minor Outlying Islands" msgstr "US Minor Outlying Islands" msgid "USSR (former)" msgstr "USSR (former)" msgid "Uganda" msgstr "Uganda" msgid "Ukraine" msgstr "Ukraine" msgid "Undefined response code" msgstr "Undefined response code" msgid "United Arab Emirates" msgstr "United Arab Emirates" msgid "United Kingdom" msgstr "United Kingdom" msgid "United States" msgstr "United States" msgid "Unresolved/Unknown" msgstr "Nedefinisano/Nepoznato" msgid "Uruguay" msgstr "Uruguay" msgid "Usage" msgstr "Usage" msgid "Usage Statistics for" msgstr "Statistika pristupa za" msgid "Usage by Country for" msgstr "Pristup po zemljama za" msgid "Usage summary for" msgstr "Pregled pristupa za" msgid "User Agent" msgstr "Korisnicki program" msgid "Username" msgstr "Korisnik" msgid "Users" msgstr "Korisnici" msgid "Using DNS cache file" msgstr "Using DNS cache file" msgid "Using logfile" msgstr "Using logfile" msgid "Uzbekistan" msgstr "Uzbekistan" msgid "Vanuatu" msgstr "Vanuatu" msgid "Vatican City State (Holy See)" msgstr "Vatican City State (Holy See)" msgid "Venezuela" msgstr "Venezuela" msgid "Viet Nam" msgstr "Viet Nam" msgid "View All Referrers" msgstr "Pregled svih referisanja" msgid "View All Search Strings" msgstr "Pregled svih tekstova pretrazivanja" msgid "View All Sites" msgstr "Pregled svih racunara" msgid "View All URLs" msgstr "Pregled svih URL-ova" msgid "View All User Agents" msgstr "Pregled svih korisnickih programa" msgid "View All Usernames" msgstr "Pregled svih korisnickih imena" msgid "Virgin Islands (British)" msgstr "Virgin Islands (British)" msgid "Virgin Islands (U.S.)" msgstr "Virgin Islands (U.S.)" msgid "Visits" msgstr "Poseta" msgid "Visits per Day" msgstr "Poseta na dan" msgid "Wallis and Futuna Islands" msgstr "Wallis and Futuna Islands" msgid "Warning: Invalid keyword" msgstr "Warning: Invalid keyword" msgid "Warning: Possible duplicate data found" msgstr "Warning: Possible duplicate data found" msgid "Warning: String exceeds storage size" msgstr "Warning: String exceeds storage size" msgid "Warning: Truncating oversized date field" msgstr "Warning: Truncating oversized date field" msgid "Warning: Truncating oversized hostname" msgstr "Warning: Truncating oversized hostname" msgid "Warning: Truncating oversized referrer field" msgstr "Warning: Truncating oversized referrer field" msgid "Warning: Truncating oversized request field" msgstr "Warning: Truncating oversized request field" msgid "Warning: Truncating oversized username" msgstr "Warning: Truncating oversized username" msgid "Western Sahara" msgstr "Western Sahara" msgid "Yemen" msgstr "Yemen" msgid "Yugoslavia" msgstr "Yugoslavia" msgid "Zaire" msgstr "Zaire" msgid "Zambia" msgstr "Zambia" msgid "Zimbabwe" msgstr "Zimbabwe" msgid "[options] [log file]" msgstr "[options] [log file]" msgid "addresses" msgstr "addresses" msgid "bad" msgstr "bad" msgid "current directory" msgstr "current directory" msgid "ignored" msgstr "ignored" msgid "in" msgstr "in" msgid "of" msgstr "od" msgid "records" msgstr "records" msgid "seconds" msgstr "seconds" webdruid-0.5.4.orig/po/ml.po0000644000000000000000000006505510066113350015616 0ustar rootroot00000000000000msgid "" msgstr "" "Project-Id-Version: 1.0\n" "PO-Revision-Date: 2003-05-25 23:29+0200\n" "Last-Translator: Johan Poirier \n" "Language-Team: French \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=ISO-8859-1\n" "Content-Transfer-Encoding: 8bit" msgid "-A num = Display num top agents" msgstr "-A num = Paparkan bilangan agen terbaik" msgid "-C num = Display num top countries" msgstr "-C num = Paparkan bilangan negara terbaik" msgid "-D name = Use DNS Cache file 'name'" msgstr "-D name = Gunakan fail cache DNS ini" msgid "-E num = Display num top Exit Pages" msgstr "-E num = Paparkan bilangan Hamalan Keluar yang terbaik" msgid "-F type = Log type. type= (clf | ftp | squid)" msgstr "-F type = jenis Log. jenis= (clf | ftp | squid)" msgid "-G = supress hourly graph" msgstr "-G = abaikan graf ikut jam" msgid "-H = supress hourly stats" msgstr "-H = abaikan statistik ikut jam" msgid "-I name = Index alias 'name'" msgstr "-I name = Nama lain bagi fail Index" msgid "-L = supress color coded graph legends" msgstr "-L = abaikan graf yang berdasarkan petunjuk warna" msgid "-N num = Number of DNS processes (0=disable)" msgstr "-N num = Nombor proses bagi DNS (0=abaikan)" msgid "-P name = Page type extension 'name'" msgstr "-P name = Jenis pengakhir bagi nama fail ini" msgid "-Q = supress _ALL_ messages" msgstr "-Q = abaikan _SEMUA_ mesej" msgid "-R num = Display num top referrers" msgstr "-R num = Paparkan bilangan perujuk terbaik" msgid "-S num = Display num top sites" msgstr "-S num = Paparkan bilangan halaman terbaik" msgid "-T = print timing information" msgstr "-T = cetak maklumat berkenaan masa jangkaan" msgid "-U num = Display num top URLs" msgstr "-U num = Paparkan bilangan URL terbaik" msgid "-X = Hide individual sites" msgstr "-X = Sorokkan halaman individu ini" msgid "-Y = supress country graph" msgstr "-Y = abaikan graf negara" msgid "-a name = hide user agent 'name'" msgstr "-a name = sorokkan nama agen pengguna" msgid "-c file = use configuration file 'file'" msgstr "-c file = gunakan fail konfigurasi ini" msgid "-d = print additional debug info" msgstr "-d = cetak maklumat tambahan berkenaan dengan debug" msgid "-e num = Display num top Entry Pages" msgstr "-e num = Paparkan bilangan Halaman Utama yang terbaik" msgid "-f = Fold sequence errors" msgstr "-f = Alas turutan ralat" msgid "-g num = Group Domains to 'num' levels" msgstr "-g num = Kumpulkan tahap Domain kepada" msgid "-h = print this help message" msgstr "-h = cetak mesej pertolongan ini" msgid "-i = ignore history file" msgstr "-i = abaikan fail terdahulu" msgid "-l num = use num background lines on graph" msgstr "-l num = gunakan sejumlah garisan latarbelakang pada graf" msgid "-m num = Visit timout value (seconds)" msgstr "-m num = Nilai masa tamat untuk Lawatan (dalam saat)" msgid "-n name = hostname to use" msgstr "-n name = gunakan nama hos ini" msgid "-o dir = output directory to use" msgstr "-o dir = gunakan direktori ini untuk hasil janaan" msgid "-p = preserve state (incremental)" msgstr "-p = kekalkan keadaan (secara menaik)" msgid "-q = supress informational messages" msgstr "-q = abaikan maklumat mesej" msgid "-r name = hide referrer 'name'" msgstr "-r name = sorokkan nama perujuk" msgid "-s name = hide site 'name'" msgstr "-s name = sorokkan nama halaman" msgid "-t name = report title 'name'" msgstr "-t name = nama laporan" msgid "-u name = hide URL 'name'" msgstr "-u name = sorokkan nama URL" msgid "-v -V = print version information" msgstr "-v -V = cetak maklumat versi" msgid "-x name = Use filename extension 'name'" msgstr "-x name = gunakan pengakhir ini bagi nama fail" msgid "Afghanistan" msgstr "Afghanistan" msgid "Agents" msgstr "Agen" msgid "Albania" msgstr "Albania" msgid "Algeria" msgstr "Algeria" msgid "American Samoa" msgstr "American Samoa" msgid "Andorra" msgstr "Andorra" msgid "Angola" msgstr "Angola" msgid "Anguilla" msgstr "Anguilla" msgid "Antarctica" msgstr "Antarctica" msgid "Antigua and Barbuda" msgstr "Antigua and Barbuda" msgid "Apr" msgstr "Apr" msgid "April" msgstr "April" msgid "Argentina" msgstr "Argentina" msgid "Armenia" msgstr "Armenia" msgid "Aruba" msgstr "Aruba" msgid "Aug" msgstr "Ogo" msgid "August" msgstr "Ogos" msgid "Australia" msgstr "Australia" msgid "Austria" msgstr "Austria" msgid "Avg" msgstr "Purata" msgid "Azerbaijan" msgstr "Azerbaijan" msgid "Bahamas" msgstr "Bahamas" msgid "Bahrain" msgstr "Bahrain" msgid "Bangladesh" msgstr "Bangladesh" msgid "Barbados" msgstr "Barbados" msgid "Belarus" msgstr "Belarus" msgid "Belgium" msgstr "Belgium" msgid "Belize" msgstr "Belize" msgid "Benin" msgstr "Benin" msgid "Bermuda" msgstr "Bermuda" msgid "Bhutan" msgstr "Bhutan" msgid "Bolivia" msgstr "Bolivia" msgid "Bosnia and Herzegovina" msgstr "Bosnia and Herzegovina" msgid "Botswana" msgstr "Botswana" msgid "Bouvet Island" msgstr "Bouvet Island" msgid "Brazil" msgstr "Brazil" msgid "British Indian Ocean Territory" msgstr "British Indian Ocean Territory" msgid "Brunei Darussalam" msgstr "Brunei Darussalam" msgid "Bulgaria" msgstr "Bulgaria" msgid "Burkina Faso" msgstr "Burkina Faso" msgid "Burundi" msgstr "Burundi" msgid "By" msgstr "Ikut" msgid "Cambodia" msgstr "Cambodia" msgid "Cameroon" msgstr "Cameroon" msgid "Can't allocate enough memory, Top Countries disabled!" msgstr "Tidak dapat memperuntukkan ingatan, Negara Terbaik diabaikan!" msgid "Can't allocate enough memory, Top Referrers disabled!" msgstr "Tidak dapat memperuntukkan ingatan, Perujuk Terbaik diabaikan!" msgid "Can't allocate enough memory, Top Search Strings disabled!" msgstr "Tidak dapat memperuntukkan ingatan, Katakunci Carian Terbaik diabaikan!" msgid "Can't allocate enough memory, Top Sites disabled!" msgstr "Tidak dapat memperuntukkan ingatan, Halaman Terbaik diabaikan!" msgid "Can't allocate enough memory, Top URLs disabled!" msgstr "Tidak dapat memperuntukkan ingatan, URL Terbaik diabaikan!" msgid "Can't allocate enough memory, Top User Agents disabled!" msgstr "Tidak dapat memperuntukkan ingatan, Agen Pengguna Terbaik diabaikan!" msgid "Can't allocate enough memory, Top Usernames disabled!" msgstr "Tidak dapat memperuntukkan ingatan, Katanama Pengguna Terbaik diabaikan!" msgid "Canada" msgstr "Canada" msgid "Cape Verde" msgstr "Cape Verde" msgid "Cayman Islands" msgstr "Cayman Islands" msgid "Central African Republic" msgstr "Republik Tengah Afrika" msgid "Chad" msgstr "Chad" msgid "Chile" msgstr "Chile" msgid "China" msgstr "China" msgid "Christmas Island" msgstr "Christmas Island" msgid "Cocos (Keeling) Islands" msgstr "Pulau Cocos (Keeling)" msgid "Code 100 - Continue" msgstr "Code 100 - Teruskan" msgid "Code 101 - Switching Protocols" msgstr "Code 101 - Bertukar Protokol" msgid "Code 200 - OK" msgstr "Code 200 - OK" msgid "Code 201 - Created" msgstr "Code 201 - Dihasilkan" msgid "Code 202 - Accepted" msgstr "Code 202 - Diterima" msgid "Code 203 - Non-Authoritative Information" msgstr "Code 203 - Maklumat yang tidak dapat disahkan" msgid "Code 204 - No Content" msgstr "Code 204 - Maklumat Tiada" msgid "Code 205 - Reset Content" msgstr "Code 205 - Maklumat diset semula" msgid "Code 206 - Partial Content" msgstr "Code 206 - Maklumat tidak lengkap" msgid "Code 300 - Multiple Choices" msgstr "Code 300 - Pilihan Pelbagai" msgid "Code 301 - Moved Permanently" msgstr "Code 301 - Telah berpindah secara tetap" msgid "Code 302 - Found" msgstr "Code 302 - Dijumpai" msgid "Code 303 - See Other" msgstr "Code 303 - Lihat yang lain" msgid "Code 304 - Not Modified" msgstr "Code 304 - Tidak Diubah" msgid "Code 305 - Use Proxy" msgstr "Code 305 - Gunakan Proxy" msgid "Code 307 - Moved Temporarily" msgstr "Code 307 - Telah berpindah sementara" msgid "Code 400 - Bad Request" msgstr "Code 400 - Permintaan Salah" msgid "Code 401 - Unauthorized" msgstr "Code 401 - Tidak dibenarkan" msgid "Code 402 - Payment Required" msgstr "Code 402 - Bayaran diperlukan" msgid "Code 403 - Forbidden" msgstr "Code 403 - Capaian Disekat" msgid "Code 404 - Not Found" msgstr "Code 404 - Tidak Dijumpai" msgid "Code 405 - Method Not Allowed" msgstr "Code 405 - Method Tidak Dibenarkan" msgid "Code 406 - Not Acceptable" msgstr "Code 406 - Tidak Boleh Diterima" msgid "Code 407 - Proxy Authentication Required" msgstr "Code 407 - Pengesahan Proxy Diperlukan" msgid "Code 408 - Request Timeout" msgstr "Code 408 - Masa Permintaan Tamat" msgid "Code 409 - Conflict" msgstr "Code 409 - Konflik" msgid "Code 410 - Gone" msgstr "Code 410 - Hilang" msgid "Code 411 - Length Required" msgstr "Code 411 - Panjang Diperlukan" msgid "Code 412 - Precondition Failed" msgstr "Code 412 - Keadaan Awal Gagal" msgid "Code 413 - Request Entity Too Large" msgstr "Code 413 - Permintaan Entiti Terlalu Besar" msgid "Code 414 - Request-URI Too Long" msgstr "Code 414 - Permintaan URI Terlalu Panjang" msgid "Code 415 - Unsupported Media Type" msgstr "Code 415 - Jenis Media Tidak Disokong" msgid "Code 416 - Requested Range Not Satisfiable" msgstr "Code 416 - Julat Permintaan Tidak Dibenarkan" msgid "Code 417 - Expectation Failed" msgstr "Code 417 - Anggapan Gagal" msgid "Code 500 - Internal Server Error" msgstr "Code 500 - Ralat Dalaman Bagi Pelayan" msgid "Code 501 - Not Implemented" msgstr "Code 501 - Tidak Diimplemen" msgid "Code 502 - Bad Gateway" msgstr "Code 502 - Gateway Gagal" msgid "Code 503 - Service Unavailable" msgstr "Code 503 - Perkhidmatan Tiada" msgid "Code 504 - Gateway Timeout" msgstr "Code 504 - Masa Tamat Bagi Gateway" msgid "Code 505 - HTTP Version Not Supported" msgstr "Code 505 - Versi HTTP Tidak Disokong" msgid "Colombia" msgstr "Colombia" msgid "Comoros" msgstr "Comoros" msgid "Congo" msgstr "Congo" msgid "Cook Islands" msgstr "Cook Islands" msgid "Costa Rica" msgstr "Costa Rica" msgid "Cote D'Ivoire (Ivory Coast)" msgstr "Cote D'Ivoire (Ivory Coast)" msgid "Countries" msgstr "Negara" msgid "Country" msgstr "Negara" msgid "Creating output in" msgstr "Menjana hasil di dalam" msgid "Croatia (Hrvatska)" msgstr "Croatia (Hrvatska)" msgid "Cuba" msgstr "Cuba" msgid "Cyprus" msgstr "Cyprus" msgid "Czech Republic" msgstr "Czech Republic" msgid "Czechoslovakia (former)" msgstr "Czechoslovakia (bekas)" msgid "DNS Lookup" msgstr "Carian DNS" msgid "Daily Avg" msgstr "Purata harian" msgid "Daily Statistics" msgstr "Statistik Harian" msgid "Daily Statistics for" msgstr "Statistik Harian untuk" msgid "Daily usage for" msgstr "Pengunaan Harian bagi" msgid "Day" msgstr "Hari" msgid "Dec" msgstr "Dis" msgid "December" msgstr "Disember" msgid "Denmark" msgstr "Denmark" msgid "Djibouti" msgstr "Djibouti" msgid "Dominica" msgstr "Dominica" msgid "Dominican Republic" msgstr "Dominican Republic" msgid "East Timor" msgstr "East Timor" msgid "Ecuador" msgstr "Ecuador" msgid "Egypt" msgstr "Egypt" msgid "El Salvador" msgstr "El Salvador" msgid "English" msgstr "Malay" msgid "Entry" msgstr "Masuk dari" msgid "Equatorial Guinea" msgstr "Equatorial Guinea" msgid "Eritrea" msgstr "Eritrea" msgid "Error adding Referrer node, skipping" msgstr "Ralat untuk menambah nod Perujuk, proses diabaikan" msgid "Error adding Search String Node, skipping" msgstr "Ralat untuk menambah nod Katakunci Carian, proses diabaikan" msgid "Error adding URL node, skipping" msgstr "Ralat untuk menambah nod URL, proses diabaikan" msgid "Error adding User Agent node, skipping" msgstr "Ralat untuk menambah nod Agen Pengguna, proses diabaikan" msgid "Error adding Username node, skipping" msgstr "Ralat untuk menambah nod Katanama Pengguna, proses diabaikan" msgid "Error adding host node (daily), skipping" msgstr "Ralat untuk menambah nod hos (harian), proses diabaikan" msgid "Error adding host node (monthly), skipping" msgstr "Ralat untuk menambah nod hos (bulanan), proses diabaikan" msgid "Error: Can't change directory to" msgstr "Ralat: Saya tidak dapat menukar ke direktori" msgid "Error: Can't open log file" msgstr "Ralat: Saya rasa log fail anda tiada" msgid "Error: Ignoring invalid history record" msgstr "Ralat: Saya mengabaikan rekod terdahulu yang rosak" msgid "Error: Skipping oversized log record" msgstr "Ralat: Rekod log anda terlalu besar, proses diabaikan" msgid "Error: Skipping record (bad date)" msgstr "Ralat: Satu rekod diabaikan (tarikh salah)" msgid "Error: Unable to lock DNS cache file" msgstr "Ralat: Saya tidak dapat mengunci fail cache DNS" msgid "Error: Unable to open DNS cache file" msgstr "Ralat: Saya tidak dapat membuka fail cache DNS" msgid "Error: Unable to open configuration file" msgstr "Ralat: Saya tidak dapat membuka fail konfigurasi" msgid "Error: Unable to open file" msgstr "Ralat: Tidak dapat membuka fail" msgid "Error: Unable to restore run data" msgstr "Ralat: Saya tidak dapat mengambil-semula data larian" msgid "Error: Unable to save current run data" msgstr "Ralat: Saya tidak dapat menyimpan data larian" msgid "Error: Unable to write history file" msgstr "Ralat: Saya tidak dapat menyimpan fail terdahulu" msgid "Estonia" msgstr "Estonia" msgid "Ethiopia" msgstr "Ethiopia" msgid "Exit" msgstr "Keluar dari" msgid "Falkland Islands (Malvinas)" msgstr "Falkland Islands (Malvinas)" msgid "Faroe Islands" msgstr "Faroe Islands" msgid "Feb" msgstr "Feb" msgid "February" msgstr "Februari" msgid "Fiji" msgstr "Fiji" msgid "Files" msgstr "Fail" msgid "Files per Day" msgstr "Purata Fail Sehari" msgid "Finland" msgstr "Finland" msgid "France" msgstr "France" msgid "France; Metropolitan" msgstr "France, Metropolitan" msgid "French Guiana" msgstr "French Guiana" msgid "French Polynesia" msgstr "French Polynesia" msgid "French Southern Territories" msgstr "French Southern Territories" msgid "Gabon" msgstr "Gabon" msgid "Gambia" msgstr "Gambia" msgid "Generated" msgstr "Dijanakan" msgid "Generating report for" msgstr "Menjana laporan untuk" msgid "Generating summary report" msgstr "Menjana ringkasan laporan" msgid "Georgia" msgstr "Georgia" msgid "Germany" msgstr "Germany" msgid "Ghana" msgstr "Ghana" msgid "Gibraltar" msgstr "Gibraltar" msgid "Great Britain (UK)" msgstr "Great Britain (UK)" msgid "Greece" msgstr "Greece" msgid "Greenland" msgstr "Greenland" msgid "Grenada" msgstr "Grenada" msgid "Guadeloupe" msgstr "Guadeloupe" msgid "Guam" msgstr "Guam" msgid "Guatemala" msgstr "Guatemala" msgid "Guinea" msgstr "Guinea" msgid "Guinea-Bissau" msgstr "Guinea-Bissau" msgid "Guyana" msgstr "Guyana" msgid "Haiti" msgstr "Haiti" msgid "Heard and McDonald Islands" msgstr "Heard and McDonald Islands" msgid "History file not found..." msgstr "Fail terdahulu tiada..." msgid "Hits" msgstr "Capaian" msgid "Hits by Response Code" msgstr "Purata Capaian mengikut Kod Respon" msgid "Hits per Day" msgstr "Purata Capaian Sehari" msgid "Hits per Hour" msgstr "Purata Capaian Sejam" msgid "Honduras" msgstr "Honduras" msgid "Hong Kong" msgstr "Hong Kong" msgid "Hostname" msgstr "Nama Hos" msgid "Hostname for reports is" msgstr "Nama Host untuk laporan ini ialah" msgid "Hour" msgstr "Jam" msgid "Hourly Statistics" msgstr "Statistik ikut Jam" msgid "Hourly Statistics for" msgstr "Statistik mengikut Jam bagi" msgid "Hourly usage for" msgstr "Pengunaan ikut Jam bagi" msgid "Hungary" msgstr "Hungary" msgid "Iceland" msgstr "Iceland" msgid "Ignoring previous history..." msgstr "Mengabaikan fail terdahulu..." msgid "India" msgstr "India" msgid "Indonesia" msgstr "Indonesia" msgid "International (int)" msgstr "Antarabangsa (int)" msgid "Iran" msgstr "Iran" msgid "Iraq" msgstr "Iraq" msgid "Ireland" msgstr "Ireland" msgid "Israel" msgstr "Israel" msgid "Italy" msgstr "Italy" msgid "Jamaica" msgstr "Jamaica" msgid "Jan" msgstr "Jan" msgid "January" msgstr "Januari" msgid "Japan" msgstr "Japan" msgid "Jordan" msgstr "Jordan" msgid "Jul" msgstr "Jul" msgid "July" msgstr "July" msgid "Jun" msgstr "Jun" msgid "June" msgstr "Jun" msgid "KBytes" msgstr "KBait" msgid "KBytes per Day" msgstr "Purata KBait Sehari" msgid "Kazakhstan" msgstr "Kazakhstan" msgid "Kenya" msgstr "Kenya" msgid "Kiribati" msgstr "Kiribati" msgid "Korea (North)" msgstr "Korea (North)" msgid "Korea (South)" msgstr "Korea (South)" msgid "Kuwait" msgstr "Kuwait" msgid "Kyrgyzstan" msgstr "Kyrgyzstan" msgid "Laos" msgstr "Laos" msgid "Last 12 Months" msgstr "12 bulan yang lepas" msgid "Latvia" msgstr "Latvia" msgid "Lebanon" msgstr "Lebanon" msgid "Lesotho" msgstr "Lesotho" msgid "Liberia" msgstr "Liberia" msgid "Libya" msgstr "Libya" msgid "Liechtenstein" msgstr "Liechtenstein" msgid "Lithuania" msgstr "Lithuania" msgid "Luxembourg" msgstr "Luxembourg" msgid "Macau" msgstr "Macau" msgid "Macedonia" msgstr "Macedonia" msgid "Madagascar" msgstr "Madagascar" msgid "Malawi" msgstr "Malawi" msgid "Malaysia" msgstr "Malaysia" msgid "Maldives" msgstr "Maldives" msgid "Mali" msgstr "Mali" msgid "Malta" msgstr "Malta" msgid "Mar" msgstr "Mar" msgid "March" msgstr "March" msgid "Marshall Islands" msgstr "Marshall Islands" msgid "Martinique" msgstr "Martinique" msgid "Mauritania" msgstr "Mauritania" msgid "Mauritius" msgstr "Mauritius" msgid "Max" msgstr "Maksima" msgid "May" msgstr "Mei" msgid "Mayotte" msgstr "Mayotte" msgid "Mexico" msgstr "Mexico" msgid "Micronesia" msgstr "Micronesia" msgid "Moldova" msgstr "Moldova" msgid "Monaco" msgstr "Monaco" msgid "Mongolia" msgstr "Mongolia" msgid "Month" msgstr "Bulan" msgid "Monthly Statistics for" msgstr "Statistik Bulanan Untuk" msgid "Monthly Totals" msgstr "Jumlah Bulanan" msgid "Montserrat" msgstr "Montserrat" msgid "Morocco" msgstr "Morocco" msgid "Mozambique" msgstr "Mozambique" msgid "Myanmar" msgstr "Myanmar" msgid "Namibia" msgstr "Namibia" msgid "Nato field (nato)" msgstr "Nato field (nato)" msgid "Nauru" msgstr "Nauru" msgid "Nepal" msgstr "Nepal" msgid "Netherlands" msgstr "Netherlands" msgid "Netherlands Antilles" msgstr "Netherlands Antilles" msgid "Network" msgstr "Rangkaian" msgid "Neutral Zone" msgstr "Neutral Zone" msgid "New Caledonia" msgstr "New Caledonia" msgid "New Zealand (Aotearoa)" msgstr "New Zealand (Aotearoa)" msgid "Nicaragua" msgstr "Nicaragua" msgid "Niger" msgstr "Niger" msgid "Nigeria" msgstr "Nigeria" msgid "Niue" msgstr "Niue" msgid "No cache file specified, aborting..." msgstr "Fail cache tidak dinyatakan, proses dibatalkan..." msgid "No valid records found!" msgstr "Tiada rekod sah dijumpai!" msgid "Non-Profit Organization" msgstr "Organisasi Tidak Komersil" msgid "None to process" msgstr "Tiada apa untuk diproses" msgid "Norfolk Island" msgstr "Norfolk Island" msgid "Northern Mariana Islands" msgstr "Northern Mariana Islands" msgid "Norway" msgstr "Norway" msgid "Nov" msgstr "Nov" msgid "November" msgstr "November" msgid "Oct" msgstr "Okt" msgid "October" msgstr "Oktober" msgid "Old style Arpanet (arpa)" msgstr "Gaya Lama Arpanet (arpa)" msgid "Oman" msgstr "Oman" msgid "Other" msgstr "Lain-lain" msgid "Pages" msgstr "Muka" msgid "Pages per Day" msgstr "Purata Halaman Sehari" msgid "Pakistan" msgstr "Pakistan" msgid "Palau" msgstr "Palau" msgid "Panama" msgstr "Panama" msgid "Papua New Guinea" msgstr "Papua New Guinea" msgid "Paraguay" msgstr "Paraguay" msgid "Peru" msgstr "Peru" msgid "Philippines" msgstr "Philippines" msgid "Pitcairn" msgstr "Pitcairn" msgid "Poland" msgstr "Poland" msgid "Portugal" msgstr "Portugal" msgid "Previous run data not found..." msgstr "Data larian terdahulu tidak dijumpai..." msgid "Puerto Rico" msgstr "Puerto Rico" msgid "Qatar" msgstr "Qatar" msgid "Reading history file..." msgstr "Baca fail terdahulu..." msgid "Reading previous run data..." msgstr "Membaca data larian terdahulu.." msgid "Referrer" msgstr "Perujuk" msgid "Referrers" msgstr "Perujuk" msgid "Reunion" msgstr "Reunion" msgid "Romania" msgstr "Romania" msgid "Russian Federation" msgstr "Russian Federation" msgid "Rwanda" msgstr "Rwanda" msgid "S. Georgia and S. Sandwich Isls." msgstr "S. Georgia and S. Sandwich Isls." msgid "Saint Kitts and Nevis" msgstr "Saint Kitts and Nevis" msgid "Saint Lucia" msgstr "Saint Lucia" msgid "Saint Vincent and the Grenadines" msgstr "Saint Vincent and the Grenadines" msgid "Samoa" msgstr "Samoa" msgid "San Marino" msgstr "San Marino" msgid "Sao Tome and Principe" msgstr "Sao Tome and Principe" msgid "Saudi Arabia" msgstr "Saudi Arabia" msgid "Saving current run data..." msgstr "Menimpan data larian terkini..." msgid "Saving history information..." msgstr "Simpan maklumat terdahulu..." msgid "Search" msgstr "Carian" msgid "Search String" msgstr "Perkataan Carian" msgid "Senegal" msgstr "Senegal" msgid "Sep" msgstr "Sep" msgid "September" msgstr "September" msgid "Seychelles" msgstr "Seychelles" msgid "Sierra Leone" msgstr "Sierra Leone" msgid "Singapore" msgstr "Singapore" msgid "Sites" msgstr "Halaman" msgid "Skipping Netscape header record" msgstr "Satu kepala rekod Netscape diabaikan" msgid "Skipping bad record" msgstr "Satu rekod salah diabaikan" msgid "Slovak Republic" msgstr "Slovak Republic" msgid "Slovenia" msgstr "Slovenia" msgid "Solomon Islands" msgstr "Solomon Islands" msgid "Somalia" msgstr "Somalia" msgid "South Africa" msgstr "South Africa" msgid "Spain" msgstr "Spain" msgid "Sri Lanka" msgstr "Sri Lanka" msgid "St. Helena" msgstr "St. Helena" msgid "St. Pierre and Miquelon" msgstr "St. Pierre and Miquelon" msgid "Sudan" msgstr "Sudan" msgid "Summary Period" msgstr "Jangkamasa Ringkasan" msgid "Summary by Month" msgstr "Ringkasan Bulanan" msgid "Suriname" msgstr "Suriname" msgid "Svalbard and Jan Mayen Islands" msgstr "Svalbard and Jan Mayen Islands" msgid "Swaziland" msgstr "Swaziland" msgid "Sweden" msgstr "Sweden" msgid "Switzerland" msgstr "Switzerland" msgid "Syria" msgstr "Syria" msgid "Taiwan" msgstr "Taiwan" msgid "Tajikistan" msgstr "Tajikistan" msgid "Tanzania" msgstr "Tanzania" msgid "Thailand" msgstr "Thailand" msgid "Togo" msgstr "Togo" msgid "Tokelau" msgstr "Tokelau" msgid "Tonga" msgstr "Tonga" msgid "Top" msgstr "Antara" msgid "Total" msgstr "Jumlah" msgid "Total Countries" msgstr "Jumlah Negara" msgid "Total Entry Pages" msgstr "Jumlah Halaman Masukan" msgid "Total Exit Pages" msgstr "Jumlah Halaman Keluar" msgid "Total Files" msgstr "Jumlah Fail" msgid "Total Hits" msgstr "Jumlah Capaian" msgid "Total KBytes" msgstr "Jumlah KBait" msgid "Total Referrers" msgstr "Jumlah Penujuk" msgid "Total Search Strings" msgstr "Jumlah Katakunci Carian" msgid "Total Sites" msgstr "Jumlah Halaman" msgid "Total URLs" msgstr "Jumlah URL" msgid "Total Unique Referrers" msgstr "Jumlah Perujuk Unik" msgid "Total Unique Sites" msgstr "Jumlah Halaman Unik" msgid "Total Unique URLs" msgstr "Jumlah URL unik" msgid "Total Unique User Agents" msgstr "Jumlah Agen Pengguna Unik" msgid "Total Unique Usernames" msgstr "Jumlah Katanama Unik" msgid "Total User Agents" msgstr "Jumlah Agen Pengguna" msgid "Total Usernames" msgstr "Jumlah Katanama" msgid "Totals" msgstr "Jumlah" msgid "Trinidad and Tobago" msgstr "Trinidad and Tobago" msgid "Tunisia" msgstr "Tunisia" msgid "Turkey" msgstr "Turkey" msgid "Turkmenistan" msgstr "Turkmenistan" msgid "Turks and Caicos Islands" msgstr "Turks and Caicos Islands" msgid "Tuvalu" msgstr "Tuvalu" msgid "URL" msgstr "URL" msgid "URLs" msgstr "URL" msgid "US Commercial" msgstr "Komersil US" msgid "US Educational" msgstr "Pendidikan US" msgid "US Government" msgstr "Kerajaan US" msgid "US Military" msgstr "Ketenteraan US" msgid "US Minor Outlying Islands" msgstr "US Minor Outlying Islands" msgid "USSR (former)" msgstr "USSR (former)" msgid "Uganda" msgstr "Uganda" msgid "Ukraine" msgstr "Ukraine" msgid "Undefined response code" msgstr "Kod Respon tidak dapat ditakrif" msgid "United Arab Emirates" msgstr "United Arab Emirates" msgid "United Kingdom" msgstr "United Kingdom" msgid "United States" msgstr "United States" msgid "Unresolved/Unknown" msgstr "Tidak Diketahui" msgid "Uruguay" msgstr "Uruguay" msgid "Usage" msgstr "Penggunaan" msgid "Usage Statistics for" msgstr "Statistik Penggunaan bagi" msgid "Usage by Country for" msgstr "Penggunaan mengikut Negara bagi" msgid "Usage summary for" msgstr "Ringkasan Penggunaan untuk" msgid "User Agent" msgstr "Agen Pengguna" msgid "Username" msgstr "Katanama" msgid "Users" msgstr "Pengguna" msgid "Using DNS cache file" msgstr "Fail cache DNS sedang digunakan" msgid "Using logfile" msgstr "Menggunakan fail log" msgid "Uzbekistan" msgstr "Uzbekistan" msgid "Vanuatu" msgstr "Vanuatu" msgid "Vatican City State (Holy See)" msgstr "Vatican City State (Holy See)" msgid "Venezuela" msgstr "Venezuela" msgid "Viet Nam" msgstr "Viet Nam" msgid "View All Referrers" msgstr "Lihat Semua Penunjuk" msgid "View All Search Strings" msgstr "Lihat Semua Katakunci Carian" msgid "View All Sites" msgstr "Lihat Semua Halaman" msgid "View All URLs" msgstr "Lihat Semua URL" msgid "View All User Agents" msgstr "Lihat Semua Agen Pengguna" msgid "View All Usernames" msgstr "Lihat Semua Katanama" msgid "Virgin Islands (British)" msgstr "Virgin Islands (British)" msgid "Virgin Islands (U.S.)" msgstr "Virgin Islands (U.S.)" msgid "Visits" msgstr "Lawatan" msgid "Visits per Day" msgstr "Purata Lawatan Sehari" msgid "Wallis and Futuna Islands" msgstr "Wallis and Futuna Islands" msgid "Warning: Invalid keyword" msgstr "Amaran: katakunci tidak sah" msgid "Warning: Possible duplicate data found" msgstr "Amaran: Kemungkinan data yang sama dijumpai" msgid "Warning: String exceeds storage size" msgstr "Amaran: Perkataan melebihi saiz simpanan" msgid "Warning: Truncating oversized date field" msgstr "Amaran: Ruangan tarikh yang terlalu panjang telah dipotong" msgid "Warning: Truncating oversized hostname" msgstr "Amaran: Nama hos yang terlalu panjang telah dipotong" msgid "Warning: Truncating oversized referrer field" msgstr "Amaran: Ruangan perujuk yang terlalu panjang telah dipotong" msgid "Warning: Truncating oversized request field" msgstr "Amaran: Ruangan pertanyaan yang terlalu panjang telah dipotong" msgid "Warning: Truncating oversized username" msgstr "Amaran: Katanama yang terlalu panjang telah dipotong" msgid "Western Sahara" msgstr "Western Sahara" msgid "Yemen" msgstr "Yemen" msgid "Yugoslavia" msgstr "Yugoslavia" msgid "Zaire" msgstr "Zaire" msgid "Zambia" msgstr "Zambia" msgid "Zimbabwe" msgstr "Zimbabwe" msgid "[options] [log file]" msgstr "[pilihan] [fail log]" msgid "addresses" msgstr "alamat" msgid "bad" msgstr "rosak" msgid "current directory" msgstr "direktori terkini" msgid "ignored" msgstr "diabaikan" msgid "in" msgstr "dalam" msgid "of" msgstr "yang Terbaik dari" msgid "records" msgstr "rekod" msgid "seconds" msgstr "saat" webdruid-0.5.4.orig/po/cs.po0000644000000000000000000006324310066113350015610 0ustar rootroot00000000000000msgid "" msgstr "" "Project-Id-Version: 1.0\n" "PO-Revision-Date: 2003-05-25 23:29+0200\n" "Last-Translator: Johan Poirier \n" "Language-Team: French \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=ISO-8859-1\n" "Content-Transfer-Encoding: 8bit" msgid "-A num = Display num top agents" msgstr "-R poc = Zobraz 'poc' Nej odkazovacu" msgid "-C num = Display num top countries" msgstr "-S poc = Zobraz 'poc' Nej mist" msgid "-E num = Display num top Exit Pages" msgstr "-X = Skryt jednotlive site" msgid "-F type = Log type. type= (clf | ftp | squid)" msgstr "-F type = typ logu. type= (clf | ftp | squid)" msgid "-G = supress hourly graph" msgstr "-G = potlac hodinovy graf" msgid "-H = supress hourly stats" msgstr "-H = potlac hodinove statistiky" msgid "-I name = Index alias 'name'" msgstr "-C poc = Zobraz 'poc' Nej zemi" msgid "-L = supress color coded graph legends" msgstr "-L = potlac barevne kody v legendach grafu" msgid "-P name = Page type extension 'name'" msgstr "-A poc = Zobraz 'poc' Nej prohlizecu" msgid "-Q = supress _ALL_ messages" msgstr "-Q = potlac VSECHNY zpravy" msgid "-R num = Display num top referrers" msgstr "-U poc = Zobraz 'poc' Nej URL" msgid "-S num = Display num top sites" msgstr "-e poc = Zobraz 'poc' vstupnich stranek" msgid "-T = print timing information" msgstr "-T = vypis casove informace" msgid "-U num = Display num top URLs" msgstr "-E poc = Zobraz 'poc' odchozich stranek" msgid "-X = Hide individual sites" msgstr "-N poc = Pocet DNS procesu (0=zakazat)" msgid "-Y = supress country graph" msgstr "-Y = potlac graf statu" msgid "-a name = hide user agent 'name'" msgstr "-a name = skryj prohlizec 'name'" msgid "-c file = use configuration file 'file'" msgstr "-c file = pouzij konfig. soubor 'file'" msgid "-d = print additional debug info" msgstr "-d = vypis dalsi ladici informace" msgid "-e num = Display num top Entry Pages" msgstr "-g poc = Seskup domeny do 'poc' urovni" msgid "-f = Fold sequence errors" msgstr "-f = chyby v prekladu stranek" msgid "-g num = Group Domains to 'num' levels" msgstr "-D name = Pouzi DNS Cache 'name'" msgid "-h = print this help message" msgstr "-h = vypis tento help" msgid "-i = ignore history file" msgstr "-i = ignoruj soubor historie" msgid "-l num = use num background lines on graph" msgstr "-l poc = pouzij 'num' radek v podkladu grafu" msgid "-m num = Visit timout value (seconds)" msgstr "-m poc = cas pro navstevu (seconds)" msgid "-n name = hostname to use" msgstr "-n name = pouzij jmeno pocitace" msgid "-o dir = output directory to use" msgstr "-o adr = vystupni adresar" msgid "-p = preserve state (incremental)" msgstr "-p = zapamatuj stav (inkrementalne)" msgid "-q = supress informational messages" msgstr "-q = potlac informativni zpravy" msgid "-r name = hide referrer 'name'" msgstr "-r name = skryj odkazovac 'name'" msgid "-s name = hide site 'name'" msgstr "-s name = skryj misto 'name'" msgid "-t name = report title 'name'" msgstr "-t name = nazev sestavy 'name'" msgid "-u name = hide URL 'name'" msgstr "-u name = skryj URL 'name'" msgid "-v -V = print version information" msgstr "-v -V = vypis informaci o verzi" msgid "-x name = Use filename extension 'name'" msgstr "-I name = nazev Index(u) 'name'" msgid "Afghanistan" msgstr "Afghnistn" msgid "Agents" msgstr "Prohlee" msgid "Albania" msgstr "Albnie" msgid "Algeria" msgstr "Alrsko" msgid "American Samoa" msgstr "Americk Samoa" msgid "Andorra" msgstr "Andora" msgid "Angola" msgstr "Angola" msgid "Anguilla" msgstr "Anguilla" msgid "Antarctica" msgstr "Antarktida" msgid "Antigua and Barbuda" msgstr "Antigua a Barbuda" msgid "Apr" msgstr "Dub" msgid "April" msgstr "duben" msgid "Argentina" msgstr "Argentina" msgid "Armenia" msgstr "Armnie" msgid "Aruba" msgstr "Aruba" msgid "Aug" msgstr "Srp" msgid "August" msgstr "srpen" msgid "Australia" msgstr "Austrlie" msgid "Austria" msgstr "Rakousko" msgid "Avg" msgstr "Prm" msgid "Azerbaijan" msgstr "Azerbajdn" msgid "Bahamas" msgstr "Bahamy" msgid "Bahrain" msgstr "Bahrajn" msgid "Bangladesh" msgstr "Banglad" msgid "Barbados" msgstr "Barbados" msgid "Belarus" msgstr "Blorusko" msgid "Belgium" msgstr "Belgie" msgid "Belize" msgstr "Belize" msgid "Benin" msgstr "Benin" msgid "Bermuda" msgstr "Bermuda" msgid "Bhutan" msgstr "Bhtn" msgid "Bolivia" msgstr "Bolvie" msgid "Bosnia and Herzegovina" msgstr "Bosna a Hercegovina" msgid "Botswana" msgstr "Botswana" msgid "Bouvet Island" msgstr "Bouvet Island" msgid "Brazil" msgstr "Brazlie" msgid "British Indian Ocean Territory" msgstr "British Indian Ocean Territory" msgid "Brunei Darussalam" msgstr "Brunei Darussalam" msgid "Bulgaria" msgstr "Bulharsko" msgid "Burkina Faso" msgstr "Burkina Faso" msgid "Burundi" msgstr "Burundi" msgid "By" msgstr "podle" msgid "Cambodia" msgstr "Kamboda" msgid "Cameroon" msgstr "Kamerun" msgid "Can't allocate enough memory, Top Countries disabled!" msgstr "Nemohu alokovat dost pameti, Nej zeme jsou nefunkcni!" msgid "Can't allocate enough memory, Top Referrers disabled!" msgstr "Nemohu alokovat dost pameti, Nej odkazovace jsou nefunkcni!" msgid "Can't allocate enough memory, Top Search Strings disabled!" msgstr "Nemohu alokovat dost pameti, Nej hledane retezce jsou nefunkcni!" msgid "Can't allocate enough memory, Top Sites disabled!" msgstr "Nemohu alokovat dost pameti, Nej mista jsou nefunkcni!" msgid "Can't allocate enough memory, Top URLs disabled!" msgstr "Nemohu alokovat dost pameti, Nej URL jsou nefunkcni!" msgid "Can't allocate enough memory, Top User Agents disabled!" msgstr "Nemohu alokovat dost pameti, Nej prohlizece jsou nefunkcni!" msgid "Can't allocate enough memory, Top Usernames disabled!" msgstr "Nemohu alokovat dost pameti, Nej uzivatele jsou nefunkcni!" msgid "Canada" msgstr "Kanada" msgid "Cape Verde" msgstr "Cape Verde" msgid "Cayman Islands" msgstr "Kajmansk ostrovy" msgid "Central African Republic" msgstr "Stedoafrick republika" msgid "Chad" msgstr "ad" msgid "Chile" msgstr "Chile" msgid "China" msgstr "Cina" msgid "Christmas Island" msgstr "Vnon ostrovy" msgid "Cocos (Keeling) Islands" msgstr "Kokosov (Keelingovy) ostrovy" msgid "Code 100 - Continue" msgstr "Kd 100 - Pokraovat" msgid "Code 101 - Switching Protocols" msgstr "Kd 101 - Pepnn protokol" msgid "Code 200 - OK" msgstr "Kd 200 - OK" msgid "Code 201 - Created" msgstr "Kd 201 - Vytvoeno" msgid "Code 202 - Accepted" msgstr "Kd 202 - Pijato" msgid "Code 203 - Non-Authoritative Information" msgstr "Kd 203 - Neautoritativn informace" msgid "Code 204 - No Content" msgstr "Kd 204 - dn obsah" msgid "Code 205 - Reset Content" msgstr "Kd 205 - Obnovit obsah" msgid "Code 206 - Partial Content" msgstr "Kd 206 - sten obsah" msgid "Code 300 - Multiple Choices" msgstr "Kd 300 - Vcensobn volby" msgid "Code 301 - Moved Permanently" msgstr "Kd 301 - Pesunuto trvale" msgid "Code 302 - Found" msgstr "Kd 302 - Ptomno" msgid "Code 303 - See Other" msgstr "Kd 303 - Viz dal" msgid "Code 304 - Not Modified" msgstr "Kd 304 - Nezmnno" msgid "Code 305 - Use Proxy" msgstr "Kd 305 - Pouij proxy" msgid "Code 307 - Moved Temporarily" msgstr "Kd 307 - Pesunuto doasn" msgid "Code 400 - Bad Request" msgstr "Kd 400 - patn poadavek" msgid "Code 401 - Unauthorized" msgstr "Kd 401 - Neautorizovn" msgid "Code 402 - Payment Required" msgstr "Kd 402 - Vyadovna platba" msgid "Code 403 - Forbidden" msgstr "Kd 403 - Zakzno" msgid "Code 404 - Not Found" msgstr "Kd 404 - Nenalezeno" msgid "Code 405 - Method Not Allowed" msgstr "Kd 405 - Nepovolen Metoda" msgid "Code 406 - Not Acceptable" msgstr "Kd 406 - Neppustn" msgid "Code 407 - Proxy Authentication Required" msgstr "Kd 407 - Vyadovna autentikace proxy" msgid "Code 408 - Request Timeout" msgstr "Kd 408 - Pekroen asov limit" msgid "Code 409 - Conflict" msgstr "Kd 409 - Konflikt" msgid "Code 410 - Gone" msgstr "Kd 410 - Zrueno" msgid "Code 411 - Length Required" msgstr "Kd 411 - dost o dlku" msgid "Code 412 - Precondition Failed" msgstr "Kd 412 - Podmnka nesplnna" msgid "Code 413 - Request Entity Too Large" msgstr "Kd 413 - Poadavek je pli velk" msgid "Code 414 - Request-URI Too Long" msgstr "Kd 414 - URI je pli dlouh" msgid "Code 415 - Unsupported Media Type" msgstr "Kd 415 - Nepodporovan typ mdia" msgid "Code 416 - Requested Range Not Satisfiable" msgstr "Kd 416 - Poadovan rozsah neodpovd" msgid "Code 417 - Expectation Failed" msgstr "Kd 417 - Oekvn selhalo" msgid "Code 500 - Internal Server Error" msgstr "Kd 500 - Intenrn chyba serveru" msgid "Code 501 - Not Implemented" msgstr "Kd 501 - Nezavedeno" msgid "Code 502 - Bad Gateway" msgstr "Kd 502 - patn brna" msgid "Code 503 - Service Unavailable" msgstr "Kd 503 - Sluba nedostupn" msgid "Code 504 - Gateway Timeout" msgstr "Kd 504 - Brna neodpovdla" msgid "Code 505 - HTTP Version Not Supported" msgstr "Kd 505 - Nepodporovan verze HTTP" msgid "Colombia" msgstr "Kolumbie" msgid "Comoros" msgstr "Komory" msgid "Congo" msgstr "Kongo" msgid "Cook Islands" msgstr "Cookovy ostrovy" msgid "Costa Rica" msgstr "Kostarika" msgid "Cote D'Ivoire (Ivory Coast)" msgstr "Pobe slonoviny" msgid "Countries" msgstr "Zem" msgid "Country" msgstr "Zem" msgid "Creating output in" msgstr "Vytvarim vystup v" msgid "Croatia (Hrvatska)" msgstr "Chorvatsko" msgid "Cuba" msgstr "Kuba" msgid "Cyprus" msgstr "Kypr" msgid "Czech Republic" msgstr "esk republika" msgid "Czechoslovakia (former)" msgstr "eskoslovensko" msgid "DNS Lookup" msgstr "DNS Kontrola" msgid "Daily Avg" msgstr "Denn prmr" msgid "Daily Statistics" msgstr "Denn statistiky" msgid "Daily Statistics for" msgstr "Denn statistiky za" msgid "Daily usage for" msgstr "Denn vyuit za" msgid "Day" msgstr "Den" msgid "Dec" msgstr "Pro" msgid "December" msgstr "prosinec" msgid "Denmark" msgstr "Dnsko" msgid "Djibouti" msgstr "Dibuti" msgid "Dominica" msgstr "Dominica" msgid "Dominican Republic" msgstr "Dominiknsk republika" msgid "East Timor" msgstr "Vchodn Timur" msgid "Ecuador" msgstr "Ekvdor" msgid "Egypt" msgstr "Egypt" msgid "El Salvador" msgstr "Salvdor" msgid "English" msgstr "Czech" msgid "Entry" msgstr "Vstupy" msgid "Equatorial Guinea" msgstr "Rovnkov Guinea" msgid "Eritrea" msgstr "Eritrea" msgid "Error adding Referrer node, skipping" msgstr "Chyba doplneni bloku odkazovace, preskakuji" msgid "Error adding Search String Node, skipping" msgstr "Chyba doplneni hledanych retezcu, preskakuji" msgid "Error adding URL node, skipping" msgstr "Chyba doplneni bloku URL, preskakuji" msgid "Error adding User Agent node, skipping" msgstr "Chyba doplneni bloku prohlizece, preskakuji" msgid "Error adding Username node, skipping" msgstr "Chyba doplneni uzivatelu, preskakuji" msgid "Error adding host node (daily), skipping" msgstr "Chyba doplneni bloku pocitace (denni), preskakuji" msgid "Error adding host node (monthly), skipping" msgstr "Chyba doplneni bloku pocitace (mesicni), preskakuji" msgid "Error: Can't change directory to" msgstr "Chyba: Nemohu prejit do adresare" msgid "Error: Can't open log file" msgstr "Chyba: Nemohu otevrit log soubor" msgid "Error: Ignoring invalid history record" msgstr "Chyba: Ignoruji chybny zaznam v historii" msgid "Error: Skipping oversized log record" msgstr "Chyba: Preskakuji prilis dlouhy zaznam v logu" msgid "Error: Skipping record (bad date)" msgstr "Chyba: Preskakuji zaznam (spatne datum)" msgid "Error: Unable to lock DNS cache file" msgstr "Chyba: Nemohu zamknout soubory DNS cache" msgid "Error: Unable to open DNS cache file" msgstr "Chyba: Namohu odevrit soubory DNS cache" msgid "Error: Unable to open configuration file" msgstr "Chyba: Nemohu otevrit konfiguracni soubor" msgid "Error: Unable to open file" msgstr "Chyba: Nemohu otevrit soubor" msgid "Error: Unable to restore run data" msgstr "Chyba: Nemohu obnovit data aktualniho zpracovani" msgid "Error: Unable to save current run data" msgstr "Chyba: Nemohu ulozit udaje aktualniho zpracovani" msgid "Error: Unable to write history file" msgstr "Chyba: Nemohu zapsat soubor historie" msgid "Estonia" msgstr "Estonsko" msgid "Ethiopia" msgstr "Etiopie" msgid "Exit" msgstr "Vstupy" msgid "Falkland Islands (Malvinas)" msgstr "Falklandsk ostrovy (Malvny)" msgid "Faroe Islands" msgstr "Faersk ostrovy" msgid "Feb" msgstr "no" msgid "February" msgstr "nor" msgid "Fiji" msgstr "Fidi" msgid "Files" msgstr "Soubor" msgid "Files per Day" msgstr "Soubor za den" msgid "Finland" msgstr "Finsko" msgid "France" msgstr "Francie" msgid "France; Metropolitan" msgstr "France, Metropolitan" msgid "French Guiana" msgstr "Francouzsk Guajana" msgid "French Polynesia" msgstr "Francouzsk Polynsie" msgid "French Southern Territories" msgstr "Francouzsk jin teritoria" msgid "Gabon" msgstr "Gabun" msgid "Gambia" msgstr "Gambie" msgid "Generated" msgstr "Generovno" msgid "Generating report for" msgstr "Vytvarim sestavu pro" msgid "Generating summary report" msgstr "Vytvarim sumarni sestavu" msgid "Georgia" msgstr "Gruzie" msgid "Germany" msgstr "Nmecko" msgid "Ghana" msgstr "Ghana" msgid "Gibraltar" msgstr "Gibraltar" msgid "Great Britain (UK)" msgstr "Velk Britnie (GB)" msgid "Greece" msgstr "ecko" msgid "Greenland" msgstr "Grnsko" msgid "Grenada" msgstr "Grenada" msgid "Guadeloupe" msgstr "Guadeloupe" msgid "Guam" msgstr "Guam" msgid "Guatemala" msgstr "Guatemala" msgid "Guinea" msgstr "Guinea" msgid "Guinea-Bissau" msgstr "Guinea-Bissau" msgid "Guyana" msgstr "Guyana" msgid "Haiti" msgstr "Haiti" msgid "Heard and McDonald Islands" msgstr "Heardovy a McDonaldovy ostrovy" msgid "History file not found..." msgstr "Nemohu najit soubor historie..." msgid "Hits" msgstr "Pstup" msgid "Hits by Response Code" msgstr "Nvtvy podle kdu odpovdi" msgid "Hits per Day" msgstr "Objekt za den" msgid "Hits per Hour" msgstr "Objekt za hodinu" msgid "Honduras" msgstr "Honduras" msgid "Hong Kong" msgstr "Hongkong" msgid "Hostname" msgstr "Pota" msgid "Hostname for reports is" msgstr "Jmeno pocitace pro sestavy je" msgid "Hour" msgstr "Hodina" msgid "Hourly Statistics" msgstr "Hodinov statistiky" msgid "Hourly Statistics for" msgstr "Hodinov statistiky za" msgid "Hourly usage for" msgstr "Hodinov vyuit za" msgid "Hungary" msgstr "Maarsko" msgid "Iceland" msgstr "Island" msgid "Ignoring previous history..." msgstr "Ignoruji predchozi historii..." msgid "India" msgstr "Indie" msgid "Indonesia" msgstr "Indonsie" msgid "International (int)" msgstr "Mezinrodn (int)" msgid "Iran" msgstr "Irn" msgid "Iraq" msgstr "Irk" msgid "Ireland" msgstr "Irsko" msgid "Israel" msgstr "Izrael" msgid "Italy" msgstr "Itlie" msgid "Jamaica" msgstr "Jamajka" msgid "Jan" msgstr "Led" msgid "January" msgstr "leden" msgid "Japan" msgstr "Japonsko" msgid "Jordan" msgstr "Jordnsko" msgid "Jul" msgstr "vc" msgid "July" msgstr "ervenec" msgid "Jun" msgstr "er" msgid "June" msgstr "erven" msgid "KBytes" msgstr "KByt" msgid "KBytes per Day" msgstr "KByt za den" msgid "Kazakhstan" msgstr "Kazachstan" msgid "Kenya" msgstr "Kea" msgid "Kiribati" msgstr "Kiribati" msgid "Korea (North)" msgstr "Korea (Severn)" msgid "Korea (South)" msgstr "Korea (Jin)" msgid "Kuwait" msgstr "Kuvajt" msgid "Kyrgyzstan" msgstr "Kyrgyzstan" msgid "Laos" msgstr "Laos" msgid "Last 12 Months" msgstr "Poslednch 12 msc" msgid "Latvia" msgstr "Lotysko" msgid "Lebanon" msgstr "Libanon" msgid "Lesotho" msgstr "Lesotho" msgid "Liberia" msgstr "Librie" msgid "Libya" msgstr "Libie" msgid "Liechtenstein" msgstr "Lichtentejnsko" msgid "Lithuania" msgstr "Litva" msgid "Luxembourg" msgstr "Lucembursko" msgid "Macau" msgstr "Macao" msgid "Macedonia" msgstr "Makedonie" msgid "Madagascar" msgstr "Madagaskar" msgid "Malawi" msgstr "Malawi" msgid "Malaysia" msgstr "Malajsie" msgid "Maldives" msgstr "Maledivy" msgid "Mali" msgstr "Mali" msgid "Malta" msgstr "Malta" msgid "Mar" msgstr "Be" msgid "March" msgstr "bezen" msgid "Marshall Islands" msgstr "Marshallovy ostrovy" msgid "Martinique" msgstr "Martinik" msgid "Mauritania" msgstr "Mauretnie" msgid "Mauritius" msgstr "Mauricius" msgid "Max" msgstr "Max" msgid "May" msgstr "kvten" msgid "Mayotte" msgstr "Mayotte" msgid "Mexico" msgstr "Mexiko" msgid "Micronesia" msgstr "Mikronzie" msgid "Moldova" msgstr "Moldvie" msgid "Monaco" msgstr "Monako" msgid "Mongolia" msgstr "Mongolsko" msgid "Month" msgstr "Msc" msgid "Monthly Statistics for" msgstr "Msn statistiky za" msgid "Monthly Totals" msgstr "Msn souty" msgid "Montserrat" msgstr "Montserrat" msgid "Morocco" msgstr "Maroko" msgid "Mozambique" msgstr "Mozambik" msgid "Myanmar" msgstr "Myanmar" msgid "Namibia" msgstr "Nambie" msgid "Nato field (nato)" msgstr "NATO (nato)" msgid "Nauru" msgstr "Nauru" msgid "Nepal" msgstr "Nepl" msgid "Netherlands" msgstr "Nizozemsko" msgid "Netherlands Antilles" msgstr "Nizozemsk Antily" msgid "Network" msgstr "S" msgid "Neutral Zone" msgstr "Neutrln zna" msgid "New Caledonia" msgstr "Nov Kaledonie" msgid "New Zealand (Aotearoa)" msgstr "Nov Zland" msgid "Nicaragua" msgstr "Nikaragua" msgid "Niger" msgstr "Niger" msgid "Nigeria" msgstr "Nigerie" msgid "Niue" msgstr "Niue" msgid "No cache file specified, aborting..." msgstr "Nejsou specifikovany zadne cache soubory, koncim..." msgid "No valid records found!" msgstr "Nenalezeny platne zaznamy!" msgid "Non-Profit Organization" msgstr "Neziskov organizace" msgid "None to process" msgstr "Neni co zpracovat" msgid "Norfolk Island" msgstr "Norfolk Island" msgid "Northern Mariana Islands" msgstr "Northern Mariana Islands" msgid "Norway" msgstr "Norsko" msgid "Nov" msgstr "Lis" msgid "November" msgstr "listopad" msgid "Oct" msgstr "j" msgid "October" msgstr "jen" msgid "Old style Arpanet (arpa)" msgstr "Pvodn Arpanet (arpa)" msgid "Oman" msgstr "Omn" msgid "Other" msgstr "Jin" msgid "Pages" msgstr "Strnek" msgid "Pages per Day" msgstr "Strnek za den" msgid "Pakistan" msgstr "Pakistn" msgid "Palau" msgstr "Palau" msgid "Panama" msgstr "Panama" msgid "Papua New Guinea" msgstr "Papua Nov Guinea" msgid "Paraguay" msgstr "Paraguaj" msgid "Peru" msgstr "Peru" msgid "Philippines" msgstr "Filipny" msgid "Pitcairn" msgstr "Pitcairn" msgid "Poland" msgstr "Polsko" msgid "Portugal" msgstr "Portugalsko" msgid "Previous run data not found..." msgstr "Nemohu najit udaje z minuleho zpracovani..." msgid "Puerto Rico" msgstr "Portoriko" msgid "Qatar" msgstr "Katar" msgid "Reading history file..." msgstr "Ctu soubor historie..." msgid "Reading previous run data..." msgstr "Ctu udaje z minuleho zpracovani..." msgid "Referrer" msgstr "Odkazova" msgid "Referrers" msgstr "Odkazovae" msgid "Reunion" msgstr "Reunion" msgid "Romania" msgstr "Rumunsko" msgid "Russian Federation" msgstr "Rusk federace" msgid "Rwanda" msgstr "Rwanda" msgid "S. Georgia and S. Sandwich Isls." msgstr "Sv. Georgia a Sv. Sandwich ostr." msgid "Saint Kitts and Nevis" msgstr "Svat Kitts a Nevis" msgid "Saint Lucia" msgstr "Santa Lucia" msgid "Saint Vincent and the Grenadines" msgstr "Saint Vincent and the Grenadines" msgid "Samoa" msgstr "Samoa" msgid "San Marino" msgstr "San Marino" msgid "Sao Tome and Principe" msgstr "Sao Tome and Principe" msgid "Saudi Arabia" msgstr "Saudsk Arbie" msgid "Saving current run data..." msgstr "Ukladam udaje aktualniho zpracovani..." msgid "Saving history information..." msgstr "Ukladam soubor historie..." msgid "Search" msgstr "Hledn" msgid "Search String" msgstr "Hledn" msgid "Senegal" msgstr "Senegal" msgid "Sep" msgstr "Z" msgid "September" msgstr "z" msgid "Seychelles" msgstr "Seychely" msgid "Sierra Leone" msgstr "Sierra Leone" msgid "Singapore" msgstr "Singapur" msgid "Sites" msgstr "Msta" msgid "Skipping Netscape header record" msgstr "Preskakuji hlavickovy zaznam z Netscape" msgid "Skipping bad record" msgstr "Preskakuji spatny zaznam" msgid "Slovak Republic" msgstr "Slovensk republika" msgid "Slovenia" msgstr "Slovinsko" msgid "Solomon Islands" msgstr "alamounovy ostrovy" msgid "Somalia" msgstr "Somlsko" msgid "South Africa" msgstr "Jihoafrick republika" msgid "Spain" msgstr "panlsko" msgid "Sri Lanka" msgstr "Sr Lanka" msgid "St. Helena" msgstr "Sv. Helena" msgid "St. Pierre and Miquelon" msgstr "St. Pierre and Miquelon" msgid "Sudan" msgstr "Sdn" msgid "Summary Period" msgstr "Obdob statistiky" msgid "Summary by Month" msgstr "Msn pehled" msgid "Suriname" msgstr "Surinam" msgid "Svalbard and Jan Mayen Islands" msgstr "Svalbard and Jan Mayen Islands" msgid "Swaziland" msgstr "Svazijsko" msgid "Sweden" msgstr "vdsko" msgid "Switzerland" msgstr "vcarsko" msgid "Syria" msgstr "Srie" msgid "Taiwan" msgstr "Taiwan" msgid "Tajikistan" msgstr "Tadikistan" msgid "Tanzania" msgstr "Tanznie" msgid "Thailand" msgstr "Thajsko" msgid "Togo" msgstr "Togo" msgid "Tokelau" msgstr "Tokelau" msgid "Tonga" msgstr "Tongo" msgid "Top" msgstr "Nej" msgid "Total" msgstr "Celkem" msgid "Total Countries" msgstr "zem celkem" msgid "Total Entry Pages" msgstr "vstupnch strnek celkem" msgid "Total Exit Pages" msgstr "vstupnch strnek celkem" msgid "Total Files" msgstr "Celkem soubor" msgid "Total Hits" msgstr "Celkem nvtv" msgid "Total KBytes" msgstr "Celkem KByt" msgid "Total Referrers" msgstr "odkazova celkem" msgid "Total Search Strings" msgstr "hledanch etzc celkem" msgid "Total Sites" msgstr "mst celkem" msgid "Total URLs" msgstr "URL celkem" msgid "Total Unique Referrers" msgstr "Celkem jedinench odkazova" msgid "Total Unique Sites" msgstr "Celkem jedinench mst" msgid "Total Unique URLs" msgstr "Celkem jedinench URL" msgid "Total Unique User Agents" msgstr "Celkem jedinench Prohle" msgid "Total Unique Usernames" msgstr "Celkem jedinench uivatel" msgid "Total User Agents" msgstr "prohle celkem" msgid "Total Usernames" msgstr "uivatel celkem" msgid "Totals" msgstr "Celkem" msgid "Trinidad and Tobago" msgstr "Trinidad a Tobago" msgid "Tunisia" msgstr "Tunisko" msgid "Turkey" msgstr "Turecko" msgid "Turkmenistan" msgstr "Turkmenistan" msgid "Turks and Caicos Islands" msgstr "Turks and Caicos Islands" msgid "Tuvalu" msgstr "Tuvalu" msgid "URL" msgstr "URL" msgid "URLs" msgstr "URL" msgid "US Commercial" msgstr "US komern" msgid "US Educational" msgstr "US akademick" msgid "US Government" msgstr "US vldn" msgid "US Military" msgstr "US vojensk" msgid "US Minor Outlying Islands" msgstr "US Minor Outlying Islands" msgid "USSR (former)" msgstr "SSSR" msgid "Uganda" msgstr "Uganda" msgid "Ukraine" msgstr "Ukrajina" msgid "Undefined response code" msgstr "Nedefinovan kd odpovdi" msgid "United Arab Emirates" msgstr "Spojen arabsk emirty" msgid "United Kingdom" msgstr "Velk Britnie (UK)" msgid "United States" msgstr "USA (US)" msgid "Unresolved/Unknown" msgstr "Nezjitn/neznm" msgid "Uruguay" msgstr "Uruguay" msgid "Usage" msgstr "Pouzivani" msgid "Usage Statistics for" msgstr "Statistiky pstup pro" msgid "Usage by Country for" msgstr "Vyuit podle zem" msgid "Usage summary for" msgstr "Statistiky pstup pro" msgid "User Agent" msgstr "Prohle" msgid "Username" msgstr "Uivatel" msgid "Users" msgstr "Uivatel" msgid "Using DNS cache file" msgstr "Pouzivam soubory DNS cache" msgid "Using logfile" msgstr "Pouzivam log soubor" msgid "Uzbekistan" msgstr "Uzbekistan" msgid "Vanuatu" msgstr "Vanuatu" msgid "Vatican City State (Holy See)" msgstr "Vatikn" msgid "Venezuela" msgstr "Venezuela" msgid "Viet Nam" msgstr "Vietnam" msgid "View All Referrers" msgstr "zobrazit vechny referery" msgid "View All Search Strings" msgstr "zobrazit vechny hledan strnky" msgid "View All Sites" msgstr "zobrazit vechny st" msgid "View All URLs" msgstr "zobrazit vechny URL" msgid "View All User Agents" msgstr "zobrazit vechny uivatelsk prohlee" msgid "View All Usernames" msgstr "zobrazit vechna uivatelsk jmna" msgid "Virgin Islands (British)" msgstr "Panensk ostrovy (Britsk)" msgid "Virgin Islands (U.S.)" msgstr "Panenske ostrovy (US)" msgid "Visits" msgstr "Nvtv" msgid "Visits per Day" msgstr "Nvtv za den" msgid "Wallis and Futuna Islands" msgstr "Wallis and Futuna Islands" msgid "Warning: Invalid keyword" msgstr "Pozor: Neplatne klicove slovo" msgid "Warning: Possible duplicate data found" msgstr "Pozor: Nalezeny pravdepodobne duplicitni udaje" msgid "Warning: String exceeds storage size" msgstr "Pozor: Retezec prekrocil velikost ukladaciho mista" msgid "Warning: Truncating oversized date field" msgstr "Pozor: Orezavam prilis dlouhe pole datumu" msgid "Warning: Truncating oversized hostname" msgstr "Pozor: Orezavam prilis dlouhe jmeno pocitace" msgid "Warning: Truncating oversized referrer field" msgstr "Pozor: Orezavam prilis dlouhe pole odkazovace" msgid "Warning: Truncating oversized request field" msgstr "Pozor: Orezavam prilis dlouhe pole zadosti" msgid "Warning: Truncating oversized username" msgstr "Pozor: Orezavam prilis dlouhe jmeno uzivatele" msgid "Western Sahara" msgstr "Zpadn Sahara" msgid "Yemen" msgstr "Jemen" msgid "Yugoslavia" msgstr "Jugoslvie" msgid "Zaire" msgstr "Zair" msgid "Zambia" msgstr "Zambie" msgid "Zimbabwe" msgstr "Zimbabwe" msgid "[options] [log file]" msgstr "[volby] [log soubor]" msgid "addresses" msgstr "adres" msgid "bad" msgstr "chybnych" msgid "current directory" msgstr "aktualnim adresari" msgid "ignored" msgstr "ignorovano" msgid "in" msgstr "za" msgid "of" msgstr "z" msgid "records" msgstr "zaznamu" msgid "seconds" msgstr "vterin" webdruid-0.5.4.orig/po/tr.po0000644000000000000000000006423310066113350015630 0ustar rootroot00000000000000msgid "" msgstr "" "Project-Id-Version: 1.0\n" "PO-Revision-Date: 2003-05-25 23:29+0200\n" "Last-Translator: Johan Poirier \n" "Language-Team: French \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=ISO-8859-1\n" "Content-Transfer-Encoding: 8bit" msgid "-A num = Display num top agents" msgstr "-A sayi = sayi kadar top ajan goster" msgid "-C num = Display num top countries" msgstr "-C sayi = sayi kadar top ulke goster" msgid "-D name = Use DNS Cache file 'name'" msgstr "-D ad = 'ad' isimli DNS onbellek dosyasini kullan" msgid "-E num = Display num top Exit Pages" msgstr "-E sayi = sayi kadar top cikis sayfasi goster" msgid "-F type = Log type. type= (clf | ftp | squid)" msgstr "-F tip = kutuk tipi. 'tip'= (clf | ftp | squid)" msgid "-G = supress hourly graph" msgstr "-G = saate gore grafigini iptal et" msgid "-H = supress hourly stats" msgstr "-H = saate gore istatistikleri iptal et" msgid "-I name = Index alias 'name'" msgstr "-I ad = Indeks ismi 'ad'" msgid "-L = supress color coded graph legends" msgstr "-L = renk kodlu grafik aciklamalarini iptal et" msgid "-N num = Number of DNS processes (0=disable)" msgstr "-N sayi = DNS islemcilerinin sayisi (0=iptal)" msgid "-P name = Page type extension 'name'" msgstr "-P ad = Sayfa uzantisi 'ad'" msgid "-Q = supress _ALL_ messages" msgstr "-Q = _BUTUN_ mesajlari iptal et" msgid "-R num = Display num top referrers" msgstr "-R sayi = sayi kadar top referans goster" msgid "-S num = Display num top sites" msgstr "-S sayi = sayi kadar top istemci goster" msgid "-T = print timing information" msgstr "-T = islem suresi bilgisini yazdir" msgid "-U num = Display num top URLs" msgstr "-U sayi = sayi kadar top URL goster" msgid "-X = Hide individual sites" msgstr "-X = tek siteleri gizle" msgid "-Y = supress country graph" msgstr "-Y = ulke grafigini iptal et" msgid "-a name = hide user agent 'name'" msgstr "-a ad = kullanici ajanini sakla 'ad'" msgid "-c file = use configuration file 'file'" msgstr "-c dosya = belirtilen konfigurasyon dosyasini kullan 'dosya'" msgid "-d = print additional debug info" msgstr "-d = ek debug bilgileri yazir" msgid "-e num = Display num top Entry Pages" msgstr "-e sayi = sayi kadar top giris sayfasi goster" msgid "-f = Fold sequence errors" msgstr "-f = Siralama hatalarini duzelt" msgid "-g num = Group Domains to 'num' levels" msgstr "-g sayi = alan adlarini 'sayi' kadar seviyede grupla" msgid "-h = print this help message" msgstr "-h = bu yardim mesajini yazdir" msgid "-i = ignore history file" msgstr "-i = history dosyasina bakma" msgid "-l num = use num background lines on graph" msgstr "-l sayi = grafiklerde 'sayi' kadar cizgi kullan" msgid "-m num = Visit timout value (seconds)" msgstr "-m sayi = ziyaret bitim zamani 'sayi'= (seconds)" msgid "-n name = hostname to use" msgstr "-n ad = kullanilacak makine adi 'ad'" msgid "-o dir = output directory to use" msgstr "-o dizin = kullanilacak cikti dizini 'dizin'" msgid "-p = preserve state (incremental)" msgstr "-p = durumu koru (eklemeli)" msgid "-q = supress informational messages" msgstr "-q = bilgi mesajlarini iptal et" msgid "-r name = hide referrer 'name'" msgstr "-r ad = referansi sakla 'ad'" msgid "-s name = hide site 'name'" msgstr "-s ad = siteyi sakla 'ad'" msgid "-t name = report title 'name'" msgstr "-t ad = rapor basligi 'ad'" msgid "-u name = hide URL 'name'" msgstr "-u ad = URL'yi sakla 'ad'" msgid "-v -V = print version information" msgstr "-v -V = surum bilgilerini yazdir" msgid "-x name = Use filename extension 'name'" msgstr "-x ad = Dosya uzantisini kullan 'ad'" msgid "Afghanistan" msgstr "Afganistan" msgid "Agents" msgstr "Ajanlar" msgid "Albania" msgstr "Albanya" msgid "Algeria" msgstr "Algeria" msgid "American Samoa" msgstr "Amerikan Samoa Adalari" msgid "Andorra" msgstr "Andora" msgid "Angola" msgstr "Angola" msgid "Anguilla" msgstr "Anguilla" msgid "Antarctica" msgstr "Antartik" msgid "Antigua and Barbuda" msgstr "Antigua ve Barbuda" msgid "Apr" msgstr "Nis" msgid "April" msgstr "Nisan" msgid "Argentina" msgstr "Arjantin" msgid "Armenia" msgstr "Ermenistan" msgid "Aruba" msgstr "Aruba" msgid "Aug" msgstr "Agu" msgid "August" msgstr "Agustos" msgid "Australia" msgstr "Avusturalya" msgid "Austria" msgstr "Avusturya" msgid "Avg" msgstr "Averaj" msgid "Azerbaijan" msgstr "Azerbeycan" msgid "Bahamas" msgstr "Bahamalar" msgid "Bahrain" msgstr "Bahreyn" msgid "Bangladesh" msgstr "Banglades" msgid "Barbados" msgstr "Barbados" msgid "Belarus" msgstr "Belarusya" msgid "Belgium" msgstr "Belcika" msgid "Belize" msgstr "Belize" msgid "Benin" msgstr "Benin" msgid "Bermuda" msgstr "Bermuda" msgid "Bhutan" msgstr "Bhutan" msgid "Bolivia" msgstr "Bolivya" msgid "Bosnia and Herzegovina" msgstr "Bosna ve Herzegova" msgid "Botswana" msgstr "Botswana" msgid "Bouvet Island" msgstr "Bouvet Adasi" msgid "Brazil" msgstr "Brezilya" msgid "British Indian Ocean Territory" msgstr "Ingiliz-Hint Okyanis Bolgesi" msgid "Brunei Darussalam" msgstr "Brunei Darussalam" msgid "Bulgaria" msgstr "Bulgaristan" msgid "Burkina Faso" msgstr "Burkina Faso" msgid "Burundi" msgstr "Burundi" msgid "By" msgstr "" msgid "Cambodia" msgstr "Kambocya" msgid "Cameroon" msgstr "Kamerun" msgid "Can't allocate enough memory, Top Countries disabled!" msgstr "Yeterli hafiza yok, Top Ulkeler kapatildi!" msgid "Can't allocate enough memory, Top Referrers disabled!" msgstr "Yeterli hafiza yok, Top Referanslar kapatildi!" msgid "Can't allocate enough memory, Top Search Strings disabled!" msgstr "Yeterli hafiza yok, Top Arama Girdileri kapatildi!" msgid "Can't allocate enough memory, Top Sites disabled!" msgstr "Yeterli hafiza yok, Top Istemciler kapatildi!" msgid "Can't allocate enough memory, Top URLs disabled!" msgstr "Yeterli hafiza yok, Top URL'ler kapatildi!" msgid "Can't allocate enough memory, Top User Agents disabled!" msgstr "Yeterli hafiza yok, Top Kullanici Ajanlari kapatildi!" msgid "Can't allocate enough memory, Top Usernames disabled!" msgstr "Yeterli hafiza yok, Top Kullanici Adlari kapatildi!" msgid "Canada" msgstr "Kanada" msgid "Cape Verde" msgstr "Cape Verde" msgid "Cayman Islands" msgstr "Cayman Islands" msgid "Central African Republic" msgstr "Orta Afrika Cumhuriyeti" msgid "Chad" msgstr "Cad" msgid "Chile" msgstr "Sile" msgid "China" msgstr "Cin" msgid "Christmas Island" msgstr "Christmas Adalari" msgid "Cocos (Keeling) Islands" msgstr "Cocos (Keeling) Adalari" msgid "Code 100 - Continue" msgstr "Kod 100 - Devam" msgid "Code 101 - Switching Protocols" msgstr "Kod 101 - Protokol Degistirme" msgid "Code 200 - OK" msgstr "Kod 200 - TAMAM" msgid "Code 201 - Created" msgstr "Kod 201 - Yaratildi" msgid "Code 202 - Accepted" msgstr "Kod 202 - Kabul Edildi" msgid "Code 203 - Non-Authoritative Information" msgstr "Kod 203 - Otantikasyonu Olmayan Bilgi" msgid "Code 204 - No Content" msgstr "Kod 204 - Icerik Yok" msgid "Code 205 - Reset Content" msgstr "Kod 205 - Icerigi Sifirla" msgid "Code 206 - Partial Content" msgstr "Kod 206 - Bolumsel Icerik" msgid "Code 300 - Multiple Choices" msgstr "Kod 300 - Bircok Secim" msgid "Code 301 - Moved Permanently" msgstr "Kod 301 - Tamamen Tasindi" msgid "Code 302 - Found" msgstr "Kod 302 - Bulundu" msgid "Code 303 - See Other" msgstr "Kod 303 - Digerine Bakiniz" msgid "Code 304 - Not Modified" msgstr "Kod 304 - Degismedi" msgid "Code 305 - Use Proxy" msgstr "Kod 305 - Proxy Kullaniniz" msgid "Code 307 - Moved Temporarily" msgstr "Kod 307 - Gecici Olarak Tasindi" msgid "Code 400 - Bad Request" msgstr "Kod 400 - Kotu Istek" msgid "Code 401 - Unauthorized" msgstr "Kod 401 - Yetkisiz" msgid "Code 402 - Payment Required" msgstr "Kod 402 - Odeme Gerekli" msgid "Code 403 - Forbidden" msgstr "Kod 403 - Yasak" msgid "Code 404 - Not Found" msgstr "Kod 404 - Bulunamadi" msgid "Code 405 - Method Not Allowed" msgstr "Kod 405 - Metoda Izin Verilmedi" msgid "Code 406 - Not Acceptable" msgstr "Kod 406 - Kabul Edilemez" msgid "Code 407 - Proxy Authentication Required" msgstr "Kod 407 - Proxy Otantikasyonu Gerekli" msgid "Code 408 - Request Timeout" msgstr "Kod 408 - Istek Zaman Asimi" msgid "Code 409 - Conflict" msgstr "Kod 409 - Cakisma" msgid "Code 410 - Gone" msgstr "Kod 410 - Gitti" msgid "Code 411 - Length Required" msgstr "Kod 411 - Uzunluk Gerekli" msgid "Code 412 - Precondition Failed" msgstr "Kod 412 - On Kosul Basarisiz" msgid "Code 413 - Request Entity Too Large" msgstr "Kod 413 - Istek Varligi Cok Buyuk" msgid "Code 414 - Request-URI Too Long" msgstr "Kod 414 - Istek-URI'si Cok Uzun" msgid "Code 415 - Unsupported Media Type" msgstr "Kod 415 - Desteklenmeyen Orta Tipi" msgid "Code 416 - Requested Range Not Satisfiable" msgstr "Kod 416 - Istenen Uzaklik Karsilanamaz" msgid "Code 417 - Expectation Failed" msgstr "Kod 417 - Beklenti Basarisiz" msgid "Code 500 - Internal Server Error" msgstr "Kod 500 - Ic Sunucu Hatasi" msgid "Code 501 - Not Implemented" msgstr "Kod 501 - Tamamlanmadi" msgid "Code 502 - Bad Gateway" msgstr "Kod 502 - Kotu Gecit" msgid "Code 503 - Service Unavailable" msgstr "Kod 503 - Servis Kapali" msgid "Code 504 - Gateway Timeout" msgstr "Kod 504 - Gecit Zaman Asimi" msgid "Code 505 - HTTP Version Not Supported" msgstr "Kod 505 - HTTP Surumu Desteklenmiyor" msgid "Colombia" msgstr "Kolombiya" msgid "Comoros" msgstr "Comoros" msgid "Congo" msgstr "Kongo" msgid "Cook Islands" msgstr "Cook Adalari" msgid "Costa Rica" msgstr "Kosta Rica" msgid "Cote D'Ivoire (Ivory Coast)" msgstr "Cote D'Ivoire (Ivory Sahili)" msgid "Countries" msgstr "Ulkeler" msgid "Country" msgstr "Ulke" msgid "Creating output in" msgstr "Ciktinin yaratildigi yer" msgid "Croatia (Hrvatska)" msgstr "Hirvatistan" msgid "Cuba" msgstr "Kuba" msgid "Cyprus" msgstr "Kibris" msgid "Czech Republic" msgstr "Cek Cumhuriyeti" msgid "Czechoslovakia (former)" msgstr "Cekoslovakya (eski)" msgid "DNS Lookup" msgstr "DNS bakimi" msgid "Daily Avg" msgstr "Gunluk Averaj" msgid "Daily Statistics" msgstr "Gunluk Istatistikler" msgid "Daily Statistics for" msgstr "Gunluk Istatistikler:" msgid "Daily usage for" msgstr "Gunluk Kullanim:" msgid "Day" msgstr "Gun" msgid "Dec" msgstr "Ara" msgid "December" msgstr "Aralik" msgid "Denmark" msgstr "Danimarka" msgid "Djibouti" msgstr "Djibuti" msgid "Dominica" msgstr "Dominika" msgid "Dominican Republic" msgstr "Dominik Cumhuriyeti" msgid "East Timor" msgstr "Dogu Timor" msgid "Ecuador" msgstr "Ekvator" msgid "Egypt" msgstr "Misir" msgid "El Salvador" msgstr "El Salvador" msgid "English" msgstr "Turkish" msgid "Entry" msgstr "Giris" msgid "Equatorial Guinea" msgstr "Ekvator Ginesi" msgid "Eritrea" msgstr "Eritrea" msgid "Error adding Referrer node, skipping" msgstr "Hata Referans nodu ekleniyor, islenmeden geciliyor" msgid "Error adding Search String Node, skipping" msgstr "Hata Arama Girdileri nodu ekleniyor, islenmeden geciliyor" msgid "Error adding URL node, skipping" msgstr "Hata URL nodu ekleniyor, islenmeden geciliyor" msgid "Error adding User Agent node, skipping" msgstr "Hata Kullanici Ajani ekleniyor, islenmeden geciliyor" msgid "Error adding Username node, skipping" msgstr "Hata Kullanici Adi nodu ekleniyor, islenmeden geciliyor" msgid "Error adding host node (daily), skipping" msgstr "Hata makine nodu ekleniyor (gunluk), islenmeden geciliyor" msgid "Error adding host node (monthly), skipping" msgstr "Hata makine nodu ekleniyor (aylik), islenmeden geciliyor" msgid "Error: Can't change directory to" msgstr "Hata: Degistirilemeyen dizin" msgid "Error: Can't open log file" msgstr "Hata: Kutuk dosyasi acilamadi" msgid "Error: Ignoring invalid history record" msgstr "Hata: Gecersiz history kaydi islenmiyor" msgid "Error: Skipping oversized log record" msgstr "Hata: Normalden buyuk kutuk kaydi islenmeden geciliyor" msgid "Error: Skipping record (bad date)" msgstr "Hata: Kayit islenmeden geciliyor (kotu tarih)" msgid "Error: Unable to lock DNS cache file" msgstr "Hata: DNS onbellekleme dosyasi kilitlenemedi" msgid "Error: Unable to open DNS cache file" msgstr "Hata: DNS onbellekleme dosyasi acilamadi" msgid "Error: Unable to open configuration file" msgstr "Hata: Konfigurasyon dosyasi acilamiyor" msgid "Error: Unable to open file" msgstr "Hata: Dosya acilamadi" msgid "Error: Unable to restore run data" msgstr "Hata: Calisma bilgileri tekrar kullanilamiyor" msgid "Error: Unable to save current run data" msgstr "Hata: Su anki calisma bilgileri kaydedilemiyor" msgid "Error: Unable to write history file" msgstr "Hata: History dosyasi yazilamiyor" msgid "Estonia" msgstr "Estonya" msgid "Ethiopia" msgstr "Etiyopya" msgid "Exit" msgstr "Cikis" msgid "Falkland Islands (Malvinas)" msgstr "Folkland Adalari (Malvinas)" msgid "Faroe Islands" msgstr "Faroe Adalari" msgid "Feb" msgstr "Sub" msgid "February" msgstr "Subat" msgid "Fiji" msgstr "Fiji" msgid "Files" msgstr "Dosya" msgid "Files per Day" msgstr "Gunluk Dosyalar" msgid "Finland" msgstr "Finlandiya" msgid "France" msgstr "Fransa" msgid "France; Metropolitan" msgstr "France, Metropolitan" msgid "French Guiana" msgstr "Fransiz Guyanasi" msgid "French Polynesia" msgstr "Fransiz Polinezyasi" msgid "French Southern Territories" msgstr "Fransiz Guney Bolgeleri" msgid "Gabon" msgstr "Gabon" msgid "Gambia" msgstr "Gambia" msgid "Generated" msgstr "Yaratilma Tarihi" msgid "Generating report for" msgstr "Raporu yaratilan site" msgid "Generating summary report" msgstr "Ozet raporu yaratiliyor" msgid "Georgia" msgstr "Georgia" msgid "Germany" msgstr "Almanya" msgid "Ghana" msgstr "Ghana" msgid "Gibraltar" msgstr "Gibraltar" msgid "Great Britain (UK)" msgstr "Buyuk Biritanya (UK)" msgid "Greece" msgstr "Yunanistan" msgid "Greenland" msgstr "Greenland" msgid "Grenada" msgstr "Granada" msgid "Guadeloupe" msgstr "Guadeloupe" msgid "Guam" msgstr "Guam" msgid "Guatemala" msgstr "Guatemala" msgid "Guinea" msgstr "Gine" msgid "Guinea-Bissau" msgstr "Guinea-Bissau" msgid "Guyana" msgstr "Guyana" msgid "Haiti" msgstr "Haiti" msgid "Heard and McDonald Islands" msgstr "Heard and McDonald Adalari" msgid "History file not found..." msgstr "History dosyasi bulunamadi..." msgid "Hits" msgstr "HIT'ler" msgid "Hits by Response Code" msgstr "Cevap Koduna Gore HIT" msgid "Hits per Day" msgstr "Gunluk HIT" msgid "Hits per Hour" msgstr "Saatlik HIT" msgid "Honduras" msgstr "Honduras" msgid "Hong Kong" msgstr "Hong Kong" msgid "Hostname" msgstr "Makine Adi" msgid "Hostname for reports is" msgstr "Raporlar icin makine adi" msgid "Hour" msgstr "Saat" msgid "Hourly Statistics" msgstr "Saatlik Istatistikler" msgid "Hourly Statistics for" msgstr "Saatlik Istatistikler:" msgid "Hourly usage for" msgstr "Saatlik Kullanim:" msgid "Hungary" msgstr "Macaristan" msgid "Iceland" msgstr "Izlanda" msgid "Ignoring previous history..." msgstr "Bir onceki history dosyasi islenmiyor..." msgid "India" msgstr "Hindistan" msgid "Indonesia" msgstr "Endonezya" msgid "International (int)" msgstr "Uluslarasi (.int)" msgid "Iran" msgstr "Iran" msgid "Iraq" msgstr "Irak" msgid "Ireland" msgstr "Irlanda" msgid "Israel" msgstr "Israil" msgid "Italy" msgstr "Italya" msgid "Jamaica" msgstr "Jamaika" msgid "Jan" msgstr "Oca" msgid "January" msgstr "Ocak" msgid "Japan" msgstr "Japonya" msgid "Jordan" msgstr "Urdun" msgid "Jul" msgstr "Tem" msgid "July" msgstr "Temmuz" msgid "Jun" msgstr "Haz" msgid "June" msgstr "Haziran" msgid "KBytes" msgstr "KBayt'a Gore" msgid "KBytes per Day" msgstr "Gunluk KBaytlar" msgid "Kazakhstan" msgstr "Kazakhistan" msgid "Kenya" msgstr "Kenya" msgid "Kiribati" msgstr "Kiribati" msgid "Korea (North)" msgstr "Kore (Kuzey)" msgid "Korea (South)" msgstr "Kore (Guney)" msgid "Kuwait" msgstr "Kuveyt" msgid "Kyrgyzstan" msgstr "Kirgizistan" msgid "Laos" msgstr "Laos" msgid "Last 12 Months" msgstr "Son 12 Ay" msgid "Latvia" msgstr "Latvia" msgid "Lebanon" msgstr "Lubnan" msgid "Lesotho" msgstr "Lesotho" msgid "Liberia" msgstr "Liberya" msgid "Libya" msgstr "Libya" msgid "Liechtenstein" msgstr "Liechtenstein" msgid "Lithuania" msgstr "Litvanya" msgid "Luxembourg" msgstr "Luxemburg" msgid "Macau" msgstr "Macau" msgid "Macedonia" msgstr "Makedonya" msgid "Madagascar" msgstr "Madagascar" msgid "Malawi" msgstr "Malawi" msgid "Malaysia" msgstr "Malezya" msgid "Maldives" msgstr "Maldivler" msgid "Mali" msgstr "Mali" msgid "Malta" msgstr "Malta" msgid "Mar" msgstr "Mar" msgid "March" msgstr "Mart" msgid "Marshall Islands" msgstr "Marshall Adalari" msgid "Martinique" msgstr "Martinik" msgid "Mauritania" msgstr "Moritanya" msgid "Mauritius" msgstr "Mauritius" msgid "Max" msgstr "Maksimum" msgid "May" msgstr "Mayis" msgid "Mayotte" msgstr "Mayotte" msgid "Mexico" msgstr "Meksika" msgid "Micronesia" msgstr "Micronesia" msgid "Moldova" msgstr "Moldova" msgid "Monaco" msgstr "Monako" msgid "Mongolia" msgstr "Mongolya" msgid "Month" msgstr "Ay" msgid "Monthly Statistics for" msgstr "Aylik Istatistikler:" msgid "Monthly Totals" msgstr "Aylik Toplamlar" msgid "Montserrat" msgstr "Montserrat" msgid "Morocco" msgstr "Moroko" msgid "Mozambique" msgstr "Mozambik" msgid "Myanmar" msgstr "Myanmar" msgid "Namibia" msgstr "Namibya" msgid "Nato field (nato)" msgstr "Nato alani (.nato)" msgid "Nauru" msgstr "Nauru" msgid "Nepal" msgstr "Nepal" msgid "Netherlands" msgstr "Hollanda" msgid "Netherlands Antilles" msgstr "Hollanda Antil Adalari" msgid "Network" msgstr "Ag (.net)" msgid "Neutral Zone" msgstr "Bagimsiz Bolge" msgid "New Caledonia" msgstr "Yeni Kaledonya" msgid "New Zealand (Aotearoa)" msgstr "Yeni Zellanda (Aotearoa)" msgid "Nicaragua" msgstr "Nikaragua" msgid "Niger" msgstr "Niger" msgid "Nigeria" msgstr "Nijerya" msgid "Niue" msgstr "Niue" msgid "No cache file specified, aborting..." msgstr "Onbellek dosyasi belirtilmedi, islem iptal ediliyor..." msgid "No valid records found!" msgstr "Hicbir gecerli kayit bulunamadi!" msgid "Non-Profit Organization" msgstr "Organizasyon (.org)" msgid "None to process" msgstr "Islem yapilmasi gereken kayit yok" msgid "Norfolk Island" msgstr "Norfolk Adalari" msgid "Northern Mariana Islands" msgstr "Kuzey Mariana Adalari" msgid "Norway" msgstr "Norvec" msgid "Nov" msgstr "Kas" msgid "November" msgstr "Kasim" msgid "Oct" msgstr "Eki" msgid "October" msgstr "Ekim" msgid "Old style Arpanet (arpa)" msgstr "Eski stil Arpanet (.arpa)" msgid "Oman" msgstr "Umman" msgid "Other" msgstr "Diger" msgid "Pages" msgstr "Sayfa" msgid "Pages per Day" msgstr "Gunluk Sayfalar" msgid "Pakistan" msgstr "Pakistan" msgid "Palau" msgstr "Palau" msgid "Panama" msgstr "Panama" msgid "Papua New Guinea" msgstr "Papua Yeni Gine" msgid "Paraguay" msgstr "Paraguay" msgid "Peru" msgstr "Peru" msgid "Philippines" msgstr "Filipinler" msgid "Pitcairn" msgstr "Pitcairn" msgid "Poland" msgstr "Polonya" msgid "Portugal" msgstr "Portekiz" msgid "Previous run data not found..." msgstr "Bir onceki calismanin bilgileri bulunamadi..." msgid "Puerto Rico" msgstr "Porto Riko" msgid "Qatar" msgstr "Katar" msgid "Reading history file..." msgstr "History dosyasi okunuyor..." msgid "Reading previous run data..." msgstr "Bir onceki calismanin bilgileri okunuyor..." msgid "Referrer" msgstr "Referans" msgid "Referrers" msgstr "Referanslar" msgid "Reunion" msgstr "Reunion" msgid "Romania" msgstr "Romanya" msgid "Russian Federation" msgstr "Rus Federasyonu" msgid "Rwanda" msgstr "Ruanda" msgid "S. Georgia and S. Sandwich Isls." msgstr "S. Georgia and S. Sandwich Adalari." msgid "Saint Kitts and Nevis" msgstr "Saint Kitts and Nevis" msgid "Saint Lucia" msgstr "Saint Lucia" msgid "Saint Vincent and the Grenadines" msgstr "Saint Vincent ve Grenadines" msgid "Samoa" msgstr "Samoa" msgid "San Marino" msgstr "San Marino" msgid "Sao Tome and Principe" msgstr "Sao Tome and Principe" msgid "Saudi Arabia" msgstr "Suudi Arabistan" msgid "Saving current run data..." msgstr "Su anki calisma bilgileri kaydediliyor..." msgid "Saving history information..." msgstr "History bilgileri kaydediliyor..." msgid "Search" msgstr "Arama" msgid "Search String" msgstr "Arama Girdisi" msgid "Senegal" msgstr "Senegal" msgid "Sep" msgstr "Eyl" msgid "September" msgstr "Eylul" msgid "Seychelles" msgstr "Seychelles" msgid "Sierra Leone" msgstr "Sierra Leone" msgid "Singapore" msgstr "Singapur" msgid "Sites" msgstr "Istemciler" msgid "Skipping Netscape header record" msgstr "Netscape baslik kaydi islenmeden geciliyor" msgid "Skipping bad record" msgstr "Kotu kayit islenmeden geciliyor" msgid "Slovak Republic" msgstr "Slovak Cumhuriyeti" msgid "Slovenia" msgstr "Slovenya" msgid "Solomon Islands" msgstr "Solomon Adalari" msgid "Somalia" msgstr "Somali" msgid "South Africa" msgstr "Guney Afrika" msgid "Spain" msgstr "Ispanya" msgid "Sri Lanka" msgstr "Sri Lanka" msgid "St. Helena" msgstr "St. Helena" msgid "St. Pierre and Miquelon" msgstr "St. Pierre and Miquelon" msgid "Sudan" msgstr "Sudan" msgid "Summary Period" msgstr "Ozet Periyodu" msgid "Summary by Month" msgstr "Ay'a Gore Ozet" msgid "Suriname" msgstr "Surinam" msgid "Svalbard and Jan Mayen Islands" msgstr "Svalbard ve Jan Mayen Adalari" msgid "Swaziland" msgstr "Swaziland" msgid "Sweden" msgstr "Isvec" msgid "Switzerland" msgstr "Isvicre" msgid "Syria" msgstr "Suriye" msgid "Taiwan" msgstr "Tayvan" msgid "Tajikistan" msgstr "Tacikistan" msgid "Tanzania" msgstr "Tanzanya" msgid "Thailand" msgstr "Tayland" msgid "Togo" msgstr "Togo" msgid "Tokelau" msgstr "Tokelau" msgid "Tonga" msgstr "Tonga" msgid "Top" msgstr "Top" msgid "Total" msgstr "Toplam" msgid "Total Countries" msgstr "Toplam Ulkeler" msgid "Total Entry Pages" msgstr "Toplam Giris Sayfalari" msgid "Total Exit Pages" msgstr "Toplam Cikis Sayfalari" msgid "Total Files" msgstr "Toplam Dosyalar" msgid "Total Hits" msgstr "Toplam HIT'ler" msgid "Total KBytes" msgstr "Toplam KBaytlar" msgid "Total Referrers" msgstr "Toplam Referanslar" msgid "Total Search Strings" msgstr "Toplam Arama Girdileri" msgid "Total Sites" msgstr "Toplam Istemciler" msgid "Total URLs" msgstr "Toplam URL'ler" msgid "Total Unique Referrers" msgstr "Toplam Ayni Referanslar" msgid "Total Unique Sites" msgstr "Toplam Ayni Istemciler" msgid "Total Unique URLs" msgstr "Toplam Ayni URL'ler" msgid "Total Unique User Agents" msgstr "Toplam Ayni Kullanici Ajanlari" msgid "Total Unique Usernames" msgstr "Toplam Ayni Kullanici Adlari" msgid "Total User Agents" msgstr "Toplam Kullanici Ajanlari" msgid "Total Usernames" msgstr "Toplam Kullanici Adlari" msgid "Totals" msgstr "Toplamlar" msgid "Trinidad and Tobago" msgstr "Trinidad ve Tobago" msgid "Tunisia" msgstr "Tunus" msgid "Turkey" msgstr "Turkiye" msgid "Turkmenistan" msgstr "Turkmenistan" msgid "Turks and Caicos Islands" msgstr "Turks ve Caicos Adalari" msgid "Tuvalu" msgstr "Tuvalu" msgid "URL" msgstr "URL" msgid "URLs" msgstr "URL'ler" msgid "US Commercial" msgstr "US Ticari" msgid "US Educational" msgstr "US Egitimsel" msgid "US Government" msgstr "US Devlet" msgid "US Military" msgstr "US Askeri" msgid "US Minor Outlying Islands" msgstr "US Minor Outlying Adalari" msgid "USSR (former)" msgstr "SSCB (eski)" msgid "Uganda" msgstr "Uganda" msgid "Ukraine" msgstr "Ukrayna" msgid "Undefined response code" msgstr "Tanimlanmamis cevap kodu" msgid "United Arab Emirates" msgstr "Birlesmis Arab Emirlikleri" msgid "United Kingdom" msgstr "Ingiltere" msgid "United States" msgstr "United States" msgid "Unresolved/Unknown" msgstr "Cozumlenemeyen/Bilinemeyen" msgid "Uruguay" msgstr "Uruguay" msgid "Usage" msgstr "Kullanim" msgid "Usage Statistics for" msgstr "Kullanim Istatistikleri:" msgid "Usage by Country for" msgstr "Ulkeye Gore Kullanim:" msgid "Usage summary for" msgstr "Kullanim Ozeti" msgid "User Agent" msgstr "Kullanici Ajani" msgid "Username" msgstr "Kullanici" msgid "Users" msgstr "Kullanicilar" msgid "Using DNS cache file" msgstr "Kullanilan DNS onbellekleme dosyasi" msgid "Using logfile" msgstr "Kullanilan kutukdosyasi" msgid "Uzbekistan" msgstr "Uzbekistan" msgid "Vanuatu" msgstr "Vanuatu" msgid "Vatican City State (Holy See)" msgstr "Vatican Sehiri Devleti (Kutsal Deniz)" msgid "Venezuela" msgstr "Venezuela" msgid "Viet Nam" msgstr "Vietnam" msgid "View All Referrers" msgstr "Butun Referanslar Goster" msgid "View All Search Strings" msgstr "Butun Arama Girdilerini Goster" msgid "View All Sites" msgstr "Butun Istemcileri Goster" msgid "View All URLs" msgstr "Butun URL'leri Goster" msgid "View All User Agents" msgstr "Butun Kullanici Ajanlarini Goster" msgid "View All Usernames" msgstr "Butun Kullanici Adlarini Goster" msgid "Virgin Islands (British)" msgstr "Virgin Adalari (British)" msgid "Virgin Islands (U.S.)" msgstr "Virgin Adalari (U.S.)" msgid "Visits" msgstr "Ziyaret" msgid "Visits per Day" msgstr "Gunluk Ziyaretler" msgid "Wallis and Futuna Islands" msgstr "Wallis ve Futuna Adalari" msgid "Warning: Invalid keyword" msgstr "Dikkat: Gecersiz anahtar kelime" msgid "Warning: Possible duplicate data found" msgstr "Dikkat: Buyuk ihtimalle cift islenmis bilgi bulundu" msgid "Warning: String exceeds storage size" msgstr "Dikkat: Girdi saklama boyutunu asiyor" msgid "Warning: Truncating oversized date field" msgstr "Dikkat: Normalden buyuk tarih bolumu kucultuluyor" msgid "Warning: Truncating oversized hostname" msgstr "Dikkat: Normalden buyuk makine ismi kucultuluyor" msgid "Warning: Truncating oversized referrer field" msgstr "Dikkat: Normalden buyuk referans bolumu kucultuluyor" msgid "Warning: Truncating oversized request field" msgstr "Dikkat: Normalden buyuk istek bolumu kucultuluyor" msgid "Warning: Truncating oversized username" msgstr "Dikkat: Normalden buyuk kullanici adi bolumu kucultuluyor" msgid "Western Sahara" msgstr "Bati Sahara" msgid "Yemen" msgstr "Yemen" msgid "Yugoslavia" msgstr "Yugoslavya" msgid "Zaire" msgstr "Zaire" msgid "Zambia" msgstr "Zambia" msgid "Zimbabwe" msgstr "Zimbabve" msgid "[options] [log file]" msgstr "[opsiyonlar] [kutuk dosyasi]" msgid "addresses" msgstr "addres" msgid "bad" msgstr "kotu" msgid "current directory" msgstr "su anki dizin" msgid "ignored" msgstr "islenmedi" msgid "in" msgstr "" msgid "of" msgstr "/" msgid "records" msgstr "kayit" msgid "seconds" msgstr "saniyede" webdruid-0.5.4.orig/po/nl.po0000644000000000000000000006742610066113350015623 0ustar rootroot00000000000000msgid "" msgstr "" "Project-Id-Version: 1.0\n" "PO-Revision-Date: 2003-05-25 23:29+0200\n" "Last-Translator: Johan Poirier \n" "Language-Team: French \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=ISO-8859-1\n" "Content-Transfer-Encoding: 8bit" msgid "-A num = Display num top agents" msgstr "-A num = Toon top 'num' browsers" msgid "-C num = Display num top countries" msgstr "-C num = Toon top 'num' landen" msgid "-D name = Use DNS Cache file 'name'" msgstr "-D name = Gebruik DNS Cache bestand 'name'" msgid "-E num = Display num top Exit Pages" msgstr "-E num = Toon top 'num' laatste pagina's van bezoekers" msgid "-F type = Log type. type= (clf | ftp | squid)" msgstr "-F type = Log formaat type. type= (clf | ftp | squid)" msgid "-G = supress hourly graph" msgstr "-G = Geen uur-grafieken" msgid "-H = supress hourly stats" msgstr "-H = Geen uur-statistieken" msgid "-I name = Index alias 'name'" msgstr "-I naam = Index alias 'naam'" msgid "-L = supress color coded graph legends" msgstr "-L = Geen legenda" msgid "-N num = Number of DNS processes (0=disable)" msgstr "-N num = Aantal DNS processen (0=uitschakelen)" msgid "-P name = Page type extension 'name'" msgstr "-P naam = Paginatype-extensie 'naam'" msgid "-Q = supress _ALL_ messages" msgstr "-Q = Geen enkele info, ook geen foutmeldingen" msgid "-R num = Display num top referrers" msgstr "-R num = Toon top 'num' verwijzende pagina's" msgid "-S num = Display num top sites" msgstr "-S num = Toon top 'num' hosts" msgid "-T = print timing information" msgstr "-T = Geef verwerkingstijd informatie" msgid "-U num = Display num top URLs" msgstr "-U num = Toon top 'num' URL's" msgid "-X = Hide individual sites" msgstr "-X = Laat alle individuele hosts weg" msgid "-Y = supress country graph" msgstr "-Y = Geen land-grafieken" msgid "-a name = hide user agent 'name'" msgstr "-a naam = Laat browser 'naam' weg" msgid "-c file = use configuration file 'file'" msgstr "-c bestand = Gebruik configuratie 'bestand'" msgid "-d = print additional debug info" msgstr "-d = Debug informatie" msgid "-e num = Display num top Entry Pages" msgstr "-e num = Toon top 'num' eerste pagina's van bezoekers" msgid "-f = Fold sequence errors" msgstr "-f = Forceer chronologische volgorde" msgid "-g num = Group Domains to 'num' levels" msgstr "-g num = Groepeer Domeinen op 'num' niveaus" msgid "-h = print this help message" msgstr "-h = Deze helptekst" msgid "-i = ignore history file" msgstr "-i = Negeer 'history' bestand" msgid "-l num = use num background lines on graph" msgstr "-l num = Gebruik [num] achtergrondregels in grafiek" msgid "-m num = Visit timout value (seconds)" msgstr "-m num = Bezoeker-onderbreking waarde (seconds)" msgid "-n name = hostname to use" msgstr "-n naam = Gebruik host 'naam'" msgid "-o dir = output directory to use" msgstr "-o dir = Schrijf bestanden naar directory 'dir'" msgid "-p = preserve state (incremental)" msgstr "-p = Bewaar status (incremental)" msgid "-q = supress informational messages" msgstr "-q = Geen informatieve info, wel foutmeldingen" msgid "-r name = hide referrer 'name'" msgstr "-r naam = Laat verwijzende pagina 'naam' weg" msgid "-s name = hide site 'name'" msgstr "-s naam = Laat host 'naam' weg" msgid "-t name = report title 'name'" msgstr "-t naam = Rapporttitel 'naam'" msgid "-u name = hide URL 'name'" msgstr "-u naam = Laat URL 'naam' weg" msgid "-v -V = print version information" msgstr "-v -V = Toon versie-informatie" msgid "-x name = Use filename extension 'name'" msgstr "-x naam = Gebruik bestands-extensie 'naam'" msgid "Afghanistan" msgstr "Afghanistan (.af)" msgid "Agents" msgstr "Browsers" msgid "Albania" msgstr "Albanie (.al)" msgid "Algeria" msgstr "Algarije (.dz)" msgid "American Samoa" msgstr "Amerikaans Samoa (.as)" msgid "Andorra" msgstr "Andorra (.ad)" msgid "Angola" msgstr "Angola (.ao)" msgid "Anguilla" msgstr "Anguilla (.ai)" msgid "Antarctica" msgstr "Antarctica (.aq)" msgid "Antigua and Barbuda" msgstr "Antigua en Barbuda (.ag)" msgid "Apr" msgstr "apr" msgid "April" msgstr "april" msgid "Argentina" msgstr "Argentinie (.ar)" msgid "Armenia" msgstr "Armenie (.am)" msgid "Aruba" msgstr "Aruba (.aw)" msgid "Aug" msgstr "aug" msgid "August" msgstr "augustus" msgid "Australia" msgstr "Australie (.au)" msgid "Austria" msgstr "Oostenrijk (.at)" msgid "Avg" msgstr "Gem." msgid "Azerbaijan" msgstr "Azarbadzjan (.az)" msgid "Bahamas" msgstr "Bahamas (.bs)" msgid "Bahrain" msgstr "Bahrijn (.bh)" msgid "Bangladesh" msgstr "Bangladesh (.bd)" msgid "Barbados" msgstr "Barbados (.bb)" msgid "Belarus" msgstr "Belarus (.by)" msgid "Belgium" msgstr "Belgie (.be)" msgid "Belize" msgstr "Belize(.bz)" msgid "Benin" msgstr "Benin (.bj)" msgid "Bermuda" msgstr "Bermuda (.bm)" msgid "Bhutan" msgstr "Bhutan (.bt)" msgid "Bolivia" msgstr "Bolivie (.bo)" msgid "Bosnia and Herzegovina" msgstr "Bosnie / Herzegovina (.ba)" msgid "Botswana" msgstr "Botswana (.bw)" msgid "Bouvet Island" msgstr "Bouvet Eiland (.bv)" msgid "Brazil" msgstr "Brazilie (.br)" msgid "British Indian Ocean Territory" msgstr "British Indian Ocean Territory (.io)" msgid "Brunei Darussalam" msgstr "Brunei Darussalam (.bn)" msgid "Bulgaria" msgstr "Bulgarije (.bg)" msgid "Burkina Faso" msgstr "Burkina Faso (.bf)" msgid "Burundi" msgstr "Burundi (.bi)" msgid "By" msgstr "gesorteerd op" msgid "Cambodia" msgstr "Cambodja (.kh)" msgid "Cameroon" msgstr "Kameroen (.cm)" msgid "Can't allocate enough memory, Top Countries disabled!" msgstr "Onvoldoende geheugen beschikbaar, Top landen overgeslagen!" msgid "Can't allocate enough memory, Top Referrers disabled!" msgstr "Onvoldoende geheugen beschikbaar, Top verwijzende pagina's overgeslagen!" msgid "Can't allocate enough memory, Top Search Strings disabled!" msgstr "Onvoldoende geheugen beschikbaar, Top zoekopdrachten overgeslagen!" msgid "Can't allocate enough memory, Top Sites disabled!" msgstr "Onvoldoende geheugen beschikbaar, Top hosts overgeslagen!" msgid "Can't allocate enough memory, Top URLs disabled!" msgstr "Onvoldoende geheugen beschikbaar, Top URL's overgeslagen!" msgid "Can't allocate enough memory, Top User Agents disabled!" msgstr "Onvoldoende geheugen beschikbaar, Top browsers overgeslagen!" msgid "Can't allocate enough memory, Top Usernames disabled!" msgstr "Onvoldoende geheugen beschikbaar, Top gebruikersnamen overgeslagen!" msgid "Canada" msgstr "Canada (.ca)" msgid "Cape Verde" msgstr "Kaapverdie (.cv)" msgid "Cayman Islands" msgstr "Kaaiman Eilanden (.ky)" msgid "Central African Republic" msgstr "Central Afrikaanse Republiek (.cf)" msgid "Chad" msgstr "Tsjaad (.td)" msgid "Chile" msgstr "Chili (.cl)" msgid "China" msgstr "China (.cn)" msgid "Christmas Island" msgstr "Christmas Island (.cx)" msgid "Cocos (Keeling) Islands" msgstr "Cocos (Keeling) Eilanden (.cc)" msgid "Code 100 - Continue" msgstr "Code 100 - Continue" msgid "Code 101 - Switching Protocols" msgstr "Code 101 - Switching Protocols" msgid "Code 200 - OK" msgstr "Code 200 - OK" msgid "Code 201 - Created" msgstr "Code 201 - Created" msgid "Code 202 - Accepted" msgstr "Code 202 - Accepted" msgid "Code 203 - Non-Authoritative Information" msgstr "Code 203 - Non-Authoritative Information" msgid "Code 204 - No Content" msgstr "Code 204 - No Content" msgid "Code 205 - Reset Content" msgstr "Code 205 - Reset Content" msgid "Code 206 - Partial Content" msgstr "Code 206 - Partial Content" msgid "Code 300 - Multiple Choices" msgstr "Code 300 - Multiple Choices" msgid "Code 301 - Moved Permanently" msgstr "Code 301 - Moved Permanently" msgid "Code 302 - Found" msgstr "Code 302 - Found" msgid "Code 303 - See Other" msgstr "Code 303 - See Other" msgid "Code 304 - Not Modified" msgstr "Code 304 - Not Modified" msgid "Code 305 - Use Proxy" msgstr "Code 305 - Use Proxy" msgid "Code 307 - Moved Temporarily" msgstr "Code 307 - Moved Temporarily" msgid "Code 400 - Bad Request" msgstr "Code 400 - Bad Request" msgid "Code 401 - Unauthorized" msgstr "Code 401 - Unauthorized" msgid "Code 402 - Payment Required" msgstr "Code 402 - Payment Required" msgid "Code 403 - Forbidden" msgstr "Code 403 - Forbidden" msgid "Code 404 - Not Found" msgstr "Code 404 - Not Found" msgid "Code 405 - Method Not Allowed" msgstr "Code 405 - Method Not Allowed" msgid "Code 406 - Not Acceptable" msgstr "Code 406 - Not Acceptable" msgid "Code 407 - Proxy Authentication Required" msgstr "Code 407 - Proxy Authentication Required" msgid "Code 408 - Request Timeout" msgstr "Code 408 - Request Timeout" msgid "Code 409 - Conflict" msgstr "Code 409 - Conflict" msgid "Code 410 - Gone" msgstr "Code 410 - Gone" msgid "Code 411 - Length Required" msgstr "Code 411 - Length Required" msgid "Code 412 - Precondition Failed" msgstr "Code 412 - Precondition Failed" msgid "Code 413 - Request Entity Too Large" msgstr "Code 413 - Request Entity Too Large" msgid "Code 414 - Request-URI Too Long" msgstr "Code 414 - Request-URI Too Long" msgid "Code 415 - Unsupported Media Type" msgstr "Code 415 - Unsupported Media Type" msgid "Code 416 - Requested Range Not Satisfiable" msgstr "Code 416 - Requested Range Not Satisfiable" msgid "Code 417 - Expectation Failed" msgstr "Code 417 - Expectation Failed" msgid "Code 500 - Internal Server Error" msgstr "Code 500 - Internal Server Error" msgid "Code 501 - Not Implemented" msgstr "Code 501 - Not Implemented" msgid "Code 502 - Bad Gateway" msgstr "Code 502 - Bad Gateway" msgid "Code 503 - Service Unavailable" msgstr "Code 503 - Service Unavailable" msgid "Code 504 - Gateway Timeout" msgstr "Code 504 - Gateway Timeout" msgid "Code 505 - HTTP Version Not Supported" msgstr "Code 505 - HTTP Version Not Supported" msgid "Colombia" msgstr "Colombia (.co)" msgid "Comoros" msgstr "Comoros (.km)" msgid "Congo" msgstr "Congo (.cg)" msgid "Cook Islands" msgstr "Cook Eilanden (.ck)" msgid "Costa Rica" msgstr "Costa Rica (.cr)" msgid "Cote D'Ivoire (Ivory Coast)" msgstr "Cote D'Ivoire (Ivoorkust) (.ci)" msgid "Countries" msgstr "Landen" msgid "Country" msgstr "Land" msgid "Creating output in" msgstr "Schrijf gegevens naar" msgid "Croatia (Hrvatska)" msgstr "Kroatie (Hrvatska, .hr)" msgid "Cuba" msgstr "Cuba (.cu)" msgid "Cyprus" msgstr "Cyprus (.cy)" msgid "Czech Republic" msgstr "Tsjechische republiek (.cz)" msgid "Czechoslovakia (former)" msgstr "Czechoslowakije (voorheen, .cs)" msgid "DNS Lookup" msgstr "DNS Aanvraag" msgid "Daily Avg" msgstr "Dagelijks gemiddelde" msgid "Daily Statistics" msgstr "Overzicht per dag" msgid "Daily Statistics for" msgstr "Overzicht per dag -" msgid "Daily usage for" msgstr "Dagelijks bezoek -" msgid "Day" msgstr "Dag" msgid "Dec" msgstr "dec" msgid "December" msgstr "december" msgid "Denmark" msgstr "Denemarken (.dk)" msgid "Djibouti" msgstr "Djibouti (.dj)" msgid "Dominica" msgstr "Dominica (.dm)" msgid "Dominican Republic" msgstr "Dominikaanse Republiek (.do)" msgid "East Timor" msgstr "Oost Timor (.tp)" msgid "Ecuador" msgstr "Ecuador (.ec)" msgid "Egypt" msgstr "Egypte (.eg)" msgid "El Salvador" msgstr "El Salvador (.sv)" msgid "English" msgstr "Nederlands" msgid "Entry" msgstr "Eerste" msgid "Equatorial Guinea" msgstr "Equatoriaal Guinea (.gq)" msgid "Eritrea" msgstr "Eritrea (.er)" msgid "Error adding Referrer node, skipping" msgstr "Fout bij toevoegen van verwijzende pagina, overgeslagen!" msgid "Error adding Search String Node, skipping" msgstr "Fout bij toevoegen van tekst-node, overgeslagen!" msgid "Error adding URL node, skipping" msgstr "Fout bij toevoegen van URL, overgeslagen!" msgid "Error adding User Agent node, skipping" msgstr "Fout bij toevoegen van browser, overgeslagen!" msgid "Error adding Username node, skipping" msgstr "Fout bij toevoegen van Gebruikersnaam, overgeslagen!" msgid "Error adding host node (daily), skipping" msgstr "Fout bij toevoegen van host (dagrapport), overgeslagen!" msgid "Error adding host node (monthly), skipping" msgstr "Fout bij toevoegen van host (maandrapport), overgeslagen!" msgid "Error: Can't change directory to" msgstr "Fout: kan werk-directory niet veranderen naar" msgid "Error: Can't open log file" msgstr "Fout: kan het logbestand niet openen" msgid "Error: Ignoring invalid history record" msgstr "Fout: ongeldig history record (wordt genegeerd)" msgid "Error: Skipping oversized log record" msgstr "Fout: te groot log-record (overgeslagen)" msgid "Error: Skipping record (bad date)" msgstr "Fout: foute datum (record overgeslagen)" msgid "Error: Unable to lock DNS cache file" msgstr "Fout: kan het DNS cache bestand niet reserveren" msgid "Error: Unable to open DNS cache file" msgstr "Fout: kan het DNS cache bestand niet openen" msgid "Error: Unable to open configuration file" msgstr "Fout: kan configuratie-bestand niet openen" msgid "Error: Unable to open file" msgstr "Fout: kan bestand niet openen!" msgid "Error: Unable to restore run data" msgstr "Fout: kan sessie (gegevens) niet inlezen" msgid "Error: Unable to save current run data" msgstr "Fout: kan sessie (gegevens) niet bewaren" msgid "Error: Unable to write history file" msgstr "Fout: kan history bestand niet schrijven" msgid "Estonia" msgstr "Estland (.ee)" msgid "Ethiopia" msgstr "Ethiopie (.et)" msgid "Exit" msgstr "Laatste" msgid "Falkland Islands (Malvinas)" msgstr "Falkland Eilanden (Malvinas, .fk)" msgid "Faroe Islands" msgstr "Faroe Eilanden (.fo)" msgid "Feb" msgstr "feb" msgid "February" msgstr "februari" msgid "Fiji" msgstr "Fiji (.fj)" msgid "Files" msgstr "Bestanden" msgid "Files per Day" msgstr "Bestanden per dag" msgid "Finland" msgstr "Finland (.fi)" msgid "France" msgstr "Frankrijk (.fr)" msgid "France; Metropolitan" msgstr "Frankrijk, Metropolitan (.fx)" msgid "French Guiana" msgstr "Frans Guiana (.gf)" msgid "French Polynesia" msgstr "Frans Polynesie (.pf)" msgid "French Southern Territories" msgstr "Zuidelijke Franse Terr. (.tf)" msgid "Gabon" msgstr "Gabon (.ga)" msgid "Gambia" msgstr "Gambia (.gm)" msgid "Generated" msgstr "Gegenereerd op" msgid "Generating report for" msgstr "Genereer rapport voor" msgid "Generating summary report" msgstr "Genereer samenvattingsrapport" msgid "Georgia" msgstr "Georgie (.ge)" msgid "Germany" msgstr "Duitsland (.de)" msgid "Ghana" msgstr "Ghana (.gh)" msgid "Gibraltar" msgstr "Gibraltar (.gi)" msgid "Great Britain (UK)" msgstr "Groot Britannie (UK, .gb)" msgid "Greece" msgstr "Griekenland (.gr)" msgid "Greenland" msgstr "Groenland (.gl)" msgid "Grenada" msgstr "Grenada (.gd)" msgid "Guadeloupe" msgstr "Guadeloupe (.gp)" msgid "Guam" msgstr "Guam (.gu)" msgid "Guatemala" msgstr "Guatemala (.gt)" msgid "Guinea" msgstr "Guinea (.gn)" msgid "Guinea-Bissau" msgstr "Guinea-Bissau (.gw)" msgid "Guyana" msgstr "Guyana (.gy)" msgid "Haiti" msgstr "Haiti (.ht)" msgid "Heard and McDonald Islands" msgstr "Heard en McDonald Eilanden (.hm)" msgid "History file not found..." msgstr "History bestand niet gevonden..." msgid "Hits" msgstr "Hits" msgid "Hits by Response Code" msgstr "Hits per 'Response Code'" msgid "Hits per Day" msgstr "Hits per dag" msgid "Hits per Hour" msgstr "Hits per uur" msgid "Honduras" msgstr "Honduras (.hn)" msgid "Hong Kong" msgstr "Hong Kong (.hk)" msgid "Hostname" msgstr "Host(naam)" msgid "Hostname for reports is" msgstr "De 'Hostname' voor het rapport is" msgid "Hour" msgstr "Uur" msgid "Hourly Statistics" msgstr "Overzicht per uur" msgid "Hourly Statistics for" msgstr "Overzicht per uur -" msgid "Hourly usage for" msgstr "Bezoek per uur -" msgid "Hungary" msgstr "Hongarije (.hu)" msgid "Iceland" msgstr "IJsland (.is)" msgid "Ignoring previous history..." msgstr "Negeer oude history..." msgid "India" msgstr "India (.in)" msgid "Indonesia" msgstr "Indonesie (.id)" msgid "International (int)" msgstr "Internationaal (.int)" msgid "Iran" msgstr "Iran (.ir)" msgid "Iraq" msgstr "Iraq (.iq)" msgid "Ireland" msgstr "Ierland (.ie)" msgid "Israel" msgstr "Israel (.il)" msgid "Italy" msgstr "Italie (.it)" msgid "Jamaica" msgstr "Jamaica (.jm)" msgid "Jan" msgstr "jan" msgid "January" msgstr "januari" msgid "Japan" msgstr "Japan (.jp)" msgid "Jordan" msgstr "Jordanie (.jo)" msgid "Jul" msgstr "jul" msgid "July" msgstr "juli" msgid "Jun" msgstr "jun" msgid "June" msgstr "juni" msgid "KBytes" msgstr "kB" msgid "KBytes per Day" msgstr "Kilobytes per dag" msgid "Kazakhstan" msgstr "Kazachstan (.kz)" msgid "Kenya" msgstr "Kenia (.ke)" msgid "Kiribati" msgstr "Kiribati (.ki)" msgid "Korea (North)" msgstr "Korea (Noord, .kp)" msgid "Korea (South)" msgstr "Korea (Zuid, .kr)" msgid "Kuwait" msgstr "Koeweit (.kw)" msgid "Kyrgyzstan" msgstr "Kyrgyzstan (.kg)" msgid "Laos" msgstr "Laos (.la)" msgid "Last 12 Months" msgstr "afgelopen 12 maanden" msgid "Latvia" msgstr "Latvia (.lv)" msgid "Lebanon" msgstr "Libanon (.lb)" msgid "Lesotho" msgstr "Lesotho (.ls)" msgid "Liberia" msgstr "Liberie (.lr)" msgid "Libya" msgstr "Libie (.ly)" msgid "Liechtenstein" msgstr "Liechtenstein (.li)" msgid "Lithuania" msgstr "Litauwen (.lt)" msgid "Luxembourg" msgstr "Luxemburg (.lu)" msgid "Macau" msgstr "Macau (.mo)" msgid "Macedonia" msgstr "Macedonie (.mk)" msgid "Madagascar" msgstr "Madagascar (.mg)" msgid "Malawi" msgstr "Malawi (.mw)" msgid "Malaysia" msgstr "Maleisie (.my)" msgid "Maldives" msgstr "Maldiven (.mv)" msgid "Mali" msgstr "Mali (.ml)" msgid "Malta" msgstr "Malta (.mt)" msgid "Mar" msgstr "mar" msgid "March" msgstr "maart" msgid "Marshall Islands" msgstr "Marshall Eilanden (.mh)" msgid "Martinique" msgstr "Martinique (.mq)" msgid "Mauritania" msgstr "Mauritanie (.mr)" msgid "Mauritius" msgstr "Mauritius (.mu)" msgid "Max" msgstr "Max." msgid "May" msgstr "mei" msgid "Mayotte" msgstr "Mayotte (.yt)" msgid "Mexico" msgstr "Mexico (.mx)" msgid "Micronesia" msgstr "Micronesie (.fm)" msgid "Moldova" msgstr "Moldova (.md)" msgid "Monaco" msgstr "Monaco (.mc)" msgid "Mongolia" msgstr "Mongolie (.mn)" msgid "Month" msgstr "Maand" msgid "Monthly Statistics for" msgstr "Maandoverzicht -" msgid "Monthly Totals" msgstr "Totalen per maand" msgid "Montserrat" msgstr "Montserrat (.ms)" msgid "Morocco" msgstr "Marokko (.ma)" msgid "Mozambique" msgstr "Mozambique (.mz)" msgid "Myanmar" msgstr "Myanmar (.mm)" msgid "Namibia" msgstr "Namibie (.na)" msgid "Nato field (nato)" msgstr "Nato (.nato)" msgid "Nauru" msgstr "Nauru (.nr)" msgid "Nepal" msgstr "Nepal (.np)" msgid "Netherlands" msgstr "Nederland (.nl)" msgid "Netherlands Antilles" msgstr "Nederlandse Antillen (.an)" msgid "Network" msgstr "'Netwerk' (.net)" msgid "Neutral Zone" msgstr "Neutral Zone (.nt)" msgid "New Caledonia" msgstr "New Caledonia (.nc)" msgid "New Zealand (Aotearoa)" msgstr "Nieuw Zeeland (.nz)" msgid "Nicaragua" msgstr "Nicaragua (.ni)" msgid "Niger" msgstr "Niger (.ne)" msgid "Nigeria" msgstr "Nigeria (.ng)" msgid "Niue" msgstr "Niue (.nu)" msgid "No cache file specified, aborting..." msgstr "Geen cache bestand opgegeven, programma wordt afgebroken..." msgid "No valid records found!" msgstr "Geen geldige records gevonden!" msgid "Non-Profit Organization" msgstr "Non-Profit organisatie (.org)" msgid "None to process" msgstr "Niets te verwerken" msgid "Norfolk Island" msgstr "Norfolk Eiland (.nf)" msgid "Northern Mariana Islands" msgstr "Noordelijke Mariana Eilanden (.mp)" msgid "Norway" msgstr "Noorwegen (.no)" msgid "Nov" msgstr "nov" msgid "November" msgstr "november" msgid "Oct" msgstr "okt" msgid "October" msgstr "oktober" msgid "Old style Arpanet (arpa)" msgstr "Arpanet (arpa, oude stijl)" msgid "Oman" msgstr "Oman (.om)" msgid "Other" msgstr "Anders" msgid "Pages" msgstr "Pagina's" msgid "Pages per Day" msgstr "Pagina's per dag" msgid "Pakistan" msgstr "Pakistan (.pk)" msgid "Palau" msgstr "Palau (.pw)" msgid "Panama" msgstr "Panama (.pa)" msgid "Papua New Guinea" msgstr "Papua Nieuw Guinea (.pg)" msgid "Paraguay" msgstr "Paraguay (.py)" msgid "Peru" msgstr "Peru (.pe)" msgid "Philippines" msgstr "Philippijnen (.ph)" msgid "Pitcairn" msgstr "Pitcairn (.pn)" msgid "Poland" msgstr "Polen (.pl)" msgid "Portugal" msgstr "Portugal (.pt)" msgid "Previous run data not found..." msgstr "Gegevens eerdere sessie niet gevonden..." msgid "Puerto Rico" msgstr "Puerto Rico (.pr)" msgid "Qatar" msgstr "Qatar (.qa)" msgid "Reading history file..." msgstr "Lees history bestand..." msgid "Reading previous run data..." msgstr "Lees gegevens van eerdere sessie..." msgid "Referrer" msgstr "Verwijzing" msgid "Referrers" msgstr "Verwijzers" msgid "Reunion" msgstr "Reunion (.re)" msgid "Romania" msgstr "Romania (.ro)" msgid "Russian Federation" msgstr "Russische Federatie (.ru)" msgid "Rwanda" msgstr "Rwanda (.rs)" msgid "S. Georgia and S. Sandwich Isls." msgstr "S. Georgia en S. Sandwich Eil. (.gs)" msgid "Saint Kitts and Nevis" msgstr "Saint Kitts en Nevis (.kn)" msgid "Saint Lucia" msgstr "Sint Lucia (.lc)" msgid "Saint Vincent and the Grenadines" msgstr "Saint Vincent en de Grenadinen (.vc)" msgid "Samoa" msgstr "Samoa (.ws)" msgid "San Marino" msgstr "San Marino (.sm)" msgid "Sao Tome and Principe" msgstr "Sao Tome en Principe (.st)" msgid "Saudi Arabia" msgstr "Saudi Arabie (.sa)" msgid "Saving current run data..." msgstr "Bewaar gegevens huidige sessie..." msgid "Saving history information..." msgstr "Bewaar history informatie..." msgid "Search" msgstr "Zoekopdrachten" msgid "Search String" msgstr "Zoekopdracht" msgid "Senegal" msgstr "Senegal (.sn)" msgid "Sep" msgstr "sep" msgid "September" msgstr "september" msgid "Seychelles" msgstr "Seychellen (.sc)" msgid "Sierra Leone" msgstr "Sierra Leone (.sl)" msgid "Singapore" msgstr "Singapore (.sg)" msgid "Sites" msgstr "Hosts" msgid "Skipping Netscape header record" msgstr "Netscape header record (wordt genegeerd)" msgid "Skipping bad record" msgstr "Foutief record (wordt genegeerd)" msgid "Slovak Republic" msgstr "Slovakije (.sk)" msgid "Slovenia" msgstr "Slovenie (.si)" msgid "Solomon Islands" msgstr "Solomon Eilanden (.sb)" msgid "Somalia" msgstr "Somalie (.so)" msgid "South Africa" msgstr "Zuid Africa (.za)" msgid "Spain" msgstr "Spanje (.es)" msgid "Sri Lanka" msgstr "Sri Lanka (.lk)" msgid "St. Helena" msgstr "St. Helena (.sh)" msgid "St. Pierre and Miquelon" msgstr "St. Pierre en Miquelon (.pm)" msgid "Sudan" msgstr "Soedan (.sd)" msgid "Summary Period" msgstr "Samenvatting periode" msgid "Summary by Month" msgstr "Samenvatting per maand" msgid "Suriname" msgstr "Suriname (.sr)" msgid "Svalbard and Jan Mayen Islands" msgstr "Svalbard en Jan Mayen Eilanden (.sj)" msgid "Swaziland" msgstr "Swaziland (.sz)" msgid "Sweden" msgstr "Zweden (.se)" msgid "Switzerland" msgstr "Zwitserland (.ch)" msgid "Syria" msgstr "Syrie (.sy)" msgid "Taiwan" msgstr "Taiwan (.tw)" msgid "Tajikistan" msgstr "Tadzjikistan (.tj)" msgid "Tanzania" msgstr "Tanzania (.tz)" msgid "Thailand" msgstr "Thailand (.th)" msgid "Togo" msgstr "Togo (.tg)" msgid "Tokelau" msgstr "Tokelau (.tk)" msgid "Tonga" msgstr "Tonga (.to)" msgid "Top" msgstr "Top" msgid "Total" msgstr "Totaal" msgid "Total Countries" msgstr "landen" msgid "Total Entry Pages" msgstr "eerste pagina's" msgid "Total Exit Pages" msgstr "laatste pagina's" msgid "Total Files" msgstr "Totaal bestanden" msgid "Total Hits" msgstr "Totaal hits" msgid "Total KBytes" msgstr "Totaal kilobytes" msgid "Total Referrers" msgstr "verwijzende pagina's" msgid "Total Search Strings" msgstr "zoekopdrachten" msgid "Total Sites" msgstr "hosts" msgid "Total URLs" msgstr "URL's" msgid "Total Unique Referrers" msgstr "Totaal verschillende verwijzers" msgid "Total Unique Sites" msgstr "Totaal verschillende hosts" msgid "Total Unique URLs" msgstr "Totaal verschillende URL's" msgid "Total Unique User Agents" msgstr "Totaal verschillende browsers" msgid "Total Unique Usernames" msgstr "Totaal verschillende gebruikersnamen" msgid "Total User Agents" msgstr "browsers" msgid "Total Usernames" msgstr "gebruikersnamen" msgid "Totals" msgstr "Totalen" msgid "Trinidad and Tobago" msgstr "Trinidad en Tobago (.tt)" msgid "Tunisia" msgstr "Tunesie (.tn)" msgid "Turkey" msgstr "Turkije (.tr)" msgid "Turkmenistan" msgstr "Turkmenistan (.tm)" msgid "Turks and Caicos Islands" msgstr "Turkse- en Caicos Eilanden (.tc)" msgid "Tuvalu" msgstr "Tuvalu (.tv)" msgid "URL" msgstr "URL" msgid "URLs" msgstr "URL's" msgid "US Commercial" msgstr "Commercieel (.com)" msgid "US Educational" msgstr "Onderwijs/onderzoek (.edu)" msgid "US Government" msgstr "Overheid (.gov)" msgid "US Military" msgstr "Militair (.mil)" msgid "US Minor Outlying Islands" msgstr "US Minor buitenliggende eilanden (.um)" msgid "USSR (former)" msgstr "USSR (voorheen, .su)" msgid "Uganda" msgstr "Uganda (.ug)" msgid "Ukraine" msgstr "Ukraine (.ua)" msgid "Undefined response code" msgstr "Onbekende 'response code'" msgid "United Arab Emirates" msgstr "Ver. Arab. Emiraten (.ae)" msgid "United Kingdom" msgstr "Ver. Koninkrijk (UK, .uk)" msgid "United States" msgstr "Verenigde Staten (USA, .us)" msgid "Unresolved/Unknown" msgstr "Numeriek IP/onbekend" msgid "Uruguay" msgstr "Uruguay (.uy)" msgid "Usage" msgstr "Gebruiksaanwijzing" msgid "Usage Statistics for" msgstr "Rapport voor website" msgid "Usage by Country for" msgstr "Overzicht per land -" msgid "Usage summary for" msgstr "Samenvatting -" msgid "User Agent" msgstr "Browser" msgid "Username" msgstr "Gebruikersnaam" msgid "Users" msgstr "Gebruikersnamen" msgid "Using DNS cache file" msgstr "Het DNS cache bestand wordt gebruikt" msgid "Using logfile" msgstr "Gebruik logbestand" msgid "Uzbekistan" msgstr "Uzbekistan (.uz)" msgid "Vanuatu" msgstr "Vanuatu (.vu)" msgid "Vatican City State (Holy See)" msgstr "Vatikaanstad (.va)" msgid "Venezuela" msgstr "Venezuela (.ve)" msgid "Viet Nam" msgstr "Vietnam (.vn)" msgid "View All Referrers" msgstr "Toon alle verwijzende pagina's" msgid "View All Search Strings" msgstr "Toon alle zoekopdrachten" msgid "View All Sites" msgstr "Toon alle hosts" msgid "View All URLs" msgstr "Toon alle URL's" msgid "View All User Agents" msgstr "Toon alle browsers" msgid "View All Usernames" msgstr "Toon alle gebruikersnamen" msgid "Virgin Islands (British)" msgstr "Virgin Islands (British, .vg)" msgid "Virgin Islands (U.S.)" msgstr "Virgin Islands (U.S., .vi)" msgid "Visits" msgstr "Bezoeken" msgid "Visits per Day" msgstr "Bezoeken per dag" msgid "Wallis and Futuna Islands" msgstr "Wallis en Futuna Eilanden (.wf)" msgid "Warning: Invalid keyword" msgstr "Waarschuwing: ongeldig 'keyword'" msgid "Warning: Possible duplicate data found" msgstr "Waarschuwing: mogelijk dubbele gegevens gevonden" msgid "Warning: String exceeds storage size" msgstr "Waarschuwing: regel past niet in beschikbare geheugenruimte" msgid "Warning: Truncating oversized date field" msgstr "Waarschuwing: te lang datum veld: ingekort" msgid "Warning: Truncating oversized hostname" msgstr "Waarschuwing: te lange hostnaam: ingekort" msgid "Warning: Truncating oversized referrer field" msgstr "Waarschuwing: te lang veld voor verwijzende pagina: ingekort" msgid "Warning: Truncating oversized request field" msgstr "Waarschuwing: te lang aanvraag veld: ingekort" msgid "Warning: Truncating oversized username" msgstr "Waarschuwing: te lang veld voor gebruikersnaam: ingekort" msgid "Western Sahara" msgstr "Westelijke Sahara (.eh)" msgid "Yemen" msgstr "Jemen (.ye)" msgid "Yugoslavia" msgstr "Joegoslavie (.yu)" msgid "Zaire" msgstr "Zaire (.zr)" msgid "Zambia" msgstr "Zambia (.zm)" msgid "Zimbabwe" msgstr "Zimbabwe (.zw)" msgid "[options] [log file]" msgstr "[opties] [log-bestand]" msgid "addresses" msgstr "adressen" msgid "bad" msgstr "fout" msgid "current directory" msgstr "werk-directory" msgid "ignored" msgstr "genegeerd" msgid "in" msgstr "in" msgid "of" msgstr "van" msgid "records" msgstr "records" msgid "seconds" msgstr "seconden" webdruid-0.5.4.orig/po/et.po0000644000000000000000000006372710066113350015622 0ustar rootroot00000000000000msgid "" msgstr "" "Project-Id-Version: 1.0\n" "PO-Revision-Date: 2003-05-25 23:29+0200\n" "Last-Translator: Johan Poirier \n" "Language-Team: French \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=ISO-8859-1\n" "Content-Transfer-Encoding: 8bit" msgid "-A num = Display num top agents" msgstr "-A num = kuva esimesed {num} lehitsejat" msgid "-C num = Display num top countries" msgstr "-C num = kuva esimesed {num} maad" msgid "-D name = Use DNS Cache file 'name'" msgstr "-D name = Use DNS Cache file 'name'" msgid "-E num = Display num top Exit Pages" msgstr "-E num = kuva esimesed {num} vljundpunkti" msgid "-F type = Log type. type= (clf | ftp | squid)" msgstr "-F type = Log type. type= (clf | ftp | squid)" msgid "-G = supress hourly graph" msgstr "-G = keela tunnigraafik" msgid "-H = supress hourly stats" msgstr "-H = keela tunnistatistika" msgid "-I name = Index alias 'name'" msgstr "-I name = indexfaili nimi on 'name'" msgid "-L = supress color coded graph legends" msgstr "-L = keela vrvilegendide kuva" msgid "-N num = Number of DNS processes (0=disable)" msgstr "-N num = Number of DNS processes (0=disable)" msgid "-P name = Page type extension 'name'" msgstr "-P name = lehekljeks loetakse faili laiendiga 'name'" msgid "-Q = supress _ALL_ messages" msgstr "-Q = keela KIK teated" msgid "-R num = Display num top referrers" msgstr "-R num = kuva esimesed {num} linkijat" msgid "-S num = Display num top sites" msgstr "-S num = kuva esimesed {num} arvutit" msgid "-T = print timing information" msgstr "-T = kuva ajakulu info" msgid "-U num = Display num top URLs" msgstr "-U num = kuva esimesed {num} URL-i" msgid "-X = Hide individual sites" msgstr "-X = Hide individual sites" msgid "-Y = supress country graph" msgstr "-Y = keela maade graafik" msgid "-a name = hide user agent 'name'" msgstr "-a name = peida ra lehitseja 'name'" msgid "-c file = use configuration file 'file'" msgstr "-c file = kasuta konfiguratsioonifaili 'file'" msgid "-d = print additional debug info" msgstr "-d = kuva tiendav debug info" msgid "-e num = Display num top Entry Pages" msgstr "-e num = kuva esimesed {num} sisendpunkti" msgid "-f = Fold sequence errors" msgstr "-f = ignoreeri kirjete jrjestuse vigu" msgid "-g num = Group Domains to 'num' levels" msgstr "-g num = Group Domains to 'num' levels" msgid "-h = print this help message" msgstr "-h = kuva see help" msgid "-i = ignore history file" msgstr "-i = ignoreeri ajaloofaili" msgid "-l num = use num background lines on graph" msgstr "-l num = kasuta graafikutel {num} horisontaaljoont" msgid "-m num = Visit timout value (seconds)" msgstr "-m num = viisidi timeout vrtus (seconds)" msgid "-n name = hostname to use" msgstr "-n name = kasuta nime {hostname}" msgid "-o dir = output directory to use" msgstr "-o dir = kasuta vljundiks kataloogi {dir}" msgid "-p = preserve state (incremental)" msgstr "-p = silita olek (inkrementaalne rezhiim)" msgid "-q = supress informational messages" msgstr "-q = keela informatiivsed teated" msgid "-r name = hide referrer 'name'" msgstr "-r name = peida ra linkija 'name'" msgid "-s name = hide site 'name'" msgstr "-s name = peida ra arvuti 'name'" msgid "-t name = report title 'name'" msgstr "-t name = raportite pealkiri on 'name'" msgid "-u name = hide URL 'name'" msgstr "-u name = peida ra URL 'name'" msgid "-v -V = print version information" msgstr "-v -V = kuva versiooniinfo" msgid "-x name = Use filename extension 'name'" msgstr "-x name = kasuta faililaiendit 'name'" msgid "Afghanistan" msgstr "Afganistaan" msgid "Agents" msgstr "Lehitsejad" msgid "Albania" msgstr "Albaania" msgid "Algeria" msgstr "Alzheeria" msgid "American Samoa" msgstr "Ameerika Samoa" msgid "Andorra" msgstr "Andorra" msgid "Angola" msgstr "Angoola" msgid "Anguilla" msgstr "Anguilla" msgid "Antarctica" msgstr "Antarktika" msgid "Antigua and Barbuda" msgstr "Antigua ja Barbuda" msgid "Apr" msgstr "Apr" msgid "April" msgstr "Aprill" msgid "Argentina" msgstr "Argentiina" msgid "Armenia" msgstr "Armeenia" msgid "Aruba" msgstr "Aruba" msgid "Aug" msgstr "Aug" msgid "August" msgstr "August" msgid "Australia" msgstr "Austraalia" msgid "Austria" msgstr "Austria" msgid "Avg" msgstr "Keskm" msgid "Azerbaijan" msgstr "Azerbaidzan" msgid "Bahamas" msgstr "Bahama saared" msgid "Bahrain" msgstr "Bahrain" msgid "Bangladesh" msgstr "Bangladesh" msgid "Barbados" msgstr "Barbados" msgid "Belarus" msgstr "Valgevene" msgid "Belgium" msgstr "Belgia" msgid "Belize" msgstr "Belize" msgid "Benin" msgstr "Benin" msgid "Bermuda" msgstr "Bermuda" msgid "Bhutan" msgstr "Bhutan" msgid "Bolivia" msgstr "Boliivia" msgid "Bosnia and Herzegovina" msgstr "Bosnia ja Herzegovina" msgid "Botswana" msgstr "Botswana" msgid "Bouvet Island" msgstr "Bouvet Saar" msgid "Brazil" msgstr "Brasiilia" msgid "British Indian Ocean Territory" msgstr "British Indian Ocean Territory" msgid "Brunei Darussalam" msgstr "Brunei Darussalam" msgid "Bulgaria" msgstr "Bulgaaria" msgid "Burkina Faso" msgstr "Burkina Faso" msgid "Burundi" msgstr "Burundi" msgid "By" msgstr "" msgid "Cambodia" msgstr "Kampuchea" msgid "Cameroon" msgstr "Kameron" msgid "Can't allocate enough memory, Top Countries disabled!" msgstr "Ei suuda reserveerida piisavalt mlu, Maade edetabelit ei tee!" msgid "Can't allocate enough memory, Top Referrers disabled!" msgstr "Ei suuda reserveerida piisavalt mlu, Linkijate edetabelit ei tee!" msgid "Can't allocate enough memory, Top Search Strings disabled!" msgstr "Ei suuda reserveerida piisavalt mlu, Otsistringide edetabelit ei tee!" msgid "Can't allocate enough memory, Top Sites disabled!" msgstr "Ei suuda reserveerida piisavalt mlu, Arvutite edetabelit ei tee!" msgid "Can't allocate enough memory, Top URLs disabled!" msgstr "Ei suuda reserveerida piisavalt mlu, Aadresside edetabelit ei tee!" msgid "Can't allocate enough memory, Top User Agents disabled!" msgstr "Ei suuda reserveerida piisavalt mlu, Lehitsejate edetabelit ei tee!" msgid "Can't allocate enough memory, Top Usernames disabled!" msgstr "Can't allocate enough memory, Top Usernames disabled!" msgid "Canada" msgstr "Kanada" msgid "Cape Verde" msgstr "Cape Verde" msgid "Cayman Islands" msgstr "Kaimani saared" msgid "Central African Republic" msgstr "Kesk-Aafrika Vabariik" msgid "Chad" msgstr "Tshaad" msgid "Chile" msgstr "Tshiili" msgid "China" msgstr "Hiina" msgid "Christmas Island" msgstr "Julusaared" msgid "Cocos (Keeling) Islands" msgstr "Cocos (Keeling) Saared" msgid "Code 100 - Continue" msgstr "Kood 100 - Continue" msgid "Code 101 - Switching Protocols" msgstr "Kood 101 - Switching Protocols" msgid "Code 200 - OK" msgstr "Kood 200 - OK" msgid "Code 201 - Created" msgstr "Kood 201 - Created" msgid "Code 202 - Accepted" msgstr "Kood 202 - Accepted" msgid "Code 203 - Non-Authoritative Information" msgstr "Kood 203 - Non-Authoritative Information" msgid "Code 204 - No Content" msgstr "Kood 204 - No Content" msgid "Code 205 - Reset Content" msgstr "Kood 205 - Reset Content" msgid "Code 206 - Partial Content" msgstr "Kood 206 - Partial Content" msgid "Code 300 - Multiple Choices" msgstr "Kood 300 - Multiple Choices" msgid "Code 301 - Moved Permanently" msgstr "Kood 301 - Moved Permanently" msgid "Code 302 - Found" msgstr "Kood 302 - Found" msgid "Code 303 - See Other" msgstr "Kood 303 - See Other" msgid "Code 304 - Not Modified" msgstr "Kood 304 - Not Modified" msgid "Code 305 - Use Proxy" msgstr "Kood 305 - Use Proxy" msgid "Code 307 - Moved Temporarily" msgstr "Kood 307 - Moved Temporarily" msgid "Code 400 - Bad Request" msgstr "Kood 400 - Bad Request" msgid "Code 401 - Unauthorized" msgstr "Kood 401 - Unauthorized" msgid "Code 402 - Payment Required" msgstr "Kood 402 - Payment Required" msgid "Code 403 - Forbidden" msgstr "Kood 403 - Forbidden" msgid "Code 404 - Not Found" msgstr "Kood 404 - Not Found" msgid "Code 405 - Method Not Allowed" msgstr "Kood 405 - Method Not Allowed" msgid "Code 406 - Not Acceptable" msgstr "Kood 406 - Not Acceptable" msgid "Code 407 - Proxy Authentication Required" msgstr "Kood 407 - Proxy Authentication Required" msgid "Code 408 - Request Timeout" msgstr "Kood 408 - Request Timeout" msgid "Code 409 - Conflict" msgstr "Kood 409 - Conflict" msgid "Code 410 - Gone" msgstr "Kood 410 - Gone" msgid "Code 411 - Length Required" msgstr "Kood 411 - Length Required" msgid "Code 412 - Precondition Failed" msgstr "Kood 412 - Precondition Failed" msgid "Code 413 - Request Entity Too Large" msgstr "Kood 413 - Request Entity Too Large" msgid "Code 414 - Request-URI Too Long" msgstr "Kood 414 - Request-URI Too Long" msgid "Code 415 - Unsupported Media Type" msgstr "Kood 415 - Unsupported Media Type" msgid "Code 416 - Requested Range Not Satisfiable" msgstr "Kood 416 - Requested Range Not Satisfiable" msgid "Code 417 - Expectation Failed" msgstr "Kood 417 - Expectation Failed" msgid "Code 500 - Internal Server Error" msgstr "Kood 500 - Internal Server Error" msgid "Code 501 - Not Implemented" msgstr "Kood 501 - Not Implemented" msgid "Code 502 - Bad Gateway" msgstr "Kood 502 - Bad Gateway" msgid "Code 503 - Service Unavailable" msgstr "Kood 503 - Service Unavailable" msgid "Code 504 - Gateway Timeout" msgstr "Kood 504 - Gateway Timeout" msgid "Code 505 - HTTP Version Not Supported" msgstr "Kood 505 - HTTP Version Not Supported" msgid "Colombia" msgstr "Kolumbia" msgid "Comoros" msgstr "Comoros" msgid "Congo" msgstr "Kongo" msgid "Cook Islands" msgstr "Cooki Saared" msgid "Costa Rica" msgstr "Costa Rica" msgid "Cote D'Ivoire (Ivory Coast)" msgstr "Cote D'Ivoire (Ivory Coast)" msgid "Countries" msgstr "Maad" msgid "Country" msgstr "Maa" msgid "Creating output in" msgstr "kasutades kataloogi" msgid "Croatia (Hrvatska)" msgstr "Horvaatia" msgid "Cuba" msgstr "Kuuba" msgid "Cyprus" msgstr "Kpros" msgid "Czech Republic" msgstr "Tsehhi Vabariik" msgid "Czechoslovakia (former)" msgstr "Tshehhoslovakkia (endine)" msgid "DNS Lookup" msgstr "DNS Lookup" msgid "Daily Avg" msgstr "Peva keskm." msgid "Daily Statistics" msgstr "Pevade statistika" msgid "Daily Statistics for" msgstr "Pevade statistika" msgid "Daily usage for" msgstr "Kasutuspevad" msgid "Day" msgstr "Pev" msgid "Dec" msgstr "Det" msgid "December" msgstr "Detsember" msgid "Denmark" msgstr "Taani" msgid "Djibouti" msgstr "Djibouti" msgid "Dominica" msgstr "Dominica" msgid "Dominican Republic" msgstr "Dominican Republic" msgid "East Timor" msgstr "Ida Timor" msgid "Ecuador" msgstr "Ecuador" msgid "Egypt" msgstr "Egiptus" msgid "El Salvador" msgstr "El Salvador" msgid "English" msgstr "Estonian" msgid "Entry" msgstr "Sisendpunkt" msgid "Equatorial Guinea" msgstr "Ekvatoriaal-Ginea" msgid "Eritrea" msgstr "Eritrea" msgid "Error adding Referrer node, skipping" msgstr "Linkija lisamisel viga, jtan vahele" msgid "Error adding Search String Node, skipping" msgstr "Otsistringi lisamisel viga, jtan vahele" msgid "Error adding URL node, skipping" msgstr "URLi lisamisel viga, jtan vahele" msgid "Error adding User Agent node, skipping" msgstr "Lehitseja lisamisel viga, jtan vahele" msgid "Error adding Username node, skipping" msgstr "Error adding Username node, skipping" msgid "Error adding host node (daily), skipping" msgstr "Arvuti lisamisel (pevade kaupa) viga, jtan vahele" msgid "Error adding host node (monthly), skipping" msgstr "Arvuti lisamisel (kuude kaupa) viga, jtan vahele" msgid "Error: Can't change directory to" msgstr "Viga: Ei suuda vahetada tkataloogi" msgid "Error: Can't open log file" msgstr "Viga: Ei suuda avada logifaili(e)" msgid "Error: Ignoring invalid history record" msgstr "Viga: Ignoreerin vigast ajalookirjet" msgid "Error: Skipping oversized log record" msgstr "Viga: jtan vahele liigpika logikirje" msgid "Error: Skipping record (bad date)" msgstr "Viga: Ignoreerin kirjet (vigane kuupev)" msgid "Error: Unable to lock DNS cache file" msgstr "Error: Unable to lock DNS cache file" msgid "Error: Unable to open DNS cache file" msgstr "Error: Unable to open DNS cache file" msgid "Error: Unable to open configuration file" msgstr "Viga: Ei suuda avada konfiguratsioonifaili" msgid "Error: Unable to open file" msgstr "Viga: Ei suuda avada faili" msgid "Error: Unable to restore run data" msgstr "Viga: Ei suuda lugeda eelmise kivitamise andmeid" msgid "Error: Unable to save current run data" msgstr "Viga: Ei suuda salvestada kivitamise andmeid" msgid "Error: Unable to write history file" msgstr "Viga: Ei suuda salvestada ajaloofaili" msgid "Estonia" msgstr "Eesti" msgid "Ethiopia" msgstr "Etioopia" msgid "Exit" msgstr "Vljundpunkt" msgid "Falkland Islands (Malvinas)" msgstr "Falkland Islands (Malvinas)" msgid "Faroe Islands" msgstr "Faroe Islands" msgid "Feb" msgstr "Veb" msgid "February" msgstr "Veebruar" msgid "Fiji" msgstr "Fiji" msgid "Files" msgstr "Faile" msgid "Files per Day" msgstr "Faile Pevas" msgid "Finland" msgstr "Soome" msgid "France" msgstr "Prantsusmaa" msgid "France; Metropolitan" msgstr "Prantsusmaa, Metropolitan" msgid "French Guiana" msgstr "Prantsuse Guiana" msgid "French Polynesia" msgstr "Prantsuse Polneesia" msgid "French Southern Territories" msgstr "French Southern Territories" msgid "Gabon" msgstr "Gabon" msgid "Gambia" msgstr "Gambia" msgid "Generated" msgstr "genereeritud" msgid "Generating report for" msgstr "Genereerin raportit" msgid "Generating summary report" msgstr "Genereerin kokkuvtterapotit" msgid "Georgia" msgstr "Gruusia" msgid "Germany" msgstr "Saksamaa" msgid "Ghana" msgstr "Gaana" msgid "Gibraltar" msgstr "Gibraltar" msgid "Great Britain (UK)" msgstr "Suurbritannia" msgid "Greece" msgstr "Kreeka" msgid "Greenland" msgstr "Greenland" msgid "Grenada" msgstr "Grenaada" msgid "Guadeloupe" msgstr "Guadeloupe" msgid "Guam" msgstr "Guam" msgid "Guatemala" msgstr "Guatemala" msgid "Guinea" msgstr "Ginea" msgid "Guinea-Bissau" msgstr "Guinea-Bissau" msgid "Guyana" msgstr "Guyana" msgid "Haiti" msgstr "Haiiti" msgid "Heard and McDonald Islands" msgstr "Heard and McDonald Islands" msgid "History file not found..." msgstr "Ajaloofaili ei leitud..." msgid "Hits" msgstr "Prdumisi" msgid "Hits by Response Code" msgstr "Prdumisi vastusetpide kaupa" msgid "Hits per Day" msgstr "Prdumisi Pevas" msgid "Hits per Hour" msgstr "Prdumisi Tunnis" msgid "Honduras" msgstr "Honduuras" msgid "Hong Kong" msgstr "Hong Kong" msgid "Hostname" msgstr "Server" msgid "Hostname for reports is" msgstr "Serveri nimi" msgid "Hour" msgstr "Tund" msgid "Hourly Statistics" msgstr "Tundide statistika" msgid "Hourly Statistics for" msgstr "Tundide statistika" msgid "Hourly usage for" msgstr "Kasutustunnid" msgid "Hungary" msgstr "Ungari" msgid "Iceland" msgstr "Island" msgid "Ignoring previous history..." msgstr "Ignoreerin eelnevat ajalooinfot..." msgid "India" msgstr "India" msgid "Indonesia" msgstr "Indoneesia" msgid "International (int)" msgstr "Rahvusvaheline" msgid "Iran" msgstr "Iraan" msgid "Iraq" msgstr "Iraak" msgid "Ireland" msgstr "Iirimaa" msgid "Israel" msgstr "Iisrael" msgid "Italy" msgstr "Itaalia" msgid "Jamaica" msgstr "Jamaica" msgid "Jan" msgstr "Jan" msgid "January" msgstr "Jaanuar" msgid "Japan" msgstr "Jaapan" msgid "Jordan" msgstr "Jordaania" msgid "Jul" msgstr "Jul" msgid "July" msgstr "Juuli" msgid "Jun" msgstr "Jun" msgid "June" msgstr "Juuni" msgid "KBytes" msgstr "KBaite" msgid "KBytes per Day" msgstr "KBaite Pevas" msgid "Kazakhstan" msgstr "Kasahstan" msgid "Kenya" msgstr "Kenya" msgid "Kiribati" msgstr "Kiribati" msgid "Korea (North)" msgstr "Phja-Korea" msgid "Korea (South)" msgstr "Luna-Korea" msgid "Kuwait" msgstr "Kuveit" msgid "Kyrgyzstan" msgstr "Krgzstan" msgid "Laos" msgstr "Laos" msgid "Last 12 Months" msgstr "Viimased 12 kuud" msgid "Latvia" msgstr "Lti" msgid "Lebanon" msgstr "Liibanon" msgid "Lesotho" msgstr "Lesotho" msgid "Liberia" msgstr "Libeeria" msgid "Libya" msgstr "Liiba" msgid "Liechtenstein" msgstr "Liechtenstein" msgid "Lithuania" msgstr "Leedu" msgid "Luxembourg" msgstr "Luksemburg" msgid "Macau" msgstr "Macao" msgid "Macedonia" msgstr "Makedoonia" msgid "Madagascar" msgstr "Madagaskar" msgid "Malawi" msgstr "Malawi" msgid "Malaysia" msgstr "Malaisia" msgid "Maldives" msgstr "Malediivid" msgid "Mali" msgstr "Mali" msgid "Malta" msgstr "Malta" msgid "Mar" msgstr "Mr" msgid "March" msgstr "Mrts" msgid "Marshall Islands" msgstr "Marshalli saared" msgid "Martinique" msgstr "Martinique" msgid "Mauritania" msgstr "Mauritaania" msgid "Mauritius" msgstr "Mauritius" msgid "Max" msgstr "Maks" msgid "May" msgstr "Mai" msgid "Mayotte" msgstr "Mayotte" msgid "Mexico" msgstr "Mehhiko" msgid "Micronesia" msgstr "Micronesia" msgid "Moldova" msgstr "Moldova" msgid "Monaco" msgstr "Monaco" msgid "Mongolia" msgstr "Mongoolia" msgid "Month" msgstr "Kuu" msgid "Monthly Statistics for" msgstr "Kuu statistika" msgid "Monthly Totals" msgstr "Kuu kokku" msgid "Montserrat" msgstr "Montserrat" msgid "Morocco" msgstr "Maroko" msgid "Mozambique" msgstr "Mosambiik" msgid "Myanmar" msgstr "Myanmar" msgid "Namibia" msgstr "Namiibia" msgid "Nato field (nato)" msgstr "Nato" msgid "Nauru" msgstr "Nauru" msgid "Nepal" msgstr "Nepaal" msgid "Netherlands" msgstr "Holland" msgid "Netherlands Antilles" msgstr "Hollandi Antillid" msgid "Network" msgstr "Interneti organisatsioonid" msgid "Neutral Zone" msgstr "Neutral Zone" msgid "New Caledonia" msgstr "Uus-Kaledoonia" msgid "New Zealand (Aotearoa)" msgstr "Uus-Meremaa (Aotearoa)" msgid "Nicaragua" msgstr "Nicaragua" msgid "Niger" msgstr "Niger" msgid "Nigeria" msgstr "Nigeeria" msgid "Niue" msgstr "Niue" msgid "No cache file specified, aborting..." msgstr "No cache file specified, aborting..." msgid "No valid records found!" msgstr "Ei leitud htegi arusaadavat logikirjet!" msgid "Non-Profit Organization" msgstr "Mittekommertsiaalorganisatsioonid" msgid "None to process" msgstr "None to process" msgid "Norfolk Island" msgstr "Norfolki saar" msgid "Northern Mariana Islands" msgstr "Northern Mariana Islands" msgid "Norway" msgstr "Norra" msgid "Nov" msgstr "Nov" msgid "November" msgstr "November" msgid "Oct" msgstr "Okt" msgid "October" msgstr "Oktoober" msgid "Old style Arpanet (arpa)" msgstr "Arpanet (arpa)" msgid "Oman" msgstr "Omaan" msgid "Other" msgstr "Muu" msgid "Pages" msgstr "Leheklgi" msgid "Pages per Day" msgstr "Leheklgi Pevas" msgid "Pakistan" msgstr "Pakistan" msgid "Palau" msgstr "Palau" msgid "Panama" msgstr "Panama" msgid "Papua New Guinea" msgstr "Paapua Uus-Guinea" msgid "Paraguay" msgstr "Paraguay" msgid "Peru" msgstr "Peruu" msgid "Philippines" msgstr "Filipiinid" msgid "Pitcairn" msgstr "Pitcairn" msgid "Poland" msgstr "Poola" msgid "Portugal" msgstr "Portugal" msgid "Previous run data not found..." msgstr "Eelmise kivitamise andmeid ei leitud..." msgid "Puerto Rico" msgstr "Puerto Rico" msgid "Qatar" msgstr "Katar" msgid "Reading history file..." msgstr "Loen ajaloofaili..." msgid "Reading previous run data..." msgstr "Loen eelmise kivitamise andmeid..." msgid "Referrer" msgstr "Linkija" msgid "Referrers" msgstr "Linkijad" msgid "Reunion" msgstr "Reunion" msgid "Romania" msgstr "Rumeenia" msgid "Russian Federation" msgstr "Vene Fderatsioon" msgid "Rwanda" msgstr "Rwanda" msgid "S. Georgia and S. Sandwich Isls." msgstr "S. Georgia and S. Sandwich Isls." msgid "Saint Kitts and Nevis" msgstr "Saint Kitts ja Nevis" msgid "Saint Lucia" msgstr "Saint Lucia" msgid "Saint Vincent and the Grenadines" msgstr "Saint Vincent ja the Grenadines" msgid "Samoa" msgstr "Samoa" msgid "San Marino" msgstr "San Marino" msgid "Sao Tome and Principe" msgstr "Sao Tome ja Principe" msgid "Saudi Arabia" msgstr "Saudi Araabia" msgid "Saving current run data..." msgstr "Salvestan antud (jooksva) kivitamise andmeid..." msgid "Saving history information..." msgstr "Salvestan ajaloofaili..." msgid "Search" msgstr "Otsisna" msgid "Search String" msgstr "Otsistring" msgid "Senegal" msgstr "Senegal" msgid "Sep" msgstr "Sep" msgid "September" msgstr "September" msgid "Seychelles" msgstr "Seishellid" msgid "Sierra Leone" msgstr "Sierra Leone" msgid "Singapore" msgstr "Singapur" msgid "Sites" msgstr "Arvutid" msgid "Skipping Netscape header record" msgstr "Ignoreerin Netscape piskirjet" msgid "Skipping bad record" msgstr "Ignoreerin vigast kirjet" msgid "Slovak Republic" msgstr "Slovakkia" msgid "Slovenia" msgstr "Sloveenia" msgid "Solomon Islands" msgstr "Solomoni saared" msgid "Somalia" msgstr "Somaalia" msgid "South Africa" msgstr "Luna-Aafrika Vabariik" msgid "Spain" msgstr "Hispaania" msgid "Sri Lanka" msgstr "Sri Lanka" msgid "St. Helena" msgstr "St. Helena" msgid "St. Pierre and Miquelon" msgstr "St. Pierre ja Miquelon" msgid "Sudan" msgstr "Sudaan" msgid "Summary Period" msgstr "Kokkuvte perioodile" msgid "Summary by Month" msgstr "Kokkuvtted kuude kaupa" msgid "Suriname" msgstr "Suriname" msgid "Svalbard and Jan Mayen Islands" msgstr "Svalbard ja Jan Mayen saared" msgid "Swaziland" msgstr "Svaasimaa" msgid "Sweden" msgstr "Rootsi" msgid "Switzerland" msgstr "Shveits" msgid "Syria" msgstr "Sria" msgid "Taiwan" msgstr "Taiwan" msgid "Tajikistan" msgstr "Tadzhikistan" msgid "Tanzania" msgstr "Tansaania" msgid "Thailand" msgstr "Tai" msgid "Togo" msgstr "Togo" msgid "Tokelau" msgstr "Tokelau" msgid "Tonga" msgstr "Tonga" msgid "Top" msgstr "Esimesed" msgid "Total" msgstr "Kokku" msgid "Total Countries" msgstr "klastajamaast" msgid "Total Entry Pages" msgstr "sisendpunktist" msgid "Total Exit Pages" msgstr "vljundpunktist" msgid "Total Files" msgstr "Kokku Faile" msgid "Total Hits" msgstr "Kokku Prdumisi" msgid "Total KBytes" msgstr "Kokku KBaite" msgid "Total Referrers" msgstr "ettetulnud linkijast" msgid "Total Search Strings" msgstr "kasutatud otsisnast" msgid "Total Sites" msgstr "klastajaarvutist" msgid "Total URLs" msgstr "klastatud aadressist" msgid "Total Unique Referrers" msgstr "Kokku Erinevaid Viitajaid" msgid "Total Unique Sites" msgstr "Kokku Erinevaid Kasutajaid" msgid "Total Unique URLs" msgstr "Kokku Erinevaid Aadresse" msgid "Total Unique User Agents" msgstr "Kokku Erinevaid Lehitsejaid" msgid "Total Unique Usernames" msgstr "Kokku Erinevaid Kasutajaid" msgid "Total User Agents" msgstr "kasutatud lehitsejast" msgid "Total Usernames" msgstr "erinevatest kasutajatest" msgid "Totals" msgstr "Kokku" msgid "Trinidad and Tobago" msgstr "Trinidad ja Tobago" msgid "Tunisia" msgstr "Tuneesia" msgid "Turkey" msgstr "Trgi" msgid "Turkmenistan" msgstr "Turkmeenia" msgid "Turks and Caicos Islands" msgstr "Turks ja Caicos saared" msgid "Tuvalu" msgstr "Tuvalu" msgid "URL" msgstr "Aadress" msgid "URLs" msgstr "Aadressid" msgid "US Commercial" msgstr "USA ridomeenid" msgid "US Educational" msgstr "USA Haridusdomeenid" msgid "US Government" msgstr "USA Riiklikud" msgid "US Military" msgstr "USA Sjaline" msgid "US Minor Outlying Islands" msgstr "US Minor Outlying Islands" msgid "USSR (former)" msgstr "NSVL (endine)" msgid "Uganda" msgstr "Uganda" msgid "Ukraine" msgstr "Ukraina" msgid "Undefined response code" msgstr "Defineerimata vastuskood" msgid "United Arab Emirates" msgstr "hendatud Araabia Emiraadid" msgid "United Kingdom" msgstr "Suur Britannia" msgid "United States" msgstr "Ameerika hendriigid" msgid "Unresolved/Unknown" msgstr "Numbriline/Tundmatu maa" msgid "Uruguay" msgstr "Uruguay" msgid "Usage" msgstr "Usage" msgid "Usage Statistics for" msgstr "Kasutusstatistika" msgid "Usage by Country for" msgstr "Kasutus maade kaupa" msgid "Usage summary for" msgstr "Kasutuse kokkuvte" msgid "User Agent" msgstr "Lehitseja" msgid "Username" msgstr "Username" msgid "Users" msgstr "Users" msgid "Using DNS cache file" msgstr "Using DNS cache file" msgid "Using logfile" msgstr "logifail" msgid "Uzbekistan" msgstr "Usbekistan" msgid "Vanuatu" msgstr "Vanuatu" msgid "Vatican City State (Holy See)" msgstr "Vatikan" msgid "Venezuela" msgstr "Venezuela" msgid "Viet Nam" msgstr "Vietnam" msgid "View All Referrers" msgstr "View All Referrers" msgid "View All Search Strings" msgstr "View All Search Strings" msgid "View All Sites" msgstr "View All Sites" msgid "View All URLs" msgstr "View All URLs" msgid "View All User Agents" msgstr "View All User Agents" msgid "View All Usernames" msgstr "View All Usernames" msgid "Virgin Islands (British)" msgstr "Neitsi saared (Briti)" msgid "Virgin Islands (U.S.)" msgstr "Neitsi saared (U.S.)" msgid "Visits" msgstr "Klastusi" msgid "Visits per Day" msgstr "Visiite Pevas" msgid "Wallis and Futuna Islands" msgstr "Wallis ja Futuna saared" msgid "Warning: Invalid keyword" msgstr "Hoiatus: Vigane vtmesna" msgid "Warning: Possible duplicate data found" msgstr "Hoiatus: Tenoliselt leitud topeltkirjed" msgid "Warning: String exceeds storage size" msgstr "Hoiatus: Stringi pikkus letab lubatud mlumahu" msgid "Warning: Truncating oversized date field" msgstr "Hoiatus: Teen lhemaks liigpika kuupevavlja" msgid "Warning: Truncating oversized hostname" msgstr "Hoiatus: Teen lhemaks liigpika arvutinime" msgid "Warning: Truncating oversized referrer field" msgstr "Hoiatus: Teen lhemaks liigpika linkija-vlja" msgid "Warning: Truncating oversized request field" msgstr "Hoiatus: Teen lhemaks liigpika pringuvlja" msgid "Warning: Truncating oversized username" msgstr "Warning: Truncating oversized username" msgid "Western Sahara" msgstr "Lne Sahhaara" msgid "Yemen" msgstr "Jeemen" msgid "Yugoslavia" msgstr "Jugoslaavia" msgid "Zaire" msgstr "Zaiir" msgid "Zambia" msgstr "Sambia" msgid "Zimbabwe" msgstr "Zimbabwe" msgid "[options] [log file]" msgstr "[options] [log file]" msgid "addresses" msgstr "addresses" msgid "bad" msgstr "vigast" msgid "current directory" msgstr "jooksev kataloog" msgid "ignored" msgstr "ignoreeritud" msgid "in" msgstr "" msgid "of" msgstr "kigist" msgid "records" msgstr "kirjet" msgid "seconds" msgstr "sekundi jooksul" webdruid-0.5.4.orig/po/ca.po0000644000000000000000000006513610066113350015571 0ustar rootroot00000000000000msgid "" msgstr "" "Project-Id-Version: 1.0\n" "PO-Revision-Date: 2003-05-25 23:29+0200\n" "Last-Translator: Johan Poirier \n" "Language-Team: French \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=ISO-8859-1\n" "Content-Transfer-Encoding: 8bit" msgid "-A num = Display num top agents" msgstr "-C n = veure els n primers pasos" msgid "-C num = Display num top countries" msgstr "-R n = veure els n primers enllac,os origen" msgid "-D name = Use DNS Cache file 'name'" msgstr "-N num = nmero de processos de cercadors de noms (0=disable)" msgid "-E num = Display num top Exit Pages" msgstr "-g n = agrupar els dominis a 'n' nivells" msgid "-F type = Log type. type= (clf | ftp | squid)" msgstr "-F tipus = tipus de fitxer de registre. tipus=(clf | ftp | squid)" msgid "-G = supress hourly graph" msgstr "-G = suprimir grfica per hores" msgid "-H = supress hourly stats" msgstr "-H = suprimir estadstiques per hores" msgid "-I name = Index alias 'name'" msgstr "-A n = veure els n primers navegadors" msgid "-L = supress color coded graph legends" msgstr "-L num = suprimir les llegendes de color dels grfics" msgid "-P name = Page type extension 'name'" msgstr "-I alias = Alias de l'Index 'alias'" msgid "-Q = supress _ALL_ messages" msgstr "-Q = suprimir TOTS es missatges" msgid "-R num = Display num top referrers" msgstr "-S n = veure els n primers servidors" msgid "-S num = Display num top sites" msgstr "-U n = veure els n primers URLs" msgid "-T = print timing information" msgstr "-c fitxer = usar el fitxer de configuraci 'fitxer'" msgid "-U num = Display num top URLs" msgstr "-e n = veure les n primeres planes d'entrada" msgid "-X = Hide individual sites" msgstr "-D fitxer = usa el fitxer cau de noms 'fitxer'" msgid "-Y = supress country graph" msgstr "-Y = suprimir la grfica de pas" msgid "-a name = hide user agent 'name'" msgstr "-r origen = amagar informaci relativa als enllac,os origen 'origen'" msgid "-c file = use configuration file 'file'" msgstr "-n nom = nom de mquina" msgid "-d = print additional debug info" msgstr "-d = activar el mode trassa (depuraci)" msgid "-e num = Display num top Entry Pages" msgstr "-E n = veure les n primeres planes de sortida" msgid "-f = Fold sequence errors" msgstr "-f = ignorar errors de seqncia" msgid "-g num = Group Domains to 'num' levels" msgstr "-X = amagar els sites individuals" msgid "-h = print this help message" msgstr "-h = veure aquesta ajuda" msgid "-i = ignore history file" msgstr "-i = ignorar el fitxer" msgid "-l num = use num background lines on graph" msgstr "-l num = valor de temps de visita (seconds)" msgid "-m num = Visit timout value (seconds)" msgstr "-T = ensenyar temps cronometratge" msgid "-n name = hostname to use" msgstr "-o dir = directori de sortida" msgid "-o dir = output directory to use" msgstr "-t titol = ttol dels resultats 'titol'" msgid "-p = preserve state (incremental)" msgstr "-p = conservem dades actuals (incremental)" msgid "-q = supress informational messages" msgstr "-q = suprimir els missatges d'informaci" msgid "-r name = hide referrer 'name'" msgstr "-s node = amagar informaci relativa al nom dels nodes 'node'" msgid "-s name = hide site 'name'" msgstr "-u url = amagar informaci relativa a les URL visitades 'url'" msgid "-t name = report title 'name'" msgstr "-a client = amagar informaci relativa al navegador 'client'" msgid "-u name = hide URL 'name'" msgstr "-x nom = usa l'extensi del tipus 'nom'" msgid "-v -V = print version information" msgstr "-v -V = veure la versi del programa" msgid "-x name = Use filename extension 'name'" msgstr "-P nom = tipus de l'extensi de la plana 'nom'" msgid "Afghanistan" msgstr "Afghanistan" msgid "Agents" msgstr "Navegadors" msgid "Albania" msgstr "Albania" msgid "Algeria" msgstr "Algeria" msgid "American Samoa" msgstr "American Samoa" msgid "Andorra" msgstr "Andorra" msgid "Angola" msgstr "Angola" msgid "Anguilla" msgstr "Anguilla" msgid "Antarctica" msgstr "Antarctica" msgid "Antigua and Barbuda" msgstr "Antigua and Barbuda" msgid "Apr" msgstr "Abr" msgid "April" msgstr "Abril" msgid "Argentina" msgstr "Argentina" msgid "Armenia" msgstr "Armenia" msgid "Aruba" msgstr "Aruba" msgid "Aug" msgstr "Ago" msgid "August" msgstr "Agost" msgid "Australia" msgstr "Australia" msgid "Austria" msgstr "Austria" msgid "Avg" msgstr "Mitjana" msgid "Azerbaijan" msgstr "Azerbaijan" msgid "Bahamas" msgstr "Bahamas" msgid "Bahrain" msgstr "Bahrain" msgid "Bangladesh" msgstr "Bangladesh" msgid "Barbados" msgstr "Barbados" msgid "Belarus" msgstr "Belarus" msgid "Belgium" msgstr "Belgium" msgid "Belize" msgstr "Belize" msgid "Benin" msgstr "Benin" msgid "Bermuda" msgstr "Bermuda" msgid "Bhutan" msgstr "Bhutan" msgid "Bolivia" msgstr "Bolivia" msgid "Bosnia and Herzegovina" msgstr "Bosnia and Herzegovina" msgid "Botswana" msgstr "Botswana" msgid "Bouvet Island" msgstr "Bouvet Island" msgid "Brazil" msgstr "Brazil" msgid "British Indian Ocean Territory" msgstr "British Indian Ocean Territory" msgid "Brunei Darussalam" msgstr "Brunei Darussalam" msgid "Bulgaria" msgstr "Bulgaria" msgid "Burkina Faso" msgstr "Burkina Faso" msgid "Burundi" msgstr "Burundi" msgid "By" msgstr "Per" msgid "Cambodia" msgstr "Cambodia" msgid "Cameroon" msgstr "Cameroon" msgid "Can't allocate enough memory, Top Countries disabled!" msgstr "No puc reservar prou memoria, desactivada la opci Per Pas d'Origen" msgid "Can't allocate enough memory, Top Referrers disabled!" msgstr "No puc reservar prou memoria, desactivada la opci Vincles d'Origen" msgid "Can't allocate enough memory, Top Search Strings disabled!" msgstr "No puc reservar prou memoria, desactivada la opci Principals mots de recerca !" msgid "Can't allocate enough memory, Top Sites disabled!" msgstr "No puc reservar prou memoria, desactivada la opci Nodes Principals" msgid "Can't allocate enough memory, Top URLs disabled!" msgstr "No puc reservar prou memoria, desactivada la opci URLs mes visitades" msgid "Can't allocate enough memory, Top User Agents disabled!" msgstr "No puc reservar prou memoria, desactivada la opci Segons Navegador" msgid "Can't allocate enough memory, Top Usernames disabled!" msgstr "No puc reservar prou memoria, desactivada la opci Principals noms d'usuari" msgid "Canada" msgstr "Canada" msgid "Cape Verde" msgstr "Cape Verde" msgid "Cayman Islands" msgstr "Cayman Islands" msgid "Central African Republic" msgstr "Central African Republic" msgid "Chad" msgstr "Chad" msgid "Chile" msgstr "Chile" msgid "China" msgstr "China" msgid "Christmas Island" msgstr "Christmas Island" msgid "Cocos (Keeling) Islands" msgstr "Cocos (Keeling) Islands" msgid "Code 100 - Continue" msgstr "Code 100 - Continue" msgid "Code 101 - Switching Protocols" msgstr "Code 101 - Switching Protocols" msgid "Code 200 - OK" msgstr "Code 200 - OK" msgid "Code 201 - Created" msgstr "Code 201 - Created" msgid "Code 202 - Accepted" msgstr "Code 202 - Accepted" msgid "Code 203 - Non-Authoritative Information" msgstr "Code 203 - Non-Authoritative Information" msgid "Code 204 - No Content" msgstr "Code 204 - No Content" msgid "Code 205 - Reset Content" msgstr "Code 205 - Reset Content" msgid "Code 206 - Partial Content" msgstr "Code 206 - Partial Content" msgid "Code 300 - Multiple Choices" msgstr "Code 300 - Multiple Choices" msgid "Code 301 - Moved Permanently" msgstr "Code 301 - Moved Permanently" msgid "Code 302 - Found" msgstr "Code 302 - Found" msgid "Code 303 - See Other" msgstr "Code 303 - See Other" msgid "Code 304 - Not Modified" msgstr "Code 304 - Not Modified" msgid "Code 305 - Use Proxy" msgstr "Code 305 - Use Proxy" msgid "Code 307 - Moved Temporarily" msgstr "Code 307 - Moved Temporarily" msgid "Code 400 - Bad Request" msgstr "Code 400 - Bad Request" msgid "Code 401 - Unauthorized" msgstr "Code 401 - Unauthorized" msgid "Code 402 - Payment Required" msgstr "Code 402 - Payment Required" msgid "Code 403 - Forbidden" msgstr "Code 403 - Forbidden" msgid "Code 404 - Not Found" msgstr "Code 404 - Not Found" msgid "Code 405 - Method Not Allowed" msgstr "Code 405 - Method Not Allowed" msgid "Code 406 - Not Acceptable" msgstr "Code 406 - Not Acceptable" msgid "Code 407 - Proxy Authentication Required" msgstr "Code 407 - Proxy Authentication Required" msgid "Code 408 - Request Timeout" msgstr "Code 408 - Request Timeout" msgid "Code 409 - Conflict" msgstr "Code 409 - Conflict" msgid "Code 410 - Gone" msgstr "Code 410 - Gone" msgid "Code 411 - Length Required" msgstr "Code 411 - Length Required" msgid "Code 412 - Precondition Failed" msgstr "Code 412 - Precondition Failed" msgid "Code 413 - Request Entity Too Large" msgstr "Code 413 - Request Entity Too Large" msgid "Code 414 - Request-URI Too Long" msgstr "Code 414 - Request-URI Too Long" msgid "Code 415 - Unsupported Media Type" msgstr "Code 415 - Unsupported Media Type" msgid "Code 416 - Requested Range Not Satisfiable" msgstr "Code 416 - Requested Range Not Satisfiable" msgid "Code 417 - Expectation Failed" msgstr "Code 417 - Expectation Failed" msgid "Code 500 - Internal Server Error" msgstr "Code 500 - Internal Server Error" msgid "Code 501 - Not Implemented" msgstr "Code 501 - Not Implemented" msgid "Code 502 - Bad Gateway" msgstr "Code 502 - Bad Gateway" msgid "Code 503 - Service Unavailable" msgstr "Code 503 - Service Unavailable" msgid "Code 504 - Gateway Timeout" msgstr "Code 504 - Gateway Timeout" msgid "Code 505 - HTTP Version Not Supported" msgstr "Code 505 - HTTP Version Not Supported" msgid "Colombia" msgstr "Colombia" msgid "Comoros" msgstr "Comoros" msgid "Congo" msgstr "Congo" msgid "Cook Islands" msgstr "Cook Islands" msgid "Costa Rica" msgstr "Costa Rica" msgid "Cote D'Ivoire (Ivory Coast)" msgstr "Cote D'Ivoire (Ivory Coast)" msgid "Countries" msgstr "Països" msgid "Country" msgstr "País" msgid "Creating output in" msgstr "Creant resultats a" msgid "Croatia (Hrvatska)" msgstr "Croatia (Hrvatska)" msgid "Cuba" msgstr "Cuba" msgid "Cyprus" msgstr "Cyprus" msgid "Czech Republic" msgstr "Czech Republic" msgid "Czechoslovakia (former)" msgstr "Czechoslovakia (former)" msgid "DNS Lookup" msgstr "Recerca del nom (DNS)" msgid "Daily Avg" msgstr "Mitjana diària" msgid "Daily Statistics" msgstr "Estadístiques per dia" msgid "Daily Statistics for" msgstr "Estadístiques per dia a" msgid "Daily usage for" msgstr "Accessos per dia a" msgid "Day" msgstr "Dia" msgid "Dec" msgstr "Dec" msgid "December" msgstr "Desembre" msgid "Denmark" msgstr "Denmark" msgid "Djibouti" msgstr "Djibouti" msgid "Dominica" msgstr "Dominica" msgid "Dominican Republic" msgstr "Dominican Republic" msgid "East Timor" msgstr "East Timor" msgid "Ecuador" msgstr "Ecuador" msgid "Egypt" msgstr "Egypt" msgid "El Salvador" msgstr "El Salvador" msgid "English" msgstr "Catal" msgid "Entry" msgstr "Entrada" msgid "Equatorial Guinea" msgstr "Equatorial Guinea" msgid "Eritrea" msgstr "Eritrea" msgid "Error adding Referrer node, skipping" msgstr "Error afegint el vincle d'origen, no el faig" msgid "Error adding Search String Node, skipping" msgstr "Error afegint el node de recerca per mots, me'l salto" msgid "Error adding URL node, skipping" msgstr "Error afegint la URL del node, no el faig" msgid "Error adding User Agent node, skipping" msgstr "Error afegint el nom del navegador, no el faig" msgid "Error adding Username node, skipping" msgstr "Error afegint el node de nom d'usuari, me'l salto" msgid "Error adding host node (daily), skipping" msgstr "Error afegint el nom del node (diari), no el faig" msgid "Error adding host node (monthly), skipping" msgstr "Error afegint el nom del node (mensual), no el faig" msgid "Error: Can't change directory to" msgstr "Error: no puc canviar al directori especificat" msgid "Error: Can't open log file" msgstr "Error: no puc obrir el fixer de registre" msgid "Error: Ignoring invalid history record" msgstr "Error: ignorant un registre no vlid" msgid "Error: Skipping oversized log record" msgstr "Error: Em salto un fitxer de registre. Massa gros" msgid "Error: Skipping record (bad date)" msgstr "Error: saltant registre (data dolenta)" msgid "Error: Unable to lock DNS cache file" msgstr "Error: no puc bloquejar el fitxer cau de servei de noms (DNS)" msgid "Error: Unable to open DNS cache file" msgstr "Error: no puc obrir el fitxer cau de servei de noms (DNS)" msgid "Error: Unable to open configuration file" msgstr "Error: no puc obrir el fitxer de configuraci" msgid "Error: Unable to open file" msgstr "Error: No he pogut obrir el fitxer" msgid "Error: Unable to restore run data" msgstr "Error: no puc recuperar les dades de funcionament" msgid "Error: Unable to save current run data" msgstr "Error: no puc guardar les dades de l'execuci en curs" msgid "Error: Unable to write history file" msgstr "Error: no puc escriure al fitxer histric" msgid "Estonia" msgstr "Estonia" msgid "Ethiopia" msgstr "Ethiopia" msgid "Exit" msgstr "Sortida" msgid "Falkland Islands (Malvinas)" msgstr "Falkland Islands (Malvinas)" msgid "Faroe Islands" msgstr "Faroe Islands" msgid "Feb" msgstr "Feb" msgid "February" msgstr "Febrer" msgid "Fiji" msgstr "Fiji" msgid "Files" msgstr "Fitxers" msgid "Files per Day" msgstr "Fitxers per dia" msgid "Finland" msgstr "Finland" msgid "France" msgstr "France" msgid "France; Metropolitan" msgstr "France, Metropolitan" msgid "French Guiana" msgstr "French Guiana" msgid "French Polynesia" msgstr "French Polynesia" msgid "French Southern Territories" msgstr "French Southern Territories" msgid "Gabon" msgstr "Gabon" msgid "Gambia" msgstr "Gambia" msgid "Generated" msgstr "Generat el" msgid "Generating report for" msgstr "Generant resultats per" msgid "Generating summary report" msgstr "Generant resultats resumits" msgid "Georgia" msgstr "Georgia" msgid "Germany" msgstr "Germany" msgid "Ghana" msgstr "Ghana" msgid "Gibraltar" msgstr "Gibraltar" msgid "Great Britain (UK)" msgstr "Great Britain (UK)" msgid "Greece" msgstr "Greece" msgid "Greenland" msgstr "Greenland" msgid "Grenada" msgstr "Grenada" msgid "Guadeloupe" msgstr "Guadeloupe" msgid "Guam" msgstr "Guam" msgid "Guatemala" msgstr "Guatemala" msgid "Guinea" msgstr "Guinea" msgid "Guinea-Bissau" msgstr "Guinea-Bissau" msgid "Guyana" msgstr "Guyana" msgid "Haiti" msgstr "Haiti" msgid "Heard and McDonald Islands" msgstr "Heard and McDonald Islands" msgid "History file not found..." msgstr "No trobo el fitxer histric..." msgid "Hits" msgstr "Accessos" msgid "Hits by Response Code" msgstr "Accesos segons codi de resposta" msgid "Hits per Day" msgstr "Accessos per dia" msgid "Hits per Hour" msgstr "Accesos per hora" msgid "Honduras" msgstr "Honduras" msgid "Hong Kong" msgstr "Hong Kong" msgid "Hostname" msgstr "Visitant" msgid "Hostname for reports is" msgstr "Resultats del servidor" msgid "Hour" msgstr "Hora" msgid "Hourly Statistics" msgstr "Estadístiques per hores" msgid "Hourly Statistics for" msgstr "Estadístiques per hora a" msgid "Hourly usage for" msgstr "Accessos per hores a" msgid "Hungary" msgstr "Hungary" msgid "Iceland" msgstr "Iceland" msgid "Ignoring previous history..." msgstr "Ignorant registre anterior..." msgid "India" msgstr "India" msgid "Indonesia" msgstr "Indonesia" msgid "International (int)" msgstr "International (int)" msgid "Iran" msgstr "Iran" msgid "Iraq" msgstr "Iraq" msgid "Ireland" msgstr "Ireland" msgid "Israel" msgstr "Israel" msgid "Italy" msgstr "Italy" msgid "Jamaica" msgstr "Jamaica" msgid "Jan" msgstr "Gen" msgid "January" msgstr "Gener" msgid "Japan" msgstr "Japan" msgid "Jordan" msgstr "Jordan" msgid "Jul" msgstr "Jul" msgid "July" msgstr "Juliol" msgid "Jun" msgstr "Jun" msgid "June" msgstr "Juny" msgid "KBytes" msgstr "KBytes" msgid "KBytes per Day" msgstr "KBytes per dia" msgid "Kazakhstan" msgstr "Kazakhstan" msgid "Kenya" msgstr "Kenya" msgid "Kiribati" msgstr "Kiribati" msgid "Korea (North)" msgstr "Korea (North)" msgid "Korea (South)" msgstr "Korea (South)" msgid "Kuwait" msgstr "Kuwait" msgid "Kyrgyzstan" msgstr "Kyrgyzstan" msgid "Laos" msgstr "Laos" msgid "Last 12 Months" msgstr "Darrers 12 mesos" msgid "Latvia" msgstr "Latvia" msgid "Lebanon" msgstr "Lebanon" msgid "Lesotho" msgstr "Lesotho" msgid "Liberia" msgstr "Liberia" msgid "Libya" msgstr "Libya" msgid "Liechtenstein" msgstr "Liechtenstein" msgid "Lithuania" msgstr "Lithuania" msgid "Luxembourg" msgstr "Luxembourg" msgid "Macau" msgstr "Macau" msgid "Macedonia" msgstr "Macedonia" msgid "Madagascar" msgstr "Madagascar" msgid "Malawi" msgstr "Malawi" msgid "Malaysia" msgstr "Malaysia" msgid "Maldives" msgstr "Maldives" msgid "Mali" msgstr "Mali" msgid "Malta" msgstr "Malta" msgid "Mar" msgstr "Mar" msgid "March" msgstr "Mar" msgid "Marshall Islands" msgstr "Marshall Islands" msgid "Martinique" msgstr "Martinique" msgid "Mauritania" msgstr "Mauritania" msgid "Mauritius" msgstr "Mauritius" msgid "Max" msgstr "Max" msgid "May" msgstr "Maig" msgid "Mayotte" msgstr "Mayotte" msgid "Mexico" msgstr "Mexico" msgid "Micronesia" msgstr "Micronesia" msgid "Moldova" msgstr "Moldova" msgid "Monaco" msgstr "Monaco" msgid "Mongolia" msgstr "Mongolia" msgid "Month" msgstr "Mes" msgid "Monthly Statistics for" msgstr "Estadístiques mensuals" msgid "Monthly Totals" msgstr "Totals del mes" msgid "Montserrat" msgstr "Montserrat" msgid "Morocco" msgstr "Morocco" msgid "Mozambique" msgstr "Mozambique" msgid "Myanmar" msgstr "Myanmar" msgid "Namibia" msgstr "Namibia" msgid "Nato field (nato)" msgstr "Nato field (nato)" msgid "Nauru" msgstr "Nauru" msgid "Nepal" msgstr "Nepal" msgid "Netherlands" msgstr "Netherlands" msgid "Netherlands Antilles" msgstr "Netherlands Antilles" msgid "Network" msgstr "Network" msgid "Neutral Zone" msgstr "Neutral Zone" msgid "New Caledonia" msgstr "New Caledonia" msgid "New Zealand (Aotearoa)" msgstr "New Zealand (Aotearoa)" msgid "Nicaragua" msgstr "Nicaragua" msgid "Niger" msgstr "Niger" msgid "Nigeria" msgstr "Nigeria" msgid "Niue" msgstr "Niue" msgid "No cache file specified, aborting..." msgstr "El fitxer cau no ha estat especificat, plego." msgid "No valid records found!" msgstr "No trobo cap registre vlid!" msgid "Non-Profit Organization" msgstr "Non-Profit Organization" msgid "None to process" msgstr "No hi ha valors per a processar" msgid "Norfolk Island" msgstr "Norfolk Island" msgid "Northern Mariana Islands" msgstr "Northern Mariana Islands" msgid "Norway" msgstr "Norway" msgid "Nov" msgstr "Nov" msgid "November" msgstr "Novembre" msgid "Oct" msgstr "Oct" msgid "October" msgstr "Octubre" msgid "Old style Arpanet (arpa)" msgstr "Old style Arpanet (arpa)" msgid "Oman" msgstr "Oman" msgid "Other" msgstr "Altri" msgid "Pages" msgstr "Planes" msgid "Pages per Day" msgstr "Planes per dia" msgid "Pakistan" msgstr "Pakistan" msgid "Palau" msgstr "Palau" msgid "Panama" msgstr "Panama" msgid "Papua New Guinea" msgstr "Papua New Guinea" msgid "Paraguay" msgstr "Paraguay" msgid "Peru" msgstr "Peru" msgid "Philippines" msgstr "Philippines" msgid "Pitcairn" msgstr "Pitcairn" msgid "Poland" msgstr "Poland" msgid "Portugal" msgstr "Portugal" msgid "Previous run data not found..." msgstr "No trobo les dades de l'execuci anterior..." msgid "Puerto Rico" msgstr "Puerto Rico" msgid "Qatar" msgstr "Qatar" msgid "Reading history file..." msgstr "Llegint fitxer histric..." msgid "Reading previous run data..." msgstr "Llegint dades d'una execuci prvia..." msgid "Referrer" msgstr "Enllaç d' origen" msgid "Referrers" msgstr "Enllaços d'origen" msgid "Reunion" msgstr "Reunion" msgid "Romania" msgstr "Romania" msgid "Russian Federation" msgstr "Russian Federation" msgid "Rwanda" msgstr "Rwanda" msgid "S. Georgia and S. Sandwich Isls." msgstr "S. Georgia and S. Sandwich Isls." msgid "Saint Kitts and Nevis" msgstr "Saint Kitts and Nevis" msgid "Saint Lucia" msgstr "Saint Lucia" msgid "Saint Vincent and the Grenadines" msgstr "Saint Vincent and the Grenadines" msgid "Samoa" msgstr "Samoa" msgid "San Marino" msgstr "San Marino" msgid "Sao Tome and Principe" msgstr "Sao Tome and Principe" msgid "Saudi Arabia" msgstr "Saudi Arabia" msgid "Saving current run data..." msgstr "Guardant dades d'execuci en curs..." msgid "Saving history information..." msgstr "Guardant informaci a l'histric..." msgid "Search" msgstr "Recerca" msgid "Search String" msgstr "Paraula de recerca" msgid "Senegal" msgstr "Senegal" msgid "Sep" msgstr "Set" msgid "September" msgstr "Setembre" msgid "Seychelles" msgstr "Seychelles" msgid "Sierra Leone" msgstr "Sierra Leone" msgid "Singapore" msgstr "Singapore" msgid "Sites" msgstr "Visitants" msgid "Skipping Netscape header record" msgstr "Saltant registre de capcalera del Netscape" msgid "Skipping bad record" msgstr "Saltant registre erroni" msgid "Slovak Republic" msgstr "Slovak Republic" msgid "Slovenia" msgstr "Slovenia" msgid "Solomon Islands" msgstr "Solomon Islands" msgid "Somalia" msgstr "Somalia" msgid "South Africa" msgstr "South Africa" msgid "Spain" msgstr "Spain" msgid "Sri Lanka" msgstr "Sri Lanka" msgid "St. Helena" msgstr "St. Helena" msgid "St. Pierre and Miquelon" msgstr "St. Pierre and Miquelon" msgid "Sudan" msgstr "Sudan" msgid "Summary Period" msgstr "Període resumit" msgid "Summary by Month" msgstr "Resum per mesos" msgid "Suriname" msgstr "Suriname" msgid "Svalbard and Jan Mayen Islands" msgstr "Svalbard and Jan Mayen Islands" msgid "Swaziland" msgstr "Swaziland" msgid "Sweden" msgstr "Sweden" msgid "Switzerland" msgstr "Switzerland" msgid "Syria" msgstr "Syria" msgid "Taiwan" msgstr "Taiwan" msgid "Tajikistan" msgstr "Tajikistan" msgid "Tanzania" msgstr "Tanzania" msgid "Thailand" msgstr "Thailand" msgid "Togo" msgstr "Togo" msgid "Tokelau" msgstr "Tokelau" msgid "Tonga" msgstr "Tonga" msgid "Top" msgstr "Els" msgid "Total" msgstr "Total" msgid "Total Countries" msgstr "països" msgid "Total Entry Pages" msgstr "Total de planes d'entrada" msgid "Total Exit Pages" msgstr "Total de planes de sortida" msgid "Total Files" msgstr "Total de Fitxers" msgid "Total Hits" msgstr "Total d'Accessos" msgid "Total KBytes" msgstr "Total de Kbytes" msgid "Total Referrers" msgstr "enllaç origen" msgid "Total Search Strings" msgstr "Total de paraules de recerca" msgid "Total Sites" msgstr "visitants" msgid "Total URLs" msgstr "URLs" msgid "Total Unique Referrers" msgstr "Total d' Enllaços d'Origen" msgid "Total Unique Sites" msgstr "Total de Servidors" msgid "Total Unique URLs" msgstr "Total d'URLs" msgid "Total Unique User Agents" msgstr "Total de Navegadors" msgid "Total Unique Usernames" msgstr "Total de noms d'usuari" msgid "Total User Agents" msgstr "navegadors" msgid "Total Usernames" msgstr "Total de noms d'usuari" msgid "Totals" msgstr "Totals" msgid "Trinidad and Tobago" msgstr "Trinidad and Tobago" msgid "Tunisia" msgstr "Tunisia" msgid "Turkey" msgstr "Turkey" msgid "Turkmenistan" msgstr "Turkmenistan" msgid "Turks and Caicos Islands" msgstr "Turks and Caicos Islands" msgid "Tuvalu" msgstr "Tuvalu" msgid "URL" msgstr "URL" msgid "URLs" msgstr "URLs" msgid "US Commercial" msgstr "US Commercial" msgid "US Educational" msgstr "US Educational" msgid "US Government" msgstr "US Government" msgid "US Military" msgstr "US Military" msgid "US Minor Outlying Islands" msgstr "US Minor Outlying Islands" msgid "USSR (former)" msgstr "USSR (former)" msgid "Uganda" msgstr "Uganda" msgid "Ukraine" msgstr "Ukraine" msgid "Undefined response code" msgstr "Undefined response code" msgid "United Arab Emirates" msgstr "United Arab Emirates" msgid "United Kingdom" msgstr "United Kingdom" msgid "United States" msgstr "United States" msgid "Unresolved/Unknown" msgstr "Unresolved/Unknown" msgid "Uruguay" msgstr "Uruguay" msgid "Usage" msgstr "Funcionament" msgid "Usage Statistics for" msgstr "Estadístiques d'ús per a" msgid "Usage by Country for" msgstr "Accessos per pas a" msgid "Usage summary for" msgstr "Resumen d'accessos per" msgid "User Agent" msgstr "Navegador" msgid "Username" msgstr "Nom d'usuari" msgid "Users" msgstr "Usuaris" msgid "Using DNS cache file" msgstr "Uso el fitxer cau de servei de noms (DNS)" msgid "Using logfile" msgstr "Usant el registre" msgid "Uzbekistan" msgstr "Uzbekistan" msgid "Vanuatu" msgstr "Vanuatu" msgid "Vatican City State (Holy See)" msgstr "Vatican City State (Holy See)" msgid "Venezuela" msgstr "Venezuela" msgid "Viet Nam" msgstr "Viet Nam" msgid "View All Referrers" msgstr "Veure tots els enllaos d'origen" msgid "View All Search Strings" msgstr "Veure totes les paraules de recerca" msgid "View All Sites" msgstr "Veure tots els llocs visitats" msgid "View All URLs" msgstr "Veure totes les URL" msgid "View All User Agents" msgstr "Veure tots els navegadors" msgid "View All Usernames" msgstr "Veure tots els noms d'usuari" msgid "Virgin Islands (British)" msgstr "Virgin Islands (British)" msgid "Virgin Islands (U.S.)" msgstr "Virgin Islands (U.S.)" msgid "Visits" msgstr "Visites" msgid "Visits per Day" msgstr "Visites per dia" msgid "Wallis and Futuna Islands" msgstr "Wallis and Futuna Islands" msgid "Warning: Invalid keyword" msgstr "Avs: paraula clau no valida" msgid "Warning: Possible duplicate data found" msgstr "Avs: He trobat dades que potser sn duplicades" msgid "Warning: String exceeds storage size" msgstr "Avs: Hi ha una cadena de carcters que supera la mida permesa" msgid "Warning: Truncating oversized date field" msgstr "Avs: La data s massa larga. La tallo." msgid "Warning: Truncating oversized hostname" msgstr "Avs: El nom del servidor s massa llarg. El tallo." msgid "Warning: Truncating oversized referrer field" msgstr "Avs: El camp d'adrec,a d'origen s massa llarg. El tallo" msgid "Warning: Truncating oversized request field" msgstr "Avs: El camp de petici s massa llarg. El tallo." msgid "Warning: Truncating oversized username" msgstr "Avs: Tallo un nom d'usuari massa larg" msgid "Western Sahara" msgstr "Western Sahara" msgid "Yemen" msgstr "Yemen" msgid "Yugoslavia" msgstr "Yugoslavia" msgid "Zaire" msgstr "Zaire" msgid "Zambia" msgstr "Zambia" msgid "Zimbabwe" msgstr "Zimbabwe" msgid "[options] [log file]" msgstr "[opcions] [fitxer histric (log)]" msgid "addresses" msgstr "adreces" msgid "bad" msgstr "erronis" msgid "current directory" msgstr "directori actual" msgid "ignored" msgstr "ignorats" msgid "in" msgstr "en" msgid "of" msgstr "primers d'un total de" msgid "records" msgstr "registres" msgid "seconds" msgstr "segons" webdruid-0.5.4.orig/po/ro.po0000644000000000000000000006517410066113350015630 0ustar rootroot00000000000000msgid "" msgstr "" "Project-Id-Version: 1.0\n" "PO-Revision-Date: 2003-05-25 23:29+0200\n" "Last-Translator: Johan Poirier \n" "Language-Team: French \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=ISO-8859-1\n" "Content-Transfer-Encoding: 8bit" msgid "-A num = Display num top agents" msgstr "-A num = afiseaza numeric topul navigatoarelor clientilor" msgid "-C num = Display num top countries" msgstr "-C num = afiseaza numeric topul tarilor" msgid "-D name = Use DNS Cache file 'name'" msgstr "-D name = Foloseste fisierul cache DNS 'name'" msgid "-E num = Display num top Exit Pages" msgstr "-E num = afiseaza numeric topul Paginilor de iesire" msgid "-F type = Log type. type= (clf | ftp | squid)" msgstr "-F type = Tip jurnal. type= (clf | ftp | squid)" msgid "-G = supress hourly graph" msgstr "-G = elimina graficul orelor" msgid "-H = supress hourly stats" msgstr "-H = elimina starea pe ore" msgid "-I name = Index alias 'name'" msgstr "-I name = aliasul index-ului va fi 'name'" msgid "-L = supress color coded graph legends" msgstr "-L = elimina legenda graficelor color" msgid "-N num = Number of DNS processes (0=disable)" msgstr "-N num = Numarul de procese DNS (0=dezactivat)" msgid "-P name = Page type extension 'name'" msgstr "-P name = extensia tipului de pagina va fi 'name'" msgid "-Q = supress _ALL_ messages" msgstr "-Q = elimina _TOATE_ mesajele" msgid "-R num = Display num top referrers" msgstr "-R num = afiseaza numeric topul referentilor" msgid "-S num = Display num top sites" msgstr "-S num = afiseaza numeric topul siturilor" msgid "-T = print timing information" msgstr "-T = afiseaza informatiile despre temporizare" msgid "-U num = Display num top URLs" msgstr "-U num = afiseaza numeric topul URL-urilor" msgid "-X = Hide individual sites" msgstr "-X = Ascunde siturile individuale" msgid "-Y = supress country graph" msgstr "-Y = elimina graficul tarilor" msgid "-a name = hide user agent 'name'" msgstr "-a name = ascunde navigatoarele clientilor de tipul 'name'" msgid "-c file = use configuration file 'file'" msgstr "-c file = foloseste fisierul de configurare 'file'" msgid "-d = print additional debug info" msgstr "-d = afiseaza informatii de depanare suplimentare" msgid "-e num = Display num top Entry Pages" msgstr "-e num = afiseaza numeric topul Paginilor de intrare" msgid "-f = Fold sequence errors" msgstr "-f = eroare la secventa de fold" msgid "-g num = Group Domains to 'num' levels" msgstr "-g num = Grupeaza Domeniile in 'num' niveluri" msgid "-h = print this help message" msgstr "-h = afiseaza acest mesaj de ajutor" msgid "-i = ignore history file" msgstr "-i = ignora fisierul de istoric" msgid "-l num = use num background lines on graph" msgstr "-l num = foloseste linii numerotate pe fundalul graficelor" msgid "-m num = Visit timout value (seconds)" msgstr "-m num = valoarea timeout-ului pentru vizite (secunde)" msgid "-n name = hostname to use" msgstr "-n name = hostname-ul de folosit" msgid "-o dir = output directory to use" msgstr "-o dir = directorul folosit pentru rezultate" msgid "-p = preserve state (incremental)" msgstr "-p = pastreaza starea (incremental)" msgid "-q = supress informational messages" msgstr "-q = elimina mesajele de informare" msgid "-r name = hide referrer 'name'" msgstr "-r name = ascunde pagina referenta cu numele 'name'" msgid "-s name = hide site 'name'" msgstr "-s name = ascunde situl 'name'" msgid "-t name = report title 'name'" msgstr "-t name = titlul raportului va fi 'name'" msgid "-u name = hide URL 'name'" msgstr "-u name = ascunde URL-ul 'name'" msgid "-v -V = print version information" msgstr "-v -V = afiseaza informatii despre versiune" msgid "-x name = Use filename extension 'name'" msgstr "-x name = foloseste extensia de nume fisier 'name'" msgid "Afghanistan" msgstr "Afganistan" msgid "Agents" msgstr "Navigator" msgid "Albania" msgstr "Albania" msgid "Algeria" msgstr "Algeria" msgid "American Samoa" msgstr "Samoa americana" msgid "Andorra" msgstr "Andorra" msgid "Angola" msgstr "Angola" msgid "Anguilla" msgstr "Anguilla" msgid "Antarctica" msgstr "Antarctica" msgid "Antigua and Barbuda" msgstr "Antigua si Barbuda" msgid "Apr" msgstr "Apr" msgid "April" msgstr "Aprilie" msgid "Argentina" msgstr "Argentina" msgid "Armenia" msgstr "Armenia" msgid "Aruba" msgstr "Aruba" msgid "Aug" msgstr "Aug" msgid "August" msgstr "August" msgid "Australia" msgstr "Australia" msgid "Austria" msgstr "Austria" msgid "Avg" msgstr "Medie" msgid "Azerbaijan" msgstr "Azerbaidjan" msgid "Bahamas" msgstr "Bahamas" msgid "Bahrain" msgstr "Bahrain" msgid "Bangladesh" msgstr "Bangladesh" msgid "Barbados" msgstr "Barbados" msgid "Belarus" msgstr "Bielorusia" msgid "Belgium" msgstr "Belgia" msgid "Belize" msgstr "Belize" msgid "Benin" msgstr "Benin" msgid "Bermuda" msgstr "Bermuda" msgid "Bhutan" msgstr "Bhutan" msgid "Bolivia" msgstr "Bolivia" msgid "Bosnia and Herzegovina" msgstr "Bosnia si Hertegovina" msgid "Botswana" msgstr "Botswana" msgid "Bouvet Island" msgstr "Insula Bouvet" msgid "Brazil" msgstr "Brazilia" msgid "British Indian Ocean Territory" msgstr "Teritoriul Britanic din Oceanul Indian" msgid "Brunei Darussalam" msgstr "Brunei Darussalam" msgid "Bulgaria" msgstr "Bulgaria" msgid "Burkina Faso" msgstr "Burkina Faso" msgid "Burundi" msgstr "Burundi" msgid "By" msgstr "dupa" msgid "Cambodia" msgstr "Cambodgia" msgid "Cameroon" msgstr "Camerun" msgid "Can't allocate enough memory, Top Countries disabled!" msgstr "Nu pot aloca suficienta memorie, dezactivez Top Tari!" msgid "Can't allocate enough memory, Top Referrers disabled!" msgstr "Nu pot aloca suficienta memorie, dezactivez Top Pagini referente!" msgid "Can't allocate enough memory, Top Search Strings disabled!" msgstr "Nu pot aloca suficienta memorie, dezactivez Top Siruri cautate!" msgid "Can't allocate enough memory, Top Sites disabled!" msgstr "Nu pot aloca suficienta memorie, dezactivez Top Situri!" msgid "Can't allocate enough memory, Top URLs disabled!" msgstr "Nu pot aloca suficienta memorie, dezactivez Top URL-uri!" msgid "Can't allocate enough memory, Top User Agents disabled!" msgstr "Nu pot aloca suficienta memorie, dezactivez Top Navigatoare vizitatori!" msgid "Can't allocate enough memory, Top Usernames disabled!" msgstr "Nu pot aloca suficienta memorie, dezactivez Top Utilizatori!" msgid "Canada" msgstr "Canada" msgid "Cape Verde" msgstr "Insulele Capului Verde" msgid "Cayman Islands" msgstr "Insulele Cayman" msgid "Central African Republic" msgstr "Republica Centrafricana" msgid "Chad" msgstr "Ciad" msgid "Chile" msgstr "Chile" msgid "China" msgstr "China" msgid "Christmas Island" msgstr "Insulele Christmas" msgid "Cocos (Keeling) Islands" msgstr "Insulele Cocos (Keeling)" msgid "Code 100 - Continue" msgstr "Cod 100 - Continua" msgid "Code 101 - Switching Protocols" msgstr "Cod 101 - Schimb de protocol" msgid "Code 200 - OK" msgstr "Cod 200 - OK" msgid "Code 201 - Created" msgstr "Cod 201 - Creat" msgid "Code 202 - Accepted" msgstr "Cod 202 - Aceptat" msgid "Code 203 - Non-Authoritative Information" msgstr "Cod 203 - Informatie fara autoritate" msgid "Code 204 - No Content" msgstr "Cod 204 - Fara continut" msgid "Code 205 - Reset Content" msgstr "Cod 205 - Initializare continut" msgid "Code 206 - Partial Content" msgstr "Cod 206 - Continut partial" msgid "Code 300 - Multiple Choices" msgstr "Cod 300 - Optiuni multiple" msgid "Code 301 - Moved Permanently" msgstr "Cod 301 - Mutat permanent" msgid "Code 302 - Found" msgstr "Cod 302 - Gasit" msgid "Code 303 - See Other" msgstr "Cod 303 - Vezi alt" msgid "Code 304 - Not Modified" msgstr "Cod 304 - Nemodificat" msgid "Code 305 - Use Proxy" msgstr "Cod 305 - Foloseste proxy" msgid "Code 307 - Moved Temporarily" msgstr "Cod 307 - Mutat temporar" msgid "Code 400 - Bad Request" msgstr "Cod 400 - Cerere gresita" msgid "Code 401 - Unauthorized" msgstr "Cod 401 - Neautorizat" msgid "Code 402 - Payment Required" msgstr "Cod 402 - Plata solicitata" msgid "Code 403 - Forbidden" msgstr "Cod 403 - Interzis" msgid "Code 404 - Not Found" msgstr "Cod 404 - Lipsa" msgid "Code 405 - Method Not Allowed" msgstr "Cod 405 - Metoda nepermisa" msgid "Code 406 - Not Acceptable" msgstr "Cod 406 - Inacceptabil" msgid "Code 407 - Proxy Authentication Required" msgstr "Cod 407 - Autentificare prin proxy necesara" msgid "Code 408 - Request Timeout" msgstr "Cod 408 - Timeout cerere" msgid "Code 409 - Conflict" msgstr "Cod 409 - Conflict" msgid "Code 410 - Gone" msgstr "Cod 410 - Satisfacut" msgid "Code 411 - Length Required" msgstr "Cod 411 - Lungime solicitata" msgid "Code 412 - Precondition Failed" msgstr "Cod 412 - Precondite esuata" msgid "Code 413 - Request Entity Too Large" msgstr "Cod 413 - Entitatea ceruta este prea mare" msgid "Code 414 - Request-URI Too Long" msgstr "Cod 414 - URI-ul cerut prea lung" msgid "Code 415 - Unsupported Media Type" msgstr "Cod 415 - Tip de mediu necunoscut" msgid "Code 416 - Requested Range Not Satisfiable" msgstr "Cod 416 - Domeniul cererii nerealizabil" msgid "Code 417 - Expectation Failed" msgstr "Cod 417 - Asteptare esuata" msgid "Code 500 - Internal Server Error" msgstr "Cod 500 - Eroare interna a serverului" msgid "Code 501 - Not Implemented" msgstr "Cod 501 - Neimplementat" msgid "Code 502 - Bad Gateway" msgstr "Cod 502 - Gateway gresit" msgid "Code 503 - Service Unavailable" msgstr "Cod 503 - Serviciu indisponibil" msgid "Code 504 - Gateway Timeout" msgstr "Cod 504 - Timeout la gateway" msgid "Code 505 - HTTP Version Not Supported" msgstr "Cod 505 - Versiune de HTTP nesuportata" msgid "Colombia" msgstr "Columbia" msgid "Comoros" msgstr "Insulele Comore" msgid "Congo" msgstr "Congo" msgid "Cook Islands" msgstr "Insulele Cook" msgid "Costa Rica" msgstr "Costa Rica" msgid "Cote D'Ivoire (Ivory Coast)" msgstr "Cote D'Ivoire (Coasta de Fildes)" msgid "Countries" msgstr "Tari" msgid "Country" msgstr "Tara" msgid "Creating output in" msgstr "Rezultatul este salvat in" msgid "Croatia (Hrvatska)" msgstr "Croatia (Hrvatska)" msgid "Cuba" msgstr "Cuba" msgid "Cyprus" msgstr "Cipru" msgid "Czech Republic" msgstr "Republica Ceha" msgid "Czechoslovakia (former)" msgstr "Cehoslovacia (fosta)" msgid "DNS Lookup" msgstr "DNS Lookup" msgid "Daily Avg" msgstr "Media zilnica" msgid "Daily Statistics" msgstr "Statistici zilnice" msgid "Daily Statistics for" msgstr "Statistici zilnice pe luna" msgid "Daily usage for" msgstr "Utilizarea zilnica pe luna" msgid "Day" msgstr "Zi" msgid "Dec" msgstr "Dec" msgid "December" msgstr "Decembrie" msgid "Denmark" msgstr "Danemarca" msgid "Djibouti" msgstr "Djibouti" msgid "Dominica" msgstr "Dominica" msgid "Dominican Republic" msgstr "Republica Dominicana" msgid "East Timor" msgstr "Timorul de Est" msgid "Ecuador" msgstr "Ecuador" msgid "Egypt" msgstr "Egipt" msgid "El Salvador" msgstr "El Salvador" msgid "English" msgstr "in romana" msgid "Entry" msgstr "Intrari" msgid "Equatorial Guinea" msgstr "Guineea Ecuatoriala" msgid "Eritrea" msgstr "Eritreea" msgid "Error adding Referrer node, skipping" msgstr "Eroare adaugare nod de Pagina referenta, sar" msgid "Error adding Search String Node, skipping" msgstr "Eroare adaugare nod Sir de cautare, sar" msgid "Error adding URL node, skipping" msgstr "Eroare adaugare nod URL, sar" msgid "Error adding User Agent node, skipping" msgstr "Eroare adaugare nod Navigator client, sar" msgid "Error adding Username node, skipping" msgstr "Eroare adaugare nod Utilizatori, sar" msgid "Error adding host node (daily), skipping" msgstr "Eroare adaugare nod host (zilnic), sar" msgid "Error adding host node (monthly), skipping" msgstr "Eroare adaugare nod host (lunar), sar" msgid "Error: Can't change directory to" msgstr "Eroare: Nu pot sa ajung in directorul" msgid "Error: Can't open log file" msgstr "Eroare: Nu pot deschide fisierul jurnal" msgid "Error: Ignoring invalid history record" msgstr "Eroare: Ignor inregistrarile invalide din fisierul de istoric" msgid "Error: Skipping oversized log record" msgstr "Eroare: Sar o inregistrare de jurnal supradimensionata" msgid "Error: Skipping record (bad date)" msgstr "Eroare: Sar inregistrarea (date incorecte)" msgid "Error: Unable to lock DNS cache file" msgstr "Eroare: Nu pot bloca fisierul cache al DNS" msgid "Error: Unable to open DNS cache file" msgstr "Eroare: Nu pot deschide fisierul cache al DNS" msgid "Error: Unable to open configuration file" msgstr "Eroare: Nu pot deschide fisierul de configurare" msgid "Error: Unable to open file" msgstr "Eroare: Nu pot deschide fisierul" msgid "Error: Unable to restore run data" msgstr "Eroare: Nu pot reface datele rulate" msgid "Error: Unable to save current run data" msgstr "Eroare: Nu pot salva datele rulate acum" msgid "Error: Unable to write history file" msgstr "Eroare: Nu pot sa scriu in fisierul de istoric" msgid "Estonia" msgstr "Estonia" msgid "Ethiopia" msgstr "Etiopia" msgid "Exit" msgstr "Iesiri" msgid "Falkland Islands (Malvinas)" msgstr "Insulele Falkland (Malvinas)" msgid "Faroe Islands" msgstr "Insulele Faroe" msgid "Feb" msgstr "Feb" msgid "February" msgstr "Februarie" msgid "Fiji" msgstr "Fiji" msgid "Files" msgstr "Fisiere" msgid "Files per Day" msgstr "Fisiere pe zi" msgid "Finland" msgstr "Finlanda" msgid "France" msgstr "Franta" msgid "France; Metropolitan" msgstr "Franta metropolitana" msgid "French Guiana" msgstr "Guiana Franceza" msgid "French Polynesia" msgstr "Polinezia franceza" msgid "French Southern Territories" msgstr "Teritoriile Antarctice Franceze" msgid "Gabon" msgstr "Gabon" msgid "Gambia" msgstr "Gambia" msgid "Generated" msgstr "Generat in" msgid "Generating report for" msgstr "Generez un raport pentru" msgid "Generating summary report" msgstr "Generez cuprinsul raportului" msgid "Georgia" msgstr "Georgia" msgid "Germany" msgstr "Germania" msgid "Ghana" msgstr "Ghana" msgid "Gibraltar" msgstr "Gibraltar" msgid "Great Britain (UK)" msgstr "Marea Britanie (UK)" msgid "Greece" msgstr "Grecia" msgid "Greenland" msgstr "Groenlanda" msgid "Grenada" msgstr "Grenada" msgid "Guadeloupe" msgstr "Guadelupe" msgid "Guam" msgstr "Guam" msgid "Guatemala" msgstr "Guatemala" msgid "Guinea" msgstr "Guineea" msgid "Guinea-Bissau" msgstr "Guinea-Bissau" msgid "Guyana" msgstr "Guiana" msgid "Haiti" msgstr "Haiti" msgid "Heard and McDonald Islands" msgstr "Insulele Heard si McDonald" msgid "History file not found..." msgstr "Nu pot gasi fisierul de istoric..." msgid "Hits" msgstr "Accesari" msgid "Hits by Response Code" msgstr "Accesari dupa codul de raspuns" msgid "Hits per Day" msgstr "Vizitari pe zi" msgid "Hits per Hour" msgstr "Vizitari pe ora" msgid "Honduras" msgstr "Honduras" msgid "Hong Kong" msgstr "Hong Kong" msgid "Hostname" msgstr "Nume" msgid "Hostname for reports is" msgstr "Hostname-ul pentru rapoarte este" msgid "Hour" msgstr "Ora" msgid "Hourly Statistics" msgstr "Statistici orare" msgid "Hourly Statistics for" msgstr "Statistici orare pe luna" msgid "Hourly usage for" msgstr "Utilizarea orara pe luna" msgid "Hungary" msgstr "Ungaria" msgid "Iceland" msgstr "Islanda" msgid "Ignoring previous history..." msgstr "Ignor fisierul de istoric precedent..." msgid "India" msgstr "India" msgid "Indonesia" msgstr "Indonezia" msgid "International (int)" msgstr "International (int)" msgid "Iran" msgstr "Iran" msgid "Iraq" msgstr "Irak" msgid "Ireland" msgstr "Irlanda" msgid "Israel" msgstr "Israel" msgid "Italy" msgstr "Italia" msgid "Jamaica" msgstr "Jamaica" msgid "Jan" msgstr "Ian" msgid "January" msgstr "Ianuarie" msgid "Japan" msgstr "Japan" msgid "Jordan" msgstr "Iordania" msgid "Jul" msgstr "Iul" msgid "July" msgstr "Iulie" msgid "Jun" msgstr "Iun" msgid "June" msgstr "Iunie" msgid "KBytes" msgstr "KBytes" msgid "KBytes per Day" msgstr "KBytes pe zi" msgid "Kazakhstan" msgstr "Kazahstan" msgid "Kenya" msgstr "Kenia" msgid "Kiribati" msgstr "Kiribati" msgid "Korea (North)" msgstr "Coreea (de Nord)" msgid "Korea (South)" msgstr "Coreea (de Sud)" msgid "Kuwait" msgstr "Kuwait" msgid "Kyrgyzstan" msgstr "Kirgizstan" msgid "Laos" msgstr "Laos" msgid "Last 12 Months" msgstr "ultimele 12 luni" msgid "Latvia" msgstr "Letonia" msgid "Lebanon" msgstr "Liban" msgid "Lesotho" msgstr "Lesotho" msgid "Liberia" msgstr "Liberia" msgid "Libya" msgstr "Libia" msgid "Liechtenstein" msgstr "Liechtenstein" msgid "Lithuania" msgstr "Lituania" msgid "Luxembourg" msgstr "Luxemburg" msgid "Macau" msgstr "Macao" msgid "Macedonia" msgstr "Macedonia" msgid "Madagascar" msgstr "Madagascar" msgid "Malawi" msgstr "Malawi" msgid "Malaysia" msgstr "Malaezia" msgid "Maldives" msgstr "Maldive" msgid "Mali" msgstr "Mali" msgid "Malta" msgstr "Malta" msgid "Mar" msgstr "Mar" msgid "March" msgstr "Martie" msgid "Marshall Islands" msgstr "Insulele Marshall" msgid "Martinique" msgstr "Martinica" msgid "Mauritania" msgstr "Mauritania" msgid "Mauritius" msgstr "Mauritius" msgid "Max" msgstr "Maxim" msgid "May" msgstr "Mai" msgid "Mayotte" msgstr "Mayotte" msgid "Mexico" msgstr "Mexic" msgid "Micronesia" msgstr "Micronezia" msgid "Moldova" msgstr "Moldova" msgid "Monaco" msgstr "Monaco" msgid "Mongolia" msgstr "Mongolia" msgid "Month" msgstr "Luna" msgid "Monthly Statistics for" msgstr "Statistici lunare pentru" msgid "Monthly Totals" msgstr "Totaluri lunare" msgid "Montserrat" msgstr "Montserrat" msgid "Morocco" msgstr "Maroc" msgid "Mozambique" msgstr "Mozambic" msgid "Myanmar" msgstr "Myanmar (Birmania)" msgid "Namibia" msgstr "Namibia" msgid "Nato field (nato)" msgstr "Cimp Nato (nato)" msgid "Nauru" msgstr "Nauru" msgid "Nepal" msgstr "Nepal" msgid "Netherlands" msgstr "Olanda" msgid "Netherlands Antilles" msgstr "Antilele olandeze" msgid "Network" msgstr "Retea (Network)" msgid "Neutral Zone" msgstr "Zona Neutra" msgid "New Caledonia" msgstr "Noua Caledonie" msgid "New Zealand (Aotearoa)" msgstr "Noua Zeelanda (Aotearoa)" msgid "Nicaragua" msgstr "Nicaragua" msgid "Niger" msgstr "Nigeria" msgid "Nigeria" msgstr "Nigeria" msgid "Niue" msgstr "Niue" msgid "No cache file specified, aborting..." msgstr "Nu s-a specificat nici un fisier cache, renunt..." msgid "No valid records found!" msgstr "Nu am gasit nici o inregsitare corecta!" msgid "Non-Profit Organization" msgstr "Organizatie Non-Profit" msgid "None to process" msgstr "Nimic de prelucrat" msgid "Norfolk Island" msgstr "Insula Norfolk" msgid "Northern Mariana Islands" msgstr "Insulele Mariane de Nord" msgid "Norway" msgstr "Norvegia" msgid "Nov" msgstr "Noi" msgid "November" msgstr "Noiembrie" msgid "Oct" msgstr "Oct" msgid "October" msgstr "Octombrie" msgid "Old style Arpanet (arpa)" msgstr "Arpanet stilul vechi (arpa)" msgid "Oman" msgstr "Oman" msgid "Other" msgstr "Altele" msgid "Pages" msgstr "Pagini" msgid "Pages per Day" msgstr "Pagini pe zi" msgid "Pakistan" msgstr "Pakistan" msgid "Palau" msgstr "Palau" msgid "Panama" msgstr "Panama" msgid "Papua New Guinea" msgstr "Papua Noua Guinee" msgid "Paraguay" msgstr "Paraguay" msgid "Peru" msgstr "Peru" msgid "Philippines" msgstr "Filipine" msgid "Pitcairn" msgstr "Pitcairn" msgid "Poland" msgstr "Polonia" msgid "Portugal" msgstr "Portugalia" msgid "Previous run data not found..." msgstr "Datele rulate inainte nu au fost gasite..." msgid "Puerto Rico" msgstr "Puerto Rico" msgid "Qatar" msgstr "Qatar" msgid "Reading history file..." msgstr "Citesc fisierul de istoric..." msgid "Reading previous run data..." msgstr "Citesc datele rulate inainte..." msgid "Referrer" msgstr "Pagina referenta" msgid "Referrers" msgstr "Pagini referente" msgid "Reunion" msgstr "Reunion" msgid "Romania" msgstr "Romania" msgid "Russian Federation" msgstr "Rusia" msgid "Rwanda" msgstr "Rwanda" msgid "S. Georgia and S. Sandwich Isls." msgstr "Ins. S. Georgia si S. Sandwich" msgid "Saint Kitts and Nevis" msgstr "Saint Kitts si Nevis" msgid "Saint Lucia" msgstr "Sfinta Lucia" msgid "Saint Vincent and the Grenadines" msgstr "Sifintul Vincent si Grenadine" msgid "Samoa" msgstr "Samoa" msgid "San Marino" msgstr "San Marino" msgid "Sao Tome and Principe" msgstr "Sao Tome si Principe" msgid "Saudi Arabia" msgstr "Arabia Saudita" msgid "Saving current run data..." msgstr "Salvez datele rulate acum..." msgid "Saving history information..." msgstr "Salvez informatiile in fisierul de istoric..." msgid "Search" msgstr "Cautare" msgid "Search String" msgstr "Sir de cautare" msgid "Senegal" msgstr "Senegal" msgid "Sep" msgstr "Sep" msgid "September" msgstr "Septembrie" msgid "Seychelles" msgstr "Seychelles" msgid "Sierra Leone" msgstr "Sierra Leone" msgid "Singapore" msgstr "Singapore" msgid "Sites" msgstr "Situri" msgid "Skipping Netscape header record" msgstr "Sar inregistrarea antetului Netscape" msgid "Skipping bad record" msgstr "Sar o inregistrare gresita" msgid "Slovak Republic" msgstr "Republica Slovaca" msgid "Slovenia" msgstr "Slovenia" msgid "Solomon Islands" msgstr "Insulele Solomon" msgid "Somalia" msgstr "Somalia" msgid "South Africa" msgstr "Africa de Sud" msgid "Spain" msgstr "Spania" msgid "Sri Lanka" msgstr "Sri Lanka" msgid "St. Helena" msgstr "Sfinta Elena" msgid "St. Pierre and Miquelon" msgstr "St. Pierre si Miquelon" msgid "Sudan" msgstr "Sudan" msgid "Summary Period" msgstr "Perioada analizata" msgid "Summary by Month" msgstr "Sumarul pe luna" msgid "Suriname" msgstr "Surinam" msgid "Svalbard and Jan Mayen Islands" msgstr "Insulele Svalbard si Jan Mayen" msgid "Swaziland" msgstr "Swaziland" msgid "Sweden" msgstr "Suedia" msgid "Switzerland" msgstr "Elvetia" msgid "Syria" msgstr "Siria" msgid "Taiwan" msgstr "Taiwan" msgid "Tajikistan" msgstr "Tadjikistan" msgid "Tanzania" msgstr "Tanzania" msgid "Thailand" msgstr "Tailanda" msgid "Togo" msgstr "Togo" msgid "Tokelau" msgstr "Tokelau" msgid "Tonga" msgstr "Tonga" msgid "Top" msgstr "Top" msgid "Total" msgstr "Total" msgid "Total Countries" msgstr "al Tarilor" msgid "Total Entry Pages" msgstr "total Pagini de intrare" msgid "Total Exit Pages" msgstr "total Pagini de iesire" msgid "Total Files" msgstr "Total fisiere" msgid "Total Hits" msgstr "Total accesari" msgid "Total KBytes" msgstr "Total Kbytes" msgid "Total Referrers" msgstr "al Paginilor referente" msgid "Total Search Strings" msgstr "total Siruri de cautare" msgid "Total Sites" msgstr "al Siturilor" msgid "Total URLs" msgstr "al URL-urilor" msgid "Total Unique Referrers" msgstr "Total pagini referente unice" msgid "Total Unique Sites" msgstr "Total situri unice" msgid "Total Unique URLs" msgstr "Total URL-uri unice" msgid "Total Unique User Agents" msgstr "Total navigatoare" msgid "Total Unique Usernames" msgstr "Total Utilizatori unici" msgid "Total User Agents" msgstr "al Navigatoarelor" msgid "Total Usernames" msgstr "Total Utilizatori" msgid "Totals" msgstr "Totaluri" msgid "Trinidad and Tobago" msgstr "Trinidad-Tobago" msgid "Tunisia" msgstr "Tunisia" msgid "Turkey" msgstr "Turcia" msgid "Turkmenistan" msgstr "Turkmenistan" msgid "Turks and Caicos Islands" msgstr "Insulele Turks si Caicos" msgid "Tuvalu" msgstr "Tuvalu" msgid "URL" msgstr "URL" msgid "URLs" msgstr "URL-uri" msgid "US Commercial" msgstr "US Commercial" msgid "US Educational" msgstr "US Educational" msgid "US Government" msgstr "US Guvernamental" msgid "US Military" msgstr "US Militar" msgid "US Minor Outlying Islands" msgstr "Insulele US Minor Outlying" msgid "USSR (former)" msgstr "URSS (fosta)" msgid "Uganda" msgstr "Uganda" msgid "Ukraine" msgstr "Ucraina" msgid "Undefined response code" msgstr "Cod de raspuns nedefinit" msgid "United Arab Emirates" msgstr "Emiratele Arabe Unite" msgid "United Kingdom" msgstr "Regatul Unit" msgid "United States" msgstr "Statele Unite ale Americii" msgid "Unresolved/Unknown" msgstr "Nerezolvat/Necunoscut" msgid "Uruguay" msgstr "Uruguay" msgid "Usage" msgstr "Utilizare" msgid "Usage Statistics for" msgstr "Statisticile de utilizare ale lui" msgid "Usage by Country for" msgstr "Utilizarea dupa tara pe luna" msgid "Usage summary for" msgstr "Sumarul utilizarii lui" msgid "User Agent" msgstr "Navigator" msgid "Username" msgstr "Utilizator" msgid "Users" msgstr "Utilizatori" msgid "Using DNS cache file" msgstr "Folosesc fisierul cache al DNS" msgid "Using logfile" msgstr "Accesez fisierul jurnal" msgid "Uzbekistan" msgstr "Uzbekistan" msgid "Vanuatu" msgstr "Vanuatu" msgid "Vatican City State (Holy See)" msgstr "Vatican (Sfintul Scaun)" msgid "Venezuela" msgstr "Venezuela" msgid "Viet Nam" msgstr "Vietnam" msgid "View All Referrers" msgstr "Vizualizarea tuturor paginilor referente" msgid "View All Search Strings" msgstr "Vizualizarea tuturor cuvintelor cheie" msgid "View All Sites" msgstr "Vizualizarea tuturor siturilor" msgid "View All URLs" msgstr "Vizualizarea tuturor URL-urilor" msgid "View All User Agents" msgstr "Vizualizarea tuturor navigatoarelor" msgid "View All Usernames" msgstr "Vizualizarea tuturor utiltizatorilor" msgid "Virgin Islands (British)" msgstr "Insulele Virgine (britance)" msgid "Virgin Islands (U.S.)" msgstr "Insulele Virgine (americane)" msgid "Visits" msgstr "Vizite" msgid "Visits per Day" msgstr "Vizite pe zi" msgid "Wallis and Futuna Islands" msgstr "Insulele Wallis si Futuna" msgid "Warning: Invalid keyword" msgstr "Avertisment: Cuvint cheie invalid" msgid "Warning: Possible duplicate data found" msgstr "Avertisment: S-ar putea sa fi gasit date duplicate" msgid "Warning: String exceeds storage size" msgstr "Avertisment: Sirul depaseste dimensiunea spatiului de stocare" msgid "Warning: Truncating oversized date field" msgstr "Avertisment: Trunchiez cimpul data supradimensionat" msgid "Warning: Truncating oversized hostname" msgstr "Avertisment: Trunchiez hostname supradimensionat" msgid "Warning: Truncating oversized referrer field" msgstr "Avertisment: Trunchiez cimpul paginii referente supradimensionat" msgid "Warning: Truncating oversized request field" msgstr "Avertisment: Trunchiez cimpul cerere supradimensionat" msgid "Warning: Truncating oversized username" msgstr "Avertisment: Trunchiez cimpul utilizator supradimensionat" msgid "Western Sahara" msgstr "Sahara Occidentala" msgid "Yemen" msgstr "Yemen" msgid "Yugoslavia" msgstr "Yugoslavia" msgid "Zaire" msgstr "Zair" msgid "Zambia" msgstr "Zambia" msgid "Zimbabwe" msgstr "Zimbabwe" msgid "[options] [log file]" msgstr "[optiuni] [fisier jurnal]" msgid "addresses" msgstr "adrese" msgid "bad" msgstr "gresit" msgid "current directory" msgstr "directorul curent" msgid "ignored" msgstr "ignorat" msgid "in" msgstr "in" msgid "of" msgstr "din" msgid "records" msgstr "inregistrari" msgid "seconds" msgstr "secunde" webdruid-0.5.4.orig/po/es.po0000644000000000000000000006463210066113350015615 0ustar rootroot00000000000000msgid "" msgstr "" "Project-Id-Version: 1.0\n" "PO-Revision-Date: 2003-05-25 23:29+0200\n" "Last-Translator: Johan Poirier \n" "Language-Team: French \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=ISO-8859-1\n" "Content-Transfer-Encoding: 8bit" msgid "-A num = Display num top agents" msgstr "-A n = Mostrar los n primeros navegadores" msgid "-C num = Display num top countries" msgstr "-C n = Mostrar los n primeros paises" msgid "-D name = Use DNS Cache file 'name'" msgstr "-D nombre = Usar el archivo cache de DNS 'nombre'" msgid "-E num = Display num top Exit Pages" msgstr "-E n = Mostrar las n primeras pginas de salida" msgid "-F type = Log type. type= (clf | ftp | squid)" msgstr "-F type = Log type. type= (clf | ftp | squid)" msgid "-G = supress hourly graph" msgstr "-G = suprimir grfico por horas" msgid "-H = supress hourly stats" msgstr "-H = suprimir estadsticas por horas" msgid "-I name = Index alias 'name'" msgstr "-I nombre = Alias del indice 'nombre'" msgid "-L = supress color coded graph legends" msgstr "-L = suprimir leyendas coloreadas de los grficos" msgid "-N num = Number of DNS processes (0=disable)" msgstr "-N n = Nmero de procesos DNS (0=deshabilitar)" msgid "-P name = Page type extension 'name'" msgstr "-P nombre = usa extension de paginas 'nombre'" msgid "-Q = supress _ALL_ messages" msgstr "-Q = suprimir TODOS los mensajes" msgid "-R num = Display num top referrers" msgstr "-R n = Mostrar los n primeros enlaces origen" msgid "-S num = Display num top sites" msgstr "-S n = Mostrar los n primeros clientes" msgid "-T = print timing information" msgstr "-T = mostrar informacin de tiempo de ejecucin" msgid "-U num = Display num top URLs" msgstr "-U n = Mostrar los n primeros URLs" msgid "-X = Hide individual sites" msgstr "-X = Esconde la informacin de cada pgina" msgid "-Y = supress country graph" msgstr "-Y = suprimir grfico de pases" msgid "-a name = hide user agent 'name'" msgstr "-a nombre = esconder el programa cliente 'nombre'" msgid "-c file = use configuration file 'file'" msgstr "-c archivo= usar el archivo de configuracin 'archivo'" msgid "-d = print additional debug info" msgstr "-d = mostrar informacin adicional para depuracin" msgid "-e num = Display num top Entry Pages" msgstr "-e n = Mostrar las n primeras pginas de entrada" msgid "-f = Fold sequence errors" msgstr "-f = procesa histricos fuera de secuencia (ver man)" msgid "-g num = Group Domains to 'num' levels" msgstr "-g n = Agrupar los Dominios a N niveles" msgid "-h = print this help message" msgstr "-h = mostrar este mensaje" msgid "-i = ignore history file" msgstr "-i = ignorar archivo" msgid "-l num = use num background lines on graph" msgstr "-l N = usar N lneas de fondo en los grficos" msgid "-m num = Visit timout value (seconds)" msgstr "-m N = especificar temporizador de visitas (N segundos)" msgid "-n name = hostname to use" msgstr "-n nombre = nombre de la mquina" msgid "-o dir = output directory to use" msgstr "-o dir = directorio de salida" msgid "-p = preserve state (incremental)" msgstr "-p = recordar estado (incremental)" msgid "-q = supress informational messages" msgstr "-q = suprimir mensajes de informacin" msgid "-r name = hide referrer 'name'" msgstr "-r nombre = esconder el enlace origen 'nombre'" msgid "-s name = hide site 'name'" msgstr "-s nombre = esconder el servidor 'nombre'" msgid "-t name = report title 'name'" msgstr "-t nombre = titular el informe 'nombre'" msgid "-u name = hide URL 'name'" msgstr "-u nombre = esconder el URL 'nombre'" msgid "-v -V = print version information" msgstr "-v -V = ver informacin de versin" msgid "-x name = Use filename extension 'name'" msgstr "-x nombre = usa extension de archivos 'nombre'" msgid "Afghanistan" msgstr "Afganistn" msgid "Agents" msgstr "Navegadores" msgid "Albania" msgstr "Albania" msgid "Algeria" msgstr "Argelia" msgid "American Samoa" msgstr "Samoa Americana" msgid "Andorra" msgstr "Andorra" msgid "Angola" msgstr "Angola" msgid "Anguilla" msgstr "Anguilla" msgid "Antarctica" msgstr "Antrtida" msgid "Antigua and Barbuda" msgstr "Antigua y Barbuda" msgid "Apr" msgstr "Abr" msgid "April" msgstr "Abril" msgid "Argentina" msgstr "Argentina" msgid "Armenia" msgstr "Armenia" msgid "Aruba" msgstr "Aruba" msgid "Aug" msgstr "Ago" msgid "August" msgstr "Agosto" msgid "Australia" msgstr "Australia" msgid "Austria" msgstr "Austria" msgid "Avg" msgstr "Media" msgid "Azerbaijan" msgstr "Azerbaijn" msgid "Bahamas" msgstr "Bahamas" msgid "Bahrain" msgstr "Bahran" msgid "Bangladesh" msgstr "Bangladesh" msgid "Barbados" msgstr "Barbados" msgid "Belarus" msgstr "Bielorusia" msgid "Belgium" msgstr "Blgica" msgid "Belize" msgstr "Belice" msgid "Benin" msgstr "Benn" msgid "Bermuda" msgstr "Bermuda" msgid "Bhutan" msgstr "Bhutn" msgid "Bolivia" msgstr "Bolivia" msgid "Bosnia and Herzegovina" msgstr "Bosnia Herzegovina" msgid "Botswana" msgstr "Botswana" msgid "Bouvet Island" msgstr "Isla Bouvet" msgid "Brazil" msgstr "Brasil" msgid "British Indian Ocean Territory" msgstr "Territorios Britnicos del Ocano ndico" msgid "Brunei Darussalam" msgstr "Brunei Darussalam" msgid "Bulgaria" msgstr "Bulgaria" msgid "Burkina Faso" msgstr "Burkina Faso" msgid "Burundi" msgstr "Burund" msgid "By" msgstr "Por" msgid "Cambodia" msgstr "Camboya" msgid "Cameroon" msgstr "Camern" msgid "Can't allocate enough memory, Top Countries disabled!" msgstr "No puedo reservar suficiente memoria, quito los principales pases" msgid "Can't allocate enough memory, Top Referrers disabled!" msgstr "No puedo reservar suficiente memoria, quito los principales enlaces" msgid "Can't allocate enough memory, Top Search Strings disabled!" msgstr "No puedo reservar suficiente memoria, quito las principales cadenas de bsqueda" msgid "Can't allocate enough memory, Top Sites disabled!" msgstr "No puedo reservar suficiente memoria, quito los principales sitios" msgid "Can't allocate enough memory, Top URLs disabled!" msgstr "No puedo reservar suficiente memoria, quito los principales URLs" msgid "Can't allocate enough memory, Top User Agents disabled!" msgstr "No puedo reservar suficiente memoria, quito los principales programas cliente" msgid "Can't allocate enough memory, Top Usernames disabled!" msgstr "No puedo reservar suficiente memoria, quito los principales usuarios" msgid "Canada" msgstr "Canad" msgid "Cape Verde" msgstr "Cabo Verde" msgid "Cayman Islands" msgstr "Islas Caimn" msgid "Central African Republic" msgstr "Repblica Centroafricana" msgid "Chad" msgstr "Chad" msgid "Chile" msgstr "Chile" msgid "China" msgstr "China" msgid "Christmas Island" msgstr "Isla Navidad" msgid "Cocos (Keeling) Islands" msgstr "Islas Cocos (Keeling)" msgid "Code 100 - Continue" msgstr "100 - Contina" msgid "Code 101 - Switching Protocols" msgstr "101 - Cambiando de protocolo" msgid "Code 200 - OK" msgstr "200 - OK" msgid "Code 201 - Created" msgstr "201 - Creado" msgid "Code 202 - Accepted" msgstr "202 - Aceptado" msgid "Code 203 - Non-Authoritative Information" msgstr "203 - Informacin no autorizada" msgid "Code 204 - No Content" msgstr "204 - No hay contenido" msgid "Code 205 - Reset Content" msgstr "205 - Contenido renovado" msgid "Code 206 - Partial Content" msgstr "206 - Contenido parcial" msgid "Code 300 - Multiple Choices" msgstr "300 - Varias opciones" msgid "Code 301 - Moved Permanently" msgstr "301 - Movido permanentemente" msgid "Code 302 - Found" msgstr "302 - Encontrado" msgid "Code 303 - See Other" msgstr "303 - Ver otros" msgid "Code 304 - Not Modified" msgstr "304 - No modificado" msgid "Code 305 - Use Proxy" msgstr "305 - Utilizar proxy" msgid "Code 307 - Moved Temporarily" msgstr "307 - Movido temporalmente" msgid "Code 400 - Bad Request" msgstr "400 - Peticin errnea" msgid "Code 401 - Unauthorized" msgstr "401 - No autorizado" msgid "Code 402 - Payment Required" msgstr "402 - Se requiere pago" msgid "Code 403 - Forbidden" msgstr "403 - Prohibido" msgid "Code 404 - Not Found" msgstr "404 - No se encuentra" msgid "Code 405 - Method Not Allowed" msgstr "405 - Mtodo no permitido" msgid "Code 406 - Not Acceptable" msgstr "406 - No aceptable" msgid "Code 407 - Proxy Authentication Required" msgstr "407 - Se requiere autentificacin de proxy" msgid "Code 408 - Request Timeout" msgstr "408 - Fin de tiempo de espera" msgid "Code 409 - Conflict" msgstr "409 - Conflicto" msgid "Code 410 - Gone" msgstr "410 - Abandonado" msgid "Code 411 - Length Required" msgstr "411 - Se requiere longitud" msgid "Code 412 - Precondition Failed" msgstr "412 - Falla la condicin previa" msgid "Code 413 - Request Entity Too Large" msgstr "413 - Entidad de peticin demasiado grande" msgid "Code 414 - Request-URI Too Long" msgstr "414 - URI de peticin demasiado larga" msgid "Code 415 - Unsupported Media Type" msgstr "415 - Medio no soportado" msgid "Code 416 - Requested Range Not Satisfiable" msgstr "416 - No se puede satisfacer el rango pedido" msgid "Code 417 - Expectation Failed" msgstr "417 - Falla lo que se esperaba" msgid "Code 500 - Internal Server Error" msgstr "500 - Error interno del servidor" msgid "Code 501 - Not Implemented" msgstr "501 - No implementado" msgid "Code 502 - Bad Gateway" msgstr "502 - Puerta de enlace incorrecta" msgid "Code 503 - Service Unavailable" msgstr "503 - Servicio no disponible" msgid "Code 504 - Gateway Timeout" msgstr "504 - Fin de tiempo de espera para la puerta de enlace" msgid "Code 505 - HTTP Version Not Supported" msgstr "505 - Versin de HTTP no soportada" msgid "Colombia" msgstr "Colombia" msgid "Comoros" msgstr "Comoros" msgid "Congo" msgstr "Congo" msgid "Cook Islands" msgstr "Islas Cook" msgid "Costa Rica" msgstr "Costa Rica" msgid "Cote D'Ivoire (Ivory Coast)" msgstr "Costa de Marfil" msgid "Countries" msgstr "Pases" msgid "Country" msgstr "Pas" msgid "Creating output in" msgstr "Creando informe en" msgid "Croatia (Hrvatska)" msgstr "Croacia (Hrvatska)" msgid "Cuba" msgstr "Cuba" msgid "Cyprus" msgstr "Chipre" msgid "Czech Republic" msgstr "Repblica Checa" msgid "Czechoslovakia (former)" msgstr "Checoslovaquia (Antigua)" msgid "DNS Lookup" msgstr "DNS Lookup" msgid "Daily Avg" msgstr "Media diaria" msgid "Daily Statistics" msgstr "Estadsticas diarias" msgid "Daily Statistics for" msgstr "Estadsticas diarias de" msgid "Daily usage for" msgstr "Uso diario en" msgid "Day" msgstr "Da" msgid "Dec" msgstr "Dic" msgid "December" msgstr "Diciembre" msgid "Denmark" msgstr "Dinamarca" msgid "Djibouti" msgstr "Djibouti" msgid "Dominica" msgstr "Dominica" msgid "Dominican Republic" msgstr "Repblica Dominicana" msgid "East Timor" msgstr "Timor Este" msgid "Ecuador" msgstr "Ecuador" msgid "Egypt" msgstr "Egipto" msgid "El Salvador" msgstr "El Salvador" msgid "English" msgstr "Spanish" msgid "Entry" msgstr "Entrada" msgid "Equatorial Guinea" msgstr "Guinea Ecuatorial" msgid "Eritrea" msgstr "Eritrea" msgid "Error adding Referrer node, skipping" msgstr "Error agregando nodo de enlace origen, me lo salto" msgid "Error adding Search String Node, skipping" msgstr "Error agregando nodo de cadenas de bsqueda, me lo salto" msgid "Error adding URL node, skipping" msgstr "Error agregando nodo de URL, me lo salto" msgid "Error adding User Agent node, skipping" msgstr "Error agregando nodo de navegador, me lo salto" msgid "Error adding Username node, skipping" msgstr "Error agregando nodo de usuarios, me lo salto" msgid "Error adding host node (daily), skipping" msgstr "Error agregando nodo de servidor (diario), me lo salto" msgid "Error adding host node (monthly), skipping" msgstr "Error agregando nodo de servidor (mensual), me lo salto" msgid "Error: Can't change directory to" msgstr "Error: no se puede cambiar al directorio" msgid "Error: Can't open log file" msgstr "Error: No puedo abrir histrico" msgid "Error: Ignoring invalid history record" msgstr "Error: Ignorando un registro invlido en el archivo" msgid "Error: Skipping oversized log record" msgstr "Error: Saltando registro de histrico demasiado grande" msgid "Error: Skipping record (bad date)" msgstr "Error: ignorando registro (fecha errnea)" msgid "Error: Unable to lock DNS cache file" msgstr "Error: Unable to lock DNS cache file" msgid "Error: Unable to open DNS cache file" msgstr "Error: Unable to open DNS cache file" msgid "Error: Unable to open configuration file" msgstr "Error: no puedo abrir el archivo de configuracin" msgid "Error: Unable to open file" msgstr "Error: No puedo abrir un archivo" msgid "Error: Unable to restore run data" msgstr "Error: No puedo cargar los datos de la corrida" msgid "Error: Unable to save current run data" msgstr "Error: No puedo grabar los datos de la ejecucion actual" msgid "Error: Unable to write history file" msgstr "Error: No puedo abrir el archivo histrico" msgid "Estonia" msgstr "Estonia" msgid "Ethiopia" msgstr "Etiopa" msgid "Exit" msgstr "Salida" msgid "Falkland Islands (Malvinas)" msgstr "Malvinas" msgid "Faroe Islands" msgstr "Islas Faroe" msgid "Feb" msgstr "Feb" msgid "February" msgstr "Febrero" msgid "Fiji" msgstr "Fiji" msgid "Files" msgstr "Archivos" msgid "Files per Day" msgstr "Archivos por Da" msgid "Finland" msgstr "Finlandia" msgid "France" msgstr "Francia" msgid "France; Metropolitan" msgstr "Francia (Metropolitana)" msgid "French Guiana" msgstr "Guinea francesa" msgid "French Polynesia" msgstr "Polinesia francesa" msgid "French Southern Territories" msgstr "Territorios Franceses del Sur" msgid "Gabon" msgstr "Gabn" msgid "Gambia" msgstr "Gambia" msgid "Generated" msgstr "Generado el" msgid "Generating report for" msgstr "Generando informe de" msgid "Generating summary report" msgstr "Generando informe resumido" msgid "Georgia" msgstr "Georgia" msgid "Germany" msgstr "Alemania" msgid "Ghana" msgstr "Ghana" msgid "Gibraltar" msgstr "Gibraltar" msgid "Great Britain (UK)" msgstr "Gran Bretaa (Reino Unido)" msgid "Greece" msgstr "Grecia" msgid "Greenland" msgstr "Groenlandia" msgid "Grenada" msgstr "Granada" msgid "Guadeloupe" msgstr "Guadalupe" msgid "Guam" msgstr "Guam" msgid "Guatemala" msgstr "Guatemala" msgid "Guinea" msgstr "Guinea" msgid "Guinea-Bissau" msgstr "Guinea-Bissau" msgid "Guyana" msgstr "Guyana" msgid "Haiti" msgstr "Hait" msgid "Heard and McDonald Islands" msgstr "Islas Heard y McDonald" msgid "History file not found..." msgstr "No encuentro el archivo histrico..." msgid "Hits" msgstr "Accesos" msgid "Hits by Response Code" msgstr "Accesos por cdigo de respuesta" msgid "Hits per Day" msgstr "Accesos por Da" msgid "Hits per Hour" msgstr "Accesos por Hora" msgid "Honduras" msgstr "Honduras" msgid "Hong Kong" msgstr "Hong Kong" msgid "Hostname" msgstr "Mquina" msgid "Hostname for reports is" msgstr "El nombre de mquina en el informe es" msgid "Hour" msgstr "Hora" msgid "Hourly Statistics" msgstr "Estadsticas por horas" msgid "Hourly Statistics for" msgstr "Estadsticas por hora de" msgid "Hourly usage for" msgstr "Uso por horas en" msgid "Hungary" msgstr "Hungra" msgid "Iceland" msgstr "Islandia" msgid "Ignoring previous history..." msgstr "Ignorando registro anterior..." msgid "India" msgstr "India" msgid "Indonesia" msgstr "Indonesia" msgid "International (int)" msgstr "Internacional (int)" msgid "Iran" msgstr "Irn" msgid "Iraq" msgstr "Iraq" msgid "Ireland" msgstr "Irlanda" msgid "Israel" msgstr "Israel" msgid "Italy" msgstr "Italia" msgid "Jamaica" msgstr "Jamaica" msgid "Jan" msgstr "Ene" msgid "January" msgstr "Enero" msgid "Japan" msgstr "Japn" msgid "Jordan" msgstr "Jordania" msgid "Jul" msgstr "Jul" msgid "July" msgstr "Julio" msgid "Jun" msgstr "Jun" msgid "June" msgstr "Junio" msgid "KBytes" msgstr "KBytes" msgid "KBytes per Day" msgstr "KBytes por Da" msgid "Kazakhstan" msgstr "Kazagistn" msgid "Kenya" msgstr "Kenia" msgid "Kiribati" msgstr "Kiribati" msgid "Korea (North)" msgstr "Corea del Norte" msgid "Korea (South)" msgstr "Corea del Sur" msgid "Kuwait" msgstr "Kuwait" msgid "Kyrgyzstan" msgstr "Kyrgyzstn" msgid "Laos" msgstr "Laos" msgid "Last 12 Months" msgstr "ltimos 12 meses" msgid "Latvia" msgstr "Latvia" msgid "Lebanon" msgstr "Lbano" msgid "Lesotho" msgstr "Lesotho" msgid "Liberia" msgstr "Liberia" msgid "Libya" msgstr "Libia" msgid "Liechtenstein" msgstr "Liechtenstein" msgid "Lithuania" msgstr "Lituania" msgid "Luxembourg" msgstr "Luxemburgo" msgid "Macau" msgstr "Macao" msgid "Macedonia" msgstr "Macedonia" msgid "Madagascar" msgstr "Madagascar" msgid "Malawi" msgstr "Malawi" msgid "Malaysia" msgstr "Malasia" msgid "Maldives" msgstr "Maldives" msgid "Mali" msgstr "Mali" msgid "Malta" msgstr "Malta" msgid "Mar" msgstr "Mar" msgid "March" msgstr "Marzo" msgid "Marshall Islands" msgstr "Islas Marshall" msgid "Martinique" msgstr "Martinica" msgid "Mauritania" msgstr "Mauritania" msgid "Mauritius" msgstr "Mauricio" msgid "Max" msgstr "Max" msgid "May" msgstr "Mayo" msgid "Mayotte" msgstr "Mayotte" msgid "Mexico" msgstr "Mxico" msgid "Micronesia" msgstr "Micronesia" msgid "Moldova" msgstr "Moldavia" msgid "Monaco" msgstr "Monaco" msgid "Mongolia" msgstr "Mongolia" msgid "Month" msgstr "Mes" msgid "Monthly Statistics for" msgstr "Estadsticas mensuales de" msgid "Monthly Totals" msgstr "Totales mensuales" msgid "Montserrat" msgstr "Montserrat" msgid "Morocco" msgstr "Marruecos" msgid "Mozambique" msgstr "Mozambique" msgid "Myanmar" msgstr "Myanmar" msgid "Namibia" msgstr "Namibia" msgid "Nato field (nato)" msgstr "OTAN" msgid "Nauru" msgstr "Nauru" msgid "Nepal" msgstr "Nepal" msgid "Netherlands" msgstr "Holanda" msgid "Netherlands Antilles" msgstr "Antillas holandesas" msgid "Network" msgstr "Red" msgid "Neutral Zone" msgstr "Zona Neutral" msgid "New Caledonia" msgstr "Nueva Caledonia" msgid "New Zealand (Aotearoa)" msgstr "Nueva Zelanda" msgid "Nicaragua" msgstr "Nicaragua" msgid "Niger" msgstr "Niger" msgid "Nigeria" msgstr "Nigeria" msgid "Niue" msgstr "Niue" msgid "No cache file specified, aborting..." msgstr "No cache file specified, aborting..." msgid "No valid records found!" msgstr "No encuentro ningn registro vlido" msgid "Non-Profit Organization" msgstr "Organizaciones sin fines de lucro" msgid "None to process" msgstr "None to process" msgid "Norfolk Island" msgstr "Isla Norfolk" msgid "Northern Mariana Islands" msgstr "Islas Marianas del Norte" msgid "Norway" msgstr "Noruega" msgid "Nov" msgstr "Nov" msgid "November" msgstr "Noviembre" msgid "Oct" msgstr "Oct" msgid "October" msgstr "Octubre" msgid "Old style Arpanet (arpa)" msgstr "Arpanet" msgid "Oman" msgstr "Omn" msgid "Other" msgstr "Otro" msgid "Pages" msgstr "Pginas" msgid "Pages per Day" msgstr "Pginas por Da" msgid "Pakistan" msgstr "Pakistn" msgid "Palau" msgstr "Palau" msgid "Panama" msgstr "Panam" msgid "Papua New Guinea" msgstr "Papa Nueva Guinea" msgid "Paraguay" msgstr "Paraguay" msgid "Peru" msgstr "Per" msgid "Philippines" msgstr "Filipinas" msgid "Pitcairn" msgstr "Pitcairn" msgid "Poland" msgstr "Polonia" msgid "Portugal" msgstr "Portugal" msgid "Previous run data not found..." msgstr "Datos de ejecucion previa no encontrados..." msgid "Puerto Rico" msgstr "Puerto Rico" msgid "Qatar" msgstr "Qatar" msgid "Reading history file..." msgstr "Leyendo archivo..." msgid "Reading previous run data..." msgstr "Leyendo datos de una ejecucion previa..." msgid "Referrer" msgstr "Enlace origen" msgid "Referrers" msgstr "Enlaces origen" msgid "Reunion" msgstr "Isla Reunin" msgid "Romania" msgstr "Rumania" msgid "Russian Federation" msgstr "Federacion Rusa" msgid "Rwanda" msgstr "Ruanda" msgid "S. Georgia and S. Sandwich Isls." msgstr "Islas S. Georgia y S. Sandwich" msgid "Saint Kitts and Nevis" msgstr "Saint Kitts y Nevis" msgid "Saint Lucia" msgstr "Santa Luca" msgid "Saint Vincent and the Grenadines" msgstr "San Vincente y las Granadinas" msgid "Samoa" msgstr "Samoa" msgid "San Marino" msgstr "San Marino" msgid "Sao Tome and Principe" msgstr "Santo Tomas y Principe" msgid "Saudi Arabia" msgstr "Arabia Saudita" msgid "Saving current run data..." msgstr "Grabando datos de la ejecucion actual..." msgid "Saving history information..." msgstr "Guardando informacin de archivo..." msgid "Search" msgstr "Bsqueda" msgid "Search String" msgstr "Cadena de Bsqueda" msgid "Senegal" msgstr "Senegal" msgid "Sep" msgstr "Sep" msgid "September" msgstr "Septiembre" msgid "Seychelles" msgstr "Seychelles" msgid "Sierra Leone" msgstr "Sierra Leona" msgid "Singapore" msgstr "Singapur" msgid "Sites" msgstr "Clientes" msgid "Skipping Netscape header record" msgstr "Saltando registro de cabecera Netscape" msgid "Skipping bad record" msgstr "Saltando registro errneo" msgid "Slovak Republic" msgstr "Repblica Eslovaca" msgid "Slovenia" msgstr "Eslovenia" msgid "Solomon Islands" msgstr "Islas Salomn" msgid "Somalia" msgstr "Somalia" msgid "South Africa" msgstr "Sudafrica" msgid "Spain" msgstr "Espaa" msgid "Sri Lanka" msgstr "Sri Lanka" msgid "St. Helena" msgstr "Sta. Elena" msgid "St. Pierre and Miquelon" msgstr "St. Pierre y Miquelon" msgid "Sudan" msgstr "Sudn" msgid "Summary Period" msgstr "Perodo resumido" msgid "Summary by Month" msgstr "Resumen por meses" msgid "Suriname" msgstr "Surinam" msgid "Svalbard and Jan Mayen Islands" msgstr "Islas Svalbard y Jan Mayen" msgid "Swaziland" msgstr "Swazilandia" msgid "Sweden" msgstr "Suecia" msgid "Switzerland" msgstr "Suiza" msgid "Syria" msgstr "Siria" msgid "Taiwan" msgstr "Taiwan" msgid "Tajikistan" msgstr "Tajikistn" msgid "Tanzania" msgstr "Tanzania" msgid "Thailand" msgstr "Tailandia" msgid "Togo" msgstr "Togo" msgid "Tokelau" msgstr "Tokelau" msgid "Tonga" msgstr "Tonga" msgid "Top" msgstr "Los" msgid "Total" msgstr "Total" msgid "Total Countries" msgstr "pases" msgid "Total Entry Pages" msgstr "Total de Pginas de Entrada" msgid "Total Exit Pages" msgstr "Total de Pginas de Salida" msgid "Total Files" msgstr "Total Archivos" msgid "Total Hits" msgstr "Total Accesos" msgid "Total KBytes" msgstr "Total KBytes" msgid "Total Referrers" msgstr "enlaces origen" msgid "Total Search Strings" msgstr "Total de Cadenas de Bsqueda" msgid "Total Sites" msgstr "clientes" msgid "Total URLs" msgstr "URLs" msgid "Total Unique Referrers" msgstr "Total Enlaces origen" msgid "Total Unique Sites" msgstr "Total Clientes" msgid "Total Unique URLs" msgstr "Total URLs" msgid "Total Unique User Agents" msgstr "Total Navegadores" msgid "Total Unique Usernames" msgstr "Total Usuarios nicos" msgid "Total User Agents" msgstr "programas de cliente" msgid "Total Usernames" msgstr "Total de Usuarios" msgid "Totals" msgstr "Totales" msgid "Trinidad and Tobago" msgstr "Trinidad y Tobago" msgid "Tunisia" msgstr "Tunez" msgid "Turkey" msgstr "Turqua" msgid "Turkmenistan" msgstr "Turkmenistn" msgid "Turks and Caicos Islands" msgstr "Islas Turcos y Caicos" msgid "Tuvalu" msgstr "Tuvalu" msgid "URL" msgstr "URL" msgid "URLs" msgstr "URLs" msgid "US Commercial" msgstr "Comercial" msgid "US Educational" msgstr "Educacion USA" msgid "US Government" msgstr "Gobierno USA" msgid "US Military" msgstr "Ejrcito USA" msgid "US Minor Outlying Islands" msgstr "Islas Menores Exteriores Norteamericanas" msgid "USSR (former)" msgstr "URSS (ant.)" msgid "Uganda" msgstr "Uganda" msgid "Ukraine" msgstr "Ucrania" msgid "Undefined response code" msgstr "Cdigo de respuesta indefinido" msgid "United Arab Emirates" msgstr "Emiratos Arabes Unidos" msgid "United Kingdom" msgstr "Reino Unido" msgid "United States" msgstr "Estados Unidos" msgid "Unresolved/Unknown" msgstr "No resuelve/desconocido" msgid "Uruguay" msgstr "Uruguay" msgid "Usage" msgstr "Forma de uso" msgid "Usage Statistics for" msgstr "Estadsticas de uso para" msgid "Usage by Country for" msgstr "Accesos por pas en" msgid "Usage summary for" msgstr "Resumen de uso de" msgid "User Agent" msgstr "Navegador" msgid "Username" msgstr "Usuario" msgid "Users" msgstr "Usuarios" msgid "Using DNS cache file" msgstr "Using DNS cache file" msgid "Using logfile" msgstr "Utilizando histrico" msgid "Uzbekistan" msgstr "Uzbekistn" msgid "Vanuatu" msgstr "Vanuatu" msgid "Vatican City State (Holy See)" msgstr "Ciudad Estado Vaticano (Sta. Sede)" msgid "Venezuela" msgstr "Venezuela" msgid "Viet Nam" msgstr "Viet Nam" msgid "View All Referrers" msgstr "Ver todos los Referentes" msgid "View All Search Strings" msgstr "Ver todas las Palabras de Bsqueda" msgid "View All Sites" msgstr "Ver todos los Sitios" msgid "View All URLs" msgstr "Ver todos los enlaces" msgid "View All User Agents" msgstr "Ver todos los Navegadores" msgid "View All Usernames" msgstr "Ver todos los Usuarios" msgid "Virgin Islands (British)" msgstr "Islas Virgenes (Britnicas)" msgid "Virgin Islands (U.S.)" msgstr "Islas Virgenes (U.S.A)" msgid "Visits" msgstr "Visitas" msgid "Visits per Day" msgstr "Visitas por Da" msgid "Wallis and Futuna Islands" msgstr "Islas Wallis y Futuna" msgid "Warning: Invalid keyword" msgstr "Aviso: palabra clave errnea" msgid "Warning: Possible duplicate data found" msgstr "Aviso: Posibles datos duplicados encontrados" msgid "Warning: String exceeds storage size" msgstr "Aviso: Una cadena sobrepasa el almacenamiento disponible" msgid "Warning: Truncating oversized date field" msgstr "Aviso: Cortando campo de fecha demasiado grande" msgid "Warning: Truncating oversized hostname" msgstr "Aviso: Cortando nombre de mquina demasiado grande" msgid "Warning: Truncating oversized referrer field" msgstr "Aviso: Cortando campo de enlace origen demasiado grande" msgid "Warning: Truncating oversized request field" msgstr "Aviso: Cortando campo de peticin demasiado grande" msgid "Warning: Truncating oversized username" msgstr "Aviso: Cortando campo de usuario demasiado grande" msgid "Western Sahara" msgstr "Sahara Occidental" msgid "Yemen" msgstr "Yemen" msgid "Yugoslavia" msgstr "Yugoslavia" msgid "Zaire" msgstr "Zaire" msgid "Zambia" msgstr "Zambia" msgid "Zimbabwe" msgstr "Zimbabwe" msgid "[options] [log file]" msgstr "[opciones] [archivo histrico]" msgid "addresses" msgstr "direcciones" msgid "bad" msgstr "errneos" msgid "current directory" msgstr "directorio actual" msgid "ignored" msgstr "ignorados" msgid "in" msgstr "en" msgid "of" msgstr "primeros de un total de" msgid "records" msgstr "registros" msgid "seconds" msgstr "segundos" webdruid-0.5.4.orig/po/da.po0000644000000000000000000006364410066113350015574 0ustar rootroot00000000000000msgid "" msgstr "" "Project-Id-Version: 1.0\n" "PO-Revision-Date: 2003-05-25 23:29+0200\n" "Last-Translator: Johan Poirier \n" "Language-Team: French \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=ISO-8859-1\n" "Content-Transfer-Encoding: 8bit" msgid "-A num = Display num top agents" msgstr "-A num = Vis antal top browsere" msgid "-C num = Display num top countries" msgstr "-C num = Vis antal top lande" msgid "-D name = Use DNS Cache file 'name'" msgstr "-D name = Use DNS Cache file 'name'" msgid "-E num = Display num top Exit Pages" msgstr "-E num = Vis antal top udgangsadresser" msgid "-F type = Log type. type= (clf | ftp | squid)" msgstr "-F type = Log type. type= (clf | ftp | squid)" msgid "-G = supress hourly graph" msgstr "-G = undertryk timegrafer" msgid "-H = supress hourly stats" msgstr "-H = undertryk timestatistikker" msgid "-I name = Index alias 'name'" msgstr "-I name = Indeks alias 'name'" msgid "-L = supress color coded graph legends" msgstr "-L = undertryk farvekodede grafertekst" msgid "-N num = Number of DNS processes (0=disable)" msgstr "-N num = Number of DNS processes (0=disable)" msgid "-P name = Page type extension 'name'" msgstr "-P name = Side type-efternavn 'name'" msgid "-Q = supress _ALL_ messages" msgstr "-Q = undertryk _ALLE_ beskeder" msgid "-R num = Display num top referrers" msgstr "-R num = Vis antal top henvisende sider" msgid "-S num = Display num top sites" msgstr "-S num = Vis antal top gster" msgid "-T = print timing information" msgstr "-T = udskriv timing-information" msgid "-U num = Display num top URLs" msgstr "-U num = Vis antal top URL" msgid "-X = Hide individual sites" msgstr "-X = Hide individual sites" msgid "-Y = supress country graph" msgstr "-Y = undertryk landegrafer" msgid "-a name = hide user agent 'name'" msgstr "-a name = gem browser 'name'" msgid "-c file = use configuration file 'file'" msgstr "-c file = brug konfigurationsfilen 'file'" msgid "-d = print additional debug info" msgstr "-d = udskriv ekstra fejlsgningsinformation" msgid "-e num = Display num top Entry Pages" msgstr "-e num = Vis antal top indgangsadresser" msgid "-f = Fold sequence errors" msgstr "-f = Fold sekvensfejl" msgid "-g num = Group Domains to 'num' levels" msgstr "-g num = Group Domains to 'num' levels" msgid "-h = print this help message" msgstr "-h = udskriv denne hjlpebesked" msgid "-i = ignore history file" msgstr "-i = ignorer historiefil" msgid "-l num = use num background lines on graph" msgstr "-l num = brug numeriske baggrundslinier p graf" msgid "-m num = Visit timout value (seconds)" msgstr "-m num = Undersg timeout-vrdi (seconds)" msgid "-n name = hostname to use" msgstr "-n name = vrtsnavn som anvendes" msgid "-o dir = output directory to use" msgstr "-o dir = Output bibliotek som anvendes" msgid "-p = preserve state (incremental)" msgstr "-p = bevar tilstand (inkremental)" msgid "-q = supress informational messages" msgstr "-q = undertryk informationsrelaterede beskeder" msgid "-r name = hide referrer 'name'" msgstr "-r name = gem henvisende side 'name'" msgid "-s name = hide site 'name'" msgstr "-s name = gem gste 'name'" msgid "-t name = report title 'name'" msgstr "-t name = rapport titel 'name'" msgid "-u name = hide URL 'name'" msgstr "-u name = gem URL 'name'" msgid "-v -V = print version information" msgstr "-v -V = udskriv versionsoplysninger" msgid "-x name = Use filename extension 'name'" msgstr "-x name = Brug filefternavn 'name'" msgid "Afghanistan" msgstr "Afghanistan" msgid "Agents" msgstr "Browsere" msgid "Albania" msgstr "Albanien" msgid "Algeria" msgstr "Algeriet" msgid "American Samoa" msgstr "Amerikansk Samoa" msgid "Andorra" msgstr "Andorra" msgid "Angola" msgstr "Angola" msgid "Anguilla" msgstr "Anguilla" msgid "Antarctica" msgstr "Antarktis" msgid "Antigua and Barbuda" msgstr "Antigua og Barbuda" msgid "Apr" msgstr "Apr" msgid "April" msgstr "April" msgid "Argentina" msgstr "Argentina" msgid "Armenia" msgstr "Armenien" msgid "Aruba" msgstr "Aruba" msgid "Aug" msgstr "Aug" msgid "August" msgstr "August" msgid "Australia" msgstr "Australien" msgid "Austria" msgstr "strig" msgid "Avg" msgstr "Gn.snit" msgid "Azerbaijan" msgstr "Azerbaijan" msgid "Bahamas" msgstr "Bahamas" msgid "Bahrain" msgstr "Bahrain" msgid "Bangladesh" msgstr "Bangladesh" msgid "Barbados" msgstr "Barbados" msgid "Belarus" msgstr "Belarus" msgid "Belgium" msgstr "Belgien" msgid "Belize" msgstr "Belize" msgid "Benin" msgstr "Benin" msgid "Bermuda" msgstr "Bermuda" msgid "Bhutan" msgstr "Bhutan" msgid "Bolivia" msgstr "Bolivia" msgid "Bosnia and Herzegovina" msgstr "Bosnien og Herzegovina" msgid "Botswana" msgstr "Botswana" msgid "Bouvet Island" msgstr "Bouvet Island" msgid "Brazil" msgstr "Brasilien" msgid "British Indian Ocean Territory" msgstr "Det britiske indiske ocean-territorium" msgid "Brunei Darussalam" msgstr "Brunei Darussalam" msgid "Bulgaria" msgstr "Bulgarien" msgid "Burkina Faso" msgstr "Burkina Faso" msgid "Burundi" msgstr "Burundi" msgid "By" msgstr "-" msgid "Cambodia" msgstr "Cambodia" msgid "Cameroon" msgstr "Cameroon" msgid "Can't allocate enough memory, Top Countries disabled!" msgstr "Kan ikke allokere nok hukommelse, Top Lande sls fra!" msgid "Can't allocate enough memory, Top Referrers disabled!" msgstr "Kan ikke allokere nok hukommelse, Top Referer sls fra!" msgid "Can't allocate enough memory, Top Search Strings disabled!" msgstr "Kan ikke allokere nok hukommelse, Top Sgestrenge sles fra!" msgid "Can't allocate enough memory, Top Sites disabled!" msgstr "Kan ikke allokere nok hukommelse, Top Gster sls fra!" msgid "Can't allocate enough memory, Top URLs disabled!" msgstr "Kan ikke allokere nok hukommelse, Top URL sls fra!" msgid "Can't allocate enough memory, Top User Agents disabled!" msgstr "Kan ikke allokere nok hukommelse, Top Web browsere sls fra!" msgid "Can't allocate enough memory, Top Usernames disabled!" msgstr "Can't allocate enough memory, Top Usernames disabled!" msgid "Canada" msgstr "Canada" msgid "Cape Verde" msgstr "Kap Verde" msgid "Cayman Islands" msgstr "Cayman-erne" msgid "Central African Republic" msgstr "Den Centralafrikanske Republik" msgid "Chad" msgstr "Chad" msgid "Chile" msgstr "Chile" msgid "China" msgstr "Kina" msgid "Christmas Island" msgstr "Juleerne" msgid "Cocos (Keeling) Islands" msgstr "Cocos (Keeling)-erne" msgid "Code 100 - Continue" msgstr "Kode 100 - Fortst" msgid "Code 101 - Switching Protocols" msgstr "Kode 101 - Skift protokoller" msgid "Code 200 - OK" msgstr "Kode 200 - OK" msgid "Code 201 - Created" msgstr "Kode 201 - Oprettet" msgid "Code 202 - Accepted" msgstr "Kode 202 - Accepteret" msgid "Code 203 - Non-Authoritative Information" msgstr "Kode 203 - Ikke-autoritativ information" msgid "Code 204 - No Content" msgstr "Kode 204 - Intet indhold" msgid "Code 205 - Reset Content" msgstr "Kode 205 - Nulstil indhold" msgid "Code 206 - Partial Content" msgstr "Kode 206 - Delvist indhold" msgid "Code 300 - Multiple Choices" msgstr "Kode 300 - Dobbelte data" msgid "Code 301 - Moved Permanently" msgstr "Kode 301 - Flyttet permanent" msgid "Code 302 - Found" msgstr "Kode 302 - Fundet" msgid "Code 303 - See Other" msgstr "Kode 303 - Se andet" msgid "Code 304 - Not Modified" msgstr "Kode 304 - Ikke ndret" msgid "Code 305 - Use Proxy" msgstr "Kode 305 - Brug proxy" msgid "Code 307 - Moved Temporarily" msgstr "Kode 307 - Flyttet midlertidigt" msgid "Code 400 - Bad Request" msgstr "Kode 400 - Forkert foresprgsel" msgid "Code 401 - Unauthorized" msgstr "Kode 401 - Ingen adgang" msgid "Code 402 - Payment Required" msgstr "Kode 402 - Betaling pkrvet" msgid "Code 403 - Forbidden" msgstr "Kode 403 - Forbudt" msgid "Code 404 - Not Found" msgstr "Kode 404 - Findes ikke" msgid "Code 405 - Method Not Allowed" msgstr "Kode 405 - Metoden ikke tilladt" msgid "Code 406 - Not Acceptable" msgstr "Kode 406 - Ikke acceptabelt" msgid "Code 407 - Proxy Authentication Required" msgstr "Kode 407 - Proxygodkendelse pkrvet" msgid "Code 408 - Request Timeout" msgstr "Kode 408 - Tiden er udlbet for foresprgslen" msgid "Code 409 - Conflict" msgstr "Kode 409 - Konflikt" msgid "Code 410 - Gone" msgstr "Kode 410 - Forsvundet" msgid "Code 411 - Length Required" msgstr "Kode 411 - Lngde pkrvet" msgid "Code 412 - Precondition Failed" msgstr "Kode 412 - Forudstning ikke opfyldt" msgid "Code 413 - Request Entity Too Large" msgstr "Kode 413 - Foresprgselsenhed for stor" msgid "Code 414 - Request-URI Too Long" msgstr "Kode 414 - Adresse for lang" msgid "Code 415 - Unsupported Media Type" msgstr "Kode 415 - Medietypen understttes ikke" msgid "Code 416 - Requested Range Not Satisfiable" msgstr "Kode 416 - Forespurgt omrde ikke tilfredsstillende" msgid "Code 417 - Expectation Failed" msgstr "Kode 417 - Det forventede skete ikke" msgid "Code 500 - Internal Server Error" msgstr "Kode 500 - Intern serverfejl" msgid "Code 501 - Not Implemented" msgstr "Kode 501 - Ikke indbygget" msgid "Code 502 - Bad Gateway" msgstr "Kode 502 - Forkert gateway" msgid "Code 503 - Service Unavailable" msgstr "Kode 503 - Tjenesten ikke tilgngelig" msgid "Code 504 - Gateway Timeout" msgstr "Kode 504 - Tiden er udlbet for gateway'en" msgid "Code 505 - HTTP Version Not Supported" msgstr "Kode 505 - HTTP-versionen understttes ikke" msgid "Colombia" msgstr "Colombia" msgid "Comoros" msgstr "Comoros" msgid "Congo" msgstr "Congo" msgid "Cook Islands" msgstr "Cook-erne" msgid "Costa Rica" msgstr "Costa Rica" msgid "Cote D'Ivoire (Ivory Coast)" msgstr "Cote D'Ivoire (Elfenbenskysten)" msgid "Countries" msgstr "Lande" msgid "Country" msgstr "Land" msgid "Creating output in" msgstr "Opretter output i biblioteket" msgid "Croatia (Hrvatska)" msgstr "Kroatien (Hrvatska)" msgid "Cuba" msgstr "Cuba" msgid "Cyprus" msgstr "Cypern" msgid "Czech Republic" msgstr "Tjekkiet" msgid "Czechoslovakia (former)" msgstr "Tjekkoslovakiet (det tidligere)" msgid "DNS Lookup" msgstr "DNS Lookup" msgid "Daily Avg" msgstr "Dagligt gennemsnit" msgid "Daily Statistics" msgstr "Daglig statistik" msgid "Daily Statistics for" msgstr "Daglig statistik for" msgid "Daily usage for" msgstr "Daglig tilgang -" msgid "Day" msgstr "Dag" msgid "Dec" msgstr "Dec" msgid "December" msgstr "December" msgid "Denmark" msgstr "Danmark" msgid "Djibouti" msgstr "Djibouti" msgid "Dominica" msgstr "Dominica" msgid "Dominican Republic" msgstr "Den Dominikanske Republik" msgid "East Timor" msgstr "st-Timor" msgid "Ecuador" msgstr "Ecuador" msgid "Egypt" msgstr "Egypten" msgid "El Salvador" msgstr "El Salvador" msgid "English" msgstr "Danish" msgid "Entry" msgstr "Indgangsadresse" msgid "Equatorial Guinea" msgstr "Equatorial Guinea" msgid "Eritrea" msgstr "Eritrea" msgid "Error adding Referrer node, skipping" msgstr "Fejl ved tilfjelse af Referer node, skipping" msgid "Error adding Search String Node, skipping" msgstr "Fejl ved tilfjelse af Sgestrenge Node, skipping" msgid "Error adding URL node, skipping" msgstr "Fejl ved tilfjelse af URL-node, skipping" msgid "Error adding User Agent node, skipping" msgstr "Fejl ved tilfjelse af Web browsere node, skipping" msgid "Error adding Username node, skipping" msgstr "Error adding Username node, skipping" msgid "Error adding host node (daily), skipping" msgstr "Fejl ved tilfjelse af host-node (daglig), skipping" msgid "Error adding host node (monthly), skipping" msgstr "Fejl ved tilfjelse af host-node (mnedlig), skipping" msgid "Error: Can't change directory to" msgstr "Fejl: kan ikke skifte bibliotek til" msgid "Error: Can't open log file" msgstr "Fejl: kan ikke bne logfil" msgid "Error: Ignoring invalid history record" msgstr "Fejl: Ignorerer forkert historiepost" msgid "Error: Skipping oversized log record" msgstr "Fejl: Springer over streng (for stor log-post)" msgid "Error: Skipping record (bad date)" msgstr "Fejl: Springer over post (forkert dato)" msgid "Error: Unable to lock DNS cache file" msgstr "Error: Unable to lock DNS cache file" msgid "Error: Unable to open DNS cache file" msgstr "Error: Unable to open DNS cache file" msgid "Error: Unable to open configuration file" msgstr "Fejl: Kan ikke bne konfigurationsfil" msgid "Error: Unable to open file" msgstr "Fejl: Kan ikke bne filen" msgid "Error: Unable to restore run data" msgstr "Fejl: Kan ikke genindlse krselsdata" msgid "Error: Unable to save current run data" msgstr "Fejl: Kan ikke gemme aktive krselsdata" msgid "Error: Unable to write history file" msgstr "Fejl: Kan ikke skrive til historiefil" msgid "Estonia" msgstr "Estland" msgid "Ethiopia" msgstr "Etiopien" msgid "Exit" msgstr "Udgangsadresse" msgid "Falkland Islands (Malvinas)" msgstr "Falklandserne (Malvinas)" msgid "Faroe Islands" msgstr "Frerne" msgid "Feb" msgstr "Feb" msgid "February" msgstr "Februar" msgid "Fiji" msgstr "Fiji" msgid "Files" msgstr "Filer" msgid "Files per Day" msgstr "Filer pr. dag" msgid "Finland" msgstr "Finland" msgid "France" msgstr "Frankrig" msgid "France; Metropolitan" msgstr "France, Metropolitan" msgid "French Guiana" msgstr "Fransk Guiana" msgid "French Polynesia" msgstr "Fransk Polynesien" msgid "French Southern Territories" msgstr "De franske, sydlige territorier" msgid "Gabon" msgstr "Gabon" msgid "Gambia" msgstr "Gambia" msgid "Generated" msgstr "Sidst opdateret" msgid "Generating report for" msgstr "Genererer rapport for" msgid "Generating summary report" msgstr "Genererer opsummerende rapport" msgid "Georgia" msgstr "Georgien" msgid "Germany" msgstr "Tyskland" msgid "Ghana" msgstr "Ghana" msgid "Gibraltar" msgstr "Gibraltar" msgid "Great Britain (UK)" msgstr "Storbritannien (UK)" msgid "Greece" msgstr "Grkenland" msgid "Greenland" msgstr "Grnland" msgid "Grenada" msgstr "Granada" msgid "Guadeloupe" msgstr "Guadeloupe" msgid "Guam" msgstr "Guam" msgid "Guatemala" msgstr "Guatemala" msgid "Guinea" msgstr "Guinea" msgid "Guinea-Bissau" msgstr "Guinea-Bissau" msgid "Guyana" msgstr "Guyana" msgid "Haiti" msgstr "Haiti" msgid "Heard and McDonald Islands" msgstr "Heard- og McDonald-erne" msgid "History file not found..." msgstr "Historiefilen findes ikke..." msgid "Hits" msgstr "Foresprgsler" msgid "Hits by Response Code" msgstr "Foresprgsler fordelt p svarkoder" msgid "Hits per Day" msgstr "Foresprgsler pr. dag" msgid "Hits per Hour" msgstr "Foresprgsler pr. time" msgid "Honduras" msgstr "Honduras" msgid "Hong Kong" msgstr "Hong Kong" msgid "Hostname" msgstr "Navn/IP-adresse" msgid "Hostname for reports is" msgstr "Rapporterne ligger p maskinen med vrtsnavnet" msgid "Hour" msgstr "Time" msgid "Hourly Statistics" msgstr "Timestatistik" msgid "Hourly Statistics for" msgstr "Timestatistik for" msgid "Hourly usage for" msgstr "Timefordelt tilgang -" msgid "Hungary" msgstr "Ungarn" msgid "Iceland" msgstr "Island" msgid "Ignoring previous history..." msgstr "Ignorerer tidligere historie ..." msgid "India" msgstr "Indien" msgid "Indonesia" msgstr "Indonesien" msgid "International (int)" msgstr "International (int)" msgid "Iran" msgstr "Iran" msgid "Iraq" msgstr "Irak" msgid "Ireland" msgstr "Irland" msgid "Israel" msgstr "Israel" msgid "Italy" msgstr "Italien" msgid "Jamaica" msgstr "Jamaica" msgid "Jan" msgstr "Jan" msgid "January" msgstr "Januar" msgid "Japan" msgstr "Japan" msgid "Jordan" msgstr "Jordan" msgid "Jul" msgstr "Jul" msgid "July" msgstr "Juli" msgid "Jun" msgstr "Jun" msgid "June" msgstr "Juni" msgid "KBytes" msgstr "kB" msgid "KBytes per Day" msgstr "kB pr. dag" msgid "Kazakhstan" msgstr "Kazakhstan" msgid "Kenya" msgstr "Kenya" msgid "Kiribati" msgstr "Kiribati" msgid "Korea (North)" msgstr "Korea (Nord-)" msgid "Korea (South)" msgstr "Korea (Syd-)" msgid "Kuwait" msgstr "Kuwait" msgid "Kyrgyzstan" msgstr "Kyrgyzstan" msgid "Laos" msgstr "Laos" msgid "Last 12 Months" msgstr "De sidste 12 mneder" msgid "Latvia" msgstr "Latvia" msgid "Lebanon" msgstr "Libanon" msgid "Lesotho" msgstr "Lesotho" msgid "Liberia" msgstr "Liberia" msgid "Libya" msgstr "Libyen" msgid "Liechtenstein" msgstr "Liechtenstein" msgid "Lithuania" msgstr "Litauen" msgid "Luxembourg" msgstr "Luxembourg" msgid "Macau" msgstr "Macau" msgid "Macedonia" msgstr "Makedonien" msgid "Madagascar" msgstr "Madagaskar" msgid "Malawi" msgstr "Malawi" msgid "Malaysia" msgstr "Malaysien" msgid "Maldives" msgstr "Maldiverne" msgid "Mali" msgstr "Mali" msgid "Malta" msgstr "Malta" msgid "Mar" msgstr "Mar" msgid "March" msgstr "Marts" msgid "Marshall Islands" msgstr "Marshall-erne" msgid "Martinique" msgstr "Martinique" msgid "Mauritania" msgstr "Mauritanien" msgid "Mauritius" msgstr "Mauritius" msgid "Max" msgstr "Maks" msgid "May" msgstr "Maj" msgid "Mayotte" msgstr "Mayotte" msgid "Mexico" msgstr "Mexico" msgid "Micronesia" msgstr "Mikronesien" msgid "Moldova" msgstr "Moldova" msgid "Monaco" msgstr "Monaco" msgid "Mongolia" msgstr "Mongolien" msgid "Month" msgstr "Mned" msgid "Monthly Statistics for" msgstr "Mnedlig statistik for" msgid "Monthly Totals" msgstr "Sammenlagt pr. mned" msgid "Montserrat" msgstr "Montserrat" msgid "Morocco" msgstr "Marokko" msgid "Mozambique" msgstr "Mozambique" msgid "Myanmar" msgstr "Myanmar" msgid "Namibia" msgstr "Namibia" msgid "Nato field (nato)" msgstr "NATO-felt (nato)" msgid "Nauru" msgstr "Nauru" msgid "Nepal" msgstr "Nepal" msgid "Netherlands" msgstr "Holland" msgid "Netherlands Antilles" msgstr "De Hollandske Antiller" msgid "Network" msgstr "Netvrk" msgid "Neutral Zone" msgstr "Neutral zone" msgid "New Caledonia" msgstr "Ny Kaledonien" msgid "New Zealand (Aotearoa)" msgstr "New Zealand (Aotearoa)" msgid "Nicaragua" msgstr "Nicaragua" msgid "Niger" msgstr "Niger" msgid "Nigeria" msgstr "Nigeria" msgid "Niue" msgstr "Niue" msgid "No cache file specified, aborting..." msgstr "No cache file specified, aborting..." msgid "No valid records found!" msgstr "Fandt ingen korrekte poster!" msgid "Non-Profit Organization" msgstr "Almennyttig organisation" msgid "None to process" msgstr "None to process" msgid "Norfolk Island" msgstr "Norfolk Island" msgid "Northern Mariana Islands" msgstr "Nord-Mariana-erne" msgid "Norway" msgstr "Norge" msgid "Nov" msgstr "Nov" msgid "November" msgstr "November" msgid "Oct" msgstr "Okt" msgid "October" msgstr "Oktober" msgid "Old style Arpanet (arpa)" msgstr "Gammel Stil Arpanet (arpa)" msgid "Oman" msgstr "Oman" msgid "Other" msgstr "Andre" msgid "Pages" msgstr "Sider" msgid "Pages per Day" msgstr "Sider pr. dag" msgid "Pakistan" msgstr "Pakistan" msgid "Palau" msgstr "Palau" msgid "Panama" msgstr "Panama" msgid "Papua New Guinea" msgstr "Papua New Guinea" msgid "Paraguay" msgstr "Paraguay" msgid "Peru" msgstr "Peru" msgid "Philippines" msgstr "Filippinerne" msgid "Pitcairn" msgstr "Pitcairn" msgid "Poland" msgstr "Polen" msgid "Portugal" msgstr "Portugal" msgid "Previous run data not found..." msgstr "Tidligere krselsdata ikke fundet..." msgid "Puerto Rico" msgstr "Puerto Rico" msgid "Qatar" msgstr "Qatar" msgid "Reading history file..." msgstr "Lser historiefil ..." msgid "Reading previous run data..." msgstr "Lser tidligere krselsdata.." msgid "Referrer" msgstr "Henvisende side" msgid "Referrers" msgstr "Henvisende sider" msgid "Reunion" msgstr "Reunion" msgid "Romania" msgstr "Rumnien" msgid "Russian Federation" msgstr "Rusland" msgid "Rwanda" msgstr "Rwanda" msgid "S. Georgia and S. Sandwich Isls." msgstr "S. Georgia- og S. Sandwich-erne" msgid "Saint Kitts and Nevis" msgstr "Saint Kitts og Nevis" msgid "Saint Lucia" msgstr "Saint Lucia" msgid "Saint Vincent and the Grenadines" msgstr "Saint Vincent og the Grenadines" msgid "Samoa" msgstr "Samoa" msgid "San Marino" msgstr "San Marino" msgid "Sao Tome and Principe" msgstr "Sao Tome og Principe" msgid "Saudi Arabia" msgstr "Saudi Arabien" msgid "Saving current run data..." msgstr "Gemmer aktive krselsdata..." msgid "Saving history information..." msgstr "Gemmer historie-information ..." msgid "Search" msgstr "Sg" msgid "Search String" msgstr "Sgestreng" msgid "Senegal" msgstr "Senegal" msgid "Sep" msgstr "Sep" msgid "September" msgstr "September" msgid "Seychelles" msgstr "Seychellerne" msgid "Sierra Leone" msgstr "Sierra Leone" msgid "Singapore" msgstr "Singapore" msgid "Sites" msgstr "Gster" msgid "Skipping Netscape header record" msgstr "Springer over post med Netscapes hoved" msgid "Skipping bad record" msgstr "Springer over forkert post" msgid "Slovak Republic" msgstr "Slovakiet" msgid "Slovenia" msgstr "Slovenien" msgid "Solomon Islands" msgstr "Salomon-erne" msgid "Somalia" msgstr "Somalien" msgid "South Africa" msgstr "Sydafrika" msgid "Spain" msgstr "Spanien" msgid "Sri Lanka" msgstr "Sri Lanka" msgid "St. Helena" msgstr "St. Helena" msgid "St. Pierre and Miquelon" msgstr "St. Pierre og Miquelon" msgid "Sudan" msgstr "Sudan" msgid "Summary Period" msgstr "Opsummeringsperiode" msgid "Summary by Month" msgstr "Opsummering / mned" msgid "Suriname" msgstr "Suriname" msgid "Svalbard and Jan Mayen Islands" msgstr "Svalbard og Jan Mayen-erne" msgid "Swaziland" msgstr "Swaziland" msgid "Sweden" msgstr "Sverige" msgid "Switzerland" msgstr "Schweitz" msgid "Syria" msgstr "Syrien" msgid "Taiwan" msgstr "Taiwan" msgid "Tajikistan" msgstr "Tajikistan" msgid "Tanzania" msgstr "Tanzania" msgid "Thailand" msgstr "Thailand" msgid "Togo" msgstr "Togo" msgid "Tokelau" msgstr "Tokelau" msgid "Tonga" msgstr "Tonga" msgid "Top" msgstr "Top" msgid "Total" msgstr "" msgid "Total Countries" msgstr "Lande" msgid "Total Entry Pages" msgstr "indgangsadresser" msgid "Total Exit Pages" msgstr "udgangsadresser" msgid "Total Files" msgstr "Filer" msgid "Total Hits" msgstr "Foresprgsler" msgid "Total KBytes" msgstr "kB" msgid "Total Referrers" msgstr "henvisende sider" msgid "Total Search Strings" msgstr "sgestrenge" msgid "Total Sites" msgstr "gster" msgid "Total URLs" msgstr "adresser" msgid "Total Unique Referrers" msgstr "Unikke henvisende sider" msgid "Total Unique Sites" msgstr "Unikke gster" msgid "Total Unique URLs" msgstr "Unikke adresser" msgid "Total Unique User Agents" msgstr "Unikke browsere" msgid "Total Unique Usernames" msgstr "Total Unique Usernames" msgid "Total User Agents" msgstr "browsere" msgid "Total Usernames" msgstr "Total Usernames" msgid "Totals" msgstr "" msgid "Trinidad and Tobago" msgstr "Trinidad og Tobago" msgid "Tunisia" msgstr "Tunisien" msgid "Turkey" msgstr "Tyrkiet" msgid "Turkmenistan" msgstr "Turkmenistan" msgid "Turks and Caicos Islands" msgstr "Turks og Caicos-erne" msgid "Tuvalu" msgstr "Tuvalu" msgid "URL" msgstr "URL" msgid "URLs" msgstr "URL" msgid "US Commercial" msgstr "USA (kommerciel)" msgid "US Educational" msgstr "USA (uddannelsesinstitution)" msgid "US Government" msgstr "USA (regeringen)" msgid "US Military" msgstr "USA (militret)" msgid "US Minor Outlying Islands" msgstr "USA's mindre, ydre er" msgid "USSR (former)" msgstr "USSR (det tidligere)" msgid "Uganda" msgstr "Uganda" msgid "Ukraine" msgstr "Ukraine" msgid "Undefined response code" msgstr "Uidentificeret svar Kode" msgid "United Arab Emirates" msgstr "De Forenede Arabiske Emirater" msgid "United Kingdom" msgstr "England" msgid "United States" msgstr "USA" msgid "Unresolved/Unknown" msgstr "Ukendt" msgid "Uruguay" msgstr "Uruguay" msgid "Usage" msgstr "Anvendelse" msgid "Usage Statistics for" msgstr "Webstatistik for" msgid "Usage by Country for" msgstr "Foresprgsler fordelt p lande for" msgid "Usage summary for" msgstr "Tilgang til" msgid "User Agent" msgstr "Browser" msgid "Username" msgstr "Username" msgid "Users" msgstr "Users" msgid "Using DNS cache file" msgstr "Using DNS cache file" msgid "Using logfile" msgstr "Anvender logfil" msgid "Uzbekistan" msgstr "Uzbekistan" msgid "Vanuatu" msgstr "Vanuatu" msgid "Vatican City State (Holy See)" msgstr "Vatikanstaten" msgid "Venezuela" msgstr "Venezuela" msgid "Viet Nam" msgstr "Vietnam" msgid "View All Referrers" msgstr "View All Referrers" msgid "View All Search Strings" msgstr "View All Search Strings" msgid "View All Sites" msgstr "View All Sites" msgid "View All URLs" msgstr "View All URLs" msgid "View All User Agents" msgstr "View All User Agents" msgid "View All Usernames" msgstr "View All Usernames" msgid "Virgin Islands (British)" msgstr "Jomfruerne (de britiske)" msgid "Virgin Islands (U.S.)" msgstr "Jomfruerne (de amerikanske)" msgid "Visits" msgstr "Besg" msgid "Visits per Day" msgstr "Besg pr. dag" msgid "Wallis and Futuna Islands" msgstr "Wallis og Futuna-erne" msgid "Warning: Invalid keyword" msgstr "Advarsel: Forkert ngleord" msgid "Warning: Possible duplicate data found" msgstr "Advarsel: Mulige dobbelte data fundet" msgid "Warning: String exceeds storage size" msgstr "Advarsel: Strengen overstiger maksimum" msgid "Warning: Truncating oversized date field" msgstr "Advarsel: Afkorter strengen (for stort datofelt)" msgid "Warning: Truncating oversized hostname" msgstr "Advarsel: Afkorter strengen (for stort vrtsnavn)" msgid "Warning: Truncating oversized referrer field" msgstr "Advarsel: Afkorter strengen (for stort henvisende side-felt)" msgid "Warning: Truncating oversized request field" msgstr "Advarsel: Afkorter strengen (for stort foresprgsel-felt)" msgid "Warning: Truncating oversized username" msgstr "Warning: Truncating oversized username" msgid "Western Sahara" msgstr "Vest-Sahara" msgid "Yemen" msgstr "Yemen" msgid "Yugoslavia" msgstr "Jugoslavien" msgid "Zaire" msgstr "Zaire" msgid "Zambia" msgstr "Zambia" msgid "Zimbabwe" msgstr "Zimbabwe" msgid "[options] [log file]" msgstr "[parametre] [logfil]" msgid "addresses" msgstr "addresses" msgid "bad" msgstr "fejlagtige" msgid "current directory" msgstr "aktivt bibliotek" msgid "ignored" msgstr "ignorerede" msgid "in" msgstr "p" msgid "of" msgstr "af" msgid "records" msgstr "poster" msgid "seconds" msgstr "sekunder" webdruid-0.5.4.orig/po/pl.po0000644000000000000000000006514710066113350015623 0ustar rootroot00000000000000msgid "" msgstr "" "Project-Id-Version: 1.0\n" "PO-Revision-Date: 2003-05-25 23:29+0200\n" "Last-Translator: Johan Poirier \n" "Language-Team: French \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=ISO-8859-1\n" "Content-Transfer-Encoding: 8bit" msgid "-A num = Display num top agents" msgstr "-A num = wywietla num najczstszych przegldarek" msgid "-C num = Display num top countries" msgstr "-C num = wywietla num najczstszych krajw" msgid "-D name = Use DNS Cache file 'name'" msgstr "-D nazwa = uywaj pliku buforujcego DNS 'nazwa'" msgid "-E num = Display num top Exit Pages" msgstr "-E num = wywietla num najczstszych stron wyjciowych" msgid "-F type = Log type. type= (clf | ftp | squid)" msgstr "-F typ = typ logu. typ= (clf | ftp | squid)" msgid "-G = supress hourly graph" msgstr "-G = wycza wykres godzinny" msgid "-H = supress hourly stats" msgstr "-H = wycza statystyk godzinn" msgid "-I name = Index alias 'name'" msgstr "-I nazwa = inna nazwa plikw index.*: 'nazwa'" msgid "-L = supress color coded graph legends" msgstr "-L = wycza kolorowe supki ledendy" msgid "-N num = Number of DNS processes (0=disable)" msgstr "-N num = liczba procesw DNS (0=wycz)" msgid "-P name = Page type extension 'name'" msgstr "-P nazwa = strony o rozszerzeniu 'nazwa'" msgid "-Q = supress _ALL_ messages" msgstr "-Q = wycza wszystkie komunikaty" msgid "-R num = Display num top referrers" msgstr "-R num = wywietla num najczstszych odnonikw" msgid "-S num = Display num top sites" msgstr "-S num = wywietla num najczstszych lokalizacji" msgid "-T = print timing information" msgstr "-T = wywietla informacje czasowe" msgid "-U num = Display num top URLs" msgstr "-U num = wywietla num najczstszych URLi" msgid "-X = Hide individual sites" msgstr "-X = ukryj pojedyncze lokalizacje" msgid "-Y = supress country graph" msgstr "-Y = wycza wykres krajw" msgid "-a name = hide user agent 'name'" msgstr "-a nazwa = ukrywa program klienta 'nazwa'" msgid "-c file = use configuration file 'file'" msgstr "-c plik = uywa pliku konfiguracyjnego 'plik'" msgid "-d = print additional debug info" msgstr "-d = wywietla dodatkowe informacje" msgid "-e num = Display num top Entry Pages" msgstr "-e num = wywietla num najczstszych stron wejciowych" msgid "-f = Fold sequence errors" msgstr "-f = zignoruj bdy czasu kolejnych wywoa" msgid "-g num = Group Domains to 'num' levels" msgstr "-g num = grupuj domeny do poziomu 'num'" msgid "-h = print this help message" msgstr "-h = wywietla te informacje" msgid "-i = ignore history file" msgstr "-i = pomija plik historii" msgid "-l num = use num background lines on graph" msgstr "-l num = wcza num linii w tle wykresw" msgid "-m num = Visit timout value (seconds)" msgstr "-m num = czas pojedynczej wizyty (seconds)" msgid "-n name = hostname to use" msgstr "-n nazwa = uywana nazwa hosta" msgid "-o dir = output directory to use" msgstr "-o katalog= katalog uywany do zapisu" msgid "-p = preserve state (incremental)" msgstr "-p = zachowuje stan (przyrostowy)" msgid "-q = supress informational messages" msgstr "-q = wycza komunikaty informacyjne" msgid "-r name = hide referrer 'name'" msgstr "-r nazwa = ukrywa odnonik 'nazwa'" msgid "-s name = hide site 'name'" msgstr "-s nazwa = ukrywa lokalizacj 'nazwa'" msgid "-t name = report title 'name'" msgstr "-t nazwa = tytu 'nazwa' dla raportu" msgid "-u name = hide URL 'name'" msgstr "-u nazwa = ukrywa URL 'nazwa'" msgid "-v -V = print version information" msgstr "-v -V = wywietla informacje o wersji" msgid "-x name = Use filename extension 'name'" msgstr "-x nazwa = stosuje pliki o rozszerzeniu 'nazwa'" msgid "Afghanistan" msgstr "Afganistan" msgid "Agents" msgstr "Przegldarki" msgid "Albania" msgstr "Albania" msgid "Algeria" msgstr "Algieria" msgid "American Samoa" msgstr "Samoa Amerykaskie" msgid "Andorra" msgstr "Andorra" msgid "Angola" msgstr "Angola" msgid "Anguilla" msgstr "Anguilla" msgid "Antarctica" msgstr "Antarktyka" msgid "Antigua and Barbuda" msgstr "Antigua i Barbuda" msgid "Apr" msgstr "Kwi" msgid "April" msgstr "kwiecie" msgid "Argentina" msgstr "Argentyna" msgid "Armenia" msgstr "Armenia" msgid "Aruba" msgstr "Aruba" msgid "Aug" msgstr "Sie" msgid "August" msgstr "sierpie" msgid "Australia" msgstr "Australia" msgid "Austria" msgstr "Austria" msgid "Avg" msgstr "rednio" msgid "Azerbaijan" msgstr "Azerbejdan" msgid "Bahamas" msgstr "Wyspy Bahama" msgid "Bahrain" msgstr "Bahrain" msgid "Bangladesh" msgstr "Bangladesz" msgid "Barbados" msgstr "Barbados" msgid "Belarus" msgstr "Biaoru" msgid "Belgium" msgstr "Belgia" msgid "Belize" msgstr "Belize" msgid "Benin" msgstr "Benin" msgid "Bermuda" msgstr "Bermudy" msgid "Bhutan" msgstr "Bhutan" msgid "Bolivia" msgstr "Boliwia" msgid "Bosnia and Herzegovina" msgstr "Bonia i Hercegowina" msgid "Botswana" msgstr "Botswana" msgid "Bouvet Island" msgstr "Wyspa Bouvet" msgid "Brazil" msgstr "Brazylia" msgid "British Indian Ocean Territory" msgstr "Bryt. Teryt. Oceanu Indyjskiego" msgid "Brunei Darussalam" msgstr "Brunei" msgid "Bulgaria" msgstr "Bugaria" msgid "Burkina Faso" msgstr "Burkina Faso" msgid "Burundi" msgstr "Burundi" msgid "By" msgstr "uszeregowane wg" msgid "Cambodia" msgstr "Kamboda" msgid "Cameroon" msgstr "Kamerun" msgid "Can't allocate enough memory, Top Countries disabled!" msgstr "Nie mog przydzieli pamici, najczstsze kraje anulowane!" msgid "Can't allocate enough memory, Top Referrers disabled!" msgstr "Nie mog przydzieli pamici, najczstsze odnoniki anulowane!" msgid "Can't allocate enough memory, Top Search Strings disabled!" msgstr "Nie mog przydzieli pamici, najczciej szukane sowa anulowane!" msgid "Can't allocate enough memory, Top Sites disabled!" msgstr "Nie mog przydzieli pamici, najczstsze lokalizacje anulowane!" msgid "Can't allocate enough memory, Top URLs disabled!" msgstr "Nie mog przydzieli pamici, najczstsze URLe anulowane!" msgid "Can't allocate enough memory, Top User Agents disabled!" msgstr "Nie mog przydzieli pamici, najczciej uywane przegldarki anulowane!" msgid "Can't allocate enough memory, Top Usernames disabled!" msgstr "Nie mog przydzieli pamici, najczstsze poczenia uytkownikw anulowane!" msgid "Canada" msgstr "Kanada" msgid "Cape Verde" msgstr "Wyspy Zielonego Przyldka" msgid "Cayman Islands" msgstr "Kajmany" msgid "Central African Republic" msgstr "Republika rodkowoafrykaska" msgid "Chad" msgstr "Czad" msgid "Chile" msgstr "Chile" msgid "China" msgstr "Chiny" msgid "Christmas Island" msgstr "Wyspa Boego Narodzenia" msgid "Cocos (Keeling) Islands" msgstr "Wyspy Kokosowe" msgid "Code 100 - Continue" msgstr "Code 100 - Kontynuuj" msgid "Code 101 - Switching Protocols" msgstr "Code 101 - Zmieniam protokoy" msgid "Code 200 - OK" msgstr "Code 200 - OK" msgid "Code 201 - Created" msgstr "Code 201 - Utworzono" msgid "Code 202 - Accepted" msgstr "Code 202 - Zaakceptowano" msgid "Code 203 - Non-Authoritative Information" msgstr "Code 203 - Niewiarygodna informacja" msgid "Code 204 - No Content" msgstr "Code 204 - Brak zawartoci" msgid "Code 205 - Reset Content" msgstr "Code 205 - Kasuj zawarto" msgid "Code 206 - Partial Content" msgstr "Code 206 - Czciowa zawarto" msgid "Code 300 - Multiple Choices" msgstr "Code 300 - Wielokrotny wybr" msgid "Code 301 - Moved Permanently" msgstr "Code 301 - Przeniesiono na stae" msgid "Code 302 - Found" msgstr "Code 302 - Przeniesiono tymczasowo" msgid "Code 303 - See Other" msgstr "Code 303 - Zobacz inne" msgid "Code 304 - Not Modified" msgstr "Code 304 - Niezmodyfikowany" msgid "Code 305 - Use Proxy" msgstr "Code 305 - Uyj proxy" msgid "Code 307 - Moved Temporarily" msgstr "Code 307 - Tymczasowe przekierowanie" msgid "Code 400 - Bad Request" msgstr "Code 400 - Bdne danie" msgid "Code 401 - Unauthorized" msgstr "Code 401 - Nieautoryzowany" msgid "Code 402 - Payment Required" msgstr "Code 402 - dana zapata" msgid "Code 403 - Forbidden" msgstr "Code 403 - Zakazane" msgid "Code 404 - Not Found" msgstr "Code 404 - Nie znaleziono" msgid "Code 405 - Method Not Allowed" msgstr "Code 405 - Nieuznawana metoda" msgid "Code 406 - Not Acceptable" msgstr "Code 406 - Nie akceptowane" msgid "Code 407 - Proxy Authentication Required" msgstr "Code 407 - Niezbdna autentykacja przez proxy" msgid "Code 408 - Request Timeout" msgstr "Code 408 - Czas zapytania min" msgid "Code 409 - Conflict" msgstr "Code 409 - Konflikt" msgid "Code 410 - Gone" msgstr "Code 410 - Ju niedostpne" msgid "Code 411 - Length Required" msgstr "Code 411 - Wymagana dugo" msgid "Code 412 - Precondition Failed" msgstr "Code 412 - Warunki niespenione" msgid "Code 413 - Request Entity Too Large" msgstr "Code 413 - Zapytanie za due" msgid "Code 414 - Request-URI Too Long" msgstr "Code 414 - Zapytanie URI za dugie" msgid "Code 415 - Unsupported Media Type" msgstr "Code 415 - Nieobsugiwany typ nonika" msgid "Code 416 - Requested Range Not Satisfiable" msgstr "Code 416 - Zapytanie-Zakres niedostpny" msgid "Code 417 - Expectation Failed" msgstr "Code 417 - Warunek niespeniony" msgid "Code 500 - Internal Server Error" msgstr "Code 500 - Wewntrzny bd serwera" msgid "Code 501 - Not Implemented" msgstr "Code 501 - Niezaimplementowane" msgid "Code 502 - Bad Gateway" msgstr "Code 502 - Za brama" msgid "Code 503 - Service Unavailable" msgstr "Code 503 - Serwis niedostpny" msgid "Code 504 - Gateway Timeout" msgstr "Code 504 - Upyn czas bramkowania" msgid "Code 505 - HTTP Version Not Supported" msgstr "Code 505 - Nieobsugiwana wersja HTTP" msgid "Colombia" msgstr "Kolumbia" msgid "Comoros" msgstr "Komory" msgid "Congo" msgstr "Kongo" msgid "Cook Islands" msgstr "Wyspy Cooka" msgid "Costa Rica" msgstr "Kostaryka" msgid "Cote D'Ivoire (Ivory Coast)" msgstr "Wybrzee Koci Soniowej" msgid "Countries" msgstr "Kraje" msgid "Country" msgstr "Kraj" msgid "Creating output in" msgstr "Tworz wynik w" msgid "Croatia (Hrvatska)" msgstr "Chorwacja" msgid "Cuba" msgstr "Kuba" msgid "Cyprus" msgstr "Cypr" msgid "Czech Republic" msgstr "Czechy" msgid "Czechoslovakia (former)" msgstr "Czechosowacja (bya)" msgid "DNS Lookup" msgstr "Przeszukuj DNS" msgid "Daily Avg" msgstr "rednio dziennie" msgid "Daily Statistics" msgstr "Statystyki dzienne" msgid "Daily Statistics for" msgstr "Dzienne statystyki - " msgid "Daily usage for" msgstr "Raport Dzienny - " msgid "Day" msgstr "Dzie" msgid "Dec" msgstr "Gru" msgid "December" msgstr "grudzie" msgid "Denmark" msgstr "Dania" msgid "Djibouti" msgstr "Dibuti" msgid "Dominica" msgstr "Dominika" msgid "Dominican Republic" msgstr "Dominikana" msgid "East Timor" msgstr "Wschodni Timor" msgid "Ecuador" msgstr "Ekwador" msgid "Egypt" msgstr "Egipt" msgid "El Salvador" msgstr "Salwador" msgid "English" msgstr "Polish" msgid "Entry" msgstr "Wejcia" msgid "Equatorial Guinea" msgstr "Gwinea Rwnikowa" msgid "Eritrea" msgstr "Erytrea" msgid "Error adding Referrer node, skipping" msgstr "Bd w trakcie dodawania kolejnego odnonika, pomijam" msgid "Error adding Search String Node, skipping" msgstr "Bd w trakcie dodawania kolejnego szukanego sowa, pomijam" msgid "Error adding URL node, skipping" msgstr "Bd w trakcie dodawania kolejnego URLa, pomijam" msgid "Error adding User Agent node, skipping" msgstr "Bd w trakcie dodawania kolejnego przegldarki, pomijam" msgid "Error adding Username node, skipping" msgstr "Bd w trakcie dodawania kolejnego uytkownika, pomijam" msgid "Error adding host node (daily), skipping" msgstr "Bd w trakcie dodawania kolejnego hosta (dzienne), pomijam" msgid "Error adding host node (monthly), skipping" msgstr "Bd w trakcie dodawania kolejnego hosta (miesiczne), pomijam" msgid "Error: Can't change directory to" msgstr "Bd: Nie mog zmieni katalogu na" msgid "Error: Can't open log file" msgstr "Bd: Nie mog otworzy pliku logu" msgid "Error: Ignoring invalid history record" msgstr "Bd: Pomijam bdny zapis historii" msgid "Error: Skipping oversized log record" msgstr "Bd: Pomijam zbyt duy zapis logu" msgid "Error: Skipping record (bad date)" msgstr "Bd: Pomijam rekord (bdna data)" msgid "Error: Unable to lock DNS cache file" msgstr "Bd: Nie mog zablokowa pliku buforujcego DNS" msgid "Error: Unable to open DNS cache file" msgstr "Bd: Nie mog otworzy pliku buforujcego DNS" msgid "Error: Unable to open configuration file" msgstr "Bd: Nie mog otworzy pliku konfiguracyjnego" msgid "Error: Unable to open file" msgstr "Bd: Nie mog otworzy pliku" msgid "Error: Unable to restore run data" msgstr "Bd: Nie mog odczyta danych z poprzedniego uruchomienia" msgid "Error: Unable to save current run data" msgstr "Bd: Nie mog zapisa danych z biecego uruchomienia" msgid "Error: Unable to write history file" msgstr "Bd: Nie mog zapisa pliku historii" msgid "Estonia" msgstr "Estonia" msgid "Ethiopia" msgstr "Etiopia" msgid "Exit" msgstr "Wyjcia" msgid "Falkland Islands (Malvinas)" msgstr "Falklandy" msgid "Faroe Islands" msgstr "Wyspy Owcze" msgid "Feb" msgstr "Lut" msgid "February" msgstr "luty" msgid "Fiji" msgstr "Fidi" msgid "Files" msgstr "Pliki" msgid "Files per Day" msgstr "Plikw dziennie" msgid "Finland" msgstr "Finlandia" msgid "France" msgstr "Francja" msgid "France; Metropolitan" msgstr "Francja (Terytorium Europejskie)" msgid "French Guiana" msgstr "Gujana Francuska" msgid "French Polynesia" msgstr "Polinezja Francuska" msgid "French Southern Territories" msgstr "Francuskie Terytoria Poudniowe" msgid "Gabon" msgstr "Gabon" msgid "Gambia" msgstr "Gambia" msgid "Generated" msgstr "Wygenerowano" msgid "Generating report for" msgstr "Generuj raport dla" msgid "Generating summary report" msgstr "Generuj raport sumaryczny" msgid "Georgia" msgstr "Gruzja" msgid "Germany" msgstr "Niemcy" msgid "Ghana" msgstr "Ghana" msgid "Gibraltar" msgstr "Gibraltar" msgid "Great Britain (UK)" msgstr "Wielka Brytania" msgid "Greece" msgstr "Grecja" msgid "Greenland" msgstr "Grenlandia" msgid "Grenada" msgstr "Grenada" msgid "Guadeloupe" msgstr "Gwadelupa" msgid "Guam" msgstr "Guam" msgid "Guatemala" msgstr "Gwatemala" msgid "Guinea" msgstr "Gwinea" msgid "Guinea-Bissau" msgstr "Gwinea Bissau" msgid "Guyana" msgstr "Gujana" msgid "Haiti" msgstr "Haiti" msgid "Heard and McDonald Islands" msgstr "Wyspy Heard i McDonald" msgid "History file not found..." msgstr "Nie znalazem pliku historii..." msgid "Hits" msgstr "Wywoania" msgid "Hits by Response Code" msgstr "Wywoania wedug kodu odpowiedzi" msgid "Hits per Day" msgstr "Wywoa dziennie" msgid "Hits per Hour" msgstr "Wywoa na godzin" msgid "Honduras" msgstr "Honduras" msgid "Hong Kong" msgstr "Hong Kong" msgid "Hostname" msgstr "Nazwa hosta" msgid "Hostname for reports is" msgstr "Raport tworzony dla hosta" msgid "Hour" msgstr "Godzina" msgid "Hourly Statistics" msgstr "Statystyki godzinne" msgid "Hourly Statistics for" msgstr "Godzinowe statystyki - " msgid "Hourly usage for" msgstr "Raport Godzinowy - " msgid "Hungary" msgstr "Wgry" msgid "Iceland" msgstr "Islandia" msgid "Ignoring previous history..." msgstr "Ignoruj poprzedni histori..." msgid "India" msgstr "Indie" msgid "Indonesia" msgstr "Indonezja" msgid "International (int)" msgstr "Midzynarodowa (int)" msgid "Iran" msgstr "Iran" msgid "Iraq" msgstr "Irak" msgid "Ireland" msgstr "Irlandia" msgid "Israel" msgstr "Izrael" msgid "Italy" msgstr "Wochy" msgid "Jamaica" msgstr "Jamajka" msgid "Jan" msgstr "Sty" msgid "January" msgstr "stycze" msgid "Japan" msgstr "Japonia" msgid "Jordan" msgstr "Jordania" msgid "Jul" msgstr "Lip" msgid "July" msgstr "lipiec" msgid "Jun" msgstr "Cze" msgid "June" msgstr "czerwiec" msgid "KBytes" msgstr "KB" msgid "KBytes per Day" msgstr "Kilobajtw dziennie" msgid "Kazakhstan" msgstr "Kazachstan" msgid "Kenya" msgstr "Kenia" msgid "Kiribati" msgstr "Kiribati" msgid "Korea (North)" msgstr "Korea Pnocna" msgid "Korea (South)" msgstr "Korea Poudniowa" msgid "Kuwait" msgstr "Kuwejt" msgid "Kyrgyzstan" msgstr "Kirgistan" msgid "Laos" msgstr "Laos" msgid "Last 12 Months" msgstr "Ostatnie 12 miesicy" msgid "Latvia" msgstr "otwa" msgid "Lebanon" msgstr "Liban" msgid "Lesotho" msgstr "Lesotho" msgid "Liberia" msgstr "Liberia" msgid "Libya" msgstr "Libia" msgid "Liechtenstein" msgstr "Lichtenstein" msgid "Lithuania" msgstr "Litwa" msgid "Luxembourg" msgstr "Luksemburg" msgid "Macau" msgstr "Makao" msgid "Macedonia" msgstr "Macedonia" msgid "Madagascar" msgstr "Madagaskar" msgid "Malawi" msgstr "Malawi" msgid "Malaysia" msgstr "Malezja" msgid "Maldives" msgstr "Malediwy" msgid "Mali" msgstr "Mali" msgid "Malta" msgstr "Malta" msgid "Mar" msgstr "Mar" msgid "March" msgstr "marzec" msgid "Marshall Islands" msgstr "Wyspy Marshalla" msgid "Martinique" msgstr "Martynika" msgid "Mauritania" msgstr "Mauretania" msgid "Mauritius" msgstr "Mauritius" msgid "Max" msgstr "Maks." msgid "May" msgstr "maj" msgid "Mayotte" msgstr "Mayotte" msgid "Mexico" msgstr "Meksyk" msgid "Micronesia" msgstr "Mikronezja" msgid "Moldova" msgstr "Modawia" msgid "Monaco" msgstr "Monako" msgid "Mongolia" msgstr "Mongolia" msgid "Month" msgstr "Miesic" msgid "Monthly Statistics for" msgstr "Statystyka w miesicu:" msgid "Monthly Totals" msgstr "Oglnie w miesicu: " msgid "Montserrat" msgstr "Montserrat" msgid "Morocco" msgstr "Maroko" msgid "Mozambique" msgstr "Mozambik" msgid "Myanmar" msgstr "Myanmar" msgid "Namibia" msgstr "Namibia" msgid "Nato field (nato)" msgstr "Sie NATO" msgid "Nauru" msgstr "Nauru" msgid "Nepal" msgstr "Nepal" msgid "Netherlands" msgstr "Holandia" msgid "Netherlands Antilles" msgstr "Antyle Holenderskie" msgid "Network" msgstr "Sie (net)" msgid "Neutral Zone" msgstr "Strefa Neutralna" msgid "New Caledonia" msgstr "Nowa Kaledonia" msgid "New Zealand (Aotearoa)" msgstr "Nowa Zelandia" msgid "Nicaragua" msgstr "Nikaragua" msgid "Niger" msgstr "Niger" msgid "Nigeria" msgstr "Nigeria" msgid "Niue" msgstr "Niue" msgid "No cache file specified, aborting..." msgstr "Nie podano pliku buforujcego, przerywam dziaanie..." msgid "No valid records found!" msgstr "Nie znalazem prawidowych rekordw!" msgid "Non-Profit Organization" msgstr "Organizacja niekomercyjna" msgid "None to process" msgstr "Brak adresw IP do przetworzenia" msgid "Norfolk Island" msgstr "Norfolk" msgid "Northern Mariana Islands" msgstr "Mariany Pnocne" msgid "Norway" msgstr "Norwegia" msgid "Nov" msgstr "Lis" msgid "November" msgstr "listopad" msgid "Oct" msgstr "Pa" msgid "October" msgstr "padziernik" msgid "Old style Arpanet (arpa)" msgstr "Stara Arpanet (arpa)" msgid "Oman" msgstr "Oman" msgid "Other" msgstr "Inne" msgid "Pages" msgstr "Strony" msgid "Pages per Day" msgstr "Stron dziennie" msgid "Pakistan" msgstr "Pakistan" msgid "Palau" msgstr "Palau" msgid "Panama" msgstr "Panama" msgid "Papua New Guinea" msgstr "Papua Nowa Gwinea" msgid "Paraguay" msgstr "Paragwaj" msgid "Peru" msgstr "Peru" msgid "Philippines" msgstr "Filipiny" msgid "Pitcairn" msgstr "Pitcairn" msgid "Poland" msgstr "Polska" msgid "Portugal" msgstr "Portugalia" msgid "Previous run data not found..." msgstr "Nie znalazem danych z poprzedniego uruchomienia..." msgid "Puerto Rico" msgstr "Puerto Rico" msgid "Qatar" msgstr "Katar" msgid "Reading history file..." msgstr "Czytam plik historii..." msgid "Reading previous run data..." msgstr "Czytam dane z poprzedniego uruchomienia..." msgid "Referrer" msgstr "Odnoniki" msgid "Referrers" msgstr "Odnoniki" msgid "Reunion" msgstr "Reunion" msgid "Romania" msgstr "Rumunia" msgid "Russian Federation" msgstr "Rosja" msgid "Rwanda" msgstr "Rwanda" msgid "S. Georgia and S. Sandwich Isls." msgstr "Georgia Pd. i Wyspy Sandwicha Pd." msgid "Saint Kitts and Nevis" msgstr "Saint Kitts i Nevis" msgid "Saint Lucia" msgstr "Saint Lucia" msgid "Saint Vincent and the Grenadines" msgstr "Saint Vincent i Grenadyny" msgid "Samoa" msgstr "Samoa" msgid "San Marino" msgstr "San Marino" msgid "Sao Tome and Principe" msgstr "Wyspy w. Tomasza i Ksica" msgid "Saudi Arabia" msgstr "Arabia Saudyjska" msgid "Saving current run data..." msgstr "Zapisuj dane z biecego uruchomienia..." msgid "Saving history information..." msgstr "Zapisuj informacj historii..." msgid "Search" msgstr "Poszukiwane" msgid "Search String" msgstr "Wyszukiwany cig znakw" msgid "Senegal" msgstr "Senegal" msgid "Sep" msgstr "Wrz" msgid "September" msgstr "wrzesie" msgid "Seychelles" msgstr "Seszele" msgid "Sierra Leone" msgstr "Sierra Leone" msgid "Singapore" msgstr "Singapur" msgid "Sites" msgstr "Lokalizacje" msgid "Skipping Netscape header record" msgstr "Pomijam nagwek rekordu Netscepe'a" msgid "Skipping bad record" msgstr "Pomijam bdny zapis" msgid "Slovak Republic" msgstr "Sowacja" msgid "Slovenia" msgstr "Sowenia" msgid "Solomon Islands" msgstr "Wyspy Salomona" msgid "Somalia" msgstr "Somalia" msgid "South Africa" msgstr "Republika Poudniowej Afryki" msgid "Spain" msgstr "Hiszpania" msgid "Sri Lanka" msgstr "Sri Lanka" msgid "St. Helena" msgstr "w. Helena" msgid "St. Pierre and Miquelon" msgstr "St. Pierre i Miquelon" msgid "Sudan" msgstr "Sudan" msgid "Summary Period" msgstr "Prezentowany okres" msgid "Summary by Month" msgstr "Sumarycznie w miesicu:" msgid "Suriname" msgstr "Surinam" msgid "Svalbard and Jan Mayen Islands" msgstr "Wyspy Svalbard i Jan Mayen" msgid "Swaziland" msgstr "Suazi" msgid "Sweden" msgstr "Szwecja" msgid "Switzerland" msgstr "Szwajcaria" msgid "Syria" msgstr "Syria" msgid "Taiwan" msgstr "Tajwan" msgid "Tajikistan" msgstr "Tadykistan" msgid "Tanzania" msgstr "Tanzania" msgid "Thailand" msgstr "Tajlandia" msgid "Togo" msgstr "Togo" msgid "Tokelau" msgstr "Tokelau" msgid "Tonga" msgstr "Tonga" msgid "Top" msgstr "Pierwsze" msgid "Total" msgstr "Wszystkie" msgid "Total Countries" msgstr "krajw" msgid "Total Entry Pages" msgstr "stron wejciowych" msgid "Total Exit Pages" msgstr "stron wyjciowych" msgid "Total Files" msgstr "Cakowita liczba plikw" msgid "Total Hits" msgstr "Cakowita liczba wywoa" msgid "Total KBytes" msgstr "Cakowita liczba KB" msgid "Total Referrers" msgstr "odnonikw" msgid "Total Search Strings" msgstr "szukanych cigw znakw" msgid "Total Sites" msgstr "lokalizacji" msgid "Total URLs" msgstr "URLi" msgid "Total Unique Referrers" msgstr "Cakowita liczba unikalnych odnonikw" msgid "Total Unique Sites" msgstr "Cakowita liczba unikalnych lokalizacji" msgid "Total Unique URLs" msgstr "Cakowita liczba unikalnych URLi" msgid "Total Unique User Agents" msgstr "Cakowita liczba unikalnych przegldarek" msgid "Total Unique Usernames" msgstr "Cakowita liczba unikalnych uytkownikw" msgid "Total User Agents" msgstr "przegldarek" msgid "Total Usernames" msgstr "uytkownikw" msgid "Totals" msgstr "Suma" msgid "Trinidad and Tobago" msgstr "Trynidad i Tobago" msgid "Tunisia" msgstr "Tunezja" msgid "Turkey" msgstr "Turcja" msgid "Turkmenistan" msgstr "Turkmenistan" msgid "Turks and Caicos Islands" msgstr "Turks i Caicos" msgid "Tuvalu" msgstr "Tuvalu" msgid "URL" msgstr "URL" msgid "URLs" msgstr "URL'e" msgid "US Commercial" msgstr "Komercyjna USA" msgid "US Educational" msgstr "Edukacyjna USA" msgid "US Government" msgstr "Rzdowa USA" msgid "US Military" msgstr "Wojskowa USA" msgid "US Minor Outlying Islands" msgstr "Mniejsze Wyspy USA" msgid "USSR (former)" msgstr "ZSRR (byy)" msgid "Uganda" msgstr "Uganda" msgid "Ukraine" msgstr "Ukraina" msgid "Undefined response code" msgstr "Niezdefiniowany kod odpowiedzi" msgid "United Arab Emirates" msgstr "Zjednoczone Emiraty Arabskie" msgid "United Kingdom" msgstr "Wielka Brytania" msgid "United States" msgstr "Stany Zjednoczone" msgid "Unresolved/Unknown" msgstr "Nieznany" msgid "Uruguay" msgstr "Urugwaj" msgid "Usage" msgstr "Uycie" msgid "Usage Statistics for" msgstr "Statystyki serwera dla" msgid "Usage by Country for" msgstr "Odwoania wg krajw - " msgid "Usage summary for" msgstr "Raport sumaryczny" msgid "User Agent" msgstr "Przegldarka" msgid "Username" msgstr "Uytkownik" msgid "Users" msgstr "Uytkownicy" msgid "Using DNS cache file" msgstr "Wykorzystuj plik buforujcy DNS" msgid "Using logfile" msgstr "Uywam pliku logu" msgid "Uzbekistan" msgstr "Uzbekistan" msgid "Vanuatu" msgstr "Vanuatu" msgid "Vatican City State (Holy See)" msgstr "Watykan" msgid "Venezuela" msgstr "Wenezuela" msgid "Viet Nam" msgstr "Wietnam" msgid "View All Referrers" msgstr "Podgld wszystkich odnonikw" msgid "View All Search Strings" msgstr "Podgld wszystkich cigw znakw" msgid "View All Sites" msgstr "Podgld wszystkich lokalizacji" msgid "View All URLs" msgstr "Podgld wszystkich URL'i" msgid "View All User Agents" msgstr "Podgld wszystkich przegldarek" msgid "View All Usernames" msgstr "Podgld wszystkich uytkownikw" msgid "Virgin Islands (British)" msgstr "Brytyjskie Wyspy Dziewicze" msgid "Virgin Islands (U.S.)" msgstr "Wyspy Dziewicze (USA)" msgid "Visits" msgstr "Wizyty" msgid "Visits per Day" msgstr "Wizyt dziennie" msgid "Wallis and Futuna Islands" msgstr "Wyspy Wallis i Futuna" msgid "Warning: Invalid keyword" msgstr "Ostrzeenie: Bdne sowo kluczowe" msgid "Warning: Possible duplicate data found" msgstr "Ostrzeenie: Prawdopodobnie znalazem zdublowane dane" msgid "Warning: String exceeds storage size" msgstr "Ostrzeenie: Napis przekracza dopuszczaln wielko" msgid "Warning: Truncating oversized date field" msgstr "Ostrzeenie: Obcinam, przekroczona wielko pola daty" msgid "Warning: Truncating oversized hostname" msgstr "Ostrzeenie: Obcinam, przekroczona wielko nazwy hosta" msgid "Warning: Truncating oversized referrer field" msgstr "Ostrzeenie: Obcinam, przekroczona wielko pola odnonika" msgid "Warning: Truncating oversized request field" msgstr "Ostrzeenie: Obcinam, przekroczona wielko pola dania" msgid "Warning: Truncating oversized username" msgstr "Ostrzeenie: Obcinam, przekroczona dugo nazwy uytkownika" msgid "Western Sahara" msgstr "Sahara Zachodnia" msgid "Yemen" msgstr "Jemen" msgid "Yugoslavia" msgstr "Jugosawia" msgid "Zaire" msgstr "Zair" msgid "Zambia" msgstr "Zambia" msgid "Zimbabwe" msgstr "Zimbabwe" msgid "[options] [log file]" msgstr "[opcje] [plik logu]" msgid "addresses" msgstr "adres(w)" msgid "bad" msgstr "zy(ch)" msgid "current directory" msgstr "biecym katalogu" msgid "ignored" msgstr "opuszczono" msgid "in" msgstr "w" msgid "of" msgstr "z oglnej liczby" msgid "records" msgstr "zapisw" msgid "seconds" msgstr "sekund" webdruid-0.5.4.orig/po/hu.po0000644000000000000000000006440110066113350015614 0ustar rootroot00000000000000msgid "" msgstr "" "Project-Id-Version: 1.0\n" "PO-Revision-Date: 2003-05-25 23:29+0200\n" "Last-Translator: Johan Poirier \n" "Language-Team: French \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=ISO-8859-1\n" "Content-Transfer-Encoding: 8bit" msgid "-A num = Display num top agents" msgstr "-A num = Display num top agents" msgid "-C num = Display num top countries" msgstr "-C num = Display num top countries" msgid "-D name = Use DNS Cache file 'name'" msgstr "-D name = Hasznlja a DNS Cache file-t 'name'" msgid "-E num = Display num top Exit Pages" msgstr "-E num = Display num top Exit Pages" msgid "-F type = Log type. type= (clf | ftp | squid)" msgstr "-F type = Log type. type= (clf | ftp | squid)" msgid "-G = supress hourly graph" msgstr "-G = supress hourly graph" msgid "-H = supress hourly stats" msgstr "-H = supress hourly stats" msgid "-I name = Index alias 'name'" msgstr "-I name = Index alias 'name'" msgid "-L = supress color coded graph legends" msgstr "-L = supress color coded graph legends" msgid "-N num = Number of DNS processes (0=disable)" msgstr "-N num = Number of DNS processes (0=disable)" msgid "-P name = Page type extension 'name'" msgstr "-P name = Oldal tipusnak a kiterjesztse 'name'" msgid "-Q = supress _ALL_ messages" msgstr "-Q = supress _ALL_ messages" msgid "-R num = Display num top referrers" msgstr "-R num = Display num top referrers" msgid "-S num = Display num top sites" msgstr "-S num = Display num top sites" msgid "-T = print timing information" msgstr "-T = print timing information" msgid "-U num = Display num top URLs" msgstr "-U num = Display num top URLs" msgid "-X = Hide individual sites" msgstr "-X = Hide individual sites" msgid "-Y = supress country graph" msgstr "-Y = supress country graph" msgid "-a name = hide user agent 'name'" msgstr "-a name = Rejtse a felhasznl bngszjt 'name'" msgid "-c file = use configuration file 'file'" msgstr "-c file = Hasznlja a konfigurcis file-t 'file'" msgid "-d = print additional debug info" msgstr "-d = Kirja a tovbbi debug inft" msgid "-e num = Display num top Entry Pages" msgstr "-e num = Display num top Entry Pages" msgid "-f = Fold sequence errors" msgstr "-f = sszefogja a sorozatos hibkat" msgid "-g num = Group Domains to 'num' levels" msgstr "-g num = Group Domains to 'num' levels" msgid "-h = print this help message" msgstr "-h = Kirja ezt a sug zenetet" msgid "-i = ignore history file" msgstr "-i = Mellzi a history file-t" msgid "-l num = use num background lines on graph" msgstr "-l num = use num background lines on graph" msgid "-m num = Visit timout value (seconds)" msgstr "-m num = Visit timout value (seconds)" msgid "-n name = hostname to use" msgstr "-n name = Hostnv amit hasznljon" msgid "-o dir = output directory to use" msgstr "-o dir = Kimeneti knyvtr" msgid "-p = preserve state (incremental)" msgstr "-p = Megrzi az llapotott (incremental)" msgid "-q = supress informational messages" msgstr "-q = supress informational messages" msgid "-r name = hide referrer 'name'" msgstr "-r name = Rejtse a hivatkozst 'name'" msgid "-s name = hide site 'name'" msgstr "-s name = Rejtse az oldalt 'name'" msgid "-t name = report title 'name'" msgstr "-t name = Report cme 'name'" msgid "-u name = hide URL 'name'" msgstr "-u name = Rejtse az URL-t 'name'" msgid "-v -V = print version information" msgstr "-v -V = Kirja a verziszmot" msgid "-x name = Use filename extension 'name'" msgstr "-x name = Hasznlja a filenv kiterjesztst 'name'" msgid "Afghanistan" msgstr "Afghanistan" msgid "Agents" msgstr "Bngszk" msgid "Albania" msgstr "Albania" msgid "Algeria" msgstr "Algeria" msgid "American Samoa" msgstr "American Samoa" msgid "Andorra" msgstr "Andorra" msgid "Angola" msgstr "Angola" msgid "Anguilla" msgstr "Anguilla" msgid "Antarctica" msgstr "Antarctica" msgid "Antigua and Barbuda" msgstr "Antigua and Barbuda" msgid "Apr" msgstr "pr" msgid "April" msgstr "prilis" msgid "Argentina" msgstr "Argentina" msgid "Armenia" msgstr "Armenia" msgid "Aruba" msgstr "Aruba" msgid "Aug" msgstr "Aug" msgid "August" msgstr "Augusztus" msgid "Australia" msgstr "Australia" msgid "Austria" msgstr "Austria" msgid "Avg" msgstr "tlag" msgid "Azerbaijan" msgstr "Azerbaijan" msgid "Bahamas" msgstr "Bahamas" msgid "Bahrain" msgstr "Bahrain" msgid "Bangladesh" msgstr "Bangladesh" msgid "Barbados" msgstr "Barbados" msgid "Belarus" msgstr "Belarus" msgid "Belgium" msgstr "Belgium" msgid "Belize" msgstr "Belize" msgid "Benin" msgstr "Benin" msgid "Bermuda" msgstr "Bermuda" msgid "Bhutan" msgstr "Bhutan" msgid "Bolivia" msgstr "Bolivia" msgid "Bosnia and Herzegovina" msgstr "Bosnia and Herzegovina" msgid "Botswana" msgstr "Botswana" msgid "Bouvet Island" msgstr "Bouvet Island" msgid "Brazil" msgstr "Brazil" msgid "British Indian Ocean Territory" msgstr "British Indian Ocean Territory" msgid "Brunei Darussalam" msgstr "Brunei Darussalam" msgid "Bulgaria" msgstr "Bulgaria" msgid "Burkina Faso" msgstr "Burkina Faso" msgid "Burundi" msgstr "Burundi" msgid "By" msgstr "By" msgid "Cambodia" msgstr "Cambodia" msgid "Cameroon" msgstr "Cameroon" msgid "Can't allocate enough memory, Top Countries disabled!" msgstr "Nem tudok elegend memrit lefoglalni, Top Orszg tiltva!" msgid "Can't allocate enough memory, Top Referrers disabled!" msgstr "Nem tudok elegend memrit lefoglalni, Top Hivatkozs tiltva!" msgid "Can't allocate enough memory, Top Search Strings disabled!" msgstr "Nem tudok elegend memrit lefoglalni, Top Keressi string tiltva!" msgid "Can't allocate enough memory, Top Sites disabled!" msgstr "Nem tudok elegend memrit lefoglalni, Top Oldal tiltva!" msgid "Can't allocate enough memory, Top URLs disabled!" msgstr "Nem tudok elegend memrit lefoglalni, Top URL tiltva!" msgid "Can't allocate enough memory, Top User Agents disabled!" msgstr "Nem tudok elegend memrit lefoglalni, Top Felhasznl bngszje tiltva!" msgid "Can't allocate enough memory, Top Usernames disabled!" msgstr "Nem tudok elegend memrit lefoglalni, Top Felhasznlnevek tiltva!" msgid "Canada" msgstr "Canada" msgid "Cape Verde" msgstr "Cape Verde" msgid "Cayman Islands" msgstr "Cayman Islands" msgid "Central African Republic" msgstr "Central African Republic" msgid "Chad" msgstr "Chad" msgid "Chile" msgstr "Chile" msgid "China" msgstr "China" msgid "Christmas Island" msgstr "Christmas Island" msgid "Cocos (Keeling) Islands" msgstr "Cocos (Keeling) Islands" msgid "Code 100 - Continue" msgstr "Code 100 - Continue" msgid "Code 101 - Switching Protocols" msgstr "Code 101 - Switching Protocols" msgid "Code 200 - OK" msgstr "Code 200 - OK" msgid "Code 201 - Created" msgstr "Code 201 - Created" msgid "Code 202 - Accepted" msgstr "Code 202 - Accepted" msgid "Code 203 - Non-Authoritative Information" msgstr "Code 203 - Non-Authoritative Information" msgid "Code 204 - No Content" msgstr "Code 204 - No Content" msgid "Code 205 - Reset Content" msgstr "Code 205 - Reset Content" msgid "Code 206 - Partial Content" msgstr "Code 206 - Partial Content" msgid "Code 300 - Multiple Choices" msgstr "Code 300 - Multiple Choices" msgid "Code 301 - Moved Permanently" msgstr "Code 301 - Moved Permanently" msgid "Code 302 - Found" msgstr "Code 302 - Found" msgid "Code 303 - See Other" msgstr "Code 303 - See Other" msgid "Code 304 - Not Modified" msgstr "Code 304 - Not Modified" msgid "Code 305 - Use Proxy" msgstr "Code 305 - Use Proxy" msgid "Code 307 - Moved Temporarily" msgstr "Code 307 - Moved Temporarily" msgid "Code 400 - Bad Request" msgstr "Code 400 - Bad Request" msgid "Code 401 - Unauthorized" msgstr "Code 401 - Unauthorized" msgid "Code 402 - Payment Required" msgstr "Code 402 - Payment Required" msgid "Code 403 - Forbidden" msgstr "Code 403 - Forbidden" msgid "Code 404 - Not Found" msgstr "Code 404 - Not Found" msgid "Code 405 - Method Not Allowed" msgstr "Code 405 - Method Not Allowed" msgid "Code 406 - Not Acceptable" msgstr "Code 406 - Not Acceptable" msgid "Code 407 - Proxy Authentication Required" msgstr "Code 407 - Proxy Authentication Required" msgid "Code 408 - Request Timeout" msgstr "Code 408 - Request Timeout" msgid "Code 409 - Conflict" msgstr "Code 409 - Conflict" msgid "Code 410 - Gone" msgstr "Code 410 - Gone" msgid "Code 411 - Length Required" msgstr "Code 411 - Length Required" msgid "Code 412 - Precondition Failed" msgstr "Code 412 - Precondition Failed" msgid "Code 413 - Request Entity Too Large" msgstr "Code 413 - Request Entity Too Large" msgid "Code 414 - Request-URI Too Long" msgstr "Code 414 - Request-URI Too Long" msgid "Code 415 - Unsupported Media Type" msgstr "Code 415 - Unsupported Media Type" msgid "Code 416 - Requested Range Not Satisfiable" msgstr "Code 416 - Requested Range Not Satisfiable" msgid "Code 417 - Expectation Failed" msgstr "Code 417 - Expectation Failed" msgid "Code 500 - Internal Server Error" msgstr "Code 500 - Internal Server Error" msgid "Code 501 - Not Implemented" msgstr "Code 501 - Not Implemented" msgid "Code 502 - Bad Gateway" msgstr "Code 502 - Bad Gateway" msgid "Code 503 - Service Unavailable" msgstr "Code 503 - Service Unavailable" msgid "Code 504 - Gateway Timeout" msgstr "Code 504 - Gateway Timeout" msgid "Code 505 - HTTP Version Not Supported" msgstr "Code 505 - HTTP Version Not Supported" msgid "Colombia" msgstr "Colombia" msgid "Comoros" msgstr "Comoros" msgid "Congo" msgstr "Congo" msgid "Cook Islands" msgstr "Cook Islands" msgid "Costa Rica" msgstr "Costa Rica" msgid "Cote D'Ivoire (Ivory Coast)" msgstr "Cote D'Ivoire (Ivory Coast)" msgid "Countries" msgstr "Orszgok" msgid "Country" msgstr "Orszg" msgid "Creating output in" msgstr "Ksztem a kimenetet:" msgid "Croatia (Hrvatska)" msgstr "Croatia (Hrvatska)" msgid "Cuba" msgstr "Cuba" msgid "Cyprus" msgstr "Cyprus" msgid "Czech Republic" msgstr "Czech Republic" msgid "Czechoslovakia (former)" msgstr "Czechoslovakia (former)" msgid "DNS Lookup" msgstr "DNS kikeress" msgid "Daily Avg" msgstr "Napi tlag" msgid "Daily Statistics" msgstr "Napi Statisztika" msgid "Daily Statistics for" msgstr "Napi Statisztika:" msgid "Daily usage for" msgstr "Napi hasznlat:" msgid "Day" msgstr "Nap" msgid "Dec" msgstr "Dec" msgid "December" msgstr "December" msgid "Denmark" msgstr "Denmark" msgid "Djibouti" msgstr "Djibouti" msgid "Dominica" msgstr "Dominica" msgid "Dominican Republic" msgstr "Dominican Republic" msgid "East Timor" msgstr "East Timor" msgid "Ecuador" msgstr "Ecuador" msgid "Egypt" msgstr "Egypt" msgid "El Salvador" msgstr "El Salvador" msgid "English" msgstr "Magyar" msgid "Entry" msgstr "Belps" msgid "Equatorial Guinea" msgstr "Equatorial Guinea" msgid "Eritrea" msgstr "Eritrea" msgid "Error adding Referrer node, skipping" msgstr "Hiba a hozzadsnl Hivatkozs node, kihagyom" msgid "Error adding Search String Node, skipping" msgstr "Hiba a hozzadsnl Keressi string Node, kihagyom" msgid "Error adding URL node, skipping" msgstr "Hiba a hozzadsnl URL node, kihagyom" msgid "Error adding User Agent node, skipping" msgstr "Hiba a hozzadsnl Agent node, kihagyom" msgid "Error adding Username node, skipping" msgstr "Hiba a felhasznlnv node hozzadsnl, kihagyom" msgid "Error adding host node (daily), skipping" msgstr "Hiba a hozzadsnl host node (napi), kihagyom" msgid "Error adding host node (monthly), skipping" msgstr "Hiba a hozzadsnl host node (havi), kihagyom" msgid "Error: Can't change directory to" msgstr "Hiba: Nem tudom megvltoztatni a knyvtrat erre: " msgid "Error: Can't open log file" msgstr "Hiba: Nem tudom megnyitni a log file-t" msgid "Error: Ignoring invalid history record" msgstr "Hiba: Mellzm rvnytelen history rekordot" msgid "Error: Skipping oversized log record" msgstr "Hiba: Kihagyom a tl nagy log rekordot" msgid "Error: Skipping record (bad date)" msgstr "Hiba: Kihagyom a rekordot (rossz dtum)" msgid "Error: Unable to lock DNS cache file" msgstr "Hiba: Nem lehet zrni a DNS cache file-t" msgid "Error: Unable to open DNS cache file" msgstr "Hiba: Nem lehet megnyitni a DNS cache file-t" msgid "Error: Unable to open configuration file" msgstr "Hiba: Nem tudom megnyitni a konfigurcis file-t" msgid "Error: Unable to open file" msgstr "Hiba: Nem tudom megnytni a file-t" msgid "Error: Unable to restore run data" msgstr "Hiba: Nem tudom helyrelltani a futatott adatokat" msgid "Error: Unable to save current run data" msgstr "Hiba: Nem tudom menteni a jelenlegi futatott adatokat" msgid "Error: Unable to write history file" msgstr "Hiba: Nem tudom rni a history file-t" msgid "Estonia" msgstr "Estonia" msgid "Ethiopia" msgstr "Ethiopia" msgid "Exit" msgstr "Kilps" msgid "Falkland Islands (Malvinas)" msgstr "Falkland Islands (Malvinas)" msgid "Faroe Islands" msgstr "Faroe Islands" msgid "Feb" msgstr "Feb" msgid "February" msgstr "Februr" msgid "Fiji" msgstr "Fiji" msgid "Files" msgstr "File-ok" msgid "Files per Day" msgstr "File/nap" msgid "Finland" msgstr "Finland" msgid "France" msgstr "France" msgid "France; Metropolitan" msgstr "France, Metropolitan" msgid "French Guiana" msgstr "French Guiana" msgid "French Polynesia" msgstr "French Polynesia" msgid "French Southern Territories" msgstr "French Southern Territories" msgid "Gabon" msgstr "Gabon" msgid "Gambia" msgstr "Gambia" msgid "Generated" msgstr "Kszlt:" msgid "Generating report for" msgstr "Ksztem a jelents:" msgid "Generating summary report" msgstr "Ksztem az sszefoglalt jelentst" msgid "Georgia" msgstr "Georgia" msgid "Germany" msgstr "Germany" msgid "Ghana" msgstr "Ghana" msgid "Gibraltar" msgstr "Gibraltar" msgid "Great Britain (UK)" msgstr "Great Britain (UK)" msgid "Greece" msgstr "Greece" msgid "Greenland" msgstr "Greenland" msgid "Grenada" msgstr "Grenada" msgid "Guadeloupe" msgstr "Guadeloupe" msgid "Guam" msgstr "Guam" msgid "Guatemala" msgstr "Guatemala" msgid "Guinea" msgstr "Guinea" msgid "Guinea-Bissau" msgstr "Guinea-Bissau" msgid "Guyana" msgstr "Guyana" msgid "Haiti" msgstr "Haiti" msgid "Heard and McDonald Islands" msgstr "Heard and McDonald Islands" msgid "History file not found..." msgstr "History file-t nem tallom..." msgid "Hits" msgstr "Tallatok" msgid "Hits by Response Code" msgstr "Vlaszkdok ltali tallatok" msgid "Hits per Day" msgstr "Tallat/nap" msgid "Hits per Hour" msgstr "Tallat/ra" msgid "Honduras" msgstr "Honduras" msgid "Hong Kong" msgstr "Hong Kong" msgid "Hostname" msgstr "Hostnv" msgid "Hostname for reports is" msgstr "A jelentsnek a hostneve:" msgid "Hour" msgstr "ra" msgid "Hourly Statistics" msgstr "rnknti Statisztika" msgid "Hourly Statistics for" msgstr "rnknti Statisztika:" msgid "Hourly usage for" msgstr "rnknti hasznlat:" msgid "Hungary" msgstr "Magyarorszg" msgid "Iceland" msgstr "Iceland" msgid "Ignoring previous history..." msgstr "Mellzm az elz history-t..." msgid "India" msgstr "India" msgid "Indonesia" msgstr "Indonesia" msgid "International (int)" msgstr "International (int)" msgid "Iran" msgstr "Iran" msgid "Iraq" msgstr "Iraq" msgid "Ireland" msgstr "Ireland" msgid "Israel" msgstr "Israel" msgid "Italy" msgstr "Italy" msgid "Jamaica" msgstr "Jamaica" msgid "Jan" msgstr "Jan" msgid "January" msgstr "Janur" msgid "Japan" msgstr "Japan" msgid "Jordan" msgstr "Jordan" msgid "Jul" msgstr "Jl" msgid "July" msgstr "Jlius" msgid "Jun" msgstr "Jn" msgid "June" msgstr "Jnius" msgid "KBytes" msgstr "KByte" msgid "KBytes per Day" msgstr "KByte/nap" msgid "Kazakhstan" msgstr "Kazakhstan" msgid "Kenya" msgstr "Kenya" msgid "Kiribati" msgstr "Kiribati" msgid "Korea (North)" msgstr "Korea (North)" msgid "Korea (South)" msgstr "Korea (South)" msgid "Kuwait" msgstr "Kuwait" msgid "Kyrgyzstan" msgstr "Kyrgyzstan" msgid "Laos" msgstr "Laos" msgid "Last 12 Months" msgstr "Elmlt 12 Hnap" msgid "Latvia" msgstr "Latvia" msgid "Lebanon" msgstr "Lebanon" msgid "Lesotho" msgstr "Lesotho" msgid "Liberia" msgstr "Liberia" msgid "Libya" msgstr "Libya" msgid "Liechtenstein" msgstr "Liechtenstein" msgid "Lithuania" msgstr "Lithuania" msgid "Luxembourg" msgstr "Luxembourg" msgid "Macau" msgstr "Macau" msgid "Macedonia" msgstr "Macedonia" msgid "Madagascar" msgstr "Madagascar" msgid "Malawi" msgstr "Malawi" msgid "Malaysia" msgstr "Malaysia" msgid "Maldives" msgstr "Maldives" msgid "Mali" msgstr "Mali" msgid "Malta" msgstr "Malta" msgid "Mar" msgstr "Mr" msgid "March" msgstr "Mrcius" msgid "Marshall Islands" msgstr "Marshall Islands" msgid "Martinique" msgstr "Martinique" msgid "Mauritania" msgstr "Mauritania" msgid "Mauritius" msgstr "Mauritius" msgid "Max" msgstr "Maximum" msgid "May" msgstr "Mjus" msgid "Mayotte" msgstr "Mayotte" msgid "Mexico" msgstr "Mexico" msgid "Micronesia" msgstr "Micronesia" msgid "Moldova" msgstr "Moldova" msgid "Monaco" msgstr "Monaco" msgid "Mongolia" msgstr "Mongolia" msgid "Month" msgstr "Hnap" msgid "Monthly Statistics for" msgstr "Havi Statisztika:" msgid "Monthly Totals" msgstr "Havi sszegzs" msgid "Montserrat" msgstr "Montserrat" msgid "Morocco" msgstr "Morocco" msgid "Mozambique" msgstr "Mozambique" msgid "Myanmar" msgstr "Myanmar" msgid "Namibia" msgstr "Namibia" msgid "Nato field (nato)" msgstr "Nato field (nato)" msgid "Nauru" msgstr "Nauru" msgid "Nepal" msgstr "Nepal" msgid "Netherlands" msgstr "Netherlands" msgid "Netherlands Antilles" msgstr "Netherlands Antilles" msgid "Network" msgstr "Network" msgid "Neutral Zone" msgstr "Neutral Zone" msgid "New Caledonia" msgstr "New Caledonia" msgid "New Zealand (Aotearoa)" msgstr "New Zealand (Aotearoa)" msgid "Nicaragua" msgstr "Nicaragua" msgid "Niger" msgstr "Niger" msgid "Nigeria" msgstr "Nigeria" msgid "Niue" msgstr "Niue" msgid "No cache file specified, aborting..." msgstr "Nincs cache file elrva, megszakts..." msgid "No valid records found!" msgstr "Nem talltam rvnyes rekordokat!" msgid "Non-Profit Organization" msgstr "Non-Profit Organization" msgid "None to process" msgstr "Nincs mit feldolgozni" msgid "Norfolk Island" msgstr "Norfolk Island" msgid "Northern Mariana Islands" msgstr "Northern Mariana Islands" msgid "Norway" msgstr "Norway" msgid "Nov" msgstr "Nov" msgid "November" msgstr "November" msgid "Oct" msgstr "Okt" msgid "October" msgstr "Oktber" msgid "Old style Arpanet (arpa)" msgstr "Old style Arpanet (arpa)" msgid "Oman" msgstr "Oman" msgid "Other" msgstr "Ms" msgid "Pages" msgstr "Lapok" msgid "Pages per Day" msgstr "Lap/nap" msgid "Pakistan" msgstr "Pakistan" msgid "Palau" msgstr "Palau" msgid "Panama" msgstr "Panama" msgid "Papua New Guinea" msgstr "Papua New Guinea" msgid "Paraguay" msgstr "Paraguay" msgid "Peru" msgstr "Peru" msgid "Philippines" msgstr "Philippines" msgid "Pitcairn" msgstr "Pitcairn" msgid "Poland" msgstr "Poland" msgid "Portugal" msgstr "Portugal" msgid "Previous run data not found..." msgstr "Az elz futatott adatokat nem tallom..." msgid "Puerto Rico" msgstr "Puerto Rico" msgid "Qatar" msgstr "Qatar" msgid "Reading history file..." msgstr "Olvasom a history file-t..." msgid "Reading previous run data..." msgstr "Olvasom az elz futatott adatokat.." msgid "Referrer" msgstr "Hivatkozs" msgid "Referrers" msgstr "Hivatkozsok" msgid "Reunion" msgstr "Reunion" msgid "Romania" msgstr "Romania" msgid "Russian Federation" msgstr "Russian Federation" msgid "Rwanda" msgstr "Rwanda" msgid "S. Georgia and S. Sandwich Isls." msgstr "S. Georgia and S. Sandwich Isls." msgid "Saint Kitts and Nevis" msgstr "Saint Kitts and Nevis" msgid "Saint Lucia" msgstr "Saint Lucia" msgid "Saint Vincent and the Grenadines" msgstr "Saint Vincent and the Grenadines" msgid "Samoa" msgstr "Samoa" msgid "San Marino" msgstr "San Marino" msgid "Sao Tome and Principe" msgstr "Sao Tome and Principe" msgid "Saudi Arabia" msgstr "Saudi Arabia" msgid "Saving current run data..." msgstr "Mentem a jelenlegi futatott adatokat..." msgid "Saving history information..." msgstr "Mentem a history informcit..." msgid "Search" msgstr "Keress" msgid "Search String" msgstr "Keressi String" msgid "Senegal" msgstr "Senegal" msgid "Sep" msgstr "Sep" msgid "September" msgstr "Szeptember" msgid "Seychelles" msgstr "Seychelles" msgid "Sierra Leone" msgstr "Sierra Leone" msgid "Singapore" msgstr "Singapore" msgid "Sites" msgstr "Oldalak" msgid "Skipping Netscape header record" msgstr "Kihagyom Netscape header rekordot" msgid "Skipping bad record" msgstr "Kihagyom a rossz rekordot" msgid "Slovak Republic" msgstr "Slovak Republic" msgid "Slovenia" msgstr "Slovenia" msgid "Solomon Islands" msgstr "Solomon Islands" msgid "Somalia" msgstr "Somalia" msgid "South Africa" msgstr "South Africa" msgid "Spain" msgstr "Spain" msgid "Sri Lanka" msgstr "Sri Lanka" msgid "St. Helena" msgstr "St. Helena" msgid "St. Pierre and Miquelon" msgstr "St. Pierre and Miquelon" msgid "Sudan" msgstr "Sudan" msgid "Summary Period" msgstr "Vizsglati idszak" msgid "Summary by Month" msgstr "Havi sszefoglals" msgid "Suriname" msgstr "Suriname" msgid "Svalbard and Jan Mayen Islands" msgstr "Svalbard and Jan Mayen Islands" msgid "Swaziland" msgstr "Swaziland" msgid "Sweden" msgstr "Sweden" msgid "Switzerland" msgstr "Switzerland" msgid "Syria" msgstr "Syria" msgid "Taiwan" msgstr "Taiwan" msgid "Tajikistan" msgstr "Tajikistan" msgid "Tanzania" msgstr "Tanzania" msgid "Thailand" msgstr "Thailand" msgid "Togo" msgstr "Togo" msgid "Tokelau" msgstr "Tokelau" msgid "Tonga" msgstr "Tonga" msgid "Top" msgstr "Top" msgid "Total" msgstr "sszes" msgid "Total Countries" msgstr "sszes Orszg" msgid "Total Entry Pages" msgstr "sszes Belpsi lap" msgid "Total Exit Pages" msgstr "sszes Kilpsi lap" msgid "Total Files" msgstr "sszes File" msgid "Total Hits" msgstr "sszes Tallat" msgid "Total KBytes" msgstr "sszes KByte" msgid "Total Referrers" msgstr "sszes Hivatkozs" msgid "Total Search Strings" msgstr "sszes Keressi string" msgid "Total Sites" msgstr "sszes Oldal" msgid "Total URLs" msgstr "sszes URL" msgid "Total Unique Referrers" msgstr "sszes klnbz Hivatkozs" msgid "Total Unique Sites" msgstr "sszes klnbz Oldal" msgid "Total Unique URLs" msgstr "sszes klnbz URL" msgid "Total Unique User Agents" msgstr "sszes klnbz Felhasznl bngszje" msgid "Total Unique Usernames" msgstr "sszes klnbz Felhasznlnevek" msgid "Total User Agents" msgstr "sszes Felhasznl bngszje" msgid "Total Usernames" msgstr "sszes Felhasznlnevek" msgid "Totals" msgstr "sszegzs" msgid "Trinidad and Tobago" msgstr "Trinidad and Tobago" msgid "Tunisia" msgstr "Tunisia" msgid "Turkey" msgstr "Turkey" msgid "Turkmenistan" msgstr "Turkmenistan" msgid "Turks and Caicos Islands" msgstr "Turks and Caicos Islands" msgid "Tuvalu" msgstr "Tuvalu" msgid "URL" msgstr "URL" msgid "URLs" msgstr "URLs" msgid "US Commercial" msgstr "US Commercial" msgid "US Educational" msgstr "US Educational" msgid "US Government" msgstr "US Government" msgid "US Military" msgstr "US Military" msgid "US Minor Outlying Islands" msgstr "US Minor Outlying Islands" msgid "USSR (former)" msgstr "USSR (former)" msgid "Uganda" msgstr "Uganda" msgid "Ukraine" msgstr "Ukraine" msgid "Undefined response code" msgstr "Undefined response code" msgid "United Arab Emirates" msgstr "United Arab Emirates" msgid "United Kingdom" msgstr "United Kingdom" msgid "United States" msgstr "United States" msgid "Unresolved/Unknown" msgstr "Ismeretlen" msgid "Uruguay" msgstr "Uruguay" msgid "Usage" msgstr "Hasznlat" msgid "Usage Statistics for" msgstr "Hasznlati Statisztika:" msgid "Usage by Country for" msgstr "Orszgok ltali hasznlat:" msgid "Usage summary for" msgstr "Hasznlat sszegzse:" msgid "User Agent" msgstr "Felhasznl bngszje" msgid "Username" msgstr "Felhasznlnv" msgid "Users" msgstr "Felhasznlk" msgid "Using DNS cache file" msgstr "Hasznlom a DNS cache file-t" msgid "Using logfile" msgstr "Hasznlom a logfile-t" msgid "Uzbekistan" msgstr "Uzbekistan" msgid "Vanuatu" msgstr "Vanuatu" msgid "Vatican City State (Holy See)" msgstr "Vatican City State (Holy See)" msgid "Venezuela" msgstr "Venezuela" msgid "Viet Nam" msgstr "Viet Nam" msgid "View All Referrers" msgstr "sszes Hivatkozs megtekintse" msgid "View All Search Strings" msgstr "sszes Keressi string megtekintse" msgid "View All Sites" msgstr "sszes Oldal megtekintse" msgid "View All URLs" msgstr "sszes URL megtekintse" msgid "View All User Agents" msgstr "sszes Felhasznl bngszje megtekintse" msgid "View All Usernames" msgstr "sszes Felhasznl megtekintse" msgid "Virgin Islands (British)" msgstr "Virgin Islands (British)" msgid "Virgin Islands (U.S.)" msgstr "Virgin Islands (U.S.)" msgid "Visits" msgstr "Ltogatk" msgid "Visits per Day" msgstr "Ltogat/nap" msgid "Wallis and Futuna Islands" msgstr "Wallis and Futuna Islands" msgid "Warning: Invalid keyword" msgstr "Figyelmeztets: rvnytelen kulcssz" msgid "Warning: Possible duplicate data found" msgstr "Figyelmeztets: Lehetsges ismtelt adatot talltam" msgid "Warning: String exceeds storage size" msgstr "Figyelmeztets: String nagyob a trolhat mretnl" msgid "Warning: Truncating oversized date field" msgstr "Figyelmeztets: Levgom a tl nagy adat mezt" msgid "Warning: Truncating oversized hostname" msgstr "Figyelmeztets: Lervidtem a tl hossz hostnevet" msgid "Warning: Truncating oversized referrer field" msgstr "Figyelmeztets: Levgom a tl nagy hivatkozs mezt" msgid "Warning: Truncating oversized request field" msgstr "Figyelmeztets: Levgom a tl nagy krs mezt" msgid "Warning: Truncating oversized username" msgstr "Figyelmeztets: Levgom a tl nagy felhasznlnevet" msgid "Western Sahara" msgstr "Western Sahara" msgid "Yemen" msgstr "Yemen" msgid "Yugoslavia" msgstr "Yugoslavia" msgid "Zaire" msgstr "Zaire" msgid "Zambia" msgstr "Zambia" msgid "Zimbabwe" msgstr "Zimbabwe" msgid "[options] [log file]" msgstr "[options] [log file]" msgid "addresses" msgstr "addresses" msgid "bad" msgstr "rossz" msgid "current directory" msgstr "jelenlegi knyvtr" msgid "ignored" msgstr "mellztt" msgid "in" msgstr "" msgid "of" msgstr "of" msgid "records" msgstr "rekord" msgid "seconds" msgstr "msodperc alatt" webdruid-0.5.4.orig/po/id.po0000644000000000000000000006507210066113350015601 0ustar rootroot00000000000000msgid "" msgstr "" "Project-Id-Version: 1.0\n" "PO-Revision-Date: 2003-05-25 23:29+0200\n" "Last-Translator: Johan Poirier \n" "Language-Team: French \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=ISO-8859-1\n" "Content-Transfer-Encoding: 8bit" msgid "-A num = Display num top agents" msgstr "-A num = Tampilkan browser teratas sejumlah num" msgid "-C num = Display num top countries" msgstr "-C num = Tampilkan negara teratas sejumlah num" msgid "-D name = Use DNS Cache file 'name'" msgstr "-D name = Use DNS Cache file 'name'" msgid "-E num = Display num top Exit Pages" msgstr "-E num = Tampilkan Halaman Keluar teratas sejumlah num" msgid "-F type = Log type. type= (clf | ftp | squid)" msgstr "-F type = Log type. type= (clf | ftp | squid)" msgid "-G = supress hourly graph" msgstr "-G = mengeluarkan grafik per jam" msgid "-H = supress hourly stats" msgstr "-H = mengeluarkan statistik per jam" msgid "-I name = Index alias 'name'" msgstr "-I nama = Alias indeks bernama 'nama'" msgid "-L = supress color coded graph legends" msgstr "-L = mengeluarkan legenda grafik terkode yang berwarna" msgid "-N num = Number of DNS processes (0=disable)" msgstr "-N num = Number of DNS processes (0=disable)" msgid "-P name = Page type extension 'name'" msgstr "-P nama = Ektensi tipe halaman bernama 'nama'" msgid "-Q = supress _ALL_ messages" msgstr "-Q = mengeluarkan _SEMUA_ pesan" msgid "-R num = Display num top referrers" msgstr "-R num = Tampilkan acuan teratas sejumlah num" msgid "-S num = Display num top sites" msgstr "-S num = Tampilkan situs teratas sejumlah num" msgid "-T = print timing information" msgstr "-T = cetak informasi pewaktuan" msgid "-U num = Display num top URLs" msgstr "-U num = Tampilkan URL teratas sejumlah num" msgid "-X = Hide individual sites" msgstr "-X = Hide individual sites" msgid "-Y = supress country graph" msgstr "-Y = mengeluarkan grafik negara" msgid "-a name = hide user agent 'name'" msgstr "-a nama = sembunyikan browser bernama 'nama'" msgid "-c file = use configuration file 'file'" msgstr "-c file = memakai file konfigurasi 'file'" msgid "-d = print additional debug info" msgstr "-d = cetak informasi debug tambahan" msgid "-e num = Display num top Entry Pages" msgstr "-e num = Tampilkan Halaman Masuk teratas sejumlah num" msgid "-f = Fold sequence errors" msgstr "-f = kesalahan urutan Fold" msgid "-g num = Group Domains to 'num' levels" msgstr "-g num = Group Domains to 'num' levels" msgid "-h = print this help message" msgstr "-h = cetak pesan bantuan ini" msgid "-i = ignore history file" msgstr "-i = abaikan file history" msgid "-l num = use num background lines on graph" msgstr "-l num = memakai num garis background di atas grafik" msgid "-m num = Visit timout value (seconds)" msgstr "-m num = Harga timeout kunjungan (seconds)" msgid "-n name = hostname to use" msgstr "-n nama = nama host yang dipakai" msgid "-o dir = output directory to use" msgstr "-o dir = direktori keluaran yang dipakai" msgid "-p = preserve state (incremental)" msgstr "-p = menjaga pernyataan (penambahan)" msgid "-q = supress informational messages" msgstr "-q = mengeluarkan pesan informasional" msgid "-r name = hide referrer 'name'" msgstr "-r nama = sembunyikan acuan bernama 'nama'" msgid "-s name = hide site 'name'" msgstr "-s nama = sembunyikan situs bernama 'nama'" msgid "-t name = report title 'name'" msgstr "-t nama = judul laporan bernama 'nama'" msgid "-u name = hide URL 'name'" msgstr "-u nama = sembunyikan URL bernama 'nama'" msgid "-v -V = print version information" msgstr "-v -V = cetak informasi versi" msgid "-x name = Use filename extension 'name'" msgstr "-x nama = Pergunakan ekstensi nama file 'nama'" msgid "Afghanistan" msgstr "Afghanistan" msgid "Agents" msgstr "Browser" msgid "Albania" msgstr "Albania" msgid "Algeria" msgstr "Algeria" msgid "American Samoa" msgstr "American Samoa" msgid "Andorra" msgstr "Andorra" msgid "Angola" msgstr "Angola" msgid "Anguilla" msgstr "Anguilla" msgid "Antarctica" msgstr "Antarctica" msgid "Antigua and Barbuda" msgstr "Antigua dan Barbuda" msgid "Apr" msgstr "Apr" msgid "April" msgstr "April" msgid "Argentina" msgstr "Argentina" msgid "Armenia" msgstr "Armenia" msgid "Aruba" msgstr "Aruba" msgid "Aug" msgstr "Agt" msgid "August" msgstr "Agustus" msgid "Australia" msgstr "Australia" msgid "Austria" msgstr "Austria" msgid "Avg" msgstr "Rata-rata" msgid "Azerbaijan" msgstr "Azerbaijan" msgid "Bahamas" msgstr "Bahamas" msgid "Bahrain" msgstr "Bahrain" msgid "Bangladesh" msgstr "Bangladesh" msgid "Barbados" msgstr "Barbados" msgid "Belarus" msgstr "Belarus" msgid "Belgium" msgstr "Belgia" msgid "Belize" msgstr "Belize" msgid "Benin" msgstr "Benin" msgid "Bermuda" msgstr "Bermuda" msgid "Bhutan" msgstr "Bhutan" msgid "Bolivia" msgstr "Bolivia" msgid "Bosnia and Herzegovina" msgstr "Bosnia dan Herzegovina" msgid "Botswana" msgstr "Botswana" msgid "Bouvet Island" msgstr "Bouvet Island" msgid "Brazil" msgstr "Brazil" msgid "British Indian Ocean Territory" msgstr "British Indian Ocean Territory" msgid "Brunei Darussalam" msgstr "Brunei Darussalam" msgid "Bulgaria" msgstr "Bulgaria" msgid "Burkina Faso" msgstr "Burkina Faso" msgid "Burundi" msgstr "Burundi" msgid "By" msgstr "berdasarkan" msgid "Cambodia" msgstr "Kamboja" msgid "Cameroon" msgstr "Kamerun" msgid "Can't allocate enough memory, Top Countries disabled!" msgstr "Tak dapat mengalokasikan cukup memori, Negara-negara urutan teratas tidak diaktifkan!" msgid "Can't allocate enough memory, Top Referrers disabled!" msgstr "Tak dapat mengalokasikan cukup memori, Acuan-acuan urutan teratas tidak diaktifkan!" msgid "Can't allocate enough memory, Top Search Strings disabled!" msgstr "Tak dapat mengalokasikan cukup memori, String-string pencarian urutan teratas tidak diaktifkan!" msgid "Can't allocate enough memory, Top Sites disabled!" msgstr "Tak dapat mengalokasikan cukup memori, Situs-situs urutan teratas tidak diaktifkan!" msgid "Can't allocate enough memory, Top URLs disabled!" msgstr "Tak dapat mengalokasikan cukup memori, URL-URL urutan teratas tidak diaktifkan!" msgid "Can't allocate enough memory, Top User Agents disabled!" msgstr "Tak dapat mengalokasikan cukup memori, Browser-browser urutan teratas tidak diaktifkan!" msgid "Can't allocate enough memory, Top Usernames disabled!" msgstr "Can't allocate enough memory, Top Usernames disabled!" msgid "Canada" msgstr "Kanada" msgid "Cape Verde" msgstr "Cape Verde" msgid "Cayman Islands" msgstr "Kepulauan Cayman" msgid "Central African Republic" msgstr "Republik Afrika Tengah" msgid "Chad" msgstr "Chad" msgid "Chile" msgstr "Chili" msgid "China" msgstr "Cina" msgid "Christmas Island" msgstr "Pulau Christmas" msgid "Cocos (Keeling) Islands" msgstr "Kepulauan Cocos (Keeling)" msgid "Code 100 - Continue" msgstr "Kode 100 - Teruskan" msgid "Code 101 - Switching Protocols" msgstr "Kode 101 - Pertukaran Protokol" msgid "Code 200 - OK" msgstr "Kode 200 - OK" msgid "Code 201 - Created" msgstr "Kode 201 - Dibuat" msgid "Code 202 - Accepted" msgstr "Kode 202 - Diterima" msgid "Code 203 - Non-Authoritative Information" msgstr "Kode 203 - Informasi Non-Authoritatif" msgid "Code 204 - No Content" msgstr "Kode 204 - Tak Ada Isi" msgid "Code 205 - Reset Content" msgstr "Kode 205 - Reset Isi" msgid "Code 206 - Partial Content" msgstr "Kode 206 - Berisi sebagian" msgid "Code 300 - Multiple Choices" msgstr "Kode 300 - Multi Pilihan" msgid "Code 301 - Moved Permanently" msgstr "Kode 301 - Pindah Permanen" msgid "Code 302 - Found" msgstr "Kode 302 - Ditemukan" msgid "Code 303 - See Other" msgstr "Kode 303 - Lihat lainnya" msgid "Code 304 - Not Modified" msgstr "Kode 304 - Tak dimodifikasi" msgid "Code 305 - Use Proxy" msgstr "Kode 305 - Memakai Proxy" msgid "Code 307 - Moved Temporarily" msgstr "Kode 307 - Dipindahkan secara Temporer" msgid "Code 400 - Bad Request" msgstr "Kode 400 - Permintaan yang Buruk" msgid "Code 401 - Unauthorized" msgstr "Kode 401 - Tidak terotorisasi" msgid "Code 402 - Payment Required" msgstr "Kode 402 - Mensyaratkan Pembayaran" msgid "Code 403 - Forbidden" msgstr "Kode 403 - Terlarang" msgid "Code 404 - Not Found" msgstr "Kode 404 - Tidak ditemukan" msgid "Code 405 - Method Not Allowed" msgstr "Kode 405 - Metode Tidak Diizinkan" msgid "Code 406 - Not Acceptable" msgstr "Kode 406 - Tak dapat diterima" msgid "Code 407 - Proxy Authentication Required" msgstr "Kode 407 - Otentikasi Proxy Diperlukan" msgid "Code 408 - Request Timeout" msgstr "Kode 408 - Permintaan Timeout" msgid "Code 409 - Conflict" msgstr "Kode 409 - Konflik" msgid "Code 410 - Gone" msgstr "Kode 410 - Hilang" msgid "Code 411 - Length Required" msgstr "Kode 411 - Panjang Disyaratkan" msgid "Code 412 - Precondition Failed" msgstr "Kode 412 - Prakondisi Gagal" msgid "Code 413 - Request Entity Too Large" msgstr "Kode 413 - Entitas Permintaan Terlalu Besar" msgid "Code 414 - Request-URI Too Long" msgstr "Kode 414 - Permintaan-URI Terlalu Panjang" msgid "Code 415 - Unsupported Media Type" msgstr "Kode 415 - Tipe Media Tidak Didukung" msgid "Code 416 - Requested Range Not Satisfiable" msgstr "Kode 416 - Kisaran yang Diminta Tidak Memuaskan" msgid "Code 417 - Expectation Failed" msgstr "Kode 417 - Harapan Gagal" msgid "Code 500 - Internal Server Error" msgstr "Kode 500 - Kesalahan Internal Server" msgid "Code 501 - Not Implemented" msgstr "Kode 501 - Tidak Diimplementasikan" msgid "Code 502 - Bad Gateway" msgstr "Kode 502 - Gateway Jelek" msgid "Code 503 - Service Unavailable" msgstr "Kode 503 - Layanan Tidak Tersedia" msgid "Code 504 - Gateway Timeout" msgstr "Kode 504 - Gateway Timeout" msgid "Code 505 - HTTP Version Not Supported" msgstr "Kode 505 - Versi HTTP Tidak Didukung" msgid "Colombia" msgstr "Kolumbia" msgid "Comoros" msgstr "Komoro" msgid "Congo" msgstr "Kongo" msgid "Cook Islands" msgstr "Kepulauan Cook" msgid "Costa Rica" msgstr "Costa Rica" msgid "Cote D'Ivoire (Ivory Coast)" msgstr "Pantai Gading" msgid "Countries" msgstr "Negara" msgid "Country" msgstr "Negara" msgid "Creating output in" msgstr "Membuat keluaran dalam" msgid "Croatia (Hrvatska)" msgstr "Kroasia (Hrvatska)" msgid "Cuba" msgstr "Kuba" msgid "Cyprus" msgstr "Siprus" msgid "Czech Republic" msgstr "Republik Ceko" msgid "Czechoslovakia (former)" msgstr "Cekoslowakia (former)" msgid "DNS Lookup" msgstr "DNS Lookup" msgid "Daily Avg" msgstr "Rata-rata harian" msgid "Daily Statistics" msgstr "Statistik harian" msgid "Daily Statistics for" msgstr "Statistik harian untuk" msgid "Daily usage for" msgstr "Pengaksesan harian untuk" msgid "Day" msgstr "Hari" msgid "Dec" msgstr "Des" msgid "December" msgstr "Desember" msgid "Denmark" msgstr "Denmark" msgid "Djibouti" msgstr "Djibouti" msgid "Dominica" msgstr "Dominika" msgid "Dominican Republic" msgstr "Republik Dominika" msgid "East Timor" msgstr "Timor Timur" msgid "Ecuador" msgstr "Equador" msgid "Egypt" msgstr "Mesir" msgid "El Salvador" msgstr "El Salvador" msgid "English" msgstr "Indonesian" msgid "Entry" msgstr "Masuk" msgid "Equatorial Guinea" msgstr "Equatorial Guinea" msgid "Eritrea" msgstr "Eritrea" msgid "Error adding Referrer node, skipping" msgstr "Terjadi kesalahan saat menambahkan node acuan, dilewati" msgid "Error adding Search String Node, skipping" msgstr "Terjadi kesalahan saat menambahkan node string pencarian, dilewati" msgid "Error adding URL node, skipping" msgstr "Terjadi kesalahan saat menambahkan node URL, dilewati" msgid "Error adding User Agent node, skipping" msgstr "Terjadi kesalahan saat menambahkan node User Agent, dilewati" msgid "Error adding Username node, skipping" msgstr "Error adding Username node, skipping" msgid "Error adding host node (daily), skipping" msgstr "Terjadi kesalahan saat menambahkan node host (harian), dilewati" msgid "Error adding host node (monthly), skipping" msgstr "Terjadi kesalahan saat menambahkan node host (bulanan), dilewati" msgid "Error: Can't change directory to" msgstr "Salah: Tak dapat berpindah ke direktori" msgid "Error: Can't open log file" msgstr "Salah: Tak dapat membuka file log" msgid "Error: Ignoring invalid history record" msgstr "Salah: Abaikan record history yang cacat" msgid "Error: Skipping oversized log record" msgstr "Salah: Melompati rekaman log yang oversize" msgid "Error: Skipping record (bad date)" msgstr "Salah: Melompati record (tanggal salah)" msgid "Error: Unable to lock DNS cache file" msgstr "Error: Unable to lock DNS cache file" msgid "Error: Unable to open DNS cache file" msgstr "Error: Unable to open DNS cache file" msgid "Error: Unable to open configuration file" msgstr "Salah: Tak dapat membuka file konfigurasi" msgid "Error: Unable to open file" msgstr "Salah: Tak dapat membuka file" msgid "Error: Unable to restore run data" msgstr "Salah: Tak dapat memulihkan data yang dijalankan" msgid "Error: Unable to save current run data" msgstr "Salah: Tak dapat menyimpan data yang dijalankan saat ini" msgid "Error: Unable to write history file" msgstr "Salah: Tak dapat menulisi file history" msgid "Estonia" msgstr "Estonia" msgid "Ethiopia" msgstr "Ethiopia" msgid "Exit" msgstr "Keluar" msgid "Falkland Islands (Malvinas)" msgstr "Kepulauan Falkland (Malvinas)" msgid "Faroe Islands" msgstr "Kepulauan Faroe" msgid "Feb" msgstr "Feb" msgid "February" msgstr "Februari" msgid "Fiji" msgstr "Fiji" msgid "Files" msgstr "File" msgid "Files per Day" msgstr "File per hari" msgid "Finland" msgstr "Finlandia" msgid "France" msgstr "Perancis" msgid "France; Metropolitan" msgstr "Perancis, Metropolitan" msgid "French Guiana" msgstr "French Guiana" msgid "French Polynesia" msgstr "French Polynesia" msgid "French Southern Territories" msgstr "French Southern Territories" msgid "Gabon" msgstr "Gabon" msgid "Gambia" msgstr "Gambia" msgid "Generated" msgstr "Dibuat:" msgid "Generating report for" msgstr "Sedang memproses laporan untuk" msgid "Generating summary report" msgstr "Sedang membuat laporan singkat" msgid "Georgia" msgstr "Georgia" msgid "Germany" msgstr "Jerman" msgid "Ghana" msgstr "Ghana" msgid "Gibraltar" msgstr "Gibraltar" msgid "Great Britain (UK)" msgstr "Great Britain (UK)" msgid "Greece" msgstr "Yunani" msgid "Greenland" msgstr "Greenland" msgid "Grenada" msgstr "Grenada" msgid "Guadeloupe" msgstr "Guadeloupe" msgid "Guam" msgstr "Guam" msgid "Guatemala" msgstr "Guatemala" msgid "Guinea" msgstr "Guinea" msgid "Guinea-Bissau" msgstr "Guinea-Bissau" msgid "Guyana" msgstr "Guyana" msgid "Haiti" msgstr "Haiti" msgid "Heard and McDonald Islands" msgstr "Heard dan McDonald Islands" msgid "History file not found..." msgstr "File history tak dapat ditemukan..." msgid "Hits" msgstr "Hit" msgid "Hits by Response Code" msgstr "Hit oleh kode respon" msgid "Hits per Day" msgstr "Hit per hari" msgid "Hits per Hour" msgstr "Hit per jam" msgid "Honduras" msgstr "Honduras" msgid "Hong Kong" msgstr "Hong Kong" msgid "Hostname" msgstr "Nama Host" msgid "Hostname for reports is" msgstr "Nama host yang akan dilaporkan adalah" msgid "Hour" msgstr "Jam" msgid "Hourly Statistics" msgstr "Statistik per jam" msgid "Hourly Statistics for" msgstr "Statistik per jam untuk" msgid "Hourly usage for" msgstr "Pengaksesan per jam untuk" msgid "Hungary" msgstr "Hungaria" msgid "Iceland" msgstr "Islandia" msgid "Ignoring previous history..." msgstr "Abaikan history sebelumnya..." msgid "India" msgstr "India" msgid "Indonesia" msgstr "Indonesia" msgid "International (int)" msgstr "Internasional (int)" msgid "Iran" msgstr "Iran" msgid "Iraq" msgstr "Iraq" msgid "Ireland" msgstr "Irlandia" msgid "Israel" msgstr "Israel" msgid "Italy" msgstr "Italia" msgid "Jamaica" msgstr "Jamaika" msgid "Jan" msgstr "Jan" msgid "January" msgstr "Januari" msgid "Japan" msgstr "Jepang" msgid "Jordan" msgstr "Yordania" msgid "Jul" msgstr "Jul" msgid "July" msgstr "Juli" msgid "Jun" msgstr "Jun" msgid "June" msgstr "Juni" msgid "KBytes" msgstr "KByte" msgid "KBytes per Day" msgstr "KByte per hari" msgid "Kazakhstan" msgstr "Kazakhstan" msgid "Kenya" msgstr "Kenya" msgid "Kiribati" msgstr "Kiribati" msgid "Korea (North)" msgstr "Korea (Utara)" msgid "Korea (South)" msgstr "Korea (Selatan)" msgid "Kuwait" msgstr "Kuwait" msgid "Kyrgyzstan" msgstr "Kyrgyzstan" msgid "Laos" msgstr "Laos" msgid "Last 12 Months" msgstr "12 bulan terakhir" msgid "Latvia" msgstr "Latvia" msgid "Lebanon" msgstr "Libanon" msgid "Lesotho" msgstr "Lesotho" msgid "Liberia" msgstr "Liberia" msgid "Libya" msgstr "Libya" msgid "Liechtenstein" msgstr "Liechtenstein" msgid "Lithuania" msgstr "Lithuania" msgid "Luxembourg" msgstr "Luxembourg" msgid "Macau" msgstr "Macau" msgid "Macedonia" msgstr "Makedonia" msgid "Madagascar" msgstr "Madagaskar" msgid "Malawi" msgstr "Malawi" msgid "Malaysia" msgstr "Malaysia" msgid "Maldives" msgstr "Maldives" msgid "Mali" msgstr "Mali" msgid "Malta" msgstr "Malta" msgid "Mar" msgstr "Mar" msgid "March" msgstr "Maret" msgid "Marshall Islands" msgstr "Kepulauan Marshall" msgid "Martinique" msgstr "Martinique" msgid "Mauritania" msgstr "Mauritania" msgid "Mauritius" msgstr "Mauritius" msgid "Max" msgstr "Maks" msgid "May" msgstr "Mei" msgid "Mayotte" msgstr "Mayotte" msgid "Mexico" msgstr "Mexico" msgid "Micronesia" msgstr "Micronesia" msgid "Moldova" msgstr "Moldova" msgid "Monaco" msgstr "Monaco" msgid "Mongolia" msgstr "Mongolia" msgid "Month" msgstr "Bulan" msgid "Monthly Statistics for" msgstr "Statistik bulanan untuk" msgid "Monthly Totals" msgstr "Total bulanan" msgid "Montserrat" msgstr "Montserrat" msgid "Morocco" msgstr "Maroko" msgid "Mozambique" msgstr "Mozambique" msgid "Myanmar" msgstr "Myanmar" msgid "Namibia" msgstr "Namibia" msgid "Nato field (nato)" msgstr "Field Nato (nato)" msgid "Nauru" msgstr "Nauru" msgid "Nepal" msgstr "Nepal" msgid "Netherlands" msgstr "Netherlands" msgid "Netherlands Antilles" msgstr "Netherlands Antilles" msgid "Network" msgstr "Jaringan Komputer" msgid "Neutral Zone" msgstr "Neutral Zone" msgid "New Caledonia" msgstr "New Caledonia" msgid "New Zealand (Aotearoa)" msgstr "New Zealand (Aotearoa)" msgid "Nicaragua" msgstr "Nikaragua" msgid "Niger" msgstr "Niger" msgid "Nigeria" msgstr "Nigeria" msgid "Niue" msgstr "Niue" msgid "No cache file specified, aborting..." msgstr "No cache file specified, aborting..." msgid "No valid records found!" msgstr "Tak ditemukan record yang valid!" msgid "Non-Profit Organization" msgstr "Organisasi Non-Profit" msgid "None to process" msgstr "None to process" msgid "Norfolk Island" msgstr "Kepulauan Norfolk" msgid "Northern Mariana Islands" msgstr "Kepulauan Northern Mariana" msgid "Norway" msgstr "Norwegia" msgid "Nov" msgstr "Nov" msgid "November" msgstr "November" msgid "Oct" msgstr "Okt" msgid "October" msgstr "Oktober" msgid "Old style Arpanet (arpa)" msgstr "Arpanet Gaya Lama (arpa)" msgid "Oman" msgstr "Oman" msgid "Other" msgstr "Lainnya" msgid "Pages" msgstr "Halaman" msgid "Pages per Day" msgstr "Halaman per hari" msgid "Pakistan" msgstr "Pakistan" msgid "Palau" msgstr "Palau" msgid "Panama" msgstr "Panama" msgid "Papua New Guinea" msgstr "Papua Nugini" msgid "Paraguay" msgstr "Paraguay" msgid "Peru" msgstr "Peru" msgid "Philippines" msgstr "Filipina" msgid "Pitcairn" msgstr "Pitcairn" msgid "Poland" msgstr "Polandia" msgid "Portugal" msgstr "Portugal" msgid "Previous run data not found..." msgstr "Data yang dijalankan sebelumnya tak ditemukan..." msgid "Puerto Rico" msgstr "Puerto Rico" msgid "Qatar" msgstr "Qatar" msgid "Reading history file..." msgstr "Sedang membaca file history..." msgid "Reading previous run data..." msgstr "Sedang membaca data yang dijalankan sebelumnya.." msgid "Referrer" msgstr "Acuan" msgid "Referrers" msgstr "Acuan" msgid "Reunion" msgstr "Reunion" msgid "Romania" msgstr "Rumania" msgid "Russian Federation" msgstr "Federasi Rusia" msgid "Rwanda" msgstr "Rwanda" msgid "S. Georgia and S. Sandwich Isls." msgstr "S. Georgia dan S. Sandwich Isls." msgid "Saint Kitts and Nevis" msgstr "Saint Kitts dan Nevis" msgid "Saint Lucia" msgstr "Saint Lucia" msgid "Saint Vincent and the Grenadines" msgstr "Saint Vincent dan the Grenadines" msgid "Samoa" msgstr "Samoa" msgid "San Marino" msgstr "San Marino" msgid "Sao Tome and Principe" msgstr "Sao Tome dan Principe" msgid "Saudi Arabia" msgstr "Saudi Arabia" msgid "Saving current run data..." msgstr "Sedang menyimpan data yang dijalankan saat ini..." msgid "Saving history information..." msgstr "Menyimpan informasi history..." msgid "Search" msgstr "Cari" msgid "Search String" msgstr "String pencarian" msgid "Senegal" msgstr "Senegal" msgid "Sep" msgstr "Sep" msgid "September" msgstr "September" msgid "Seychelles" msgstr "Seychelles" msgid "Sierra Leone" msgstr "Sierra Leone" msgid "Singapore" msgstr "Singapura" msgid "Sites" msgstr "Situs" msgid "Skipping Netscape header record" msgstr "Melompati record header Netscape" msgid "Skipping bad record" msgstr "Melompati record yang salah" msgid "Slovak Republic" msgstr "Republik Slovakia" msgid "Slovenia" msgstr "Slovenia" msgid "Solomon Islands" msgstr "Kepulauan Solomon" msgid "Somalia" msgstr "Somalia" msgid "South Africa" msgstr "Africa Selatan" msgid "Spain" msgstr "Spanyol" msgid "Sri Lanka" msgstr "Sri Lanka" msgid "St. Helena" msgstr "St. Helena" msgid "St. Pierre and Miquelon" msgstr "St. Pierre dan Miquelon" msgid "Sudan" msgstr "Sudan" msgid "Summary Period" msgstr "Periode Ringkasan" msgid "Summary by Month" msgstr "Ringkasan berdasarkan bulan" msgid "Suriname" msgstr "Suriname" msgid "Svalbard and Jan Mayen Islands" msgstr "Kepulauan Svalbard dan Jan Mayen" msgid "Swaziland" msgstr "Swaziland" msgid "Sweden" msgstr "Swedia" msgid "Switzerland" msgstr "Swiss" msgid "Syria" msgstr "Syria" msgid "Taiwan" msgstr "Taiwan" msgid "Tajikistan" msgstr "Tajikistan" msgid "Tanzania" msgstr "Tanzania" msgid "Thailand" msgstr "Thailand" msgid "Togo" msgstr "Togo" msgid "Tokelau" msgstr "Tokelau" msgid "Tonga" msgstr "Tonga" msgid "Top" msgstr "" msgid "Total" msgstr "Jumlah" msgid "Total Countries" msgstr "negara" msgid "Total Entry Pages" msgstr "halaman masuk" msgid "Total Exit Pages" msgstr "halaman keluar" msgid "Total Files" msgstr "Jumlah File" msgid "Total Hits" msgstr "Jumlah Hit" msgid "Total KBytes" msgstr "Jumlah KByte" msgid "Total Referrers" msgstr "acuan" msgid "Total Search Strings" msgstr "string pencarian" msgid "Total Sites" msgstr "situs" msgid "Total URLs" msgstr "URL" msgid "Total Unique Referrers" msgstr "Jumlah Acuan unik" msgid "Total Unique Sites" msgstr "Jumlah Situs unik" msgid "Total Unique URLs" msgstr "Jumlah URL unik" msgid "Total Unique User Agents" msgstr "Jumlah Browser unik" msgid "Total Unique Usernames" msgstr "Total Unique Usernames" msgid "Total User Agents" msgstr "browser/user agents" msgid "Total Usernames" msgstr "Total Usernames" msgid "Totals" msgstr "Total" msgid "Trinidad and Tobago" msgstr "Trinidad dan Tobago" msgid "Tunisia" msgstr "Tunisia" msgid "Turkey" msgstr "Turki" msgid "Turkmenistan" msgstr "Turkmenistan" msgid "Turks and Caicos Islands" msgstr "Kepulauan Turks dan Caicos" msgid "Tuvalu" msgstr "Tuvalu" msgid "URL" msgstr "URL" msgid "URLs" msgstr "URL" msgid "US Commercial" msgstr "Komersial dari US" msgid "US Educational" msgstr "Edukasi dari US" msgid "US Government" msgstr "Pemerintahan dari US" msgid "US Military" msgstr "Militer dari US" msgid "US Minor Outlying Islands" msgstr "US Minor Outlying Islands" msgid "USSR (former)" msgstr "USSR (former)" msgid "Uganda" msgstr "Uganda" msgid "Ukraine" msgstr "Ukraine" msgid "Undefined response code" msgstr "Kode respon tak terdefinisi" msgid "United Arab Emirates" msgstr "United Arab Emirates" msgid "United Kingdom" msgstr "United Kingdom" msgid "United States" msgstr "United States" msgid "Unresolved/Unknown" msgstr "Tak Dapat Dilacak/Tidak Diketahui" msgid "Uruguay" msgstr "Uruguay" msgid "Usage" msgstr "Penggunaan" msgid "Usage Statistics for" msgstr "Statistik pengaksesan untuk" msgid "Usage by Country for" msgstr "Pengaksesan oleh negara untuk" msgid "Usage summary for" msgstr "Grafik Akses untuk" msgid "User Agent" msgstr "Browser/User Agent" msgid "Username" msgstr "Username" msgid "Users" msgstr "Users" msgid "Using DNS cache file" msgstr "Using DNS cache file" msgid "Using logfile" msgstr "Menggunakan file log" msgid "Uzbekistan" msgstr "Uzbekistan" msgid "Vanuatu" msgstr "Vanuatu" msgid "Vatican City State (Holy See)" msgstr "Vatican City State (Holy See)" msgid "Venezuela" msgstr "Venezuela" msgid "Viet Nam" msgstr "Vietnam" msgid "View All Referrers" msgstr "View All Referrers" msgid "View All Search Strings" msgstr "View All Search Strings" msgid "View All Sites" msgstr "View All Sites" msgid "View All URLs" msgstr "View All URLs" msgid "View All User Agents" msgstr "View All User Agents" msgid "View All Usernames" msgstr "View All Usernames" msgid "Virgin Islands (British)" msgstr "Virgin Islands (British)" msgid "Virgin Islands (U.S.)" msgstr "Virgin Islands (U.S.)" msgid "Visits" msgstr "Kunjungan" msgid "Visits per Day" msgstr "Kunjungan per hari" msgid "Wallis and Futuna Islands" msgstr "Wallis and Futuna Islands" msgid "Warning: Invalid keyword" msgstr "Peringatan: Kata kunci tidak valid" msgid "Warning: Possible duplicate data found" msgstr "Peringatan: Kemungkinan ditemukan data yang terduplikasi" msgid "Warning: String exceeds storage size" msgstr "Peringatan: String melampaui ukuran penyimpanan" msgid "Warning: Truncating oversized date field" msgstr "Peringatan: Memotong field tanggal yang oversize" msgid "Warning: Truncating oversized hostname" msgstr "Peringatan: Memotong nama host yang oversize" msgid "Warning: Truncating oversized referrer field" msgstr "Peringatan: Memotong acuan yang oversize" msgid "Warning: Truncating oversized request field" msgstr "Peringatan: Memotong field permintaan yang oversize" msgid "Warning: Truncating oversized username" msgstr "Warning: Truncating oversized username" msgid "Western Sahara" msgstr "Sahara Barat" msgid "Yemen" msgstr "Yemen" msgid "Yugoslavia" msgstr "Yugoslavia" msgid "Zaire" msgstr "Zaire" msgid "Zambia" msgstr "Zambia" msgid "Zimbabwe" msgstr "Zimbabwe" msgid "[options] [log file]" msgstr "[opsi] [file log]" msgid "addresses" msgstr "addresses" msgid "bad" msgstr "buruk" msgid "current directory" msgstr "direktori saat ini" msgid "ignored" msgstr "diabaikan" msgid "in" msgstr "dalam" msgid "of" msgstr "urutan teratas dari sejumlah" msgid "records" msgstr "record" msgid "seconds" msgstr "detik" webdruid-0.5.4.orig/po/fr.po0000644000000000000000000014005710066113350015611 0ustar rootroot00000000000000msgid "" msgstr "" "Project-Id-Version: 1.0\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2004-02-27 13:53+0100\n" "PO-Revision-Date: 2004-02-27 23:29+0200\n" "Last-Translator: Fabien \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=ISO-8859-1\n" "Content-Transfer-Encoding: 8bit\n" #. Error: Unable to open DNS cache file #: dns_resolv.c:233 dns_resolv.c:821 msgid "Error: Unable to open DNS cache file" msgstr "Error: Unable to open DNS cache file" #. Error: Unable to lock DNS cache file #: dns_resolv.c:246 dns_resolv.c:831 msgid "Error: Unable to lock DNS cache file" msgstr "Error: Unable to lock DNS cache file" #. No valid addresses found... #: dns_resolv.c:345 msgid "None to process" msgstr "None to process" #: dns_resolv.c:360 msgid "addresses" msgstr "addresses" #: dns_resolv.c:364 webdruid.c:1382 msgid "in" msgstr "in" #: dns_resolv.c:364 webdruid.c:1382 msgid "seconds" msgstr "seconds" #: dot_output.c:128 #, c-format msgid "Top followed paths for %s" msgstr "Chemins les plus suivis pour %s" #: dot_output.c:297 #, c-format msgid "Users flow for %s" msgstr "Flux des utilisateurs pour %s" #: dot_output.c:511 dot_output.c:514 msgid "Home page" msgstr "Page principale" #. Kbytes Legend #: graphs.c:149 graphs.c:150 graphs.c:151 graphs.c:367 graphs.c:368 #: output.c:761 output.c:836 output.c:930 output.c:942 output.c:1033 #: output.c:1117 output.c:1129 output.c:1235 output.c:2113 output.c:2199 #: output.c:2371 output.c:2456 output.c:2498 output.c:2617 output.c:2720 msgid "KBytes" msgstr "Ko" #. Sites/Visits Legend #: graphs.c:154 graphs.c:156 graphs.c:157 graphs.c:376 graphs.c:377 #: output.c:617 output.c:753 output.c:944 output.c:1033 output.c:1331 #: output.c:2115 output.c:2199 output.c:2456 output.c:2617 output.c:2716 #: output.c:2722 msgid "Visits" msgstr "Visites" #. Sites/Visits Legend #: graphs.c:155 graphs.c:160 graphs.c:161 graphs.c:371 graphs.c:372 #: graphs.c:373 output.c:564 output.c:757 output.c:1027 output.c:2718 msgid "Sites" msgstr "Sites" #. Hits/Files/Pages Legend #. Pages/Files/Hits Legend #: graphs.c:164 graphs.c:166 graphs.c:167 graphs.c:380 graphs.c:383 #: graphs.c:384 graphs.c:544 graphs.c:547 graphs.c:548 output.c:613 #: output.c:749 output.c:832 output.c:2714 output.c:2724 msgid "Pages" msgstr "Pages" #: graphs.c:165 graphs.c:170 graphs.c:171 graphs.c:381 graphs.c:387 #: graphs.c:388 graphs.c:545 graphs.c:551 graphs.c:552 output.c:745 #: output.c:831 output.c:940 output.c:1033 output.c:2111 output.c:2199 #: output.c:2369 output.c:2456 output.c:2617 output.c:2712 output.c:2726 msgid "Files" msgstr "Fichiers" #: graphs.c:174 graphs.c:175 graphs.c:382 graphs.c:391 graphs.c:392 #: graphs.c:546 graphs.c:555 graphs.c:556 output.c:741 output.c:825 #: output.c:938 output.c:1033 output.c:1126 output.c:1235 output.c:1328 #: output.c:1423 output.c:1507 output.c:1587 output.c:1661 output.c:2109 #: output.c:2199 output.c:2367 output.c:2456 output.c:2498 output.c:2538 #: output.c:2577 output.c:2617 output.c:2710 output.c:2728 msgid "Hits" msgstr "Hits" #: graphs.c:674 lang_strings.h:113 msgid "Other" msgstr "Autre" #: hashtab.c:117 hashtab.c:308 hashtab.c:441 hashtab.c:561 hashtab.c:678 #: hashtab.c:849 linklist.c:217 linklist.c:274 sengine.c:782 msgid "Warning: String exceeds storage size" msgstr "Warning: String exceeds storage size" #: hashtab.c:1016 hashtab.c:1050 msgid "Warning: out of memory - could not create open path" msgstr "" #: hashtab.c:1036 hashtab.c:1216 #, fuzzy msgid "Error flushing path, skipping" msgstr "Error adding URL node, skipping" #: hashtab.c:1074 msgid "Warning: out of memory - could not add url to open path" msgstr "" #: hashtab.c:1301 hashtab.c:1347 msgid "Warning: out of memory - could not put path to path list" msgstr "" #. Error: Can't open log file ... #: logs_mgmt.c:121 logs_mgmt.c:138 msgid "Error: Can't open log file" msgstr "Error: Can't open log file" #: logs_mgmt.c:157 msgid "Using logfile" msgstr "Using logfile" #: logs_mgmt.c:190 #, fuzzy msgid "Using log from" msgstr "Using logfile" #: logs_mgmt.c:332 logs_mgmt.c:390 #, fuzzy msgid "Skipping garbage w3c record" msgstr "Skipping bad record" #: logs_mgmt.c:338 logs_mgmt.c:396 msgid "Skipping bad record" msgstr "Skipping bad record" #: logs_mgmt.c:368 #, c-format msgid "Could not read any record from file %s.\n" msgstr "" #. Skipping Netscape header record #: logs_mgmt.c:380 msgid "Skipping Netscape header record" msgstr "Skipping Netscape header record" #: logs_mgmt.c:495 msgid "Error: Skipping oversized log record" msgstr "Error: Skipping oversized log record" #: logs_mgmt.c:593 #, c-format msgid "Log file %s, line %lu: %s" msgstr "" #: output.c:193 output.c:215 lang_strings.h:112 msgid "Usage Statistics for" msgstr "Statistiques d'accs " #: output.c:216 msgid "Summary Period" msgstr "Priode du rsum" #: output.c:217 msgid "Generated" msgstr "Gnr le" #: output.c:241 msgid "Generated by" msgstr "Gnr par" #. We never now what can happen... #. These will help us prevent dead #. links #: output.c:294 msgid "Generating report for" msgstr "Generating report for" #: output.c:322 msgid "Daily usage for" msgstr "Accs journalier pour" #: output.c:338 msgid "Hourly usage for" msgstr "Accs horaire pour" #: output.c:399 msgid "Can't allocate enough memory, Top URLs disabled!" msgstr "Can't allocate enough memory, Top URLs disabled!" #: output.c:429 xml_output.c:275 msgid "Can't allocate enough memory, Top Sites disabled!" msgstr "Can't allocate enough memory, Top Sites disabled!" #: output.c:446 msgid "Can't allocate enough memory, Top Referrers disabled!" msgstr "Can't allocate enough memory, Top Referrers disabled!" #: output.c:469 msgid "Search String" msgstr "Mots-clés" #: output.c:515 msgid "Can't allocate enough memory, Top Usernames disabled!" msgstr "Can't allocate enough memory, Top Usernames disabled!" #: output.c:532 msgid "Can't allocate enough memory, Top User Agents disabled!" msgstr "Can't allocate enough memory, Top User Agents disabled!" #: output.c:550 msgid "Daily Statistics" msgstr "Statistiques journalires" #: output.c:552 msgid "Hourly Statistics" msgstr "Statistiques horaires" #: output.c:554 msgid "URLs" msgstr "URLs" #: output.c:556 msgid "Entry" msgstr "Pages d'entre" #: output.c:558 msgid "Exit" msgstr "Pages de sortie" #: output.c:560 msgid "Top Path" msgstr "Chemins" #: output.c:562 msgid "Users Flow" msgstr "Flux des utilisateurs" #: output.c:566 msgid "Referrers" msgstr "Rfrents" #: output.c:568 msgid "Search Phrases" msgstr "Expressions clefs" #: output.c:570 msgid "Users" msgstr "Utilisateurs" #: output.c:572 msgid "Agents" msgstr "Navigateurs" #: output.c:574 msgid "Countries" msgstr "Pays" #: output.c:600 msgid "Monthly Statistics for" msgstr "Statistiques mensuelles pour" #. Total Hits #: output.c:605 msgid "Total Hits" msgstr "Total des Hits" #. Total Files #: output.c:609 msgid "Total Files" msgstr "Total des Fichiers" #. Total Pages #. Total Visits #: output.c:613 output.c:617 output.c:842 output.c:847 output.c:852 #: output.c:857 msgid "Total" msgstr "Total" #. Total XFer #: output.c:621 msgid "Total KBytes" msgstr "Total des Ko" #. ******************************************** #. Unique Sites #: output.c:628 msgid "Total Unique Sites" msgstr "Total des Sites uniques" #. Unique URL's #: output.c:633 msgid "Total Unique URLs" msgstr "Total des URLs uniques" #: output.c:639 msgid "Total Unique Referrers" msgstr "Total des Rfrents uniques" #: output.c:645 msgid "Total Unique Usernames" msgstr "Total des utilisateurs uniques" #: output.c:651 msgid "Total Unique User Agents" msgstr "Total des Navigateurs" #: output.c:661 output.c:842 output.c:847 output.c:852 output.c:857 msgid "Avg" msgstr "Moy." #: output.c:661 msgid "Max" msgstr "Max" #. Max/Avg Hits per Hour #: output.c:668 msgid "Hits per Hour" msgstr "Hits par Heure" #. Max/Avg Hits per Day #: output.c:674 msgid "Hits per Day" msgstr "Hits par Jour" #. Max/Avg Files per Day #: output.c:680 msgid "Files per Day" msgstr "Fichiers par Jour" #. Max/Avg Pages per Day #: output.c:686 msgid "Pages per Day" msgstr "Pages par Jour" #. Max/Avg Visits per Day #: output.c:692 msgid "Visits per Day" msgstr "Visites par Jour" #. Max/Avg KBytes per Day #: output.c:698 msgid "KBytes per Day" msgstr "KOctets par Jour" #. ******************************************** #. response code totals #: output.c:704 msgid "Hits by Response Code" msgstr "Hits par code de rponse" #. Daily statistics for ... #: output.c:733 msgid "Daily Statistics for" msgstr "Statistiques journalires pour" #: output.c:737 msgid "Day" msgstr "Jour" #: output.c:818 msgid "Hourly Statistics for" msgstr "Statistiques horaires pour" #: output.c:824 msgid "Hour" msgstr "Heure" #: output.c:929 output.c:933 output.c:1116 output.c:1120 output.c:1320 #: output.c:1416 output.c:1580 output.c:2104 output.c:2362 msgid "Top" msgstr "Top" #: output.c:929 output.c:933 output.c:1116 output.c:1120 output.c:1320 #: output.c:1416 output.c:1580 output.c:2104 output.c:2362 msgid "of" msgstr "sur un total de" #: output.c:930 output.c:933 msgid "Total Sites" msgstr "sites" #: output.c:930 output.c:1117 msgid "By" msgstr "par" #: output.c:946 output.c:1033 output.c:2456 msgid "Hostname" msgstr "Nom d'hte" #: output.c:999 msgid "View All Sites" msgstr "Voir tous les sites" #: output.c:1117 output.c:1120 msgid "Total URLs" msgstr "URLs" #: output.c:1132 output.c:1229 output.c:1235 output.c:1334 output.c:2498 msgid "URL" msgstr "URL" #: output.c:1201 msgid "View All URLs" msgstr "Voir toutes les URLs" #: output.c:1321 msgid "Total Exit Pages" msgstr "pages de sortie" #: output.c:1321 msgid "Total Entry Pages" msgstr "pages d'entre" #: output.c:1416 msgid "Total Referrers" msgstr "rfrents" #: output.c:1426 output.c:1502 output.c:1507 output.c:2538 msgid "Referrer" msgstr "Rfrent" #: output.c:1477 msgid "View All Referrers" msgstr "Voir tous les référents" #: output.c:1580 msgid "Total User Agents" msgstr "navigateurs" #: output.c:1590 output.c:1656 output.c:1661 output.c:2577 msgid "User Agent" msgstr "Navigateur" #: output.c:1631 msgid "View All User Agents" msgstr "Voir tous les navigateurs" #: output.c:1780 #, fuzzy msgid "Can't allocate enough memory, Search engines report disabled!" msgstr "Can't allocate enough memory, Top Search Strings disabled!" #: output.c:1803 #, fuzzy msgid "Can't allocate enough memory, Search engines report will be incomplete!" msgstr "Can't allocate enough memory, Top Search Strings disabled!" #: output.c:1833 #, c-format msgid "%u most used search phrases grouped per search engine" msgstr "Les %u expressions clefs les plus utilises, regroupes par moteur" #: output.c:1840 output.c:1945 output.c:2025 msgid "Key phrases" msgstr "Expression clefs" #: output.c:1841 output.c:1946 output.c:2027 msgid "Nb Times" msgstr "Nb fois" #: output.c:1842 msgid "This engine" msgstr "Ce moteur" #: output.c:1843 msgid "All engines" msgstr "Tous les moteurs" #: output.c:1844 output.c:1946 output.c:2029 msgid "Target URLs" msgstr "URLs cibles" #: output.c:1865 #, c-format msgid "%.0f%% of all requests" msgstr "%.0f%% de toutes les requtes" #: output.c:1867 #, c-format msgid "less than 1%% of all requests" msgstr "moins de 1%% de toutes les requtes" #: output.c:1912 msgid "View all search phrases" msgstr "Voir tous les mots-cls" #: output.c:1941 #, c-format msgid "%.2f%% of all requests" msgstr "%.2f%% de toutes les requtes" #: output.c:1946 output.c:2027 msgid "% This engine" msgstr "% de ce moteur" #: output.c:1946 output.c:2029 #, c-format msgid "% All engines" msgstr "% de tous les moteurs" #: output.c:2025 msgid "Search Engines" msgstr "Mots-cls" #: output.c:2104 msgid "Total Usernames" msgstr "utilisateurs" #: output.c:2117 output.c:2193 output.c:2199 output.c:2617 msgid "Username" msgstr "Utilisateur" #: output.c:2168 msgid "View All Usernames" msgstr "Voir tous les utilisateurs" #: output.c:2346 msgid "Usage by Country for" msgstr "Accs par pays pour" #: output.c:2362 msgid "Total Countries" msgstr "pays" #: output.c:2373 msgid "Country" msgstr "Pays" #. put our anchor tag first... #: output.c:2405 msgid "Top followed paths" msgstr "Chemins les plus suivis" #. put our anchor tag first... #: output.c:2423 msgid "Users flow" msgstr "Flux des utilisateurs" #: output.c:2657 msgid "Generating summary report" msgstr "Generating summary report" #: output.c:2659 msgid "Usage summary for" msgstr "Rsum des accs pour" #: output.c:2690 utils.c:161 utils.c:202 msgid "Error: Unable to open file" msgstr "Error: Unable to open file" #: output.c:2693 msgid "Last 12 Months" msgstr "12 derniers mois" #: output.c:2701 msgid "Summary by Month" msgstr "Rsum par mois" #: output.c:2704 msgid "Month" msgstr "Mois" #: output.c:2706 msgid "Daily Avg" msgstr "Moyenne journalire" #: output.c:2708 msgid "Monthly Totals" msgstr "Totaux mensuels" #: output.c:2765 msgid "Totals" msgstr "Totaux" #: parser.c:182 msgid "Warning: Truncating oversized hostname" msgstr "Warning: Truncating oversized hostname" #: parser.c:214 msgid "Warning: Truncating oversized username" msgstr "Warning: Truncating oversized username" #: parser.c:236 msgid "Warning: Truncating oversized date field" msgstr "Warning: Truncating oversized date field" #: parser.c:261 webdruid.c:877 msgid "Warning: Truncating oversized request field" msgstr "Warning: Truncating oversized request field" #: parser.c:298 webdruid.c:869 msgid "Warning: Truncating oversized referrer field" msgstr "Warning: Truncating oversized referrer field" #: parser.c:343 #, fuzzy msgid "Error: bad record (bad date)" msgstr "Error: Skipping record (bad date)" #: preserve.c:125 #, c-format msgid "" "\n" "WARNING: The Webdruid detected the incremental data file %s which is not " "compatible with this version. It will be ignored.\n" "\n" msgstr "" #: preserve.c:156 msgid "Reading history file..." msgstr "Reading history file..." #: preserve.c:163 msgid "Error: Ignoring invalid history record" msgstr "Error: Ignoring invalid history record" #: preserve.c:188 msgid "History file not found..." msgstr "History file not found..." #: preserve.c:204 msgid "Saving history information..." msgstr "Saving history information..." #: preserve.c:226 msgid "Error: Unable to write history file" msgstr "Error: Unable to write history file" #: preserve.c:259 msgid "Saving current run data..." msgstr "Saving current run data..." #: preserve.c:527 msgid "Previous run data not found..." msgstr "Previous run data not found..." #. Reading previous run data... #: preserve.c:532 msgid "Reading previous run data..." msgstr "Reading previous run data..." #. Error adding URL node, skipping ... #: preserve.c:629 webdruid.c:1127 webdruid.c:1217 msgid "Error adding URL node, skipping" msgstr "Error adding URL node, skipping" #. Error adding host node (monthly), skipping .... #. Error adding Site node, skipping ... #: preserve.c:669 webdruid.c:1103 webdruid.c:1230 webdruid.c:1248 msgid "Error adding host node (monthly), skipping" msgstr "Error adding host node (monthly), skipping" #. Error adding host node (daily), skipping .... #: preserve.c:709 webdruid.c:1093 msgid "Error adding host node (daily), skipping" msgstr "Error adding host node (daily), skipping" #. Error adding Referrer node, skipping ... #: preserve.c:734 webdruid.c:1082 webdruid.c:1261 msgid "Error adding Referrer node, skipping" msgstr "Error adding Referrer node, skipping" #. Error adding User Agent node, skipping ... #: preserve.c:759 webdruid.c:1113 webdruid.c:1272 msgid "Error adding User Agent node, skipping" msgstr "Error adding User Agent node, skipping" #: preserve.c:806 #, c-format msgid "Could not find search engine named %s, dropping...\n" msgstr "" #. Error adding username node, skipping .... #. Error adding ident node, skipping .... #. Error adding Username node, skipping ... #: preserve.c:842 webdruid.c:1137 webdruid.c:1285 msgid "Error adding Username node, skipping" msgstr "Error adding Username node, skipping" #: preserve.c:899 preserve.c:1092 webdruid.c:1200 #, fuzzy msgid "Error adding path node element, skipping" msgstr "Error adding host node (monthly), skipping" #: preserve.c:1160 #, fuzzy msgid "Error adding search node element, skipping" msgstr "Error adding Search String node, skipping" #: sengine.c:343 #, c-format msgid "" "[sengine_search_phrase] Failed to convert search phrase from %s to UTF-8 " "(engine %s): Cannot open iconv handle\n" msgstr "" #. we encountered a multibyte character we cannot handle #: sengine.c:361 #, c-format msgid "Cannot convert search phrase from %s character set.\n" msgstr "" #: sengine.c:362 #, c-format msgid "" "Either the web browser was wrong or this system's default locale doesn't " "reflect this browser default.\n" msgstr "" #: sengine.c:363 #, c-format msgid "You might wish to tweak the current locale.\n" msgstr "" #. sth weird happened #: sengine.c:368 #, c-format msgid "" "[sengine_search_phrase] Failed to convert search phrase from %s to UTF-8 " "(engine %s) :%s\n" msgstr "" #: sengine.c:508 #, fuzzy msgid "Error: Unable to open search engines file" msgstr "Error: Unable to open DNS cache file" #: sengine.c:527 msgid "Error: expected , got" msgstr "" #: sengine.c:566 msgid "Error: too many querytags value, maximum is " msgstr "" #: sengine.c:575 msgid "Error: empy querytags value" msgstr "" #: sengine.c:581 msgid "Error: invalid querytags value, should end with '='" msgstr "" #: sengine.c:599 msgid "Error: invalid charsettag value, should end with '='" msgstr "" #: sengine.c:625 #, fuzzy msgid "Error: invalid host name " msgstr "Error: Ignoring invalid history record" #: sengine.c:638 msgid "Error: invalid line: " msgstr "" #: sengine.c:648 msgid "Error: search engine lacks some config lines: " msgstr "" #: sengine.c:702 #, c-format msgid "Error:Duplicated search engines %s(%s.%s.%s) and %s(%s.%s.%s)\n" msgstr "" #: sengine.c:732 sengine.c:815 msgid "Error: out of memory" msgstr "" #: utils.c:182 #, fuzzy msgid "Error: not a directory! :" msgstr "Error: Can't change directory to" #: utils.c:191 #, c-format msgid "Error: Could not create subdirectory %s in output dir: %s" msgstr "" #: utils.c:339 #, c-format msgid "_2utf8: cannot open iconv handle %s->UTF8: %s\n" msgstr "" #: utils.c:355 #, c-format msgid "_2utf8: cannot convert string %s from %s to UTF8: %s\n" msgstr "" #: utils.c:389 msgid "Error: killed child, timeout elapsed" msgstr "" #. error #: utils.c:399 msgid "Error: could not fork :" msgstr "" #. should never get there #: utils.c:407 msgid "Error: could not exec" msgstr "" #. Error: Can't change directory to ... #: webdruid.c:406 msgid "Error: Can't change directory to" msgstr "Error: Can't change directory to" #. No cache file specified, aborting... #: webdruid.c:418 msgid "No cache file specified, aborting..." msgstr "No cache file specified, aborting..." #. DNS Lookup (#children): #: webdruid.c:430 msgid "DNS Lookup" msgstr "DNS Lookup" #. Using DNS cache file #: webdruid.c:452 msgid "Using DNS cache file" msgstr "Using DNS cache file" #: webdruid.c:461 #, c-format msgid "Loading search engines list..." msgstr "" #: webdruid.c:469 msgid "Could not load shared search engines list, aborting." msgstr "" #: webdruid.c:481 msgid "Could not load local search engines list, aborting." msgstr "" #: webdruid.c:488 msgid "Ok" msgstr "" #: webdruid.c:495 msgid "Creating output in" msgstr "Creating output in" #: webdruid.c:495 msgid "current directory" msgstr "current directory" #. Hostname for reports is ... #: webdruid.c:507 msgid "Hostname for reports is" msgstr "Hostname for reports is" #. get past history #: webdruid.c:510 msgid "Ignoring previous history..." msgstr "Ignoring previous history..." #. Error: Unable to restore run data (error num) #. if (verbose) fprintf(stderr,"%s (%d)\n",_("msg_bad_data"),i); #: webdruid.c:519 msgid "Error: Unable to restore run data" msgstr "Error: Unable to restore run data" #. Can't get memory, Top Countries disabled! #: webdruid.c:528 msgid "Can't allocate enough memory, Top Countries disabled!" msgstr "Can't allocate enough memory, Top Countries disabled!" #: webdruid.c:536 #, c-format msgid "We won't be able execute %s : disabling TopPath & UsersFlow outputs\n" msgstr "" #: webdruid.c:1177 #, c-format msgid "Warning: could not extract search phrase from :\n" msgstr "" #. let's display computation statistics #: webdruid.c:1308 #, c-format msgid "Opened path hash table statistics:\n" msgstr "" #: webdruid.c:1310 #, c-format msgid "" "Global path hash table statistics (before flush from opened path hash " "table):\n" msgstr "" #. Error: Unable to save current run data #: webdruid.c:1319 msgid "Error: Unable to save current run data" msgstr "Error: Unable to save current run data" #: webdruid.c:1348 #, c-format msgid "" "Opened path hash table statistics (after flush to global path hash table):\n" msgstr "" #: webdruid.c:1355 #, c-format msgid "Global path hash table statistics:\n" msgstr "" #: webdruid.c:1362 #, c-format msgid "Users flow hash table statistics:\n" msgstr "" #: webdruid.c:1371 msgid "records" msgstr "records" #: webdruid.c:1374 msgid "ignored" msgstr "ignored" #: webdruid.c:1375 webdruid.c:1378 msgid "bad" msgstr "bad" #. No valid records found... exit with error (1) #: webdruid.c:1403 msgid "No valid records found!" msgstr "No valid records found!" #: webdruid.c:1523 msgid "Error: Unable to open configuration file" msgstr "Error: Unable to open configuration file" #. Invalid keyword #. Disable DNSCache and DNSChildren if DNS is not enabled #: webdruid.c:1552 webdruid.c:1658 msgid "Warning: Invalid keyword" msgstr "Warning: Invalid keyword" #: webdruid.c:1599 #, c-format msgid "" "\n" "WARNING: The keyword 'IncrementalName' is not supported anymore. Your " "current incremental file may be ignored!!.\n" "\n" msgstr "" #: webdruid.c:1602 #, c-format msgid "" "\n" "WARNING: The keyword 'HistoryName' is not supported anymore. Your current " "history file may be ignored!!.\n" "\n" msgstr "" #: webdruid.c:1628 #, c-format msgid "" "\n" "WARNING: The keyword 'SearchEngine' is not supported anymore. Please add " "your search engines to '/etc/webdruid/engines.list' instead. Look at README " "for more information.\n" "\n" msgstr "" #: webdruid.c:1749 msgid "Usage" msgstr "Usage" #: webdruid.c:1749 #, fuzzy msgid "[options] [log file1] [log file2] ..." msgstr "[options] [log file]" #: webdruid.c:2007 #, c-format msgid "--> %u path(s), %.2f%% of hash table used\n" msgstr "" #: webdruid.c:2010 #, c-format msgid "--> %u maximum path count\n" msgstr "" #: webdruid.c:2011 #, c-format msgid "--> %u path with count > 1, for a total of %u equivalent path(s)\n" msgstr "" #: webdruid.c:2015 #, c-format msgid "--> %u maximum element(s) per node\n" msgstr "" #: webdruid.c:2016 #, c-format msgid "--> %.2f average element(s) per not empty nodes\n" msgstr "" #: webdruid.c:2017 #, c-format msgid "--> %d maximum path length\n" msgstr "" #: webdruid.c:2039 #, c-format msgid "Null skin for %s %04d XML document...\n" msgstr "" #: webdruid.c:2053 #, c-format msgid "Applying '%s' skin on %s %04d XML document...\n" msgstr "" #: webdruid.c:2094 #, c-format msgid "Script apply_skin.sh returned %u.\n" msgstr "" #: xml_output.c:116 msgid "Generating shared XML document..." msgstr "" #: xml_output.c:179 #, fuzzy msgid "Generating XML document for" msgstr "Generating report for" #: lang_strings.h:17 msgid "-h = print this help message" msgstr "-h = print this help message" #: lang_strings.h:18 msgid "-v -V = print version information" msgstr "-v -V = print version information" #: lang_strings.h:19 msgid "-d = print additional debug info" msgstr "-d = print additional debug info" #: lang_strings.h:20 #, fuzzy msgid "-F type = Log type. type = (clf | w3c)" msgstr "-F type = Log type. type= (clf | ftp | squid)" #: lang_strings.h:21 msgid "-f = Fold sequence errors" msgstr "-f = fold sequence errors" #: lang_strings.h:22 msgid "-i = ignore history file" msgstr "-i = ignore history file" #: lang_strings.h:23 msgid "-p = preserve state (incremental)" msgstr "-p = preserve state (incremental)" #: lang_strings.h:24 msgid "-q = supress informational messages" msgstr "-q = supress informational messages" #: lang_strings.h:25 msgid "-Q = supress _ALL_ messages" msgstr "-Q = supress _ALL_ messages" #: lang_strings.h:26 msgid "-Y = supress country graph" msgstr "-Y = supress country graph" #: lang_strings.h:27 msgid "-G = supress hourly graph" msgstr "-G = supress hourly graph" #: lang_strings.h:28 msgid "-H = supress hourly stats" msgstr "-H = supress hourly stats" #: lang_strings.h:29 msgid "-L = supress color coded graph legends" msgstr "-L = supress color coded graph legends" #: lang_strings.h:30 msgid "-l num = use num background lines on graph" msgstr "-l num = use num background lines on graph" #: lang_strings.h:31 msgid "-m num = Visit timout value (seconds)" msgstr "-m num = Visit timeout value (seconds)" #: lang_strings.h:32 msgid "-T = print timing information" msgstr "-T = print timing information" #: lang_strings.h:33 msgid "-c file = use configuration file 'file'" msgstr "-c file = use configuration file 'file'" #: lang_strings.h:34 msgid "-n name = hostname to use" msgstr "-n name = hostname to use" #: lang_strings.h:35 msgid "-o dir = output directory to use" msgstr "-o dir = output directory to use" #: lang_strings.h:36 msgid "-t name = report title 'name'" msgstr "-t name = report title 'name'" #: lang_strings.h:37 msgid "-a name = hide user agent 'name'" msgstr "-a name = hide user agent 'name'" #: lang_strings.h:38 msgid "-r name = hide referrer 'name'" msgstr "-r name = hide referrer 'name'" #: lang_strings.h:39 msgid "-s name = hide site 'name'" msgstr "-s name = hide site 'name'" #: lang_strings.h:40 msgid "-u name = hide URL 'name'" msgstr "-u name = hide URL 'name'" #: lang_strings.h:41 msgid "-x name = Use filename extension 'name'" msgstr "-x name = use filename extension 'name'" #: lang_strings.h:42 msgid "-P name = Page type extension 'name'" msgstr "-P name = Page type extension 'name'" #: lang_strings.h:43 msgid "-I name = Index alias 'name'" msgstr "-I name = Index alias 'name'" #: lang_strings.h:44 msgid "-A num = Display num top agents" msgstr "-A num = Display num top agents" #: lang_strings.h:45 msgid "-C num = Display num top countries" msgstr "-C num = Display num top countries" #: lang_strings.h:46 msgid "-R num = Display num top referrers" msgstr "-R num = Display num top referrers" #: lang_strings.h:47 msgid "-S num = Display num top sites" msgstr "-S num = Display num top sites" #: lang_strings.h:48 msgid "-U num = Display num top URLs" msgstr "-U num = Display num top URLs" #: lang_strings.h:49 msgid "-e num = Display num top Entry Pages" msgstr "-e num = Display num top Entry Pages" #: lang_strings.h:50 msgid "-E num = Display num top Exit Pages" msgstr "-E num = Display num top Exit Pages" #: lang_strings.h:51 msgid "-g num = Group Domains to 'num' levels" msgstr "-g num = Group Domains to 'num' levels" #: lang_strings.h:52 msgid "-X = Hide individual sites" msgstr "-X = Hide individual sites" #: lang_strings.h:53 msgid "-D name = Use DNS Cache file 'name'" msgstr "-D name = Use DNS Cache file 'name'" #: lang_strings.h:54 msgid "-N num = Number of DNS processes (0=disable)" msgstr "-N num = Number of DNS processes (0=disable)" #. short month names MUST BE 3 CHARS in size... pad if needed #: lang_strings.h:58 msgid "Jan" msgstr "Jan" #: lang_strings.h:58 msgid "Feb" msgstr "Fev" #: lang_strings.h:58 msgid "Mar" msgstr "Mar" #: lang_strings.h:59 msgid "Apr" msgstr "Avr" #: lang_strings.h:59 lang_strings.h:65 msgid "May" msgstr "Mai" #: lang_strings.h:59 msgid "Jun" msgstr "Juin" #: lang_strings.h:60 msgid "Jul" msgstr "Juil" #: lang_strings.h:60 msgid "Aug" msgstr "Aou" #: lang_strings.h:60 msgid "Sep" msgstr "Sep" #: lang_strings.h:61 msgid "Oct" msgstr "Oct" #: lang_strings.h:61 msgid "Nov" msgstr "Nov" #: lang_strings.h:61 msgid "Dec" msgstr "Dec" #. long month names - can be any length #: lang_strings.h:64 msgid "January" msgstr "Janvier" #: lang_strings.h:64 msgid "February" msgstr "Fvrier" #: lang_strings.h:64 msgid "March" msgstr "Mars" #: lang_strings.h:64 msgid "April" msgstr "Avril" #: lang_strings.h:65 msgid "June" msgstr "Juin" #: lang_strings.h:65 msgid "July" msgstr "Juillet" #: lang_strings.h:65 msgid "August" msgstr "Aot" #: lang_strings.h:66 msgid "September" msgstr "Septembre" #: lang_strings.h:66 msgid "October" msgstr "Octobre" #: lang_strings.h:66 msgid "November" msgstr "Novembre" #: lang_strings.h:66 msgid "December" msgstr "Dcembre" #: lang_strings.h:70 msgid "Undefined response code" msgstr "Undefined response code" #: lang_strings.h:71 msgid "Code 100 - Continue" msgstr "Code 100 - Continue" #: lang_strings.h:72 msgid "Code 101 - Switching Protocols" msgstr "Code 101 - Switching Protocols" #: lang_strings.h:73 msgid "Code 200 - OK" msgstr "Code 200 - OK" #: lang_strings.h:74 msgid "Code 201 - Created" msgstr "Code 201 - Created" #: lang_strings.h:75 msgid "Code 202 - Accepted" msgstr "Code 202 - Accepted" #: lang_strings.h:76 msgid "Code 203 - Non-Authoritative Information" msgstr "Code 203 - Non-Authoritative Information" #: lang_strings.h:77 msgid "Code 204 - No Content" msgstr "Code 204 - No Content" #: lang_strings.h:78 msgid "Code 205 - Reset Content" msgstr "Code 205 - Reset Content" #: lang_strings.h:79 msgid "Code 206 - Partial Content" msgstr "Code 206 - Partial Content" #: lang_strings.h:80 msgid "Code 300 - Multiple Choices" msgstr "Code 300 - Multiple Choices" #: lang_strings.h:81 msgid "Code 301 - Moved Permanently" msgstr "Code 301 - Moved Permanently" #: lang_strings.h:82 msgid "Code 302 - Found" msgstr "Code 302 - Found" #: lang_strings.h:83 msgid "Code 303 - See Other" msgstr "Code 303 - See Other" #: lang_strings.h:84 msgid "Code 304 - Not Modified" msgstr "Code 304 - Not Modified" #: lang_strings.h:85 msgid "Code 305 - Use Proxy" msgstr "Code 305 - Use Proxy" #: lang_strings.h:86 msgid "Code 307 - Moved Temporarily" msgstr "Code 307 - Moved Temporarily" #: lang_strings.h:87 msgid "Code 400 - Bad Request" msgstr "Code 400 - Bad Request" #: lang_strings.h:88 msgid "Code 401 - Unauthorized" msgstr "Code 401 - Unauthorized" #: lang_strings.h:89 msgid "Code 402 - Payment Required" msgstr "Code 402 - Payment Required" #: lang_strings.h:90 msgid "Code 403 - Forbidden" msgstr "Code 403 - Forbidden" #: lang_strings.h:91 msgid "Code 404 - Not Found" msgstr "Code 404 - Not Found" #: lang_strings.h:92 msgid "Code 405 - Method Not Allowed" msgstr "Code 405 - Method Not Allowed" #: lang_strings.h:93 msgid "Code 406 - Not Acceptable" msgstr "Code 406 - Not Acceptable" #: lang_strings.h:94 msgid "Code 407 - Proxy Authentication Required" msgstr "Code 407 - Proxy Authentication Required" #: lang_strings.h:95 msgid "Code 408 - Request Timeout" msgstr "Code 408 - Request Timeout" #: lang_strings.h:96 msgid "Code 409 - Conflict" msgstr "Code 409 - Conflict" #: lang_strings.h:97 msgid "Code 410 - Gone" msgstr "Code 410 - Gone" #: lang_strings.h:98 msgid "Code 411 - Length Required" msgstr "Code 411 - Length Required" #: lang_strings.h:99 msgid "Code 412 - Precondition Failed" msgstr "Code 412 - Precondition Failed" #: lang_strings.h:100 msgid "Code 413 - Request Entity Too Large" msgstr "Code 413 - Request Entity Too Large" #: lang_strings.h:101 msgid "Code 414 - Request-URI Too Long" msgstr "Code 414 - Request-URI Too Long" #: lang_strings.h:102 msgid "Code 415 - Unsupported Media Type" msgstr "Code 415 - Unsupported Media Type" #: lang_strings.h:103 msgid "Code 416 - Requested Range Not Satisfiable" msgstr "Code 416 - Requested Range Not Satisfiable" #: lang_strings.h:104 msgid "Code 417 - Expectation Failed" msgstr "Code 417 - Expectation Failed" #: lang_strings.h:105 msgid "Code 500 - Internal Server Error" msgstr "Code 500 - Internal Server Error" #: lang_strings.h:106 msgid "Code 501 - Not Implemented" msgstr "Code 501 - Not Implemented" #: lang_strings.h:107 msgid "Code 502 - Bad Gateway" msgstr "Code 502 - Bad Gateway" #: lang_strings.h:108 msgid "Code 503 - Service Unavailable" msgstr "Code 503 - Service Unavailable" #: lang_strings.h:109 msgid "Code 504 - Gateway Timeout" msgstr "Code 504 - Gateway Timeout" #: lang_strings.h:110 msgid "Code 505 - HTTP Version Not Supported" msgstr "Code 505 - HTTP Version Not Supported" #: lang_strings.h:118 msgid "Unresolved/Unknown" msgstr "Non-resolu/Inconnu" #: lang_strings.h:119 msgid "US Commercial" msgstr "US Commercial (.com)" #: lang_strings.h:120 msgid "US Educational" msgstr "US Enseignement (.edu)" #: lang_strings.h:121 msgid "US Government" msgstr "US Gouvernement (.gov)" #: lang_strings.h:122 msgid "International (int)" msgstr "International (int)" #: lang_strings.h:123 msgid "US Military" msgstr "US Militaire (.mil)" #: lang_strings.h:124 msgid "Network" msgstr "Network (.net)" #: lang_strings.h:125 msgid "Non-Profit Organization" msgstr "Organisations Non-commerciales (.org)" #: lang_strings.h:126 msgid "Old style Arpanet (arpa)" msgstr "Ancien style Arpanet (arpa)" #: lang_strings.h:127 msgid "Nato field (nato)" msgstr "OTAN (.nato)" #: lang_strings.h:128 msgid "Andorra" msgstr "Andorre" #: lang_strings.h:129 msgid "United Arab Emirates" msgstr "Emirats Arabes Unis" #: lang_strings.h:130 msgid "Afghanistan" msgstr "Afghanistan" #: lang_strings.h:131 msgid "Antigua and Barbuda" msgstr "Antigua et Barbuda" #: lang_strings.h:132 msgid "Anguilla" msgstr "Anguilla" #: lang_strings.h:133 msgid "Albania" msgstr "Albanie" #: lang_strings.h:134 msgid "Armenia" msgstr "Armnie" #: lang_strings.h:135 msgid "Netherlands Antilles" msgstr "Antilles Neerlandaises" #: lang_strings.h:136 msgid "Angola" msgstr "Angola" #: lang_strings.h:137 msgid "Antarctica" msgstr "Antarctique" #: lang_strings.h:138 msgid "Argentina" msgstr "Argentine" #: lang_strings.h:139 msgid "American Samoa" msgstr "Samoa Americaines" #: lang_strings.h:140 msgid "Austria" msgstr "Autriche" #: lang_strings.h:141 msgid "Australia" msgstr "Australie" #: lang_strings.h:142 msgid "Aruba" msgstr "Aruba" #: lang_strings.h:143 msgid "Azerbaijan" msgstr "Azerbaidjan" #: lang_strings.h:144 msgid "Bosnia and Herzegovina" msgstr "Bosnie Herzegovine" #: lang_strings.h:145 msgid "Barbados" msgstr "Barbades" #: lang_strings.h:146 msgid "Bangladesh" msgstr "Bangladesh" #: lang_strings.h:147 msgid "Belgium" msgstr "Belgique" #: lang_strings.h:148 msgid "Burkina Faso" msgstr "Burkina Faso" #: lang_strings.h:149 msgid "Bulgaria" msgstr "Bulgarie" #: lang_strings.h:150 msgid "Bahrain" msgstr "Bahrein" #: lang_strings.h:151 msgid "Burundi" msgstr "Burundi" #: lang_strings.h:152 msgid "Benin" msgstr "Benin" #: lang_strings.h:153 msgid "Bermuda" msgstr "Bermudes" #: lang_strings.h:154 msgid "Brunei Darussalam" msgstr "Brunei Darussalam" #: lang_strings.h:155 msgid "Bolivia" msgstr "Bolivie" #: lang_strings.h:156 msgid "Brazil" msgstr "Bresil" #: lang_strings.h:157 msgid "Bahamas" msgstr "Bahamas" #: lang_strings.h:158 msgid "Bhutan" msgstr "Bhoutan" #: lang_strings.h:159 msgid "Bouvet Island" msgstr "Ile Bouvet" #: lang_strings.h:160 msgid "Botswana" msgstr "Botswana" #: lang_strings.h:161 msgid "Belarus" msgstr "Bielorussie" #: lang_strings.h:162 msgid "Belize" msgstr "Belize" #: lang_strings.h:163 msgid "Canada" msgstr "Canada" #: lang_strings.h:164 msgid "Cocos (Keeling) Islands" msgstr "Iles Cocos (Keeling)" #: lang_strings.h:165 msgid "Central African Republic" msgstr "Rpublique Centrafricaine" #: lang_strings.h:166 msgid "Congo" msgstr "Congo" #: lang_strings.h:167 msgid "Switzerland" msgstr "Suisse" #: lang_strings.h:168 msgid "Cote D'Ivoire (Ivory Coast)" msgstr "Cote D'Ivoire" #: lang_strings.h:169 msgid "Cook Islands" msgstr "Iles Cook" #: lang_strings.h:170 msgid "Chile" msgstr "Chili" #: lang_strings.h:171 msgid "Cameroon" msgstr "Cameroun" #: lang_strings.h:172 msgid "China" msgstr "Chine" #: lang_strings.h:173 msgid "Colombia" msgstr "Colombie" #: lang_strings.h:174 msgid "Costa Rica" msgstr "Costa Rica" #: lang_strings.h:175 msgid "Czechoslovakia (former)" msgstr "Tchecoslovaquie (ancienne)" #: lang_strings.h:176 msgid "Cuba" msgstr "Cuba" #: lang_strings.h:177 msgid "Cape Verde" msgstr "Cap Vert" #: lang_strings.h:178 msgid "Christmas Island" msgstr "Ile Christmas" #: lang_strings.h:179 msgid "Cyprus" msgstr "Chypre" #: lang_strings.h:180 msgid "Czech Republic" msgstr "Rpublique Tcheque" #: lang_strings.h:181 msgid "Germany" msgstr "Allemagne" #: lang_strings.h:182 msgid "Djibouti" msgstr "Djibouti" #: lang_strings.h:183 msgid "Denmark" msgstr "Danemark" #: lang_strings.h:184 msgid "Dominica" msgstr "Dominique" #: lang_strings.h:185 msgid "Dominican Republic" msgstr "Rpublique Dominicaine" #: lang_strings.h:186 msgid "Algeria" msgstr "Algerie" #: lang_strings.h:187 msgid "Ecuador" msgstr "Equateur" #: lang_strings.h:188 msgid "Estonia" msgstr "Estonie" #: lang_strings.h:189 msgid "Egypt" msgstr "Egypte" #: lang_strings.h:190 msgid "Western Sahara" msgstr "Sahara Occidental" #: lang_strings.h:191 msgid "Eritrea" msgstr "Erythree" #: lang_strings.h:192 msgid "Spain" msgstr "Espagne" #: lang_strings.h:193 msgid "Ethiopia" msgstr "Ethiopie" #: lang_strings.h:194 msgid "Finland" msgstr "Finlande" #: lang_strings.h:195 msgid "Fiji" msgstr "Fidji" #: lang_strings.h:196 msgid "Falkland Islands (Malvinas)" msgstr "Iles Falkland (Malouines)" #: lang_strings.h:197 msgid "Micronesia" msgstr "Micronesie" #: lang_strings.h:198 msgid "Faroe Islands" msgstr "Iles Feroes" #: lang_strings.h:199 msgid "France" msgstr "France" #: lang_strings.h:200 msgid "France, Metropolitan" msgstr "France Metropolitaine" #: lang_strings.h:201 msgid "Gabon" msgstr "Gabon" #: lang_strings.h:202 msgid "Great Britain (UK)" msgstr "Grande Bretagne (UK)" #: lang_strings.h:203 msgid "Grenada" msgstr "Grenade" #: lang_strings.h:204 msgid "Georgia" msgstr "Georgie" #: lang_strings.h:205 msgid "French Guiana" msgstr "Guyane Franaise" #: lang_strings.h:206 msgid "Ghana" msgstr "Ghana" #: lang_strings.h:207 msgid "Gibraltar" msgstr "Gibraltar" #: lang_strings.h:208 msgid "Greenland" msgstr "Groenland" #: lang_strings.h:209 msgid "Gambia" msgstr "Gambie" #: lang_strings.h:210 msgid "Guinea" msgstr "Guine" #: lang_strings.h:211 msgid "Guadeloupe" msgstr "Guadeloupe" #: lang_strings.h:212 msgid "Equatorial Guinea" msgstr "Guinee Equatoriale" #: lang_strings.h:213 msgid "Greece" msgstr "Grece" #: lang_strings.h:214 msgid "S. Georgia and S. Sandwich Isls." msgstr "Georgie et Iles Sandwich du Sud" #: lang_strings.h:215 msgid "Guatemala" msgstr "Guatemala" #: lang_strings.h:216 msgid "Guam" msgstr "Guam" #: lang_strings.h:217 msgid "Guinea-Bissau" msgstr "Guine-Bissau" #: lang_strings.h:218 msgid "Guyana" msgstr "Guyane" #: lang_strings.h:219 msgid "Hong Kong" msgstr "Hong Kong" #: lang_strings.h:220 msgid "Heard and McDonald Islands" msgstr "Iles Heard et McDonald" #: lang_strings.h:221 msgid "Honduras" msgstr "Honduras" #: lang_strings.h:222 msgid "Croatia (Hrvatska)" msgstr "Croatie (Hrvatska)" #: lang_strings.h:223 msgid "Haiti" msgstr "Haiti" #: lang_strings.h:224 msgid "Hungary" msgstr "Hongrie" #: lang_strings.h:225 msgid "Indonesia" msgstr "Indonesie" #: lang_strings.h:226 msgid "Ireland" msgstr "Irlande" #: lang_strings.h:227 msgid "Israel" msgstr "Israel" #: lang_strings.h:228 msgid "India" msgstr "Inde" #: lang_strings.h:229 msgid "British Indian Ocean Territory" msgstr "Territ. Britannique Ocean Indien" #: lang_strings.h:230 msgid "Iraq" msgstr "Iraq" #: lang_strings.h:231 msgid "Iran" msgstr "Iran" #: lang_strings.h:232 msgid "Iceland" msgstr "Islande" #: lang_strings.h:233 msgid "Italy" msgstr "Italie" #: lang_strings.h:234 msgid "Jamaica" msgstr "Jamaique" #: lang_strings.h:235 msgid "Jordan" msgstr "Jordanie" #: lang_strings.h:236 msgid "Japan" msgstr "Japon" #: lang_strings.h:237 msgid "Kenya" msgstr "Kenya" #: lang_strings.h:238 msgid "Kyrgyzstan" msgstr "Kirghizistan" #: lang_strings.h:239 msgid "Cambodia" msgstr "Cambodge" #: lang_strings.h:240 msgid "Kiribati" msgstr "Kiribati" #: lang_strings.h:241 msgid "Comoros" msgstr "Comores" #: lang_strings.h:242 msgid "Saint Kitts and Nevis" msgstr "Saint Christophe et Nevis" #: lang_strings.h:243 msgid "Korea (North)" msgstr "Coree (Nord)" #: lang_strings.h:244 msgid "Korea (South)" msgstr "Core (Sud)" #: lang_strings.h:245 msgid "Kuwait" msgstr "Koweit" #: lang_strings.h:246 msgid "Cayman Islands" msgstr "Iles Caimans" #: lang_strings.h:247 msgid "Kazakhstan" msgstr "Kazakhstan" #: lang_strings.h:248 msgid "Laos" msgstr "Laos" #: lang_strings.h:249 msgid "Lebanon" msgstr "Liban" #: lang_strings.h:250 msgid "Saint Lucia" msgstr "Sainte Lucie" #: lang_strings.h:251 msgid "Liechtenstein" msgstr "Liechtenstein" #: lang_strings.h:252 msgid "Sri Lanka" msgstr "Sri Lanka" #: lang_strings.h:253 msgid "Liberia" msgstr "Liberia" #: lang_strings.h:254 msgid "Lesotho" msgstr "Lesotho" #: lang_strings.h:255 msgid "Lithuania" msgstr "Lituanie" #: lang_strings.h:256 msgid "Luxembourg" msgstr "Luxembourg" #: lang_strings.h:257 msgid "Latvia" msgstr "Lettonie (Latvija)" #: lang_strings.h:258 msgid "Libya" msgstr "Libye" #: lang_strings.h:259 msgid "Morocco" msgstr "Maroc" #: lang_strings.h:260 msgid "Monaco" msgstr "Monaco" #: lang_strings.h:261 msgid "Moldova" msgstr "Moldavie" #: lang_strings.h:262 msgid "Madagascar" msgstr "Madagascar" #: lang_strings.h:263 msgid "Marshall Islands" msgstr "Iles Marshall" #: lang_strings.h:264 msgid "Macedonia" msgstr "Macedoine" #: lang_strings.h:265 msgid "Mali" msgstr "Mali" #: lang_strings.h:266 msgid "Myanmar" msgstr "Birmanie (Myanmar)" #: lang_strings.h:267 msgid "Mongolia" msgstr "Mongolie" #: lang_strings.h:268 msgid "Macau" msgstr "Macao" #: lang_strings.h:269 msgid "Northern Mariana Islands" msgstr "Iles Mariannes Nord" #: lang_strings.h:270 msgid "Martinique" msgstr "Martinique" #: lang_strings.h:271 msgid "Mauritania" msgstr "Mauritanie" #: lang_strings.h:272 msgid "Montserrat" msgstr "Montserrat" #: lang_strings.h:273 msgid "Malta" msgstr "Malte" #: lang_strings.h:274 msgid "Mauritius" msgstr "Ile Maurice" #: lang_strings.h:275 msgid "Maldives" msgstr "Maldives" #: lang_strings.h:276 msgid "Malawi" msgstr "Malawi" #: lang_strings.h:277 msgid "Mexico" msgstr "Mexique" #: lang_strings.h:278 msgid "Malaysia" msgstr "Malaisie" #: lang_strings.h:279 msgid "Mozambique" msgstr "Mozambique" #: lang_strings.h:280 msgid "Namibia" msgstr "Namibie" #: lang_strings.h:281 msgid "New Caledonia" msgstr "Nouvelle Caledonie" #: lang_strings.h:282 msgid "Niger" msgstr "Niger" #: lang_strings.h:283 msgid "Norfolk Island" msgstr "Ile Norfolk" #: lang_strings.h:284 msgid "Nigeria" msgstr "Nigeria" #: lang_strings.h:285 msgid "Nicaragua" msgstr "Nicaragua" #: lang_strings.h:286 msgid "Netherlands" msgstr "Pays Bas" #: lang_strings.h:287 msgid "Norway" msgstr "Norvege" #: lang_strings.h:288 msgid "Nepal" msgstr "Nepal" #: lang_strings.h:289 msgid "Nauru" msgstr "Nauru" #: lang_strings.h:290 msgid "Neutral Zone" msgstr "Zone Neutre" #: lang_strings.h:291 msgid "Niue" msgstr "Nioue" #: lang_strings.h:292 msgid "New Zealand (Aotearoa)" msgstr "Nouvelle Zelande (Aotearoa)" #: lang_strings.h:293 msgid "Oman" msgstr "Oman" #: lang_strings.h:294 msgid "Panama" msgstr "Panama" #: lang_strings.h:295 msgid "Peru" msgstr "Prou" #: lang_strings.h:296 msgid "French Polynesia" msgstr "Polynsie Franaise" #: lang_strings.h:297 msgid "Papua New Guinea" msgstr "Papouasie Nouvelle Guinee" #: lang_strings.h:298 msgid "Philippines" msgstr "Philippines" #: lang_strings.h:299 msgid "Pakistan" msgstr "Pakistan" #: lang_strings.h:300 msgid "Poland" msgstr "Pologne" #: lang_strings.h:301 msgid "St. Pierre and Miquelon" msgstr "Saint Pierre et Miquelon" #: lang_strings.h:302 msgid "Pitcairn" msgstr "Pitcairn" #: lang_strings.h:303 msgid "Puerto Rico" msgstr "Porto Rico" #: lang_strings.h:304 msgid "Portugal" msgstr "Portugal" #: lang_strings.h:305 msgid "Palau" msgstr "Palau" #: lang_strings.h:306 msgid "Paraguay" msgstr "Paraguay" #: lang_strings.h:307 msgid "Qatar" msgstr "Qatar" #: lang_strings.h:308 msgid "Reunion" msgstr "Reunion" #: lang_strings.h:309 msgid "Romania" msgstr "Roumanie" #: lang_strings.h:310 msgid "Russian Federation" msgstr "Russie" #: lang_strings.h:311 msgid "Rwanda" msgstr "Rwanda" #: lang_strings.h:312 msgid "Saudi Arabia" msgstr "Arabie Saoudite" #: lang_strings.h:313 msgid "Solomon Islands" msgstr "Iles Salomon" #: lang_strings.h:314 msgid "Seychelles" msgstr "Seychelles" #: lang_strings.h:315 msgid "Sudan" msgstr "Soudan" #: lang_strings.h:316 msgid "Sweden" msgstr "Suede" #: lang_strings.h:317 msgid "Singapore" msgstr "Singapour" #: lang_strings.h:318 msgid "St. Helena" msgstr "Sainte Helene" #: lang_strings.h:319 msgid "Slovenia" msgstr "Slovenie" #: lang_strings.h:320 msgid "Svalbard and Jan Mayen Islands" msgstr "Iles Svalbard et Jan Mayen" #: lang_strings.h:321 msgid "Slovak Republic" msgstr "Slovaquie" #: lang_strings.h:322 msgid "Sierra Leone" msgstr "Sierra Leone" #: lang_strings.h:323 msgid "San Marino" msgstr "Saint Marin" #: lang_strings.h:324 msgid "Senegal" msgstr "Senegal" #: lang_strings.h:325 msgid "Somalia" msgstr "Somalie" #: lang_strings.h:326 msgid "Suriname" msgstr "Suriname" #: lang_strings.h:327 msgid "Sao Tome and Principe" msgstr "Saint Thomas et Prince" #: lang_strings.h:328 msgid "USSR (former)" msgstr "URSS (ancienne)" #: lang_strings.h:329 msgid "El Salvador" msgstr "Salvador" #: lang_strings.h:330 msgid "Syria" msgstr "Syrie" #: lang_strings.h:331 msgid "Swaziland" msgstr "Swaziland" #: lang_strings.h:332 msgid "Turks and Caicos Islands" msgstr "Iles Turks et Caiques" #: lang_strings.h:333 msgid "Chad" msgstr "Tchad" #: lang_strings.h:334 msgid "French Southern Territories" msgstr "Terres Australes Antarctiques Fr" #: lang_strings.h:335 msgid "Togo" msgstr "Togo" #: lang_strings.h:336 msgid "Thailand" msgstr "Thailande" #: lang_strings.h:337 msgid "Tajikistan" msgstr "Tadjikistan" #: lang_strings.h:338 msgid "Tokelau" msgstr "Tokelau" #: lang_strings.h:339 msgid "Turkmenistan" msgstr "Turkmenistan" #: lang_strings.h:340 msgid "Tunisia" msgstr "Tunisie" #: lang_strings.h:341 msgid "Tonga" msgstr "Tonga" #: lang_strings.h:342 msgid "East Timor" msgstr "Timor Oriental" #: lang_strings.h:343 msgid "Turkey" msgstr "Turquie" #: lang_strings.h:344 msgid "Trinidad and Tobago" msgstr "Trinite et Tobago" #: lang_strings.h:345 msgid "Tuvalu" msgstr "Tuvalu" #: lang_strings.h:346 msgid "Taiwan" msgstr "Taiwan" #: lang_strings.h:347 msgid "Tanzania" msgstr "Tanzanie" #: lang_strings.h:348 msgid "Ukraine" msgstr "Ukraine" #: lang_strings.h:349 msgid "Uganda" msgstr "Ouganda" #: lang_strings.h:350 msgid "United Kingdom" msgstr "Royaume-Uni" #: lang_strings.h:351 msgid "US Minor Outlying Islands" msgstr "US Minor Outlying Islands" #: lang_strings.h:352 msgid "United States" msgstr "Etats Unis" #: lang_strings.h:353 msgid "Uruguay" msgstr "Uruguay" #: lang_strings.h:354 msgid "Uzbekistan" msgstr "Ouzbekistan" #: lang_strings.h:355 msgid "Vatican City State (Holy See)" msgstr "Cite du Vatican" #: lang_strings.h:356 msgid "Saint Vincent and the Grenadines" msgstr "Saint Vincent et Grenadines" #: lang_strings.h:357 msgid "Venezuela" msgstr "Venezuela" #: lang_strings.h:358 msgid "Virgin Islands (British)" msgstr "Iles Vierges Britanniques" #: lang_strings.h:359 msgid "Virgin Islands (U.S.)" msgstr "Iles Vierges Americaines" #: lang_strings.h:360 msgid "Viet Nam" msgstr "Vietnam" #: lang_strings.h:361 msgid "Vanuatu" msgstr "Vanuatu" #: lang_strings.h:362 msgid "Wallis and Futuna Islands" msgstr "Iles Wallis et Futuna" #: lang_strings.h:363 msgid "Samoa" msgstr "Samoa Occidentales" #: lang_strings.h:364 msgid "Yemen" msgstr "Yemen" #: lang_strings.h:365 msgid "Mayotte" msgstr "Mayotte" #: lang_strings.h:366 msgid "Yugoslavia" msgstr "Yougoslavie" #: lang_strings.h:367 msgid "South Africa" msgstr "Afrique du Sud" #: lang_strings.h:368 msgid "Zambia" msgstr "Zambie" #: lang_strings.h:369 msgid "Zaire" msgstr "Zaire" #: lang_strings.h:370 msgid "Zimbabwe" msgstr "Zimbabwe" #~ msgid "English" #~ msgstr "French" #~ msgid "Total Search Strings" #~ msgstr "groupes de mots-clés" #~ msgid "Warning: Possible duplicate data found" #~ msgstr "Warning: Possible duplicate data found" webdruid-0.5.4.orig/README.FIRST0000600000000000000000000000570610066113350015763 0ustar rootroot00000000000000Upgrade information for The WebDruid 0.5.3 This document is for people in a hurry, who want to upgrade their system to the latest version of The WebDruid without read the entire manual :-) For the others who want to learn a bit more about what they can do with the webdruid, they should definately read carefully the README file. You must follow instructions in the appropriate sections below. Let's suppose you have release A, and want to upgrade to release C. You must follow steps in 'Upgrading from A to B' AND 'Upgrading from B to C'. * UPGRADING FROM WEBDRUID 0.5.2 TO 0.5.3 Nothing required. * UPGRADING FROM WEBDRUID 0.5.1 TO 0.5.2 Nothing required. * UPGRADING FROM WEBDRUID 0.5.0 TO 0.5.1 The WebDruid 0.5.1 uses True Type fonts to draw its strings on the charts. You should install the FreeType2 font rendering library, and make sure that the gd library is built with FreeType2 support, otherwise compiling the WebDruid will fail. You should also download and install the FreeFonts package in /usr/share/fonts/truetype/freefont/ (See INSTALL for where you can get these fonts). * UPGRADING FROM WEBALIZER 2.01-10 TO WEBDRUID 0.5.0 Important note : if you're trying to upgrade and are using the webalizer for http proxy or ftp calculations, you'd better stick with your current version of the webalizer, as the webdruid doesn't support those formats anymore!! Many things have changed, but don't worry!! Only a miminum pain is required to upgrade: Here is what you need to check (in the order): - Executable names has changed, so that both the webdruid and the webalizer can be installed easily on the same computer. You should check your scripts and replace the executable name. webalizer is now ... guess ..... webdruid ! :o) webazolver is now ... guess ..... webdruid-resolve (OK - this one whas not that easy... ;-) ) - If you're using the default /etc/webalizer.conf, move it to /etc/webdruid/webdruid.conf - The following keywords have been removed : HistoryName and IncrementalName If you did use the HistoryName previously, you should move your history file to the output directory, and rename it 'webalizer.hist' - The search engines support has been completely rewritten. As such the SearchEngine keyword is not used anymore. If you used this keyword, this time you should definately see README. - If you are using incremental mode, the data format for the webdruid 0.5.0 is incompatible with previous versions, so you should re-process from the beginning of the month, or better, switch to this new release at the very beginning of a new month. THE LATTER MEANS THE LAST RECORD PROCESSED BY WEBALIZER MUST BE AS CLOSE TO THE BEGINNING OF THE MONTH AS POSSIBLE. - To take full power of the webdruid, you may consider to install the graphviz package (http://www.graphviz.org). In fact we just use the 'dot' utility. It will allow you to produce nice graphics showing you what people tend to do on your site. webdruid-0.5.4.orig/webdruid.c0000600000000000000000000024773110066113350016174 0ustar rootroot00000000000000/* The WebDruid - a web server log analysis program Copyright (C) 2003-2004 Fabien Chevalier (fabien@juliana-multimedia.com) Original webalizer copyright: Copyright (C) 1997-2001 Bradford L. Barrett (brad@mrunix.net) This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version, and provided that the above copyright and permission notice is included with all distributed copies of this or derived software. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA This software uses the gd graphics library, which is copyright by Quest Protein Database Center, Cold Spring Harbor Labs. Please see the documentation supplied with the library for additional information and license terms, or visit www.boutell.com/gd/ for the most recent version of the library and supporting documentation. */ /*********************************************/ /* STANDARD INCLUDES */ /*********************************************/ #include "config.h" #include #include #include #include #include /* normal stuff */ #include #include #include #include /* ensure getopt */ #ifdef HAVE_GETOPT_H #include #endif /* ensure sys/types */ #ifndef _SYS_TYPES_H #include #endif /* some systems need this */ #ifdef HAVE_MATH_H #include #endif /* SunOS 4.x Fix */ #ifndef CLK_TCK #define CLK_TCK _SC_CLK_TCK #endif #ifdef USE_DNS #include #include #include #ifdef HAVE_DB_185_H #include #else #include #endif /* HAVE_DB_185_H */ #endif /* USE_DNS */ #include "webdruid.h" /* main header */ #include "output.h" /* webalizer compat output */ #include "xml_output.h" /* new XML output */ #include "preserve.h" /* webalizer compat incremental */ #include "sengine.h" /* search engines support */ #include "logs_mgmt.h" /* log files management */ #include "hashtab.h" /* search engines support */ #include "linklist.h" /* generic lists */ #include "utils.h" #include "lang_strings.h" /* define strings in this module */ #ifdef USE_DNS #include "dns_resolv.h" #endif /* internal function prototypes */ static void clear_month(); /* clear monthly stuff */ static char *unescape(char *); /* unescape URL's */ static char from_hex(char); /* convert hex to dec */ static void print_opts(char *); /* print options */ static void print_version(); /* duhh... */ static int isurlchar(unsigned char); /* valid URL char fnc. */ static void get_config(char *); /* Read a config file */ static void save_opt(char **, char *); /* save conf option */ static char *get_domain(char *); /* return domain name */ static void print_path_stats(PNODEPTR *, int); /* devel purpose */ static void del_htabs(); /* delete hash tables */ static int apply_monthly_skin(int year, int month); /* applies skin */ static int apply_summary_skin(); /* applies skin */ /*********************************************/ /* SHARED GLOBAL VARIABLES */ /*********************************************/ int verbose = 2; /* 2=verbose,1=err, 0=none */ int debug_mode = 0; /* debug mode flag */ int time_me = 0; /* timing display flag */ int local_time = 1; /* 1=localtime 0=GMT (UTC) */ int ignore_hist = 0; /* history flag (1=skip) */ int use_xml = 0; /* Try new xml output */ char *skin_name = 0; /* skin to use */ int hourly_graph = 1; /* hourly graph display */ int hourly_stats = 1; /* hourly stats table */ int daily_graph = 1; /* daily graph display */ int daily_stats = 1; /* daily stats table */ int path_graph = 1; /* show path graph */ int path_graph_max_paths = 10; /* path graph max paths */ int users_flow = 1; /* users flow graph */ int users_flow_max_edges = 30; /* users flow max edges */ char *font_face ; /* font face name for gd2 */ int ctry_graph = 1; /* country graph display */ int shade_groups = 1; /* Group shading 0=no 1=yes */ int hlite_groups = 1; /* Group hlite 0=no 1=yes */ int mangle_agent = 0; /* mangle user agents */ int incremental = 0; /* incremental mode 1=yes */ int use_https = 0; /* use 'https://' on URL's */ int visit_timeout= 1800; /* visit timeout (seconds) */ int graph_legend = 1; /* graph legend (1=yes) */ int graph_lines = 2; /* graph lines (0=none) */ int fold_seq_err = 0; /* fold seq err (0=no) */ int log_type = LOG_CLF; /* (0=clf, 1=ftp, 2=squid) */ int group_domains= 0; /* Group domains 0=none */ int hide_sites = 0; /* Hide ind. sites (0=no) */ char *hname = NULL; /* hostname for reports */ char *html_ext = NULL; /* HTML file prefix */ char *dump_ext = NULL; /* Dump file prefix */ char *conf_fname = NULL; /* name of config file */ char *out_dir = NULL; /* output directory */ char *dot_location= NULL ; /* dot exe filename */ char *blank_str = ""; /* blank string */ char *dns_cache = NULL; /* DNS cache file name */ int dns_children = 0; /* DNS children (0=don't do)*/ int ntop_sites = 30; /* top n sites to display */ int ntop_sitesK = 10; /* top n sites (by kbytes) */ int ntop_urls = 30; /* top n url's to display */ int ntop_urlsK = 10; /* top n url's (by kbytes) */ int ntop_entry = 10; /* top n entry url's */ int ntop_exit = 10; /* top n exit url's */ int ntop_refs = 30; /* top n referrers "" */ int ntop_agents = 15; /* top n user agents "" */ int ntop_ctrys = 30; /* top n countries "" */ int ntop_search = 20; /* top n search strings */ int ntop_users = 20; /* top n users to display */ int all_sites = 0; /* List All sites (0=no) */ int all_urls = 0; /* List All URL's (0=no) */ int all_refs = 0; /* List All Referrers */ int all_agents = 0; /* List All User Agents */ int all_search = 0; /* List All Search Strings */ int all_users = 0; /* List All Usernames */ int dump_sites = 0; /* Dump tab delimited sites */ int dump_urls = 0; /* URL's */ int dump_refs = 0; /* Referrers */ int dump_agents = 0; /* User Agents */ int dump_users = 0; /* Usernames */ int dump_search = 0; /* Search strings */ int dump_header = 0; /* Dump header as first rec */ char *dump_path = NULL; /* Path for dump files */ int cur_year=0, cur_month=0, /* year/month/day/hour */ cur_day=0, cur_hour=0, /* tracking variables */ cur_min=0, cur_sec=0; u_long cur_tstamp=0; /* Timestamp... */ u_long rec_tstamp=0; u_long req_tstamp=0; u_long epoch; /* used for timestamp adj. */ int check_dup=0; /* check for dup flag */ double t_xfer=0.0; /* monthly total xfer value */ u_long t_hit=0,t_file=0,t_site=0, /* monthly total vars */ t_url=0,t_ref=0,t_agent=0, t_page=0, t_visit=0, t_user=0; double tm_xfer[31]; /* daily transfer totals */ u_long tm_hit[31], tm_file[31], /* daily total arrays */ tm_site[31], tm_page[31], tm_visit[31]; u_long dt_site; /* daily 'sites' total */ u_long ht_hit=0, mh_hit=0; /* hourly hits totals */ u_long th_hit[24], th_file[24], /* hourly total arrays */ th_page[24]; double th_xfer[24]; int f_day,l_day; /* first/last day vars */ struct utsname system_info; /* system info structure */ u_long ul_bogus =0; /* Dummy counter for groups */ struct log_struct log_rec; /* expanded log storage */ time_t now; /* used by cur_time funct */ struct tm *tp; /* to generate timestamp */ char timestamp[32]; /* for the reports */ char tmp_buf[BUFSIZE]; /* used to temp save above */ CLISTPTR *top_ctrys = NULL; /* Top countries table */ /*********************************************/ /* GLOBAL VARIABLES */ /*********************************************/ char *version = "0.5.4"; /* program version */ char *moddate = "22th June 2004"; /* modification date */ char *copyright = "Copyright (C) 2003-2004 Fabien Chevalier"; const char *optstring = "a:A:c:C:dD:e:E:fF:g:GhHiI:l:Lm:M:n:N:o:pP:qQr:R:s:S:t:Tu:U:vVx:XY"; const char *kwords[]= { "Undefined", /* 0 = undefined keyword 0 */ "OutputDir", /* Output directory 1 */ "LogFile", /* Log file to use for input 2 */ "ReportTitle", /* Title for reports 3 */ "HostName", /* Hostname to use 4 */ "IgnoreHist", /* Ignore history file 5 */ "Quiet", /* Run in quiet mode 6 */ "TimeMe", /* Produce timing results 7 */ "Debug", /* Produce debug information 8 */ "HourlyGraph", /* Hourly stats graph 9 */ "HourlyStats", /* Hourly stats table 10 */ "TopSites", /* Top sites 11 */ "TopURLs", /* Top URL's 12 */ "TopReferrers", /* Top Referrers 13 */ "TopAgents", /* Top User Agents 14 */ "TopCountries", /* Top Countries 15 */ "HideSite", /* Sites to hide 16 */ "HideURL", /* URL's to hide 17 */ "HideReferrer", /* Referrers to hide 18 */ "HideAgent", /* User Agents to hide 19 */ "IndexAlias", /* Aliases for index.html 20 */ "HTMLHead", /* HTML Top1 code 21 */ "HTMLPost", /* HTML Top2 code 22 */ "HTMLTail", /* HTML Tail code 23 */ "MangleAgents", /* Mangle User Agents 24 */ "IgnoreSite", /* Sites to ignore 25 */ "IgnoreURL", /* Url's to ignore 26 */ "IgnoreReferrer", /* Referrers to ignore 27 */ "IgnoreAgent", /* User Agents to ignore 28 */ "ReallyQuiet", /* Dont display ANY messages 29 */ "GMTTime", /* Local or UTC time? 30 */ "GroupURL", /* Group URL's 31 */ "GroupSite", /* Group Sites 32 */ "GroupReferrer", /* Group Referrers 33 */ "GroupAgent", /* Group Agents 34 */ "GroupShading", /* Shade Grouped entries 35 */ "GroupHighlight", /* BOLD Grouped entries 36 */ "Incremental", /* Incremental runs 37 */ "IncrementalName", /* Filename for state data 38 */ "HistoryName", /* Filename for history data 39 */ "HTMLExtension", /* HTML filename extension 40 */ "HTMLPre", /* HTML code at beginning 41 */ "HTMLBody", /* HTML body code 42 */ "HTMLEnd", /* HTML code at end 43 */ "UseHTTPS", /* Use https:// on URL's 44 */ "IncludeSite", /* Sites to always include 45 */ "IncludeURL", /* URL's to always include 46 */ "IncludeReferrer", /* Referrers to include 47 */ "IncludeAgent", /* User Agents to include 48 */ "PageType", /* Page Type (pageview) 49 */ "VisitTimeout", /* Visit timeout (seconds) 50 */ "GraphLegend", /* Graph Legends (yes/no) 51 */ "GraphLines", /* Graph Lines (0=none) 52 */ "FoldSeqErr", /* Fold sequence errors 53 */ "CountryGraph", /* Display ctry graph (0=no) 54 */ "TopKSites", /* Top sites (by KBytes) 55 */ "TopKURLs", /* Top URL's (by KBytes) 56 */ "TopEntry", /* Top Entry Pages 57 */ "TopExit", /* Top Exit Pages 58 */ "TopSearch", /* Top Search Strings 59 */ "LogType", /* Log Type (clf/ftp/squid) 60 */ "SearchEngine", /* SearchEngine strings 61 */ "GroupDomains", /* Group domains (n=level) 62 */ "HideAllSites", /* Hide ind. sites (0=no) 63 */ "AllSites", /* List all sites? 64 */ "AllURLs", /* List all URLs? 65 */ "AllReferrers", /* List all Referrers? 66 */ "AllAgents", /* List all User Agents? 67 */ "AllSearchStr", /* List all Search Strings? 68 */ "AllUsers", /* List all Users? 69 */ "TopUsers", /* Top Usernames to show 70 */ "HideUser", /* Usernames to hide 71 */ "IgnoreUser", /* Usernames to ignore 72 */ "IncludeUser", /* Usernames to include 73 */ "GroupUser", /* Usernames to group 74 */ "DumpPath", /* Path for dump files 75 */ "DumpExtension", /* Dump filename extension 76 */ "DumpHeader", /* Dump header as first rec? 77 */ "DumpSites", /* Dump sites tab file 78 */ "DumpURLs", /* Dump urls tab file 79 */ "DumpReferrers", /* Dump referrers tab file 80 */ "DumpAgents", /* Dump user agents tab file 81 */ "DumpUsers", /* Dump usernames tab file 82 */ "DumpSearchStr", /* Dump search str tab file 83 */ "DNSCache", /* DNS Cache file name 84 */ "DNSChildren", /* DNS Children (0=no DNS) 85 */ "DailyGraph", /* Daily Graph (0=no) 86 */ "DailyStats", /* Daily Stats (0=no) 87 */ "PathGraph", /* show path graph 88 */ "PathGraphMaxPaths", /* obvious 89 */ "UsersFlow", /* show users flow graph 90 */ "UsersFlowMaxEdges", /* obvious 91 */ "Skin", /* Skin to use 92 */ "XMLOutput", /* try new XML backend 93 */ "DotLocation", /* dot exe filename 94 */ "FontFace" /* font face name for gd2 95 */ }; /*********************************************/ /* MAIN - start here */ /*********************************************/ int main(int argc, char *argv[]) { int i; /* generic counter */ char *cp1, *cp2, *cp3, *str; /* generic char pointers */ NLISTPTR lptr; /* generic list pointer */ extern char *optarg; /* used for command line */ extern int optind; /* parsing routine 'getopt' */ extern int opterr; time_t start_time, end_time; /* program timers */ float temp_time; /* temporary time storage */ struct tms mytms; /* bogus tms structure */ int good_rec =0; /* 1 if we had a good record */ int max_ctry; /* max countries defined */ char * current_locale; /* en_US, ...or something else */ int one_true_file; /* Keep in mind if we will process one true file (e.g. not STDIN) */ current_locale = setlocale (LC_ALL, ""); bindtextdomain ("webdruid", LOCALEDIR); textdomain ("webdruid"); /* set sensible default font path if not set */ if(getenv("GDFONTPATH") == 0) setenv("GDFONTPATH", "/usr/share/fonts/truetype/freefont:/usr/share/fonts/truetype:/usr/share/fonts/freefont", 1); /* We choose default font face for gd2 (charts + dot graphs): FreeSerif */ save_opt(&font_face, "FreeSerif"); /* initalize epoch */ epoch=jdate(1,1,1970); /* used for timestamp adj. */ /* add default index. alias */ add_nlist("index.",&index_alias); /* set default skin name */ save_opt(&skin_name, "classic"); /* set default dot location */ save_opt(&dot_location, "/usr/bin/dot"); sprintf(tmp_buf,"%s/webdruid/webdruid.conf", SYSCONFDIR); /* check for default config file */ if (!access("webdruid.conf", R_OK)) get_config("webdruid.conf"); /* if not any try to read global file */ else if (!access(tmp_buf, R_OK)) get_config(tmp_buf); /* get command line options */ opterr = 0; /* disable parser errors */ /* We must deal with the -c option first (Debian bug #240931) */ while ((i = getopt(argc, argv, optstring)) != -1) { if(i == 'c') /* Config file */ get_config(optarg); } optind = 0; /* we need to reinit the options index counter */ while ((i = getopt(argc, argv, optstring)) != -1) { switch (i) { case 'a': add_nlist(optarg,&hidden_agents); break; /* Hide agents */ case 'A': ntop_agents=atoi(optarg); break; /* Top agents */ case 'c': /* Treated above, do nothing */ break; /* Config file */ case 'C': ntop_ctrys=atoi(optarg); break; /* Top countries */ case 'd': debug_mode=1; break; /* Debug */ case 'D': save_opt(&dns_cache, optarg); break; /* DNS Cache filename */ case 'e': ntop_entry=atoi(optarg); break; /* Top entry pages */ case 'E': ntop_exit=atoi(optarg); break; /* Top exit pages */ case 'f': fold_seq_err=1; break; /* Fold sequence errs */ case 'F': log_type=(optarg[0]=='w')? LOG_W3C:LOG_CLF; break; /* LogType */ case 'g': group_domains=atoi(optarg); break; /* GroupDomains (0=no) */ case 'G': hourly_graph=0; break; /* no hourly graph */ case 'h': print_opts(argv[0]); break; /* help */ case 'H': hourly_stats=0; break; /* no hourly stats */ case 'i': ignore_hist=1; break; /* Ignore history */ case 'I': add_nlist(optarg,&index_alias); break; /* Index alias */ case 'l': graph_lines=atoi(optarg); break; /* Graph Lines */ case 'L': graph_legend=0; break; /* Graph Legends */ case 'm': visit_timeout=atoi(optarg); break; /* Visit Timeout */ case 'M': mangle_agent=atoi(optarg); break; /* mangle user agents */ case 'n': save_opt(&hname, optarg); break; /* Hostname */ case 'N': dns_children=atoi(optarg); break; /* # of DNS children */ case 'o': save_opt(&out_dir, optarg); break; /* Output directory */ case 'p': incremental=1; break; /* Incremental run */ case 'P': add_nlist(optarg,&page_type); break; /* page view types */ case 'q': verbose=1; break; /* Quiet (verbose=1) */ case 'Q': verbose=0; break; /* Really Quiet */ case 'r': add_nlist(optarg,&hidden_refs); break; /* Hide referrer */ case 'R': ntop_refs=atoi(optarg); break; /* Top referrers */ case 's': add_nlist(optarg,&hidden_sites); break; /* Hide site */ case 'S': ntop_sites=atoi(optarg); break; /* Top sites */ case 't': save_opt(&msg_title, optarg); break; /* Report title */ case 'T': time_me=1; break; /* TimeMe */ case 'u': add_nlist(optarg,&hidden_urls); break; /* hide URL */ case 'U': ntop_urls=atoi(optarg); break; /* Top urls */ case 'v': case 'V': print_version(); clean_exit(0); break; /* Version */ case 'x': save_opt(&html_ext, optarg); break; /* HTML file extension */ case 'X': hide_sites=1; break; /* Hide ind. sites */ case 'Y': ctry_graph=0; break; /* Supress ctry graph */ } } /* Be polite and announce yourself... */ if (verbose > 1) { print_version(); } /* Set default parameters if needed */ if(html_ext == NULL) save_opt(&html_ext, "html"); if(dump_ext == NULL) save_opt(&dump_ext, "tab"); /* Adding log files */ one_true_file = (logs_nr_files() > 0); /* There is at least one valid LogFile directive in config file */ for(i = optind; i < argc; i++) { if(argv[i][0] == '-') logs_add_stdin(); else if(logs_add_file(argv[i]) != 0) clean_exit(1); else one_true_file = 1; /* We will deal with at least one != STDIN file */ } if(logs_nr_files() == 0) logs_add_stdin(); /* At least add STDIN */ /* setup our internal variables */ init_counters(); /* initalize main counters */ if (page_type==NULL) /* check if page types present */ { add_nlist("htm*" ,&page_type); /* if no page types specified, we */ add_nlist("php*" ,&page_type); /* use the default ones here... */ add_nlist("cgi" ,&page_type); if (!isinlist(page_type,html_ext)) add_nlist(html_ext,&page_type); } for (max_ctry=0;ctry[max_ctry].desc;max_ctry++); if (ntop_ctrys > max_ctry) ntop_ctrys = max_ctry; /* force upper limit */ if (graph_lines> 20) graph_lines= 20; /* keep graphs sane! */ /* ensure entry/exits don't exceed urls */ i=(ntop_urls>ntop_urlsK)?ntop_urls:ntop_urlsK; if (ntop_entry>i) ntop_entry=i; if (ntop_exit>i) ntop_exit=i; for (i=0;i MAXCHILD) dns_children=MAXCHILD; /* DNS Lookup (#children): */ if (verbose>1) printf("%s (%d): ",_("DNS Lookup"),dns_children); fflush(stdout); /* let's to lookups for log records */ dns_resolver(); if(one_true_file == 0) clean_exit(0); /* exit if the only file we ran on was stdin */ } if (strstr(argv[0],"webdruid-resolve")!=0) { clean_exit(0); /* webdruid-resolve exits here */ } if (dns_cache) { if (!open_cache()) { dns_cache=NULL; dns_db=NULL; } else { /* Using DNS cache file */ if (verbose>1) printf("%s %s\n",_("Using DNS cache file"),dns_cache); } } #endif /* USE_DNS */ /* let's load engines databases if needed */ if(ntop_search > 0) { if ( verbose > 1 ) { printf(_("Loading search engines list...")); fflush(stdout); } if(sengine_parse(WEBDRUIDDATADIR ENGINES_FNAME) != 0) { if ( verbose > 1 ) { printf("%s\n",_("Could not load shared search engines list, aborting.")); } clean_exit(1); } /* Try to load local engines list */ if(access(SYSCONFDIR "/webdruid/" ENGINES_FNAME, R_OK) == 0) { if(sengine_parse(SYSCONFDIR "/webdruid/" ENGINES_FNAME) != 0) { if ( verbose > 1 ) { printf("%s\n",_("Could not load local search engines list, aborting.")); } clean_exit(1); } } if ( verbose > 1 ) printf("%s\n", _("Ok")); sp_table = sengine_make_table(); } /* Creating output in ... */ if (verbose>1) printf("%s %s\n",_("Creating output in"),out_dir?out_dir:_("current directory")); /* prep hostname */ if (!hname) { if (uname(&system_info)) save_opt(&hname, "localhost"); else save_opt(&hname, system_info.nodename); } /* Hostname for reports is ... */ if (verbose>1) printf("%s '%s'\n",_("Hostname for reports is"),hname); /* get past history */ if (ignore_hist) {if (verbose>1) printf("%s\n",_("Ignoring previous history...")); } else get_history(); if (incremental) /* incremental processing? */ { if ((i=restore_state())) /* restore internal data structs */ { /* Error: Unable to restore run data (error num) */ /* if (verbose) fprintf(stderr,"%s (%d)\n",_("msg_bad_data"),i); */ fprintf(stderr,"%s (%d)\n",_("Error: Unable to restore run data"),i); clean_exit(1); } } /* Allocate memory for our TOP countries array */ if (ntop_ctrys != 0) { if ( (top_ctrys=calloc(ntop_ctrys,sizeof(CLISTPTR))) == NULL) /* Can't get memory, Top Countries disabled! */ {if (verbose) fprintf(stderr,"%s\n",_("Can't allocate enough memory, Top Countries disabled!")); ntop_ctrys=0;}} /* check for dot executable if needed */ if((path_graph != 0) || (users_flow != 0)) { if(access(dot_location, X_OK) != 0) { if(verbose) fprintf(stderr, _("We won't be able execute %s : disabling TopPath & UsersFlow outputs\n"), dot_location); path_graph = 0; users_flow = 0; } } start_time = times(&mytms); /*********************************************/ /* MAIN PROCESS LOOP - read through log file */ /*********************************************/ while (logs_next_record(&log_rec) == 0) { { /*********************************************/ /* GOOD RECORD, CHECK INCREMENTAL/TIMESTAMPS */ /*********************************************/ /* Flag as a good one */ good_rec = 1; /* get current records timestamp (seconds since epoch) */ req_tstamp=cur_tstamp; rec_tstamp=((jdate(log_rec.day,log_rec.month,log_rec.year)-epoch)*86400)+ (log_rec.hour*3600)+(log_rec.min*60)+log_rec.sec; /* Do we need to check for duplicate records? (incremental mode) */ if (check_dup) { /* check if less than/equal to last record processed */ if ( rec_tstamp <= cur_tstamp ) { /* if it is, assume we have already processed and ignore it */ total_ignore++; continue; } else { /* if it isn't.. disable any more checks this run */ check_dup=0; /* now check if it's a new month */ if (cur_month != log_rec.month) { flush_ophtab(0); /* flush all open path */ clear_month(); cur_sec = log_rec.sec; /* set current counters */ cur_min = log_rec.min; cur_hour = log_rec.hour; cur_day = log_rec.day; cur_month = log_rec.month; cur_year = log_rec.year; cur_tstamp = rec_tstamp; f_day = l_day = log_rec.day; /* reset first and last day */ } } } /* check for out of sequence records */ if (rec_tstamp/3600 < cur_tstamp/3600) { if (!fold_seq_err && ((rec_tstamp+SLOP_VAL)/3600='A') && (*cp1<='Z')) *cp1 += 'a'-'A'; cp1++; } } /* strip query portion of cgi scripts */ cp1 = log_rec.url; while (*cp1 != '\0') if (!isurlchar(*cp1)) { *cp1 = '\0'; break; } else cp1++; if (log_rec.url[0]=='\0') { log_rec.url[0]='/'; log_rec.url[1]='\0'; } /* strip off index.html (or any aliases) */ lptr=index_alias; while (lptr!=NULL) { if ((cp1=strstr(log_rec.url,lptr->string))!=NULL) { if ((cp1==log_rec.url)||(*(cp1-1)=='/')) { *cp1='\0'; if (log_rec.url[0]=='\0') { log_rec.url[0]='/'; log_rec.url[1]='\0'; } break; } } lptr=lptr->next; } /* unescape referrer */ unescape(log_rec.refer); /* fix referrer field */ cp1 = log_rec.refer; cp3 = cp2 = cp1++; if ( (*cp2 != '\0') && (*cp2 == '"') ) { while ( *cp1 != '\0' ) { cp3=cp2; if ((*cp1<32&&*cp1>0) || *cp1==127 || *cp1=='<') *cp1=0; else *cp2++=*cp1++; } *cp3 = '\0'; } /* strip query portion of cgi referrals */ cp1 = log_rec.refer; if (*cp1 != '\0') { while (*cp1 != '\0') { if (!isurlchar(*cp1)) { /* Save query portion in log.rec.srchstr */ strncpy(log_rec.srchstr,cp1,MAXSRCH); *cp1++='\0'; break; } else cp1++; } /* handle null referrer */ if (log_rec.refer[0]=='\0') { log_rec.refer[0]='-'; log_rec.refer[1]='\0'; } } /* if HTTP request, lowercase http://sitename/ portion */ cp1 = log_rec.refer; if ( (*cp1=='h') || (*cp1=='H')) { while ( (*cp1!='/') && (*cp1!='\0')) { if ( (*cp1>='A') && (*cp1<='Z')) *cp1 += 'a'-'A'; cp1++; } /* now do hostname */ if ( (*cp1=='/') && ( *(cp1+1)=='/')) {cp1++; cp1++;} while ( (*cp1!='/') && (*cp1!='\0')) { if ( (*cp1>='A') && (*cp1<='Z')) *cp1 += 'a'-'A'; cp1++; } } /* Do we need to mangle? */ if (mangle_agent) { str=cp2=log_rec.agent; cp1=strstr(str,"ompatible"); /* check known fakers */ if (cp1!=NULL) { while (*cp1!=';'&&*cp1!='\0') cp1++; /* kludge for Mozilla/3.01 (compatible;) */ if (*cp1++==';' && strcmp(cp1,")\"")) { /* success! */ /* Opera can hide as MSIE */ cp3=strstr(str,"Opera"); if (cp3!=NULL) { while (*cp3!='.'&&*cp3!='\0') { if(*cp3=='/') *cp2++=' '; else *cp2++=*cp3; cp3++; } cp1=cp3; } else { while (*cp1 == ' ') cp1++; /* eat spaces */ while (*cp1!='.'&&*cp1!='\0'&&*cp1!=';') *cp2++=*cp1++; } if (mangle_agent<5) { while (*cp1!='.'&&*cp1!=';'&&*cp1!='\0') *cp2++=*cp1++; if (*cp1!=';'&&*cp1!='\0') { *cp2++=*cp1++; *cp2++=*cp1++; } } if (mangle_agent<4) if (*cp1>='0'&&*cp1<='9') *cp2++=*cp1++; if (mangle_agent<3) while (*cp1!=';'&&*cp1!='\0'&&*cp1!='('&&*cp1!=' ') *cp2++=*cp1++; if (mangle_agent<2) { /* Level 1 - try to get OS */ cp1=strstr(str,")"); if (cp1!=NULL) { *cp2++=' '; *cp2++='('; while (*cp1!=';'&&*cp1!='('&&cp1!=str) cp1--; if (cp1!=str&&*cp1!='\0') cp1++; while (*cp1==' '&&*cp1!='\0') cp1++; while (*cp1!=')'&&*cp1!='\0') *cp2++=*cp1++; *cp2++=')'; } } *cp2='\0'; } else { /* nothing after "compatible", should we mangle? */ /* not for now */ } } else { cp1=strstr(str,"Opera"); /* Opera flavor */ if (cp1!=NULL) { while (*cp1!='/'&&*cp1!=' '&&*cp1!='\0') *cp2++=*cp1++; while (*cp1!='.'&&*cp1!='\0') { if(*cp1=='/') *cp2++=' '; else *cp2++=*cp1; cp1++; } if (mangle_agent<5) { while (*cp1!='.'&&*cp1!='\0') *cp2++=*cp1++; *cp2++=*cp1++; *cp2++=*cp1++; } if (mangle_agent<4) if (*cp1>='0'&&*cp1<='9') *cp2++=*cp1++; if (mangle_agent<3) while (*cp1!=' '&&*cp1!='\0'&&*cp1!='(') *cp2++=*cp1++; if (mangle_agent<2) { cp1=strstr(str,"("); if (cp1!=NULL) { cp1++; *cp2++=' '; *cp2++='('; while (*cp1!=';'&&*cp1!=')'&&*cp1!='\0') *cp2++=*cp1++; *cp2++=')'; } } *cp2='\0'; } else { cp1=strstr(str,"Mozilla"); /* Netscape flavor */ if (cp1!=NULL) { while (*cp1!='/'&&*cp1!=' '&&*cp1!='\0') *cp2++=*cp1++; if (*cp1==' ') *cp1='/'; while (*cp1!='.'&&*cp1!='\0') *cp2++=*cp1++; if (mangle_agent<5) { while (*cp1!='.'&&*cp1!='\0') *cp2++=*cp1++; *cp2++=*cp1++; *cp2++=*cp1++; } if (mangle_agent<4) if (*cp1>='0'&&*cp1<='9') *cp2++=*cp1++; if (mangle_agent<3) while (*cp1!=' '&&*cp1!='\0'&&*cp1!='(') *cp2++=*cp1++; if (mangle_agent<2) { /* Level 1 - Try to get OS */ cp1=strstr(str,"("); if (cp1!=NULL) { cp1++; *cp2++=' '; *cp2++='('; while (*cp1!=';'&&*cp1!=')'&&*cp1!='\0') *cp2++=*cp1++; *cp2++=')'; } } *cp2='\0'; } } } } /* if necessary, shrink referrer to fit storage */ if (strlen(log_rec.refer)>=MAXREFH) { if (verbose) fprintf(stderr,"%s [%lu]\n", _("Warning: Truncating oversized referrer field"),total_rec); log_rec.refer[MAXREFH-1]='\0'; } /* if necessary, shrink URL to fit storage */ if (strlen(log_rec.url)>=MAXURLH) { if (verbose) fprintf(stderr,"%s [%lu]\n", _("Warning: Truncating oversized request field"),total_rec); log_rec.url[MAXURLH-1]='\0'; } /* fix user agent field */ cp1 = log_rec.agent; cp3 = cp2 = cp1++; if ( (*cp2 != '\0') && ((*cp2 == '"')||(*cp2 == '(')) ) { while (*cp1 |= '\0') { cp3 = cp2; *cp2++ = *cp1++; } *cp3 = '\0'; } cp1 = log_rec.agent; /* CHANGE !!! */ while (*cp1 != 0) /* get rid of more common _bad_ chars ;) */ { if ( (*cp1 < 32) || (*cp1==127) || (*cp1=='<') || (*cp1=='>') ) { *cp1='\0'; break; } else cp1++; } /* fix username if needed */ if (log_rec.ident[0]==0) { log_rec.ident[0]='-'; log_rec.ident[1]='\0'; } else { cp3=log_rec.ident; while (*cp3>=32 && *cp3!='"') cp3++; *cp3='\0'; } /* unescape user name */ unescape(log_rec.ident); /********************************************/ /* PROCESS RECORD */ /********************************************/ /* first time through? */ if (cur_month == 0) { /* if yes, init our date vars */ cur_month = log_rec.month; cur_year = log_rec.year; cur_day = log_rec.day; cur_hour = log_rec.hour; cur_min = log_rec.min; cur_sec = log_rec.sec; f_day = log_rec.day; } /* adjust last day processed if different */ if (log_rec.day > l_day) l_day = log_rec.day; /* update min/sec stuff */ if (cur_sec != log_rec.sec) cur_sec = log_rec.sec; if (cur_min != log_rec.min) cur_min = log_rec.min; /* check for hour change */ if (cur_hour != log_rec.hour) { /* if yes, init hourly stuff */ if (ht_hit > mh_hit) mh_hit = ht_hit; ht_hit = 0; cur_hour = log_rec.hour; } /* check for day change */ if (cur_day != log_rec.day) { /* if yes, init daily stuff */ tm_site[cur_day-1]=dt_site; dt_site=0; tm_visit[cur_day-1]=tot_visit(sd_htab); del_hlist(sd_htab); cur_day = log_rec.day; } /* check for month change */ if (cur_month != log_rec.month) { /* if yes, do monthly stuff */ t_visit=tot_visit(sm_htab); flush_ophtab(0); /* flush all open path */ month_update_exit(req_tstamp); /* process exit pages */ if(use_xml) write_month_xml(); /* generate XML for month */ write_month_html(); /* generate HTML for month */ if(use_xml) { write_history_xml(); /* TODO: Drop This one... */ if(apply_monthly_skin(cur_year, cur_month)) /* TODO: Drop This one... */ { printf("Skin failed, aborting...\n"); clean_exit(1); } } clear_month(); cur_month = log_rec.month; /* update our flags */ cur_year = log_rec.year; f_day = l_day = log_rec.day; } #ifdef USE_DNS /* Resolve IP address if needed */ if (dns_db) { #ifdef USE_IPV6 struct addrinfo hints, *ares; memset(&hints, 0, sizeof(hints)); hints.ai_family = AF_UNSPEC; hints.ai_socktype = SOCK_STREAM; hints.ai_flags = AI_NUMERICHOST; if (0 == getaddrinfo(log_rec.hostname, "0", &hints, &ares)) { freeaddrinfo(ares); resolve_dns(&log_rec); } #else if (inet_addr(log_rec.hostname) != INADDR_NONE) resolve_dns(&log_rec); #endif } #endif /* lowercase hostname */ cp1 = log_rec.hostname; while (*cp1 != '\0') { if ( (*cp1>='A') && (*cp1<='Z') ) *cp1 += 'a'-'A'; if ( (isalnum((int)*cp1))||(*cp1=='.')||(*cp1=='-') ) cp1++; else *cp1='\0'; } /* Catch blank hostnames here */ if (log_rec.hostname[0]=='\0') strncpy(log_rec.hostname,"Unknown",8); /* Ignore/Include check */ if ( (isinlist(include_sites,log_rec.hostname)==NULL) && (isinlist(include_urls,log_rec.url)==NULL) && (isinlist(include_refs,log_rec.refer)==NULL) && (isinlist(include_agents,log_rec.agent)==NULL) && (isinlist(include_users,log_rec.ident)==NULL) ) { if (isinlist(ignored_sites,log_rec.hostname)!=NULL) { total_ignore++; continue; } if (isinlist(ignored_urls,log_rec.url)!=NULL) { total_ignore++; continue; } if (isinlist(ignored_agents,log_rec.agent)!=NULL) { total_ignore++; continue; } if (isinlist(ignored_refs,log_rec.refer)!=NULL) { total_ignore++; continue; } if (isinlist(ignored_users,log_rec.ident)!=NULL) { total_ignore++; continue; } } /* Bump response code totals */ switch (log_rec.resp_code) { case RC_CONTINUE: i=IDX_CONTINUE; break; case RC_SWITCHPROTO: i=IDX_SWITCHPROTO; break; case RC_OK: i=IDX_OK; break; case RC_CREATED: i=IDX_CREATED; break; case RC_ACCEPTED: i=IDX_ACCEPTED; break; case RC_NONAUTHINFO: i=IDX_NONAUTHINFO; break; case RC_NOCONTENT: i=IDX_NOCONTENT; break; case RC_RESETCONTENT: i=IDX_RESETCONTENT; break; case RC_PARTIALCONTENT: i=IDX_PARTIALCONTENT; break; case RC_MULTIPLECHOICES: i=IDX_MULTIPLECHOICES; break; case RC_MOVEDPERM: i=IDX_MOVEDPERM; break; case RC_MOVEDTEMP: i=IDX_MOVEDTEMP; break; case RC_SEEOTHER: i=IDX_SEEOTHER; break; case RC_NOMOD: i=IDX_NOMOD; break; case RC_USEPROXY: i=IDX_USEPROXY; break; case RC_MOVEDTEMPORARILY: i=IDX_MOVEDTEMPORARILY; break; case RC_BAD: i=IDX_BAD; break; case RC_UNAUTH: i=IDX_UNAUTH; break; case RC_PAYMENTREQ: i=IDX_PAYMENTREQ; break; case RC_FORBIDDEN: i=IDX_FORBIDDEN; break; case RC_NOTFOUND: i=IDX_NOTFOUND; break; case RC_METHODNOTALLOWED: i=IDX_METHODNOTALLOWED; break; case RC_NOTACCEPTABLE: i=IDX_NOTACCEPTABLE; break; case RC_PROXYAUTHREQ: i=IDX_PROXYAUTHREQ; break; case RC_TIMEOUT: i=IDX_TIMEOUT; break; case RC_CONFLICT: i=IDX_CONFLICT; break; case RC_GONE: i=IDX_GONE; break; case RC_LENGTHREQ: i=IDX_LENGTHREQ; break; case RC_PREFAILED: i=IDX_PREFAILED; break; case RC_REQENTTOOLARGE: i=IDX_REQENTTOOLARGE; break; case RC_REQURITOOLARGE: i=IDX_REQURITOOLARGE; break; case RC_UNSUPMEDIATYPE: i=IDX_UNSUPMEDIATYPE; break; case RC_RNGNOTSATISFIABLE:i=IDX_RNGNOTSATISFIABLE;break; case RC_EXPECTATIONFAILED:i=IDX_EXPECTATIONFAILED;break; case RC_SERVERERR: i=IDX_SERVERERR; break; case RC_NOTIMPLEMENTED: i=IDX_NOTIMPLEMENTED; break; case RC_BADGATEWAY: i=IDX_BADGATEWAY; break; case RC_UNAVAIL: i=IDX_UNAVAIL; break; case RC_GATEWAYTIMEOUT: i=IDX_GATEWAYTIMEOUT; break; case RC_BADHTTPVER: i=IDX_BADHTTPVER; break; default: i=IDX_UNDEFINED; break; } response[i].count++; /* now save in the various hash tables... */ if (log_rec.resp_code==RC_OK || log_rec.resp_code==RC_PARTIALCONTENT) i=1; else i=0; /* referrer hash table */ if (ntop_refs) { if (log_rec.refer[0]!='\0') if (put_rnode(log_rec.refer,OBJ_REG,(u_long)1,&t_ref,rm_htab)) { if (verbose) fprintf(stderr,"%s %s\n", _("Error adding Referrer node, skipping"), log_rec.refer); } } /* hostname (site) hash table - daily */ if (put_hnode(log_rec.hostname,OBJ_REG, 1,(u_long)i,log_rec.xfer_size,&dt_site, 0,rec_tstamp,"",sd_htab)) { if (verbose) /* Error adding host node (daily), skipping .... */ fprintf(stderr,"%s %s\n",_("Error adding host node (daily), skipping"), log_rec.hostname); } /* hostname (site) hash table - monthly */ if (put_hnode(log_rec.hostname,OBJ_REG, 1,(u_long)i,log_rec.xfer_size,&t_site, 0,rec_tstamp,"",sm_htab)) { if (verbose) /* Error adding host node (monthly), skipping .... */ fprintf(stderr,"%s %s\n", _("Error adding host node (monthly), skipping"), log_rec.hostname); } /* user agent hash table */ if (ntop_agents) { if (log_rec.agent[0]!='\0') if (put_anode(log_rec.agent,OBJ_REG,(u_long)1,&t_agent,am_htab)) { if (verbose) fprintf(stderr,"%s %s\n", _("Error adding User Agent node, skipping"), log_rec.agent); } } /* URL/ident hash table (only if valid response code) */ if ((log_rec.resp_code==RC_OK)||(log_rec.resp_code==RC_NOMOD)|| (log_rec.resp_code==RC_PARTIALCONTENT)) { /* URL hash table */ if (put_unode(log_rec.url,OBJ_REG,(u_long)1, log_rec.xfer_size,&t_url,(u_long)0,(u_long)0,um_htab)) { if (verbose) /* Error adding URL node, skipping ... */ fprintf(stderr,"%s %s\n", _("Error adding URL node, skipping"), log_rec.url); } /* ident (username) hash table */ if (put_inode(log_rec.ident,OBJ_REG, 1,(u_long)i,log_rec.xfer_size,&t_user, 0,rec_tstamp,im_htab)) { if (verbose) /* Error adding ident node, skipping .... */ fprintf(stderr,"%s %s\n", _("Error adding Username node, skipping"), log_rec.ident); } } /* bump monthly/daily/hourly totals */ t_hit++; ht_hit++; /* daily/hourly hits */ t_xfer += log_rec.xfer_size; /* total xfer size */ tm_xfer[log_rec.day-1] += log_rec.xfer_size; /* daily xfer total */ tm_hit[log_rec.day-1]++; /* daily hits total */ th_xfer[log_rec.hour] += log_rec.xfer_size; /* hourly xfer total */ th_hit[log_rec.hour]++; /* hourly hits total */ /* if RC_OK, increase file counters */ if (log_rec.resp_code == RC_OK) { t_file++; tm_file[log_rec.day-1]++; th_file[log_rec.hour]++; } if (ispage(log_rec.url)) { /* Pages (pageview) calculation */ t_page++; tm_page[log_rec.day-1]++; th_page[log_rec.hour]++; /* do search string stuff if needed */ if (ntop_search) { int index = sengine_find(log_rec.refer); if(index != -1 && *log_rec.srchstr != 0) /* referrer not empty */ { char *key_phrase = sengine_search_phrase(index, log_rec.srchstr); if(key_phrase == NULL) { /* Something went wrong */ if (verbose) { fprintf(stderr,_("Warning: could not extract search phrase from :\n")); dump_logrec(stderr); } } else { sengine_add_search_phrase(key_phrase, log_rec.url, 1, sp_table, index); } } } /* open path hash table (only if valid response code) */ if ((path_graph || users_flow) && ((log_rec.resp_code==RC_OK)||(log_rec.resp_code==RC_NOMOD)|| (log_rec.resp_code==RC_PARTIALCONTENT))) { /* open path hash table */ if (add_opitem(log_rec.hostname, log_rec.srchstr, log_rec.ident, log_rec.refer, log_rec.url, rec_tstamp, op_htab)) { if (verbose) /* Error adding path node, skipping .... */ fprintf(stderr,"%s %s %s\n", _("Error adding path node element, skipping"), log_rec.hostname, log_rec.url); } } } /*********************************************/ /* RECORD PROCESSED - DO GROUPS HERE */ /*********************************************/ /* URL Grouping */ if ( (cp1=isinglist(group_urls,log_rec.url))!=NULL) { if (put_unode(cp1,OBJ_GRP,(u_long)1,log_rec.xfer_size, &ul_bogus,(u_long)0,(u_long)0,um_htab)) { if (verbose) /* Error adding URL node, skipping ... */ fprintf(stderr,"%s %s\n", _("Error adding URL node, skipping"), cp1); } } /* Site Grouping */ if ( (cp1=isinglist(group_sites,log_rec.hostname))!=NULL) { if (put_hnode(cp1,OBJ_GRP,1,(u_long)(log_rec.resp_code==RC_OK)?1:0, log_rec.xfer_size,&ul_bogus, 0,rec_tstamp,"",sm_htab)) { if (verbose) /* Error adding Site node, skipping ... */ fprintf(stderr,"%s %s\n", _("Error adding host node (monthly), skipping"), cp1); } } else { /* Domain Grouping */ if (group_domains) { cp1 = get_domain(log_rec.hostname); if (cp1 != NULL) { if (put_hnode(cp1,OBJ_GRP,1, (u_long)(log_rec.resp_code==RC_OK)?1:0, log_rec.xfer_size,&ul_bogus, 0,rec_tstamp,"",sm_htab)) { if (verbose) /* Error adding Site node, skipping ... */ fprintf(stderr,"%s %s\n", _("Error adding host node (monthly), skipping"), cp1); } } } } /* Referrer Grouping */ if ( (cp1=isinglist(group_refs,log_rec.refer))!=NULL) { if (put_rnode(cp1,OBJ_GRP,(u_long)1,&ul_bogus,rm_htab)) { if (verbose) /* Error adding Referrer node, skipping ... */ fprintf(stderr,"%s %s\n", _("Error adding Referrer node, skipping"), cp1); } } /* User Agent Grouping */ if ( (cp1=isinglist(group_agents,log_rec.agent))!=NULL) { if (put_anode(cp1,OBJ_GRP,(u_long)1,&ul_bogus,am_htab)) { if (verbose) /* Error adding User Agent node, skipping ... */ fprintf(stderr,"%s %s\n", _("Error adding User Agent node, skipping"), cp1); } } /* Ident (username) Grouping */ if ( (cp1=isinglist(group_users,log_rec.ident))!=NULL) { if (put_inode(cp1,OBJ_GRP,1,(u_long)(log_rec.resp_code==RC_OK)?1:0, log_rec.xfer_size,&ul_bogus, 0,rec_tstamp,im_htab)) { if (verbose) /* Error adding Username node, skipping ... */ fprintf(stderr,"%s %s\n", _("Error adding Username node, skipping"), cp1); } } } } /************************************************/ /* DONE READING LOG FILE(S) - final processing */ /************************************************/ if (good_rec) /* were any good records? */ { tm_site[cur_day-1]=dt_site; /* If yes, clean up a bit */ tm_visit[cur_day-1]=tot_visit(sd_htab); t_visit=tot_visit(sm_htab); if (ht_hit > mh_hit) mh_hit = ht_hit; if (total_rec > (total_ignore+total_bad)) /* did we process any? */ { if(debug_mode > 0 && path_graph > 0) { /* let's display computation statistics */ printf(_("Opened path hash table statistics:\n")); print_path_stats((PNODEPTR*) op_htab, 0); printf(_("Global path hash table statistics (before flush from opened path hash table):\n")); print_path_stats(gp_htab, 1); } if (incremental) { if (save_state()) /* incremental stuff */ { /* Error: Unable to save current run data */ if (verbose) fprintf(stderr,"%s\n",_("Error: Unable to save current run data")); } } /* close paths of open path hash table based on last record timestamp */ flush_ophtab(rec_tstamp); month_update_exit(rec_tstamp); /* calculate exit pages */ if(use_xml) write_month_xml(); /* generate XML for month */ write_month_html(); /* write monthly HTML file */ write_main_index(); /* write main HTML file */ if(use_xml) { write_history_xml(); /* write history XML file */ if(apply_monthly_skin(cur_year, cur_month)) /* TODO: Drop This one... */ { printf("Skin failed, aborting...\n"); clean_exit(1); } } put_history(); /* write history */ } if(debug_mode > 0) { /* let's display computation statistics */ if(path_graph || users_flow) { printf(_("Opened path hash table statistics (after flush to global path hash table):\n")); print_path_stats((PNODEPTR*) op_htab, 0); } /* path statistics */ if(path_graph > 0) { printf(_("Global path hash table statistics:\n")); print_path_stats(gp_htab, 1); } /* path statistics */ if(users_flow > 0) { printf(_("Users flow hash table statistics:\n")); print_path_stats(fm_htab, 1); } } end_time = times(&mytms); /* display timing totals? */ if (time_me || (verbose>1)) { printf("%lu %s ",total_rec, _("records")); if (total_ignore) { printf("(%lu %s",total_ignore,_("ignored")); if (total_bad) printf(", %lu %s) ",total_bad,_("bad")); else printf(") "); } else if (total_bad) printf("(%lu %s) ",total_bad,_("bad")); /* get processing time (end-start) */ temp_time = (float)(end_time-start_time)/CLK_TCK; printf("%s %.2f %s", _("in"), temp_time, _("seconds")); /* calculate records per second */ if (temp_time) i=( (int)( (float)total_rec/temp_time ) ); else i=0; if ( (i>0) && (i<=total_rec) ) printf(", %d/sec\n", i); else printf("\n"); } #ifdef USE_DNS if (dns_db) close_cache(); #endif /* Whew, all done! Exit with completion status (0) */ clean_exit(0); } else { /* No valid records found... exit with error (1) */ if (verbose) printf("%s\n",_("No valid records found!")); clean_exit(1); } return 0; /* should never get there */ } /*********************************************/ /* GET_CONFIG - get configuration file info */ /*********************************************/ void get_config(char *fname) { FILE *fp; char buffer[BUFSIZE]; char keyword[32]; char value[132]; char *cp1, *cp2; int i,key; int num_kwords=sizeof(kwords)/sizeof(char *); if ( (fp=fopen(fname,"r")) == NULL) { if (verbose) fprintf(stderr,"%s %s\n",_("Error: Unable to open configuration file"),fname); return; } while ( (fgets(buffer,BUFSIZE,fp)) != NULL) { /* skip comments and blank lines */ if ( (buffer[0]=='#') || isspace((int)buffer[0]) ) continue; /* Get keyword */ cp1=buffer;cp2=keyword; while ( isalnum((int)*cp1) ) *cp2++ = *cp1++; *cp2='\0'; /* Get value */ cp2=value; while ( (*cp1!='\n')&&(*cp1!='\0')&&(isspace((int)*cp1)) ) cp1++; while ( (*cp1!='\n')&&(*cp1!='\0') ) *cp2++ = *cp1++; *cp2--='\0'; while ( (isspace((int)*cp2)) && (cp2 != value) ) *cp2--='\0'; /* check if blank keyword/value */ if ( (keyword[0]=='\0') || (value[0]=='\0') ) continue; key=0; for (i=0;i 127) return 1; /* allow extended chars... */ return (strchr(":/\\.,' *-+_@~()[]",ch)!=NULL); /* and a few special ones */ } /*********************************************/ /* CTRY_IDX - create unique # from domain */ /*********************************************/ u_long ctry_idx(char *str) { int i=strlen(str),j=0; u_long idx=0; char *cp1=str+i; for (;i>0;i--) { idx+=((*--cp1-'a'+1)<='0'&&c<='9')?c-'0': /* 0-9? */ (c>='A'&&c<='F')?c-'A'+10: /* A-F? */ c - 'a' + 10; /* lowercase... */ return (c<0||c>15)?0:c; /* return 0 if bad... */ } /*********************************************/ /* UNESCAPE - convert escape seqs to chars */ /*********************************************/ static char *unescape(char *str) { unsigned char *cp1=str; /* force unsigned so we */ unsigned char *cp2=str; /* can do > 127 */ if (!str) return NULL; /* make sure strings valid */ while (*cp1) { if (*cp1=='%') /* Found an escape? */ { cp1++; if (isxdigit(*cp1)) /* ensure a hex digit */ { if (*cp1) *cp2=from_hex(*cp1++)*16; /* convert hex to an ascii */ if (*cp1) *cp2+=from_hex(*cp1); /* (hopefully) character */ if ((*cp2<32)||(*cp2==127)) *cp2='_'; /* make '_' if its bad */ if (*cp1) cp2++; cp1++; } else *cp2++='%'; } else *cp2++ = *cp1++; /* if not, just continue */ } *cp2=*cp1; /* don't forget terminator */ return str; /* return the string */ } /*********************************************/ /* GET_DOMAIN - Get domain portion of host */ /*********************************************/ static char *get_domain(char *str) { char *cp; int i=group_domains+1; cp = str+strlen(str)-1; if (isdigit((int)*cp)) return NULL; /* ignore IP addresses */ while (cp!=str) { if (*cp=='.') if (!(--i)) return ++cp; cp--; } return cp; } /*********************************************/ /* DEL_HTABS - clear out our hash tables */ /*********************************************/ /* Please note that the opened paths hashtable (op_htab) is not cleared by this function */ static void del_htabs() { /* Clear out our various */ del_plist(gp_htab, 1); /* hash tables here by */ del_plist(fm_htab, 1); /* calling the appropriate */ del_hlist(sd_htab); /* del_* function for each */ del_ulist(um_htab); del_hlist(sm_htab); del_rlist(rm_htab); del_alist(am_htab); del_ilist(im_htab); #ifdef USE_DNS /* del_dlist(host_table); */ /* delete DNS hash table */ #endif /* USE_DNS */ } /*********************************************/ /* CLEAN_EXIT - does what it says */ /*********************************************/ /* let's do cleanup -- this prevents Valgrind from complaining */ void clean_exit(int ret) { del_lists(); del_htabs(); del_oplist(op_htab, 1); free(top_ctrys); free(dns_cache); free(hname); free(out_dir); /* This one can be define in lang2.h. We have to let it go, and leek a few bytes when it is user defined. */ //free(msg_title); free(html_ext); free(dump_path); free(dump_ext); sengine_free_internal_table(); sengine_free_table(&sp_table); logs_close(); exit(ret); } /*********************************************/ /* PRINT_PATH_STATS */ /*********************************************/ /* This function is used for debugging purpose, it display information about the path htab given note: the htab given can either be an OPNODEPTR *, or an PNODEPTR * */ static void print_path_stats(PNODEPTR *htab, int pathcount) { int htab_used = 0; /* usage of hash table */ int max_npath = 0; int npath = 0; int i; int len_max = 0; int count_max = 0; int count_gt1 = 0; /* count Greater Than 1 */ int count_gt1_cumulated = 0; LISTPTR lptr; for(i=0; ipath; lptr; lptr = lptr->next) k++; len_max = MAX(len_max, k); if(pathcount) count_max = MAX(count_max, p->count); if(p->count > 1) { count_gt1++; count_gt1_cumulated += p->count; } p = p->next; } max_npath = MAX(j, max_npath); } printf(_("--> %u path(s), %.2f%% of hash table used\n"), npath, PCENT(htab_used, MAXHASH)); if(pathcount) { printf(_("--> %u maximum path count\n"), count_max); printf(_("--> %u path with count > 1, for a total of %u equivalent path(s)\n"), count_gt1, count_gt1_cumulated); } printf(_("--> %u maximum element(s) per node\n"), max_npath); printf(_("--> %.2f average element(s) per not empty nodes\n"), (float) npath / htab_used); printf(_("--> %d maximum path length\n"), len_max); } /*********************************************/ /* APPLY_MONTHLY_SKIN */ /*********************************************/ /* This function generates skin output. To do so it calls the apply_skin.sh executable (usually in /usr/share/webdruid/{$skin_name}/apply_skin.sh) with adhoc arguments. returns: !=0 on failure 0 on success */ static int apply_monthly_skin(int year, int month) { if(strcmp("null", skin_name) == 0) { if(verbose>1) printf(_("Null skin for %s %04d XML document...\n"), _(l_month[month-1]), year); return 0; } else { char *argv[10]; char buff1[256]; char buff2[256]; char buff3[256]; int ret; int i; if(verbose>1) printf(_("Applying '%s' skin on %s %04d XML document...\n"), skin_name, _(l_month[month-1]), year); /* Here we prepare arguments for the apply_skin.sh script. For more information on what is to be passed see at the beginning of the script. */ i = 0; argv[i] = "/bin/sh"; i++; if(debug_mode) { argv[i] = "-x"; i++; } snprintf(buff1, sizeof(buff1), "%s%s/apply_skin.sh", WEBDRUIDDATADIR, skin_name); argv[i] = buff1; i++; argv[i] = "MONTH"; i++; argv[i] = XML_SUBDIR; i++; snprintf(buff2, sizeof(buff2), "monthly_%04d_%02d.xml", year, month); argv[i] = buff2; i++; snprintf(buff3, sizeof(buff3), "%s/webdruid/skin-%s.xml.conf", SYSCONFDIR, skin_name); argv[i] = buff3; i++; argv[i] = "skin_output"; i++; argv[i] = WEBDRUIDDATADIR; i++; argv[i] = NULL; i++; /* Let's run!! */ ret = safe_run("/bin/sh", argv, 0); if(debug_mode && ret) { printf(_("Script apply_skin.sh returned %u.\n"), ret); } return (ret); } } /*********************************************/ /* APPLY_SUMMARY_SKIN */ /*********************************************/ /* This function calls the generates skin output. To do so it calls the apply_skin.sh executable for given skin with adhoc arguments returns: 1 on failure 0 on success */ static int apply_summary_skin() { return 0; } webdruid-0.5.4.orig/sample.conf0000600000000000000000000006132610066113350016345 0ustar rootroot00000000000000# # Sample WebDruid configuration file # Copyright 2003, 2004 by Fabien Chevalier # # Distributed under the GNU General Public License. See the # files "Copyright" and "COPYING" provided with the webalizer # distribution for additional information. # # This is a sample configuration file for the WebDruid (ver 0.5.0) # Lines starting with pound signs '#' are comment lines and are # ignored. Blank lines are skipped as well. Other lines are considered # as configuration lines, and have the form "ConfigOption Value" where # ConfigOption is a valid configuration keyword, and Value is the value # to assign that configuration option. Invalid keyword/values are # ignored, with appropriate warnings being displayed. There must be # at least one space or tab between the keyword and its value. # # The WebDruid will look for a 'default' configuration # file named "webdruid.conf" in the current directory, and if not found # there, will look for "/etc/webdruid/webdruid.conf". # LogFile defines the web server log(s) file(s) to use. # To use multiple logs files (for instance to generate statistics for # a cluster of Apache servers), you can use the directive LogFile more # than oncee. # If no 'LogFile' is specified # here or on the command line, input will default to STDIN. If # the log filename ends in '.gz' (ie: a gzip compressed file), it will # be decompressed on the fly as it is being read. #LogFile /var/lib/httpd/logs/access_log # LogType defines the log type being processed. Normally, the WebDruid # expects a CLF or Combined web server log as input. Using this option, # you can process w3c logs (IIS) as well. Values can # be 'clf' or 'w3c', with 'clf' the default. #LogType clf # OutputDir is where you want to put the output files. This should # should be a full path name, however relative ones might work as well. # If no output directory is specified, the current directory will be used. #OutputDir /var/lib/httpd/htdocs/usage ###################################################################### # Development Area # These options will be part of a future release of the WebDruid # DO NOT EDIT ###################################################################### # Turns on new XML output engine. # This is used for development tests. # Defaults to no. #XMLOutput yes # Many people are only interested in a subset of WebDruid's statistics, # or do not like the way output is done. # So The WebDruid has the ability to support more than one output format. # They are called 'Skins', as some popular music playing software ;-) # Currently only one skin is shipped with, the 'classic' skin. # You can also totally disable human readable output support, by # setting 'Skin' to 'null'. You will then have to deal manually with raw # XML files. #Skin null ###################################################################### # Incremental processing allows multiple partial log files to be used # instead of one huge one. Useful for large sites that have to rotate # their log files more than once a month. The WebDruid will save its # internal state before exiting, and restore it the next time run, in # order to continue processing where it left off. This mode also causes # The WebDruid to scan for and ignore duplicate records (records already # processed by a previous run). See the README file for additional # information. The value may be 'yes' or 'no', with a default of 'no'. # The file 'incremental.1' is used to store the current state data, # and is located in the output directory of the program. Please read at # least the section on Incremental processing in the README file before # you enable this option. #Incremental no # FontFace is the True Type font face name. This font is used for # drawing text inside charts. This is NOT the file name, # this is the name that you would use in your favourite word processor # when selecting this font. True Type fonts are searched in the path # defined by the GDFONTPATH environment variable if it is set. # If GDFONTPATH is not set, The WebDruid will look for fonts in the # following directories: # - /usr/share/fonts/truetype/freefont # - /usr/share/fonts/truetype # The default fontname is "FreeSerif". It is part of the FreeFonts package, # available at http://savannah.nongnu.org/projects/freefont/ . #FontFace FreeSerif # ReportTitle is the text to display as the title. The hostname # (unless blank) is appended to the end of this string (seperated with # a space) to generate the final full title string. # Default is (for english) "Usage Statistics for". #ReportTitle Usage Statistics for # HostName defines the hostname for the report. This is used in # the title, and is prepended to the URL table items. This allows # clicking on URL's in the report to go to the proper location in # the event you are running the report on a 'virtual' web server, # or for a server different than the one the report resides on. # If not specified here, or on the command line, webalizer will # try to get the hostname via a uname system call. If that fails, # it will default to "localhost". #HostName localhost # HTMLExtension allows you to specify the filename extension to use # for generated HTML pages. Normally, this defaults to "html", but # can be changed for sites who need it (like for PHP embeded pages). #HTMLExtension html # PageType lets you tell the WebDruid what types of URL's you # consider a 'page'. Most people consider html and cgi documents # as pages, while not images and audio files. If no types are # specified, defaults will be used ('htm*','php*', 'cgi' and HTMLExtension # if different for web logs). #PageType htm* #PageType php* #PageType cgi* #PageType pl # UseHTTPS should be used if the analysis is being run on a # secure server, and links to urls should use 'https://' instead # of the default 'http://'. If you need this, set it to 'yes'. # Default is 'no'. This only changes the behaviour of the 'Top # URL's' table. #UseHTTPS no # DNSCache specifies the DNS cache filename to use for reverse DNS lookups. # This file must be specified if you wish to perform name lookups on any IP # addresses found in the log file. If an absolute path is not given as # part of the filename (ie: starts with a leading '/'), then the name is # relative to the default output directory. See the DNS.README file for # additional information. #DNSCache dns_cache.db # DNSChildren allows you to specify how many "children" processes are # run to perform DNS lookups to create or update the DNS cache file. # If a number is specified, the DNS cache file will be created/updated # each time the WebDruid is run, immediately prior to normal processing, # by running the specified number of "children" processes to perform # DNS lookups. If used, the DNS cache filename MUST be specified as # well. The default value is zero (0), which disables DNS cache file # creation/updates at run time. The number of children processes to # run may be anywhere from 1 to 100, however a large number may effect # normal system operations. Reasonable values should be between 5 and # 20. See the DNS.README file for additional information. #DNSChildren 0 # HTMLPre defines HTML code to insert at the very beginning of the # file. Default is the DOCTYPE line shown below. Max line length # is 80 characters, so use multiple HTMLPre lines if you need more. #HTMLPre # HTMLHead defines HTML code to insert within the # block, immediately after the line. Maximum line length # is 80 characters, so use multiple lines if needed. #HTMLHead <META NAME="author" CONTENT="The WebDruid"> # HTMLBody defined the HTML code to be inserted, starting with the # <BODY> tag. If not specified, the default is shown below. If # used, you MUST include your own <BODY> tag as the first line. # Maximum line length is 80 char, use multiple lines if needed. #HTMLBody <BODY BGCOLOR="#E8E8E8" TEXT="#000000" LINK="#0000FF" VLINK="#FF0000"> # HTMLPost defines the HTML code to insert immediately before the # first <HR> on the document, which is just after the title and # "summary period"-"Generated on:" lines. If anything, this should # be used to clean up in case an image was inserted with HTMLBody. # As with HTMLHead, you can define as many of these as you want and # they will be inserted in the output stream in order of apperance. # Max string size is 80 characters. Use multiple lines if you need to. #HTMLPost <BR CLEAR="all"> # HTMLTail defines the HTML code to insert at the bottom of each # HTML document, usually to include a link back to your home # page or insert a small graphic. It is inserted as a table # data element (ie: <TD> your code here </TD>) and is right # alligned with the page. Max string size is 80 characters. #HTMLTail <IMG SRC="msfree.png" ALT="100% Micro$oft free!"> # HTMLEnd defines the HTML code to add at the very end of the # generated files. It defaults to what is shown below. If # used, you MUST specify the </BODY> and </HTML> closing tags # as the last lines. Max string length is 80 characters. #HTMLEnd </BODY></HTML> # The Quiet option suppresses output messages... Useful when run # as a cron job to prevent bogus e-mails. Values can be either # "yes" or "no". Default is "no". Note: this does not suppress # warnings and errors (which are printed to stderr). #Quiet no # ReallyQuiet will supress all messages including errors and # warnings. Values can be 'yes' or 'no' with 'no' being the # default. If 'yes' is used here, it cannot be overriden from # the command line, so use with caution. A value of 'no' has # no effect. #ReallyQuiet no # TimeMe allows you to force the display of timing information # at the end of processing. A value of 'yes' will force the # timing information to be displayed. A value of 'no' has no # effect. #TimeMe no # GMTTime allows reports to show GMT (UTC) time instead of local # time. Default is to display the time the report was generated # in the timezone of the local machine, such as EDT or PST. This # keyword allows you to have times displayed in UTC instead. Use # only if you really have a good reason, since it will probably # screw up the reporting periods by however many hours your local # time zone is off of GMT. #GMTTime no # Debug prints additional information for error messages. This # will cause webalizer to dump bad records/fields instead of just # telling you it found a bad one. As usual, the value can be # either "yes" or "no". The default is "no". It shouldn't be # needed unless you start getting a lot of Warning or Error # messages and want to see why. (Note: warning and error messages # are printed to stderr, not stdout like normal messages). #Debug no # FoldSeqErr forces the WebDruid to ignore sequence errors. # This is useful for Netscape and other web servers that cache # the writing of log records and do not guarentee that they # will be in chronological order. The use of the FoldSeqErr # option will cause out of sequence log records to be treated # as if they had the same time stamp as the last valid record. # Default is to ignore out of sequence log records. #FoldSeqErr no # VisitTimeout allows you to set the default timeout for a visit # (sometimes called a 'session'). The default is 30 minutes, # which should be fine for most sites. # Visits are determined by looking at the time of the current # request, and the time of the last request from the site. If # the time difference is greater than the VisitTimeout value, it # is considered a new visit, and visit totals are incremented. # Value is the number of seconds to timeout (default=1800=30min) #VisitTimeout 1800 # IgnoreHist shouldn't be used in a config file, but it is here # just because it might be usefull in certain situations. If the # history file is ignored, the main "index.html" file will only # report on the current log files contents. Usefull only when you # want to reproduce the reports from scratch. USE WITH CAUTION! # Valid values are "yes" or "no". Default is "no". #IgnoreHist no #This keyword is used to either enable or disable the creation #and display of the path graph. Path is...really a path, i mean #a list of pages the user went to. What is displayed is only #paths that were taken more than once. The drawback of this #criteria is that if 200 users follow exactly the same path #in your site, except for the last pages, they won't appear #here because their path was different at the end. If anyone #has an good algorithm to solve this issue, he should drop me #a note. Another issue is because of client side and proxy #caching. You can never know when a user goes back in your site. #Default is "yes". #PathGraph no #This keyword is used to limit the number of path displayed by #the path graph. Indicating here an inapropriate value will #create a graph difficult to read, and dot will spend a lot #CPU to create it. Default is 10. #PathGraphMaxPaths 10 #This keyword is used to either enable or disable the creation #and display of the users flow graph. This graph tries to show #you the flows of the users in your web site. #Each node represents a page, and each edge is balanced by the #number of hits from a page to another page. Default is "yes". #UsersFlow no #This keyword is used to limit the number of edges displayed by #the users flow graph. Indicating here an inapropriate value will #create a graph difficult to read, and dot will spend a lot #CPU to create it. Default is 30. #UsersFlowMaxEdges 30 #Full path to dot utility location. Useful only if PathGraph or #UsersFlow is set to yes. Default is /usr/bin/dot #DotLocation /usr/local/bin/dot # Country Graph allows the usage by country graph to be disabled. # Values can be 'yes' or 'no', default is 'yes'. #CountryGraph yes # DailyGraph and DailyStats allows the daily statistics graph # and statistics table to be disabled (not displayed). Values # may be "yes" or "no". Default is "yes". #DailyGraph yes #DailyStats yes # HourlyGraph and HourlyStats allows the hourly statistics graph # and statistics table to be disabled (not displayed). Values # may be "yes" or "no". Default is "yes". #HourlyGraph yes #HourlyStats yes # GraphLegend allows the color coded legends to be turned on or off # in the graphs. The default is for them to be displayed. This only # toggles the color coded legends, the other legends are not changed. # If you think they are hideous and ugly, say 'no' here :) #GraphLegend yes # GraphLines allows you to have index lines drawn behind the graphs. # I personally am not crazy about them, but a lot of people requested # them and they weren't a big deal to add. The number represents the # number of lines you want displayed. Default is 2, you can disable # the lines by using a value of zero ('0'). [max is 20] # Note, due to rounding errors, some values don't work quite right. # The lower the better, with 1,2,3,4,6 and 10 producing nice results. #GraphLines 2 # The "Top" options below define the number of entries for each table. # Defaults are Sites=30, URL's=30, Referrers=30 and Agents=15, and # Countries=30. TopKSites and TopKURLs (by KByte tables) both default # to 10, as do the top entry/exit tables (TopEntry/TopExit). The top # search strings and usernames default to 20. Tables may be disabled # by using zero (0) for the value. #TopSites 30 #TopKSites 10 #TopURLs 30 #TopKURLs 10 #TopReferrers 30 #TopAgents 15 #TopCountries 30 #TopEntry 10 #TopExit 10 #TopSearch 20 #TopUsers 20 # The All* keywords allow the display of all URL's, Sites, Referrers # User Agents, Search Strings and Usernames. If enabled, a seperate # HTML page will be created, and a link will be added to the bottom # of the appropriate "Top" table. There are a couple of conditions # for this to occur.. First, there must be more items than will fit # in the "Top" table (otherwise it would just be duplicating what is # already displayed). Second, the listing will only show those items # that are normally visable, which means it will not show any hidden # items. Grouped entries will be listed first, followed by individual # items. The value for these keywords can be either 'yes' or 'no', # with the default being 'no'. Please be aware that these pages can # be quite large in size, particularly the sites page, and seperate # pages are generated for each month, which can consume quite a lot # of disk space depending on the traffic to your site. #AllSites no #AllURLs no #AllReferrers no #AllAgents no #AllSearchStr no #AllUsers no # The WebDruid normally strips the string 'index.' off the end of # URL's in order to consolidate URL totals. For example, the URL # /somedir/index.html is turned into /somedir/ which is really the # same URL. This option allows you to specify additional strings # to treat in the same way. You don't need to specify 'index.' as # it is always scanned for by The WebDruid, this option is just to # specify _additional_ strings if needed. If you don't need any, # don't specify any as each string will be scanned for in EVERY # log record... A bunch of them will degrade performance. Also, # the string is scanned for anywhere in the URL, so a string of # 'home' would turn the URL /somedir/homepages/brad/home.html into # just /somedir/ which is probably not what was intended. #IndexAlias home.htm #IndexAlias homepage.htm # The Hide*, Group* and Ignore* and Include* keywords allow you to # change the way Sites, URL's, Referrers, User Agents and Usernames # are manipulated. The Ignore* keywords will cause The WebDruid to # completely ignore records as if they didn't exist (and thus not # counted in the main site totals). The Hide* keywords will prevent # things from being displayed in the 'Top' tables, but will still be # counted in the main totals. The Group* keywords allow grouping # similar objects as if they were one. Grouped records are displayed # in the 'Top' tables and can optionally be displayed in BOLD and/or # shaded. Groups cannot be hidden, and are not counted in the main # totals. The Group* options do not, by default, hide all the items # that it matches. If you want to hide the records that match (so just # the grouping record is displayed), follow with an identical Hide* # keyword with the same value. (see example below) In addition, # Group* keywords may have an optional label which will be displayed # instead of the keywords value. The label should be seperated from # the value by at least one 'white-space' character, such as a space # or tab. # # The value can have either a leading or trailing '*' wildcard # character. If no wildcard is found, a match can occur anywhere # in the string. Given a string "www.yourmama.com", the values "your", # "*mama.com" and "www.your*" will all match. # Your own site should be hidden #HideSite *mrunix.net #HideSite localhost # Your own site gives most referrals #HideReferrer mrunix.net/ # This one hides non-referrers ("-" Direct requests) #HideReferrer Direct Request # Usually you want to hide these HideURL *.gif HideURL *.GIF HideURL *.jpg HideURL *.JPG HideURL *.png HideURL *.PNG HideURL *.ra # Hiding agents is kind of futile #HideAgent RealPlayer # You can also hide based on authenticated username #HideUser root #HideUser admin # Grouping options #GroupURL /cgi-bin/* CGI Scripts #GroupURL /images/* Images #GroupSite *.aol.com #GroupSite *.compuserve.com #GroupReferrer yahoo.com/ Yahoo! #GroupReferrer excite.com/ Excite #GroupReferrer infoseek.com/ InfoSeek #GroupReferrer webcrawler.com/ WebCrawler #GroupUser root Admin users #GroupUser admin Admin users #GroupUser wheel Admin users # The following is a great way to get an overall total # for browsers, and not display all the detail records. # (You should use MangleAgent to refine further...) #GroupAgent MSIE Micro$oft Internet Exploder #HideAgent MSIE #GroupAgent Mozilla Netscape #HideAgent Mozilla #GroupAgent Lynx* Lynx #HideAgent Lynx* # HideAllSites allows forcing individual sites to be hidden in the # report. This is particularly useful when used in conjunction # with the "GroupDomain" feature, but could be useful in other # situations as well, such as when you only want to display grouped # sites (with the GroupSite keywords...). The value for this # keyword can be either 'yes' or 'no', with 'no' the default, # allowing individual sites to be displayed. #HideAllSites no # The GroupDomains keyword allows you to group individual hostnames # into their respective domains. The value specifies the level of # grouping to perform, and can be thought of as 'the number of dots' # that will be displayed. For example, if a visiting host is named # cust1.tnt.mia.uu.net, a domain grouping of 1 will result in just # "uu.net" being displayed, while a 2 will result in "mia.uu.net". # The default value of zero disable this feature. Domains will only # be grouped if they do not match any existing "GroupSite" records, # which allows overriding this feature with your own if desired. #GroupDomains 0 # The GroupShading allows grouped rows to be shaded in the report. # Useful if you have lots of groups and individual records that # intermingle in the report, and you want to diferentiate the group # records a little more. Value can be 'yes' or 'no', with 'yes' # being the default. #GroupShading yes # GroupHighlight allows the group record to be displayed in BOLD. # Can be either 'yes' or 'no' with the default 'yes'. #GroupHighlight yes # The Ignore* keywords allow you to completely ignore log records based # on hostname, URL, user agent, referrer or username. I hessitated in # adding these, since the WebDruid was designed to generate _accurate_ # statistics about a web servers performance. By choosing to ignore # records, the accuracy of reports become skewed, negating why I wrote # this program in the first place. However, due to popular demand, here # they are. Use the same as the Hide* keywords, where the value can have # a leading or trailing wildcard '*'. Use at your own risk ;) #IgnoreSite bad.site.net #IgnoreURL /test* #IgnoreReferrer file:/* #IgnoreAgent RealPlayer #IgnoreUser root # The Include* keywords allow you to force the inclusion of log records # based on hostname, URL, user agent, referrer or username. They take # precidence over the Ignore* keywords. Note: Using Ignore/Include # combinations to selectivly process parts of a web site is _extremely # inefficent_!!! Avoid doing so if possible (ie: grep the records to a # seperate file if you really want that kind of report). # Example: Only show stats on Joe User's pages... #IgnoreURL * #IncludeURL ~joeuser* # Or based on an authenticated username #IgnoreUser * #IncludeUser someuser # The MangleAgents allows you to specify how much, if any, The WebDruid # should mangle user agent names. This allows several levels of detail # to be produced when reporting user agent statistics. There are six # levels that can be specified, which define different levels of detail # supression. Level 5 shows only the browser name (MSIE or Mozilla) # and the major version number. Level 4 adds the minor version number # (single decimal place). Level 3 displays the minor version to two # decimal places. Level 2 will add any sub-level designation (such # as Mozilla/3.01Gold or MSIE 3.0b). Level 1 will attempt to also add # the system type if it is specified. The default Level 0 displays the # full user agent field without modification and produces the greatest # amount of detail. User agent names that can't be mangled will be # left unmodified. #MangleAgents 0 # The Dump* keywords allow the dumping of Sites, URL's, Referrers # User Agents, Usernames and Search strings to seperate tab delimited # text files, suitable for import into most database or spreadsheet # programs. # DumpPath specifies the path to dump the files. If not specified, # it will default to the current output directory. Do not use a # trailing slash ('/'). #DumpPath /var/lib/httpd/logs # The DumpHeader keyword specifies if a header record should be # written to the file. A header record is the first record of the # file, and contains the labels for each field written. Normally, # files that are intended to be imported into a database system # will not need a header record, while spreadsheets usually do. # Value can be either 'yes' or 'no', with 'no' being the default. #DumpHeader no # DumpExtension allow you to specify the dump filename extension # to use. The default is "tab", but some programs are pickey about # the filenames they use, so you may change it here (for example, # some people may prefer to use "csv"). #DumpExtension tab # These control the dumping of each individual table. The value # can be either 'yes' or 'no'.. the default is 'no'. #DumpSites no #DumpURLs no #DumpReferrers no #DumpAgents no #DumpUsers no #DumpSearchStr no # End of configuration file... Have a nice day! ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������webdruid-0.5.4.orig/engines.list.local��������������������������������������������������������������0000644�0000000�0000000�00000002076�10066113350�017640� 0����������������������������������������������������������������������������������������������������ustar �root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# # This is The WebDruid local search engines list # # Copyright (C) 2003-2004 Fabien Chevalier (fabien@juliana-multimedia.com) # # Distributed under the GNU General Public License. See the files # "COPYING" and "Copyright" supplied with the distribution for additional # information. # # If a search engine you know is not in the list provided with The WebDruid, # you can add it here. The engines you define here will be used ADDITIONALY # to the one provided by the community-shared file -- This way you will still # have the opportunity to have the latest search engines list by simply # upgrading to a new WebDruid release, without destroying this local list. # # AFTER YOU HAVE FILLED THIS FILE, YOU HAVE TO RENAME IT 'engines.list' # otherwise it won't be taken into consideration by The WebDruid # # For explanations upon this file's format, please see the global search # engines list (usually /usr/share/webdruid/engines.list) - the format # is the same. # # With a fresh install, this file is normally empty. ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������webdruid-0.5.4.orig/configure.in��������������������������������������������������������������������0000644�0000000�0000000�00000016517�10066113350�016540� 0����������������������������������������������������������������������������������������������������ustar �root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������dnl Process this file with autoconf to produce a configure script. AC_PREREQ(2.59) AC_INIT AC_CONFIG_SRCDIR([webdruid.c]) AC_CONFIG_HEADER([config.h]) #dnl default language (don't change!) #DEFAULT_LANG="english" #AC_SUBST(DEFAULT_LANG) OPTS=${DEFS} AC_SUBST(OPTS) dnl Checks for programs. IN_CFLAGS=${CFLAGS} AC_PROG_CC AC_PROG_LN_S AC_PROG_INSTALL AC_C_CHAR_UNSIGNED dnl force our own CFLAGS defaults if test "$GCC" = "yes"; then AC_ARG_ENABLE(static,--enable-static Build as static executable, LDFLAGS="--static ${LDFLAGS}") if test "$IN_CFLAGS" = ""; then CFLAGS="-Wall -O2" fi if test "$ac_cv_c_char_unsigned" = "yes"; then CFLAGS="-fsigned-char ${CFLAGS}" fi AC_ARG_ENABLE(debug,--enable-debug Compile with debugging code, CFLAGS="-g ${CFLAGS}") else if test "$IN_CFLAGS" = ""; then CFLAGS="-g" fi fi AC_ARG_WITH(gdlib,--with-gdlib=DIR Where to additionally look for libgd.a, EXTRA_GDLIB="${withval}", EXTRA_GDLIB="") AC_ARG_WITH(gd,--with-gd=DIR Where to additionally look for gd headers, EXTRA_GD="${withval}"; CFLAGS="-I${withval} ${CFLAGS}", EXTRA_GD="") AC_ARG_WITH(z-inc,--with-z-inc=DIR Alternate location for libz headers, CFLAGS="-I${withval} ${CFLAGS}") AC_ARG_WITH(zlib,--with-zlib=DIR Alternate location for libz library, LDFLAGS="-L${withval} ${LDFLAGS}") AC_ARG_WITH(png-inc,--with-png-inc=DIR Alternate location of png header files, CFLAGS="-I${withval} ${CFLAGS}") AC_ARG_WITH(png,--with-png=DIR Alternate location for libpng library, LDFLAGS="-L${withval} ${LDFLAGS}") AC_ARG_WITH(freetype,--with-freetype=DIR Alternate location for Freetype 2 library, LDFLAGS="-L${withval} ${LDFLAGS}") AC_ARG_WITH(db,--with-db=DIR Alternate location for db headers, CFLAGS="-I${withval} ${CFLAGS}") AC_ARG_WITH(dblib,--with-dblib=DIR Alternate location for db library, LDFLAGS="-L${withval} ${LDFLAGS}"; HAVE_DB="yes", HAVE_DB="") dnl enable-dns forces use of DNS code AC_ARG_ENABLE(dns,--enable-dns Enable DNS lookup code, USE_DNS="yes") dnl enable-ipv6 tries to use IPv6 AC_ARG_ENABLE(ipv6-dns,--enable-ipv6-dns Tries to use IPv6 for dns loolups, USE_IPV6="yes") dnl DNS library check if test "$USE_DNS" = "yes"; then if test "$HAVE_DB" = ""; then # No path to db3 library given, we need to search for it ourself if test "$USE_IPV6" = "yes"; then AC_CHECK_FUNCS(getaddrinfo) if test "$ac_cv_func_getaddrinfo" = no; then AC_MSG_WARN(Your C library doesn't support IPv6!) AC_MSG_WARN(DNS lookup code will fall back to IPv4...) else OPTS="-DUSE_IPV6 ${OPTS}" fi fi AC_CHECK_FUNCS(__db185_open) if test "$ac_cv_func___db185_open" = no; then AC_SEARCH_LIBS(__db185_open, db3 db db1) # If found -l{db, db1, db3} is appended to our LIBS if test "$ac_cv_search___db185_open" != no; then OPTS="-DUSE_DNS ${OPTS}"; HAVE_DB="yes"; else AC_MSG_WARN(You must have a V1.85 compatible DB library!) AC_MSG_WARN(DNS lookup code will be disabled...) fi else OPTS="-DUSE_DNS ${OPTS}"; HAVE_DB="yes" fi else OPTS="-DUSE_DNS ${OPTS}"; LIBS="-ldb ${LIBS}"; HAVE_DB="yes" fi if test "$HAVE_DB" = "yes"; then dnl Checking for db_185.h, then db.h AC_CHECK_HEADERS(db_185.h db3.1/db_185.h db.h, break) if test "$ac_cv_header_db_185_h" = no && test "$ac_cv_header_db3.1_db_185_h" = no && test "$ac_cv_header_db_h" = no; then AC_MSG_WARN(Could not find Berkeley DB 1.85 compatibility headers!); AC_MSG_WARN(DNS lookup code will be disabled...); HAVE_DB=""; fi AC_CHECK_HEADERS(errno.h) fi dnl Some systems need these at link time (not Linux) AC_CHECK_FUNCS(socket) if test "$ac_cv_func_socket" = no; then AC_CHECK_LIB(socket, main, LIBS="-lsocket ${LIBS}";) fi AC_CHECK_HEADERS(sys/socket.h) #On my Debian sarge system it just compiles without this. I really don't know what its use is. #AC_CHECK_LIB(nsl, main, LIBS="-lnsl ${LIBS}") fi dnl Check for bsd 4.4 library -l44bsd: AC_CHECK_LIB(44bsd, main, LIBS="-l44bsd ${LIBS}") dnl Check for math library -lm AC_CHECK_LIB(m, main, HAVE_LIBM="1"; LIBS="-lm ${LIBS}") dnl Check for z library -lz AC_CHECK_LIB(z, main,LIBZ="yes",LIBZ="no") if test "$LIBZ" = "no"; then AC_MSG_ERROR(z library not found... please install zlib.) else AC_CHECK_LIB(z, gzrewind,LIBS="-lz ${LIBS}",LIBZ="no") if test "$LIBZ" = "no"; then AC_MSG_ERROR(Old version of zlib found, please upgrade!) fi fi dnl Checking for iconv support found="no" AC_CHECK_HEADERS(iconv.h) if test "$ac_cv_header_iconv_h" = yes; then AC_CHECK_FUNCS(iconv_open) if test "$ac_cv_func_iconv_open" = no; then # We assume it is in -liconv LIBS="-liconv ${LIBS}"; found="yes"; else found="yes"; fi fi if test "$found" = "no"; then AC_MSG_ERROR(Your system doesn't support UNIX98 iconv. Aborting!) fi dnl Checking for gettext support found="no" AC_CHECK_HEADERS(libintl.h) if test "$ac_cv_header_libintl_h" = yes; then AC_CHECK_FUNCS(gettext) if test "$ac_cv_func_gettext" = no; then AC_CHECK_LIB(intl, gettext, LIBS="-lintl ${LIBS}"; found="yes";) else found="yes"; fi fi if test "$found" = "no"; then AC_MSG_ERROR(Your system doesn't support gettext. Aborting!) fi dnl check for pthread library, we don't need it directly but it may be required if linking statically to gd AC_CHECK_LIB(pthread, pthread_mutex_unlock) dnl Check for png library -lpng AC_CHECK_LIB(png, main, LIBS="-lpng ${LIBS}", LIBPNG="no") if test "$LIBPNG" = "no"; then AC_MSG_ERROR(png library not found... please install png.) fi dnl checkin for freetype 2 AC_CHECK_LIB(freetype, FT_Init_FreeType, LIBS="-lfreetype ${LIBS}", LIBFT="no") if test "$LIBFT" = "no"; then AC_MSG_ERROR(Freetype 2 library not found... please install it!) fi dnl check for gd graphics library -lgd if test "$EXTRA_GD" = ""; then if test "$EXTRA_GDLIB" = ""; then AC_CHECK_LIB(gd, gdImageString,LIBS="-lgd ${LIBS}"; HAVE_LIBGD="yes", HAVE_LIBGD="") fi fi if test "$HAVE_LIBGD" = ""; then AC_FIND_PATH(GDLOC,libgd.a,"", ${PREFIX}/lib ${PREFIX}/lib/gd /usr/local/lib /usr/local/lib/gd /usr/local/gd /usr/local/include /usr/local/include/gd /usr/lib/gd /usr/lib /lib ./ ./gd ../gd ${EXTRA_GDLIB} ${EXTRA_GD}) if test "$GDLOC" = ""; then AC_FIND_PATH(GDLOC,libgd.so,"", ${PREFIX}/lib ${PREFIX}/lib/gd /usr/local/lib /usr/local/lib/gd /usr/local/gd /usr/local/include /usr/local/include/gd /usr/lib/gd /usr/lib /lib ./ ./gd ../gd ${EXTRA_GDLIB} ${EXTRA_GD}) fi if test "$GDLOC" = ""; then AC_MSG_ERROR(gd library not found... please install gd.) else LIBS="-lgd ${LIBS}" LDFLAGS="-L${GDLOC} ${LDFLAGS}" fi fi dnl Checking for gd >= 1.8.4 AC_CHECK_FUNC(gdImageStringFT, ,AC_MSG_ERROR(The Webdruid requires gd >= 1.8.4)) dnl find path to GD library headers AC_FIND_PATH(GDLIB,gd.h,"", ${PREFIX}/include ${PREFIX}/include/gd /usr/local/include/gd /usr/local/include /usr/include/gd /usr/include /include/gd /include ./ ./gd ../gd ${EXTRA_GD} ${EXTRA_GDLIB}) dnl Abort if GD headers not found if test "$GDLIB" = ""; then AC_MSG_ERROR(gd headers not found... please install gd.) fi dnl additonal platform specific checks AC_CHECK_HEADERS(getopt.h) if test "$HAVE_LIBM" = "1"; then AC_CHECK_HEADERS(math.h) fi #AM_GNU_GETTEXT localedir=${datadir}/locale AC_SUBST(localedir) AC_CONFIG_FILES([Makefile]) AC_OUTPUT ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������webdruid-0.5.4.orig/parser.c������������������������������������������������������������������������0000600�0000000�0000000�00000044175�10066113350�015660� 0����������������������������������������������������������������������������������������������������ustar �root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* The WebDruid - a web server log analysis program Copyright (C) 2003-2004 Fabien Chevalier (fabien@juliana-multimedia.com) Original webalizer copyright: Copyright (C) 1997-2001 Bradford L. Barrett (brad@mrunix.net) This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version, and provided that the above copyright and permission notice is included with all distributed copies of this or derived software. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA This software uses the gd graphics library, which is copyright by Quest Protein Database Center, Cold Spring Harbor Labs. Please see the documentation supplied with the library for additional information and license terms, or visit www.boutell.com/gd/ for the most recent version of the library and supporting documentation. W3C log format suport generously donated by Klaus Reimer <k@ailis.de> */ /*********************************************/ /* STANDARD INCLUDES */ /*********************************************/ #include "config.h" #include <time.h> #include <stdio.h> #include <stdlib.h> #include <string.h> #include <unistd.h> /* normal stuff */ #include <ctype.h> #include <sys/utsname.h> #include <sys/times.h> /* ensure getopt */ #ifdef HAVE_GETOPT_H #include <getopt.h> #endif /* ensure sys/types */ #ifndef _SYS_TYPES_H #include <sys/types.h> #endif /* some systems need this */ #ifdef HAVE_MATH_H #include <math.h> #endif /* SunOS 4.x Fix */ #ifndef CLK_TCK #define CLK_TCK _SC_CLK_TCK #endif #include "webdruid.h" /* main header */ #include "lang.h" #include "parser.h" /* internal function prototypes */ static void fmt_logrec(char *); static int parse_record_clf(char *, struct log_struct *); static int parse_record_w3c(char *buffer, struct log_struct * log_record); /* month names used for parsing logfile (shouldn't be lang specific) */ static char *log_month[12]={ "jan", "feb", "mar", "apr", "may", "jun", "jul", "aug", "sep", "oct", "nov", "dec"}; static char tmp_buf[BUFSIZE]; /*********************************************/ /* FMT_LOGREC - terminate log fields w/zeros */ /*********************************************/ static void fmt_logrec(char *buffer) { char *cp=buffer; int q=0,b=0,p=0; while (*cp != '\0') { /* break record up, terminate fields with '\0' */ switch (*cp) { case ' ': if (b || q || p) break; *cp='\0'; break; case '"': q^=1; break; case '[': if (q) break; b++; break; case ']': if (q) break; if (b>0) b--; break; case '(': if (q) break; p++; break; case ')': if (q) break; if (p>0) p--; break; case '\t': if (b || q || p) break; *cp='\0'; break; } cp++; } } /*********************************************/ /* PARSE_RECORD - uhhh, you know... */ /*********************************************/ int parse_record(char *buffer, struct log_struct * log_record) { int ret; /* clear out structure */ memset(log_record, 0, sizeof(struct log_struct)); /* dates initialisation */ log_record->year = 0; log_record->month = 0; log_record->day = 0; log_record->hour = 0; log_record->min = 0; log_record->sec = 0; #ifdef USE_DNS #ifdef USE_IPV6 memset(&log_record->addr,0,sizeof(struct sockaddr_storage)); #else memset(&log_rec.addr,0,sizeof(struct in_addr)); #endif #endif /* call appropriate handler */ switch (log_type) { default: case LOG_CLF: ret = parse_record_clf(buffer, log_record); break; /* clf */ case LOG_W3C: ret = parse_record_w3c(buffer, log_record); break; /* w3c */ } /* printf("%d %d %d %d %d %d\n", log_record->year, log_record->month, log_record->day, log_record->hour, log_record->min, log_record->sec); */ if(ret == 1) return 0; else return 1; } /*********************************************/ /* PARSE_RECORD_CLF - web log handler */ /*********************************************/ static int parse_record_clf(char *buffer, struct log_struct * log_record) { int size, i; char *cp1, *cp2, *cpx, *eob, *eos; char datetime[29]; /* raw timestamp */ size = strlen(buffer); /* get length of buffer */ eob = buffer+size; /* calculate end of buffer */ fmt_logrec(buffer); /* seperate fields with \0's */ /* HOSTNAME */ cp1 = cpx = buffer; cp2=log_record->hostname; eos = (cp1+MAXHOST)-1; if (eos >= eob) eos=eob-1; while ( (*cp1 != '\0') && (cp1 != eos) ) *cp2++ = *cp1++; *cp2 = '\0'; if (*cp1 != '\0') { if (verbose) { fprintf(stderr,"%s",_("Warning: Truncating oversized hostname")); if (debug_mode) fprintf(stderr,": %s\n",cpx); else fprintf(stderr,"\n"); } while (*cp1 != '\0') cp1++; } if (cp1 < eob) cp1++; /* skip next field (ident) */ while ( (*cp1 != '\0') && (cp1 < eob) ) cp1++; if (cp1 < eob) cp1++; /* IDENT (authuser) field */ cpx = cp1; cp2 = log_record->ident; eos = (cp1+MAXIDENT-1); if (eos >= eob) eos=eob-1; while ( (*cp1 != '[') && (cp1 < eos) ) /* remove embeded spaces */ { if (*cp1=='\0') *cp1=' '; *cp2++=*cp1++; } *cp2--='\0'; if (cp1 >= eob) return 0; /* check if oversized username */ if (*cp1 != '[') { if (verbose) { fprintf(stderr,"%s",_("Warning: Truncating oversized username")); if (debug_mode) fprintf(stderr,": %s\n",cpx); else fprintf(stderr,"\n"); } while ( (*cp1 != '[') && (cp1 < eob) ) cp1++; } /* strip trailing space(s) */ while (*cp2==' ') *cp2--='\0'; /* date/time string */ cpx = cp1; cp2 = datetime; eos = (cp1+28); if (eos >= eob) eos=eob-1; while ( (*cp1 != '\0') && (cp1 != eos) ) *cp2++ = *cp1++; *cp2 = '\0'; if (*cp1 != '\0') { if (verbose) { fprintf(stderr,"%s",_("Warning: Truncating oversized date field")); if (debug_mode) fprintf(stderr,": %s\n",cpx); else fprintf(stderr,"\n"); } while (*cp1 != '\0') cp1++; } if (cp1 < eob) cp1++; /* minimal sanity check on timestamp */ if ( (datetime[0] != '[') || (datetime[3] != '/') || (cp1 >= eob)) return 0; /* HTTP request */ cpx = cp1; cp2 = log_record->url; eos = (cp1+MAXURL-1); if (eos >= eob) eos = eob-1; while ( (*cp1 != '\0') && (cp1 != eos) ) *cp2++ = *cp1++; *cp2 = '\0'; if (*cp1 != '\0') { if (verbose) { fprintf(stderr,"%s",_("Warning: Truncating oversized request field")); if (debug_mode) fprintf(stderr,": %s\n",cpx); else fprintf(stderr,"\n"); } while (*cp1 != '\0') cp1++; } if (cp1 < eob) cp1++; if ( (log_record->url[0] != '"') || (cp1 >= eob) ) return 0; /* response code */ log_record->resp_code = atoi(cp1); /* xfer size */ while ( (*cp1 != '\0') && (cp1 < eob) ) cp1++; if (cp1 < eob) cp1++; if (*cp1<'0'||*cp1>'9') log_record->xfer_size=0; else log_record->xfer_size = strtoul(cp1,NULL,10); /* done with CLF record -- check if we have more stuff to read*/ if (cp1 < eob) { while ( (*cp1 != '\0') && (*cp1 != '\n') && (cp1 < eob) ) cp1++; if (cp1 < eob) cp1++; /* get referrer if present */ cpx = cp1; cp2 = log_record->refer; eos = (cp1+MAXREF-1); if (eos >= eob) eos = eob-1; while ( (*cp1 != '\0') && (*cp1 != '\n') && (cp1 != eos) ) *cp2++ = *cp1++; *cp2 = '\0'; if (*cp1 != '\0') { if (verbose) { fprintf(stderr,"%s",_("Warning: Truncating oversized referrer field")); if (debug_mode) fprintf(stderr,": %s\n",cpx); else fprintf(stderr,"\n"); } while (*cp1 != '\0') cp1++; } if (cp1 < eob) cp1++; cpx = cp1; cp2 = log_record->agent; eos = cp1+(MAXAGENT-1); if (eos >= eob) eos = eob-1; while ( (*cp1 != '\0') && (cp1 != eos) ) *cp2++ = *cp1++; *cp2 = '\0'; } /* do backup copy the buffer, in case it gets damaged by our tries to analyse it */ strncpy(tmp_buf, buffer, BUFSIZE); /* convert month name to lowercase */ for (i=4; i<7; i++) datetime[i]=tolower(datetime[i]); /* get year/month/day/hour/min/sec values */ log_record->month = 1; for (i=0; i<12; i++) { if (strncmp(log_month[i],&datetime[4],3)==0) { log_record->month = i+1; break; } } log_record->year = atoi(&datetime[8]); /* get year number (int) */ log_record->day = atoi(&datetime[1]); /* get day number */ log_record->hour = atoi(&datetime[13]); /* get hour number */ log_record->min = atoi(&datetime[16]); /* get minute number */ log_record->sec = atoi(&datetime[19]); /* get second number */ /* minimal sanity check on date */ if ((i>=12)||(log_record->min>59)||(log_record->sec>59)||(log_record->year<1990)) { total_bad++; /* if a bad date, bump counter */ if (verbose) { fprintf(stderr,"%s: %s [%lu]", _("Error: bad record (bad date)"),datetime,total_rec); if (debug_mode) fprintf(stderr,":\n%s\n",tmp_buf); else fprintf(stderr,"\n"); } return 0; /* and ignore this record */ } return 1; /* maybe a valid record, return with TRUE */ } /*********************************************/ /* PARSE_RECORD_W3C - w3c log handler */ /*********************************************/ /* Patch: webalizer-w3c For: Webalizer 2.01.10 From: Klaus Reimer <k@ailis.de> Desc: Implement W3C extended log file format support. Version: 3 This patch implements W3C extended log file format support into webalizer. Thig log file format is used by Microsoft's Webserver IIS but other programs may also use this format which was invented by W3C. With this patch webalizer can read the W3C headers and can parse the data lines according to the specified Fields-header. Format-switching within a single logfile is supported. IIS is using this format-switching to write process accounting informations to the same logfile. These accounting informations are producing "bad record" warnings because these lines doesn't hold any informations usable for webalizer. You can just ignore them or disable process accounting logs in the IIS configuration if you don't need them IIS seems to be very buggy. I found three bugs in the current IIS version which affects logfiles: 1. If output buffering is enabled in ASP scripts the sc-bytes field is always 0. This prevents accurate measurement of download traffic. 2. Sometimes IIS writes nonsense into the log so the number of entries are not conform to the number of fields specified in the logfile header. This patch does its best to filter out these lines. 3. IIS writes a lot of Null-characters to the end of each logfile. These lines are ignored by this patch. Known Bugs in this patch: The user-agent field is not completely "urldecoded". Only the '+' signs are replaced by space characters. Other url-encoded characters are not touched. */ /* field index structure */ struct field_index_struct { int date; /* Date field index */ int time; /* Time field index */ int ip; /* IP field index */ int username; /* Username field index */ int method; /* Method field index */ int url; /* URL field index */ int query; /* Querystring field index */ int status; /* Status code field index */ int size; /* Size field index */ int referer; /* Referrer field index */ int agent; /* User agent field index */ int fields; /* Number of fields in this format */ }; /* field structure */ struct fields_struct { char *date; /* Date field */ char *time; /* Time field */ char *ip; /* IP field */ char *username; /* Username field */ char *url; /* URL field */ char *query; /* Querystring */ char *status; /* Status code */ char *size; /* Size field */ char *referer; /* Referrer field */ char *agent; /* User agent field */ }; static int parse_record_w3c(char *buffer, struct log_struct * log_record) { int size; char *eob; char *cp; int index; static struct field_index_struct field_index; struct fields_struct fields; struct tm time; memset(&time, 0, sizeof(struct tm)); size = strlen(buffer); /* get length of buffer */ eob = buffer + size; /* calculate end of buffer */ fmt_logrec(buffer); /* seperate fields with \0's */ cp = buffer; /* Check if the line is empty or a line suffers from the IIS Null-Character bug and abort parsing if found. */ if (*cp == '\0') return 0; /* If it's a header line ignore it or parse the Fields header if found */ if (*cp == '#') { cp++; if (!strcmp(cp, "Fields:")) { /* Reset the field indices */ memset(&field_index, 0, sizeof(struct field_index_struct)); while (*cp) cp++; cp++; index = 1; while ((cp < eob) && (*cp != '\r') && (*cp != '\n')) { /* Set the field index */ if (!strcmp(cp, "date")) field_index.date = index; if (!strcmp(cp, "time")) field_index.time = index; if (!strcmp(cp, "c-ip")) field_index.ip = index; if (!strcmp(cp, "cs-uri-stem")) field_index.url = index; if (!strcmp(cp, "cs-uri-query")) field_index.query = index; if (!strcmp(cp, "sc-status")) field_index.status = index; if (!strcmp(cp, "cs(Referer)")) field_index.referer = index; if (!strcmp(cp, "sc-bytes")) field_index.size = index; if (!strcmp(cp, "cs(User-Agent)")) field_index.agent = index; if (!strcmp(cp, "cs-username")) field_index.username = index; /* Continue with the next field */ while (*cp) cp++; cp++; index++; } field_index.fields = index -1; } /* Return because this header line is completely parsed */ return 0; } /* A data line has been found */ /* Check if the number of entries in this line are conform to the format specified in the header */ index = 1; while ((cp < eob) && (*cp != '\r') && (*cp != '\n')) { while (*cp) cp++; cp++; index++; } if (index-1 != field_index.fields) return 0; /* Reset pointer */ cp = buffer; /* Reset the field pointers and begin parsing the data line */ memset(&fields, 0, sizeof(struct fields_struct)); index = 1; while ((cp < eob) && (*cp != '\r') && (*cp != '\n')) { /* Set the field pointers */ if (index == field_index.date) fields.date = cp; if (index == field_index.time) fields.time = cp; if (index == field_index.ip) fields.ip = cp; if (index == field_index.url) fields.url = cp; if (index == field_index.query) fields.query = cp; if (index == field_index.status) fields.status = cp; if (index == field_index.referer) fields.referer = cp; if (index == field_index.size) fields.size = cp; if (index == field_index.agent) fields.agent = cp; if (index == field_index.username) fields.username = cp; /* Continue with the next data field */ while (*cp) cp++; cp++; index++; } /* Save URL */ if (fields.url) { if (fields.query && (fields.query[0]!='-')) snprintf(log_record->url, MAXURL, "%s?%s", fields.url, fields.query); else strncpy(log_record->url, fields.url, MAXURL - 1); } else return 0; /* Save hostname */ if (fields.ip) strncpy(log_record->hostname, fields.ip, MAXHOST - 1); /* Save response code */ if (fields.status) log_record->resp_code = atoi(fields.status); /* Save referer */ if (fields.referer) strncpy(log_record->refer, fields.referer, MAXREF - 1); /* Save transfer size */ if (fields.size) log_record->xfer_size = strtoul(fields.size, NULL, 10); /* Save user agent */ if (fields.agent) { cp = fields.agent; while (*cp) { if (*cp == '+') *cp = ' '; cp++; } strncpy(log_record->agent, fields.agent, MAXAGENT - 1); } /* Save auth username */ if (fields.username) strncpy(log_record->ident, fields.username, MAXIDENT - 1); /* Parse date and time and save it */ if (fields.date) { log_record->year = atoi(fields.date); while ((fields.date[0] != '\0') && (fields.date[0] != '-')) fields.date++; if (fields.date[0] == '\0') return 0; fields.date++; log_record->month = atoi(fields.date); while ((fields.date[0] != '\0') && (fields.date[0] != '-')) fields.date++; if (fields.date[0] == '\0') return 0; fields.date++; log_record->day = atoi(fields.date); } if (fields.time) { log_record->hour = atoi(fields.time); while ((fields.time[0] != '\0') && (fields.time[0] != ':')) fields.time++; if (fields.time[0] == '\0') return 0; fields.time++; log_record->min = atoi(fields.time); while ((fields.time[0] != '\0') && (fields.time[0] != ':')) fields.time++; if (fields.time[0] == '\0') return 0; fields.time++; log_record->sec = atoi(fields.time); } return 1; } ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������webdruid-0.5.4.orig/webdruid.1����������������������������������������������������������������������0000600�0000000�0000000�00000005212�10066113350�016074� 0����������������������������������������������������������������������������������������������������ustar �root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������.TH webdruid 1 "22-Jun-2004" "Version 0.5.4" "The WebDruid" .SH NAME webdruid - A web site log file analysis tool. .SH SYNOPSIS .B webdruid [\fI option ... \fP] [\fI log-file1 \fP] [\fI log-file2 \fP] ... .PP .B webdruid-resolve [\fI option ... \fP] [\fI log-file1 \fP] [\fI log-file2 \fP] ... .PP .SH DESCRIPTION \fIThe WebDruid\fP is a web site log file analysis program which produces usage statistics in HTML format for viewing with a browser. The results are presented in both columnar and graphical format, which facilitates interpretation. Yearly, monthly, daily and hourly usage statistics are presented, along with the ability to display usage by site, URL, referrer, user agent (browser), username, search strings, entry/exit pages, and country (some information may not be available if not present in the log file being processed). .PP \fIThe WebDruid\fP supports \fBCLF\fP (common log format) log files, as well as \fBCombined\fP log formats as defined by NCSA and others, and variations of these which it attempts to handle intelligently. In addition, \fIthe WebDruid\fP also supports \fBW3C\fP formatted log files, allowing it to parse IIS log files. Logs may also be compressed, via \fBgzip\fP. If a compressed log file is detected, it will be automatically uncompressed while it is read. Compressed logs must have the standard \fIgzip\fP extension of \fB.gz\fP. .PP \fIThe WebDruid\fP, when used with the \fIgraphviz tools\fP, can produce path graphs and users flow graphs. Path graph allows you to see the preferred path your users take when browsing on your web site. Users flow will draw lines between the urls, each line being balanced by the number of hits. For more information see 'Using path & users flox graphs' in the README file. .PP \fIwebdruid-resolve\fP is normally just a symbolic link to \fIwebdruid\fP. When run as \fIwebdruid-resolve\fP, only DNS file creation/updates are performed, and the program will exit once complete. All normal options and configuration directives are available, however many will not be used. .PP \fIThe WebDruid\fP main documentation is located in the README file. It contains instructions on operating with the software, as well as a reference for all the /etc/webdruid/webdruid.conf config file directives, and command line options. .SH BUGS Report bugs to \fIfabien@juliana-multimedia.com\fP. .SH COPYRIGHT Copyright (C) 2003-2004 by Fabien Chevalier. .PP Original Copyright (C) 1997-2000 by Bradford L. Barrett. .PP Distributed under the GNU GPL. See the files "\fICOPYING\fP" and "\fICopyright\fP", supplied with all distributions for additional information. .SH AUTHOR Fabien Chevalier <\fIfabien@juliana-multimedia.com\fP> ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������webdruid-0.5.4.orig/Makefile.in���������������������������������������������������������������������0000600�0000000�0000000�00000013764�10066113350�016265� 0����������������������������������������������������������������������������������������������������ustar �root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# # Makefile for webdruid - a web server log analysis program # # Copyright (C) 2003-2004 Fabien Chevalier (fabien@juliana-multimedia.com) # Copyright (C) 1997-2000 Bradford L. Barrett (brad@mrunix.net) # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version, and provided that the above # copyright and permission notice is included with all distributed # copies of this or derived software. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details (file "COPYING"). # prefix = @prefix@ exec_prefix = @exec_prefix@ BINDIR = @bindir@ WEBDRUIDDATADIR= @datadir@/webdruid/ MANDIR = @mandir@/man1 EXEEXT = @EXEEXT@ SYSCONFDIR = @sysconfdir@ LOCALEDIR = @localedir@ DOTLOCATION = @dotlocation@ CC = @CC@ CFLAGS = @CFLAGS@ LIBS = @LIBS@ DEFS = -DLOCALEDIR=\"@localedir@\" -DWEBDRUIDDATADIR=\"@datadir@/webdruid/\" -DSYSCONFDIR=\"@sysconfdir@\" @DEFS@ @OPTS@ LDFLAGS= @LDFLAGS@ INSTALL= @INSTALL@ INSTALL_PROGRAM=@INSTALL_PROGRAM@ INSTALL_DATA=@INSTALL_DATA@ LANGS=$(shell for a in po/*.po; do basename $${a%.po}; done) # where are the GD header files? GDLIB=@GDLIB@ # Shouldn't have to touch below here! all: webdruid${EXEEXT} po webdruid${EXEEXT}: webdruid.o webdruid.h hashtab.o hashtab.h \ linklist.o linklist.h preserve.o preserve.h \ dns_resolv.o dns_resolv.h parser.o parser.h \ output.o output.h graphs.o graphs.h lang.h \ dot_output.o xml_output.o dot_output.h utils.o utils.h \ sengine.o sengine.h \ logs_mgmt.o logs_mgmt.h \ $(LANGS:%=po/%.mo) $(CC) ${LDFLAGS} -o webdruid${EXEEXT} webdruid.o hashtab.o linklist.o preserve.o parser.o output.o xml_output.o dot_output.o utils.o dns_resolv.o graphs.o sengine.o logs_mgmt.o ${LIBS} rm -f webdruid-resolve${EXEEXT} @LN_S@ webdruid${EXEEXT} webdruid-resolve${EXEEXT} webdruid.o: webdruid.c webdruid.h output.h preserve.h\ graphs.h dns_resolv.h utils.h sengine.h logs_mgmt.h $(CC) ${CFLAGS} ${DEFS} -c webdruid.c parser.o: parser.c parser.h webdruid.h lang.h $(CC) ${CFLAGS} ${DEFS} -c parser.c logs_mgmt.o: logs_mgmt.c webdruid.h lang.h parser.h logs_mgmt.h $(CC) ${CFLAGS} ${DEFS} -c logs_mgmt.c hashtab.o: hashtab.c hashtab.h dns_resolv.h webdruid.h lang.h sengine.h utils.h $(CC) ${CFLAGS} ${DEFS} -c hashtab.c linklist.o: linklist.c linklist.h webdruid.h lang.h $(CC) ${CFLAGS} ${DEFS} -c linklist.c output.o: output.c output.h webdruid.h preserve.h \ hashtab.h graphs.h lang.h dot_output.h utils.h sengine.h $(CC) ${CFLAGS} ${DEFS} -c output.c xml_output.o: xml_output.c xml_output.h webdruid.h preserve.h \ hashtab.h graphs.h lang.h dot_output.h utils.h sengine.h $(CC) ${CFLAGS} ${DEFS} -c xml_output.c preserve.o: preserve.c preserve.h webdruid.h parser.h \ hashtab.h graphs.h lang.h utils.h sengine.h $(CC) ${CFLAGS} ${DEFS} -c preserve.c dns_resolv.o: dns_resolv.c dns_resolv.h lang.h webdruid.h $(CC) ${CFLAGS} ${DEFS} -c dns_resolv.c graphs.o: graphs.c graphs.h webdruid.h lang.h utils.h $(CC) ${CFLAGS} ${DEFS} -I${GDLIB} -c graphs.c dot_output.o: dot_output.c dot_output.h linklist.h hashtab.h \ utils.h $(CC) ${CFLAGS} ${DEFS} -c dot_output.c utils.o: utils.c utils.h webdruid.h lang.h $(CC) ${CFLAGS} ${DEFS} -c utils.c sengine.o: sengine.c sengine.h lang.h webdruid.h utils.h linklist.h hashtab.h $(CC) ${CFLAGS} ${DEFS} -c sengine.c $(LANGS:%=po/%.mo): %.mo: %.po msgfmt $< -o $@ clean: rm -f webdruid webdruid-resolve webdruid.exe* webdruid-resolve.exe* webdruid.pot *.o usage*.png daily*.png hourly*.png rm -f ctry*.png *.html *.hist *.current core *.gif *.dot *.cmap distclean: clean rm -f webdruid.conf *.tar *.tgz *.Z *.tar.gz *~ ~* rm -f Makefile webdruid_lang.h config.h config.cache *.log config.status rm -f config.cache config.log config.status $(LANGS:%=po/%.mo) rm -fR autom4te.cache rm -f po/*~ install: webdruid $(INSTALL_PROGRAM) webdruid${EXEEXT} ${DESTDIR}/${BINDIR}/webdruid${EXEEXT} $(INSTALL_DATA) webdruid.1 ${DESTDIR}/${MANDIR}/webdruid.1 test -d ${WEBDRUIDDATADIR} || mkdir -p ${WEBDRUIDDATADIR} $(INSTALL_DATA) engines.list ${WEBDRUIDDATADIR}/engines.list test -d ${SYSCONFDIR}/webdruid || mkdir -p ${SYSCONFDIR}/webdruid $(INSTALL_DATA) sample.conf ${SYSCONFDIR}/webdruid/webdruid.conf $(INSTALL_DATA) engines.list.local ${SYSCONFDIR}/webdruid/engines.list.local $(INSTALL_DATA) skins/classic/skin-classic.xml.conf ${SYSCONFDIR}/webdruid test -d ${WEBDRUIDDATADIR}/classic || mkdir ${WEBDRUIDDATADIR}/classic $(INSTALL_PROGRAM) skins/classic/apply_skin.sh ${WEBDRUIDDATADIR}/classic $(INSTALL_DATA) skins/classic/bullet.png ${WEBDRUIDDATADIR}/classic $(INSTALL_DATA) skins/classic/bullet2.png ${WEBDRUIDDATADIR}/classic $(INSTALL_DATA) skins/classic/left_arrow.png ${WEBDRUIDDATADIR}/classic $(INSTALL_DATA) skins/classic/right_arrow.png ${WEBDRUIDDATADIR}/classic $(INSTALL_DATA) skins/classic/separator.png ${WEBDRUIDDATADIR}/classic $(INSTALL_DATA) skins/classic/classic.css ${WEBDRUIDDATADIR}/classic $(INSTALL_DATA) skins/classic/classic.xsl ${WEBDRUIDDATADIR}/classic $(INSTALL_DATA) skins/classic/shared.xsl ${WEBDRUIDDATADIR}/classic for a in $(LANGS); do mkdir -p ${DESTDIR}/$(LOCALEDIR)/$$a/LC_MESSAGES; $(INSTALL_DATA) po/$$a.mo ${DESTDIR}/$(LOCALEDIR)/$$a/LC_MESSAGES/webdruid.mo; done rm -f ${DESTDIR}/${BINDIR}/webdruid-resolve (cd ${DESTDIR}/${BINDIR}; @LN_S@ webdruid${EXEEXT} webdruid-resolve) uninstall: rm -f ${BINDIR}/webdruid${EXEEXT} rm -f ${BINDIR}/webdruid-resolve${EXEEXT} rm -f ${MANDIR}/webdruid.1 rm -fR ${SYSCONFDIR}/webdruid rm -fR ${WEBDRUIDDATADIR} for a in $(LANGS); do rm -f $(LOCALEDIR)/$$a/LC_MESSAGES/webdruid.mo; done #this is to update po files po: *.c lang_strings.h xgettext --keyword='_:1' -c *.c lang_strings.h -o webdruid.pot ������������webdruid-0.5.4.orig/CHANGELOG�����������������������������������������������������������������������0000600�0000000�0000000�00000064041�10066113350�015424� 0����������������������������������������������������������������������������������������������������ustar �root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������-------------------------------------------------------------------- 0.5.4 summary from 0.5.3 (fabien@juliana-multimedia.com) -------------------------------------------------------------------- Fixes : o Clarifications on INSTALL manual. o Added /usr/share/fonts/freefont to the default path for truetype fonts, so that Redhat users can use the provided freefont rpm, which installs FreeType fonts in this directory. Changes / Additions : o Better reverse dns algorithm, thanks to Lucas Nussbaum (lucas@lucas-nussbaum.net). We now store the negative results in the database too. Increased TTL for resolved cache entries from 3 days to 30 days o Added greatly improved engines.list, thanks to Enric Naval (enric@griho.net) o W3C log format fix, forwarded by Klaus Reimer: # ------------------------------------------------------------------------ Patch: webalizer-w3c.phu For: Webalizer 2.01.10 + webalizer-w3c patch From: Pierre Hubaut <phubaut@hotmail.com> Desc: Support tab separator when handling W3C Extended Log Format (ELF). Version: 1 This patch, in addition to the patch written by Klaus Reimer <k@ailis.de> providing support for W3C ELF files, adds support of tab fields separator which is encouraged by W3C. Potentially known bug: It is unclear if multiple tabs (or spaces or mixture of whitespace character) is allowed as field separator see http://www.w3.org/TR/WD-logfile.html - question is pending at W3C # ------------------------------------------------------------------------ -------------------------------------------------------------------- 0.5.3 summary from 0.5.2 (fabien@juliana-multimedia.com) -------------------------------------------------------------------- Fixes : o An off-by-one bug in a test in dot_output.c which is rarely executed. On some circumstances, this could lead to an attempt to read memory outside of the adress space allocated to The WebDruid, thus leading to a segmentation fault. o Do not crash if engines list file is malformed, because one engine lacks at least one querytag field. o Fix forgot to write html header somewhere in output.c -------------------------------------------------------------------- 0.5.2 summary from 0.5.1 (fabien@juliana-multimedia.com) -------------------------------------------------------------------- Fixes : o Text alignment in countries pie chart. o Command line options before -c switch could be ignored if the config file specified was given the same option with a different value. o ./configure fixes, added freetype and pthread detection. Reordered checks for iconv and gettext. This allows us to --enable-static with ./configure. Changes / Additions : o DNS support is back. It now uses the generic logs management API. o Increased MAXURLH & MAXREFH to 512. o More work on XML support. -------------------------------------------------------------------- 0.5.1 summary from 0.5.0 (fabien@juliana-multimedia.com) -------------------------------------------------------------------- Fixes : o Various i18n fixes, french translation updates, german translation updates (it seems it was broken before). o Various fixes in dot_output.c, hashtab.h, preserve.c to be able to compile on non C99 compliant compilers (thanks to Klaus Reimer for raising the issue). o Fixed Berkeley DB autodetection...seems somebody had a monkey playing with this part of the code, it was totally broken. We were linking to -ldb3 in all cases, which was plain wrong (thanks to Klaus Reimer again). o Don't link against -lnsl. It's useless. o ./configure script update, config.h support, Add detection macros for gettext, iconv stuff. Changes / Additions : o De-uglyfication Part I : white background for html pages & charts. o Completed internationalisation. We use the gd's ability to print text using true type fonts. Requires gd >= 1.8.4. o Path graphs & Users flow, if enabled, now default to use the FreeSerif font. o Added config file parameter to set the location of the dot utility. Added config file parameter to set the font face used by gd2. o Removed border around paths graphs & users flow drawings. o Sample configuration file updates. o With all above changes, compiling under cygwin now works. -------------------------------------------------------------------- 0.5.0 summary from webalizer 2.01-10-18 (fabien@juliana-multimedia.com) -------------------------------------------------------------------- Fixes : o Fixed memory leaks when parsing options from both /etc/webalizer.conf and from the file given at command line -- Valgrind helped me to do this. o Increased MAXSRCHH to 128 Changes / Additions : o Added path graphs support -- this is something like the Pathalizer does. See README for more information. o Added php* to page_type - page_type is now {php*, htm*, cgi} o WebDruid now generates UTF-8 web pages. It will allow for better i18n output. It solves also the issue of non ascii characters being displayed wrongly if the users making the requests used some of them. o WebDruid now supports the CLF log format (used by IIS), thanks to Klaus Reimer <k@ailis.de> o Completely rewritten search engines support - ~ 2% overall speed improvement with a list of 90 search engines. ~ 25% speed improvement with the same 'small' (10 items) list that we had before. o WebDruid comes now with an external text file ('engines.list') which contains a preloaded list of about 90 search engines. o WebDruid now displays search phrases grouped per engines, as well as the url(s) where the engine sent the user ('Target Url') o Updated French Translation (only parts found in HTML output) o Parser code rearranged o Webdruid supports now a basic kind of versioning for it's incremental datafile. As soon as data format has changed, the current incremental data file will with the old format will be ignored, and a warning will be displayed. o Work in progress : XML support o Work in progress : new XHTML report Removed : o DNS lookup feature is no more supported. It is still is the code, but it is untested (read : obviously completely buggy). It will reappear as soon as somebody gives me some log files to be able to test. o Squid proxy logs, as well as FTP logs, are not supported anymore. This is because i want to keep the code as simple as possible, avoiding if()'s everywhere. -- And yes, the WebDruid target is web, and only web... o HistoryName parameter removed : The Webdruid will now use webalizer.hist by default. o IncrementalName parameter removed : incremental.i will now be used, 'i' being the incremental data version number. -------------------------------------------------------------------- Webdruid Fork begins here -------------------------------------------------------------------- -------------------------------------------------------------------- 2.01-10-18 summary from 2.01-10 (Debian team) -------------------------------------------------------------------- Fixes o Webalizer now recognizes Opera browsers o Increased MAXAGENT in webalizer.h o Increase URL size in webalizer.h; hopefully this results in less "oversized request field" warnings Changes/addition: o Switched to GNU gettext for internationalization (Cyril Bouthors and Johan Poirier) o IPv6 port by Arkadiusz Mikiewicz <misiek@pld.ORG.PL> for PLD GNU/Linux -------------------------------------------------------------------- 2.01-xx changes from 1.30-04 (brad@mrunix.net) -------------------------------------------------------------------- Fixes: o Fix posible obscure buffer overflow bug in DNS resolver code o Added additional extended character fixes o Let code accept partial content response codes along with 200's o Added code to catch blank hostnames (yes, they have been found!) Will convert them into 'Unknown' o Security fix for cross-site scripting vulnerability found by Flavio Veloso (www.magnux.com). o Fixed a TOTAL_RC off by one error, which would prevent the last response code from being saved when using incremental mode. o Fixed possible segfault condition in MangleAgent code on some malformed user agent names. o Fixed DNS to prevent hangs on blank and malformed hostnames. o Fixed problem calculating visits. Changed timestamps to use seconds since epoch (1/1/1970) which results in more accurate analysis. Also changed normal out of sequence code to handle up to 1 hour of 'slop' in the timestamps. This changed the semantics of the VisitTimeout and -m configuration options, as the values are now specified in number of seconds. o Fixed hostname lowercase problem (wasn't) when using DNS lookups. o Fixed problem with incremental datafile which could cause a read error under certain circumstances (removes control characters). Also changed code to now abort on a read error. o Fixed problem with hash table node creation where objects that were exactly the maximum length would wind up leaving a garbage byte at the end of the memory space allocated. This was causing some very infrequent and widely different problems. o Fixed problem where country graph could be produced incorrectly if using a non-english language and the country name overlapped the pie chart. o Found and fixed a problem with a possible 32-bit wrap around problem using incremental mode on large sites. The problem would cause the KBytes data on large groups to become inaccuate. Changes/Additions: o Modified configure to allow specification of the default config directory. If not given, will use /etc (/etc/webalizer.conf). o Added DailyGraph and DailyStats configuration options to enable or disable the Daily usage graph and stats table from output. o Improved visit calculation logic to reduce 'false' counts generated by external image referrals. o Added reverse DNS lookup capability. This adds the command line switchs -D and -N, and configuration keywords "DNSCache" and "DNSChildren". See the DNS.README for additional info. Based in part on code submitted by Henning P. Schmiedehausen (hps@tanstaafl.de). o Added ability to dump Sites, URL's, Referrers, User Agents, Usernames and Search Strings to tab delimited files, suitable for import into most database and spreadsheet programs. The location of this file may be specified using the "DumpPath" configuration keyword, allowing the data to be kept someplace outside the web servers document tree. The configuration keywords "DumpSites", "DumpURLs", "DumpReferrers", "DumpAgents", "DumpUsers" and "DumpSearchStr" have been added to control the file dumps. Column headers can be included in the file with the "DumpHeader" keyword. Dump filename extensions may be specified using the "DumpExtension" keyword (default is .tab). o Added username analysis, based on usernames found in the log, and only available if username information is present in the log (ie: http authentication or wu-ftpd xferlog). The keywords 'GroupUser', 'HideUser', 'IgnoreUser', 'IncludeUser', 'AllUsers', and 'TopUsers' have been added to the configuration file code. This change also modified the format of the incremental data file. o Added the ability to display ALL sites, URL's, Referrers, User Agents and Search Strings on a seperate HTML page from the normal statistics page. This adds the configuration keywords 'AllSites', 'AllURLs', 'AllReferrers', 'AllAgents' and 'AllSearchStr', which can have either a "yes" or "no" value (default is "no"). Will add a "View All..." link to the bottom of the appropriate "Top" table if enabled. o Added support for squid proxy logs, thanks to code submitted by Steinar H. Gunderson (sgunderson@bigfoot.com). To use squid logs, specify a LogType of 'squid' in the configuration file. This also changed the behaviour of the '-F' command line switch, which now requires a second argument of either 'clf', 'ftp' or 'squid'. o Completely modified the way the various TOP tables are handled and sorted, which now allows extremely large top tables without any performance degredation. Previously, tables greater than a few hundred elements produced a noticable perfomance penalty during processing. o Added the ability to group domains automatically and to hide individual host names from the report, using the 'GroupDomains' and 'HideAllSites' configuration keywords (-g and -X command line options). Domain Grouping is configurable as to the level of grouping (second level domain, third, etc...). HideAllSites forces only grouped site records to be displayed if any. Based on ideas/code by Michael Klemme (mklemme@gmx.de). This changes the behaviour of the '-g' switch, which previously was used to force the use of GMT time for reports. o Added user configurable search engine specification, used for search string analysis. This adds the 'SearchEngine' keyword in configuration files. Based on idea/code by Alexey Kizilov. o Changed code to use the latest version of GD which supports PNG images instead of GIF images. Also included changes in configure script to ensure the presence of the libpng and libz libraries. o Added ability to override log file to STDIN by use of '-' on the command line. o Added gzipped logfile support. The program will automatically detect logfiles with a '.gz' extension and uncompress on the fly. Uses gz file support of zlib, since it's required for our gd/png stuff anyway. Please note that using gzipped logs will incur a small performance penality. o Minor changes to search string code to increase accuracy. This also removes a previous condition that would occasionally cause search strings to incorrectly be counted twice or to be counted as different search strings when only differing by a space. o Minor changes to URL parse code to allow additional characters. Also changed unescape code to properly handle extended chars. o Major changes to hash table node format for reduced memory usage. Instead of fixed size strings, the new format will dynamically allocate string memory and use pointers to existing table data under certain circumstances. The memory savings is significant and will be greatly noticed with large sites. Because of these changes, the formatting of the incremental data file had to be changed, therefore it is incompatible with previous versions. o Major code reorganization and cleanup. This was to facilitate future development and make things more managable. o Usual documentation updates for new features/functions. -------------------------------------------------------------------- 1.30-xx changes from 1.22-06 (brad@mrunix.net) -------------------------------------------------------------------- Fixes: o Fixed minor bug that would allow incorrect site totals for the first day of the month under certain conditions. Changes/Additions: o Added Top Entry and Exit Page tables. Added configuration file keywords TopEntry (-e command line) and TopExit (-E command line) to specify the number of entries to display for each table. The default for both is 10. See README for additional information. o Added 'Group' labels. Allows display of a specified label for grouped entries (in 'Top' tables). Based on patch submitted by Oliver Graf (ograf@rhein-zeitung.de). See sample.conf for examples. o Added 'Visits' totals. The length of time that constitutes a 'visit' can be set using the VisitTimeout configuration keyword (-m command line option). The value must be given in HHMMSS format, you can omit leading zeros. Default is 30 minutes (3000). o Added 'Pages' totals, based on user specified extensions. Changes made to generated graphs as well. Configuration keyword PageType (and command line -P switch) allows specification of extensions to use (defaults to 'htm*' and 'cgi'). Also called "pageviews". o Added Search String analysis. Keyword 'TopSearch' defines how many of the top search strings to display. Default is 20. Can be disabled by using zero (0). o Added native support for ftp logs (xferlog ala wu-ftpd). Added 'LogType' configuration file keyword (-F command line option) to specify log type. Values can be either 'web' or 'ftp', with the default of 'web'. o Changed graphs to handle pages and visits totals. Also added color coded legends, which can be disabled using the GraphLegend configuration keyword (-L command line option). Default is to display them. o Added background lines to graphs. Default is 2 lines, and can be set to any number using the GraphLines configuration keyword (-l command line option). Can use anywhere from none (0) to twenty lines. They will be drawn in all but the country graph. o Added CountryGraph configuration file keyword (-Y command line option) to enable/disable display of country usage pie chart. o Added FoldSeqErr keyword (-f command line option). Normally, the program will ignore log records that are out of sequence (chronological order). This option lets them be folded into the analysis anyway, as if the were the same date/time as the last good record. Apache users can safely ignore :) o Added additonal 'Top' tables for SITES and URL's, sorted by KBytes instead of hits. Two new configuration file keywords, TopKSites and TopKURLs, can be used to specify the number of entries for each (zero to disable). Default for both is 10. o Added additional calculations for max/avg files, pages, visits and KBytes in monthly statistics. o Updated generated HTML code to fully comply with the HTML 4.0 Transitional spec. DOCTYPE header reflects this change as well. o Changed code to use 4 digit years in filenames. Purely for the Y2K phobes who couldn't deal with only two digits (even though it was _purely_ for humans, the program couldn't care less). Unfortunately, this means that you will have to rename previous month files to the new format. Not a big deal if you plan on re-running all your logs to take advantage of the new features. o Major changes to both history file and incremental file formats to handle additional totals (pages/visits data). As a result, this version is INCOMPATABLE with previous versions. See the file README.FIRST for important information on upgrading. o Language files and documentation updated for new functions. -------------------------------------------------------------------- 1.22-xx changes from 1.20-11 (brad@mrunix.net) -------------------------------------------------------------------- Fixes: o Fixed bug in country total generation. Caused country table to show bogus entries if logs contain hostnames that were not fully qualified (ie: don't have the domain name/TLD portion). o Changed/fixed incremental data I/O routines to better detect and handle error conditions. This involved some minor incremental data file format changes as well. Fixes problem large sites were having where random tables were getting munged. o Fixed record parse code to better detect and strip query portion from URL's and Referrer strings. o Fixed segfault condition when more than MAX_CTRY entries were specified for the "Top Countries" table. Changes/Additions: o Added code to detect negative byte transfer sizes in logs (another netscape server kludge :) Could cause KByte xfer sizes to become corrupt. o Several small changes (mostly ifdef/endif's) to make code compile clean 'out-of-the-box' across more platforms (ala SunOS). Also added a GNU autoconf 'configure' script which helps a bit as well. o Added Include* keywords. Allows forcing the inclusion of specified log records. Takes precedence over counterpart Ignore* keywords. o Added HTMLPre, HTMLBody, HTMLEnd and HTMLExtension keywords, and changed behaviour of HTMLHead keyword. Previous versions need only change the 'HTMLHead' keword in existing files to 'HTMLBody' to upgrade. Thanks to Colin Viebrock <cmv@privateworld.com> for the idea and code examples. o Changed mangle agent code to support Opera and other browsers. Also updated response codes to IETF HTTP/1.1 Rev 6 draft. Thanks to Yves Lafon <ylafon@w3.org> for this these. o Added HistoryName and IncrementalName keywords, which allow the specification of the history and incremental data filenames. o Added UseHTTPS keyword, which allows using 'https://' instead of 'http://' for links to URLS in the 'Top URL's' table. Also added check for URL's that already have the protocol specified (such as on virtual web and proxy servers), and to use unmodified if found (will only force to lowercase for matching). o Added code to ignore out-of-sequence log records. o Added code to force hostnames to lowercase (was causing country skew). o Disabled display of blank (zero hit) days at start of daily stat table. o Added records per second calculation to timing totals. o ALT= tags now use translated strings instead of forcing english. o Updated documentation for new functions/features. -------------------------------------------------------------------- 1.20-xx changes from 1.12-10 (brad@mrunix.net) -------------------------------------------------------------------- Fixes: o Modified record parse routine to not touch stuff between quotes ("). Was causing problems parsing some malformed request fields. o Fixed memory leak in MangleAgent code, and relocated to elimitate un-necessary processing (causing segfault on some machines). Changes/Additions: o Changed transfer totals on host/url structures to support large groupings (such as *.gif) on heavly hit servers. Hopefully, this should cure the 32bit overflow problem large sites were having. o Changed daily transfer totals to support transfers greater than roughly 4.2 gigabytes a day. o Added some missing HTML tags and altered the way totals are calculated on the 'Top' tables (to correct for grouped records). o Added incremental run capability (-p command line option or "Incremental" configuration file keyword). -------------------------------------------------------------------- 1.1x-xx changes from 1.00-05 (brad@mrunix.net) -------------------------------------------------------------------- Fixes: o Re-wrote the Group* logic, fixing a bug that allowed hiding of objects when they shouldn't be. o Fixed broken IgnoreReferrer code. o Modified config parse code to handle extended characters. o Misc. minor bug fixes/changes. Added a missing fclose. o Cleaned up generated HTML. o Fixed duplicate warnings on large referrer fields. o Fixed country table bug adding grouped records to totals. Changes/Additions: o Added GroupSite, GroupReferrer and GroupAgent keywords to round out the Group* configuration options. o Added GroupShading and GroupHighlight keywords to allow selective highlight and shading on grouped rows in table. o Removed the '-L' command line option. Groupings can now only be specified from a configuration file. Language files changed to reflect change. o Added '-V' command line option (identical to '-v') for version. o Added additional language support. Language files will be marked /* New for 1.1 */ where changes have been made. o Various rewrites to streamline the code, accomidate the new group options and make things easier down the road when I implement incremental (partial log) processing. o Usual README and CHANGES documentation updates. -------------------------------------------------------------------- 1.00-xx changes from 0.99-06 (brad@mrunix.net) -------------------------------------------------------------------- Fixes: o Modify record parser so that spaces in usernames (auth field) don't cause record to be skipped (w/'Bad Record' message). o Included various error conditions that were being ignored in the timing statistics ('bad records' value) totals. Changes/Additions: o Added GMTTime (-g) option to force display of timestamps in GMT (UTC) time instead of local timezone. o Added GroupURL (-L) option for grouping of URL's as if they were a single object. See README for details. o Language support in the form of a language specific header file containing all strings used by The Webalizer. English file is used by default unless changed. Support for other languages will be distributed as I receive them. -------------------------------------------------------------------- 0.99-xx changes from 0.98-16 (brad@mrunix.net) -------------------------------------------------------------------- 0.99 is mostly a bug-fix release, with a few added extra goodies. Fixes: o Fixed monthly total transfer size (silent) overflow problem. o Fixed the numerous fprintf format errors. Only seemed to wreak havok on non-intel machines though. o Fixed core dump condition on certain machines when using stdin for input. o Fixed floating point code that caused divide by zero errors on some platforms (most noticably on SCO OpenServer). o Netscape server kludges: Added code to deal with Netscape log header record gracefully. Also added workaround for timestamp error where Netscape sometimes makes a day have 0-24 hours instead of 0-23. The Webalizer will now treat anything greater than 23 as 0. o Resized some fixed field sizes to gain memory usage improvements. Changes/Additions: o Ignore* config keywords added. This allows you to completely ignore certain log records based on site name, URL, user agent or referrer. * Use will cause inaccurate statistics results. See documentation. o ReallyQuiet config keyword (-Q command line option) added. Causes The Webalizer to supress _all_ messages. Useful for cron jobs. o Removed the "Sites" total at the bottom of the summary by month. The total for sites is a useless number and produces a misleadingly high value which detracts from the accuracy of the other totals. o Updated README and CHANGES �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������webdruid-0.5.4.orig/sengine.h�����������������������������������������������������������������������0000644�0000000�0000000�00000007012�10066113350�016016� 0����������������������������������������������������������������������������������������������������ustar �root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* sengine.h - search engines management for The WebDruid Copyright (C) 2003-2004 Fabien Chevalier (fabien@juliana-multimedia.com) This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version, and provided that the above copyright and permission notice is included with all distributed copies of this or derived software. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA */ #define SE_MAXDNAME 63 /* search engine max diplay name length */ #define SE_MAXDNSBEG 7 /* max dns beginning length */ #define SE_MAXDNSMID 31 /* max dns middle length */ #define SE_MAXDNSEXT 5 /* max dns extension length */ #define SE_MAXQTAG 6 /* max query tag (q=, p=, ...) type numbers */ /* structs */ struct snode { /* search string struct */ char *string; /* key phrase or key words */ struct list *urls; /* urls pointed to by these words */ u_long count; struct snode *next; }; typedef struct snode *SNODEPTR; /* Search string node pointer */ struct sengine { const char *display_name; /* what the user will see */ u_long count; SNODEPTR *s_htab; /* ...see above */ }; /* global variables */ extern struct sengine *sp_table; /* search phrases table */ extern int n_sengines; /* number of search engines in table */ /* exported functions */ extern int sengine_find(char *hostname); /* find engine index given hostname */ extern char *sengine_search_phrase(int sengine_index, const char *srch_string); /* give search phrase */ extern int sengine_parse(const char* filename); /* load list of engines from file */ extern struct sengine *sengine_make_table(); /* returns a sorted array of sengines */ extern void sengine_free_table(struct sengine *table[]); /* does what it says */ extern void sengine_free_internal_table(); /* must be called once before exit */ extern int sengine_add_search_phrase(char *sp, char *url, u_long count, struct sengine table[], int index); /* adds search phrase to given sengine table */ extern int sengine_put_snode(char *sp, char *url, u_long count, SNODEPTR *htab); /* puts search node in given htab */ ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������webdruid-0.5.4.orig/xml_output.h��������������������������������������������������������������������0000644�0000000�0000000�00000002276�10066113350�016615� 0����������������������������������������������������������������������������������������������������ustar �root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* xml_output.h - XML output dor The WebDruid Copyright (C) 2003 Fabien Chevalier (fabien@juliana-multimedia.com) This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version, and provided that the above copyright and permission notice is included with all distributed copies of this or derived software. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA */ #ifndef _XML_OUTPUT_H #define _XML_OUTPUT_H extern int write_history_xml(); /* produce main XML */ extern int write_month_xml(); /* monthly XML page */ #endif /* _XML_OUTPUT_H */ ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������webdruid-0.5.4.orig/logs_mgmt.h���������������������������������������������������������������������0000644�0000000�0000000�00000006115�10066113350�016361� 0����������������������������������������������������������������������������������������������������ustar �root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* The WebDruid - a web server log analysis program Copyright (C) 2003-2004 Fabien Chevalier (fabien@juliana-multimedia.com) This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version, and provided that the above copyright and permission notice is included with all distributed copies of this or derived software. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA */ #ifndef _LOGS_MGMT_H #define _LOGS_MGMT_H //TODO : these variables delaration is duplicated : fix this!! extern unsigned long total_rec ; /* Total Records Processed */ extern unsigned long total_ignore ; /* Total Records Ignored */ extern unsigned long total_bad ; /* Total Bad Records */ /* This module is here to manage a pool of log files (either flat or gzip'ed), and give their records, starting with the oldest first, and then giving them in order until the youngest is given. The pool is stored internally as a linked list, with the file containing the oldest record on to of the list. */ /*******************************************/ /* LOGS_ADD_FILE - add file to the pool */ /*******************************************/ extern int logs_add_file(const char * filename); /*******************************************/ /* LOGS_ADD_STDIN - adds STDIN to the pool */ /*******************************************/ extern int logs_add_stdin(); /*******************************************/ /* LOGS_NR_FILES - # of files in the pool */ /*******************************************/ extern int logs_nr_files(); /*******************************************/ /* LOGS_REWIND */ /*******************************************/ /* * Once all files in the pool have been read, * rewind them all, so that a call to * logs_next_record gives us the first record * again. */ extern void logs_rewind(); /*******************************************/ /* LOGS_NEXT_RECORD */ /*******************************************/ /* * Fills log_struct with the oldest record in * the pool. * This function moves the file from the main pool * to the read files pool when there is no more * records to read. */ extern int logs_next_record(struct log_struct *precord); /*******************************************/ /* LOGS_NEXT_RECORD */ /*******************************************/ /* * Close log files, free internal data structs */ extern void logs_close(); #endif /* _LOGS_MGMT_H */ ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������webdruid-0.5.4.orig/README.IPv6���������������������������������������������������������������������0000644�0000000�0000000�00000000130�10066113350�015652� 0����������������������������������������������������������������������������������������������������ustar �root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������IPv6 port by Arkadiusz Mikiewicz <misiek@pld.ORG.PL> for PLD GNU/Linux, Sun Sep 2 2001 ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������webdruid-0.5.4.orig/aclocal.m4����������������������������������������������������������������������0000600�0000000�0000000�00000001042�10066113350�016042� 0����������������������������������������������������������������������������������������������������ustar �root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������dnl AC_FIND_PATH(VARIABLE, FILE-TO-FIND, VALUE-IF-NOT-FOUND, SPACE-SEPERATED-PATH) dnl Look for FILE-TO-FIND in SPACE-SEPERATED-PATH, and return the path to dnl the file if found, otherwise return VALUE-IF-NOT-FOUND AC_DEFUN(AC_FIND_PATH,[ AC_MSG_CHECKING(for $2) AC_CACHE_VAL(ac_cv_$1,ac_cv_$1="") INPATH=$ac_cv_$1 if test "$INPATH" = ""; then for i in $4; do if test -f "$i/$2"; then INPATH=$i fi done fi if test "$INPATH" = ""; then AC_MSG_RESULT(no) $1=$3 else AC_MSG_RESULT($INPATH) $1=$INPATH fi AC_SUBST($1)dnl ac_cv_$1=$$1 ]) ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������webdruid-0.5.4.orig/utils.c�������������������������������������������������������������������������0000644�0000000�0000000�00000027402�10066113350�015526� 0����������������������������������������������������������������������������������������������������ustar �root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* utils.c - tools for The WebDruid Copyright (C) 2003-2004 Fabien Chevalier (fabien@juliana-multimedia.com) This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version, and provided that the above copyright and permission notice is included with all distributed copies of this or derived software. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA */ #include "config.h" /* local includes */ /* ensure sys/types */ #ifndef _SYS_TYPES_H #include <sys/types.h> #endif /* some systems need this */ #ifdef HAVE_MATH_H #include <math.h> #endif /* SunOS 4.x Fix */ #ifndef CLK_TCK #define CLK_TCK _SC_CLK_TCK #endif #include <stdio.h> #include <stdlib.h> /* atexit */ #include <ctype.h> /* isspace */ #include <string.h> #include <errno.h> #include <sys/wait.h> #include <signal.h> #include <langinfo.h> /* nl_langinfo */ #include <iconv.h> /* iconv_xxxxx */ #include <sys/stat.h> /* fstat */ #include <unistd.h> /* fstat */ #include "webdruid.h" #include "lang.h" /*********************************************/ /* strtolower_utf8 */ /*********************************************/ /* convert an uft8 string to lower case This is not as simple as it should be. I do not know any solution for generic UNIX systems to do this. For systems with GNU glibc >= 2.3, solution might be to use the following GNU extensions: - newlocale (locale.h) - tolower_l (ctype.h) - freelocale (locale.h) -- I would require more advice. For now, i will only deal with ascii characters. Fabien. 20 aug 2003 */ void strtolower_utf8(char *utf8_str) { if(utf8_str) while(*utf8_str) { if(*utf8_str >= 'A' && *utf8_str <= 'Z') *utf8_str += 'a' - 'A'; utf8_str++; } } /*********************************************/ /* strip_spaces */ /*********************************************/ /* removes a string's trailing and leading spaces */ void strip_spaces(char** str) { char *end; /* strip heading spaces */ while (isspace(**str)) (*str)++; end = *str + strlen(*str) - 1; /* strip trailing spaces */ while((*str != end) && isspace(*end)) end--[0] = 0; } /*********************************************/ /* HASH - return hash value for string */ /*********************************************/ /* note thath the value is not constrained */ u_long hash(char *str) { u_long hashval; for (hashval = 0; *str != '\0'; str++) hashval = *str + 31 * hashval; return hashval; } /*********************************************/ /* PROGRESSIVE_HASH */ /*********************************************/ /* Calculates hash on a set of strings progressively. To be used like this: u_long hash; hash = progrssive_hash(str1, 0); hash = progressive_hash(str2, hash);char *tag ... hash = progressive_hash(strn, hash); */ u_long progressive_hash(char *str, u_long hashval) { for (; *str != '\0'; str++) hashval = *str + 31 * hashval; return hashval; } /*********************************************/ /* OPEN_OUT_FILE - Open file for output */ /*********************************************/ FILE *open_out_file(char *filename) { FILE *out_fp; /* open the file... */ if ( (out_fp=fopen(filename,"w")) == NULL) { if (verbose) fprintf(stderr,"%s %s!\n",_("Error: Unable to open file"),filename); return NULL; } return out_fp; } /*********************************************/ /* OPEN_OUT_FILE_IN_DIR - does what it says */ /*********************************************/ FILE *open_out_file_in_dir(const char *dir,const char *filename) { FILE *out_fp; struct stat st; char buff[256]; if(stat("xml", &st) == 0) { if(!S_ISDIR(st.st_mode)) { if (verbose) fprintf(stderr,"%s %s!\n",_("Error: not a directory! :"),dir); return NULL; } } else { if(mkdir(dir, S_IRWXU | S_IRWXG | S_IRWXO) != 0) { if (verbose) fprintf(stderr,_("Error: Could not create subdirectory %s in output dir: %s"), dir, strerror(errno)); return NULL; } } snprintf(buff, sizeof(buff), "%s/%s", dir, filename); /* open the file... */ if ( (out_fp=fopen(buff,"w")) == NULL) { if (verbose) fprintf(stderr,"%s %s!\n",_("Error: Unable to open file"),buff); return NULL; } return out_fp; } /*********************************************/ /* DUMP_LOGREC - debugging purpose */ /*********************************************/ /*snprintf(log_record->datetime,sizeof(log_record->datetime), "[%02d/%s/%4d:%s -0000]",i,cpx,j,cpy);*/ void dump_logrec(FILE * stream) { fprintf(stream, "hostname: %s\n", log_rec.hostname); fprintf(stream, "datetime: [%02d/%02d/%4d:%02d:%02d:%02d -0000]\n", log_rec.year, log_rec.month, log_rec.day, log_rec.hour, log_rec.min, log_rec.sec); fprintf(stream, "url: %s\n", log_rec.url); fprintf(stream, "resp_code: %d\n", log_rec.resp_code); fprintf(stream, "xfer_size: %lu\n", log_rec.xfer_size); fprintf(stream, "referrer: %s\n", log_rec.refer); fprintf(stream, "srch_string: %s\n", log_rec.srchstr); } /*****************************************************************/ /* */ /* JDATE - Julian date calculator */ /* */ /* Calculates the number of days since Jan 1, 0000. */ /* */ /* Originally written by Bradford L. Barrett (03/17/1988) */ /* Returns an unsigned long value representing the number of */ /* days since January 1, 0000. */ /* */ /* Note: Due to the changes made by Pope Gregory XIII in the */ /* 16th Centyry (Feb 24, 1582), dates before 1583 will */ /* not return a truely accurate number (will be at least */ /* 10 days off). Somehow, I don't think this will */ /* present much of a problem for most situations :) */ /* */ /* Usage: days = jdate(day, month, year) */ /* */ /* The number returned is adjusted by 5 to facilitate day of */ /* week calculations. The mod of the returned value gives the */ /* day of the week the date is. (ie: dow = days % 7 ) where */ /* dow will return 0=Sunday, 1=Monday, 2=Tuesday, etc... */ /* */ /*****************************************************************/ u_long jdate( int day, int month, int year ) { u_long days; /* value returned */ int mtable[] = {0,31,59,90,120,151,181,212,243,273,304,334}; /* First, calculate base number including leap and Centenial year stuff */ days=(((u_long)year*365)+day+mtable[month-1]+ ((year+4)/4) - ((year/100)-(year/400))); /* now adjust for leap year before March 1st */ if ((year % 4 == 0) && !((year % 100 == 0) && (year % 400 != 0)) && (month < 3)) --days; /* done, return with calculated value */ return(days+5); } /*****************************************************************/ /* _2UTF8 converts given string from current charset to utf8 */ /*****************************************************************/ /* Use is rather simple. For a string that you would write in your program as _("Foo string"), You just have to replace this by _2utf8(_("Foo string")) Beware though that this function use static buffers to store its convertions. The buffers are used one after the other, and when the last one has been used, the first one is used again -- this is a circular use of buffers. The maximum number of buffers limits the number of times you can use this function as result for the same function call. whith 3 buffers, you can do: printf("%s %s %s", _2utf8(_("String 1")), _2utf8(_("String 2")), _2utf8(_("String 3"))) but you cannot do: printf("%s %s %s %s", _2utf8(_("String 1")), _2utf8(_("String 2")), _2utf8(_("String 3")), _2utf8(_("String 4"))) */ /* number of buffers */ #define NBUFFS 5 /* buffers len */ #define BUFFSLEN 1024 /* internal iconv handle */ iconv_t utf8_iconv_h = 0; /* internal free function */ static void free_utf8_iconv_h() { iconv_close(utf8_iconv_h); utf8_iconv_h = 0; } char * _2utf8(char * from) { static char bufs[NBUFFS][BUFFSLEN]; static int curbuf = 0; static char * charset = NULL; size_t in_size; size_t out_size; char *in, *out; if(charset == NULL) charset = nl_langinfo(CODESET); if(strcasecmp("UTF-8", charset) != 0) { if(utf8_iconv_h == 0) { utf8_iconv_h = iconv_open("UTF-8", charset); if(utf8_iconv_h == 0) { fprintf(stderr, _("_2utf8: cannot open iconv handle %s->UTF8: %s\n"), charset, strerror(errno)); /* do for best */ return from; } else atexit(free_utf8_iconv_h); } curbuf = (curbuf + 1) % NBUFFS; in_size = strlen(from) + 1; out_size = BUFFSLEN; in = from; out = bufs[curbuf]; if(iconv(utf8_iconv_h, &in, &in_size, &out, &out_size) == -1) { fprintf(stderr, _("_2utf8: cannot convert string %s from %s to UTF8: %s\n"), from, charset, strerror(errno)); /* reset iconv state -- cf man 3 iconv */ in = NULL; out = NULL; iconv(utf8_iconv_h, &in, &in_size, &out, &out_size); return from; } else return bufs[curbuf]; } else return from; } /*********************************************/ /* SAFE_RUN */ /*********************************************/ /* runs given executable savely - this will kill the child after timeout seconds if it hasn't finished yet if timeout equals 0, timer is disabled returns: - 0 if Ok - 1 if sth went wrong */ /* local variable */ static pid_t safe_run_pid; void do_timeout(int value) { kill(safe_run_pid, SIGKILL); fprintf(stderr,"[safe_run] %s \n",_("Error: killed child, timeout elapsed")); } int safe_run(const char *path, char *const argv[], int timeout) { safe_run_pid = fork(); if(safe_run_pid < 0) { /* error */ fprintf(stderr,"[safe_run] %s : %s\n",_("Error: could not fork :"), strerror(errno)); return 1; } else if(safe_run_pid == 0) { /* son */ execv(path, argv); /* should never get there */ fprintf(stderr,"[safe_run] %s : %s : %s\n",_("Error: could not exec"), path, strerror(errno)); return 1; } else /* safe_run_pid > 0 */ { /* father */ int status; signal(SIGALRM, &do_timeout); alarm(timeout); waitpid(safe_run_pid, &status, 0); alarm(0); signal(SIGALRM, SIG_DFL); if(WIFSIGNALED(status)) return 1; else return WEXITSTATUS(status); } } ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������webdruid-0.5.4.orig/output.h������������������������������������������������������������������������0000600�0000000�0000000�00000003201�10066113350�015712� 0����������������������������������������������������������������������������������������������������ustar �root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* The WebDruid - a web server log analysis program Copyright (C) 2003-2004 Fabien Chevalier (fabien@juliana-multimedia.com) Original webalizer copyright: Copyright (C) 1997-2001 Bradford L. Barrett (brad@mrunix.net) This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version, and provided that the above copyright and permission notice is included with all distributed copies of this or derived software. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA This software uses the gd graphics library, which is copyright by Quest Protein Database Center, Cold Spring Harbor Labs. Please see the documentation supplied with the library for additional information and license terms, or visit www.boutell.com/gd/ for the most recent version of the library and supporting documentation. */ #ifndef _OUTPUT_H #define _OUTPUT_H extern int write_main_index(); /* produce main HTML */ extern int write_month_html(); /* monthy HTML page */ #endif /* _OUTPUT_H */ �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������webdruid-0.5.4.orig/dns_resolv.c��������������������������������������������������������������������0000600�0000000�0000000�00000066107�10066113350�016541� 0����������������������������������������������������������������������������������������������������ustar �root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* The WebDruid - a web server log analysis program Copyright (C) 2003-2004 Fabien Chevalier (fabien@juliana-multimedia.com) Original webalizer copyright: Copyright (C) 1997-2001 Bradford L. Barrett (brad@mrunix.net) This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version, and provided that the above copyright and permission notice is included with all distributed copies of this or derived software. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA This software uses the gd graphics library, which is copyright by Quest Protein Database Center, Cold Spring Harbor Labs. Please see the documentation supplied with the library for additional information and license terms, or visit www.boutell.com/gd/ for the most recent version of the library and supporting documentation. dns_resolv.c - based on the dns-resolver code submitted by Henning P. Schmiedehausen <hps@tanstaafl.de> and modified for inclusion in the Webalizer directly. Enabled with -DUSE_DNS. */ #include "config.h" /*********************************************/ /* STANDARD INCLUDES */ /*********************************************/ #include <time.h> #include <stdio.h> #include <stdlib.h> #include <string.h> #include <unistd.h> /* normal stuff */ #include <ctype.h> #include <sys/utsname.h> #include <sys/times.h> #include <zlib.h> /* Need socket header? */ #ifdef HAVE_SYS_SOCKET_H #include <sys/socket.h> #endif /* ensure getopt */ #ifdef HAVE_GETOPT_H #include <getopt.h> #endif /* ensure sys/types */ #ifndef _SYS_TYPES_H #include <sys/types.h> #endif /* ensure getaddrinfo/getnameinfo */ #include <netdb.h> /* some systems need this */ #ifdef HAVE_MATH_H #include <math.h> #endif /* SunOS 4.x Fix */ #ifndef CLK_TCK #define CLK_TCK _SC_CLK_TCK #endif #ifdef USE_DNS /* skip everything in this file if no DNS */ #include <netinet/in.h> /* include stuff we need for dns lookups, */ #include <arpa/inet.h> /* DB access, file control, etc... */ #include <fcntl.h> #include <netdb.h> #include <signal.h> #include <sys/signal.h> #include <sys/stat.h> #include <sys/time.h> #include <sys/wait.h> /* * The following assumes that Berkeley DB 1.85 headers will be either * in db_185.h or db3.1/db_185.h, or db.h. If this is not the case, we should * be stopped by ./configure script */ #if defined(HAVE_DB_185_H) #include <db_185.h> #elif defined(HAVE_DB3_1_DB_185_H) #include <db3.1/db_185.h> #else #include <db.h> #endif /* HAVE_DB_185_H */ #include "webdruid.h" /* main header */ #include "lang.h" /* language declares */ #include "hashtab.h" /* hash table functions */ #include "logs_mgmt.h" /* log parser functions */ #include "dns_resolv.h" /* our header */ /* local data */ #ifndef HAVE_ERRNO_H int errno; /* errno for those in need */ #endif DB *dns_db = NULL; /* DNS cache database */ int dns_fd = 0; struct dns_child child[MAXCHILD]; /* DNS child pipe data */ DNODEPTR host_table[MAXHASH]; /* hostname/ip hash table */ char buffer[BUFSIZE]; /* log file record buffer */ char tmp_buf[BUFSIZE]; /* used to temp save above */ struct utsname system_info; /* system info structure */ int raiseSigChild = 1; time_t runtime; time_t start_time, end_time; float temp_time; /* internal function prototypes */ static void process_list(DNODEPTR); static void sigChild(int); static void db_put(char *, char *, int); void set_fl(int, int); void clr_fl(int, int); /*********************************************/ /* RESOLVE_DNS - lookup IP in cache */ /*********************************************/ void resolve_dns(struct log_struct *log_rec) { DBT query, response; /* aligned dnsRecord to prevent Solaris from doing a dump */ /* (not found in debugger, as it can dereference it :( */ struct dnsRecord alignedRecord; if (!dns_db) return; /* ensure we have a dns db */ query.data = log_rec->hostname; query.size = strlen(log_rec->hostname); if (debug_mode) fprintf(stderr,"Checking %s...", log_rec->hostname); switch((dns_db->get)(dns_db, &query, &response, 0)) { case -1: if (debug_mode) fprintf(stderr," Lookup error\n"); break; case 1: if (debug_mode) fprintf(stderr," not found\n"); break; case 0: { memcpy(&alignedRecord, response.data, sizeof(struct dnsRecord)); strncpy (log_rec->hostname, ((struct dnsRecord *)response.data)->hostName, MAXHOST); log_rec->hostname[MAXHOST]=0; if (debug_mode) fprintf(stderr," found: %s (%ld)\n", log_rec->hostname, alignedRecord.timeStamp); break; } default: if (debug_mode) fprintf(stderr," Invalid response\n"); } } /*********************************************/ /* DNS_RESOLVER - read log and lookup IP's */ /*********************************************/ int dns_resolver() { DNODEPTR h_entries; DNODEPTR l_list = NULL; int i; int save_verbose=verbose; u_long listEntries = 0; struct sigaction sigPipeAction; struct stat dbStat; struct tms mytms; /* aligned dnsRecord to prevent Solaris from doing a dump */ /* (not found in debugger, as it can dereference it :( */ struct dnsRecord alignedRecord; struct flock tmp_flock; tmp_flock.l_whence=SEEK_SET; /* default flock fields */ tmp_flock.l_start=0; tmp_flock.l_len=0; tmp_flock.l_pid=0; time(&runtime); start_time = times(&mytms); /* get start time */ /* minimal sanity check on it */ if(stat(dns_cache, &dbStat) < 0) { if(errno != ENOENT) { dns_cache=NULL; dns_db=NULL; return 0; /* disable cache */ } } else { if(!dbStat.st_size) /* bogus file, probably from a crash */ { unlink(dns_cache); /* remove it so we can recreate... */ } } /* open cache file */ if(!(dns_db = dbopen(dns_cache, O_RDWR|O_CREAT, 0664, DB_HASH, NULL))) { /* Error: Unable to open DNS cache file <filename> */ if (verbose) fprintf(stderr,"%s %s\n",_("Error: Unable to open DNS cache file"),dns_cache); dns_cache=NULL; dns_db=NULL; return 0; /* disable cache */ } /* get file descriptor */ dns_fd = dns_db->fd(dns_db); tmp_flock.l_type=F_WRLCK; /* set read/write lock type */ if (fcntl(dns_fd,F_SETLK,&tmp_flock) < 0) /* and barf if we cant lock */ { /* Error: Unable to lock DNS cache file <filename> */ if (verbose) fprintf(stderr,"%s %s\n",_("Error: Unable to lock DNS cache file"),dns_cache); dns_db->close(dns_db); dns_cache=NULL; dns_db=NULL; return 0; /* disable cache */ } /* Setup signal handlers */ sigPipeAction.sa_handler = SIG_IGN; sigPipeAction.sa_flags = SA_RESTART; sigemptyset(&sigPipeAction.sa_mask); sigaction(SIGPIPE, &sigPipeAction, NULL); /* disable warnings/errors for this run... */ verbose=0; /* Main loop to read log records from logs pool */ while (logs_next_record(&log_rec) == 0) { #ifdef USE_IPV6 /* IPv6 is supported */ struct addrinfo hints, *ares; memset(&hints, 0, sizeof(hints)); hints.ai_family = AF_UNSPEC; hints.ai_socktype = SOCK_STREAM; hints.ai_flags = AI_NUMERICHOST; if (0 == getaddrinfo(log_rec.hostname, "0", &hints, &ares)) #else /* IPv6 is not supported */ if((log_rec.addr.s_addr = inet_addr(log_rec.hostname)) != INADDR_NONE) #endif { DBT q, r; #ifdef USE_IPV6 /* IPv6 is supported */ memcpy(&log_rec.addr, ares->ai_addr, ares->ai_addrlen); freeaddrinfo(ares); #endif q.data = log_rec.hostname; q.size = strlen(log_rec.hostname); switch((dns_db->get)(dns_db, &q, &r, 0)) { case -1: break; /* Error while retrieving .. just ignore */ case 1: /* No record on file, queue up for resolving */ { put_dnode(log_rec.hostname, &log_rec.addr, host_table); break; } case 0: /* We have a record for this address */ { memcpy(&alignedRecord, r.data, sizeof(struct dnsRecord)); if ((runtime - alignedRecord.timeStamp ) < DNS_CACHE_TTL) { if (alignedRecord.numeric && ((runtime - alignedRecord.timeStamp) > DNS_CACHE_TTL_UNRESOLVED)) put_dnode(log_rec.hostname, &log_rec.addr, host_table); break; } else { /* queue up stale entry for retrieval */ put_dnode(log_rec.hostname, &log_rec.addr, host_table); break; } } } } } verbose = save_verbose; /* restore verbosity level... */ logs_rewind(); listEntries = 0; /* build our linked list l_list */ for(i=0;i < MAXHASH; i++) { for(h_entries=host_table[i]; h_entries ; h_entries = h_entries->next) { h_entries->llist = l_list; l_list = h_entries; listEntries++; } } if(!l_list) { /* No valid addresses found... */ if (verbose>1) printf("%s\n",_("None to process")); tmp_flock.l_type=F_UNLCK; fcntl(dns_fd, F_SETLK, &tmp_flock); dns_db->close(dns_db); return 0; } /* process our list now... */ process_list(l_list); /* display timing totals ? */ end_time = times(&mytms); /* display timing totals? */ if (time_me || (verbose>1)) { if (verbose<2 && time_me) printf("DNS: "); printf("%lu %s ",listEntries, _("addresses")); /* get processing time (end-start) */ temp_time = (float)(end_time-start_time)/CLK_TCK; printf("%s %.2f %s", _("in"), temp_time, _("seconds")); /* calculate records per second */ if (temp_time) i=( (int)((float)listEntries/temp_time) ); else i=0; if ( (i>0) && (i<=listEntries) ) printf(", %d/sec\n", i); else printf("\n"); } /* processing done, exit */ tmp_flock.l_type=F_UNLCK; fcntl(dns_fd, F_SETLK, &tmp_flock); dns_db->close(dns_db); return 0; } /*********************************************/ /* PROCESS_LIST - do the resoluton... */ /*********************************************/ static void process_list(DNODEPTR l_list) { DNODEPTR trav; char child_buf[MAXHOST]; char dns_buf[MAXHOST]; int i; int pid; int nof_children = 0; fd_set rd_set; struct sigaction sigChildAction; sigChildAction.sa_handler = sigChild; sigChildAction.sa_flags = SA_NOCLDSTOP|SA_RESTART; sigemptyset(&sigChildAction.sa_mask); raiseSigChild = 0; sigaction(SIGCHLD, &sigChildAction, NULL); /* fire up our child processes */ for(i=0; i < dns_children; i++) { if(pipe(child[i].inpipe)) { if (verbose) fprintf(stderr,"INPIPE creation error"); return; /* exit(1) */ } if(pipe(child[i].outpipe)) { if (verbose) fprintf(stderr,"OUTPIPE creation error"); return; /* exit(1); */ } /* fork it off */ switch(pid=fork()) { case -1: { if (verbose) fprintf(stderr,"FORK error"); return; /* exit(1); */ } case 0: /* Child */ { int size; #ifndef USE_IPV6 /* IPv6 is not supported */ struct hostent *res_ent; #endif close(child[i].inpipe[0]); close(child[i].outpipe[1]); /* get struct sockaddr_storage (IPv6) / in_addr (IPv4) here */ while((size = read(child[i].outpipe[0], child_buf, MAXHOST))) { if(size < 0) { perror("read error"); exit(1); } else { #ifdef USE_IPV6 /* IPv6 is supported */ char hbuf[NI_MAXHOST]; if(debug_mode) printf("Child got work: %lx(%d)\n", *(unsigned long *)((struct sockaddr*)child_buf)->sa_data, size); if(0 == getnameinfo((struct sockaddr*)child_buf, sizeof(struct sockaddr_storage), hbuf, sizeof(hbuf), NULL, 0, NI_NAMEREQD)) #else if(debug_mode) printf("Child got work: %lx(%d)\n", *((unsigned long *)child_buf), size); if((res_ent = gethostbyaddr(child_buf, size, AF_INET))) #endif { /* must be at least 4 chars */ #ifdef USE_IPV6 /* IPv6 is supported */ if (strlen(hbuf)>3) { if(debug_mode) printf("Child got %s for %lx(%d), %d bytes\n", hbuf, *(unsigned long *)((struct sockaddr *)child_buf)->sa_data, size,strlen(hbuf)); /* If long hostname, take max domain name part */ if ((size = strlen(hbuf)) > MAXHOST-2) strcpy(child_buf,(hbuf+(size-MAXHOST+1))); else strcpy(child_buf, hbuf); size = strlen(child_buf); } else { if (debug_mode) printf("getnameinfo returned bad hbuf!\n"); } } else { if(debug_mode) printf("getnameinfo didn't return any usable information!\n"); } #else /* IPv6 is not supported */ if (strlen(res_ent->h_name)>3) { if(debug_mode) printf("Child got %s for %lx(%d), %d bytes\n", res_ent->h_name, *((unsigned long *)child_buf), size,strlen(res_ent->h_name)); /* If long hostname, take max domain name part */ if ((size = strlen(res_ent->h_name)) > MAXHOST-2) strcpy(child_buf,(res_ent->h_name+(size-MAXHOST+1))); else strcpy(child_buf, res_ent->h_name); size = strlen(child_buf); } else { if (debug_mode) printf("gethostbyaddr returned bad h_name!\n"); } } else { if(debug_mode) printf("gethostbyaddr returned NULL! (%d)\n",h_errno); } #endif if (write(child[i].inpipe[1], child_buf, size) == -1) { perror("write error"); exit(1); } } } close(child[i].inpipe[1]); close(child[i].outpipe[0]); if(debug_mode) printf( "Child %d got closed input, shutting down\n", i); fflush(stdout); exit(0); } /* case 0 */ default: { child[i].pid = pid; child[i].flags = DNS_CHILD_READY|DNS_CHILD_RUNNING; nof_children++; close(child[i].inpipe[1]); close(child[i].outpipe[0]); set_fl(child[i].inpipe[0], O_NONBLOCK); } } } trav = l_list; while(nof_children) { static struct timeval selectTimeval; int res; int max_fd; FD_ZERO(&rd_set); max_fd = 0; if(raiseSigChild) { int pid; while((pid = waitpid(-1, NULL, WNOHANG)) > 0) { for(i=0;i<dns_children;i++) { if(child[i].pid == pid) { child[i].pid = 0; child[i].flags &= ~(DNS_CHILD_READY|DNS_CHILD_RUNNING); nof_children--; if(debug_mode) printf("Reaped Child %d\n", pid); break; } } } raiseSigChild--; continue; /* while, nof children has just changed */ } for(i=0;i<dns_children;i++) { if(child[i].flags & DNS_CHILD_RUNNING) /* Child is running */ { if(child[i].flags & DNS_CHILD_READY) { child[i].flags &= ~DNS_CHILD_READY; if(trav) /* something to resolve */ { #ifdef USE_IPV6 /* IPv6 is supported */ if (write(child[i].outpipe[1], &trav->addr, sizeof(trav->addr)) != -1) #else if (write(child[i].outpipe[1], &(trav->addr.s_addr), sizeof(trav->addr.s_addr)) != -1) #endif { /* We will watch this child */ child[i].cur = trav; FD_SET(child[i].inpipe[0], &rd_set); max_fd = MAX(max_fd, child[i].inpipe[0]); if(debug_mode) #ifdef USE_IPV6 /* IPv6 is supported */ printf("Giving %s (%lx) to Child %d for resolving\n", child[i].cur->string, *(unsigned long *)((struct sockaddr *)&child[i].cur->addr)->sa_data, i); #else printf("Giving %s (%lx) to Child %d for resolving\n", child[i].cur->string, (unsigned long)child[i].cur->addr.s_addr, i); #endif trav = trav->llist; } else /* write error */ { if(errno != EINTR) /* Could be a signal */ { perror("Could not write to pipe"); close(child[i].outpipe[1]); /* kill */ child[i].flags &= ~DNS_CHILD_RUNNING; /* child */ } } } else /* List is complete */ { close(child[i].outpipe[1]); /* Go away */ child[i].flags &= ~DNS_CHILD_RUNNING; /* Child is dead */ } } else { /* Look, the busy child... */ FD_SET(child[i].inpipe[0], &rd_set); max_fd = MAX(max_fd, child[i].inpipe[0]); } } } selectTimeval.tv_sec = 5; /* This stuff ticks in 5 second intervals */ selectTimeval.tv_usec = 0; switch(res = select(max_fd+1, &rd_set, NULL, NULL, &selectTimeval)) { case -1: { if(errno != EINTR) /* Could be a signal */ perror("Error in select"); break; } case 0: /* Timeout, just fall once through the child loop */ { if(debug_mode) printf("tick\n"); break; } default: { for(i=0; i< dns_children;i++) { if(!res) /* All file descriptors done */ break; if(FD_ISSET(child[i].inpipe[0], &rd_set)) { int size; res--; /* One less... */ if(debug_mode) printf("Work requested from Child %d\n", i); switch (size=read(child[i].inpipe[0], dns_buf, MAXHOST)) { case -1: { if(errno != EINTR) perror("Could not read from pipe"); break; } case 0: { /* EOF. Child has closed Pipe. It shouldn't have */ /* done that, could be an error or something. */ /* Reap it */ close(child[i].outpipe[1]); child[i].flags &= ~DNS_CHILD_RUNNING; if(debug_mode) printf("Child %d wants to be reaped\n", i); break; } default: { dns_buf[size] = '\0'; #ifdef USE_IPV6 /* IPv6 is supported */ if(memcmp(dns_buf, &(child[i].cur->addr), sizeof(child[i].cur->addr))) #else if(memcmp(dns_buf, &(child[i].cur->addr.s_addr), sizeof(child[i].cur->addr.s_addr))) #endif { if(debug_mode) printf("Got a result (%d): %s -> %s\n", i, child[i].cur->string, dns_buf); db_put(child[i].cur->string, dns_buf, 0); } else { if(debug_mode) printf("Could not resolve (%d): %s\n", i, child[i].cur->string); db_put(child[i].cur->string,child[i].cur->string,1); } if(debug_mode) printf("Child %d back in task pool\n", i); /* Child is back in the task pool */ child[i].flags |= DNS_CHILD_READY; break; } } } } break; } } } return; } /*********************************************/ /* SET_FL - set flag on pipe FD */ /*********************************************/ void set_fl(int fd, int flags) { int val; /* get current flags */ if ((val=fcntl(fd, F_GETFL, 0)) < 0) if (verbose) fprintf(stderr,"set_fl F_GETFL error\n"); /* set them */ val |= flags; /* and write them back */ if ((val=fcntl(fd, F_SETFL, val)) < 0) if (verbose) fprintf(stderr,"set_fl F_SETFL error\n"); } /*********************************************/ /* CLR_FL - clear flag on pipe FD */ /*********************************************/ void clr_fl(int fd, int flags) { int val; /* Get current flags */ if ((val=fcntl(fd, F_GETFL, 0)) < 0) if (verbose) fprintf(stderr,"clr_fl F_GETFL error\n"); /* set them */ val &= ~flags; /* and write them back */ if ((val=fcntl(fd, F_SETFL, val)) < 0) if (verbose) fprintf(stderr,"clr_fl F_SETFL error\n"); } /*********************************************/ /* DB_PUT - put key/val in the cache db */ /*********************************************/ static void db_put(char *key, char *value, int numeric) { DBT k, v; struct dnsRecord *recPtr = NULL; int nameLen = strlen(value)+1; /* Align to multiple of eight bytes */ int recSize = (sizeof(struct dnsRecord)+nameLen+7) & ~0x7; /* make sure we have a db ;) */ if(dns_db) { if((recPtr = calloc(1, recSize))) { recPtr->timeStamp = runtime; recPtr->numeric = numeric; memcpy(&recPtr->hostName, value, nameLen); k.data = key; k.size = strlen(key); v.size = recSize; v.data = recPtr; if((dns_db->put)(dns_db, &k, &v, 0) < 0) if (verbose>1) fprintf(stderr,"db_put fail!\n"); free(recPtr); } } } /*********************************************/ /* SIGCHILD - raise our signal */ /*********************************************/ static void sigChild(int signum) { raiseSigChild++; } /*********************************************/ /* OPEN_CACHE - open our cache file RDONLY */ /*********************************************/ int open_cache() { struct stat dbStat; struct flock tmp_flock; tmp_flock.l_whence=SEEK_SET; /* default flock fields */ tmp_flock.l_start=0; tmp_flock.l_len=0; tmp_flock.l_pid=0; tmp_flock.l_type=F_RDLCK; /* double check filename was specified */ if(!dns_cache) { dns_db=NULL; return 0; } /* minimal sanity check on it */ if(stat(dns_cache, &dbStat) < 0) { if(errno != ENOENT) return 0; } else { if(!dbStat.st_size) /* bogus file, probably from a crash */ { unlink(dns_cache); /* remove it so we can recreate... */ } } /* open cache file */ if(!(dns_db = dbopen(dns_cache, O_RDONLY, 0664, DB_HASH, NULL))) { /* Error: Unable to open DNS cache file <filename> */ if (verbose) fprintf(stderr,"%s %s\n",_("Error: Unable to open DNS cache file"),dns_cache); return 0; /* disable cache */ } /* get file descriptor */ dns_fd = dns_db->fd(dns_db); /* Get shared lock on cache file */ if (fcntl(dns_fd, F_SETLK, &tmp_flock) < 0) { if (verbose) fprintf(stderr,"%s %s\n",_("Error: Unable to lock DNS cache file"),dns_cache); dns_db->close(dns_db); return 0; } return 1; } /*********************************************/ /* CLOSE_CACHE - close our RDONLY cache */ /*********************************************/ int close_cache() { struct flock tmp_flock; tmp_flock.l_whence=SEEK_SET; /* default flock fields */ tmp_flock.l_start=0; tmp_flock.l_len=0; tmp_flock.l_pid=0; tmp_flock.l_type=F_UNLCK; /* clear lock and close cache file */ fcntl(dns_fd, F_SETLK, &tmp_flock); dns_db->close(dns_db); return 1; } #endif /* USE_DNS */ ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������webdruid-0.5.4.orig/webdruid.LSM��������������������������������������������������������������������0000600�0000000�0000000�00000002001�10066113350�016360� 0����������������������������������������������������������������������������������������������������ustar �root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������Begin3 Title: The WebDruid Version: 0.5.0 Entered-date: 08FEB2004 Description: A fast, free, flexible web server log file analysis program. Produces XHTML output for viewing with a web browser. Written in C on a Linux platform, however designed to be as ANSI/POSIX compliant as possible so porting to other UNIX platforms should be painless. Features multiple language support, incremental processing capabilities, reverse DNS lookup support, export via tab seperated ascii files to popular databases and spreadsheets, and much more. Supports standard CLF and combined (Apache), as well as W3C (IIS) logs format. Keywords: Web Analysis, Log Analysis, Usage Statistics, Linux, Unix, apache Author: Fabien Chevalier Maintained-by: Fabien Chevalier Primary-site: http://www.webdruid.org Original-site: http://www.webdruid.org Platforms: Linux/Unix Copying-policy: GPL End �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������webdruid-0.5.4.orig/webdruid.h����������������������������������������������������������������������0000600�0000000�0000000�00000036036�10066113350�016173� 0����������������������������������������������������������������������������������������������������ustar �root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* The WebDruid - a web server log analysis program Copyright (C) 2003-2004 Fabien Chevalier (fabien@juliana-multimedia.com) Original webalizer copyright: Copyright (C) 1997-2001 Bradford L. Barrett (brad@mrunix.net) This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version, and provided that the above copyright and permission notice is included with all distributed copies of this or derived software. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA This software uses the gd graphics library, which is copyright by Quest Protein Database Center, Cold Spring Harbor Labs. Please see the documentation supplied with the library for additional information and license terms, or visit www.boutell.com/gd/ for the most recent version of the library and supporting documentation. */ #ifndef _WEBDRUID_H #define _WEBDRUID_H #define PCENT(val,max) ((val)?((double)val/(double)max)*100.0 : 0.0) #define IDX_2C(c1,c2) (((c1-'a'+1)<<5)+(c2-'a'+1) ) #define IDX_3C(c1,c2,c3) (((c1-'a'+1)<<10)+((c2-'a'+1)<<5)+(c3-'a'+1) ) #define IDX_4C(c1,c2,c3,c4) (((c1-'a'+1)<<15)+((c2-'a'+1)<<10)+((c3-'a'+1)<<5)+(c4-'a'+1) ) #ifndef MAX #define MAX(a,b) ((a) > (b) ? (a) : (b)) #endif #ifndef MIN #define MIN(a,b) ((a) < (b) ? (a) : (b)) #endif /* The following maximum hash values must be of the form 2^n, as we use now i & (MAXHASH - 1) instead of i % MAXHASH to constraint the result of hash calculation */ #define MAXHASH 2048 /* generic size of our hash tables */ #define MAXSPHASH 256 /* Size of our search phrases hash tables */ #define BUFSIZE 4096 /* Max buffer size for log record */ #define MAXHOST 128 /* Max hostname buffer size */ #define MAXURL 4096 /* Max HTTP request/URL field size */ #define MAXURLH 512 /* Max URL field size in htab */ #define MAXREF 1024 /* Max referrer field size */ #define MAXREFH 512 /* Max referrer field size in htab */ #define MAXAGENT 128 /* Max user agent field size */ #define MAXCTRY 48 /* Max country name size */ #define MAXSRCH 256 /* Max size of search string buffer */ #define MAXSRCHH 128 /* Max size of search str in htab */ #define MAXIDENT 64 /* Max size of ident string (user) */ #define SLOP_VAL 3600 /* out of sequence slop (seconds) */ /* The dot program is known to sometimes enters infinite loop when its heuristics fails to detect loops in graphs That's why we define a timeout value (in sec); */ #define DOT_TIMEOUT 30 /* where is our subdir in the data dir */ #define DATADIR_SUBDIR "/webdruid/" /* engines list file name */ #define ENGINES_FNAME "engines.list" /* When generating XML to output dir, we will write in this sub directory */ #define XML_SUBDIR "xml" /* Log types */ #define LOG_CLF 0 /* CLF/combined log type */ #define LOG_W3C 1 /* W3C extended log format */ /* Response code defines as per draft ietf HTTP/1.1 rev 6 */ #define RC_CONTINUE 100 #define RC_SWITCHPROTO 101 #define RC_OK 200 #define RC_CREATED 201 #define RC_ACCEPTED 202 #define RC_NONAUTHINFO 203 #define RC_NOCONTENT 204 #define RC_RESETCONTENT 205 #define RC_PARTIALCONTENT 206 #define RC_MULTIPLECHOICES 300 #define RC_MOVEDPERM 301 #define RC_MOVEDTEMP 302 #define RC_SEEOTHER 303 #define RC_NOMOD 304 #define RC_USEPROXY 305 #define RC_MOVEDTEMPORARILY 307 #define RC_BAD 400 #define RC_UNAUTH 401 #define RC_PAYMENTREQ 402 #define RC_FORBIDDEN 403 #define RC_NOTFOUND 404 #define RC_METHODNOTALLOWED 405 #define RC_NOTACCEPTABLE 406 #define RC_PROXYAUTHREQ 407 #define RC_TIMEOUT 408 #define RC_CONFLICT 409 #define RC_GONE 410 #define RC_LENGTHREQ 411 #define RC_PREFAILED 412 #define RC_REQENTTOOLARGE 413 #define RC_REQURITOOLARGE 414 #define RC_UNSUPMEDIATYPE 415 #define RC_RNGNOTSATISFIABLE 416 #define RC_EXPECTATIONFAILED 417 #define RC_SERVERERR 500 #define RC_NOTIMPLEMENTED 501 #define RC_BADGATEWAY 502 #define RC_UNAVAIL 503 #define RC_GATEWAYTIMEOUT 504 #define RC_BADHTTPVER 505 /* Index defines for RC codes */ #define IDX_UNDEFINED 0 #define IDX_CONTINUE 1 #define IDX_SWITCHPROTO 2 #define IDX_OK 3 #define IDX_CREATED 4 #define IDX_ACCEPTED 5 #define IDX_NONAUTHINFO 6 #define IDX_NOCONTENT 7 #define IDX_RESETCONTENT 8 #define IDX_PARTIALCONTENT 9 #define IDX_MULTIPLECHOICES 10 #define IDX_MOVEDPERM 11 #define IDX_MOVEDTEMP 12 #define IDX_SEEOTHER 13 #define IDX_NOMOD 14 #define IDX_USEPROXY 15 #define IDX_MOVEDTEMPORARILY 16 #define IDX_BAD 17 #define IDX_UNAUTH 18 #define IDX_PAYMENTREQ 19 #define IDX_FORBIDDEN 20 #define IDX_NOTFOUND 21 #define IDX_METHODNOTALLOWED 22 #define IDX_NOTACCEPTABLE 23 #define IDX_PROXYAUTHREQ 24 #define IDX_TIMEOUT 25 #define IDX_CONFLICT 26 #define IDX_GONE 27 #define IDX_LENGTHREQ 28 #define IDX_PREFAILED 29 #define IDX_REQENTTOOLARGE 30 #define IDX_REQURITOOLARGE 31 #define IDX_UNSUPMEDIATYPE 32 #define IDX_RNGNOTSATISFIABLE 33 #define IDX_EXPECTATIONFAILED 34 #define IDX_SERVERERR 35 #define IDX_NOTIMPLEMENTED 36 #define IDX_BADGATEWAY 37 #define IDX_UNAVAIL 38 #define IDX_GATEWAYTIMEOUT 39 #define IDX_BADHTTPVER 40 #define TOTAL_RC 41 #ifdef USE_DNS #include <netinet/in.h> /* needed for in_addr structure definition */ #ifndef INADDR_NONE #define INADDR_NONE 0xFFFFFFFF #endif /* INADDR_NONE */ #endif /* Response code structure */ struct response_code { char *desc; /* response code struct */ u_long count; }; /* Country code structure */ struct country_code { u_long idx; char *desc; u_long count; u_long files; double xfer; }; typedef struct country_code *CLISTPTR; /* log record structure */ struct log_struct { char hostname[MAXHOST]; /* hostname */ unsigned short year; /* decoded values */ unsigned short month; /* decoded values */ unsigned short day; /* decoded values */ unsigned short hour; /* decoded values */ unsigned short min; /* decoded values */ unsigned short sec; /* decoded values */ char url[MAXURL]; /* raw request field */ int resp_code; /* response code */ u_long xfer_size; /* xfer size in bytes */ #ifdef USE_DNS #ifdef USE_IPV6 struct sockaddr_storage addr; /* IP address structure */ #else struct in_addr addr; /* IP address structure */ #endif #endif /* USE_DNS */ char refer[MAXREF]; /* referrer */ char agent[MAXAGENT]; /* user agent (browser) */ char srchstr[MAXSRCH]; /* search string */ char ident[MAXIDENT]; }; /* ident string (user) */ extern struct log_struct log_rec; extern char *version ; /* program version */ extern char *editlvl ; /* edit level */ extern char *moddate ; /* modification date */ extern char *copyright ; extern int verbose ; /* 2=verbose,1=err, 0=none */ extern int debug_mode ; /* debug mode flag */ extern int time_me ; /* timing display flag */ extern int local_time ; /* 1=localtime 0=GMT (UTC) */ extern int ignore_hist ; /* history flag (1=skip) */ extern int use_xml ; /* Try new xml output */ extern char *skin_name ; /* skin to use */ extern int hourly_graph ; /* hourly graph display */ extern int hourly_stats ; /* hourly stats table */ extern int daily_graph ; /* daily graph display */ extern int daily_stats ; /* daily stats table */ extern int path_graph ; /* show path graph */ extern int path_graph_max_paths; /* path graph max paths */ extern int users_flow ; /* users flow graph */ extern int users_flow_max_edges; /* users flow max edges */ extern char *font_face ; /* font face name for gd2 */ extern int ctry_graph ; /* country graph display */ extern int shade_groups ; /* Group shading 0=no 1=yes */ extern int hlite_groups ; /* Group hlite 0=no 1=yes */ extern int mangle_agent ; /* mangle user agents */ extern int incremental ; /* incremental mode 1=yes */ extern int use_https ; /* use 'https://' on URL's */ extern int visit_timeout; /* visit timeout (30 min) */ extern int graph_legend ; /* graph legend (1=yes) */ extern int graph_lines ; /* graph lines (0=none) */ extern int fold_seq_err ; /* fold seq err (0=no) */ extern int log_type ; /* (0=clf, 1=ftp, 2=squid) */ extern int group_domains; /* Group domains 0=none */ extern int hide_sites ; /* Hide ind. sites (0=no) */ extern char *hname ; /* hostname for reports */ extern char *html_ext ; /* HTML file prefix */ extern char *dump_ext ; /* Dump file prefix */ extern char *conf_fname ; /* name of config file */ extern char *out_dir ; /* output directory */ extern char *blank_str ; /* blank string */ extern char *dns_cache ; /* DNS cache file name */ extern char *dot_location; /* dot exe filename */ extern int dns_children ; /* # of DNS children */ extern int ntop_sites ; /* top n sites to display */ extern int ntop_sitesK ; /* top n sites (by kbytes) */ extern int ntop_urls ; /* top n url's to display */ extern int ntop_urlsK ; /* top n url's (by kbytes) */ extern int ntop_entry ; /* top n entry url's */ extern int ntop_exit ; /* top n exit url's */ extern int ntop_refs ; /* top n referrers "" */ extern int ntop_agents ; /* top n user agents "" */ extern int ntop_ctrys ; /* top n countries "" */ extern int ntop_search ; /* top n search strings */ extern int ntop_users ; /* top n users to display */ extern int all_sites ; /* List All sites (0=no) */ extern int all_urls ; /* List All URL's (0=no) */ extern int all_refs ; /* List All Referrers */ extern int all_agents ; /* List All User Agents */ extern int all_search ; /* List All Search Strings */ extern int all_users ; /* List All Usernames */ extern int dump_sites ; /* Dump tab delimited sites */ extern int dump_urls ; /* URL's */ extern int dump_refs ; /* Referrers */ extern int dump_agents ; /* User Agents */ extern int dump_users ; /* Usernames */ extern int dump_search ; /* Search strings */ extern int dump_header ; /* Dump header as first rec */ extern char *dump_path ; /* Path for dump files */ extern u_long cur_tstamp; /* Current timestamp */ extern u_long epoch; /* used for timestamp adj. */ extern int check_dup; /* check for dups flag */ extern int cur_year,cur_month, /* year/month/day/hour */ cur_day, cur_hour, /* tracking variables */ cur_min, cur_sec; extern double t_xfer; /* monthly total xfer value */ extern u_long t_hit, t_file, t_site, /* monthly total vars */ t_url, t_ref, t_agent, t_page,t_visit,t_user; extern double tm_xfer[31]; /* daily transfer totals */ extern u_long tm_hit[31], tm_file[31], /* daily total arrays */ tm_site[31],tm_page[31], tm_visit[31]; extern u_long dt_site; /* daily 'sites' total */ extern u_long ht_hit,mh_hit; /* hourly hits totals */ extern u_long th_hit[24], th_file[24], /* hourly total arrays */ th_page[24]; extern double th_xfer[24]; extern int f_day,l_day; /* first/last day vars */ extern CLISTPTR *top_ctrys; /* Top countries table */ /* define our externally visable functions */ extern char *cur_time(); extern u_long ctry_idx(char *); extern void init_counters(); extern int ispage(char *); extern void clean_exit(int retcode); /* frees mem & exits */ #endif /* _WEBDRUID_H */ ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������webdruid-0.5.4.orig/hashtab.c�����������������������������������������������������������������������0000600�0000000�0000000�00000122552�10066113350�015772� 0����������������������������������������������������������������������������������������������������ustar �root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* The WebDruid - a web server log analysis program Copyright (C) 2003-2004 Fabien Chevalier (fabien@juliana-multimedia.com) Original webalizer copyright: Copyright (C) 1997-2001 Bradford L. Barrett (brad@mrunix.net) This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version, and provided that the above copyright and permission notice is included with all distributed copies of this or derived software. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA This software uses the gd graphics library, which is copyright by Quest Protein Database Center, Cold Spring Harbor Labs. Please see the documentation supplied with the library for additional information and license terms, or visit www.boutell.com/gd/ for the most recent version of the library and supporting documentation. */ /*********************************************/ /* STANDARD INCLUDES */ /*********************************************/ #include <time.h> #include <stdio.h> #include <stdlib.h> #include <string.h> #include <unistd.h> /* normal stuff */ #include <ctype.h> #include <sys/utsname.h> #include <sys/times.h> /* ensure getopt */ #ifdef HAVE_GETOPT_H #include <getopt.h> #endif /* ensure sys/types */ #ifndef _SYS_TYPES_H #include <sys/types.h> #endif /* some systems need this */ #ifdef HAVE_MATH_H #include <math.h> #endif /* SunOS 4.x Fix */ #ifndef CLK_TCK #define CLK_TCK _SC_CLK_TCK #endif #include "webdruid.h" /* main header */ #include "lang.h" #include "linklist.h" #include "hashtab.h" #include "utils.h" #include "sengine.h" /* internal function prototypes */ HNODEPTR new_hnode(char *); /* new host node */ UNODEPTR new_unode(char *); /* new url node */ RNODEPTR new_rnode(char *); /* new referrer node */ ANODEPTR new_anode(char *); /* new user agent node */ INODEPTR new_inode(char *); /* new ident node */ #ifdef USE_DNS DNODEPTR new_dnode(char *); /* new DNS node */ #endif /* USE_DNS */ OPNODEPTR new_opnode(char *, char *, char /* new open path node */ *, char *, char *); PNODEPTR new_pnode(LISTPTR, char *, int); /* new path node */ void update_entry(char *); /* update entry/exit */ void update_exit(char *); /* page totals */ /* local data */ /* hash tables for: */ HNODEPTR sm_htab[MAXHASH]; /* sites (monthly) */ HNODEPTR sd_htab[MAXHASH]; /* sites (daily) */ UNODEPTR um_htab[MAXHASH]; /* urls */ RNODEPTR rm_htab[MAXHASH]; /* referrers and agents... */ ANODEPTR am_htab[MAXHASH]; /* user agents */ INODEPTR im_htab[MAXHASH]; /* ident table (username) */ #ifdef USE_DNS DNODEPTR host_table[MAXHASH]; /* DNS hash table */ #endif /* USE_DNS */ OPNODEPTR op_htab[MAXHASH]; /* currently opened path */ PNODEPTR gp_htab[MAXHASH]; /* all path (not sorted) */ PNODEPTR fm_htab[MAXHASH]; /* users flow (monthly) */ /*********************************************/ /* NEW_HNODE - create host node */ /*********************************************/ HNODEPTR new_hnode(char *str) { HNODEPTR newptr; char *sptr; if (strlen(str) >= MAXHOST) { if (verbose) { fprintf(stderr,"[new_hnode] %s (%d)",_("Warning: String exceeds storage size"),(int)strlen(str)); if (debug_mode) fprintf(stderr,":\n--> %s",str); fprintf(stderr,"\n"); } str[MAXHOST-1]=0; } if ( (sptr=malloc(strlen(str)+1))==NULL ) return (HNODEPTR)NULL; strcpy(sptr,str); if (( newptr = malloc(sizeof(struct hnode))) != NULL) { newptr->string =sptr; newptr->visit =0; newptr->tstamp =0; newptr->lasturl =blank_str; } else free(sptr); return newptr; } /*********************************************/ /* PUT_HNODE - insert/update host node */ /*********************************************/ int put_hnode( char *str, /* Hostname */ int type, /* obj type */ u_long count, /* hit count */ u_long file, /* File flag */ double xfer, /* xfer size */ u_long *ctr, /* counter */ u_long visit, /* visits */ u_long tstamp,/* timestamp */ char *lasturl, /* lasturl */ HNODEPTR *htab) /* ptr>next */ { HNODEPTR cptr,nptr; u_long hvalue = hash(str) & (MAXHASH - 1); /* check if hashed */ if ( (cptr = htab[hvalue]) == NULL) { /* not hashed */ if ( (nptr=new_hnode(str)) != NULL) { nptr->flag = type; nptr->count = count; nptr->files = file; nptr->xfer = xfer; nptr->next = NULL; htab[hvalue] = nptr; if (type!=OBJ_GRP) (*ctr)++; if (visit) { nptr->visit=(visit-1); nptr->lasturl=find_url(lasturl); nptr->tstamp=tstamp; return 0; } else { if (ispage(log_rec.url)) { if (htab==sm_htab) update_entry(log_rec.url); nptr->lasturl=find_url(log_rec.url); nptr->tstamp=tstamp; nptr->visit=1; } } } } else { /* hashed */ while (cptr != NULL) { if (strcmp(cptr->string,str)==0) { if ((type==cptr->flag)||((type!=OBJ_GRP)&&(cptr->flag!=OBJ_GRP))) { /* found... bump counter */ cptr->count+=count; cptr->files+=file; cptr->xfer +=xfer; if (ispage(log_rec.url)) { if ((tstamp-cptr->tstamp)>=visit_timeout) { cptr->visit++; if (htab==sm_htab) { update_exit(cptr->lasturl); update_entry(log_rec.url); } } cptr->lasturl=find_url(log_rec.url); cptr->tstamp=tstamp; } return 0; } } cptr = cptr->next; } /* not found... */ if ( (nptr = new_hnode(str)) != NULL) { nptr->flag = type; nptr->count = count; nptr->files = file; nptr->xfer = xfer; nptr->next = htab[hvalue]; htab[hvalue]=nptr; if (type!=OBJ_GRP) (*ctr)++; if (visit) { nptr->visit = (visit-1); nptr->lasturl=find_url(lasturl); nptr->tstamp= tstamp; return 0; } else { if (ispage(log_rec.url)) { if (htab==sm_htab) update_entry(log_rec.url); nptr->lasturl=find_url(log_rec.url); nptr->tstamp= tstamp; nptr->visit=1; } } } } if (nptr!=NULL) { /* set object type */ if (type==OBJ_GRP) nptr->flag=OBJ_GRP; /* is it a grouping? */ else { /* check if it's a hidden object */ if ((hide_sites)||(isinlist(hidden_sites,nptr->string)!=NULL)) nptr->flag=OBJ_HIDE; } } return nptr==NULL; } /*********************************************/ /* DEL_HLIST - delete host hash table */ /*********************************************/ void del_hlist(HNODEPTR *htab) { /* free memory used by hash table */ HNODEPTR aptr,temp; int i; for (i=0;i<MAXHASH;i++) { if (htab[i] != NULL) { aptr = htab[i]; while (aptr != NULL) { temp = aptr->next; free (aptr->string); /* free hostname string space */ free (aptr); /* free hostname structure */ aptr = temp; } htab[i]=NULL; } } } /*********************************************/ /* NEW_UNODE - URL node creation */ /*********************************************/ UNODEPTR new_unode(char *str) { UNODEPTR newptr; char *sptr; if (strlen(str) >= MAXURLH) { if (verbose) { fprintf(stderr,"[new_unode] %s (%d)",_("Warning: String exceeds storage size"),(int)strlen(str)); if (debug_mode) fprintf(stderr,":\n--> %s",str); fprintf(stderr,"\n"); } str[MAXURLH-1]=0; } if ( (sptr=malloc(strlen(str)+1))==NULL) return (UNODEPTR)NULL; strcpy(sptr,str); if (( newptr = malloc(sizeof(struct unode))) != NULL) { newptr->string=sptr; newptr->count = 0; newptr->flag = OBJ_REG; /* This one is unused for now. TODO : check why there is a 'files' member in the unode structure, and maybe delete it. We have to think twice, as that will break incremental file compatibility */ newptr->files = 0; } else free(sptr); return newptr; } /*********************************************/ /* PUT_UNODE - insert/update URL node */ /*********************************************/ int put_unode(char *str, int type, u_long count, double xfer, u_long *ctr, u_long entry, u_long exit, UNODEPTR *htab) { UNODEPTR cptr,nptr; u_long hvalue = hash(str) & (MAXHASH - 1); if (str[0]=='-') return 0; /* check if hashed */ if ( (cptr = htab[hvalue]) == NULL) { /* not hashed */ if ( (nptr=new_unode(str)) != NULL) { nptr->flag = type; nptr->count= count; nptr->xfer = xfer; nptr->next = NULL; nptr->entry= entry; nptr->exit = exit; htab[hvalue] = nptr; if (type!=OBJ_GRP) (*ctr)++; } } else { /* hashed */ while (cptr != NULL) { if (strcmp(cptr->string,str)==0) { if ((type==cptr->flag)||((type!=OBJ_GRP)&&(cptr->flag!=OBJ_GRP))) { /* found... bump counter */ cptr->count+=count; cptr->xfer += xfer; return 0; } } cptr = cptr->next; } /* not found... */ if ( (nptr = new_unode(str)) != NULL) { nptr->flag = type; nptr->count= count; nptr->xfer = xfer; nptr->next = htab[hvalue]; nptr->entry= entry; nptr->exit = exit; htab[hvalue]=nptr; if (type!=OBJ_GRP) (*ctr)++; } } if (nptr!=NULL) { if (type==OBJ_GRP) nptr->flag=OBJ_GRP; else if (isinlist(hidden_urls,nptr->string)!=NULL) nptr->flag=OBJ_HIDE; } return nptr==NULL; } /*********************************************/ /* DEL_ULIST - delete URL hash table */ /*********************************************/ void del_ulist(UNODEPTR *htab) { /* free memory used by hash table */ UNODEPTR aptr,temp; int i; for (i=0;i<MAXHASH;i++) { if (htab[i] != NULL) { aptr = htab[i]; while (aptr != NULL) { temp = aptr->next; free (aptr->string); /* free up URL string memory */ free (aptr); /* free up URL struct node */ aptr = temp; } htab[i]=NULL; } } } /*********************************************/ /* NEW_RNODE - Referrer node creation */ /*********************************************/ RNODEPTR new_rnode(char *str) { RNODEPTR newptr; char *sptr; if (strlen(str) >= MAXREFH) { if (verbose) { fprintf(stderr,"[new_rnode] %s (%d)",_("Warning: String exceeds storage size"),(int)strlen(str)); if (debug_mode) fprintf(stderr,":\n--> %s",str); fprintf(stderr,"\n"); } str[MAXREFH-1]=0; } if ( (sptr=malloc(strlen(str)+1))==NULL ) return (RNODEPTR)NULL; strcpy(sptr,str); if (( newptr = malloc(sizeof(struct rnode))) != NULL) { newptr->string= sptr; newptr->count = 1; newptr->flag = OBJ_REG; } else free(sptr); return newptr; } /*********************************************/ /* PUT_RNODE - insert/update referrer node */ /*********************************************/ int put_rnode(char *str, int type, u_long count, u_long *ctr, RNODEPTR *htab) { RNODEPTR cptr,nptr; u_long hvalue = hash(str) & (MAXHASH - 1); if (str[0]=='-') strcpy(str,"- (Direct Request)"); /* check if hashed */ if ( (cptr = htab[hvalue]) == NULL) { /* not hashed */ if ( (nptr=new_rnode(str)) != NULL) { nptr->flag = type; nptr->count = count; nptr->next = NULL; htab[hvalue] = nptr; if (type!=OBJ_GRP) (*ctr)++; } } else { /* hashed */ while (cptr != NULL) { if (strcmp(cptr->string,str)==0) { if ((type==cptr->flag)||((type!=OBJ_GRP)&&(cptr->flag!=OBJ_GRP))) { /* found... bump counter */ cptr->count+=count; return 0; } } cptr = cptr->next; } /* not found... */ if ( (nptr = new_rnode(str)) != NULL) { nptr->flag = type; nptr->count = count; nptr->next = htab[hvalue]; htab[hvalue]=nptr; if (type!=OBJ_GRP) (*ctr)++; } } if (nptr!=NULL) { if (type==OBJ_GRP) nptr->flag=OBJ_GRP; else if (isinlist(hidden_refs,nptr->string)!=NULL) nptr->flag=OBJ_HIDE; } return nptr==NULL; } /*********************************************/ /* DEL_RLIST - delete referrer hash table */ /*********************************************/ void del_rlist(RNODEPTR *htab) { /* free memory used by hash table */ RNODEPTR aptr,temp; int i; for (i=0;i<MAXHASH;i++) { if (htab[i] != NULL) { aptr = htab[i]; while (aptr != NULL) { temp = aptr->next; free (aptr->string); free (aptr); aptr = temp; } htab[i]=NULL; } } } /*********************************************/ /* NEW_ANODE - User Agent node creation */ /*********************************************/ ANODEPTR new_anode(char *str) { ANODEPTR newptr; char *sptr; if (strlen(str) >= MAXAGENT) { if (verbose) { fprintf(stderr,"[new_anode] %s (%d)",_("Warning: String exceeds storage size"),(int)strlen(str)); if (debug_mode) fprintf(stderr,":\n--> %s",str); fprintf(stderr,"\n"); } str[MAXAGENT-1]=0; } if ( (sptr=malloc(strlen(str)+1))==NULL ) return (ANODEPTR)NULL; strcpy(sptr,str); if (( newptr = malloc(sizeof(struct anode))) != NULL) { newptr->string= sptr; newptr->count = 1; newptr->flag = OBJ_REG; } else free(sptr); return newptr; } /*********************************************/ /* PUT_ANODE - insert/update user agent node */ /*********************************************/ int put_anode(char *str, int type, u_long count, u_long *ctr, ANODEPTR *htab) { ANODEPTR cptr,nptr; u_long hvalue = hash(str) & (MAXHASH - 1); if (str[0]=='-') return 0; /* skip bad user agents */ /* check if hashed */ if ( (cptr = htab[hvalue]) == NULL) { /* not hashed */ if ( (nptr=new_anode(str)) != NULL) { nptr->flag = type; nptr->count= count; nptr->next = NULL; htab[hvalue] = nptr; if (type!=OBJ_GRP) (*ctr)++; } } else { /* hashed */ while (cptr != NULL) { if (strcmp(cptr->string,str)==0) { if ((type==cptr->flag)||((type!=OBJ_GRP)&&(cptr->flag!=OBJ_GRP))) { /* found... bump counter */ cptr->count+=count; return 0; } } cptr = cptr->next; } /* not found... */ if ( (nptr = new_anode(str)) != NULL) { nptr->flag = type; nptr->count = count; nptr->next = htab[hvalue]; htab[hvalue]=nptr; if (type!=OBJ_GRP) (*ctr)++; } } if (type==OBJ_GRP) nptr->flag=OBJ_GRP; else if (isinlist(hidden_agents,nptr->string)!=NULL) nptr->flag=OBJ_HIDE; return nptr==NULL; } /*********************************************/ /* DEL_ALIST - delete user agent hash table */ /*********************************************/ void del_alist(ANODEPTR *htab) { /* free memory used by hash table */ ANODEPTR aptr,temp; int i; for (i=0;i<MAXHASH;i++) { if (htab[i] != NULL) { aptr = htab[i]; while (aptr != NULL) { temp = aptr->next; free (aptr->string); free (aptr); aptr = temp; } htab[i]=NULL; } } } /*********************************************/ /* NEW_INODE - create ident (username) node */ /*********************************************/ INODEPTR new_inode(char *str) { INODEPTR newptr; char *sptr; if (strlen(str) >= MAXIDENT) { if (verbose) { fprintf(stderr,"[new_inode] %s (%d)",_("Warning: String exceeds storage size"),(int)strlen(str)); if (debug_mode) fprintf(stderr,":\n--> %s",str); fprintf(stderr,"\n"); } str[MAXIDENT-1]=0; } if ( (sptr=malloc(strlen(str)+1))==NULL ) return (INODEPTR)NULL; strcpy(sptr,str); if (( newptr = malloc(sizeof(struct inode))) != NULL) { newptr->string =sptr; newptr->visit =1; newptr->tstamp =0; } else free(sptr); return newptr; } /*********************************************/ /* PUT_INODE - insert/update ident node */ /*********************************************/ int put_inode( char *str, /* ident str */ int type, /* obj type */ u_long count, /* hit count */ u_long file, /* File flag */ double xfer, /* xfer size */ u_long *ctr, /* counter */ u_long visit, /* visits */ u_long tstamp,/* timestamp */ INODEPTR *htab) /* hashtable */ { INODEPTR cptr,nptr; u_long hvalue = hash(str) & (MAXHASH - 1); if ((str[0]=='-') || (str[0]==0)) return 0; /* skip if no username */ /* check if hashed */ if ( (cptr = htab[hvalue]) == NULL) { /* not hashed */ if ( (nptr=new_inode(str)) != NULL) { nptr->flag = type; nptr->count = count; nptr->files = file; nptr->xfer = xfer; nptr->next = NULL; htab[hvalue] = nptr; if (type!=OBJ_GRP) (*ctr)++; if (visit) { nptr->visit=(visit-1); nptr->tstamp=tstamp; return 0; } else { if (ispage(log_rec.url)) nptr->tstamp=tstamp; } } } else { /* hashed */ while (cptr != NULL) { if (strcmp(cptr->string,str)==0) { if ((type==cptr->flag)||((type!=OBJ_GRP)&&(cptr->flag!=OBJ_GRP))) { /* found... bump counter */ cptr->count+=count; cptr->files+=file; cptr->xfer +=xfer; if (ispage(log_rec.url)) { if ((tstamp-cptr->tstamp)>=visit_timeout) cptr->visit++; cptr->tstamp=tstamp; } return 0; } } cptr = cptr->next; } /* not found... */ if ( (nptr = new_inode(str)) != NULL) { nptr->flag = type; nptr->count = count; nptr->files = file; nptr->xfer = xfer; nptr->next = htab[hvalue]; htab[hvalue]=nptr; if (type!=OBJ_GRP) (*ctr)++; if (visit) { nptr->visit = (visit-1); nptr->tstamp= tstamp; return 0; } else { if (ispage(log_rec.url)) nptr->tstamp= tstamp; } } } if (nptr!=NULL) { /* set object type */ if (type==OBJ_GRP) nptr->flag=OBJ_GRP; /* is it a grouping? */ else { /* check if it's a hidden object */ if (isinlist(hidden_users,nptr->string)!=NULL) nptr->flag=OBJ_HIDE; } } return nptr==NULL; } /*********************************************/ /* DEL_ILIST - delete ident hash table */ /*********************************************/ void del_ilist(INODEPTR *htab) { /* free memory used by hash table */ INODEPTR aptr,temp; int i; for (i=0;i<MAXHASH;i++) { if (htab[i] != NULL) { aptr = htab[i]; while (aptr != NULL) { temp = aptr->next; free (aptr->string); /* free ident string space */ free (aptr); /* free ident structure */ aptr = temp; } htab[i]=NULL; } } } #ifdef USE_DNS /* only add these for DNS */ /*********************************************/ /* NEW_DNODE - DNS resolver node creation */ /*********************************************/ DNODEPTR new_dnode(char *str) { DNODEPTR newptr; char *sptr; if (strlen(str) >= MAXHOST) { if (verbose) { fprintf(stderr,"[new_dnode] %s (%d)",_("Warning: String exceeds storage size"),(int)strlen(str)); if (debug_mode) fprintf(stderr,":\n--> %s",str); fprintf(stderr,"\n"); } str[MAXHOST-1]=0; } if ( (sptr=malloc(strlen(str)+1))==NULL ) return (DNODEPTR)NULL; strcpy(sptr,str); if (( newptr = malloc(sizeof(struct dnode))) != NULL) { newptr->string= sptr; } else free(sptr); return newptr; } /*********************************************/ /* PUT_DNODE - insert/update dns host node */ /*********************************************/ #ifdef USE_IPV6 int put_dnode(char *str, struct sockaddr_storage *addr, DNODEPTR *htab) #else int put_dnode(char *str, struct in_addr *addr, DNODEPTR *htab) #endif { DNODEPTR cptr,nptr; u_long hvalue = hash(str) & (MAXHASH - 1); if (str[0]==0 || str[0]==' ') return 0; /* skip bad hostnames */ /* check if hashed */ if ( (cptr = htab[hvalue]) == NULL) { /* not hashed */ if ( (nptr=new_dnode(str)) != NULL) { #ifdef USE_IPV6 if (addr) memcpy(&nptr->addr, addr, sizeof(struct sockaddr_storage)); else memset(&nptr->addr, 0, sizeof(struct sockaddr_storage)); #else if (addr) memcpy(&nptr->addr, addr, sizeof(struct in_addr)); else memset(&nptr->addr, 0, sizeof(struct in_addr)); #endif nptr->next = NULL; htab[hvalue] = nptr; } } else { /* hashed */ while (cptr != NULL) { if (strcmp(cptr->string,str)==0) return 0; cptr = cptr->next; } /* not found... */ if ( (nptr = new_dnode(str)) != NULL) { #ifdef USE_IPV6 if (addr) memcpy(&nptr->addr, addr, sizeof(struct sockaddr_storage)); else memset(&nptr->addr, 0, sizeof(struct sockaddr_storage)); #else if (addr) memcpy(&nptr->addr, addr, sizeof(struct in_addr)); else memset(&nptr->addr, 0, sizeof(struct in_addr)); #endif nptr->next = htab[hvalue]; htab[hvalue]=nptr; } } return nptr==NULL; } /*********************************************/ /* DEL_DLIST - delete dns hash table */ /*********************************************/ void del_dlist(DNODEPTR *htab) { /* free memory used by hash table */ DNODEPTR dptr,temp; int i; for (i=0;i<MAXHASH;i++) { if (htab[i] != NULL) { dptr = htab[i]; while (dptr != NULL) { temp = dptr->next; free (dptr->string); free (dptr); dptr = temp; } htab[i]=NULL; } } } #endif /* USE_DNS */ /*********************************************/ /* NEW_OPNODE - create open path node */ /*********************************************/ /* No deep copies. Fields are pointers to respective node items */ OPNODEPTR new_opnode(char *hostname, char *search_string, char *user, char *referrer, char *url ) { OPNODEPTR newptr; if (( newptr = malloc(sizeof(struct opnode))) != NULL) { LISTPTR path; newptr->hostname = find_hostname(hostname); newptr->search_string = ""; /* unused for now */ newptr->user = find_user(user); newptr->referrer = find_referrer(referrer); newptr->tstamp = 0; newptr->hash = progressive_hash(url, 0); path = new_list(find_url(url), 0); /* no deep copy */ if(path == NULL) { free(newptr); newptr = 0; } else newptr->path = path; } return newptr; } /*********************************************/ /* ADD_OPITEM - add url to open path */ /*********************************************/ /* returns: 0 on success 1 on failure */ int add_opitem(char *hostname, char *search_string, char *user, char *referrer, char *url, u_long tstamp, OPNODEPTR * htab) { OPNODEPTR cptr, nptr; u_long hvalue = hash(hostname) & (MAXHASH - 1); if( (cptr = htab[hvalue]) == NULL ) { /* path not opened, open it now! */ if( (nptr = new_opnode(hostname, search_string, user, referrer, url)) != NULL ) { nptr->next = NULL; nptr->tstamp = tstamp; htab[hvalue] = nptr; } else { if(verbose) fprintf(stderr,"[add_opitem] %s \n", _("Warning: out of memory - could not create open path")); return 1; } } else { /* hashed */ while (cptr != NULL) { if(strcmp(hostname, cptr->hostname) == 0) { /* We found our opened path! */ if((tstamp - cptr->tstamp) >= visit_timeout) { /* we consider the visit is too old, let's begin a new path */ if (flush_opnode(hvalue, hostname)) { if (verbose) /* Error flushing node, skipping .... */ fprintf(stderr,"%s %s %s...\n", _("Error flushing path, skipping"), cptr->hostname, (char*)cptr->path->item); return 1; } if( (nptr = new_opnode(hostname, search_string, user, referrer, url)) != NULL ) { nptr->next = htab[hvalue]; nptr->tstamp = tstamp; htab[hvalue] = nptr; } else { if(verbose) fprintf(stderr,"[add_opitem] %s \n", _("Warning: out of memory - could not create open path")); return 1; } } else { /* We add the url to the path, the path is growing! */ /* get the last url of the list */ LISTPTR plptr = 0, lptr = cptr->path; while(lptr != NULL) { plptr = lptr; lptr = lptr->next; } /* only add our url if it differs from the last url from the list */ if(strcmp((char*)plptr->item, url) != 0) { if(add_list(&plptr, find_url(url), 0) != 0) /* no deep copy */ { if(verbose) fprintf(stderr,"[add_opitem] %s \n", _("Warning: out of memory - could not add url to open path")); return 1; } else cptr->hash = progressive_hash(url, cptr->hash); } else { static OPNODEPTR temp; temp = cptr; } } return 0; } cptr = cptr->next; } /* not found... */ if ( (nptr = new_opnode(hostname, search_string, user, referrer, url)) != NULL ) { nptr->tstamp = tstamp; nptr->next = htab[hvalue]; htab[hvalue] = nptr; } } return nptr==NULL; } /*********************************************/ /* FLUSH_OPNODE */ /*********************************************/ /* Takes path out of the open path htab, and puts it into the global path htab, and cuts it into small pieces to put in the flow htab Does nothing if index'ed value is null If hostname null, flushes the first path found at position 'index' */ int flush_opnode(u_long index, char *hostname) { /* find path to remove */ OPNODEPTR ptr = op_htab[index], pptr = 0; if(hostname) /* find in list */ { while(ptr != NULL) { if(strcmp(ptr->hostname, hostname) == 0) break; else { pptr = ptr; ptr = ptr->next; } } } if(ptr != NULL) { /* we don't keep path of length < 1 */ if(ptr->path->next != NULL) { LISTPTR plptr, lptr; LISTPTR flow; u_long flowhash; /* truncate hash */ u_long hash = ptr->hash % MAXHASH; /* cuts path down into small pieces and inserts it in fm_htab */ plptr = ptr->path; lptr = plptr->next; while(lptr != NULL) { /* compute hash - it is based only on the source*/ flowhash = progressive_hash((char *) plptr->item, 0); /* create flow item */ flow = new_list(plptr->item, 0); add_list(&flow, lptr->item, 0); put_pnode(flow, NULL, 1, flowhash % MAXHASH, fm_htab); plptr = lptr; lptr = lptr->next; } /* put path in global hash table -- this will free the path if it is duplicated */ put_pnode(ptr->path, NULL, 1, hash, gp_htab); } else del_list(&ptr->path, 0); /* no deep destroy */ /* remove node from open path htab*/ if(pptr != NULL) pptr->next = ptr->next; else op_htab[index] = ptr->next; /* free node */ free(ptr); return 0; } else return 1; } /*********************************************/ /* FLUSH_OPHTAB */ /*********************************************/ /* flushes old (i.e. older than visit_timeout) nodes from the open path hash table rec_tstamp: last record timestamp. With this we can day if an opened path is old enough to be flushed. If = 0, force flush. */ void flush_ophtab(u_long rec_tstamp) { /* close paths of open path hash table based on last given timestamp */ int i; for(i=0; i<MAXHASH; i++) { OPNODEPTR op = op_htab[i]; OPNODEPTR nextop; while(op != NULL) { nextop = op->next; /* we need to keep next item here because the op structure is freed in case of a flush_opnode call */ if((rec_tstamp == 0) || ((rec_tstamp - op->tstamp) >= visit_timeout)) { /* if too old we flush */ if (flush_opnode(i, op->hostname)) { if (verbose) /* Error flushing open path, skipping .... */ fprintf(stderr,"%s %s %s...\n", _("Error flushing path, skipping"), op->hostname, (char*)op->path->item); } } op = nextop; } } } /*********************************************/ /* DEL_OPLIST - delete opened path htabs */ /*********************************************/ void del_oplist(OPNODEPTR *htab, int delpath) { /* free memory used by hash table */ OPNODEPTR aptr,temp; int i; for (i=0;i<MAXHASH;i++) { if (htab[i] != NULL) { aptr = htab[i]; while (aptr != NULL) { temp = aptr->next; if(delpath != 0) /* we free the list - but not the pointed elements */ del_list(&aptr->path, 0); free (aptr); /* free path structure */ aptr = temp; } htab[i]=NULL; } } } /*********************************************/ /* NEW_PNODE - creates generic path node */ /*********************************************/ PNODEPTR new_pnode(LISTPTR path, char *key, int count) { PNODEPTR newptr; if ( (newptr = malloc(sizeof(struct pnode))) != NULL) { newptr->key = key; newptr->path = path; newptr->count = count; } return newptr; } /*********************************************/ /* PUT_PNODE - adds path node into given htab*/ /*********************************************/ /* key will be the (possibly null) string value attached to path node count is what will be used to initialize the path if it is not already in the htab */ int put_pnode(LISTPTR path, char *key, int count, u_long hashvalue, PNODEPTR *htab) { PNODEPTR cptr,nptr; /* check if hashed */ if ( (cptr = htab[hashvalue]) == NULL) { /* not hashed */ if ( (nptr=new_pnode(path, key, count)) != NULL) { nptr->next = NULL; htab[hashvalue] = nptr; } else { if(verbose) fprintf(stderr,"[put_pnode] %s \n", _("Warning: out of memory - could not put path to path list")); } } else { /* hashed */ while (cptr != NULL) { /* try to find if this path has already been stored */ if((key == cptr->key) || (strcmp(cptr->key, key) == 0)) { /*key is equal, now check path */ LISTPTR lptr1 = cptr->path; LISTPTR lptr2 = path; while( (lptr1 != 0) && (lptr2 != 0)) { if(strcmp((char *)lptr1->item, (char *)lptr2->item) != 0) break; else { lptr1 = lptr1->next; lptr2 = lptr2->next; } } if(lptr1 == lptr2) { /* both null... path match!*/ cptr->count += count; /* don't forget to delete path! (thank you Valgrind) */ del_list(&path, 0); return 0; } } cptr = cptr->next; } /* not found... */ if ( (nptr = new_pnode(path, key, count)) != NULL) { nptr->next = htab[hashvalue]; htab[hashvalue] = nptr; } else { if(verbose) fprintf(stderr,"[put_pnode] %s \n", _("Warning: out of memory - could not put path to path list")); } } return nptr==NULL; } /*********************************************/ /* DEL_PLIST - delete path hash tables */ /*********************************************/ /* This is a generic function meant to free path related hash tables. It's ok as long as: - items pointed by pnode fields are not to be freed by the del_plist function (expect path if delpath != 0) - first item of the xxpnode structs is the pointer on the next item - second item is a pointer on the path */ void del_plist(PNODEPTR *htab, int delpath) { /* free memory used by hash table */ PNODEPTR aptr,temp; int i; for (i=0;i<MAXHASH;i++) { if (htab[i] != NULL) { aptr = htab[i]; while (aptr != NULL) { temp = aptr->next; if(delpath != 0) /* we free the list - but not the pointed elements */ del_list(&aptr->path, 0); free (aptr); /* free path structure */ aptr = temp; } htab[i]=NULL; } } } /*********************************************/ /* FIND_URL - Find URL in hash table */ /*********************************************/ char *find_url(char *str) { UNODEPTR ptr = find_url_node(str); if ( ptr != NULL ) return ptr->string; else return blank_str; /* shouldn't get here */ } /*********************************************/ /* FIND_URL_NODE - Find URL node in htab */ /*********************************************/ UNODEPTR find_url_node(char *str) { UNODEPTR cptr; if ( (cptr=um_htab[hash(str) & (MAXHASH - 1)]) != NULL) { while (cptr != NULL) { if (strcmp(cptr->string,str)==0) return cptr; cptr = cptr->next; } } return NULL; /* shouldn't get here */ } /*********************************************/ /* FIND_HOSTNAME - Find hname in hash table */ /*********************************************/ char *find_hostname(char *str) { HNODEPTR cptr; if ( (cptr=sm_htab[hash(str) & (MAXHASH - 1)]) != NULL) { while (cptr != NULL) { if (strcmp(cptr->string,str)==0) return cptr->string; cptr = cptr->next; } } return blank_str; /* shouldn't get here */ } /*********************************************/ /* FIND_USER */ /* Find user string in hash table */ /*********************************************/ char *find_user(char *str) { ANODEPTR cptr; if ( (cptr=am_htab[hash(str) & (MAXHASH - 1)]) != NULL) { while (cptr != NULL) { if (strcmp(cptr->string,str)==0) return cptr->string; cptr = cptr->next; } } return blank_str; /* shouldn't get here */ } /*********************************************/ /* FIND_REFERRER */ /* Find referrer string in hash table */ /*********************************************/ char *find_referrer(char *str) { RNODEPTR cptr; if ( (cptr=rm_htab[hash(str) & (MAXHASH - 1)]) != NULL) { while (cptr != NULL) { if (strcmp(cptr->string,str)==0) return cptr->string; cptr = cptr->next; } } return blank_str; /* shouldn't get here */ } /*********************************************/ /* UPDATE_ENTRY - update entry page total */ /*********************************************/ void update_entry(char *str) { UNODEPTR uptr; if (str==NULL) return; if ( (uptr = um_htab[hash(str) & (MAXHASH - 1)]) == NULL) return; else { while (uptr != NULL) { if (strcmp(uptr->string,str)==0) { if (uptr->flag!=OBJ_GRP) { uptr->entry++; return; } } uptr=uptr->next; } } } /*********************************************/ /* UPDATE_EXIT - update exit page total */ /*********************************************/ void update_exit(char *str) { UNODEPTR uptr; if (str==NULL) return; if ( (uptr = um_htab[hash(str) & (MAXHASH - 1)]) == NULL) return; else { while (uptr != NULL) { if (strcmp(uptr->string,str)==0) { if (uptr->flag!=OBJ_GRP) { uptr->exit++; return; } } uptr=uptr->next; } } } /*********************************************/ /* MONTH_UPDATE_EXIT - eom exit page update */ /*********************************************/ void month_update_exit(u_long tstamp) { HNODEPTR nptr; int i; for (i=0;i<MAXHASH;i++) { nptr=sm_htab[i]; while (nptr!=NULL) { if (nptr->flag!=OBJ_GRP) { if ((tstamp-nptr->tstamp)>=visit_timeout) update_exit(nptr->lasturl); } nptr=nptr->next; } } } /*********************************************/ /* TOT_VISIT - calculate total visits */ /*********************************************/ u_long tot_visit(HNODEPTR *list) { HNODEPTR hptr; u_long tot=0; int i; for (i=0;i<MAXHASH;i++) { hptr=list[i]; while (hptr!=NULL) { if (hptr->flag!=OBJ_GRP) tot+=hptr->visit; hptr=hptr->next; } } return tot; } ������������������������������������������������������������������������������������������������������������������������������������������������������webdruid-0.5.4.orig/graphs.c������������������������������������������������������������������������0000600�0000000�0000000�00000063625�10066113350�015651� 0����������������������������������������������������������������������������������������������������ustar �root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* graphs.c - produces graphs used by the Webalizer Copyright (C) 1997-2001 Bradford L. Barrett (brad@mrunix.net) This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version, and provided that the above copyright and permission notice is included with all distributed copies of this or derived software. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA This software uses the gd graphics library, which is copyright by Quest Protein Database Center, Cold Spring Harbor Labs. Please see the documentation supplied with the library for additional information and license terms, or visit www.boutell.com/gd/ for the most recent version of the library and supporting documentation. */ #include "config.h" #include <math.h> #include <stdio.h> #include <string.h> #include <sys/types.h> #include <gd.h> #include <gdfontt.h> #include <gdfonts.h> #include <gdfontmb.h> #include "webdruid.h" #include "lang.h" #include "graphs.h" #include "utils.h" /* Some systems don't define this */ #ifndef PI #define PI 3.14159265358979323846 #endif #define COLOR1 green /* graph color - hits */ #define COLOR2 blue /* files */ #define COLOR3 orange /* sites */ #define COLOR4 red /* KBytes */ #define COLOR5 cyan /* Files */ #define COLOR6 yellow /* Visits */ #define CX 156 /* center x (for pie) */ #define CY 150 /* center y (chart) */ #define XRAD 240 /* X-axis radius */ #define YRAD 200 /* Y-axis radius */ #define PTSIZE_SMALL 9.5 #define PTSIZE_MEDIUM 11.5 /* forward reference internal routines */ static void init_graph(char *, int, int); static struct pie_data *calc_arc(float, float); /* common public declarations */ char *numchar[] = { " 0"," 1"," 2"," 3"," 4"," 5"," 6"," 7"," 8"," 9","10", "11","12","13","14","15","16","17","18","19","20", "21","22","23","24","25","26","27","28","29","30","31"}; gdImagePtr im; /* image buffer */ FILE *out; /* output file for PNG */ char maxvaltxt[32]; /* graph values */ float percent; /* percent storage */ u_long julday; /* julday value */ struct pie_data { int x; int y; /* line x,y */ int mx; int my; }; /* midpoint x,y */ /* colors */ int black, white, grey, dkgrey, red, blue, orange, green, cyan, yellow; /* Wrapper Classes for gdImageString & gdImageStringUp */ #define gdImageString(im, f, x, y, s, color) \ gdImageStringWrapper(im, f, x, y, s, color, 0.0) #define gdImageStringUp(im, f, x, y, s, color) \ gdImageStringWrapper(im, f, x, y, s, color, PI/2.0) static void gdImageStringWrapper(gdImagePtr im, gdFontPtr f, int x, int y, unsigned char *s, int color, double rad) { double ptsize; int brect[8]; char * error; if (f == gdFontSmall) ptsize = PTSIZE_SMALL; else ptsize = PTSIZE_MEDIUM; error = gdImageStringFT(im, brect, color, font_face, ptsize, rad, x + (int)(ptsize*sin(rad)), y + (int)(ptsize*cos(rad)), s); if(error != 0 && verbose > 0) fprintf(stderr, _("Warning : unable to draw text using %s font : %s\n"), font_face, error); } /*****************************************************************/ /* */ /* YEAR_GRAPH6x - Year graph with six data sets */ /* */ /*****************************************************************/ int year_graph6x( char *fname, /* file name use */ char *title, /* title for graph */ int fmonth, /* begin month number */ u_long data1[12], /* data1 (hits) */ u_long data2[12], /* data2 (files) */ u_long data3[12], /* data3 (sites) */ double data4[12], /* data4 (kbytes) */ u_long data5[12], /* data5 (views) */ u_long data6[12]) /* data6 (visits) */ { /* local variables */ int i,j,x1,y1,x2; int s_mth; u_long maxval=1; double fmaxval=0.0; /* initalize the graph */ init_graph(title,512,256); /* init as 512 x 256 */ gdImageLine(im, 305,25,305,233,black); /* draw section lines */ gdImageLine(im, 304,25,304,233,white); gdImageLine(im, 305,130,490,130,black); gdImageLine(im, 305,129,490,129,white); /* index lines? */ if (graph_lines) { y1=210/(graph_lines+1); for (i=0;i<graph_lines;i++) gdImageLine(im,21,((i+1)*y1)+25,303,((i+1)*y1)+25,dkgrey); y1=105/(graph_lines+1); for (i=0;i<graph_lines;i++) gdImageLine(im,306,((i+1)*y1)+25,489,((i+1)*y1)+25,dkgrey); for (i=0;i<graph_lines;i++) gdImageLine(im,306,((i+1)*y1)+130,489,((i+1)*y1)+130,dkgrey); } /* x-axis legend */ s_mth = fmonth; for (i=0;i<12;i++) { gdImageString(im,gdFontSmall,28+(i*23),238,_(s_month[s_mth-1]),black); s_mth++; if (s_mth > 12) s_mth = 1; if (data1[i] > maxval) maxval = data1[i]; /* get max val */ if (data2[i] > maxval) maxval = data2[i]; if (data5[i] > maxval) maxval = data5[i]; } if (maxval <= 0) maxval = 1; sprintf(maxvaltxt, "%lu", maxval); gdImageStringUp(im,gdFontSmall,8,26+(strlen(maxvaltxt)*6),maxvaltxt,black); if (graph_legend) /* print color coded legends? */ { /* Kbytes Legend */ i = (strlen(_("KBytes"))*6); gdImageString(im,gdFontSmall,491-i,239,_("KBytes"),dkgrey); gdImageString(im,gdFontSmall,490-i,238,_("KBytes"),COLOR4); /* Sites/Visits Legend */ i = (strlen(_("Visits"))*6); j = (strlen(_("Sites"))*6); gdImageString(im,gdFontSmall,491-i-j-12,11,_("Visits"),dkgrey); gdImageString(im,gdFontSmall,490-i-j-12,10,_("Visits"),COLOR6); gdImageString(im,gdFontSmall,491-j-9,11,"/",dkgrey); gdImageString(im,gdFontSmall,490-j-9,10,"/",black); gdImageString(im,gdFontSmall,491-j,11,_("Sites"),dkgrey); gdImageString(im,gdFontSmall,490-j,10,_("Sites"),COLOR3); /* Hits/Files/Pages Legend */ i = (strlen(_("Pages"))*6); j = (strlen(_("Files"))*6); gdImageStringUp(im,gdFontSmall,8,231,_("Pages"),dkgrey); gdImageStringUp(im,gdFontSmall,7,230,_("Pages"),COLOR5); gdImageStringUp(im,gdFontSmall,8,231-i-3,"/",dkgrey); gdImageStringUp(im,gdFontSmall,7,230-i-3,"/",black); gdImageStringUp(im,gdFontSmall,8,231-i-12,_("Files"),dkgrey); gdImageStringUp(im,gdFontSmall,7,230-i-12,_("Files"),COLOR2); gdImageStringUp(im,gdFontSmall,8,231-i-j-15,"/",dkgrey); gdImageStringUp(im,gdFontSmall,7,230-i-j-15,"/",black); gdImageStringUp(im,gdFontSmall,8,231-i-j-24,_("Hits"),dkgrey); gdImageStringUp(im,gdFontSmall,7,230-i-j-24,_("Hits"),COLOR1); } /* data1 */ s_mth = fmonth; for (i=0; i<12; i++) { if (s_mth > 12) s_mth = 1; percent = ((float)data1[s_mth++ -1] / (float)maxval); if (percent <= 0.0) continue; x1 = 26 + (i*23); x2 = x1 + 13; y1 = 232 - (percent * 203); gdImageFilledRectangle(im, x1, y1, x2, 232, COLOR1); gdImageRectangle(im, x1, y1, x2, 232, black); } /* data2 */ s_mth = fmonth; for (i=0; i<12; i++) { if (s_mth > 12) s_mth = 1; percent = ((float)data2[s_mth++ -1] / (float)maxval); if (percent <= 0.0) continue; x1 = 29 + (i*23); x2 = x1 + 13; y1 = 232 - (percent * 203); gdImageFilledRectangle(im, x1, y1, x2, 232, COLOR2); gdImageRectangle(im, x1, y1, x2, 232, black); } /* data5 */ s_mth = fmonth; for (i=0; i<12; i++) { if (s_mth > 12) s_mth = 1; percent = ((float)data5[s_mth++ -1] / (float)maxval); if (percent <= 0.0) continue; x1 = 32 + (i*23); x2 = x1 + 13; y1 = 232 - (percent * 203); gdImageFilledRectangle(im, x1, y1, x2, 232, COLOR5); gdImageRectangle(im, x1, y1, x2, 232, black); } maxval=0; for (i=0; i<12; i++) { if (data3[i] > maxval) maxval = data3[i]; /* get max val */ if (data6[i] > maxval) maxval = data6[i]; } if (maxval <= 0) maxval = 1; sprintf(maxvaltxt, "%lu", maxval); gdImageStringUp(im, gdFontSmall,493,26+(strlen(maxvaltxt)*6), maxvaltxt, black); /* data6 */ s_mth = fmonth; for (i=0; i<12; i++) { if (s_mth > 12) s_mth = 1; percent = ((float)data6[s_mth++ -1] / (float)maxval); if (percent <= 0.0) continue; x1 = 310 + (i*15); x2 = x1 + 8; y1 = 127 - (percent * 98); gdImageFilledRectangle(im, x1, y1, x2, 127, COLOR6); gdImageRectangle(im, x1, y1, x2, 127, black); } /* data3 */ s_mth = fmonth; for (i=0; i<12; i++) { if (s_mth > 12) s_mth = 1; percent = ((float)data3[s_mth++ -1] / (float)maxval); if (percent <= 0.0) continue; x1 = 314 + (i*15); x2 = x1 + 7; y1 = 127 - (percent * 98); gdImageFilledRectangle(im, x1, y1, x2, 127, COLOR3); gdImageRectangle(im, x1, y1, x2, 127, black); } fmaxval=0.0; for (i=0; i<12; i++) if (data4[i] > fmaxval) fmaxval = data4[i]; /* get max val */ if (fmaxval <= 0.0) fmaxval = 1.0; sprintf(maxvaltxt, "%.0f", fmaxval); gdImageStringUp(im, gdFontSmall,493,130+(strlen(maxvaltxt)*6), maxvaltxt,black); /* data4 */ s_mth = fmonth; for (i=0; i<12; i++) { if (s_mth > 12) s_mth = 1; percent = ((float)data4[s_mth++ -1] / (float)fmaxval); if (percent <= 0.0) continue; x1 = 311 + (i*15); x2 = x1 + 9; y1 = 232 - (percent * 98); gdImageFilledRectangle(im, x1, y1, x2, 232, COLOR4); gdImageRectangle(im, x1, y1, x2, 232, black); } /* save png image */ if ((out = fopen(fname, "wb")) != NULL) { gdImagePng(im, out); fclose(out); } /* deallocate memory */ gdImageDestroy(im); return (0); } /*****************************************************************/ /* */ /* MONTH_GRAPH6 - Month graph with six data sets */ /* */ /*****************************************************************/ #define YSIZE 400 int month_graph6( char *fname, /* filename */ char *title, /* graph title */ int month, /* graph month */ int year, /* graph year */ u_long data1[31], /* data1 (hits) */ u_long data2[31], /* data2 (files) */ u_long data3[31], /* data3 (sites) */ double data4[31], /* data4 (kbytes) */ u_long data5[31], /* data5 (views) */ u_long data6[31]) /* data6 (visits) */ { /* local variables */ int i,j,s,x1,y1,x2; u_long maxval=0; double fmaxval=0.0; /* calc julian date for month */ julday = (jdate(1, month,year) % 7); /* initalize the graph */ init_graph(title,512,400); gdImageLine(im, 21, 180, 490, 180, black); /* draw section lines */ gdImageLine(im, 21, 179, 490, 179, white); gdImageLine(im, 21, 280, 490, 280, black); gdImageLine(im, 21, 279, 490, 279, white); /* index lines? */ if (graph_lines) { y1=154/(graph_lines+1); for (i=0;i<graph_lines;i++) gdImageLine(im,21,((i+1)*y1)+25,489,((i+1)*y1)+25,dkgrey); y1=100/(graph_lines+1); for (i=0;i<graph_lines;i++) gdImageLine(im,21,((i+1)*y1)+180,489,((i+1)*y1)+180,dkgrey); for (i=0;i<graph_lines;i++) gdImageLine(im,21,((i+1)*y1)+280,489,((i+1)*y1)+280,dkgrey); } /* x-axis legend */ for (i=0;i<31;i++) { if ((julday % 7 == 6) || (julday % 7 == 0)) gdImageString(im,gdFontSmall,25+(i*15),382,numchar[i+1],COLOR1); else gdImageString(im,gdFontSmall,25+(i*15),382,numchar[i+1],black); julday++; } /* y-axis legend */ for (i=0; i<31; i++) { if (data1[i] > maxval) maxval = data1[i]; /* get max val */ if (data2[i] > maxval) maxval = data2[i]; if (data5[i] > maxval) maxval = data5[i]; } if (maxval <= 0) maxval = 1; sprintf(maxvaltxt, "%lu", maxval); gdImageStringUp(im, gdFontSmall,8,26+(strlen(maxvaltxt)*6), maxvaltxt,black); if (graph_legend) /* Print color coded legends? */ { /* Kbytes Legend */ gdImageStringUp(im,gdFontSmall,494,376,_("KBytes"),dkgrey); gdImageStringUp(im,gdFontSmall,493,375,_("KBytes"),COLOR4); /* Sites/Visits Legend */ i = (strlen(_("Sites"))*6); gdImageStringUp(im,gdFontSmall,494,276,_("Sites"),dkgrey); gdImageStringUp(im,gdFontSmall,493,275,_("Sites"),COLOR3); gdImageStringUp(im,gdFontSmall,494,276-i-3,"/",dkgrey); gdImageStringUp(im,gdFontSmall,493,275-i-3,"/",black); gdImageStringUp(im,gdFontSmall,494,276-i-12,_("Visits"),dkgrey); gdImageStringUp(im,gdFontSmall,493,275-i-12,_("Visits"),COLOR6); /* Pages/Files/Hits Legend */ s = ( i=(strlen(_("Pages"))*6) )+ ( j=(strlen(_("Files"))*6) )+ ( strlen(_("Hits"))*6 )+ 52; gdImageStringUp(im,gdFontSmall,494,s,_("Pages"),dkgrey); gdImageStringUp(im,gdFontSmall,493,s-1,_("Pages"),COLOR5); gdImageStringUp(im,gdFontSmall,494,s-i-3,"/",dkgrey); gdImageStringUp(im,gdFontSmall,493,s-i-4,"/",black); gdImageStringUp(im,gdFontSmall,494,s-i-12,_("Files"),dkgrey); gdImageStringUp(im,gdFontSmall,493,s-i-13,_("Files"),COLOR2); gdImageStringUp(im,gdFontSmall,494,s-i-j-15,"/",dkgrey); gdImageStringUp(im,gdFontSmall,493,s-i-j-16,"/",black); gdImageStringUp(im,gdFontSmall,494,s-i-j-24,_("Hits"),dkgrey); gdImageStringUp(im,gdFontSmall,493,s-i-j-25,_("Hits"),COLOR1); } /* data1 */ for (i=0; i<31; i++) { percent = ((float)data1[i] / (float)maxval); if (percent <= 0.0) continue; x1 = 25 + (i*15); x2 = x1 + 7; y1 = 176 - (percent * 147); gdImageFilledRectangle(im, x1, y1, x2, 176, COLOR1); gdImageRectangle(im, x1, y1, x2, 176, black); } /* data2 */ for (i=0; i<31; i++) { percent = ((float)data2[i] / (float)maxval); if (percent <= 0.0) continue; x1 = 27 + (i*15); x2 = x1 + 7; y1 = 176 - (percent * 147); gdImageFilledRectangle(im, x1, y1, x2, 176, COLOR2); gdImageRectangle(im, x1, y1, x2, 176, black); } /* data5 */ for (i=0; i<31; i++) { if (data5[i]==0) continue; percent = ((float)data5[i] / (float)maxval); if (percent <= 0.0) continue; x1 = 29 + (i*15); x2 = x1 + 7; y1 = 176 - (percent * 147); gdImageFilledRectangle(im, x1, y1, x2, 176, COLOR5); gdImageRectangle(im, x1, y1, x2, 176, black); } /* sites / visits */ maxval=0; for (i=0; i<31; i++) { if (data3[i]>maxval) maxval = data3[i]; if (data6[i]>maxval) maxval = data6[i]; } if (maxval <= 0) maxval = 1; sprintf(maxvaltxt, "%lu", maxval); gdImageStringUp(im, gdFontSmall,8,180+(strlen(maxvaltxt)*6), maxvaltxt, black); /* data 6 */ for (i=0; i<31; i++) { percent = ((float)data6[i] / (float)maxval); if (percent <= 0.0) continue; x1 = 25 + (i*15); x2 = x1 + 8; y1 = 276 - (percent * 92); gdImageFilledRectangle(im, x1, y1, x2, 276, COLOR6); gdImageRectangle(im, x1, y1, x2, 276, black); } /* data 3 */ for (i=0; i<31; i++) { percent = ((float)data3[i] / (float)maxval); if (percent <= 0.0) continue; x1 = 29 + (i*15); x2 = x1 + 7; y1 = 276 - (percent * 92); gdImageFilledRectangle(im, x1, y1, x2, 276, COLOR3); gdImageRectangle(im, x1, y1, x2, 276, black); } /* data4 */ fmaxval=0.0; for (i=0; i<31; i++) if (data4[i]>fmaxval) fmaxval = data4[i]; if (fmaxval <= 0.0) fmaxval = 1.0; sprintf(maxvaltxt, "%.0f", fmaxval/1024); gdImageStringUp(im, gdFontSmall,8,280+(strlen(maxvaltxt)*6), maxvaltxt, black); for (i=0; i<31; i++) { percent = data4[i] / fmaxval; if (percent <= 0.0) continue; x1 = 26 + (i*15); x2 = x1 + 10; y1 = 375 - ( percent * 91 ); gdImageFilledRectangle(im, x1, y1, x2, 375, COLOR4); gdImageRectangle(im, x1, y1, x2, 375, black); } /* open file for writing */ if ((out = fopen(fname, "wb")) != NULL) { gdImagePng(im, out); fclose(out); } /* deallocate memory */ gdImageDestroy(im); return (0); } /*****************************************************************/ /* */ /* DAY_GRAPH3 - Day graph with three data sets */ /* */ /*****************************************************************/ int day_graph3( char *fname, char *title, u_long data1[24], u_long data2[24], u_long data3[24]) { /* local variables */ int i,j,s,x1,y1,x2; u_long maxval=0; /* initalize the graph */ init_graph(title,512,256); /* index lines? */ if (graph_lines) { y1=210/(graph_lines+1); for (i=0;i<graph_lines;i++) gdImageLine(im,21,((i+1)*y1)+25,489,((i+1)*y1)+25,dkgrey); } /* x-axis legend */ for (i=0;i<24;i++) { gdImageString(im,gdFontSmall,33+(i*19),238,numchar[i],black); if (data1[i] > maxval) maxval = data1[i]; /* get max val */ if (data2[i] > maxval) maxval = data2[i]; if (data3[i] > maxval) maxval = data3[i]; } if (maxval <= 0) maxval = 1; sprintf(maxvaltxt, "%lu", maxval); gdImageStringUp(im, gdFontSmall, 8, 26+(strlen(maxvaltxt)*6), maxvaltxt, black); if (graph_legend) /* print color coded legends? */ { /* Pages/Files/Hits Legend */ s = ( i=(strlen(_("Pages"))*6) )+ ( j=(strlen(_("Files"))*6) )+ ( strlen(_("Hits"))*6 )+ 52; gdImageStringUp(im,gdFontSmall,494,s,_("Pages"),dkgrey); gdImageStringUp(im,gdFontSmall,493,s-1,_("Pages"),COLOR5); gdImageStringUp(im,gdFontSmall,494,s-i-3,"/",dkgrey); gdImageStringUp(im,gdFontSmall,493,s-i-4,"/",black); gdImageStringUp(im,gdFontSmall,494,s-i-12,_("Files"),dkgrey); gdImageStringUp(im,gdFontSmall,493,s-i-13,_("Files"),COLOR2); gdImageStringUp(im,gdFontSmall,494,s-i-j-15,"/",dkgrey); gdImageStringUp(im,gdFontSmall,493,s-i-j-16,"/",black); gdImageStringUp(im,gdFontSmall,494,s-i-j-24,_("Hits"),dkgrey); gdImageStringUp(im,gdFontSmall,493,s-i-j-25,_("Hits"),COLOR1); } /* data1 */ for (i=0; i<24; i++) { percent = ((float)data1[i] / (float)maxval); /* percent of 100% */ if (percent <= 0.0) continue; x1 = 29 + (i*19); x2 = x1 + 10; y1 = 232 - (percent * 203); gdImageFilledRectangle(im, x1, y1, x2, 232, COLOR1); gdImageRectangle(im, x1, y1, x2, 232, black); } /* data2 */ for (i=0; i<24; i++) { percent = ((float)data2[i] / (float)maxval); /* percent of 100% */ if (percent <= 0.0) continue; x1 = 32 + (i*19); x2 = x1 + 10; y1 = 232 - (percent * 203); gdImageFilledRectangle(im, x1, y1, x2, 232, COLOR2); gdImageRectangle(im, x1, y1, x2, 232, black); } /* data3 */ for (i=0; i<24; i++) { percent = ((float)data3[i] / (float)maxval); /* percent of 100% */ if (percent <= 0.0) continue; x1 = 35 + (i*19); x2 = x1 + 10; y1 = 232 - (percent * 203); gdImageFilledRectangle(im, x1, y1, x2, 232, COLOR5); gdImageRectangle(im, x1, y1, x2, 232, black); } /* save as png file */ if ( (out = fopen(fname, "wb")) != NULL) { gdImagePng(im, out); fclose(out); } /* deallocate memory */ gdImageDestroy(im); return (0); } /*****************************************************************/ /* */ /* PIE_CHART - draw a pie chart (10 data items max) */ /* */ /*****************************************************************/ int pie_chart(char *fname, char *title, u_long t_val, u_long data1[], char *legend[]) { int i,x,percent,y=47; double s_arc=0.0; int purple, ltpurple, ltgreen, brown; char buffer[128]; int brect[8]; struct pie_data gdata; /* init graph and colors */ init_graph(title,512,300); purple = gdImageColorAllocate(im, 128, 0, 128); ltgreen = gdImageColorAllocate(im, 128, 255, 192); ltpurple= gdImageColorAllocate(im, 255, 0, 255); brown = gdImageColorAllocate(im, 255, 196, 128); /* do the circle... */ gdImageArc(im, CX, CY, XRAD, YRAD, 0, 360, black); gdImageArc(im, CX, CY+10, XRAD-2, YRAD-2, 2, 178, black); gdImageFillToBorder(im, CX, CY+(YRAD/2)+1, black, black); /* slice the pie */ gdata=*calc_arc(0.0,0.0); gdImageLine(im,CX,CY,gdata.x,gdata.y,black); /* inital line */ for (i=0;i<10;i++) /* run through data array */ { if ((data1[i]!=0)&&(s_arc<1.0)) /* make sure valid slice */ { percent=(((double)data1[i]/t_val)+0.005)*100.0; if (percent<1) break; if (s_arc+((double)percent/100.0)>=1.0) { gdata=*calc_arc(s_arc,1.0); s_arc=1.0; } else { gdata=*calc_arc(s_arc,s_arc+((double)percent/100.0)); s_arc+=(double)percent/100.0; } gdImageLine(im, CX, CY, gdata.x, gdata.y, black); gdImageFill(im, gdata.mx, gdata.my, i+4); snprintf(buffer,sizeof(buffer),"%s (%d%%)",legend[i], percent); gdImageStringFT(0, brect, black, font_face, PTSIZE_MEDIUM, 0, x, y, buffer); x = 480 + brect[0] - brect[2]; gdImageString(im,gdFontMediumBold, x+1, y+1, buffer, black); gdImageString(im,gdFontMediumBold, x, y, buffer, i+4); y+=20; } } if (s_arc < 1.0) /* anything left over? */ { gdata=*calc_arc(s_arc,1.0); gdImageFill(im, gdata.mx, gdata.my, white); snprintf(buffer,sizeof(buffer),"%s (%d%%)", _("Other") ,100-(int)(s_arc*100)); gdImageStringFT(0, brect, black, font_face, PTSIZE_MEDIUM, 0, x, y, buffer); x = 480 + brect[0] - brect[2]; gdImageString(im,gdFontMediumBold, x+1, y+1, buffer, black); gdImageString(im,gdFontMediumBold, x, y, buffer, white); } /* save png image */ if ((out = fopen(fname, "wb")) != NULL) { gdImagePng(im, out); fclose(out); } /* deallocate memory */ gdImageDestroy(im); return (0); } /*****************************************************************/ /* */ /* CALC_ARC - generate x,y coordinates for pie chart */ /* */ /*****************************************************************/ static struct pie_data *calc_arc(float min, float max) { static struct pie_data data; double d; /* Calculate max line */ d=max; data.x=cos(d*(2*PI))*((XRAD-2)/2)+CX; data.y=sin(d*(2*PI))*((YRAD-2)/2)+CY; /* Now get mid-point */ d=((min+max)/2); data.mx=cos(d*(2*PI))*(XRAD/3)+CX; data.my=sin(d*(2*PI))*(YRAD/3)+CY; return &data; } /*****************************************************************/ /* */ /* INIT_GRAPH - initalize graph and draw borders */ /* */ /*****************************************************************/ static void init_graph(char *title, int xsize, int ysize) { im = gdImageCreate(xsize,ysize); /* allocate color maps, background color first*/ white = gdImageColorAllocate(im, 255, 255, 255); grey = gdImageColorAllocate(im, 192, 192, 192); dkgrey = gdImageColorAllocate(im, 128, 128, 128); black = gdImageColorAllocate(im, 0, 0, 0); green = gdImageColorAllocate(im, 0, 128, 92); orange = gdImageColorAllocate(im, 255, 128, 0); blue = gdImageColorAllocate(im, 0, 0, 255); red = gdImageColorAllocate(im, 255, 0, 0); cyan = gdImageColorAllocate(im, 0, 192, 255); yellow = gdImageColorAllocate(im, 255, 255, 0); /* make borders */ gdImageRectangle(im, 20, 25, xsize-21, ysize-21, black); gdImageRectangle(im, 19, 24, xsize-22, ysize-22, white); /*gdImageRectangle(im, 0, 0, xsize-1, ysize-1, black);*/ /* display the graph title */ gdImageString(im, gdFontMediumBold, 20, 8, title, blue); return; } �����������������������������������������������������������������������������������������������������������webdruid-0.5.4.orig/parser.h������������������������������������������������������������������������0000600�0000000�0000000�00000004167�10066113350�015662� 0����������������������������������������������������������������������������������������������������ustar �root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* The WebDruid - a web server log analysis program Copyright (C) 2003-2004 Fabien Chevalier (fabien@juliana-multimedia.com) Original webalizer copyright: Copyright (C) 1997-2001 Bradford L. Barrett (brad@mrunix.net) This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version, and provided that the above copyright and permission notice is included with all distributed copies of this or derived software. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA This software uses the gd graphics library, which is copyright by Quest Protein Database Center, Cold Spring Harbor Labs. Please see the documentation supplied with the library for additional information and license terms, or visit www.boutell.com/gd/ for the most recent version of the library and supporting documentation. */ #ifndef _PARSER_H #define _PARSER_H //TODO : these variables delaration is duplicated : fix this!! extern unsigned long total_rec ; /* Total Records Processed */ extern unsigned long total_ignore ; /* Total Records Ignored */ extern unsigned long total_bad ; /* Total Bad Records */ /******************************************************/ /* PARSE_RECORD */ /******************************************************/ /* Fills log_struct given raw log line Note that the date&time fields are NOT filled by this function */ extern int parse_record(char *, struct log_struct *); #endif /* _PARSER_H */ ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������webdruid-0.5.4.orig/TODO����������������������������������������������������������������������������0000644�0000000�0000000�00000000173�10066113350�014706� 0����������������������������������������������������������������������������������������������������ustar �root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������This is a short reminder for things that must be done quickly. For a more long term TODO, see Roadmap on www.webdruid.org. �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������webdruid-0.5.4.orig/dot_output.c��������������������������������������������������������������������0000644�0000000�0000000�00000035175�10066113350�016602� 0����������������������������������������������������������������������������������������������������ustar �root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* dot_output.c - output functions using the dot utility Copyright (C) 2003-2004 Fabien Chevalier (fabien@juliana-multimedia.com) This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version, and provided that the above copyright and permission notice is included with all distributed copies of this or derived software. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA */ #include "config.h" /* local includes */ /* ensure sys/types */ #ifndef _SYS_TYPES_H #include <sys/types.h> #endif /* some systems need this */ #ifdef HAVE_MATH_H #include <math.h> #endif /* SunOS 4.x Fix */ #ifndef CLK_TCK #define CLK_TCK _SC_CLK_TCK #endif #ifdef HAVE_UNISTD_H #include <unistd.h> #endif #include <stdio.h> #include <stdlib.h> #include <string.h> #include "webdruid.h" #include "linklist.h" #include "hashtab.h" #include "utils.h" #include "lang.h" /* graphviz colors we will use -must be visible over a white background */ const char * gv_colors[] = { "red", "brown", "orange", "darkgoldenrod", "green", "cyan", "blue", "magenta" }; #define GV_NCOLORS (sizeof(gv_colors) / sizeof(char*)) /* local prototypes */ void clear_url_index(); void write_dot_url(UNODEPTR urlnode, int index, FILE *fp); int safe_run(const char *path, char *const argv[], int timeout); int qs_compare_count(const void* nodeptr1, const void* nodeptr2); int qs_compare_from(const void* nodeptr1, const void* nodeptr2); /*********************************************/ /* WRITE_MONTH_PATH_GRAPH - does what it says*/ /*********************************************/ /* display the "top paths of the month" For now, it means all the path which have been followed more than once. filename must be of the form xxxx The output will produce: - xxxx.png : the graph itself - xxxx.cmap : client map (to be embedded in HTML); */ int write_month_path_graph(const char *file) { char dot_filename[64]; char buff[256]; FILE *out_fp; char *dot_args[5]; /* to be filled later */ /* compute filenames */ snprintf(dot_filename, sizeof(dot_filename), "%s.dot", file); out_fp = open_out_file(dot_filename); if(out_fp != NULL) { int ret = 0; /* return value */ int i; int total_items; int urlindex; PNODEPTR pnode; /* lets output header */ fprintf(out_fp, "digraph G {\n"); fprintf(out_fp, " fontname=\"%s\";\n", font_face); fprintf(out_fp, " labelloc=t;\n"); snprintf(buff, sizeof(buff), _("Top followed paths for %s"), hname); fprintf(out_fp, " label=\"%s\";\n", buff); fprintf(out_fp, " node[shape=ellipse, fontname=\"%s\"];\n", font_face); /* count items */ total_items = 0; for(i=0; i<MAXHASH; i++) { pnode = gp_htab[i]; while(pnode != NULL) { total_items++; pnode = pnode->next; } } if(total_items > 0) { PNODEPTR *nodearray = malloc(sizeof(PNODEPTR) * total_items); int n_items; int j; /* fill nodearray */ j = 0; for(i=0; i<MAXHASH; i++) { pnode = gp_htab[i]; while(pnode != NULL) { nodearray[j] = pnode; j++; pnode = pnode->next; } } /* let's clear urlindex */ /* The index is the number given to an url before it is written in the dot file. When an index is affected to an url, a line like this is written in the dot file. urlxx [label="toto.html", ...]; Then the index is used to refer to the url as urlxx sample: url0 [label="Home page", style="filled", URL="http://cthugha"]; url1 [label="/pages/fr/", URL="http://cthugha/pages/fr/"]; url0 -> url1; */ clear_url_index(); urlindex = 0; /* we want to display at most path_graph_max_paths paths */ if(total_items > path_graph_max_paths) { qsort(nodearray, total_items, sizeof(PNODEPTR), qs_compare_count); n_items = path_graph_max_paths; } else { n_items = total_items; } /* do output dot lines */ for(i=0; i<n_items; i++) { pnode = nodearray[i]; if(pnode->count > 1) /* will prevent generating mad things at the beginning of the month -- we only consider paths used more than once */ { LISTPTR lptr = pnode->path; UNODEPTR prevurl = 0, url = 0; const char *color_str = gv_colors[random() % GV_NCOLORS]; fprintf(out_fp, " edge[color=%s, fontcolor=%s, fontname=\"%s\"];\n", color_str, color_str, font_face); while(lptr) { prevurl = url; url = find_url_node((char *) lptr->item); if(url->urlindex == -1) { write_dot_url(url, urlindex, out_fp); urlindex++; } if(prevurl != 0) { fprintf(out_fp, " url%u -> url%u [label=\"x%u\", weight=%u];\n", prevurl->urlindex, url->urlindex, pnode->count, pnode->count); } lptr = lptr->next; } } } free(nodearray); } /* end of the dot file */ fprintf(out_fp, "}\n"); fclose(out_fp); /*we can now run dot for png*/ snprintf(buff, sizeof(buff), "-o%s.png", file); dot_args[0] = "dot"; dot_args[1] = "-Tpng"; dot_args[2] = buff; dot_args[3] = dot_filename; dot_args[4] = 0; ret = safe_run(dot_location, dot_args, DOT_TIMEOUT); /*we can now run dot for cmap UNUSED FOR NOW snprintf(buff, sizeof(buff), "-o%s.cmap", file); dot_args[0] = "dot"; dot_args[1] = "-Tcmap"; dot_args[2] = buff; dot_args[3] = dot_filename; dot_args[4] = 0; ret = ret || safe_run(dot_location, dot_args, DOT_TIMEOUT); */ unlink(dot_filename); return ret; } else return 1; } /*********************************************/ /* WRITE_MONTH_USERS_FLOW - does what it says*/ /*********************************************/ int write_month_users_flow(const char *file) { int i; int urlindex; PNODEPTR pnode; char dot_filename[64]; char buff[256]; FILE *out_fp; char *dot_args[5]; /* to be filled later */ /*compute filenames */ snprintf(dot_filename, sizeof(dot_filename), "%s.dot", file); out_fp = open_out_file(dot_filename); if(out_fp != NULL) { int ret = 0; /* return value */ int total_items; /* lets output header */ fprintf(out_fp, "digraph G {\n"); fprintf(out_fp, " fontname=\"%s\";\n", font_face); fprintf(out_fp, " labelloc=t;\n"); snprintf(buff, sizeof(buff), _("Users flow for %s"), hname); fprintf(out_fp, " label=\"%s\";\n", buff); fprintf(out_fp, " node[shape=ellipse, fontname=\"%s\"];\n", font_face); /* let's clear urlindex */ clear_url_index(); urlindex = 0; /* count items */ total_items = 0; for(i=0; i<MAXHASH; i++) { pnode = fm_htab[i]; while(pnode != NULL) { total_items++; pnode = pnode->next; } } if(total_items > 0) { PNODEPTR *nodearray = malloc(sizeof(PNODEPTR) * total_items); char * current_from_url; int j, k; int min_hits; /* fill nodearray */ j = 0; for(i=0; i<MAXHASH; i++) { pnode = fm_htab[i]; while(pnode != NULL) { nodearray[j] = pnode; j++; pnode = pnode->next; } } if(total_items > users_flow_max_edges) { qsort(nodearray, total_items, sizeof(PNODEPTR), qs_compare_count); min_hits = nodearray[users_flow_max_edges]->count; /* Check to see if the next item has same count number. If this is the case there is no reason why we should include it in our graph more than the next one. So we increse min_hits by one. */ if(nodearray[users_flow_max_edges]->count == min_hits) { min_hits++; } } else { min_hits = 2; } /* sort nodearray -- key = 1st url of the path */ qsort(nodearray, total_items, sizeof(PNODEPTR), qs_compare_from); j = 0; do { int total_hits = 0; const char *color_str; k = j; /* keep track from where we began */ current_from_url = (char *)nodearray[j]->path->item; /* count number of hits */ do { total_hits += nodearray[j]->count; j++; } while(j < total_items && current_from_url == (char *)nodearray[j]->path->item); /* rewind to beginning */ j = k; /* say what colors we will use */ color_str = gv_colors[random() % GV_NCOLORS]; fprintf(out_fp, " edge[color=%s, fontcolor=%s, fontname=\"%s\"];\n", color_str, color_str, font_face); /* this loop will finally produce dot lines */ do { if(nodearray[j]->count >= min_hits) { UNODEPTR from = find_url_node((char *) nodearray[j]->path->item); UNODEPTR to = find_url_node((char *) nodearray[j]->path->next->item); if(from->urlindex == -1) { write_dot_url(from, urlindex, out_fp); urlindex++; } if(to->urlindex == -1) { write_dot_url(to, urlindex, out_fp); urlindex++; } fprintf(out_fp, " url%u -> url%u [label=\"%.00f%%\\n(%u hits)\", weight=%u];\n", from->urlindex, to->urlindex, PCENT(nodearray[j]->count, total_hits), nodearray[j]->count, nodearray[j]->count); } j++; } while(j < total_items && current_from_url == (char *)nodearray[j]->path->item); } while(j < total_items); free(nodearray); } /* end of the dot file */ fprintf(out_fp, "}\n"); fclose(out_fp); /*we can now run dot for png*/ snprintf(buff, sizeof(buff), "-o%s.png", file); dot_args[0] = "dot"; dot_args[1] = "-Tpng"; dot_args[2] = buff; dot_args[3] = dot_filename; dot_args[4] = 0; ret = safe_run(dot_location, dot_args, DOT_TIMEOUT); /*we can now run dot for cmap UNUSED FOR NOW snprintf(buff, sizeof(buff), "-o%s.cmap", file); dot_args[0] = "dot"; dot_args[1] = "-Tcmap"; dot_args[2] = buff; dot_args[3] = dot_filename; dot_args[4] = 0; ret = ret || safe_run(dot_location, dot_args, DOT_TIMEOUT); */ unlink(dot_filename); return ret; } else return 1; } /*********************************************/ /* CLEAR_URLINDEX */ /*********************************************/ /* resets the u_htab's urlindex to -1 The index is the number given to an url before it is written in the dot file. When an index is affected to an url, a line like this is written in the dot file. urlxx [label="toto.html", ...]; Then the index is used to refer to the url as urlxx sample: url0 [label="Home page", style="filled", URL="http://cthugha"]; url1 [label="/pages/fr/", URL="http://cthugha/pages/fr/"]; url0 -> url1 [label="62%\n(171 hits)"]; */ void clear_url_index() { int i = 0; UNODEPTR urlnode; for(i=0; i<MAXHASH; i++) { urlnode = um_htab[i]; while(urlnode) { urlnode->urlindex = -1; urlnode = urlnode->next; } } } /*********************************************/ /* WRITE_DOT_URL */ /*********************************************/ /* writes a new 'dot' node named url{index} in the opened 'dot' file pointed to by fp */ void write_dot_url(UNODEPTR urlnode, int index, FILE *fp) { urlnode->urlindex = index; if(strcmp(urlnode->string, "/")) { /* not home page */ if(use_https != 0) fprintf(fp, " url%u [label=\"%s\", URL=\"https://%s%s\"];\n", urlnode->urlindex, urlnode->string, hname, urlnode->string); else fprintf(fp, " url%u [label=\"%s\", URL=\"http://%s%s\"];\n", urlnode->urlindex, urlnode->string, hname, urlnode->string); } else { /* home page */ if(use_https != 0) fprintf(fp, " url%u [label=\"%s\", style=\"filled\", URL=\"https://%s\"];\n", urlnode->urlindex, _("Home page"), hname); else fprintf(fp, " url%u [label=\"%s\", style=\"filled\", URL=\"http://%s\"];\n", urlnode->urlindex, _("Home page"), hname); } } /*********************************************/ /* QS_COMPARE_XXXX quicksort callbacks */ /*********************************************/ /* ascending order */ int qs_compare_from(const void* nodeptr1, const void* nodeptr2) { return strcmp((const char *)((*(PNODEPTR *)nodeptr1)->path->item), (const char *)((*(PNODEPTR *)nodeptr2)->path->item)); } /* descending order */ int qs_compare_count(const void* nodeptr1, const void* nodeptr2) { int val1 = (*(PNODEPTR *)nodeptr1)->count; int val2 = (*(PNODEPTR *)nodeptr2)->count; if(val1 == val2) return 0; else if (val1 < val2) return 1; else return -1; } ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������webdruid-0.5.4.orig/linklist.c����������������������������������������������������������������������0000600�0000000�0000000�00000026557�10066113350�016221� 0����������������������������������������������������������������������������������������������������ustar �root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* the WebDruid - a web server log analysis program Copyright (C) 2003-2004 Fabien Chevalier (fabien@juliana-multimedia.com) Original webalizer copyright: Copyright (C) 1997-2001 Bradford L. Barrett (brad@mrunix.net) This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version, and provided that the above copyright and permission notice is included with all distributed copies of this or derived software. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA This software uses the gd graphics library, which is copyright by Quest Protein Database Center, Cold Spring Harbor Labs. Please see the documentation supplied with the library for additional information and license terms, or visit www.boutell.com/gd/ for the most recent version of the library and supporting documentation. */ #include "config.h" /*********************************************/ /* STANDARD INCLUDES */ /*********************************************/ #include <time.h> #include <stdio.h> #include <stdlib.h> #include <string.h> #include <unistd.h> /* normal stuff */ #include <ctype.h> #include <sys/utsname.h> #include <sys/times.h> /* ensure getopt */ #ifdef HAVE_GETOPT_H #include <getopt.h> #endif /* ensure sys/types */ #ifndef _SYS_TYPES_H #include <sys/types.h> #endif /* some systems need this */ #ifdef HAVE_MATH_H #include <math.h> #endif /* SunOS 4.x Fix */ #ifndef CLK_TCK #define CLK_TCK _SC_CLK_TCK #endif #include "webdruid.h" /* main header */ #include "lang.h" #include "linklist.h" /* internal function prototypes */ NLISTPTR new_nlist(char *); /* new list node */ void del_nlist(NLISTPTR *); /* del list */ GLISTPTR new_glist(char *, char *); /* new group list node */ void del_glist(GLISTPTR *); /* del group list */ int isinstr(char *, char *); /* Linkded list pointers */ GLISTPTR group_sites = NULL; /* "group" lists */ GLISTPTR group_urls = NULL; GLISTPTR group_refs = NULL; GLISTPTR group_agents = NULL; GLISTPTR group_users = NULL; NLISTPTR hidden_sites = NULL; /* "hidden" lists */ NLISTPTR hidden_urls = NULL; NLISTPTR hidden_refs = NULL; NLISTPTR hidden_agents = NULL; NLISTPTR hidden_users = NULL; NLISTPTR ignored_sites = NULL; /* "Ignored" lists */ NLISTPTR ignored_urls = NULL; NLISTPTR ignored_refs = NULL; NLISTPTR ignored_agents= NULL; NLISTPTR ignored_users = NULL; NLISTPTR include_sites = NULL; /* "Include" lists */ NLISTPTR include_urls = NULL; NLISTPTR include_refs = NULL; NLISTPTR include_agents= NULL; NLISTPTR include_users = NULL; NLISTPTR index_alias = NULL; /* index. aliases */ NLISTPTR html_pre = NULL; /* before anything else :) */ NLISTPTR html_head = NULL; /* top HTML code */ NLISTPTR html_body = NULL; /* body HTML code */ NLISTPTR html_post = NULL; /* middle HTML code */ NLISTPTR html_tail = NULL; /* tail HTML code */ NLISTPTR html_end = NULL; /* after everything else */ NLISTPTR page_type = NULL; /* page view types */ /*********************************************/ /* NEW_NLIST - create new generic list node */ /*********************************************/ /* deepcopy arg: if 0: no deep copy, just copy pointer if n > 0: deep copy of n elements note: this list cannot handle null items */ LISTPTR new_list(LIST_TYPE * item, int deepcopy) { LISTPTR newptr = 0; void *itemptr = item; if(deepcopy > 0) if( (itemptr = malloc(deepcopy)) != NULL) memcpy(itemptr, item, deepcopy); if(itemptr) { if( (newptr = malloc(sizeof(struct list))) != NULL) { newptr->item = itemptr; newptr->next = NULL; } else if(deepcopy > 0) free(itemptr); } return newptr; } /*********************************************/ /* DEL_LIST - delete generic list node */ /*********************************************/ /* deepcopy arg: if n > 0: free also items in list */ void del_list(LISTPTR *list, int deepdestroy) { LISTPTR cptr /* current ptr */, nptr /* next ptr */; cptr=*list; while (cptr!=NULL) { nptr=cptr->next; if(deepdestroy) free(cptr->item); free(cptr); cptr=nptr; } } /*********************************************/ /* ADD_LIST - create new generic list node */ /*********************************************/ /* deepcopy arg: if 0: no deep copy, just copy pointer if n > 0: deep copy of n elements note: this list cannot handle null items returns: 1 on failure (null pointer or out of memory) 0 on ok */ int add_list(LISTPTR *list, LIST_TYPE *item, int deepcopy) { LISTPTR newptr,cptr,pptr; if ( (newptr = new_list(item, deepcopy)) != NULL) { if (*list==NULL) *list=newptr; else { cptr=pptr=*list; while(cptr!=NULL) { pptr=cptr; cptr=cptr->next; }; pptr->next = newptr; } } return newptr==NULL; } /*********************************************/ /* NEW_NLIST - create new linked list node */ /*********************************************/ NLISTPTR new_nlist(char *str) { NLISTPTR newptr; if (sizeof(newptr->string) < strlen(str)) { if (verbose) fprintf(stderr,"[new_nlist] %s\n",_("Warning: String exceeds storage size")); } if (( newptr = malloc(sizeof(struct nlist))) != NULL) {strncpy(newptr->string, str, sizeof(newptr->string));newptr->next=NULL;} return newptr; } /*********************************************/ /* ADD_NLIST - add item to FIFO linked list */ /*********************************************/ int add_nlist(char *str, NLISTPTR *list) { NLISTPTR newptr,cptr,pptr; if ( (newptr = new_nlist(str)) != NULL) { if (*list==NULL) *list=newptr; else { cptr=pptr=*list; while(cptr!=NULL) { pptr=cptr; cptr=cptr->next; }; pptr->next = newptr; } } return newptr==NULL; } /*********************************************/ /* DEL_NLIST - delete FIFO linked list */ /*********************************************/ void del_nlist(NLISTPTR *list) { NLISTPTR cptr,nptr; cptr=*list; while (cptr!=NULL) { nptr=cptr->next; free(cptr); cptr=nptr; } } /*********************************************/ /* NEW_GLIST - create new linked list node */ /*********************************************/ GLISTPTR new_glist(char *str, char *name) { GLISTPTR newptr; if (sizeof(newptr->string) < strlen(str) || sizeof(newptr->name) < strlen(name)) { if (verbose) fprintf(stderr,"[new_glist] %s\n",_("Warning: String exceeds storage size")); } if (( newptr = malloc(sizeof(struct glist))) != NULL) { strncpy(newptr->string, str, sizeof(newptr->string)); strncpy(newptr->name, name, sizeof(newptr->name)); newptr->next=NULL; } return newptr; } /*********************************************/ /* ADD_GLIST - add item to FIFO linked list */ /*********************************************/ int add_glist(char *str, GLISTPTR *list) { GLISTPTR newptr,cptr,pptr; char temp_buf[80]; char *name=temp_buf; /* make local copy of string */ strncpy(temp_buf,str,79); temp_buf[79]=0; while (!isspace((int)*name)&&*name!=0) name++; if (*name==0) name=temp_buf; else { *name++=0; while (isspace((int)*name)&&*name!=0) name++; if (*name==0) name=temp_buf; } if ( (newptr = new_glist(temp_buf, name)) != NULL) { if (*list==NULL) *list=newptr; else { cptr=pptr=*list; while(cptr!=NULL) { pptr=cptr; cptr=cptr->next; }; pptr->next = newptr; } } return newptr==NULL; } /*********************************************/ /* DEL_GLIST - delete FIFO linked list */ /*********************************************/ void del_glist(GLISTPTR *list) { GLISTPTR cptr,nptr; cptr=*list; while (cptr!=NULL) { nptr=cptr->next; free(cptr); cptr=nptr; } } /*********************************************/ /* ISINLIST - Test if string is in list */ /*********************************************/ char *isinlist(NLISTPTR list, char *str) { NLISTPTR lptr; lptr=list; while (lptr!=NULL) { if (isinstr(str,lptr->string)) return lptr->string; lptr=lptr->next; } return NULL; } /*********************************************/ /* ISINGLIST - Test if string is in list */ /*********************************************/ char *isinglist(GLISTPTR list, char *str) { GLISTPTR lptr; lptr=list; while (lptr!=NULL) { if (isinstr(str,lptr->string)) return lptr->name; lptr=lptr->next; } return NULL; } /*********************************************/ /* del_lists() - cleanup before to exit */ /*********************************************/ void del_lists() { del_glist(&group_sites); del_glist(&group_urls); del_glist(&group_refs); del_glist(&group_agents); del_glist(&group_users); del_nlist(&hidden_sites); del_nlist(&hidden_urls); del_nlist(&hidden_refs); del_nlist(&hidden_agents); del_nlist(&hidden_users); del_nlist(&ignored_sites); del_nlist(&ignored_urls); del_nlist(&ignored_refs); del_nlist(&ignored_agents); del_nlist(&ignored_users); del_nlist(&include_sites); del_nlist(&include_urls); del_nlist(&include_refs); del_nlist(&include_agents); del_nlist(&include_users); del_nlist(&index_alias); del_nlist(&html_pre); del_nlist(&html_head); del_nlist(&html_body); del_nlist(&html_post); del_nlist(&html_tail); del_nlist(&html_end); del_nlist(&page_type); } /*********************************************/ /* ISINSTR - Scan for string in string */ /*********************************************/ int isinstr(char *str, char *cp) { char *cp1,*cp2; cp1=(cp+strlen(cp))-1; if (*cp=='*') { /* if leading wildcard, start from end */ cp2=str+strlen(str)-1; while ( (cp1!=cp) && (cp2!=str)) { if (*cp1=='*') return 1; if (*cp1--!=*cp2--) return 0; } if (cp1==cp) return 1; else return 0; } else { /* if no leading/trailing wildcard, just strstr */ if (*cp1!='*') return(strstr(str,cp)!=NULL); /* otherwise do normal forward scan */ cp1=cp; cp2=str; while (*cp2!='\0') { if (*cp1=='*') return 1; if (*cp1++!=*cp2++) return 0; } if (*cp1=='*') return 1; else return 0; } } �������������������������������������������������������������������������������������������������������������������������������������������������webdruid-0.5.4.orig/lang.h��������������������������������������������������������������������������0000600�0000000�0000000�00000000464�10066113350�015303� 0����������������������������������������������������������������������������������������������������ustar �root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������#include <libintl.h> #include <locale.h> #define _(String) gettext (String) #define gettext_noop(String) String #define N_(String) gettext_noop (String) extern char *h_msg[]; extern char *s_month[12]; extern char *l_month[12]; extern struct response_code response[]; extern struct country_code ctry[]; ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������webdruid-0.5.4.orig/dns_resolv.h��������������������������������������������������������������������0000600�0000000�0000000�00000004171�10066113350�016537� 0����������������������������������������������������������������������������������������������������ustar �root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������#ifndef _DNS_RESOLV_H #define _DNS_RESOLV_H #ifdef USE_DNS /* skip whole file if not using DNS stuff... */ #ifdef HAVE_ERRNO_H #include <errno.h> #else extern int errno; #endif /* HAVE_ERRNO_H */ extern DB *dns_db; extern int dns_fd; struct dnsRecord { time_t timeStamp; /* Timestamp of resolv data */ int numeric; /* 0: Name, 1: IP-address */ char hostName[1]; }; /* Hostname (var length) */ struct dns_child /* Defines the communication with a DNS child */ { int inpipe[2]; /* Pipe Child -> Father */ int outpipe[2]; /* Pipe Father -> Child */ int pid; /* PID of Child */ int flags; /* see below */ struct dnode *cur; /* Currently processed node */ }; /*****************************************/ /* RESOLVE_DNS */ /*****************************************/ /* * Changes if possible the hostname of log_struct * from numeric IP to dns name, using the * database cache */ extern void resolve_dns(struct log_struct *); /*****************************************/ /* DNS_RESOLVER */ /*****************************************/ /* * Updates IN->Name DB for files in the * global pool */ extern int dns_resolver(); /*****************************************/ /* OPEN_CACHE - loads IP->names database */ /*****************************************/ extern int open_cache(); /*****************************************/ /* CLOSE_CACHE - closes database */ /*****************************************/ extern int close_cache(); #define DNS_CHILD_READY 0x1 /* Our child flags */ #define DNS_CHILD_RUNNING 0x2 #define MAXCHILD 100 /* Maximum number of DNS children */ #define DNS_CACHE_TTL (86400*30) /* TTL of an Entry in the DNS cache */ #define DNS_CACHE_TTL_UNRESOLVED (86400*7) /* TTL of an negative cache Entry in the DNS cache */ #endif /* USE_DNS */ #endif /* _DNS_RESOLV_H */ �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������webdruid-0.5.4.orig/Copyright�����������������������������������������������������������������������0000600�0000000�0000000�00000002637�10066113350�016110� 0����������������������������������������������������������������������������������������������������ustar �root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������ The WebDruid - a web server log analysis program Copyright (C) 2003-2004 Fabien Chevalier (fabien@juliana-multimedia.com) Original webalizer copyright: Copyright (C) 1997-2001 Bradford L. Barrett (brad@mrunix.net) This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version, and provided that the above copyright and permission notice is included with all distributed copies of this or derived software. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA This software uses the gd graphics library, which is copyright by Quest Protein Database Center, Cold Spring Harbor Labs. Please see the documentation supplied with the library for additional information and license terms, or visit www.boutell.com/gd/ for the most recent version of the library and supporting documentation. �������������������������������������������������������������������������������������������������webdruid-0.5.4.orig/INSTALL�������������������������������������������������������������������������0000644�0000000�0000000�00000003744�10066113350�015256� 0����������������������������������������������������������������������������������������������������ustar �root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������The WebDruid 0.5.4 -- Installation instructions This is a short HOWTO to build this software on your unix system. What follows the '$' sign is to be entered at the command prompt. 1) Get the required software The WebDruid depends on the following external software. Between parentheses is the version i'm sure it works well with - it's the one i use to develop the WebDruid. It might work with other versions too, but i don't really want to test it myself :-) : - zlib (1.2.1) - the GD graphics library version (>= 1.8.4) - Freetype 2 (2.1.7) - Freefont package: http://savannah.nongnu.org/projects/freefont/ The FreeSerif font from this package is used by default by The WebDruid. You should get the fonts at the above URL and unpack them in the /usr/share/fonts/truetype/freefont directory. - a gettext compatible C library (recent GNU libc is Ok) OR an external libintl library - an iconv compatible C library (recent GNU libc is Ok) OR an external libiconv library - Berkeley DB 3 (3.2.9) - OPTIONAL - graphviz (1.10) - OPTIONAL 2) Extract the archive & go to the directory $tar -jxvf webdruid-0.5.4.tar.bz2 $cd webdruid-0.5.4 3) Configure the WebDruid for your system. $./configure If you have installed Berkeley DB, you might want to turn on dns lookup feature by using ./configure --enable-dns instead 4) Compile the WebDruid $make You will see warnings from your compiler that some symbols are defined but never used. You can safely ignore them, this is because the file which generates these errors is currently under heavy development. 5) Install $su -c 'make install' 6) Test your setup Get a bunch of Apache log files or (similar CLF logs), preferably for more than a month. cd to the directory where the logs are run : $webdruid *.log.* If you have warnings or failures from The WebDruid, you must have missed your setup somewhere. Check the report you have just generated...whaaa...it's marvellous!! You know have The WebDruid installed on your system. ����������������������������webdruid-0.5.4.orig/DNS.README����������������������������������������������������������������������0000600�0000000�0000000�00000020051�10066113350�015506� 0����������������������������������������������������������������������������������������������������ustar �root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������The WebDruid - A log file analysis program -- DNS information The WebDruid has the ability to perform reverse DNS lookups. This document attempts to explain how it works and some things that you should be aware of when using the DNS lookup features. Note: The Reverse DNS feature may be enabled or disabled at compile time. It is enabled by using the -DUSE_DNS compiler switch, or by specifing '--enable-dns' when "configure' is run. DNS lookups are disabled by default. How it works ------------ DNS lookups are made against a DNS cache file containing IP addresses and resolved names. If the IP address is not found in the cache file, it will be left as an IP address. In order for this to happen, a cache file MUST be specified when the Webalizer is run, either using the '-D' command line switch, or a "DNSCache" configuration file keyword. If no cache file is specified, no attempts to perform DNS lookups will be done. The cache file can be made in two different ways. 1) You can have the Webalizer pre-process the specified log file at run-time, creating the cache file before processing the log file normally. This is done by setting the number of DNS Children processes to run, either by using the '-N' command line switch or the "DNSChildren" configuration keyword. This will cause the Webalizer to spawn the specified number of processes which will be used to do reverse DNS lookups.. generally, a larger number of processes will result in faster resolution of the log, however if set too high may cause overall system degredation. A setting of between 5 and 20 should be acceptable, and there is a maximum limit of 100. If used, a cache filename MUST be specified also, using either the '-D' command line switch, or the "DNSCache" configuration keyword. Using this method, normal processing will continue only after all IP addresses have been processed, and the cache file is created/updated. 2) You can pre-process the log file as a standalone process, creating the cache file that will be used later by the Webalizer. This is done by running the Webalizer with a name of 'webazolver' (ie: the name 'webazolver' is a symbolic link to 'webalizer') and specifing the cache filename (either with '-D' or DNSCache). If the number of child processes is not given, the default of 5 will be used. In this mode, the log will be read and processed, creating a DNS cache file or updating an existing one, and the program will then exit without any further processing. Run-time DNS cache file creation/update --------------------------------------- The creation/update of a DNS cache file at run-time occurs as follows: 1) The log file is read, creating a list of all IP addresses that are not already cached and need to be resolved. 2) The specified number of children processes are forked, and are used to perform DNS lookups. 3) Each IP address is given, one at a time, to the next available child process until all IP addresses have been processed. Each child will update the cache file when a name is found. 4) Once all IP addresses have been processed and the cache file updated, the Webalizer will process the log normally. Each record it finds that has an unresolved IP address will be looked up in the cache file to see if a hostname is available (ie: was previously found). Because there may be a significant amount of time between the inital unresolved IP list and normal processing, the Webalizer should not be run against live log files (ie: a log file that is activly being written to by a server), otherwise there may be additional records present that were not resolved. Stand-Alone DNS cache file creation/update ------------------------------------------ The creation/update of the DNS cache file, when run in stand-alone mode, occurs as follows: 1) The log file is read, creating a list of all IP addresses that are not already cached and need to be resolved. 2) The specified number of children processes are forked, and are used to perform DNS lookups. If the number of processes was not specified, the default of 5 will be used. 3) Each IP address is given, one at a time, to the next available child process until all IP addresses have been processed. Each child will update the cache file when a name is found. 4) Once all IP addresses have been processed and the cache file updated, the program will terminate without any further processing. Larger sites may prefer to use a stand-alone process to create the DNS cache file, and then run the Webalizer against the cache file. This allows a single cache file to be used for many virtual hosts, and reduces the processing needed if many sites are being processed. The Webalizer can be used in stand alone mode by running it as 'webazolver'. When run in this fashion, it will only create the cache file and then exit without any further processing. A cache filename MUST be specified, however unlike when running the Webalizer normally, the number of child processes does not have to be given (will default to 5). All normal configuration and command line options are recognized, however, many of them will simply be ignored.. this allows the use of a standard configuration file for both normal use and stand alone use. Examples: --------- webalizer -c test.conf -N 10 -D dns_cache.db /var/log/my_www_log This will use the configuration file 'test.conf' to obtain normal configuration options such as hostname and output directory.. it will then either create or update the file 'dns_cache.db' in the default output directory (using 10 child processes) based on the IP addresses it finds in the log /var/lib/my_www_log, and then process that log file normally. webalizer -o out -D dns_cache.db /var/log/my_www_log This will process the log file /var/log/my_www_log, resolving IP addresses from the cache file 'dns_cache.db' found in the default output directory "out". The cache file must be present as it will not be created with this command. for i in /var/log/*/access_log; do webazolver -N 20 -D /var/lib/dns_cache.db $i done The above is an example of how to run through multiple log files creating a single DNS cache file.. this might be typically used on a larger site that has many virtual hosts, all keeping their log files in a seperate directory. It will process each access_log it finds in /var/log/* and create a cache file (var/lib/dns_cache.db). This cache file can then be used to process the logs normally with with the Webalizer. for i in /etc/webalizer/*.conf; do webalizer -c $i -D /etc/cache.db; done This will process each configuration file found in /etc/webalizer, using the DNS cache file /etc/cache.db. This will also typically be used on a larger site with multiple hosts.. Each configration file will specify a site specific log file, hostname, output directory, etc. The cache file used will typically be created using a command similar to the one previous to this example. Considerations -------------- Processing of live log files is discouraged, as the chances of log records being written between the time of DNS resolution and normal processing will cause problems. Cached DNS addresses have a TTL (time to live) of 3 days. This may be changed at compile time by editing the dns_resolv.h header file and changing the value for DNS_CACHE_TTL. There is an absolute maximum of 100 child processes that may be created, however the actual number of children should be significantly less than the maximum.. typical usage should be between 5 and 20. If you are using STDIN for the input stream (log file) and have run-time DNS cache file creation/update enabled.. the program will exit after the cache file has been created/updated and no output will be produced. If you must use STDIN for the input log, you will need to process the stream twice, once to create/update the cache file, and again to produce the reports. Special thanks to Henning P. Schmiedehausen <hps@tanstaafl.de> for the original dns-resolver code he submitted, which was the basis for this implementation. ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������webdruid-0.5.4.orig/utils.h�������������������������������������������������������������������������0000644�0000000�0000000�00000011421�10066113350�015525� 0����������������������������������������������������������������������������������������������������ustar �root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* utils.h - tools for The WebDruid Copyright (C) 2003-2004 Fabien Chevalier (fabien@juliana-multimedia.com) This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version, and provided that the above copyright and permission notice is included with all distributed copies of this or derived software. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA */ /* includes */ /* ensure sys/types */ #ifndef _SYS_TYPES_H #include <sys/types.h> #endif #include "stdio.h" /*********************************************/ /* SAFE_RUN */ /*********************************************/ /* runs given executable savely - this will kill the child after timeout seconds if it hasn't finished yet if timeout equals 0, timer is disabled returns: - 0 if Ok - 1 if sth went wrong */ extern int safe_run(const char *path, char *const argv[], int timeout); /*****************************************************************/ /* _2UTF8 converts given string from current charset to utf8 */ /*****************************************************************/ extern char * _2utf8(char * from); /*********************************************/ /* strtolower_utf8 */ /*********************************************/ /* convert an uft8 string to lower case */ extern void strtolower_utf8(char *utf8_str); /*********************************************/ /* strip_spaces */ /*********************************************/ /* removes a string's trailing and leading spaces */ extern void strip_spaces(char** str); /*********************************************/ /* HASH - return hash value for string */ /*********************************************/ extern u_long hash(char *str); /*********************************************/ /* PROGRESSIVE_HASH */ /*********************************************/ /* Calculates hash on a set of strings progressively. */ extern u_long progressive_hash(char *str, u_long hashval); /*********************************************/ /* OPEN_OUT_FILE - Open file for output */ /*********************************************/ extern FILE *open_out_file(char *filename); /*********************************************/ /* OPEN_OUT_FILE_IN_DIR - does what it says */ /*********************************************/ extern FILE *open_out_file_in_dir(const char *dir,const char *filename); /*****************************************************************/ /* */ /* JDATE - Julian date calculator */ /* */ /* Calculates the number of days since Jan 1, 0000. */ /* */ /* Originally written by Bradford L. Barrett (03/17/1988) */ /* Returns an unsigned long value representing the number of */ /* days since January 1, 0000. */ /* */ /* Note: Due to the changes made by Pope Gregory XIII in the */ /* 16th Centyry (Feb 24, 1582), dates before 1583 will */ /* not return a truely accurate number (will be at least */ /* 10 days off). Somehow, I don't think this will */ /* present much of a problem for most situations :) */ /* */ /* Usage: days = jdate(day, month, year) */ /* */ /* The number returned is adjusted by 5 to facilitate day of */ /* week calculations. The mod of the returned value gives the */ /* day of the week the date is. (ie: dow = days % 7 ) where */ /* dow will return 0=Sunday, 1=Monday, 2=Tuesday, etc... */ /* */ /*****************************************************************/ extern u_long jdate(int,int,int); /* open output file */ extern FILE *open_out_file(char *); /* debugging purpose */ extern void dump_logrec(); �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������webdruid-0.5.4.orig/graphs.h������������������������������������������������������������������������0000600�0000000�0000000�00000000674�10066113350�015651� 0����������������������������������������������������������������������������������������������������ustar �root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������#ifndef _GRAPHS_H #define _GRAPHS_H extern int month_graph6(char *, char *, int, int, u_long *, u_long *, u_long *, double *, u_long *, u_long *); extern int year_graph6x(char *, char *, int, u_long *, u_long *, u_long *, double *, u_long *, u_long *); extern int day_graph3(char *, char *, u_long *, u_long *, u_long *); extern int pie_chart(char *, char *, u_long, u_long *, char **); #endif /* _GRAPHS_H */ ��������������������������������������������������������������������webdruid-0.5.4.orig/country-codes.txt���������������������������������������������������������������0000600�0000000�0000000�00000010017�10066113350�017543� 0����������������������������������������������������������������������������������������������������ustar �root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������AD Andorra AE United Arab Emirates AF Afghanistan AG Antigua and Barbuda AI Anguilla AL Albania AM Armenia AN Netherlands Antilles AO Angola AQ Antarctica AR Argentina AS American Samoa AT Austria AU Australia AW Aruba AZ Azerbaijan BA Bosnia and Herzegovina BB Barbados BD Bangladesh BE Belgium BF Burkina Faso BG Bulgaria BH Bahrain BI Burundi BJ Benin BM Bermuda BN Brunei Darussalam BO Bolivia BR Brazil BS Bahamas BT Bhutan BV Bouvet Island BW Botswana BY Belarus BZ Belize CA Canada CC Cocos (Keeling) Islands CF Central African Republic CG Congo CH Switzerland CI Cote D'Ivoire (Ivory Coast) CK Cook Islands CL Chile CM Cameroon CN China CO Colombia CR Costa Rica CS Czechoslovakia (former) CU Cuba CV Cape Verde CX Christmas Island CY Cyprus CZ Czech Republic DE Germany DJ Djibouti DK Denmark DM Dominica DO Dominican Republic DZ Algeria EC Ecuador EE Estonia EG Egypt EH Western Sahara ER Eritrea ES Spain ET Ethiopia FI Finland FJ Fiji FK Falkland Islands (Malvinas) FM Micronesia FO Faroe Islands FR France FX France, Metropolitan GA Gabon GB Great Britain (UK) GD Grenada GE Georgia GF French Guiana GH Ghana GI Gibraltar GL Greenland GM Gambia GN Guinea GP Guadeloupe GQ Equatorial Guinea GR Greece GS S. Georgia and S. Sandwich Isls. GT Guatemala GU Guam GW Guinea-Bissau GY Guyana HK Hong Kong HM Heard and McDonald Islands HN Honduras HR Croatia (Hrvatska) HT Haiti HU Hungary ID Indonesia IE Ireland IL Israel IN India IO British Indian Ocean Territory IQ Iraq IR Iran IS Iceland IT Italy JM Jamaica JO Jordan JP Japan KE Kenya KG Kyrgyzstan KH Cambodia KI Kiribati KM Comoros KN Saint Kitts and Nevis KP Korea (North) KR Korea (South) KW Kuwait KY Cayman Islands KZ Kazakhstan LA Laos LB Lebanon LC Saint Lucia LI Liechtenstein LK Sri Lanka LR Liberia LS Lesotho LT Lithuania LU Luxembourg LV Latvia LY Libya MA Morocco MC Monaco MD Moldova MG Madagascar MH Marshall Islands MK Macedonia ML Mali MM Myanmar MN Mongolia MO Macau MP Northern Mariana Islands MQ Martinique MR Mauritania MS Montserrat MT Malta MU Mauritius MV Maldives MW Malawi MX Mexico MY Malaysia MZ Mozambique NA Namibia NC New Caledonia NE Niger NF Norfolk Island NG Nigeria NI Nicaragua NL Netherlands NO Norway NP Nepal NR Nauru NT Neutral Zone NU Niue NZ New Zealand (Aotearoa) OM Oman PA Panama PE Peru PF French Polynesia PG Papua New Guinea PH Philippines PK Pakistan PL Poland PM St. Pierre and Miquelon PN Pitcairn PR Puerto Rico PT Portugal PW Palau PY Paraguay QA Qatar RE Reunion RO Romania RU Russian Federation RW Rwanda SA Saudi Arabia Sb Solomon Islands SC Seychelles SD Sudan SE Sweden SG Singapore SH St. Helena SI Slovenia SJ Svalbard and Jan Mayen Islands SK Slovak Republic SL Sierra Leone SM San Marino SN Senegal SO Somalia SR Suriname ST Sao Tome and Principe SU USSR (former) SV El Salvador SY Syria SZ Swaziland TC Turks and Caicos Islands TD Chad TF French Southern Territories TG Togo TH Thailand TJ Tajikistan TK Tokelau TM Turkmenistan TN Tunisia TO Tonga TP East Timor TR Turkey TT Trinidad and Tobago TV Tuvalu TW Taiwan TZ Tanzania UA Ukraine UG Uganda UK United Kingdom UM US Minor Outlying Islands US United States UY Uruguay UZ Uzbekistan VA Vatican City State (Holy See) VC Saint Vincent and the Grenadines VE Venezuela VG Virgin Islands (British) VI Virgin Islands (U.S.) VN Viet Nam VU Vanuatu WF Wallis and Futuna Islands WS Samoa YE Yemen YT Mayotte YU Yugoslavia ZA South Africa ZM Zambia ZR Zaire ZW Zimbabwe COM US Commercial EDU US Educational GOV US Government INT International MIL US Military NET Network ORG Non-Profit Organization ARPA Old style Arpanet NATO Nato field �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������webdruid-0.5.4.orig/lang_strings.h������������������������������������������������������������������0000644�0000000�0000000�00000070360�10066113350�017066� 0����������������������������������������������������������������������������������������������������ustar �root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* The WebDruid languages strings constant */ /* lib gettext */ #include <libintl.h> #include <locale.h> #define _(String) gettext (String) #define gettext_noop(String) String #define N_(String) gettext_noop (String) /* Help display... */ char *h_msg[]= { gettext_noop("-h = print this help message") , gettext_noop("-v -V = print version information") , gettext_noop("-d = print additional debug info") , gettext_noop("-F type = Log type. type = (clf | w3c)"), gettext_noop("-f = Fold sequence errors") , gettext_noop("-i = ignore history file") , gettext_noop("-p = preserve state (incremental)") , gettext_noop("-q = supress informational messages") , gettext_noop("-Q = supress _ALL_ messages") , gettext_noop("-Y = supress country graph") , gettext_noop("-G = supress hourly graph") , gettext_noop("-H = supress hourly stats") , gettext_noop("-L = supress color coded graph legends") , gettext_noop("-l num = use num background lines on graph") , gettext_noop("-m num = Visit timout value (seconds)") , gettext_noop("-T = print timing information") , gettext_noop("-c file = use configuration file 'file'") , gettext_noop("-n name = hostname to use") , gettext_noop("-o dir = output directory to use") , gettext_noop("-t name = report title 'name'") , gettext_noop("-a name = hide user agent 'name'") , gettext_noop("-r name = hide referrer 'name'") , gettext_noop("-s name = hide site 'name'") , gettext_noop("-u name = hide URL 'name'") , gettext_noop("-x name = Use filename extension 'name'") , gettext_noop("-P name = Page type extension 'name'") , gettext_noop("-I name = Index alias 'name'") , gettext_noop("-A num = Display num top agents") , gettext_noop("-C num = Display num top countries") , gettext_noop("-R num = Display num top referrers") , gettext_noop("-S num = Display num top sites") , gettext_noop("-U num = Display num top URLs") , gettext_noop("-e num = Display num top Entry Pages") , gettext_noop("-E num = Display num top Exit Pages") , gettext_noop("-g num = Group Domains to 'num' levels") , gettext_noop("-X = Hide individual sites") , gettext_noop("-D name = Use DNS Cache file 'name'") , gettext_noop("-N num = Number of DNS processes (0=disable)") , NULL}; /* short month names MUST BE 3 CHARS in size... pad if needed*/ char *s_month[12]={ gettext_noop("Jan"), gettext_noop("Feb"), gettext_noop("Mar"), gettext_noop("Apr"), gettext_noop("May"), gettext_noop("Jun"), gettext_noop("Jul"), gettext_noop("Aug"), gettext_noop("Sep"), gettext_noop("Oct"), gettext_noop("Nov"), gettext_noop("Dec")}; /* long month names - can be any length */ char *l_month[12]={ gettext_noop("January"), gettext_noop("February"), gettext_noop("March"), gettext_noop("April"), gettext_noop("May"), gettext_noop("June"), gettext_noop("July"), gettext_noop("August"), gettext_noop("September"),gettext_noop("October"), gettext_noop("November"),gettext_noop("December")}; /* response code descriptions... order IS important! */ struct response_code response[] = { { gettext_noop("Undefined response code"), 0 }, { gettext_noop("Code 100 - Continue"), 0 }, { gettext_noop("Code 101 - Switching Protocols"), 0 }, { gettext_noop("Code 200 - OK"), 0 }, { gettext_noop("Code 201 - Created"), 0 }, { gettext_noop("Code 202 - Accepted"), 0 }, { gettext_noop("Code 203 - Non-Authoritative Information"), 0 }, { gettext_noop("Code 204 - No Content"), 0 }, { gettext_noop("Code 205 - Reset Content"), 0 }, { gettext_noop("Code 206 - Partial Content"), 0 }, { gettext_noop("Code 300 - Multiple Choices"), 0 }, { gettext_noop("Code 301 - Moved Permanently"), 0 }, { gettext_noop("Code 302 - Found"), 0 }, { gettext_noop("Code 303 - See Other"), 0 }, { gettext_noop("Code 304 - Not Modified"), 0 }, { gettext_noop("Code 305 - Use Proxy"), 0 }, { gettext_noop("Code 307 - Moved Temporarily"), 0 }, { gettext_noop("Code 400 - Bad Request"), 0 }, { gettext_noop("Code 401 - Unauthorized"), 0 }, { gettext_noop("Code 402 - Payment Required"), 0 }, { gettext_noop("Code 403 - Forbidden"), 0 }, { gettext_noop("Code 404 - Not Found"), 0 }, { gettext_noop("Code 405 - Method Not Allowed"), 0 }, { gettext_noop("Code 406 - Not Acceptable"), 0 }, { gettext_noop("Code 407 - Proxy Authentication Required"), 0 }, { gettext_noop("Code 408 - Request Timeout"), 0 }, { gettext_noop("Code 409 - Conflict"), 0 }, { gettext_noop("Code 410 - Gone"), 0 }, { gettext_noop("Code 411 - Length Required"), 0 }, { gettext_noop("Code 412 - Precondition Failed"), 0 }, { gettext_noop("Code 413 - Request Entity Too Large"), 0 }, { gettext_noop("Code 414 - Request-URI Too Long"), 0 }, { gettext_noop("Code 415 - Unsupported Media Type"), 0 }, { gettext_noop("Code 416 - Requested Range Not Satisfiable"), 0 }, { gettext_noop("Code 417 - Expectation Failed"), 0 }, { gettext_noop("Code 500 - Internal Server Error"), 0 }, { gettext_noop("Code 501 - Not Implemented"), 0 }, { gettext_noop("Code 502 - Bad Gateway"), 0 }, { gettext_noop("Code 503 - Service Unavailable"), 0 }, { gettext_noop("Code 504 - Gateway Timeout"), 0 }, { gettext_noop("Code 505 - HTTP Version Not Supported"), 0 } }; char *msg_title = gettext_noop("Usage Statistics for"); char *msg_h_other = gettext_noop("Other"); /* Country codes (previously in ctry.h header file) */ struct country_code ctry[] = { { 0, gettext_noop("Unresolved/Unknown"), 0,0,0 }, { IDX_3C('c','o','m'), gettext_noop("US Commercial"), 0,0,0 }, { IDX_3C('e','d','u'), gettext_noop("US Educational"), 0,0,0 }, { IDX_3C('g','o','v'), gettext_noop("US Government"), 0,0,0 }, { IDX_3C('i','n','t'), gettext_noop("International (int)"), 0,0,0 }, { IDX_3C('m','i','l'), gettext_noop("US Military"), 0,0,0 }, { IDX_3C('n','e','t'), gettext_noop("Network"), 0,0,0 }, { IDX_3C('o','r','g'), gettext_noop("Non-Profit Organization"), 0,0,0 }, { IDX_4C('a','r','p','a'),gettext_noop("Old style Arpanet (arpa)"), 0,0,0 }, { IDX_4C('n','a','t','o'),gettext_noop("Nato field (nato)"), 0,0,0 }, { IDX_2C('a','d'), gettext_noop("Andorra"), 0,0,0 }, { IDX_2C('a','e'), gettext_noop("United Arab Emirates"), 0,0,0 }, { IDX_2C('a','f'), gettext_noop("Afghanistan"), 0,0,0 }, { IDX_2C('a','g'), gettext_noop("Antigua and Barbuda"), 0,0,0 }, { IDX_2C('a','i'), gettext_noop("Anguilla"), 0,0,0 }, { IDX_2C('a','l'), gettext_noop("Albania"), 0,0,0 }, { IDX_2C('a','m'), gettext_noop("Armenia"), 0,0,0 }, { IDX_2C('a','n'), gettext_noop("Netherlands Antilles"), 0,0,0 }, { IDX_2C('a','o'), gettext_noop("Angola"), 0,0,0 }, { IDX_2C('a','q'), gettext_noop("Antarctica"), 0,0,0 }, { IDX_2C('a','r'), gettext_noop("Argentina"), 0,0,0 }, { IDX_2C('a','s'), gettext_noop("American Samoa"), 0,0,0 }, { IDX_2C('a','t'), gettext_noop("Austria"), 0,0,0 }, { IDX_2C('a','u'), gettext_noop("Australia"), 0,0,0 }, { IDX_2C('a','w'), gettext_noop("Aruba"), 0,0,0 }, { IDX_2C('a','z'), gettext_noop("Azerbaijan"), 0,0,0 }, { IDX_2C('b','a'), gettext_noop("Bosnia and Herzegovina"), 0,0,0 }, { IDX_2C('b','b'), gettext_noop("Barbados"), 0,0,0 }, { IDX_2C('b','d'), gettext_noop("Bangladesh"), 0,0,0 }, { IDX_2C('b','e'), gettext_noop("Belgium"), 0,0,0 }, { IDX_2C('b','f'), gettext_noop("Burkina Faso"), 0,0,0 }, { IDX_2C('b','g'), gettext_noop("Bulgaria"), 0,0,0 }, { IDX_2C('b','h'), gettext_noop("Bahrain"), 0,0,0 }, { IDX_2C('b','i'), gettext_noop("Burundi"), 0,0,0 }, { IDX_2C('b','j'), gettext_noop("Benin"), 0,0,0 }, { IDX_2C('b','m'), gettext_noop("Bermuda"), 0,0,0 }, { IDX_2C('b','n'), gettext_noop("Brunei Darussalam"), 0,0,0 }, { IDX_2C('b','o'), gettext_noop("Bolivia"), 0,0,0 }, { IDX_2C('b','r'), gettext_noop("Brazil"), 0,0,0 }, { IDX_2C('b','s'), gettext_noop("Bahamas"), 0,0,0 }, { IDX_2C('b','t'), gettext_noop("Bhutan"), 0,0,0 }, { IDX_2C('b','v'), gettext_noop("Bouvet Island"), 0,0,0 }, { IDX_2C('b','w'), gettext_noop("Botswana"), 0,0,0 }, { IDX_2C('b','y'), gettext_noop("Belarus"), 0,0,0 }, { IDX_2C('b','z'), gettext_noop("Belize"), 0,0,0 }, { IDX_2C('c','a'), gettext_noop("Canada"), 0,0,0 }, { IDX_2C('c','c'), gettext_noop("Cocos (Keeling) Islands"), 0,0,0 }, { IDX_2C('c','f'), gettext_noop("Central African Republic"), 0,0,0 }, { IDX_2C('c','g'), gettext_noop("Congo"), 0,0,0 }, { IDX_2C('c','h'), gettext_noop("Switzerland"), 0,0,0 }, { IDX_2C('c','i'), gettext_noop("Cote D'Ivoire (Ivory Coast)"), 0,0,0 }, { IDX_2C('c','k'), gettext_noop("Cook Islands"), 0,0,0 }, { IDX_2C('c','l'), gettext_noop("Chile"), 0,0,0 }, { IDX_2C('c','m'), gettext_noop("Cameroon"), 0,0,0 }, { IDX_2C('c','n'), gettext_noop("China"), 0,0,0 }, { IDX_2C('c','o'), gettext_noop("Colombia"), 0,0,0 }, { IDX_2C('c','r'), gettext_noop("Costa Rica"), 0,0,0 }, { IDX_2C('c','s'), gettext_noop("Czechoslovakia (former)"), 0,0,0 }, { IDX_2C('c','u'), gettext_noop("Cuba"), 0,0,0 }, { IDX_2C('c','v'), gettext_noop("Cape Verde"), 0,0,0 }, { IDX_2C('c','x'), gettext_noop("Christmas Island"), 0,0,0 }, { IDX_2C('c','y'), gettext_noop("Cyprus"), 0,0,0 }, { IDX_2C('c','z'), gettext_noop("Czech Republic"), 0,0,0 }, { IDX_2C('d','e'), gettext_noop("Germany"), 0,0,0 }, { IDX_2C('d','j'), gettext_noop("Djibouti"), 0,0,0 }, { IDX_2C('d','k'), gettext_noop("Denmark"), 0,0,0 }, { IDX_2C('d','m'), gettext_noop("Dominica"), 0,0,0 }, { IDX_2C('d','o'), gettext_noop("Dominican Republic"), 0,0,0 }, { IDX_2C('d','z'), gettext_noop("Algeria"), 0,0,0 }, { IDX_2C('e','c'), gettext_noop("Ecuador"), 0,0,0 }, { IDX_2C('e','e'), gettext_noop("Estonia"), 0,0,0 }, { IDX_2C('e','g'), gettext_noop("Egypt"), 0,0,0 }, { IDX_2C('e','h'), gettext_noop("Western Sahara"), 0,0,0 }, { IDX_2C('e','r'), gettext_noop("Eritrea"), 0,0,0 }, { IDX_2C('e','s'), gettext_noop("Spain"), 0,0,0 }, { IDX_2C('e','t'), gettext_noop("Ethiopia"), 0,0,0 }, { IDX_2C('f','i'), gettext_noop("Finland"), 0,0,0 }, { IDX_2C('f','j'), gettext_noop("Fiji"), 0,0,0 }, { IDX_2C('f','k'), gettext_noop("Falkland Islands (Malvinas)"), 0,0,0 }, { IDX_2C('f','m'), gettext_noop("Micronesia"), 0,0,0 }, { IDX_2C('f','o'), gettext_noop("Faroe Islands"), 0,0,0 }, { IDX_2C('f','r'), gettext_noop("France"), 0,0,0 }, { IDX_2C('f','x'), gettext_noop("France, Metropolitan"), 0,0,0 }, { IDX_2C('g','a'), gettext_noop("Gabon"), 0,0,0 }, { IDX_2C('g','b'), gettext_noop("Great Britain (UK)"), 0,0,0 }, { IDX_2C('g','d'), gettext_noop("Grenada"), 0,0,0 }, { IDX_2C('g','e'), gettext_noop("Georgia"), 0,0,0 }, { IDX_2C('g','f'), gettext_noop("French Guiana"), 0,0,0 }, { IDX_2C('g','h'), gettext_noop("Ghana"), 0,0,0 }, { IDX_2C('g','i'), gettext_noop("Gibraltar"), 0,0,0 }, { IDX_2C('g','l'), gettext_noop("Greenland"), 0,0,0 }, { IDX_2C('g','m'), gettext_noop("Gambia"), 0,0,0 }, { IDX_2C('g','n'), gettext_noop("Guinea"), 0,0,0 }, { IDX_2C('g','p'), gettext_noop("Guadeloupe"), 0,0,0 }, { IDX_2C('g','q'), gettext_noop("Equatorial Guinea"), 0,0,0 }, { IDX_2C('g','r'), gettext_noop("Greece"), 0,0,0 }, { IDX_2C('g','s'), gettext_noop("S. Georgia and S. Sandwich Isls."), 0,0,0 }, { IDX_2C('g','t'), gettext_noop("Guatemala"), 0,0,0 }, { IDX_2C('g','u'), gettext_noop("Guam"), 0,0,0 }, { IDX_2C('g','w'), gettext_noop("Guinea-Bissau"), 0,0,0 }, { IDX_2C('g','y'), gettext_noop("Guyana"), 0,0,0 }, { IDX_2C('h','k'), gettext_noop("Hong Kong"), 0,0,0 }, { IDX_2C('h','m'), gettext_noop("Heard and McDonald Islands"), 0,0,0 }, { IDX_2C('h','n'), gettext_noop("Honduras"), 0,0,0 }, { IDX_2C('h','r'), gettext_noop("Croatia (Hrvatska)"), 0,0,0 }, { IDX_2C('h','t'), gettext_noop("Haiti"), 0,0,0 }, { IDX_2C('h','u'), gettext_noop("Hungary"), 0,0,0 }, { IDX_2C('i','d'), gettext_noop("Indonesia"), 0,0,0 }, { IDX_2C('i','e'), gettext_noop("Ireland"), 0,0,0 }, { IDX_2C('i','l'), gettext_noop("Israel"), 0,0,0 }, { IDX_2C('i','n'), gettext_noop("India"), 0,0,0 }, { IDX_2C('i','o'), gettext_noop("British Indian Ocean Territory"), 0,0,0 }, { IDX_2C('i','q'), gettext_noop("Iraq"), 0,0,0 }, { IDX_2C('i','r'), gettext_noop("Iran"), 0,0,0 }, { IDX_2C('i','s'), gettext_noop("Iceland"), 0,0,0 }, { IDX_2C('i','t'), gettext_noop("Italy"), 0,0,0 }, { IDX_2C('j','m'), gettext_noop("Jamaica"), 0,0,0 }, { IDX_2C('j','o'), gettext_noop("Jordan"), 0,0,0 }, { IDX_2C('j','p'), gettext_noop("Japan"), 0,0,0 }, { IDX_2C('k','e'), gettext_noop("Kenya"), 0,0,0 }, { IDX_2C('k','g'), gettext_noop("Kyrgyzstan"), 0,0,0 }, { IDX_2C('k','h'), gettext_noop("Cambodia"), 0,0,0 }, { IDX_2C('k','i'), gettext_noop("Kiribati"), 0,0,0 }, { IDX_2C('k','m'), gettext_noop("Comoros"), 0,0,0 }, { IDX_2C('k','n'), gettext_noop("Saint Kitts and Nevis"), 0,0,0 }, { IDX_2C('k','p'), gettext_noop("Korea (North)"), 0,0,0 }, { IDX_2C('k','r'), gettext_noop("Korea (South)"), 0,0,0 }, { IDX_2C('k','w'), gettext_noop("Kuwait"), 0,0,0 }, { IDX_2C('k','y'), gettext_noop("Cayman Islands"), 0,0,0 }, { IDX_2C('k','z'), gettext_noop("Kazakhstan"), 0,0,0 }, { IDX_2C('l','a'), gettext_noop("Laos"), 0,0,0 }, { IDX_2C('l','b'), gettext_noop("Lebanon"), 0,0,0 }, { IDX_2C('l','c'), gettext_noop("Saint Lucia"), 0,0,0 }, { IDX_2C('l','i'), gettext_noop("Liechtenstein"), 0,0,0 }, { IDX_2C('l','k'), gettext_noop("Sri Lanka"), 0,0,0 }, { IDX_2C('l','r'), gettext_noop("Liberia"), 0,0,0 }, { IDX_2C('l','s'), gettext_noop("Lesotho"), 0,0,0 }, { IDX_2C('l','t'), gettext_noop("Lithuania"), 0,0,0 }, { IDX_2C('l','u'), gettext_noop("Luxembourg"), 0,0,0 }, { IDX_2C('l','v'), gettext_noop("Latvia"), 0,0,0 }, { IDX_2C('l','y'), gettext_noop("Libya"), 0,0,0 }, { IDX_2C('m','a'), gettext_noop("Morocco"), 0,0,0 }, { IDX_2C('m','c'), gettext_noop("Monaco"), 0,0,0 }, { IDX_2C('m','d'), gettext_noop("Moldova"), 0,0,0 }, { IDX_2C('m','g'), gettext_noop("Madagascar"), 0,0,0 }, { IDX_2C('m','h'), gettext_noop("Marshall Islands"), 0,0,0 }, { IDX_2C('m','k'), gettext_noop("Macedonia"), 0,0,0 }, { IDX_2C('m','l'), gettext_noop("Mali"), 0,0,0 }, { IDX_2C('m','m'), gettext_noop("Myanmar"), 0,0,0 }, { IDX_2C('m','n'), gettext_noop("Mongolia"), 0,0,0 }, { IDX_2C('m','o'), gettext_noop("Macau"), 0,0,0 }, { IDX_2C('m','p'), gettext_noop("Northern Mariana Islands"), 0,0,0 }, { IDX_2C('m','q'), gettext_noop("Martinique"), 0,0,0 }, { IDX_2C('m','r'), gettext_noop("Mauritania"), 0,0,0 }, { IDX_2C('m','s'), gettext_noop("Montserrat"), 0,0,0 }, { IDX_2C('m','t'), gettext_noop("Malta"), 0,0,0 }, { IDX_2C('m','u'), gettext_noop("Mauritius"), 0,0,0 }, { IDX_2C('m','v'), gettext_noop("Maldives"), 0,0,0 }, { IDX_2C('m','w'), gettext_noop("Malawi"), 0,0,0 }, { IDX_2C('m','x'), gettext_noop("Mexico"), 0,0,0 }, { IDX_2C('m','y'), gettext_noop("Malaysia"), 0,0,0 }, { IDX_2C('m','z'), gettext_noop("Mozambique"), 0,0,0 }, { IDX_2C('n','a'), gettext_noop("Namibia"), 0,0,0 }, { IDX_2C('n','c'), gettext_noop("New Caledonia"), 0,0,0 }, { IDX_2C('n','e'), gettext_noop("Niger"), 0,0,0 }, { IDX_2C('n','f'), gettext_noop("Norfolk Island"), 0,0,0 }, { IDX_2C('n','g'), gettext_noop("Nigeria"), 0,0,0 }, { IDX_2C('n','i'), gettext_noop("Nicaragua"), 0,0,0 }, { IDX_2C('n','l'), gettext_noop("Netherlands"), 0,0,0 }, { IDX_2C('n','o'), gettext_noop("Norway"), 0,0,0 }, { IDX_2C('n','p'), gettext_noop("Nepal"), 0,0,0 }, { IDX_2C('n','r'), gettext_noop("Nauru"), 0,0,0 }, { IDX_2C('n','t'), gettext_noop("Neutral Zone"), 0,0,0 }, { IDX_2C('n','u'), gettext_noop("Niue"), 0,0,0 }, { IDX_2C('n','z'), gettext_noop("New Zealand (Aotearoa)"), 0,0,0 }, { IDX_2C('o','m'), gettext_noop("Oman"), 0,0,0 }, { IDX_2C('p','a'), gettext_noop("Panama"), 0,0,0 }, { IDX_2C('p','e'), gettext_noop("Peru"), 0,0,0 }, { IDX_2C('p','f'), gettext_noop("French Polynesia"), 0,0,0 }, { IDX_2C('p','g'), gettext_noop("Papua New Guinea"), 0,0,0 }, { IDX_2C('p','h'), gettext_noop("Philippines"), 0,0,0 }, { IDX_2C('p','k'), gettext_noop("Pakistan"), 0,0,0 }, { IDX_2C('p','l'), gettext_noop("Poland"), 0,0,0 }, { IDX_2C('p','m'), gettext_noop("St. Pierre and Miquelon"), 0,0,0 }, { IDX_2C('p','n'), gettext_noop("Pitcairn"), 0,0,0 }, { IDX_2C('p','r'), gettext_noop("Puerto Rico"), 0,0,0 }, { IDX_2C('p','t'), gettext_noop("Portugal"), 0,0,0 }, { IDX_2C('p','w'), gettext_noop("Palau"), 0,0,0 }, { IDX_2C('p','y'), gettext_noop("Paraguay"), 0,0,0 }, { IDX_2C('q','a'), gettext_noop("Qatar"), 0,0,0 }, { IDX_2C('r','e'), gettext_noop("Reunion"), 0,0,0 }, { IDX_2C('r','o'), gettext_noop("Romania"), 0,0,0 }, { IDX_2C('r','u'), gettext_noop("Russian Federation"), 0,0,0 }, { IDX_2C('r','w'), gettext_noop("Rwanda"), 0,0,0 }, { IDX_2C('s','a'), gettext_noop("Saudi Arabia"), 0,0,0 }, { IDX_2C('s','B'), gettext_noop("Solomon Islands"), 0,0,0 }, { IDX_2C('s','c'), gettext_noop("Seychelles"), 0,0,0 }, { IDX_2C('s','d'), gettext_noop("Sudan"), 0,0,0 }, { IDX_2C('s','e'), gettext_noop("Sweden"), 0,0,0 }, { IDX_2C('s','g'), gettext_noop("Singapore"), 0,0,0 }, { IDX_2C('s','h'), gettext_noop("St. Helena"), 0,0,0 }, { IDX_2C('s','i'), gettext_noop("Slovenia"), 0,0,0 }, { IDX_2C('s','j'), gettext_noop("Svalbard and Jan Mayen Islands"), 0,0,0 }, { IDX_2C('s','k'), gettext_noop("Slovak Republic"), 0,0,0 }, { IDX_2C('s','l'), gettext_noop("Sierra Leone"), 0,0,0 }, { IDX_2C('s','m'), gettext_noop("San Marino"), 0,0,0 }, { IDX_2C('s','n'), gettext_noop("Senegal"), 0,0,0 }, { IDX_2C('s','o'), gettext_noop("Somalia"), 0,0,0 }, { IDX_2C('s','r'), gettext_noop("Suriname"), 0,0,0 }, { IDX_2C('s','t'), gettext_noop("Sao Tome and Principe"), 0,0,0 }, { IDX_2C('s','u'), gettext_noop("USSR (former)"), 0,0,0 }, { IDX_2C('s','v'), gettext_noop("El Salvador"), 0,0,0 }, { IDX_2C('s','y'), gettext_noop("Syria"), 0,0,0 }, { IDX_2C('s','z'), gettext_noop("Swaziland"), 0,0,0 }, { IDX_2C('t','c'), gettext_noop("Turks and Caicos Islands"), 0,0,0 }, { IDX_2C('t','d'), gettext_noop("Chad"), 0,0,0 }, { IDX_2C('t','f'), gettext_noop("French Southern Territories"), 0,0,0 }, { IDX_2C('t','g'), gettext_noop("Togo"), 0,0,0 }, { IDX_2C('t','h'), gettext_noop("Thailand"), 0,0,0 }, { IDX_2C('t','j'), gettext_noop("Tajikistan"), 0,0,0 }, { IDX_2C('t','k'), gettext_noop("Tokelau"), 0,0,0 }, { IDX_2C('t','m'), gettext_noop("Turkmenistan"), 0,0,0 }, { IDX_2C('t','n'), gettext_noop("Tunisia"), 0,0,0 }, { IDX_2C('t','o'), gettext_noop("Tonga"), 0,0,0 }, { IDX_2C('t','p'), gettext_noop("East Timor"), 0,0,0 }, { IDX_2C('t','r'), gettext_noop("Turkey"), 0,0,0 }, { IDX_2C('t','t'), gettext_noop("Trinidad and Tobago"), 0,0,0 }, { IDX_2C('t','v'), gettext_noop("Tuvalu"), 0,0,0 }, { IDX_2C('t','w'), gettext_noop("Taiwan"), 0,0,0 }, { IDX_2C('t','z'), gettext_noop("Tanzania"), 0,0,0 }, { IDX_2C('u','a'), gettext_noop("Ukraine"), 0,0,0 }, { IDX_2C('u','g'), gettext_noop("Uganda"), 0,0,0 }, { IDX_2C('u','k'), gettext_noop("United Kingdom"), 0,0,0 }, { IDX_2C('u','m'), gettext_noop("US Minor Outlying Islands"), 0,0,0 }, { IDX_2C('u','s'), gettext_noop("United States"), 0,0,0 }, { IDX_2C('u','y'), gettext_noop("Uruguay"), 0,0,0 }, { IDX_2C('u','z'), gettext_noop("Uzbekistan"), 0,0,0 }, { IDX_2C('v','a'), gettext_noop("Vatican City State (Holy See)"), 0,0,0 }, { IDX_2C('v','c'), gettext_noop("Saint Vincent and the Grenadines"), 0,0,0 }, { IDX_2C('v','e'), gettext_noop("Venezuela"), 0,0,0 }, { IDX_2C('v','g'), gettext_noop("Virgin Islands (British)"), 0,0,0 }, { IDX_2C('v','i'), gettext_noop("Virgin Islands (U.S.)"), 0,0,0 }, { IDX_2C('v','n'), gettext_noop("Viet Nam"), 0,0,0 }, { IDX_2C('v','u'), gettext_noop("Vanuatu"), 0,0,0 }, { IDX_2C('w','f'), gettext_noop("Wallis and Futuna Islands"), 0,0,0 }, { IDX_2C('w','s'), gettext_noop("Samoa"), 0,0,0 }, { IDX_2C('y','e'), gettext_noop("Yemen"), 0,0,0 }, { IDX_2C('y','t'), gettext_noop("Mayotte"), 0,0,0 }, { IDX_2C('y','u'), gettext_noop("Yugoslavia"), 0,0,0 }, { IDX_2C('z','a'), gettext_noop("South Africa"), 0,0,0 }, { IDX_2C('z','m'), gettext_noop("Zambia"), 0,0,0 }, { IDX_2C('z','r'), gettext_noop("Zaire"), 0,0,0 }, { IDX_2C('z','w'), gettext_noop("Zimbabwe"), 0,0,0 }, { 0 , NULL, 0,0,0 }}; ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������webdruid-0.5.4.orig/hashtab.h�����������������������������������������������������������������������0000600�0000000�0000000�00000015110�10066113350�015766� 0����������������������������������������������������������������������������������������������������ustar �root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������#ifndef _HASHTAB_H #define _HASHTAB_H typedef struct hnode *HNODEPTR; /* site node (host) pointer */ typedef struct unode *UNODEPTR; /* url node pointer */ typedef struct rnode *RNODEPTR; /* referrer node */ typedef struct anode *ANODEPTR; /* user agent node pointer */ typedef struct inode *INODEPTR; /* user (ident) node pointer */ #ifdef USE_DNS typedef struct dnode *DNODEPTR; /* DNS hash table node struct */ #endif typedef struct opnode *OPNODEPTR; /* currently opened path struct */ typedef struct pnode *PNODEPTR; /* achieved path - no more new entries */ /* Object flags */ #define OBJ_REG 0 /* Regular object */ #define OBJ_HIDE 1 /* Hidden object */ #define OBJ_GRP 2 /* Grouped object */ #ifdef USE_DNS struct dnode { char *string; /* DNS node hash table struct */ #ifdef USE_IPV6 struct sockaddr_storage addr; #else struct in_addr addr; #endif struct dnode *llist; struct dnode *next; }; #endif struct hnode { char *string; /* host hash table structure */ int flag; u_long count; u_long files; u_long visit; /* visit information */ u_long tstamp; char *lasturl; double xfer; struct hnode *next; }; struct unode { char *string; /* url hash table structure */ int flag; /* Object type (REG, HIDE, GRP) */ u_long count; /* requests counter */ u_long files; /* files counter ?? - unused */ u_long entry; /* entry page counter */ u_long exit; /* exit page counter */ double xfer; /* xfer size in bytes */ int urlindex; /* used by TopPath & UserFlow */ struct unode *next; }; /* pointer to next node */ struct rnode { char *string; /* referrer hash table struct */ int flag; u_long count; struct rnode *next; }; struct anode { char *string; /* user agent struct */ int flag; u_long count; struct anode *next; }; struct inode { char *string; /* host hash table struct */ int flag; u_long count; u_long files; u_long visit; u_long tstamp; double xfer; struct inode *next; }; struct opnode { struct opnode *next; struct list *path; /* LISTPTR path */ u_long hash; u_long tstamp; char *hostname; char *search_string; char *user; char *referrer; }; struct pnode { struct pnode *next; struct list *path; /* LISTPTR path */ u_long hash; int count; /* n. of times it was found */ /* The key can be whatever string we want. With this we will be able to build generic htables containing hostname, search_string, user or referrers */ char *key; }; /* hash tables for: */ extern HNODEPTR sm_htab[MAXHASH]; /* sites (monthly) */ extern HNODEPTR sd_htab[MAXHASH]; /* sites (daily) */ extern UNODEPTR um_htab[MAXHASH]; /* urls */ extern RNODEPTR rm_htab[MAXHASH]; /* referrers and agents... */ extern ANODEPTR am_htab[MAXHASH]; /* user agents */ extern INODEPTR im_htab[MAXHASH]; /* ident table (username) */ #ifdef USE_DNS extern DNODEPTR host_table[MAXHASH]; /* DNS resolver table */ #endif extern OPNODEPTR op_htab[MAXHASH]; /* currently opened path */ extern PNODEPTR gp_htab[MAXHASH]; /* all path (not sorted) */ extern PNODEPTR fm_htab[MAXHASH]; /* users flow (monthly) */ extern int put_hnode(char *, int, u_long, u_long, double, u_long *, u_long, u_long, char *, HNODEPTR *); extern int put_unode(char *, int, u_long, double, u_long *, u_long, u_long, UNODEPTR *); extern int put_inode(char *, int, u_long, u_long, double, u_long *, u_long, u_long, INODEPTR *); extern int put_rnode(char *, int, u_long, u_long *, RNODEPTR *); extern int put_anode(char *, int, u_long, u_long *, ANODEPTR *); extern int add_opitem(char *, char *, char *, char *, char *, u_long, OPNODEPTR *); extern int flush_opnode(u_long, char *); extern void flush_ophtab(u_long); extern int put_pnode(struct list *, char *, int, u_long, PNODEPTR *htab); #ifdef USE_DNS #ifdef USE_IPV6 extern int put_dnode(char *, struct sockaddr_storage *, DNODEPTR *); #else extern int put_dnode(char *, struct in_addr *, DNODEPTR *); #endif extern void del_dlist(DNODEPTR *); #endif extern void del_hlist(HNODEPTR *); /* delete host htab */ extern void del_ulist(UNODEPTR *); /* delete url htab */ extern void del_rlist(RNODEPTR *); /* delete referrer htab */ extern void del_alist(ANODEPTR *); /* delete user agent htab */ extern void del_ilist(INODEPTR *); /* delete user htab */ extern void del_plist(PNODEPTR *, int); /* delete path list */ extern void del_oplist(OPNODEPTR *, int); /* delete opened path list */ extern void month_update_exit(u_long); extern u_long tot_visit(HNODEPTR *); extern UNODEPTR find_url_node(char *str); /* finds unode given url str */ extern char *find_url(char *); /* finds pointer in url htab */ extern char *find_hostname(char *); /* finds pointer in sm_htab */ extern char *find_user(char *); /* finds pointer in am_htab */ extern char *find_referrer(char *); /* finds pointer in rm_htab */ #endif /* _HASHTAB_H */ ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������webdruid-0.5.4.orig/engines.list��������������������������������������������������������������������0000644�0000000�0000000�00000115276�10066113350�016556� 0����������������������������������������������������������������������������������������������������ustar �root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# # This is The WebDruid search engines list # # Copyright (C) 2004 Enric Naval (enric@griho.net) # # Copyright (C) 2003-2004 Fabien Chevalier (fabien@juliana-multimedia.com) # # Distributed under the GNU General Public License. See the files # "COPYING" and "Copyright" supplied with the distribution for additional # information. # # If a search engine you know is not in this list, you can add it. # If you do so, please send your changes to enric@griho.net # If you know that one of these engines has disappeared, you should also # notice me, as i have no time to check them all! # # File format is quite clear, there are plenty of samples... # # HOSTNAME NOTE: Please note though that a wildcard '*' is only allowed # at the beginning and at end of the string, and only as a replacement for the # first and last 'words' of the dns name. # # Suppose you want to match 'search.my.engine.net': # # These are the only 4 strings that will match, sorted in order of priority # to which a host name will be checked against: # # - search.my.engine.net #<-- Top priority # - search.my.engine.* # - *.my.engine.net # - *.my.engine.* # # The following won't match: # # - *.engine.* # - *.my.* # - ... everything else # # Using the different priorities you can differentiate for instance the generic # google.com from your local google.countrycode like this # # <SearchEngine> # name Google # querytags q=, as_q= #query + advanced search query # hostname www.google.* # </SearchEngine> # # <SearchEngine> # name French Google # querytags q=, as_q= #query + advanced search query # hostname www.google.fr # </SearchEngine> # TODO: webdruid won't accept top level domain names like google.com # TODO: can we put *.aol.com.* and *.aol.co.* or it would generate too many warnings # Grrr... As of 11th aug. 2003, Tiscali has 16 different portals. # Not all are powerd by the same system, as you can see with # a few samples below. # We suppose the search-dyn.tiscali.* is the newest form, and the other # portals will switch to it soon. # #http://search-dyn.tiscali.at/search.php?key=test #http://search-dyn.tiscali.be/search.php?xsllang=fr&collapse=on&language=fr&type=all&external=1&offset=0&pg=1&maxCount=&query=&key=test&collection=be&search=ok&tiscalitype=web #http://search-dyn.tiscali.ch/search.php?external=1&pg=1&maxCount=&xsllang=de&collapse=on&hits=10&language=de&key=test&collection=ch&tiscalitype=web #http://hledani.tiscali.cz/web/search.php?type=all&lang=czech&query=test&hits=&A1=&B1=&C1=&A2=&B2=&C2=&A3=&B3=&C3=&kde=cz_internet&dincl=&dexcl=<SearchEngine> #http://search-dyn.tiscali.de/search.php?key=test&tiscalitype=web&hits=10&language=de&external=1&pg=&maxCount=&collapse=on&pg=1 #http://search-dyn.tiscali.es/search.php?key=test&tiscalitype=web&hits=10&language=es&external=1&collection=es&offset=0&pg=1 ####Let'begin with the most famous # www.google.com.* will match "www.google.com.pe" "www.google.com.ec" and similar. <SearchEngine> name Google National querytags q=, as_q=, as_epq=, as_oq= #query + advanced search query charsettag ie= #Google gives the used encoding here hostname www.google.com.* </SearchEngine> <SearchEngine> name Google National2 querytags q=, as_q=, as_epq=, as_oq= #query + advanced search query charsettag ie= #Google gives the used encoding here hostname www.google.co.* </SearchEngine> <SearchEngine> name Google National3 querytags q=, as_q=, as_epq=, as_oq= #query + advanced search query charsettag ie= #Google gives the used encoding here hostname google.com.* </SearchEngine> <SearchEngine> name Google National4 querytags q=, as_q=, as_epq=, as_oq= #query + advanced search query charsettag ie= #Google gives the used encoding here hostname google.co.* </SearchEngine> <SearchEngine> name Google querytags q=, as_q=, as_epq=, as_oq= #query + advanced search query charsettag ie= #Google gives the used encoding here hostname www.google.* </SearchEngine> #<SearchEngine> # name Google2 # querytags q=, as_q=, as_epq=, as_oq= #query + advanced search query # charsettag ie= #Google gives the used encoding here # hostname google.* #</SearchEngine> <SearchEngine> name Google Images National querytags q= charsettag ie= #Google gives the used encoding here hostname images.google.com.* </SearchEngine> <SearchEngine> name Google Images querytags q= charsettag ie= #Google gives the used encoding here hostname images.google.* </SearchEngine> <SearchEngine> name Google Groups querytags q= charsettag ie= #Google gives the used encoding here hostname groups.google.* </SearchEngine> <SearchEngine> name Google News querytags q= charsettag ie= #Google gives the used encoding here hostname news.google.* </SearchEngine> <SearchEngine> name Google Translate querytags q= charsettag ie= #Google gives the used encoding here hostname translate.google.* </SearchEngine> # and now the rest of engines # chinese <SearchEngine> name 163 querytags q= hostname www.163.com </SearchEngine> # international (meta) <SearchEngine> name 1Blink querytags q= hostname www.1blink.com </SearchEngine> # danish <SearchEngine> name 1Klick querytags query= hostname www.1klik.dk </SearchEngine> # international <SearchEngine> name 2020 querytags Keywords= hostname www.2020search.com </SearchEngine> # international <SearchEngine> name 348north querytags search= hostname www.348north.com </SearchEngine> # chinese <SearchEngine> name 3721 querytags name= hostname cns.3721.com </SearchEngine> # chinese <SearchEngine> name 3721_yahoo querytags p=, name= hostname seek.3721.com </SearchEngine> # international (pay per click) #<SearchEngine> # name 7search # querytags qu= # hostname 7search.com #</SearchEngine> # austria (this one does no longer make searches?) #<SearchEngine> # name a-site # querytags query= # hostname a-site.at #</SearchEngine> # germany/austria/switzerland <SearchEngine> name Abacho querytags q= hostname search.abacho.* </SearchEngine> # germany/austria/switzerland <SearchEngine> name Abacho2 querytags q= hostname www.abacho.* </SearchEngine> # international <SearchEngine> name ABCSearch querytags terms= hostname *.abcsearch.com </SearchEngine> # hotelguide. # germany/austria/switzerland <SearchEngine> name Aberja querytags txt= hostname *.aberja.com </SearchEngine> # germany/austria/switzerland <SearchEngine> name Aberja querytags txt= hostname www.aberja.* </SearchEngine> # germany/austria/switzerland #<SearchEngine> # name Aberja # querytags txt= # hostname aberja.at #</SearchEngine> # germany/austria/switzerland #<SearchEngine> # name Aberja # querytags txt= # hostname aberja.com #</SearchEngine> # germany/austria/switzerland #<SearchEngine> # name Aberja # querytags txt= # hostname aberja.de #</SearchEngine> # international <SearchEngine> name About querytags terms=, zu= hostname *.about.com </SearchEngine> # germany <SearchEngine> name Acoon querytags begriff= hostname www.acoon.de </SearchEngine> # international <SearchEngine> name Aesop querytags term=, q= hostname www.aesop.com </SearchEngine> # international (paid listings) <SearchEngine> name Ah-ha querytags Q= hostname *.ah-ha.com </SearchEngine> # Estonia <SearchEngine> name Aktivist querytags sWord= hostname www.aktivist.ee </SearchEngine> # international <SearchEngine> name Ask Jeeves (aj.com) querytags ask=, q=, MetaTopic=, MetaURL= hostname *.aj.com </SearchEngine> # alcanseek uses strange methods: # http://www.alcanseek.com/acgibin/find.cgi?griho+interaction=01 # famous international <SearchEngine> name Alexa querytags q= hostname www.alexa.com </SearchEngine> # germany/austria uses location= for place (has more querytags) <SearchEngine> name Allesklar querytags words= hostname *.allesklar.* </SearchEngine> # france <SearchEngine> name Allisonline querytags searchword=, mots=, marque= hostname *.allisonline.com </SearchEngine> # international <SearchEngine> name Allofthesites querytags query= hostname www.allofthesites.com </SearchEngine> # uk <SearchEngine> name allsearchengines.co.uk querytags query= hostname www.allsearchengines.co.uk </SearchEngine> # international <SearchEngine> name Alltheinternet querytags q= hostname www.alltheinternet.com </SearchEngine> # international <SearchEngine> name Allthesites querytags query= hostname www.allthesites.com </SearchEngine> # famous <SearchEngine> name All The Web querytags q=, query= hostname *.alltheweb.com </SearchEngine> # famous <SearchEngine> name Altavista Australia querytags q=, aqa=, aqp=, aqb=, filetype= hostname search.au.altavista.com </SearchEngine> # famous <SearchEngine> name Altavista querytags q=, aqa=, aqp=, aqb=, filetype= hostname *.altavista.com </SearchEngine> # Argentina <SearchEngine> name AOL Argentina querytags q=, query= hostname buscador.americaonline.com.ar </SearchEngine> # mexico <SearchEngine> name AOL Mexico querytags q=, query= hostname busqueda.americaonline.com.mx </SearchEngine> # South Africa <SearchEngine> name Ananzi querytags qt= hostname ananzi.co.za </SearchEngine> # South Africa <SearchEngine> name Ananzi querytags qt= hostname *.ananzi.co.za </SearchEngine> # international <SearchEngine> name Antisearch querytags KEYWORDS= hostname www.antisearch.net </SearchEngine> # japan <SearchEngine> name Aol Japan querytags query= hostname search.jp.aol.com </SearchEngine> # german <SearchEngine> name AOL Germany querytags q= hostname suche.aol.de </SearchEngine> # german <SearchEngine> name AOL Germany2 querytags q= hostname sucheaol.aol.de </SearchEngine> # german <SearchEngine> name AOL Germany3 querytags q= hostname netfind.aol.de </SearchEngine> # german <SearchEngine> name AOL Germany4 querytags q= hostname netfind.germany.aol.com </SearchEngine> # uk <SearchEngine> name AOL UK querytags query= hostname aolsearch.aol.co.uk </SearchEngine> # mexican <SearchEngine> name Aol Mexican (old) querytags query= hostname aolbusqueda.aol.com.mx </SearchEngine> # mexican <SearchEngine> name Aol Mexican querytags query= hostname busqueda.aol.com.mx </SearchEngine> # latinoamerica <SearchEngine> name AOL latinoamerica querytags query= hostname buscador.la.aol.com </SearchEngine> # famous <SearchEngine> name AOL querytags query=, userQuery= hostname search.aol.com </SearchEngine> # french <SearchEngine> name AOL Fr (www.recherche.aol.fr) querytags q= hostname www.recherche.aol.fr </SearchEngine> # french <SearchEngine> name AOL Fr (recherche.aol.fr) querytags q= hostname recherche.aol.fr </SearchEngine> # french <SearchEngine> name AOL Fr (aolrecherche.aol.fr) querytags q= hostname aolrecherche.aol.fr </SearchEngine> #This one generates too many errors, we disable it... #<SearchEngine> # name AOL Fr (www.aolrecherche.aol.fr) # querytags r=, q= # hostname www.aolrecherche.aol.fr #</SearchEngine> # russian <SearchEngine> name Aport querytags r= hostname *.aport.ru </SearchEngine> # germany <SearchEngine> name Arcor querytags Keywords= hostname www.arcor.de </SearchEngine> # %3d is also a querytag # english <SearchEngine> name Ask Jeeves UK querytags q=, MetaTopic=, MetaURL= hostname www.ask.co.uk </SearchEngine> # %3d is also a querytag # international (normal and meta) <SearchEngine> name Ask Jeeves querytags q=, MetaTopic=, MetaURL= hostname *.ask.com </SearchEngine> # %3d is also a querytag # international (normal and meta) #<SearchEngine> # name Ask Jeeves # querytags q=, MetaTopic=, MetaURL= # hostname ask.com #</SearchEngine> # international <SearchEngine> name AskGeeves querytags ask= hostname www.askgeeves.com </SearchEngine> # international <SearchEngine> name AskJeeves querytags ask= hostname www.askjeeves.com </SearchEngine> # czech <SearchEngine> name Atlas.cz querytags q= hostname www.atlas.cz </SearchEngine> # minor (internal search) <SearchEngine> name Atomz querytags sp-q= hostname *.atomz.com </SearchEngine> # Austria #<SearchEngine> # name Atsearch # querytags qs= # hostname atsearch.at #</SearchEngine> # http://www.att.net/cgi-bin/websearch?cmd=qry&qry=griho&image.x=7&image.y=9 # international <SearchEngine> name ATT querytags qry= hostname www.att.net </SearchEngine> # international <SearchEngine> name ATT (old) querytags qry= hostname www.attbi.com </SearchEngine> # switzerland <SearchEngine> name Augur querytags q= hostname www.augur.ch </SearchEngine> # Not sure this entry is correct # international #<SearchEngine> # name Altavista (av.com) # querytags q= # hostname av.com #</SearchEngine> # austria <SearchEngine> name Austria.at querytags query=, word= hostname www.austria.at </SearchEngine> # <SearchEngine> name Austria-WWW querytags sb1= hostname www.austria-www.at </SearchEngine> # austria <SearchEngine> name Austria-Seek querytags Terms= hostname www.austria-seek.at </SearchEngine> # Venezuela <SearchEngine> name Auyantepui querytags clave= hostname www.auyantepui.com </SearchEngine> # international <SearchEngine> name Avantfind querytags Keywords= hostname www.avantfind.com </SearchEngine> # austria <SearchEngine> name a-site.at querytags query= hostname www.a-site.at </SearchEngine> # international <SearchEngine> name Babieca querytags keywords= hostname www.babieca.com </SearchEngine> # this should www. or search. #international <SearchEngine> name Backflip querytags query= hostname *.backflip.com </SearchEngine> # china/taiwan <SearchEngine> name Baidu querytags word= hostname www.baidu.com </SearchEngine> # international (programation) (dead) #<SearchEngine> # name Barra Home # querytags query= # hostname barrahome.org #</SearchEngine> # arabia <SearchEngine> name Battota querytags search_string= hostname www.batoota.com </SearchEngine> # english <SearchEngine> name BBC querytags q= hostname www.bbc.co.uk </SearchEngine> # example: http://home.bellsouth.net/s/s.dll # minor international <SearchEngine> name Bellsouth querytags string= hostname home.bellsouth.net </SearchEngine> # japanese <SearchEngine> name Biglobe querytags q= hostname search.biglobe.ne.jp </SearchEngine> # france <SearchEngine> name Biglotron querytags q= hostname www.biglotron.com </SearchEngine> # international (blogsearch) #<SearchEngine> # name blogdex # querytags q=, url= # hostname blogdex.net #</SearchEngine> # international (blog/RSS) #<SearchEngine> # name Blogdigger # querytags q=, queryString= # hostname blogdigger.com #</SearchEngine> # international (blog/RSS) #<SearchEngine> # name blogosphere.us # querytags s= # hostname blogosphere.us #</SearchEngine> # international (blog/RSS) <SearchEngine> name blogmatrix querytags search= hostname www.blogmatrix.com </SearchEngine> # international (blog/RSS) <SearchEngine> name BLOGWISE querytags query= hostname www.blogwise.com </SearchEngine> # international (blog) <SearchEngine> name Bloogz querytags q= hostname www.bloogz.com </SearchEngine> # international <SearchEngine> name BlowSearch querytags qkw= hostname msxml.blowsearch.com </SearchEngine> # uk <SearchEngine> name blueyonder querytags q= hostname www.blueyonder.co.uk </SearchEngine> # switzerland <SearchEngine> name Bodensee querytags search1= hostname www.bodenseeinformation.ch </SearchEngine> # norway <SearchEngine> name Boitho querytags query= hostname www.boitho.com </SearchEngine> # brasil <SearchEngine> name Brasil Online querytags q= hostname miner.bol.com.br:8080 </SearchEngine> # international (meta) <SearchEngine> name Boowa querytags kw= hostname www.boowa.com </SearchEngine> # Ukraine <SearchEngine> name Brama querytags words= hostname www.brama.com </SearchEngine> # french <SearchEngine> name Breizhat querytags chReq= hostname www.breizhat.com </SearchEngine> # germany <SearchEngine> name Browserwise! querytags q= hostname www.browserwise.com </SearchEngine> # international <SearchEngine> name BT open world querytags query= hostname www.btopenworld.com </SearchEngine> # spanin <SearchEngine> name Buscador.com querytags s_lookfor= hostname www.buscador.com </SearchEngine> # spain <SearchEngine> name Buscador Espanol querytags keyword= hostname www.buscadorespanol.com </SearchEngine> # spain <SearchEngine> name Buscamelo querytags keywords= hostname www.buscamelo.com </SearchEngine> # perhaps www.bussiness.com also? # international <SearchEngine> name business.com querytags query= hostname rd.business.com </SearchEngine> # ?? (this is a domain name service? mydomain.by.com <SearchEngine> name By querytags query= hostname www.by.com </SearchEngine> # international (meta) <SearchEngine> name C4 querytags SearchText=, form_keyword= hostname www.c4.com </SearchEngine> # russian (cracks?) #<SearchEngine> # name Caxa # querytags /saved/ # hostname www.caxa.ru #</SearchEngine> # czech <SearchEngine> name Centrum querytags q= hostname search.centrum.cz </SearchEngine> # international <SearchEngine> name CNN querytags query= hostname websearch.cnn.com </SearchEngine> # international #<SearchEngine> # name Comcast.net # querytags query= # hostname comcast.net #</SearchEngine> # international <SearchEngine> name Comcast.net querytags query= hostname www.comcast.net </SearchEngine> # international <SearchEngine> name Comet Search querytags query=, qry= hostname search.cometsystems.com </SearchEngine> # international (dead) <SearchEngine> name Compuserverve querytags Term= hostname cissearch.compuserve.com </SearchEngine> # germany <SearchEngine> name Compuserve Germany querytags q= hostname suche.compuserve.de </SearchEngine> # in= specifies the kind of data searched for (images, news, etc) # portugal <SearchEngine> name Clix querytags question=, in= hostname pesquisa.clix.pt </SearchEngine> # france <SearchEngine> name Club Internet querytags key= hostname *.club-internet.fr </SearchEngine> # canada <SearchEngine> name Canoe google querytags q= hostname google.canoe.com </SearchEngine> # canada <SearchEngine> name Canoe querytags q= hostname recherche.canoe.com </SearchEngine> # belgium <SearchEngine> name Chello Belgium (french) querytags keywords=, srchText= hostname home.fra.chello.be </SearchEngine> # belgium <SearchEngine> name Chello Belgium (nederland) querytags keywords=, srchText= hostname home.nld.chello.be </SearchEngine> # norway <SearchEngine> name Chello Norway querytags keywords=, srchText= hostname home.nor.chello.no </SearchEngine> # qcat= is the kind of data searched for # international (meta) <SearchEngine> name crawler.com querytags qkw=, qcat= hostname *.crawler.com </SearchEngine> # minor international <SearchEngine> name Compu Serve querytags query= hostname websearch.cs.com </SearchEngine> # uk <SearchEngine> name Cyberbritain querytags qry= hostname www.cyberbritain.co.uk </SearchEngine> # famous <SearchEngine> name DMOZ querytags search= hostname search.dmoz.org </SearchEngine> # now uses /search/web/ # international <SearchEngine> name Dogpile querytags qkw=, q= hostname *.dogpile.com </SearchEngine> # international <SearchEngine> name Earthlink querytags q= hostname search.earthlnk.net </SearchEngine> # danish <SearchEngine> name Eniro querytags q= hostname www.eniro.dk </SearchEngine> # swedish <SearchEngine> name Eniro querytags q= hostname www.eniro.se </SearchEngine> # slovenian <SearchEngine> name eon.si querytags KljucneBesede= hostname www.eon.si </SearchEngine> # international (redirection) <SearchEngine> name Espotting querytags keywords= hostname *.espotting.com </SearchEngine> # international #<SearchEngine> # name Euroseek # querytags string= # hostname euroseek.com #</SearchEngine> # international <SearchEngine> name EuroSeek querytags string= hostname *.euroseek.com </SearchEngine> # uses msxml. , srch. # msxml /search/web/ # now uses /search/web/ # international <SearchEngine> name Excite.com querytags qkw= hostname *.excite.com </SearchEngine> # international <SearchEngine> name Excite.com.* querytags qkw= hostname www.excite.com.* </SearchEngine> # international <SearchEngine> name Excite.co.* querytags qkw= hostname www.excite.co.* </SearchEngine> # international <SearchEngine> name Excite querytags q= hostname www.excite.* </SearchEngine> # Arabian <SearchEngine> name Hahooa querytags query= hostname hahooa.extense.com </SearchEngine> # category= kind of data # international #<SearchEngine> # name ez2Find # querytags qry_str=, category= # hostname ez2find.com #</SearchEngine> # Arab emirates <SearchEngine> name Fares querytags search= hostname dir.fares.net </SearchEngine> # international <SearchEngine> name Findarticles querytags q= hostname www.findarticles.com </SearchEngine> # german <SearchEngine> name Fireball querytags q= hostname *.fireball.de </SearchEngine> # international #<SearchEngine> # name FireHunt # querytags Keywords= # hostname firehunt.com #</SearchEngine> # uses ^www., ^partner46. and others # international <SearchEngine> name Firehunt querytags Keywords= hostname *.firehunt.com </SearchEngine> # french <SearchEngine> name Francite querytags name= hostname recherche.francite.com </SearchEngine> # french <SearchEngine> name Free querytags q= charsettag ie= hostname search1-2.free.fr </SearchEngine> # english <SearchEngine> name Freeserve querytags q= hostname www.ifind.freeserve.com </SearchEngine> # international (meta) #<SearchEngine> # name Gimenei # querytags qry_str= # hostname gimenei.com #</SearchEngine> # international <SearchEngine> name Infoseek/Go querytags qt= hostname infoseek.go.com </SearchEngine> # famous (has lots of partners) <SearchEngine> name go2net querytags general=, query= hostname clickit.go2net.com </SearchEngine> # hungarian <SearchEngine> name Glit querytags KERESES= hostname www.goliat.hu </SearchEngine> # international <SearchEngine> name Go.com querytags q= hostname go.google.com </SearchEngine> # international (redirected) #<SearchEngine> # name Goto # querytags Keywords= # hostname goto.com #</SearchEngine> # argentina <SearchEngine> name Grippo querytags words= hostname www.grippo.com.ar </SearchEngine> # international <SearchEngine> name mochanni querytags query= hostname dxm1.hanafos.com </SearchEngine> # hungarian <SearchEngine> name Heureka querytags heureka= hostname www.heureka.hu </SearchEngine> # wfq= is okay?? # international <SearchEngine> name HotBot querytags MT=, query=, wfq= hostname www.hotbot.com </SearchEngine> # international <SearchEngine> name HotBot.Lycos querytags MT=, query=, wfq= hostname www.hotbot.lycos.* </SearchEngine> # international #<SearchEngine> # name Infossek # querytags qt= # hostname infoseek.* #</SearchEngine> # international <SearchEngine> name Infoseek2 querytags qt= hostname www.infoseek.* </SearchEngine> # international <SearchEngine> name Infoseek3 querytags qt= hostname *.infoseek.com.* </SearchEngine> # International <SearchEngine> name Infoseek4 querytags qt= hostname *.infoseek.co.* </SearchEngine> # international <SearchEngine> name HotBot.Lycos querytags MT=, query=, wfq= hostname hotbot.lycos.com </SearchEngine> # international (icq) <SearchEngine> name www.icq.com querytags q= hostname google.icq.com </SearchEngine> # italy <SearchEngine> name Ilmotore querytags query= hostname www.ilmotore.com </SearchEngine> # dutch <SearchEngine> name Ilse querytags search_for= hostname www.ilse.nl </SearchEngine> # hungarian <SearchEngine> name Index querytags KERESES= hostname goliat.index.hu </SearchEngine> # international <SearchEngine> name Infospace querytags qkw= hostname msxml.infospace.com </SearchEngine> # international <SearchEngine> name ithaki.net querytags query= hostname www.ithaki.net </SearchEngine> # international <SearchEngine> name Iwon querytags searchfor= hostname search.iwon.com </SearchEngine> # international #<SearchEngine> # name Ixquick # querytags query= # hostname ixquick.com #</SearchEngine> # international <SearchEngine> name Ixquick querytags query= hostname *.ixquick.com </SearchEngine> # norway <SearchEngine> name Kvasir querytags q= hostname search.kvasir.no </SearchEngine> # danish <SearchEngine> name Jubii querytags query= hostname soeg.jubii.dk </SearchEngine> # international <SearchEngine> name Latinguia querytags query= hostname www.latinguia.com </SearchEngine> # french <SearchEngine> name LBB querytags query= hostname www.lbb.org </SearchEngine> # italiy <SearchEngine> name Libero Recerca querytags query= hostname arianna.libero.it </SearchEngine> # international <SearchEngine> name LookSmart querytags q=, key= hostname *.looksmart.com </SearchEngine> # uk <SearchEngine> name Looksmart syndicated querytags Search=, QueryText=, QueryString= hostname synd-uk.looksmart.co.uk </SearchEngine> # uk <SearchEngine> name Looksmart UK querytags q=, key= hostname www.looksmart.co.uk </SearchEngine> # famous <SearchEngine> name Lycos querytags query=, wfq= hostname *.lycos.* </SearchEngine> # international <SearchEngine> name Mamma querytags query= hostname *.mamma.com </SearchEngine> # slovenian (important) <SearchEngine> name Mat'kurja querytags keys= hostname www.matkurja.com </SearchEngine> # russia <SearchEngine> name Metabot querytags st= hostname *.metabot.ru </SearchEngine> # now uses /search/web/ and encodes & and ? # international (meta) <SearchEngine> name Metacrawler querytags qkw=, q_all=, q_phrase=, q_any=, qbool= hostname www.metacrawler.com </SearchEngine> # international (meta) <SearchEngine> name meta Eureka querytags terms= hostname www.metaeureka.com </SearchEngine> # international <SearchEngine> name Metaspinner.com querytags qry_str= hostname www.metaspinner.com </SearchEngine> # germany <SearchEngine> name Metaspinner querytags qry= hostname 212.227.33.241 </SearchEngine> # germany <SearchEngine> name Metaspinner2 querytags qry= hostname www.metaspinner.de </SearchEngine> # england <SearchEngine> name Mirago uk querytags qry= hostname www.mirago.co.uk </SearchEngine> # international (meta) <SearchEngine> name Moonmist querytags q= hostname www.moonmist.info </SearchEngine> # latino <SearchEngine> name Msn Latino querytags q=, MT= hostname latino.msn.com </SearchEngine> # famous <SearchEngine> name Msn querytags q=, MT= hostname search.msn.* </SearchEngine> # famous <SearchEngine> name Msn querytags q=, MT= hostname *.search.msn.com </SearchEngine> # famous <SearchEngine> name Msn National querytags q=, MT= hostname search.msn.com.* </SearchEngine> # international <SearchEngine> name Multibuscador querytags keywords= hostname buscadores.multibuscador.com </SearchEngine> # South Africa <SearchEngine> name Mweb querytags hpq= hostname www.mweb.co.za </SearchEngine> # mysearch.myway.com, goto.myway.com # international <SearchEngine> name My Way querytags searchfor= hostname *.myway.com </SearchEngine> # international <SearchEngine> name My Way querytags searchfor= hostname *.mysearch.myway.com </SearchEngine> # international <SearchEngine> name MyWebSearch querytags searchfor= hostname www.mywebsearch.com </SearchEngine> # slovenian <SearchEngine> name Najdi querytags q= hostname www.najdi.si </SearchEngine> # international <SearchEngine> name Nandosearch querytags query= hostname www.nandosearch.com </SearchEngine> # japan <SearchEngine> name Naver .co.jp querytags query= hostname *.naver.co.jp </SearchEngine> # japan <SearchEngine> name Naver .com querytags query= hostname *.naver.com </SearchEngine> # international <SearchEngine> name Netscape querytags q=, query=, search= hostname search.netscape.com </SearchEngine> # suche.netscape.de, etc. <SearchEngine> name Netscape National querytags q=, query=, search= hostname *.netscape.com </SearchEngine> # international #<SearchEngine> # name Netscape (old) # querytags search= # hostname search-intl.netscape.com #</SearchEngine> # Netherlands <SearchEngine> name NL Menu querytags NLM-QRY1= hostname www.nl-menu.nl </SearchEngine> # danish <SearchEngine> name Ofir querytags querytext= hostname mainsoeg.ofir.dk </SearchEngine> # international #<SearchEngine> # name Oingo # querytags s= # hostname *.oingo.com #</SearchEngine> # hungarian <SearchEngine> name Origo-Vizsla querytags q= hostname vizsla.origo.hu </SearchEngine> # international <SearchEngine> name Overture querytags Keywords= hostname www.overture.com </SearchEngine> # international <SearchEngine> name Profusion querytags queryterm= hostname www.profusion.com </SearchEngine> # canadian <SearchEngine> name Toile du Quebec querytags query= hostname *.toile.qc.ca </SearchEngine> # czech <SearchEngine> name Quick querytags ftxt_query= hostname hledej.quick.cz </SearchEngine> # russia <SearchEngine> name Rambler querytags words=, old_q= hostname search.rambler.ru </SearchEngine> # spain <SearchEngine> name RandomTaxi querytags q= hostname www.randomtaxi.com </SearchEngine> # uk <SearchEngine> name Resource Discovery Network querytags query= hostname www.rdn.ac.uk </SearchEngine> # czech <SearchEngine> name Redbox querytags search_string= hostname search.redbox.cz </SearchEngine> # Portugal <SearchEngine> name Sapo querytags s= hostname pesquisa.sapo.pt </SearchEngine> # slovenian #<SearchEngine> # name Raziskovalec # querytags query= # hostname raziskovalec.com #</SearchEngine> ## referrer: http://webferret.search.com/click ## srch_string: ?wf,diagrama+de+bloques+de+un+monitor,,griho.udl.es/ipo/pdf/06Dispos.pdf,,aol ## international ##<SearchEngine> ## name Webferret ## querytags ## hostname weberret.search.com ##</SearchEngine> # famous <SearchEngine> name Search.com querytags q=, qt= hostname *.search.com </SearchEngine> # international <SearchEngine> name Searchalot querytags query=, q=, search= hostname *.searchalot.com </SearchEngine> # international <SearchEngine> name Searchengine.net querytags keyword= hostname www.searchengine.net </SearchEngine> # international (meta) <SearchEngine> name Searchy querytags search_term= hostname searchy.co.uk </SearchEngine> # international (meta) <SearchEngine> name Searchy2 querytags search_term= hostname www.searchy.co.uk </SearchEngine> # czech <SearchEngine> name Seznam querytags w= hostname *.seznam.cz </SearchEngine> # international <SearchEngine> name Snap querytags keyword= hostname www.snap.com </SearchEngine> # norvegian <SearchEngine> name Start.no querytags q= hostname www.start.no </SearchEngine> # english <SearchEngine> name Splut querytags pattern= hostname www.splut.com </SearchEngine> # france/international (redirection) <SearchEngine> name Spotting.fr querytags keyword= hostname affiliate.spotting.fr </SearchEngine> # norway <SearchEngine> name Startsiden querytags q= hostname google.startsiden.no </SearchEngine> # canada <SearchEngine> name Sympatico english querytags query= hostname search.sympatico.ca </SearchEngine> # canada <SearchEngine> name Sympatico french querytags query= hostname search.sli.sympatico.ca </SearchEngine> # german <SearchEngine> name T-Online querytags q= hostname brisbane.t-online.de </SearchEngine> # nqu= NOT # german <SearchEngine> name T-Online shopping querytags q=, qu=, nqu= hostname shopping.t-online.de </SearchEngine> # mexico <SearchEngine> name MSN Mexico querytags q=, q=&q= hostname search.t1msn.com.mx </SearchEngine> # denmark <SearchEngine> name TDC Omline querytags q= hostname find.tdconline.dk </SearchEngine> # international <SearchEngine> name Teoma querytags q= hostname s.teoma.com </SearchEngine> # click. is for redirections # international (redirection/other) <SearchEngine> name Terespondo querytags kw= hostname *.terespondo.com </SearchEngine> # famous <SearchEngine> name Terra querytags q= hostname buscar2.terra.com </SearchEngine> # famous <SearchEngine> name Terra querytags query= hostname buscador.terra.* </SearchEngine> # famous <SearchEngine> name Terra (nationals) querytags query= hostname buscador.terra.com.* </SearchEngine> # this catches both buscador. and buscador2. # mexico <SearchEngine> name Terra Mexico querytags query= hostname *.terra.com.mx </SearchEngine> # famous <SearchEngine> name Tiscali querytags key= hostname search-dyn.tiscali.* </SearchEngine> # french <SearchEngine> name Tiscali Fr querytags s=, MT= hostname rechercher.nomade.tiscali.fr </SearchEngine> # japanese <SearchEngine> name tocc querytags QRY= hostname www.tocc.co.jp </SearchEngine> # canadian <SearchEngine> name Toile du Quebec [Robot] querytags q=, query= hostname web.toile.com </SearchEngine> # Turkia <SearchEngine> name Turkey-Web querytags entry= hostname www.turkey-web.com </SearchEngine> # argentinian <SearchEngine> name Ubbi querytags q=, site=, as_q=, as_epq=, as_oq= hostname www.ubbi.com </SearchEngine> # argentinian <SearchEngine> name Ubbi querytags q=, site=, as_q=, as_epq=, as_oq= hostname www.ubbi.com.* </SearchEngine> # english <SearchEngine> name UK Directory querytags k=, Search= hostname www.ukdirectory.co.uk </SearchEngine> # uk <SearchEngine> name ukindex querytags stext= hostname www.ukindex.co.uk </SearchEngine> # uk <SearchEngine> name ukindex2 querytags stext= hostname ukindex.co.uk </SearchEngine> # english <SearchEngine> name UK + querytags key= hostname www.ukplus.com </SearchEngine> # brasil <SearchEngine> name Radar UOL querytags q= hostname radaruol.uol.com.br </SearchEngine> # international #<SearchEngine> # name Euroseek # querytags string= # hostname usseek.com #</SearchEngine> # international <SearchEngine> name Euroseek querytags string= hostname *.usseek.com </SearchEngine> # international <SearchEngine> name Verizon querytags qkw= hostname dpxmldsl.verizon.net </SearchEngine> # international <SearchEngine> name Verizon2 querytags qkw= hostname dpxml.verizon.net </SearchEngine> # nederlands <SearchEngine> name Vinden querytags query= hostname zoek.vinden.nl </SearchEngine> # italian <SearchEngine> name Virgilio querytags qs= hostname search.virgilio.it </SearchEngine> # UK / Ireland <SearchEngine> name Virgin querytags q= hostname gps.virgin.net </SearchEngine> # international #<SearchEngine> # name Vivisimo # querytags query= # hostname vivisimo.com #</SearchEngine> # international <SearchEngine> name Vivisimo querytags query= hostname *.vivisimo.com </SearchEngine> # french <SearchEngine> name Voila querytags kw=, rdata= hostname search.ke.voila.fr </SearchEngine> # famous <SearchEngine> name Voila.com querytags kw= hostname www.voila.com </SearchEngine> # czech <SearchEngine> name Najdi.to querytags dotaz= hostname web.volny.cz </SearchEngine> # german <SearchEngine> name Web.de querytags su= hostname *.web.de </SearchEngine> # now uses /search/web/ # international <SearchEngine> name Webcrawler querytags qkw=, search=, searchText= hostname dpxml.webcrawler.com </SearchEngine> # australian <SearchEngine> name WebWombat querytags ix= hostname www.webwombat.com.au </SearchEngine> # international <SearchEngine> name Wisenut querytags q= hostname www.wisenut.com </SearchEngine> # finnish <SearchEngine> name www.fi querytags qt= hostname haku.www.fi </SearchEngine> # famous <SearchEngine> name Msn Xtra querytags q= hostname search.xtramsn.co.nz </SearchEngine> # famous <SearchEngine> name Yahoo Spanish querytags p= hostname *.espanol.yahoo.com </SearchEngine> # famous <SearchEngine> name google.yahoo.com querytags p= hostname *.google.yahoo.com </SearchEngine> # famous <SearchEngine> name ink.yahoo.com querytags p= hostname ink.yahoo.com </SearchEngine> # famous <SearchEngine> name ink.yahoo.com querytags p= hostname *.ink.yahoo.com </SearchEngine> # hong kong <SearchEngine> name Yahoo HK querytags p=, va=, vp=, vo=, vs=, vc= hostname search.hk.yahoo.com </SearchEngine> # famous <SearchEngine> name Yahoo querytags p=, va=, vp=, vo=, vs=, vc= hostname *.search.yahoo.com </SearchEngine> # famous <SearchEngine> name Yahoo.com querytags p=, va=, vp=, vo=, vs=, vc= hostname search.yahoo.com </SearchEngine> # russian <SearchEngine> name Yandex querytags text= hostname www.yandex.ru </SearchEngine> # international #<SearchEngine> # name Yasearch.net # querytags qq= # hostname yasearch.net #</SearchEngine> # international <SearchEngine> name Yasearch.net Redirection querytags q= hostname 66.230.164.99 </SearchEngine> # famous <SearchEngine> name YupiMSN querytags q= hostname search.latam.yupimsn.com </SearchEngine> #End of file ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������webdruid-0.5.4.orig/preserve.c����������������������������������������������������������������������0000600�0000000�0000000�00000106312�10066113350�016207� 0����������������������������������������������������������������������������������������������������ustar �root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* The WebDruid - a web server log analysis program Copyright (C) 2003-2004 Fabien Chevalier (fabien@juliana-multimedia.com) Original webalizer copyright: Copyright (C) 1997-2001 Bradford L. Barrett (brad@mrunix.net) This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version, and provided that the above copyright and permission notice is included with all distributed copies of this or derived software. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA This software uses the gd graphics library, which is copyright by Quest Protein Database Center, Cold Spring Harbor Labs. Please see the documentation supplied with the library for additional information and license terms, or visit www.boutell.com/gd/ for the most recent version of the library and supporting documentation. */ #include "config.h" /*********************************************/ /* STANDARD INCLUDES */ /*********************************************/ #include <time.h> #include <stdio.h> #include <stdlib.h> #include <string.h> #include <unistd.h> /* normal stuff */ #include <ctype.h> #include <sys/utsname.h> #include <sys/times.h> /* ensure getopt */ #ifdef HAVE_GETOPT_H #include <getopt.h> #endif /* ensure sys/types */ #ifndef _SYS_TYPES_H #include <sys/types.h> #endif /* some systems need this */ #ifdef HAVE_MATH_H #include <math.h> #endif /* SunOS 4.x Fix */ #ifndef CLK_TCK #define CLK_TCK _SC_CLK_TCK #endif #include "webdruid.h" /* main header */ #include "lang.h" #include "linklist.h" #include "hashtab.h" #include "sengine.h" #include "parser.h" #include "preserve.h" #include "utils.h" /* defines */ #define INCREMENTAL_BASENAME "incremental" /* local variables */ int hist_month[12], hist_year[12]; /* arrays for monthly total */ u_long hist_hit[12]; /* calculations: used to */ u_long hist_files[12]; /* produce index.html */ u_long hist_site[12]; /* these are read and saved */ double hist_xfer[12]; /* in the history file */ u_long hist_page[12]; u_long hist_visit[12]; int hist_fday[12], hist_lday[12]; /* first/last day arrays */ /* local functions */ int nl2zero(char *buff, int len); int save_state_path_table(PNODEPTR *htab, char *buffer, int buflen, FILE *fp); int restore_state_path_table(PNODEPTR *htab, char *buffer, FILE *fp); int save_state_search_htab(SNODEPTR *htab, char *buffer, int buflen, FILE *fp); int restore_state_search_htab(SNODEPTR *htab, char *buffer, FILE *fp); int check_old_preserve_format(); /*********************************************/ /* CHECK_OLD_PRESERVE_FORMAT */ /*********************************************/ /* Displays a warning if an old file format is detected, trying to convince the user to RTFM returns non-zero if old preserve data file is detected */ int check_old_preserve_format() { signed int i = INCREMENTAL_VERSION - 1; char check_file[32]; for(; i >= 0; i--) { if(i != 0) sprintf(check_file, "%s.%d", INCREMENTAL_BASENAME, i); else strcpy(check_file, "webalizer.current"); if(access(check_file, R_OK) == 0) { fprintf(stderr, _("\nWARNING: The Webdruid detected the incremental data file %s " \ "which is not compatible with this version. It will be ignored.\n\n"), check_file); return 1; } } return 0; } /*********************************************/ /* GET_HISTORY - load in history file */ /*********************************************/ void get_history() { int i,numfields; FILE *hist_fp; char buffer[BUFSIZE]; /* first initalize internal array */ for (i=0;i<12;i++) { hist_month[i]=hist_year[i]=hist_fday[i]=hist_lday[i]=0; hist_hit[i]=hist_files[i]=hist_site[i]=hist_page[i]=hist_visit[i]=0; hist_xfer[i]=0.0; } hist_fp=fopen(HISTORY_FILENAME,"r"); if (hist_fp) { if (verbose>1) printf("%s %s\n",_("Reading history file..."),HISTORY_FILENAME); while ((fgets(buffer,BUFSIZE,hist_fp)) != NULL) { i = atoi(buffer) -1; if (i>11) { if (verbose) fprintf(stderr,"%s (mth=%d)\n",_("Error: Ignoring invalid history record"),i+1); continue; } /* month# year# requests files sites xfer firstday lastday */ numfields = sscanf(buffer,"%d %d %lu %lu %lu %lf %d %d %lu %lu", &hist_month[i], &hist_year[i], &hist_hit[i], &hist_files[i], &hist_site[i], &hist_xfer[i], &hist_fday[i], &hist_lday[i], &hist_page[i], &hist_visit[i]); if (numfields==8) /* kludge for reading 1.20.xx history files */ { hist_page[i] = 0; hist_visit[i] = 0; } } fclose(hist_fp); } else if (verbose>1) printf("%s\n",_("History file not found...")); } /*********************************************/ /* PUT_HISTORY - write out history file */ /*********************************************/ void put_history() { int i; FILE *hist_fp; hist_fp = fopen(HISTORY_FILENAME,"w"); if (hist_fp) { if (verbose>1) printf("%s\n",_("Saving history information...")); for (i=0;i<12;i++) { if ((hist_month[i] != 0) && (hist_hit[i] != 0)) { fprintf(hist_fp,"%d %d %lu %lu %lu %.0f %d %d %lu %lu\n", hist_month[i], hist_year[i], hist_hit[i], hist_files[i], hist_site[i], hist_xfer[i], hist_fday[i], hist_lday[i], hist_page[i], hist_visit[i]); } } fclose(hist_fp); } else if (verbose) fprintf(stderr,"%s %s\n",_("Error: Unable to write history file"),HISTORY_FILENAME); } /*********************************************/ /* SAVE_STATE - save internal data structs */ /*********************************************/ int save_state() { HNODEPTR hptr; UNODEPTR uptr; RNODEPTR rptr; ANODEPTR aptr; INODEPTR iptr; OPNODEPTR opptr; FILE *fp; int i; char buffer[BUFSIZE]; char state_fname[32]; sprintf(state_fname, "%s.%d", INCREMENTAL_BASENAME, INCREMENTAL_VERSION); /* Open data file for write */ fp=fopen(state_fname,"w"); if (fp==NULL) return 1; /* Saving current run data... */ if (verbose>1) { sprintf(buffer,"%02d/%02d/%04d %02d:%02d:%02d", cur_month,cur_day,cur_year,cur_hour,cur_min,cur_sec); printf("%s [%s]\n",_("Saving current run data..."),buffer); } /* first, save the easy stuff */ /* Header record */ snprintf(buffer,sizeof(buffer), "# Webalizer V%s Incremental Data - %02d/%02d/%04d %02d:%02d:%02d\n", version,cur_month,cur_day,cur_year,cur_hour,cur_min,cur_sec); if (fputs(buffer,fp)==EOF) return 1; /* error exit */ /* Current date/time */ sprintf(buffer,"%d %d %d %d %d %d\n", cur_year, cur_month, cur_day, cur_hour, cur_min, cur_sec); if (fputs(buffer,fp)==EOF) return 1; /* error exit */ /* Monthly totals for sites, urls, etc... */ sprintf(buffer,"%lu %lu %lu %lu %lu %lu %.0f %lu %lu %lu\n", t_hit, t_file, t_site, t_url, t_ref, t_agent, t_xfer, t_page, t_visit, t_user); if (fputs(buffer,fp)==EOF) return 1; /* error exit */ /* Daily totals for sites, urls, etc... */ sprintf(buffer,"%lu %lu %lu %d %d\n", dt_site, ht_hit, mh_hit, f_day, l_day); if (fputs(buffer,fp)==EOF) return 1; /* error exit */ /* Monthly (by day) total array */ for (i=0;i<31;i++) { sprintf(buffer,"%lu %lu %.0f %lu %lu %lu\n", tm_hit[i],tm_file[i],tm_xfer[i],tm_site[i],tm_page[i],tm_visit[i]); if (fputs(buffer,fp)==EOF) return 1; /* error exit */ } /* Daily (by hour) total array */ for (i=0;i<24;i++) { sprintf(buffer,"%lu %lu %.0f %lu\n", th_hit[i],th_file[i],th_xfer[i],th_page[i]); if (fputs(buffer,fp)==EOF) return 1; /* error exit */ } /* Response codes */ for (i=0;i<TOTAL_RC;i++) { sprintf(buffer,"%lu\n",response[i].count); if (fputs(buffer,fp)==EOF) return 1; /* error exit */ } /* now we need to save our linked lists */ /* URL list */ if (fputs("# -urls- \n",fp)==EOF) return 1; /* error exit */ for (i=0;i<MAXHASH;i++) { uptr=um_htab[i]; while (uptr!=NULL) { snprintf(buffer,sizeof(buffer),"%s\n%d %lu %lu %.0f %lu %lu\n", uptr->string, uptr->flag, uptr->count, uptr->files, uptr->xfer, uptr->entry, uptr->exit); if (fputs(buffer,fp)==EOF) return 1; uptr=uptr->next; } } if (fputs("# End Of Table - urls\n",fp)==EOF) return 1; /* error exit */ /* daily hostname list */ if (fputs("# -sites- (monthly)\n",fp)==EOF) return 1; /* error exit */ for (i=0;i<MAXHASH;i++) { hptr=sm_htab[i]; while (hptr!=NULL) { snprintf(buffer,sizeof(buffer),"%s\n%d %lu %lu %.0f %lu %lu\n%s\n", hptr->string, hptr->flag, hptr->count, hptr->files, hptr->xfer, hptr->visit, hptr->tstamp, (hptr->lasturl==blank_str)?"-":hptr->lasturl); if (fputs(buffer,fp)==EOF) return 1; /* error exit */ hptr=hptr->next; } } if (fputs("# End Of Table - sites (monthly)\n",fp)==EOF) return 1; /* hourly hostname list */ if (fputs("# -sites- (daily)\n",fp)==EOF) return 1; /* error exit */ for (i=0;i<MAXHASH;i++) { hptr=sd_htab[i]; while (hptr!=NULL) { snprintf(buffer,sizeof(buffer),"%s\n%d %lu %lu %.0f %lu %lu\n%s\n", hptr->string, hptr->flag, hptr->count, hptr->files, hptr->xfer, hptr->visit, hptr->tstamp, (hptr->lasturl==blank_str)?"-":hptr->lasturl); if (fputs(buffer,fp)==EOF) return 1; hptr=hptr->next; } } if (fputs("# End Of Table - sites (daily)\n",fp)==EOF) return 1; /* Referrer list */ if (fputs("# -referrers- \n",fp)==EOF) return 1; /* error exit */ if (t_ref != 0) { for (i=0;i<MAXHASH;i++) { rptr=rm_htab[i]; while (rptr!=NULL) { snprintf(buffer,sizeof(buffer),"%s\n%d %lu\n", rptr->string, rptr->flag, rptr->count); if (fputs(buffer,fp)==EOF) return 1; /* error exit */ rptr=rptr->next; } } } if (fputs("# End Of Table - referrers\n",fp)==EOF) return 1; /* User agent list */ if (fputs("# -agents- \n",fp)==EOF) return 1; /* error exit */ if (t_agent != 0) { for (i=0;i<MAXHASH;i++) { aptr=am_htab[i]; while (aptr!=NULL) { snprintf(buffer,sizeof(buffer),"%s\n%d %lu\n", aptr->string, aptr->flag, aptr->count); if (fputs(buffer,fp)==EOF) return 1; /* error exit */ aptr=aptr->next; } } } if (fputs("# End Of Table - agents\n",fp)==EOF) return 1; /* Search engines stuff */ if (fputs("# -Search engines & key phrases- \n",fp)==EOF) return 1; /* error exit */ for(i = 0; i < n_sengines; i++) { if(sp_table[i].s_htab != NULL) { snprintf(buffer, sizeof(buffer), "%s\n%lu\n", sp_table[i].display_name, sp_table[i].count); fputs(buffer, fp); if(save_state_search_htab(sp_table[i].s_htab, buffer, BUFSIZE, fp)) return 1; } } if (fputs("# -End Of Search engines & key phrases- \n",fp)==EOF) return 1; /* error exit */ /* username list */ if (fputs("# -usernames- \n",fp)==EOF) return 1; /* error exit */ for (i=0;i<MAXHASH;i++) { iptr=im_htab[i]; while (iptr!=NULL) { snprintf(buffer,sizeof(buffer),"%s\n%d %lu %lu %.0f %lu %lu\n", iptr->string, iptr->flag, iptr->count, iptr->files, iptr->xfer, iptr->visit, iptr->tstamp); if (fputs(buffer,fp)==EOF) return 1; /* error exit */ iptr=iptr->next; } } if (fputs("# End Of Table - usernames\n",fp)==EOF) return 1; /* opened path list */ if (fputs("# -opened path- \n",fp)==EOF) return 1; /* error exit */ for (i=0;i<MAXHASH;i++) { opptr=op_htab[i]; while (opptr!=NULL) { LISTPTR lptr; if (fputs("# -opened path item- \n", fp)==EOF) return 1; /* error exit */ snprintf(buffer,sizeof(buffer),"%s\n%lu\n%s\n%s\n%s\n", opptr->hostname, opptr->tstamp, opptr->search_string, opptr->user, opptr->referrer); if (fputs(buffer,fp)==EOF) return 1; /* error exit */ /*deal with other list items */ for(lptr= opptr->path; lptr != NULL; lptr = lptr->next) { snprintf(buffer,sizeof(buffer),"%s\n", (char *)lptr->item); if (fputs(buffer,fp)==EOF) return 1; /* error exit */ } if (fputs("# End of opened path item \n", fp)==EOF) return 1; /* error exit */ opptr=opptr->next; } } if (fputs("# End Of Table - opened path\n",fp)==EOF) return 1; /* global path list */ if (fputs("# -global path- \n",fp)==EOF) return 1; /* error exit */ if (save_state_path_table(gp_htab, buffer, sizeof(buffer), fp)) return 1; if (fputs("# End Of Table - global path\n",fp)==EOF) return 1; /* users flow list */ if (fputs("# -users flow- \n",fp)==EOF) return 1; /* error exit */ if (save_state_path_table(fm_htab, buffer, sizeof(buffer), fp)) return 1; if (fputs("# End Of Table - users flow\n",fp)==EOF) return 1; fclose(fp); /* close data file... */ return 0; /* successful, return with good return code */ } /*********************************************/ /* RESTORE_STATE - reload internal run data */ /*********************************************/ int restore_state() { FILE *fp; int i; struct hnode t_hnode; /* Temporary hash nodes */ struct unode t_unode; struct rnode t_rnode; struct anode t_anode; struct inode t_inode; struct opnode t_opnode; char buffer[BUFSIZE]; char tmp_buf[BUFSIZE]; char state_fname[32]; u_long ul_bogus = 0; sprintf(state_fname, "%s.%d", INCREMENTAL_BASENAME, INCREMENTAL_VERSION); fp=fopen(state_fname,"r"); if (fp==NULL) { /* Previous run data not found... */ check_old_preserve_format(); if (verbose>1) printf("%s\n",_("Previous run data not found...")); return 0; /* return with ok code */ } /* Reading previous run data... */ if (verbose>1) printf("%s %s\n",_("Reading previous run data..."),state_fname); /* get easy stuff */ sprintf(tmp_buf,"# Webalizer V%s ",version); if ((fgets(buffer,BUFSIZE,fp)) != NULL) /* Header record */ {if (strncmp(buffer,tmp_buf,17)) return 99;} /* bad magic? */ else return 1; /* error exit */ /* Get current timestamp */ if ((fgets(buffer,BUFSIZE,fp)) != NULL) { sscanf(buffer,"%d %d %d %d %d %d", &cur_year, &cur_month, &cur_day, &cur_hour, &cur_min, &cur_sec); } else return 2; /* error exit */ /* calculate current timestamp (seconds since epoch) */ cur_tstamp=((jdate(cur_day,cur_month,cur_year)-epoch)*86400)+ (cur_hour*3600)+(cur_min*60)+cur_sec; /* Get monthly totals */ if ((fgets(buffer,BUFSIZE,fp)) != NULL) { sscanf(buffer,"%lu %lu %lu %lu %lu %lu %lf %lu %lu %lu", &t_hit, &t_file, &t_site, &t_url, &t_ref, &t_agent, &t_xfer, &t_page, &t_visit, &t_user); } else return 3; /* error exit */ /* Get daily totals */ if ((fgets(buffer,BUFSIZE,fp)) != NULL) { sscanf(buffer,"%lu %lu %lu %d %d", &dt_site, &ht_hit, &mh_hit, &f_day, &l_day); } else return 4; /* error exit */ /* get daily totals */ for (i=0;i<31;i++) { if ((fgets(buffer,BUFSIZE,fp)) != NULL) { sscanf(buffer,"%lu %lu %lf %lu %lu %lu", &tm_hit[i],&tm_file[i],&tm_xfer[i],&tm_site[i],&tm_page[i], &tm_visit[i]); } else return 5; /* error exit */ } /* get hourly totals */ for (i=0;i<24;i++) { if ((fgets(buffer,BUFSIZE,fp)) != NULL) { sscanf(buffer,"%lu %lu %lf %lu", &th_hit[i],&th_file[i],&th_xfer[i],&th_page[i]); } else return 6; /* error exit */ } /* get response code totals */ for (i=0;i<TOTAL_RC;i++) { if ((fgets(buffer,BUFSIZE,fp)) != NULL) sscanf(buffer,"%lu",&response[i].count); else return 7; /* error exit */ } /* Kludge for V2.01-06 TOTAL_RC off by one bug */ if (!strncmp(buffer,"# -urls- ",9)) response[TOTAL_RC-1].count=0; else { /* now do hash tables */ /* url table */ if ((fgets(buffer,BUFSIZE,fp)) != NULL) /* Table header */ { if (strncmp(buffer,"# -urls- ",9)) return 10; } /* (url) */ else return 10; /* error exit */ } while ((fgets(buffer,BUFSIZE,fp)) != NULL) { if (!strncmp(buffer,"# End Of Table ",15)) break; strncpy(tmp_buf,buffer,MAXURLH); tmp_buf[strlen(tmp_buf)-1]=0; if ((fgets(buffer,BUFSIZE,fp)) == NULL) return 10; /* error exit */ if (!isdigit((int)buffer[0])) return 10; /* error exit */ /* load temporary node data */ sscanf(buffer,"%d %lu %lu %lf %lu %lu", &t_unode.flag,&t_unode.count, &t_unode.files, &t_unode.xfer, &t_unode.entry, &t_unode.exit); /* Good record, insert into hash table */ if (put_unode(tmp_buf,t_unode.flag,t_unode.count, t_unode.xfer,&ul_bogus,t_unode.entry,t_unode.exit,um_htab)) { if (verbose) /* Error adding URL node, skipping ... */ fprintf(stderr,"%s %s\n", _("Error adding URL node, skipping"), t_unode.string); } } /* monthly sites table */ if ((fgets(buffer,BUFSIZE,fp)) != NULL) /* Table header */ { if (strncmp(buffer,"# -sites- ",10)) return 8; } /* (monthly) */ else return 8; /* error exit */ while ((fgets(buffer,BUFSIZE,fp)) != NULL) { /* Check for end of table */ if (!strncmp(buffer,"# End Of Table ",15)) break; strncpy(tmp_buf,buffer,MAXHOST); tmp_buf[strlen(buffer)-1]=0; if ((fgets(buffer,BUFSIZE,fp)) == NULL) return 8; /* error exit */ if (!isdigit((int)buffer[0])) return 8; /* error exit */ /* load temporary node data */ sscanf(buffer,"%d %lu %lu %lf %lu %lu", &t_hnode.flag,&t_hnode.count, &t_hnode.files, &t_hnode.xfer, &t_hnode.visit, &t_hnode.tstamp); /* get last url */ if ((fgets(buffer,BUFSIZE,fp)) == NULL) return 8; /* error exit */ if (buffer[0]=='-') t_hnode.lasturl=blank_str; else { buffer[strlen(buffer)-1]=0; t_hnode.lasturl=find_url(buffer); } /* Good record, insert into hash table */ if (put_hnode(tmp_buf,t_hnode.flag, t_hnode.count,t_hnode.files,t_hnode.xfer,&ul_bogus, t_hnode.visit+1,t_hnode.tstamp,t_hnode.lasturl,sm_htab)) { /* Error adding host node (monthly), skipping .... */ if (verbose) fprintf(stderr,"%s %s\n",_("Error adding host node (monthly), skipping"), t_hnode.string); } } /* Daily sites table */ if ((fgets(buffer,BUFSIZE,fp)) != NULL) /* Table header */ { if (strncmp(buffer,"# -sites- ",10)) return 9; } /* (daily) */ else return 9; /* error exit */ while ((fgets(buffer,BUFSIZE,fp)) != NULL) { /* Check for end of table */ if (!strncmp(buffer,"# End Of Table ",15)) break; strncpy(tmp_buf,buffer,MAXHOST); tmp_buf[strlen(buffer)-1]=0; if ((fgets(buffer,BUFSIZE,fp)) == NULL) return 9; /* error exit */ if (!isdigit((int)buffer[0])) return 9; /* error exit */ /* load temporary node data */ sscanf(buffer,"%d %lu %lu %lf %lu %lu", &t_hnode.flag,&t_hnode.count, &t_hnode.files, &t_hnode.xfer, &t_hnode.visit, &t_hnode.tstamp); /* get last url */ if ((fgets(buffer,BUFSIZE,fp)) == NULL) return 9; /* error exit */ if (buffer[0]=='-') t_hnode.lasturl=blank_str; else { buffer[strlen(buffer)-1]=0; t_hnode.lasturl=find_url(buffer); } /* Good record, insert into hash table */ if (put_hnode(tmp_buf,t_hnode.flag, t_hnode.count,t_hnode.files,t_hnode.xfer,&ul_bogus, t_hnode.visit+1,t_hnode.tstamp,t_hnode.lasturl,sd_htab)) { /* Error adding host node (daily), skipping .... */ if (verbose) fprintf(stderr,"%s %s\n",_("Error adding host node (daily), skipping"), t_hnode.string); } } /* Referrers table */ if ((fgets(buffer,BUFSIZE,fp)) != NULL) /* Table header */ { if (strncmp(buffer,"# -referrers- ",14)) return 11; } /* (referrers)*/ else return 11; /* error exit */ while ((fgets(buffer,BUFSIZE,fp)) != NULL) { if (!strncmp(buffer,"# End Of Table ",15)) break; strncpy(tmp_buf,buffer,MAXREFH); tmp_buf[strlen(buffer)-1]=0; if ((fgets(buffer,BUFSIZE,fp)) == NULL) return 11; /* error exit */ if (!isdigit((int)buffer[0])) return 11; /* error exit */ /* load temporary node data */ sscanf(buffer,"%d %lu",&t_rnode.flag,&t_rnode.count); /* insert node */ if (put_rnode(tmp_buf,t_rnode.flag, t_rnode.count, &ul_bogus, rm_htab)) { if (verbose) fprintf(stderr,"%s %s\n", _("Error adding Referrer node, skipping"), log_rec.refer); } } /* Agents table */ if ((fgets(buffer,BUFSIZE,fp)) != NULL) /* Table header */ { if (strncmp(buffer,"# -agents- ",11)) return 12; } /* (agents)*/ else return 12; /* error exit */ while ((fgets(buffer,BUFSIZE,fp)) != NULL) { if (!strncmp(buffer,"# End Of Table ",15)) break; strncpy(tmp_buf,buffer,MAXAGENT); tmp_buf[strlen(buffer)-1]=0; if ((fgets(buffer,BUFSIZE,fp)) == NULL) return 12; /* error exit */ if (!isdigit((int)buffer[0])) return 12; /* error exit */ /* load temporary node data */ sscanf(buffer,"%d %lu",&t_anode.flag,&t_anode.count); /* insert node */ if (put_anode(tmp_buf,t_anode.flag,t_anode.count, &ul_bogus,am_htab)) { if (verbose) fprintf(stderr,"%s %s\n", _("Error adding User Agent node, skipping"), log_rec.agent); } } /* Search engines stuff */ if ((fgets(buffer,BUFSIZE,fp)) != NULL) /* Table header */ { if (strncmp(buffer,"# -Search engines & key phrases- \n", 16)) return 13; } /* (search) */ else return 13; /* error exit */ for(;;) { /* read line */ if ((fgets(buffer,BUFSIZE,fp)) != NULL) { if (strncmp(buffer,"# -End Of Search engines & key phrases- \n", 39) == 0) break; } else return 13; /* error exit */ /* try to find corresponding search engine */ nl2zero(buffer, BUFSIZE); for(i=0; i<n_sengines; i++) { if(strncmp(buffer, sp_table[i].display_name, SE_MAXDNAME) == 0) { /* We found our search engine */ int j; if ((fgets(buffer,BUFSIZE,fp)) == NULL) break; sscanf(buffer,"%lu", &sp_table[i].count); sp_table[i].s_htab = malloc(sizeof(SNODEPTR) * MAXSPHASH); for(j=0; j<MAXSPHASH; j++) sp_table[i].s_htab[j] = 0; if(restore_state_search_htab(sp_table[i].s_htab, buffer, fp)) return 13; else break; } } if(i == n_sengines) { if(verbose) fprintf(stderr, _("Could not find search engine named %s, dropping...\n"), buffer); do if(fgets(buffer,BUFSIZE,fp) != NULL) return 13; while(strncmp(buffer,"# End Of Table ",15) != 0); } } /* usernames table */ if ((fgets(buffer,BUFSIZE,fp)) != NULL) /* Table header */ { if (strncmp(buffer,"# -usernames- ",10)) return 14; } else return 14; /* error exit */ while ((fgets(buffer,BUFSIZE,fp)) != NULL) { /* Check for end of table */ if (!strncmp(buffer,"# End Of Table ",15)) break; strncpy(tmp_buf,buffer,MAXIDENT); tmp_buf[strlen(buffer)-1]=0; if ((fgets(buffer,BUFSIZE,fp)) == NULL) return 14; /* error exit */ if (!isdigit((int)buffer[0])) return 14; /* error exit */ /* load temporary node data */ sscanf(buffer,"%d %lu %lu %lf %lu %lu", &t_inode.flag,&t_inode.count, &t_inode.files, &t_inode.xfer, &t_inode.visit, &t_inode.tstamp); /* Good record, insert into hash table */ if (put_inode(tmp_buf,t_inode.flag, t_inode.count,t_inode.files,t_inode.xfer,&ul_bogus, t_inode.visit+1,t_inode.tstamp,im_htab)) { if (verbose) /* Error adding username node, skipping .... */ fprintf(stderr,"%s %s\n",_("Error adding Username node, skipping"), t_inode.string); } } /* opened path table */ if ((fgets(buffer,BUFSIZE,fp)) != NULL) /* Table header */ { if (strncmp(buffer,"# -opened path- ",10)) return 15; } else return 15; /* error exit */ while ((fgets(buffer,BUFSIZE,fp)) != NULL) { char *urlstr; /* Check for end of table */ if (!strncmp(buffer,"# End Of Table ",15)) break; if ((fgets(buffer,BUFSIZE,fp)) == NULL) return 15; /* error exit */ if(nl2zero(buffer, BUFSIZE)) return 15; t_opnode.hostname = find_hostname(buffer); if((buffer[0] != 0) && (t_opnode.hostname == blank_str)) return 15; if ((fgets(buffer,BUFSIZE,fp)) == NULL) return 15; /* error exit */ sscanf(buffer, "%lu", &t_opnode.tstamp); if ((fgets(buffer,BUFSIZE,fp)) == NULL) return 15; /* error exit */ if(nl2zero(buffer, BUFSIZE)) return 15; t_opnode.search_string = ""; if((buffer[0] != 0) && (t_opnode.search_string == blank_str)) return 15; if ((fgets(buffer,BUFSIZE,fp)) == NULL) return 15; /* error exit */ if(nl2zero(buffer, BUFSIZE)) return 15; t_opnode.user = find_user(buffer); if((buffer[0] != 0) && (t_opnode.user == blank_str)) return 15; if ((fgets(buffer,BUFSIZE,fp)) == NULL) return 15; /* error exit */ if(nl2zero(buffer, BUFSIZE)) return 15; t_opnode.referrer = find_referrer(buffer); if((buffer[0] != 0) && (t_opnode.referrer == blank_str)) return 15; while ((fgets(buffer,BUFSIZE,fp)) != NULL) { /* Check for end of table */ if (!strncmp(buffer,"# End of opened path item ",26)) break; if(nl2zero(buffer, BUFSIZE)) return 15; urlstr = find_url(buffer); if(urlstr == blank_str) return 15; /* add open path item */ if (add_opitem(t_opnode.hostname, t_opnode.search_string,t_opnode.user, t_opnode.referrer, urlstr, t_opnode.tstamp, op_htab)) { if (verbose) /* Error adding path node, skipping .... */ fprintf(stderr,"%s %s %s\n", _("Error adding path node element, skipping"), t_opnode.hostname, urlstr); } } } /* global path table */ if ((fgets(buffer,BUFSIZE,fp)) != NULL) /* Table header */ { if (strncmp(buffer,"# -global path- ",16)) return 16; } else return 16; /* error exit */ if(restore_state_path_table(gp_htab, buffer, fp)) return 16; /* users flow list */ if ((fgets(buffer,BUFSIZE,fp)) != NULL) /* Table header */ { if (strncmp(buffer,"# -users flow- ",14)) return 17; } else return 17; /* error exit */ if(restore_state_path_table(fm_htab, buffer, fp)) return 17; fclose(fp); check_dup = 1; /* enable duplicate checking */ return 0; /* return with ok code */ } /*********************************************/ /* NL2ZERO - */ /*********************************************/ /* finds the first new line in buff and converts it to zero. returns: - 0 on ok - 1 if no neew-line found */ int nl2zero(char *buff, int len) { int i; for(i = 0; i < len; i++) if(buff[i] == '\n') { buff[i] = 0; return 0; } return 1; } /*********************************************/ /* SAVE_STATE_PATH_TABLE - saves given htab */ /*********************************************/ /* this function is internally used by save_state */ int save_state_path_table(PNODEPTR *htab, char *buffer, int buflen, FILE *fp) { PNODEPTR pptr; int i; for (i=0;i<MAXHASH;i++) { pptr=htab[i]; while (pptr!=NULL) { LISTPTR lptr; if (fputs("# -generic path item- \n", fp)==EOF) return 1; /* error exit */ /* deal with header record */ snprintf(buffer, buflen, "%u %u\n", i, /* this is the hash value, we need to save it if we don't want to have to compute it again */ pptr->count); if (fputs(buffer,fp)==EOF) return 1; /* error exit */ /*deal with other list items */ for(lptr= pptr->path; lptr != NULL; lptr = lptr->next) { snprintf(buffer, buflen,"%s\n", (char *)lptr->item); if (fputs(buffer,fp)==EOF) return 1; /* error exit */ } if (fputs("# End of generic path item \n", fp)==EOF) return 1; /* error exit */ pptr = pptr->next; } } return 0; } /*********************************************/ /* SAVE_STATE_SEARCH_HTAB - saves given htab */ /*********************************************/ /* this function is internally used by save_state */ int save_state_search_htab(SNODEPTR *htab, char *buffer, int buflen, FILE *fp) { SNODEPTR pptr; int i; if (fputs("# -search hash table- \n", fp)==EOF) return 1; /* error exit */ for (i=0;i<MAXSPHASH;i++) { pptr=htab[i]; while (pptr!=NULL) { LISTPTR lptr; if (fputs("# -search hash table item- \n", fp)==EOF) return 1; /* error exit */ /* save search string */ snprintf(buffer, buflen, "%s\n", pptr->string); if (fputs(buffer,fp)==EOF) return 1; /* error exit */ /* save count */ snprintf(buffer, buflen, "%lu\n", pptr->count); if (fputs(buffer,fp)==EOF) return 1; /* error exit */ /*deal with other list items */ for(lptr= pptr->urls; lptr != NULL; lptr = lptr->next) { snprintf(buffer, buflen,"%s\n", (char *)lptr->item); if (fputs(buffer,fp)==EOF) return 1; /* error exit */ } if (fputs("# -End of search hash table item- \n", fp)==EOF) return 1; /* error exit */ pptr = pptr->next; } } if (fputs("# End Of Table \n", fp)==EOF) return 1; /* error exit */ return 0; } /*********************************************/ /* RESTORE_STATE_PATH_TABLE - load htab */ /*********************************************/ /* this function is internally used by restore_state */ int restore_state_path_table(PNODEPTR *htab, char *buffer, FILE *fp) { while ((fgets(buffer,BUFSIZE,fp)) != NULL) { char *urlstr; u_long hash; int count; LISTPTR list; /* Check for end of table */ if (!strncmp(buffer,"# End Of Table ",15)) break; if ((fgets(buffer,BUFSIZE,fp)) == NULL) return 1; /* error exit */ sscanf(buffer, "%lu %u", &hash ,&count); if ((fgets(buffer,BUFSIZE,fp)) == NULL) return 1; /* error exit */ if(nl2zero(buffer, BUFSIZE)) return 1; urlstr = find_url(buffer); list = new_list(urlstr, 0); /* no deep copy */ while ((fgets(buffer,BUFSIZE,fp)) != NULL) { /* Check for end of table */ if (!strncmp(buffer,"# End of generic path item ",26)) break; if(nl2zero(buffer, BUFSIZE)) return 1; urlstr = find_url(buffer); if(urlstr == blank_str) return 1; /* add open path item */ if (add_list(&list, urlstr, 0)) { if (verbose) /* Error adding path node, skipping .... */ fprintf(stderr,"%s %s\n", _("Error adding path node element, skipping"), urlstr); } } put_pnode(list, NULL, count, hash, htab); } return 0; } /*********************************************/ /* RESTORE_STATE_SEARCH_HTAB - load htab */ /*********************************************/ /* this function is internally used by restore_state */ int restore_state_search_htab(SNODEPTR *htab, char *buffer, FILE *fp) { char *sp = NULL; int count; if ((fgets(buffer,BUFSIZE,fp)) != NULL) /* Table header */ { if (strncmp(buffer,"# -search hash table- ",21)) return 1; } else return 1; /* error exit */ while ((fgets(buffer,BUFSIZE,fp)) != NULL) { /* Check for end of table */ if (!strncmp(buffer,"# End Of Table ",15)) break; /* Check for new item */ if (strncmp(buffer,"# -search hash table item- ",26)) return 1; /* Load search phrase */ if ((fgets(buffer,BUFSIZE,fp)) == NULL) return 1; /* error exit */ if(nl2zero(buffer, BUFSIZE)) return 1; if(sp != NULL) free(sp); sp = strdup(buffer); /* Load count */ if ((fgets(buffer,BUFSIZE,fp)) == NULL) return 1; /* error exit */ sscanf(buffer, "%u",&count); while ((fgets(buffer,BUFSIZE,fp)) != NULL) { /* Check for end of item */ if (!strncmp(buffer,"# -End of search hash table item- ",15)) break; if(nl2zero(buffer, BUFSIZE)) return 1; /* add open path item */ if (sengine_put_snode(sp, buffer, count, htab)) { if (verbose) /* Error adding path node, skipping .... */ fprintf(stderr,"%s %s\n", _("Error adding search node element, skipping"), buffer); } count = 0; /* this is a trick to be able tu reuse put_snode */ } } if(sp != NULL) free(sp); return 0; } ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������webdruid-0.5.4.orig/linklist.h����������������������������������������������������������������������0000600�0000000�0000000�00000010127�10066113350�016210� 0����������������������������������������������������������������������������������������������������ustar �root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* The WebDruid - a web server log analysis program Copyright (C) 2003-2004 Fabien Chevalier (fabien@juliana-multimedia.com) Original webalizer copyright: Copyright (C) 1997-2001 Bradford L. Barrett (brad@mrunix.net) This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version, and provided that the above copyright and permission notice is included with all distributed copies of this or derived software. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA This software uses the gd graphics library, which is copyright by Quest Protein Database Center, Cold Spring Harbor Labs. Please see the documentation supplied with the library for additional information and license terms, or visit www.boutell.com/gd/ for the most recent version of the library and supporting documentation. */ #ifndef _LINKLIST_H #define _LINKLIST_H struct nlist { char string[80]; /* list struct for HIDE items */ struct nlist *next; }; typedef struct nlist *NLISTPTR; struct glist { char string[80]; /* list struct for GROUP items */ char name[80]; struct glist *next; }; typedef struct glist *GLISTPTR; struct list { char * item; /* generic list */ struct list * next; }; typedef struct list *LISTPTR; extern GLISTPTR group_sites ; /* "group" lists */ extern GLISTPTR group_urls ; extern GLISTPTR group_refs ; extern GLISTPTR group_agents ; extern GLISTPTR group_users ; extern NLISTPTR hidden_sites ; /* "hidden" lists */ extern NLISTPTR hidden_urls ; extern NLISTPTR hidden_refs ; extern NLISTPTR hidden_agents ; extern NLISTPTR hidden_users ; extern NLISTPTR ignored_sites ; /* "Ignored" lists */ extern NLISTPTR ignored_urls ; extern NLISTPTR ignored_refs ; extern NLISTPTR ignored_agents; extern NLISTPTR ignored_users ; extern NLISTPTR include_sites ; /* "Include" lists */ extern NLISTPTR include_urls ; extern NLISTPTR include_refs ; extern NLISTPTR include_agents; extern NLISTPTR include_users ; extern NLISTPTR index_alias ; /* index. aliases */ extern NLISTPTR html_pre ; /* before anything else :) */ extern NLISTPTR html_head ; /* top HTML code */ extern NLISTPTR html_body ; /* body HTML code */ extern NLISTPTR html_post ; /* middle HTML code */ extern NLISTPTR html_tail ; /* tail HTML code */ extern NLISTPTR html_end ; /* after everything else */ extern NLISTPTR page_type ; /* page view types */ extern char *isinlist(NLISTPTR, char *); /* scan list for str */ extern char *isinglist(GLISTPTR, char *); /* scan glist for str */ extern int add_nlist(char *, NLISTPTR *); /* add list item */ extern int add_glist(char *, GLISTPTR *); /* add group list item */ extern void del_lists(); /* free shared lists */ typedef void LIST_TYPE; /* can be changed to debug */ extern LISTPTR new_list(LIST_TYPE *, int); /* new generic list */ extern void del_list(LISTPTR *, int); /* del generic list */ extern int add_list(LISTPTR *, LIST_TYPE *, int); /* add gen. list item */ #endif /* _LINKLIST_H */ �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������webdruid-0.5.4.orig/COPYING�������������������������������������������������������������������������0000600�0000000�0000000�00000043106�10066113350�015244� 0����������������������������������������������������������������������������������������������������ustar �root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������ GNU GENERAL PUBLIC LICENSE Version 2, June 1991 Copyright (C) 1989, 1991 Free Software Foundation, Inc. 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. Preamble The licenses for most software are designed to take away your freedom to share and change it. By contrast, the GNU General Public License is intended to guarantee your freedom to share and change free software--to make sure the software is free for all its users. This General Public License applies to most of the Free Software Foundation's software and to any other program whose authors commit to using it. (Some other Free Software Foundation software is covered by the GNU Library General Public License instead.) You can apply it to your programs, too. When we speak of free software, we are referring to freedom, not price. Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of free software (and charge for this service if you wish), that you receive source code or can get it if you want it, that you can change the software or use pieces of it in new free programs; and that you know you can do these things. To protect your rights, we need to make restrictions that forbid anyone to deny you these rights or to ask you to surrender the rights. These restrictions translate to certain responsibilities for you if you distribute copies of the software, or if you modify it. For example, if you distribute copies of such a program, whether gratis or for a fee, you must give the recipients all the rights that you have. You must make sure that they, too, receive or can get the source code. And you must show them these terms so they know their rights. We protect your rights with two steps: (1) copyright the software, and (2) offer you this license which gives you legal permission to copy, distribute and/or modify the software. Also, for each author's protection and ours, we want to make certain that everyone understands that there is no warranty for this free software. If the software is modified by someone else and passed on, we want its recipients to know that what they have is not the original, so that any problems introduced by others will not reflect on the original authors' reputations. Finally, any free program is threatened constantly by software patents. We wish to avoid the danger that redistributors of a free program will individually obtain patent licenses, in effect making the program proprietary. To prevent this, we have made it clear that any patent must be licensed for everyone's free use or not licensed at all. The precise terms and conditions for copying, distribution and modification follow. GNU GENERAL PUBLIC LICENSE TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION 0. This License applies to any program or other work which contains a notice placed by the copyright holder saying it may be distributed under the terms of this General Public License. The "Program", below, refers to any such program or work, and a "work based on the Program" means either the Program or any derivative work under copyright law: that is to say, a work containing the Program or a portion of it, either verbatim or with modifications and/or translated into another language. (Hereinafter, translation is included without limitation in the term "modification".) Each licensee is addressed as "you". Activities other than copying, distribution and modification are not covered by this License; they are outside its scope. The act of running the Program is not restricted, and the output from the Program is covered only if its contents constitute a work based on the Program (independent of having been made by running the Program). Whether that is true depends on what the Program does. 1. You may copy and distribute verbatim copies of the Program's source code as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice and disclaimer of warranty; keep intact all the notices that refer to this License and to the absence of any warranty; and give any other recipients of the Program a copy of this License along with the Program. You may charge a fee for the physical act of transferring a copy, and you may at your option offer warranty protection in exchange for a fee. 2. You may modify your copy or copies of the Program or any portion of it, thus forming a work based on the Program, and copy and distribute such modifications or work under the terms of Section 1 above, provided that you also meet all of these conditions: a) You must cause the modified files to carry prominent notices stating that you changed the files and the date of any change. b) You must cause any work that you distribute or publish, that in whole or in part contains or is derived from the Program or any part thereof, to be licensed as a whole at no charge to all third parties under the terms of this License. c) If the modified program normally reads commands interactively when run, you must cause it, when started running for such interactive use in the most ordinary way, to print or display an announcement including an appropriate copyright notice and a notice that there is no warranty (or else, saying that you provide a warranty) and that users may redistribute the program under these conditions, and telling the user how to view a copy of this License. (Exception: if the Program itself is interactive but does not normally print such an announcement, your work based on the Program is not required to print an announcement.) These requirements apply to the modified work as a whole. If identifiable sections of that work are not derived from the Program, and can be reasonably considered independent and separate works in themselves, then this License, and its terms, do not apply to those sections when you distribute them as separate works. But when you distribute the same sections as part of a whole which is a work based on the Program, the distribution of the whole must be on the terms of this License, whose permissions for other licensees extend to the entire whole, and thus to each and every part regardless of who wrote it. Thus, it is not the intent of this section to claim rights or contest your rights to work written entirely by you; rather, the intent is to exercise the right to control the distribution of derivative or collective works based on the Program. In addition, mere aggregation of another work not based on the Program with the Program (or with a work based on the Program) on a volume of a storage or distribution medium does not bring the other work under the scope of this License. 3. You may copy and distribute the Program (or a work based on it, under Section 2) in object code or executable form under the terms of Sections 1 and 2 above provided that you also do one of the following: a) Accompany it with the complete corresponding machine-readable source code, which must be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or, b) Accompany it with a written offer, valid for at least three years, to give any third party, for a charge no more than your cost of physically performing source distribution, a complete machine-readable copy of the corresponding source code, to be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or, c) Accompany it with the information you received as to the offer to distribute corresponding source code. (This alternative is allowed only for noncommercial distribution and only if you received the program in object code or executable form with such an offer, in accord with Subsection b above.) The source code for a work means the preferred form of the work for making modifications to it. For an executable work, complete source code means all the source code for all modules it contains, plus any associated interface definition files, plus the scripts used to control compilation and installation of the executable. However, as a special exception, the source code distributed need not include anything that is normally distributed (in either source or binary form) with the major components (compiler, kernel, and so on) of the operating system on which the executable runs, unless that component itself accompanies the executable. If distribution of executable or object code is made by offering access to copy from a designated place, then offering equivalent access to copy the source code from the same place counts as distribution of the source code, even though third parties are not compelled to copy the source along with the object code. 4. You may not copy, modify, sublicense, or distribute the Program except as expressly provided under this License. Any attempt otherwise to copy, modify, sublicense or distribute the Program is void, and will automatically terminate your rights under this License. However, parties who have received copies, or rights, from you under this License will not have their licenses terminated so long as such parties remain in full compliance. 5. You are not required to accept this License, since you have not signed it. However, nothing else grants you permission to modify or distribute the Program or its derivative works. These actions are prohibited by law if you do not accept this License. Therefore, by modifying or distributing the Program (or any work based on the Program), you indicate your acceptance of this License to do so, and all its terms and conditions for copying, distributing or modifying the Program or works based on it. 6. Each time you redistribute the Program (or any work based on the Program), the recipient automatically receives a license from the original licensor to copy, distribute or modify the Program subject to these terms and conditions. You may not impose any further restrictions on the recipients' exercise of the rights granted herein. You are not responsible for enforcing compliance by third parties to this License. 7. If, as a consequence of a court judgment or allegation of patent infringement or for any other reason (not limited to patent issues), conditions are imposed on you (whether by court order, agreement or otherwise) that contradict the conditions of this License, they do not excuse you from the conditions of this License. If you cannot distribute so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may not distribute the Program at all. For example, if a patent license would not permit royalty-free redistribution of the Program by all those who receive copies directly or indirectly through you, then the only way you could satisfy both it and this License would be to refrain entirely from distribution of the Program. If any portion of this section is held invalid or unenforceable under any particular circumstance, the balance of the section is intended to apply and the section as a whole is intended to apply in other circumstances. It is not the purpose of this section to induce you to infringe any patents or other property right claims or to contest validity of any such claims; this section has the sole purpose of protecting the integrity of the free software distribution system, which is implemented by public license practices. Many people have made generous contributions to the wide range of software distributed through that system in reliance on consistent application of that system; it is up to the author/donor to decide if he or she is willing to distribute software through any other system and a licensee cannot impose that choice. This section is intended to make thoroughly clear what is believed to be a consequence of the rest of this License. 8. If the distribution and/or use of the Program is restricted in certain countries either by patents or by copyrighted interfaces, the original copyright holder who places the Program under this License may add an explicit geographical distribution limitation excluding those countries, so that distribution is permitted only in or among countries not thus excluded. In such case, this License incorporates the limitation as if written in the body of this License. 9. The Free Software Foundation may publish revised and/or new versions of the General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns. Each version is given a distinguishing version number. If the Program specifies a version number of this License which applies to it and "any later version", you have the option of following the terms and conditions either of that version or of any later version published by the Free Software Foundation. If the Program does not specify a version number of this License, you may choose any version ever published by the Free Software Foundation. 10. If you wish to incorporate parts of the Program into other free programs whose distribution conditions are different, write to the author to ask for permission. For software which is copyrighted by the Free Software Foundation, write to the Free Software Foundation; we sometimes make exceptions for this. Our decision will be guided by the two goals of preserving the free status of all derivatives of our free software and of promoting the sharing and reuse of software generally. NO WARRANTY 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. END OF TERMS AND CONDITIONS Appendix: How to Apply These Terms to Your New Programs If you develop a new program, and you want it to be of the greatest possible use to the public, the best way to achieve this is to make it free software which everyone can redistribute and change under these terms. To do so, attach the following notices to the program. It is safest to attach them to the start of each source file to most effectively convey the exclusion of warranty; and each file should have at least the "copyright" line and a pointer to where the full notice is found. <one line to give the program's name and a brief idea of what it does.> Copyright (C) 19yy <name of author> This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA Also add information on how to contact you by electronic and paper mail. If the program is interactive, make it output a short notice like this when it starts in an interactive mode: Gnomovision version 69, Copyright (C) 19yy name of author Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. This is free software, and you are welcome to redistribute it under certain conditions; type `show c' for details. The hypothetical commands `show w' and `show c' should show the appropriate parts of the General Public License. Of course, the commands you use may be called something other than `show w' and `show c'; they could even be mouse-clicks or menu items--whatever suits your program. You should also get your employer (if you work as a programmer) or your school, if any, to sign a "copyright disclaimer" for the program, if necessary. Here is a sample; alter the names: Yoyodyne, Inc., hereby disclaims all copyright interest in the program `Gnomovision' (which makes passes at compilers) written by James Hacker. <signature of Ty Coon>, 1 April 1989 Ty Coon, President of Vice This General Public License does not permit incorporating your program into proprietary programs. If your program is a subroutine library, you may consider it more useful to permit linking proprietary applications with the library. If this is what you want to do, use the GNU Library General Public License instead of this License. ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������webdruid-0.5.4.orig/dot_output.h��������������������������������������������������������������������0000644�0000000�0000000�00000002130�10066113350�016570� 0����������������������������������������������������������������������������������������������������ustar �root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* dot_output.h - output functions using the dot utility Copyright (C) 2003 Fabien Chevalier (fabien@juliana-multimedia.com) This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version, and provided that the above copyright and permission notice is included with all distributed copies of this or derived software. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA */ extern int write_month_path_graph(const char *filename); extern int write_month_users_flow(const char *filename); ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������webdruid-0.5.4.orig/config.h.in���������������������������������������������������������������������0000644�0000000�0000000�00000004753�10066113350�016251� 0����������������������������������������������������������������������������������������������������ustar �root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* config.h.in. Generated from configure.in by autoheader. */ /* Define to 1 if you have the <db3.1/db_185.h> header file. */ #undef HAVE_DB3_1_DB_185_H /* Define to 1 if you have the <db_185.h> header file. */ #undef HAVE_DB_185_H /* Define to 1 if you have the <db.h> header file. */ #undef HAVE_DB_H /* Define to 1 if you have the <errno.h> header file. */ #undef HAVE_ERRNO_H /* Define to 1 if you have the `getaddrinfo' function. */ #undef HAVE_GETADDRINFO /* Define to 1 if you have the <getopt.h> header file. */ #undef HAVE_GETOPT_H /* Define to 1 if you have the `gettext' function. */ #undef HAVE_GETTEXT /* Define to 1 if you have the <iconv.h> header file. */ #undef HAVE_ICONV_H /* Define to 1 if you have the `iconv_open' function. */ #undef HAVE_ICONV_OPEN /* Define to 1 if you have the <inttypes.h> header file. */ #undef HAVE_INTTYPES_H /* Define to 1 if you have the <libintl.h> header file. */ #undef HAVE_LIBINTL_H /* Define to 1 if you have the <math.h> header file. */ #undef HAVE_MATH_H /* Define to 1 if you have the <memory.h> header file. */ #undef HAVE_MEMORY_H /* Define to 1 if you have the `socket' function. */ #undef HAVE_SOCKET /* Define to 1 if you have the <stdint.h> header file. */ #undef HAVE_STDINT_H /* Define to 1 if you have the <stdlib.h> header file. */ #undef HAVE_STDLIB_H /* Define to 1 if you have the <strings.h> header file. */ #undef HAVE_STRINGS_H /* Define to 1 if you have the <string.h> header file. */ #undef HAVE_STRING_H /* Define to 1 if you have the <sys/socket.h> header file. */ #undef HAVE_SYS_SOCKET_H /* Define to 1 if you have the <sys/stat.h> header file. */ #undef HAVE_SYS_STAT_H /* Define to 1 if you have the <sys/types.h> header file. */ #undef HAVE_SYS_TYPES_H /* Define to 1 if you have the <unistd.h> header file. */ #undef HAVE_UNISTD_H /* Define to 1 if you have the `__db185_open' function. */ #undef HAVE___DB185_OPEN /* Define to the address where bug reports for this package should be sent. */ #undef PACKAGE_BUGREPORT /* Define to the full name of this package. */ #undef PACKAGE_NAME /* Define to the full name and version of this package. */ #undef PACKAGE_STRING /* Define to the one symbol short name of this package. */ #undef PACKAGE_TARNAME /* Define to the version of this package. */ #undef PACKAGE_VERSION /* Define to 1 if you have the ANSI C header files. */ #undef STDC_HEADERS /* Define to 1 if type `char' is unsigned and you are not using gcc. */ #ifndef __CHAR_UNSIGNED__ # undef __CHAR_UNSIGNED__ #endif ���������������������webdruid-0.5.4.orig/configure�����������������������������������������������������������������������0000755�0000000�0000000�00000617424�10066113350�016142� 0����������������������������������������������������������������������������������������������������ustar �root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������#! /bin/sh # Guess values for system-dependent variables and create Makefiles. # Generated by GNU Autoconf 2.59. # # Copyright (C) 2003 Free Software Foundation, Inc. # This configure script is free software; the Free Software Foundation # gives unlimited permission to copy, distribute and modify it. ## --------------------- ## ## M4sh Initialization. ## ## --------------------- ## # Be Bourne compatible if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then emulate sh NULLCMD=: # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which # is contrary to our usage. Disable this feature. alias -g '${1+"$@"}'='"$@"' elif test -n "${BASH_VERSION+set}" && (set -o posix) >/dev/null 2>&1; then set -o posix fi DUALCASE=1; export DUALCASE # for MKS sh # Support unset when possible. if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then as_unset=unset else as_unset=false fi # Work around bugs in pre-3.0 UWIN ksh. $as_unset ENV MAIL MAILPATH PS1='$ ' PS2='> ' PS4='+ ' # NLS nuisances. for as_var in \ LANG LANGUAGE LC_ADDRESS LC_ALL LC_COLLATE LC_CTYPE LC_IDENTIFICATION \ LC_MEASUREMENT LC_MESSAGES LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER \ LC_TELEPHONE LC_TIME do if (set +x; test -z "`(eval $as_var=C; export $as_var) 2>&1`"); then eval $as_var=C; export $as_var else $as_unset $as_var fi done # Required to use basename. if expr a : '\(a\)' >/dev/null 2>&1; then as_expr=expr else as_expr=false fi if (basename /) >/dev/null 2>&1 && test "X`basename / 2>&1`" = "X/"; then as_basename=basename else as_basename=false fi # Name of the executable. as_me=`$as_basename "$0" || $as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ X"$0" : 'X\(//\)$' \| \ X"$0" : 'X\(/\)$' \| \ . : '\(.\)' 2>/dev/null || echo X/"$0" | sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/; q; } /^X\/\(\/\/\)$/{ s//\1/; q; } /^X\/\(\/\).*/{ s//\1/; q; } s/.*/./; q'` # PATH needs CR, and LINENO needs CR and PATH. # Avoid depending upon Character Ranges. as_cr_letters='abcdefghijklmnopqrstuvwxyz' as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' as_cr_Letters=$as_cr_letters$as_cr_LETTERS as_cr_digits='0123456789' as_cr_alnum=$as_cr_Letters$as_cr_digits # The user is always right. if test "${PATH_SEPARATOR+set}" != set; then echo "#! /bin/sh" >conf$$.sh echo "exit 0" >>conf$$.sh chmod +x conf$$.sh if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then PATH_SEPARATOR=';' else PATH_SEPARATOR=: fi rm -f conf$$.sh fi as_lineno_1=$LINENO as_lineno_2=$LINENO as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null` test "x$as_lineno_1" != "x$as_lineno_2" && test "x$as_lineno_3" = "x$as_lineno_2" || { # Find who we are. Look in the path if we contain no path at all # relative or not. case $0 in *[\\/]* ) as_myself=$0 ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break done ;; esac # We did not find ourselves, most probably we were run as `sh COMMAND' # in which case we are not to be found in the path. if test "x$as_myself" = x; then as_myself=$0 fi if test ! -f "$as_myself"; then { echo "$as_me: error: cannot find myself; rerun with an absolute path" >&2 { (exit 1); exit 1; }; } fi case $CONFIG_SHELL in '') as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for as_base in sh bash ksh sh5; do case $as_dir in /*) if ("$as_dir/$as_base" -c ' as_lineno_1=$LINENO as_lineno_2=$LINENO as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null` test "x$as_lineno_1" != "x$as_lineno_2" && test "x$as_lineno_3" = "x$as_lineno_2" ') 2>/dev/null; then $as_unset BASH_ENV || test "${BASH_ENV+set}" != set || { BASH_ENV=; export BASH_ENV; } $as_unset ENV || test "${ENV+set}" != set || { ENV=; export ENV; } CONFIG_SHELL=$as_dir/$as_base export CONFIG_SHELL exec "$CONFIG_SHELL" "$0" ${1+"$@"} fi;; esac done done ;; esac # Create $as_me.lineno as a copy of $as_myself, but with $LINENO # uniformly replaced by the line number. The first 'sed' inserts a # line-number line before each line; the second 'sed' does the real # work. The second script uses 'N' to pair each line-number line # with the numbered line, and appends trailing '-' during # substitution so that $LINENO is not a special case at line end. # (Raja R Harinath suggested sed '=', and Paul Eggert wrote the # second 'sed' script. Blame Lee E. McMahon for sed's syntax. :-) sed '=' <$as_myself | sed ' N s,$,-, : loop s,^\(['$as_cr_digits']*\)\(.*\)[$]LINENO\([^'$as_cr_alnum'_]\),\1\2\1\3, t loop s,-$,, s,^['$as_cr_digits']*\n,, ' >$as_me.lineno && chmod +x $as_me.lineno || { echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2 { (exit 1); exit 1; }; } # Don't try to exec as it changes $[0], causing all sort of problems # (the dirname of $[0] is not the place where we might find the # original and so on. Autoconf is especially sensible to this). . ./$as_me.lineno # Exit status is that of the last command. exit } case `echo "testing\c"; echo 1,2,3`,`echo -n testing; echo 1,2,3` in *c*,-n*) ECHO_N= ECHO_C=' ' ECHO_T=' ' ;; *c*,* ) ECHO_N=-n ECHO_C= ECHO_T= ;; *) ECHO_N= ECHO_C='\c' ECHO_T= ;; esac if expr a : '\(a\)' >/dev/null 2>&1; then as_expr=expr else as_expr=false fi rm -f conf$$ conf$$.exe conf$$.file echo >conf$$.file if ln -s conf$$.file conf$$ 2>/dev/null; then # We could just check for DJGPP; but this test a) works b) is more generic # and c) will remain valid once DJGPP supports symlinks (DJGPP 2.04). if test -f conf$$.exe; then # Don't use ln at all; we don't have any links as_ln_s='cp -p' else as_ln_s='ln -s' fi elif ln conf$$.file conf$$ 2>/dev/null; then as_ln_s=ln else as_ln_s='cp -p' fi rm -f conf$$ conf$$.exe conf$$.file if mkdir -p . 2>/dev/null; then as_mkdir_p=: else test -d ./-p && rmdir ./-p as_mkdir_p=false fi as_executable_p="test -f" # Sed expression to map a string onto a valid CPP name. as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" # Sed expression to map a string onto a valid variable name. as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" # IFS # We need space, tab and new line, in precisely that order. as_nl=' ' IFS=" $as_nl" # CDPATH. $as_unset CDPATH # Name of the host. # hostname on some systems (SVR3.2, Linux) returns a bogus exit status, # so uname gets run too. ac_hostname=`(hostname || uname -n) 2>/dev/null | sed 1q` exec 6>&1 # # Initializations. # ac_default_prefix=/usr/local ac_config_libobj_dir=. cross_compiling=no subdirs= MFLAGS= MAKEFLAGS= SHELL=${CONFIG_SHELL-/bin/sh} # Maximum number of lines to put in a shell here document. # This variable seems obsolete. It should probably be removed, and # only ac_max_sed_lines should be used. : ${ac_max_here_lines=38} # Identity of this package. PACKAGE_NAME= PACKAGE_TARNAME= PACKAGE_VERSION= PACKAGE_STRING= PACKAGE_BUGREPORT= ac_unique_file="webdruid.c" # Factoring default headers for most tests. ac_includes_default="\ #include <stdio.h> #if HAVE_SYS_TYPES_H # include <sys/types.h> #endif #if HAVE_SYS_STAT_H # include <sys/stat.h> #endif #if STDC_HEADERS # include <stdlib.h> # include <stddef.h> #else # if HAVE_STDLIB_H # include <stdlib.h> # endif #endif #if HAVE_STRING_H # if !STDC_HEADERS && HAVE_MEMORY_H # include <memory.h> # endif # include <string.h> #endif #if HAVE_STRINGS_H # include <strings.h> #endif #if HAVE_INTTYPES_H # include <inttypes.h> #else # if HAVE_STDINT_H # include <stdint.h> # endif #endif #if HAVE_UNISTD_H # include <unistd.h> #endif" ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS OPTS CC CFLAGS LDFLAGS CPPFLAGS ac_ct_CC EXEEXT OBJEXT LN_S INSTALL_PROGRAM INSTALL_SCRIPT INSTALL_DATA CPP EGREP GDLOC GDLIB localedir LIBOBJS LTLIBOBJS' ac_subst_files='' # Initialize some variables set by options. ac_init_help= ac_init_version=false # The variables have the same names as the options, with # dashes changed to underlines. cache_file=/dev/null exec_prefix=NONE no_create= no_recursion= prefix=NONE program_prefix=NONE program_suffix=NONE program_transform_name=s,x,x, silent= site= srcdir= verbose= x_includes=NONE x_libraries=NONE # Installation directory options. # These are left unexpanded so users can "make install exec_prefix=/foo" # and all the variables that are supposed to be based on exec_prefix # by default will actually change. # Use braces instead of parens because sh, perl, etc. also accept them. bindir='${exec_prefix}/bin' sbindir='${exec_prefix}/sbin' libexecdir='${exec_prefix}/libexec' datadir='${prefix}/share' sysconfdir='${prefix}/etc' sharedstatedir='${prefix}/com' localstatedir='${prefix}/var' libdir='${exec_prefix}/lib' includedir='${prefix}/include' oldincludedir='/usr/include' infodir='${prefix}/info' mandir='${prefix}/man' ac_prev= for ac_option do # If the previous option needs an argument, assign it. if test -n "$ac_prev"; then eval "$ac_prev=\$ac_option" ac_prev= continue fi ac_optarg=`expr "x$ac_option" : 'x[^=]*=\(.*\)'` # Accept the important Cygnus configure options, so we can diagnose typos. case $ac_option in -bindir | --bindir | --bindi | --bind | --bin | --bi) ac_prev=bindir ;; -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*) bindir=$ac_optarg ;; -build | --build | --buil | --bui | --bu) ac_prev=build_alias ;; -build=* | --build=* | --buil=* | --bui=* | --bu=*) build_alias=$ac_optarg ;; -cache-file | --cache-file | --cache-fil | --cache-fi \ | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c) ac_prev=cache_file ;; -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \ | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*) cache_file=$ac_optarg ;; --config-cache | -C) cache_file=config.cache ;; -datadir | --datadir | --datadi | --datad | --data | --dat | --da) ac_prev=datadir ;; -datadir=* | --datadir=* | --datadi=* | --datad=* | --data=* | --dat=* \ | --da=*) datadir=$ac_optarg ;; -disable-* | --disable-*) ac_feature=`expr "x$ac_option" : 'x-*disable-\(.*\)'` # Reject names that are not valid shell variable names. expr "x$ac_feature" : ".*[^-_$as_cr_alnum]" >/dev/null && { echo "$as_me: error: invalid feature name: $ac_feature" >&2 { (exit 1); exit 1; }; } ac_feature=`echo $ac_feature | sed 's/-/_/g'` eval "enable_$ac_feature=no" ;; -enable-* | --enable-*) ac_feature=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'` # Reject names that are not valid shell variable names. expr "x$ac_feature" : ".*[^-_$as_cr_alnum]" >/dev/null && { echo "$as_me: error: invalid feature name: $ac_feature" >&2 { (exit 1); exit 1; }; } ac_feature=`echo $ac_feature | sed 's/-/_/g'` case $ac_option in *=*) ac_optarg=`echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"`;; *) ac_optarg=yes ;; esac eval "enable_$ac_feature='$ac_optarg'" ;; -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \ | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \ | --exec | --exe | --ex) ac_prev=exec_prefix ;; -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \ | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \ | --exec=* | --exe=* | --ex=*) exec_prefix=$ac_optarg ;; -gas | --gas | --ga | --g) # Obsolete; use --with-gas. with_gas=yes ;; -help | --help | --hel | --he | -h) ac_init_help=long ;; -help=r* | --help=r* | --hel=r* | --he=r* | -hr*) ac_init_help=recursive ;; -help=s* | --help=s* | --hel=s* | --he=s* | -hs*) ac_init_help=short ;; -host | --host | --hos | --ho) ac_prev=host_alias ;; -host=* | --host=* | --hos=* | --ho=*) host_alias=$ac_optarg ;; -includedir | --includedir | --includedi | --included | --include \ | --includ | --inclu | --incl | --inc) ac_prev=includedir ;; -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \ | --includ=* | --inclu=* | --incl=* | --inc=*) includedir=$ac_optarg ;; -infodir | --infodir | --infodi | --infod | --info | --inf) ac_prev=infodir ;; -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*) infodir=$ac_optarg ;; -libdir | --libdir | --libdi | --libd) ac_prev=libdir ;; -libdir=* | --libdir=* | --libdi=* | --libd=*) libdir=$ac_optarg ;; -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \ | --libexe | --libex | --libe) ac_prev=libexecdir ;; -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \ | --libexe=* | --libex=* | --libe=*) libexecdir=$ac_optarg ;; -localstatedir | --localstatedir | --localstatedi | --localstated \ | --localstate | --localstat | --localsta | --localst \ | --locals | --local | --loca | --loc | --lo) ac_prev=localstatedir ;; -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \ | --localstate=* | --localstat=* | --localsta=* | --localst=* \ | --locals=* | --local=* | --loca=* | --loc=* | --lo=*) localstatedir=$ac_optarg ;; -mandir | --mandir | --mandi | --mand | --man | --ma | --m) ac_prev=mandir ;; -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*) mandir=$ac_optarg ;; -nfp | --nfp | --nf) # Obsolete; use --without-fp. with_fp=no ;; -no-create | --no-create | --no-creat | --no-crea | --no-cre \ | --no-cr | --no-c | -n) no_create=yes ;; -no-recursion | --no-recursion | --no-recursio | --no-recursi \ | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) no_recursion=yes ;; -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \ | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \ | --oldin | --oldi | --old | --ol | --o) ac_prev=oldincludedir ;; -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \ | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \ | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*) oldincludedir=$ac_optarg ;; -prefix | --prefix | --prefi | --pref | --pre | --pr | --p) ac_prev=prefix ;; -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*) prefix=$ac_optarg ;; -program-prefix | --program-prefix | --program-prefi | --program-pref \ | --program-pre | --program-pr | --program-p) ac_prev=program_prefix ;; -program-prefix=* | --program-prefix=* | --program-prefi=* \ | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*) program_prefix=$ac_optarg ;; -program-suffix | --program-suffix | --program-suffi | --program-suff \ | --program-suf | --program-su | --program-s) ac_prev=program_suffix ;; -program-suffix=* | --program-suffix=* | --program-suffi=* \ | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*) program_suffix=$ac_optarg ;; -program-transform-name | --program-transform-name \ | --program-transform-nam | --program-transform-na \ | --program-transform-n | --program-transform- \ | --program-transform | --program-transfor \ | --program-transfo | --program-transf \ | --program-trans | --program-tran \ | --progr-tra | --program-tr | --program-t) ac_prev=program_transform_name ;; -program-transform-name=* | --program-transform-name=* \ | --program-transform-nam=* | --program-transform-na=* \ | --program-transform-n=* | --program-transform-=* \ | --program-transform=* | --program-transfor=* \ | --program-transfo=* | --program-transf=* \ | --program-trans=* | --program-tran=* \ | --progr-tra=* | --program-tr=* | --program-t=*) program_transform_name=$ac_optarg ;; -q | -quiet | --quiet | --quie | --qui | --qu | --q \ | -silent | --silent | --silen | --sile | --sil) silent=yes ;; -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb) ac_prev=sbindir ;; -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \ | --sbi=* | --sb=*) sbindir=$ac_optarg ;; -sharedstatedir | --sharedstatedir | --sharedstatedi \ | --sharedstated | --sharedstate | --sharedstat | --sharedsta \ | --sharedst | --shareds | --shared | --share | --shar \ | --sha | --sh) ac_prev=sharedstatedir ;; -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \ | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \ | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \ | --sha=* | --sh=*) sharedstatedir=$ac_optarg ;; -site | --site | --sit) ac_prev=site ;; -site=* | --site=* | --sit=*) site=$ac_optarg ;; -srcdir | --srcdir | --srcdi | --srcd | --src | --sr) ac_prev=srcdir ;; -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*) srcdir=$ac_optarg ;; -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \ | --syscon | --sysco | --sysc | --sys | --sy) ac_prev=sysconfdir ;; -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \ | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*) sysconfdir=$ac_optarg ;; -target | --target | --targe | --targ | --tar | --ta | --t) ac_prev=target_alias ;; -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*) target_alias=$ac_optarg ;; -v | -verbose | --verbose | --verbos | --verbo | --verb) verbose=yes ;; -version | --version | --versio | --versi | --vers | -V) ac_init_version=: ;; -with-* | --with-*) ac_package=`expr "x$ac_option" : 'x-*with-\([^=]*\)'` # Reject names that are not valid shell variable names. expr "x$ac_package" : ".*[^-_$as_cr_alnum]" >/dev/null && { echo "$as_me: error: invalid package name: $ac_package" >&2 { (exit 1); exit 1; }; } ac_package=`echo $ac_package| sed 's/-/_/g'` case $ac_option in *=*) ac_optarg=`echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"`;; *) ac_optarg=yes ;; esac eval "with_$ac_package='$ac_optarg'" ;; -without-* | --without-*) ac_package=`expr "x$ac_option" : 'x-*without-\(.*\)'` # Reject names that are not valid shell variable names. expr "x$ac_package" : ".*[^-_$as_cr_alnum]" >/dev/null && { echo "$as_me: error: invalid package name: $ac_package" >&2 { (exit 1); exit 1; }; } ac_package=`echo $ac_package | sed 's/-/_/g'` eval "with_$ac_package=no" ;; --x) # Obsolete; use --with-x. with_x=yes ;; -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \ | --x-incl | --x-inc | --x-in | --x-i) ac_prev=x_includes ;; -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \ | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*) x_includes=$ac_optarg ;; -x-libraries | --x-libraries | --x-librarie | --x-librari \ | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l) ac_prev=x_libraries ;; -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \ | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*) x_libraries=$ac_optarg ;; -*) { echo "$as_me: error: unrecognized option: $ac_option Try \`$0 --help' for more information." >&2 { (exit 1); exit 1; }; } ;; *=*) ac_envvar=`expr "x$ac_option" : 'x\([^=]*\)='` # Reject names that are not valid shell variable names. expr "x$ac_envvar" : ".*[^_$as_cr_alnum]" >/dev/null && { echo "$as_me: error: invalid variable name: $ac_envvar" >&2 { (exit 1); exit 1; }; } ac_optarg=`echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` eval "$ac_envvar='$ac_optarg'" export $ac_envvar ;; *) # FIXME: should be removed in autoconf 3.0. echo "$as_me: WARNING: you should use --build, --host, --target" >&2 expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null && echo "$as_me: WARNING: invalid host type: $ac_option" >&2 : ${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option} ;; esac done if test -n "$ac_prev"; then ac_option=--`echo $ac_prev | sed 's/_/-/g'` { echo "$as_me: error: missing argument to $ac_option" >&2 { (exit 1); exit 1; }; } fi # Be sure to have absolute paths. for ac_var in exec_prefix prefix do eval ac_val=$`echo $ac_var` case $ac_val in [\\/$]* | ?:[\\/]* | NONE | '' ) ;; *) { echo "$as_me: error: expected an absolute directory name for --$ac_var: $ac_val" >&2 { (exit 1); exit 1; }; };; esac done # Be sure to have absolute paths. for ac_var in bindir sbindir libexecdir datadir sysconfdir sharedstatedir \ localstatedir libdir includedir oldincludedir infodir mandir do eval ac_val=$`echo $ac_var` case $ac_val in [\\/$]* | ?:[\\/]* ) ;; *) { echo "$as_me: error: expected an absolute directory name for --$ac_var: $ac_val" >&2 { (exit 1); exit 1; }; };; esac done # There might be people who depend on the old broken behavior: `$host' # used to hold the argument of --host etc. # FIXME: To remove some day. build=$build_alias host=$host_alias target=$target_alias # FIXME: To remove some day. if test "x$host_alias" != x; then if test "x$build_alias" = x; then cross_compiling=maybe echo "$as_me: WARNING: If you wanted to set the --build type, don't use --host. If a cross compiler is detected then cross compile mode will be used." >&2 elif test "x$build_alias" != "x$host_alias"; then cross_compiling=yes fi fi ac_tool_prefix= test -n "$host_alias" && ac_tool_prefix=$host_alias- test "$silent" = yes && exec 6>/dev/null # Find the source files, if location was not specified. if test -z "$srcdir"; then ac_srcdir_defaulted=yes # Try the directory containing this script, then its parent. ac_confdir=`(dirname "$0") 2>/dev/null || $as_expr X"$0" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$0" : 'X\(//\)[^/]' \| \ X"$0" : 'X\(//\)$' \| \ X"$0" : 'X\(/\)' \| \ . : '\(.\)' 2>/dev/null || echo X"$0" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } /^X\(\/\/\)[^/].*/{ s//\1/; q; } /^X\(\/\/\)$/{ s//\1/; q; } /^X\(\/\).*/{ s//\1/; q; } s/.*/./; q'` srcdir=$ac_confdir if test ! -r $srcdir/$ac_unique_file; then srcdir=.. fi else ac_srcdir_defaulted=no fi if test ! -r $srcdir/$ac_unique_file; then if test "$ac_srcdir_defaulted" = yes; then { echo "$as_me: error: cannot find sources ($ac_unique_file) in $ac_confdir or .." >&2 { (exit 1); exit 1; }; } else { echo "$as_me: error: cannot find sources ($ac_unique_file) in $srcdir" >&2 { (exit 1); exit 1; }; } fi fi (cd $srcdir && test -r ./$ac_unique_file) 2>/dev/null || { echo "$as_me: error: sources are in $srcdir, but \`cd $srcdir' does not work" >&2 { (exit 1); exit 1; }; } srcdir=`echo "$srcdir" | sed 's%\([^\\/]\)[\\/]*$%\1%'` ac_env_build_alias_set=${build_alias+set} ac_env_build_alias_value=$build_alias ac_cv_env_build_alias_set=${build_alias+set} ac_cv_env_build_alias_value=$build_alias ac_env_host_alias_set=${host_alias+set} ac_env_host_alias_value=$host_alias ac_cv_env_host_alias_set=${host_alias+set} ac_cv_env_host_alias_value=$host_alias ac_env_target_alias_set=${target_alias+set} ac_env_target_alias_value=$target_alias ac_cv_env_target_alias_set=${target_alias+set} ac_cv_env_target_alias_value=$target_alias ac_env_CC_set=${CC+set} ac_env_CC_value=$CC ac_cv_env_CC_set=${CC+set} ac_cv_env_CC_value=$CC ac_env_CFLAGS_set=${CFLAGS+set} ac_env_CFLAGS_value=$CFLAGS ac_cv_env_CFLAGS_set=${CFLAGS+set} ac_cv_env_CFLAGS_value=$CFLAGS ac_env_LDFLAGS_set=${LDFLAGS+set} ac_env_LDFLAGS_value=$LDFLAGS ac_cv_env_LDFLAGS_set=${LDFLAGS+set} ac_cv_env_LDFLAGS_value=$LDFLAGS ac_env_CPPFLAGS_set=${CPPFLAGS+set} ac_env_CPPFLAGS_value=$CPPFLAGS ac_cv_env_CPPFLAGS_set=${CPPFLAGS+set} ac_cv_env_CPPFLAGS_value=$CPPFLAGS ac_env_CPP_set=${CPP+set} ac_env_CPP_value=$CPP ac_cv_env_CPP_set=${CPP+set} ac_cv_env_CPP_value=$CPP # # Report the --help message. # if test "$ac_init_help" = "long"; then # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF \`configure' configures this package to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... To assign environment variables (e.g., CC, CFLAGS...), specify them as VAR=VALUE. See below for descriptions of some of the useful variables. Defaults for the options are specified in brackets. Configuration: -h, --help display this help and exit --help=short display options specific to this package --help=recursive display the short help of all the included packages -V, --version display version information and exit -q, --quiet, --silent do not print \`checking...' messages --cache-file=FILE cache test results in FILE [disabled] -C, --config-cache alias for \`--cache-file=config.cache' -n, --no-create do not create output files --srcdir=DIR find the sources in DIR [configure dir or \`..'] _ACEOF cat <<_ACEOF Installation directories: --prefix=PREFIX install architecture-independent files in PREFIX [$ac_default_prefix] --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX [PREFIX] By default, \`make install' will install all the files in \`$ac_default_prefix/bin', \`$ac_default_prefix/lib' etc. You can specify an installation prefix other than \`$ac_default_prefix' using \`--prefix', for instance \`--prefix=\$HOME'. For better control, use the options below. Fine tuning of the installation directories: --bindir=DIR user executables [EPREFIX/bin] --sbindir=DIR system admin executables [EPREFIX/sbin] --libexecdir=DIR program executables [EPREFIX/libexec] --datadir=DIR read-only architecture-independent data [PREFIX/share] --sysconfdir=DIR read-only single-machine data [PREFIX/etc] --sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com] --localstatedir=DIR modifiable single-machine data [PREFIX/var] --libdir=DIR object code libraries [EPREFIX/lib] --includedir=DIR C header files [PREFIX/include] --oldincludedir=DIR C header files for non-gcc [/usr/include] --infodir=DIR info documentation [PREFIX/info] --mandir=DIR man documentation [PREFIX/man] _ACEOF cat <<\_ACEOF _ACEOF fi if test -n "$ac_init_help"; then cat <<\_ACEOF Optional Features: --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no) --enable-FEATURE[=ARG] include FEATURE [ARG=yes] --enable-static Build as static executable --enable-debug Compile with debugging code --enable-dns Enable DNS lookup code --enable-ipv6-dns Tries to use IPv6 for dns loolups Optional Packages: --with-PACKAGE[=ARG] use PACKAGE [ARG=yes] --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no) --with-gdlib=DIR Where to additionally look for libgd.a --with-gd=DIR Where to additionally look for gd headers --with-z-inc=DIR Alternate location for libz headers --with-zlib=DIR Alternate location for libz library --with-png-inc=DIR Alternate location of png header files --with-png=DIR Alternate location for libpng library --with-freetype=DIR Alternate location for Freetype 2 library --with-db=DIR Alternate location for db headers --with-dblib=DIR Alternate location for db library Some influential environment variables: CC C compiler command CFLAGS C compiler flags LDFLAGS linker flags, e.g. -L<lib dir> if you have libraries in a nonstandard directory <lib dir> CPPFLAGS C/C++ preprocessor flags, e.g. -I<include dir> if you have headers in a nonstandard directory <include dir> CPP C preprocessor Use these variables to override the choices made by `configure' or to help it to find libraries and programs with nonstandard names/locations. _ACEOF fi if test "$ac_init_help" = "recursive"; then # If there are subdirs, report their specific --help. ac_popdir=`pwd` for ac_dir in : $ac_subdirs_all; do test "x$ac_dir" = x: && continue test -d $ac_dir || continue ac_builddir=. if test "$ac_dir" != .; then ac_dir_suffix=/`echo "$ac_dir" | sed 's,^\.[\\/],,'` # A "../" for each directory in $ac_dir_suffix. ac_top_builddir=`echo "$ac_dir_suffix" | sed 's,/[^\\/]*,../,g'` else ac_dir_suffix= ac_top_builddir= fi case $srcdir in .) # No --srcdir option. We are building in place. ac_srcdir=. if test -z "$ac_top_builddir"; then ac_top_srcdir=. else ac_top_srcdir=`echo $ac_top_builddir | sed 's,/$,,'` fi ;; [\\/]* | ?:[\\/]* ) # Absolute path. ac_srcdir=$srcdir$ac_dir_suffix; ac_top_srcdir=$srcdir ;; *) # Relative path. ac_srcdir=$ac_top_builddir$srcdir$ac_dir_suffix ac_top_srcdir=$ac_top_builddir$srcdir ;; esac # Do not use `cd foo && pwd` to compute absolute paths, because # the directories may not exist. case `pwd` in .) ac_abs_builddir="$ac_dir";; *) case "$ac_dir" in .) ac_abs_builddir=`pwd`;; [\\/]* | ?:[\\/]* ) ac_abs_builddir="$ac_dir";; *) ac_abs_builddir=`pwd`/"$ac_dir";; esac;; esac case $ac_abs_builddir in .) ac_abs_top_builddir=${ac_top_builddir}.;; *) case ${ac_top_builddir}. in .) ac_abs_top_builddir=$ac_abs_builddir;; [\\/]* | ?:[\\/]* ) ac_abs_top_builddir=${ac_top_builddir}.;; *) ac_abs_top_builddir=$ac_abs_builddir/${ac_top_builddir}.;; esac;; esac case $ac_abs_builddir in .) ac_abs_srcdir=$ac_srcdir;; *) case $ac_srcdir in .) ac_abs_srcdir=$ac_abs_builddir;; [\\/]* | ?:[\\/]* ) ac_abs_srcdir=$ac_srcdir;; *) ac_abs_srcdir=$ac_abs_builddir/$ac_srcdir;; esac;; esac case $ac_abs_builddir in .) ac_abs_top_srcdir=$ac_top_srcdir;; *) case $ac_top_srcdir in .) ac_abs_top_srcdir=$ac_abs_builddir;; [\\/]* | ?:[\\/]* ) ac_abs_top_srcdir=$ac_top_srcdir;; *) ac_abs_top_srcdir=$ac_abs_builddir/$ac_top_srcdir;; esac;; esac cd $ac_dir # Check for guested configure; otherwise get Cygnus style configure. if test -f $ac_srcdir/configure.gnu; then echo $SHELL $ac_srcdir/configure.gnu --help=recursive elif test -f $ac_srcdir/configure; then echo $SHELL $ac_srcdir/configure --help=recursive elif test -f $ac_srcdir/configure.ac || test -f $ac_srcdir/configure.in; then echo $ac_configure --help else echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2 fi cd "$ac_popdir" done fi test -n "$ac_init_help" && exit 0 if $ac_init_version; then cat <<\_ACEOF Copyright (C) 2003 Free Software Foundation, Inc. This configure script is free software; the Free Software Foundation gives unlimited permission to copy, distribute and modify it. _ACEOF exit 0 fi exec 5>config.log cat >&5 <<_ACEOF This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. It was created by $as_me, which was generated by GNU Autoconf 2.59. Invocation command line was $ $0 $@ _ACEOF { cat <<_ASUNAME ## --------- ## ## Platform. ## ## --------- ## hostname = `(hostname || uname -n) 2>/dev/null | sed 1q` uname -m = `(uname -m) 2>/dev/null || echo unknown` uname -r = `(uname -r) 2>/dev/null || echo unknown` uname -s = `(uname -s) 2>/dev/null || echo unknown` uname -v = `(uname -v) 2>/dev/null || echo unknown` /usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null || echo unknown` /bin/uname -X = `(/bin/uname -X) 2>/dev/null || echo unknown` /bin/arch = `(/bin/arch) 2>/dev/null || echo unknown` /usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null || echo unknown` /usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null || echo unknown` hostinfo = `(hostinfo) 2>/dev/null || echo unknown` /bin/machine = `(/bin/machine) 2>/dev/null || echo unknown` /usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null || echo unknown` /bin/universe = `(/bin/universe) 2>/dev/null || echo unknown` _ASUNAME as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. echo "PATH: $as_dir" done } >&5 cat >&5 <<_ACEOF ## ----------- ## ## Core tests. ## ## ----------- ## _ACEOF # Keep a trace of the command line. # Strip out --no-create and --no-recursion so they do not pile up. # Strip out --silent because we don't want to record it for future runs. # Also quote any args containing shell meta-characters. # Make two passes to allow for proper duplicate-argument suppression. ac_configure_args= ac_configure_args0= ac_configure_args1= ac_sep= ac_must_keep_next=false for ac_pass in 1 2 do for ac_arg do case $ac_arg in -no-create | --no-c* | -n | -no-recursion | --no-r*) continue ;; -q | -quiet | --quiet | --quie | --qui | --qu | --q \ | -silent | --silent | --silen | --sile | --sil) continue ;; *" "*|*" "*|*[\[\]\~\#\$\^\&\*\(\)\{\}\\\|\;\<\>\?\"\']*) ac_arg=`echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;; esac case $ac_pass in 1) ac_configure_args0="$ac_configure_args0 '$ac_arg'" ;; 2) ac_configure_args1="$ac_configure_args1 '$ac_arg'" if test $ac_must_keep_next = true; then ac_must_keep_next=false # Got value, back to normal. else case $ac_arg in *=* | --config-cache | -C | -disable-* | --disable-* \ | -enable-* | --enable-* | -gas | --g* | -nfp | --nf* \ | -q | -quiet | --q* | -silent | --sil* | -v | -verb* \ | -with-* | --with-* | -without-* | --without-* | --x) case "$ac_configure_args0 " in "$ac_configure_args1"*" '$ac_arg' "* ) continue ;; esac ;; -* ) ac_must_keep_next=true ;; esac fi ac_configure_args="$ac_configure_args$ac_sep'$ac_arg'" # Get rid of the leading space. ac_sep=" " ;; esac done done $as_unset ac_configure_args0 || test "${ac_configure_args0+set}" != set || { ac_configure_args0=; export ac_configure_args0; } $as_unset ac_configure_args1 || test "${ac_configure_args1+set}" != set || { ac_configure_args1=; export ac_configure_args1; } # When interrupted or exit'd, cleanup temporary files, and complete # config.log. We remove comments because anyway the quotes in there # would cause problems or look ugly. # WARNING: Be sure not to use single quotes in there, as some shells, # such as our DU 5.0 friend, will then `close' the trap. trap 'exit_status=$? # Save into config.log some information that might help in debugging. { echo cat <<\_ASBOX ## ---------------- ## ## Cache variables. ## ## ---------------- ## _ASBOX echo # The following way of writing the cache mishandles newlines in values, { (set) 2>&1 | case `(ac_space='"'"' '"'"'; set | grep ac_space) 2>&1` in *ac_space=\ *) sed -n \ "s/'"'"'/'"'"'\\\\'"'"''"'"'/g; s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='"'"'\\2'"'"'/p" ;; *) sed -n \ "s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1=\\2/p" ;; esac; } echo cat <<\_ASBOX ## ----------------- ## ## Output variables. ## ## ----------------- ## _ASBOX echo for ac_var in $ac_subst_vars do eval ac_val=$`echo $ac_var` echo "$ac_var='"'"'$ac_val'"'"'" done | sort echo if test -n "$ac_subst_files"; then cat <<\_ASBOX ## ------------- ## ## Output files. ## ## ------------- ## _ASBOX echo for ac_var in $ac_subst_files do eval ac_val=$`echo $ac_var` echo "$ac_var='"'"'$ac_val'"'"'" done | sort echo fi if test -s confdefs.h; then cat <<\_ASBOX ## ----------- ## ## confdefs.h. ## ## ----------- ## _ASBOX echo sed "/^$/d" confdefs.h | sort echo fi test "$ac_signal" != 0 && echo "$as_me: caught signal $ac_signal" echo "$as_me: exit $exit_status" } >&5 rm -f core *.core && rm -rf conftest* confdefs* conf$$* $ac_clean_files && exit $exit_status ' 0 for ac_signal in 1 2 13 15; do trap 'ac_signal='$ac_signal'; { (exit 1); exit 1; }' $ac_signal done ac_signal=0 # confdefs.h avoids OS command line length limits that DEFS can exceed. rm -rf conftest* confdefs.h # AIX cpp loses on an empty file, so make sure it contains at least a newline. echo >confdefs.h # Predefined preprocessor variables. cat >>confdefs.h <<_ACEOF #define PACKAGE_NAME "$PACKAGE_NAME" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_TARNAME "$PACKAGE_TARNAME" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_VERSION "$PACKAGE_VERSION" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_STRING "$PACKAGE_STRING" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_BUGREPORT "$PACKAGE_BUGREPORT" _ACEOF # Let the site file select an alternate cache file if it wants to. # Prefer explicitly selected file to automatically selected ones. if test -z "$CONFIG_SITE"; then if test "x$prefix" != xNONE; then CONFIG_SITE="$prefix/share/config.site $prefix/etc/config.site" else CONFIG_SITE="$ac_default_prefix/share/config.site $ac_default_prefix/etc/config.site" fi fi for ac_site_file in $CONFIG_SITE; do if test -r "$ac_site_file"; then { echo "$as_me:$LINENO: loading site script $ac_site_file" >&5 echo "$as_me: loading site script $ac_site_file" >&6;} sed 's/^/| /' "$ac_site_file" >&5 . "$ac_site_file" fi done if test -r "$cache_file"; then # Some versions of bash will fail to source /dev/null (special # files actually), so we avoid doing that. if test -f "$cache_file"; then { echo "$as_me:$LINENO: loading cache $cache_file" >&5 echo "$as_me: loading cache $cache_file" >&6;} case $cache_file in [\\/]* | ?:[\\/]* ) . $cache_file;; *) . ./$cache_file;; esac fi else { echo "$as_me:$LINENO: creating cache $cache_file" >&5 echo "$as_me: creating cache $cache_file" >&6;} >$cache_file fi # Check that the precious variables saved in the cache have kept the same # value. ac_cache_corrupted=false for ac_var in `(set) 2>&1 | sed -n 's/^ac_env_\([a-zA-Z_0-9]*\)_set=.*/\1/p'`; do eval ac_old_set=\$ac_cv_env_${ac_var}_set eval ac_new_set=\$ac_env_${ac_var}_set eval ac_old_val="\$ac_cv_env_${ac_var}_value" eval ac_new_val="\$ac_env_${ac_var}_value" case $ac_old_set,$ac_new_set in set,) { echo "$as_me:$LINENO: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5 echo "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;} ac_cache_corrupted=: ;; ,set) { echo "$as_me:$LINENO: error: \`$ac_var' was not set in the previous run" >&5 echo "$as_me: error: \`$ac_var' was not set in the previous run" >&2;} ac_cache_corrupted=: ;; ,);; *) if test "x$ac_old_val" != "x$ac_new_val"; then { echo "$as_me:$LINENO: error: \`$ac_var' has changed since the previous run:" >&5 echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;} { echo "$as_me:$LINENO: former value: $ac_old_val" >&5 echo "$as_me: former value: $ac_old_val" >&2;} { echo "$as_me:$LINENO: current value: $ac_new_val" >&5 echo "$as_me: current value: $ac_new_val" >&2;} ac_cache_corrupted=: fi;; esac # Pass precious variables to config.status. if test "$ac_new_set" = set; then case $ac_new_val in *" "*|*" "*|*[\[\]\~\#\$\^\&\*\(\)\{\}\\\|\;\<\>\?\"\']*) ac_arg=$ac_var=`echo "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;; *) ac_arg=$ac_var=$ac_new_val ;; esac case " $ac_configure_args " in *" '$ac_arg' "*) ;; # Avoid dups. Use of quotes ensures accuracy. *) ac_configure_args="$ac_configure_args '$ac_arg'" ;; esac fi done if $ac_cache_corrupted; then { echo "$as_me:$LINENO: error: changes in the environment can compromise the build" >&5 echo "$as_me: error: changes in the environment can compromise the build" >&2;} { { echo "$as_me:$LINENO: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&5 echo "$as_me: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&2;} { (exit 1); exit 1; }; } fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu ac_config_headers="$ac_config_headers config.h" #dnl default language (don't change!) #DEFAULT_LANG="english" #AC_SUBST(DEFAULT_LANG) OPTS=${DEFS} IN_CFLAGS=${CFLAGS} ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args. set dummy ${ac_tool_prefix}gcc; ac_word=$2 echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_prog_CC+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_CC="${ac_tool_prefix}gcc" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then echo "$as_me:$LINENO: result: $CC" >&5 echo "${ECHO_T}$CC" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi fi if test -z "$ac_cv_prog_CC"; then ac_ct_CC=$CC # Extract the first word of "gcc", so it can be a program name with args. set dummy gcc; ac_word=$2 echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_prog_ac_ct_CC+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$ac_ct_CC"; then ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_CC="gcc" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done fi fi ac_ct_CC=$ac_cv_prog_ac_ct_CC if test -n "$ac_ct_CC"; then echo "$as_me:$LINENO: result: $ac_ct_CC" >&5 echo "${ECHO_T}$ac_ct_CC" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi CC=$ac_ct_CC else CC="$ac_cv_prog_CC" fi if test -z "$CC"; then if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args. set dummy ${ac_tool_prefix}cc; ac_word=$2 echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_prog_CC+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_CC="${ac_tool_prefix}cc" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then echo "$as_me:$LINENO: result: $CC" >&5 echo "${ECHO_T}$CC" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi fi if test -z "$ac_cv_prog_CC"; then ac_ct_CC=$CC # Extract the first word of "cc", so it can be a program name with args. set dummy cc; ac_word=$2 echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_prog_ac_ct_CC+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$ac_ct_CC"; then ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_CC="cc" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done fi fi ac_ct_CC=$ac_cv_prog_ac_ct_CC if test -n "$ac_ct_CC"; then echo "$as_me:$LINENO: result: $ac_ct_CC" >&5 echo "${ECHO_T}$ac_ct_CC" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi CC=$ac_ct_CC else CC="$ac_cv_prog_CC" fi fi if test -z "$CC"; then # Extract the first word of "cc", so it can be a program name with args. set dummy cc; ac_word=$2 echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_prog_CC+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else ac_prog_rejected=no as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then ac_prog_rejected=yes continue fi ac_cv_prog_CC="cc" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done if test $ac_prog_rejected = yes; then # We found a bogon in the path, so make sure we never use it. set dummy $ac_cv_prog_CC shift if test $# != 0; then # We chose a different compiler from the bogus one. # However, it has the same basename, so the bogon will be chosen # first if we set CC to just the basename; use the full file name. shift ac_cv_prog_CC="$as_dir/$ac_word${1+' '}$@" fi fi fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then echo "$as_me:$LINENO: result: $CC" >&5 echo "${ECHO_T}$CC" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi fi if test -z "$CC"; then if test -n "$ac_tool_prefix"; then for ac_prog in cl do # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. set dummy $ac_tool_prefix$ac_prog; ac_word=$2 echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_prog_CC+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_CC="$ac_tool_prefix$ac_prog" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then echo "$as_me:$LINENO: result: $CC" >&5 echo "${ECHO_T}$CC" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi test -n "$CC" && break done fi if test -z "$CC"; then ac_ct_CC=$CC for ac_prog in cl do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_prog_ac_ct_CC+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$ac_ct_CC"; then ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_CC="$ac_prog" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done fi fi ac_ct_CC=$ac_cv_prog_ac_ct_CC if test -n "$ac_ct_CC"; then echo "$as_me:$LINENO: result: $ac_ct_CC" >&5 echo "${ECHO_T}$ac_ct_CC" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi test -n "$ac_ct_CC" && break done CC=$ac_ct_CC fi fi test -z "$CC" && { { echo "$as_me:$LINENO: error: no acceptable C compiler found in \$PATH See \`config.log' for more details." >&5 echo "$as_me: error: no acceptable C compiler found in \$PATH See \`config.log' for more details." >&2;} { (exit 1); exit 1; }; } # Provide some information about the compiler. echo "$as_me:$LINENO:" \ "checking for C compiler version" >&5 ac_compiler=`set X $ac_compile; echo $2` { (eval echo "$as_me:$LINENO: \"$ac_compiler --version </dev/null >&5\"") >&5 (eval $ac_compiler --version </dev/null >&5) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } { (eval echo "$as_me:$LINENO: \"$ac_compiler -v </dev/null >&5\"") >&5 (eval $ac_compiler -v </dev/null >&5) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } { (eval echo "$as_me:$LINENO: \"$ac_compiler -V </dev/null >&5\"") >&5 (eval $ac_compiler -V </dev/null >&5) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { ; return 0; } _ACEOF ac_clean_files_save=$ac_clean_files ac_clean_files="$ac_clean_files a.out a.exe b.out" # Try to create an executable without -o first, disregard a.out. # It will help us diagnose broken compilers, and finding out an intuition # of exeext. echo "$as_me:$LINENO: checking for C compiler default output file name" >&5 echo $ECHO_N "checking for C compiler default output file name... $ECHO_C" >&6 ac_link_default=`echo "$ac_link" | sed 's/ -o *conftest[^ ]*//'` if { (eval echo "$as_me:$LINENO: \"$ac_link_default\"") >&5 (eval $ac_link_default) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; then # Find the output, starting from the most likely. This scheme is # not robust to junk in `.', hence go to wildcards (a.*) only as a last # resort. # Be careful to initialize this variable, since it used to be cached. # Otherwise an old cache value of `no' led to `EXEEXT = no' in a Makefile. ac_cv_exeext= # b.out is created by i960 compilers. for ac_file in a_out.exe a.exe conftest.exe a.out conftest a.* conftest.* b.out do test -f "$ac_file" || continue case $ac_file in *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.o | *.obj ) ;; conftest.$ac_ext ) # This is the source file. ;; [ab].out ) # We found the default executable, but exeext='' is most # certainly right. break;; *.* ) ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` # FIXME: I believe we export ac_cv_exeext for Libtool, # but it would be cool to find out if it's true. Does anybody # maintain Libtool? --akim. export ac_cv_exeext break;; * ) break;; esac done else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 { { echo "$as_me:$LINENO: error: C compiler cannot create executables See \`config.log' for more details." >&5 echo "$as_me: error: C compiler cannot create executables See \`config.log' for more details." >&2;} { (exit 77); exit 77; }; } fi ac_exeext=$ac_cv_exeext echo "$as_me:$LINENO: result: $ac_file" >&5 echo "${ECHO_T}$ac_file" >&6 # Check the compiler produces executables we can run. If not, either # the compiler is broken, or we cross compile. echo "$as_me:$LINENO: checking whether the C compiler works" >&5 echo $ECHO_N "checking whether the C compiler works... $ECHO_C" >&6 # FIXME: These cross compiler hacks should be removed for Autoconf 3.0 # If not cross compiling, check that we can run a simple program. if test "$cross_compiling" != yes; then if { ac_try='./$ac_file' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then cross_compiling=no else if test "$cross_compiling" = maybe; then cross_compiling=yes else { { echo "$as_me:$LINENO: error: cannot run C compiled programs. If you meant to cross compile, use \`--host'. See \`config.log' for more details." >&5 echo "$as_me: error: cannot run C compiled programs. If you meant to cross compile, use \`--host'. See \`config.log' for more details." >&2;} { (exit 1); exit 1; }; } fi fi fi echo "$as_me:$LINENO: result: yes" >&5 echo "${ECHO_T}yes" >&6 rm -f a.out a.exe conftest$ac_cv_exeext b.out ac_clean_files=$ac_clean_files_save # Check the compiler produces executables we can run. If not, either # the compiler is broken, or we cross compile. echo "$as_me:$LINENO: checking whether we are cross compiling" >&5 echo $ECHO_N "checking whether we are cross compiling... $ECHO_C" >&6 echo "$as_me:$LINENO: result: $cross_compiling" >&5 echo "${ECHO_T}$cross_compiling" >&6 echo "$as_me:$LINENO: checking for suffix of executables" >&5 echo $ECHO_N "checking for suffix of executables... $ECHO_C" >&6 if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; then # If both `conftest.exe' and `conftest' are `present' (well, observable) # catch `conftest.exe'. For instance with Cygwin, `ls conftest' will # work properly (i.e., refer to `conftest.exe'), while it won't with # `rm'. for ac_file in conftest.exe conftest conftest.*; do test -f "$ac_file" || continue case $ac_file in *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.o | *.obj ) ;; *.* ) ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` export ac_cv_exeext break;; * ) break;; esac done else { { echo "$as_me:$LINENO: error: cannot compute suffix of executables: cannot compile and link See \`config.log' for more details." >&5 echo "$as_me: error: cannot compute suffix of executables: cannot compile and link See \`config.log' for more details." >&2;} { (exit 1); exit 1; }; } fi rm -f conftest$ac_cv_exeext echo "$as_me:$LINENO: result: $ac_cv_exeext" >&5 echo "${ECHO_T}$ac_cv_exeext" >&6 rm -f conftest.$ac_ext EXEEXT=$ac_cv_exeext ac_exeext=$EXEEXT echo "$as_me:$LINENO: checking for suffix of object files" >&5 echo $ECHO_N "checking for suffix of object files... $ECHO_C" >&6 if test "${ac_cv_objext+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { ; return 0; } _ACEOF rm -f conftest.o conftest.obj if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; then for ac_file in `(ls conftest.o conftest.obj; ls conftest.*) 2>/dev/null`; do case $ac_file in *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg ) ;; *) ac_cv_objext=`expr "$ac_file" : '.*\.\(.*\)'` break;; esac done else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 { { echo "$as_me:$LINENO: error: cannot compute suffix of object files: cannot compile See \`config.log' for more details." >&5 echo "$as_me: error: cannot compute suffix of object files: cannot compile See \`config.log' for more details." >&2;} { (exit 1); exit 1; }; } fi rm -f conftest.$ac_cv_objext conftest.$ac_ext fi echo "$as_me:$LINENO: result: $ac_cv_objext" >&5 echo "${ECHO_T}$ac_cv_objext" >&6 OBJEXT=$ac_cv_objext ac_objext=$OBJEXT echo "$as_me:$LINENO: checking whether we are using the GNU C compiler" >&5 echo $ECHO_N "checking whether we are using the GNU C compiler... $ECHO_C" >&6 if test "${ac_cv_c_compiler_gnu+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { #ifndef __GNUC__ choke me #endif ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_compiler_gnu=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_compiler_gnu=no fi rm -f conftest.err conftest.$ac_objext conftest.$ac_ext ac_cv_c_compiler_gnu=$ac_compiler_gnu fi echo "$as_me:$LINENO: result: $ac_cv_c_compiler_gnu" >&5 echo "${ECHO_T}$ac_cv_c_compiler_gnu" >&6 GCC=`test $ac_compiler_gnu = yes && echo yes` ac_test_CFLAGS=${CFLAGS+set} ac_save_CFLAGS=$CFLAGS CFLAGS="-g" echo "$as_me:$LINENO: checking whether $CC accepts -g" >&5 echo $ECHO_N "checking whether $CC accepts -g... $ECHO_C" >&6 if test "${ac_cv_prog_cc_g+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_prog_cc_g=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_prog_cc_g=no fi rm -f conftest.err conftest.$ac_objext conftest.$ac_ext fi echo "$as_me:$LINENO: result: $ac_cv_prog_cc_g" >&5 echo "${ECHO_T}$ac_cv_prog_cc_g" >&6 if test "$ac_test_CFLAGS" = set; then CFLAGS=$ac_save_CFLAGS elif test $ac_cv_prog_cc_g = yes; then if test "$GCC" = yes; then CFLAGS="-g -O2" else CFLAGS="-g" fi else if test "$GCC" = yes; then CFLAGS="-O2" else CFLAGS= fi fi echo "$as_me:$LINENO: checking for $CC option to accept ANSI C" >&5 echo $ECHO_N "checking for $CC option to accept ANSI C... $ECHO_C" >&6 if test "${ac_cv_prog_cc_stdc+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_cv_prog_cc_stdc=no ac_save_CC=$CC cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include <stdarg.h> #include <stdio.h> #include <sys/types.h> #include <sys/stat.h> /* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */ struct buf { int x; }; FILE * (*rcsopen) (struct buf *, struct stat *, int); static char *e (p, i) char **p; int i; { return p[i]; } static char *f (char * (*g) (char **, int), char **p, ...) { char *s; va_list v; va_start (v,p); s = g (p, va_arg (v,int)); va_end (v); return s; } /* OSF 4.0 Compaq cc is some sort of almost-ANSI by default. It has function prototypes and stuff, but not '\xHH' hex character constants. These don't provoke an error unfortunately, instead are silently treated as 'x'. The following induces an error, until -std1 is added to get proper ANSI mode. Curiously '\x00'!='x' always comes out true, for an array size at least. It's necessary to write '\x00'==0 to get something that's true only with -std1. */ int osf4_cc_array ['\x00' == 0 ? 1 : -1]; int test (int i, double x); struct s1 {int (*f) (int a);}; struct s2 {int (*f) (double a);}; int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int); int argc; char **argv; int main () { return f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1]; ; return 0; } _ACEOF # Don't try gcc -ansi; that turns off useful extensions and # breaks some systems' header files. # AIX -qlanglvl=ansi # Ultrix and OSF/1 -std1 # HP-UX 10.20 and later -Ae # HP-UX older versions -Aa -D_HPUX_SOURCE # SVR4 -Xc -D__EXTENSIONS__ for ac_arg in "" -qlanglvl=ansi -std1 -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__" do CC="$ac_save_CC $ac_arg" rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_prog_cc_stdc=$ac_arg break else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 fi rm -f conftest.err conftest.$ac_objext done rm -f conftest.$ac_ext conftest.$ac_objext CC=$ac_save_CC fi case "x$ac_cv_prog_cc_stdc" in x|xno) echo "$as_me:$LINENO: result: none needed" >&5 echo "${ECHO_T}none needed" >&6 ;; *) echo "$as_me:$LINENO: result: $ac_cv_prog_cc_stdc" >&5 echo "${ECHO_T}$ac_cv_prog_cc_stdc" >&6 CC="$CC $ac_cv_prog_cc_stdc" ;; esac # Some people use a C++ compiler to compile C. Since we use `exit', # in C++ we need to declare it. In case someone uses the same compiler # for both compiling C and C++ we need to have the C++ compiler decide # the declaration of exit, since it's the most demanding environment. cat >conftest.$ac_ext <<_ACEOF #ifndef __cplusplus choke me #endif _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then for ac_declaration in \ '' \ 'extern "C" void std::exit (int) throw (); using std::exit;' \ 'extern "C" void std::exit (int); using std::exit;' \ 'extern "C" void exit (int) throw ();' \ 'extern "C" void exit (int);' \ 'void exit (int);' do cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_declaration #include <stdlib.h> int main () { exit (42); ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then : else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 continue fi rm -f conftest.err conftest.$ac_objext conftest.$ac_ext cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_declaration int main () { exit (42); ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then break else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 fi rm -f conftest.err conftest.$ac_objext conftest.$ac_ext done rm -f conftest* if test -n "$ac_declaration"; then echo '#ifdef __cplusplus' >>confdefs.h echo $ac_declaration >>confdefs.h echo '#endif' >>confdefs.h fi else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 fi rm -f conftest.err conftest.$ac_objext conftest.$ac_ext ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu echo "$as_me:$LINENO: checking whether ln -s works" >&5 echo $ECHO_N "checking whether ln -s works... $ECHO_C" >&6 LN_S=$as_ln_s if test "$LN_S" = "ln -s"; then echo "$as_me:$LINENO: result: yes" >&5 echo "${ECHO_T}yes" >&6 else echo "$as_me:$LINENO: result: no, using $LN_S" >&5 echo "${ECHO_T}no, using $LN_S" >&6 fi ac_aux_dir= for ac_dir in $srcdir $srcdir/.. $srcdir/../..; do if test -f $ac_dir/install-sh; then ac_aux_dir=$ac_dir ac_install_sh="$ac_aux_dir/install-sh -c" break elif test -f $ac_dir/install.sh; then ac_aux_dir=$ac_dir ac_install_sh="$ac_aux_dir/install.sh -c" break elif test -f $ac_dir/shtool; then ac_aux_dir=$ac_dir ac_install_sh="$ac_aux_dir/shtool install -c" break fi done if test -z "$ac_aux_dir"; then { { echo "$as_me:$LINENO: error: cannot find install-sh or install.sh in $srcdir $srcdir/.. $srcdir/../.." >&5 echo "$as_me: error: cannot find install-sh or install.sh in $srcdir $srcdir/.. $srcdir/../.." >&2;} { (exit 1); exit 1; }; } fi ac_config_guess="$SHELL $ac_aux_dir/config.guess" ac_config_sub="$SHELL $ac_aux_dir/config.sub" ac_configure="$SHELL $ac_aux_dir/configure" # This should be Cygnus configure. # Find a good install program. We prefer a C program (faster), # so one script is as good as another. But avoid the broken or # incompatible versions: # SysV /etc/install, /usr/sbin/install # SunOS /usr/etc/install # IRIX /sbin/install # AIX /bin/install # AmigaOS /C/install, which installs bootblocks on floppy discs # AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag # AFS /usr/afsws/bin/install, which mishandles nonexistent args # SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" # OS/2's system install, which has a completely different semantic # ./install, which can be erroneously created by make from ./install.sh. echo "$as_me:$LINENO: checking for a BSD-compatible install" >&5 echo $ECHO_N "checking for a BSD-compatible install... $ECHO_C" >&6 if test -z "$INSTALL"; then if test "${ac_cv_path_install+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. # Account for people who put trailing slashes in PATH elements. case $as_dir/ in ./ | .// | /cC/* | \ /etc/* | /usr/sbin/* | /usr/etc/* | /sbin/* | /usr/afsws/bin/* | \ ?:\\/os2\\/install\\/* | ?:\\/OS2\\/INSTALL\\/* | \ /usr/ucb/* ) ;; *) # OSF1 and SCO ODT 3.0 have their own names for install. # Don't use installbsd from OSF since it installs stuff as root # by default. for ac_prog in ginstall scoinst install; do for ac_exec_ext in '' $ac_executable_extensions; do if $as_executable_p "$as_dir/$ac_prog$ac_exec_ext"; then if test $ac_prog = install && grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then # AIX install. It has an incompatible calling convention. : elif test $ac_prog = install && grep pwplus "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then # program-specific install script used by HP pwplus--don't use. : else ac_cv_path_install="$as_dir/$ac_prog$ac_exec_ext -c" break 3 fi fi done done ;; esac done fi if test "${ac_cv_path_install+set}" = set; then INSTALL=$ac_cv_path_install else # As a last resort, use the slow shell script. We don't cache a # path for INSTALL within a source directory, because that will # break other packages using the cache if that directory is # removed, or if the path is relative. INSTALL=$ac_install_sh fi fi echo "$as_me:$LINENO: result: $INSTALL" >&5 echo "${ECHO_T}$INSTALL" >&6 # Use test -z because SunOS4 sh mishandles braces in ${var-val}. # It thinks the first close brace ends the variable substitution. test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}' test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL}' test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644' ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu echo "$as_me:$LINENO: checking how to run the C preprocessor" >&5 echo $ECHO_N "checking how to run the C preprocessor... $ECHO_C" >&6 # On Suns, sometimes $CPP names a directory. if test -n "$CPP" && test -d "$CPP"; then CPP= fi if test -z "$CPP"; then if test "${ac_cv_prog_CPP+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else # Double quotes because CPP needs to be expanded for CPP in "$CC -E" "$CC -E -traditional-cpp" "/lib/cpp" do ac_preproc_ok=false for ac_c_preproc_warn_flag in '' yes do # Use a header file that comes with gcc, so configuring glibc # with a fresh cross-compiler works. # Prefer <limits.h> to <assert.h> if __STDC__ is defined, since # <limits.h> exists even on freestanding compilers. # On the NeXT, cc -E runs the code through the compiler's parser, # not just through cpp. "Syntax error" is here to catch this case. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #ifdef __STDC__ # include <limits.h> #else # include <assert.h> #endif Syntax error _ACEOF if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null; then if test -s conftest.err; then ac_cpp_err=$ac_c_preproc_warn_flag ac_cpp_err=$ac_cpp_err$ac_c_werror_flag else ac_cpp_err= fi else ac_cpp_err=yes fi if test -z "$ac_cpp_err"; then : else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 # Broken: fails on valid input. continue fi rm -f conftest.err conftest.$ac_ext # OK, works on sane cases. Now check whether non-existent headers # can be detected and how. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include <ac_nonexistent.h> _ACEOF if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null; then if test -s conftest.err; then ac_cpp_err=$ac_c_preproc_warn_flag ac_cpp_err=$ac_cpp_err$ac_c_werror_flag else ac_cpp_err= fi else ac_cpp_err=yes fi if test -z "$ac_cpp_err"; then # Broken: success on invalid input. continue else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 # Passes both tests. ac_preproc_ok=: break fi rm -f conftest.err conftest.$ac_ext done # Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. rm -f conftest.err conftest.$ac_ext if $ac_preproc_ok; then break fi done ac_cv_prog_CPP=$CPP fi CPP=$ac_cv_prog_CPP else ac_cv_prog_CPP=$CPP fi echo "$as_me:$LINENO: result: $CPP" >&5 echo "${ECHO_T}$CPP" >&6 ac_preproc_ok=false for ac_c_preproc_warn_flag in '' yes do # Use a header file that comes with gcc, so configuring glibc # with a fresh cross-compiler works. # Prefer <limits.h> to <assert.h> if __STDC__ is defined, since # <limits.h> exists even on freestanding compilers. # On the NeXT, cc -E runs the code through the compiler's parser, # not just through cpp. "Syntax error" is here to catch this case. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #ifdef __STDC__ # include <limits.h> #else # include <assert.h> #endif Syntax error _ACEOF if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null; then if test -s conftest.err; then ac_cpp_err=$ac_c_preproc_warn_flag ac_cpp_err=$ac_cpp_err$ac_c_werror_flag else ac_cpp_err= fi else ac_cpp_err=yes fi if test -z "$ac_cpp_err"; then : else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 # Broken: fails on valid input. continue fi rm -f conftest.err conftest.$ac_ext # OK, works on sane cases. Now check whether non-existent headers # can be detected and how. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include <ac_nonexistent.h> _ACEOF if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null; then if test -s conftest.err; then ac_cpp_err=$ac_c_preproc_warn_flag ac_cpp_err=$ac_cpp_err$ac_c_werror_flag else ac_cpp_err= fi else ac_cpp_err=yes fi if test -z "$ac_cpp_err"; then # Broken: success on invalid input. continue else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 # Passes both tests. ac_preproc_ok=: break fi rm -f conftest.err conftest.$ac_ext done # Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. rm -f conftest.err conftest.$ac_ext if $ac_preproc_ok; then : else { { echo "$as_me:$LINENO: error: C preprocessor \"$CPP\" fails sanity check See \`config.log' for more details." >&5 echo "$as_me: error: C preprocessor \"$CPP\" fails sanity check See \`config.log' for more details." >&2;} { (exit 1); exit 1; }; } fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu echo "$as_me:$LINENO: checking for egrep" >&5 echo $ECHO_N "checking for egrep... $ECHO_C" >&6 if test "${ac_cv_prog_egrep+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if echo a | (grep -E '(a|b)') >/dev/null 2>&1 then ac_cv_prog_egrep='grep -E' else ac_cv_prog_egrep='egrep' fi fi echo "$as_me:$LINENO: result: $ac_cv_prog_egrep" >&5 echo "${ECHO_T}$ac_cv_prog_egrep" >&6 EGREP=$ac_cv_prog_egrep echo "$as_me:$LINENO: checking for ANSI C header files" >&5 echo $ECHO_N "checking for ANSI C header files... $ECHO_C" >&6 if test "${ac_cv_header_stdc+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include <stdlib.h> #include <stdarg.h> #include <string.h> #include <float.h> int main () { ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_header_stdc=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_header_stdc=no fi rm -f conftest.err conftest.$ac_objext conftest.$ac_ext if test $ac_cv_header_stdc = yes; then # SunOS 4.x string.h does not declare mem*, contrary to ANSI. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include <string.h> _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | $EGREP "memchr" >/dev/null 2>&1; then : else ac_cv_header_stdc=no fi rm -f conftest* fi if test $ac_cv_header_stdc = yes; then # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include <stdlib.h> _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | $EGREP "free" >/dev/null 2>&1; then : else ac_cv_header_stdc=no fi rm -f conftest* fi if test $ac_cv_header_stdc = yes; then # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi. if test "$cross_compiling" = yes; then : else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include <ctype.h> #if ((' ' & 0x0FF) == 0x020) # define ISLOWER(c) ('a' <= (c) && (c) <= 'z') # define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c)) #else # define ISLOWER(c) \ (('a' <= (c) && (c) <= 'i') \ || ('j' <= (c) && (c) <= 'r') \ || ('s' <= (c) && (c) <= 'z')) # define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c)) #endif #define XOR(e, f) (((e) && !(f)) || (!(e) && (f))) int main () { int i; for (i = 0; i < 256; i++) if (XOR (islower (i), ISLOWER (i)) || toupper (i) != TOUPPER (i)) exit(2); exit (0); } _ACEOF rm -f conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='./conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then : else echo "$as_me: program exited with status $ac_status" >&5 echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ( exit $ac_status ) ac_cv_header_stdc=no fi rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext fi fi fi echo "$as_me:$LINENO: result: $ac_cv_header_stdc" >&5 echo "${ECHO_T}$ac_cv_header_stdc" >&6 if test $ac_cv_header_stdc = yes; then cat >>confdefs.h <<\_ACEOF #define STDC_HEADERS 1 _ACEOF fi # On IRIX 5.3, sys/types and inttypes.h are conflicting. for ac_header in sys/types.h sys/stat.h stdlib.h string.h memory.h strings.h \ inttypes.h stdint.h unistd.h do as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` echo "$as_me:$LINENO: checking for $ac_header" >&5 echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 if eval "test \"\${$as_ac_Header+set}\" = set"; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default #include <$ac_header> _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then eval "$as_ac_Header=yes" else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 eval "$as_ac_Header=no" fi rm -f conftest.err conftest.$ac_objext conftest.$ac_ext fi echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 if test `eval echo '${'$as_ac_Header'}'` = yes; then cat >>confdefs.h <<_ACEOF #define `echo "HAVE_$ac_header" | $as_tr_cpp` 1 _ACEOF fi done echo "$as_me:$LINENO: checking whether char is unsigned" >&5 echo $ECHO_N "checking whether char is unsigned... $ECHO_C" >&6 if test "${ac_cv_c_char_unsigned+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default int main () { static int test_array [1 - 2 * !(((char) -1) < 0)]; test_array [0] = 0 ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_c_char_unsigned=no else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_c_char_unsigned=yes fi rm -f conftest.err conftest.$ac_objext conftest.$ac_ext fi echo "$as_me:$LINENO: result: $ac_cv_c_char_unsigned" >&5 echo "${ECHO_T}$ac_cv_c_char_unsigned" >&6 if test $ac_cv_c_char_unsigned = yes && test "$GCC" != yes; then cat >>confdefs.h <<\_ACEOF #define __CHAR_UNSIGNED__ 1 _ACEOF fi if test "$GCC" = "yes"; then # Check whether --enable-static or --disable-static was given. if test "${enable_static+set}" = set; then enableval="$enable_static" LDFLAGS="--static ${LDFLAGS}" fi; if test "$IN_CFLAGS" = ""; then CFLAGS="-Wall -O2" fi if test "$ac_cv_c_char_unsigned" = "yes"; then CFLAGS="-fsigned-char ${CFLAGS}" fi # Check whether --enable-debug or --disable-debug was given. if test "${enable_debug+set}" = set; then enableval="$enable_debug" CFLAGS="-g ${CFLAGS}" fi; else if test "$IN_CFLAGS" = ""; then CFLAGS="-g" fi fi # Check whether --with-gdlib or --without-gdlib was given. if test "${with_gdlib+set}" = set; then withval="$with_gdlib" EXTRA_GDLIB="${withval}" else EXTRA_GDLIB="" fi; # Check whether --with-gd or --without-gd was given. if test "${with_gd+set}" = set; then withval="$with_gd" EXTRA_GD="${withval}"; CFLAGS="-I${withval} ${CFLAGS}" else EXTRA_GD="" fi; # Check whether --with-z-inc or --without-z-inc was given. if test "${with_z_inc+set}" = set; then withval="$with_z_inc" CFLAGS="-I${withval} ${CFLAGS}" fi; # Check whether --with-zlib or --without-zlib was given. if test "${with_zlib+set}" = set; then withval="$with_zlib" LDFLAGS="-L${withval} ${LDFLAGS}" fi; # Check whether --with-png-inc or --without-png-inc was given. if test "${with_png_inc+set}" = set; then withval="$with_png_inc" CFLAGS="-I${withval} ${CFLAGS}" fi; # Check whether --with-png or --without-png was given. if test "${with_png+set}" = set; then withval="$with_png" LDFLAGS="-L${withval} ${LDFLAGS}" fi; # Check whether --with-freetype or --without-freetype was given. if test "${with_freetype+set}" = set; then withval="$with_freetype" LDFLAGS="-L${withval} ${LDFLAGS}" fi; # Check whether --with-db or --without-db was given. if test "${with_db+set}" = set; then withval="$with_db" CFLAGS="-I${withval} ${CFLAGS}" fi; # Check whether --with-dblib or --without-dblib was given. if test "${with_dblib+set}" = set; then withval="$with_dblib" LDFLAGS="-L${withval} ${LDFLAGS}"; HAVE_DB="yes" else HAVE_DB="" fi; # Check whether --enable-dns or --disable-dns was given. if test "${enable_dns+set}" = set; then enableval="$enable_dns" USE_DNS="yes" fi; # Check whether --enable-ipv6-dns or --disable-ipv6-dns was given. if test "${enable_ipv6_dns+set}" = set; then enableval="$enable_ipv6_dns" USE_IPV6="yes" fi; if test "$USE_DNS" = "yes"; then if test "$HAVE_DB" = ""; then # No path to db3 library given, we need to search for it ourself if test "$USE_IPV6" = "yes"; then for ac_func in getaddrinfo do as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh` echo "$as_me:$LINENO: checking for $ac_func" >&5 echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6 if eval "test \"\${$as_ac_var+set}\" = set"; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ /* Define $ac_func to an innocuous variant, in case <limits.h> declares $ac_func. For example, HP-UX 11i <limits.h> declares gettimeofday. */ #define $ac_func innocuous_$ac_func /* System header to define __stub macros and hopefully few prototypes, which can conflict with char $ac_func (); below. Prefer <limits.h> to <assert.h> if __STDC__ is defined, since <limits.h> exists even on freestanding compilers. */ #ifdef __STDC__ # include <limits.h> #else # include <assert.h> #endif #undef $ac_func /* Override any gcc2 internal prototype to avoid an error. */ #ifdef __cplusplus extern "C" { #endif /* We use char because int might match the return type of a gcc2 builtin and then its argument prototype would still apply. */ char $ac_func (); /* The GNU C library defines this for functions which it implements to always fail with ENOSYS. Some functions are actually named something starting with __ and the normal name is an alias. */ #if defined (__stub_$ac_func) || defined (__stub___$ac_func) choke me #else char (*f) () = $ac_func; #endif #ifdef __cplusplus } #endif int main () { return f != $ac_func; ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then eval "$as_ac_var=yes" else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 eval "$as_ac_var=no" fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext fi echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 if test `eval echo '${'$as_ac_var'}'` = yes; then cat >>confdefs.h <<_ACEOF #define `echo "HAVE_$ac_func" | $as_tr_cpp` 1 _ACEOF fi done if test "$ac_cv_func_getaddrinfo" = no; then { echo "$as_me:$LINENO: WARNING: Your C library doesn't support IPv6!" >&5 echo "$as_me: WARNING: Your C library doesn't support IPv6!" >&2;} { echo "$as_me:$LINENO: WARNING: DNS lookup code will fall back to IPv4..." >&5 echo "$as_me: WARNING: DNS lookup code will fall back to IPv4..." >&2;} else OPTS="-DUSE_IPV6 ${OPTS}" fi fi for ac_func in __db185_open do as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh` echo "$as_me:$LINENO: checking for $ac_func" >&5 echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6 if eval "test \"\${$as_ac_var+set}\" = set"; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ /* Define $ac_func to an innocuous variant, in case <limits.h> declares $ac_func. For example, HP-UX 11i <limits.h> declares gettimeofday. */ #define $ac_func innocuous_$ac_func /* System header to define __stub macros and hopefully few prototypes, which can conflict with char $ac_func (); below. Prefer <limits.h> to <assert.h> if __STDC__ is defined, since <limits.h> exists even on freestanding compilers. */ #ifdef __STDC__ # include <limits.h> #else # include <assert.h> #endif #undef $ac_func /* Override any gcc2 internal prototype to avoid an error. */ #ifdef __cplusplus extern "C" { #endif /* We use char because int might match the return type of a gcc2 builtin and then its argument prototype would still apply. */ char $ac_func (); /* The GNU C library defines this for functions which it implements to always fail with ENOSYS. Some functions are actually named something starting with __ and the normal name is an alias. */ #if defined (__stub_$ac_func) || defined (__stub___$ac_func) choke me #else char (*f) () = $ac_func; #endif #ifdef __cplusplus } #endif int main () { return f != $ac_func; ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then eval "$as_ac_var=yes" else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 eval "$as_ac_var=no" fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext fi echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 if test `eval echo '${'$as_ac_var'}'` = yes; then cat >>confdefs.h <<_ACEOF #define `echo "HAVE_$ac_func" | $as_tr_cpp` 1 _ACEOF fi done if test "$ac_cv_func___db185_open" = no; then echo "$as_me:$LINENO: checking for library containing __db185_open" >&5 echo $ECHO_N "checking for library containing __db185_open... $ECHO_C" >&6 if test "${ac_cv_search___db185_open+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_func_search_save_LIBS=$LIBS ac_cv_search___db185_open=no cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ /* Override any gcc2 internal prototype to avoid an error. */ #ifdef __cplusplus extern "C" #endif /* We use char because int might match the return type of a gcc2 builtin and then its argument prototype would still apply. */ char __db185_open (); int main () { __db185_open (); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_search___db185_open="none required" else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext if test "$ac_cv_search___db185_open" = no; then for ac_lib in db3 db db1; do LIBS="-l$ac_lib $ac_func_search_save_LIBS" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ /* Override any gcc2 internal prototype to avoid an error. */ #ifdef __cplusplus extern "C" #endif /* We use char because int might match the return type of a gcc2 builtin and then its argument prototype would still apply. */ char __db185_open (); int main () { __db185_open (); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_search___db185_open="-l$ac_lib" break else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext done fi LIBS=$ac_func_search_save_LIBS fi echo "$as_me:$LINENO: result: $ac_cv_search___db185_open" >&5 echo "${ECHO_T}$ac_cv_search___db185_open" >&6 if test "$ac_cv_search___db185_open" != no; then test "$ac_cv_search___db185_open" = "none required" || LIBS="$ac_cv_search___db185_open $LIBS" fi # If found -l{db, db1, db3} is appended to our LIBS if test "$ac_cv_search___db185_open" != no; then OPTS="-DUSE_DNS ${OPTS}"; HAVE_DB="yes"; else { echo "$as_me:$LINENO: WARNING: You must have a V1.85 compatible DB library!" >&5 echo "$as_me: WARNING: You must have a V1.85 compatible DB library!" >&2;} { echo "$as_me:$LINENO: WARNING: DNS lookup code will be disabled..." >&5 echo "$as_me: WARNING: DNS lookup code will be disabled..." >&2;} fi else OPTS="-DUSE_DNS ${OPTS}"; HAVE_DB="yes" fi else OPTS="-DUSE_DNS ${OPTS}"; LIBS="-ldb ${LIBS}"; HAVE_DB="yes" fi if test "$HAVE_DB" = "yes"; then for ac_header in db_185.h db3.1/db_185.h db.h do as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` if eval "test \"\${$as_ac_Header+set}\" = set"; then echo "$as_me:$LINENO: checking for $ac_header" >&5 echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 if eval "test \"\${$as_ac_Header+set}\" = set"; then echo $ECHO_N "(cached) $ECHO_C" >&6 fi echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 else # Is the header compilable? echo "$as_me:$LINENO: checking $ac_header usability" >&5 echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6 cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default #include <$ac_header> _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_header_compiler=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_header_compiler=no fi rm -f conftest.err conftest.$ac_objext conftest.$ac_ext echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 echo "${ECHO_T}$ac_header_compiler" >&6 # Is the header present? echo "$as_me:$LINENO: checking $ac_header presence" >&5 echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6 cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include <$ac_header> _ACEOF if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null; then if test -s conftest.err; then ac_cpp_err=$ac_c_preproc_warn_flag ac_cpp_err=$ac_cpp_err$ac_c_werror_flag else ac_cpp_err= fi else ac_cpp_err=yes fi if test -z "$ac_cpp_err"; then ac_header_preproc=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_header_preproc=no fi rm -f conftest.err conftest.$ac_ext echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 echo "${ECHO_T}$ac_header_preproc" >&6 # So? What about this header? case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in yes:no: ) { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} ac_header_preproc=yes ;; no:yes:* ) { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;} ( cat <<\_ASBOX ## ------------------------------------------ ## ## Report this to the AC_PACKAGE_NAME lists. ## ## ------------------------------------------ ## _ASBOX ) | sed "s/^/$as_me: WARNING: /" >&2 ;; esac echo "$as_me:$LINENO: checking for $ac_header" >&5 echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 if eval "test \"\${$as_ac_Header+set}\" = set"; then echo $ECHO_N "(cached) $ECHO_C" >&6 else eval "$as_ac_Header=\$ac_header_preproc" fi echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 fi if test `eval echo '${'$as_ac_Header'}'` = yes; then cat >>confdefs.h <<_ACEOF #define `echo "HAVE_$ac_header" | $as_tr_cpp` 1 _ACEOF break fi done if test "$ac_cv_header_db_185_h" = no && test "$ac_cv_header_db3.1_db_185_h" = no && test "$ac_cv_header_db_h" = no; then { echo "$as_me:$LINENO: WARNING: Could not find Berkeley DB 1.85 compatibility headers!" >&5 echo "$as_me: WARNING: Could not find Berkeley DB 1.85 compatibility headers!" >&2;}; { echo "$as_me:$LINENO: WARNING: DNS lookup code will be disabled..." >&5 echo "$as_me: WARNING: DNS lookup code will be disabled..." >&2;}; HAVE_DB=""; fi for ac_header in errno.h do as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` if eval "test \"\${$as_ac_Header+set}\" = set"; then echo "$as_me:$LINENO: checking for $ac_header" >&5 echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 if eval "test \"\${$as_ac_Header+set}\" = set"; then echo $ECHO_N "(cached) $ECHO_C" >&6 fi echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 else # Is the header compilable? echo "$as_me:$LINENO: checking $ac_header usability" >&5 echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6 cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default #include <$ac_header> _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_header_compiler=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_header_compiler=no fi rm -f conftest.err conftest.$ac_objext conftest.$ac_ext echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 echo "${ECHO_T}$ac_header_compiler" >&6 # Is the header present? echo "$as_me:$LINENO: checking $ac_header presence" >&5 echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6 cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include <$ac_header> _ACEOF if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null; then if test -s conftest.err; then ac_cpp_err=$ac_c_preproc_warn_flag ac_cpp_err=$ac_cpp_err$ac_c_werror_flag else ac_cpp_err= fi else ac_cpp_err=yes fi if test -z "$ac_cpp_err"; then ac_header_preproc=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_header_preproc=no fi rm -f conftest.err conftest.$ac_ext echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 echo "${ECHO_T}$ac_header_preproc" >&6 # So? What about this header? case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in yes:no: ) { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} ac_header_preproc=yes ;; no:yes:* ) { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;} ( cat <<\_ASBOX ## ------------------------------------------ ## ## Report this to the AC_PACKAGE_NAME lists. ## ## ------------------------------------------ ## _ASBOX ) | sed "s/^/$as_me: WARNING: /" >&2 ;; esac echo "$as_me:$LINENO: checking for $ac_header" >&5 echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 if eval "test \"\${$as_ac_Header+set}\" = set"; then echo $ECHO_N "(cached) $ECHO_C" >&6 else eval "$as_ac_Header=\$ac_header_preproc" fi echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 fi if test `eval echo '${'$as_ac_Header'}'` = yes; then cat >>confdefs.h <<_ACEOF #define `echo "HAVE_$ac_header" | $as_tr_cpp` 1 _ACEOF fi done fi for ac_func in socket do as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh` echo "$as_me:$LINENO: checking for $ac_func" >&5 echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6 if eval "test \"\${$as_ac_var+set}\" = set"; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ /* Define $ac_func to an innocuous variant, in case <limits.h> declares $ac_func. For example, HP-UX 11i <limits.h> declares gettimeofday. */ #define $ac_func innocuous_$ac_func /* System header to define __stub macros and hopefully few prototypes, which can conflict with char $ac_func (); below. Prefer <limits.h> to <assert.h> if __STDC__ is defined, since <limits.h> exists even on freestanding compilers. */ #ifdef __STDC__ # include <limits.h> #else # include <assert.h> #endif #undef $ac_func /* Override any gcc2 internal prototype to avoid an error. */ #ifdef __cplusplus extern "C" { #endif /* We use char because int might match the return type of a gcc2 builtin and then its argument prototype would still apply. */ char $ac_func (); /* The GNU C library defines this for functions which it implements to always fail with ENOSYS. Some functions are actually named something starting with __ and the normal name is an alias. */ #if defined (__stub_$ac_func) || defined (__stub___$ac_func) choke me #else char (*f) () = $ac_func; #endif #ifdef __cplusplus } #endif int main () { return f != $ac_func; ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then eval "$as_ac_var=yes" else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 eval "$as_ac_var=no" fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext fi echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 if test `eval echo '${'$as_ac_var'}'` = yes; then cat >>confdefs.h <<_ACEOF #define `echo "HAVE_$ac_func" | $as_tr_cpp` 1 _ACEOF fi done if test "$ac_cv_func_socket" = no; then echo "$as_me:$LINENO: checking for main in -lsocket" >&5 echo $ECHO_N "checking for main in -lsocket... $ECHO_C" >&6 if test "${ac_cv_lib_socket_main+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lsocket $LIBS" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { main (); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_lib_socket_main=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_lib_socket_main=no fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi echo "$as_me:$LINENO: result: $ac_cv_lib_socket_main" >&5 echo "${ECHO_T}$ac_cv_lib_socket_main" >&6 if test $ac_cv_lib_socket_main = yes; then LIBS="-lsocket ${LIBS}"; fi fi for ac_header in sys/socket.h do as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` if eval "test \"\${$as_ac_Header+set}\" = set"; then echo "$as_me:$LINENO: checking for $ac_header" >&5 echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 if eval "test \"\${$as_ac_Header+set}\" = set"; then echo $ECHO_N "(cached) $ECHO_C" >&6 fi echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 else # Is the header compilable? echo "$as_me:$LINENO: checking $ac_header usability" >&5 echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6 cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default #include <$ac_header> _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_header_compiler=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_header_compiler=no fi rm -f conftest.err conftest.$ac_objext conftest.$ac_ext echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 echo "${ECHO_T}$ac_header_compiler" >&6 # Is the header present? echo "$as_me:$LINENO: checking $ac_header presence" >&5 echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6 cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include <$ac_header> _ACEOF if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null; then if test -s conftest.err; then ac_cpp_err=$ac_c_preproc_warn_flag ac_cpp_err=$ac_cpp_err$ac_c_werror_flag else ac_cpp_err= fi else ac_cpp_err=yes fi if test -z "$ac_cpp_err"; then ac_header_preproc=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_header_preproc=no fi rm -f conftest.err conftest.$ac_ext echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 echo "${ECHO_T}$ac_header_preproc" >&6 # So? What about this header? case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in yes:no: ) { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} ac_header_preproc=yes ;; no:yes:* ) { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;} ( cat <<\_ASBOX ## ------------------------------------------ ## ## Report this to the AC_PACKAGE_NAME lists. ## ## ------------------------------------------ ## _ASBOX ) | sed "s/^/$as_me: WARNING: /" >&2 ;; esac echo "$as_me:$LINENO: checking for $ac_header" >&5 echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 if eval "test \"\${$as_ac_Header+set}\" = set"; then echo $ECHO_N "(cached) $ECHO_C" >&6 else eval "$as_ac_Header=\$ac_header_preproc" fi echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 fi if test `eval echo '${'$as_ac_Header'}'` = yes; then cat >>confdefs.h <<_ACEOF #define `echo "HAVE_$ac_header" | $as_tr_cpp` 1 _ACEOF fi done #On my Debian sarge system it just compiles without this. I really don't know what its use is. #AC_CHECK_LIB(nsl, main, LIBS="-lnsl ${LIBS}") fi echo "$as_me:$LINENO: checking for main in -l44bsd" >&5 echo $ECHO_N "checking for main in -l44bsd... $ECHO_C" >&6 if test "${ac_cv_lib_44bsd_main+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-l44bsd $LIBS" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { main (); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_lib_44bsd_main=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_lib_44bsd_main=no fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi echo "$as_me:$LINENO: result: $ac_cv_lib_44bsd_main" >&5 echo "${ECHO_T}$ac_cv_lib_44bsd_main" >&6 if test $ac_cv_lib_44bsd_main = yes; then LIBS="-l44bsd ${LIBS}" fi echo "$as_me:$LINENO: checking for main in -lm" >&5 echo $ECHO_N "checking for main in -lm... $ECHO_C" >&6 if test "${ac_cv_lib_m_main+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lm $LIBS" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { main (); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_lib_m_main=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_lib_m_main=no fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi echo "$as_me:$LINENO: result: $ac_cv_lib_m_main" >&5 echo "${ECHO_T}$ac_cv_lib_m_main" >&6 if test $ac_cv_lib_m_main = yes; then HAVE_LIBM="1"; LIBS="-lm ${LIBS}" fi echo "$as_me:$LINENO: checking for main in -lz" >&5 echo $ECHO_N "checking for main in -lz... $ECHO_C" >&6 if test "${ac_cv_lib_z_main+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lz $LIBS" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { main (); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_lib_z_main=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_lib_z_main=no fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi echo "$as_me:$LINENO: result: $ac_cv_lib_z_main" >&5 echo "${ECHO_T}$ac_cv_lib_z_main" >&6 if test $ac_cv_lib_z_main = yes; then LIBZ="yes" else LIBZ="no" fi if test "$LIBZ" = "no"; then { { echo "$as_me:$LINENO: error: z library not found... please install zlib." >&5 echo "$as_me: error: z library not found... please install zlib." >&2;} { (exit 1); exit 1; }; } else echo "$as_me:$LINENO: checking for gzrewind in -lz" >&5 echo $ECHO_N "checking for gzrewind in -lz... $ECHO_C" >&6 if test "${ac_cv_lib_z_gzrewind+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lz $LIBS" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ /* Override any gcc2 internal prototype to avoid an error. */ #ifdef __cplusplus extern "C" #endif /* We use char because int might match the return type of a gcc2 builtin and then its argument prototype would still apply. */ char gzrewind (); int main () { gzrewind (); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_lib_z_gzrewind=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_lib_z_gzrewind=no fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi echo "$as_me:$LINENO: result: $ac_cv_lib_z_gzrewind" >&5 echo "${ECHO_T}$ac_cv_lib_z_gzrewind" >&6 if test $ac_cv_lib_z_gzrewind = yes; then LIBS="-lz ${LIBS}" else LIBZ="no" fi if test "$LIBZ" = "no"; then { { echo "$as_me:$LINENO: error: Old version of zlib found" >&5 echo "$as_me: error: Old version of zlib found" >&2;} { (exit please upgrade!); exit please upgrade!; }; } fi fi found="no" for ac_header in iconv.h do as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` if eval "test \"\${$as_ac_Header+set}\" = set"; then echo "$as_me:$LINENO: checking for $ac_header" >&5 echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 if eval "test \"\${$as_ac_Header+set}\" = set"; then echo $ECHO_N "(cached) $ECHO_C" >&6 fi echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 else # Is the header compilable? echo "$as_me:$LINENO: checking $ac_header usability" >&5 echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6 cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default #include <$ac_header> _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_header_compiler=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_header_compiler=no fi rm -f conftest.err conftest.$ac_objext conftest.$ac_ext echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 echo "${ECHO_T}$ac_header_compiler" >&6 # Is the header present? echo "$as_me:$LINENO: checking $ac_header presence" >&5 echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6 cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include <$ac_header> _ACEOF if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null; then if test -s conftest.err; then ac_cpp_err=$ac_c_preproc_warn_flag ac_cpp_err=$ac_cpp_err$ac_c_werror_flag else ac_cpp_err= fi else ac_cpp_err=yes fi if test -z "$ac_cpp_err"; then ac_header_preproc=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_header_preproc=no fi rm -f conftest.err conftest.$ac_ext echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 echo "${ECHO_T}$ac_header_preproc" >&6 # So? What about this header? case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in yes:no: ) { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} ac_header_preproc=yes ;; no:yes:* ) { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;} ( cat <<\_ASBOX ## ------------------------------------------ ## ## Report this to the AC_PACKAGE_NAME lists. ## ## ------------------------------------------ ## _ASBOX ) | sed "s/^/$as_me: WARNING: /" >&2 ;; esac echo "$as_me:$LINENO: checking for $ac_header" >&5 echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 if eval "test \"\${$as_ac_Header+set}\" = set"; then echo $ECHO_N "(cached) $ECHO_C" >&6 else eval "$as_ac_Header=\$ac_header_preproc" fi echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 fi if test `eval echo '${'$as_ac_Header'}'` = yes; then cat >>confdefs.h <<_ACEOF #define `echo "HAVE_$ac_header" | $as_tr_cpp` 1 _ACEOF fi done if test "$ac_cv_header_iconv_h" = yes; then for ac_func in iconv_open do as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh` echo "$as_me:$LINENO: checking for $ac_func" >&5 echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6 if eval "test \"\${$as_ac_var+set}\" = set"; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ /* Define $ac_func to an innocuous variant, in case <limits.h> declares $ac_func. For example, HP-UX 11i <limits.h> declares gettimeofday. */ #define $ac_func innocuous_$ac_func /* System header to define __stub macros and hopefully few prototypes, which can conflict with char $ac_func (); below. Prefer <limits.h> to <assert.h> if __STDC__ is defined, since <limits.h> exists even on freestanding compilers. */ #ifdef __STDC__ # include <limits.h> #else # include <assert.h> #endif #undef $ac_func /* Override any gcc2 internal prototype to avoid an error. */ #ifdef __cplusplus extern "C" { #endif /* We use char because int might match the return type of a gcc2 builtin and then its argument prototype would still apply. */ char $ac_func (); /* The GNU C library defines this for functions which it implements to always fail with ENOSYS. Some functions are actually named something starting with __ and the normal name is an alias. */ #if defined (__stub_$ac_func) || defined (__stub___$ac_func) choke me #else char (*f) () = $ac_func; #endif #ifdef __cplusplus } #endif int main () { return f != $ac_func; ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then eval "$as_ac_var=yes" else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 eval "$as_ac_var=no" fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext fi echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 if test `eval echo '${'$as_ac_var'}'` = yes; then cat >>confdefs.h <<_ACEOF #define `echo "HAVE_$ac_func" | $as_tr_cpp` 1 _ACEOF fi done if test "$ac_cv_func_iconv_open" = no; then # We assume it is in -liconv LIBS="-liconv ${LIBS}"; found="yes"; else found="yes"; fi fi if test "$found" = "no"; then { { echo "$as_me:$LINENO: error: Your system doesn't support UNIX98 iconv. Aborting!" >&5 echo "$as_me: error: Your system doesn't support UNIX98 iconv. Aborting!" >&2;} { (exit 1); exit 1; }; } fi found="no" for ac_header in libintl.h do as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` if eval "test \"\${$as_ac_Header+set}\" = set"; then echo "$as_me:$LINENO: checking for $ac_header" >&5 echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 if eval "test \"\${$as_ac_Header+set}\" = set"; then echo $ECHO_N "(cached) $ECHO_C" >&6 fi echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 else # Is the header compilable? echo "$as_me:$LINENO: checking $ac_header usability" >&5 echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6 cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default #include <$ac_header> _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_header_compiler=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_header_compiler=no fi rm -f conftest.err conftest.$ac_objext conftest.$ac_ext echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 echo "${ECHO_T}$ac_header_compiler" >&6 # Is the header present? echo "$as_me:$LINENO: checking $ac_header presence" >&5 echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6 cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include <$ac_header> _ACEOF if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null; then if test -s conftest.err; then ac_cpp_err=$ac_c_preproc_warn_flag ac_cpp_err=$ac_cpp_err$ac_c_werror_flag else ac_cpp_err= fi else ac_cpp_err=yes fi if test -z "$ac_cpp_err"; then ac_header_preproc=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_header_preproc=no fi rm -f conftest.err conftest.$ac_ext echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 echo "${ECHO_T}$ac_header_preproc" >&6 # So? What about this header? case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in yes:no: ) { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} ac_header_preproc=yes ;; no:yes:* ) { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;} ( cat <<\_ASBOX ## ------------------------------------------ ## ## Report this to the AC_PACKAGE_NAME lists. ## ## ------------------------------------------ ## _ASBOX ) | sed "s/^/$as_me: WARNING: /" >&2 ;; esac echo "$as_me:$LINENO: checking for $ac_header" >&5 echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 if eval "test \"\${$as_ac_Header+set}\" = set"; then echo $ECHO_N "(cached) $ECHO_C" >&6 else eval "$as_ac_Header=\$ac_header_preproc" fi echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 fi if test `eval echo '${'$as_ac_Header'}'` = yes; then cat >>confdefs.h <<_ACEOF #define `echo "HAVE_$ac_header" | $as_tr_cpp` 1 _ACEOF fi done if test "$ac_cv_header_libintl_h" = yes; then for ac_func in gettext do as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh` echo "$as_me:$LINENO: checking for $ac_func" >&5 echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6 if eval "test \"\${$as_ac_var+set}\" = set"; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ /* Define $ac_func to an innocuous variant, in case <limits.h> declares $ac_func. For example, HP-UX 11i <limits.h> declares gettimeofday. */ #define $ac_func innocuous_$ac_func /* System header to define __stub macros and hopefully few prototypes, which can conflict with char $ac_func (); below. Prefer <limits.h> to <assert.h> if __STDC__ is defined, since <limits.h> exists even on freestanding compilers. */ #ifdef __STDC__ # include <limits.h> #else # include <assert.h> #endif #undef $ac_func /* Override any gcc2 internal prototype to avoid an error. */ #ifdef __cplusplus extern "C" { #endif /* We use char because int might match the return type of a gcc2 builtin and then its argument prototype would still apply. */ char $ac_func (); /* The GNU C library defines this for functions which it implements to always fail with ENOSYS. Some functions are actually named something starting with __ and the normal name is an alias. */ #if defined (__stub_$ac_func) || defined (__stub___$ac_func) choke me #else char (*f) () = $ac_func; #endif #ifdef __cplusplus } #endif int main () { return f != $ac_func; ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then eval "$as_ac_var=yes" else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 eval "$as_ac_var=no" fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext fi echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 if test `eval echo '${'$as_ac_var'}'` = yes; then cat >>confdefs.h <<_ACEOF #define `echo "HAVE_$ac_func" | $as_tr_cpp` 1 _ACEOF fi done if test "$ac_cv_func_gettext" = no; then echo "$as_me:$LINENO: checking for gettext in -lintl" >&5 echo $ECHO_N "checking for gettext in -lintl... $ECHO_C" >&6 if test "${ac_cv_lib_intl_gettext+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lintl $LIBS" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ /* Override any gcc2 internal prototype to avoid an error. */ #ifdef __cplusplus extern "C" #endif /* We use char because int might match the return type of a gcc2 builtin and then its argument prototype would still apply. */ char gettext (); int main () { gettext (); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_lib_intl_gettext=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_lib_intl_gettext=no fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi echo "$as_me:$LINENO: result: $ac_cv_lib_intl_gettext" >&5 echo "${ECHO_T}$ac_cv_lib_intl_gettext" >&6 if test $ac_cv_lib_intl_gettext = yes; then LIBS="-lintl ${LIBS}"; found="yes"; fi else found="yes"; fi fi if test "$found" = "no"; then { { echo "$as_me:$LINENO: error: Your system doesn't support gettext. Aborting!" >&5 echo "$as_me: error: Your system doesn't support gettext. Aborting!" >&2;} { (exit 1); exit 1; }; } fi echo "$as_me:$LINENO: checking for pthread_mutex_unlock in -lpthread" >&5 echo $ECHO_N "checking for pthread_mutex_unlock in -lpthread... $ECHO_C" >&6 if test "${ac_cv_lib_pthread_pthread_mutex_unlock+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lpthread $LIBS" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ /* Override any gcc2 internal prototype to avoid an error. */ #ifdef __cplusplus extern "C" #endif /* We use char because int might match the return type of a gcc2 builtin and then its argument prototype would still apply. */ char pthread_mutex_unlock (); int main () { pthread_mutex_unlock (); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_lib_pthread_pthread_mutex_unlock=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_lib_pthread_pthread_mutex_unlock=no fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi echo "$as_me:$LINENO: result: $ac_cv_lib_pthread_pthread_mutex_unlock" >&5 echo "${ECHO_T}$ac_cv_lib_pthread_pthread_mutex_unlock" >&6 if test $ac_cv_lib_pthread_pthread_mutex_unlock = yes; then cat >>confdefs.h <<_ACEOF #define HAVE_LIBPTHREAD 1 _ACEOF LIBS="-lpthread $LIBS" fi echo "$as_me:$LINENO: checking for main in -lpng" >&5 echo $ECHO_N "checking for main in -lpng... $ECHO_C" >&6 if test "${ac_cv_lib_png_main+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lpng $LIBS" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { main (); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_lib_png_main=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_lib_png_main=no fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi echo "$as_me:$LINENO: result: $ac_cv_lib_png_main" >&5 echo "${ECHO_T}$ac_cv_lib_png_main" >&6 if test $ac_cv_lib_png_main = yes; then LIBS="-lpng ${LIBS}" else LIBPNG="no" fi if test "$LIBPNG" = "no"; then { { echo "$as_me:$LINENO: error: png library not found... please install png." >&5 echo "$as_me: error: png library not found... please install png." >&2;} { (exit 1); exit 1; }; } fi echo "$as_me:$LINENO: checking for FT_Init_FreeType in -lfreetype" >&5 echo $ECHO_N "checking for FT_Init_FreeType in -lfreetype... $ECHO_C" >&6 if test "${ac_cv_lib_freetype_FT_Init_FreeType+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lfreetype $LIBS" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ /* Override any gcc2 internal prototype to avoid an error. */ #ifdef __cplusplus extern "C" #endif /* We use char because int might match the return type of a gcc2 builtin and then its argument prototype would still apply. */ char FT_Init_FreeType (); int main () { FT_Init_FreeType (); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_lib_freetype_FT_Init_FreeType=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_lib_freetype_FT_Init_FreeType=no fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi echo "$as_me:$LINENO: result: $ac_cv_lib_freetype_FT_Init_FreeType" >&5 echo "${ECHO_T}$ac_cv_lib_freetype_FT_Init_FreeType" >&6 if test $ac_cv_lib_freetype_FT_Init_FreeType = yes; then LIBS="-lfreetype ${LIBS}" else LIBFT="no" fi if test "$LIBFT" = "no"; then { { echo "$as_me:$LINENO: error: Freetype 2 library not found... please install it!" >&5 echo "$as_me: error: Freetype 2 library not found... please install it!" >&2;} { (exit 1); exit 1; }; } fi if test "$EXTRA_GD" = ""; then if test "$EXTRA_GDLIB" = ""; then echo "$as_me:$LINENO: checking for gdImageString in -lgd" >&5 echo $ECHO_N "checking for gdImageString in -lgd... $ECHO_C" >&6 if test "${ac_cv_lib_gd_gdImageString+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lgd $LIBS" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ /* Override any gcc2 internal prototype to avoid an error. */ #ifdef __cplusplus extern "C" #endif /* We use char because int might match the return type of a gcc2 builtin and then its argument prototype would still apply. */ char gdImageString (); int main () { gdImageString (); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_lib_gd_gdImageString=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_lib_gd_gdImageString=no fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi echo "$as_me:$LINENO: result: $ac_cv_lib_gd_gdImageString" >&5 echo "${ECHO_T}$ac_cv_lib_gd_gdImageString" >&6 if test $ac_cv_lib_gd_gdImageString = yes; then LIBS="-lgd ${LIBS}"; HAVE_LIBGD="yes" else HAVE_LIBGD="" fi fi fi if test "$HAVE_LIBGD" = ""; then echo "$as_me:$LINENO: checking for libgd.a" >&5 echo $ECHO_N "checking for libgd.a... $ECHO_C" >&6 if test "${ac_cv_GDLOC+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_cv_GDLOC="" fi INPATH=$ac_cv_GDLOC if test "$INPATH" = ""; then for i in ${PREFIX}/lib ${PREFIX}/lib/gd /usr/local/lib /usr/local/lib/gd /usr/local/gd /usr/local/include /usr/local/include/gd /usr/lib/gd /usr/lib /lib ./ ./gd ../gd ${EXTRA_GDLIB} ${EXTRA_GD}; do if test -f "$i/libgd.a"; then INPATH=$i fi done fi if test "$INPATH" = ""; then echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 GDLOC="" else echo "$as_me:$LINENO: result: $INPATH" >&5 echo "${ECHO_T}$INPATH" >&6 GDLOC=$INPATH fi ac_cv_GDLOC=$GDLOC if test "$GDLOC" = ""; then echo "$as_me:$LINENO: checking for libgd.so" >&5 echo $ECHO_N "checking for libgd.so... $ECHO_C" >&6 if test "${ac_cv_GDLOC+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_cv_GDLOC="" fi INPATH=$ac_cv_GDLOC if test "$INPATH" = ""; then for i in ${PREFIX}/lib ${PREFIX}/lib/gd /usr/local/lib /usr/local/lib/gd /usr/local/gd /usr/local/include /usr/local/include/gd /usr/lib/gd /usr/lib /lib ./ ./gd ../gd ${EXTRA_GDLIB} ${EXTRA_GD}; do if test -f "$i/libgd.so"; then INPATH=$i fi done fi if test "$INPATH" = ""; then echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 GDLOC="" else echo "$as_me:$LINENO: result: $INPATH" >&5 echo "${ECHO_T}$INPATH" >&6 GDLOC=$INPATH fi ac_cv_GDLOC=$GDLOC fi if test "$GDLOC" = ""; then { { echo "$as_me:$LINENO: error: gd library not found... please install gd." >&5 echo "$as_me: error: gd library not found... please install gd." >&2;} { (exit 1); exit 1; }; } else LIBS="-lgd ${LIBS}" LDFLAGS="-L${GDLOC} ${LDFLAGS}" fi fi echo "$as_me:$LINENO: checking for gdImageStringFT" >&5 echo $ECHO_N "checking for gdImageStringFT... $ECHO_C" >&6 if test "${ac_cv_func_gdImageStringFT+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ /* Define gdImageStringFT to an innocuous variant, in case <limits.h> declares gdImageStringFT. For example, HP-UX 11i <limits.h> declares gettimeofday. */ #define gdImageStringFT innocuous_gdImageStringFT /* System header to define __stub macros and hopefully few prototypes, which can conflict with char gdImageStringFT (); below. Prefer <limits.h> to <assert.h> if __STDC__ is defined, since <limits.h> exists even on freestanding compilers. */ #ifdef __STDC__ # include <limits.h> #else # include <assert.h> #endif #undef gdImageStringFT /* Override any gcc2 internal prototype to avoid an error. */ #ifdef __cplusplus extern "C" { #endif /* We use char because int might match the return type of a gcc2 builtin and then its argument prototype would still apply. */ char gdImageStringFT (); /* The GNU C library defines this for functions which it implements to always fail with ENOSYS. Some functions are actually named something starting with __ and the normal name is an alias. */ #if defined (__stub_gdImageStringFT) || defined (__stub___gdImageStringFT) choke me #else char (*f) () = gdImageStringFT; #endif #ifdef __cplusplus } #endif int main () { return f != gdImageStringFT; ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_func_gdImageStringFT=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_func_gdImageStringFT=no fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext fi echo "$as_me:$LINENO: result: $ac_cv_func_gdImageStringFT" >&5 echo "${ECHO_T}$ac_cv_func_gdImageStringFT" >&6 if test $ac_cv_func_gdImageStringFT = yes; then : else { { echo "$as_me:$LINENO: error: The Webdruid requires gd >= 1.8.4" >&5 echo "$as_me: error: The Webdruid requires gd >= 1.8.4" >&2;} { (exit 1); exit 1; }; } fi echo "$as_me:$LINENO: checking for gd.h" >&5 echo $ECHO_N "checking for gd.h... $ECHO_C" >&6 if test "${ac_cv_GDLIB+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_cv_GDLIB="" fi INPATH=$ac_cv_GDLIB if test "$INPATH" = ""; then for i in ${PREFIX}/include ${PREFIX}/include/gd /usr/local/include/gd /usr/local/include /usr/include/gd /usr/include /include/gd /include ./ ./gd ../gd ${EXTRA_GD} ${EXTRA_GDLIB}; do if test -f "$i/gd.h"; then INPATH=$i fi done fi if test "$INPATH" = ""; then echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 GDLIB="" else echo "$as_me:$LINENO: result: $INPATH" >&5 echo "${ECHO_T}$INPATH" >&6 GDLIB=$INPATH fi ac_cv_GDLIB=$GDLIB if test "$GDLIB" = ""; then { { echo "$as_me:$LINENO: error: gd headers not found... please install gd." >&5 echo "$as_me: error: gd headers not found... please install gd." >&2;} { (exit 1); exit 1; }; } fi for ac_header in getopt.h do as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` if eval "test \"\${$as_ac_Header+set}\" = set"; then echo "$as_me:$LINENO: checking for $ac_header" >&5 echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 if eval "test \"\${$as_ac_Header+set}\" = set"; then echo $ECHO_N "(cached) $ECHO_C" >&6 fi echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 else # Is the header compilable? echo "$as_me:$LINENO: checking $ac_header usability" >&5 echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6 cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default #include <$ac_header> _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_header_compiler=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_header_compiler=no fi rm -f conftest.err conftest.$ac_objext conftest.$ac_ext echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 echo "${ECHO_T}$ac_header_compiler" >&6 # Is the header present? echo "$as_me:$LINENO: checking $ac_header presence" >&5 echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6 cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include <$ac_header> _ACEOF if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null; then if test -s conftest.err; then ac_cpp_err=$ac_c_preproc_warn_flag ac_cpp_err=$ac_cpp_err$ac_c_werror_flag else ac_cpp_err= fi else ac_cpp_err=yes fi if test -z "$ac_cpp_err"; then ac_header_preproc=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_header_preproc=no fi rm -f conftest.err conftest.$ac_ext echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 echo "${ECHO_T}$ac_header_preproc" >&6 # So? What about this header? case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in yes:no: ) { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} ac_header_preproc=yes ;; no:yes:* ) { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;} ( cat <<\_ASBOX ## ------------------------------------------ ## ## Report this to the AC_PACKAGE_NAME lists. ## ## ------------------------------------------ ## _ASBOX ) | sed "s/^/$as_me: WARNING: /" >&2 ;; esac echo "$as_me:$LINENO: checking for $ac_header" >&5 echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 if eval "test \"\${$as_ac_Header+set}\" = set"; then echo $ECHO_N "(cached) $ECHO_C" >&6 else eval "$as_ac_Header=\$ac_header_preproc" fi echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 fi if test `eval echo '${'$as_ac_Header'}'` = yes; then cat >>confdefs.h <<_ACEOF #define `echo "HAVE_$ac_header" | $as_tr_cpp` 1 _ACEOF fi done if test "$HAVE_LIBM" = "1"; then for ac_header in math.h do as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` if eval "test \"\${$as_ac_Header+set}\" = set"; then echo "$as_me:$LINENO: checking for $ac_header" >&5 echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 if eval "test \"\${$as_ac_Header+set}\" = set"; then echo $ECHO_N "(cached) $ECHO_C" >&6 fi echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 else # Is the header compilable? echo "$as_me:$LINENO: checking $ac_header usability" >&5 echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6 cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default #include <$ac_header> _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_header_compiler=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_header_compiler=no fi rm -f conftest.err conftest.$ac_objext conftest.$ac_ext echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 echo "${ECHO_T}$ac_header_compiler" >&6 # Is the header present? echo "$as_me:$LINENO: checking $ac_header presence" >&5 echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6 cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include <$ac_header> _ACEOF if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null; then if test -s conftest.err; then ac_cpp_err=$ac_c_preproc_warn_flag ac_cpp_err=$ac_cpp_err$ac_c_werror_flag else ac_cpp_err= fi else ac_cpp_err=yes fi if test -z "$ac_cpp_err"; then ac_header_preproc=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_header_preproc=no fi rm -f conftest.err conftest.$ac_ext echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 echo "${ECHO_T}$ac_header_preproc" >&6 # So? What about this header? case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in yes:no: ) { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} ac_header_preproc=yes ;; no:yes:* ) { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;} ( cat <<\_ASBOX ## ------------------------------------------ ## ## Report this to the AC_PACKAGE_NAME lists. ## ## ------------------------------------------ ## _ASBOX ) | sed "s/^/$as_me: WARNING: /" >&2 ;; esac echo "$as_me:$LINENO: checking for $ac_header" >&5 echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 if eval "test \"\${$as_ac_Header+set}\" = set"; then echo $ECHO_N "(cached) $ECHO_C" >&6 else eval "$as_ac_Header=\$ac_header_preproc" fi echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 fi if test `eval echo '${'$as_ac_Header'}'` = yes; then cat >>confdefs.h <<_ACEOF #define `echo "HAVE_$ac_header" | $as_tr_cpp` 1 _ACEOF fi done fi #AM_GNU_GETTEXT localedir=${datadir}/locale ac_config_files="$ac_config_files Makefile" cat >confcache <<\_ACEOF # This file is a shell script that caches the results of configure # tests run on this system so they can be shared between configure # scripts and configure runs, see configure's option --config-cache. # It is not useful on other systems. If it contains results you don't # want to keep, you may remove or edit it. # # config.status only pays attention to the cache file if you give it # the --recheck option to rerun configure. # # `ac_cv_env_foo' variables (set or unset) will be overridden when # loading this file, other *unset* `ac_cv_foo' will be assigned the # following values. _ACEOF # The following way of writing the cache mishandles newlines in values, # but we know of no workaround that is simple, portable, and efficient. # So, don't put newlines in cache variables' values. # Ultrix sh set writes to stderr and can't be redirected directly, # and sets the high bit in the cache file unless we assign to the vars. { (set) 2>&1 | case `(ac_space=' '; set | grep ac_space) 2>&1` in *ac_space=\ *) # `set' does not quote correctly, so add quotes (double-quote # substitution turns \\\\ into \\, and sed turns \\ into \). sed -n \ "s/'/'\\\\''/g; s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p" ;; *) # `set' quotes correctly as required by POSIX, so do not add quotes. sed -n \ "s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1=\\2/p" ;; esac; } | sed ' t clear : clear s/^\([^=]*\)=\(.*[{}].*\)$/test "${\1+set}" = set || &/ t end /^ac_cv_env/!s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/ : end' >>confcache if diff $cache_file confcache >/dev/null 2>&1; then :; else if test -w $cache_file; then test "x$cache_file" != "x/dev/null" && echo "updating cache $cache_file" cat confcache >$cache_file else echo "not updating unwritable cache $cache_file" fi fi rm -f confcache test "x$prefix" = xNONE && prefix=$ac_default_prefix # Let make expand exec_prefix. test "x$exec_prefix" = xNONE && exec_prefix='${prefix}' # VPATH may cause trouble with some makes, so we remove $(srcdir), # ${srcdir} and @srcdir@ from VPATH if srcdir is ".", strip leading and # trailing colons and then remove the whole line if VPATH becomes empty # (actually we leave an empty line to preserve line numbers). if test "x$srcdir" = x.; then ac_vpsub='/^[ ]*VPATH[ ]*=/{ s/:*\$(srcdir):*/:/; s/:*\${srcdir}:*/:/; s/:*@srcdir@:*/:/; s/^\([^=]*=[ ]*\):*/\1/; s/:*$//; s/^[^=]*=[ ]*$//; }' fi DEFS=-DHAVE_CONFIG_H ac_libobjs= ac_ltlibobjs= for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue # 1. Remove the extension, and $U if already installed. ac_i=`echo "$ac_i" | sed 's/\$U\././;s/\.o$//;s/\.obj$//'` # 2. Add them. ac_libobjs="$ac_libobjs $ac_i\$U.$ac_objext" ac_ltlibobjs="$ac_ltlibobjs $ac_i"'$U.lo' done LIBOBJS=$ac_libobjs LTLIBOBJS=$ac_ltlibobjs : ${CONFIG_STATUS=./config.status} ac_clean_files_save=$ac_clean_files ac_clean_files="$ac_clean_files $CONFIG_STATUS" { echo "$as_me:$LINENO: creating $CONFIG_STATUS" >&5 echo "$as_me: creating $CONFIG_STATUS" >&6;} cat >$CONFIG_STATUS <<_ACEOF #! $SHELL # Generated by $as_me. # Run this file to recreate the current configuration. # Compiler output produced by configure, useful for debugging # configure, is in config.log if it exists. debug=false ac_cs_recheck=false ac_cs_silent=false SHELL=\${CONFIG_SHELL-$SHELL} _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF ## --------------------- ## ## M4sh Initialization. ## ## --------------------- ## # Be Bourne compatible if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then emulate sh NULLCMD=: # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which # is contrary to our usage. Disable this feature. alias -g '${1+"$@"}'='"$@"' elif test -n "${BASH_VERSION+set}" && (set -o posix) >/dev/null 2>&1; then set -o posix fi DUALCASE=1; export DUALCASE # for MKS sh # Support unset when possible. if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then as_unset=unset else as_unset=false fi # Work around bugs in pre-3.0 UWIN ksh. $as_unset ENV MAIL MAILPATH PS1='$ ' PS2='> ' PS4='+ ' # NLS nuisances. for as_var in \ LANG LANGUAGE LC_ADDRESS LC_ALL LC_COLLATE LC_CTYPE LC_IDENTIFICATION \ LC_MEASUREMENT LC_MESSAGES LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER \ LC_TELEPHONE LC_TIME do if (set +x; test -z "`(eval $as_var=C; export $as_var) 2>&1`"); then eval $as_var=C; export $as_var else $as_unset $as_var fi done # Required to use basename. if expr a : '\(a\)' >/dev/null 2>&1; then as_expr=expr else as_expr=false fi if (basename /) >/dev/null 2>&1 && test "X`basename / 2>&1`" = "X/"; then as_basename=basename else as_basename=false fi # Name of the executable. as_me=`$as_basename "$0" || $as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ X"$0" : 'X\(//\)$' \| \ X"$0" : 'X\(/\)$' \| \ . : '\(.\)' 2>/dev/null || echo X/"$0" | sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/; q; } /^X\/\(\/\/\)$/{ s//\1/; q; } /^X\/\(\/\).*/{ s//\1/; q; } s/.*/./; q'` # PATH needs CR, and LINENO needs CR and PATH. # Avoid depending upon Character Ranges. as_cr_letters='abcdefghijklmnopqrstuvwxyz' as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' as_cr_Letters=$as_cr_letters$as_cr_LETTERS as_cr_digits='0123456789' as_cr_alnum=$as_cr_Letters$as_cr_digits # The user is always right. if test "${PATH_SEPARATOR+set}" != set; then echo "#! /bin/sh" >conf$$.sh echo "exit 0" >>conf$$.sh chmod +x conf$$.sh if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then PATH_SEPARATOR=';' else PATH_SEPARATOR=: fi rm -f conf$$.sh fi as_lineno_1=$LINENO as_lineno_2=$LINENO as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null` test "x$as_lineno_1" != "x$as_lineno_2" && test "x$as_lineno_3" = "x$as_lineno_2" || { # Find who we are. Look in the path if we contain no path at all # relative or not. case $0 in *[\\/]* ) as_myself=$0 ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break done ;; esac # We did not find ourselves, most probably we were run as `sh COMMAND' # in which case we are not to be found in the path. if test "x$as_myself" = x; then as_myself=$0 fi if test ! -f "$as_myself"; then { { echo "$as_me:$LINENO: error: cannot find myself; rerun with an absolute path" >&5 echo "$as_me: error: cannot find myself; rerun with an absolute path" >&2;} { (exit 1); exit 1; }; } fi case $CONFIG_SHELL in '') as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for as_base in sh bash ksh sh5; do case $as_dir in /*) if ("$as_dir/$as_base" -c ' as_lineno_1=$LINENO as_lineno_2=$LINENO as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null` test "x$as_lineno_1" != "x$as_lineno_2" && test "x$as_lineno_3" = "x$as_lineno_2" ') 2>/dev/null; then $as_unset BASH_ENV || test "${BASH_ENV+set}" != set || { BASH_ENV=; export BASH_ENV; } $as_unset ENV || test "${ENV+set}" != set || { ENV=; export ENV; } CONFIG_SHELL=$as_dir/$as_base export CONFIG_SHELL exec "$CONFIG_SHELL" "$0" ${1+"$@"} fi;; esac done done ;; esac # Create $as_me.lineno as a copy of $as_myself, but with $LINENO # uniformly replaced by the line number. The first 'sed' inserts a # line-number line before each line; the second 'sed' does the real # work. The second script uses 'N' to pair each line-number line # with the numbered line, and appends trailing '-' during # substitution so that $LINENO is not a special case at line end. # (Raja R Harinath suggested sed '=', and Paul Eggert wrote the # second 'sed' script. Blame Lee E. McMahon for sed's syntax. :-) sed '=' <$as_myself | sed ' N s,$,-, : loop s,^\(['$as_cr_digits']*\)\(.*\)[$]LINENO\([^'$as_cr_alnum'_]\),\1\2\1\3, t loop s,-$,, s,^['$as_cr_digits']*\n,, ' >$as_me.lineno && chmod +x $as_me.lineno || { { echo "$as_me:$LINENO: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&5 echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2;} { (exit 1); exit 1; }; } # Don't try to exec as it changes $[0], causing all sort of problems # (the dirname of $[0] is not the place where we might find the # original and so on. Autoconf is especially sensible to this). . ./$as_me.lineno # Exit status is that of the last command. exit } case `echo "testing\c"; echo 1,2,3`,`echo -n testing; echo 1,2,3` in *c*,-n*) ECHO_N= ECHO_C=' ' ECHO_T=' ' ;; *c*,* ) ECHO_N=-n ECHO_C= ECHO_T= ;; *) ECHO_N= ECHO_C='\c' ECHO_T= ;; esac if expr a : '\(a\)' >/dev/null 2>&1; then as_expr=expr else as_expr=false fi rm -f conf$$ conf$$.exe conf$$.file echo >conf$$.file if ln -s conf$$.file conf$$ 2>/dev/null; then # We could just check for DJGPP; but this test a) works b) is more generic # and c) will remain valid once DJGPP supports symlinks (DJGPP 2.04). if test -f conf$$.exe; then # Don't use ln at all; we don't have any links as_ln_s='cp -p' else as_ln_s='ln -s' fi elif ln conf$$.file conf$$ 2>/dev/null; then as_ln_s=ln else as_ln_s='cp -p' fi rm -f conf$$ conf$$.exe conf$$.file if mkdir -p . 2>/dev/null; then as_mkdir_p=: else test -d ./-p && rmdir ./-p as_mkdir_p=false fi as_executable_p="test -f" # Sed expression to map a string onto a valid CPP name. as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" # Sed expression to map a string onto a valid variable name. as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" # IFS # We need space, tab and new line, in precisely that order. as_nl=' ' IFS=" $as_nl" # CDPATH. $as_unset CDPATH exec 6>&1 # Open the log real soon, to keep \$[0] and so on meaningful, and to # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. Logging --version etc. is OK. exec 5>>config.log { echo sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX ## Running $as_me. ## _ASBOX } >&5 cat >&5 <<_CSEOF This file was extended by $as_me, which was generated by GNU Autoconf 2.59. Invocation command line was CONFIG_FILES = $CONFIG_FILES CONFIG_HEADERS = $CONFIG_HEADERS CONFIG_LINKS = $CONFIG_LINKS CONFIG_COMMANDS = $CONFIG_COMMANDS $ $0 $@ _CSEOF echo "on `(hostname || uname -n) 2>/dev/null | sed 1q`" >&5 echo >&5 _ACEOF # Files that config.status was made for. if test -n "$ac_config_files"; then echo "config_files=\"$ac_config_files\"" >>$CONFIG_STATUS fi if test -n "$ac_config_headers"; then echo "config_headers=\"$ac_config_headers\"" >>$CONFIG_STATUS fi if test -n "$ac_config_links"; then echo "config_links=\"$ac_config_links\"" >>$CONFIG_STATUS fi if test -n "$ac_config_commands"; then echo "config_commands=\"$ac_config_commands\"" >>$CONFIG_STATUS fi cat >>$CONFIG_STATUS <<\_ACEOF ac_cs_usage="\ \`$as_me' instantiates files from templates according to the current configuration. Usage: $0 [OPTIONS] [FILE]... -h, --help print this help, then exit -V, --version print version number, then exit -q, --quiet do not print progress messages -d, --debug don't remove temporary files --recheck update $as_me by reconfiguring in the same conditions --file=FILE[:TEMPLATE] instantiate the configuration file FILE --header=FILE[:TEMPLATE] instantiate the configuration header FILE Configuration files: $config_files Configuration headers: $config_headers Report bugs to <bug-autoconf@gnu.org>." _ACEOF cat >>$CONFIG_STATUS <<_ACEOF ac_cs_version="\\ config.status configured by $0, generated by GNU Autoconf 2.59, with options \\"`echo "$ac_configure_args" | sed 's/[\\""\`\$]/\\\\&/g'`\\" Copyright (C) 2003 Free Software Foundation, Inc. This config.status script is free software; the Free Software Foundation gives unlimited permission to copy, distribute and modify it." srcdir=$srcdir INSTALL="$INSTALL" _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF # If no file are specified by the user, then we need to provide default # value. By we need to know if files were specified by the user. ac_need_defaults=: while test $# != 0 do case $1 in --*=*) ac_option=`expr "x$1" : 'x\([^=]*\)='` ac_optarg=`expr "x$1" : 'x[^=]*=\(.*\)'` ac_shift=: ;; -*) ac_option=$1 ac_optarg=$2 ac_shift=shift ;; *) # This is not an option, so the user has probably given explicit # arguments. ac_option=$1 ac_need_defaults=false;; esac case $ac_option in # Handling of the options. _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r) ac_cs_recheck=: ;; --version | --vers* | -V ) echo "$ac_cs_version"; exit 0 ;; --he | --h) # Conflict between --help and --header { { echo "$as_me:$LINENO: error: ambiguous option: $1 Try \`$0 --help' for more information." >&5 echo "$as_me: error: ambiguous option: $1 Try \`$0 --help' for more information." >&2;} { (exit 1); exit 1; }; };; --help | --hel | -h ) echo "$ac_cs_usage"; exit 0 ;; --debug | --d* | -d ) debug=: ;; --file | --fil | --fi | --f ) $ac_shift CONFIG_FILES="$CONFIG_FILES $ac_optarg" ac_need_defaults=false;; --header | --heade | --head | --hea ) $ac_shift CONFIG_HEADERS="$CONFIG_HEADERS $ac_optarg" ac_need_defaults=false;; -q | -quiet | --quiet | --quie | --qui | --qu | --q \ | -silent | --silent | --silen | --sile | --sil | --si | --s) ac_cs_silent=: ;; # This is an error. -*) { { echo "$as_me:$LINENO: error: unrecognized option: $1 Try \`$0 --help' for more information." >&5 echo "$as_me: error: unrecognized option: $1 Try \`$0 --help' for more information." >&2;} { (exit 1); exit 1; }; } ;; *) ac_config_targets="$ac_config_targets $1" ;; esac shift done ac_configure_extra_args= if $ac_cs_silent; then exec 6>/dev/null ac_configure_extra_args="$ac_configure_extra_args --silent" fi _ACEOF cat >>$CONFIG_STATUS <<_ACEOF if \$ac_cs_recheck; then echo "running $SHELL $0 " $ac_configure_args \$ac_configure_extra_args " --no-create --no-recursion" >&6 exec $SHELL $0 $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion fi _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF for ac_config_target in $ac_config_targets do case "$ac_config_target" in # Handling of arguments. "Makefile" ) CONFIG_FILES="$CONFIG_FILES Makefile" ;; "config.h" ) CONFIG_HEADERS="$CONFIG_HEADERS config.h" ;; *) { { echo "$as_me:$LINENO: error: invalid argument: $ac_config_target" >&5 echo "$as_me: error: invalid argument: $ac_config_target" >&2;} { (exit 1); exit 1; }; };; esac done # If the user did not use the arguments to specify the items to instantiate, # then the envvar interface is used. Set only those that are not. # We use the long form for the default assignment because of an extremely # bizarre bug on SunOS 4.1.3. if $ac_need_defaults; then test "${CONFIG_FILES+set}" = set || CONFIG_FILES=$config_files test "${CONFIG_HEADERS+set}" = set || CONFIG_HEADERS=$config_headers fi # Have a temporary directory for convenience. Make it in the build tree # simply because there is no reason to put it here, and in addition, # creating and moving files from /tmp can sometimes cause problems. # Create a temporary directory, and hook for its removal unless debugging. $debug || { trap 'exit_status=$?; rm -rf $tmp && exit $exit_status' 0 trap '{ (exit 1); exit 1; }' 1 2 13 15 } # Create a (secure) tmp directory for tmp files. { tmp=`(umask 077 && mktemp -d -q "./confstatXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" } || { tmp=./confstat$$-$RANDOM (umask 077 && mkdir $tmp) } || { echo "$me: cannot create a temporary directory in ." >&2 { (exit 1); exit 1; } } _ACEOF cat >>$CONFIG_STATUS <<_ACEOF # # CONFIG_FILES section. # # No need to generate the scripts if there are no CONFIG_FILES. # This happens for instance when ./config.status config.h if test -n "\$CONFIG_FILES"; then # Protect against being on the right side of a sed subst in config.status. sed 's/,@/@@/; s/@,/@@/; s/,;t t\$/@;t t/; /@;t t\$/s/[\\\\&,]/\\\\&/g; s/@@/,@/; s/@@/@,/; s/@;t t\$/,;t t/' >\$tmp/subs.sed <<\\CEOF s,@SHELL@,$SHELL,;t t s,@PATH_SEPARATOR@,$PATH_SEPARATOR,;t t s,@PACKAGE_NAME@,$PACKAGE_NAME,;t t s,@PACKAGE_TARNAME@,$PACKAGE_TARNAME,;t t s,@PACKAGE_VERSION@,$PACKAGE_VERSION,;t t s,@PACKAGE_STRING@,$PACKAGE_STRING,;t t s,@PACKAGE_BUGREPORT@,$PACKAGE_BUGREPORT,;t t s,@exec_prefix@,$exec_prefix,;t t s,@prefix@,$prefix,;t t s,@program_transform_name@,$program_transform_name,;t t s,@bindir@,$bindir,;t t s,@sbindir@,$sbindir,;t t s,@libexecdir@,$libexecdir,;t t s,@datadir@,$datadir,;t t s,@sysconfdir@,$sysconfdir,;t t s,@sharedstatedir@,$sharedstatedir,;t t s,@localstatedir@,$localstatedir,;t t s,@libdir@,$libdir,;t t s,@includedir@,$includedir,;t t s,@oldincludedir@,$oldincludedir,;t t s,@infodir@,$infodir,;t t s,@mandir@,$mandir,;t t s,@build_alias@,$build_alias,;t t s,@host_alias@,$host_alias,;t t s,@target_alias@,$target_alias,;t t s,@DEFS@,$DEFS,;t t s,@ECHO_C@,$ECHO_C,;t t s,@ECHO_N@,$ECHO_N,;t t s,@ECHO_T@,$ECHO_T,;t t s,@LIBS@,$LIBS,;t t s,@OPTS@,$OPTS,;t t s,@CC@,$CC,;t t s,@CFLAGS@,$CFLAGS,;t t s,@LDFLAGS@,$LDFLAGS,;t t s,@CPPFLAGS@,$CPPFLAGS,;t t s,@ac_ct_CC@,$ac_ct_CC,;t t s,@EXEEXT@,$EXEEXT,;t t s,@OBJEXT@,$OBJEXT,;t t s,@LN_S@,$LN_S,;t t s,@INSTALL_PROGRAM@,$INSTALL_PROGRAM,;t t s,@INSTALL_SCRIPT@,$INSTALL_SCRIPT,;t t s,@INSTALL_DATA@,$INSTALL_DATA,;t t s,@CPP@,$CPP,;t t s,@EGREP@,$EGREP,;t t s,@GDLOC@,$GDLOC,;t t s,@GDLIB@,$GDLIB,;t t s,@localedir@,$localedir,;t t s,@LIBOBJS@,$LIBOBJS,;t t s,@LTLIBOBJS@,$LTLIBOBJS,;t t CEOF _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF # Split the substitutions into bite-sized pieces for seds with # small command number limits, like on Digital OSF/1 and HP-UX. ac_max_sed_lines=48 ac_sed_frag=1 # Number of current file. ac_beg=1 # First line for current file. ac_end=$ac_max_sed_lines # Line after last line for current file. ac_more_lines=: ac_sed_cmds= while $ac_more_lines; do if test $ac_beg -gt 1; then sed "1,${ac_beg}d; ${ac_end}q" $tmp/subs.sed >$tmp/subs.frag else sed "${ac_end}q" $tmp/subs.sed >$tmp/subs.frag fi if test ! -s $tmp/subs.frag; then ac_more_lines=false else # The purpose of the label and of the branching condition is to # speed up the sed processing (if there are no `@' at all, there # is no need to browse any of the substitutions). # These are the two extra sed commands mentioned above. (echo ':t /@[a-zA-Z_][a-zA-Z_0-9]*@/!b' && cat $tmp/subs.frag) >$tmp/subs-$ac_sed_frag.sed if test -z "$ac_sed_cmds"; then ac_sed_cmds="sed -f $tmp/subs-$ac_sed_frag.sed" else ac_sed_cmds="$ac_sed_cmds | sed -f $tmp/subs-$ac_sed_frag.sed" fi ac_sed_frag=`expr $ac_sed_frag + 1` ac_beg=$ac_end ac_end=`expr $ac_end + $ac_max_sed_lines` fi done if test -z "$ac_sed_cmds"; then ac_sed_cmds=cat fi fi # test -n "$CONFIG_FILES" _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF for ac_file in : $CONFIG_FILES; do test "x$ac_file" = x: && continue # Support "outfile[:infile[:infile...]]", defaulting infile="outfile.in". case $ac_file in - | *:- | *:-:* ) # input from stdin cat >$tmp/stdin ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'` ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;; *:* ) ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'` ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;; * ) ac_file_in=$ac_file.in ;; esac # Compute @srcdir@, @top_srcdir@, and @INSTALL@ for subdirectories. ac_dir=`(dirname "$ac_file") 2>/dev/null || $as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$ac_file" : 'X\(//\)[^/]' \| \ X"$ac_file" : 'X\(//\)$' \| \ X"$ac_file" : 'X\(/\)' \| \ . : '\(.\)' 2>/dev/null || echo X"$ac_file" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } /^X\(\/\/\)[^/].*/{ s//\1/; q; } /^X\(\/\/\)$/{ s//\1/; q; } /^X\(\/\).*/{ s//\1/; q; } s/.*/./; q'` { if $as_mkdir_p; then mkdir -p "$ac_dir" else as_dir="$ac_dir" as_dirs= while test ! -d "$as_dir"; do as_dirs="$as_dir $as_dirs" as_dir=`(dirname "$as_dir") 2>/dev/null || $as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$as_dir" : 'X\(//\)[^/]' \| \ X"$as_dir" : 'X\(//\)$' \| \ X"$as_dir" : 'X\(/\)' \| \ . : '\(.\)' 2>/dev/null || echo X"$as_dir" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } /^X\(\/\/\)[^/].*/{ s//\1/; q; } /^X\(\/\/\)$/{ s//\1/; q; } /^X\(\/\).*/{ s//\1/; q; } s/.*/./; q'` done test ! -n "$as_dirs" || mkdir $as_dirs fi || { { echo "$as_me:$LINENO: error: cannot create directory \"$ac_dir\"" >&5 echo "$as_me: error: cannot create directory \"$ac_dir\"" >&2;} { (exit 1); exit 1; }; }; } ac_builddir=. if test "$ac_dir" != .; then ac_dir_suffix=/`echo "$ac_dir" | sed 's,^\.[\\/],,'` # A "../" for each directory in $ac_dir_suffix. ac_top_builddir=`echo "$ac_dir_suffix" | sed 's,/[^\\/]*,../,g'` else ac_dir_suffix= ac_top_builddir= fi case $srcdir in .) # No --srcdir option. We are building in place. ac_srcdir=. if test -z "$ac_top_builddir"; then ac_top_srcdir=. else ac_top_srcdir=`echo $ac_top_builddir | sed 's,/$,,'` fi ;; [\\/]* | ?:[\\/]* ) # Absolute path. ac_srcdir=$srcdir$ac_dir_suffix; ac_top_srcdir=$srcdir ;; *) # Relative path. ac_srcdir=$ac_top_builddir$srcdir$ac_dir_suffix ac_top_srcdir=$ac_top_builddir$srcdir ;; esac # Do not use `cd foo && pwd` to compute absolute paths, because # the directories may not exist. case `pwd` in .) ac_abs_builddir="$ac_dir";; *) case "$ac_dir" in .) ac_abs_builddir=`pwd`;; [\\/]* | ?:[\\/]* ) ac_abs_builddir="$ac_dir";; *) ac_abs_builddir=`pwd`/"$ac_dir";; esac;; esac case $ac_abs_builddir in .) ac_abs_top_builddir=${ac_top_builddir}.;; *) case ${ac_top_builddir}. in .) ac_abs_top_builddir=$ac_abs_builddir;; [\\/]* | ?:[\\/]* ) ac_abs_top_builddir=${ac_top_builddir}.;; *) ac_abs_top_builddir=$ac_abs_builddir/${ac_top_builddir}.;; esac;; esac case $ac_abs_builddir in .) ac_abs_srcdir=$ac_srcdir;; *) case $ac_srcdir in .) ac_abs_srcdir=$ac_abs_builddir;; [\\/]* | ?:[\\/]* ) ac_abs_srcdir=$ac_srcdir;; *) ac_abs_srcdir=$ac_abs_builddir/$ac_srcdir;; esac;; esac case $ac_abs_builddir in .) ac_abs_top_srcdir=$ac_top_srcdir;; *) case $ac_top_srcdir in .) ac_abs_top_srcdir=$ac_abs_builddir;; [\\/]* | ?:[\\/]* ) ac_abs_top_srcdir=$ac_top_srcdir;; *) ac_abs_top_srcdir=$ac_abs_builddir/$ac_top_srcdir;; esac;; esac case $INSTALL in [\\/$]* | ?:[\\/]* ) ac_INSTALL=$INSTALL ;; *) ac_INSTALL=$ac_top_builddir$INSTALL ;; esac # Let's still pretend it is `configure' which instantiates (i.e., don't # use $as_me), people would be surprised to read: # /* config.h. Generated by config.status. */ if test x"$ac_file" = x-; then configure_input= else configure_input="$ac_file. " fi configure_input=$configure_input"Generated from `echo $ac_file_in | sed 's,.*/,,'` by configure." # First look for the input files in the build tree, otherwise in the # src tree. ac_file_inputs=`IFS=: for f in $ac_file_in; do case $f in -) echo $tmp/stdin ;; [\\/$]*) # Absolute (can't be DOS-style, as IFS=:) test -f "$f" || { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5 echo "$as_me: error: cannot find input file: $f" >&2;} { (exit 1); exit 1; }; } echo "$f";; *) # Relative if test -f "$f"; then # Build tree echo "$f" elif test -f "$srcdir/$f"; then # Source tree echo "$srcdir/$f" else # /dev/null tree { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5 echo "$as_me: error: cannot find input file: $f" >&2;} { (exit 1); exit 1; }; } fi;; esac done` || { (exit 1); exit 1; } if test x"$ac_file" != x-; then { echo "$as_me:$LINENO: creating $ac_file" >&5 echo "$as_me: creating $ac_file" >&6;} rm -f "$ac_file" fi _ACEOF cat >>$CONFIG_STATUS <<_ACEOF sed "$ac_vpsub $extrasub _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF :t /@[a-zA-Z_][a-zA-Z_0-9]*@/!b s,@configure_input@,$configure_input,;t t s,@srcdir@,$ac_srcdir,;t t s,@abs_srcdir@,$ac_abs_srcdir,;t t s,@top_srcdir@,$ac_top_srcdir,;t t s,@abs_top_srcdir@,$ac_abs_top_srcdir,;t t s,@builddir@,$ac_builddir,;t t s,@abs_builddir@,$ac_abs_builddir,;t t s,@top_builddir@,$ac_top_builddir,;t t s,@abs_top_builddir@,$ac_abs_top_builddir,;t t s,@INSTALL@,$ac_INSTALL,;t t " $ac_file_inputs | (eval "$ac_sed_cmds") >$tmp/out rm -f $tmp/stdin if test x"$ac_file" != x-; then mv $tmp/out $ac_file else cat $tmp/out rm -f $tmp/out fi done _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF # # CONFIG_HEADER section. # # These sed commands are passed to sed as "A NAME B NAME C VALUE D", where # NAME is the cpp macro being defined and VALUE is the value it is being given. # # ac_d sets the value in "#define NAME VALUE" lines. ac_dA='s,^\([ ]*\)#\([ ]*define[ ][ ]*\)' ac_dB='[ ].*$,\1#\2' ac_dC=' ' ac_dD=',;t' # ac_u turns "#undef NAME" without trailing blanks into "#define NAME VALUE". ac_uA='s,^\([ ]*\)#\([ ]*\)undef\([ ][ ]*\)' ac_uB='$,\1#\2define\3' ac_uC=' ' ac_uD=',;t' for ac_file in : $CONFIG_HEADERS; do test "x$ac_file" = x: && continue # Support "outfile[:infile[:infile...]]", defaulting infile="outfile.in". case $ac_file in - | *:- | *:-:* ) # input from stdin cat >$tmp/stdin ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'` ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;; *:* ) ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'` ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;; * ) ac_file_in=$ac_file.in ;; esac test x"$ac_file" != x- && { echo "$as_me:$LINENO: creating $ac_file" >&5 echo "$as_me: creating $ac_file" >&6;} # First look for the input files in the build tree, otherwise in the # src tree. ac_file_inputs=`IFS=: for f in $ac_file_in; do case $f in -) echo $tmp/stdin ;; [\\/$]*) # Absolute (can't be DOS-style, as IFS=:) test -f "$f" || { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5 echo "$as_me: error: cannot find input file: $f" >&2;} { (exit 1); exit 1; }; } # Do quote $f, to prevent DOS paths from being IFS'd. echo "$f";; *) # Relative if test -f "$f"; then # Build tree echo "$f" elif test -f "$srcdir/$f"; then # Source tree echo "$srcdir/$f" else # /dev/null tree { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5 echo "$as_me: error: cannot find input file: $f" >&2;} { (exit 1); exit 1; }; } fi;; esac done` || { (exit 1); exit 1; } # Remove the trailing spaces. sed 's/[ ]*$//' $ac_file_inputs >$tmp/in _ACEOF # Transform confdefs.h into two sed scripts, `conftest.defines' and # `conftest.undefs', that substitutes the proper values into # config.h.in to produce config.h. The first handles `#define' # templates, and the second `#undef' templates. # And first: Protect against being on the right side of a sed subst in # config.status. Protect against being in an unquoted here document # in config.status. rm -f conftest.defines conftest.undefs # Using a here document instead of a string reduces the quoting nightmare. # Putting comments in sed scripts is not portable. # # `end' is used to avoid that the second main sed command (meant for # 0-ary CPP macros) applies to n-ary macro definitions. # See the Autoconf documentation for `clear'. cat >confdef2sed.sed <<\_ACEOF s/[\\&,]/\\&/g s,[\\$`],\\&,g t clear : clear s,^[ ]*#[ ]*define[ ][ ]*\([^ (][^ (]*\)\(([^)]*)\)[ ]*\(.*\)$,${ac_dA}\1${ac_dB}\1\2${ac_dC}\3${ac_dD},gp t end s,^[ ]*#[ ]*define[ ][ ]*\([^ ][^ ]*\)[ ]*\(.*\)$,${ac_dA}\1${ac_dB}\1${ac_dC}\2${ac_dD},gp : end _ACEOF # If some macros were called several times there might be several times # the same #defines, which is useless. Nevertheless, we may not want to # sort them, since we want the *last* AC-DEFINE to be honored. uniq confdefs.h | sed -n -f confdef2sed.sed >conftest.defines sed 's/ac_d/ac_u/g' conftest.defines >conftest.undefs rm -f confdef2sed.sed # This sed command replaces #undef with comments. This is necessary, for # example, in the case of _POSIX_SOURCE, which is predefined and required # on some systems where configure will not decide to define it. cat >>conftest.undefs <<\_ACEOF s,^[ ]*#[ ]*undef[ ][ ]*[a-zA-Z_][a-zA-Z_0-9]*,/* & */, _ACEOF # Break up conftest.defines because some shells have a limit on the size # of here documents, and old seds have small limits too (100 cmds). echo ' # Handle all the #define templates only if necessary.' >>$CONFIG_STATUS echo ' if grep "^[ ]*#[ ]*define" $tmp/in >/dev/null; then' >>$CONFIG_STATUS echo ' # If there are no defines, we may have an empty if/fi' >>$CONFIG_STATUS echo ' :' >>$CONFIG_STATUS rm -f conftest.tail while grep . conftest.defines >/dev/null do # Write a limited-size here document to $tmp/defines.sed. echo ' cat >$tmp/defines.sed <<CEOF' >>$CONFIG_STATUS # Speed up: don't consider the non `#define' lines. echo '/^[ ]*#[ ]*define/!b' >>$CONFIG_STATUS # Work around the forget-to-reset-the-flag bug. echo 't clr' >>$CONFIG_STATUS echo ': clr' >>$CONFIG_STATUS sed ${ac_max_here_lines}q conftest.defines >>$CONFIG_STATUS echo 'CEOF sed -f $tmp/defines.sed $tmp/in >$tmp/out rm -f $tmp/in mv $tmp/out $tmp/in ' >>$CONFIG_STATUS sed 1,${ac_max_here_lines}d conftest.defines >conftest.tail rm -f conftest.defines mv conftest.tail conftest.defines done rm -f conftest.defines echo ' fi # grep' >>$CONFIG_STATUS echo >>$CONFIG_STATUS # Break up conftest.undefs because some shells have a limit on the size # of here documents, and old seds have small limits too (100 cmds). echo ' # Handle all the #undef templates' >>$CONFIG_STATUS rm -f conftest.tail while grep . conftest.undefs >/dev/null do # Write a limited-size here document to $tmp/undefs.sed. echo ' cat >$tmp/undefs.sed <<CEOF' >>$CONFIG_STATUS # Speed up: don't consider the non `#undef' echo '/^[ ]*#[ ]*undef/!b' >>$CONFIG_STATUS # Work around the forget-to-reset-the-flag bug. echo 't clr' >>$CONFIG_STATUS echo ': clr' >>$CONFIG_STATUS sed ${ac_max_here_lines}q conftest.undefs >>$CONFIG_STATUS echo 'CEOF sed -f $tmp/undefs.sed $tmp/in >$tmp/out rm -f $tmp/in mv $tmp/out $tmp/in ' >>$CONFIG_STATUS sed 1,${ac_max_here_lines}d conftest.undefs >conftest.tail rm -f conftest.undefs mv conftest.tail conftest.undefs done rm -f conftest.undefs cat >>$CONFIG_STATUS <<\_ACEOF # Let's still pretend it is `configure' which instantiates (i.e., don't # use $as_me), people would be surprised to read: # /* config.h. Generated by config.status. */ if test x"$ac_file" = x-; then echo "/* Generated by configure. */" >$tmp/config.h else echo "/* $ac_file. Generated by configure. */" >$tmp/config.h fi cat $tmp/in >>$tmp/config.h rm -f $tmp/in if test x"$ac_file" != x-; then if diff $ac_file $tmp/config.h >/dev/null 2>&1; then { echo "$as_me:$LINENO: $ac_file is unchanged" >&5 echo "$as_me: $ac_file is unchanged" >&6;} else ac_dir=`(dirname "$ac_file") 2>/dev/null || $as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$ac_file" : 'X\(//\)[^/]' \| \ X"$ac_file" : 'X\(//\)$' \| \ X"$ac_file" : 'X\(/\)' \| \ . : '\(.\)' 2>/dev/null || echo X"$ac_file" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } /^X\(\/\/\)[^/].*/{ s//\1/; q; } /^X\(\/\/\)$/{ s//\1/; q; } /^X\(\/\).*/{ s//\1/; q; } s/.*/./; q'` { if $as_mkdir_p; then mkdir -p "$ac_dir" else as_dir="$ac_dir" as_dirs= while test ! -d "$as_dir"; do as_dirs="$as_dir $as_dirs" as_dir=`(dirname "$as_dir") 2>/dev/null || $as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$as_dir" : 'X\(//\)[^/]' \| \ X"$as_dir" : 'X\(//\)$' \| \ X"$as_dir" : 'X\(/\)' \| \ . : '\(.\)' 2>/dev/null || echo X"$as_dir" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } /^X\(\/\/\)[^/].*/{ s//\1/; q; } /^X\(\/\/\)$/{ s//\1/; q; } /^X\(\/\).*/{ s//\1/; q; } s/.*/./; q'` done test ! -n "$as_dirs" || mkdir $as_dirs fi || { { echo "$as_me:$LINENO: error: cannot create directory \"$ac_dir\"" >&5 echo "$as_me: error: cannot create directory \"$ac_dir\"" >&2;} { (exit 1); exit 1; }; }; } rm -f $ac_file mv $tmp/config.h $ac_file fi else cat $tmp/config.h rm -f $tmp/config.h fi done _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF { (exit 0); exit 0; } _ACEOF chmod +x $CONFIG_STATUS ac_clean_files=$ac_clean_files_save # configure is writing to config.log, and then calls config.status. # config.status does its own redirection, appending to config.log. # Unfortunately, on DOS this fails, as config.log is still kept open # by configure, so config.status won't be able to write to it; its # output is simply discarded. So we exec the FD to /dev/null, # effectively closing config.log, so it can be properly (re)opened and # appended to by config.status. When coming back to configure, we # need to make the FD available again. if test "$no_create" != yes; then ac_cs_success=: ac_config_status_args= test "$silent" = yes && ac_config_status_args="$ac_config_status_args --quiet" exec 5>/dev/null $SHELL $CONFIG_STATUS $ac_config_status_args || ac_cs_success=false exec 5>>config.log # Use ||, not &&, to avoid exiting from the if with $? = 1, which # would make configure fail if this is the last instruction. $ac_cs_success || { (exit 1); exit 1; } fi ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������webdruid-0.5.4.orig/sengine.c�����������������������������������������������������������������������0000644�0000000�0000000�00000066445�10066113350�016030� 0����������������������������������������������������������������������������������������������������ustar �root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* sengine.c - search engines management for The WebDruid Copyright (C) 2003-2004 Fabien Chevalier (fabien@juliana-multimedia.com) This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version, and provided that the above copyright and permission notice is included with all distributed copies of this or derived software. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA */ /* ensure sys/types */ #ifndef _SYS_TYPES_H #include <sys/types.h> #endif /* some systems need this */ #ifdef HAVE_MATH_H #include <math.h> #endif /* SunOS 4.x Fix */ #ifndef CLK_TCK #define CLK_TCK _SC_CLK_TCK #endif #include <stdlib.h> #include <stdio.h> #include <string.h> #include <ctype.h> #include <errno.h> #include <langinfo.h> /* nl_langinfo */ #include <iconv.h> /* iconv_xxxxx */ #include "webdruid.h" #include "sengine.h" #include "linklist.h" #include "hashtab.h" /* for find_url() */ #include "utils.h" #include "lang.h" /* internal structs definition */ struct lsengine { char display_name[SE_MAXDNAME + 1]; char dns_ext[SE_MAXDNSEXT + 1]; char dns_beg[SE_MAXDNSBEG + 1]; char dns_middle[SE_MAXDNSMID + 1]; char *querytag[SE_MAXQTAG]; char *charsettag; }; /* internal function prototypes */ SNODEPTR new_snode(char *); /* new search string.. */ void sengines_dump(); /* debugging purpose */ void sengine_del_shtab(SNODEPTR /* deletes given htab */ *htab); /* global variables */ int n_sengines = 0; /* number of search engines in table */ struct sengine *sp_table = NULL; /* search phrases table */ /* internal variables */ struct lsengine *engines_table = NULL; /*********************************************/ /* SENGINE_FIND - finds engine given hostname*/ /*********************************************/ /* Here we do a dichotomic search based on key 'middlename', extracted from hostname. Then we run throught the list until we find (or not) a match. returns -1 if not found */ /* used_internally by sengine_find */ int sengine_bsearch(int l, int r, char *str) { int m, t; for(;;) { m = (l + r) / 2; t = strcmp(str, engines_table[m].dns_middle); if(t == 0) return m; else if(t < 0) r = m - 1; else l = m + 1; if(l > r) return - 1; } } /*********************************************/ /* SENGINE_FIND */ /*********************************************/ /* * find engine index given hostname * */ int sengine_find(char *referrer) { char *cp1, *cp2, *cp3; int ret = -1; /* what will be returned */ int idx1, idx2; struct lsengine * current_sengine; char *hostname; if(strcmp("http://", referrer) >= 0) return ret; /* we suppose we have a wrong referrer here*/ hostname = referrer + 7; /* strip http:// */ /* keep only hostname part */ cp1 = hostname + strlen(hostname) - 1; cp3 = hostname; while((cp3 <= cp1) && (*cp3 != '/')) cp3++; if(cp3 == cp1) cp3 = hostname - 1; /* take the last '/' of http:// */ *cp3 = 0; /* erase the '/' */ /* find extension, middle, beginning of the hostname */ cp2 = hostname + strlen(hostname) - 1; while((*cp2 != '.') && (cp2 > hostname)) cp2--; if(cp2 == hostname || cp2[1] == 0) { *cp3 = '/'; /* restore referrer */ return ret; /* no point in name or point at the end of line */ } /* Here we now have at least one point, so this loop will end... */ cp1 = hostname; while(*cp1 != '.') cp1++; if( cp1 == hostname || cp1 == cp2) { *cp3 = '/'; /* restore referrer */ return ret; /* nothing before first point or only one point in name */ } /* we now split the string */ *cp1++ = 0; *cp2++ = 0; /* now hostname points to the beginning of the dns name, cp1 points to the middle, and cp2 to the extension */ idx1 = sengine_bsearch(0, n_sengines - 1, cp1); if(idx1 != -1) { /* move to first element with the selected middlename */ idx2 = idx1; while((idx1 > 0) && (strcmp(engines_table[idx1 - 1].dns_middle, engines_table[idx1].dns_middle) == 0)) idx1--; /* move to last element with the selected middlename */ while((idx2 < (n_sengines - 1)) && (strcmp(engines_table[idx2 + 1].dns_middle, engines_table[idx2].dns_middle) == 0)) idx2++; /* iterate through all elements whith matching middlename */ for(;(ret == -1) && (idx1 <= idx2); idx1++) { current_sengine = &engines_table[idx1]; if(current_sengine->dns_beg[0] == '*' || strcmp(current_sengine->dns_beg, hostname) == 0) { if(current_sengine->dns_ext[0] == '*' || strcmp(current_sengine->dns_ext, cp2) == 0) ret = idx1; } } } /* restore hostname string as it was before */ cp1[-1] = '.'; cp2[-1] = '.'; *cp3 = '/'; return ret; } /*********************************************/ /* SENGINE_SEARCH_PHRASE */ /*********************************************/ /* given engine index (returned by sengine_find), returns the string the user typed). String must be saved by caller (it is allocated in static buffer) */ char *sengine_search_phrase(int sengine_index, const char *ptr) { /* ptr should point to unescaped query string */ static char tmpbuf[MAXSRCH]; char tmpbuf2[MAXSRCH]; /* take care of growth when converting to UTF-8 -- should be enough for most of the cases */ static char tmpbuf3[MAXSRCH*4]; char srch[80]; unsigned char *cp1, *cp2, *cp3, *cps; int sp_flg=0; int ntry = 0; iconv_t iconv_h; /* iconv_handle for translation into UTF-8 */ /* for each query tag q=, MT=, ...*/ for(; engines_table[sengine_index].querytag[ntry] != NULL && ntry < SE_MAXQTAG; ntry++) { cps = engines_table[sengine_index].querytag[ntry]; /* Try to find query variable */ *srch ='?'; srch[sizeof(srch)-1] = '\0'; strncpy(srch + 1,cps,sizeof(srch)-2); /* First, try "?... " */ if ((cp1=strstr(ptr,srch))==NULL) { srch[0]='&'; /* Next, try "&..." */ if ((cp1=strstr(ptr,srch))==NULL) continue; /* If not found, split... */ } cp2=tmpbuf; while (*cp1!='=' && *cp1!=0) cp1++; if (*cp1!=0) cp1++; while (*cp1!='&' && *cp1!=0) { if (*cp1=='"' || *cp1==',' || *cp1=='?') { cp1++; continue; } /* skip bad ones.. */ else { if (*cp1=='+') *cp1=' '; /* change + to space */ if (sp_flg && *cp1==' ') { cp1++; continue; } /* compress spaces */ if (*cp1==' ') sp_flg=1; else sp_flg=0; /* (flag spaces here) */ *cp2++=*cp1++; /* normal character */ } } *cp2=0; cp2=tmpbuf; if (tmpbuf[0]=='?') tmpbuf[0]=' '; /* format fix ? */ /* Google specific part - beginning OK, OK...it has nothing to do here...but Google is so important nowadays that we will do it anyway... What are we about to do? Deal with google cache feature. If a user makes a search, then clicks on the cached links of the page he has found, and then follows the link to the original page, Google will send us as query: cache:xxxxxx:/location/to/page.html+search+keywords what we have to do is only to strip the beginning until we find a space ( remenber + have already been converted to spaces). */ if(strncmp("cache:", cp2, 6) == 0) while( *cp2!=0 && !isspace(*cp2) ) cp2++; /* Google specific part - End*/ while( *cp2!=0 && isspace(*cp2) ) cp2++; /* skip leading sps. */ if (*cp2==0) continue; /* empty string */ /* any trailing spaces? */ cp1=cp2+strlen(cp2)-1; while (cp1!=cp2) if (isspace(*cp1)) *cp1--='\0'; else break; /* strip invalid chars */ cp1=cp2; while (*cp1!=0) { if ((*cp1<32)||(*cp1==127)) *cp1='_'; cp1++; } if(*cp2 == 0) /* ignore empty search strings */ continue; /* cp2 will contain the localized string */ /* check if the engine gave us its charset */ if(engines_table[sengine_index].charsettag != NULL) { /* find charset */ /* Try to find query variable */ *srch ='&'; srch[sizeof(srch)-1] = '\0'; /* First, try "&... " */ strncpy(srch + 1,engines_table[sengine_index].charsettag,sizeof(srch)-2); if ((cp1=strstr(ptr,srch))==NULL) { srch[0]='?'; /* Next, try "?..." */ cp1=strstr(ptr,srch); } if(cp1 != NULL) { /* go to beginning of charset */ cp1 += strlen(engines_table[sengine_index].charsettag) + 1; /* crop string */ for(cp3=tmpbuf2; *cp1!=0;) if(*cp1=='&') break; else *cp3++=*cp1++; *cp3 = 0; /* close string */ cp1 = tmpbuf2; } } /* if not NULL, cp1 contains the charset to use */ if(cp1 == NULL || *cp1 == 0) cp1 = nl_langinfo(CODESET); /* if null, we default to current charset */ if(strcasecmp("UTF-8", cp1) != 0) /* we have work to do */ { /* create handle for convertion to utf-8 */ iconv_h = iconv_open("UTF-8", cp1); /*printf("Converting UTF-8<-%s %s %s \n", cp1, engines_table[sengine_index].display_name, ptr);*/ if(iconv_h == 0) { if(verbose) { fprintf(stderr, _("[sengine_search_phrase] Failed to convert search phrase from %s to UTF-8 (engine %s): Cannot open iconv handle\n"), cp1, engines_table[sengine_index].display_name ); } return cp2; } else { char *in = cp2; char *out = tmpbuf3; size_t in_size = strlen(cp2) + 1, out_size = MAXSRCH * 4; if(iconv(iconv_h, &in, &in_size, &out, &out_size) == -1) { if(verbose) { if(errno == EILSEQ) { /*we encountered a multibyte character we cannot handle */ fprintf(stderr, _("Cannot convert search phrase from %s character set.\n"), cp1); fprintf(stderr, _("Either the web browser was wrong or this system's default locale doesn't reflect this browser default.\n")); fprintf(stderr, _("You might wish to tweak the current locale.\n")); } else { /* sth weird happened */ fprintf(stderr, _("[sengine_search_phrase] Failed to convert search phrase from %s to UTF-8 (engine %s) :%s\n"), cp1, engines_table[sengine_index].display_name, strerror(errno) ); } } } else cp2 = tmpbuf3; /* close handle */ iconv_close(iconv_h); } } /* to lower */ strtolower_utf8(cp2); return cp2; } return NULL; } /*********************************************/ /* SENGINE_PARSE */ /*********************************************/ /* loads engine list from file returns: 0 if ok 1 if error note that this function prints its own error messages to stderr */ /* used internally by sengine_parse */ char * sanity_check_line(char *buffer) { int i, j; /* remove '\n' */ buffer[strlen(buffer) - 1] = 0; /* strip heading whitespaces */ j = strlen(buffer); for(i = 0;isspace(buffer[i]) && i < j; i++); buffer = buffer + i; /* skip comments and blank lines */ if ( (buffer[0]=='#') || (strlen(buffer) == 0) ) return NULL; /* remove comments */ for(i=0; i<BUFSIZE && buffer[i]; i++) if(buffer[i] == '#') { buffer[i] = 0; break; } /* strip trailing whitespaces */ i = strlen(buffer) - 1; for(;(i>0) && isspace(buffer[i]); i--) buffer[i] = 0; /* to lower until we find a space*/ j = strlen(buffer) - 1; i = 0; for(;i<j && !isspace(buffer[i]); i++) buffer[i] = tolower(buffer[i]); return (strlen(buffer) ? buffer : NULL); } /* used internally by sengine_parse */ int qs_compare_sengines(const void* ptr1, const void* ptr2) { return strcmp(((struct lsengine *)ptr1)->dns_middle, ((struct lsengine *)ptr2)->dns_middle); } /* used internally by sengine_parse */ int qs_compare_sengines2(const void* ptr1, const void* ptr2) { struct lsengine * se1 = (struct lsengine *)ptr1; struct lsengine * se2 = (struct lsengine *)ptr2; int ret; static signed char cmptable[] = { 0 , -1, -1,-1, +1, 0 , -1,-1, +1, +1, 0 ,-1, +1, +1, +1, 0 }; int y = 0; int x = 0; if(*se1->dns_beg == '*') y += 2; if(*se1->dns_ext == '*') y += 1; if(*se2->dns_beg == '*') x += 2; if(*se2->dns_ext == '*') x += 1; ret = cmptable[x + (y << 2)]; if(ret == 0) { /* if we are here it means we may have two identical entries */ ret = strcmp(se1->dns_beg, se2->dns_beg); if(ret == 0) return strcmp(se1->dns_ext, se2->dns_ext); else return ret; } else return ret; } int sengine_parse(const char* filename) { FILE *fp; char buffer[BUFSIZE]; char *clean_line; /* line stripped from its space and comments */ char *cp1, *cp2; /* temporary character pointers */ int i; if ( (fp=fopen(filename,"r")) == NULL) { if (verbose) fprintf(stderr,"%s %s\n",_("Error: Unable to open search engines file"),filename); return 1; } while ( (fgets(buffer,BUFSIZE,fp)) != NULL) { char host_middle[SE_MAXDNSMID] = ""; char host_ext[SE_MAXDNSEXT] = ""; char host_beg[SE_MAXDNSBEG] = ""; char display_name[SE_MAXDNAME] = ""; char *querytag[SE_MAXQTAG]; char *charsettag = NULL; /* check if not blank, not #...., and remove heading and trailing spaces */ if((clean_line = sanity_check_line(buffer)) == NULL) continue; if(strcmp("<searchengine>", buffer) != 0) { if (verbose) fprintf(stderr,"%s %s\n",_("Error: expected <SearchEngine>, got"), buffer); return 1; } /* empty querytag array */ for(i=0; i<SE_MAXQTAG; i++) querytag[i] = NULL; /* let's get all keywords & values */ while ( (fgets(buffer,BUFSIZE,fp)) != NULL) { if((clean_line = sanity_check_line(buffer)) == NULL) continue; /* check end of block */ if(strcmp("</searchengine>", buffer) == 0) break; /* name keyword ? */ if(strcmp("name", clean_line) && isspace(clean_line[strlen("name")])) { clean_line += strlen("name"); strip_spaces(&clean_line); strncpy(display_name, clean_line, SE_MAXDNAME); continue; } /* querytags keyword ? */ if(strcmp("querytags", clean_line) && isspace(clean_line[strlen("querytags")])) { char *tag; int i; clean_line += strlen("querytags") + 1; i = 0; tag = strtok(clean_line, ","); for(; tag != NULL; tag = strtok(0, ","), i++) { if(i == SE_MAXQTAG) { if (verbose) fprintf(stderr,"%s %u\n",_("Error: too many querytags value, maximum is "), SE_MAXQTAG); return 1; } strip_spaces(&tag); if(*tag == 0) { if (verbose) fprintf(stderr,"%s \n",_("Error: empy querytags value")); return 1; } if(tag[strlen(tag) - 1] != '=') { if (verbose) fprintf(stderr,"%s \n",_("Error: invalid querytags value, should end with '='")); return 1; } /* let's save tag */ querytag[i] = malloc(strlen(tag) + 1); strncpy(querytag[i], tag, strlen(tag) + 1); } continue; } /* charsettag keyword ? */ if(strcmp("charsettag", clean_line) && isspace(clean_line[strlen("charsettag")])) { clean_line += strlen("charsettag"); strip_spaces(&clean_line); if(clean_line[strlen(clean_line) - 1] != '=') { if (verbose) fprintf(stderr,"%s \n",_("Error: invalid charsettag value, should end with '='")); return 1; } charsettag = malloc(strlen(clean_line) + 1); strncpy(charsettag, clean_line, strlen(clean_line) + 1); continue; } /* hostname keyword ? */ if(strcmp("hostname", clean_line) && isspace(clean_line[strlen("hostname")])) { clean_line += strlen("hostname"); strip_spaces(&clean_line); /* find last point */ cp1 = clean_line; cp2 = clean_line + strlen(clean_line) - 1; while(*cp2 != '.' && cp2 != cp1) cp2--; /* find first point */ while(*cp1 != '.' && cp2 != cp1) cp1++; if(((cp2 - cp1) <= 1) || cp2[1] == 0 || cp1 == clean_line) { if (verbose) fprintf(stderr,"%s %s\n",_("Error: invalid host name "), clean_line); return 1; } strncpy(host_middle, cp1 + 1, cp2 - cp1 - 1); strncpy(host_ext, cp2 + 1, SE_MAXDNSEXT - 1); host_ext[SE_MAXDNSEXT - 1] = 0; *cp1= 0; strncpy(host_beg, clean_line, SE_MAXDNSBEG - 1); host_beg[SE_MAXDNSBEG - 1] = 0; continue; } if (verbose) fprintf(stderr,"%s %s\n",_("Error: invalid line: "),clean_line); return 1; } /* check if we have all needed pieces of information */ if(*host_beg == 0 || *host_ext == 0 || *host_middle == 0 || *display_name == 0 || querytag[0] == 0) { if (verbose) fprintf(stderr,"%s %s\n",_("Error: search engine lacks some config lines: "), display_name); return 1; } /* let's add it to the list */ n_sengines++; engines_table = realloc(engines_table, sizeof(struct lsengine) * n_sengines); strcpy(engines_table[n_sengines - 1].dns_beg, host_beg); strcpy(engines_table[n_sengines - 1].dns_middle, host_middle); strcpy(engines_table[n_sengines - 1].dns_ext, host_ext); strcpy(engines_table[n_sengines - 1].display_name, display_name); for(i=0; i < SE_MAXQTAG; i++) engines_table[n_sengines - 1].querytag[i] = querytag[i]; engines_table[n_sengines - 1].charsettag = charsettag; } /* let's sort the list , key = dns_middle */ qsort(engines_table, n_sengines, sizeof(struct lsengine), qs_compare_sengines); /* now do push the '*' at the back of the list */ /* the goal is to have hostnames whith the same middle name ('foo') sorted as: xxx.foo.xxx <-- lowest index *.foo.xxx xxx.foo.* *.foo.* <-- highest index */ for(i = 0; i < n_sengines;) { int j = 1; /* j countains the number of entries with same middle name */ while(((i + j) < n_sengines) && (strcmp(engines_table[i].dns_middle, engines_table[i + j].dns_middle) == 0)) { j++; } if(j > 1) qsort(engines_table + i, j, sizeof(struct lsengine), qs_compare_sengines2); /* jump to next middle name */ i += j; } /* check for duplicate search engines --we do not want duplicates, this will break our searches */ for(i = 1; i < n_sengines; i++) { if(strcmp(engines_table[i].dns_middle, engines_table[i - 1].dns_middle) == 0 && strcmp(engines_table[i].dns_beg, engines_table[i - 1].dns_beg) == 0 && strcmp(engines_table[i].dns_ext, engines_table[i - 1].dns_ext) == 0) { if (verbose) fprintf(stderr, _("Error:Duplicated search engines %s(%s.%s.%s) and %s(%s.%s.%s)\n") ,engines_table[i].display_name, engines_table[i].dns_beg ,engines_table[i].dns_middle ,engines_table[i].dns_ext ,engines_table[i - 1].display_name, engines_table[i - 1].dns_beg ,engines_table[i - 1].dns_middle ,engines_table[i - 1].dns_ext); return 1; } } fclose(fp); return 0; } /*********************************************/ /* SENGINE_MAKE_TABLE */ /*********************************************/ /* returns a sorted array of sengines */ struct sengine *sengine_make_table() { int i; struct sengine *ret = malloc(sizeof(struct sengine) * n_sengines); if(ret == NULL) { if(verbose) fprintf(stderr,"[sengine_make_table] %s \n",_("Error: out of memory")); return NULL; } for(i=0; i<n_sengines; i++) { ret[i].display_name = engines_table[i].display_name; ret[i].s_htab = NULL; ret[i].count = 0; } return ret; } /*********************************************/ /* SENGINES_FREE_TABLE */ /*********************************************/ /* frees given sengine table */ void sengine_free_table(struct sengine *table[]) { if(*table != NULL) { int i; /* for each engine */ for(i = 0; i < n_sengines; i++) { sengine_del_shtab((*table)[i].s_htab); free((*table)[i].s_htab); } free(*table); *table = NULL; } } /*********************************************/ /* NEW_SNODE - Search str node creation */ /*********************************************/ SNODEPTR new_snode(char *str) { SNODEPTR newptr; char *sptr; if (strlen(str) >= MAXSRCHH) { if (verbose) { fprintf(stderr,"[new_snode] %s (%d)",_("Warning: String exceeds storage size"),(int)strlen(str)); if (debug_mode) fprintf(stderr,":\n--> %s",str); fprintf(stderr,"\n"); } str[MAXSRCHH-1]=0; } if ( (sptr=malloc(strlen(str)+1))==NULL ) return (SNODEPTR)NULL; strcpy(sptr,str); if (( newptr = malloc(sizeof(struct snode))) != NULL) { newptr->string= sptr; newptr->count = 1; } else free(sptr); return newptr; } /*********************************************/ /* SENGINE_ADD_SEARCH_PHRASE */ /*********************************************/ int sengine_add_search_phrase(char *sp, char *url, u_long count, struct sengine table[], int index) { /* create hash table for given engine if needed */ if(table[index].s_htab == NULL) { if((table[index].s_htab = malloc(sizeof(SNODEPTR) * MAXSPHASH)) == NULL) { if(verbose) fprintf(stderr,"[sengine_add_search_phrase] %s\n",_("Error: out of memory")); return -1; } else { /* let's clear it */ memset(table[index].s_htab, 0, sizeof(SNODEPTR) * MAXSPHASH); } } /* add node */ if(sengine_put_snode(sp, url, count, table[index].s_htab) != 0) return 1; else { /* if added, update count */ table[index].count += count; return 0; } } /*********************************************/ /* SENGINE_PUT_SNODE */ /*********************************************/ /* insert/update search node */ int sengine_put_snode(char *sp, char *url, u_long count, SNODEPTR *htab) { SNODEPTR cptr,nptr; u_long hvalue = hash(sp) & (MAXSPHASH - 1); if (sp[0]==0 || sp[0]==' ') return 0; /* skip bad search strs */ /* check if hashed */ if ( (cptr = htab[hvalue]) == NULL) { /* not hashed */ if ( (nptr=new_snode(sp)) != NULL) { nptr->count = count; nptr->urls = new_list(url, strlen(url) + 1); nptr->next = NULL; htab[hvalue] = nptr; } } else { /* hashed */ while (cptr != NULL) { if (strcmp(cptr->string,sp)==0) { LISTPTR lptr; /* found... bump counter && add url in list if needed */ cptr->count+=count; for(lptr = cptr->urls; lptr != NULL; lptr = lptr->next) if(strcmp((char *)lptr->item, url) == 0) break; if(lptr == NULL) /* not found, add it */ add_list(&cptr->urls, url, strlen(url) + 1); return 0; } cptr = cptr->next; } /* not found... */ if ( (nptr = new_snode(sp)) != NULL) { nptr->count = count; nptr->urls = new_list(url, strlen(url) + 1); nptr->next = htab[hvalue]; htab[hvalue]=nptr; } } return nptr==NULL; } /*********************************************/ /* SENGINE_DEL_SHTAB */ /*********************************************/ /* delete search str hash table if argument is NULL, does nothing */ void sengine_del_shtab(SNODEPTR *htab) { /* free memory used by hash table */ if(htab != NULL) { SNODEPTR aptr,temp; int i; for (i=0;i<MAXSPHASH;i++) { if (htab[i] != NULL) { aptr = htab[i]; while (aptr != NULL) { temp = aptr->next; free (aptr->string); del_list(&aptr->urls, 1); free (aptr); aptr = temp; } htab[i]=NULL; } } } } /*********************************************/ /* SENGINE_FREE_INTERNAL_TABLE */ /*********************************************/ void sengine_free_internal_table() { int i, j; for(i=0; i < n_sengines; i++) { for(j=0; (engines_table[i].querytag[j] != NULL) && (j < SE_MAXQTAG); j++) { free(engines_table[i].querytag[j]); } free(engines_table[i].charsettag); } free(engines_table); } /*********************************************/ /* SENGINE_DUMP - debugging purpose */ /*********************************************/ void sengines_dump() { int i, j; for(i = 0; i < n_sengines; i++) { fprintf(stderr, "display_name -%s-\n", engines_table[i].display_name); fprintf(stderr, "dns -%s-%s-%s-\n", engines_table[i].dns_beg, engines_table[i].dns_middle, engines_table[i].dns_ext); for(j = 0; j < SE_MAXQTAG && engines_table[i].querytag[j]; j++) { fprintf(stderr, "tag --%s--\n", engines_table[i].querytag[j]); } } } ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������webdruid-0.5.4.orig/xml_output.c��������������������������������������������������������������������0000644�0000000�0000000�00000076514�10066113350�016616� 0����������������������������������������������������������������������������������������������������ustar �root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* xml_output.c - XML output dor The WebDruid Copyright (C) 2003-2004 Fabien Chevalier (fabien@juliana-multimedia.com) This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version, and provided that the above copyright and permission notice is included with all distributed copies of this or derived software. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA */ #include "config.h" /* ensure sys/types */ #ifndef _SYS_TYPES_H #include <sys/types.h> #endif /* some systems need this */ #ifdef HAVE_MATH_H #include <math.h> #endif #include <time.h> /* SunOS 4.x Fix */ #ifndef CLK_TCK #define CLK_TCK _SC_CLK_TCK #endif #include <stdio.h> #include <stdlib.h> #include <string.h> #include "webdruid.h" #include "lang.h" #include "hashtab.h" #include "linklist.h" #include "sengine.h" #include "utils.h" /* TODO: delete this when it is time...*/ #include "preserve.h" /*********************************************/ /* local defines */ /*********************************************/ /* We won't output more than LIST_MAX items in our sorted lists, unless dump_xxx or all_xxx is specified */ #define LIST_MAX 250 /*********************************************/ /* local variables */ /*********************************************/ /* sort arrays */ static UNODEPTR *u_array = NULL; /* Sort array for URL's */ static HNODEPTR *h_array = NULL; /* hostnames (sites) */ static RNODEPTR *r_array = NULL; /* referrers */ static ANODEPTR *a_array = NULL; /* user agents */ static INODEPTR *i_array = NULL; /* ident strings (username) */ static u_long a_ctr = 0; /* counter for sort array */ /*********************************************/ /* local functions */ /*********************************************/ static int common_header(FILE * out_fp); /* write xml header file */ static int write_settings(FILE * out_fp); /* write common settings in file */ static void output_setting_string(FILE * out_fp, /* write string setting */ const char *name, const char *value); static u_long load_url_array( UNODEPTR *); /* load URL array */ static u_long load_site_array( HNODEPTR *); /* load Site array */ static u_long load_ref_array( RNODEPTR *); /* load Refs array */ static u_long load_agent_array(ANODEPTR *); /* load Agents array */ static u_long load_ident_array(INODEPTR *); /* load ident array */ static u_long load_search_array(SNODEPTR array[], SNODEPTR source_htab[]); static int qs_url_cmph( const void*, const void*); /* compare by hits */ static int qs_url_cmpk( const void*, const void*); /* compare by kbytes */ static int qs_url_cmpn( const void*, const void*); /* compare by entrys */ static int qs_url_cmpx( const void*, const void*); /* compare by exits */ static int qs_site_cmph(const void*, const void*); /* compare by hits */ static int qs_site_cmpk(const void*, const void*); /* compare by kbytes */ static int qs_ref_cmph( const void*, const void*); /* compare by hits */ static int qs_agnt_cmph(const void*, const void*); /* compare by hits */ static int qs_ident_cmph(const void*, const void*); /* compare by hits */ static int qs_snode_cmp_count(const void *cp1, const void *cp2); /* compare by hits */ static int qs_sengines_cmp_count(const void *cp1, const void *cp2); /* compare by hits */ /*********************************************/ /* Writes global statistics */ /*********************************************/ int write_history_xml() { int i; int year = 0; const char *xml_fname = "history.xml"; FILE * out_fp; if (verbose>1) printf("%s\n",_("Generating shared XML document...")); /* fill in filename */ /* first, open the file */ if ( (out_fp = open_out_file_in_dir("xml", xml_fname)) == NULL ) return 1; /* Let's gogogo... */ if(common_header(out_fp)) { fclose(out_fp); return 1; }; fprintf(out_fp, "<report xmlns=\"http://www.webdruid.org/history\">\n"); if(write_settings(out_fp)) { fclose(out_fp); return 1; }; /* Write some months/years values */ for(i = 0; i < 12; i++) { if(year != hist_year[i]) { if(year) { fprintf(out_fp, "</year>\n"); } year = hist_year[i]; fprintf(out_fp, "<year value=\"%04d\">\n", year); } if(hist_month[i]){ fprintf(out_fp, "<month value=\"%02d\"/>\n", hist_month[i]); } } fprintf(out_fp, "</year>\n"); fprintf(out_fp, "</report>\n"); fclose(out_fp); return 0; } /*********************************************/ /* Writes monthly statistics */ /*********************************************/ int write_month_xml() { unsigned long i, j; char xml_fname[256]; /* filename storage area... */ FILE * out_fp; struct sengine *sp_sorted_table; /* contains the array of array of sorted search phrases */ if (verbose>1) printf("%s %s %d...\n",_("Generating XML document for"), _(l_month[cur_month-1]), cur_year); /* fill in filename */ snprintf(xml_fname,sizeof(xml_fname),"monthly_%04d_%02d.xml", cur_year,cur_month); /* first, open the file */ if ( (out_fp = open_out_file_in_dir("xml", xml_fname)) == NULL ) return 1; /* Let's gogogo... */ if(common_header(out_fp)) { fclose(out_fp); return 1; }; fprintf(out_fp, "<report xmlns=\"http://www.webdruid.org/stats\">\n"); if(write_settings(out_fp)) { fclose(out_fp); return 1; }; /* Keep track of what kind of report it is... */ fprintf(out_fp, "<grain>month</grain>\n"); /* Keep track of what month we are... */ fprintf(out_fp, "<year>%04d</year>\n", cur_year); fprintf(out_fp, "<month>%02d</month>\n", cur_month); /* Do URL related stuff here, sorting appropriately */ if ((a_ctr = load_url_array(NULL)) != 0) { if ( (u_array = malloc(sizeof(UNODEPTR)*(a_ctr))) != 0 ) { unsigned long max_output; /* number of items to output */ unsigned long total_hits = 0; unsigned long total_kilobytes = 0; unsigned long total_exit = 0; unsigned long total_entry = 0; a_ctr = load_url_array(u_array); /* load up our sort array */ for(i = 0; i < a_ctr; i++) { total_hits += u_array[i]->count; total_kilobytes += u_array[i]->xfer/1024; if (u_array[i]->flag == OBJ_REG) { if (u_array[i]->entry != 0) total_entry += u_array[i]->entry; if (u_array[i]->exit != 0) total_exit += u_array[i]->exit; } } fprintf(out_fp, "<urls>\n"); fprintf(out_fp, "<count value=\"%lu\"/>\n", a_ctr); fprintf(out_fp, "<sums hits=\"%lu\" kilobytes=\"%lu\" entries=\"%lu\" exits=\"%lu\"/>\n", total_hits, total_kilobytes, total_entry, total_exit); if(all_urls || dump_urls) { fprintf(out_fp, "<list key=\"hits\" all=\"yes\">\n"); max_output = a_ctr; } else { fprintf(out_fp, "<list key=\"hits\">\n"); max_output = MIN(LIST_MAX, a_ctr); } qsort(u_array, a_ctr, sizeof(UNODEPTR), qs_url_cmph); for(i = 0; i < max_output; i++) { fprintf(out_fp, "<url name=\"%s\" hits=\"%lu\" kilobytes=\"%.0f\" entries=\"%lu\" exits=\"%lu\"/>\n", u_array[i]->string, u_array[i]->count, u_array[i]->xfer/1024, u_array[i]->entry, u_array[i]->exit); } fprintf(out_fp, "</list>\n"); /* Top URL's (by kbytes) */ fprintf(out_fp, "<list key=\"kilobytes\">\n"); qsort(u_array,a_ctr,sizeof(UNODEPTR),qs_url_cmpk); max_output = MIN(LIST_MAX, a_ctr); for(i = 0; i < max_output; i++) { fprintf(out_fp, "<url name=\"%s\" hits=\"%lu\" kilobytes=\"%.0f\" entries=\"%lu\" exits=\"%lu\"/>\n", u_array[i]->string, u_array[i]->count, u_array[i]->xfer/1024, u_array[i]->entry, u_array[i]->exit); } fprintf(out_fp, "</list>\n"); /* Top Entry Pages */ fprintf(out_fp, "<list key=\"entries\">\n"); qsort(u_array, a_ctr, sizeof(UNODEPTR), qs_url_cmpn); for(i = 0, j = 0; i < a_ctr && j < LIST_MAX; i++) { if(u_array[i]->flag != OBJ_HIDE) { fprintf(out_fp, "<url name=\"%s\" hits=\"%lu\" kilobytes=\"%.0f\" entries=\"%lu\" exits=\"%lu\"/>\n", u_array[i]->string, u_array[i]->count, u_array[i]->xfer/1024, u_array[i]->entry, u_array[i]->exit); j++; } } fprintf(out_fp, "</list>\n"); /* Top Exit Pages */ fprintf(out_fp, "<list key=\"exits\">\n"); qsort(u_array, a_ctr, sizeof(UNODEPTR), qs_url_cmpx); for(i = 0; i < a_ctr && j < LIST_MAX; i++) { if(u_array[i]->flag != OBJ_HIDE) { fprintf(out_fp, "<url name=\"%s\" hits=\"%lu\" kilobytes=\"%.0f\" entries=\"%lu\" exits=\"%lu\"/>\n", u_array[i]->string, u_array[i]->count, u_array[i]->xfer/1024, u_array[i]->entry, u_array[i]->exit); j++; } } fprintf(out_fp, "</list>\n"); free(u_array); fprintf(out_fp, "</urls>\n"); } else if (verbose) fprintf(stderr,"%s [u_array]\n",_("Can't allocate enough memory, Top URLs disabled!")); /* err */ } /* do hostname (sites) related stuff here, sorting appropriately... */ if ((a_ctr = load_site_array(NULL)) != 0) { if ( (h_array = malloc(sizeof(HNODEPTR)*(a_ctr))) != 0 ) { unsigned long max_output; /* number of items to output */ unsigned long total_hits = 0; unsigned long total_files = 0; unsigned long total_visits = 0; unsigned long total_kilobytes = 0; a_ctr = load_site_array(h_array); /* load up our sort array */ for(i = 0; i < a_ctr; i++) { total_hits += h_array[i]->count; total_files += h_array[i]->files; total_kilobytes += h_array[i]->xfer/1024; total_visits += h_array[i]->visit; } fprintf(out_fp, "<sites>\n"); fprintf(out_fp, "<count value=\"%lu\"/>\n", a_ctr); fprintf(out_fp, "<sums hits=\"%lu\" files=\"%lu\" kilobytes=\"%lu\" visits=\"%lu\"/>\n", total_hits, total_files, total_kilobytes, total_visits); if(all_sites || dump_sites) { fprintf(out_fp, "<list key=\"hits\" all=\"yes\">\n"); max_output = a_ctr; } else { fprintf(out_fp, "<list key=\"hits\">\n"); max_output = MIN(LIST_MAX, a_ctr); } qsort(h_array,a_ctr,sizeof(HNODEPTR),qs_site_cmph); for(i = 0; i < max_output; i++) { fprintf(out_fp, "<site hostname=\"%s\" hits=\"%lu\" files=\"%lu\" kilobytes=\"%.0f\" visits=\"%lu\"/>\n", h_array[i]->string, h_array[i]->count, h_array[i]->files, h_array[i]->xfer/1024, h_array[i]->visit); } fprintf(out_fp, "</list>\n"); /* Top Sites table (by kbytes) */ fprintf(out_fp, "<list key=\"kilobytes\">\n"); qsort(h_array,a_ctr,sizeof(HNODEPTR),qs_site_cmpk); max_output = MIN(LIST_MAX, a_ctr); for(i = 0; i < max_output; i++) { fprintf(out_fp, "<site hostname=\"%s\" hits=\"%lu\" files=\"%lu\" kilobytes=\"%.0f\" visits=\"%lu\"/>\n", h_array[i]->string, h_array[i]->count, h_array[i]->files, h_array[i]->xfer/1024, h_array[i]->visit); } fprintf(out_fp, "</list>\n"); free(h_array); fprintf(out_fp, "</sites>\n"); } else if (verbose) fprintf(stderr,"%s [h_array]\n",_("Can't allocate enough memory, Top Sites disabled!")); /* err */ } /* do referrer related stuff here, sorting appropriately... */ if ((a_ctr = load_ref_array(NULL)) != 0) { if ((r_array = malloc(sizeof(RNODEPTR)*(a_ctr))) != 0) { unsigned long max_output; /* number of items to output */ unsigned long total_hits = 0; a_ctr = load_ref_array(r_array); /* load up our sort array */ for(i = 0; i < a_ctr; i++) total_hits += r_array[i]->count; fprintf(out_fp, "<referrers>\n"); fprintf(out_fp, "<count value=\"%lu\"/>\n", a_ctr); fprintf(out_fp, "<sums hits=\"%lu\"/>\n", total_hits); if(all_refs || dump_refs) { fprintf(out_fp, "<list key=\"hits\" all=\"yes\">\n"); max_output = a_ctr; } else { fprintf(out_fp, "<list key=\"hits\">\n"); max_output = MIN(LIST_MAX, a_ctr); } qsort(r_array, a_ctr, sizeof(RNODEPTR), qs_ref_cmph); for(i = 0; i < max_output; i++) { fprintf(out_fp, "<referrer url=\"%s\" hits=\"%lu\"/>\n", r_array[i]->string, r_array[i]->count); } fprintf(out_fp, "</list>\n"); free(r_array); fprintf(out_fp, "</referrers>\n"); } else if (verbose) fprintf(stderr,"%s [r_array]\n",_("Can't allocate enough memory, Top Referrers disabled!")); /* err */ } /* do ident (username) related stuff here, sorting appropriately... */ if((a_ctr = load_ident_array(NULL)) != 0) { if ((i_array = malloc(sizeof(RNODEPTR)*(a_ctr))) != 0) { unsigned long max_output; /* number of items to output */ unsigned long total_hits = 0; a_ctr = load_ident_array(i_array); /* load up our sort array */ for(i = 0; i < a_ctr; i++) total_hits += i_array[i]->count; fprintf(out_fp, "<usernames>\n"); fprintf(out_fp, "<count value=\"%lu\"/>\n", a_ctr); fprintf(out_fp, "<sums hits=\"%lu\"/>\n", total_hits); if(all_users || dump_users) { fprintf(out_fp, "<list key=\"hits\" all=\"yes\">\n"); max_output = a_ctr; } else { fprintf(out_fp, "<list key=\"hits\">\n"); max_output = MIN(LIST_MAX, a_ctr); } qsort(i_array, a_ctr, sizeof(INODEPTR), qs_ident_cmph); for(i = 0; i < max_output; i++) { fprintf(out_fp, "<username url=\"%s\" hits=\"%lu\"/>\n", i_array[i]->string, i_array[i]->count); } fprintf(out_fp, "</list>\n"); free(i_array); fprintf(out_fp, "</usernames>\n"); } else if (verbose) fprintf(stderr,"%s [i_array]\n",_("Can't allocate enough memory, Top Usernames disabled!")); /* err */ } /* do user agent related stuff here, sorting appropriately... */ if ((a_ctr = load_agent_array(NULL)) != 0) { if ((a_array = malloc(sizeof(ANODEPTR)*(a_ctr))) != 0) { unsigned long max_output; /* number of items to output */ unsigned long total_hits = 0; a_ctr = load_agent_array(a_array); /* load up our sort array */ for(i = 0; i < a_ctr; i++) total_hits += a_array[i]->count; fprintf(out_fp, "<agents>\n"); fprintf(out_fp, "<count value=\"%lu\"/>\n", a_ctr); fprintf(out_fp, "<sums hits=\"%lu\"/>\n", total_hits); if(all_agents || dump_agents) { fprintf(out_fp, "<list key=\"hits\" all=\"yes\">\n"); max_output = a_ctr; } else { fprintf(out_fp, "<list key=\"hits\">\n"); max_output = MIN(LIST_MAX, a_ctr); } qsort(a_array, a_ctr, sizeof(ANODEPTR), qs_agnt_cmph); for(i = 0; i < max_output; i++) { fprintf(out_fp, "<username url=\"%s\" hits=\"%lu\"/>\n", a_array[i]->string, a_array[i]->count); } fprintf(out_fp, "</list>\n"); free(a_array); fprintf(out_fp, "</agents>\n"); } else if (verbose) fprintf(stderr,"%s [a_array]\n",_("Can't allocate enough memory, Top User Agents disabled!")); /* err */ } /* let's malloc it -- and do it's initialisation with a copy of sp_table */ sp_sorted_table = malloc(sizeof(struct sengine) * n_sengines); if(sp_sorted_table == NULL) { if (verbose) fprintf(stderr,"[generate_sengines_info] %s\n",_("Can't allocate enough memory, Search engines report disabled!")); /* err */ } else { unsigned long total_searches = 0; memcpy(sp_sorted_table, sp_table, sizeof(struct sengine) * n_sengines); /* compute the number of searches for all engines */ for(i=0; i<n_sengines; i++) total_searches += sp_table[i].count; /* Let's fill our array of array */ for(i=0; i<n_sengines; i++) { if(sp_table[i].count) { /* Do load the array */ u_long size = load_search_array(NULL, sp_table[i].s_htab); sp_sorted_table[i].s_htab = malloc((size + 1) * sizeof(SNODEPTR)); if(sp_sorted_table[i].s_htab == NULL) /* no more memory */ { if (verbose) fprintf(stderr,"[generate_sengines_info] %s\n",_("Can't allocate enough memory, Search engines report will be incomplete!")); /* err */ /* force it to be ignored */ sp_sorted_table[i].s_htab = NULL; sp_sorted_table[i].count = 0; } else { /* if memory allocated, fill it and sort it */ load_search_array(sp_sorted_table[i].s_htab, sp_table[i].s_htab); qsort(sp_sorted_table[i].s_htab, size, sizeof(SNODEPTR), qs_snode_cmp_count); /* end array with null */ sp_sorted_table[i].s_htab[size] = NULL; } } else sp_sorted_table[i].s_htab = NULL; } /* now we sort the array of array */ qsort(sp_sorted_table, n_sengines, sizeof(struct sengine), qs_sengines_cmp_count); fprintf(out_fp, "<sengines>\n"); fprintf(out_fp, "<sums hits=\"%lu\"/>\n", total_searches); /* iterate through sengines */ for(i = 0; i < n_sengines; i++) { if(sp_sorted_table[i].count != 0) { int j; LISTPTR lptr; fprintf(out_fp, "<sengine name=\"%s\">\n", sp_sorted_table[i].display_name); fprintf(out_fp, "<sums hits=\"%lu\"/>\n", sp_sorted_table[i].count); /* iterate through search phrases */ for(j = 0; j < LIST_MAX && sp_sorted_table[i].s_htab[j] != NULL; j++) { fprintf(out_fp, "<search phrase=\"%s\">\n", sp_sorted_table[i].s_htab[j]->string); fprintf(out_fp, "<sums hits=\"%lu\"/>\n", sp_sorted_table[i].s_htab[j]->count); /* iterate through search urls */ lptr = sp_sorted_table[i].s_htab[j]->urls; while(lptr != NULL) { fprintf(out_fp, "<url name=\"%s\"/>\n", (char *)lptr->item); lptr = lptr->next; } fprintf(out_fp, "</search>\n"); } fprintf(out_fp, "</sengine>\n"); } } fprintf(out_fp, "</sengines>\n"); /* cleanup */ for(i=0; i < n_sengines; i++) free(sp_sorted_table[i].s_htab); free(sp_sorted_table); } fprintf(out_fp, "</report>\n"); fclose(out_fp); /* close the file */ return 0; /* done... */ } /*********************************************/ /* WRITE_SETTINGS */ /*********************************************/ /* Outputs settings */ static int write_settings(FILE * out_fp) { /* Record WebDruid's settings */ fprintf(out_fp, "<settings>\n"); /* Give hostname */ output_setting_string(out_fp, "HostName", hname); /* Give version */ output_setting_string(out_fp, "Version", version); fprintf(out_fp, "</settings>\n"); return 0; } /*********************************************/ /* COMMON_HEADER */ /*********************************************/ /* Outputs header in xml file */ static int common_header(FILE * out_fp) { time_t curtime = time(0); fprintf(out_fp, "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?>\n"); fprintf(out_fp,"<!-- Generated by The WebDruid v %s -->\n", version); fprintf(out_fp,"<!-- (http://www.webdruid.org) -->\n"); fprintf(out_fp,"<!-- -->\n"); fprintf(out_fp,"<!-- Copyright 2003-2004 Fabien Chevalier -->\n"); fprintf(out_fp,"<!-- (fabien@juliana-multimedia.com) -->\n"); fprintf(out_fp,"<!-- -->\n"); fprintf(out_fp,"<!-- Distributed under the GNU GPL Version 2 -->\n"); fprintf(out_fp,"<!-- -->\n"); fprintf(out_fp,"<!-- -->\n"); fprintf(out_fp,"<!-- *** Generated: %s *** -->\n\n", ctime(&curtime)); return 0; } /*********************************************/ /* output_setting_string - straightforward */ /*********************************************/ static void output_setting_string(FILE * out_fp, const char *name, const char *value) { fprintf(out_fp, "<setting name=\"%s\"><value>%s</value></setting>\n", name, value); } /*********************************************/ /* LOAD_SITE_ARRAY - load up the sort array */ /*********************************************/ static u_long load_site_array(HNODEPTR *pointer) { HNODEPTR hptr; int i; u_long ctr = 0; /* load the array */ for (i=0;i<MAXHASH;i++) { hptr=sm_htab[i]; while (hptr!=NULL) { if (pointer==NULL) ctr++; /* fancy way to just count 'em */ else *(pointer+ctr++)=hptr; /* otherwise, really do the load */ hptr=hptr->next; } } return ctr; /* return number loaded */ } /*********************************************/ /* LOAD_URL_ARRAY - load up the sort array */ /*********************************************/ static u_long load_url_array(UNODEPTR *pointer) { UNODEPTR uptr; int i; u_long ctr = 0; /* load the array */ for (i=0;i<MAXHASH;i++) { uptr=um_htab[i]; while (uptr!=NULL) { if (pointer==NULL) ctr++; /* fancy way to just count 'em */ else *(pointer+ctr++)=uptr; /* otherwise, really do the load */ uptr=uptr->next; } } return ctr; /* return number loaded */ } /*********************************************/ /* LOAD_REF_ARRAY - load up the sort array */ /*********************************************/ static u_long load_ref_array(RNODEPTR *pointer) { RNODEPTR rptr; int i; u_long ctr = 0; /* load the array */ for (i=0;i<MAXHASH;i++) { rptr=rm_htab[i]; while (rptr!=NULL) { if (pointer==NULL) ctr++; /* fancy way to just count 'em */ else *(pointer+ctr++)=rptr; /* otherwise, really do the load */ rptr=rptr->next; } } return ctr; /* return number loaded */ } /*********************************************/ /* LOAD_AGENT_ARRAY - load up the sort array */ /*********************************************/ static u_long load_agent_array(ANODEPTR *pointer) { ANODEPTR aptr; int i; u_long ctr = 0; /* load the array */ for (i=0;i<MAXHASH;i++) { aptr=am_htab[i]; while (aptr!=NULL) { if (pointer==NULL) ctr++; /* fancy way to just count 'em */ else *(pointer+ctr++)=aptr; /* otherwise, really do the load */ aptr=aptr->next; } } return ctr; /* return number loaded */ } /*********************************************/ /* LOAD_IDENT_ARRAY - load up the sort array */ /*********************************************/ static u_long load_ident_array(INODEPTR *pointer) { INODEPTR iptr; int i; u_long ctr = 0; /* load the array */ for (i=0;i<MAXHASH;i++) { iptr=im_htab[i]; while (iptr!=NULL) { if (pointer==NULL) ctr++; /* fancy way to just count 'em */ else *(pointer+ctr++)=iptr; /* otherwise, really do the load */ iptr=iptr->next; } } return ctr; /* return number loaded */ } /**********************************************/ /* LOAD_SEARCH_ARRAY - load up the sort array */ /**********************************************/ static u_long load_search_array(SNODEPTR array[], SNODEPTR source_htab[]) { SNODEPTR sptr; int i; u_long ctr = 0; /* load the array */ for (i=0; i<MAXSPHASH; i++) { sptr=source_htab[i]; while (sptr!=NULL) { if (array==NULL) ctr++; /* fancy way to just count 'em */ else array[ctr++]=sptr; /* otherwise, really do the load */ sptr=sptr->next; } } return ctr; // return number loaded*/ return 0; } /*********************************************/ /* QS_SITE_CMPH - QSort compare site by hits */ /*********************************************/ static int qs_site_cmph(const void *cp1, const void *cp2) { u_long t1, t2; t1=(*(HNODEPTR *)cp1)->count; t2=(*(HNODEPTR *)cp2)->count; if (t1!=t2) return (t2<t1)?-1:1; /* if hits are the same, we sort by hostname instead */ return strcmp( (*(HNODEPTR *)cp1)->string, (*(HNODEPTR *)cp2)->string ); } /*********************************************/ /* QS_SITE_CMPK - QSort cmp site by bytes */ /*********************************************/ static int qs_site_cmpk(const void *cp1, const void *cp2) { double t1, t2; t1=(*(HNODEPTR *)cp1)->xfer; t2=(*(HNODEPTR *)cp2)->xfer; if (t1!=t2) return (t2<t1)?-1:1; /* if xfer bytes are the same, we sort by hostname instead */ return strcmp( (*(HNODEPTR *)cp1)->string, (*(HNODEPTR *)cp2)->string ); } /*********************************************/ /* QS_URL_CMPH - QSort compare URL by hits */ /*********************************************/ static int qs_url_cmph(const void *cp1, const void *cp2) { u_long t1, t2; t1=(*(UNODEPTR *)cp1)->count; t2=(*(UNODEPTR *)cp2)->count; if (t1!=t2) return (t2<t1)?-1:1; /* if hits are the same, we sort by url instead */ return strcmp( (*(UNODEPTR *)cp1)->string, (*(UNODEPTR *)cp2)->string ); } /*********************************************/ /* QS_URL_CMPK - QSort compare URL by bytes */ /*********************************************/ static int qs_url_cmpk(const void *cp1, const void *cp2) { double t1, t2; t1=(*(UNODEPTR *)cp1)->xfer; t2=(*(UNODEPTR *)cp2)->xfer; if (t1!=t2) return (t2<t1)?-1:1; /* if xfer bytes are the same, we sort by url instead */ return strcmp( (*(UNODEPTR *)cp1)->string, (*(UNODEPTR *)cp2)->string ); } /*********************************************/ /* QS_URL_CMPN - QSort compare URL by entry */ /*********************************************/ static int qs_url_cmpn(const void *cp1, const void *cp2) { double t1, t2; t1=(*(UNODEPTR *)cp1)->entry; t2=(*(UNODEPTR *)cp2)->entry; if (t1!=t2) return (t2<t1)?-1:1; /* if xfer bytes are the same, we sort by url instead */ return strcmp( (*(UNODEPTR *)cp1)->string, (*(UNODEPTR *)cp2)->string ); } /*********************************************/ /* QS_URL_CMPX - QSort compare URL by exit */ /*********************************************/ static int qs_url_cmpx(const void *cp1, const void *cp2) { double t1, t2; t1=(*(UNODEPTR *)cp1)->exit; t2=(*(UNODEPTR *)cp2)->exit; if (t1!=t2) return (t2<t1)?-1:1; /* if xfer bytes are the same, we sort by url instead */ return strcmp( (*(UNODEPTR *)cp1)->string, (*(UNODEPTR *)cp2)->string ); } /*********************************************/ /* QS_REF_CMPH - QSort compare Refs by hits */ /*********************************************/ static int qs_ref_cmph(const void *cp1, const void *cp2) { u_long t1, t2; t1=(*(RNODEPTR *)cp1)->count; t2=(*(RNODEPTR *)cp2)->count; if (t1!=t2) return (t2<t1)?-1:1; /* if hits are the same, we sort by referrer URL instead */ return strcmp( (*(RNODEPTR *)cp1)->string, (*(RNODEPTR *)cp2)->string ); } /*********************************************/ /* QS_AGNT_CMPH - QSort cmp Agents by hits */ /*********************************************/ static int qs_agnt_cmph(const void *cp1, const void *cp2) { u_long t1, t2; t1=(*(ANODEPTR *)cp1)->count; t2=(*(ANODEPTR *)cp2)->count; if (t1!=t2) return (t2<t1)?-1:1; /* if hits are the same, we sort by agent string instead */ return strcmp( (*(ANODEPTR *)cp1)->string, (*(ANODEPTR *)cp2)->string ); } /*********************************************/ /* QS_IDENT_CMPH - QSort cmp ident by hits */ /*********************************************/ static int qs_ident_cmph(const void *cp1, const void *cp2) { u_long t1, t2; t1=(*(INODEPTR *)cp1)->count; t2=(*(INODEPTR *)cp2)->count; if (t1!=t2) return (t2<t1)?-1:1; /* if hits are the same, sort by ident (username) string instead */ return strcmp( (*(INODEPTR *)cp1)->string, (*(INODEPTR *)cp2)->string ); } /*********************************************/ /* QS_SNODE_CMP_COUNT */ /*********************************************/ static int qs_snode_cmp_count(const void *cp1, const void *cp2) { u_long t1, t2; t1=(*(SNODEPTR *)cp1)->count; t2=(*(SNODEPTR *)cp2)->count; if (t1!=t2) return (t2<t1)?-1:1; /* if hits are the same, we sort by search string instead */ return strcmp( (*(SNODEPTR *)cp1)->string, (*(SNODEPTR *)cp2)->string ); } /*********************************************/ /* QS_SENGINES_CMP_COUNT */ /*********************************************/ static int qs_sengines_cmp_count(const void *cp1, const void *cp2) { u_long t1, t2; t1=((struct sengine *)cp1)->count; t2=((struct sengine *)cp2)->count; if (t1!=t2) return (t2<t1)?-1:1; /* if hits are the same, we sort by search string instead */ return strcmp( ((struct sengine *)cp1)->display_name, ((struct sengine *)cp2)->display_name ); } ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������webdruid-0.5.4.orig/logs_mgmt.c���������������������������������������������������������������������0000644�0000000�0000000�00000037627�10066113350�016370� 0����������������������������������������������������������������������������������������������������ustar �root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* The WebDruid - a web server log analysis program Copyright (C) 2003-2004 Fabien Chevalier (fabien@juliana-multimedia.com) This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version, and provided that the above copyright and permission notice is included with all distributed copies of this or derived software. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA */ #include "config.h" #include <stdlib.h> #include <stdio.h> #include <string.h> #include <zlib.h> #include "webdruid.h" #include "lang.h" #include "parser.h" #include "logs_mgmt.h" /* * Log File struct * It contains: - the last record read from this file - two file pointers. the one which is used is 'file' if gz_log = 0, 'gz_file' elsewhere - the name of the file - gz_* some variables used in case of gzip log - nr_records : current line in the log file; */ /********************************* STRUCTURES *********************************/ #define GZ_BUFSIZE 16384 /* our_getfs buffer size */ struct log_file { struct log_file *next; struct log_struct cur_record; char *filename; FILE *file; gzFile *gz_file; char *gz_f_buf; /* our_getfs buffer */ char *gz_f_cp; /* pointer into the buffer */ int gz_f_end; /* count to end of buffer */ int gz_log; unsigned long nr_records; }; /********************************* GLOBAL VARIABLES *********************************/ unsigned long total_rec ; /* Total Records Processed */ unsigned long total_ignore ; /* Total Records Ignored */ unsigned long total_bad ; /* Total Bad Records */ /********************************* LOCAL VARIABLES *********************************/ /* * List of log files being processed */ struct log_file *active_files = 0; /* * List of log files from which all records * have been read */ struct log_file *read_files = 0; /* * This boolean variable remembers if a record * has already been read from the pool */ int first_time = 1; /* * log file record buffer */ char buffer[BUFSIZE]; /********************************* LOCAL FUNCTIONS *********************************/ static char *our_gzgets(struct log_file *, char *, int); static void insert_log(struct log_file *plog); static int jump_next_record(struct log_file *log); static void print_warning(const char * msg, struct log_file *log); static void free_log_struct(struct log_file *log); /*******************************************/ /* LOGS_ADD_FILE - add file to the pool */ /*******************************************/ int logs_add_file(const char * filename) { struct log_file *plog; /* Check if gzip'ed log file & open file*/ if (!strcmp((filename + strlen(filename) - 3), ".gz")) { gzFile gz_file = gzopen(filename,"rb"); if (gz_file == Z_NULL) { /* Error: Can't open log file ... */ fprintf(stderr, "%s %s\n",_("Error: Can't open log file"), filename); return 1; } plog = malloc(sizeof(struct log_file)); plog->gz_log = 1; plog->gz_file = gz_file; plog->gz_f_buf = malloc(GZ_BUFSIZE); plog->gz_f_cp = plog->gz_f_buf + GZ_BUFSIZE; plog->gz_f_end = 0; } else { FILE *file = fopen(filename,"r"); if (file == 0) { /* Error: Can't open log file ... */ fprintf(stderr, "%s %s\n",_("Error: Can't open log file"), filename); return 1; } plog = malloc(sizeof(struct log_file)); plog->gz_log = 0; plog->gz_f_buf = 0; /* we will free it later, we don't forget to zero it ! */ plog->file = file; } /* Add struct log_file to list of open files */ plog->filename = strdup(filename); plog->nr_records = 0; plog->next = active_files; active_files = plog; if (verbose>1) { printf("%s %s (",_("Using logfile"), filename); if (plog->gz_log) printf("gzip-"); switch (log_type) { /* display log file type hint */ case LOG_CLF: printf("clf)\n"); break; case LOG_W3C: printf("w3c)\n"); break; } } return 0; } /*******************************************/ /* LOGS_ADD_STDIN - adds STDIN to the pool */ /*******************************************/ int logs_add_stdin() { struct log_file *plog; /* Add struct log_file to list of open files */ plog = malloc(sizeof(struct log_file)); plog->file = stdin; plog->gz_file = 0; plog->filename = strdup("STDIN"); plog->next = active_files; active_files = plog; if (verbose>1) { printf("%s %s (",_("Using log from"), "STDIN"); if (plog->gz_log) printf("gzip-"); switch (log_type) { /* display log file type hint */ case LOG_CLF: printf("clf)\n"); break; case LOG_W3C: printf("w3c)\n"); break; } } return 0; } /*******************************************/ /* LOGS_NR_FILES - # of files in the pool */ /*******************************************/ int logs_nr_files() { struct log_file *cur; int nr = 0; for(cur = active_files; cur != 0; cur = cur->next) nr++; return nr; } /*******************************************/ /* LOGS_NEXT_RECORD */ /*******************************************/ /* * Fills log_struct with the oldest record in * the pool. * This function moves the file from the main pool * to the read files pool when there is no more * records to read. */ int logs_next_record(struct log_struct * precord) { /* let's do first time initialisation if required */ if(first_time == 0) { if(jump_next_record(active_files) != 0) { /* We are at the end of file, add it to the list of read files */ struct log_file *plog = active_files; active_files = active_files->next; plog->next = read_files; read_files = plog; //TODO: This is completely buggy if(active_files) return jump_next_record(active_files); /* try next log file */ else return 1; /* No more log lines to process */ } else { struct log_file *plog; /* now we try to parse the record */ if(parse_record(buffer, &active_files->cur_record) == 0) { /* We take the current log file out of the list, and then re-add it on the right place */ plog = active_files; active_files = active_files->next; insert_log(plog); } else { /* Check if it's a W3C header or IIS Null-Character line */ if ((buffer[0]=='\0') || (buffer[0]=='#')) { total_ignore++; print_warning(_("Skipping garbage w3c record"), active_files); } else { /* really bad record... */ total_bad++; print_warning(_("Skipping bad record"), active_files); } /* let's try again */ return logs_next_record(precord); } } } else { /* first time initialization */ struct log_file *current_log = active_files, *next_log; first_time = 0; active_files = 0; total_rec = 0; total_ignore = 0; total_bad = 0; /* let's reorder log files */ while(current_log != 0) { /* Read first record */ int try_next_file = 0; int found_good_rec = 0; while(!try_next_file) { if(jump_next_record(current_log) != 0) { if (verbose) fprintf(stderr,_("Could not read any record from file %s.\n"), current_log->filename); try_next_file = 1; found_good_rec = 0; } else { if(parse_record(buffer, ¤t_log->cur_record)) { /* As first record, check if stupid Netscape header stuff */ if ( strncmp(buffer,"format=",7) == 0 ) { /* Skipping Netscape header record */ if (verbose>1) printf("%s\n",_("Skipping Netscape header record")); /* count it as ignored... */ total_ignore++; } else { /* Check if it's a W3C header or IIS Null-Character line */ if ((buffer[0]=='\0') || (buffer[0]=='#')) { total_ignore++; print_warning(_("Skipping garbage w3c record"), current_log); } else { /* really bad record... */ total_bad++; print_warning(_("Skipping bad record"), current_log); } } } else { try_next_file = 1; found_good_rec = 1; } } } next_log = current_log->next; /* backup list element before to change it's children */ if(found_good_rec) { /* We have the first record... insert the file in the right place in the list */ insert_log(current_log); } else { /* nothing in this file, just remove it from the pool */ free_log_struct(current_log); } current_log = next_log; /* jump to next element */ } /* for(...) */ } /* first_time */ if(active_files) { /* The youngest record is actually on the top of the list */ memcpy(precord, &active_files->cur_record, sizeof(struct log_struct)); return 0; } else return 1; } /*******************************************/ /* LOGS_REWIND */ /*******************************************/ /* * Once all files in the pool have been read, * rewind them all, so that a call to * logs_next_record gives us the first record * again. */ void logs_rewind() { struct log_file *current_log; /* rewinding all files */ for(current_log = read_files; current_log != 0; current_log = current_log->next) { if(current_log->gz_log) gzrewind(current_log->gz_file); else rewind(current_log->file); } first_time = 1; active_files = read_files; read_files = 0; } /*******************************************/ /* LOGS_CLOSE */ /*******************************************/ /* * Close log files, free internal data structs */ void logs_close() { struct log_file *current_log, *next_log; current_log = read_files; while(current_log != 0) { next_log = current_log->next; free_log_struct(current_log); current_log = next_log; } } /*********************************************/ /* OUR_GZGETS - enhanced gzgets for log only */ /*********************************************/ static char *our_gzgets(struct log_file *plog, char *buf, int size) { char *out_cp = buf; /* point to output */ while (1) { if (plog->gz_f_cp > (plog->gz_f_buf + plog->gz_f_end - 1)) /* load? */ { plog->gz_f_end = gzread(plog->gz_file, plog->gz_f_buf, GZ_BUFSIZE); if (plog->gz_f_end <= 0) return Z_NULL; plog->gz_f_cp = plog->gz_f_buf; } if (--size) /* more? */ { *out_cp++ = *plog->gz_f_cp; if (*plog->gz_f_cp++ == '\n') { *out_cp='\0'; return buf; } } else { *out_cp='\0'; return buf; } } } /*********************************************/ /* JUMP_NEXT_RECORD */ /*********************************************/ /* * This function, given a log file, fills the buffer * with the next record. * If the record is too long, it is truncated. * */ static int jump_next_record(struct log_file *log) { char *ret; if(log->gz_log) ret = our_gzgets(log, buffer, BUFSIZE); else ret = fgets(buffer, BUFSIZE, log->file); if(ret != 0) { total_rec++; log->nr_records++; if (strlen(buffer) == (BUFSIZE-1)) { print_warning(_("Error: Skipping oversized log record"), log); total_bad++; /* bump bad record counter */ /* get the rest of the record */ while ( (log->gz_log)? (our_gzgets(log, buffer, BUFSIZE) != Z_NULL): (fgets(buffer, BUFSIZE, log->file) != NULL) ) { if (strlen(buffer) < BUFSIZE-1) { if (debug_mode && verbose) fprintf(stderr,"%s\n",buffer); break; } if (debug_mode && verbose) fprintf(stderr,"%s",buffer); } return jump_next_record(log); /* go get next record if any */ } else return 0; } else return 1; } /*********************************************/ /* INSERT_LOG */ /*********************************************/ /* * Insert log in the right place in the list of logs * so that the log file with the youngest current * record is on top of the list. * */ static void insert_log(struct log_file *plog) { /* current_logs_seconds is made to sort entries. To avoid an integer overflow, we substract 1990 to the year -- we assume nobody will process logs that old... Question : did CLF log format even exist at this time ? :-) */ unsigned long current_log_seconds = ((((((plog->cur_record.year - 1990) *12 + plog->cur_record.month) * 31 + plog->cur_record.day) * 24) + plog->cur_record.hour) *60 + plog->cur_record.min) * 60 + plog->cur_record.sec; unsigned long cur_seconds; struct log_file *cur, *prev; cur = active_files; prev = 0; for(; cur != 0; prev = cur, cur = cur->next) { cur_seconds = ((((((cur->cur_record.year - 1990) *12 + cur->cur_record.month) * 31 + cur->cur_record.day) * 24) + cur->cur_record.hour) *60 + cur->cur_record.min) * 60 + cur->cur_record.sec; if(current_log_seconds <= cur_seconds) break; } if(prev == 0) { /* Add on the top of the list */ plog->next = active_files; active_files = plog; } else { plog->next = cur; prev->next = plog; } } /*********************************************/ /* FREE_LOG_STRUCT -- Does what it says */ /*********************************************/ static void free_log_struct(struct log_file *plog) { if(plog->gz_log) gzclose(plog->gz_file); else fclose(plog->file); free(plog->filename); free(plog->gz_f_buf); free(plog); } /*********************************************/ /* PRINT_WARNING -- does what it says */ /*********************************************/ static void print_warning(const char * msg, struct log_file *log) { if (verbose) { fprintf(stderr,_("Log file %s, line %lu: %s"), log->filename, log->nr_records, msg); if (debug_mode) fprintf(stderr,":\n%s",buffer); else fprintf(stderr,"\n"); } } ���������������������������������������������������������������������������������������������������������webdruid-0.5.4.orig/install-sh����������������������������������������������������������������������0000700�0000000�0000000�00000012721�10066113350�016212� 0����������������������������������������������������������������������������������������������������ustar �root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������#! /bin/sh # # install - install a program, script, or datafile # This comes from X11R5 (mit/util/scripts/install.sh). # # Copyright 1991 by the Massachusetts Institute of Technology # # Permission to use, copy, modify, distribute, and sell this software and its # documentation for any purpose is hereby granted without fee, provided that # the above copyright notice appear in all copies and that both that # copyright notice and this permission notice appear in supporting # documentation, and that the name of M.I.T. not be used in advertising or # publicity pertaining to distribution of the software without specific, # written prior permission. M.I.T. makes no representations about the # suitability of this software for any purpose. It is provided "as is" # without express or implied warranty. # # Calling this script install-sh is preferred over install.sh, to prevent # `make' implicit rules from creating a file called install from it # when there is no Makefile. # # This script is compatible with the BSD install script, but was written # from scratch. It can only install one file at a time, a restriction # shared with many OS's install programs. # set DOITPROG to echo to test this script # Don't use :- since 4.3BSD and earlier shells don't like it. doit="${DOITPROG-}" # put in absolute paths if you don't have them in your path; or use env. vars. mvprog="${MVPROG-mv}" cpprog="${CPPROG-cp}" chmodprog="${CHMODPROG-chmod}" chownprog="${CHOWNPROG-chown}" chgrpprog="${CHGRPPROG-chgrp}" stripprog="${STRIPPROG-strip}" rmprog="${RMPROG-rm}" mkdirprog="${MKDIRPROG-mkdir}" transformbasename="" transform_arg="" instcmd="$mvprog" chmodcmd="$chmodprog 0755" chowncmd="" chgrpcmd="" stripcmd="" rmcmd="$rmprog -f" mvcmd="$mvprog" src="" dst="" dir_arg="" while [ x"$1" != x ]; do case $1 in -c) instcmd="$cpprog" shift continue;; -d) dir_arg=true shift continue;; -m) chmodcmd="$chmodprog $2" shift shift continue;; -o) chowncmd="$chownprog $2" shift shift continue;; -g) chgrpcmd="$chgrpprog $2" shift shift continue;; -s) stripcmd="$stripprog" shift continue;; -t=*) transformarg=`echo $1 | sed 's/-t=//'` shift continue;; -b=*) transformbasename=`echo $1 | sed 's/-b=//'` shift continue;; *) if [ x"$src" = x ] then src=$1 else # this colon is to work around a 386BSD /bin/sh bug : dst=$1 fi shift continue;; esac done if [ x"$src" = x ] then echo "install: no input file specified" exit 1 else true fi if [ x"$dir_arg" != x ]; then dst=$src src="" if [ -d $dst ]; then instcmd=: else instcmd=mkdir fi else # Waiting for this to be detected by the "$instcmd $src $dsttmp" command # might cause directories to be created, which would be especially bad # if $src (and thus $dsttmp) contains '*'. if [ -f $src -o -d $src ] then true else echo "install: $src does not exist" exit 1 fi if [ x"$dst" = x ] then echo "install: no destination specified" exit 1 else true fi # If destination is a directory, append the input filename; if your system # does not like double slashes in filenames, you may need to add some logic if [ -d $dst ] then dst="$dst"/`basename $src` else true fi fi ## this sed command emulates the dirname command dstdir=`echo $dst | sed -e 's,[^/]*$,,;s,/$,,;s,^$,.,'` # Make sure that the destination directory exists. # this part is taken from Noah Friedman's mkinstalldirs script # Skip lots of stat calls in the usual case. if [ ! -d "$dstdir" ]; then defaultIFS=' ' IFS="${IFS-${defaultIFS}}" oIFS="${IFS}" # Some sh's can't handle IFS=/ for some reason. IFS='%' set - `echo ${dstdir} | sed -e 's@/@%@g' -e 's@^%@/@'` IFS="${oIFS}" pathcomp='' while [ $# -ne 0 ] ; do pathcomp="${pathcomp}${1}" shift if [ ! -d "${pathcomp}" ] ; then $mkdirprog "${pathcomp}" else true fi pathcomp="${pathcomp}/" done fi if [ x"$dir_arg" != x ] then $doit $instcmd $dst && if [ x"$chowncmd" != x ]; then $doit $chowncmd $dst; else true ; fi && if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd $dst; else true ; fi && if [ x"$stripcmd" != x ]; then $doit $stripcmd $dst; else true ; fi && if [ x"$chmodcmd" != x ]; then $doit $chmodcmd $dst; else true ; fi else # If we're going to rename the final executable, determine the name now. if [ x"$transformarg" = x ] then dstfile=`basename $dst` else dstfile=`basename $dst $transformbasename | sed $transformarg`$transformbasename fi # don't allow the sed command to completely eliminate the filename if [ x"$dstfile" = x ] then dstfile=`basename $dst` else true fi # Make a temp file name in the proper directory. dsttmp=$dstdir/#inst.$$# # Move or copy the file name to the temp name $doit $instcmd $src $dsttmp && trap "rm -f ${dsttmp}" 0 && # and set any options; do chmod last to preserve setuid bits # If any of these fail, we abort the whole thing. If we want to # ignore errors from any of these, just make sure not to ignore # errors from the above "$doit $instcmd $src $dsttmp" command. if [ x"$chowncmd" != x ]; then $doit $chowncmd $dsttmp; else true;fi && if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd $dsttmp; else true;fi && if [ x"$stripcmd" != x ]; then $doit $stripcmd $dsttmp; else true;fi && if [ x"$chmodcmd" != x ]; then $doit $chmodcmd $dsttmp; else true;fi && # Now rename the file to the real destination. $doit $rmcmd -f $dstdir/$dstfile && $doit $mvcmd $dsttmp $dstdir/$dstfile fi && exit 0 �����������������������������������������������webdruid-0.5.4.orig/README��������������������������������������������������������������������������0000600�0000000�0000000�00000262212�10066113350�015072� 0����������������������������������������������������������������������������������������������������ustar �root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������The WebDruid - A web server log file analysis tool Copyright 2003-2004 by Fabien Chevalier (fabien@juliana-multimedia.com) Copyright 1997-2000 by Bradford L. Barrett (brad@mrunix.net) Distributed under the GNU GPL. See the files "COPYING" and "Copyright" supplied with the distribution for additional info. Last updated: 28 Feb 2004 by Fabien Chevalier (fabien@juliana-multimedia.com) What is The WebDruid? ---------------------- The WebDruid is a web site log file analysis program which produces usage statistics in HTML format for viewing with a browser. The results are presented in both columnar and graphical format, which facilitates interpretation. Yearly, monthly, daily and hourly usage statistics are presented, along with the ability to display usage by site, URL, referrer, user agent (browser), search engines & search string, entry/exit page, username and country (some information is only available if supported and present in the log files being processed). Processed data may also be exported into most database and spreadsheet programs that support tab delimited data formats. The WebDruid supports CLF (common log format) log files, as well as Combined log formats as defined by NCSA and others, and variations of these which it attempts to handle intelligently. In addition, W3C log format is also supported, wich allows The WebDruid to run against Microsoft IIS logs. Gzip compressed logs may be used as input directly. Any log filename that ends with a '.gz' extension will be assumed to be in gzip format and uncompressed on the fly as it is being read. In addition, the WebDruid also supports DNS lookup capabilities if enabled at compile time. See the file DNS.README for additional information. The WebDruid, when used with the graphviz tools, can produce path graphs and users flow graphs. Path graph allows you to see the preferred path your users take when browsing on your web site. Users flow will draw lines between the urls, each line being balanced by the number of hits. For more information see 'Using path & users flox graphs'. This documentation applies to The WebDruid version 0.5.0 What is The WebDruid history? ------------------------------ Damned, it's the history of an hazardous meet...see below if you want to know more, or jump directly to the next part if that bothers you ;-) o June 2003 o We're at the beginning of June 2003. I'm studying in an 'engineering school' (100% French concept - I don't think it has any equivalent anywhere in the world). Here in France you are engineer because of your diploma, not because of your work, or your membership to any king of 'engineering order'. By the way...i digress! I'm at this time a second year student (International equivalent ~ something as one year before graduation). I have to take a trainee course somewhere. It's my duty to find a company to work in for the next two months. But we student don't interest companies - AT ALL! It's damned hard to find something to do... and overall i want something interesting! o Mid - June 2003 o A miracle has happened. A web agency looks for a student to enhance its free software log analysis tool. And yes, i enjoy working with free software... you work with people with extraordinary technical skills, and have the opportunity to learn each time new concepts, as there is no limit in the understanding of the sofware you can have. Only your brain (or your stomach :-)) can prevent you from understanding 'a bit more' how it works. I've myself discovered free software & linux something around year 2K. Since 2001 i depend solely on free software for my day to day computer use. It has been a great occasion to discover the various sides of UNIX system programming, as well as UNIX typical services. But i digress again! So i answer the offer, go to meet the people, and...yes! I'm the right man. They will take me to try to enhance 'The Webalizer' (It's the WebDruid little brother - see http://www.webalizer.org). o June 2003 - August 2003 o So i'm working on the webalizer, trying to improve it and asked some people what they would like for it. I look also around a bit to see what other people have done ( to be accurate i even did that before to accept to work on the webalizer - i just like to see how it looks like before to engage with some stuff). From this work came two features of what would become the WebDruid: - path graphs & users flow - reworked search engine support In the same time it seems that a lot of people use the webalizer not as a web server analysis tool, but for web site analysis. The enhancements i've done don't fit well with the Webalizer's author's view. But people seem interested in the new features i've done. I take the decision to 'fork' from the webalizer, and to build something to analyse the website, and not the web server. I will learn later this is called 'Web Mining'. o September 2003 - January 2004 o I'm back to school, but working also for a company to rebuild a computer network from scratch. It's time for me to learn a bit more about Samba 3, LDAP, pam and all what is required to build a mixed //GNU Linux//Win2K server//Win XP Pro// network up and running. Grrr...I don't have time to work on this new project at all (except 3 days around november 11th, where i write the first pieces of the XML backend). o February 2004 o I've spent a few days working on the WebDruid. Implemented multiple log files support, preparing the first tarball, cleaning up things a bit, fixing a last minute bug. And here is the first public release... Running the WebDruid --------------------- The WebDruid was designed to be run from a Unix command line prompt or as a cron job. There are several command line options which will modify the results it produces, and configuration files can be used as well. The format of the command line is: webdruid [options ...] [log-file1] [log-file2] [log-file3] ... Where 'options' can be one or more of the supported command line switches described below. 'log-fileX' is the name of a log file to process (see below for more detailed information). If a dash ("-") is specified for the log-file name, STDIN will be used. More than one file can be specified. In that case, the WebDruid sorts the records to be able to process theme 'in order'. Once executed, the general flow of the program follows: o A default configuration file is scanned for. A file named 'webdruid.conf' is searched for in the current directory, and if found, it's configuration data is parsed. If the file is not present in the current directory, the file '/etc/webdruid/webdruid.conf' is searched for and, if found, is used instead. o Any command line arguments given to the program are parsed. This may include the specification of a configuration file, which is processed at the time it is encountered. o If any log file was specified, it is opened and made ready for processing. If no log file was given, or the filename '-' is specified on the command line, STDIN is used for input. o If an output directory was specified, the program does a 'chdir' to that directory in preparation for generating output. If no output directory was given, the current directory is used. o If a non-zero number of DNS Children processes were specified, they will be started, and the specified log files will be processed a first time, either creating or updateing the specified DNS cache file. o The global search engines file (usually /usr/local/share/webdruid/engines.list) is loaded and parsed. o The local search engines file /etc/webdruid/engines.list is loaded and parsed. o If no hostname was given, the program attempts to get the hostname using a uname system call. If that fails, 'localhost' is used. o A history file is searched for. This file keeps previous month totals used on the main index.html page. The file is named 'webalizer.hist', and is kept in the specified output directory, o If incremental processing was specified, a data file is searched for and loaded if found, containing the 'internal state' data of the program at the end of a previous run. The file is named 'incremental.1', kept in the specified output directory. o Main processing begins on the log file. If the log spans multiple months, a separate HTML document is created for each month. o After main processing, the main 'index.html' page is created, which has totals by month and links to each months HTML document. o A new history file is saved to disk, which includes totals generated by The WebDruid during the current run. o If incremental processing was specified, a data file is written that contains the 'internal state' data at the end of this run. Incremental Processing ---------------------- The WebDruid has incremental run capability. Simply put, this allows processing large log files by breaking them up into smaller pieces, and processing these pieces instead. What this means in real terms is that you can now rotate your log files as often as you want, and still be able to produce monthly usage statistics without the loss of any detail. This is accomplished by saving and restoring all relevant internal data to a disk file between runs. Doing so allows the program to 'start where it left off' so to speak, and allows the preservation of detail from one run to the next. Some special precautions need to be taken when using the incremental run capability of The WebDruid. Configuration options should not be changed between runs, as that could cause corruption of the internal stored data. For example, changing the MangleAgents level will cause different representations of user agents to be stored, producing invalid results in the user agents section of the report. If you need to change configuration options, do it at the end of the month after normal processing of the previous month and before processing the current month. You may also want to delete the 'incremental.1' file as well (or whatever name was specified using the "IncrementalName" configuration option). The WebDruid also attempts to prevent data duplication by keeping track of the timestamp of the last record processed. This timestamp is then compared to current records being processed, and any records that were logged previous to that timestamp are ignored. This, in theory, should allow you to re-process logs that have already been processed, or process logs that contain a mix of processed/not yet processed records, and not produce duplication of statistics. The only time this may break is if you have duplicate timestamps in two separate log files... any records in the second log file that do have the same timestamp as the last record in the previous log file processed, will be discarded as if they had already been processed. There are lots of ways to prevent this however, for example, stopping the web server before rotating logs will prevent this situation. This setup also necessitates that you always process logs in chronological order, otherwise data loss will occur as a result of the timestamp compare. Using path & users flow graphs ------------------------------ The graphs require the use of an external utility, 'dot', part of the graphviz package. The source of graphviz can be downloaded here : http://www.research.att.com/sw/tools/graphviz/ Since it has an unusual license, some people might prefer not to have it on their systems. That's why it is NOT REQUIRED to run the WebDruid. If dot is not found where it should be (see DotLocation config-file parameter), path & users flow graphs will be automatically disabled. Output Produced --------------- The WebDruid produces several reports (html) and graphics for each month processed. In addition, a summary page is generated for the current and previous months (up to 12), a history file is created and if incremental mode is used, the current month's processed data. The exact location and names of these files can be changed using configuration files and command line options. The files produced, (default names) are: index.html - Main summary page (extension may be changed) usage.png - Yearly graph displayed on the main index page usage_YYYYMM.html - Monthly summary page (extension may be changed) usage_YYYYMM.png - Monthly usage graph for specified month/year daily_usage_YYYYMM.png - Daily usage graph for specified month/year hourly_usage_YYYYMM.png - Hourly usage graph for specified month/year path_graph_YYYYMM.png - Path graph for specified month/year users_flow_YYYYMM.png - Users flow for specified month/year site_YYYYMM.html - All sites listing (if enabled) url_YYYYMM.html - All urls listing (if enabled) ref_YYYYMM.html - All referrers listing (if enabled) agent_YYYYMM.html - All user agents listing (if enabled) search_YYYYMM.html - All search strings listing (if enabled) webalizer.hist - Previous month history incremental.1 - Incremental Data site_YYYYMM.tab - tab delimited sites file url_YYYYMM.tab - tab delimited urls file ref_YYYYMM.tab - tab delimited referrers file agent_YYYYMM.tab - tab delimited user agents file user_YYYYMM.tab - tab delimited usernames file search_YYYYMM.tab - tab delimited search string file The yearly (index) report shows statistics for a 12 month period, and links to each month. The monthly report has detailed statistics for that month with additional links to any URL's and referrers found. The various totals shown are explained below. Hits Any request made to the server which is logged, is considered a 'hit'. The requests can be for anything... html pages, graphic images, audio files, CGI scripts, etc... Each valid line in the server log is counted as a hit. This number represents the total number of requests that were made to the server during the specified report period. Files Some requests made to the server, require that the server then send something back to the requesting client, such as a html page or graphic image. When this happens, it is considered a 'file' and the files total is incremented. The relationship between 'hits' and 'files' can be thought of as 'incoming requests' and 'outgoing responses'. Pages Pages are, well, pages! Generally, any HTML document, or anything that generates an HTML document, would be considered a page. This does not include the other stuff that goes into a document, such as graphic images, audio clips, etc... This number represents the number of 'pages' requested only, and does not include the other 'stuff' that is in the page. What actually constitutes a 'page' can vary from server to server. The default action is to treat anything with the extension '.htm', '.html' or '.cgi' as a page. A lot of sites will probably define other extensions, such as '.phtml', '.php3' and '.pl' as pages as well. Some people consider this number as the number of 'pure' hits... I'm not sure if I totally agree with that viewpoint. Some other programs (and people :) refer to this as 'Pageviews'. Sites Each request made to the server comes from a unique 'site', which can be referenced by a name or ultimately, an IP address. The 'sites' number shows how many unique IP addresses made requests to the server during the reporting time period. This DOES NOT mean the number of unique individual users (real people) that visited, which is impossible to determine using just logs and the HTTP protocol (however, this number might be about as close as you will get). Visits Whenever a request is made to the server from a given IP address (site), the amount of time since a previous request by the address is calculated (if any). If the time difference is greater than a pre-configured 'visit timeout' value (or has never made a request before), it is considered a 'new visit', and this total is incremented (both for the site, and the IP address). The default timeout value is 30 minutes (can be changed), so if a user visits your site at 1:00 in the afternoon, and then returns at 3:00, two visits would be registered. Note: in the 'Top Sites' table, the visits total should be discounted on 'Grouped' records, and thought of as the "Minimum number of visits" that came from that grouping instead. Note: Visits only occur on PageType requests, that is, for any request whose URL is one of the 'page' types defined with the PageType option. Due to the limitation of the HTTP protocol, log rotations and other factors, this number should not be taken as absolutely accurate, rather, it should be considered a pretty close "guess". KBytes The KBytes (kilobytes) value shows the amount of data, in KB, that was sent out by the server during the specified reporting period. This value is generated directly from the log file, so it is up to the web server to produce accurate numbers in the logs (some web servers do stupid things when it comes to reporting the number of bytes). In general, this should be a fairly accurate representation of the amount of outgoing traffic the server had, regardless of the web servers reporting quirks. Note: A kilobyte is 1024 bytes, not 1000 :) Top Entry and Exit Pages The Top Entry and Exit tables give a rough estimate of what URL's are used to enter your site, and what the last pages viewed are. Because of limitations in the HTTP protocol, log rotations, etc... this number should be considered a good "rough guess" of the actual numbers, however will give a good indication of the overall trend in where users come into, and exit, your site. Command Line Options -------------------- The WebDruid supports many different configuration options that will alter the way the program behaves and generates output. Most of these can be specified on the command line, while some can only be specified in a configuration file. The command line options are listed below, with references to the corresponding configuration file keywords. -------------------------------------------------------------------------- General Options --------------- -h Display all available command line options and exit program. -v Display program version and exit program. -d Display additional 'debugging' information for errors and warnings produced during processing. This normally would not be used except to determine why you are getting all those errors and wanted to see the actual data. Normally The WebDruid will just tell you it found an error, not the actual data. This option will display the data as well. Config file keyword: Debug -F Specify that the log being used is a ftp log. Normally, the WebDruid expects to find a valid CLF or Combined format we server log file. This option allows you to process wu-ftpd xferlogs as well. Config file keyword: LogType -f Fold out of sequence log records back into analysis, by treating them as if they were the same date/time as the last good record. Normally, out of sequence log records are ignored. If you run apache, don't worry about this. Config file keyword: FoldSeqErr -i Ignore history file. USE WITH CAUTION. This causes The WebDruid to ignore any existing history file produced from previous runs and generate it's output from scratch. The effect will be as if The WebDruid is being run for the first time and any previous statistics will be lost (although the HTML documents, if any, will not be deleted) on the main index.html (yearly) web page. Config file keyword: IgnoreHist -p Preserve state (incremental processing). This allows the processing of partial logs in increments. At the end of the program, all relevant internal data is saved, so that it may be restored the next time the program is run. This allows sites that must rotate their logs more than once a month to still be able to use The WebDruid, and not worry about having to gather and feed an entire months logs to the program at the end of the month. See the section on "Incremental Processing" below for additional information. The default is to not perform incremental processing. Use this command line option to enable the feature. Config file keyword: Incremental -q Quiet mode. Normally, The WebDruid will produce various messages while it runs letting you know what it's doing. This option will suppress those messages. It should be noted that this WILL NOT suppress errors and warnings, which are output to STDERR. Config file keyword: Quiet -Q ReallyQuiet mode. This allows suppression of _all_ messages generated by The WebDruid, including warnings and errors. Useful when The WebDruid is run as a cron job. Config file keyword: ReallyQuiet -T Display timing information. The WebDruid keeps track of the time it begins and ends processing, and normally displays the total processing time at the end of each run. If quiet mode (-q or 'Quiet yes' in configuration file) is specified, this information is not displayed. This option forces the display of timing totals if quiet mode has been specified, otherwise it is redundant and will have no effect. Config file keyword: TimeMe -c file This option specifies a configuration file to use. Configuration files allow greater control over how The WebDruid behaves, and there are several ways to use them. As of version 0.98, The WebDruid searches for a default configuration file in the current directory named "webdruid.conf", and if not found, will search in the /etc/webdruid directory for a file of the same name. In addition, you may specify a configuration file to use with this command line option. -n name This option specifies the hostname for the reports generated. The hostname is used in the title of all reports, and is also prepended to URL's in the reports. This allows The WebDruid to be run on log files for 'virtual' web servers or web servers that are different than the machine the reports are located on, and still allows clicking on the URL's to go to the proper location. If a hostname is not specified, either on the command line or in a configuration file, The WebDruid attempts to determine the hostname using a 'uname' system call. If this fails, "localhost" will be used as the hostname. Config file keyword: HostName -o dir This options specifies the output directory for the reports. If not specified here or in a configuration file, the current default directory will be used for output. Config file keyword: OutputDir -x name This option allows the generated pages to have an extension other than '.html', which is the default. Do not include the leading period ('.') when you specify the extension. Config file keyword: HTMLExtension -P name Specify the file extensions for 'pages'. Pages (sometimes called 'PageViews') are normally html documents and CGI scripts that display the whole page, not just parts of it. Some system will need to define a few more, such as 'phtml', 'php3' or 'pl' in order to have them counted as well. The default is 'htm*' and 'cgi' for web logs and 'txt' for ftp. Config file keyword: PageType -t name This option specifies the title string for all reports. This string is used, in conjunction with the hostname (if not blank) to produce the actual title. If not specified, the default of "Usage Statistics for" will be used. Config file keyword: ReportTitle -Y Supress Country graph. Normally, The WebDruid produces country statistics in both Graph and Columnar forms. This option will suppress the Country Graph from being generated. Config file keyword: CountryGraph -G Supress hourly graph. Normally, The WebDruid produces hourly statistics in both Graph and Columnar forms. This option will suppress the Hourly Graph only from being generated. Config file keyword: HourlyGraph -H Supress Hourly statistics. Normally, The WebDruid produces hourly statistics in both Graph and Columnar forms. This option will suppress the Hourly Statistics table only from being generated. Config file keyword: HourlyStats -L Disable Graph Legends. The color coded legends displayed on the in-line graphs can be disabled with this option. The default is to display the legends. Config file keyword: GraphLegend -l num Graph Lines. Specify the number of background reference lines displayed on the in-line graphics produced. The default is 2 lines, however can range anywhere from zero ('0') for no lines, up to 20 lines (looks funny!). Config file keyword: GraphLines -P name Page type. This is the extension of files you consider to be pages for Pages calculations (sometimes called 'pageviews'). The default is 'htm*' and 'cgi' (plus whatever HTMLExtension you specified if it is different). Don't use a period! -m num Specify a 'visit timeout'. Visits are calculated by looking at the time difference between the current and last request made by a specific host. If the difference is greater that the visit timeout value, the request is considered a new visit. This value is specified in number of seconds. The default is 30 minutes (1800). Config file keyword: VisitTimeout -M num Mangle user agent names. Normally, The WebDruid will keep track of the user agent field verbatim. Unfortunately, there are a ton of different names that user agents go by, and the field also reports other items such as machine type and OS used. For Example, Netscape 4.03 running on Windows 95 will report a different string than Netscape 4.03 running on Windows NT, so even though they are the same browser type, they will be considered as two totally different browsers by The WebDruid. For that matter, Netscape 4.0 running on Windows NT will report different names if one is run on an Alpha and the other on an Intel processor! Internet Exploder is even worse, as it reports itself as if it were Netscape and you have to search the given string a little deeper to discover that it is really MSIE! In order to consolidate generic browser types, this option will cause The WebDruid to 'mangle' the user agent field, attempting to consolidate generic browser types. There are 6 levels that can be specified, each producing different levels of detail. Level 5 displays only the browser name (MSIE or Mozilla) and the major version number. Level 4 will also display the minor version number (single decimal place). Level 3 will display the minor version number to two decimal places. Level 2 will add any sub-level designation (such as Mozilla/3.01Gold or MSIE 3.0b). Level 1 will also attempt to add the system type. The default Level 0 will disable name mangling and leave the user agent field unmodified, producing the greatest amount of detail. Configuration file keyword: MangleAgents -g num This option allows you to specify the level of domains name grouping to be performed. The numeric value represents the level of grouping, and can be thought of as the 'number of dots' to be displayed. The default value of 0 disables any domain name grouping. Configuration file keyword: GroupDomains -D name This allows the specification of a DNS Cache file name. This filename MUST be specified if you have dns lookups enabled (using the -N command line switch or DNSChildren configuration keyword). The filename is relative to the default output directory if an absolute path is not specified (ie: starts with a leading '/'). This option is only available if DNS support was enabled at compile time, otherwise an 'Invalid Keyword' error will be generated. See the DNS.README file for additional information regarding DNS lookups. -N num Number of DNS child processes to use for reverse DNS lookups. If specified, a DNSCache name MUST be specified also. If you do not wish a DNS cache file to be generated, specify a value of zero ('0') to disable it. This does not prevent using an existing cache file, only the generation of one at run time. See the DNS.README file for additional information regarding DNS lookups. Hide Options ------------ The following options take a string argument to use as a comparison for matching. Except for the IndexAlias option, the string argument can be plain text, or plain text that either starts or ends with the wildcard character '*'. For Example: Given the string "yourmama/was/here", the arguments "was", "*here" and "your*" will all produce a match. -a name This option allows hiding of user agents (browsers) from the "Top User Agents" table in the report. This option really isn't too useful as there are a zillion different names that current browsers go by, depending where they were obtained, however you might have some particular user agents that hit your site a lot that you would like to exclude from the list. You must have a web server that includes user agents in it's log files for this option to be of any use. In addition, it is also useless if you disable the user agent table in the report (see the -A command line option or "TopAgents" configuration file keyword). You can specify as many of these as you want on the command line. The wildcard character '*' can be used either in front of or at the end of the string. (ie: Mozilla/4.0* would match anything that starts with the string "Mozilla/4.0"). Config file keyword: HideAgent -r name This option allows hiding of referrers from the "Top Referrer" table in the report. Referrers are URL's, either on your own local site or a remote site, that referred the user to a URL on your web server. This option is normally used to hide your own server from the table, as your own pages are usually the top referrers to your own pages (well, you get the idea). You must have a web server that includes referrer information in the log files for this option to be of any use. In addition, it is also useless if you disable the referrers table in the report (see the -R command line option or "TopReferrers" configuration file keyword). You can specify as many of these as you like on the command line. Config file keyword: HideReferrer -s name This option allows hiding of sites from the "Top Sites" table in the report. Normally, you will only want to hide your own domain name from the report, as it usually is one of the top sites to visit your web server. This option is of no use if you disable the top sites table in the report (see the -S command line option or "TopSites" configuration file option). Config file keyword: HideSite -X This causes all individual sites to be hidden, which results in only grouped sites to be displayed on the report. Config file keyword: HideAllSites -u name This option allows hiding of URL's from the "Top URL's" table in the report. Normally, this option is used to hide images, audio files and other objects your web server dishes out that would otherwise clutter up the table. This option is of no use if you disable the top URL's table in the report (see the -U command line option or "TopURLs" configuration file keyword). Config file keyword: HideURL -I name This option allows you to specify additional index.html aliases. The WebDruid usually strips the string 'index.' from URL's before processing, which has the effect of turning a URL such as /somedir/index.html into just /somedir/ which is really the same URL and should be treated as such. This option allows you to specify _additional_ strings that are to be treated the same way. Use with care, improper use could cause unexpected results. For example, if you specify the alias string of 'home', a URL such as /somedir/homepages/brad/home.html would be converted into just /somedir/ which probably isn't what was intended. This option is useful if your web server uses a different default index page other than the standard 'index.html' or 'index.htm', such as 'home.html' or 'homepage.html'. The string specified is searched for _anywhere_ in the URL, so "home.htm" would turn both "/somedir/home.htm" and "/somedir/home.html" into just "/somedir/". Go easy on this one, each string specified will be scanned for in EVERY log record, so if you specify a bunch of these, you will notice degraded performance. Wildcards are not allowed on this one. Config file keyword: IndexAlias Table Size Options ------------------ -e num This option specifies the number of entries to display in the "Top Entry Pages" table. To disable the table, use a value of zero (0). Config file keyword: TopEntry -E num This option specifies the number of entries to display in the "Top Exit Pages" table. To disable the table, use a value of zero (0). Config file keyword: TopExit -A num This option specifies the number of entries to display in the "Top User Agents" table. To disable the table, use a value of zero (0). Config file keyword: TopAgents -C num This option specifies the number of entries to display in the "Top Countries" table. To disable the table, use a value of zero (0). Config file keyword: TopCountries -R num This option specifies the number of entries to display in the "Top Referrers" table. To disable the table, use a value of zero (0). Config file keyword: TopReferrers -S num This option specifies the number of entries to display in the "Top Sites" table. To disable the table, use a value of zero (0). Config file keyword: TopSites -U num This option specifies the number of entries to display in the "Top URL's" table. To disable the table, use a value of zero (0). Config file keyword: TopURLs -------------------------------------------------------------------------- CONFIGURATION FILES ------------------- The WebDruid allows configuration files to be used in order to simplify life for all. There are several ways that configuration files are accessed by the WebDruid. When The WebDruid first executes, it looks for a default configuration file named "webdruid.conf" in the current directory, and if not found there, will look for "/etc/webdruid/webdruid.conf". In addition, configuration files may be specified on the command line with the '-c' option. There are lots of different ways you can combine the use of configuration files and command line options to produce various results. The WebDruid always looks for and reads configuration options from a default configuration file before doing anything else. Because of this, you can override options found in the default file by use of additional configuration files specified on the command line or command line options themselves. If you specify a configuration file on the command line, you can override options in it by additional command line options which follow. For example, most users will most likely want to create the default file /etc/webdruid/webdruid.conf and place options in it to specify the hostname, log file, table options, etc... At the end of the month when a different log file is to be used (the end of month log), you can run The WebDruid as usual, but put the different filename on the end of the command line, which will override the log file specified in the configuration file. It should be noted that you cannot override some configuration file options by the use of command line arguments. For example, if you specify "Quiet yes" in a configuration file, you cannot override this with a command line argument, as the command line option only _enables_ the feature (-q option). The configuration files are standard ASCII text files that may be created or edited using any standard editor. Blank lines and lines that begin with a pound sign ('#') are ignored. Any other lines are considered to be configuration lines, and have the form "Keyword Value", where the 'Keyword' is one of the currently available configuration keywords defined below, and 'Value' is the value to assign to that particular option. Any text found after the keyword up to the end of the line is considered the keyword's value, so you should not include anything after the actual value on the line that is not actually part of the value being assigned. The file "sample.conf" provided with the distribution contains lots of useful documentation and examples as well. It should be noted that you do not have to use any configuration files at all, in which case, default values will be used (which should be sufficient for most sites). -------------------------------------------------------------------------- General Configuration Keywords ------------------------------ LogFile This defines the log file to use. It should be a fully qualified name (ie: contain the path), but relative names will work as well. If not specified, the logfile defaults to STDIN. LogType This specified the log file type being used. Normally, The WebDruid processes web logs in either CLF or Combined format. You may also process wu-ftpd xferlog formatted logs, or squid proxy logs by setting the appropriate type using this keyword. Values may be either 'clf', 'ftp' or 'squid'. Ensure that you specify the proper file type, otherwise you will be presented with a long stream of 'invalid record' messages ;) Command line argument: -F OutputDir This defines the output directory to use for the reports. If it is not specified, the current directory is used. Command line argument: -o FontFace This is the True Type font face name. This font is used for drawing text inside charts. This is NOT the file name, this is the name that you would use in your favourite word processor when selecting this font. True Type fonts are searched in the path defined by the GDFONTPATH environment variable if it is set. If GDFONTPATH is not set, The WebDruid will look for fonts in the following directories: - /usr/share/fonts/truetype/freefont - /usr/share/fonts/truetype The default fontname is "FreeSerif". It is part of the FreeFonts package, available at http://savannah.nongnu.org/projects/freefont/ ReportTitle This specifies the title to use for the generated reports. It is used in conjunction with the hostname (unless blank) to produce the final report titles. If not defined, the default of "Usage Statistics for" is used. Command line argument: -t HostName This defines the hostname. The hostname is used in the report title as well as being prepended to URL's in the "Top URL's" table. This allows The WebDruid to be run on "virtual" web servers, or servers that do not reside on the local machine, and allows clicking on the URL to go to the right place. If not specified, The WebDruid attempts to get the hostname via a 'uname' system call, and if that fails, will default to "localhost". Command line argument: -n UseHTTPS Causes the links in the 'Top URL's' table to use 'https://' instead of the default 'http://' prefix. Not much use if you run a mix of secure/insecure servers on your machine. Only useful if you run the analysis on a secure servers logs, and want the links in the table to work properly. Quiet This allows you to enable or disable informational messages while it is running. The values for this keyword can be either 'yes' or 'no'. Using "Quiet yes" will suppress these messages, while "Quiet no" will enable them. The default is 'no' if not specified, which will allow The WebDruid to display informational messages. It should be noted that this option has no effect on Warning or Error messages that may be generated, as they go to STDERR. Command line argument: -q TimeMe This allows you to display timing information regardless of any "quiet mode" specified. Useful only if you did in fact tell the WebDruid to be quiet either by using the -q command line option or the "Quiet" keyword, otherwise timing stats are normally displayed anyway. Values may be either 'yes' or 'no', with the default being 'no'. Command line argument: -T GMTTime This keyword allows timestamps to be displayed in GMT (UTC) time instead of local time. Normally The WebDruid will display timestamps in the time-zone of the local machine (ie: PST or EDT). This keyword allows you to specify the display of timestamps in GMT (UTC) time instead. Values may be either 'yes' or 'no'. Default is 'no'. Debug This tells The WebDruid to display additional information when it encounters Warnings or Errors. Normally, The WebDruid will just tell you it found a bad record or field. This option will enable the display of the actual data that produced the Warning or Error as well. Useful only if you start getting lots of Warnings or Errors and want to determine the cause. Values may be either 'yes' or 'no', with the default being 'no'. Command line argument: -d IgnoreHist This suppresses the reading of a history file. USE WITH EXTREME CAUTION as the history file is how The WebDruid keeps track of previous months. The effect of this option is as if The WebDruid was being run for the very first time, and any previous data is discarded. Values may be either 'yes' or 'no', with the default being 'no'. Command line argument: -i FoldSeqErr Allows log records that are out of sequence to be folded back into the analysis, by treating them as if they had the same date/time as the last good record. Normally, out of sequence log records are simply ignored. If you run apache, don't worry about this. VisitTimeout Set the 'visit timeout' value. Visits are determined by looking at the time difference between the current and last request made by a specific site. If the difference in time is greater than the visit timeout value, the request is considered a new visit. The value is in number of seconds, and defaults to 30 minutes (1800). Command line argument: -m PageType Allows you to define the 'page' type extension. Normally, people consider HTML and CGI scripts as 'pages'. This option allows you to specify what extensions you consider a page. Default is 'htm*' and 'cgi' for web logs, and 'txt' for ftp logs. Command line argument: -P GraphLegend Enable/disable the display of color coded legends on the produced graphs. Default is 'yes', to display them. Command line argument: -L GraphLines Specify the number of background reference lines to display on produced graphs. The default is 2. To disable the use of background lines, use zero ('0'). Command line argument: -l PathGraph This keyword is used to either enable or disable the creation and display of the path graph. Path is...really a path, i mean a list of pages the user went to. What is displayed is only paths that were taken more than once. The drawback of this criteria is that if 200 users follow exactly the same path in your site, except for the last pages, they won't appear here because their path was different at the end. If anyone has an good algorithm to solve this issue, he should drop me a note. Another issue is because of client side and proxy caching. You can never know when a user goes back in your site. Values may be either 'yes' or 'no', with the default being 'yes'. Command line argument: none PathGraphMaxPaths This keyword is used to limit the number of path displayed by the path graph. Value is a positive number. Default value: 10 Command line argument: none UsersFlow This keyword is used to either enable or disable the creation and display of the users flow graph. This graph tries to show you the flows of the users in your web site. Each node represents a page, and each edge is balanced by the number of hits from a page to another page. Values may be either 'yes' or 'no', with the default being 'yes'. Command line argument: none UsersFlowMaxEdges This keyword is used to limit the number of edges displayed by the users flow graph. Value is a positive number. Default value: 30 Command line argument: none DotLocation This keyword takes as argument the FULL PATH to the 'dot' utility. It must be set only if you use path graphs or users flow feature, and the default value (/usr/bin/dot) doesn't point to the right place. Command line argument: none CountryGraph This keyword is used to either enable or disable the creation and display of the Country Usage graph. Values may be either 'yes' or 'no', with the default being 'yes'. Command line argument: -Y DailyGraph This keyword is used to either enable or disable the creation and display of the Daily Usage graph. Values may be either 'yes' or 'no', with the default being 'yes'. DailyStats This keyword is used to either enable or disable the creation and display of the Daily Usage statistics table. Values may be either 'yes' or 'no', with the default being 'yes'. HourlyGraph This keyword is used to either enable or disable the creation and display of the Hourly Usage graph. Values may be either 'yes' or 'no', with the default being 'yes'. Command line argument: -G HourlyStats This keyword is used to either enable or disable the creation and display of the Hourly Usage statistics table. Values may be either 'yes' or 'no', with the default being 'yes'. Command line argument: -H IndexAlias This allows additional 'index.html' aliases to be defined. Normally, The WebDruid scans for and strips the string "index." from URL's before processing them. This turns a URL such as /somedir/index.html into just /somedir/ which is really the same URL. This keyword allows _additional_ names to be treated in the same fashion for sites that use different default names, such as "home.html". The string is scanned for anywhere in the URL, so care should be used if and when you define additional aliases. For example, if you were to use an alias such as 'home', the URL /somedir/homepages/brad/home.html would be turned into just /somedir/ which probably isn't the intended result. Instead, you should have specified 'home.htm' which would correctly turn the URL into /somedir/homepages/brad/ like intended. It should also be noted that specified aliases are scanned for in EVERY log record... A bunch of aliases will noticeably degrade performance as each record has to be scanned for every alias defined. You don't have to specify 'index.' as it is always the default. Command line argument: -I MangleAgents The MangleAgents keyword specifies the level of user agent name mangling, if any. There are 6 levels that may be specified, each producing a different level of detail displayed. Level 5 displays only the browser name (MSIE or Mozilla) and the major version number. Level 4 adds the minor version (single decimal place). Level 3 adds the minor version to two decimal places. Level 2 will also add any sub-level designation (such as Mozilla/3.01Gold or MSIE 3.0b). Level 1 will also attempt to add the system type. The default level 0 will leave the user agent field unmodified and produces the greatest amount of detail. Command line argument: -M SearchEngine THIS KEYWORD IS NO MORE SUPPORTED Incremental This allows incremental processing to be enabled or disabled. Incremental processing allows processing partial logs without the loss of detail data from previous runs in the same month. This feature saves the 'internal state' of the program so that it may be restored in following runs. See the section above titled "Incremental Processing" for additional information. The value may be 'yes' or 'no', with the default being 'no'. Command line argument: -p DNSCache Specifies the DNS cache filename. This name is relative to the default output directory unless an absolute name is given (ie: starts with '/'). See the DNS.README file for additional information. DNSChildren The number of DNS children processes to run in order to create/update the DNS cache file. If specified, the DNS cache filename must also be specified (see above). Use a value of zero ('0') to disable. See the DNS.README file for additional information. Top Table Keywords ------------------ TopAgents This allows you to specify how many "Top" user agents are displayed in the "Top User Agents" table. The default is 15. If you do not want to display user agent statistics, specify a value of zero (0). The display of user agents will only work if your web server includes this information in its log file (ie: a combined log format file). Command line argument: -A AllAgents Will cause a separate HTML page to be generated for all normally visable User Agents. A link will be added to the bottom of the "Top User Agents" table if enabled. Value can be either 'yes' or 'no', with 'no' being the default. TopCountries This allows you to specify how many "Top" countries are displayed in the "Top Countries" table. The default is 30. If you want to disable the countries table, specify a value of zero (0). Command line argument: -C TopReferrers This allows you to specify how many "Top" referrers are displayed in the "Top Referrers" table. The default is 30. If you want to disable the referrers table, specify a value of zero (0). The display of referrer information will only work if your web server includes this information in its log file (ie: a combined log format file). Command line argument: -R AllReferrers Will cause a separate HTML page to be generated for all normally visable Referrers. A link will be added to the "Top Referrers" table if enabled. Value can be either 'yes' or 'no', with 'no' being the default. TopSites This allows you to specify how many "Top" sites are displayed in the "Top Sites" table. The default is 30. If you want to disable the sites table, specify a value of zero (0). Command line argument: -S TopKSites Identical to TopSites, except for the 'by KByte' table. Default is 10. No command line switch for this one. AllSites Will cause a separate HTML page to be generated for all normally visable Sites. A link will be added to the bottom of the "Top Sites" table if enabled. Value can be either 'yes' or 'no', with 'no' being the default. TopURLs This allows you to specify how many "Top" URL's are displayed in the "Top URL's" table. The default is 30. If you want to disable the URL's table, specify a value of zero (0). Command line argument: -U TopKURLs Identical to TopURLs, except for the 'by KByte' table. Default is 10. No command line switch for this one. AllURLs Will cause a separate HTML page to be generated for all normally visable URLs. A link will be added to the bottom of the "Top URLs" table if enabled. Value can be either 'yes' or 'no', with 'no' being the default. TopEntry Allows you to specify how many "Top Entry Pages" are displayed in the table. The default is 10. If you want to disable the table, specify a value of zero (0). Command line argument: -e TopExit Allows you to specify how many "Top Exit Pages" are displayed in the table. The default is 10. If you want to disable the table, specify a value of zero (0). Command line argument: -E TopSearch Allows you to specify how many "Top Search Strings" are displayed in the table. The default is 20. If you want to disable the table, specify a value of zero (0). Only works if using combined log format (ie: contains referrer information). TopUsers This allows you to specify how many "Top" usernames are displayed in the "Top Usernames" table. Usernames are only available if you use http authentication on your web server, or when processing wu-ftpd xferlogs. The default value is 20. If you want to disable the Username table, specify a value of zero (0). AllUsers Will cause a separate HTML page to be generated for all normally visable usernames. A link will be added to the bottom of the "Top Usernames" table if enabled. Value can be either 'yes' or 'no', with 'no' being the default. AllSearchStr Will create a separate HTML page to be generated for all normally visable Search Strings. A link will be added to the bottom of the "Top Search Strings" table if enabled. Value can be either 'yes' or 'no', with 'no' being the default. Hide Object Keywords -------------------- These keywords allow you to hide user agents, referrers, sites, URL's and usernames from the various "Top" tables. The value for these keywords are the same as those used in their command line counterparts. You can specify as many of these as you want without limit. Refer to the section above on "Command Line Options" for a description of the string formatting used as the value. Values cannot exceed 80 characters in length. HideAgent This allows specified user agents to be hidden from the "Top User Agents" table. Not very useful, since there a zillion different names by which browsers go by today, but could be useful if there is a particular user agent (ie: robots, spiders, real-audio, etc..) that hits your site frequently enough to make it into the top user agent listing. This keyword is useless if 1) your log file does not provide user agent information or 2) you disable the user agent table. Command line argument: -a HideReferrer This allows you to hide specified referrers from the "Top Referrers" table. Normally, you would only specify your own web server to be hidden, as it is usually the top generator of references to your own pages. Of course, this keyword is useless if 1) your log file does not include referrer information or 2) you disable the top referrers table. Command line argument: -r HideSite This allows you to hide specified sites from the "Top Sites" table. Normally, you would only specify your own web server or other local machines to be hidden, as they are usually the highest hitters of your web site, especially if you have their browsers home page pointing to it. Command line argument: -s HideAllSites This allows hiding all indvidual sites from the display, which can be useful when a lot of groupings are being used (since grouped records cannot be hidden). It is particularly useful in conjunction with the GroupDomain feature, however can be useful in other situations as well. Value can be either 'yes' or 'no', with 'no' the default. Command line argument: -X HideURL This allows you to hide URL's from the "Top URL's" table. Normally, this is used to hide items such as graphic files, audio files or other 'non-html' files that are transferred to the visiting user. Command line argument: -u HideUser This allows you to hide Usernames from the "Top Usernames" table. Usernames are only available if you use http based authentication on your web server. Group Object Keywords --------------------- The Group* keywords allow object grouping based on Site, URL, Referrer, User Agent and Usernames. Combined with the Hide* keywords, you can customize exactly what will be displayed in the 'Top' tables. For example, to only display totals for a particular directory, use a GroupURL and HideURL with the same value (ie: '/help/*'). Group processing is only done after the individual record has been fully processed, so name mangling and site total updates have already been performed. Because of this, groups are not counted in the main site total (as that would cause duplication). Groups can be displayed in bold and shaded as well. Grouped records are not, by default, hidden from the report. This allows you to display a grouped total, while still being able to see the individual records, even if they are part of the group. If you want to hide the detail records, follow the Group* directive with a Hide* one using the same value. There are no command line switches for these keywords. The Group* keywords also accept an optional label to be displayed instead of the actual value used. This label should be separated from the value by at least one whitespace character, such as a space or tab character. See the sample.conf file for examples. GroupReferrer Allows grouping Referrers. Can be handy for some of the major search engines that have multiple host names a referral could come from. GroupURL This keyword allows grouping URL's. Useful for grouping complete directory trees. GroupSite This keywords allows grouping Sites. Most used for grouping top level domains and unresolved IP address for local dial-ups, etc... GroupAgent Groups User Agents. A handy example of how you could use this one is to use "Mozilla" and "MSIE" as the values for GroupAgent and HideAgent keywords. Make sure you put the "MSIE" one first. GroupDomains Allows automatic grouping of domains. The numeric value represents the level of grouping, and can be thought of as 'the number of dots' to display. A 1 will display second level domains only (xxx.xxx), a 2 will display third level domains (xxx.xxx.xxx) etc... The default value of 0 disables any domain grouping. Command line argument: -g GroupUser Allows grouping of usernames. Combined with a group name, this can be handy for displaying statistics on a particular group of users without displaying their real usernames. GroupShading Allows shading of table rows for groups. Value can be 'yes' or 'no', with the default being 'yes'. GroupHighlight Allows bolding of table rows for groups. Value can be 'yes' or 'no', with the default being 'yes'. Ignore/Include Object Keywords ---------------------- These keywords allow you to completely ignore log records when generating statistics, or to force their inclusion regardless of ignore criteria. Records can be ignored or included based on site, URL, user agent, referrer and username. Be aware that by choosing to ignore records, the accuracy of the generated statistics become skewed, making it impossible to produce an accurate representation of load on the web server. These keywords behave identical to the Hide* keywords above, where the value can have a leading or trailing wildcard '*'. These keywords, like the Hide* ones, have an absolute limit of 80 characters for their values. These keywords do not have any command line switch counterparts, so they may only be specified in a configuration file. It should also be pointed out that using the Ignore/Include combination to selectively exclude an entire site while including a particular 'chunk' is _extremely_ inefficient, and should be avoided. Try grep'ing the records into a separate file and process it instead. IgnoreSite This allows specified sites to be completely ignored from the generated statistics. IgnoreURL This allows specified URL's to be completely ignored from the generated statistics. One use for this keyword would be to ignore all hits to a 'temporary' directory where development work is being done, but is not accessible to the outside world. IgnoreReferrer This allows records to be ignored based on the referrer field. IgnoreAgent This allows specified User Agent records to be completely ignored from the statistics. Maybe useful if you really don't want to see all those hits from MSIE :) IgnoreUser This allows specified username records to be completely ignored from the statistics. Usernames can only be used if you use http authentication on your server. IncludeSite Force the record to be processed based on hostname. This takes precedence over the Ignore* keywords. IncludeURL Force the record to be processed based on URL. This takes precedence over the Ignore* keywords. IncludeReferrer Force the record to be processed based on referrer. This takes precedence over the Ignore* keywords. IncludeAgent Force the record to be processed based on user agent. This takes precedence over the Ignore* keywords. IncludeUser Force the record to be processed based on username. Usernames are only available if you use http based authentication on your server. This takes precedence over the Ignore* keywords. Dump Object Keywords -------------------- The Dump* Keywords allow text files to be generated that can then be used for import into most database, spreadsheet and other external programs. The file is a standard tab delimited text file, meaning that each column is separated by a tab (0x09) character. A header record may be included if required, using the 'DumpHeader' keyword. Since these files contain all records that have been processed, including normally hidden records, an alternate location for the files can be specified using the 'DumpPath' keyword, otherwise they will be located in the default output directory. DumpPath Specifies an alternate location for the dump files. The default output location will be used otherwise. The value is the path portion to use, and normally should be an absolute path (ie: has a leading '/' character), however relative path names can be used as well, and will be relative to the output directory location. DumpExtension Allows the dump filename extensions to be specified. The default extension is "tab", however may be changed with this option. DumpHeader Allows a header record to be written as the first record of the file. Value can be either 'yes' or 'no', with the default being 'no'. DumpSites Dump tab delimited sites file. Value can be either 'yes' or 'no', with the default being 'no'. The filename used is site_YYYYMM.tab (YYYY=year, MM=month). DumpURLs Dump tab delimited url file. Value can be either 'yes' or 'no', with the default being 'no'. The filename used is url_YYYYMM.tab (YYYY=year, MM=month). DumpReferrers Dump tab delimited referrer file. Value can be either 'yes' or 'no', with the default being 'no'. Filename used is ref_YYYYMM.tab (YYYY=year, MM=month). Referrer information is only available if present in the log file (ie: combined web server log). DumpAgents Dump tab delmited user agent file. Value can be either 'yes' or 'no', with the default being 'no'. Filename used is agent_YYYYMM.tab (YYYY=year, MM=month). User agent information is only available if present in the log file (ie: combined web server log). DumpUsers Dump tab delimited username file. Value can be either 'yes' or 'no', with the default being 'no'. FIlename used is user_YYYYMM.tab (YYYY=year, MM=month). The username data is only avilable if processing a wu-ftpd xferlog or http authentication is used on the web server and that information is present in the log. DumpSearchStr Dump tab delimited search string file. Value can be either 'yes' or 'no', with the default being 'no'. Filename used is search_YYYYMM.tab (YYYY=year, MM=month). the search string data is only available if referrer information is present in the log being processed and recognized search engines were found and processed. HTML Generation Keywords ------------------------ These keywords allow you to customize the HTML code that The WebDruid produces, such as adding a corporate logo or links to other web pages. You can specify as many of these keywords as you like, and they will be used in the order that they are found in the file. Values cannot exceed 80 characters in length, so you may have to break long lines up into two or more lines. There are no command line counterparts to these keywords. HTMLExtension Allows generated pages to use something other than the default 'html' extension for the filenames. Do not include the leading period ('.') when you specify the extension. Command line argument: -x HTMLPre Allows code to be inserted at the very beginning of the HTML files. Defaults to the standard HTML 3.2 DOCTYPE record. Be careful not to include any HTML here, as it is inserted _before_ the <HTML> tag in the file. Use it for server-side scripting capabilities, such as php3, to insert scripting files and other directives. HTMLHead Allows you to insert HTML code between the <HEAD></HEAD> block. There is no default. Useful for adding scripts to the HTML page, such as Javascript or php3, or even just for adding a few META tags to the document. HTMLBody This keyword defines HTML code to be placed immediately after the <HEAD> section of the report, just before the title and "summary period/generated on" lines. If used, the first HTMLHead line MUST include a <BODY> tag. Put whatever else you want in subsequent lines, but keep in mind the placement of this code in relation to the title and other aspects of the web page. Some typical uses are to change the page colors and possibly add a corporate logo (graphic) in the top right. If not specified, a default <BODY> tag is used that defines page color, text color and link colors (see "sample.conf" file for example). HTMLPost This keyword defines HTML code that is placed after the title and "summary period/generated on" lines, just before the initial horizontal rule <HR> tag. Normally this keyword isn't needed, but is provided in case you included a large graphic or some other weird formatting tag in the HTMLHead section that needs to be cleaned up or terminated before the main report section. HTMLTail This keyword defines HTML code that is placed at the bottom right side of the report. It is inserted in a <TABLE> section between table data <TD>..</TD> tags, and is top and right aligned within the table. Normally this keyword is used to provide a link back to your home page or insert a small graphic at the bottom right of the page. HTMLEnd This allows insertion of closing code, at the very end of the page. The default is to put the closing </BODY> and </HTML> tags. If specified, you _must_ specify these tags yourself. -------------------------------------------------------------------------- Notes on Web Log Files ---------------------- The WebDruid supports CLF log formats, which should work for just about everyone. If you want User Agent or Referrer information, you need to make sure your web server supplies this information in it's log file, and in a format that the WebDruid can understand. While The WebDruid will try to handle many of the subtle variations in log formats, some will not work at all. Most web servers output CLF format logs by default. For Apache, in order to produce the proper log format, add the following to the httpd.conf file: LogFormat "%h %l %u %t \"%r\" %s %b \"%{Referer}i\" \"%{User-agent}i\"" This instructs the Apache web server to produce a 'combined' log that includes the referrer and user agent information on the end of each record, enclosed in quotes (This is the standard recommended by both Apache and NCSA). Netscape and other web servers have similar capabilities to alter their log formats. (note: the above works for apache servers up to V1.2. V1.3 and higher now have additional ways to specify log formats... refer to included documentation). Notes on Referrers ------------------ Referrers are weird critters... They take many shapes and forms, which makes it much harder to analyze than a typical URL, which at least has some standardization. What is contained in the referrer field of your log files varies depending on many factors, such as what site did the referral, what type of system it comes from and how the actual referral was generated. Why is this? Well, because a user can get to your site in many ways... They may have your site bookmarked in their browser, they may simply type your sites URL field in their browser, they could have clicked on a link on some remote web page or they may have found your site from one of the many search engines and site indexes found on the web. The WebDruid attempts to deal with all this variation in an intelligent way by doing certain things to the referrer string which makes it easier to analyze. Of course, if your web server doesn't provide referrer information, you probably don't really care and are asking yourself why you are reading this section... Most referrer's will take the form of "http://somesite.com/somepage.html", which is what you will get if the user clicks on a link somewhere on the web in order to get to your site. Some will be a variation of this, and look something like "file:/some/such/sillyname", which is a reference from a HTML document on the users local machine. Several variations of this can be used, depending on what type of system the user has, if he/she is on a local network, the type of network, etc... To complicate things even more, dynamic HTML documents and HTML documents that are generated by CGI scripts or external programs produce lots of extra information which is tacked on to the end of the referrer string in an almost infinite number of ways. If the user just typed your URL into their browser or clicked on a bookmark, there won't be any information in the referrer field and will take the form "-". In order to handle all these variations, The WebDruid parses the referrer field in a certain way. First, if the referrer string begins with "http", it assumes it is a normal referral and converts the "http://" and following hostname to lowercase in order to simplify hiding if desired. For example, the referrer "HTTP://WWW.MyHost.Com/This/Is/A/HTML/Document.html" will become "http://www.myhost.com/This/Is/A/HTML/Document.html". Notice that only the "http://" and hostname are converted to lower case... The rest of the referrer field is left alone. This follows standard convention, as the actual method (HTTP) and hostname are always case insensitive, while the document name portion is case sensitive. Referrers that came from search engines, dynamic HTML documents, CGI scripts and other external programs usually tack on additional information that it used to create the page. A common example of this can be found in referrals that come from search engines and site indexes common on the web. Sometimes, these referrers URL's can be several hundred characters long and include all the information that the user typed in to search for your site. The WebDruid deals with this type of referrer by stripping off all the query information, which starts with a question mark '?'. The Referrer "http://search.yahoo.com/search?p=usa%26global%26link" will be converted to just "http://search.yahoo.com/search". When a user comes to your site by using one of their bookmarks or by typing in your URL directly into their browser, the referrer field is blank, and looks like "-". Most sites will get more of these referrals than any other type. The WebDruid converts this type of referral into the string "- (Direct Request)". This is done in order to make it easier to hide via a command line option or configuration file option. This is because the character "-" is a valid character elsewhere in a referrer field, and if not turned into something unique, could not be hidden without possibly hiding other referrers that shouldn't be. Notes on Character Escaping --------------------------- The HTTP protocol defines certain ways that URL's can look and behave. To some extent, referrer fields follow most of the same conventions. Character escaping is a technique by which non-printable or other non-ASCII (and even some ASCII) characters can be used in a URL. This is done by placing the Hexadecimal value of the character in the URL, preceeded by a percent sign '%'. Since Hex values are made up of ASCII characters, any character can be escaped to ensure only printable ASCII characters are present in the URL. Some systems take this concept to the extreme and escape all sorts of stuff, even characters that don't need to be escaped. To deal with this, The WebDruid will un-escape URL's and referrers before being processed. For Example, the URL "/www.mrunix.net/%7Ebrad/resume.html" is the same URL as "/www.mrunix.net/~brad/resume.html", a very common form of a URL to access users web pages. If the URL's were not un-escaped, they would be treated as two separate documents, even though they are really one and the same. Search String Analysis ---------------------- Compared to The Webalizer, the search string analysis has been competely rewritten in the WebDruid. The SearchEngine keyword is not supported anymore. The search engines are now listed in a file called 'engines.list', located in /usr/local/share/webdruid (or where you installed the WebDruid). This list contains a list of about 80 search engines. It should be enough for most cases. Users are encouraged to send more search engines to me (fabien@juliana-multimedia.com), if they think they are usefull for other people. The list is now internally stored in a sorted array. It will be able to grow without harming performance as before. The report layout has been also profondly modified. The search strings are now grouped per search engines, and sorted per use count whithin these groups. This allows you to know wich keywords search engines have 'catched' when they have scanned your site. It will also give a good indication of what users were searching for when they stumbled across your site. When it is avaible (currently only with Google), the WebDruid detects the character set used by the user who typed in the search engines. It then translates this search engine's string to UTF-8, and outputs it in UTF-8. For engines other than google, the default is to take the system running webdruid's charset as the input charset. Notes on Visits/Entry/Exit Figures ---------------------------------- The majority of data analyzed and reported on by The WebDruid is as accurate and correct as possible based on the input log file. However, due to the limitation of the HTTP protocol, the use of firewalls, proxy servers, multi-user systems, the rotation of your log files, and a myriad of other conditions, some of these numbers cannot, without absolute accuracy, be calculated. In particular, Visits, Entry Pages and Exit Pages are suspect to random errors due to the above and other conditions. The reason for this is twofold, 1) Log files are finite in size and time interval, and 2) There is no way to distinguish multiple individual users apart given only an IP address. Because log files are finite, they have a beginning and ending, which can be represented as a fixed time period. There is no way of knowing what happened previous to this time period, nor is it possible to predict future events based on it. Also, because it is impossible to distinguish individual users apart, multiple users that have the same IP address all appear to be a single user, and are treated as such. This is most common where corporate users sit behind a proxy/firewall to the outside world, and all requests appear to come from the same location (the address of the proxy/firewall itself). Dynamic IP assignment (used with dial-up internet accounts) also present a problem, since the same user will appear as to come from multiple places. For example, suppose two users visit your server from XYZ company, which has their network connected to the Internet by a proxy server 'fw.xyz.com'. All requests from the network look as though they originated from 'fw.xyz.com', even though they were really initiated from two separate users on different PC's. The WebDruid would see these requests as from the same location, and would record only 1 visit, when in reality, there were two. Because entry and exit pages are calculated in conjunction with visits, this situation would also only record 1 entry and 1 exit page, when in reality, there should be 2. As another example, say a single user at XYZ company is surfing around your website.. They arrive at 11:52pm the last day of the month, and continue surfing until 12:30am, which is now a new day (in a new month). Since a common practice is to rotate (save then clear) the server logs at the end of the month, you now have the users visit logged in two different files (current and previous months). Because of this (and the fact that the WebDruid clears history between months), the first page the user requests after midnight will be counted as an entry page. This is unavoidable, since it is the first request seen by that particular IP address in the new month. For the most part, the numbers shown for visits, entry and exit pages are pretty good 'guesses', even though they may not be 100% accurate. They do provide a good indication of overall trends, and shouldn't be that far off from the real numbers to count much. You should probably consider them as the 'minimum' amount possible, since the actual (real) values should always be equal or greater in all cases. Exporting WebDruid Data ------------------------ The WebDruid now has the ability to dump all object tables to tab delimited ascii text files, which can then be imported into most popular database and spreadsheet programs. The files are not normally produced, as on some sites they could become quite large, and are only enabled by the use of the Dump* configuration keywords. The filename extensions default to '.tab' however may be changed using the 'DumpExtension' keyword. Since this data contains all items, even those normally hidden, it may not be desirable to have them located in the output directory where they may be visable to normal web users.. For this reason, the 'DumpPath' configuration keyword is available, and allows the placement of these files somewhere outside the normal web server document tree. An optional 'header' record may be written to these files as well, and is useful when the data is to be imported into a spreadsheet.. databases will not normally need the header. If enabled, the header is simply the column names as the first record of the file, tab separated. Log files and The WebDruid --------------------------- Most sites will choose to have The WebDruid run from cron at specified intervals. Care should be taken to ensure that data is not lost as a result of log file rotations. A suggested practice is to rotate your web server logs at the end of each month as close to midnight as possible, then have The WebDruid process the 'end of month' log file before running statistics on the new, current log. On our systems, a shell script called 'rotate_logs' is run at midnight, the end of each month. This script file looks like: ------------------------- file: rotate_logs ------------------------------ #!/bin/sh # halt the server kill `cat /var/lib/httpd/logs/httpd.pid` # define backup names OLD_ACCESS_LOG=/var/lib/httpd/logs/old/access_log.`date +%y%m%d-%H%M%S` OLD_ERROR_LOG=/var/lib/httpd/logs/old/error_log.`date +%y%m%d-%H%M%S` # make end of month copy for analyzer cp /var/lib/httpd/logs/access_log /var/lib/httpd/logs/access_log.backup # move files to archive directory mv /var/lib/httpd/logs/access_log `echo $OLD_ACCESS_LOG` mv /var/lib/httpd/logs/error_log `echo $OLD_ERROR_LOG` # restart web server /usr/sbin/httpd # compress the archived files /bin/gzip $OLD_ACCESS_LOG /bin/gzip $OLD_ERROR_LOG ------------------------- end of file ------------------------------------ This script first stops the web server using a 'kill' command. Apache keeps the PID of the server in the file httpd.pid, so we use it as the argument for the kill. Next, it defines some names for the backup files, which are basically the name of the files with the date and time appended to the end of them. It then makes a copy of the log file, appended with '.backup' in the log directory, moves the current log files to an archive directory (/var/lib/httpd/logs/old) and restarts the server. This setup allows the web server to be down for the minimum amount of time needed, which is important for busy sites. If you don't want to stop the server, you can remove the initial 'kill' command, and replace the '/usr/sbin/httpd' line with "kill -1 `cat /var/lib/httpd/logs/httpd.pid`" command instead, On most web servers, this will cause a restart of the server and create the new log files in the process... At this point, we have made copies of the previous months logs, the web server is going about it's business as usual, and we have all the time in the world to do any other additional processing we want. The last two lines of the script compress the archived logs using the GNU zip program (gzip). Remember, we still have a copy of the log which we can now run The WebDruid on without having to do any further processing. Next, we define two crontab entries. The first runs the above 'rotate_logs' script at midnight at the end of the month. The second runs The WebDruid on the '.backup' log file created above at 5 minutes after midnight. This gives other end of month processing jobs a chance to run so we don't bog the system down too much. If you have lots of end of month stuff going on, you can change the timing to suit your needs. The crontab entries look something like: ------------------------- crontab entries -------------------------------- # Rotate web server logs and run monthly analysis 0 0 1 * * /usr/local/adm/rotate_logs 5 0 1 * * /usr/bin/webdruid -Q /var/lib/httpd/logs/access_log.backup ------------------------- end of crontab --------------------------------- As you can see, the log rotations occur at midnight, and the analysis is done at 5 minutes after. Once you verify that The WebDruid ran successfully, the access_log.backup file can be deleted as it isn't needed any more. If you need to re-run the analysis, you still have the compressed archive copy that the shell script created. In order for the above analysis to work properly, you should have already created an /etc/webdruid/webdruid.conf configuration file suitable for your site, or otherwise specify configuration options or a configuration file on the crontab command line above. If you want The WebDruid to be run more often than once a month, you can specify additional crontab entries to do this as well. Care should be taken however to ensure that The WebDruid is not running when the end of month processing above occurs, or unpredictable results may happen (such as an inability to rotate the logs due to a file lock). The easiest way is to run it on the half hour with a crontab entry like: 30 * * * * /usr/bin/webdruid Known Issues ------------ o Memory Usage. The WebDruid makes liberal use of memory for internal data structures during analysis. Lack of real physical memory will noticeably degrade performance by doing lots of swapping between memory and disk. One user who had a rather large log file noticed that The WebDruid took over 7 hours to run with only 16 Meg of memory. Once memory was increased, the time was reduced to a few minutes. o Performance. The Hide*, Group*, Ignore*, Include* and IndexAlias configuration options can cause a performance decrease if lots of them are used. The reason for this is that every log record must be scanned for each item in each list. For example, if you are Hiding 20 objects, Grouping 20 more, and Ignoring 5, each record is scanned, at most, 46 times (20+20+5 + an IndexAlias scan). On really large log files, this can have a profound impact. It is recommended that you use the least amount of these configuration options that you can, as it will greatly improve performance. o Internationalisation. The WebDruid is not as good as it should be in this area. Work is in progress though. If you are interested in helping (either by sending tranlation .po files, or reporting issues), please drop me a note. Final Notes ----------- A lot of time and effort went into making The WebDruid, and to ensure that the results are as accurate as possible. If you find any abnormalities or inconsistent results, bugs, errors, ommisions or anything else that doesn't look right, please let me know so I can investigate the problem or correct the error. This goes for the minimal documentation as well. Suggestions for future versions are also welcome and appreciated. ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������webdruid-0.5.4.orig/preserve.h����������������������������������������������������������������������0000600�0000000�0000000�00000005542�10066113350�016217� 0����������������������������������������������������������������������������������������������������ustar �root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* The WebDruid - a web server log analysis program Copyright (C) 2003-2004 Fabien Chevalier (fabien@juliana-multimedia.com) Original webalizer copyright: Copyright (C) 1997-2001 Bradford L. Barrett (brad@mrunix.net) This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version, and provided that the above copyright and permission notice is included with all distributed copies of this or derived software. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA This software uses the gd graphics library, which is copyright by Quest Protein Database Center, Cold Spring Harbor Labs. Please see the documentation supplied with the library for additional information and license terms, or visit www.boutell.com/gd/ for the most recent version of the library and supporting documentation. */ #ifndef _PRESERVE_H #define _PRESERVE_H /* This constant defines the version we use for on disk temporary statistics storage (aka incremental mode). This is to be increased each time changes are made that would make a new release of webdruid unable to read the old format. The policy for now is to display a warning when an old file is found, and then to ignore it. */ #define INCREMENTAL_VERSION 1 /* History file - used to keep track of what we computed for previous months. */ #define HISTORY_FILENAME "webalizer.hist" extern void get_history(); /* load history file */ extern void put_history(); /* save history file */ extern int save_state(); /* save run state */ extern int restore_state(); /* restore run state */ extern int hist_month[12]; /* arrays for monthly total */ extern int hist_year[12]; extern u_long hist_hit[12]; /* calculations: used to */ extern u_long hist_files[12]; /* produce index.html */ extern u_long hist_site[12]; /* these are read and saved */ extern double hist_xfer[12]; /* in the history file */ extern u_long hist_page[12]; extern u_long hist_visit[12]; extern int hist_fday[12]; /* first/last day arrays */ extern int hist_lday[12]; #endif /* _PRESERVE_H */ ��������������������������������������������������������������������������������������������������������������������������������������������������������������webdruid-0.5.4.orig/output.c������������������������������������������������������������������������0000600�0000000�0000000�00000337007�10066113350�015723� 0����������������������������������������������������������������������������������������������������ustar �root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* The WebDruid - a web server log analysis program Copyright (C) 2003-2004 Fabien Chevalier (fabien@juliana-multimedia.com) Original webalizer copyright: Copyright (C) 1997-2001 Bradford L. Barrett (brad@mrunix.net) This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version, and provided that the above copyright and permission notice is included with all distributed copies of this or derived software. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA This software uses the gd graphics library, which is copyright by Quest Protein Database Center, Cold Spring Harbor Labs. Please see the documentation supplied with the library for additional information and license terms, or visit www.boutell.com/gd/ for the most recent version of the library and supporting documentation. */ /*********************************************/ /* STANDARD INCLUDES */ /*********************************************/ #include "config.h" #include <time.h> #include <stdio.h> #include <stdlib.h> #include <string.h> #include <unistd.h> /* normal stuff */ #include <ctype.h> #include <sys/utsname.h> #include <sys/times.h> /* ensure getopt */ #ifdef HAVE_GETOPT_H #include <getopt.h> #endif /* ensure sys/types */ #ifndef _SYS_TYPES_H #include <sys/types.h> #endif /* some systems need this */ #ifdef HAVE_MATH_H #include <math.h> #endif /* SunOS 4.x Fix */ #ifndef CLK_TCK #define CLK_TCK _SC_CLK_TCK #endif #include "webdruid.h" /* main header */ #include "lang.h" #include "hashtab.h" #include "sengine.h" #include "preserve.h" #include "linklist.h" #include "graphs.h" #include "utils.h" #include "output.h" #include "dot_output.h" /* internal function prototypes */ void write_html_head(char *, FILE *); /* head of html page */ void write_html_tail(FILE *); /* tail of html page */ void month_links(int, int); /* Page links */ void month_total_table(); /* monthly total table */ void daily_total_table(); /* daily total table */ void hourly_total_table(); /* hourly total table */ void top_sites_table(int); /* top n sites table */ void top_urls_table(int); /* top n URL's table */ void top_entry_table(int); /* top n entry/exits */ void top_refs_table(); /* top n referrers "" */ void top_agents_table(); /* top n u-agents "" */ void top_ctry_table(); /* top n countries "" */ void top_users_table(); /* top n ident table */ void path_graph_image(const char *); /* top path dot image */ void users_flow_image(const char *); /* users flow dot image*/ u_long load_url_array( UNODEPTR *); /* load URL array */ u_long load_site_array( HNODEPTR *); /* load Site array */ u_long load_ref_array( RNODEPTR *); /* load Refs array */ u_long load_agent_array(ANODEPTR *); /* load Agents array */ u_long load_ident_array(INODEPTR *); /* load ident array */ int qs_url_cmph( const void*, const void*); /* compare by hits */ int qs_url_cmpk( const void*, const void*); /* compare by kbytes */ int qs_url_cmpn( const void*, const void*); /* compare by entrys */ int qs_url_cmpx( const void*, const void*); /* compare by exits */ int qs_site_cmph(const void*, const void*); /* compare by hits */ int qs_site_cmpk(const void*, const void*); /* compare by kbytes */ int qs_ref_cmph( const void*, const void*); /* compare by hits */ int qs_agnt_cmph(const void*, const void*); /* compare by hits */ int qs_ident_cmph(const void*, const void*); /* compare by hits */ int qs_ident_cmpk(const void*, const void*); /* compare by kbytes */ int all_sites_page(u_long, u_long); /* output site page */ int all_urls_page(u_long, u_long); /* output urls page */ int all_refs_page(u_long, u_long); /* output refs page */ int all_agents_page(u_long, u_long); /* output agents page */ int all_users_page(u_long, u_long); /* output ident page */ void dump_all_sites(); /* dump sites tab file */ void dump_all_urls(); /* dump urls tab file */ void dump_all_refs(); /* dump refs tab file */ void dump_all_agents(); /* dump agents file */ void dump_all_users(); /* dump usernames file */ void generate_sengines_info(); /* outputs search engines info */ /* define some colors for HTML */ #define WHITE "#FFFFFF" #define BLACK "#000000" #define RED "#FF0000" #define ORANGE "#FF8000" #define LTBLUE "#0080FF" #define BLUE "#0000FF" #define GREEN "#00FF00" #define DKGREEN "#008040" #define GREY "#C0C0C0" #define LTGREY "#E8E8E8" #define YELLOW "#FFFF00" #define PURPLE "#FF00FF" #define CYAN "#00E0FF" #define GRPCOLOR "#D0D0E0" /* sort arrays */ UNODEPTR *u_array = NULL; /* Sort array for URL's */ HNODEPTR *h_array = NULL; /* hostnames (sites) */ RNODEPTR *r_array = NULL; /* referrers */ ANODEPTR *a_array = NULL; /* user agents */ INODEPTR *i_array = NULL; /* ident strings (username) */ u_long a_ctr = 0; /* counter for sort array */ FILE *out_fp; /*********************************************/ /* WRITE_HTML_HEAD - output top of HTML page */ /*********************************************/ void write_html_head(char *period, FILE *out_fp) { NLISTPTR lptr; /* used for HTMLhead processing */ /* HTMLPre code goes before all else */ lptr = html_pre; if (lptr==NULL) { /* Default 'DOCTYPE' header record if none specified */ fprintf(out_fp, "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\">\n\n"); } else { while (lptr!=NULL) { fprintf(out_fp,"%s\n",lptr->string); lptr=lptr->next; } } /* Standard header comments */ fprintf(out_fp,"<!-- Generated by The WebDruid Ver. %s -->\n", version); fprintf(out_fp,"<!-- -->\n"); fprintf(out_fp,"<!-- Copyright 1997-2000 Bradford L. Barrett -->\n"); fprintf(out_fp,"<!-- (brad@mrunix.net http://www.mrunix.net) -->\n"); fprintf(out_fp,"<!-- -->\n"); fprintf(out_fp,"<!-- Distributed under the GNU GPL Version 2 -->\n"); fprintf(out_fp,"<!-- Full text may be found at: -->\n"); fprintf(out_fp,"<!-- http://www.webdruid.org -->\n"); fprintf(out_fp,"<!-- -->\n"); fprintf(out_fp,"<!-- Give the power back to the programmers -->\n"); fprintf(out_fp,"<!-- Support the Free Software Foundation -->\n"); fprintf(out_fp,"<!-- (http://www.fsf.org) -->\n"); fprintf(out_fp,"<!-- -->\n"); fprintf(out_fp,"<!-- *** Generated: %s *** -->\n\n",cur_time()); fprintf(out_fp,"<HTML>\n<HEAD>\n"); fprintf(out_fp,"<meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\">\n"); fprintf(out_fp," <TITLE>%s %s - %s\n", _2utf8(_("Usage Statistics for")), hname, period); lptr=html_head; while (lptr!=NULL) { fprintf(out_fp,"%s\n",lptr->string); lptr=lptr->next; } fprintf(out_fp,"\n\n"); lptr = html_body; if (lptr==NULL) fprintf(out_fp,"\n", WHITE, BLACK, BLUE, RED); else { while (lptr!=NULL) { fprintf(out_fp,"%s\n",lptr->string); lptr=lptr->next; } } fprintf(out_fp,"

%s %s

\n",_2utf8(_("Usage Statistics for")), hname); fprintf(out_fp,"\n%s: %s
\n",_2utf8(_("Summary Period")),period); fprintf(out_fp,"%s %s
\n
\n",_2utf8(_("Generated")),_2utf8(cur_time())); lptr=html_post; while (lptr!=NULL) { fprintf(out_fp,"%s\n",lptr->string); lptr=lptr->next; } fprintf(out_fp,"
\n
\n

\n"); } /*********************************************/ /* WRITE_HTML_TAIL - output HTML page tail */ /*********************************************/ void write_html_tail(FILE *out_fp) { NLISTPTR lptr; fprintf(out_fp,"

\n"); fprintf(out_fp,"

\n


\n"); fprintf(out_fp,"\n"); fprintf(out_fp,"\n"); fprintf(out_fp,"\n"); lptr=html_tail; if (lptr) { fprintf(out_fp,"\n"); } fprintf(out_fp,"\n
\n"); fprintf(out_fp,"%s\n", _2utf8(_("Generated by"))); fprintf(out_fp,""); fprintf(out_fp,"The WebDruid %s\n",version); fprintf(out_fp,"\n\n"); while (lptr!=NULL) { fprintf(out_fp,"%s\n",lptr->string); lptr=lptr->next; } fprintf(out_fp,"
\n"); /* wind up, this is the end of the file */ fprintf(out_fp,"\n\n", version,moddate); lptr = html_end; if (lptr) { while (lptr!=NULL) { fprintf(out_fp,"%s\n",lptr->string); lptr=lptr->next; } } else fprintf(out_fp,"\n\n\n"); } /*********************************************/ /* WRITE_MONTH_HTML - does what it says... */ /*********************************************/ int write_month_html() { int i; char html_fname[256]; /* filename storage areas... */ char png1_fname[32]; char png2_fname[32]; char png3_fname[32]; char png4_fname[32]; char buffer[BUFSIZE]; /* scratch buffer */ char dtitle[256]; char htitle[256]; int path_graph_ok = 0; /* We never now what can happen... */ int users_flow_ok = 0; /* These will help us prevent dead links */ if (verbose>1) printf("%s %s %d\n",_("Generating report for"), _(l_month[cur_month-1]), cur_year); /* update history */ i=cur_month-1; hist_month[i] = cur_month; hist_year[i] = cur_year; hist_hit[i] = t_hit; hist_files[i] = t_file; hist_page[i] = t_page; hist_visit[i] = t_visit; hist_site[i] = t_site; hist_xfer[i] = t_xfer/1024; hist_fday[i] = f_day; hist_lday[i] = l_day; /* fill in filenames */ snprintf(html_fname,sizeof(html_fname),"usage_%04d%02d.%s", cur_year,cur_month,html_ext); sprintf(png1_fname,"daily_usage_%04d%02d.png",cur_year,cur_month); sprintf(png2_fname,"hourly_usage_%04d%02d.png",cur_year,cur_month); sprintf(png3_fname,"path_graph_%04d%02d",cur_year,cur_month); sprintf(png4_fname,"users_flow_%04d%02d",cur_year,cur_month); /* create PNG images for web page */ if (daily_graph) { snprintf(dtitle,sizeof(dtitle),"%s %s %d", _2utf8(_("Daily usage for")),_2utf8(_(l_month[cur_month-1])),cur_year); month_graph6 ( png1_fname, /* filename */ dtitle, /* graph title */ cur_month, /* graph month */ cur_year, /* graph year */ tm_hit, /* data 1 (hits) */ tm_file, /* data 2 (files) */ tm_site, /* data 3 (sites) */ tm_xfer, /* data 4 (kbytes) */ tm_page, /* data 5 (pages) */ tm_visit); /* data 6 (visits) */ } if (hourly_graph) { snprintf(htitle,sizeof(htitle),"%s %s %d", _2utf8(_("Hourly usage for")),_2utf8(_(l_month[cur_month-1])),cur_year); day_graph3( png2_fname, htitle, th_hit, th_file, th_page ); } /* create dot related PNG images if necessary */ if(path_graph) { path_graph_ok = !write_month_path_graph(png3_fname); } if(users_flow) { users_flow_ok = !write_month_users_flow(png4_fname); } /* now do html stuff... */ /* first, open the file */ if ( (out_fp=open_out_file(html_fname))==NULL ) return 1; snprintf(buffer,sizeof(buffer),"%s %d",_2utf8(_(l_month[cur_month-1])),cur_year); write_html_head(buffer, out_fp); month_links(path_graph_ok, users_flow_ok); month_total_table(); if (daily_graph || daily_stats) /* Daily stuff */ { fprintf(out_fp,"\n"); if (daily_graph) fprintf(out_fp,"\"%s\"

\n",png1_fname,dtitle); if (daily_stats) daily_total_table(); } if (hourly_graph || hourly_stats) /* Hourly stuff */ { fprintf(out_fp,"\n"); if (hourly_graph) fprintf(out_fp,"\"%s\"

\n",png2_fname,htitle); if (hourly_stats) hourly_total_table(); } /* Do URL related stuff here, sorting appropriately */ if ( (a_ctr=load_url_array(NULL)) ) { if ( (u_array=malloc(sizeof(UNODEPTR)*(a_ctr))) !=NULL ) { a_ctr=load_url_array(u_array); /* load up our sort array */ if (ntop_urls || dump_urls) { qsort(u_array,a_ctr,sizeof(UNODEPTR),qs_url_cmph); if (ntop_urls) top_urls_table(0); /* Top URL's (by hits) */ if (dump_urls) dump_all_urls(); /* Dump URLS tab file */ } if (ntop_urlsK) /* Top URL's (by kbytes) */ {qsort(u_array,a_ctr,sizeof(UNODEPTR),qs_url_cmpk); top_urls_table(1); } if (ntop_entry) /* Top Entry Pages */ {qsort(u_array,a_ctr,sizeof(UNODEPTR),qs_url_cmpn); top_entry_table(0);} if (ntop_exit) /* Top Exit Pages */ {qsort(u_array,a_ctr,sizeof(UNODEPTR),qs_url_cmpx); top_entry_table(1);} free(u_array); } else if (verbose) fprintf(stderr,"%s [u_array]\n",_("Can't allocate enough memory, Top URLs disabled!")); /* err */ } /* Do dot related stuff */ if(path_graph_ok) path_graph_image(png3_fname); if(users_flow_ok) users_flow_image(png4_fname); /* do hostname (sites) related stuff here, sorting appropriately... */ if ( (a_ctr=load_site_array(NULL)) ) { if ( (h_array=malloc(sizeof(HNODEPTR)*(a_ctr))) !=NULL ) { a_ctr=load_site_array(h_array); /* load up our sort array */ if (ntop_sites || dump_sites) { qsort(h_array,a_ctr,sizeof(HNODEPTR),qs_site_cmph); if (ntop_sites) top_sites_table(0); /* Top sites table (by hits) */ if (dump_sites) dump_all_sites(); /* Dump sites tab file */ } if (ntop_sitesK) /* Top Sites table (by kbytes) */ { qsort(h_array,a_ctr,sizeof(HNODEPTR),qs_site_cmpk); top_sites_table(1); } free(h_array); } else if (verbose) fprintf(stderr,"%s [h_array]\n",_("Can't allocate enough memory, Top Sites disabled!")); /* err */ } /* do referrer related stuff here, sorting appropriately... */ if ( (a_ctr=load_ref_array(NULL)) ) { if ( (r_array=malloc(sizeof(RNODEPTR)*(a_ctr))) != NULL) { a_ctr=load_ref_array(r_array); if (ntop_refs || dump_refs) { qsort(r_array,a_ctr,sizeof(RNODEPTR),qs_ref_cmph); if (ntop_refs) top_refs_table(); /* Top referrers table */ if (dump_refs) dump_all_refs(); /* Dump referrers tab file */ } free(r_array); } else if (verbose) fprintf(stderr,"%s [r_array]\n",_("Can't allocate enough memory, Top Referrers disabled!")); /* err */ } /* do search engines related stuff, if needed... */ if (ntop_search || dump_search) { FILE *all_fp = NULL; FILE *dump_fp = NULL; if(all_search) { char search_fname[256]; char buffer[256]; /* generate file name */ snprintf(search_fname,sizeof(search_fname),"search_%04d%02d.%s", cur_year,cur_month,html_ext); all_fp=open_out_file(search_fname); if(all_fp != NULL) { snprintf(buffer,sizeof(buffer),"%s %d - %s", _2utf8(_(l_month[cur_month-1])),cur_year,_2utf8(_("Search String"))); write_html_head(buffer, all_fp); } } if(dump_search) { char dump_fname[256]; /* generate filename */ snprintf(dump_fname,sizeof(dump_fname),"%s/search_%04d%02d.%s", (dump_path)?dump_path:".",cur_year,cur_month,dump_ext); dump_fp=open_out_file(dump_fname); } /* what does the real work */ generate_sengines_info(out_fp, all_fp, dump_fp); if(all_fp != NULL) { write_html_tail(all_fp); fclose(all_fp); } if(dump_fp != NULL) { fclose(dump_fp); } } /* do ident (username) related stuff here, sorting appropriately... */ if ( (a_ctr=load_ident_array(NULL)) ) { if ( (i_array=malloc(sizeof(INODEPTR)*(a_ctr))) != NULL) { a_ctr=load_ident_array(i_array); if (ntop_users || dump_users) { qsort(i_array,a_ctr,sizeof(INODEPTR),qs_ident_cmph); if (ntop_users) top_users_table(); /* top usernames table */ if (dump_users) dump_all_users(); /* dump usernames tab file */ } free(i_array); } else if (verbose) fprintf(stderr,"%s [i_array]\n",_("Can't allocate enough memory, Top Usernames disabled!")); /* err */ } /* do user agent related stuff here, sorting appropriately... */ if ( (a_ctr=load_agent_array(NULL)) ) { if ( (a_array=malloc(sizeof(ANODEPTR)*(a_ctr))) != NULL) { a_ctr=load_agent_array(a_array); if (ntop_agents || dump_agents) { qsort(a_array,a_ctr,sizeof(ANODEPTR),qs_agnt_cmph); if (ntop_agents) top_agents_table(); /* top user agents table */ if (dump_agents) dump_all_agents(); /* dump user agents tab file */ } free(a_array); } else if (verbose) fprintf(stderr,"%s [a_array]\n",_("Can't allocate enough memory, Top User Agents disabled!")); /* err */ } if (ntop_ctrys ) top_ctry_table(); /* top countries table */ write_html_tail(out_fp); /* finish up the HTML document */ fclose(out_fp); /* close the file */ return (0); /* done... */ } /*********************************************/ /* MONTH_LINKS - links to other page parts */ /*********************************************/ void month_links(int show_path_graph, int show_users_flow) { fprintf(out_fp,"\n"); if (daily_stats || daily_graph) fprintf(out_fp,"[%s]\n",_2utf8(_("Daily Statistics"))); if (hourly_stats || hourly_graph) fprintf(out_fp,"[%s]\n",_2utf8(_("Hourly Statistics"))); if (ntop_urls || ntop_urlsK) fprintf(out_fp,"[%s]\n",_2utf8(_("URLs"))); if (ntop_entry) fprintf(out_fp,"[%s]\n",_2utf8(_("Entry"))); if (ntop_exit) fprintf(out_fp,"[%s]\n",_2utf8(_("Exit"))); if (show_path_graph) fprintf(out_fp,"[%s]\n",_2utf8(_("Top Path"))); if (show_users_flow) fprintf(out_fp,"[%s]\n",_2utf8(_("Users Flow"))); if (ntop_sites || ntop_sitesK) fprintf(out_fp,"[%s]\n",_2utf8(_("Sites"))); if (ntop_refs && t_ref) fprintf(out_fp,"[%s]\n",_2utf8(_("Referrers"))); if (ntop_search && t_ref) fprintf(out_fp,"[%s]\n",_2utf8(_("Search Phrases"))); if (ntop_users && t_user) fprintf(out_fp,"[%s]\n",_2utf8(_("Users"))); if (ntop_agents && t_agent) fprintf(out_fp,"[%s]\n",_2utf8(_("Agents"))); if (ntop_ctrys) fprintf(out_fp,"[%s]\n",_2utf8(_("Countries"))); fprintf(out_fp,"\n

\n"); } /*********************************************/ /* MONTH_TOTAL_TABLE - monthly totals table */ /*********************************************/ void month_total_table() { int i,days_in_month; u_long max_files=0,max_hits=0,max_visits=0,max_pages=0; double max_xfer=0.0; days_in_month=(l_day-f_day)+1; for (i=0;i<31;i++) { /* Get max/day values */ if (tm_hit[i]>max_hits) max_hits = tm_hit[i]; if (tm_file[i]>max_files) max_files = tm_file[i]; if (tm_page[i]>max_pages) max_pages = tm_page[i]; if (tm_visit[i]>max_visits) max_visits= tm_visit[i]; if (tm_xfer[i]>max_xfer) max_xfer = tm_xfer[i]; } fprintf(out_fp,"\n"); fprintf(out_fp,"\n"); fprintf(out_fp,"\n",GREY,_2utf8(_("Monthly Statistics for")), _2utf8(_(l_month[cur_month-1])), cur_year); fprintf(out_fp,"\n"); /* Total Hits */ fprintf(out_fp,"\n" \ "\n",_2utf8(_("Total Hits")),t_hit); /* Total Files */ fprintf(out_fp,"\n" \ "\n",_2utf8(_("Total Files")),t_file); /* Total Pages */ fprintf(out_fp,"\n" \ "\n",_2utf8(_("Total")), _2utf8(_("Pages")), t_page); /* Total Visits */ fprintf(out_fp,"\n" \ "\n",_2utf8(_("Total")), _2utf8(_("Visits")), t_visit); /* Total XFer */ fprintf(out_fp,"\n" \ "\n",_2utf8(_("Total KBytes")),t_xfer/1024); fprintf(out_fp,"\n"); /**********************************************/ /* Unique Sites */ fprintf(out_fp,"" \ "\n" \ "\n",_2utf8(_("Total Unique Sites")),t_site); /* Unique URL's */ fprintf(out_fp,"" \ "\n" \ "\n",_2utf8(_("Total Unique URLs")),t_url); /* Unique Referrers */ if (t_ref != 0) fprintf(out_fp,"" \ "\n" \ "\n",_2utf8(_("Total Unique Referrers")),t_ref); /* Unique Usernames */ if (t_user != 0) fprintf(out_fp,"" \ "\n" \ "\n",_2utf8(_("Total Unique Usernames")),t_user); /* Unique Agents */ if (t_agent != 0) fprintf(out_fp,"" \ "\n" \ "\n",_2utf8(_("Total Unique User Agents")),t_agent); fprintf(out_fp,"\n"); /**********************************************/ /* Hourly/Daily avg/max totals */ fprintf(out_fp,"" \ "\n"\ "\n" \ "\n", GREY,GREY,GREY,_2utf8(_("Avg")),GREY,_2utf8(_("Max"))); fprintf(out_fp,"\n"); /* Max/Avg Hits per Hour */ fprintf(out_fp,"" \ "\n" \ "\n" \ "\n",_2utf8(_("Hits per Hour")), t_hit/(24*days_in_month),mh_hit); /* Max/Avg Hits per Day */ fprintf(out_fp,"" \ "\n" \ "\n" \ "\n",_2utf8(_("Hits per Day")), t_hit/days_in_month, max_hits); /* Max/Avg Files per Day */ fprintf(out_fp,"" \ "\n" \ "\n" \ "\n",_2utf8(_("Files per Day")), t_file/days_in_month,max_files); /* Max/Avg Pages per Day */ fprintf(out_fp,"" \ "\n" \ "\n" \ "\n",_2utf8(_("Pages per Day")), t_page/days_in_month,max_pages); /* Max/Avg Visits per Day */ fprintf(out_fp,"" \ "\n" \ "\n" \ "\n",_2utf8(_("Visits per Day")), t_visit/days_in_month,max_visits); /* Max/Avg KBytes per Day */ fprintf(out_fp,"" \ "\n" \ "\n" \ "\n",_2utf8(_("KBytes per Day")), (t_xfer/1024)/days_in_month,max_xfer/1024); fprintf(out_fp,"\n"); /**********************************************/ /* response code totals */ fprintf(out_fp,"\n",GREY,_2utf8(_("Hits by Response Code"))); fprintf(out_fp,"\n"); for (i=0;i\n" \ "\n", _2utf8(_(response[i].desc)), response[i].count); } fprintf(out_fp,"\n"); /**********************************************/ fprintf(out_fp,"
%s %s %d
%s%lu" \ "
%s%lu" \ "
%s %s%lu" \ "
%s %s%lu" \ "
%s%.0f" \ "
%s%lu" \ "
%s%lu" \ "
%s%lu" \ "
%s%lu" \ "
%s%lu" \ "
." \ "%s " \ "%s
%s%lu%lu" \ "
%s%lu%lu" \ "
%s%lu%lu" \ "
%s%lu%lu" \ "
%s%lu%lu" \ "
%s%.0f%.0f" \ "
\n" \ "%s
%s%lu" \ "
\n"); fprintf(out_fp,"

\n"); } /*********************************************/ /* DAILY_TOTAL_TABLE - daily totals */ /*********************************************/ void daily_total_table() { int i; /* Daily stats */ fprintf(out_fp,"\n"); fprintf(out_fp,"\n"); /* Daily statistics for ... */ fprintf(out_fp,"\n",GREY,_2utf8(_("Daily Statistics for")),_2utf8(_(l_month[cur_month-1])),cur_year); fprintf(out_fp,"\n"); fprintf(out_fp,"\n", GREY, _2utf8(_("Day"))); fprintf(out_fp,"\n", DKGREEN, _2utf8(_("Hits"))); fprintf(out_fp,"\n", LTBLUE, _2utf8(_("Files"))); fprintf(out_fp,"\n", CYAN, _2utf8(_("Pages"))); fprintf(out_fp,"\n", YELLOW, _2utf8(_("Visits"))); fprintf(out_fp,"\n", ORANGE, _2utf8(_("Sites"))); fprintf(out_fp,"\n", RED, _2utf8(_("KBytes"))); fprintf(out_fp,"\n"); /* skip beginning blank days in a month */ for (i=0;i\n", i+1); fprintf(out_fp,"\n" \ "\n", tm_hit[i],PCENT(tm_hit[i],t_hit)); fprintf(out_fp,"\n" \ "\n", tm_file[i],PCENT(tm_file[i],t_file)); fprintf(out_fp,"\n" \ "\n", tm_page[i],PCENT(tm_page[i],t_page)); fprintf(out_fp,"\n" \ "\n", tm_visit[i],PCENT(tm_visit[i],t_visit)); fprintf(out_fp,"\n" \ "\n", tm_site[i],PCENT(tm_site[i],t_site)); fprintf(out_fp,"\n" \ "\n", tm_xfer[i]/1024,PCENT(tm_xfer[i],t_xfer)); } fprintf(out_fp,"\n"); fprintf(out_fp,"
%s %s %d
" \ "%s" \ "%s" \ "%s" \ "%s" \ "%s" \ "%s" \ "%s
" \ "%d" \ "%lu%3.02f%%" \ "%lu%3.02f%%" \ "%lu%3.02f%%" \ "%lu%3.02f%%" \ "%lu%3.02f%%" \ "%.0f%3.02f%%
\n"); fprintf(out_fp,"

\n"); } /*********************************************/ /* HOURLY_TOTAL_TABLE - hourly table */ /*********************************************/ void hourly_total_table() { int i,days_in_month; u_long avg_file=0; double avg_xfer=0.0; days_in_month=(l_day-f_day)+1; /* Hourly stats */ fprintf(out_fp,"\n"); fprintf(out_fp,"\n"); fprintf(out_fp,"\n",GREY,_2utf8(_("Hourly Statistics for")),_2utf8(_(l_month[cur_month-1])),cur_year); fprintf(out_fp,"\n"); fprintf(out_fp,"\n" \ "\n", GREY, _2utf8(_("Hour")), DKGREEN, _2utf8(_("Hits"))); fprintf(out_fp,"\n" \ "\n", LTBLUE, _2utf8(_("Files")), CYAN, _2utf8(_("Pages"))); fprintf(out_fp,"\n", RED, _2utf8(_("KBytes"))); fprintf(out_fp,"\n" \ "\n", DKGREEN, _2utf8(_("Avg")), DKGREEN, _2utf8(_("Total"))); fprintf(out_fp,"\n" \ "\n", LTBLUE, _2utf8(_("Avg")), LTBLUE, _2utf8(_("Total"))); fprintf(out_fp,"\n" \ "\n", CYAN, _2utf8(_("Avg")), CYAN, _2utf8(_("Total"))); fprintf(out_fp,"\n" \ "\n", RED, _2utf8(_("Avg")), RED, _2utf8(_("Total"))); fprintf(out_fp,"\n"); for (i=0;i<24;i++) { fprintf(out_fp,"\n",i); fprintf(out_fp, "\n" \ "\n" \ "\n", th_hit[i]/days_in_month,th_hit[i], PCENT(th_hit[i],t_hit)); fprintf(out_fp, "\n" \ "\n" \ "\n", th_file[i]/days_in_month,th_file[i], PCENT(th_file[i],t_file)); fprintf(out_fp, "\n" \ "\n" \ "\n", th_page[i]/days_in_month,th_page[i], PCENT(th_page[i],t_page)); fprintf(out_fp, "\n" \ "\n" \ "\n", (th_xfer[i]/days_in_month)/1024,th_xfer[i]/1024, PCENT(th_xfer[i],t_xfer)); avg_file += th_file[i]/days_in_month; avg_xfer+= (th_xfer[i]/days_in_month)/1024; } fprintf(out_fp,"\n"); fprintf(out_fp,"
%s %s %d
" \ "%s" \ "%s" \ "%s" \ "%s" \ "%s
" \ "%s" \ "%s" \ "%s" \ "%s" \ "%s" \ "%s" \ "%s" \ "%s
" \ "%d%lu%lu%3.02f%%%lu%lu%3.02f%%%lu%lu%3.02f%%%.0f%.0f%3.02f%%
\n

\n"); } /*********************************************/ /* TOP_SITES_TABLE - generate top n table */ /*********************************************/ void top_sites_table(int flag) { u_long cnt=0, h_reg=0, h_grp=0, h_hid=0, tot_num; int i; HNODEPTR hptr, *pointer; cnt=a_ctr; pointer=h_array; while(cnt--) { /* calculate totals */ switch ( (int)((HNODEPTR)(*pointer)->flag) ) { case OBJ_REG: h_reg++; break; case OBJ_GRP: h_grp++; break; case OBJ_HIDE: h_hid++; break; } pointer++; } if ( (tot_num=h_reg+h_grp)==0 ) return; /* split if none */ i=(flag)?ntop_sitesK:ntop_sites; /* Hits or KBytes?? */ if (tot_num > i) tot_num = i; /* get max to do... */ if ((!flag) || (flag&&!ntop_sites)) /* now do tag */ fprintf(out_fp,"\n"); fprintf(out_fp,"\n"); fprintf(out_fp,"\n"); if (flag) fprintf(out_fp,"\n", GREY, _2utf8(_("Top")),tot_num,_2utf8(_("of")), t_site,_2utf8(_("Total Sites")),_2utf8(_("By")),_2utf8(_("KBytes"))); else fprintf(out_fp,"\n", GREY,_2utf8(_("Top")), tot_num, _2utf8(_("of")), t_site, _2utf8(_("Total Sites"))); fprintf(out_fp,"\n"); fprintf(out_fp,"\n",GREY); fprintf(out_fp,"\n",DKGREEN,_2utf8(_("Hits"))); fprintf(out_fp,"\n",LTBLUE,_2utf8(_("Files"))); fprintf(out_fp,"\n",RED,_2utf8(_("KBytes"))); fprintf(out_fp,"\n",YELLOW,_2utf8(_("Visits"))); fprintf(out_fp,"\n",CYAN,_2utf8(_("Hostname"))); fprintf(out_fp,"\n"); pointer=h_array; i=0; while(tot_num) { hptr=*pointer++; if (hptr->flag != OBJ_HIDE) { /* shade grouping? */ if (shade_groups && (hptr->flag==OBJ_GRP)) fprintf(out_fp,"\n", GRPCOLOR); else fprintf(out_fp,"\n"); fprintf(out_fp, "\n" \ "\n" \ "\n" \ "\n" \ "\n" \ "\n" \ "\n" \ "\n" \ "\n" \ "\n", hptr->string); else fprintf(out_fp,"%s\n", hptr->string); tot_num--; i++; } } fprintf(out_fp,"\n"); if ((!flag) || (flag&&!ntop_sites)) { if ( (all_sites) && ((h_reg+h_grp)>ntop_sites) ) { if (all_sites_page(h_reg, h_grp)) { fprintf(out_fp,"",GRPCOLOR); fprintf(out_fp,"\n",_2utf8(_("View All Sites"))); if (flag) /* do we need to sort? */ qsort(h_array,a_ctr,sizeof(HNODEPTR),qs_site_cmph); } } } fprintf(out_fp,"
" \ "%s %lu %s %lu %s %s %s
" \ "%s %lu %s %lu %s
" \ "#" \ "%s" \ "%s" \ "%s" \ "%s" \ "%s
%d%lu%3.02f%%%lu%3.02f%%%.0f%3.02f%%%lu%3.02f%%", i+1,hptr->count, (t_hit==0)?0:((float)hptr->count/t_hit)*100.0,hptr->files, (t_file==0)?0:((float)hptr->files/t_file)*100.0,hptr->xfer/1024, (t_xfer==0)?0:((float)hptr->xfer/t_xfer)*100.0,hptr->visit, (t_visit==0)?0:((float)hptr->visit/t_visit)*100.0); if ((hptr->flag==OBJ_GRP)&&hlite_groups) fprintf(out_fp,"%s
\n"); fprintf(out_fp,""); fprintf(out_fp,"", cur_year,cur_month,html_ext); fprintf(out_fp,"%s
\n

\n"); } /*********************************************/ /* ALL_SITES_PAGE - HTML page of all sites */ /*********************************************/ int all_sites_page(u_long h_reg, u_long h_grp) { HNODEPTR hptr, *pointer; char site_fname[256], buffer[256]; FILE *out_fp; int i=(h_grp)?1:0; /* generate file name */ snprintf(site_fname,sizeof(site_fname),"site_%04d%02d.%s", cur_year,cur_month,html_ext); /* open file */ if ( (out_fp=open_out_file(site_fname))==NULL ) return 0; snprintf(buffer,sizeof(buffer),"%s %d - %s", _2utf8(_(l_month[cur_month-1])),cur_year,_2utf8(_("Sites"))); write_html_head(buffer, out_fp); fprintf(out_fp,"

\n");

   fprintf(out_fp," %12s      %12s      %12s      %12s      %s\n",
           _2utf8(_("Hits")), _2utf8(_("Files")), _2utf8(_("KBytes")), _2utf8(_("Visits")), _2utf8(_("Hostname")));
   fprintf(out_fp,"----------------  ----------------  ----------------  " \
                  "----------------  --------------------\n\n");

   /* Do groups first (if any) */
   pointer=h_array;
   while(h_grp)
   {
      hptr=*pointer++;
      if (hptr->flag == OBJ_GRP)
      {
         fprintf(out_fp,
         "%-8lu %6.02f%%  %8lu %6.02f%%  %8.0f %6.02f%%  %8lu %6.02f%%  %s\n",
            hptr->count,
            (t_hit==0)?0:((float)hptr->count/t_hit)*100.0,hptr->files,
            (t_file==0)?0:((float)hptr->files/t_file)*100.0,hptr->xfer/1024,
            (t_xfer==0)?0:((float)hptr->xfer/t_xfer)*100.0,hptr->visit,
            (t_visit==0)?0:((float)hptr->visit/t_visit)*100.0,
            hptr->string);
         h_grp--;
      }
   }

   if (i) fprintf(out_fp,"\n");

   /* Now do individual sites (if any) */
   pointer=h_array;
   if (!hide_sites) while(h_reg)
   {
      hptr=*pointer++;
      if (hptr->flag == OBJ_REG)
      {
         fprintf(out_fp,
         "%-8lu %6.02f%%  %8lu %6.02f%%  %8.0f %6.02f%%  %8lu %6.02f%%  %s\n",
            hptr->count,
            (t_hit==0)?0:((float)hptr->count/t_hit)*100.0,hptr->files,
            (t_file==0)?0:((float)hptr->files/t_file)*100.0,hptr->xfer/1024,
            (t_xfer==0)?0:((float)hptr->xfer/t_xfer)*100.0,hptr->visit,
            (t_visit==0)?0:((float)hptr->visit/t_visit)*100.0,
            hptr->string);
         h_reg--;
      }
   }

   fprintf(out_fp,"
\n"); write_html_tail(out_fp); fclose(out_fp); return 1; } /*********************************************/ /* TOP_URLS_TABLE - generate top n table */ /*********************************************/ void top_urls_table(int flag) { u_long cnt=0,u_reg=0,u_grp=0,u_hid=0, tot_num; int i; UNODEPTR uptr, *pointer; cnt=a_ctr; pointer=u_array; while (cnt--) { /* calculate totals */ switch ( (int)((UNODEPTR)(*pointer)->flag) ) { case OBJ_REG: u_reg++; break; case OBJ_GRP: u_grp++; break; case OBJ_HIDE: u_hid++; break; } pointer++; } if ( (tot_num=u_reg+u_grp)==0 ) return; /* split if none */ i=(flag)?ntop_urlsK:ntop_urls; /* Hits or KBytes?? */ if (tot_num > i) tot_num = i; /* get max to do... */ if ((!flag) || (flag&&!ntop_urls)) /* now do tag */ fprintf(out_fp,"\n"); fprintf(out_fp,"\n"); fprintf(out_fp,"\n"); if (flag) fprintf(out_fp,"\n", GREY,_2utf8(_("Top")),tot_num,_2utf8(_("of")), t_url,_2utf8(_("Total URLs")),_2utf8(_("By")),_2utf8(_("KBytes"))); else fprintf(out_fp,"\n", GREY,_2utf8(_("Top")),tot_num,_2utf8(_("of")),t_url,_2utf8(_("Total URLs"))); fprintf(out_fp,"\n"); fprintf(out_fp,"\n",GREY); fprintf(out_fp,"\n", DKGREEN,_2utf8(_("Hits"))); fprintf(out_fp,"\n", RED,_2utf8(_("KBytes"))); fprintf(out_fp,"\n", CYAN,_2utf8(_("URL"))); fprintf(out_fp,"\n"); pointer=u_array; i=0; while (tot_num) { uptr=*pointer++; /* point to the URL node */ if (uptr->flag != OBJ_HIDE) { /* shade grouping? */ if (shade_groups && (uptr->flag==OBJ_GRP)) fprintf(out_fp,"\n", GRPCOLOR); else fprintf(out_fp,"\n"); fprintf(out_fp, "\n" \ "\n" \ "\n" \ "\n"\ "\n" \ "\n", uptr->string); else fprintf(out_fp,"%s\n",uptr->string); } else { /* check for a service prefix (ie: http://) */ if (strstr(uptr->string,"://")!=NULL) fprintf(out_fp,"%s\n", uptr->string,uptr->string); else { if (use_https) /* secure server mode, use https:// */ fprintf(out_fp, "%s\n", hname,uptr->string,uptr->string); else /* otherwise use standard 'http://' */ fprintf(out_fp, "%s\n", hname,uptr->string,uptr->string); } } tot_num--; i++; } } fprintf(out_fp,"\n"); if ((!flag) || (flag&&!ntop_urls)) { if ( (all_urls) && ((u_reg+u_grp)>ntop_urls) ) { if (all_urls_page(u_reg, u_grp)) { fprintf(out_fp,"",GRPCOLOR); fprintf(out_fp,"\n",_2utf8(_("View All URLs"))); if (flag) /* do we need to sort first? */ qsort(u_array,a_ctr,sizeof(UNODEPTR),qs_url_cmph); } } } fprintf(out_fp,"
" \ "%s %lu %s %lu %s %s %s
" \ "%s %lu %s %lu %s
" \ "#" \ "%s" \ "%s" \ "%s
%d%lu%3.02f%%%.0f%3.02f%%", i+1,uptr->count, (t_hit==0)?0:((float)uptr->count/t_hit)*100.0, uptr->xfer/1024, (t_xfer==0)?0:((float)uptr->xfer/t_xfer)*100.0); if (uptr->flag==OBJ_GRP) { if (hlite_groups) fprintf(out_fp,"%s
\n"); fprintf(out_fp,""); fprintf(out_fp,"", cur_year,cur_month,html_ext); fprintf(out_fp,"%s
\n

\n"); } /*********************************************/ /* ALL_URLS_PAGE - HTML page of all urls */ /*********************************************/ int all_urls_page(u_long u_reg, u_long u_grp) { UNODEPTR uptr, *pointer; char url_fname[256], buffer[256]; FILE *out_fp; int i=(u_grp)?1:0; /* generate file name */ snprintf(url_fname,sizeof(url_fname),"url_%04d%02d.%s", cur_year,cur_month,html_ext); /* open file */ if ( (out_fp=open_out_file(url_fname))==NULL ) return 0; snprintf(buffer,sizeof(buffer),"%s %d - %s", _2utf8(_(l_month[cur_month-1])),cur_year,_2utf8(_("URL"))); write_html_head(buffer, out_fp); fprintf(out_fp,"

\n");

   fprintf(out_fp," %12s      %12s      %s\n",
           _2utf8(_("Hits")),_2utf8(_("KBytes")),_2utf8(_("URL")));
   fprintf(out_fp,"----------------  ----------------  " \
                  "--------------------\n\n");

   /* do groups first (if any) */
   pointer=u_array;
   while (u_grp)
   {
      uptr=*pointer++;
      if (uptr->flag == OBJ_GRP)
      {
         fprintf(out_fp,"%-8lu %6.02f%%  %8.0f %6.02f%%  %s\n",
            uptr->count,
            (t_hit==0)?0:((float)uptr->count/t_hit)*100.0,
            uptr->xfer/1024,
            (t_xfer==0)?0:((float)uptr->xfer/t_xfer)*100.0,
            uptr->string);
         u_grp--;
      }
   }

   if (i) fprintf(out_fp,"\n");

   /* now do invididual sites (if any) */
   pointer=u_array;
   while (u_reg)
   {
      uptr=*pointer++;
      if (uptr->flag == OBJ_REG)
      {
         fprintf(out_fp,"%-8lu %6.02f%%  %8.0f %6.02f%%  %s\n",
            uptr->count,
            (t_hit==0)?0:((float)uptr->count/t_hit)*100.0,
            uptr->xfer/1024,
            (t_xfer==0)?0:((float)uptr->xfer/t_xfer)*100.0,
            uptr->string);
         u_reg--;
      }
   }

   fprintf(out_fp,"
\n"); write_html_tail(out_fp); fclose(out_fp); return 1; } /*********************************************/ /* TOP_ENTRY_TABLE - top n entry/exit urls */ /*********************************************/ void top_entry_table(int flag) { u_long cnt=0, u_entry=0, u_exit=0, tot_num; u_long t_entry=0, t_exit=0; int i; UNODEPTR uptr, *pointer; cnt=a_ctr; pointer=u_array; while (cnt--) { if ( (int)((UNODEPTR)(*pointer)->flag) == OBJ_REG ) { if ( (u_long)((UNODEPTR)(*pointer)->entry) ) { u_entry++; t_entry+=(u_long)((UNODEPTR)(*pointer)->entry); } if ( (u_long)((UNODEPTR)(*pointer)->exit) ) { u_exit++; t_exit +=(u_long)((UNODEPTR)(*pointer)->exit); } } pointer++; } /* calculate how many we have */ tot_num=(flag)?u_exit:u_entry; if (flag) { if (tot_num > ntop_exit ) tot_num=ntop_exit; } else { if (tot_num > ntop_entry) tot_num=ntop_entry; } /* return if none to do */ if (!tot_num) return; if (flag) fprintf(out_fp,"\n"); /* do anchor tag */ else fprintf(out_fp,"\n"); fprintf(out_fp,"\n"); fprintf(out_fp,"\n"); fprintf(out_fp,"\n", GREY,_2utf8(_("Top")),tot_num,_2utf8(_("of")), (flag)?u_exit:u_entry,(flag)?_2utf8(_("Total Exit Pages")):_2utf8(_("Total Entry Pages"))); fprintf(out_fp,"\n"); fprintf(out_fp,"\n", GREY); fprintf(out_fp,"\n", DKGREEN,_2utf8(_("Hits"))); fprintf(out_fp,"\n", YELLOW,_2utf8(_("Visits"))); fprintf(out_fp,"\n", CYAN,_2utf8(_("URL"))); fprintf(out_fp,"\n"); pointer=u_array; i=0; while (tot_num) { uptr=*pointer++; if (uptr->flag != OBJ_HIDE) { fprintf(out_fp,"\n"); fprintf(out_fp, "\n" \ "\n" \ "\n" \ "\n" \ "\n" \ "\n", uptr->string,uptr->string); else { if (use_https) /* secure server mode, use https:// */ fprintf(out_fp, "%s\n", hname,uptr->string,uptr->string); else /* otherwise use standard 'http://' */ fprintf(out_fp, "%s\n", hname,uptr->string,uptr->string); } tot_num--; i++; } } fprintf(out_fp,"\n"); fprintf(out_fp,"
" \ "%s %lu %s %lu %s
" \ "#" \ "%s" \ "%s" \ "%s
%d%lu%3.02f%%%lu%3.02f%%", i+1,uptr->count, (t_hit==0)?0:((float)uptr->count/t_hit)*100.0, (flag)?uptr->exit:uptr->entry, (flag)?((t_exit==0)?0:((float)uptr->exit/t_exit)*100.0) :((t_entry==0)?0:((float)uptr->entry/t_entry)*100.0)); /* check for a service prefix (ie: http://) */ if (strstr(uptr->string,"://")!=NULL) fprintf(out_fp, "%s
\n

\n"); } /*********************************************/ /* TOP_REFS_TABLE - generate top n table */ /*********************************************/ void top_refs_table() { u_long cnt=0, r_reg=0, r_grp=0, r_hid=0, tot_num; int i; RNODEPTR rptr, *pointer; if (t_ref==0) return; /* return if none to process */ cnt=a_ctr; pointer=r_array; while(cnt--) { /* calculate totals */ switch ( (int)((RNODEPTR)(*pointer)->flag) ) { case OBJ_REG: r_reg++; break; case OBJ_HIDE: r_hid++; break; case OBJ_GRP: r_grp++; break; } pointer++; } if ( (tot_num=r_reg+r_grp)==0 ) return; /* split if none */ if (tot_num > ntop_refs) tot_num=ntop_refs; /* get max to do... */ fprintf(out_fp,"\n"); fprintf(out_fp,"\n"); fprintf(out_fp,"\n"); fprintf(out_fp,"\n", GREY, _2utf8(_("Top")), tot_num, _2utf8(_("of")), t_ref, _2utf8(_("Total Referrers"))); fprintf(out_fp,"\n"); fprintf(out_fp,"\n", GREY); fprintf(out_fp,"\n", DKGREEN,_2utf8(_("Hits"))); fprintf(out_fp,"\n", CYAN,_2utf8(_("Referrer"))); fprintf(out_fp,"\n"); pointer=r_array; i=0; while(tot_num) { rptr=*pointer++; if (rptr->flag != OBJ_HIDE) { /* shade grouping? */ if (shade_groups && (rptr->flag==OBJ_GRP)) fprintf(out_fp,"\n", GRPCOLOR); else fprintf(out_fp,"\n"); fprintf(out_fp, "\n" \ "\n" \ "\n" \ "\n"); tot_num--; i++; } } fprintf(out_fp,"\n"); if ( (all_refs) && ((r_reg+r_grp)>ntop_refs) ) { if (all_refs_page(r_reg, r_grp)) { fprintf(out_fp,"",GRPCOLOR); fprintf(out_fp,"\n",_2utf8(_("View All Referrers"))); } } fprintf(out_fp,"
" \ "%s %lu %s %lu %s
" \ "#" \ "%s" \ "%s
%d%lu%3.02f%%", i+1,rptr->count, (t_hit==0)?0:((float)rptr->count/t_hit)*100.0); if (rptr->flag==OBJ_GRP) { if (hlite_groups) fprintf(out_fp,"%s",rptr->string); else fprintf(out_fp,"%s",rptr->string); } else { if (rptr->string[0] != '-') fprintf(out_fp,"%s", rptr->string, rptr->string); else fprintf(out_fp,"%s", rptr->string); } fprintf(out_fp,"
\n"); fprintf(out_fp,""); fprintf(out_fp,"", cur_year,cur_month,html_ext); fprintf(out_fp,"%s
\n

\n"); } /*********************************************/ /* ALL_REFS_PAGE - HTML page of all refs */ /*********************************************/ int all_refs_page(u_long r_reg, u_long r_grp) { RNODEPTR rptr, *pointer; char ref_fname[256], buffer[256]; FILE *out_fp; int i=(r_grp)?1:0; /* generate file name */ snprintf(ref_fname,sizeof(ref_fname),"ref_%04d%02d.%s", cur_year,cur_month,html_ext); /* open file */ if ( (out_fp=open_out_file(ref_fname))==NULL ) return 0; snprintf(buffer,sizeof(buffer),"%s %d - %s", _2utf8(_(l_month[cur_month-1])),cur_year,_2utf8(_("Referrer"))); write_html_head(buffer, out_fp); fprintf(out_fp,"

\n");

   fprintf(out_fp," %12s      %s\n",_2utf8(_("Hits")),_2utf8(_("Referrer")));
   fprintf(out_fp,"----------------  --------------------\n\n");

   /* do groups first (if any) */
   pointer=r_array;
   while(r_grp)
   {
      rptr=*pointer++;
      if (rptr->flag == OBJ_GRP)
      {
         fprintf(out_fp,"%-8lu %6.02f%%  %s\n",
            rptr->count,
            (t_hit==0)?0:((float)rptr->count/t_hit)*100.0,
            rptr->string);
         r_grp--;
      }
   }

   if (i) fprintf(out_fp,"\n");

   pointer=r_array;
   while(r_reg)
   {
      rptr=*pointer++;
      if (rptr->flag == OBJ_REG)
      {
         fprintf(out_fp,"%-8lu %6.02f%%  %s\n",
            rptr->count,
            (t_hit==0)?0:((float)rptr->count/t_hit)*100.0,
            rptr->string);
         r_reg--;
      }
   }

   fprintf(out_fp,"
\n"); write_html_tail(out_fp); fclose(out_fp); return 1; } /*********************************************/ /* TOP_AGENTS_TABLE - generate top n table */ /*********************************************/ void top_agents_table() { u_long cnt, a_reg=0, a_grp=0, a_hid=0, tot_num; int i; ANODEPTR aptr, *pointer; if (t_agent == 0) return; /* don't bother if we don't have any */ cnt=a_ctr; pointer=a_array; while(cnt--) { /* calculate totals */ switch ( (int)((ANODEPTR)(*pointer)->flag) ) { case OBJ_REG: a_reg++; break; case OBJ_GRP: a_grp++; break; case OBJ_HIDE: a_hid++; break; } pointer++; } if ( (tot_num=a_reg+a_grp)==0 ) return; /* split if none */ if (tot_num > ntop_agents) tot_num=ntop_agents; /* get max to do... */ fprintf(out_fp,"\n"); fprintf(out_fp,"\n"); fprintf(out_fp,"\n"); fprintf(out_fp,"\n", GREY, _2utf8(_("Top")), tot_num, _2utf8(_("of")), t_agent, _2utf8(_("Total User Agents"))); fprintf(out_fp,"\n"); fprintf(out_fp,"\n", GREY); fprintf(out_fp,"\n", DKGREEN,_2utf8(_("Hits"))); fprintf(out_fp,"\n", CYAN,_2utf8(_("User Agent"))); fprintf(out_fp,"\n"); pointer=a_array; i=0; while(tot_num) { aptr=*pointer++; if (aptr->flag != OBJ_HIDE) { /* shade grouping? */ if (shade_groups && (aptr->flag==OBJ_GRP)) fprintf(out_fp,"\n", GRPCOLOR); else fprintf(out_fp,"\n"); fprintf(out_fp, "\n" \ "\n" \ "\n" \ "\n", aptr->string); else fprintf(out_fp,"%s\n", aptr->string); tot_num--; i++; } } fprintf(out_fp,"\n"); if ( (all_agents) && ((a_reg+a_grp)>ntop_agents) ) { if (all_agents_page(a_reg, a_grp)) { fprintf(out_fp,"",GRPCOLOR); fprintf(out_fp,"\n",_2utf8(_("View All User Agents"))); } } fprintf(out_fp,"
" \ "%s %lu %s %lu %s
" \ "#" \ "%s" \ "%s
%d%lu%3.02f%%", i+1,aptr->count, (t_hit==0)?0:((float)aptr->count/t_hit)*100.0); if ((aptr->flag==OBJ_GRP)&&hlite_groups) fprintf(out_fp,"%s
\n"); fprintf(out_fp,""); fprintf(out_fp,"", cur_year,cur_month,html_ext); fprintf(out_fp,"%s
\n

\n"); } /*********************************************/ /* ALL_AGENTS_PAGE - HTML user agent page */ /*********************************************/ int all_agents_page(u_long a_reg, u_long a_grp) { ANODEPTR aptr, *pointer; char agent_fname[256], buffer[256]; FILE *out_fp; int i=(a_grp)?1:0; /* generate file name */ snprintf(agent_fname,sizeof(agent_fname),"agent_%04d%02d.%s", cur_year,cur_month,html_ext); /* open file */ if ( (out_fp=open_out_file(agent_fname))==NULL ) return 0; snprintf(buffer,sizeof(buffer),"%s %d - %s", _2utf8(_(l_month[cur_month-1])),cur_year,_2utf8(_("User Agent"))); write_html_head(buffer, out_fp); fprintf(out_fp,"

\n");

   fprintf(out_fp," %12s      %s\n",_2utf8(_("Hits")),_2utf8(_("User Agent")));
   fprintf(out_fp,"----------------  ----------------------\n\n");

   /* do groups first (if any) */
   pointer=a_array;
   while(a_grp)
   {
      aptr=*pointer++;
      if (aptr->flag == OBJ_GRP)
      {
         fprintf(out_fp,"%-8lu %6.02f%%  %s\n",
             aptr->count,
             (t_hit==0)?0:((float)aptr->count/t_hit)*100.0,
             aptr->string);
         a_grp--;
      }
   }

   if (i) fprintf(out_fp,"\n");

   pointer=a_array;
   while(a_reg)
   {
      aptr=*pointer++;
      if (aptr->flag == OBJ_REG)
      {
         fprintf(out_fp,"%-8lu %6.02f%%  %s\n",
             aptr->count,
             (t_hit==0)?0:((float)aptr->count/t_hit)*100.0,
             aptr->string);
         a_reg--;
      }
   }

   fprintf(out_fp,"
\n"); write_html_tail(out_fp); fclose(out_fp); return 1; } /*********************************************/ /* GENERATE_SENGINES_INFO */ /*********************************************/ /* generate search engines table, and eventually dump all to single file */ /* used internally by generate_sengines_info */ int qs_snode_cmp_count(const void *cp1, const void *cp2) { u_long t1, t2; t1=(*(SNODEPTR *)cp1)->count; t2=(*(SNODEPTR *)cp2)->count; if (t1!=t2) return (t2string, (*(SNODEPTR *)cp2)->string ); } /* used internally by generate_sengines_info */ int qs_sengines_cmp_count(const void *cp1, const void *cp2) { u_long t1, t2; t1=((struct sengine *)cp1)->count; t2=((struct sengine *)cp2)->count; if (t1!=t2) return (t2display_name, ((struct sengine *)cp2)->display_name ); } /* used internally by generate_sengines_info */ u_long load_search_array(SNODEPTR array[], SNODEPTR source_htab[]) { SNODEPTR sptr; int i; u_long ctr = 0; /* load the array */ for (i=0; inext; } } return ctr; // return number loaded*/ return 0; } void generate_sengines_info(FILE* main_fp, FILE *all_fp, FILE *dump_fp) { int i; int total_searches = 0; struct sengine *sp_sorted_table; /* contains the array of array of sorted search phrases */ char buffer[1024]; /* let's malloc it -- and do it's initialisation with a copy of sp_table */ sp_sorted_table = malloc(sizeof(struct sengine) * n_sengines); if(sp_sorted_table == NULL) { if (verbose) fprintf(stderr,"[generate_sengines_info] %s\n",_("Can't allocate enough memory, Search engines report disabled!")); /* err */ return; } memcpy(sp_sorted_table, sp_table, sizeof(struct sengine) * n_sengines); /* compute the number of searches for all engines */ for(i=0; i\n"); fprintf(main_fp, "\n"); fprintf(main_fp, "\n"); fprintf(main_fp, " \n"); fprintf(main_fp, "\n"); fprintf(main_fp, "\n"); snprintf(buffer, sizeof(buffer), _2utf8(_("%u most used search phrases grouped per search engine")), ntop_search); fprintf(main_fp, " \n", buffer); fprintf(main_fp, "\n"); fprintf(main_fp, "\n"); fprintf(main_fp, " \n"); fprintf(main_fp, "\n"); fprintf(main_fp, "\n"); fprintf(main_fp, " \n", _2utf8(_("Key phrases"))); fprintf(main_fp, " \n", _2utf8(_("Nb Times"))); fprintf(main_fp, " \n", _2utf8(_("This engine"))); fprintf(main_fp, " \n", _2utf8(_("All engines"))); fprintf(main_fp, " \n", _2utf8(_("Target URLs"))); fprintf(main_fp, "\n"); fprintf(main_fp, "\n"); fprintf(main_fp, " \n"); fprintf(main_fp, "\n"); /* iterate through sengines */ for(i=0; i 1) { int j; LISTPTR lptr; if(pcent >= 1) snprintf(buffer, sizeof(buffer), _2utf8(_("%.0f%% of all requests")), pcent); else snprintf(buffer, sizeof(buffer), _2utf8(_("less than 1%% of all requests"))); fprintf(main_fp, "\n"); fprintf(main_fp, " \n", sp_sorted_table[i].display_name, buffer); fprintf(main_fp, "\n"); /* iterate through search phrases */ for(j = 0; j < n_rows && sp_sorted_table[i].s_htab[j] != NULL; j++) { fprintf(main_fp, "\n"); fprintf(main_fp, " \n", sp_sorted_table[i].s_htab[j]->string); fprintf(main_fp, " \n", sp_sorted_table[i].s_htab[j]->count); fprintf(main_fp, " \n", PCENT(sp_sorted_table[i].s_htab[j]->count, sp_sorted_table[i].count)); fprintf(main_fp, " \n", PCENT(sp_sorted_table[i].s_htab[j]->count, total_searches)); fprintf(main_fp, " \n"); fprintf(main_fp, "\n"); } } } if(all_fp != NULL) { fprintf(out_fp,"",GRPCOLOR); fprintf(out_fp," \n"); fprintf(out_fp,"\n"); } fprintf(main_fp, "
%s
%s%s%%
%s
%%
%s
%s
%s (%s)
%s%lu%.1f%%%.1f%%\n"); fprintf(main_fp, " \n"); /* iterate through search urls */ lptr = sp_sorted_table[i].s_htab[j]->urls; while(lptr != NULL) { if(use_https) fprintf(main_fp, " %s
\n", hname, (char *)lptr->item, (char *)lptr->item); else fprintf(main_fp, " %s
\n", hname, (char *)lptr->item, (char *)lptr->item); lptr = lptr->next; } fprintf(main_fp, "
\n"); fprintf(main_fp, "
\n"); fprintf(out_fp," "); fprintf(out_fp," %s", cur_year,cur_month,html_ext,_2utf8(_("View all search phrases"))); fprintf(out_fp," "); fprintf(out_fp,"
\n
\n"); /***** END OF MAIN HTML OUTPUT*****/ /***** BEGINNING OF EXHAUSTIVE HTML OUTPUT ****** */ if(all_fp != NULL) { int sp_maxlen = 30; /* max number of chars per line */ char sp_buffer[MAXSRCHH + 1]; sp_buffer[MAXSRCHH] = 0; fprintf(all_fp, "
\n");

      /* iterate through sengines */
      for(i=0; istring, MAXSRCHH);
               /* k : index to beginning of line
                  l : index to last space
                  m : index to current char */
               k = l = m = 0;
               while(sp_buffer[m] != 0)
               {
                  while(sp_buffer[m] != 0 && !isspace(sp_buffer[m])) m++;
                  if( (m - k) <= sp_maxlen)
                  {
                     l = m; /* make last space jumpt to this space */
                     m++;
                  }
                  else
                  {
                     /* more than sp_maxlen chars, do cut before */
                     sp_buffer[l] = '\n';
                     /* move beginning of line */
                     k = l + 1;
                     m++;
                  }
               }
               /* output search phrase */
               fprintf(all_fp, "%s", sp_buffer);

               /* fill to sp_maxlen */
               while((m - k) <= sp_maxlen)
               {
                  m++;
                  fputc(' ', all_fp);
               }

               fprintf(all_fp, "%8lu     %6.02f%%     %6.02f%% ",
                  snode->count, PCENT(snode->count, sp_sorted_table[i].count),
                  PCENT(snode->count, total_searches));

               lptr = snode->urls;
               /* iterate through search urls */
               while(lptr != NULL)
               {
                  if(!first)
                  {
                     fprintf(all_fp, "%63s", ""); /* hack to fill a line with 63 spaces */
                  }
                  fprintf(all_fp, "  %s\n", (char*) lptr->item);
                  lptr = lptr->next;
                  first = 0;
               }
               fprintf(all_fp, "-------------------------------------------------------------------------------------------------------------------\n");
               fprintf(all_fp, "\n");
            }
         }
      }

      fprintf(all_fp, "
\n"); } /***** END OF EXHAUSTIVE HTML OUTPUT ****** */ /***** BEGINNING OF TAB OUTPUT ****** */ if(dump_fp != NULL) { /* need a header? */ if (dump_header) { fprintf(dump_fp,"%s\t%s\t", _2utf8(_("Search Engines")), _2utf8(_("Key phrases"))); fprintf(dump_fp,"%s\t%s\t", _2utf8(_("Nb Times")), _2utf8(_("% This engine"))); fprintf(dump_fp,"%s\t%s\n", _2utf8(_("% All engines")), _2utf8(_("Target URLs"))); } /* iterate through sengines */ for(i=0; istring, snode->count, PCENT(snode->count, sp_sorted_table[i].count), PCENT(snode->count, total_searches)); lptr = snode->urls; /* iterate through search urls */ while(lptr != NULL) { fprintf(dump_fp, "\t%s", (char*) lptr->item); lptr = lptr->next; } fprintf(dump_fp, "\n"); } } } } /***** END OF TAB OUTPUT ****** */ /* cleanup */ for(i=0; iflag) ) { case OBJ_REG: i_reg++; break; case OBJ_GRP: i_grp++; break; case OBJ_HIDE: i_hid++; break; } pointer++; } if ( (tot_num=i_reg+i_grp)==0 ) return; /* split if none */ if (tot_num > ntop_users) tot_num = ntop_users; fprintf(out_fp,"\n"); /* now do tag */ fprintf(out_fp,"\n"); fprintf(out_fp,"\n"); fprintf(out_fp,"\n", GREY,_2utf8(_("Top")), tot_num, _2utf8(_("of")), t_user, _2utf8(_("Total Usernames"))); fprintf(out_fp,"\n"); fprintf(out_fp,"\n",GREY); fprintf(out_fp,"\n",DKGREEN,_2utf8(_("Hits"))); fprintf(out_fp,"\n",LTBLUE,_2utf8(_("Files"))); fprintf(out_fp,"\n",RED,_2utf8(_("KBytes"))); fprintf(out_fp,"\n",YELLOW,_2utf8(_("Visits"))); fprintf(out_fp,"\n",CYAN,_2utf8(_("Username"))); fprintf(out_fp,"\n"); pointer=i_array; i=0; while(tot_num) { iptr=*pointer++; if (iptr->flag != OBJ_HIDE) { /* shade grouping? */ if (shade_groups && (iptr->flag==OBJ_GRP)) fprintf(out_fp,"\n", GRPCOLOR); else fprintf(out_fp,"\n"); fprintf(out_fp, "\n" \ "\n" \ "\n" \ "\n" \ "\n" \ "\n" \ "\n" \ "\n" \ "\n" \ "\n", iptr->string); else fprintf(out_fp,"%s\n", iptr->string); tot_num--; i++; } } fprintf(out_fp,"\n"); if ( (all_users) && ((i_reg+i_grp)>ntop_users) ) { if (all_users_page(i_reg, i_grp)) { fprintf(out_fp,"",GRPCOLOR); fprintf(out_fp,"\n",_2utf8(_("View All Usernames"))); } } fprintf(out_fp,"
" \ "%s %lu %s %lu %s
" \ "#" \ "%s" \ "%s" \ "%s" \ "%s" \ "%s
%d%lu%3.02f%%%lu%3.02f%%%.0f%3.02f%%%lu%3.02f%%", i+1,iptr->count, (t_hit==0)?0:((float)iptr->count/t_hit)*100.0,iptr->files, (t_file==0)?0:((float)iptr->files/t_file)*100.0,iptr->xfer/1024, (t_xfer==0)?0:((float)iptr->xfer/t_xfer)*100.0,iptr->visit, (t_visit==0)?0:((float)iptr->visit/t_visit)*100.0); if ((iptr->flag==OBJ_GRP)&&hlite_groups) fprintf(out_fp,"%s
\n"); fprintf(out_fp,""); fprintf(out_fp,"", cur_year,cur_month,html_ext); fprintf(out_fp,"%s
\n

\n"); } /*********************************************/ /* ALL_USERS_PAGE - HTML of all usernames */ /*********************************************/ int all_users_page(u_long i_reg, u_long i_grp) { INODEPTR iptr, *pointer; char user_fname[256], buffer[256]; FILE *out_fp; int i=(i_grp)?1:0; /* generate file name */ snprintf(user_fname,sizeof(user_fname),"user_%04d%02d.%s", cur_year,cur_month,html_ext); /* open file */ if ( (out_fp=open_out_file(user_fname))==NULL ) return 0; snprintf(buffer,sizeof(buffer),"%s %d - %s", _2utf8(_(l_month[cur_month-1])),cur_year,_2utf8(_("Username"))); write_html_head(buffer, out_fp); fprintf(out_fp,"

\n");

   fprintf(out_fp," %12s      %12s      %12s      %12s      %s\n",
           _2utf8(_("Hits")), _2utf8(_("Files")), _2utf8(_("KBytes")), _2utf8(_("Visits")), _2utf8(_("Username")));
   fprintf(out_fp,"----------------  ----------------  ----------------  " \
                  "----------------  --------------------\n\n");

   /* Do groups first (if any) */
   pointer=i_array;
   while(i_grp)
   {
      iptr=*pointer++;
      if (iptr->flag == OBJ_GRP)
      {
         fprintf(out_fp,
         "%-8lu %6.02f%%  %8lu %6.02f%%  %8.0f %6.02f%%  %8lu %6.02f%%  %s\n",
            iptr->count,
            (t_hit==0)?0:((float)iptr->count/t_hit)*100.0,iptr->files,
            (t_file==0)?0:((float)iptr->files/t_file)*100.0,iptr->xfer/1024,
            (t_xfer==0)?0:((float)iptr->xfer/t_xfer)*100.0,iptr->visit,
            (t_visit==0)?0:((float)iptr->visit/t_visit)*100.0,
            iptr->string);
         i_grp--;
      }
   }

   if (i) fprintf(out_fp,"\n");

   /* Now do individual users (if any) */
   pointer=i_array;
   while(i_reg)
   {
      iptr=*pointer++;
      if (iptr->flag == OBJ_REG)
      {
         fprintf(out_fp,
         "%-8lu %6.02f%%  %8lu %6.02f%%  %8.0f %6.02f%%  %8lu %6.02f%%  %s\n",
            iptr->count,
            (t_hit==0)?0:((float)iptr->count/t_hit)*100.0,iptr->files,
            (t_file==0)?0:((float)iptr->files/t_file)*100.0,iptr->xfer/1024,
            (t_xfer==0)?0:((float)iptr->xfer/t_xfer)*100.0,iptr->visit,
            (t_visit==0)?0:((float)iptr->visit/t_visit)*100.0,
            iptr->string);
         i_reg--;
      }
   }

   fprintf(out_fp,"
\n"); write_html_tail(out_fp); fclose(out_fp); return 1; } /*********************************************/ /* TOP_CTRY_TABLE - top countries table */ /*********************************************/ void top_ctry_table() { int i,j,x,tot_num=0,tot_ctry=0; int ctry_fnd; u_long idx; HNODEPTR hptr; char *domain; u_long pie_data[10]; char *pie_legend[10]; char pie_title[48]; char pie_fname[48]; extern int ctry_graph; /* include external flag */ /* scan hash table adding up domain totals */ for (i=0;iflag != OBJ_GRP) /* ignore group totals */ { domain = hptr->string+strlen(hptr->string)-1; while ( (*domain!='.')&&(domain!=hptr->string)) domain--; if ((domain==hptr->string)||(isdigit((int)*++domain))) { ctry[0].count+=hptr->count; ctry[0].files+=hptr->files; ctry[0].xfer +=hptr->xfer; } else { ctry_fnd=0; idx=ctry_idx(domain); for (j=0;ctry[j].desc;j++) { if (idx==ctry[j].idx) { ctry[j].count+=hptr->count; ctry[j].files+=hptr->files; ctry[j].xfer +=hptr->xfer; ctry_fnd=1; break; } } if (!ctry_fnd) { ctry[0].count+=hptr->count; ctry[0].files+=hptr->files; ctry[0].xfer +=hptr->xfer; } } } hptr=hptr->next; } } for (i=0;ctry[i].desc;i++) { if (ctry[i].count!=0) tot_ctry++; for (j=0;j top_ctrys[j]->count) { for (x=ntop_ctrys-1;x>j;x--) top_ctrys[x]=top_ctrys[x-1]; top_ctrys[x]=&ctry[i]; break; } } } } /* put our anchor tag first... */ fprintf(out_fp,"\n"); /* generate pie chart if needed */ if (ctry_graph) { for (i=0;i<10;i++) pie_data[i]=0; /* init data array */ if (ntop_ctrys<10) j=ntop_ctrys; else j=10; /* ensure data size */ for (i=0;icount; /* load the array */ /*TODO: The string we put in pie_legend is localized, should not, as gd can only deal wih ascii strings!! */ pie_legend[i] = _(top_ctrys[i]->desc); } snprintf(pie_title,sizeof(pie_title),"%s %s %d", _2utf8(_("Usage by Country for")),_2utf8(_(l_month[cur_month-1])),cur_year); sprintf(pie_fname,"ctry_usage_%04d%02d.png",cur_year,cur_month); pie_chart(pie_fname,pie_title,t_hit,pie_data,pie_legend); /* do it */ /* put the image tag in the page */ fprintf(out_fp,"\"%s\"

\n",pie_fname,pie_title); } /* Now do the table */ for (i=0;icount!=0) tot_num++; fprintf(out_fp,"\n"); fprintf(out_fp,"\n"); fprintf(out_fp,"\n", GREY,_2utf8(_("Top")),tot_num,_2utf8(_("of")),tot_ctry,_2utf8(_("Total Countries"))); fprintf(out_fp,"\n"); fprintf(out_fp,"\n",GREY); fprintf(out_fp,"\n",DKGREEN,_2utf8(_("Hits"))); fprintf(out_fp,"\n",LTBLUE,_2utf8(_("Files"))); fprintf(out_fp,"\n",RED,_2utf8(_("KBytes"))); fprintf(out_fp,"\n",CYAN,_2utf8(_("Country"))); fprintf(out_fp,"\n"); for (i=0;icount!=0) fprintf(out_fp,"" \ "\n" \ "\n" \ "\n" \ "\n" \ "\n" \ "\n" \ "\n" \ "\n", i+1,top_ctrys[i]->count, (t_hit==0)?0:((float)top_ctrys[i]->count/t_hit)*100.0, top_ctrys[i]->files, (t_file==0)?0:((float)top_ctrys[i]->files/t_file)*100.0, top_ctrys[i]->xfer/1024, (t_xfer==0)?0:((float)top_ctrys[i]->xfer/t_xfer)*100.0, _2utf8(_(top_ctrys[i]->desc))); } fprintf(out_fp,"\n"); fprintf(out_fp,"
" \ "%s %d %s %d %s
" \ "#" \ "%s" \ "%s" \ "%s" \ "%s
%d%lu%3.02f%%%lu%3.02f%%%.0f%3.02f%%%s
\n

\n"); } /*********************************************/ /* path_graph_image -html needed to see image*/ /*********************************************/ void path_graph_image(const char *fname) { /* put our anchor tag first... */ fprintf(out_fp,"%s\n", _2utf8(_("Top followed paths"))); fprintf(out_fp,"
\n"); /* then put the image */ fprintf(out_fp,"", fname); fprintf(out_fp,"", fname); fprintf(out_fp,"\n"); fprintf(out_fp,"
\n"); fprintf(out_fp,"
\n"); } /*********************************************/ /* users_flow_image -html needed to see image*/ /*********************************************/ void users_flow_image(const char *fname) { /* put our anchor tag first... */ fprintf(out_fp,"%s\n", _2utf8(_("Users flow"))); fprintf(out_fp,"
\n"); /* then put the image */ fprintf(out_fp,"", fname); fprintf(out_fp,"", fname); fprintf(out_fp,"\n"); fprintf(out_fp,"
\n"); fprintf(out_fp,"
\n"); } /*********************************************/ /* DUMP_ALL_SITES - dump sites to tab file */ /*********************************************/ void dump_all_sites() { HNODEPTR hptr, *pointer; FILE *out_fp; char filename[256]; u_long cnt=a_ctr; /* generate file name */ snprintf(filename,sizeof(filename),"%s/site_%04d%02d.%s", (dump_path)?dump_path:".",cur_year,cur_month,dump_ext); /* open file */ if ( (out_fp=open_out_file(filename))==NULL ) return; /* need a header? */ if (dump_header) { fprintf(out_fp,"%s\t%s\t%s\t%s\t%s\n", _2utf8(_("Hits")),_2utf8(_("Files")),_2utf8(_("KBytes")),_2utf8(_("Visits")),_2utf8(_("Hostname"))); } /* dump 'em */ pointer=h_array; while (cnt) { hptr=*pointer++; if (hptr->flag != OBJ_GRP) { fprintf(out_fp, "%lu\t%lu\t%.0f\t%lu\t%s\n", hptr->count,hptr->files,hptr->xfer/1024, hptr->visit,hptr->string); } cnt--; } fclose(out_fp); return; } /*********************************************/ /* DUMP_ALL_URLS - dump all urls to tab file */ /*********************************************/ void dump_all_urls() { UNODEPTR uptr, *pointer; FILE *out_fp; char filename[256]; u_long cnt=a_ctr; /* generate file name */ snprintf(filename,sizeof(filename),"%s/url_%04d%02d.%s", (dump_path)?dump_path:".",cur_year,cur_month,dump_ext); /* open file */ if ( (out_fp=open_out_file(filename))==NULL ) return; /* need a header? */ if (dump_header) { fprintf(out_fp,"%s\t%s\t%s\n",_2utf8(_("Hits")),_2utf8(_("KBytes")),_2utf8(_("URL"))); } /* dump 'em */ pointer=u_array; while (cnt) { uptr=*pointer++; if (uptr->flag != OBJ_GRP) { fprintf(out_fp,"%lu\t%.0f\t%s\n", uptr->count,uptr->xfer/1024,uptr->string); } cnt--; } fclose(out_fp); return; } /*********************************************/ /* DUMP_ALL_REFS - dump all refs to tab file */ /*********************************************/ void dump_all_refs() { RNODEPTR rptr, *pointer; FILE *out_fp; char filename[256]; u_long cnt=a_ctr; /* generate file name */ snprintf(filename,sizeof(filename),"%s/ref_%04d%02d.%s", (dump_path)?dump_path:".",cur_year,cur_month,dump_ext); /* open file */ if ( (out_fp=open_out_file(filename))==NULL ) return; /* need a header? */ if (dump_header) { fprintf(out_fp,"%s\t%s\n",_2utf8(_("Hits")),_2utf8(_("Referrer"))); } /* dump 'em */ pointer=r_array; while(cnt) { rptr=*pointer++; if (rptr->flag != OBJ_GRP) { fprintf(out_fp,"%lu\t%s\n",rptr->count, rptr->string); } cnt--; } fclose(out_fp); return; } /*********************************************/ /* DUMP_ALL_AGENTS - dump agents htab file */ /*********************************************/ void dump_all_agents() { ANODEPTR aptr, *pointer; FILE *out_fp; char filename[256]; u_char cnt=a_ctr; /* generate file name */ snprintf(filename,sizeof(filename),"%s/agent_%04d%02d.%s", (dump_path)?dump_path:".",cur_year,cur_month,dump_ext); /* open file */ if ( (out_fp=open_out_file(filename))==NULL ) return; /* need a header? */ if (dump_header) { fprintf(out_fp,"%s\t%s\n",_2utf8(_("Hits")),_2utf8(_("User Agent"))); } /* dump 'em */ pointer=a_array; while(cnt) { aptr=*pointer++; if (aptr->flag != OBJ_GRP) { fprintf(out_fp,"%lu\t%s\n",aptr->count,aptr->string); } cnt--; } fclose(out_fp); return; } /*********************************************/ /* DUMP_ALL_USERS - dump username tab file */ /*********************************************/ void dump_all_users() { INODEPTR iptr, *pointer; FILE *out_fp; char filename[256]; u_long cnt=a_ctr; /* generate file name */ snprintf(filename,sizeof(filename),"%s/user_%04d%02d.%s", (dump_path)?dump_path:".",cur_year,cur_month,dump_ext); /* open file */ if ( (out_fp=open_out_file(filename))==NULL ) return; /* need a header? */ if (dump_header) { fprintf(out_fp,"%s\t%s\t%s\t%s\t%s\n", _2utf8(_("Hits")),_2utf8(_("Files")),_2utf8(_("KBytes")),_2utf8(_("Visits")),_2utf8(_("Username"))); } /* dump 'em */ pointer=i_array; while(cnt) { iptr=*pointer++; if (iptr->flag != OBJ_GRP) { fprintf(out_fp, "%lu\t%lu\t%.0f\t%lu\t%s\n", iptr->count,iptr->files,iptr->xfer/1024, iptr->visit,iptr->string); } cnt--; } fclose(out_fp); return; } /*********************************************/ /* WRITE_MAIN_INDEX - main index.html file */ /*********************************************/ int write_main_index() { /* create main index file */ int i,days_in_month; int lyear=0; int s_mth=0; double gt_hit=0.0; double gt_files=0.0; double gt_pages=0.0; double gt_xfer=0.0; double gt_visits=0.0; char index_fname[256]; char buffer[BUFSIZE]; if (verbose>1) printf("%s\n",_("Generating summary report")); snprintf(buffer,sizeof(buffer),"%s %s",_2utf8(_("Usage summary for")),hname); for (i=0;i<12;i++) /* get last month in history */ { if (hist_year[i]>lyear) { lyear=hist_year[i]; s_mth=hist_month[i]; } if (hist_year[i]==lyear) { if (hist_month[i]>=s_mth) s_mth=hist_month[i]; } } i=(s_mth==12)?1:s_mth+1; year_graph6x( "usage.png", /* filename */ buffer, /* graph title */ i, /* last month */ hist_hit, /* data set 1 */ hist_files, /* data set 2 */ hist_site, /* data set 3 */ hist_xfer, /* data set 4 */ hist_page, /* data set 5 */ hist_visit); /* data set 6 */ /* now do html stuff... */ snprintf(index_fname,sizeof(index_fname),"index.%s",html_ext); if ( (out_fp=fopen(index_fname,"w")) == NULL) { if (verbose) fprintf(stderr,"%s %s!\n",_("Error: Unable to open file"),index_fname); return 1; } write_html_head(_2utf8(_("Last 12 Months")), out_fp); /* year graph */ fprintf(out_fp,"\"%s\"

\n",buffer); /* month table */ fprintf(out_fp,"\n"); fprintf(out_fp,"\n"); fprintf(out_fp,"\n",_2utf8(_("Summary by Month"))); fprintf(out_fp,"\n"); fprintf(out_fp,"\n",GREY,_2utf8(_("Month"))); fprintf(out_fp,"\n",GREY,_2utf8(_("Daily Avg"))); fprintf(out_fp,"\n",GREY,_2utf8(_("Monthly Totals"))); fprintf(out_fp,"\n",DKGREEN,_2utf8(_("Hits"))); fprintf(out_fp,"\n",LTBLUE,_2utf8(_("Files"))); fprintf(out_fp,"\n",CYAN,_2utf8(_("Pages"))); fprintf(out_fp,"\n",YELLOW,_2utf8(_("Visits"))); fprintf(out_fp,"\n",ORANGE,_2utf8(_("Sites"))); fprintf(out_fp,"\n",RED,_2utf8(_("KBytes"))); fprintf(out_fp,"\n",YELLOW,_2utf8(_("Visits"))); fprintf(out_fp,"\n",CYAN,_2utf8(_("Pages"))); fprintf(out_fp,"\n",LTBLUE,_2utf8(_("Files"))); fprintf(out_fp,"\n",DKGREEN,_2utf8(_("Hits"))); fprintf(out_fp,"\n"); for (i=0;i<12;i++) { if (--s_mth < 0) s_mth = 11; if ((hist_month[s_mth]==0) && (hist_files[s_mth]==0)) continue; days_in_month=(hist_lday[s_mth]-hist_fday[s_mth])+1; fprintf(out_fp,"\n",hist_year[s_mth], hist_month[s_mth], html_ext, _2utf8(_(s_month[s_mth])), hist_year[s_mth]); fprintf(out_fp,"\n", hist_hit[s_mth]/days_in_month); fprintf(out_fp,"\n", hist_files[s_mth]/days_in_month); fprintf(out_fp,"\n", hist_page[s_mth]/days_in_month); fprintf(out_fp,"\n", hist_visit[s_mth]/days_in_month); fprintf(out_fp,"\n", hist_site[s_mth]); fprintf(out_fp,"\n", hist_xfer[s_mth]); fprintf(out_fp,"\n", hist_visit[s_mth]); fprintf(out_fp,"\n", hist_page[s_mth]); fprintf(out_fp,"\n", hist_files[s_mth]); fprintf(out_fp,"\n", hist_hit[s_mth]); gt_hit += hist_hit[s_mth]; gt_files += hist_files[s_mth]; gt_pages += hist_page[s_mth]; gt_xfer += hist_xfer[s_mth]; gt_visits+= hist_visit[s_mth]; } fprintf(out_fp,"\n"); fprintf(out_fp,"\n",GREY,_2utf8(_("Totals"))); fprintf(out_fp,"\n",GREY,gt_xfer); fprintf(out_fp,"\n",GREY,gt_visits); fprintf(out_fp,"\n",GREY,gt_pages); fprintf(out_fp,"\n",GREY,gt_files); fprintf(out_fp,"\n",GREY,gt_hit); fprintf(out_fp,"\n"); fprintf(out_fp,"
",GREY); fprintf(out_fp,"%s
" \ "%s" \ "%s" \ "%s
" \ "%s" \ "%s" \ "%s" \ "%s" \ "%s" \ "%s" \ "%s" \ "%s" \ "%s" \ "%s
%s %d%lu%lu%lu%lu%lu%.0f%lu%lu%lu%lu
" \ "%s" \ "%.0f" \ "%.0f" \ "%.0f" \ "%.0f" \ "%.0f
\n"); write_html_tail(out_fp); fclose(out_fp); return 0; } /*********************************************/ /* QS_SITE_CMPH - QSort compare site by hits */ /*********************************************/ int qs_site_cmph(const void *cp1, const void *cp2) { u_long t1, t2; t1=(*(HNODEPTR *)cp1)->count; t2=(*(HNODEPTR *)cp2)->count; if (t1!=t2) return (t2string, (*(HNODEPTR *)cp2)->string ); } /*********************************************/ /* QS_SITE_CMPK - QSort cmp site by bytes */ /*********************************************/ int qs_site_cmpk(const void *cp1, const void *cp2) { double t1, t2; t1=(*(HNODEPTR *)cp1)->xfer; t2=(*(HNODEPTR *)cp2)->xfer; if (t1!=t2) return (t2string, (*(HNODEPTR *)cp2)->string ); } /*********************************************/ /* QS_URL_CMPH - QSort compare URL by hits */ /*********************************************/ int qs_url_cmph(const void *cp1, const void *cp2) { u_long t1, t2; t1=(*(UNODEPTR *)cp1)->count; t2=(*(UNODEPTR *)cp2)->count; if (t1!=t2) return (t2string, (*(UNODEPTR *)cp2)->string ); } /*********************************************/ /* QS_URL_CMPK - QSort compare URL by bytes */ /*********************************************/ int qs_url_cmpk(const void *cp1, const void *cp2) { double t1, t2; t1=(*(UNODEPTR *)cp1)->xfer; t2=(*(UNODEPTR *)cp2)->xfer; if (t1!=t2) return (t2string, (*(UNODEPTR *)cp2)->string ); } /*********************************************/ /* QS_URL_CMPN - QSort compare URL by entry */ /*********************************************/ int qs_url_cmpn(const void *cp1, const void *cp2) { double t1, t2; t1=(*(UNODEPTR *)cp1)->entry; t2=(*(UNODEPTR *)cp2)->entry; if (t1!=t2) return (t2string, (*(UNODEPTR *)cp2)->string ); } /*********************************************/ /* QS_URL_CMPX - QSort compare URL by exit */ /*********************************************/ int qs_url_cmpx(const void *cp1, const void *cp2) { double t1, t2; t1=(*(UNODEPTR *)cp1)->exit; t2=(*(UNODEPTR *)cp2)->exit; if (t1!=t2) return (t2string, (*(UNODEPTR *)cp2)->string ); } /*********************************************/ /* QS_REF_CMPH - QSort compare Refs by hits */ /*********************************************/ int qs_ref_cmph(const void *cp1, const void *cp2) { u_long t1, t2; t1=(*(RNODEPTR *)cp1)->count; t2=(*(RNODEPTR *)cp2)->count; if (t1!=t2) return (t2string, (*(RNODEPTR *)cp2)->string ); } /*********************************************/ /* QS_AGNT_CMPH - QSort cmp Agents by hits */ /*********************************************/ int qs_agnt_cmph(const void *cp1, const void *cp2) { u_long t1, t2; t1=(*(ANODEPTR *)cp1)->count; t2=(*(ANODEPTR *)cp2)->count; if (t1!=t2) return (t2string, (*(ANODEPTR *)cp2)->string ); } /*********************************************/ /* QS_IDENT_CMPH - QSort cmp ident by hits */ /*********************************************/ int qs_ident_cmph(const void *cp1, const void *cp2) { u_long t1, t2; t1=(*(INODEPTR *)cp1)->count; t2=(*(INODEPTR *)cp2)->count; if (t1!=t2) return (t2string, (*(INODEPTR *)cp2)->string ); } /*********************************************/ /* LOAD_SITE_ARRAY - load up the sort array */ /*********************************************/ u_long load_site_array(HNODEPTR *pointer) { HNODEPTR hptr; int i; u_long ctr = 0; /* load the array */ for (i=0;inext; } } return ctr; /* return number loaded */ } /*********************************************/ /* LOAD_URL_ARRAY - load up the sort array */ /*********************************************/ u_long load_url_array(UNODEPTR *pointer) { UNODEPTR uptr; int i; u_long ctr = 0; /* load the array */ for (i=0;inext; } } return ctr; /* return number loaded */ } /*********************************************/ /* LOAD_REF_ARRAY - load up the sort array */ /*********************************************/ u_long load_ref_array(RNODEPTR *pointer) { RNODEPTR rptr; int i; u_long ctr = 0; /* load the array */ for (i=0;inext; } } return ctr; /* return number loaded */ } /*********************************************/ /* LOAD_AGENT_ARRAY - load up the sort array */ /*********************************************/ u_long load_agent_array(ANODEPTR *pointer) { ANODEPTR aptr; int i; u_long ctr = 0; /* load the array */ for (i=0;inext; } } return ctr; /* return number loaded */ } /*********************************************/ /* LOAD_IDENT_ARRAY - load up the sort array */ /*********************************************/ u_long load_ident_array(INODEPTR *pointer) { INODEPTR iptr; int i; u_long ctr = 0; /* load the array */ for (i=0;inext; } } return ctr; /* return number loaded */ } webdruid-0.5.4.orig/parser.c.orig0000600000000000000000000004410210066113350016605 0ustar rootroot00000000000000/* The WebDruid - a web server log analysis program Copyright (C) 2003-2004 Fabien Chevalier (fabien@juliana-multimedia.com) Original webalizer copyright: Copyright (C) 1997-2001 Bradford L. Barrett (brad@mrunix.net) This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version, and provided that the above copyright and permission notice is included with all distributed copies of this or derived software. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA This software uses the gd graphics library, which is copyright by Quest Protein Database Center, Cold Spring Harbor Labs. Please see the documentation supplied with the library for additional information and license terms, or visit www.boutell.com/gd/ for the most recent version of the library and supporting documentation. W3C log format suport generously donated by Klaus Reimer */ /*********************************************/ /* STANDARD INCLUDES */ /*********************************************/ #include "config.h" #include #include #include #include #include /* normal stuff */ #include #include #include /* ensure getopt */ #ifdef HAVE_GETOPT_H #include #endif /* ensure sys/types */ #ifndef _SYS_TYPES_H #include #endif /* some systems need this */ #ifdef HAVE_MATH_H #include #endif /* SunOS 4.x Fix */ #ifndef CLK_TCK #define CLK_TCK _SC_CLK_TCK #endif #include "webdruid.h" /* main header */ #include "lang.h" #include "parser.h" /* internal function prototypes */ static void fmt_logrec(char *); static int parse_record_clf(char *, struct log_struct *); static int parse_record_w3c(char *buffer, struct log_struct * log_record); /* month names used for parsing logfile (shouldn't be lang specific) */ static char *log_month[12]={ "jan", "feb", "mar", "apr", "may", "jun", "jul", "aug", "sep", "oct", "nov", "dec"}; static char tmp_buf[BUFSIZE]; /*********************************************/ /* FMT_LOGREC - terminate log fields w/zeros */ /*********************************************/ static void fmt_logrec(char *buffer) { char *cp=buffer; int q=0,b=0,p=0; while (*cp != '\0') { /* break record up, terminate fields with '\0' */ switch (*cp) { case ' ': if (b || q || p) break; *cp='\0'; break; case '"': q^=1; break; case '[': if (q) break; b++; break; case ']': if (q) break; if (b>0) b--; break; case '(': if (q) break; p++; break; case ')': if (q) break; if (p>0) p--; break; } cp++; } } /*********************************************/ /* PARSE_RECORD - uhhh, you know... */ /*********************************************/ int parse_record(char *buffer, struct log_struct * log_record) { int ret; /* clear out structure */ memset(log_record, 0, sizeof(struct log_struct)); /* dates initialisation */ log_record->year = 0; log_record->month = 0; log_record->day = 0; log_record->hour = 0; log_record->min = 0; log_record->sec = 0; #ifdef USE_DNS #ifdef USE_IPV6 memset(&log_record->addr,0,sizeof(struct sockaddr_storage)); #else memset(&log_rec.addr,0,sizeof(struct in_addr)); #endif #endif /* call appropriate handler */ switch (log_type) { default: case LOG_CLF: ret = parse_record_clf(buffer, log_record); break; /* clf */ case LOG_W3C: ret = parse_record_w3c(buffer, log_record); break; /* w3c */ } /* printf("%d %d %d %d %d %d\n", log_record->year, log_record->month, log_record->day, log_record->hour, log_record->min, log_record->sec); */ if(ret == 1) return 0; else return 1; } /*********************************************/ /* PARSE_RECORD_CLF - web log handler */ /*********************************************/ static int parse_record_clf(char *buffer, struct log_struct * log_record) { int size, i; char *cp1, *cp2, *cpx, *eob, *eos; char datetime[29]; /* raw timestamp */ size = strlen(buffer); /* get length of buffer */ eob = buffer+size; /* calculate end of buffer */ fmt_logrec(buffer); /* seperate fields with \0's */ /* HOSTNAME */ cp1 = cpx = buffer; cp2=log_record->hostname; eos = (cp1+MAXHOST)-1; if (eos >= eob) eos=eob-1; while ( (*cp1 != '\0') && (cp1 != eos) ) *cp2++ = *cp1++; *cp2 = '\0'; if (*cp1 != '\0') { if (verbose) { fprintf(stderr,"%s",_("Warning: Truncating oversized hostname")); if (debug_mode) fprintf(stderr,": %s\n",cpx); else fprintf(stderr,"\n"); } while (*cp1 != '\0') cp1++; } if (cp1 < eob) cp1++; /* skip next field (ident) */ while ( (*cp1 != '\0') && (cp1 < eob) ) cp1++; if (cp1 < eob) cp1++; /* IDENT (authuser) field */ cpx = cp1; cp2 = log_record->ident; eos = (cp1+MAXIDENT-1); if (eos >= eob) eos=eob-1; while ( (*cp1 != '[') && (cp1 < eos) ) /* remove embeded spaces */ { if (*cp1=='\0') *cp1=' '; *cp2++=*cp1++; } *cp2--='\0'; if (cp1 >= eob) return 0; /* check if oversized username */ if (*cp1 != '[') { if (verbose) { fprintf(stderr,"%s",_("Warning: Truncating oversized username")); if (debug_mode) fprintf(stderr,": %s\n",cpx); else fprintf(stderr,"\n"); } while ( (*cp1 != '[') && (cp1 < eob) ) cp1++; } /* strip trailing space(s) */ while (*cp2==' ') *cp2--='\0'; /* date/time string */ cpx = cp1; cp2 = datetime; eos = (cp1+28); if (eos >= eob) eos=eob-1; while ( (*cp1 != '\0') && (cp1 != eos) ) *cp2++ = *cp1++; *cp2 = '\0'; if (*cp1 != '\0') { if (verbose) { fprintf(stderr,"%s",_("Warning: Truncating oversized date field")); if (debug_mode) fprintf(stderr,": %s\n",cpx); else fprintf(stderr,"\n"); } while (*cp1 != '\0') cp1++; } if (cp1 < eob) cp1++; /* minimal sanity check on timestamp */ if ( (datetime[0] != '[') || (datetime[3] != '/') || (cp1 >= eob)) return 0; /* HTTP request */ cpx = cp1; cp2 = log_record->url; eos = (cp1+MAXURL-1); if (eos >= eob) eos = eob-1; while ( (*cp1 != '\0') && (cp1 != eos) ) *cp2++ = *cp1++; *cp2 = '\0'; if (*cp1 != '\0') { if (verbose) { fprintf(stderr,"%s",_("Warning: Truncating oversized request field")); if (debug_mode) fprintf(stderr,": %s\n",cpx); else fprintf(stderr,"\n"); } while (*cp1 != '\0') cp1++; } if (cp1 < eob) cp1++; if ( (log_record->url[0] != '"') || (cp1 >= eob) ) return 0; /* response code */ log_record->resp_code = atoi(cp1); /* xfer size */ while ( (*cp1 != '\0') && (cp1 < eob) ) cp1++; if (cp1 < eob) cp1++; if (*cp1<'0'||*cp1>'9') log_record->xfer_size=0; else log_record->xfer_size = strtoul(cp1,NULL,10); /* done with CLF record -- check if we have more stuff to read*/ if (cp1 < eob) { while ( (*cp1 != '\0') && (*cp1 != '\n') && (cp1 < eob) ) cp1++; if (cp1 < eob) cp1++; /* get referrer if present */ cpx = cp1; cp2 = log_record->refer; eos = (cp1+MAXREF-1); if (eos >= eob) eos = eob-1; while ( (*cp1 != '\0') && (*cp1 != '\n') && (cp1 != eos) ) *cp2++ = *cp1++; *cp2 = '\0'; if (*cp1 != '\0') { if (verbose) { fprintf(stderr,"%s",_("Warning: Truncating oversized referrer field")); if (debug_mode) fprintf(stderr,": %s\n",cpx); else fprintf(stderr,"\n"); } while (*cp1 != '\0') cp1++; } if (cp1 < eob) cp1++; cpx = cp1; cp2 = log_record->agent; eos = cp1+(MAXAGENT-1); if (eos >= eob) eos = eob-1; while ( (*cp1 != '\0') && (cp1 != eos) ) *cp2++ = *cp1++; *cp2 = '\0'; } /* do backup copy the buffer, in case it gets damaged by our tries to analyse it */ strncpy(tmp_buf, buffer, BUFSIZE); /* convert month name to lowercase */ for (i=4; i<7; i++) datetime[i]=tolower(datetime[i]); /* get year/month/day/hour/min/sec values */ log_record->month = 1; for (i=0; i<12; i++) { if (strncmp(log_month[i],&datetime[4],3)==0) { log_record->month = i+1; break; } } log_record->year = atoi(&datetime[8]); /* get year number (int) */ log_record->day = atoi(&datetime[1]); /* get day number */ log_record->hour = atoi(&datetime[13]); /* get hour number */ log_record->min = atoi(&datetime[16]); /* get minute number */ log_record->sec = atoi(&datetime[19]); /* get second number */ /* minimal sanity check on date */ if ((i>=12)||(log_record->min>59)||(log_record->sec>59)||(log_record->year<1990)) { total_bad++; /* if a bad date, bump counter */ if (verbose) { fprintf(stderr,"%s: %s [%lu]", _("Error: bad record (bad date)"),datetime,total_rec); if (debug_mode) fprintf(stderr,":\n%s\n",tmp_buf); else fprintf(stderr,"\n"); } return 0; /* and ignore this record */ } return 1; /* maybe a valid record, return with TRUE */ } /*********************************************/ /* PARSE_RECORD_W3C - w3c log handler */ /*********************************************/ /* Patch: webalizer-w3c For: Webalizer 2.01.10 From: Klaus Reimer Desc: Implement W3C extended log file format support. Version: 3 This patch implements W3C extended log file format support into webalizer. Thig log file format is used by Microsoft's Webserver IIS but other programs may also use this format which was invented by W3C. With this patch webalizer can read the W3C headers and can parse the data lines according to the specified Fields-header. Format-switching within a single logfile is supported. IIS is using this format-switching to write process accounting informations to the same logfile. These accounting informations are producing "bad record" warnings because these lines doesn't hold any informations usable for webalizer. You can just ignore them or disable process accounting logs in the IIS configuration if you don't need them IIS seems to be very buggy. I found three bugs in the current IIS version which affects logfiles: 1. If output buffering is enabled in ASP scripts the sc-bytes field is always 0. This prevents accurate measurement of download traffic. 2. Sometimes IIS writes nonsense into the log so the number of entries are not conform to the number of fields specified in the logfile header. This patch does its best to filter out these lines. 3. IIS writes a lot of Null-characters to the end of each logfile. These lines are ignored by this patch. Known Bugs in this patch: The user-agent field is not completely "urldecoded". Only the '+' signs are replaced by space characters. Other url-encoded characters are not touched. */ /* field index structure */ struct field_index_struct { int date; /* Date field index */ int time; /* Time field index */ int ip; /* IP field index */ int username; /* Username field index */ int method; /* Method field index */ int url; /* URL field index */ int query; /* Querystring field index */ int status; /* Status code field index */ int size; /* Size field index */ int referer; /* Referrer field index */ int agent; /* User agent field index */ int fields; /* Number of fields in this format */ }; /* field structure */ struct fields_struct { char *date; /* Date field */ char *time; /* Time field */ char *ip; /* IP field */ char *username; /* Username field */ char *url; /* URL field */ char *query; /* Querystring */ char *status; /* Status code */ char *size; /* Size field */ char *referer; /* Referrer field */ char *agent; /* User agent field */ }; static int parse_record_w3c(char *buffer, struct log_struct * log_record) { int size; char *eob; char *cp; int index; static struct field_index_struct field_index; struct fields_struct fields; struct tm time; memset(&time, 0, sizeof(struct tm)); size = strlen(buffer); /* get length of buffer */ eob = buffer + size; /* calculate end of buffer */ fmt_logrec(buffer); /* seperate fields with \0's */ cp = buffer; /* Check if the line is empty or a line suffers from the IIS Null-Character bug and abort parsing if found. */ if (*cp == '\0') return 0; /* If it's a header line ignore it or parse the Fields header if found */ if (*cp == '#') { cp++; if (!strcmp(cp, "Fields:")) { /* Reset the field indices */ memset(&field_index, 0, sizeof(struct field_index_struct)); while (*cp) cp++; cp++; index = 1; while ((cp < eob) && (*cp != '\r') && (*cp != '\n')) { /* Set the field index */ if (!strcmp(cp, "date")) field_index.date = index; if (!strcmp(cp, "time")) field_index.time = index; if (!strcmp(cp, "c-ip")) field_index.ip = index; if (!strcmp(cp, "cs-uri-stem")) field_index.url = index; if (!strcmp(cp, "cs-uri-query")) field_index.query = index; if (!strcmp(cp, "sc-status")) field_index.status = index; if (!strcmp(cp, "cs(Referer)")) field_index.referer = index; if (!strcmp(cp, "sc-bytes")) field_index.size = index; if (!strcmp(cp, "cs(User-Agent)")) field_index.agent = index; if (!strcmp(cp, "cs-username")) field_index.username = index; /* Continue with the next field */ while (*cp) cp++; cp++; index++; } field_index.fields = index -1; } /* Return because this header line is completely parsed */ return 0; } /* A data line has been found */ /* Check if the number of entries in this line are conform to the format specified in the header */ index = 1; while ((cp < eob) && (*cp != '\r') && (*cp != '\n')) { while (*cp) cp++; cp++; index++; } if (index-1 != field_index.fields) return 0; /* Reset pointer */ cp = buffer; /* Reset the field pointers and begin parsing the data line */ memset(&fields, 0, sizeof(struct fields_struct)); index = 1; while ((cp < eob) && (*cp != '\r') && (*cp != '\n')) { /* Set the field pointers */ if (index == field_index.date) fields.date = cp; if (index == field_index.time) fields.time = cp; if (index == field_index.ip) fields.ip = cp; if (index == field_index.url) fields.url = cp; if (index == field_index.query) fields.query = cp; if (index == field_index.status) fields.status = cp; if (index == field_index.referer) fields.referer = cp; if (index == field_index.size) fields.size = cp; if (index == field_index.agent) fields.agent = cp; if (index == field_index.username) fields.username = cp; /* Continue with the next data field */ while (*cp) cp++; cp++; index++; } /* Save URL */ if (fields.url) { if (fields.query && (fields.query[0]!='-')) snprintf(log_record->url, MAXURL, "%s?%s", fields.url, fields.query); else strncpy(log_record->url, fields.url, MAXURL - 1); } else return 0; /* Save hostname */ if (fields.ip) strncpy(log_record->hostname, fields.ip, MAXHOST - 1); /* Save response code */ if (fields.status) log_record->resp_code = atoi(fields.status); /* Save referer */ if (fields.referer) strncpy(log_record->refer, fields.referer, MAXREF - 1); /* Save transfer size */ if (fields.size) log_record->xfer_size = strtoul(fields.size, NULL, 10); /* Save user agent */ if (fields.agent) { cp = fields.agent; while (*cp) { if (*cp == '+') *cp = ' '; cp++; } strncpy(log_record->agent, fields.agent, MAXAGENT - 1); } /* Save auth username */ if (fields.username) strncpy(log_record->ident, fields.username, MAXIDENT - 1); /* Parse date and time and save it */ if (fields.date) { log_record->year = atoi(fields.date); while ((fields.date[0] != '\0') && (fields.date[0] != '-')) fields.date++; if (fields.date[0] == '\0') return 0; fields.date++; log_record->month = atoi(fields.date); while ((fields.date[0] != '\0') && (fields.date[0] != '-')) fields.date++; if (fields.date[0] == '\0') return 0; fields.date++; log_record->day = atoi(fields.date); } if (fields.time) { log_record->hour = atoi(fields.time); while ((fields.time[0] != '\0') && (fields.time[0] != ':')) fields.time++; if (fields.time[0] == '\0') return 0; fields.time++; log_record->min = atoi(fields.time); while ((fields.time[0] != '\0') && (fields.time[0] != ':')) fields.time++; if (fields.time[0] == '\0') return 0; fields.time++; log_record->sec = atoi(fields.time); } return 1; } webdruid-0.5.4.orig/dns_resolv.h.orig0000600000000000000000000000417110066113350017476 0ustar rootroot00000000000000#ifndef _DNS_RESOLV_H #define _DNS_RESOLV_H #ifdef USE_DNS /* skip whole file if not using DNS stuff... */ #ifdef HAVE_ERRNO_H #include #else extern int errno; #endif /* HAVE_ERRNO_H */ extern DB *dns_db; extern int dns_fd; struct dnsRecord { time_t timeStamp; /* Timestamp of resolv data */ int numeric; /* 0: Name, 1: IP-address */ char hostName[1]; }; /* Hostname (var length) */ struct dns_child /* Defines the communication with a DNS child */ { int inpipe[2]; /* Pipe Child -> Father */ int outpipe[2]; /* Pipe Father -> Child */ int pid; /* PID of Child */ int flags; /* see below */ struct dnode *cur; /* Currently processed node */ }; /*****************************************/ /* RESOLVE_DNS */ /*****************************************/ /* * Changes if possible the hostname of log_struct * from numeric IP to dns name, using the * database cache */ extern void resolve_dns(struct log_struct *); /*****************************************/ /* DNS_RESOLVER */ /*****************************************/ /* * Updates IN->Name DB for files in the * global pool */ extern int dns_resolver(); /*****************************************/ /* OPEN_CACHE - loads IP->names database */ /*****************************************/ extern int open_cache(); /*****************************************/ /* CLOSE_CACHE - closes database */ /*****************************************/ extern int close_cache(); #define DNS_CHILD_READY 0x1 /* Our child flags */ #define DNS_CHILD_RUNNING 0x2 #define MAXCHILD 100 /* Maximum number of DNS children */ #define DNS_CACHE_TTL (86400*30) /* TTL of an Entry in the DNS cache */ #define DNS_CACHE_TTL_UNRESOLVED (86400*7) /* TTL of an negative cache Entry in the DNS cache */ #endif /* USE_DNS */ #endif /* _DNS_RESOLV_H */ webdruid-0.5.4.orig/dns_resolv.c.orig0000600000000000000000000006610710066113350017500 0ustar rootroot00000000000000/* The WebDruid - a web server log analysis program Copyright (C) 2003-2004 Fabien Chevalier (fabien@juliana-multimedia.com) Original webalizer copyright: Copyright (C) 1997-2001 Bradford L. Barrett (brad@mrunix.net) This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version, and provided that the above copyright and permission notice is included with all distributed copies of this or derived software. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA This software uses the gd graphics library, which is copyright by Quest Protein Database Center, Cold Spring Harbor Labs. Please see the documentation supplied with the library for additional information and license terms, or visit www.boutell.com/gd/ for the most recent version of the library and supporting documentation. dns_resolv.c - based on the dns-resolver code submitted by Henning P. Schmiedehausen and modified for inclusion in the Webalizer directly. Enabled with -DUSE_DNS. */ #include "config.h" /*********************************************/ /* STANDARD INCLUDES */ /*********************************************/ #include #include #include #include #include /* normal stuff */ #include #include #include #include /* Need socket header? */ #ifdef HAVE_SYS_SOCKET_H #include #endif /* ensure getopt */ #ifdef HAVE_GETOPT_H #include #endif /* ensure sys/types */ #ifndef _SYS_TYPES_H #include #endif /* ensure getaddrinfo/getnameinfo */ #include /* some systems need this */ #ifdef HAVE_MATH_H #include #endif /* SunOS 4.x Fix */ #ifndef CLK_TCK #define CLK_TCK _SC_CLK_TCK #endif #ifdef USE_DNS /* skip everything in this file if no DNS */ #include /* include stuff we need for dns lookups, */ #include /* DB access, file control, etc... */ #include #include #include #include #include #include #include /* * The following assumes that Berkeley DB 1.85 headers will be either * in db_185.h or db3.1/db_185.h, or db.h. If this is not the case, we should * be stopped by ./configure script */ #if defined(HAVE_DB_185_H) #include #elif defined(HAVE_DB3_1_DB_185_H) #include #else #include #endif /* HAVE_DB_185_H */ #include "webdruid.h" /* main header */ #include "lang.h" /* language declares */ #include "hashtab.h" /* hash table functions */ #include "logs_mgmt.h" /* log parser functions */ #include "dns_resolv.h" /* our header */ /* local data */ #ifndef HAVE_ERRNO_H int errno; /* errno for those in need */ #endif DB *dns_db = NULL; /* DNS cache database */ int dns_fd = 0; struct dns_child child[MAXCHILD]; /* DNS child pipe data */ DNODEPTR host_table[MAXHASH]; /* hostname/ip hash table */ char buffer[BUFSIZE]; /* log file record buffer */ char tmp_buf[BUFSIZE]; /* used to temp save above */ struct utsname system_info; /* system info structure */ int raiseSigChild = 1; time_t runtime; time_t start_time, end_time; float temp_time; /* internal function prototypes */ static void process_list(DNODEPTR); static void sigChild(int); static void db_put(char *, char *, int); void set_fl(int, int); void clr_fl(int, int); /*********************************************/ /* RESOLVE_DNS - lookup IP in cache */ /*********************************************/ void resolve_dns(struct log_struct *log_rec) { DBT query, response; /* aligned dnsRecord to prevent Solaris from doing a dump */ /* (not found in debugger, as it can dereference it :( */ struct dnsRecord alignedRecord; if (!dns_db) return; /* ensure we have a dns db */ query.data = log_rec->hostname; query.size = strlen(log_rec->hostname); if (debug_mode) fprintf(stderr,"Checking %s...", log_rec->hostname); switch((dns_db->get)(dns_db, &query, &response, 0)) { case -1: if (debug_mode) fprintf(stderr," Lookup error\n"); break; case 1: if (debug_mode) fprintf(stderr," not found\n"); break; case 0: { memcpy(&alignedRecord, response.data, sizeof(struct dnsRecord)); strncpy (log_rec->hostname, ((struct dnsRecord *)response.data)->hostName, MAXHOST); log_rec->hostname[MAXHOST]=0; if (debug_mode) fprintf(stderr," found: %s (%ld)\n", log_rec->hostname, alignedRecord.timeStamp); break; } default: if (debug_mode) fprintf(stderr," Invalid response\n"); } } /*********************************************/ /* DNS_RESOLVER - read log and lookup IP's */ /*********************************************/ int dns_resolver() { DNODEPTR h_entries; DNODEPTR l_list = NULL; int i; int save_verbose=verbose; u_long listEntries = 0; struct sigaction sigPipeAction; struct stat dbStat; struct tms mytms; /* aligned dnsRecord to prevent Solaris from doing a dump */ /* (not found in debugger, as it can dereference it :( */ struct dnsRecord alignedRecord; struct flock tmp_flock; tmp_flock.l_whence=SEEK_SET; /* default flock fields */ tmp_flock.l_start=0; tmp_flock.l_len=0; tmp_flock.l_pid=0; time(&runtime); start_time = times(&mytms); /* get start time */ /* minimal sanity check on it */ if(stat(dns_cache, &dbStat) < 0) { if(errno != ENOENT) { dns_cache=NULL; dns_db=NULL; return 0; /* disable cache */ } } else { if(!dbStat.st_size) /* bogus file, probably from a crash */ { unlink(dns_cache); /* remove it so we can recreate... */ } } /* open cache file */ if(!(dns_db = dbopen(dns_cache, O_RDWR|O_CREAT, 0664, DB_HASH, NULL))) { /* Error: Unable to open DNS cache file */ if (verbose) fprintf(stderr,"%s %s\n",_("Error: Unable to open DNS cache file"),dns_cache); dns_cache=NULL; dns_db=NULL; return 0; /* disable cache */ } /* get file descriptor */ dns_fd = dns_db->fd(dns_db); tmp_flock.l_type=F_WRLCK; /* set read/write lock type */ if (fcntl(dns_fd,F_SETLK,&tmp_flock) < 0) /* and barf if we cant lock */ { /* Error: Unable to lock DNS cache file */ if (verbose) fprintf(stderr,"%s %s\n",_("Error: Unable to lock DNS cache file"),dns_cache); dns_db->close(dns_db); dns_cache=NULL; dns_db=NULL; return 0; /* disable cache */ } /* Setup signal handlers */ sigPipeAction.sa_handler = SIG_IGN; sigPipeAction.sa_flags = SA_RESTART; sigemptyset(&sigPipeAction.sa_mask); sigaction(SIGPIPE, &sigPipeAction, NULL); /* disable warnings/errors for this run... */ verbose=0; /* Main loop to read log records from logs pool */ while (logs_next_record(&log_rec) == 0) { #ifdef USE_IPV6 /* IPv6 is supported */ struct addrinfo hints, *ares; memset(&hints, 0, sizeof(hints)); hints.ai_family = AF_UNSPEC; hints.ai_socktype = SOCK_STREAM; hints.ai_flags = AI_NUMERICHOST; if (0 == getaddrinfo(log_rec.hostname, "0", &hints, &ares)) #else /* IPv6 is not supported */ if((log_rec.addr.s_addr = inet_addr(log_rec.hostname)) != INADDR_NONE) #endif { DBT q, r; #ifdef USE_IPV6 /* IPv6 is supported */ memcpy(&log_rec.addr, ares->ai_addr, ares->ai_addrlen); freeaddrinfo(ares); #endif q.data = log_rec.hostname; q.size = strlen(log_rec.hostname); switch((dns_db->get)(dns_db, &q, &r, 0)) { case -1: break; /* Error while retrieving .. just ignore */ case 1: /* No record on file, queue up for resolving */ { put_dnode(log_rec.hostname, &log_rec.addr, host_table); break; } case 0: /* We have a record for this address */ { memcpy(&alignedRecord, r.data, sizeof(struct dnsRecord)); if ((runtime - alignedRecord.timeStamp ) < DNS_CACHE_TTL) { if (alignedRecord.numeric && ((runtime - alignedRecord.timeStamp) > DNS_CACHE_TTL_UNRESOLVED)) put_dnode(log_rec.hostname, &log_rec.addr, host_table); break; } else { /* queue up stale entry for retrieval */ put_dnode(log_rec.hostname, &log_rec.addr, host_table); break; } } } } } verbose = save_verbose; /* restore verbosity level... */ logs_rewind(); listEntries = 0; /* build our linked list l_list */ for(i=0;i < MAXHASH; i++) { for(h_entries=host_table[i]; h_entries ; h_entries = h_entries->next) { h_entries->llist = l_list; l_list = h_entries; listEntries++; } } if(!l_list) { /* No valid addresses found... */ if (verbose>1) printf("%s\n",_("None to process")); tmp_flock.l_type=F_UNLCK; fcntl(dns_fd, F_SETLK, &tmp_flock); dns_db->close(dns_db); return 0; } /* process our list now... */ process_list(l_list); /* display timing totals ? */ end_time = times(&mytms); /* display timing totals? */ if (time_me || (verbose>1)) { if (verbose<2 && time_me) printf("DNS: "); printf("%lu %s ",listEntries, _("addresses")); /* get processing time (end-start) */ temp_time = (float)(end_time-start_time)/CLK_TCK; printf("%s %.2f %s", _("in"), temp_time, _("seconds")); /* calculate records per second */ if (temp_time) i=( (int)((float)listEntries/temp_time) ); else i=0; if ( (i>0) && (i<=listEntries) ) printf(", %d/sec\n", i); else printf("\n"); } /* processing done, exit */ tmp_flock.l_type=F_UNLCK; fcntl(dns_fd, F_SETLK, &tmp_flock); dns_db->close(dns_db); return 0; } /*********************************************/ /* PROCESS_LIST - do the resoluton... */ /*********************************************/ static void process_list(DNODEPTR l_list) { DNODEPTR trav; char child_buf[MAXHOST]; char dns_buf[MAXHOST]; int i; int pid; int nof_children = 0; fd_set rd_set; struct sigaction sigChildAction; sigChildAction.sa_handler = sigChild; sigChildAction.sa_flags = SA_NOCLDSTOP|SA_RESTART; sigemptyset(&sigChildAction.sa_mask); raiseSigChild = 0; sigaction(SIGCHLD, &sigChildAction, NULL); /* fire up our child processes */ for(i=0; i < dns_children; i++) { if(pipe(child[i].inpipe)) { if (verbose) fprintf(stderr,"INPIPE creation error"); return; /* exit(1) */ } if(pipe(child[i].outpipe)) { if (verbose) fprintf(stderr,"OUTPIPE creation error"); return; /* exit(1); */ } /* fork it off */ switch(pid=fork()) { case -1: { if (verbose) fprintf(stderr,"FORK error"); return; /* exit(1); */ } case 0: /* Child */ { int size; #ifndef USE_IPV6 /* IPv6 is not supported */ struct hostent *res_ent; #endif close(child[i].inpipe[0]); close(child[i].outpipe[1]); /* get struct sockaddr_storage (IPv6) / in_addr (IPv4) here */ while((size = read(child[i].outpipe[0], child_buf, MAXHOST))) { if(size < 0) { perror("read error"); exit(1); } else { #ifdef USE_IPV6 /* IPv6 is supported */ char hbuf[NI_MAXHOST]; if(debug_mode) printf("Child got work: %lx(%d)\n", *(unsigned long *)((struct sockaddr*)child_buf)->sa_data, size); if(0 == getnameinfo((struct sockaddr*)child_buf, sizeof(struct sockaddr_storage), hbuf, sizeof(hbuf), NULL, 0, NI_NAMEREQD)) #else if(debug_mode) printf("Child got work: %lx(%d)\n", *((unsigned long *)child_buf), size); if((res_ent = gethostbyaddr(child_buf, size, AF_INET))) #endif { /* must be at least 4 chars */ #ifdef USE_IPV6 /* IPv6 is supported */ if (strlen(hbuf)>3) { if(debug_mode) printf("Child got %s for %lx(%d), %d bytes\n", hbuf, *(unsigned long *)((struct sockaddr *)child_buf)->sa_data, size,strlen(hbuf)); /* If long hostname, take max domain name part */ if ((size = strlen(hbuf)) > MAXHOST-2) strcpy(child_buf,(hbuf+(size-MAXHOST+1))); else strcpy(child_buf, hbuf); size = strlen(child_buf); } else { if (debug_mode) printf("getnameinfo returned bad hbuf!\n"); } } else { if(debug_mode) printf("getnameinfo didn't return any usable information!\n"); } #else /* IPv6 is not supported */ if (strlen(res_ent->h_name)>3) { if(debug_mode) printf("Child got %s for %lx(%d), %d bytes\n", res_ent->h_name, *((unsigned long *)child_buf), size,strlen(res_ent->h_name)); /* If long hostname, take max domain name part */ if ((size = strlen(res_ent->h_name)) > MAXHOST-2) strcpy(child_buf,(res_ent->h_name+(size-MAXHOST+1))); else strcpy(child_buf, res_ent->h_name); size = strlen(child_buf); } else { if (debug_mode) printf("gethostbyaddr returned bad h_name!\n"); } } else { if(debug_mode) printf("gethostbyaddr returned NULL! (%d)\n",h_errno); } #endif if (write(child[i].inpipe[1], child_buf, size) == -1) { perror("write error"); exit(1); } } } close(child[i].inpipe[1]); close(child[i].outpipe[0]); if(debug_mode) printf( "Child %d got closed input, shutting down\n", i); fflush(stdout); exit(0); } /* case 0 */ default: { child[i].pid = pid; child[i].flags = DNS_CHILD_READY|DNS_CHILD_RUNNING; nof_children++; close(child[i].inpipe[1]); close(child[i].outpipe[0]); set_fl(child[i].inpipe[0], O_NONBLOCK); } } } trav = l_list; while(nof_children) { static struct timeval selectTimeval; int res; int max_fd; FD_ZERO(&rd_set); max_fd = 0; if(raiseSigChild) { int pid; while((pid = waitpid(-1, NULL, WNOHANG)) > 0) { for(i=0;iaddr, sizeof(trav->addr)) != -1) #else if (write(child[i].outpipe[1], &(trav->addr.s_addr), sizeof(trav->addr.s_addr)) != -1) #endif { /* We will watch this child */ child[i].cur = trav; FD_SET(child[i].inpipe[0], &rd_set); max_fd = MAX(max_fd, child[i].inpipe[0]); if(debug_mode) #ifdef USE_IPV6 /* IPv6 is supported */ printf("Giving %s (%lx) to Child %d for resolving\n", child[i].cur->string, *(unsigned long *)((struct sockaddr *)&child[i].cur->addr)->sa_data, i); #else printf("Giving %s (%lx) to Child %d for resolving\n", child[i].cur->string, (unsigned long)child[i].cur->addr.s_addr, i); #endif trav = trav->llist; } else /* write error */ { if(errno != EINTR) /* Could be a signal */ { perror("Could not write to pipe"); close(child[i].outpipe[1]); /* kill */ child[i].flags &= ~DNS_CHILD_RUNNING; /* child */ } } } else /* List is complete */ { close(child[i].outpipe[1]); /* Go away */ child[i].flags &= ~DNS_CHILD_RUNNING; /* Child is dead */ } } else { /* Look, the busy child... */ FD_SET(child[i].inpipe[0], &rd_set); max_fd = MAX(max_fd, child[i].inpipe[0]); } } } selectTimeval.tv_sec = 5; /* This stuff ticks in 5 second intervals */ selectTimeval.tv_usec = 0; switch(res = select(max_fd+1, &rd_set, NULL, NULL, &selectTimeval)) { case -1: { if(errno != EINTR) /* Could be a signal */ perror("Error in select"); break; } case 0: /* Timeout, just fall once through the child loop */ { if(debug_mode) printf("tick\n"); break; } default: { for(i=0; i< dns_children;i++) { if(!res) /* All file descriptors done */ break; if(FD_ISSET(child[i].inpipe[0], &rd_set)) { int size; res--; /* One less... */ if(debug_mode) printf("Work requested from Child %d\n", i); switch (size=read(child[i].inpipe[0], dns_buf, MAXHOST)) { case -1: { if(errno != EINTR) perror("Could not read from pipe"); break; } case 0: { /* EOF. Child has closed Pipe. It shouldn't have */ /* done that, could be an error or something. */ /* Reap it */ close(child[i].outpipe[1]); child[i].flags &= ~DNS_CHILD_RUNNING; if(debug_mode) printf("Child %d wants to be reaped\n", i); break; } default: { dns_buf[size] = '\0'; #ifdef USE_IPV6 /* IPv6 is supported */ if(memcmp(dns_buf, &(child[i].cur->addr), sizeof(child[i].cur->addr))) #else if(memcmp(dns_buf, &(child[i].cur->addr.s_addr), sizeof(child[i].cur->addr.s_addr))) #endif { if(debug_mode) printf("Got a result (%d): %s -> %s\n", i, child[i].cur->string, dns_buf); db_put(child[i].cur->string, dns_buf, 0); } else { if(debug_mode) printf("Could not resolve (%d): %s\n", i, child[i].cur->string); db_put(child[i].cur->string,child[i].cur->string,1); } if(debug_mode) printf("Child %d back in task pool\n", i); /* Child is back in the task pool */ child[i].flags |= DNS_CHILD_READY; break; } } } } break; } } } return; } /*********************************************/ /* SET_FL - set flag on pipe FD */ /*********************************************/ void set_fl(int fd, int flags) { int val; /* get current flags */ if ((val=fcntl(fd, F_GETFL, 0)) < 0) if (verbose) fprintf(stderr,"set_fl F_GETFL error\n"); /* set them */ val |= flags; /* and write them back */ if ((val=fcntl(fd, F_SETFL, val)) < 0) if (verbose) fprintf(stderr,"set_fl F_SETFL error\n"); } /*********************************************/ /* CLR_FL - clear flag on pipe FD */ /*********************************************/ void clr_fl(int fd, int flags) { int val; /* Get current flags */ if ((val=fcntl(fd, F_GETFL, 0)) < 0) if (verbose) fprintf(stderr,"clr_fl F_GETFL error\n"); /* set them */ val &= ~flags; /* and write them back */ if ((val=fcntl(fd, F_SETFL, val)) < 0) if (verbose) fprintf(stderr,"clr_fl F_SETFL error\n"); } /*********************************************/ /* DB_PUT - put key/val in the cache db */ /*********************************************/ static void db_put(char *key, char *value, int numeric) { DBT k, v; struct dnsRecord *recPtr = NULL; int nameLen = strlen(value)+1; /* Align to multiple of eight bytes */ int recSize = (sizeof(struct dnsRecord)+nameLen+7) & ~0x7; /* make sure we have a db ;) */ if(dns_db) { if((recPtr = calloc(1, recSize))) { recPtr->timeStamp = runtime; recPtr->numeric = numeric; memcpy(&recPtr->hostName, value, nameLen); k.data = key; k.size = strlen(key); v.size = recSize; v.data = recPtr; if((dns_db->put)(dns_db, &k, &v, 0) < 0) if (verbose>1) fprintf(stderr,"db_put fail!\n"); free(recPtr); } } } /*********************************************/ /* SIGCHILD - raise our signal */ /*********************************************/ static void sigChild(int signum) { raiseSigChild++; } /*********************************************/ /* OPEN_CACHE - open our cache file RDONLY */ /*********************************************/ int open_cache() { struct stat dbStat; struct flock tmp_flock; tmp_flock.l_whence=SEEK_SET; /* default flock fields */ tmp_flock.l_start=0; tmp_flock.l_len=0; tmp_flock.l_pid=0; tmp_flock.l_type=F_RDLCK; /* double check filename was specified */ if(!dns_cache) { dns_db=NULL; return 0; } /* minimal sanity check on it */ if(stat(dns_cache, &dbStat) < 0) { if(errno != ENOENT) return 0; } else { if(!dbStat.st_size) /* bogus file, probably from a crash */ { unlink(dns_cache); /* remove it so we can recreate... */ } } /* open cache file */ if(!(dns_db = dbopen(dns_cache, O_RDONLY, 0664, DB_HASH, NULL))) { /* Error: Unable to open DNS cache file */ if (verbose) fprintf(stderr,"%s %s\n",_("Error: Unable to open DNS cache file"),dns_cache); return 0; /* disable cache */ } /* get file descriptor */ dns_fd = dns_db->fd(dns_db); /* Get shared lock on cache file */ if (fcntl(dns_fd, F_SETLK, &tmp_flock) < 0) { if (verbose) fprintf(stderr,"%s %s\n",_("Error: Unable to lock DNS cache file"),dns_cache); dns_db->close(dns_db); return 0; } return 1; } /*********************************************/ /* CLOSE_CACHE - close our RDONLY cache */ /*********************************************/ int close_cache() { struct flock tmp_flock; tmp_flock.l_whence=SEEK_SET; /* default flock fields */ tmp_flock.l_start=0; tmp_flock.l_len=0; tmp_flock.l_pid=0; tmp_flock.l_type=F_UNLCK; /* clear lock and close cache file */ fcntl(dns_fd, F_SETLK, &tmp_flock); dns_db->close(dns_db); return 1; } #endif /* USE_DNS */