Imported Debian patch 2.23.05-1
[hcoop/zz_old/debian/webalizer.git] / debian / patches / 24_gettext_generated.diff
diff --git a/debian/patches/24_gettext_generated.diff b/debian/patches/24_gettext_generated.diff
new file mode 100644 (file)
index 0000000..d33d44b
--- /dev/null
@@ -0,0 +1,2126 @@
+From: Julien Viard de Galbert <julien@vdg.blogsite.org>
+Subject: run script to complete gettext patch
+
+This patch is generated by saving the files modified by running
+the script 'lang_po.sh'.
+
+Index: webalizer/dns_resolv.c
+===================================================================
+--- webalizer.orig/dns_resolv.c        2011-01-08 20:59:53.000000000 +0100
++++ webalizer/dns_resolv.c     2011-01-08 20:59:58.000000000 +0100
+@@ -199,7 +199,7 @@
+            DB_CREATE, 0644) != 0) )
+    {
+       /* Error: Unable to open DNS cache file <filename> */
+-      if (verbose) fprintf(stderr,"%s %s\n",msg_dns_nodb,dns_cache);
++      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 */
+@@ -212,7 +212,7 @@
+    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",msg_dns_nolk,dns_cache);
++      if (verbose) fprintf(stderr,"%s %s\n",_("Error: Unable to lock DNS cache file"),dns_cache);
+       dns_db->close(dns_db, 0);
+       dns_cache=NULL;
+       dns_db=NULL;
+@@ -299,7 +299,7 @@
+    if(!l_list)
+    {
+       /* No valid addresses found... */
+-      if (verbose>1) printf("%s\n",msg_dns_none);
++      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, 0);
+@@ -316,12 +316,12 @@
+    if (time_me || (verbose>1))
+    {
+       if (verbose<2 && time_me) printf("DNS: ");
+-      printf("%llu %s ",listEntries, msg_addresses);
++      printf("%llu %s ",listEntries, _("addresses"));
+       /* total processing time in seconds */
+       temp_time = difftime(end_time,start_time);
+       if (temp_time==0) temp_time=1;
+-      printf("%s %.0f %s", msg_in, temp_time, msg_seconds);
++      printf("%s %.0f %s", _("in"), temp_time, _("seconds"));
+       /* calculate records per second */
+       if (temp_time)
+@@ -774,7 +774,7 @@
+            DB_RDONLY, 0644) != 0) )
+    {
+       /* Error: Unable to open DNS cache file <filename> */
+-      if (verbose) fprintf(stderr,"%s %s\n",msg_dns_nodb,dns_cache);
++      if (verbose) fprintf(stderr,"%s %s\n",_("Error: Unable to open DNS cache file"),dns_cache);
+       return 0;                  /* disable cache */
+    }
+@@ -784,7 +784,7 @@
+    /* Get shared lock on cache file */
+    if (fcntl(dns_fd, F_SETLK, &tmp_flock) < 0)
+    {
+-      if (verbose) fprintf(stderr,"%s %s\n",msg_dns_nolk,dns_cache);
++      if (verbose) fprintf(stderr,"%s %s\n",_("Error: Unable to lock DNS cache file"),dns_cache);
+       dns_db->close(dns_db, 0);
+       return 0;
+    }
+Index: webalizer/graphs.c
+===================================================================
+--- webalizer.orig/graphs.c    2011-01-08 20:59:53.000000000 +0100
++++ webalizer/graphs.c 2011-01-08 20:59:58.000000000 +0100
+@@ -141,68 +141,68 @@
+    if (graph_legend)
+    {
+       /* Kbytes Legend */
+-      i = (strlen(msg_h_xfer)*6);
++      i = (strlen(_("kB F"))*6);
+       if (dump_inout == 0)
+       {
+          gdImageString(im,gdFontSmall,491-i,237,
+-                    (unsigned char *)msg_h_xfer,dkgrey);
++                    (unsigned char *)_("kB F"),dkgrey);
+          gdImageString(im,gdFontSmall,490-i,236,
+-                    (unsigned char *)msg_h_xfer,KBYTECOLOR);
++                    (unsigned char *)_("kB F"),KBYTECOLOR);
+       }
+       else
+       {
+-      j = (strlen(msg_h_ixfer)*6);
+-      k = (strlen(msg_h_oxfer)*6);
++      j = (strlen(_("kB In"))*6);
++      k = (strlen(_("kB Out"))*6);
+       gdImageString(im,gdFontSmall,491-i-j-k-24,237,
+-                    (unsigned char *)msg_h_xfer,dkgrey);
++                    (unsigned char *)_("kB F"),dkgrey);
+       gdImageString(im,gdFontSmall,490-i-j-k-24,236,
+-                    (unsigned char *)msg_h_xfer,KBYTECOLOR);
++                    (unsigned char *)_("kB F"),KBYTECOLOR);
+       gdImageString(im,gdFontSmall,491-k-j-21,237,"/",dkgrey);
+       gdImageString(im,gdFontSmall,490-k-j-21,236,"/",black);
+       gdImageString(im,gdFontSmall,491-k-j-12,237,
+-                    (unsigned char *)msg_h_ixfer,dkgrey);
++                    (unsigned char *)_("kB In"),dkgrey);
+       gdImageString(im,gdFontSmall,490-k-j-12,236,
+-                    (unsigned char *)msg_h_ixfer,IKBYTECOLOR);
++                    (unsigned char *)_("kB In"),IKBYTECOLOR);
+       gdImageString(im,gdFontSmall,491-k-9,237,"/",dkgrey);
+       gdImageString(im,gdFontSmall,490-k-9,236,"/",black);
+       gdImageString(im,gdFontSmall,491-k,237,
+-                    (unsigned char *)msg_h_oxfer,dkgrey);
++                    (unsigned char *)_("kB Out"),dkgrey);
+       gdImageString(im,gdFontSmall,490-k,236,
+-                    (unsigned char *)msg_h_oxfer,OKBYTECOLOR);
++                    (unsigned char *)_("kB Out"),OKBYTECOLOR);
+       }
+       /* Sites/Visits Legend */
+-      i = (strlen(msg_h_visits)*6);
+-      j = (strlen(msg_h_sites)*6);
++      i = (strlen(_("Visits"))*6);
++      j = (strlen(_("Sites"))*6);
+       gdImageString(im,gdFontSmall,491-i-j-12,11,
+-                    (unsigned char *)msg_h_visits,dkgrey);
++                    (unsigned char *)_("Visits"),dkgrey);
+       gdImageString(im,gdFontSmall,490-i-j-12,10,
+-                    (unsigned char *)msg_h_visits,VISITCOLOR);
++                    (unsigned char *)_("Visits"),VISITCOLOR);
+       gdImageString(im,gdFontSmall,491-j-9,11,(unsigned char *)"/",dkgrey);
+       gdImageString(im,gdFontSmall,490-j-9,10,(unsigned char *)"/",black);
+       gdImageString(im,gdFontSmall,491-j,11,
+-                    (unsigned char *)msg_h_sites,dkgrey);
++                    (unsigned char *)_("Sites"),dkgrey);
+       gdImageString(im,gdFontSmall,490-j,10,
+-                    (unsigned char *)msg_h_sites,SITECOLOR);
++                    (unsigned char *)_("Sites"),SITECOLOR);
+       /* Hits/Files/Pages Legend */
+-      i = (strlen(msg_h_pages)*6);
+-      j = (strlen(msg_h_files)*6);
++      i = (strlen(_("Pages"))*6);
++      j = (strlen(_("Files"))*6);
+       gdImageStringUp(im,gdFontSmall,6,231,
+-                      (unsigned char *)msg_h_pages,dkgrey);
++                      (unsigned char *)_("Pages"),dkgrey);
+       gdImageStringUp(im,gdFontSmall,5,230,
+-                      (unsigned char *)msg_h_pages,PAGECOLOR);
++                      (unsigned char *)_("Pages"),PAGECOLOR);
+       gdImageStringUp(im,gdFontSmall,6,231-i-3,(unsigned char *)"/",dkgrey);
+       gdImageStringUp(im,gdFontSmall,5,230-i-3,(unsigned char *)"/",black);
+       gdImageStringUp(im,gdFontSmall,6,231-i-12,
+-                      (unsigned char *)msg_h_files,dkgrey);
++                      (unsigned char *)_("Files"),dkgrey);
+       gdImageStringUp(im,gdFontSmall,5,230-i-12,
+-                      (unsigned char *)msg_h_files,FILECOLOR);
++                      (unsigned char *)_("Files"),FILECOLOR);
+       gdImageStringUp(im,gdFontSmall,6,231-i-j-15,(unsigned char *)"/",dkgrey);
+       gdImageStringUp(im,gdFontSmall,5,230-i-j-15,(unsigned char *)"/",black);
+       gdImageStringUp(im,gdFontSmall,6,231-i-j-24,
+-                      (unsigned char *)msg_h_hits,dkgrey);
++                      (unsigned char *)_("Hits"),dkgrey);
+       gdImageStringUp(im,gdFontSmall,5,230-i-j-24,
+-                      (unsigned char *)msg_h_hits,HITCOLOR);
++                      (unsigned char *)_("Hits"),HITCOLOR);
+    }
+    /* Now draw data areas */
+@@ -402,7 +402,7 @@
+       if ( S_ISLNK(out_stat.st_mode) )
+       {
+          if (verbose)
+-         fprintf(stderr,"%s %s (symlink)\n",msg_no_open,fname);
++         fprintf(stderr,"%s %s (symlink)\n",_("Error: Unable to open file"),fname);
+          return(EBADF);
+       }
+    }
+@@ -498,60 +498,60 @@
+    {
+       /* Kbytes Legend */
+       gdImageStringUp(im,gdFontSmall,494,376,
+-                      (unsigned char *)msg_h_xfer,dkgrey);
++                      (unsigned char *)_("kB F"),dkgrey);
+       gdImageStringUp(im,gdFontSmall,493,375,
+-                      (unsigned char *)msg_h_xfer,KBYTECOLOR);
++                      (unsigned char *)_("kB F"),KBYTECOLOR);
+       if (dump_inout != 0)
+       {
+-       i=(strlen(msg_h_xfer)*6);
+-       j=(strlen(msg_h_ixfer)*6);
++       i=(strlen(_("kB F"))*6);
++       j=(strlen(_("kB In"))*6);
+        gdImageStringUp(im,gdFontSmall,494,376-i-3,"/",dkgrey);
+        gdImageStringUp(im,gdFontSmall,493,375-i-3,"/",black);
+        gdImageStringUp(im,gdFontSmall,494,376-i-12,
+-                       (unsigned char *)msg_h_ixfer,dkgrey);
++                       (unsigned char *)_("kB In"),dkgrey);
+        gdImageStringUp(im,gdFontSmall,493,375-i-12,
+-                       (unsigned char *)msg_h_ixfer,IKBYTECOLOR);
++                       (unsigned char *)_("kB In"),IKBYTECOLOR);
+        gdImageStringUp(im,gdFontSmall,494,376-i-j-15,"/",dkgrey);
+        gdImageStringUp(im,gdFontSmall,493,375-i-j-15,"/",black);
+        gdImageStringUp(im,gdFontSmall,494,376-i-j-24,
+-                       (unsigned char *)msg_h_oxfer,dkgrey);
++                       (unsigned char *)_("kB Out"),dkgrey);
+        gdImageStringUp(im,gdFontSmall,493,375-i-j-24,
+-                       (unsigned char *)msg_h_oxfer,OKBYTECOLOR);
++                       (unsigned char *)_("kB Out"),OKBYTECOLOR);
+       }
+       /* Sites/Visits Legend */
+-      i = (strlen(msg_h_sites)*6);
++      i = (strlen(_("Sites"))*6);
+       gdImageStringUp(im,gdFontSmall,494,256,
+-                      (unsigned char *)msg_h_sites,dkgrey);
++                      (unsigned char *)_("Sites"),dkgrey);
+       gdImageStringUp(im,gdFontSmall,493,255,
+-                      (unsigned char *)msg_h_sites,SITECOLOR);
++                      (unsigned char *)_("Sites"),SITECOLOR);
+       gdImageStringUp(im,gdFontSmall,494,256-i-3,(unsigned char *)"/",dkgrey);
+       gdImageStringUp(im,gdFontSmall,493,255-i-3,(unsigned char *)"/",black);
+       gdImageStringUp(im,gdFontSmall,494,256-i-12,
+-                      (unsigned char *)msg_h_visits,dkgrey);
++                      (unsigned char *)_("Visits"),dkgrey);
+       gdImageStringUp(im,gdFontSmall,493,255-i-12,
+-                      (unsigned char *)msg_h_visits,VISITCOLOR);
++                      (unsigned char *)_("Visits"),VISITCOLOR);
+       /* Pages/Files/Hits Legend */
+-      s = ( i=(strlen(msg_h_pages)*6) )+
+-          ( j=(strlen(msg_h_files)*6) )+
+-          ( strlen(msg_h_hits)*6 )+ 52;
++      s = ( i=(strlen(_("Pages"))*6) )+
++          ( j=(strlen(_("Files"))*6) )+
++          ( strlen(_("Hits"))*6 )+ 52;
+       gdImageStringUp(im,gdFontSmall,494,s,
+-                      (unsigned char *)msg_h_pages,dkgrey);
++                      (unsigned char *)_("Pages"),dkgrey);
+       gdImageStringUp(im,gdFontSmall,493,s-1,
+-                      (unsigned char *)msg_h_pages,PAGECOLOR);
++                      (unsigned char *)_("Pages"),PAGECOLOR);
+       gdImageStringUp(im,gdFontSmall,494,s-i-3,(unsigned char *)"/",dkgrey);
+       gdImageStringUp(im,gdFontSmall,493,s-i-4,(unsigned char *)"/",black);
+       gdImageStringUp(im,gdFontSmall,494,s-i-12,
+-                      (unsigned char *)msg_h_files,dkgrey);
++                      (unsigned char *)_("Files"),dkgrey);
+       gdImageStringUp(im,gdFontSmall,493,s-i-13,
+-                      (unsigned char *)msg_h_files,FILECOLOR);
++                      (unsigned char *)_("Files"),FILECOLOR);
+       gdImageStringUp(im,gdFontSmall,494,s-i-j-15,(unsigned char *)"/",dkgrey);
+       gdImageStringUp(im,gdFontSmall,493,s-i-j-16,(unsigned char *)"/",black);
+       gdImageStringUp(im,gdFontSmall,494,s-i-j-24,
+-                      (unsigned char *)msg_h_hits,dkgrey);
++                      (unsigned char *)_("Hits"),dkgrey);
+       gdImageStringUp(im,gdFontSmall,493,s-i-j-25,
+-                      (unsigned char *)msg_h_hits,HITCOLOR);
++                      (unsigned char *)_("Hits"),HITCOLOR);
+    }
+    /* data1 */
+@@ -696,7 +696,7 @@
+       if ( S_ISLNK(out_stat.st_mode) )
+       {
+          if (verbose)
+-         fprintf(stderr,"%s %s (symlink)\n",msg_no_open,fname);
++         fprintf(stderr,"%s %s (symlink)\n",_("Error: Unable to open file"),fname);
+          return(EBADF);
+       }
+    }
+@@ -758,25 +758,25 @@
+    if (graph_legend)                          /* print color coded legends? */
+    {
+       /* Pages/Files/Hits Legend */
+-      s = ( i=(strlen(msg_h_pages)*6) )+
+-          ( j=(strlen(msg_h_files)*6) )+
+-          ( strlen(msg_h_hits)*6 )+ 52;
++      s = ( i=(strlen(_("Pages"))*6) )+
++          ( j=(strlen(_("Files"))*6) )+
++          ( strlen(_("Hits"))*6 )+ 52;
+       gdImageStringUp(im,gdFontSmall,494,s,
+-                      (unsigned char *)msg_h_pages,dkgrey);
++                      (unsigned char *)_("Pages"),dkgrey);
+       gdImageStringUp(im,gdFontSmall,493,s-1,
+-                      (unsigned char *)msg_h_pages,PAGECOLOR);
++                      (unsigned char *)_("Pages"),PAGECOLOR);
+       gdImageStringUp(im,gdFontSmall,494,s-i-3,(unsigned char *)"/",dkgrey);
+       gdImageStringUp(im,gdFontSmall,493,s-i-4,(unsigned char *)"/",black);
+       gdImageStringUp(im,gdFontSmall,494,s-i-12,
+-                      (unsigned char *)msg_h_files,dkgrey);
++                      (unsigned char *)_("Files"),dkgrey);
+       gdImageStringUp(im,gdFontSmall,493,s-i-13,
+-                      (unsigned char *)msg_h_files,FILECOLOR);
++                      (unsigned char *)_("Files"),FILECOLOR);
+       gdImageStringUp(im,gdFontSmall,494,s-i-j-15,(unsigned char *)"/",dkgrey);
+       gdImageStringUp(im,gdFontSmall,493,s-i-j-16,(unsigned char *)"/",black);
+       gdImageStringUp(im,gdFontSmall,494,s-i-j-24,
+-                      (unsigned char *)msg_h_hits,dkgrey);
++                      (unsigned char *)_("Hits"),dkgrey);
+       gdImageStringUp(im,gdFontSmall,493,s-i-j-25,
+-                      (unsigned char *)msg_h_hits,HITCOLOR);
++                      (unsigned char *)_("Hits"),HITCOLOR);
+    }
+    /* data1 */
+@@ -822,7 +822,7 @@
+       if ( S_ISLNK(out_stat.st_mode) )
+       {
+          if (verbose)
+-         fprintf(stderr,"%s %s (symlink)\n",msg_no_open,fname);
++         fprintf(stderr,"%s %s (symlink)\n",_("Error: Unable to open file"),fname);
+          return(EBADF);
+       }
+    }
+@@ -913,7 +913,7 @@
+       gdImageFill(im, gdata.mx, gdata.my, white);
+       snprintf(buffer,sizeof(buffer),"%s (%d%%)",
+-           msg_h_other,100-(int)(s_arc*100));
++           _("Other"),100-(int)(s_arc*100));
+       x=480-(strlen(buffer)*7);
+       gdImageString(im,gdFontMediumBold, x+1, y+1,
+                     (unsigned char *)buffer, black);
+@@ -928,7 +928,7 @@
+       if ( S_ISLNK(out_stat.st_mode) )
+       {
+          if (verbose)
+-         fprintf(stderr,"%s %s (symlink)\n",msg_no_open,fname);
++         fprintf(stderr,"%s %s (symlink)\n",_("Error: Unable to open file"),fname);
+          return(EBADF);
+       }
+    }
+Index: webalizer/hashtab.c
+===================================================================
+--- webalizer.orig/hashtab.c   2011-01-08 20:59:30.000000000 +0100
++++ webalizer/hashtab.c        2011-01-08 20:59:58.000000000 +0100
+@@ -119,7 +119,7 @@
+    {
+       if (verbose)
+       {
+-         fprintf(stderr,"[new_hnode] %s (%d)",msg_big_one,strlen(str));
++         fprintf(stderr,"[new_hnode] %s (%d)",_("Warning: String exceeds storage size"),strlen(str));
+          if (debug_mode)
+             fprintf(stderr,":\n--> %s",str);
+          fprintf(stderr,"\n");
+@@ -338,7 +338,7 @@
+    {
+       if (verbose)
+       {
+-         fprintf(stderr,"[new_unode] %s (%d)",msg_big_one,strlen(str));
++         fprintf(stderr,"[new_unode] %s (%d)",_("Warning: String exceeds storage size"),strlen(str));
+          if (debug_mode)
+             fprintf(stderr,":\n--> %s",str);
+          fprintf(stderr,"\n");
+@@ -474,7 +474,7 @@
+    {
+       if (verbose)
+       {
+-         fprintf(stderr,"[new_rnode] %s (%d)",msg_big_one,strlen(str));
++         fprintf(stderr,"[new_rnode] %s (%d)",_("Warning: String exceeds storage size"),strlen(str));
+          if (debug_mode)
+             fprintf(stderr,":\n--> %s",str);
+          fprintf(stderr,"\n");
+@@ -600,7 +600,7 @@
+    {
+       if (verbose)
+       {
+-         fprintf(stderr,"[new_anode] %s (%d)",msg_big_one,strlen(str));
++         fprintf(stderr,"[new_anode] %s (%d)",_("Warning: String exceeds storage size"),strlen(str));
+          if (debug_mode)
+             fprintf(stderr,":\n--> %s",str);
+          fprintf(stderr,"\n");
+@@ -719,7 +719,7 @@
+    {
+       if (verbose)
+       {
+-         fprintf(stderr,"[new_snode] %s (%d)",msg_big_one,strlen(str));
++         fprintf(stderr,"[new_snode] %s (%d)",_("Warning: String exceeds storage size"),strlen(str));
+          if (debug_mode)
+             fprintf(stderr,":\n--> %s",str);
+          fprintf(stderr,"\n");
+@@ -826,7 +826,7 @@
+    {
+       if (verbose)
+       {
+-         fprintf(stderr,"[new_inode] %s (%d)",msg_big_one,strlen(str));
++         fprintf(stderr,"[new_inode] %s (%d)",_("Warning: String exceeds storage size"),strlen(str));
+          if (debug_mode)
+             fprintf(stderr,":\n--> %s",str);
+          fprintf(stderr,"\n");
+@@ -1006,7 +1006,7 @@
+    {
+       if (verbose)
+       {
+-         fprintf(stderr,"[new_dnode] %s (%d)",msg_big_one,strlen(str));
++         fprintf(stderr,"[new_dnode] %s (%d)",_("Warning: String exceeds storage size"),strlen(str));
+          if (debug_mode)
+             fprintf(stderr,":\n--> %s",str);
+          fprintf(stderr,"\n");
+Index: webalizer/linklist.c
+===================================================================
+--- webalizer.orig/linklist.c  2011-01-08 20:36:44.000000000 +0100
++++ webalizer/linklist.c       2011-01-08 20:59:58.000000000 +0100
+@@ -106,7 +106,7 @@
+    if (sizeof(newptr->string) < strlen(str))
+    {
+       if (verbose)
+-    fprintf(stderr,"[new_nlist] %s\n",msg_big_one);
++    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;}
+@@ -163,7 +163,7 @@
+        sizeof(newptr->name) < strlen(name))
+    {
+       if (verbose)
+-      fprintf(stderr,"[new_glist] %s\n",msg_big_one);
++      fprintf(stderr,"[new_glist] %s\n",_("Warning: String exceeds storage size"));
+    }
+    if (( newptr = malloc(sizeof(struct glist))) != NULL)
+      {
+Index: webalizer/output.c
+===================================================================
+--- webalizer.orig/output.c    2011-01-08 20:59:53.000000000 +0100
++++ webalizer/output.c 2011-01-08 20:59:58.000000000 +0100
+@@ -189,9 +189,9 @@
+    fprintf(out_fp,"<!--                                          -->\n");
+    fprintf(out_fp,"<!-- *** Generated: %s *** -->\n\n",cur_time());
+-   fprintf(out_fp,"<HTML lang=\"%s\">\n<HEAD>\n",langcode);
++   fprintf(out_fp,"<HTML lang=\"%s\">\n<HEAD>\n",_("en"));
+    fprintf(out_fp," <TITLE>%s %s - %s</TITLE>\n",
+-                  report_title, hname, (period)?period:msg_main_per);
++                  report_title, hname, (period)?period:_("Summary by Month"));
+    lptr=html_head;
+    while (lptr!=NULL)
+    {
+@@ -215,10 +215,10 @@
+    }
+    fprintf(out_fp,"<H2>%s %s</H2>\n",report_title, hname);
+    if (period)
+-      fprintf(out_fp,"<SMALL><STRONG>\n%s: %s<BR>\n",msg_hhdr_sp,period);
++      fprintf(out_fp,"<SMALL><STRONG>\n%s: %s<BR>\n",_("Summary Period"),period);
+    else
+-      fprintf(out_fp,"<SMALL><STRONG>\n%s<BR>\n",msg_main_per);
+-   fprintf(out_fp,"%s %s<BR>\n</STRONG></SMALL>\n",msg_hhdr_gt,cur_time());
++      fprintf(out_fp,"<SMALL><STRONG>\n%s<BR>\n",_("Summary by Month"));
++   fprintf(out_fp,"%s %s<BR>\n</STRONG></SMALL>\n",_("Generated"),cur_time());
+    lptr=html_post;
+    while (lptr!=NULL)
+    {
+@@ -289,7 +289,7 @@
+    char htitle[256];
+    if (verbose>1)
+-      printf("%s %s %d\n",msg_gen_rpt, Q_(l_month[cur_month-1]), cur_year); 
++      printf("%s %s %d\n",_("Generating report for"), Q_(l_month[cur_month-1]), cur_year); 
+    /* fill in filenames */
+    snprintf(html_fname,sizeof(html_fname),"usage_%04d%02d.%s",
+@@ -301,7 +301,7 @@
+    if (daily_graph)
+    {
+       snprintf(dtitle,sizeof(dtitle),"%s %s %d",
+-               msg_hmth_du,Q_(l_month[cur_month-1]),cur_year);
++               _("Daily usage for"),Q_(l_month[cur_month-1]),cur_year);
+       month_graph6 (  png1_fname,          /* filename          */
+                       dtitle,              /* graph title       */
+                       cur_month,           /* graph month       */
+@@ -319,7 +319,7 @@
+    if (hourly_graph)
+    {
+       snprintf(htitle,sizeof(htitle),"%s %s %d",
+-               msg_hmth_hu,Q_(l_month[cur_month-1]),cur_year);
++               _("Hourly usage for"),Q_(l_month[cur_month-1]),cur_year);
+       day_graph3(    png2_fname,
+                      htitle,
+                      th_hit,
+@@ -371,7 +371,7 @@
+       {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",msg_nomem_tu); /* err */
++    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...      */
+@@ -393,7 +393,7 @@
+      }
+      free(h_array);
+     }
+-    else if (verbose) fprintf(stderr,"%s [h_array]\n",msg_nomem_ts); /* err */
++    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...              */
+@@ -410,7 +410,7 @@
+      }
+      free(r_array);
+     }
+-    else if (verbose) fprintf(stderr,"%s [r_array]\n",msg_nomem_tr); /* err */
++    else if (verbose) fprintf(stderr,"%s [r_array]\n",_("Can't allocate enough memory, Top Referrers disabled!")); /* err */
+    }
+    /* do search string related stuff, sorting appropriately...              */
+@@ -427,7 +427,7 @@
+      }
+      free(s_array);
+     }
+-    else if (verbose) fprintf(stderr,"%s [s_array]\n",msg_nomem_tsr);/* err */
++    else if (verbose) fprintf(stderr,"%s [s_array]\n",_("Can't allocate enough memory, Top Search Strings disabled!"));/* err */
+    }
+    /* do ident (username) related stuff here, sorting appropriately...      */
+@@ -444,7 +444,7 @@
+      }
+      free(i_array);
+     }
+-    else if (verbose) fprintf(stderr,"%s [i_array]\n",msg_nomem_ti); /* err */
++    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...            */
+@@ -461,7 +461,7 @@
+      }
+      free(a_array);
+     }
+-    else if (verbose) fprintf(stderr,"%s [a_array]\n",msg_nomem_ta); /* err */
++    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            */
+@@ -479,27 +479,27 @@
+ {
+    fprintf(out_fp,"<SMALL>\n");
+    if (daily_stats || daily_graph)
+-      fprintf(out_fp,"<A HREF=\"#DAYSTATS\">[%s]</A>\n",msg_hlnk_ds);
++      fprintf(out_fp,"<A HREF=\"#DAYSTATS\">[%s]</A>\n",_("Daily Statistics"));
+    if (hourly_stats || hourly_graph)
+-      fprintf(out_fp,"<A HREF=\"#HOURSTATS\">[%s]</A>\n",msg_hlnk_hs);
++      fprintf(out_fp,"<A HREF=\"#HOURSTATS\">[%s]</A>\n",_("Hourly Statistics"));
+    if (ntop_urls || ntop_urlsK)
+-      fprintf(out_fp,"<A HREF=\"#TOPURLS\">[%s]</A>\n",msg_hlnk_u);
++      fprintf(out_fp,"<A HREF=\"#TOPURLS\">[%s]</A>\n",_("URLs"));
+    if (ntop_entry)
+-      fprintf(out_fp,"<A HREF=\"#TOPENTRY\">[%s]</A>\n",msg_hlnk_en);
++      fprintf(out_fp,"<A HREF=\"#TOPENTRY\">[%s]</A>\n",_("Entry"));
+    if (ntop_exit)
+-      fprintf(out_fp,"<A HREF=\"#TOPEXIT\">[%s]</A>\n",msg_hlnk_ex);
++      fprintf(out_fp,"<A HREF=\"#TOPEXIT\">[%s]</A>\n",_("Exit"));
+    if (ntop_sites || ntop_sitesK)
+-      fprintf(out_fp,"<A HREF=\"#TOPSITES\">[%s]</A>\n",msg_hlnk_s);
++      fprintf(out_fp,"<A HREF=\"#TOPSITES\">[%s]</A>\n",_("Sites"));
+    if (ntop_refs && t_ref)
+-      fprintf(out_fp,"<A HREF=\"#TOPREFS\">[%s]</A>\n",msg_hlnk_r);
++      fprintf(out_fp,"<A HREF=\"#TOPREFS\">[%s]</A>\n",_("Referrers"));
+    if (ntop_search)
+-      fprintf(out_fp,"<A HREF=\"#TOPSEARCH\">[%s]</A>\n",msg_hlnk_sr);
++      fprintf(out_fp,"<A HREF=\"#TOPSEARCH\">[%s]</A>\n",_("Search"));
+    if (ntop_users && t_user)
+-      fprintf(out_fp,"<A HREF=\"#TOPUSERS\">[%s]</A>\n",msg_hlnk_i);
++      fprintf(out_fp,"<A HREF=\"#TOPUSERS\">[%s]</A>\n",_("Users"));
+    if (ntop_agents && t_agent)
+-      fprintf(out_fp,"<A HREF=\"#TOPAGENTS\">[%s]</A>\n",msg_hlnk_a);
++      fprintf(out_fp,"<A HREF=\"#TOPAGENTS\">[%s]</A>\n",_("Agents"));
+    if (ntop_ctrys)
+-      fprintf(out_fp,"<A HREF=\"#TOPCTRYS\">[%s]</A>\n",msg_hlnk_c);
++      fprintf(out_fp,"<A HREF=\"#TOPCTRYS\">[%s]</A>\n",_("Countries"));
+    fprintf(out_fp,"</SMALL>\n<P>\n");
+ }
+@@ -529,36 +529,36 @@
+    fprintf(out_fp,"<TABLE WIDTH=510 BORDER=2 CELLSPACING=1 CELLPADDING=1>\n");
+    fprintf(out_fp,"<TR><TH HEIGHT=4></TH></TR>\n");
+    fprintf(out_fp,"<TR><TH COLSPAN=3 ALIGN=center BGCOLOR=\"%s\">"           \
+-      "%s %s %d</TH></TR>\n",GREY,msg_mtot_ms,Q_(l_month[cur_month-1]),cur_year);
++      "%s %s %d</TH></TR>\n",GREY,_("Monthly Statistics for"),Q_(l_month[cur_month-1]),cur_year);
+    fprintf(out_fp,"<TR><TH HEIGHT=4></TH></TR>\n");
+    /* Total Hits */
+    fprintf(out_fp,"<TR><TD WIDTH=380><FONT SIZE=\"-1\">%s</FONT></TD>\n"     \
+       "<TD ALIGN=right COLSPAN=2><FONT SIZE=\"-1\"><B>%llu</B>"              \
+-      "</FONT></TD></TR>\n",msg_mtot_th,t_hit);
++      "</FONT></TD></TR>\n",_("Total Hits"),t_hit);
+    /* Total Files */
+    fprintf(out_fp,"<TR><TD WIDTH=380><FONT SIZE=\"-1\">%s</FONT></TD>\n"     \
+       "<TD ALIGN=right COLSPAN=2><FONT SIZE=\"-1\"><B>%llu</B>"              \
+-      "</FONT></TD></TR>\n",msg_mtot_tf,t_file);
++      "</FONT></TD></TR>\n",_("Total Files"),t_file);
+    /* Total Pages */
+    fprintf(out_fp,"<TR><TD WIDTH=380><FONT SIZE=\"-1\">%s %s</FONT></TD>\n"  \
+       "<TD ALIGN=right COLSPAN=2><FONT SIZE=\"-1\"><B>%llu</B>"              \
+-      "</FONT></TD></TR>\n",msg_h_total, msg_h_pages, t_page);
++      "</FONT></TD></TR>\n",_("Total"), _("Pages"), t_page);
+    /* Total Visits */
+    fprintf(out_fp,"<TR><TD WIDTH=380><FONT SIZE=\"-1\">%s %s</FONT></TD>\n"  \
+       "<TD ALIGN=right COLSPAN=2><FONT SIZE=\"-1\"><B>%llu</B>"              \
+-      "</FONT></TD></TR>\n",msg_h_total, msg_h_visits, t_visit);
++      "</FONT></TD></TR>\n",_("Total"), _("Visits"), t_visit);
+    /* Total XFer */
+    fprintf(out_fp,"<TR><TD WIDTH=380><FONT SIZE=\"-1\">%s</FONT></TD>\n"     \
+       "<TD ALIGN=right COLSPAN=2><FONT SIZE=\"-1\"><B>%.0f</B>"              \
+-      "</FONT></TD></TR>\n",msg_mtot_tx,t_xfer/1024);
++      "</FONT></TD></TR>\n",_("Total kB Files"),t_xfer/1024);
+    if (dump_inout != 0)
+    {
+       fprintf(out_fp,"<TR><TD WIDTH=380><FONT SIZE=\"-1\">%s</FONT></TD>\n"     \
+        "<TD ALIGN=right COLSPAN=2><FONT SIZE=\"-1\"><B>%.0f</B>"              \
+-       "</FONT></TD></TR>\n",msg_mtot_ix,t_ixfer/1024);
++       "</FONT></TD></TR>\n",_("Total kB In"),t_ixfer/1024);
+       fprintf(out_fp,"<TR><TD WIDTH=380><FONT SIZE=\"-1\">%s</FONT></TD>\n"     \
+        "<TD ALIGN=right COLSPAN=2><FONT SIZE=\"-1\"><B>%.0f</B>"              \
+-       "</FONT></TD></TR>\n",msg_mtot_ox,t_oxfer/1024);
++       "</FONT></TD></TR>\n",_("Total kB Out"),t_oxfer/1024);
+    }
+    fprintf(out_fp,"<TR><TH HEIGHT=4></TH></TR>\n");
+    /**********************************************/
+@@ -566,30 +566,30 @@
+    fprintf(out_fp,"<TR>"                                                     \
+       "<TD WIDTH=380><FONT SIZE=\"-1\">%s</FONT></TD>\n"                     \
+       "<TD ALIGN=right COLSPAN=2><FONT SIZE=\"-1\"><B>%llu</B>"              \
+-      "</FONT></TD></TR>\n",msg_mtot_us,t_site);
++      "</FONT></TD></TR>\n",_("Total Unique Sites"),t_site);
+    /* Unique URLs */
+    fprintf(out_fp,"<TR>"                                                     \
+       "<TD WIDTH=380><FONT SIZE=\"-1\">%s</FONT></TD>\n"                     \
+       "<TD ALIGN=right COLSPAN=2><FONT SIZE=\"-1\"><B>%llu</B>"              \
+-      "</FONT></TD></TR>\n",msg_mtot_uu,t_url);
++      "</FONT></TD></TR>\n",_("Total Unique URLs"),t_url);
+    /* Unique Referrers */
+    if (t_ref != 0)
+    fprintf(out_fp,"<TR>"                                                     \
+       "<TD WIDTH=380><FONT SIZE=\"-1\">%s</FONT></TD>\n"                     \
+       "<TD ALIGN=right COLSPAN=2><FONT SIZE=\"-1\"><B>%llu</B>"              \
+-      "</FONT></TD></TR>\n",msg_mtot_ur,t_ref);
++      "</FONT></TD></TR>\n",_("Total Unique Referrers"),t_ref);
+    /* Unique Usernames */
+    if (t_user != 0)
+    fprintf(out_fp,"<TR>"                                                     \
+       "<TD WIDTH=380><FONT SIZE=\"-1\">%s</FONT></TD>\n"                     \
+       "<TD ALIGN=right COLSPAN=2><FONT SIZE=\"-1\"><B>%llu</B>"              \
+-      "</FONT></TD></TR>\n",msg_mtot_ui,t_user);
++      "</FONT></TD></TR>\n",_("Total Unique Usernames"),t_user);
+    /* Unique Agents */
+    if (t_agent != 0)
+    fprintf(out_fp,"<TR>"                                                     \
+       "<TD WIDTH=380><FONT SIZE=\"-1\">%s</FONT></TD>\n"                     \
+       "<TD ALIGN=right COLSPAN=2><FONT SIZE=\"-1\"><B>%llu</B>"              \
+-      "</FONT></TD></TR>\n",msg_mtot_ua,t_agent);
++      "</FONT></TD></TR>\n",_("Total Unique User Agents"),t_agent);
+    fprintf(out_fp,"<TR><TH HEIGHT=4></TH></TR>\n");
+    /**********************************************/
+    /* Hourly/Daily avg/max totals */
+@@ -599,50 +599,50 @@
+       "<FONT SIZE=-1>%s </FONT></TH>\n"                                      \
+       "<TH WIDTH=65 BGCOLOR=\"%s\" ALIGN=right>"                             \
+       "<FONT SIZE=-1>%s </FONT></TH></TR>\n",
+-      GREY,GREY,GREY,msg_h_avg,GREY,msg_h_max);
++      GREY,GREY,GREY,_("Avg"),GREY,_("Max"));
+    fprintf(out_fp,"<TR><TH HEIGHT=4></TH></TR>\n");
+    /* Max/Avg Hits per Hour */
+    fprintf(out_fp,"<TR>"                                                     \
+       "<TD><FONT SIZE=\"-1\">%s</FONT></TD>\n"                               \
+       "<TD ALIGN=right WIDTH=65><FONT SIZE=\"-1\"><B>%llu</B></FONT></TD>\n" \
+       "<TD WIDTH=65 ALIGN=right><FONT SIZE=-1><B>%llu</B>"                   \
+-      "</FONT></TD></TR>\n",msg_mtot_mhh, t_hit/(24*days_in_month),mh_hit);
++      "</FONT></TD></TR>\n",_("Hits per Hour"), t_hit/(24*days_in_month),mh_hit);
+    /* Max/Avg Hits per Day */
+    fprintf(out_fp,"<TR>"                                                     \
+       "<TD><FONT SIZE=\"-1\">%s</FONT></TD>\n"                               \
+       "<TD ALIGN=right WIDTH=65><FONT SIZE=\"-1\"><B>%llu</B></FONT></TD>\n" \
+       "<TD WIDTH=65 ALIGN=right><FONT SIZE=-1><B>%llu</B>"                   \
+-      "</FONT></TD></TR>\n",msg_mtot_mhd, t_hit/days_in_month, max_hits);
++      "</FONT></TD></TR>\n",_("Hits per Day"), t_hit/days_in_month, max_hits);
+    /* Max/Avg Files per Day */
+    fprintf(out_fp,"<TR>"                                                     \
+       "<TD><FONT SIZE=\"-1\">%s</FONT></TD>\n"                               \
+       "<TD ALIGN=right WIDTH=65><FONT SIZE=\"-1\"><B>%llu</B></FONT></TD>\n" \
+       "<TD WIDTH=65 ALIGN=right><FONT SIZE=-1><B>%llu</B>"                   \
+-      "</FONT></TD></TR>\n",msg_mtot_mfd, t_file/days_in_month,max_files);
++      "</FONT></TD></TR>\n",_("Files per Day"), t_file/days_in_month,max_files);
+    /* Max/Avg Pages per Day */
+    fprintf(out_fp,"<TR>"                                                     \
+       "<TD><FONT SIZE=\"-1\">%s</FONT></TD>\n"                               \
+       "<TD ALIGN=right WIDTH=65><FONT SIZE=\"-1\"><B>%llu</B></FONT></TD>\n" \
+       "<TD WIDTH=65 ALIGN=right><FONT SIZE=-1><B>%llu</B>"                   \
+-      "</FONT></TD></TR>\n",msg_mtot_mpd, t_page/days_in_month,max_pages);
++      "</FONT></TD></TR>\n",_("Pages per Day"), t_page/days_in_month,max_pages);
+    /* Max/Avg Sites per Day */
+    fprintf(out_fp,"<TR>"                                                     \
+       "<TD><FONT SIZE=\"-1\">%s</FONT></TD>\n"                               \
+       "<TD ALIGN=right WIDTH=65><FONT SIZE=\"-1\"><B>%llu</B></FONT></TD>\n" \
+       "<TD WIDTH=65 ALIGN=right><FONT SIZE=-1><B>%llu</B>"                   \
+-      "</FONT></TD></TR>\n",msg_mtot_msd, t_site/days_in_month,max_sites);
++      "</FONT></TD></TR>\n",_("Sites per Day"), t_site/days_in_month,max_sites);
+    /* Max/Avg Visits per Day */
+    fprintf(out_fp,"<TR>"                                                     \
+       "<TD><FONT SIZE=\"-1\">%s</FONT></TD>\n"                               \
+       "<TD ALIGN=right WIDTH=65><FONT SIZE=\"-1\"><B>%llu</B></FONT></TD>\n" \
+       "<TD WIDTH=65 ALIGN=right><FONT SIZE=-1><B>%llu</B>"                   \
+-      "</FONT></TD></TR>\n",msg_mtot_mvd, t_visit/days_in_month,max_visits);
++      "</FONT></TD></TR>\n",_("Visits per Day"), t_visit/days_in_month,max_visits);
+    /* Max/Avg KBytes per Day */
+    fprintf(out_fp,"<TR>"                                                     \
+       "<TD><FONT SIZE=\"-1\">%s</FONT></TD>\n"                               \
+       "<TD ALIGN=right WIDTH=65><FONT SIZE=\"-1\"><B>%.0f</B></FONT></TD>\n" \
+       "<TD WIDTH=65 ALIGN=right><FONT SIZE=-1><B>%.0f</B>"                   \
+-      "</FONT></TD></TR>\n",msg_mtot_mkd,
++      "</FONT></TD></TR>\n",_("kB Files per Day"),
+       (t_xfer/1024)/days_in_month,max_xfer/1024);
+    if (dump_inout != 0)
+    {
+@@ -650,20 +650,20 @@
+        "<TD><FONT SIZE=\"-1\">%s</FONT></TD>\n"                               \
+        "<TD ALIGN=right WIDTH=65><FONT SIZE=\"-1\"><B>%.0f</B></FONT></TD>\n" \
+        "<TD WIDTH=65 ALIGN=right><FONT SIZE=-1><B>%.0f</B>"                   \
+-       "</FONT></TD></TR>\n",msg_mtot_ikd,
++       "</FONT></TD></TR>\n",_("kB In per Day"),
+        (t_ixfer/1024)/days_in_month,max_ixfer/1024);
+       fprintf(out_fp,"<TR>"                                                     \
+        "<TD><FONT SIZE=\"-1\">%s</FONT></TD>\n"                               \
+        "<TD ALIGN=right WIDTH=65><FONT SIZE=\"-1\"><B>%.0f</B></FONT></TD>\n" \
+        "<TD WIDTH=65 ALIGN=right><FONT SIZE=-1><B>%.0f</B>"                   \
+-       "</FONT></TD></TR>\n",msg_mtot_okd,
++       "</FONT></TD></TR>\n",_("kB Out per Day"),
+        (t_oxfer/1024)/days_in_month,max_oxfer/1024);
+    }
+    fprintf(out_fp,"<TR><TH HEIGHT=4></TH></TR>\n");
+    /**********************************************/
+    /* response code totals */
+    fprintf(out_fp,"<TR><TH COLSPAN=3 ALIGN=center BGCOLOR=\"%s\">\n"         \
+-           "<FONT SIZE=\"-1\">%s</FONT></TH></TR>\n",GREY,msg_mtot_rc);
++           "<FONT SIZE=\"-1\">%s</FONT></TH></TR>\n",GREY,_("Hits by Response Code"));
+    fprintf(out_fp,"<TR><TH HEIGHT=4></TH></TR>\n");
+    for (i=0;i<TOTAL_RC;i++)
+    {
+@@ -694,7 +694,7 @@
+    /* Daily statistics for ... */
+    fprintf(out_fp,"<TR><TH BGCOLOR=\"%s\" COLSPAN=%d ALIGN=center>"          \
+            "%s %s %d</TH></TR>\n",
+-           GREY,(dump_inout==0)?13:17,msg_dtot_ds,Q_(l_month[cur_month-1]), cur_year);
++           GREY,(dump_inout==0)?13:17,_("Daily Statistics for"),Q_(l_month[cur_month-1]), cur_year);
+    fprintf(out_fp,"<TR><TH HEIGHT=4></TH></TR>\n");
+    fprintf(out_fp,"<TR><TH ALIGN=center BGCOLOR=\"%s\">"                     \
+                   "<FONT SIZE=\"-1\">%s</FONT></TH>\n"                       \
+@@ -710,13 +710,13 @@
+                   "<FONT SIZE=\"-1\">%s</FONT></TH>\n"                       \
+                   "<TH ALIGN=center BGCOLOR=\"%s\" COLSPAN=2>"               \
+                   "<FONT SIZE=\"-1\">%s</FONT></TH>",
+-                  GREY,       msg_h_day,
+-                  HITCOLOR,   msg_h_hits,
+-                  FILECOLOR,  msg_h_files,
+-                  PAGECOLOR,  msg_h_pages,
+-                  VISITCOLOR, msg_h_visits,
+-                  SITECOLOR,  msg_h_sites,
+-                  KBYTECOLOR, msg_h_xfer);
++                  GREY,       _("Day"),
++                  HITCOLOR,   _("Hits"),
++                  FILECOLOR,  _("Files"),
++                  PAGECOLOR,  _("Pages"),
++                  VISITCOLOR, _("Visits"),
++                  SITECOLOR,  _("Sites"),
++                  KBYTECOLOR, _("kB F"));
+    if (dump_inout == 0)
+    {
+       fprintf(out_fp,"</TR>\n");
+@@ -728,8 +728,8 @@
+                    "<FONT SIZE=\"-1\">%s</FONT></TH>\n"                    \
+                    "<TH ALIGN=center BGCOLOR=\"%s\" COLSPAN=2>"            \
+                    "<FONT SIZE=\"-1\">%s</FONT></TH></TR>\n",
+-                   IKBYTECOLOR,  msg_h_ixfer,
+-                   OKBYTECOLOR,   msg_h_oxfer);
++                   IKBYTECOLOR,  _("kB In"),
++                   OKBYTECOLOR,   _("kB Out"));
+    }
+    fprintf(out_fp,"<TR><TH HEIGHT=4></TH></TR>\n");
+@@ -807,7 +807,7 @@
+    fprintf(out_fp,"<TR><TH HEIGHT=4></TH></TR>\n");
+    fprintf(out_fp,"<TR><TH BGCOLOR=\"%s\" COLSPAN=%d ALIGN=center>"\
+            "%s %s %d</TH></TR>\n",
+-           GREY,(dump_inout==0)?13:19,msg_htot_hs,Q_(l_month[cur_month-1]), cur_year);
++           GREY,(dump_inout==0)?13:19,_("Hourly Statistics for"),Q_(l_month[cur_month-1]), cur_year);
+    fprintf(out_fp,"<TR><TH HEIGHT=4></TH></TR>\n");
+    fprintf(out_fp,"<TR><TH ALIGN=center ROWSPAN=2 BGCOLOR=\"%s\">" \
+                   "<FONT SIZE=\"-1\">%s</FONT></TH>\n"             \
+@@ -819,11 +819,11 @@
+                   "<FONT SIZE=\"-1\">%s</FONT></TH>\n"             \
+                   "<TH ALIGN=center BGCOLOR=\"%s\" COLSPAN=3>"     \
+                   "<FONT SIZE=\"-1\">%s</FONT></TH>",
+-                  GREY,       msg_h_hour,
+-                  HITCOLOR,   msg_h_hits,
+-                  FILECOLOR,  msg_h_files,
+-                  PAGECOLOR,  msg_h_pages,
+-                  KBYTECOLOR, msg_h_xfer);
++                  GREY,       _("Hour"),
++                  HITCOLOR,   _("Hits"),
++                  FILECOLOR,  _("Files"),
++                  PAGECOLOR,  _("Pages"),
++                  KBYTECOLOR, _("kB F"));
+    if (dump_inout == 0)
+    {
+       fprintf(out_fp,"</TR>\n");
+@@ -835,29 +835,29 @@
+                    "<FONT SIZE=\"-1\">%s</FONT></TH>\n"          \
+                    "<TH ALIGN=center BGCOLOR=\"%s\" COLSPAN=3>"  \
+                    "<FONT SIZE=\"-1\">%s</FONT></TH></TR>\n",
+-                   IKBYTECOLOR,  msg_h_ixfer,
+-                   OKBYTECOLOR,   msg_h_oxfer);
++                   IKBYTECOLOR,  _("kB In"),
++                   OKBYTECOLOR,   _("kB Out"));
+    }
+    fprintf(out_fp,"<TR><TH ALIGN=center BGCOLOR=\"%s\">"           \
+                   "<FONT SIZE=\"-2\">%s</FONT></TH>\n"             \
+                   "<TH ALIGN=center BGCOLOR=\"%s\" COLSPAN=2>"     \
+                   "<FONT SIZE=\"-2\">%s</FONT></TH>\n",
+-                  HITCOLOR, msg_h_avg, HITCOLOR, msg_h_total);
++                  HITCOLOR, _("Avg"), HITCOLOR, _("Total"));
+    fprintf(out_fp,"<TH ALIGN=center BGCOLOR=\"%s\">"               \
+                   "<FONT SIZE=\"-2\">%s</FONT></TH>\n"             \
+                   "<TH ALIGN=center BGCOLOR=\"%s\" COLSPAN=2>"     \
+                   "<FONT SIZE=\"-2\">%s</FONT></TH>\n",
+-                  FILECOLOR, msg_h_avg, FILECOLOR, msg_h_total);
++                  FILECOLOR, _("Avg"), FILECOLOR, _("Total"));
+    fprintf(out_fp,"<TH ALIGN=center BGCOLOR=\"%s\">"               \
+                   "<FONT SIZE=\"-2\">%s</FONT></TH>\n"             \
+                   "<TH ALIGN=center BGCOLOR=\"%s\" COLSPAN=2>"     \
+                   "<FONT SIZE=\"-2\">%s</FONT></TH>\n",
+-                  PAGECOLOR, msg_h_avg, PAGECOLOR, msg_h_total);
++                  PAGECOLOR, _("Avg"), PAGECOLOR, _("Total"));
+    fprintf(out_fp,"<TH ALIGN=center BGCOLOR=\"%s\">"               \
+                   "<FONT SIZE=\"-2\">%s</FONT></TH>\n"             \
+                   "<TH ALIGN=center BGCOLOR=\"%s\" COLSPAN=2>"     \
+                   "<FONT SIZE=\"-2\">%s</FONT>",
+-                  KBYTECOLOR, msg_h_avg, KBYTECOLOR, msg_h_total);
++                  KBYTECOLOR, _("Avg"), KBYTECOLOR, _("Total"));
+    if (dump_inout == 0)
+    {
+       fprintf(out_fp,"</TR>\n");
+@@ -869,12 +869,12 @@
+                    "<FONT SIZE=\"-2\">%s</FONT></TH>\n"          \
+                    "<TH ALIGN=center BGCOLOR=\"%s\" COLSPAN=2>"  \
+                    "<FONT SIZE=\"-2\">%s</FONT></TH>\n",
+-                   IKBYTECOLOR, msg_h_avg, IKBYTECOLOR, msg_h_total);
++                   IKBYTECOLOR, _("Avg"), IKBYTECOLOR, _("Total"));
+       fprintf(out_fp,"<TH ALIGN=center BGCOLOR=\"%s\">"            \
+                    "<FONT SIZE=\"-2\">%s</FONT></TH>\n"          \
+                    "<TH ALIGN=center BGCOLOR=\"%s\" COLSPAN=2>"  \
+                    "<FONT SIZE=\"-2\">%s</FONT></TH></TR>\n",
+-                   OKBYTECOLOR, msg_h_avg, OKBYTECOLOR, msg_h_total);
++                   OKBYTECOLOR, _("Avg"), OKBYTECOLOR, _("Total"));
+    }
+    fprintf(out_fp,"<TR><TH HEIGHT=4></TH></TR>\n");
+@@ -969,31 +969,31 @@
+    fprintf(out_fp,"<TR><TH HEIGHT=4></TH></TR>\n");
+    if (flag) fprintf(out_fp,"<TR><TH BGCOLOR=\"%s\" ALIGN=CENTER COLSPAN=%d>" \
+            "%s %llu %s %llu %s %s %s</TH></TR>\n",
+-           GREY,(dump_inout==0)?10:14, msg_top_top,tot_num,msg_top_of,
+-           t_site,msg_top_s,msg_h_by,msg_h_xfer);
++           GREY,(dump_inout==0)?10:14, _("Top"),tot_num,_("of"),
++           t_site,_("Total Sites"),_("By"),_("kB F"));
+    else      fprintf(out_fp,"<TR><TH BGCOLOR=\"%s\" ALIGN=CENTER COLSPAN=%d>" \
+            "%s %llu %s %llu %s</TH></TR>\n",
+-           GREY,(dump_inout==0)?10:14,msg_top_top, tot_num, msg_top_of, t_site, msg_top_s);
++           GREY,(dump_inout==0)?10:14,_("Top"), tot_num, _("of"), t_site, _("Total Sites"));
+    fprintf(out_fp,"<TR><TH HEIGHT=4></TH></TR>\n");
+    fprintf(out_fp,"<TR><TH BGCOLOR=\"%s\" ALIGN=center>"                    \
+           "<FONT SIZE=\"-1\">#</FONT></TH>\n",GREY);
+    fprintf(out_fp,"<TH BGCOLOR=\"%s\" ALIGN=center COLSPAN=2>"              \
+-          "<FONT SIZE=\"-1\">%s</FONT></TH>\n",HITCOLOR,msg_h_hits);
++          "<FONT SIZE=\"-1\">%s</FONT></TH>\n",HITCOLOR,_("Hits"));
+    fprintf(out_fp,"<TH BGCOLOR=\"%s\" ALIGN=center COLSPAN=2>"              \
+-          "<FONT SIZE=\"-1\">%s</FONT></TH>\n",FILECOLOR,msg_h_files);
++          "<FONT SIZE=\"-1\">%s</FONT></TH>\n",FILECOLOR,_("Files"));
+    fprintf(out_fp,"<TH BGCOLOR=\"%s\" ALIGN=center COLSPAN=2>"              \
+-          "<FONT SIZE=\"-1\">%s</FONT></TH>\n",KBYTECOLOR,msg_h_xfer);
++          "<FONT SIZE=\"-1\">%s</FONT></TH>\n",KBYTECOLOR,_("kB F"));
+    if (dump_inout != 0)
+    {
+       fprintf(out_fp,"<TH BGCOLOR=\"%s\" ALIGN=center COLSPAN=2>"           \
+-           "<FONT SIZE=\"-1\">%s</FONT></TH>\n",IKBYTECOLOR,msg_h_ixfer);
++           "<FONT SIZE=\"-1\">%s</FONT></TH>\n",IKBYTECOLOR,_("kB In"));
+       fprintf(out_fp,"<TH BGCOLOR=\"%s\" ALIGN=center COLSPAN=2>"           \
+-           "<FONT SIZE=\"-1\">%s</FONT></TH>\n",OKBYTECOLOR,msg_h_oxfer);
++           "<FONT SIZE=\"-1\">%s</FONT></TH>\n",OKBYTECOLOR,_("kB Out"));
+    }
+    fprintf(out_fp,"<TH BGCOLOR=\"%s\" ALIGN=center COLSPAN=2>"              \
+-          "<FONT SIZE=\"-1\">%s</FONT></TH>\n",VISITCOLOR,msg_h_visits);
++          "<FONT SIZE=\"-1\">%s</FONT></TH>\n",VISITCOLOR,_("Visits"));
+    fprintf(out_fp,"<TH BGCOLOR=\"%s\" ALIGN=center>"                        \
+-          "<FONT SIZE=\"-1\">%s</FONT></TH></TR>\n",MISCCOLOR,msg_h_hname);
++          "<FONT SIZE=\"-1\">%s</FONT></TH></TR>\n",MISCCOLOR,_("Hostname"));
+    fprintf(out_fp,"<TR><TH HEIGHT=4></TH></TR>\n");
+    pointer=h_array; i=0;
+@@ -1057,7 +1057,7 @@
+             fprintf(out_fp,"<FONT SIZE=\"-1\">");
+             fprintf(out_fp,"<A HREF=\"./site_%04d%02d.%s\">",
+                     cur_year,cur_month,html_ext);
+-            fprintf(out_fp,"%s</A></TD></TR>\n",msg_v_sites);
++            fprintf(out_fp,"%s</A></TD></TR>\n",_("View All Sites"));
+             if (flag)   /* do we need to sort? */
+                qsort(h_array,a_ctr,sizeof(HNODEPTR),qs_site_cmph);
+          }
+@@ -1085,18 +1085,18 @@
+    if ( (out_fp=open_out_file(site_fname))==NULL ) return 0;
+    snprintf(buffer,sizeof(buffer),"%s %d - %s",
+-            Q_(l_month[cur_month-1]),cur_year,msg_h_sites);
++            Q_(l_month[cur_month-1]),cur_year,_("Sites"));
+    write_html_head(buffer, out_fp);
+    fprintf(out_fp,"<FONT SIZE=\"-1\"></CENTER><PRE>\n");
+    fprintf(out_fp," %12s      %12s      %12s",
+-           msg_h_hits, msg_h_files, msg_h_xfer);
++           _("Hits"), _("Files"), _("kB F"));
+    if (dump_inout != 0)
+    {
+-      fprintf(out_fp,"      %12s      %12s", msg_h_ixfer, msg_h_oxfer);
++      fprintf(out_fp,"      %12s      %12s", _("kB In"), _("kB Out"));
+    }
+-   fprintf(out_fp,"      %12s      %s\n", msg_h_visits, msg_h_hname);
++   fprintf(out_fp,"      %12s      %s\n", _("Visits"), _("Hostname"));
+    fprintf(out_fp,"----------------  ----------------  ----------------  ");
+    if (dump_inout != 0)
+    {
+@@ -1201,32 +1201,32 @@
+    fprintf(out_fp,"<TR><TH HEIGHT=4></TH></TR>\n");
+    if (flag) fprintf(out_fp,"<TR><TH BGCOLOR=\"%s\" ALIGN=CENTER COLSPAN=%d>"  \
+            "%s %llu %s %llu %s %s %s</TH></TR>\n",
+-           GREY,(dump_inout==0)?6:10,msg_top_top,tot_num,msg_top_of,
+-           t_url,msg_top_u,msg_h_by,msg_h_xfer);
++           GREY,(dump_inout==0)?6:10,_("Top"),tot_num,_("of"),
++           t_url,_("Total URLs"),_("By"),_("kB F"));
+    else fprintf(out_fp,"<TR><TH BGCOLOR=\"%s\" ALIGN=CENTER COLSPAN=%d>"   \
+            "%s %llu %s %llu %s</TH></TR>\n",
+-           GREY,(dump_inout==0)?6:10,msg_top_top,tot_num,msg_top_of,t_url,msg_top_u);
++           GREY,(dump_inout==0)?6:10,_("Top"),tot_num,_("of"),t_url,_("Total URLs"));
+    fprintf(out_fp,"<TR><TH HEIGHT=4></TH></TR>\n");
+    fprintf(out_fp,"<TR><TH BGCOLOR=\"%s\" ALIGN=center>"                  \
+                   "<FONT SIZE=\"-1\">#</FONT></TH>\n",GREY);
+    fprintf(out_fp,"<TH BGCOLOR=\"%s\" ALIGN=center COLSPAN=2>"            \
+                   "<FONT SIZE=\"-1\">%s</FONT></TH>\n",
+-                  HITCOLOR,msg_h_hits);
++                  HITCOLOR,_("Hits"));
+    fprintf(out_fp,"<TH BGCOLOR=\"%s\" ALIGN=center COLSPAN=2>"            \
+                   "<FONT SIZE=\"-1\">%s</FONT></TH>\n",
+-                  KBYTECOLOR,msg_h_xfer);
++                  KBYTECOLOR,_("kB F"));
+    if (dump_inout!=0)
+    {
+       fprintf(out_fp,"<TH BGCOLOR=\"%s\" ALIGN=center COLSPAN=2>"         \
+                    "<FONT SIZE=\"-1\">%s</FONT></TH>\n",
+-                   IKBYTECOLOR,msg_h_ixfer);
++                   IKBYTECOLOR,_("kB In"));
+       fprintf(out_fp,"<TH BGCOLOR=\"%s\" ALIGN=center COLSPAN=2>"         \
+                    "<FONT SIZE=\"-1\">%s</FONT></TH>\n",
+-                   OKBYTECOLOR,msg_h_oxfer);
++                   OKBYTECOLOR,_("kB Out"));
+    }
+    fprintf(out_fp,"<TH BGCOLOR=\"%s\" ALIGN=center>"                      \
+                   "<FONT SIZE=\"-1\">%s</FONT></TH></TR>\n",
+-                  MISCCOLOR,msg_h_url);
++                  MISCCOLOR,_("URL"));
+    fprintf(out_fp,"<TR><TH HEIGHT=4></TH></TR>\n");
+    pointer=u_array; i=0;
+@@ -1316,7 +1316,7 @@
+             fprintf(out_fp,"<FONT SIZE=\"-1\">");
+             fprintf(out_fp,"<A HREF=\"./url_%04d%02d.%s\">",
+                     cur_year,cur_month,html_ext);
+-            fprintf(out_fp,"%s</A></TD></TR>\n",msg_v_urls);
++            fprintf(out_fp,"%s</A></TD></TR>\n",_("View All URLs"));
+             if (flag)   /* do we need to sort first? */
+                qsort(u_array,a_ctr,sizeof(UNODEPTR),qs_url_cmph);
+          }
+@@ -1344,17 +1344,17 @@
+    if ( (out_fp=open_out_file(url_fname))==NULL ) return 0;
+    snprintf(buffer,sizeof(buffer),"%s %d - %s",
+-            Q_(l_month[cur_month-1]),cur_year,msg_h_url);
++            Q_(l_month[cur_month-1]),cur_year,_("URL"));
+    write_html_head(buffer, out_fp);
+    fprintf(out_fp,"<FONT SIZE=\"-1\"></CENTER><PRE>\n");
+-   fprintf(out_fp," %12s      %12s", msg_h_hits,msg_h_xfer);
++   fprintf(out_fp," %12s      %12s", _("Hits"),_("kB F"));
+    if (dump_inout != 0)
+    {
+-      fprintf(out_fp,"      %12s      %12s", msg_h_ixfer, msg_h_oxfer);
++      fprintf(out_fp,"      %12s      %12s", _("kB In"), _("kB Out"));
+    }
+-   fprintf(out_fp,"      %s\n", msg_h_url);
++   fprintf(out_fp,"      %s\n", _("URL"));
+    fprintf(out_fp,"----------------  ----------------  ");
+    if (dump_inout != 0)
+    {
+@@ -1461,21 +1461,21 @@
+    fprintf(out_fp,"<TR><TH HEIGHT=4></TH></TR>\n");
+    fprintf(out_fp,"<TR><TH BGCOLOR=\"%s\" ALIGN=CENTER COLSPAN=6>"        \
+            "%s %llu %s %llu %s</TH></TR>\n",
+-           GREY,msg_top_top,tot_num,msg_top_of,
+-           (flag)?u_exit:u_entry,(flag)?msg_top_ex:msg_top_en);
++           GREY,_("Top"),tot_num,_("of"),
++           (flag)?u_exit:u_entry,(flag)?_("Total Exit Pages"):_("Total Entry Pages"));
+    fprintf(out_fp,"<TR><TH HEIGHT=4></TH></TR>\n");
+    fprintf(out_fp,"<TR><TH BGCOLOR=\"%s\" ALIGN=center>"                  \
+                   "<FONT SIZE=\"-1\">#</FONT></TH>\n",
+                   GREY);
+    fprintf(out_fp,"<TH BGCOLOR=\"%s\" ALIGN=center COLSPAN=2>"            \
+                   "<FONT SIZE=\"-1\">%s</FONT></TH>\n",
+-                  HITCOLOR,msg_h_hits);
++                  HITCOLOR,_("Hits"));
+    fprintf(out_fp,"<TH BGCOLOR=\"%s\" ALIGN=center COLSPAN=2>"            \
+                   "<FONT SIZE=\"-1\">%s</FONT></TH>\n",
+-                  VISITCOLOR,msg_h_visits);
++                  VISITCOLOR,_("Visits"));
+    fprintf(out_fp,"<TH BGCOLOR=\"%s\" ALIGN=center>"                      \
+                   "<FONT SIZE=\"-1\">%s</FONT></TH></TR>\n",
+-                  MISCCOLOR,msg_h_url);
++                  MISCCOLOR,_("URL"));
+    fprintf(out_fp,"<TR><TH HEIGHT=4></TH></TR>\n");
+    pointer=u_array; i=0;
+@@ -1557,17 +1557,17 @@
+    fprintf(out_fp,"<TR><TH HEIGHT=4></TH></TR>\n");
+    fprintf(out_fp,"<TR><TH BGCOLOR=\"%s\" ALIGN=CENTER COLSPAN=4>"         \
+            "%s %llu %s %llu %s</TH></TR>\n",
+-           GREY, msg_top_top, tot_num, msg_top_of, t_ref, msg_top_r);
++           GREY, _("Top"), tot_num, _("of"), t_ref, _("Total Referrers"));
+    fprintf(out_fp,"<TR><TH HEIGHT=4></TH></TR>\n");
+    fprintf(out_fp,"<TR><TH BGCOLOR=\"%s\" ALIGN=center>"                   \
+           "<FONT SIZE=\"-1\">#</FONT></TH>\n",
+           GREY);
+    fprintf(out_fp,"<TH BGCOLOR=\"%s\" ALIGN=center COLSPAN=2>"             \
+           "<FONT SIZE=\"-1\">%s</FONT></TH>\n",
+-          HITCOLOR,msg_h_hits);
++          HITCOLOR,_("Hits"));
+    fprintf(out_fp,"<TH BGCOLOR=\"%s\" ALIGN=center>"                       \
+           "<FONT SIZE=\"-1\">%s</FONT></TH></TR>\n",
+-          MISCCOLOR,msg_h_ref);
++          MISCCOLOR,_("Referrer"));
+    fprintf(out_fp,"<TR><TH HEIGHT=4></TH></TR>\n");
+    pointer=r_array; i=0;
+@@ -1619,7 +1619,7 @@
+          fprintf(out_fp,"<FONT SIZE=\"-1\">");
+          fprintf(out_fp,"<A HREF=\"./ref_%04d%02d.%s\">",
+                  cur_year,cur_month,html_ext);
+-         fprintf(out_fp,"%s</A></TD></TR>\n",msg_v_refs);
++         fprintf(out_fp,"%s</A></TD></TR>\n",_("View All Referrers"));
+       }
+    }
+    fprintf(out_fp,"</TABLE>\n<P>\n");
+@@ -1644,12 +1644,12 @@
+    if ( (out_fp=open_out_file(ref_fname))==NULL ) return 0;
+    snprintf(buffer,sizeof(buffer),"%s %d - %s",
+-            Q_(l_month[cur_month-1]),cur_year,msg_h_ref);
++            Q_(l_month[cur_month-1]),cur_year,_("Referrer"));
+    write_html_head(buffer, out_fp);
+    fprintf(out_fp,"<FONT SIZE=\"-1\"></CENTER><PRE>\n");
+-   fprintf(out_fp," %12s      %s\n",msg_h_hits,msg_h_ref);
++   fprintf(out_fp," %12s      %s\n",_("Hits"),_("Referrer"));
+    fprintf(out_fp,"----------------  --------------------\n\n");
+    /* do groups first (if any) */
+@@ -1722,17 +1722,17 @@
+    fprintf(out_fp,"<TR><TH HEIGHT=4></TH></TR>\n");
+    fprintf(out_fp,"<TR><TH BGCOLOR=\"%s\" ALIGN=CENTER COLSPAN=4>"        \
+           "%s %llu %s %llu %s</TH></TR>\n",
+-          GREY, msg_top_top, tot_num, msg_top_of, t_agent, msg_top_a);
++          GREY, _("Top"), tot_num, _("of"), t_agent, _("Total User Agents"));
+    fprintf(out_fp,"<TR><TH HEIGHT=4></TH></TR>\n");
+    fprintf(out_fp,"<TR><TH BGCOLOR=\"%s\" ALIGN=center>"                  \
+           "<FONT SIZE=\"-1\">#</FONT></TH>\n",
+           GREY);
+    fprintf(out_fp,"<TH BGCOLOR=\"%s\" ALIGN=center COLSPAN=2>"            \
+           "<FONT SIZE=\"-1\">%s</FONT></TH>\n",
+-          HITCOLOR,msg_h_hits);
++          HITCOLOR,_("Hits"));
+    fprintf(out_fp,"<TH BGCOLOR=\"%s\" ALIGN=center>"                      \
+           "<FONT SIZE=\"-1\">%s</FONT></TH></TR>\n",
+-          MISCCOLOR,msg_h_agent);
++          MISCCOLOR,_("User Agent"));
+    fprintf(out_fp,"<TR><TH HEIGHT=4></TH></TR>\n");
+    pointer=a_array; i=0;
+@@ -1773,7 +1773,7 @@
+          fprintf(out_fp,"<FONT SIZE=\"-1\">");
+          fprintf(out_fp,"<A HREF=\"./agent_%04d%02d.%s\">",
+                  cur_year,cur_month,html_ext);
+-         fprintf(out_fp,"%s</A></TD></TR>\n",msg_v_agents);
++         fprintf(out_fp,"%s</A></TD></TR>\n",_("View All User Agents"));
+       }
+    }
+    fprintf(out_fp,"</TABLE>\n<P>\n");
+@@ -1798,12 +1798,12 @@
+    if ( (out_fp=open_out_file(agent_fname))==NULL ) return 0;
+    snprintf(buffer,sizeof(buffer),"%s %d - %s",
+-            Q_(l_month[cur_month-1]),cur_year,msg_h_agent);
++            Q_(l_month[cur_month-1]),cur_year,_("User Agent"));
+    write_html_head(buffer, out_fp);
+    fprintf(out_fp,"<FONT SIZE=\"-1\"></CENTER><PRE>\n");
+-   fprintf(out_fp," %12s      %s\n",msg_h_hits,msg_h_agent);
++   fprintf(out_fp," %12s      %s\n",_("Hits"),_("User Agent"));
+    fprintf(out_fp,"----------------  ----------------------\n\n");
+    /* do groups first (if any) */
+@@ -1869,17 +1869,17 @@
+    fprintf(out_fp,"<TR><TH HEIGHT=4></TH></TR>\n");
+    fprintf(out_fp,"<TR><TH BGCOLOR=\"%s\" ALIGN=CENTER COLSPAN=4>"        \
+           "%s %llu %s %llu %s</TH></TR>\n",
+-          GREY, msg_top_top, tot_num, msg_top_of, a_ctr, msg_top_sr);
++          GREY, _("Top"), tot_num, _("of"), a_ctr, _("Total Search Strings"));
+    fprintf(out_fp,"<TR><TH HEIGHT=4></TH></TR>\n");
+    fprintf(out_fp,"<TR><TH BGCOLOR=\"%s\" ALIGN=center>"                  \
+           "<FONT SIZE=\"-1\">#</FONT></TH>\n",
+           GREY);
+    fprintf(out_fp,"<TH BGCOLOR=\"%s\" ALIGN=center COLSPAN=2>"            \
+           "<FONT SIZE=\"-1\">%s</FONT></TH>\n",
+-          HITCOLOR,msg_h_hits);
++          HITCOLOR,_("Hits"));
+    fprintf(out_fp,"<TH BGCOLOR=\"%s\" ALIGN=center>"                      \
+           "<FONT SIZE=\"-1\">%s</FONT></TH></TR>\n",
+-          MISCCOLOR,msg_h_search);
++          MISCCOLOR,_("Search String"));
+    fprintf(out_fp,"<TR><TH HEIGHT=4></TH></TR>\n");
+    pointer=s_array; i=0;
+@@ -1908,7 +1908,7 @@
+          fprintf(out_fp,"<FONT SIZE=\"-1\">");
+          fprintf(out_fp,"<A HREF=\"./search_%04d%02d.%s\">",
+                  cur_year,cur_month,html_ext);
+-         fprintf(out_fp,"%s</A></TD></TR>\n",msg_v_search);
++         fprintf(out_fp,"%s</A></TD></TR>\n",_("View All Search Strings"));
+       }
+    }
+    fprintf(out_fp,"</TABLE>\n<P>\n");
+@@ -1934,12 +1934,12 @@
+    if ( (out_fp=open_out_file(search_fname))==NULL ) return 0;
+    snprintf(buffer,sizeof(buffer),"%s %d - %s",
+-            Q_(l_month[cur_month-1]),cur_year,msg_h_search);
++            Q_(l_month[cur_month-1]),cur_year,_("Search String"));
+    write_html_head(buffer, out_fp);
+    fprintf(out_fp,"<FONT SIZE=\"-1\"></CENTER><PRE>\n");
+-   fprintf(out_fp," %12s      %s\n",msg_h_hits,msg_h_search);
++   fprintf(out_fp," %12s      %s\n",_("Hits"),_("Search String"));
+    fprintf(out_fp,"----------------  ----------------------\n\n");
+    pointer=s_array;
+@@ -1990,27 +1990,27 @@
+    fprintf(out_fp,"<TR><TH HEIGHT=4></TH></TR>\n");
+    fprintf(out_fp,"<TR><TH BGCOLOR=\"%s\" ALIGN=CENTER COLSPAN=%d>" \
+            "%s %llu %s %llu %s</TH></TR>\n",
+-           GREY,(dump_inout==0)?10:14,msg_top_top, tot_num, msg_top_of, t_user, msg_top_i);
++           GREY,(dump_inout==0)?10:14,_("Top"), tot_num, _("of"), t_user, _("Total Usernames"));
+    fprintf(out_fp,"<TR><TH HEIGHT=4></TH></TR>\n");
+    fprintf(out_fp,"<TR><TH BGCOLOR=\"%s\" ALIGN=center>"                   \
+           "<FONT SIZE=\"-1\">#</FONT></TH>\n",GREY);
+    fprintf(out_fp,"<TH BGCOLOR=\"%s\" ALIGN=center COLSPAN=2>"             \
+-          "<FONT SIZE=\"-1\">%s</FONT></TH>\n",HITCOLOR,msg_h_hits);
++          "<FONT SIZE=\"-1\">%s</FONT></TH>\n",HITCOLOR,_("Hits"));
+    fprintf(out_fp,"<TH BGCOLOR=\"%s\" ALIGN=center COLSPAN=2>"             \
+-          "<FONT SIZE=\"-1\">%s</FONT></TH>\n",FILECOLOR,msg_h_files);
++          "<FONT SIZE=\"-1\">%s</FONT></TH>\n",FILECOLOR,_("Files"));
+    fprintf(out_fp,"<TH BGCOLOR=\"%s\" ALIGN=center COLSPAN=2>"             \
+-          "<FONT SIZE=\"-1\">%s</FONT></TH>\n",KBYTECOLOR,msg_h_xfer);
++          "<FONT SIZE=\"-1\">%s</FONT></TH>\n",KBYTECOLOR,_("kB F"));
+    if (dump_inout != 0)
+    {
+       fprintf(out_fp,"<TH BGCOLOR=\"%s\" ALIGN=center COLSPAN=2>"             \
+-           "<FONT SIZE=\"-1\">%s</FONT></TH>\n",IKBYTECOLOR,msg_h_ixfer);
++           "<FONT SIZE=\"-1\">%s</FONT></TH>\n",IKBYTECOLOR,_("kB In"));
+       fprintf(out_fp,"<TH BGCOLOR=\"%s\" ALIGN=center COLSPAN=2>"             \
+-           "<FONT SIZE=\"-1\">%s</FONT></TH>\n",OKBYTECOLOR,msg_h_oxfer);
++           "<FONT SIZE=\"-1\">%s</FONT></TH>\n",OKBYTECOLOR,_("kB Out"));
+    }
+    fprintf(out_fp,"<TH BGCOLOR=\"%s\" ALIGN=center COLSPAN=2>"             \
+-          "<FONT SIZE=\"-1\">%s</FONT></TH>\n",VISITCOLOR,msg_h_visits);
++          "<FONT SIZE=\"-1\">%s</FONT></TH>\n",VISITCOLOR,_("Visits"));
+    fprintf(out_fp,"<TH BGCOLOR=\"%s\" ALIGN=center>"                       \
+-          "<FONT SIZE=\"-1\">%s</FONT></TH></TR>\n",MISCCOLOR,msg_h_uname);
++          "<FONT SIZE=\"-1\">%s</FONT></TH></TR>\n",MISCCOLOR,_("Username"));
+    fprintf(out_fp,"<TR><TH HEIGHT=4></TH></TR>\n");
+    pointer=i_array; i=0;
+@@ -2073,7 +2073,7 @@
+          fprintf(out_fp,"<FONT SIZE=\"-1\">");
+          fprintf(out_fp,"<A HREF=\"./user_%04d%02d.%s\">",
+             cur_year,cur_month,html_ext);
+-         fprintf(out_fp,"%s</A></TD></TR>\n",msg_v_users);
++         fprintf(out_fp,"%s</A></TD></TR>\n",_("View All Usernames"));
+       }
+    }
+    fprintf(out_fp,"</TABLE>\n<P>\n");
+@@ -2098,18 +2098,18 @@
+    if ( (out_fp=open_out_file(user_fname))==NULL ) return 0;
+    snprintf(buffer,sizeof(buffer),"%s %d - %s",
+-            Q_(l_month[cur_month-1]),cur_year,msg_h_uname);
++            Q_(l_month[cur_month-1]),cur_year,_("Username"));
+    write_html_head(buffer, out_fp);
+    fprintf(out_fp,"<FONT SIZE=\"-1\"></CENTER><PRE>\n");
+    fprintf(out_fp," %12s      %12s      %12s",
+-           msg_h_hits, msg_h_files, msg_h_xfer);
++           _("Hits"), _("Files"), _("kB F"));
+    if (dump_inout != 0)
+    {
+-      fprintf(out_fp,"      %12s      %12s", msg_h_ixfer, msg_h_oxfer);
++      fprintf(out_fp,"      %12s      %12s", _("kB In"), _("kB Out"));
+    }
+-   fprintf(out_fp,"      %12s      %s\n", msg_h_visits, msg_h_uname);
++   fprintf(out_fp,"      %12s      %s\n", _("Visits"), _("Username"));
+    fprintf(out_fp,"----------------  ----------------  ----------------  ");
+    if (dump_inout != 0)
+    {
+@@ -2324,7 +2324,7 @@
+          pie_legend[i]=_(top_ctrys[i]->desc);
+       }
+       snprintf(pie_title,sizeof(pie_title),"%s %s %d",
+-               msg_ctry_use,Q_(l_month[cur_month-1]),cur_year);
++               _("Usage by Country for"),Q_(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   */
+@@ -2341,25 +2341,25 @@
+    fprintf(out_fp,"<TR><TH HEIGHT=4></TH></TR>\n");
+    fprintf(out_fp,"<TR><TH BGCOLOR=\"%s\" ALIGN=CENTER COLSPAN=%d>"         \
+            "%s %d %s %d %s</TH></TR>\n",
+-           GREY,(dump_inout==0)?8:12,msg_top_top,tot_num,msg_top_of,tot_ctry,msg_top_c);
++           GREY,(dump_inout==0)?8:12,_("Top"),tot_num,_("of"),tot_ctry,_("Total Countries"));
+    fprintf(out_fp,"<TR><TH HEIGHT=4></TH></TR>\n");
+    fprintf(out_fp,"<TR><TH BGCOLOR=\"%s\" ALIGN=center>"                   \
+           "<FONT SIZE=\"-1\">#</FONT></TH>\n",GREY);
+    fprintf(out_fp,"<TH BGCOLOR=\"%s\" ALIGN=center COLSPAN=2>"             \
+-          "<FONT SIZE=\"-1\">%s</FONT></TH>\n",HITCOLOR,msg_h_hits);
++          "<FONT SIZE=\"-1\">%s</FONT></TH>\n",HITCOLOR,_("Hits"));
+    fprintf(out_fp,"<TH BGCOLOR=\"%s\" ALIGN=center COLSPAN=2>"             \
+-          "<FONT SIZE=\"-1\">%s</FONT></TH>\n",FILECOLOR,msg_h_files);
++          "<FONT SIZE=\"-1\">%s</FONT></TH>\n",FILECOLOR,_("Files"));
+    fprintf(out_fp,"<TH BGCOLOR=\"%s\" ALIGN=center COLSPAN=2>"             \
+-          "<FONT SIZE=\"-1\">%s</FONT></TH>\n",KBYTECOLOR,msg_h_xfer);
++          "<FONT SIZE=\"-1\">%s</FONT></TH>\n",KBYTECOLOR,_("kB F"));
+    if (dump_inout != 0)
+    {
+       fprintf(out_fp,"<TH BGCOLOR=\"%s\" ALIGN=center COLSPAN=2>"          \
+-           "<FONT SIZE=\"-1\">%s</FONT></TH>\n",IKBYTECOLOR,msg_h_ixfer);
++           "<FONT SIZE=\"-1\">%s</FONT></TH>\n",IKBYTECOLOR,_("kB In"));
+       fprintf(out_fp,"<TH BGCOLOR=\"%s\" ALIGN=center COLSPAN=2>"          \
+-           "<FONT SIZE=\"-1\">%s</FONT></TH>\n",OKBYTECOLOR,msg_h_oxfer);
++           "<FONT SIZE=\"-1\">%s</FONT></TH>\n",OKBYTECOLOR,_("kB Out"));
+    }
+    fprintf(out_fp,"<TH BGCOLOR=\"%s\" ALIGN=center>"                       \
+-          "<FONT SIZE=\"-1\">%s</FONT></TH></TR>\n",MISCCOLOR,msg_h_ctry);
++          "<FONT SIZE=\"-1\">%s</FONT></TH></TR>\n",MISCCOLOR,_("Country"));
+    fprintf(out_fp,"<TR><TH HEIGHT=4></TH></TR>\n");
+    for (i=0;i<ntop_ctrys;i++)
+    {
+@@ -2436,12 +2436,12 @@
+    /* need a header? */
+    if (dump_header)
+    {
+-      fprintf(out_fp,"%s\t%s\t%s", msg_h_hits,msg_h_files,msg_h_xfer);
++      fprintf(out_fp,"%s\t%s\t%s", _("Hits"),_("Files"),_("kB F"));
+       if (dump_inout != 0)
+       {
+-       fprintf(out_fp,"\t%s\t%s", msg_h_ixfer,msg_h_oxfer);
++       fprintf(out_fp,"\t%s\t%s", _("kB In"),_("kB Out"));
+       }
+-      fprintf(out_fp,"\t%s\t%s\n", msg_h_visits,msg_h_hname); 
++      fprintf(out_fp,"\t%s\t%s\n", _("Visits"),_("Hostname")); 
+    }
+    /* dump 'em */
+@@ -2488,12 +2488,12 @@
+    /* need a header? */
+    if (dump_header)
+    {
+-      fprintf(out_fp,"%s\t%s",msg_h_hits,msg_h_xfer);
++      fprintf(out_fp,"%s\t%s",_("Hits"),_("kB F"));
+       if (dump_inout != 0)
+       {
+-       fprintf(out_fp,"\t%s\t%s",msg_h_ixfer,msg_h_oxfer);
++       fprintf(out_fp,"\t%s\t%s",_("kB In"),_("kB Out"));
+       }
+-      fprintf(out_fp,"\t%s\n",msg_h_url);
++      fprintf(out_fp,"\t%s\n",_("URL"));
+    }
+    /* dump 'em */
+@@ -2537,7 +2537,7 @@
+    /* need a header? */
+    if (dump_header)
+    {
+-      fprintf(out_fp,"%s\t%s\n",msg_h_hits,msg_h_ref);
++      fprintf(out_fp,"%s\t%s\n",_("Hits"),_("Referrer"));
+    }
+    /* dump 'em */
+@@ -2576,7 +2576,7 @@
+    /* need a header? */
+    if (dump_header)
+    {
+-      fprintf(out_fp,"%s\t%s\n",msg_h_hits,msg_h_agent);
++      fprintf(out_fp,"%s\t%s\n",_("Hits"),_("User Agent"));
+    }
+    /* dump 'em */
+@@ -2615,12 +2615,12 @@
+    /* need a header? */
+    if (dump_header)
+    {
+-      fprintf(out_fp,"%s\t%s\t%s",msg_h_hits,msg_h_files,msg_h_xfer);
++      fprintf(out_fp,"%s\t%s\t%s",_("Hits"),_("Files"),_("kB F"));
+       if (dump_inout != 0)
+       {
+-       fprintf(out_fp,"\t%s\t%s",msg_h_ixfer,msg_h_oxfer);
++       fprintf(out_fp,"\t%s\t%s",_("kB In"),_("kB Out"));
+       }
+-      fprintf(out_fp,"\t%s\t%s\n",msg_h_visits,msg_h_uname);
++      fprintf(out_fp,"\t%s\t%s\n",_("Visits"),_("Username"));
+    }
+    /* dump 'em */
+@@ -2665,7 +2665,7 @@
+    /* need a header? */
+    if (dump_header)
+    {
+-      fprintf(out_fp,"%s\t%s\n",msg_h_hits,msg_h_search);
++      fprintf(out_fp,"%s\t%s\n",_("Hits"),_("Search String"));
+    }
+    /* dump 'em */
+@@ -2707,9 +2707,9 @@
+    double  gt_oxfer=0.0;
+    double  gt_visits=0.0;
+-   if (verbose>1) printf("%s\n",msg_gen_sum);
++   if (verbose>1) printf("%s\n",_("Generating summary report"));
+-   snprintf(buffer,sizeof(buffer),"%s %s",msg_main_us,hname);
++   snprintf(buffer,sizeof(buffer),"%s %s",_("Usage summary for"),hname);
+    year_graph6x("usage.png", buffer, hist);
+    /* now do html stuff... */
+@@ -2727,7 +2727,7 @@
+          if ( S_ISLNK(out_stat.st_mode) )
+          {
+             if (verbose)
+-          fprintf(stderr,"%s %s (symlink)\n",msg_no_open,".htaccess");
++          fprintf(stderr,"%s %s (symlink)\n",_("Error: Unable to open file"),".htaccess");
+             return NULL;
+          }
+       }
+@@ -2749,7 +2749,7 @@
+    if ( (out_fp=open_out_file(index_fname)) == NULL)
+    {
+       if (verbose)
+-      fprintf(stderr,"%s %s!\n",msg_no_open,index_fname);
++      fprintf(stderr,"%s %s!\n",_("Error: Unable to open file"),index_fname);
+       return 1;
+    }
+    write_html_head(NULL, out_fp);
+@@ -2761,41 +2761,41 @@
+    fprintf(out_fp,"<TABLE WIDTH=600 BORDER=2 CELLSPACING=1 CELLPADDING=1>\n");
+    fprintf(out_fp,"<TR><TH HEIGHT=4></TH></TR>\n");
+    fprintf(out_fp,"<TR><TH COLSPAN=%d BGCOLOR=\"%s\" ALIGN=center>",(dump_inout==0)?11:13,GREY);
+-   fprintf(out_fp,"%s</TH></TR>\n",msg_main_sum);
++   fprintf(out_fp,"%s</TH></TR>\n",_("Summary by Month"));
+    fprintf(out_fp,"<TR><TH HEIGHT=4></TH></TR>\n");
+    fprintf(out_fp,"<TR><TH ALIGN=left ROWSPAN=2 BGCOLOR=\"%s\">"          \
+-          "<FONT SIZE=\"-1\">%s</FONT></TH>\n",GREY,msg_h_mth);
++          "<FONT SIZE=\"-1\">%s</FONT></TH>\n",GREY,_("Month"));
+    fprintf(out_fp,"<TH ALIGN=center COLSPAN=4 BGCOLOR=\"%s\">"            \
+-          "<FONT SIZE=\"-1\">%s</FONT></TH>\n",GREY,msg_main_da);
++          "<FONT SIZE=\"-1\">%s</FONT></TH>\n",GREY,_("Daily Avg"));
+    fprintf(out_fp,"<TH ALIGN=center COLSPAN=%d BGCOLOR=\"%s\">"            \
+-          "<FONT SIZE=\"-1\">%s</FONT></TH></TR>\n",(dump_inout==0)?6:8,GREY,msg_main_mt);
++          "<FONT SIZE=\"-1\">%s</FONT></TH></TR>\n",(dump_inout==0)?6:8,GREY,_("Monthly Totals"));
+    fprintf(out_fp,"<TR><TH ALIGN=center BGCOLOR=\"%s\">"                  \
+-          "<FONT SIZE=\"-1\">%s</FONT></TH>\n",HITCOLOR,msg_h_hits);
++          "<FONT SIZE=\"-1\">%s</FONT></TH>\n",HITCOLOR,_("Hits"));
+    fprintf(out_fp,"<TH ALIGN=center BGCOLOR=\"%s\">"                      \
+-          "<FONT SIZE=\"-1\">%s</FONT></TH>\n",FILECOLOR,msg_h_files);
++          "<FONT SIZE=\"-1\">%s</FONT></TH>\n",FILECOLOR,_("Files"));
+    fprintf(out_fp,"<TH ALIGN=center BGCOLOR=\"%s\">"                      \
+-          "<FONT SIZE=\"-1\">%s</FONT></TH>\n",PAGECOLOR,msg_h_pages);
++          "<FONT SIZE=\"-1\">%s</FONT></TH>\n",PAGECOLOR,_("Pages"));
+    fprintf(out_fp,"<TH ALIGN=center BGCOLOR=\"%s\">"                      \
+-          "<FONT SIZE=\"-1\">%s</FONT></TH>\n",VISITCOLOR,msg_h_visits);
++          "<FONT SIZE=\"-1\">%s</FONT></TH>\n",VISITCOLOR,_("Visits"));
+    fprintf(out_fp,"<TH ALIGN=center BGCOLOR=\"%s\">"                      \
+-          "<FONT SIZE=\"-1\">%s</FONT></TH>\n",SITECOLOR,msg_h_sites);
++          "<FONT SIZE=\"-1\">%s</FONT></TH>\n",SITECOLOR,_("Sites"));
+    fprintf(out_fp,"<TH ALIGN=center BGCOLOR=\"%s\">"                      \
+-          "<FONT SIZE=\"-1\">%s</FONT></TH>\n",KBYTECOLOR,msg_h_xfer);
++          "<FONT SIZE=\"-1\">%s</FONT></TH>\n",KBYTECOLOR,_("kB F"));
+    if (dump_inout != 0)
+    {
+       fprintf(out_fp,"<TH ALIGN=center BGCOLOR=\"%s\">"                   \
+-           "<FONT SIZE=\"-1\">%s</FONT></TH>\n",IKBYTECOLOR,msg_h_ixfer);
++           "<FONT SIZE=\"-1\">%s</FONT></TH>\n",IKBYTECOLOR,_("kB In"));
+       fprintf(out_fp,"<TH ALIGN=center BGCOLOR=\"%s\">"                   \
+-           "<FONT SIZE=\"-1\">%s</FONT></TH>\n",OKBYTECOLOR,msg_h_oxfer);
++           "<FONT SIZE=\"-1\">%s</FONT></TH>\n",OKBYTECOLOR,_("kB Out"));
+    }
+    fprintf(out_fp,"<TH ALIGN=center BGCOLOR=\"%s\">"                      \
+-          "<FONT SIZE=\"-1\">%s</FONT></TH>\n",VISITCOLOR,msg_h_visits);
++          "<FONT SIZE=\"-1\">%s</FONT></TH>\n",VISITCOLOR,_("Visits"));
+    fprintf(out_fp,"<TH ALIGN=center BGCOLOR=\"%s\">"                      \
+-          "<FONT SIZE=\"-1\">%s</FONT></TH>\n",PAGECOLOR,msg_h_pages);
++          "<FONT SIZE=\"-1\">%s</FONT></TH>\n",PAGECOLOR,_("Pages"));
+    fprintf(out_fp,"<TH ALIGN=center BGCOLOR=\"%s\">"                      \
+-          "<FONT SIZE=\"-1\">%s</FONT></TH>\n",FILECOLOR,msg_h_files);
++          "<FONT SIZE=\"-1\">%s</FONT></TH>\n",FILECOLOR,_("Files"));
+    fprintf(out_fp,"<TH ALIGN=center BGCOLOR=\"%s\">"                      \
+-          "<FONT SIZE=\"-1\">%s</FONT></TH></TR>\n",HITCOLOR,msg_h_hits);
++          "<FONT SIZE=\"-1\">%s</FONT></TH></TR>\n",HITCOLOR,_("Hits"));
+    fprintf(out_fp,"<TR><TH HEIGHT=4></TH></TR>\n");
+    for (i=HISTSIZE-1;i>=HISTSIZE-index_mths;i--)
+    {
+@@ -2923,7 +2923,7 @@
+    }
+    fprintf(out_fp,"<TR><TH HEIGHT=4></TH></TR>\n");
+    fprintf(out_fp,"<TR><TH BGCOLOR=\"%s\" COLSPAN=6 ALIGN=left>"          \
+-          "<FONT SIZE=\"-1\">%s</FONT></TH>\n",GREY,msg_h_totals);
++          "<FONT SIZE=\"-1\">%s</FONT></TH>\n",GREY,_("Totals"));
+    fprintf(out_fp,"<TH BGCOLOR=\"%s\" ALIGN=right>"                       \
+           "<FONT SIZE=\"-1\">%.0f</FONT></TH>\n",GREY,gt_xfer);
+    if (dump_inout != 0)
+@@ -3258,7 +3258,7 @@
+       if ( S_ISLNK(out_stat.st_mode) )
+       {
+          if (verbose)
+-         fprintf(stderr,"%s %s (symlink)\n",msg_no_open,filename);
++         fprintf(stderr,"%s %s (symlink)\n",_("Error: Unable to open file"),filename);
+          return NULL;
+       }
+    }
+@@ -3267,7 +3267,7 @@
+    if ( (out_fp=fopen(filename,"w")) == NULL)
+    {
+       if (verbose)
+-      fprintf(stderr,"%s %s!\n",msg_no_open,filename);
++      fprintf(stderr,"%s %s!\n",_("Error: Unable to open file"),filename);
+       return NULL;
+    }
+    return out_fp;
+Index: webalizer/parser.c
+===================================================================
+--- webalizer.orig/parser.c    2011-01-08 20:59:30.000000000 +0100
++++ webalizer/parser.c 2011-01-08 20:59:58.000000000 +0100
+@@ -229,7 +229,7 @@
+    {
+       if (verbose)
+       {
+-         fprintf(stderr,"%s",msg_big_host);
++         fprintf(stderr,"%s",_("Warning: Truncating oversized hostname"));
+          if (debug_mode) fprintf(stderr,": %s\n",cpx);
+          else fprintf(stderr,"\n");
+       }
+@@ -261,7 +261,7 @@
+    {
+       if (verbose)
+       {
+-         fprintf(stderr,"%s",msg_big_user);
++         fprintf(stderr,"%s",_("Warning: Truncating oversized username"));
+          if (debug_mode) fprintf(stderr,": %s\n",cpx);
+          else fprintf(stderr,"\n");
+       }
+@@ -283,7 +283,7 @@
+    {
+       if (verbose)
+       {
+-         fprintf(stderr,"%s",msg_big_date);
++         fprintf(stderr,"%s",_("Warning: Truncating oversized date field"));
+          if (debug_mode) fprintf(stderr,": %s\n",cpx);
+          else fprintf(stderr,"\n");
+       }
+@@ -308,7 +308,7 @@
+    {
+       if (verbose)
+       {
+-         fprintf(stderr,"%s",msg_big_req);
++         fprintf(stderr,"%s",_("Warning: Truncating oversized request field"));
+          if (debug_mode) fprintf(stderr,": %s\n",cpx);
+          else fprintf(stderr,"\n");
+       }
+@@ -352,7 +352,7 @@
+    {
+       if (verbose)
+       {
+-         fprintf(stderr,"%s",msg_big_ref);
++         fprintf(stderr,"%s",_("Warning: Truncating oversized referrer field"));
+          if (debug_mode) fprintf(stderr,": %s\n",cpx);
+          else fprintf(stderr,"\n");
+       }
+@@ -423,7 +423,7 @@
+    {
+       if (verbose)
+       {
+-         fprintf(stderr,"%s",msg_big_host);
++         fprintf(stderr,"%s",_("Warning: Truncating oversized hostname"));
+          if (debug_mode) fprintf(stderr,": %s\n",cpx);
+          else fprintf(stderr,"\n");
+       }
+@@ -460,7 +460,7 @@
+    {
+       if (verbose)
+       {
+-         fprintf(stderr,"%s",msg_big_req);
++         fprintf(stderr,"%s",_("Warning: Truncating oversized request field"));
+          if (debug_mode) fprintf(stderr,": %s\n",cpx);
+          else fprintf(stderr,"\n");
+       }
+@@ -489,7 +489,7 @@
+    {
+       if (verbose)
+       {
+-         fprintf(stderr,"%s",msg_big_req);
++         fprintf(stderr,"%s",_("Warning: Truncating oversized request field"));
+          if (debug_mode) fprintf(stderr,": %s\n",cpx);
+          else fprintf(stderr,"\n");
+       }
+Index: webalizer/preserve.c
+===================================================================
+--- webalizer.orig/preserve.c  2011-01-08 20:59:30.000000000 +0100
++++ webalizer/preserve.c       2011-01-08 20:59:58.000000000 +0100
+@@ -75,7 +75,7 @@
+    if (hist_fp)
+    {
+-      if (verbose>1) printf("%s %s\n",msg_get_hist,hist_fname);
++      if (verbose>1) printf("%s %s\n",_("Reading history file..."),hist_fname);
+       while ( fgets(buffer,BUFSIZE,hist_fp) != NULL )
+       {
+          if (buffer[0]=='#') { continue; } /* skip comments */
+@@ -86,7 +86,7 @@
+          /* check if valid numbers */
+          if ( (in_m<1 || in_m>12 || in_y<1970) )
+          {
+-            if (verbose) fprintf(stderr,"%s (mth=%d)\n",msg_bad_hist,in_m);
++            if (verbose) fprintf(stderr,"%s (mth=%d)\n",_("Error: Ignoring invalid history record"),in_m);
+             continue;
+          }
+@@ -139,7 +139,7 @@
+       }
+       fclose(hist_fp);
+    }
+-   else if (verbose>1) printf("%s\n",msg_no_hist);
++   else if (verbose>1) printf("%s\n",_("History file not found..."));
+ }
+ /*********************************************/
+@@ -166,7 +166,7 @@
+       if ( S_ISLNK(hist_stat.st_mode) )
+       {
+          if (verbose)
+-         fprintf(stderr,"%s %s (symlink)\n",msg_no_open,new_fname);
++         fprintf(stderr,"%s %s (symlink)\n",_("Error: Unable to open file"),new_fname);
+          return;
+       }
+    }
+@@ -179,7 +179,7 @@
+    hist_fp = fopen(new_fname,"w");
+    if (hist_fp)
+    {
+-      if (verbose>1) printf("%s\n",msg_put_hist);
++      if (verbose>1) printf("%s\n",_("Saving history information..."));
+       /* write header */
+       fprintf(hist_fp,"# Webalizer V%s-%s History Data - %s (%d month)\n",
+@@ -219,7 +219,7 @@
+    }
+    else
+       if (verbose)
+-      fprintf(stderr,"%s %s\n",msg_hist_err,new_fname);
++      fprintf(stderr,"%s %s\n",_("Error: Unable to write history file"),new_fname);
+ }
+ /*********************************************/
+@@ -338,7 +338,7 @@
+       if ( S_ISLNK(state_stat.st_mode) )
+       {
+          if (verbose)
+-         fprintf(stderr,"%s %s (symlink)\n",msg_no_open,new_fname);
++         fprintf(stderr,"%s %s (symlink)\n",_("Error: Unable to open file"),new_fname);
+          return(EBADF);
+       }
+    }
+@@ -352,7 +352,7 @@
+    {
+       sprintf(buffer,"%02d/%02d/%04d %02d:%02d:%02d",
+        cur_month,cur_day,cur_year,cur_hour,cur_min,cur_sec);
+-      printf("%s [%s]\n",msg_put_data,buffer);
++      printf("%s [%s]\n",_("Saving current run data..."),buffer);
+    }
+    /* first, save the easy stuff */
+@@ -566,12 +566,12 @@
+    if (fp==NULL)
+    {
+       /* Previous run data not found... */
+-      if (verbose>1) printf("%s\n",msg_no_data);
++      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",msg_get_data,state_fname);
++   if (verbose>1) printf("%s %s\n",_("Reading previous run data.."),state_fname);
+    /* get easy stuff */
+    sprintf(tmp_buf,"# Webalizer V%s    ",version);
+@@ -678,7 +678,7 @@
+       {
+          if (verbose)
+          /* Error adding URL node, skipping ... */
+-         fprintf(stderr,"%s %s\n", msg_nomem_u, t_unode.string);
++         fprintf(stderr,"%s %s\n", _("Error adding URL node, skipping"), t_unode.string);
+       }
+    }
+@@ -719,7 +719,7 @@
+          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",msg_nomem_mh, t_hnode.string);
++         if (verbose) fprintf(stderr,"%s %s\n",_("Error adding host node (monthly), skipping"), t_hnode.string);
+       }
+    }
+@@ -760,7 +760,7 @@
+          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",msg_nomem_dh, t_hnode.string);
++         if (verbose) fprintf(stderr,"%s %s\n",_("Error adding host node (daily), skipping"), t_hnode.string);
+       }
+    }
+@@ -785,7 +785,7 @@
+       if (put_rnode(tmp_buf,t_rnode.flag,
+          t_rnode.count, &ul_bogus, rm_htab))
+       {
+-         if (verbose) fprintf(stderr,"%s %s\n", msg_nomem_r, log_rec.refer);
++         if (verbose) fprintf(stderr,"%s %s\n", _("Error adding Referrer node, skipping"), log_rec.refer);
+       }
+    }
+@@ -810,7 +810,7 @@
+       if (put_anode(tmp_buf,t_anode.flag,t_anode.count,
+          &ul_bogus,am_htab))
+       {
+-         if (verbose) fprintf(stderr,"%s %s\n", msg_nomem_a, log_rec.agent);
++         if (verbose) fprintf(stderr,"%s %s\n", _("Error adding User Agent node, skipping"), log_rec.agent);
+       }
+    }
+@@ -834,7 +834,7 @@
+       /* insert node */
+       if (put_snode(tmp_buf,t_snode.count,sr_htab))
+       {
+-         if (verbose) fprintf(stderr,"%s %s\n", msg_nomem_sc, t_snode.string);
++         if (verbose) fprintf(stderr,"%s %s\n", _("Error adding Search String Node, skipping"), t_snode.string);
+       }
+    }
+@@ -867,7 +867,7 @@
+       {
+          if (verbose)
+          /* Error adding username node, skipping .... */
+-         fprintf(stderr,"%s %s\n",msg_nomem_i, t_inode.string);
++         fprintf(stderr,"%s %s\n",_("Error adding Username node, skipping"), t_inode.string);
+       }
+    }
+Index: webalizer/webalizer.c
+===================================================================
+--- webalizer.orig/webalizer.c 2011-01-08 20:59:53.000000000 +0100
++++ webalizer/webalizer.c      2011-01-08 20:59:58.000000000 +0100
+@@ -326,7 +326,7 @@
+    setlocale(LC_CTYPE,"");
+    /* Initialise report_title with the default localized value          */
+-   report_title = msg_title;
++   report_title = _("Usage Statistics for");
+    /* initalize epoch */
+    epoch=jdate(1,1,1970);                /* used for timestamp adj.     */
+@@ -497,7 +497,7 @@
+ #ifndef USE_DNS
+    if (strstr(argv[0],"webazolver")!=0)
+       /* DNS support not present, aborting... */
+-      { printf("%s\n",msg_dns_abrt); exit(1); }
++      { printf("%s\n",_("DNS support not present, aborting...")); exit(1); }
+ #else
+    /* Force sane values for cache TTL */
+    if (cache_ttl<1)   cache_ttl=1;
+@@ -514,7 +514,7 @@
+          if ( S_ISLNK(log_stat.st_mode) )
+          {
+             if (verbose)
+-            fprintf(stderr,"%s %s (symlink)\n",msg_log_err,log_fname);
++            fprintf(stderr,"%s %s (symlink)\n",_("Error: Can't open log file"),log_fname);
+             exit(EBADF);
+          }
+       }
+@@ -531,7 +531,7 @@
+          if (zlog_fp==Z_NULL)
+          {
+             /* Error: Can't open log file ... */
+-            fprintf(stderr, "%s %s (%d)\n",msg_log_err,log_fname,ENOENT);
++            fprintf(stderr, "%s %s (%d)\n",_("Error: Can't open log file"),log_fname,ENOENT);
+             exit(ENOENT);
+          }
+       }
+@@ -542,7 +542,7 @@
+          if (log_fp==NULL)
+          {
+             /* Error: Can't open log file ... */
+-            fprintf(stderr, "%s %s\n",msg_log_err,log_fname);
++            fprintf(stderr, "%s %s\n",_("Error: Can't open log file"),log_fname);
+             exit(1);
+          }
+       }
+@@ -551,7 +551,7 @@
+    /* Using logfile ... */
+    if (verbose>1)
+    {
+-      printf("%s %s (",msg_log_use,log_fname?log_fname:"STDIN");
++      printf("%s %s (",_("Using logfile"),log_fname?log_fname:"STDIN");
+       if (gz_log==COMP_GZIP) printf("gzip-");
+ #ifdef USE_BZIP
+       if (gz_log==COMP_BZIP) printf("bzip-");
+@@ -572,7 +572,7 @@
+       if (chdir(out_dir) != 0)
+       {
+          /* Error: Can't change directory to ... */
+-         fprintf(stderr, "%s %s\n",msg_dir_err,out_dir);
++         fprintf(stderr, "%s %s\n",_("Error: Can't change directory to"),out_dir);
+          exit(1);
+       }
+    }
+@@ -584,7 +584,7 @@
+       if (!dns_cache)
+       {
+          /* No cache file specified, aborting... */
+-         fprintf(stderr,"%s\n",msg_dns_nocf);     /* Must have a cache file */
++         fprintf(stderr,"%s\n",_("No cache file specified, aborting..."));     /* Must have a cache file */
+          exit(1);
+       }
+    }
+@@ -593,7 +593,7 @@
+    {
+       if (dns_children > MAXCHILD) dns_children=MAXCHILD;
+       /* DNS Lookup (#children): */
+-      if (verbose>1) printf("%s (%d): ",msg_dns_rslv,dns_children);
++      if (verbose>1) printf("%s (%d): ",_("DNS Lookup"),dns_children);
+       fflush(stdout);
+       (gz_log)?dns_resolver(zlog_fp):dns_resolver(log_fp);
+ #ifdef USE_BZIP
+@@ -611,7 +611,7 @@
+       else
+       {
+          /* Using DNS cache file <filaneme> */
+-         if (verbose>1) printf("%s %s\n",msg_dns_usec,dns_cache);
++         if (verbose>1) printf("%s %s\n",_("Using DNS cache file"),dns_cache);
+       }
+    }
+@@ -621,13 +621,13 @@
+       geo_db=geodb_open(geodb_fname);
+       if (geo_db==NULL)
+       {
+-         if (verbose) printf("%s: %s\n",msg_geo_open,
+-            (geodb_fname)?geodb_fname:msg_geo_dflt);
+-         if (verbose) printf("GeoDB %s\n",msg_geo_nolu);
++         if (verbose) printf("%s: %s\n",_("Error opening file"),
++            (geodb_fname)?geodb_fname:_("default"));
++         if (verbose) printf("GeoDB %s\n",_("lookups disabled"));
+          geodb=0;
+       }
+       else if (verbose>1) printf("%s %s\n",
+-         msg_geo_use,geodb_ver(geo_db,buffer));
++         _("Using"),geodb_ver(geo_db,buffer));
+ #ifdef USE_GEOIP
+       if (geoip) geoip=0;   /* Disable GeoIP if using GeoDB */
+ #endif
+@@ -647,18 +647,18 @@
+       if (geo_fp==NULL)
+       {
+          /* couldn't open.. warn user */
+-         if (verbose) printf("GeoIP %s\n",msg_geo_nolu);
++         if (verbose) printf("GeoIP %s\n",_("lookups disabled"));
+          geoip=0;
+       }
+-      else if (verbose>1) printf("%s %s (%s)\n",msg_geo_use,
++      else if (verbose>1) printf("%s %s (%s)\n",_("Using"),
+          GeoIPDBDescription[(int)geo_fp->databaseType],
+-         (geoip_db==NULL)?msg_geo_dflt:geo_fp->file_path);
++         (geoip_db==NULL)?_("default"):geo_fp->file_path);
+    }
+ #endif /* USE_GEOIP */
+    /* Creating output in ... */
+    if (verbose>1)
+-      printf("%s %s\n",msg_dir_use,out_dir?out_dir:msg_cur_dir);
++      printf("%s %s\n",_("Creating output in"),out_dir?out_dir:_("current directory"));
+    /* prep hostname */
+    if (!hname)
+@@ -668,10 +668,10 @@
+    }
+    /* Hostname for reports is ... */
+-   if (strlen(hname)) if (verbose>1) printf("%s '%s'\n",msg_hostname,hname);
++   if (strlen(hname)) if (verbose>1) printf("%s '%s'\n",_("Hostname for reports is"),hname);
+    /* get past history */
+-   if (ignore_hist) { if (verbose>1) printf("%s\n",msg_ign_hist); }
++   if (ignore_hist) { if (verbose>1) printf("%s\n",_("Ignoring previous history...")); }
+    else get_history();
+    if (incremental)                      /* incremental processing?         */
+@@ -679,8 +679,8 @@
+       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",msg_bad_data,i);
++         /* if (verbose) fprintf(stderr,"%s (%d)\n",_("Error: Unable to restore run data"),i); */
++         fprintf(stderr,"%s (%d)\n",_("Error: Unable to restore run data"),i);
+          exit(1);
+       }
+    }
+@@ -689,7 +689,7 @@
+    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",msg_nomem_tc); ntop_ctrys=0;}}
++    {if (verbose) fprintf(stderr,"%s\n",_("Can't allocate enough memory, Top Countries disabled!")); ntop_ctrys=0;}}
+    /* get processing start time */
+    start_time = time(NULL);
+@@ -706,7 +706,7 @@
+       {
+          if (verbose>1)
+          {
+-            fprintf(stderr,"%s",msg_big_rec);
++            fprintf(stderr,"%s",_("Error: Skipping oversized log record"));
+             if (debug_mode) fprintf(stderr,":\n%s",buffer);
+             else fprintf(stderr,"\n");
+          }
+@@ -766,7 +766,7 @@
+             if (verbose)
+             {
+                fprintf(stderr,"%s: %s [%llu]",
+-                 msg_bad_date,log_rec.datetime,total_rec);
++                 _("Error: Skipping record (bad date)"),log_rec.datetime,total_rec);
+                if (debug_mode) fprintf(stderr,":\n%s\n",tmp_buf);
+                else fprintf(stderr,"\n");
+             }
+@@ -997,7 +997,7 @@
+          if (strlen(log_rec.refer)>=MAXREFH)
+          {
+             if (verbose) fprintf(stderr,"%s [%llu]\n",
+-                msg_big_ref,total_rec);
++                _("Warning: Truncating oversized referrer field"),total_rec);
+             log_rec.refer[MAXREFH-1]='\0';
+          }
+@@ -1005,7 +1005,7 @@
+          if (strlen(log_rec.url)>=MAXURLH)
+          {
+             if (verbose) fprintf(stderr,"%s [%llu]\n",
+-                msg_big_req,total_rec);
++                _("Warning: Truncating oversized request field"),total_rec);
+             log_rec.url[MAXURLH-1]='\0';
+          }
+@@ -1227,7 +1227,7 @@
+             {
+                if (verbose)
+                /* Error adding URL node, skipping ... */
+-               fprintf(stderr,"%s %s\n", msg_nomem_u, log_rec.url);
++               fprintf(stderr,"%s %s\n", _("Error adding URL node, skipping"), log_rec.url);
+             }
+             /* ident (username) hash table */
+@@ -1238,7 +1238,7 @@
+             {
+                if (verbose)
+                /* Error adding ident node, skipping .... */
+-               fprintf(stderr,"%s %s\n", msg_nomem_i, log_rec.ident);
++               fprintf(stderr,"%s %s\n", _("Error adding Username node, skipping"), log_rec.ident);
+             }
+          }
+@@ -1249,7 +1249,7 @@
+              if (put_rnode(log_rec.refer,OBJ_REG,(u_int64_t)1,&t_ref,rm_htab))
+              {
+               if (verbose)
+-              fprintf(stderr,"%s %s\n", msg_nomem_r, log_rec.refer);
++              fprintf(stderr,"%s %s\n", _("Error adding Referrer node, skipping"), log_rec.refer);
+              }
+          }
+@@ -1261,7 +1261,7 @@
+          {
+             if (verbose)
+             /* Error adding host node (daily), skipping .... */
+-            fprintf(stderr,"%s %s\n",msg_nomem_dh, log_rec.hostname);
++            fprintf(stderr,"%s %s\n",_("Error adding host node (daily), skipping"), log_rec.hostname);
+          }
+          /* hostname (site) hash table - monthly */
+@@ -1272,7 +1272,7 @@
+          {
+             if (verbose)
+             /* Error adding host node (monthly), skipping .... */
+-            fprintf(stderr,"%s %s\n", msg_nomem_mh, log_rec.hostname);
++            fprintf(stderr,"%s %s\n", _("Error adding host node (monthly), skipping"), log_rec.hostname);
+          }
+          /* user agent hash table */
+@@ -1282,7 +1282,7 @@
+              if (put_anode(log_rec.agent,OBJ_REG,(u_int64_t)1,&t_agent,am_htab))
+              {
+               if (verbose)
+-              fprintf(stderr,"%s %s\n", msg_nomem_a, log_rec.agent);
++              fprintf(stderr,"%s %s\n", _("Error adding User Agent node, skipping"), log_rec.agent);
+              }
+          }
+@@ -1332,7 +1332,7 @@
+             {
+                if (verbose)
+                /* Error adding URL node, skipping ... */
+-               fprintf(stderr,"%s %s\n", msg_nomem_u, cp1);
++               fprintf(stderr,"%s %s\n", _("Error adding URL node, skipping"), cp1);
+             }
+          }
+@@ -1347,7 +1347,7 @@
+             {
+                if (verbose)
+                /* Error adding Site node, skipping ... */
+-               fprintf(stderr,"%s %s\n", msg_nomem_mh, cp1);
++               fprintf(stderr,"%s %s\n", _("Error adding host node (monthly), skipping"), cp1);
+             }
+          }
+          else
+@@ -1365,7 +1365,7 @@
+                   {
+                      if (verbose)
+                      /* Error adding Site node, skipping ... */
+-                     fprintf(stderr,"%s %s\n", msg_nomem_mh, cp1);
++                     fprintf(stderr,"%s %s\n", _("Error adding host node (monthly), skipping"), cp1);
+                   }
+                }
+             }
+@@ -1378,7 +1378,7 @@
+             {
+                if (verbose)
+                /* Error adding Referrer node, skipping ... */
+-               fprintf(stderr,"%s %s\n", msg_nomem_r, cp1);
++               fprintf(stderr,"%s %s\n", _("Error adding Referrer node, skipping"), cp1);
+             }
+          }
+@@ -1389,7 +1389,7 @@
+             {
+                if (verbose)
+                /* Error adding User Agent node, skipping ... */
+-               fprintf(stderr,"%s %s\n", msg_nomem_a, cp1);
++               fprintf(stderr,"%s %s\n", _("Error adding User Agent node, skipping"), cp1);
+             }
+          }
+@@ -1404,7 +1404,7 @@
+             {
+                if (verbose)
+                /* Error adding Username node, skipping ... */
+-               fprintf(stderr,"%s %s\n", msg_nomem_i, cp1);
++               fprintf(stderr,"%s %s\n", _("Error adding Username node, skipping"), cp1);
+             }
+          }
+       }
+@@ -1419,7 +1419,7 @@
+          if ( (total_rec==1) && (strncmp(buffer,"format=",7)==0) )
+          {
+             /* Skipping Netscape header record */
+-            if (verbose>1) printf("%s\n",msg_ign_nscp);
++            if (verbose>1) printf("%s\n",_("Skipping Netscape header record"));
+             /* count it as ignored... */
+             total_ignore++;
+          }
+@@ -1436,7 +1436,7 @@
+                total_bad++;
+                if (verbose)
+                {
+-                  fprintf(stderr,"%s (%llu)",msg_bad_rec,total_rec);
++                  fprintf(stderr,"%s (%llu)",_("Skipping bad record"),total_rec);
+                   if (debug_mode) fprintf(stderr,":\n%s\n",tmp_buf);
+                   else fprintf(stderr,"\n");
+                }
+@@ -1486,7 +1486,7 @@
+             if (save_state())                /* incremental stuff        */
+             {
+                /* Error: Unable to save current run data */
+-               if (verbose) fprintf(stderr,"%s\n",msg_data_err);
++               if (verbose) fprintf(stderr,"%s\n",_("Error: Unable to save current run data"));
+                unlink(state_fname);
+             }
+          }
+@@ -1503,19 +1503,19 @@
+       /* display end of processing statistics */
+       if (time_me || (verbose>1))
+       {
+-         printf("%llu %s ",total_rec, msg_records);
++         printf("%llu %s ",total_rec, _("records"));
+          if (total_ignore)
+          {
+-            printf("(%llu %s",total_ignore,msg_ignored);
+-            if (total_bad) printf(", %llu %s) ",total_bad,msg_bad);
++            printf("(%llu %s",total_ignore,_("ignored"));
++            if (total_bad) printf(", %llu %s) ",total_bad,_("bad"));
+                else        printf(") ");
+          }
+-         else if (total_bad) printf("(%llu %s) ",total_bad,msg_bad);
++         else if (total_bad) printf("(%llu %s) ",total_bad,_("bad"));
+          /* totoal processing time in seconds */
+          temp_time = difftime(end_time, start_time);
+          if (temp_time==0) temp_time=1;
+-         printf("%s %.0f %s", msg_in, temp_time, msg_seconds);
++         printf("%s %.0f %s", _("in"), temp_time, _("seconds"));
+          /* calculate records per second */
+          if (temp_time)
+@@ -1544,7 +1544,7 @@
+    else
+    {
+       /* No valid records found... exit with error (1) */
+-      if (verbose) printf("%s\n",msg_no_vrec);
++      if (verbose) printf("%s\n",_("No valid records found!"));
+       if (hist[0].month!=0) write_main_index(); /* write main HTML file     */
+       exit(1);
+    }
+@@ -1697,7 +1697,7 @@
+    if ( (fp=fopen(fname,"r")) == NULL)
+    {
+       if (verbose)
+-      fprintf(stderr,"%s %s\n",msg_bad_conf,fname);
++      fprintf(stderr,"%s %s\n",_("Error: Unable to open configuration file"),fname);
+       return;
+    }
+@@ -1727,7 +1727,7 @@
+          if (!ouricmp(keyword,kwords[i])) { key=i; break; }
+       if (key==0) { printf("%s '%s' (%s)\n",       /* Invalid keyword       */
+-                    msg_bad_key,keyword,fname);
++                    _("Warning: Invalid keyword"),keyword,fname);
+                     continue;
+                   }
+@@ -1853,7 +1853,7 @@
+         case 85: dns_children=atoi(value);         break; /* DNSChildren    */
+ #else
+         case 84: /* Disable DNSCache and DNSChildren if DNS is not enabled  */
+-        case 85: printf("%s '%s' (%s)\n",msg_bad_key,keyword,fname); break;
++        case 85: printf("%s '%s' (%s)\n",_("Warning: Invalid keyword"),keyword,fname); break;
+ #endif  /* USE_DNS */
+         case 86: daily_graph=
+                     (tolower(value[0])=='n')?0:1;  break; /* HourlyGraph    */
+@@ -1884,7 +1884,7 @@
+         case 101: /* Disable CacheIPs/CacheTTL/GeoDB/GeoDBDatabase if none  */
+         case 102: 
+         case 103:
+-        case 104: printf("%s '%s' (%s)\n",msg_bad_key,keyword,fname); break;
++        case 104: printf("%s '%s' (%s)\n",_("Warning: Invalid keyword"),keyword,fname); break;
+ #endif  /* USE_DNS */
+         case 105: stripcgi=
+                     (tolower(value[0])=='n')?0:1;  break; /* StripCGI       */
+@@ -1902,7 +1902,7 @@
+         case 112: geoip_db=save_opt(value);        break; /* GeoIPDatabase  */
+ #else
+         case 111: /* Disable GeoIP and GeoIPDatabase if not enabled         */
+-        case 112: printf("%s '%s' (%s)\n",msg_bad_key,keyword,fname); break;
++        case 112: printf("%s '%s' (%s)\n",_("Warning: Invalid keyword"),keyword,fname); break;
+ #endif
+         case 113: normalize=
+                     (tolower(value[0])=='n')?0:1;  break; /* NormalizeURL   */
+@@ -1995,7 +1995,7 @@
+ {
+    int i;
+-   printf("%s: %s %s\n",h_usage1,pname,h_usage2);
++   printf("%s: %s %s\n",_("Usage"),pname,_("[options] [log file]"));
+    for (i=0;h_msg[i];i++) printf("%s\n",_(h_msg[i]));
+    exit(1);
+ }
+@@ -2246,7 +2246,7 @@
+    {
+       if (verbose)
+       /* Error adding search string node, skipping .... */
+-      fprintf(stderr,"%s %s\n", msg_nomem_sc, tmpbuf);
++      fprintf(stderr,"%s %s\n", _("Error adding Search String Node, skipping"), tmpbuf);
+    }
+    return;
+ }